Interfaces de répartition

De RAD Studio
Aller à : navigation, rechercher

Remonter à Interfaces d'Automation


'Les contrôleurs Automation sont des clients qui utilisent l'interface COM IDispatch pour accéder aux objets du serveur COM. Le contrôleur doit d'abord créer l'objet, puis demander à l'interface IUnknown de l'objet un pointeur sur son interface IDispatch. IDispatch garde en interne la trace des méthodes et des propriétés par le biais d'un identificateur de répartition (dispID), qui est un numéro d'identification propre à chaque membre interface. Grâce à IDispatch, un contrôleur récupère les informations de type de l'objet pour l'interface de répartition, puis associe les noms des membres interface aux dispID spécifiques. Ces dispID sont accessibles à l'exécution et les contrôleurs y accèdent en appelant la méthode GetIDsOfNames de IDispatch.

Lorsqu'il connaît le dispID, le contrôleur peut appeler la méthode Invoke de IDispatch pour exécuter le code requis (propriété ou méthode), en regroupant les paramètres de la propriété ou de la méthode dans l'un des paramètres de la méthode Invoke. Invoke a une signature fixe définie lors de la compilation, qui lui permet d'accepter des arguments variés lors de l'appel d'une méthode d'interface.

L'implémentation de l'objet automation de Invoke doit alors dégrouper les paramètres, appeler la propriété ou la méthode et gérer les éventuelles erreurs. Lorsque la propriété ou la méthode revient, l'objet retransmet la valeur renvoyée au contrôleur.

Cette procédure est appelée liaison différée car le contrôleur se lie à la propriété ou à la méthode lors de l'exécution de l'application plutôt que lors de sa compilation.