Share via


Classe d'IDispEventSimpleImpl

Cette classe fournit des implémentations de méthodes d' IDispatch , sans obtenir des informations de type d'une bibliothèque de types.

Important

Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s'exécutent dans Windows Runtime.

template <
UINT nID,
class T,
const IID* pdiid
>
class ATL_NO_VTABLE IDispEventSimpleImpl :
public _IDispEventLocator<nID, pdiid>

Paramètres

  • nID
    Un identificateur unique de l'objet source.Lorsque IDispEventSimpleImpl est la classe de base pour un contrôle composite, utilisez l'ID de ressource du contrôle contenu souhaité pour ce paramètre.Dans d'autres cas, utilisez un entier positif arbitraire.

  • T
    La classe de l'utilisateur, qui est dérivée d' IDispEventSimpleImpl.

  • pdiid
    Le pointeur à l'IID de la dispinterface d'événements implémentée par cette classe.

Membres

fwy24613.collapse_all(fr-fr,VS.110).gifMéthodes publiques

Nom

Description

IDispEventSimpleImpl::Advise

Établit une connexion à la source de l'événement par défaut.

IDispEventSimpleImpl::DispEventAdvise

Établit une connexion à la source de l'événement.

IDispEventSimpleImpl::DispEventUnadvise

Arrête la connexion à la source de l'événement.

IDispEventSimpleImpl::GetIDsOfNames

Retourne E_NOTIMPL.

IDispEventSimpleImpl::GetTypeInfo

Retourne E_NOTIMPL.

IDispEventSimpleImpl::GetTypeInfoCount

Retourne E_NOTIMPL.

IDispEventSimpleImpl::Invoke

Appelle dans le mappage de récepteur indiqué par gestionnaires d'événements.

IDispEventSimpleImpl::Unadvise

Arrête la connexion à la source de l'événement par défaut.

Notes

IDispEventSimpleImpl permet d'implémenter une dispinterface d'événements sans qu'il soit nécessaire de fournir le code d'implémentation pour chaque méthode/événement sur cette interface.IDispEventSimpleImpl fournit des implémentations de méthodes d' IDispatch .Vous devez seulement fournir des implémentations pour les événements qui vous intéressent par la gestion.

IDispEventSimpleImpl fonctionne avec table de récepteurs d'événements dans votre classe pour router des événements à la fonction gestionnaire appropriée.Pour utiliser cette classe :

  • Ajoutez une macro de SINK_ENTRY_INFORMATION à la table de récepteurs d'événements pour chaque événement sur chaque objet que vous souhaitez gérer.

  • Les informations de type d'approvisionnement pour chaque événement en passant un pointeur vers une structure de _ATL_FUNC_INFORMATION comme paramètre à chaque entrée.Sur la plateforme x86, la valeur d' _ATL_FUNC_INFO.cc doit être CC_CDECL avec la méthode d'appel de fonction de rappel du __stdcall.

  • Appelez DispEventAdvise pour établir la connexion entre l'objet source et la classe de base.

  • Appel DispEventUnadvise pour arrêter la connexion.

Vous devez dériver d' IDispEventSimpleImpl (à l'aide d'une valeur unique pour nID) pour chaque objet dont vous devez gérer des événements.Vous pouvez réutiliser la classe de base par unadvising à un objet source informant ensuite à un objet source différent, mais le nombre maximal d'objets sources qui peuvent être gérés par un objet unique en même temps est limité par le nombre de classes de base d' IDispEventSimpleImpl .

IDispEventSimplImpl fournit les mêmes fonctionnalités que IDispEventImpl, à moins qu'il ne pas obtenir les informations de type sur l'interface d'une bibliothèque de types.Les assistants génèrent un code basé uniquement sur IDispEventImpl, mais vous pouvez utiliser IDispEventSimpleImpl en ajoutant le code manuellement.Utilisez IDispEventSimpleImpl lorsque vous n'avez pas une bibliothèque de types décrivant l'interface d'événement ou ne souhaitez pas éviter la charge mémoire associée à utiliser la bibliothèque de types.

[!REMARQUE]

IDispEventImpl et IDispEventSimpleImpl fournissent leur propre implémentation d' IUnknown::QueryInterface ce qui permet à chaque classe de base d' IDispEventImpl ou d' IDispEventSimpleImpl d'agir en tant qu'identité séparée COM tout en permettant à l'accès direct aux membres de classe dans votre objet COM principal.

L'implémentation ATL windows embedded CE des récepteurs d'événements ActiveX ne prend en charge que les valeurs de retour de type HRESULT ou void de vos méthodes de gestionnaire d'événements ; toute autre valeur de retour n'est pas prise en charge et son comportement n'est pas défini.

Pour plus d'informations, consultez l' IDispEventImpl prenant.

Hiérarchie d'héritage

_IDispEvent

_IDispEventLocator

IDispEventSimpleImpl

Configuration requise

Header: atlcom.h

Voir aussi

Référence

Structure de _ATL_FUNC_INFORMATION

Classe d'IDispatchImpl

Classe d'IDispEventImpl

SINK_ENTRY_INFORMATION

Autres ressources

Vue d'ensemble de la classe ATL