Compartilhar via


Classe de IDispatchImpl

Fornece uma implementação padrão para a parte de IDispatch de uma interface dupla.

Observação importanteImportante

Essa classe e seus membros não podem ser usados em aplicativos executados em Tempo de Execução do Windows.

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
    Uma interface dupla.

  • [in] piid
    Um ponteiro para o IID de T.

  • [in] plibid
    Um ponteiro para o LIBID da biblioteca de tipos que contém informações sobre a interface.Por padrão, a biblioteca de tipos no nível de servidor é passada.

  • [in] wMajor
    A versão principal de biblioteca de tipo.Por padrão, o valor é 1.

  • [in] wMinor
    A versão secundária de biblioteca de tipo.Por padrão, o valor é 0.

  • [in] tihclass
    A classe usada para gerenciar informações de tipo para T.Por padrão, o valor é CComTypeInfoHolder.

Membros

494h01te.collapse_all(pt-br,VS.110).gifConstrutores public

Nome

Descrição

IDispatchImpl::IDispatchImpl

o construtor.Chama AddRef protegido na variável de membro que gerencia informações de tipo para a interface dupla.O destrutor chama Release.

494h01te.collapse_all(pt-br,VS.110).gifMétodos públicos

Nome

Descrição

IDispatchImpl::GetIDsOfNames

Mapeia um conjunto de nomes a um conjunto correspondente de identificadores de distribuição.

IDispatchImpl::GetTypeInfo

Recupera informações de tipo para a interface dupla.

IDispatchImpl::GetTypeInfoCount

Determina se houver informações de tipo para a interface dupla.

IDispatchImpl::Invoke

Fornece acesso a métodos e propriedades expostas pela interface dupla.

Comentários

IDispatchImpl fornece uma implementação padrão para a parte de IDispatch de qualquer interface dupla em um objeto.Uma interface dupla deriva de IDispatch e usar somente tipos compatíveis Automação-.Como um dispinterface, uma interface dupla suporta associação inicial e associação tardia; no entanto, uma interface dupla também suporta associação vtable.

O exemplo a seguir mostra uma implementação 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>

Por padrão, a classe de IDispatchImpl pesquisa informações de tipo para T no Registro.Para implementar uma interface desregistrado, você pode usar a classe de IDispatchImpl sem acessar o Registro usando um número de versão predefinido.Se você criar um objeto de IDispatchImpl que tem 0xFFFF como o valor para wMajor e 0xFFFF como o valor para wMinor, a classe de IDispatchImpl recupera a biblioteca de tipos de arquivo .dll em vez do Registro.

IDispatchImpl contém um membro estático do tipo CComTypeInfoHolder que gerencia informações de tipo para a interface dupla.Se você tiver vários objetos que implementam a mesma interface dupla, somente uma instância de CComTypeInfoHolder é usada.

Hierarquia de herança

T

IDispatchImpl

Requisitos

Cabeçalho: atlcom.h

Consulte também

Outros recursos

Visão geral da classe de ATL