Leer en inglés

Compartir a través de


Métodos opcionales

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

Método Comentarios
ContextSensitiveHelp
Opcionales
Pergamino
Puede devolver S_FALSE sin ninguna acción.
DiscardUndoState
Puede devolver S_OK sin ninguna acción.
DeactivateAndUndo
La desactivación es obligatoria; Deshacer es opcional.

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