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 IDispEventImpl
du 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