Compartir a través de


IOleObjectImpl (clase)

Esta clase implementa IUnknown y es la interfaz de entidad de seguridad a través de la cual un contenedor se comunica con un control.

Importante

Esta clase y sus miembros no se pueden usar en las aplicaciones que se ejecutan en Windows Runtime.

Sintaxis

template<class T>
class ATL_NO_VTABLE IOleObjectImpl : public IOleObject

Parámetros

T
La clase, que se deriva de IOleObjectImpl.

Miembros

Métodos públicos

Nombre Descripción
IOleObjectImpl::Advise Establece una conexión de consulta con el control.
IOleObjectImpl::Close Cambia el estado del control de En ejecución a Cargado.
IOleObjectImpl::DoVerb Indica al control que realice una de sus acciones enumeradas.
IOleObjectImpl::DoVerbDiscardUndo Indica al control que descarte cualquier estado de deshacer que mantenga.
IOleObjectImpl::DoVerbHide Indica al control que quite su interfaz de usuario de la vista.
IOleObjectImpl::DoVerbInPlaceActivate Ejecuta el control e instala su ventana, pero no instala la interfaz de usuario del control.
IOleObjectImpl::DoVerbOpen Hace que el control se abra y modifique en una ventana independiente.
IOleObjectImpl::DoVerbPrimary Realiza la acción especificada cuando el usuario hace doble clic en el control. El control define la acción, normalmente para activar el control en contexto.
IOleObjectImpl::DoVerbShow Muestra un control recién insertado al usuario.
IOleObjectImpl::DoVerbUIActivate Activa el control en contexto y muestra la interfaz de usuario del control, como menús y barras de herramientas.
IOleObjectImpl::EnumAdvise Enumera las conexiones de consulta del control.
IOleObjectImpl::EnumVerbs Enumera las acciones para el control.
IOleObjectImpl::GetClientSite Recupera el sitio del cliente del control.
IOleObjectImpl::GetClipboardData Recupera datos del Portapapeles. La implementación ATL devuelve E_NOTIMPL.
IOleObjectImpl::GetExtent Recupera la extensión del área de visualización del control.
IOleObjectImpl::GetMiscStatus Recupera el estado del control.
IOleObjectImpl::GetMoniker Recupera el moniker del control. La implementación ATL devuelve E_NOTIMPL.
IOleObjectImpl::GetUserClassID Recupera el identificador de clase del control.
IOleObjectImpl::GetUserType Recupera el nombre de tipo de usuario del control.
IOleObjectImpl::InitFromData Inicializa el control a partir de los datos seleccionados. La implementación ATL devuelve E_NOTIMPL.
IOleObjectImpl::IsUpToDate Comprueba si el control está actualizado. La implementación ATL devuelve S_OK.
IOleObjectImpl::OnPostVerbDiscardUndo DoVerbDiscardUndo llama a este método una vez descartado el estado de deshacer.
IOleObjectImpl::OnPostVerbHide DoVerbHide llama a este método una vez oculto el control.
IOleObjectImpl::OnPostVerbInPlaceActivate DoVerbInPlaceActivate llama a este método una vez activado el control en contexto.
IOleObjectImpl::OnPostVerbOpen DoVerbOpen llama a este método una vez abierto el control para su edición en una ventana independiente.
IOleObjectImpl::OnPostVerbShow DoVerbShow llama a este método una vez que se ha hecho visible el control.
IOleObjectImpl::OnPostVerbUIActivate DoVerbUIActivate llama a este método una vez activada la interfaz de usuario del control.
IOleObjectImpl::OnPreVerbDiscardUndo DoVerbDiscardUndo llama a este método antes de descartarse el estado de deshacer.
IOleObjectImpl::OnPreVerbHide DoVerbHide llama a este método antes de ocultarse el control.
IOleObjectImpl::OnPreVerbInPlaceActivate DoVerbInPlaceActivate llama a este método antes de activarse el control en contexto.
IOleObjectImpl::OnPreVerbOpen DoVerbOpen llama a este método antes de abrirse el control para su edición en una ventana independiente.
IOleObjectImpl::OnPreVerbShow DoVerbShow llama a este método antes de que se haya hecho visible el control.
IOleObjectImpl::OnPreVerbUIActivate DoVerbUIActivate llama a este método antes de activarse la interfaz de usuario del control.
IOleObjectImpl::SetClientSite Indica al control su sitio del cliente en el contenedor.
IOleObjectImpl::SetColorScheme Recomienda una combinación de colores para la aplicación del control, si existe. La implementación ATL devuelve E_NOTIMPL.
IOleObjectImpl::SetExtent Establece la extensión del área de visualización del control.
IOleObjectImpl::SetHostNames Indica al control los nombres de la aplicación contenedora y el documento contenedor.
IOleObjectImpl::SetMoniker Indica al control cuál es su moniker. La implementación ATL devuelve E_NOTIMPL.
IOleObjectImpl::Unadvise Elimina una conexión de consulta con el control.
IOleObjectImpl::Update Actualiza el control. La implementación ATL devuelve S_OK.

Comentarios

La interfaz IOleObject es la interfaz de entidad de seguridad a través de la cual un contenedor se comunica con un control. La clase IOleObjectImpl proporciona una implementación predeterminada de esta interfaz e implementa IUnknown mediante el envío de información al dispositivo de volcado de memoria en las compilaciones de depuración.

Artículos relacionadosTutorial ATL, Creación de un proyecto ATL

Jerarquía de herencia

IOleObject

IOleObjectImpl

Requisitos

Encabezado: atlctl.h

IOleObjectImpl::Advise

Establece una conexión de consulta con el control.

STDMETHOD(Advise)(
    IAdviseSink* pAdvSink,
    DWORD* pdwConnection);

Comentarios

Consulte IOleObject::Advise en Windows SDK.

IOleObjectImpl::Close

Cambia el estado del control de En ejecución a Cargado.

STDMETHOD(Close)(DWORD dwSaveOption);

Comentarios

Desactiva el control y destruye la ventana de control si existe. Si el miembro de datos de clase de control CComControlBase::m_bRequiresSave es TRUE y el parámetro dwSaveOption es OLECLOSE_SAVEIFDIRTY o OLECLOSE_PROMPTSAVE, las propiedades del control se guardan antes de cerrarse.

Los punteros contenidos en los miembros de datos de clase de control CComControlBase::m_spInPlaceSite y CComControlBase::m_spAdviseSink se liberan y los miembros de datos CComControlBase::m_bNegotiatedWnd, CComControlBase::m_bWndless y CComControlBase::m_bInPlaceSiteEx se establecen en FALSE.

Consulte IOleObject::Close en Windows SDK.

IOleObjectImpl::DoVerb

Indica al control que realice una de sus acciones enumeradas.

STDMETHOD(DoVerb)(
    LONG iVerb,
    LPMSG /* pMsg */,
    IOleClientSite* pActiveSite,
    LONG /* lindex */,
    HWND hwndParent,
    LPCRECT lprcPosRect);

Comentarios

Según el valor de iVerb, se llama a una de las funciones auxiliares DoVerb ATL de la siguiente manera:

iVerb Value Función auxiliar DoVerb a la que se llama
OLEIVERB_DISCARDUNDOSTATE DoVerbDiscardUndo
OLEIVERB_HIDE DoVerbHide
OLEIVERB_INPLACEACTIVATE DoVerbInPlaceActivate
OLEIVERB_OPEN DoVerbOpen
OLEIVERB_PRIMARY DoVerbPrimary
OLEIVERB_PROPERTIES CComControlBase::DoVerbProperties
OLEIVERB_SHOW DoVerbShow
OLEIVERB_UIACTIVATE DoVerbUIActivate

Consulte IOleObject::DoVerb en Windows SDK.

IOleObjectImpl::DoVerbDiscardUndo

Indica al control que descarte cualquier estado de deshacer que mantenga.

HRESULT DoVerbDiscardUndo(LPCRECT /* prcPosRect */, HWND /* hwndParent */);

Parámetros

prcPosRec
[in] Puntero al rectángulo en el que el contenedor desea que el control dibuje.

hwndParent
[in] Identificador de la ventana que contiene el control.

Valor devuelto

Devuelve S_OK.

IOleObjectImpl::DoVerbHide

Desactiva y quita la interfaz de usuario del control, y oculta este.

HRESULT DoVerbHide(LPCRECT /* prcPosRect */, HWND /* hwndParent */);

Parámetros

prcPosRec
[in] Puntero al rectángulo en el que el contenedor desea que el control dibuje.

hwndParent
[in] Identificador de la ventana que contiene el control. No se usa en la implementación ATL.

Valor devuelto

Devuelve S_OK.

IOleObjectImpl::DoVerbInPlaceActivate

Ejecuta el control e instala su ventana, pero no instala la interfaz de usuario del control.

HRESULT DoVerbInPlaceActivate(LPCRECT prcPosRect, HWND /* hwndParent */);

Parámetros

prcPosRec
[in] Puntero al rectángulo en el que el contenedor desea que el control dibuje.

hwndParent
[in] Identificador de la ventana que contiene el control. No se usa en la implementación ATL.

Valor devuelto

Uno de los valores HRESULT estándar.

Comentarios

Activa el control en contexto llamando a CComControlBase::InPlaceActivate. A menos que el miembro de datos de la clase de control m_bWindowOnly sea TRUE, DoVerbInPlaceActivate primero intenta activar el control como control sin ventanas (solo es posible si el contenedor admite IOleInPlaceSiteWindowless). Si se produce un error, la función intenta activar el control con características extendidas (solo es posible si el contenedor admite IOleInPlaceSiteEx). Si se produce un error, la función intenta activar el control sin características extendidas (solo es posible si el contenedor admite IOleInPlaceSite). Si la activación se realiza correctamente, la función notifica al contenedor que se ha activado el control.

IOleObjectImpl::DoVerbOpen

Hace que el control se abra y modifique en una ventana independiente.

HRESULT DoVerbOpen(LPCRECT /* prcPosRect */, HWND /* hwndParent */);

Parámetros

prcPosRec
[in] Puntero al rectángulo en el que el contenedor desea que el control dibuje.

hwndParent
[in] Identificador de la ventana que contiene el control.

Valor devuelto

Devuelve S_OK.

IOleObjectImpl::DoVerbPrimary

Define la acción realizada cuando el usuario hace doble clic en el control.

HRESULT DoVerbPrimary(LPCRECT prcPosRect, HWND hwndParent);

Parámetros

prcPosRec
[in] Puntero al rectángulo en el que el contenedor desea que el control dibuje.

hwndParent
[in] Identificador de la ventana que contiene el control.

Valor devuelto

Uno de los valores HRESULT estándar.

Comentarios

De forma predeterminada, establezca las páginas de propiedades para que se muestren. Puede invalidar esto en la clase del control para invocar un comportamiento diferente al hacer doble clic; por ejemplo, reproducir un vídeo o activarse en contexto.

IOleObjectImpl::DoVerbShow

Indica al contenedor que haga el control visible.

HRESULT DoVerbShow(LPCRECT prcPosRect, HWND /* hwndParent */);

Parámetros

prcPosRec
[in] Puntero al rectángulo en el que el contenedor desea que el control dibuje.

hwndParent
[in] Identificador de la ventana que contiene el control. No se usa en la implementación ATL.

Valor devuelto

Uno de los valores HRESULT estándar.

IOleObjectImpl::DoVerbUIActivate

Activa la interfaz de usuario del control y notifica al contenedor que sus menús se van a reemplazar por menús compuestos.

HRESULT DoVerbUIActivate(LPCRECT prcPosRect, HWND /* hwndParent */);

Parámetros

prcPosRec
[in] Puntero al rectángulo en el que el contenedor desea que el control dibuje.

hwndParent
[in] Identificador de la ventana que contiene el control. No se usa en la implementación ATL.

Valor devuelto

Uno de los valores HRESULT estándar.

IOleObjectImpl::EnumAdvise

Proporciona una enumeración de las conexiones de consulta registradas para este control.

STDMETHOD(EnumAdvise)(IEnumSTATDATA** ppenumAdvise);

Comentarios

Consulte IOleObject::EnumAdvise en Windows SDK.

IOleObjectImpl::EnumVerbs

Proporciona una enumeración de las acciones registradas (verbos) para este control mediante una llamada a OleRegEnumVerbs.

STDMETHOD(EnumVerbs)(IEnumOLEVERB** ppEnumOleVerb);

Comentarios

Puede agregar verbos al archivo .rgs del proyecto. Por ejemplo, consulte CIRCCTL.RGS en el ejemplo de CIRC.

Consulte IOleObject::EnumVerbs en Windows SDK.

IOleObjectImpl::GetClientSite

Coloca el puntero en el miembro de datos de clase de control CComControlBase::m_spClientSite en ppClientSite e incrementa el recuento de referencias del puntero.

STDMETHOD(GetClientSite)(IOleClientSite** ppClientSite);

Comentarios

Consulte IOleObject::GetClientSite en Windows SDK.

IOleObjectImpl::GetClipboardData

Recupera datos del Portapapeles.

STDMETHOD(GetClipboardData)(
    DWORD /* dwReserved */,
    IDataObject** /* ppDataObject */);

Valor devuelto

Devuelve E_NOTIMPL.

Comentarios

Consulte IOleObject::GetClipboardData en Windows SDK.

IOleObjectImpl::GetExtent

Recupera el tamaño de presentación de un control en ejecución en unidades HIMETRIC (0,01 milímetros por unidad).

STDMETHOD(GetExtent)(
    DWORD dwDrawAspect,
    SIZEL* psizel);

Comentarios

El tamaño se almacena en el miembro de datos de clase de control CComControlBase::m_sizeExtent.

Consulte IOleObject::GetExtent en Windows SDK.

IOleObjectImpl::GetMiscStatus

Devuelve un puntero a la información de estado registrada del control mediante una llamada a OleRegGetMiscStatus.

STDMETHOD(GetMiscStatus)(
    DWORD dwAspect,
    DWORD* pdwStatus);

Comentarios

En la información de estado se incluyen los comportamientos admitidos por el control y los datos de presentación. Puede agregar la información de estado al archivo .rgs del proyecto.

Consulte IOleObject::GetMiscStatus en Windows SDK.

IOleObjectImpl::GetMoniker

Recupera el moniker del control.

STDMETHOD(GetMoniker)(
    DWORD /* dwAssign */,
    DWORD /* dwWhichMoniker */,
    IMoniker** /* ppmk */);

Valor devuelto

Devuelve E_NOTIMPL.

Comentarios

Consulte IOleObject::GetMoniker en Windows SDK.

IOleObjectImpl::GetUserClassID

Devuelve el identificador de clase del control.

STDMETHOD(GetUserClassID)(CLSID* pClsid);

Comentarios

Consulte IOleObject::GetUserClassID en Windows SDK.

IOleObjectImpl::GetUserType

Devuelve el nombre de tipo de usuario del control llamando a OleRegGetUserType.

STDMETHOD(GetUserType)(
    DWORD dwFormOfType,
    LPOLESTR* pszUserType);

Comentarios

El nombre de tipo de usuario se usa para mostrarse en elementos de interfaces de usuario como menús y cuadros de diálogo. Puede cambiar el nombre de tipo de usuario en el archivo .rgs del proyecto.

Consulte IOleObject::GetUserType en Windows SDK.

IOleObjectImpl::InitFromData

Inicializa el control a partir de los datos seleccionados.

STDMETHOD(InitFromData)(
    IDataObject* /* pDataObject */,
    BOOL /* fCreation */,
    DWORD /* dwReserved */);

Valor devuelto

Devuelve E_NOTIMPL.

Comentarios

Consulte IOleObject::InitFromData en Windows SDK.

IOleObjectImpl::IsUpToDate

Comprueba si el control está actualizado.

STDMETHOD(IsUpToDate)(void);

Valor devuelto

Devuelve S_OK.

Comentarios

Consulte IOleObject::IsUpToDate en Windows SDK.

IOleObjectImpl::OnPostVerbDiscardUndo

DoVerbDiscardUndo llama a este método una vez descartado el estado de deshacer.

HRESULT OnPostVerbDiscardUndo();

Valor devuelto

Devuelve S_OK.

Comentarios

Reemplace este método por el código que desea que se ejecute una vez descartado el estado de deshacer.

IOleObjectImpl::OnPostVerbHide

DoVerbHide llama a este método una vez oculto el control.

HRESULT OnPostVerbHide();

Valor devuelto

Devuelve S_OK.

Comentarios

Reemplace este método por el código que desea que se ejecute una vez oculto el control.

IOleObjectImpl::OnPostVerbInPlaceActivate

DoVerbInPlaceActivate llama a este método una vez activado el control en contexto.

HRESULT OnPostVerbInPlaceActivate();

Valor devuelto

Devuelve S_OK.

Comentarios

Reemplace este método por el código que desea que se ejecute una vez activado el control en contexto.

IOleObjectImpl::OnPostVerbOpen

DoVerbOpen llama a este método una vez abierto el control para su edición en una ventana independiente.

HRESULT OnPostVerbOpen();

Valor devuelto

Devuelve S_OK.

Comentarios

Reemplace este método por el código que desea que se ejecute una vez abierto el control para su edición en una ventana independiente.

IOleObjectImpl::OnPostVerbShow

DoVerbShow llama a este método una vez que se ha hecho visible el control.

HRESULT OnPostVerbShow();

Valor devuelto

Devuelve S_OK.

Comentarios

Reemplace este método por el código que desea que se ejecute una vez que se haya hecho visible el control.

IOleObjectImpl::OnPostVerbUIActivate

DoVerbUIActivate llama a este método una vez activada la interfaz de usuario del control.

HRESULT OnPostVerbUIActivate();

Valor devuelto

Devuelve S_OK.

Comentarios

Reemplace este método por el código que desea que se ejecute una vez activada la interfaz de usuario del control.

IOleObjectImpl::OnPreVerbDiscardUndo

DoVerbDiscardUndo llama a este método antes de descartarse el estado de deshacer.

HRESULT OnPreVerbDiscardUndo();

Valor devuelto

Devuelve S_OK.

Comentarios

Para evitar que se descarte el estado de deshacer, invalide este método para devolver un error HRESULT.

IOleObjectImpl::OnPreVerbHide

DoVerbHide llama a este método antes de ocultarse el control.

HRESULT OnPreVerbHide();

Valor devuelto

Devuelve S_OK.

Comentarios

Para evitar que se oculte el control, invalide este método para devolver un error HRESULT.

IOleObjectImpl::OnPreVerbInPlaceActivate

DoVerbInPlaceActivate llama a este método antes de activarse el control en contexto.

HRESULT OnPreVerbInPlaceActivate();

Valor devuelto

Devuelve S_OK.

Comentarios

Para evitar que se active el control en contexto, invalide este método para devolver un error HRESULT.

IOleObjectImpl::OnPreVerbOpen

DoVerbOpen llama a este método antes de abrirse el control para su edición en una ventana independiente.

HRESULT OnPreVerbOpen();

Valor devuelto

Devuelve S_OK.

Comentarios

Para evitar que se abra el control para su edición en una ventana independiente, invalide este método para devolver un error HRESULT.

IOleObjectImpl::OnPreVerbShow

DoVerbShow llama a este método antes de que se haya hecho visible el control.

HRESULT OnPreVerbShow();

Valor devuelto

Devuelve S_OK.

Comentarios

Para evitar que se haga visible el control, invalide este método para devolver un error HRESULT.

IOleObjectImpl::OnPreVerbUIActivate

DoVerbUIActivate llama a este método antes de activarse la interfaz de usuario del control.

HRESULT OnPreVerbUIActivate();

Valor devuelto

Devuelve S_OK.

Comentarios

Para evitar que se active la interfaz de usuario del control, invalide este método para devolver un error HRESULT.

IOleObjectImpl::SetClientSite

Indica al control su sitio del cliente en el contenedor.

STDMETHOD(SetClientSite)(IOleClientSite* pClientSite);

Comentarios

A continuación, el método devuelve S_OK.

Consulte IOleObject::SetClientSite en Windows SDK.

IOleObjectImpl::SetColorScheme

Recomienda una combinación de colores para la aplicación del control, si existe.

STDMETHOD(SetColorScheme)(LOGPALETTE* /* pLogPal */);

Valor devuelto

Devuelve E_NOTIMPL.

Comentarios

Consulte IOleObject::SetColorScheme en Windows SDK.

IOleObjectImpl::SetExtent

Establece la extensión del área de visualización del control.

STDMETHOD(SetExtent)(
    DWORD dwDrawAspect,
    SIZEL* psizel);

Comentarios

De lo contrario, SetExtent almacena el valor al que apunta psizel en el miembro de datos de clase de control CComControlBase::m_sizeExtent. Este valor se encuentra en unidades HIMETRIC (0,01 milímetros por unidad).

Si el miembro de datos de clase de control CComControlBase::m_bResizeNatural es TRUE, SetExtent también almacena el valor al que apunta psizel en el miembro de datos de clase de control CComControlBase::m_sizeNatural.

Si el miembro de datos de clase de control CComControlBase::m_bRecomposeOnResize es TRUE, SetExtent llama a SendOnDataChange y SendOnViewChange para notificar a todos los receptores de consulta registrados en el contenedor de notificaciones que el tamaño del control ha cambiado.

Consulte IOleObject::SetExtent en Windows SDK.

IOleObjectImpl::SetHostNames

Indica al control los nombres de la aplicación contenedora y el documento contenedor.

STDMETHOD(SetHostNames)(LPCOLESTR /* szContainerApp */, LPCOLESTR /* szContainerObj */);

Valor devuelto

Devuelve S_OK.

Comentarios

Consulte IOleObject::SetHostNames en Windows SDK.

IOleObjectImpl::SetMoniker

Indica al control cuál es su moniker.

STDMETHOD(SetMoniker)(
    DWORD /* dwWhichMoniker */,
    IMoniker** /* pmk */);

Valor devuelto

Devuelve E_NOTIMPL.

Comentarios

Consulte IOleObject::SetMoniker en Windows SDK.

IOleObjectImpl::Unadvise

Elimina la conexión de consulta almacenada en el miembro de datos m_spOleAdviseHolder de la clase de control.

STDMETHOD(Unadvise)(DWORD dwConnection);

Comentarios

Consulte IOleObject::Unadvise en Windows SDK.

IOleObjectImpl::Update

Actualiza el control.

STDMETHOD(Update)(void);

Valor devuelto

Devuelve S_OK.

Comentarios

Consulte IOleObject::Update en Windows SDK.

Consulte también

CComControl (clase)
Interfaces de controles ActiveX
Información general sobre la clase