Einzelnen Beitrag anzeigen

tgoessi

Registriert seit: 31. Mai 2005
34 Beiträge
 
Delphi 5 Enterprise
 
#8

Re: Welches Objekt für COM-Server mit AktivX-Schnittstelle v

  Alt 1. Jun 2005, 10:13
Das Funktioniert bei mir nicht richtig. Ich erhalte einen EIntfCastError, Interface not supported.
Eine GUID habe ich allerdings beim Private-Interface angegeben.
Fehlt da noch etwas. Die Datentypen sollte ja kein Problem sein.

Tom

Zitat von shmia:
Zitat von tgoessi:
Natürlich könnte ich auch ein Interface für diese Funktion definieren, aber dies macht keinen Sinn, da die Funktion nicht von Extern aufgerufen werden soll.
Doch, ein 2. Interface wäre der richtige Weg.
Dieses [private] Interface wird aber nicht im TLB-Editor, sondern direkt im Sourcecode deklariert:
Delphi-Quellcode:
IMyCollectionSetup = Interface(IUnknown)
['{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}']
   procedure SetConfig(const filename:string);
end;
Da dieses Interface von IUnknown abgeleitet ist, kannst alle Delphi-Datentypen benutzen und brauchst kein SafeCall.
Du solltest eine GUID im Interface angeben, damit die Umwandlung mit as klappt:
   (FISetupData as IMyCollectionSetup).SetConfig(...);
  Mit Zitat antworten Zitat