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.
Esta classe fornece implementações dos IDispatch métodos, sem obter informação de tipos de uma biblioteca de tipos.
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>
class ATL_NO_VTABLE IDispEventSimpleImpl : public _IDispEventLocator<nID, pdiid>
Parâmetros
nID
Um identificador único para o objeto de origem. Quando IDispEventSimpleImpl é a classe base para um controlo composto, use o ID de recurso do controlo contido desejado para este parâmetro. Noutros casos, utilize-se um inteiro positivo arbitrário.
T
A classe do utilizador, que deriva de IDispEventSimpleImpl.
pdiid
O apontador para o IID da disinterface de eventos implementada por esta classe.
Membros
Métodos Públicos
| Nome | Description |
|---|---|
| IDispEventSimpleImpl::Aconselhar | Estabelece uma ligação com a fonte de eventos padrão. |
| IDispEventSimpleImpl::DispEventAdvise | Estabelece uma ligação com a fonte do evento. |
| IDispEventSimpleImpl::DispEventUnadvise | Quebra a ligação com a fonte do evento. |
| IDispEventSimpleImpl::GetIDsOfNames | Devolve E_NOTIMPL. |
| IDispEventSimpleImpl::GetTypeInfo | Devolve E_NOTIMPL. |
| IDispEventSimpleImpl::GetTypeInfoCount | Devolve E_NOTIMPL. |
| IDispEventSimpleImpl::Invoke | Chama os gestores de eventos listados no event sink map. |
| IDispEventSimpleImpl::Unadvise | Quebra a ligação com a fonte de eventos padrão. |
Observações
IDispEventSimpleImpl fornece uma forma de implementar uma disinterface de eventos sem exigir que forneça código de implementação para cada método/evento nessa interface.
IDispEventSimpleImpl fornece implementações dos IDispatch métodos. Só precisa de fornecer implementações para os eventos que lhe interessa gerir.
IDispEventSimpleImpl Funciona em conjunto com o event sink map na tua classe para encaminhar eventos para a função handler apropriada. Para usar esta classe:
Adiciona uma macro de SINK_ENTRY_INFO ao mapa do dissipador de eventos para cada evento em cada objeto que queiras gerir.
Forneça informação de tipo para cada evento passando um ponteiro para uma estrutura _ATL_FUNC_INFO como parâmetro para cada entrada. Na plataforma x86, o
_ATL_FUNC_INFO.ccvalor deve ser CC_CDECL com o método de chamada da função de callback de __stdcall.Chame DispEventAdvise para estabelecer a ligação entre o objeto de origem e a classe base.
Liga para o DispEventUnadvise para cortar a ligação.
Deve derivar de IDispEventSimpleImpl (usando um valor único para nID) para cada objeto para o qual precisa de gerir eventos. Pode reutilizar a classe base desaconselhando contra um objeto fonte e depois aconselhando contra outro objeto-fonte, mas o número máximo de objetos fonte que pode ser tratado por um único objeto de cada vez é limitado pelo número de IDispEventSimpleImpl classes base.
IDispEventSimplImpl fornece a mesma funcionalidade que o IDispEventImpl, exceto que não obtém informação de tipo sobre a interface a partir de uma biblioteca de tipos. Os assistentes geram código apenas com base em IDispEventImpl, mas podes usar IDispEventSimpleImpl adicionando o código manualmente.
IDispEventSimpleImpl Use quando não tiver uma biblioteca de tipos que descreva a interface de eventos ou quiser evitar a sobrecarga associada à utilização da biblioteca de tipos.
Observação
IDispEventImpl e IDispEventSimpleImpl fornecer a sua própria implementação permitindo IUnknown::QueryInterface que cada IDispEventImpl classe base IDispEventSimpleImpl atue como uma identidade COM separada, permitindo ainda assim acesso direto aos membros da classe no seu objeto COM principal.
A implementação CE ATL dos sinks de eventos ActiveX só suporta valores de retorno do tipo HRESULT ou void dos seus métodos de handler de eventos; qualquer outro valor de retorno não é suportado e o seu comportamento é indefinido.
Para mais informações, veja Apoiar IDispEventImpl.
Hierarquia de herança
_IDispEvent
_IDispEventLocator
IDispEventSimpleImpl
Requerimentos
Cabeçalho: atlcom.h
IDispEventSimpleImpl::Aconselhar
Chame este método para estabelecer uma ligação com a fonte do evento representada por pUnk.
HRESULT Advise(IUnknown* pUnk);
Parâmetros
pUnk
[dentro] Um ponteiro para a IUnknown interface do objeto fonte de eventos.
Valor de retorno
S_OK ou qualquer valor HRESULT de falha.
Observações
Uma vez estabelecida a ligação, os eventos disparados a partir do pUnk serão encaminhados para os handlers da sua classe através do event sink map.
Observação
Se a sua classe deriva de várias IDispEventSimpleImpl classes, terá de desambiguar chamadas a este método ao definir o âmbito da chamada com a classe base específica que lhe interessa.
Advise estabelece uma ligação com a fonte de eventos padrão, recebe o IID da fonte de evento padrão do objeto, conforme determinado pelo AtlGetObjectSourceInterface.
IDispEventSimpleImpl::D ispEventAdvise
Chame este método para estabelecer uma ligação com a fonte do evento representada por pUnk.
HRESULT DispEventAdvise(IUnknown* pUnk const IID* piid);
Parâmetros
pUnk
[dentro] Um ponteiro para a IUnknown interface do objeto fonte de eventos.
Piid
Um apontador para o IID do objeto fonte de eventos.
Valor de retorno
S_OK ou qualquer valor HRESULT de falha.
Observações
Subsequentemente, os eventos disparados a partir do pUnk serão encaminhados para os handlers da sua classe através do mapa de sumidouros de eventos.
Observação
Se a sua classe deriva de várias IDispEventSimpleImpl classes, terá de desambiguar chamadas a este método ao definir o âmbito da chamada com a classe base específica que lhe interessa.
DispEventAdvise estabelece uma ligação com a fonte de eventos especificada em pdiid.
IDispEventSimpleImpl::D ispEventUnadvise
Quebra a ligação com a fonte do evento representada por pUnk.
HRESULT DispEventUnadvise(IUnknown* pUnk const IID* piid);
Parâmetros
pUnk
[dentro] Um ponteiro para a IUnknown interface do objeto fonte de eventos.
Piid
Um apontador para o IID do objeto fonte de eventos.
Valor de retorno
S_OK ou qualquer valor HRESULT de falha.
Observações
Uma vez que a ligação seja quebrada, os eventos deixarão de ser encaminhados para as funções handler listadas no event sink map.
Observação
Se a sua classe deriva de várias IDispEventSimpleImpl classes, terá de desambiguar chamadas a este método ao definir o âmbito da chamada com a classe base específica que lhe interessa.
DispEventAdvise quebra uma ligação que foi estabelecida com a fonte do evento especificada em pdiid.
IDispEventSimpleImpl::GetIDsOfNames
Esta implementação de IDispatch::GetIDsOfNames retornos E_NOTIMPL.
STDMETHOD(GetIDsOfNames)(
REFIID /* riid */,
LPOLESTR* /* rgszNames */,
UINT /* cNames */,
LCID /* lcid */,
DISPID* /* rgdispid */);
Observações
Veja IDispatch::GetIDsOfNames no SDK do Windows.
IDispEventSimpleImpl::GetTypeInfo
Esta implementação de IDispatch::GetTypeInfo retornos E_NOTIMPL.
STDMETHOD(GetTypeInfo)(
UINT /* itinfo */,
LCID /* lcid */,
ITypeInfo** /* pptinfo */);
Observações
Veja IDispatch::GetTypeInfo no SDK do Windows.
IDispEventSimpleImpl::GetTypeInfoCount
Esta implementação de IDispatch::GetTypeInfoCount retornos E_NOTIMPL.
STDMETHOD(GetTypeInfoCount)(UINT* /* pctinfo */);
Observações
Veja IDispatch::GetTypeInfoCount no SDK do Windows.
IDispEventSimpleImpl::Invoke
Esta implementação IDispatch::Invoke chama os gestores de eventos listados no event sink map.
STDMETHOD(Invoke)(
DISPID dispidMember,
REFIID /* riid */,
LCID lcid,
WORD /* wFlags */,
DISPPARMS* pdispparams,
VARIANT* pvarResult,
EXCEPINFO* /* pexcepinfo */,
UINT* /* puArgErr */);
Observações
Veja IDispatch::Invoke.
IDispEventSimpleImpl::Unadvise
Quebra a ligação com a fonte do evento representada por pUnk.
HRESULT Unadvise(IUnknown* pUnk);
Parâmetros
pUnk
[dentro] Um ponteiro para a IUnknown interface do objeto fonte de eventos.
Valor de retorno
S_OK ou qualquer valor HRESULT de falha.
Observações
Uma vez que a ligação seja quebrada, os eventos deixarão de ser encaminhados para as funções handler listadas no event sink map.
Observação
Se a sua classe deriva de várias IDispEventSimpleImpl classes, terá de desambiguar chamadas a este método ao definir o âmbito da chamada com a classe base específica que lhe interessa.
Unadvise quebra uma ligação que foi estabelecida com a fonte de eventos padrão especificada em pdiid.
Unavise se quebra uma ligação com a fonte de eventos predefinida, recebe o IID da fonte de evento padrão do objeto, conforme determinado pelo AtlGetObjectSourceInterface.
Consulte também
_ATL_FUNC_INFO Estrutura
Classe IDispatchImpl
Classe IDispEventImpl
SINK_ENTRY_INFO
Visão geral da classe