Riepilogo di gestione degli eventi ATL
In genere la gestione eventi COM è un processo relativamente semplice.Esistono tre passaggi principali:
Implementare l'interfaccia eventi sull'oggetto.
Consigli origine evento che l'oggetto desidera ricevere gli eventi.
Unadvise origine evento quando l'oggetto non ha più ricevere eventi.
Implementazione dell'interfaccia
Esistono quattro modi principali di implementare un'interfaccia utilizzando ATL.
Derivare da |
Appropriato per il tipo di interfaccia |
È necessario implementare qualsiasi methods* |
Richiede una libreria dei tipi in fase di esecuzione |
---|---|---|---|
l'interfaccia |
Vtable |
Sì |
No |
Duale |
Sì |
Sì |
|
Interfaccia dispatch |
No |
Sì |
|
Interfaccia dispatch |
No |
No |
* In utilizzando le classi di supporto ATL, non è necessario mai di implementare metodi IDispatch o IUnknown manualmente.
Consigliare e Unadvising origine evento
Sono disponibili tre metodi principali di e consigliare di unadvising un'origine eventi mediante ATL.
Consigli la funzione |
Funzione di Unadvise |
Il più appropriato per l'utilizzo con |
È necessario tenere traccia dei cookie? |
Commenti |
---|---|---|---|---|
Vtable o interfacce duali |
Sì |
AtlAdvise è una funzione globale ATL.CComPtrBase::Advise viene utilizzato da CComPtr e da CComQIPtr. |
||
No |
Meno parametri che AtlAdvise poiché la classe base rende più lavoro. |
|||
Controlli ActiveX in controlli compositi |
No |
CComCompositeControl::AdviseSinkMap consigliabile qualsiasi mapping del sink delle voci nel caso.Lo stesso unadvises di funzione voci.Questo metodo viene chiamato automaticamente dalla classe CComCompositeControl. |
||
Controlli ActiveX in una finestra di dialogo |
No |
CAxDialogImpl::AdviseSinkMap consigliata e unadvises tutti i controlli ActiveX nella finestra di dialogo.Questa operazione viene eseguita automaticamente automaticamente. |