Compartir a través de


CDocObjectServer (clase)

Implementa las interfaces OLE adicionales necesarias para crear un servidor normal de COleDocument en un servidor completo de DocObject: IOleDocument, IOleDocumentView, IOleCommandTargety IPrint.

Sintaxis

class CDocObjectServer : public CCmdTarget

Miembros

Constructores públicos

Nombre Descripción
CDocObjectServer::CDocObjectServer Construye un objeto CDocObjectServer.

Métodos públicos

Nombre Descripción
CDocObjectServer::ActivateDocObject Activa el servidor de objetos de documento, pero no lo muestra.

Métodos protegidos

Nombre Descripción
CDocObjectServer::OnActivateView Muestra la vista DocObject.
CDocObjectServer::OnApplyViewState Restaura el estado de la vista DocObject.
CDocObjectServer::OnSaveViewState Guarda el estado de la vista DocObject.

Comentarios

CDocObjectServer se deriva de CCmdTarget y funciona estrechamente con COleServerDoc para exponer las interfaces.

Un documento de servidor DocObject puede contener objetos CDocObjectServerItem, que representan la interfaz de servidor para los elementos DocObject.

Para personalizar el servidor DocObject, derive su propia clase de CDocObjectServer e invalide sus funciones de configuración de vistas, OnActivateView, OnApplyViewState y OnSaveViewState. Tendrá que proporcionar una nueva instancia de la clase en respuesta a las llamadas de marco.

Para más información sobre DocObjects, vea CDocObjectServerItem y COleCmdUI en la referencia de MFC.

Jerarquía de herencia

CObject

CCmdTarget

CDocObjectServer

Requisitos

Encabezado: afxdocob.h

CDocObjectServer::ActivateDocObject

Llame a esta función para activar (pero no mostrar) el servidor de objetos de documento.

void ActivateDocObject();

Comentarios

ActivateDocObject llama al método ActivateMe de IOleDocumentSite, pero no muestra la vista porque espera instrucciones específicas sobre cómo configurar y mostrar la vista, dada la llamada a CDocObjectServer::OnActivateView.

Juntos, ActivateDocObject y OnActivateView muestran la vista DocObject. La activación de DocObject difiere de otros tipos de activación en contexto de OLE. La activación de DocObject omite la visualización de bordes de sombreado y adornos de objetos en contexto (como controladores de tamaño), omite las funciones de extensión de objetos y dibuja barras de desplazamiento dentro del rectángulo de vista en lugar de dibujarlos fuera de ese rectángulo (como en la activación en contexto normal).

CDocObjectServer::CDocObjectServer

Construye e inicializa un objeto CDocObjectServer.

explicit CDocObjectServer(
    COleServerDoc* pOwner,
    LPOLEDOCUMENTSITE pDocSite = NULL);

Parámetros

pOwner
Puntero al documento de sitio cliente que es el cliente del servidor DocObject.

pDocSite
Puntero a la interfaz IOleDocumentSite implementada por el contenedor.

Comentarios

Cuando un elemento DocObject está activo, la interfaz OLE del sitio cliente (IOleDocumentSite) es lo que permite al servidor DocObject comunicarse con su cliente (el contenedor). Cuando se activa un servidor DocObject, primero comprueba que el contenedor implementa la interfaz IOleDocumentSite. Si es así, se llama a COleServerDoc::GetDocObjectServer para ver si el contenedor admite DocObjects. De forma predeterminada, GetDocObjectServer devuelve NULL. Debe invalidar COleServerDoc::GetDocObjectServer para construir un nuevo objeto CDocObjectServer o un objeto derivado propio, con punteros al contenedor COleServerDoc y su interfaz IOleDocumentSite como argumentos para el constructor.

CDocObjectServer::OnActivateView

Llame a esta función para mostrar la vista DocObject.

virtual HRESULT OnActivateView();

Valor devuelto

Devuelve un valor de error o advertencia. De forma predeterminada, devuelve NOERROR si se ejecuta correctamente; de lo contrario, E_FAIL.

Comentarios

Esta función crea una ventana de marco en contexto, dibuja barras de desplazamiento dentro de la vista, configura los menús que el servidor comparte con su contenedor, agrega controles de marco, establece el objeto activo y, finalmente, muestra la ventana de marco en contexto y establece el foco.

CDocObjectServer::OnApplyViewState

Invalide esta función para restaurar el estado de la vista DocObject.

virtual void OnApplyViewState(CArchive& ar);

Parámetros

Ar
Objeto CArchive desde el que se va a serializar el estado de vista.

Comentarios

Se llama a esta función cuando la vista se muestra por primera vez después de la creación de su instancia. OnApplyViewState indica a una vista que se reinicialice según los datos del objeto CArchive guardados anteriormente con OnSaveViewState. La vista debe validar los datos del objeto CArchive porque el contenedor no intenta interpretar los datos de estado de vista de ninguna manera.

Puede usar OnSaveViewState para almacenar información persistente específica del estado de la vista. Si invalida OnSaveViewState para almacenar información, es aconsejable invalidar OnApplyViewState para leer esa información y aplicarla a la vista cuando se active de nuevo.

CDocObjectServer::OnSaveViewState

Invalide esta función para guardar información de estado adicional sobre la vista DocObject.

virtual void OnSaveViewState(CArchive& ar);

Parámetros

Ar
Objeto CArchive con el que se serializa el estado de vista.

Comentarios

El estado puede incluir propiedades como el tipo de vista, el factor de zoom, el punto de inserción y selección, etc. Normalmente, el contenedor llama a esta función antes de desactivar la vista. El estado guardado se puede restaurar más adelante a través de OnApplyViewState.

Puede usar OnSaveViewState para almacenar información persistente específica del estado de la vista. Si invalida OnSaveViewState para almacenar información, es aconsejable invalidar OnApplyViewState para leer esa información y aplicarla a la vista cuando se active de nuevo.

Consulte también

CCmdTarget (clase)
Gráfico de jerarquías
CDocObjectServerItem (clase)