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.