Classe de IDispEventImpl

Essa classe fornece implementações dos métodos de IDispatch .

Observação importanteImportante

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

d7eecxta.collapse_all(pt-br,VS.110).gifTypedefs público

Nome

Descrição

Classe de IDispEventImpl

A classe usada para gerenciar informações do tipo.Por padrão, CComTypeInfoHolder.

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

Nome

Descrição

IDispEventImpl::IDispEventImpl

o construtor.

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

Nome

Descrição

IDispEventImpl::GetFuncInfoFromId

Fica o índice de função especificado para o identificador de distribuição.

IDispEventImpl::GetIDsOfNames

Mapeia um único membro e um conjunto opcional de nomes de argumentos correspondente a um conjunto inteiro DISPIDs.

IDispEventImpl::GetTypeInfo

Recupera informações de tipo para um objeto.

IDispEventImpl::GetTypeInfoCount

Retorna o número de interfaces de informações de tipo.

IDispEventImpl::GetUserDefinedType

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çãoObservaçã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

IDispEventSimpleImpl

IDispEventImpl

Requisitos

Cabeçalho: atlcom.h

Consulte também

Referência

Estrutura de _ATL_FUNC_INFORMATION

Classe de IDispatchImpl

Classe de IDispEventSimpleImpl

SINK_ENTRY

SINK_ENTRY_EX

SINK_ENTRY_INFORMATION

Outros recursos

Visão geral da classe de ATL