Compartir a través de


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.

Consulte también

Control de eventos