Partager via


Implémentation d’une interface double

Vous pouvez implémenter une interface double à l’aide de la classe IDispatchImpl , qui fournit une implémentation par défaut des IDispatch méthodes dans une interface double. Pour plus d'informations, consultez Implementing the IDispatch Interface.

Pour utiliser cette classe :

  • Définissez votre double interface dans une bibliothèque de types.

  • Dérivez votre classe d’une spécialisation de IDispatchImpl (transmettez des informations sur l’interface et la bibliothèque de types en tant qu’arguments de modèle).

  • Ajoutez une entrée (ou des entrées) à la carte COM pour exposer l’interface double via QueryInterface.

  • Implémentez la partie vtable de l’interface dans votre classe.

  • Vérifiez que la bibliothèque de types contenant la définition d’interface est disponible pour vos objets au moment de l’exécution.

Assistant Objet simple ATL

Si vous souhaitez créer une interface et une nouvelle classe pour l’implémenter, vous pouvez utiliser la boîte de dialogue Ajouter une classe ATL, puis l’Assistant Objet simple ATL.

Assistant Implémentation d'interface

Si vous disposez d’une interface existante, vous pouvez utiliser l’Assistant Implémenter l’interface pour ajouter la classe de base nécessaire, les entrées de mappage COM et les implémentations de méthode squelette à une classe existante.

Remarque

Vous devrez peut-être ajuster la classe de base générée afin que les numéros de version principale et secondaire de la bibliothèque de types soient transmis en tant qu’arguments de modèle à votre IDispatchImpl classe de base. L’Assistant Implémenter l’interface n’case activée pas le numéro de version de la bibliothèque de types pour vous.

Implémentation d’IDispatch

Vous pouvez utiliser une IDispatchImpl classe de base pour fournir une implémentation d’une dispinterface simplement en spécifiant l’entrée appropriée dans la carte COM (à l’aide de la macro COM_INTERFACE_ENTRY2 ou COM_INTERFACE_ENTRY_IID ) tant que vous disposez d’une bibliothèque de types décrivant une interface double correspondante. Il est très courant d’implémenter l’interface IDispatch de cette façon, par exemple. L’Assistant Objet simple ATL et l’Assistant Implémentation de l’interface supposent que vous avez l’intention d’implémenter IDispatch de cette façon, afin qu’ils ajoutent l’entrée appropriée à la carte.

Remarque

ATL offre les classes IDispEventImpl et IDispEventSimpleImpl pour vous aider à implémenter des dispinterfaces sans nécessiter de bibliothèque de types contenant la définition d’une interface double compatible.

Voir aussi

Interfaces doubles et ATL