Ich habe eine
ActiveX Bibliothek mit einem Automatisierungs-Objekt angelegt.
In der Typenbibliothek habe ich unter Anderem einige Enum-Typen und einige Records deklariert.
Die Records werden in der _TLB in den "dispinterface Deklarationen" nicht erkannt, und durch OleVariant ersetzt.
Bei den IDiapatch Deklarationen klappt das mit den Records.
Im Typenbibliotheks-Editor sieht noch alles richtig aus ...
Delphi-Quellcode:
IPDDAPIaxEvents = dispinterface
[ uuid '{12345678-A8C6-44CE-BFF9-F5257644C83D}',
version 1.0,
helpstring 'Ereignis-Schnittstelle für PDDAPIax-Objekt' ]
procedure OnErrorInfo(var aErrorInfo: TRecErrorInfo) [dispid $000000CE]; stdcall;
end;
... in der _TLB steht die Deklaration nachher falsch drin ...
procedure OnErrorInfo(var aErrorInfo: {??TRecErrorInfo}OleVariant); dispid 206;
TRecErrorInfo enthält einen Enum.Typen, einen Integer und einen WideString
Delphi-Quellcode:
TErrorSource = (
[ uuid '{12345678-9482-4133-8FF8-3442B2D34AE2}',
version 1.0 ]
esApplication = 1;
esPDDAPI = 2;
esNetwork = 3;
esServer = 4;
);
TRecErrorInfo = record
[ uuid '{12345678-DE0C-48AA-94FE-2855D7D9942B}',
version 1.0 ]
ErrorSource: TErrorSource;
ErrorID: Integer;
ErrorText: WideString;
end;
Wie übergebe ich Records an ein EventObjekt bzw. an das dispinterface ?
Kann mit jemand stichpunktartig die Hintergründe erläutern ?
Danke,
schönen Feiertag,
Jens