Compartir a través de


IDispatchImpl Class

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

Importante

Esta clase y sus miembros no se pueden utilizar en las aplicaciones que se ejecutan en Windows en tiempo de ejecución.

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

  • [in] T
    una interfaz dual.

  • [in] piid
    Un puntero al identificador IID de T.

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

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

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

  • [in] tihclass
    la clase utilizada para administrar la información de tipo para T. De forma predeterminada, el valor es CComTypeInfoHolder.

Members

Constructores públicos

Name

Descripción

IDispatchImpl::IDispatchImpl

el constructor. Llama a AddRef en la variable miembro protegida que administra la información de tipo para la interfaz dual. Las llamadas Releasedel destructor.

Métodos públicos

Name

Descripción

IDispatchImpl::GetIDsOfNames

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

IDispatchImpl::GetTypeInfo

Recupera información de tipo para la interfaz dual.

IDispatchImpl::GetTypeInfoCount

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

IDispatchImpl::Invoke

Proporciona acceso a las propiedades y los métodos expuestos por la interfaz dual.

Comentarios

IDispatchImpl proporciona una implementación predeterminada de la parte de IDispatch de cualquier interfaz dual en un objeto. Una interfaz dual se deriva de IDispatch y sólo utiliza tipos de Automatización-compatible. Como dispinterface, una interfaz dual admite el enlace anticipado y el enlace en tiempo de ejecución; sin embargo, una interfaz dual también admite el enlace vtable.

En el siguiente ejemplo, se muestra una implementación típica 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 clase de IDispatchImpl busca la información de tipo para T en el registro. Para implementar una interfaz no registrada, puede utilizar la clase de IDispatchImpl sin el acceso del registro mediante un número de versión predefinido. Si crea un objeto de IDispatchImpl con 0xFFFF como valor para wMajor y 0xFFFF como valor para wMinor, la clase de IDispatchImpl recupera la biblioteca de tipos del archivo .dll en lugar del registro.

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

Jerarquía de herencia

T

IDispatchImpl

Requisitos

encabezado: atlcom.h

Vea también

Otros recursos

ATL Class Overview