Interfaces necesarias (COM)

En la tabla siguiente se enumeran las interfaces de contenedor de controles ActiveX y se indican qué interfaces son opcionales, y cuáles son obligatorias y deben implementarse mediante contenedores de control.

Interfaz ¿Obligatorio? Comentarios
IOleClientSite
Sí
IAdviseSink
No
Solo cuando el contenedor desea (a) notificaciones de cambio de datos (controles con IDataObject), (b) ver notificación de cambio (controles que no están activos y tienen IViewObject o IViewObject2) y (c) otras notificaciones de controles que actúan como objetos incrustados estándar.
IOleInPlaceSite
Sí
IOleControlSite
Sí
IOleInPlaceFrame
Sí
IOleContainer
Sí
Ver nota 1
de IDispatch para propiedades ambientales
Sí
Consulte la nota 2 y Propiedades ambientales para controles
Conjuntos de eventos de control
Sí
Consulte la nota 2.
ISimpleFrameSite
No
ISimpleFrameSite y la compatibilidad con fotogramas simples anidados es opcional.
IPropertyNotifySink
No
Solo es necesario para los contenedores que (a) tienen su propia interfaz de usuario de edición de propiedades que requeriría actualizar cada vez que un control cambió una propiedad propia o (b) desea controlar [requestedit] cambios de propiedad y otras características de enlace de datos.
IErrorInfo
Sí
Obligatorio si el contenedor admite interfaces duales. Consulte la nota 2.
IClassFactory2
No
Se recomienda encarecidamente el soporte técnico.
  1. IOleContainer se implementa en el objeto de documento o formulario (o análogo adecuado) que contiene los sitios de contenedor. Los controles usan IOleContainer para ir a otros controles del mismo documento o formulario.
  2. La compatibilidad con interfaces duales no es obligatoria, pero se recomienda encarecidamente. La escritura de contenedores de controles ActiveX para aprovechar las interfaces duales proporcionará un mejor rendimiento con controles que ofrecen compatibilidad con la interfaz dual.

Los contenedores de controles ActiveX deben admitir excepciones de OLE Automation. Si un contenedor de control admite interfaces duales, debe capturar excepciones de automatización a través de IErrorInfo.

contenedores de