Compartilhar via


Implementando a interface de manipulação de eventos

ATL ajuda você com todos os três elementos necessários: manipulando eventos implementando a interface de evento, recomendando a fonte do evento, e unadvising a fonte do evento.As etapas que precisas você precisará ter dependem do tipo da interface de evento e dos requisitos de desempenho de seu aplicativo.

As maneiras mais comuns de implementar uma interface que usa ATL são:

  • Derivando de uma interface diretamente.

  • Derivando de IDispatchImpl para as interfaces duais descritas em uma biblioteca de tipo.

  • Derivando de IDispEventImpl para os dispinterfaces descritos em uma biblioteca de tipo.

  • Derivando de IDispEventSimpleImpl para os dispinterfaces não descritos em uma biblioteca de tipo ou quando você deseja melhorar a eficiência não carregar informações tipo em tempo de execução.

Se você estiver implementando uma interface ou dupla, você deve recomendar a fonte do evento chamando AtlAdvise ou CComPtrBase::Advise.Você precisará manter controle do cookie retornada pela chamada você mesmo.Chamada AtlUnadvise para interromper a conexão.

Se você estiver implementando um dispinterface usando IDispEventImpl ou IDispEventSimpleImpl, você deve recomendar a fonte do evento chamando IDispEventSimpleImpl::DispEventAdvise.Chamada IDispEventSimpleImpl::DispEventUnadvise para interromper a conexão.

Se você estiver usando IDispEventImpl como uma classe base de um controle composto, fontes de eventos listadas no mapa do coletor serão recomendadas e CComCompositeControl::AdviseSinkMapautomaticamente uso de irracional.

As classes de IDispEventImpl e de IDispEventSimpleImpl gerenciam o cookie para você.

Consulte também

Conceitos

Tratamento de evento e ATL