CDocObjectServer (clase)
Implementa las interfaces OLE adicionales necesarias para crear un servidor normal de COleDocument
en un servidor completo de DocObject: IOleDocument
, IOleDocumentView
, IOleCommandTarget
y 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
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)