Implementazione dell'interfaccia di gestione degli eventi
ATL consente di usare tutti e tre gli elementi necessari per la gestione degli eventi: implementazione dell'interfaccia evento, consulenza dell'origine evento e visualizzazione di una visualizzazione dell'origine evento. I passaggi precisi da eseguire dipendono dal tipo di interfaccia evento e dai requisiti di prestazioni dell'applicazione.
I modi più comuni per implementare un'interfaccia con ATL sono:
Derivazione diretta da un'interfaccia personalizzata.
Derivazione da IDispatchImpl per le interfacce duali descritte in una libreria dei tipi.
Derivazione da IDispEventImpl per le interfacce dispinterface descritte in una libreria dei tipi.
Derivazione da IDispEventSimpleImpl per le interfacce dispinterface non descritte in una libreria dei tipi o quando si vuole migliorare l'efficienza non caricando le informazioni sul tipo in fase di esecuzione.
Se si implementa un'interfaccia personalizzata o doppia, è consigliabile consigliare l'origine evento chiamando AtlAdvise o CComPtrBase::Advise. Sarà necessario tenere traccia del cookie restituito dalla chiamata. Chiamare AtlUnadvise per interrompere la connessione.
Se si implementa una dispinterface usando IDispEventImpl
o IDispEventSimpleImpl
, è consigliabile consigliare l'origine evento chiamando IDispEventSimpleImpl::D ispEventAdvise. Chiamare IDispEventSimpleImpl::D ispEventUnadvise per interrompere la connessione.
Se si usa IDispEventImpl
come classe di base di un controllo composito, le origini evento elencate nella mappa sink verranno consigliate e non visualizzate automaticamente usando CComCompositeControl::AdviseSinkMap.
Le IDispEventImpl
classi e IDispEventSimpleImpl
gestiscono il cookie per l'utente.