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 relacionados Tutorial de 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