Nun hab ich mal so eine ganz kuriose Sache, jedes TObject hat ja die bekannte Funktion "GetInterfaceTable"...
Komme ich über ein Interface auch an diese Tabelle?
Sprich ich hab ein Variable
Intf: IUnknown, welche auch belegt ist, dass Object dahinter ist mir völlig unbekannt...
Nun würde ich gern alle GUIDs der implementierten Interfaces haben...
Bis jetzt mach ich es pie mal daumen so (Achtung, das ist nur ein grobes Funktionsbeispiel...
):
Delphi-Quellcode:
Function GetGUIDs( Const Intf: IUnknown ): {irgendwas...}
Begin
If Supports( Intf, IInt1 ) Then {lalala}.Add( GUIDToString( IInt1 ) );
If Supports( Intf, IInt2 ) Then {lalala}.Add( GUIDToString( IInt2 ) );
If Supports( Intf, IInt3 ) Then {lalala}.Add( GUIDToString( IInt3 ) );
If Supports( Intf, IInt4 ) Then {lalala}.Add( GUIDToString( IInt4 ) );
If Supports( Intf, IInt5 ) Then {lalala}.Add( GUIDToString( IInt5 ) );
{ Mach mir ein wildes Result... }
End;
Nunja, aber da kann man ja schnell mal ein Interface vergessen, daher wär so eine Tabelle schon eine sehr feine Sache...
Vorallem, da ja eventuell mal ein neueres Modul mit einem alten Programm läuft, welches ja ev. mal das Interface nicht kennt (macht die Liste dannn ja unvollständig)...
Hat jemand eine Idee?
Bye Christian