Partilhar via


CDocObjectServer Classe

Implementa as interfaces OLE adicionais necessárias para tornar um servidor normal COleDocument em um servidor DocObject completo: IOleDocument, IOleDocumentView, IOleCommandTargete 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 de 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.

Observações

CDocObjectServer é derivado e CCmdTarget trabalha em estreita colaboração para COleServerDoc 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 e substitua suas funções de configuração de CDocObjectServer 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 MFC.

Hierarquia de herança

CObject

CCmdTarget

CDocObjectServer

Requerimentos

Cabeçalho: afxdocob.h

CDocObjectServer::ActivateDocObject

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

void ActivateDocObject();

Observações

ActivateDocObject chama IOleDocumentSiteo método , ActivateMe mas não mostra a exibição porque aguarda instruções específicas sobre como configurar e exibir a exibição, dada na chamada para CDocObjectServer::OnActivateView.

Juntos, ActivateDocObject ative OnActivateView e exiba a visualização DocObject. A ativação DocObject difere de outros tipos de ativação OLE in-loco. A ativação DocObject ignora a exibição de bordas de hachura in-loco e adornos de objetos (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 in-loco normal).

CDocObjectServer::CDocObjectServer

Constrói e inicializa um objeto CDocObjectServer.

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

Parâmetros

pProprietário
Um ponteiro para o documento do site do cliente que é o cliente para o servidor DocObject.

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

Observações

Quando um DocObject está ativo, a interface OLE do site do cliente (IOleDocumentSite) é o que permite que o servidor DocObject se comunique com seu cliente (o contêiner). Quando um servidor DocObject é ativado, ele primeiro verifica se o contêiner implementa a IOleDocumentSite interface. Em caso afirmativo, COleServerDoc::GetDocObjectServer é chamado para ver se o contêiner suporta DocObjects. Por padrão, GetDocObjectServer retorna NULL. Você deve substituir COleServerDoc::GetDocObjectServer para construir um novo CDocObjectServer objeto ou um objeto derivado próprio, com ponteiros para o COleServerDoc contêiner e sua IOleDocumentSite interface 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, retorna NOERROR se for bem-sucedido; caso contrário, E_FAIL.

Observações

Esta função cria uma janela de quadro in-loco, desenha barras de rolagem dentro da exibição, configura os menus que o servidor compartilha com seu contêiner, adiciona controles de quadro, define o objeto ativo e, finalmente, mostra a janela de quadro in-loco 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

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

Observações

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

Você pode usar OnSaveViewState para armazenar informações persistentes específicas para o estado da sua exibição. Se você substituir OnSaveViewState para armazenar informações, você desejará substituir OnApplyViewState para ler essas informações e aplicá-las à sua exibição quando elas forem ativadas recentemente.

CDocObjectServer::OnSaveViewState

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

virtual void OnSaveViewState(CArchive& ar);

Parâmetros

RA
Um CArchive objeto para o qual o estado de exibição é serializado.

Observações

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

Você pode usar OnSaveViewState para armazenar informações persistentes específicas para o estado da sua exibição. Se você substituir OnSaveViewState para armazenar informações, você desejará substituir OnApplyViewState para ler essas informações e aplicá-las à sua exibição quando elas forem ativadas recentemente.

Ver também

CCmdTarget Classe
Gráfico de Hierarquia
CDocObjectServerItem Classe