Partilhar via


Implementando a interface de manipulação de eventos

A ATL auxilia o utilizador com os três elementos necessários para manipular eventos: implementar a interface do evento, assessorar a fonte do evento e desassessorar a fonte do evento. As etapas precisas que você precisará seguir dependem do tipo de interface do evento e dos requisitos de desempenho do seu aplicativo.

As formas mais comuns de implementar uma interface usando ATL são:

  • Derivando diretamente de uma interface personalizada.

  • Derivando de IDispatchImpl para interfaces duplas descritas numa biblioteca de tipos.

  • Derivando de IDispEventImpl para dispinterfaces descritas em uma biblioteca de tipos.

  • Derivando de IDispEventSimpleImpl para dispinterfaces não descritas numa biblioteca de tipos ou quando se pretende melhorar a eficiência, não carregando as informações de tipo em tempo de execução.

Se você estiver implementando uma interface personalizada ou dupla, deverá avisar a fonte do evento chamando AtlAdvise ou CComPtrBase::Advise. Você mesmo precisará acompanhar o cookie retornado pela chamada. Ligue para AtlUnadvise para quebrar a conexão.

Se estiver a implementar um dispinterface usando IDispEventImpl ou IDispEventSimpleImpl, deve notificar a fonte do evento chamando IDispEventSimpleImpl::DispEventAdvise. Chame IDispEventSimpleImpl::DispEventUnadvise para interromper a conexão.

Se você estiver usando IDispEventImpl como uma classe base de um controle composto, as fontes de eventos listadas no mapa do coletor serão avisadas e desaconselhadas automaticamente usando CComCompositeControl::AdviseSinkMap.

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

Ver também

Tratamento de eventos