Как написать Outlook AddIn?

{
 1. Create an ActiveX-Library
 Save the project as e.g. "OLAddIn.dpr"
 2.Create an automation object
 Call the CoClass e.g. "AddIn"
 Save the Unit as "AddIn.pas"
 3. Add to the uses clause
 - AddInDesignerObjects_TLB
 - Outlook_TLB
}

- procedure OnConnection(const Application: IDispatch; ConnectMode: ext_ConnectMode;
  const AddInInst: IDispatch; var custom: PSafeArray); safecall;
- procedure OnDisconnection(RemoveMode: ext_DisconnectMode; var custom: PSafeArray); safecall;
- procedure OnAddInsUpdate(var custom: PSafeArray); safecall;
- procedure OnStartupComplete(var custom: PSafeArray); safecall;
- procedure OnBeginShutdown(var custom: PSafeArray); safecall;
{
 and complete the class by pressing Ctrl-Shft-C
 4. Step
 Register the COM-object with "run / register ActiveX Server"
 Register the AddIn, so that the Addin will be recognized by Outlook
 - Create a new key: HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins\OLAddIn.AddIn
 - create a DWOrd "LoadBehavior" with the value 3
 5.
 Compile the AddIn
 Start Outllok
 Sourcecode
 *********************************************************************************
}


library OLAddIn;
uses
 ComServ,
 OLAddIn_TLB in 'OLAddIn_TLB.pas',
 AddIn in 'AddIn.pas' {AddIn: CoClass};
exports
 DllGetClassObject,
 DllCanUnloadNow,
 DllRegisterServer,
 DllUnregisterServer;
{$R *.TLB}
{$R *.RES}
begin
end.

unit AddIn;
{$WARN SYMBOL_PLATFORM OFF}
interface
uses
 ComObj, ActiveX, OLAddIn_TLB, StdVcl, AddinDesignerObjects_TLB, Outlook_TLB;
type
 TAddIn = class(TAutoObject, IAddIn, IDTExtensibility2)
 protected
  { Protected declarations }
  procedure OnConnection(const Application: IDispatch; ConnectMode: ext_ConnectMode;
  const AddInInst: IDispatch; var custom: PSafeArray); safecall;
  procedure OnDisconnection(RemoveMode: ext_DisconnectMode; var custom: PSafeArray); safecall;
  procedure OnAddInsUpdate(var custom: PSafeArray); safecall;
  procedure OnStartupComplete(var custom: PSafeArray); safecall;
  procedure OnBeginShutdown(var custom: PSafeArray); safecall;
 end;
implementation
uses ComServ, Dialogs;
{ TAddIn }
procedure TAddIn.OnAddInsUpdate(var custom: PSafeArray);
begin
end;
procedure TAddIn.OnBeginShutdown(var custom: PSafeArray);
begin
end;
procedure TAddIn.OnConnection(const Application: IDispatch;
 ConnectMode: ext_ConnectMode; const AddInInst: IDispatch;
 var custom: PSafeArray);
begin
 // To show, that the AddIn has started just say anything
 ShowMessage('Das AddIn wurde gestartet');
end;
procedure TAddIn.OnDisconnection(RemoveMode: ext_DisconnectMode;
 var custom: PSafeArray);
begin
end;
procedure TAddIn.OnStartupComplete(var custom: PSafeArray);
begin
end;
initialization
 TAutoObjectFactory.Create(ComServer, TAddIn, Class_AddIn,
  ciMultiInstance, tmApartment);
end.

Взято с сайта http://www.swissdelphicenter.ch/en/tipsindex.php

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...