Der Weg geht ungefähr so:
1.) Datei-> Neu ->
ActiveX ->
ActiveX-Bibliothek
Projekt Speichern unter: SMTPEventSink
2.) Datei-> Neu ->
ActiveX -> Automatisierungsobjekt
Name: Discalimer
3.) Projekt->Ansicht->Typbibliothek
4.) im TBL-Editor auf "Verwendet" gehen
im Contextmenue: "Alle Typbibliotheken anzeigen"
5.) "Microsoft CDO for Windows 2000" ankreuzen
6.) im Kontextmenu: "Auswahl anzeigen"
jetzt haben wir die fremde TLB includiert
7.) CoClass "Discalaimer" anwählen, auf Seite "Implementierung" gehen
8.) im Kontextmenue die Schnittstelle "IDisclaimer" entfernen und Schnittstelle "ISMTPOnArrival" hinzufügen
9.) im TLB-Editor auf den Button "Implementierung aktualisieren" klicken
nun sieht der Sourcecode so aus:
Delphi-Quellcode:
TDisclaimer = class(TAutoObject, IDisclaimer, ISMTPOnArrival)
protected
procedure OnArrival(const Msg: IMessage; var EventStatus: CdoEventStatus);
safecall;
{ Protected-Deklarationen }
end;
10.) Methode OnArrival ausprogrammieren. Zunächst empfiehlt es sich, nur einen
Aufruf von MessageDlg zu machen:
Delphi-Quellcode:
uses
ComObj,
ActiveX, SMTPEventSink_TLB, StdVcl, CDO_TLB;
type
TDisclaimer =
class(TAutoObject, IDisclaimer, ISMTPOnArrival)
protected
procedure OnArrival(
const Msg: IMessage;
var EventStatus: CdoEventStatus);
safecall;
{ Protected-Deklarationen }
end;
implementation
uses ComServ, Dialogs, Windows;
procedure TDisclaimer.OnArrival(
const Msg: IMessage;
var EventStatus: CdoEventStatus);
begin
MessageDlg('
in TDisclaimer.OnArrival'#13#10+msg.TextBody, mtInformation, [mbOK], 0);
end;
initialization
TAutoObjectFactory.Create(ComServer, TDisclaimer, Class_Disclaimer,
ciMultiInstance, tmApartment);
end.
Was jetzt noch fehlt, ist die Registrierung der CoClass.
Kämpf dich mal so weit vor und frag dann nochmal falls du nicht weiterkommst.