Classe de IDispEventImpl
Essa classe fornece implementações dos métodos de IDispatch .
Importante |
---|
Essa classe e seus membros não podem ser usados em aplicativos executados em Tempo de Execução do Windows. |
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 o recurso de identificação 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 ao IID de dispinterface de evento implementado por esta classe.Essa interface deve ser definida na biblioteca de tipos denotada por plibid, por wMajor, e por wMinor.plibid
Um ponteiro para biblioteca de tipo que define a interface de distribuição apontado por pdiid.Se &GUID_NULL, a biblioteca de tipos será carregado objeto de fonte de eventos.wMajor
A versão principal de biblioteca de tipo.o valor padrão é 0.wMinor
A versão secundária de biblioteca de tipo.o valor padrão é 0.tihclass
A classe usada para gerenciar informações de tipo para T.o valor padrão é uma classe de tipo CComTypeInfoHolder; no entanto, você pode substituir esse parâmetro do modelo fornecendo uma classe de um tipo diferente CComTypeInfoHolder.
Membros
Typedefs público
Nome |
Descrição |
---|---|
A classe usada para gerenciar informações do tipo.Por padrão, CComTypeInfoHolder. |
Construtores public
Nome |
Descrição |
---|---|
o construtor. |
Métodos públicos
Nome |
Descrição |
---|---|
Fica o índice de função especificado para o identificador de distribuição. |
|
Mapeia um único membro e um conjunto opcional de nomes de argumentos correspondente a um conjunto inteiro DISPIDs. |
|
Recupera informações de tipo para um objeto. |
|
Retorna o número de interfaces de informações de tipo. |
|
Recupera o tipo básico de um tipo definido pelo usuário. |
Comentários
IDispEventImpl fornece uma maneira para implementar um dispinterface de evento sem exigir que você fornecer código de implementação para cada método/evento na interface.IDispEventImpl fornece implementações dos métodos de IDispatch .Você só precisará fornecer implementações para eventos que você está interessado em tratamento.
Os trabalhos deIDispEventImpl em conjunto com mapa o coletor de eventos em sua classe para rotear eventos para o manipulador adequado funcionam.Para usar esta classe:
Adicione uma macro de SINK_ENTRY ou de SINK_ENTRY_EX ao mapa o coletor de eventos para cada evento em cada objeto que você deseja manipular.A o usar IDispEventImpl como uma classe base de um controle composto, você pode chamar AtlAdviseSinkMap para estabelecer a conexão e entrar com 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.Chamada DispEventUnadvise para interromper a conexão.
Você deve derivar de IDispEventImpl (usando um valor exclusivo para nID) para cada objeto para o qual você precisar manipular eventos.Você pode reutilizar a classe base unadvising em um objeto de origem que recomendável então contra um objeto diferente de origem, mas o número máximo de objetos de origem que podem ser tratados por um único objeto ao mesmo tempo é limitado pelo número de classes base de IDispEventImpl .
IDispEventImpl fornece a mesma funcionalidade que IDispEventSimpleImpl, a não ser que obtém informações de tipo na interface de uma biblioteca de tipos em vez de ter a fornecido como um ponteiro a estrutura de _ATL_FUNC_INFORMATION .Use IDispEventSimpleImpl quando você não tiver uma biblioteca de tipo que descreve a interface de evento nem a desejar evitar a sobrecarga associada com o uso de biblioteca de tipo.
Observação |
---|
IDispEventImpl e fornecem IDispEventSimpleImpl sua própria implementação de IUnknown::QueryInterface ativando cada classe base de IDispEventImpl e de IDispEventSimpleImpl para atuar como uma identidade separada de COM enquanto ainda permitir acesso direto a membros de classe em seu objeto COM principal. |
A implementação de CE ATL de coletores de eventos ActiveX suporta apenas valores de retorno do tipo ou HRESULT de vácuo dos métodos do 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
Requisitos
Cabeçalho: atlcom.h
Consulte também
Referência
Estrutura de _ATL_FUNC_INFORMATION
Classe de IDispEventSimpleImpl