Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Esta classe fornece implementações dos IDispatch métodos.
Importante
Essa classe e seus membros não podem ser usados em aplicativos executados no Tempo de Execução do Windows.
Sintaxe
template <UINT nID, class T,
const IID* pdiid = &IID_NULL,
const GUID* plibid = &GUID_NULL,
WORD wMajor = 0,
WORD wMinor = 0,
class tihclass = CcomTypeInfoHolder>
class ATL_NO_VTABLE IDispEventImpl : public IDispEventSimpleImpl<nID, T, pdiid>
Parâmetros
nID
Um identificador exclusivo para o objeto de origem. Quando IDispEventImpl é a classe base para um controle composto, use a ID de recurso do controle contido desejado para esse parâmetro. Em outros casos, use um inteiro positivo arbitrário.
T
A classe do usuário, que é derivada de IDispEventImpl.
pdiid
O ponteiro para o IID do evento dispinterface implementado por esta classe. Essa interface deve ser definida na biblioteca de tipos indicada por plibid, wMajore wMinor.
plibid
Um ponteiro para a biblioteca de tipos que define a interface de despacho apontada pelo pdiid. Se &GUID_NULL, a biblioteca de tipos será carregada a partir do objeto que origina os eventos.
wMajor
A versão principal da biblioteca de tipos. O valor padrão é 0.
wMinor
A versão secundária da biblioteca de tipos. O valor padrão é 0.
tihclass
A classe usada para gerenciar as informações de tipo para T. O valor padrão é uma classe de tipo CComTypeInfoHolder, no entanto, você pode substituir esse parâmetro de modelo fornecendo uma classe de um tipo diferente de CComTypeInfoHolder.
Membros
Typedefs Públicos
| Nome | Descrição |
|---|---|
IDispEventImpl::_tihclass |
A classe usada para gerenciar as informações de tipo. Por padrão, CComTypeInfoHolder. |
Construtores Públicos
| Nome | Descrição |
|---|---|
IDispEventImpl::IDispEventImpl |
O construtor. |
Métodos Públicos
| Nome | Descrição |
|---|---|
IDispEventImpl::GetFuncInfoFromId |
Localiza o índice de função para o identificador de despacho especificado. |
IDispEventImpl::GetIDsOfNames |
Mapeia um único membro e um conjunto opcional de nomes de argumentos para um conjunto correspondente de inteiros DISPID. |
IDispEventImpl::GetTypeInfo |
Recupera as informações de tipo de um objeto. |
IDispEventImpl::GetTypeInfoCount |
Recupera o número de interfaces de informações de tipo. |
IDispEventImpl::GetUserDefinedType |
Recupera o tipo básico de um tipo definido pelo usuário. |
Observações
IDispEventImpl fornece uma maneira de implementar um dispinterface de evento sem exigir que você forneça código de implementação para cada método/evento nessa interface.
IDispEventImpl fornece implementações dos IDispatch métodos. Você só precisa fornecer implementações para os eventos que você está interessado em manipular.
IDispEventImpl Funciona em conjunto com o mapa do coletor de eventos em sua classe para rotear eventos para a função de manipulador apropriada. Para usar esta classe:
Adicione uma ou SINK_ENTRY macro SINK_ENTRY_EX ao mapa do coletor de eventos para cada evento em cada objeto que você deseja manipular. Ao usar IDispEventImpl como uma classe base de um controle composto, você pode chamar AtlAdviseSinkMap para estabelecer e quebrar a conexão com as fontes de eventos para todas as entradas no mapa do coletor de eventos. Em outros casos, ou para maior controle, chame DispEventAdvise para estabelecer a conexão entre o objeto de origem e a classe base. Ligue DispEventUnadvise para quebrar a conexão.
Você deve derivar de IDispEventImpl (usando um valor exclusivo para nID) para cada objeto para o qual você precisa manipular eventos. Você pode reutilizar a classe base desaconselhando contra um objeto de origem e, em seguida, aconselhando contra um objeto de origem diferente, mas o número máximo de objetos de origem que podem ser manipulados por um único objeto ao mesmo tempo é limitado pelo número de classes base IDispEventImpl .
IDispEventImpl fornece a mesma funcionalidade que IDispEventSimpleImplo , exceto que obtém informações de tipo sobre a interface de uma biblioteca de tipos, em vez de fornecê-las como um ponteiro para uma _ATL_FUNC_INFO estrutura. Use IDispEventSimpleImpl quando você não tiver uma biblioteca de tipos descrevendo a interface de eventos ou quiser evitar a sobrecarga associada ao uso da biblioteca de tipos.
Observação
IDispEventImple IDispEventSimpleImpl fornecer sua própria implementação para permitir que cada IUnknown::QueryInterface classe base atue IDispEventImpl como uma identidade COM separada, ao mesmo tempo em que permite acesso direto aos membros da IDispEventSimpleImpl classe em seu objeto COM principal.
A implementação do CE ATL de coletores de eventos ActiveX suporta apenas valores de retorno do tipo HRESULT ou void de seus métodos de manipulador de eventos, qualquer outro valor de retorno não é suportado e seu comportamento é indefinido.
Para obter mais informações, consulte Suporte IDispEventImpl.
Hierarquia de herança
_IDispEvent
_IDispEventLocator
IDispEventImpl
Requerimentos
Cabeçalho:atlcom.h
IDispEventImpl::GetFuncInfoFromId
Localiza o índice de função para o identificador de despacho especificado.
HRESULT GetFuncInfoFromId(
const IID& iid,
DISPID dispidMember,
LCID lcid,
_ATL_FUNC_INFO& info);
Parâmetros
iid
[em] Uma referência ao ID da função.
dispidMember
[em] O ID de despacho da função.
lcid
[em] O contexto de localidade do ID da função.
info
[em] A estrutura que indica como a função é chamada.
Valor de retorno
Um valor padrão HRESULT .
IDispEventImpl::GetIDsOfNames
Mapeia um único membro e um conjunto opcional de nomes de argumentos para um conjunto correspondente de inteiros DISPID, que podem ser usados em chamadas subsequentes para IDispatch::Invoke.
STDMETHOD(GetIDsOfNames)(
REFIID riid,
LPOLESTR* rgszNames,
UINT cNames,
LCID lcid,
DISPID* rgdispid);
Observações
Consulte IDispatch::GetIDsOfNames no SDK do Windows.
IDispEventImpl::GetTypeInfo
Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo para uma interface.
STDMETHOD(GetTypeInfo)(
UINT itinfo,
LCID lcid,
ITypeInfo** pptinfo);
IDispEventImpl::GetTypeInfoCount
Recupera o número de interfaces de informações de tipo que um objeto fornece (0 ou 1).
STDMETHOD(GetTypeInfoCount)(UINT* pctinfo);
Observações
Consulte IDispatch::GetTypeInfoCount no SDK do Windows.
IDispEventImpl::GetUserDefinedType
Recupera o tipo básico de um tipo definido pelo usuário.
VARTYPE GetUserDefinedType(
ITypeInfo* pTI,
HREFTYPE hrt);
Parâmetros
pTI
[em] Um ponteiro para a ITypeInfo interface que contém o tipo definido pelo usuário.
hrt
[em] Um identificador para a descrição do tipo a ser recuperado.
Valor de retorno
O tipo de variante.
Observações
Consulte ITypeInfo::GetRefTypeInfo.
IDispEventImpl::IDispEventImpl
O construtor. Armazena os valores dos parâmetros plibiddo modelo de classe , , pdiidwMajore wMinor.
IDispEventImpl();
IDispEventImpl::_tihclass
Este typedef é uma instância do parâmetro tihclassclass template .
typedef tihclass _tihclass;
Observações
Por padrão, a classe é CComTypeInfoHolder.
CComTypeInfoHolder Gerencia as informações de tipo para a classe.
Ver também
_ATL_FUNC_INFO Estrutura
IDispatchImpl Classe
IDispEventSimpleImpl Classe
SINK_ENTRY
SINK_ENTRY_EX
SINK_ENTRY_INFO
Visão geral da classe