Compartir a través de


IDispatchImpl (clase)

Proporciona una implementación predeterminada para la parte IDispatch de una interfaz dual.

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

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

Parámetros

T
[in] Interfaz dual.

piid
[in] Puntero al IID de T.

plibid
[in] Puntero al LIBID de la biblioteca de tipos que contiene información sobre la interfaz. De forma predeterminada, se pasa la biblioteca de tipos de nivel de servidor.

wMajor
[in] La versión principal de la biblioteca de tipos. De forma predeterminada, el valor es 1.

wMinor
[in] La versión secundaria de la biblioteca de tipos. De forma predeterminada, el valor es 0.

tihclass
[in] Una clase usada para administrar la información de tipo para T. El valor predeterminado es CComTypeInfoHolder.

Miembros

Constructores públicos

Nombre Descripción
IDispatchImpl::IDispatchImpl Constructor . Llama a AddRef en la variable miembro protegida que gestiona la información de tipo para la interfaz dual. El destructor llama a Release.

Métodos públicos

Nombre Descripción
IDispatchImpl::GetIDsOfNames Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.
IDispatchImpl::GetTypeInfo Recupera la información del tipo de la interfaz dual.
IDispatchImpl::GetTypeInfoCount Determina si hay información de tipo disponible para la interfaz dual.
IDispatchImpl::Invoke Proporciona acceso a los métodos y propiedades que se han expuesto en la interfaz dual.

Comentarios

IDispatchImpl proporciona una implementación predeterminada para elIDispatch elemento de cualquier interfaz dual en un objeto. Una interfaz dual deriva de IDispatch y solo usa tipos compatibles con Automation. Al igual que una interfaz dispinterface, una interfaz dual admite enlaces anticipados y enlaces en tiempo de ejecución; sin embargo, una interfaz dual también admite el enlace de vtable.

En el siguiente ejemplo se muestra una implementación 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>

De forma predeterminada, la IDispatchImpl clase busca la información de tipo de T en el registro. Para implementar una interfaz no registrada, se puede usar la clase IDispatchImpl sin tener acceso al registro si se usa un número de versión predefinido. Si crea un IDispatchImpl objeto que tiene 0xFFFF como valor de wMajor y 0xFFFF como valor de wMinor, la clase IDispatchImpl recupera la biblioteca de tipos del archivo .dll en lugar del registro.

IDispatchImpl contiene un miembro estático de tipo CComTypeInfoHolder que administra la información de tipo para la interfaz dual. Si tiene varios objetos que implementan la misma interfaz dual, solo se usa una instancia de CComTypeInfoHolder.

Jerarquía de herencia

T

IDispatchImpl

Requisitos

Encabezado: atlcom.h

IDispatchImpl::GetIDsOfNames

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.

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

Comentarios

Consulte IDispatch::GetIDsOfNames en Windows SDK.

IDispatchImpl::GetTypeInfo

Recupera la información del tipo de la interfaz dual.

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

Comentarios

Consulte IDispatch::GetTypeInfo en Windows SDK.

IDispatchImpl::GetTypeInfoCount

Determina si hay información de tipo disponible para la interfaz dual.

STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);

Comentarios

Consulte el método IDispatch::GetTypeInfoCount de Windows SDK.

IDispatchImpl::IDispatchImpl

Constructor . Llama a AddRef en la variable miembro protegida que gestiona la información de tipo para la interfaz dual. El destructor llama a Release.

IDispatchImpl();

IDispatchImpl::Invoke

Proporciona acceso a los métodos y propiedades que se han expuesto en la interfaz dual.

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

Comentarios

Consulte IDispatch::Invoke en Windows SDK.

Consulte también

Información general sobre la clase