Uso de la funcionalidad del contenedor

En las secciones anteriores se ha descrito parte de la compatibilidad necesaria del lado llamador que debe tener un control ActiveX para tener acceso a determinadas características de su contenedor. En la tabla siguiente se describe el uso de interfaces del lado contenedor de un control y cuándo se produciría dicho uso.

Interfaz Objeto contenedor Uso
IOleClientSite
Sitio
Los controles que implementan métodos IOleObject llaman a IOleClientSite como parte del protocolo de inserción OLE estándar, específicamente los métodos SaveObject, ShowObject, OnShowWindow (solo si se admite un estado de activación de ventana independiente), RequestNewObjectLayouty GetContainer (si se desea la comunicación con otros controles). El método GetMoniker solo se usa cuando el control se puede vincular externamente, es decir, el control no está marcado con OLEMISC _ CANTLINKASYNC.
IOleInPlaceSite
Sitio
Los controles que tienen una activación en contexto y posiblemente un estado activo de la interfaz de usuario llamarán a los métodos IOleInPlaceSite (generalmente todos ellos con la excepción de ContextSensitiveHelp)como parte del protocolo de activación ole en contexto estándar.
IAdviseSink
Sitio
El control llama a OnDataChange si el control admite IDataObject, OnViewChange si el control admite IViewObject2y OnClose, OnSavey OnRename si el control admite IOleObject.
IOleControlSite
Sitio
Si se admite, el control llama a OnControlInfoChanged cuando cambia mnemonics, LockInPlaceActive y TransformCoords si se desencadenan eventos (el último método solo se usa si las coordenadas se pasan como argumentos de evento), OnFocus y TranslateAccelerator si el control tiene un estado activo de la interfaz de usuario y GetExtendedControl si el control quiere ver las propiedades de control extendido (propiedad del contenedor).
IDispatch (propiedades de ambiente)
Sitio
Se usa para acceder a las propiedades de ambiente.
IPropertyNotifySink
Varía
Un control debe generar OnChanged y OnRequestEdit para las propiedades de control marcadas como enlazables y [ ] [ solicitar ] , respectivamente.
Otras interfaces de receptor de eventos
Varía
A un control que tenga interfaces salientes que no sean IPropertyNotifySink se le entregarán otros punteros de interfaz del IID correcto a las implementaciones IConnectionPoint::Advise del control (que normalmente se encuentran en sub objects del control). Un control siempre sabe cómo llamar a sus propias interfaces de eventos porque el control define esas interfaces.
IOleInPlaceFrame
Frame
Se usa cuando un control tiene un estado activo de interfaz de usuario local que requiere herramientas de nivel de marco o elementos de menú.
IOleInPlaceUIWindow
Documento
Solo se usa cuando un control tiene un estado activo de interfaz de usuario local que requiere herramientas de interfaz de usuario de nivel de documento o de panel. Este es poco habitual.

Controles