Implementación de la interfaz de control de eventos
ATL le ayuda con los tres elementos necesarios para controlar eventos: implementar la interfaz de eventos, avisar al origen del evento y desaprovisionar el origen del evento. Los pasos precisos que deberá realizar dependen del tipo de interfaz de eventos y de los requisitos de rendimiento de la aplicación.
Las formas más comunes de implementar una interfaz mediante ATL son:
Derivar directamente de una interfaz personalizada.
Derivación de IDispatchImpl para interfaces duales descritas en una biblioteca de tipos.
Derivación de IDispEventImpl para dispinterfaces descritas en una biblioteca de tipos.
Derivar de IDispEventSimpleImpl para dispinterfaces no descritos en una biblioteca de tipos o cuando desea mejorar la eficacia no cargando la información de tipo en tiempo de ejecución.
Si va a implementar una interfaz personalizada o dual, debe avisar al origen del evento llamando a AtlAdvise o CComPtrBase::Advise. Deberá realizar un seguimiento de la cookie devuelta por la llamada usted mismo. Llame a AtlUnadvise para interrumpir la conexión.
Si va a implementar un dispinterface mediante IDispEventImpl
o IDispEventSimpleImpl
, debe avisar al origen del evento llamando a IDispEventSimpleImpl::D ispEventAdvise. Llame a IDispEventSimpleImpl::D ispEventUnadvise para interrumpir la conexión.
Si usa IDispEventImpl
como clase base de un control compuesto, los orígenes de eventos enumerados en el mapa del receptor se aconsejarán y se desaconsejarán automáticamente mediante CComCompositeControl::AdviseSinkMap.
Las clases IDispEventImpl
y IDispEventSimpleImpl
administran la cookie automáticamente.