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
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