Partilhar via


Classe CDocObjectServer

Implementa as interfaces OLE adicionais necessárias para transformar um servidor COleDocument normal em um servidor DocObject completo: IOleDocument, IOleDocumentView, IOleCommandTarget e IPrint.

Sintaxe

class CDocObjectServer : public CCmdTarget

Membros

Construtores públicos

Nome Descrição
CDocObjectServer::CDocObjectServer Constrói um objeto CDocObjectServer.

Métodos públicos

Nome Descrição
CDocObjectServer::ActivateDocObject Ativa o servidor de objeto do documento, mas não o mostra.

Métodos protegidos

Nome Descrição
CDocObjectServer::OnActivateView Exibe o modo de exibição DocObject.
CDocObjectServer::OnApplyViewState Restaura o estado do modo de exibição DocObject.
CDocObjectServer::OnSaveViewState Salva o estado do modo de exibição DocObject.

Comentários

CDocObjectServer é derivado de CCmdTarget, e funciona em estreita colaboração com COleServerDoc para expor as interfaces.

Um documento do servidor DocObject pode conter objetos CDocObjectServerItem, que representam a interface do servidor para itens DocObject.

Para personalizar seu servidor DocObject, derive sua própria classe a partir de CDocObjectServer e substitua as funções de instalação de exibição, OnActivateView, OnApplyViewState e OnSaveViewState. Você precisará fornecer uma nova instância de sua classe em resposta a chamadas de estrutura.

Para obter mais informações sobre DocObjects, consulte CDocObjectServerItem e COleCmdUI na Referência do MFC.

Hierarquia de herança

CObject

CCmdTarget

CDocObjectServer

Requisitos

Cabeçalho: afxdocob.h

CDocObjectServer::ActivateDocObject

Chame essa função para ativar (mas não mostrar) o servidor de objeto do documento.

void ActivateDocObject();

Comentários

ActivateDocObject chama o método ActivateMe do IOleDocumentSite, mas não mostra o modo de exibição porque ele aguarda instruções específicas sobre como configurar e exibir o modo de exibição fornecido na chamada para CDocObjectServer::OnActivateView.

Juntos, ActivateDocObject e OnActivateView ativam e exibem o modo de exibição DocObject. A ativação do DocObject difere de outros tipos de ativação OLE in loco. A ativação do DocObject ignora a exibição de bordas hachuradas e adornos de objeto no local (como alças de dimensionamento), ignora funções de extensão de objeto e desenha barras de rolagem dentro do retângulo de exibição, em vez de desenhá-las fora desse retângulo (como na ativação normal no local).

CDocObjectServer::CDocObjectServer

Constrói e inicializa um objeto CDocObjectServer.

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

Parâmetros

pOwner
Um ponteiro para o documento do site do cliente que é o cliente do servidor DocObject.

pDocSite
Um ponteiro para a interface IOleDocumentSite implementada pelo contêiner.

Comentários

Quando um DocObject está ativo, a interface OLE do site cliente ( IOleDocumentSite) é o que permite que o servidor DocObject se comunique com o cliente (o contêiner). Quando um servidor DocObject é ativado, ele primeiro verifica se o contêiner implementa a interface IOleDocumentSite. Se for esse o caso, COleServerDoc::GetDocObjectServer é chamado para verificar se o contêiner dá suporte a DocObjects. Por padrão, GetDocObjectServer retorna NULL. Você deve substituir COleServerDoc::GetDocObjectServer para construir um novo objeto CDocObjectServer ou um objeto derivado próprio, com ponteiros para o contêiner COleServerDoc e sua interface IOleDocumentSite como argumentos para o construtor.

CDocObjectServer::OnActivateView

Chame essa função para exibir o modo de exibição DocObject.

virtual HRESULT OnActivateView();

Valor de retorno

Retorna um valor de erro ou aviso. Por padrão, retornará NOERROR se tiver êxito; caso contrário, E_FAIL.

Comentários

Essa função cria uma janela de quadro no local, desenha barras de rolagem dentro do modo de exibição, configura os menus que o servidor compartilha com o contêiner, adiciona controles de quadro, define o objeto ativo e, por fim, mostra a janela de quadro no local e define o foco.

CDocObjectServer::OnApplyViewState

Substitua essa função para restaurar o estado da exibição DocObject.

virtual void OnApplyViewState(CArchive& ar);

Parâmetros

ar
Um objeto CArchive a partir do qual serializar o estado de exibição.

Comentários

Essa função é chamada quando o modo de exibição está sendo exibido pela primeira vez após sua instanciação. OnApplyViewState instrui um modo de exibição a reinicializar-se de acordo com os dados no objeto CArchive salvo anteriormente com OnSaveViewState. O modo de exibição deve validar os dados no objeto CArchive, porque o contêiner não tenta interpretar os dados de estado de exibição de forma alguma.

Você pode usar OnSaveViewState para armazenar informações persistentes específicas do estado do modo de exibição. Se você substituir OnSaveViewState para armazenar informações, você desejará substituir OnApplyViewState para ler essas informações e aplicá-las ao seu modo de exibição quando ele for ativado novamente.

CDocObjectServer::OnSaveViewState

Substitua essa função para salvar informações de estado adicionais sobre o modo de exibição DocObject.

virtual void OnSaveViewState(CArchive& ar);

Parâmetros

ar
Um objeto CArchive para o qual o estado da exibição é serializado.

Comentários

Seu estado pode incluir propriedades como o tipo de exibição, o fator de zoom, o ponto de inserção e seleção e assim por diante. O contêiner normalmente chama essa função antes de desativar o modo de exibição. O estado salvo pode ser restaurado posteriormente por meio do OnApplyViewState.

Você pode usar OnSaveViewState para armazenar informações persistentes específicas do estado do modo de exibição. Se você substituir OnSaveViewState para armazenar informações, você desejará substituir OnApplyViewState para ler essas informações e aplicá-las ao seu modo de exibição quando ele for ativado novamente.

Confira também

Classe CCmdTarget
Gráfico da hierarquia
Classe de CDocObjectServerItem