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(...);