IDispatchImpl, classe
Fournit une implémentation par défaut pour la IDispatch
partie d’une interface double.
Important
Cette classe et ses membres ne peuvent pas être utilisés dans les applications qui s’exécutent dans Windows Runtime.
Syntaxe
template<class T,
const IID* piid= &__uuidof(T),
const GUID* plibid = &CAtlModule::m_libid,
WORD wMajor = 1,
WORD wMinor = 0,
class tihclass = CComTypeInfoHolder>
class ATL_NO_VTABLE IDispatchImpl : public T
Paramètres
T
[in] Une interface double.
piid
[in] Pointeur vers l’IID de T.
plibid
[in] Pointeur vers le LIBID de la bibliothèque de types qui contient des informations sur l’interface. Par défaut, la bibliothèque de types au niveau du serveur est passée.
wMajor
[in] Version principale de la bibliothèque de types. Par défaut, la valeur est 1.
wMinor
[in] Version mineure de la bibliothèque de types. Par défaut, la valeur est 0.
tihclass
[in] Classe utilisée pour gérer les informations de type pour T. Par défaut, la valeur est CComTypeInfoHolder
.
Membres
Constructeurs publics
Nom | Description |
---|---|
IDispatchImpl ::IDispatchImpl | Constructeur . Appelle AddRef la variable membre protégée qui gère les informations de type pour l’interface double. Le destructeur appelle Release . |
Méthodes publiques
Nom | Description |
---|---|
IDispatchImpl ::GetIDsOfNames | Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. |
IDispatchImpl ::GetTypeInfo | Récupère les informations de type pour l’interface double. |
IDispatchImpl ::GetTypeInfoCount | Détermine s’il existe des informations de type disponibles pour l’interface double. |
IDispatchImpl ::Invoke | Fournit l’accès aux méthodes et aux propriétés exposées par l’interface double. |
Notes
IDispatchImpl
fournit une implémentation par défaut pour la IDispatch
partie de n’importe quelle interface double sur un objet. Une interface double dérive et IDispatch
utilise uniquement des types compatibles Automation. Comme une dispinterface, une interface double prend en charge la liaison anticipée et la liaison tardive ; toutefois, une interface double prend également en charge la liaison de table virtuelle.
L’exemple suivant montre une implémentation classique de IDispatchImpl
.
class ATL_NO_VTABLE CBeeper :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CBeeper, &CLSID_Beeper>,
public IDispatchImpl<IBeeper, &IID_IBeeper, &LIBID_NVC_ATL_COMLib, /*wMajor =*/ 1, /*wMinor =*/ 0>
Par défaut, la IDispatchImpl
classe recherche les informations de type pour T dans le Registre. Pour implémenter une interface non inscrite, vous pouvez utiliser la IDispatchImpl
classe sans accéder au Registre à l’aide d’un numéro de version prédéfini. Si vous créez un IDispatchImpl
objet qui a 0xFFFF comme valeur pour wMajor et 0xFFFF comme valeur pour wMinor, la IDispatchImpl
classe récupère la bibliothèque de types à partir du fichier .dll au lieu du Registre.
IDispatchImpl
contient un membre statique de type CComTypeInfoHolder
qui gère les informations de type pour l’interface double. Si vous avez plusieurs objets qui implémentent la même interface double, une seule instance est CComTypeInfoHolder
utilisée.
Hiérarchie d'héritage
T
IDispatchImpl
Spécifications
En-tête : atlcom.h
IDispatchImpl ::GetIDsOfNames
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch.
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.
IDispatchImpl ::GetTypeInfo
Récupère les informations de type pour l’interface double.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
Notes
Voir IDispatch ::GetTypeInfo dans le Kit de développement logiciel (SDK) Windows.
IDispatchImpl ::GetTypeInfoCount
Détermine s’il existe des informations de type disponibles pour l’interface double.
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Notes
Consultez IDispatch::GetTypeInfoCount
le Kit de développement logiciel (SDK) Windows.
IDispatchImpl ::IDispatchImpl
Constructeur . Appelle AddRef
la variable membre protégée qui gère les informations de type pour l’interface double. Le destructeur appelle Release
.
IDispatchImpl();
IDispatchImpl ::Invoke
Fournit l’accès aux méthodes et aux propriétés exposées par l’interface double.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr);
Notes
Consultez IDispatch ::Invoke dans le Kit de développement logiciel (SDK) Windows.