Am Einfachsten du lädst dir erstmal das
Win32-
SDK runter, denn da sind die "echten" Deklarationen drin zu finden.
Oder du nimmst dir das aus den Header-Files von Dritten (C++ lässt sich da meistens am Einfachsten übersetzen.
Manchmal/oftmals steht auch etwas in den Kommentaren, weil vielen Anderen auch etwas im
MSDN fehlt (und sie keine Lust haben das im
SDK zu suchen, obwohl in den Requirements fast immer erwähnt wird wo man im
SDK was findet > Headerfile .h,
DLL-Name oder hier die
IDL)
Oder Delphi > Komponente > Komponente importieren > Typlib > nach "IMAPI" suchen.
Und ja, wenn als Callback ein Interface übergeben werden soll, dann mußt du dafür ein Objekt (Klasse) implementieren.
https://msdn.microsoft.com/en-us/lib.../aa364831.aspx
Im
MSDN findet man zwar die Deklarationen der Methoden, aber die
GUID (IID) der Interfaces steht da fast nie, auch kann es sein, dass das
MSDN die Methoden in alphabetischer Reihenfolge auflistet, aber
COM-Interface-Methoden sind indiziert und da kommt es auf die richtige Reihenfolge drauf an, bzw. die explizite Angabe der DispID.
Beispiel:
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Du brauchst also erstmal die Interface-Deklaration dafür (siehe IID_DDiscMaster2Events {27354131-7F64-5B0F-8F00-5D77AFBE261E}),
dann die
Implementation, also die Delphi-Klasse dahinter, welche dieses Interface implementiert,
dann davon eine "Interface"-Instanz erstellen und an die "Registerfunktion" übergeben. (IConnectionPointContainer)