Je pense que c'est impossible mais ne sait-on jamais.
COM, OLE... ça reste un peu flou pour moi tout ça malheureusement :-/
J'explique mon problème :
Je dois utiliser les services d'une application externe et voilà les seuls éléments que l'on m'a fourni :
Youpi, ça fait bien maigre !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 I_TrucModule = interface(IDispatch) function openModule(const parameters: WideString; out ret: integer): integer; function closeModule(handle: integer): integer; end;
Dans ma joie j'ai essayé ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 procedure truc; var IModule: I_TrucModule; begin IModule:= CreateComObject(I_TrucModule) as I_TrucModule; ... end;
Bien sur, ça ne fonctionne pas, Delphi se plaint que l'interface n'a pas d'identification d'interface (GUID).
Effectivement y'en a pas.
si je modifie la déclaration de l'interface comme suit :
Là ça compile car j'ai mis un numéro de GUID fictif...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 I_TrucModule = interface(IDispatch) ['{ECB83782-59AE-11D5-8AC5-0010DC1854D7}'] function openModule(const parameters: WideString; out ret: integer): integer; function closeModule(handle: integer): integer; end;
le bon, je l'ai pas... Dois-je impérativement l'avoir ? ou existe-il une méthode magique pour récupérer un GUID d'interface ou directement une instance à partir de son nom (ITruc par exemple) ?
Merci d'avance !
Partager