Resumen de control de eventos ATL
Normalmente administrar eventos COM es un proceso relativamente simple.hay tres pasos principales:
Implemente la interfaz de evento en el objeto.
Advise el origen de eventos que el objeto desee recibir eventos.
Unadvise el origen de eventos cuando el objeto ya no necesita recibir eventos.
implementar la interfaz
Hay cuatro formas principales de implementar una interfaz mediante ATL.
Derivar de |
Adecuado para el tipo de interfaz |
Requiere implementar todo el methods* |
Requiere una biblioteca de tipos en tiempo de ejecución |
---|---|---|---|
la interfaz |
Vtable |
Sí |
No |
Doble |
Sí |
Sí |
|
Dispinterface |
No |
Sí |
|
Dispinterface |
No |
No |
* Al utilizar clases de soporte de ATL, le nunca que implementar los métodos de IUnknown o de IDispatch manualmente.
El muestran y Unadvising el origen del evento
Existen tres formas principales de advertir y de unadvising un origen de eventos mediante ATL.
Advise la función |
función de Unadvise |
El más adecuado para el uso con |
¿Necesita hacer un seguimiento de una cookie? |
Comentarios |
---|---|---|---|---|
Vtable o interfaces duales |
Sí |
AtlAdvise es una función global de ATL.CComPtrBase::Advise es utilizado por CComPtr y CComQIPtr. |
||
No |
Menos parámetros que AtlAdvise desde la clase base hace más trabajo. |
|||
Controles ActiveX en controles de Compuesto |
No |
CComCompositeControl::AdviseSinkMap indica todas las entradas del mapa de receptor de eventos.Igual unadvises de función entradas.Este método llama automáticamente la clase de CComCompositeControl . |
||
Controles ActiveX en un cuadro de diálogo |
No |
CAxDialogImpl::AdviseSinkMap aconseja y los unadvises todos los controles ActiveX en el recurso de cuadro de diálogo.Esto se hace automáticamente para usted. |