How to trap error the add-on has fired an exception. OLE error 800A01A

Add-in Express™ Support Service
That's what is more important than anything else

How to trap error the add-on has fired an exception. OLE error 800A01A
 
Chan Chi Keung


Guest


HI!

My outlook addon contain inspector commnand bar (under new email) and advance form region under income email.

Step to reproduce
1. I open 8 or more income email with adxform1.
2. I click new email and show up inspector command bar
3. I close new email form
4. I close income email form 1 by 1.
5. OLE error 800A01A will happend for last closed 2 forms.

Can you give me some hints to trap this error ?
I have no idea about this.

Thanks in advance!
Posted 08 Aug, 2009 08:27:22 Top
Chan Chi Keung


Guest



My outlook version is 2003 (11.8169.8172) sp3
My delphi version is Delphi 2009 pro with update 3 and Update 4.
My ADX: Version 5.1 Release (build 504)
Posted 08 Aug, 2009 08:29:27 Top
Chan Chi Keung


Guest


When i implement ADXOnerror and set handled := true, there is no previous occured. Is 'handled ' handle this kind of error ?

Posted 09 Aug, 2009 22:29:24 Top
Dmitry Kostochko


Add-in Express team


Posts: 2887
Joined: 2004-04-05
Hello Chan Chi Keung,

Is 'handled ' handle this kind of error ?


Yes, you can suppress all exceptions in this way.

Can you give me some hints to trap this error ?


Which events do you handle in your code?


Posted 10 Aug, 2009 07:19:25 Top
Chan Chi Keung


Guest


Oh!

Thanks!

How to exam exception by using 'E:Exception'?

procedure TAddInModule.adxCOMAddInModuleError(const E: Exception;
var Handled: Boolean);
begin
Handled := true;

end;

At last, if i can't find exception, suppress is ok for me.

Thanks!
Posted 10 Aug, 2009 10:49:15 Top
Dmitry Kostochko


Add-in Express team


Posts: 2887
Joined: 2004-04-05
Hello Chan Chi Keung,

How to exam exception by using 'E:Exception'?


Please see the code below:


  if E is EOleSysError then begin
    if (E as EOleSysError).ErrorCode = $800A01A then
      Handled := True;
  end;



Posted 10 Aug, 2009 11:23:47 Top
Chan Chi Keung


Guest


Great Support!

Many Thanks!
Posted 11 Aug, 2009 10:53:12 Top
Chan Chi Keung


Guest


When i paste code to delphi 2009, It cannot be compile.
Find declaration of Exception from IDE and it point out

Outlook 2000.pas
Exception = interface(IDispatch)
['{0006304D-0000-0000-C000-000000000046}']
function Get_Application: _Application; safecall;
function Get_Class_: OlObjectClass; safecall;
function Get_Session: _NameSpace; safecall;
function Get_Parent: IDispatch; safecall;
function Get_AppointmentItem: AppointmentItem; safecall;
function Get_Deleted: WordBool; safecall;
function Get_OriginalDate: TDateTime; safecall;
property Application: _Application read Get_Application;
property Class_: OlObjectClass read Get_Class_;
property Session: _NameSpace read Get_Session;
property Parent: IDispatch read Get_Parent;
property AppointmentItem: AppointmentItem read Get_AppointmentItem;
property Deleted: WordBool read Get_Deleted;
property OriginalDate: TDateTime read Get_OriginalDate;
end;


Posted 11 Aug, 2009 11:21:16 Top
Dmitry Kostochko


Add-in Express team


Posts: 2887
Joined: 2004-04-05
Hello Chan Chi Keung,

The native Delphi Exception class is declared in the SysUtils unit:


procedure TAddInModule.adxCOMAddInModuleError(const E: [B]SysUtils.[/B]Exception; var Handled: Boolean);
begin 
  if E is EOleSysError then begin 
    if (E as EOleSysError).ErrorCode = $800A01A then 
      Handled := True; 
  end; 

end;


Posted 12 Aug, 2009 07:23:14 Top
Chan Chi Keung


Guest


Thanks for your reply!

I try you mention as above for modification of code.

D2009 warning as below.
'The adxCOMAddINModuleError method referenced by AddInModule.OnError has
an incompatible parameter list. remove the reference?'


Thanks
Posted 13 Aug, 2009 11:07:11 Top