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.
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ê.