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

No

IDispatchImpl

Duale

IDispEventImpl

Interfaccia dispatch

No

IDispEventSimpleImpl

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

AtlAdvise, CComPtrBase::Advise

AtlUnadvise

Vtable o interfacce duali

AtlAdvise è una funzione globale ATL.CComPtrBase::Advise viene utilizzato da CComPtr e da CComQIPtr.

IDispEventSimpleImpl::DispEventAdvise

IDispEventSimpleImpl::DispEventUnadvise

IDispEventImpl o IDispEventSimpleImpl

No

Meno parametri che AtlAdvise poiché la classe base rende più lavoro.

CComCompositeControl::AdviseSinkMap (TRUE)

CComCompositeControl::AdviseSinkMap (FALSE)

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.

CAxDialogImpl::AdviseSinkMap (TRUE)

CAxDialogImpl::AdviseSinkMap (FALSE)

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.

Vedere anche

Concetti

Gestione degli eventi e ATL

IDispEventImpl di supporto