IDispEventSimpleImpl, classe

Cette classe fournit des implémentations des IDispatch méthodes, sans obtenir d’informations de type à partir 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.

Syntaxe

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

Paramètres

nID
Identificateur unique de l’objet source. Quand IDispEventSimpleImpl est la classe de base d’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
Classe de l’utilisateur, dérivée de IDispEventSimpleImpl.

pdiid
Pointeur vers l’IID de la dispinterface d’événement implémentée par cette classe.

Membres

Méthodes publiques

Nom Description
IDispEventSimpleImpl ::Conseiller Établit une connexion avec la source d’événement par défaut.
IDispEventSimpleImpl ::D ispEventAdvise Établit une connexion avec la source d’événement.
IDispEventSimpleImpl ::D ispEventUnadvise Interrompt la connexion avec la source d’événement.
IDispEventSimpleImpl ::GetIDsOfNames Retourne E_NOTIMPL.
IDispEventSimpleImpl ::GetTypeInfo Retourne E_NOTIMPL.
IDispEventSimpleImpl ::GetTypeInfoCount Retourne E_NOTIMPL.
IDispEventSimpleImpl ::Invoke Appelle les gestionnaires d’événements répertoriés dans la carte du récepteur d’événements.
IDispEventSimpleImpl ::Unadvise Interrompt la connexion avec la source d’événement par défaut.

Notes

IDispEventSimpleImpl fournit un moyen d’implémenter une dispinterface d’événement sans vous obliger à fournir du code d’implémentation pour chaque méthode/événement sur cette interface. IDispEventSimpleImpl fournit des implémentations des IDispatch méthodes. Vous devez uniquement fournir des implémentations pour les événements qui vous intéressent à la gestion.

IDispEventSimpleImpl fonctionne conjointement avec le mappage récepteur d’événements dans votre classe pour router les événements vers la fonction de gestionnaire appropriée. Pour utiliser cette classe :

  • Ajoutez une macro SINK_ENTRY_INFO au mappage du récepteur d’événements pour chaque événement sur chaque objet que vous souhaitez gérer.

  • Fournissez des informations de type pour chaque événement en passant un pointeur à une structure _ATL_FUNC_INFO en tant que paramètre pour chaque entrée. Sur la plateforme x86, la _ATL_FUNC_INFO.cc valeur doit être CC_CDECL avec la méthode d’appel de fonction de rappel de __stdcall.

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

  • Appelez DispEventUnadvise pour interrompre la connexion.

Vous devez dériver (à l’aide IDispEventSimpleImpl d’une valeur unique pour nID) pour chaque objet pour lequel vous devez gérer les événements. Vous pouvez réutiliser la classe de base en désadvisant un objet source, puis en conseillant sur un autre objet source, mais le nombre maximal d’objets sources pouvant être gérés par un seul objet à la fois est limité par le nombre de classes de IDispEventSimpleImpl base.

IDispEventSimplImpl fournit les mêmes fonctionnalités que IDispEventImpl, sauf qu’elle n’obtient pas d’informations de type sur l’interface à partir d’une bibliothèque de types. Les Assistants génèrent du code uniquement en fonction IDispEventImpldu code, mais vous pouvez l’utiliser IDispEventSimpleImpl en ajoutant le code manuellement. Utilisez IDispEventSimpleImpl quand vous n’avez pas de bibliothèque de types décrivant l’interface d’événement ou que vous souhaitez éviter la surcharge associée à l’utilisation de la bibliothèque de types.

Remarque

IDispEventImpl et IDispEventSimpleImpl fournissez leur propre implémentation permettant IUnknown::QueryInterface à chaque IDispEventImpl classe de base d’agir IDispEventSimpleImpl en tant qu’identité COM distincte tout en autorisant l’accès direct aux membres de classe dans votre objet COM principal.

L’implémentation CE ATL des récepteurs d’événements ActiveX prend uniquement en charge 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 Prise en charge d’IDispEventImpl.

Hiérarchie d'héritage

_IDispEvent

_IDispEventLocator

IDispEventSimpleImpl

Spécifications

En-tête : atlcom.h

IDispEventSimpleImpl ::Conseiller

Appelez cette méthode pour établir une connexion avec la source d’événement représentée par pUnk.

HRESULT Advise(IUnknown* pUnk);

Paramètres

punk
[in] Pointeur vers l’interface IUnknown de l’objet source d’événement.

Valeur de retour

S_OK ou toute valeur HRESULT d’échec.

Notes

Une fois la connexion établie, les événements déclenchés à partir de pUnk sont routés vers les gestionnaires de votre classe par le biais du mappage du récepteur d’événements.

Remarque

Si votre classe dérive de plusieurs IDispEventSimpleImpl classes, vous devez lever l’ambiguïté des appels à cette méthode en définissant l’appel avec la classe de base particulière qui vous intéresse.

Advise établit une connexion avec la source d’événement par défaut, il obtient l’IID de la source d’événement par défaut de l’objet, comme déterminé par AtlGetObjectSourceInterface.

IDispEventSimpleImpl ::D ispEventAdvise

Appelez cette méthode pour établir une connexion avec la source d’événement représentée par pUnk.

HRESULT DispEventAdvise(IUnknown* pUnk  const IID* piid);

Paramètres

punk
[in] Pointeur vers l’interface IUnknown de l’objet source d’événement.

piid
Pointeur vers l’IID de l’objet source d’événement.

Valeur de retour

S_OK ou toute valeur HRESULT d’échec.

Notes

Par la suite, les événements déclenchés à partir de pUnk sont routés vers des gestionnaires de votre classe par le biais du mappage du récepteur d’événements.

Remarque

Si votre classe dérive de plusieurs IDispEventSimpleImpl classes, vous devez lever l’ambiguïté des appels à cette méthode en définissant l’appel avec la classe de base particulière qui vous intéresse.

DispEventAdvise établit une connexion avec la source d’événement spécifiée dans pdiid.

IDispEventSimpleImpl ::D ispEventUnadvise

Interrompt la connexion avec la source d’événement représentée par pUnk.

HRESULT DispEventUnadvise(IUnknown* pUnk  const IID* piid);

Paramètres

punk
[in] Pointeur vers l’interface IUnknown de l’objet source d’événement.

piid
Pointeur vers l’IID de l’objet source d’événement.

Valeur de retour

S_OK ou toute valeur HRESULT d’échec.

Notes

Une fois la connexion interrompue, les événements ne seront plus routés vers les fonctions de gestionnaire répertoriées dans le mappage du récepteur d’événements.

Remarque

Si votre classe dérive de plusieurs IDispEventSimpleImpl classes, vous devez lever l’ambiguïté des appels à cette méthode en définissant l’appel avec la classe de base particulière qui vous intéresse.

DispEventAdvise interrompt une connexion établie avec la source d’événement spécifiée dans pdiid.

IDispEventSimpleImpl ::GetIDsOfNames

Cette implémentation de retours IDispatch::GetIDsOfNames E_NOTIMPL.

STDMETHOD(GetIDsOfNames)(
    REFIID /* riid */,
    LPOLESTR* /* rgszNames */,
    UINT /* cNames */,
    LCID /* lcid */,
    DISPID* /* rgdispid */);

Notes

Consultez IDispatch ::GetIDsOfNames dans le Kit de développement logiciel (SDK) Windows.

IDispEventSimpleImpl ::GetTypeInfo

Cette implémentation de retours IDispatch::GetTypeInfo E_NOTIMPL.

STDMETHOD(GetTypeInfo)(
    UINT /* itinfo */,
    LCID /* lcid */,
    ITypeInfo** /* pptinfo */);

Notes

Voir IDispatch ::GetTypeInfo dans le Kit de développement logiciel (SDK) Windows.

IDispEventSimpleImpl ::GetTypeInfoCount

Cette implémentation de retours IDispatch::GetTypeInfoCount E_NOTIMPL.

STDMETHOD(GetTypeInfoCount)(UINT* /* pctinfo */);

Notes

Voir IDispatch ::GetTypeInfoCount dans le Kit de développement logiciel (SDK) Windows.

IDispEventSimpleImpl ::Invoke

Cette implémentation des appels aux gestionnaires d’événements IDispatch::Invoke répertoriés dans la carte du récepteur d’événements.

STDMETHOD(Invoke)(
    DISPID dispidMember,
    REFIID /* riid */,
    LCID lcid,
    WORD /* wFlags */,
    DISPPARMS* pdispparams,
    VARIANT* pvarResult,
    EXCEPINFO* /* pexcepinfo */,
    UINT* /* puArgErr */);

Notes

Voir IDispatch ::Invoke.

IDispEventSimpleImpl ::Unadvise

Interrompt la connexion avec la source d’événement représentée par pUnk.

HRESULT Unadvise(IUnknown* pUnk);

Paramètres

punk
[in] Pointeur vers l’interface IUnknown de l’objet source d’événement.

Valeur de retour

S_OK ou toute valeur HRESULT d’échec.

Notes

Une fois la connexion interrompue, les événements ne seront plus routés vers les fonctions de gestionnaire répertoriées dans le mappage du récepteur d’événements.

Remarque

Si votre classe dérive de plusieurs IDispEventSimpleImpl classes, vous devez lever l’ambiguïté des appels à cette méthode en définissant l’appel avec la classe de base particulière qui vous intéresse.

Unadvise interrompt une connexion qui a été établie avec la source d’événement par défaut spécifiée dans pdiid.

Unavise interrompt une connexion avec la source d’événement par défaut, elle obtient l’IID de la source d’événement par défaut de l’objet, comme déterminé par AtlGetObjectSourceInterface.

Voir aussi

_ATL_FUNC_INFO, structure
IDispatchImpl, classe
IDispEventImpl, classe
SINK_ENTRY_INFO
Vue d’ensemble de la classe