Partager via


Implémenter une interface double

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

Pour utiliser cette classe :

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

  • Dérivez votre classe d'une spécialisation d' IDispatchImpl (informations de exécution sur l'interface et la bibliothèque de types comme arguments template).

  • Ajoutez une entrée (ou les entrées) au mappage COM pour exposer l'interface double dans QueryInterface.

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

  • Vérifiez que la bibliothèque de types qui contient la définition d'interface est disponible à vos objets au moment de l'exécution.

Assistant Objet simple ATL

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

Assistant Implémentation d'interface

Si vous avez une interface existante, vous pouvez utiliser Assistant Implémentation d'interface pour ajouter la classe de base nécessaire, les entrées de mappage COM, et les implémentations squelettiques de méthode à une classe existante.

[!REMARQUE]

Vous devrez peut-être ajuster la classe de base générée afin que les numéros de version secondaire de la bibliothèque de types sont passés comme arguments template à votre classe de base d' IDispatchImpl .Assistant Implémentation d'interface ne vérifie pas le numéro de version de la bibliothèque de types pour rechercher vous.

Implémenter IDispatch

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

[!REMARQUE]

ATL offre les classes d' IDispEventImpl et d' IDispEventSimpleImpl pour mieux isoler les dispinterfaces d'implémenter sans nécessiter une bibliothèque de types qui contient la définition d'une interface double compatible.

Voir aussi

Concepts

Interfaces doubles et ATL