En Delphi, vous pouvez passer des références de classe pour comparer les types d'objets et les instancier. Pouvez-vous faire de même avec les références d'interface transmises à un serveur d'automatisation COM?Comment passer une référence de type interface/GUID à une méthode d'automatisation dans Delphi
Par exemple, vous pouvez définir une méthode prenant un paramètre GUID utilisant l'éditeur de bibliothèque de types:
function ChildNodesOfType(NodeType: TGUID): IMBNode; safecall;
Dans cette fonction, je voudrais revenir types d'automatisation qui prennent en charge l'interface spécifiée par NodeType, par exemple
if Supports(SomeNode, NodeType) then
result := SomeNode;
Mais les soutiens appellent est toujours un échec, j'ai essayé de passer dans les Guids définies dans la bibliothèque de type, mais aucun des différents types (Ixxx, Class_xxxx, IId_Ixxxx) semble fonctionner.
Salut Rob, merci, bonne réponse. Il n'y avait aucune raison que cela ne fonctionne pas, car j'utilisais TInterfacedObject sans fioriture. Donc j'ai vérifié mes suppositions et l'échec était en effet le résultat d'un passage accidentel d'un objet à Supports qui n'a pas implémenté l'interface. –