Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A Active Template Library (ATL) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
Fornece uma implementação padrão para a IDispatch parte de uma interface dual.
Importante
Esta classe e os seus membros não podem ser usados em aplicações que sejam executadas no Windows Runtime.
Sintaxe
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
[dentro] Uma interface dupla.
Piid
[dentro] Um apontador para o IID de T.
plibid
[dentro] Um ponteiro para o LIBID da biblioteca de tipos que contém informação sobre a interface. Por defeito, a biblioteca de tipos ao nível do servidor é passada.
wMajor
[dentro] A versão principal da biblioteca de tipos. Por defeito, o valor é 1.
wMinor
[dentro] A versão menor da biblioteca de tipos. Por defeito, o valor é 0.
tihclass
[dentro] A classe utilizada para gerir a informação de tipo para T. Por defeito, o valor é CComTypeInfoHolder.
Membros
Construtores Públicos
| Nome | Description |
|---|---|
| IDispatchImpl::IDispatchImpl | O construtor. Chamadas AddRef à variável membro protegida que gere a informação de tipo para a interface dual. O destruidor chama Release. |
Métodos Públicos
| Nome | Description |
|---|---|
| IDispatchImpl::ObtémIdOfNomes | Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho. |
| IDispatchImpl::ObtendãoTipoInformação | Recupera a informação do tipo para a interface dual. |
| IDispatchImpl::GetTypeInfoCount | Determina se existe informação de tipo disponível para a interface dual. |
| IDispatchImpl::Invoke | Fornece acesso aos métodos e propriedades expostos pela interface dual. |
Observações
IDispatchImpl fornece uma implementação padrão para a IDispatch parte de qualquer interface dual num objeto. Uma interface dupla deriva e IDispatch utiliza apenas tipos compatíveis com Automação. Tal como uma disinterface, uma interface dual suporta ligação precoce e ligação tardia; No entanto, uma interface dupla também suporta ligação Vtable.
O exemplo seguinte 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 defeito, a IDispatchImpl classe procura a informação do tipo T no registo. Para implementar uma interface não registada, pode usar a IDispatchImpl classe sem aceder ao registo usando um número de versão pré-definido. Se criares um IDispatchImpl objeto que tenha 0xFFFF como valor para wMajor e 0xFFFF como valor para wMinor, a IDispatchImpl classe recupera a biblioteca de tipos do ficheiro .dll em vez do registo.
IDispatchImpl contém um membro estático do tipo CComTypeInfoHolder que gere a informação do tipo para a interface dual. Se tiveres vários objetos que implementam a mesma interface dual, apenas uma instância de CComTypeInfoHolder é usada.
Hierarquia de herança
T
IDispatchImpl
Requerimentos
Cabeçalho: atlcom.h
IDispatchImpl::ObtémIdOfNomes
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de despacho.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Observações
Veja IDispatch::GetIDsOfNames no SDK do Windows.
IDispatchImpl::ObtendãoTipoInformação
Recupera a informação do tipo para a interface dual.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
Observações
Veja IDispatch::GetTypeInfo no SDK do Windows.
IDispatchImpl::GetTypeInfoCount
Determina se existe informação de tipo disponível para a interface dual.
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Observações
Veja IDispatch::GetTypeInfoCount no SDK do Windows.
IDispatchImpl::IDispatchImpl
O construtor. Chamadas AddRef à variável membro protegida que gere a informação de tipo para a interface dual. O destruidor chama Release.
IDispatchImpl();
IDispatchImpl::Invoke
Fornece acesso aos métodos e propriedades expostos pela interface dual.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID riid,
LCID lcid,
WORD wFlags,
DISPPARAMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* pexcepinfo,
UINT* puArgErr);
Observações
Veja IDispatch::Invoke no SDK do Windows.