Un componente OLE puede implementar una interfaz sin implementar toda la semántica de todos los métodos de la interfaz, sino que devuelve E_NOTIMPL o S_OK según corresponda. En la tabla siguiente se describen los métodos que no se necesitan para implementar un contenedor de controles ActiveX (es decir, el contenedor de controles puede devolver E_NOTIMPL).
En la tabla siguiente se describen métodos opcionales; Tenga en cuenta que el método debe seguir existiendo, pero simplemente puede devolver E_NOTIMPL en lugar de implementar la semántica real. Tenga en cuenta que cualquier método de una interfaz obligatoria que no aparece a continuación debe considerarse obligatorio y puede que no devuelva E_NOTIMPL.
IOleClientSite
| Método |
Comentarios |
SaveObject
|
Necesario para que la persistencia se admita correctamente.
|
GetMoniker
|
Solo es necesario si el contenedor admite la vinculación a controles dentro de su propio formulario o documento.
|
IOleInPlaceSite
IOleControlSite
| Método |
Comentarios |
GetExtendedControl
|
Es necesario para los contenedores que admiten controles extendidos.
|
ShowPropertyFrame
|
Es necesario para los contenedores que deseen incluir sus propias páginas de propiedades para controlar las propiedades de control extendidas, además de las proporcionadas por un control.
|
TranslateAccelerator
|
Puede devolver S_FALSE sin ninguna acción.
|
LockInPlaceActive
|
Opcionales
|
IDispatch (propiedades de ambiente)
| Método |
Comentarios |
GetTypeInfoCount
|
Es necesario para los contenedores que admiten propiedades ambientales no estándar.
|
GetTypeInfo
|
Es necesario para los contenedores que admiten propiedades ambientales no estándar.
|
GetIDsOfNames
|
Es necesario para los contenedores que admiten propiedades ambientales no estándar.
|
IDispatch (receptor de eventos)
| Método |
Comentarios |
GetTypeInfoCount
|
El control conoce su propia información de tipo, por lo que no es necesario llamar a esto.
|
GetTypeInfo
|
El control conoce su propia información de tipo, por lo que no es necesario llamar a esto.
|
GetIDsOfNames
|
El control conoce su propia información de tipo, por lo que no es necesario llamar a esto.
|
IOleInPlaceFrame
| Método |
Comentarios |
ContextSensitiveHelp
|
|
GetBorder
|
Necesario para contenedores con la interfaz de usuario de la barra de herramientas (que es opcional)
|
RequestBorderSpace
|
Necesario para contenedores con la interfaz de usuario de la barra de herramientas (que es opcional)
|
SetBorderSpace
|
Necesario para contenedores con la interfaz de usuario de la barra de herramientas (que es opcional)
|
InsertMenus
|
Necesario para contenedores con la interfaz de usuario de menú (que es opcional)
|
SetMenu
|
Necesario para contenedores con la interfaz de usuario de menú (que es opcional)
|
RemoveMenus
|
Necesario para contenedores con la interfaz de usuario de menú (que es opcional)
|
SetStatusText
|
Solo es necesario para los contenedores que tienen una línea de estado.
|
EnableModeless
|
Opcionales
|
TranslateAccelerator
|
Opcionales
|
IOleContainer
| Método |
Comentarios |
ParseDisplayName
|
Solo si se admite la vinculación a controles u otras inserciones en el contenedor, ya que esto es necesario para el enlace de moniker.
|
LockContainer
|
En cuanto a ParseDisplayName
|
EnumObjects
|
Devuelve todos los controles ActiveX a través de un enumerador con IEnumUnknown, pero no necesariamente todos los objetos (porque no hay ninguna garantía de que todos los objetos sean controles ActiveX; algunos pueden ser controles de Windows normales).
|
-
Contenedores