Implementar o evento de manipulação de interface
ATL ajuda a todos os três elementos necessários para a manipulação de eventos: implementar a interface de evento, indicando que fonte do evento e unadvising fonte do evento.As etapas precisas que precisará levar dependem do tipo de interface de eventos e os requisitos de desempenho do seu aplicativo.
As formas mais comuns de implementação de uma interface usando ATL são:
Derivar diretamente de uma interface personalizada.
A derivação de IDispatchImpl para duas interfaces descrito em uma biblioteca de tipos.
A derivação de IDispEventImpl dispinterfaces descrito em uma biblioteca de tipos.
A derivação de IDispEventSimpleImpl dispinterfaces não descrito em uma biblioteca de tipos ou quando desejar melhorar a eficiência não carregando as informações do tipo em time de execução.
Se você estiver implementando uma interface personalizada ou dupla, deve informar fonte do evento chamando AtlAdvise or CComPtrBase::Advise.Você precisará manter o controle de cookie retornado pela telefonar. De telefonarAtlUnadvise para interromper a conexão.
Se você estiver implementando um dispinterface usando IDispEventImpl ou IDispEventSimpleImpl, você deve informar fonte do evento chamando IDispEventSimpleImpl::DispEventAdvise. De telefonarIDispEventSimpleImpl::DispEventUnadvise para interromper a conexão.
Se você estiver usando IDispEventImpl sistema autônomo uma classe base de um controle composto, sistema autônomo fontes de evento listadas no MAP coletor será aconselhável e unadvised automaticamente usando CComCompositeControl::AdviseSinkMap.
The IDispEventImpl e IDispEventSimpleImpl classes de gerenciar o cookie para você.