Interfaces doubles

De RAD Studio
Aller à : navigation, rechercher

Remonter à Interfaces d'Automation


Une interface double est à la fois une interface personnalisée et une dispinterface. Elle est implémentée en tant qu'interface VTable COM qui dérive de IDispatch. Pour les contrôleurs qui accèdent à l'objet uniquement à l'exécution, la dispinterface est disponible. Pour les objets qui peuvent tirer profit de la liaison à la compilation, c'est l'interface VTable, la plus efficace, qui est utilisée.

Les interfaces doubles offrent les avantages combinés des interfaces VTable et des dispinterfaces :

  • Pour les interfaces VTable, le compilateur fait une vérification de type et fournit des messages d'erreurs plus informatifs.
  • Pour les contrôleurs Automation qui ne peuvent pas obtenir d'information de type, la dispinterface fournit l'accès à l'objet à l'exécution.
  • Pour les serveurs en processus, vous bénéficiez d'un accès rapide via les interfaces VTable.
  • Pour les serveurs hors processus, COM effectue le marshaling des données à la fois pour les interfaces VTable et pour les dispinterfaces. COM fournit une implémentation proxy/stub générique qui peut réaliser le marshaling de l'interface en fonction des informations contenues dans une bibliothèque de types.

Les trois premières entrées de la VTable d'une interface double font référence à l'interface IUnknown, les quatre suivantes font référence à l'interface IDispatch, les autres sont des entrées COM pour l'accès direct aux membres de l'interface personnalisée.