Condividi tramite


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.

Vedi anche

Gestione di eventi