Partage via


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.

Voir aussi

Vue d’ensemble de la classe