Partilhar via


COleServerDoc Classe

A classe base para documentos do servidor OLE.

Sintaxe

class AFX_NOVTABLE COleServerDoc : public COleLinkingDoc

Membros

Construtores Públicos

Designação Descrição
COleServerDoc::COleServerDoc Constrói um objeto COleServerDoc.

Métodos Públicos

Designação Descrição
COleServerDoc::ActivateDocObject Ativa o documento DocObject associado.
COleServerDoc::ActivateInPlace Ativa o documento para edição in-loco.
COleServerDoc::D eactivateAndUndo Desativa a interface do usuário do servidor.
COleServerDoc::D iscardUndoState Descarta informações de desfazer.
COleServerDoc::GetClientSite Recupera um ponteiro para a interface IOleClientSite subjacente.
COleServerDoc::GetEmbeddedItem Retorna um ponteiro para um item que representa todo o documento.
COleServerDoc::GetItemClipRect Retorna o retângulo de recorte atual para edição in-loco.
COleServerDoc::GetItemPosition Retorna o retângulo de posição atual, relativo à área do cliente do aplicativo contêiner, para edição in-loco.
COleServerDoc::GetZoomFactor Retorna o fator de zoom em pixels.
COleServerDoc::IsDocObject Determina se o documento é um DocObject.
COleServerDoc::IsEmbedded Indica se o documento está incorporado em um documento contêiner ou em execução independente.
COleServerDoc::IsInPlaceActive Retorna TRUE se o item estiver ativado no momento.
COleServerDoc::NotifyChanged Notifica os contêineres de que o usuário alterou o documento.
COleServerDoc::NotifyClosed Notifica os contêineres de que o usuário fechou o documento.
COleServerDoc::NotifyRename Notifica os contêineres de que o usuário renomeou o documento.
COleServerDoc::NotifySaved Notifica os contêineres de que o usuário salvou o documento.
COleServerDoc::OnDeactivate Chamado pela estrutura quando o usuário desativa um item que foi ativado no local.
COleServerDoc::OnDeactivateUI Chamado pela estrutura para destruir controles e outros elementos da interface do usuário criados para ativação in-loco.
COleServerDoc::OnDocWindowActivate Chamado pela estrutura quando a janela do quadro do documento do contêiner é ativada ou desativada.
COleServerDoc::OnResizeBorder Chamado pela estrutura quando a janela de quadro ou janela de documento do aplicativo contêiner é redimensionada.
COleServerDoc::OnShowControlBars Chamado pela estrutura para mostrar ou ocultar barras de controle para edição in-loco.
COleServerDoc::OnUpdateDocument Chamado pela estrutura quando um documento do servidor que é um item incorporado é salvo, atualizando a cópia do contêiner do item.
COleServerDoc::RequestPositionChange Altera a posição do quadro de edição in-loco.
COleServerDoc::SaveEmbedding Diz ao aplicativo contêiner para salvar o documento.
COleServerDoc::ScrollContainerBy Rola o documento do contêiner.
COleServerDoc::UpdateAllItems Notifica os contêineres de que o usuário alterou o documento.

Métodos Protegidos

Designação Descrição
COleServerDoc::CreateInPlaceFrame Chamado pela estrutura para criar uma janela de quadro para edição in-loco.
COleServerDoc::D estroyInPlaceFrame Chamado pela estrutura para destruir uma janela de quadro para edição in-loco.
COleServerDoc::GetDocObjectServer Substitua essa função para criar um novo objeto CDocObjectServer e indique que este documento é um contêiner DocObject.
COleServerDoc::OnClose Chamado pela estrutura quando um contêiner solicita o fechamento do documento.
COleServerDoc::OnExecOleCmd Executa um comando especificado ou exibe ajuda para o comando.
COleServerDoc::OnFrameWindowActivate Chamado pela estrutura quando a janela de quadro do contêiner é ativada ou desativada.
COleServerDoc::OnGetEmbeddedItem Chamado para obter um COleServerItem que represente todo o documento; usado para obter um item incorporado. Implementação necessária.
COleServerDoc::OnReactivateAndUndo Chamado pela estrutura para desfazer alterações feitas durante a edição in-loco.
COleServerDoc::OnSetHostNames Chamado pela estrutura quando um contêiner define o título da janela para um objeto incorporado.
COleServerDoc::OnSetItemRects Chamado pela estrutura para posicionar a janela de quadro de edição in-loco dentro da janela do aplicativo contêiner.
COleServerDoc::OnShowDocument Chamado pela estrutura para mostrar ou ocultar o documento.

Comentários

Um documento de servidor pode conter objetos de COleServerItem, que representam a interface do servidor para itens incorporados ou vinculados. Quando um aplicativo de servidor é iniciado por um contêiner para editar um item incorporado, o item é carregado como seu próprio documento de servidor; O objeto COleServerDoc contém apenas um objeto COleServerItem, consistindo em todo o documento. Quando um aplicativo de servidor é iniciado por um contêiner para editar um item vinculado, um documento existente é carregado do disco; Uma parte do conteúdo do documento é realçada para indicar o item vinculado.

COleServerDoc objetos também podem conter itens da classe COleClientItem. Isso permite que você crie aplicativos de servidor de contêiner. A estrutura fornece funções para armazenar adequadamente os itens COleClientItem durante a manutenção dos objetos COleServerItem.

Se o aplicativo de servidor não oferecer suporte a links, um documento de servidor sempre conterá apenas um item de servidor, que representa todo o objeto incorporado como um documento. Se o aplicativo de servidor oferecer suporte a links, ele deverá criar um item de servidor sempre que uma seleção for copiada para a Área de Transferência.

Para usar COleServerDoc, derive uma classe dela e implemente a função de membro OnGetEmbeddedItem, que permite que seu servidor ofereça suporte a itens incorporados. Derive uma classe de COleServerItem para implementar os itens em seus documentos e retorne objetos dessa classe de OnGetEmbeddedItem.

Para dar suporte a itens vinculados, COleServerDoc fornece o OnGetLinkedItem função de membro. Você pode usar a implementação padrão ou substituí-la se tiver sua própria maneira de gerenciar itens de documento.

Você precisa de uma classe derivada COleServerDocpara cada tipo de documento de servidor suportado pelo seu aplicativo. Por exemplo, se seu aplicativo de servidor oferece suporte a planilhas e gráficos, você precisará de duas classes derivadas do COleServerDoc.

Para obter mais informações sobre servidores, consulte o artigo Servers: Implementing a Server.

Hierarquia de herança

CObject

CCmdTarget

CDocument

COleDocument

COleLinkingDoc

COleServerDoc

Requerimentos

Cabeçalho: afxole.h

COleServerDoc::ActivateDocObject

Ativa o documento DocObject associado.

void ActivateDocObject();

Comentários

Por padrão, COleServerDoc não suporta documentos ativos (também conhecido como DocObjects). Para habilitar esse suporte, consulte GetDocObjectServer e classe CDocObjectServer.

COleServerDoc::ActivateInPlace

Ativa o item para edição in-loco.

BOOL ActivateInPlace();

Valor de retorno

Diferente de zero se for bem-sucedido; caso contrário, 0, que indica que o item está totalmente aberto.

Comentários

Esta função executa todas as operações necessárias para a ativação in-loco. Ele cria uma janela de quadro in-loco, ativa-a e dimensiona-a para o item, configura menus compartilhados e outros controles, rola o item para a visualização e define o foco para a janela de quadro in-loco.

Esta função é chamada pela implementação padrão do COleServerItem::OnShow. Chame essa função se seu aplicativo suportar outro verbo para ativação in-loco (como Play).

COleServerDoc::COleServerDoc

Constrói um objeto COleServerDoc sem se conectar com as DLLs do sistema OLE.

COleServerDoc();

Comentários

Você deve ligar para COleLinkingDoc::Register para abrir comunicações com OLE. Se você estiver usando COleTemplateServer em seu aplicativo, COleLinkingDoc::Register será chamado para você pela implementação do COleLinkingDocde OnNewDocument, OnOpenDocumente OnSaveDocument.

COleServerDoc::CreateInPlaceFrame

A estrutura chama essa função para criar uma janela de quadro para edição in-loco.

virtual COleIPFrameWnd* CreateInPlaceFrame(CWnd* pParentWnd);

Parâmetros

pParentWnd
Ponteiro para a janela pai do aplicativo contêiner.

Valor de retorno

Um ponteiro para a janela de quadro in-loco ou NULL se não tiver êxito.

Comentários

A implementação padrão usa informações especificadas no modelo de documento para criar o quadro. O modo de exibição usado é o primeiro modo de exibição criado para o documento. Esta vista é temporariamente separada da moldura original e anexada à moldura recém-criada.

Este é um avançado substituível.

COleServerDoc::D eactivateAndUndo

Chame essa função se seu aplicativo suportar Desfazer e o usuário escolher Desfazer depois de ativar um item, mas antes de editá-lo.

BOOL DeactivateAndUndo();

Valor de retorno

Diferente de zero no sucesso; caso contrário, 0.

Comentários

Se o aplicativo contêiner for escrito usando a Microsoft Foundation Class Library, chamar essa função fará com que COleClientItem::OnDeactivateAndUndo seja chamado, o que desativa a interface do usuário do servidor.

COleServerDoc::D estroyInPlaceFrame

A estrutura chama essa função para destruir uma janela de quadro in-loco e retornar a janela de documento do aplicativo de servidor ao seu estado antes da ativação in-loco.

virtual void DestroyInPlaceFrame(COleIPFrameWnd* pFrameWnd);

Parâmetros

pFrameWnd
Ponteiro para a janela de moldura in-loco a ser destruída.

Comentários

Este é um avançado substituível.

COleServerDoc::D iscardUndoState

Se o usuário executar uma operação de edição que não pode ser desfeita, chame essa função para forçar o aplicativo contêiner a descartar suas informações de estado de desfazer.

BOOL DiscardUndoState();

Valor de retorno

Diferente de zero no sucesso; caso contrário, 0.

Comentários

Essa função é fornecida para que os servidores que suportam Desfazer possam liberar recursos que, de outra forma, seriam consumidos por informações de estado de desfazer que não podem ser usadas.

COleServerDoc::GetClientSite

Recupera um ponteiro para a interface IOleClientSite subjacente.

LPOLECLIENTSITE GetClientSite() const;

Valor de retorno

Recupera um ponteiro para o subjacente IOleClientSite interface.

COleServerDoc::GetDocObjectServer

Substitua essa função para criar um novo item de CDocObjectServer e retornar um ponteiro para ele.

virtual CDocObjectServer* GetDocObjectServer(LPOLEDOCUMENTSITE pDocSite);

Parâmetros

pDocSite
Ponteiro para a interface IOleDocumentSite que conectará este documento ao servidor.

Valor de retorno

Um ponteiro para um CDocObjectServer; NULL se a operação falhou.

Comentários

Quando um servidor DocObject é ativado, o retorno de um ponteiro não-NULL mostra que o cliente pode suportar DocObjects. A implementação padrão retorna NULL.

Uma implementação típica para um documento que suporta DocObjects simplesmente alocará um novo objeto CDocObjectServer e o retornará ao chamador. Por exemplo:

CDocObjectServer* CMFCOleServerDoc::GetDocObjectServer(LPOLEDOCUMENTSITE pSite)
{
   return new CDocObjectServer(this, pSite);
}

COleServerDoc::GetEmbeddedItem

Chame essa função para obter um ponteiro para um item que representa o documento inteiro.

COleServerItem* GetEmbeddedItem();

Valor de retorno

Um ponteiro para um item que representa todo o documento; NULL se a operação falhou.

Comentários

Ele chama COleServerDoc::OnGetEmbeddedItem, uma função virtual sem implementação padrão.

COleServerDoc::GetItemClipRect

Chame a função de membro GetItemClipRect para obter as coordenadas de recorte-retângulo do item que está sendo editado no local.

void GetItemClipRect(LPRECT lpClipRect) const;

Parâmetros

lpClipRect
Ponteiro para uma estrutura RECT ou um objeto CRect para receber as coordenadas de recorte-retângulo do item.

Comentários

As coordenadas estão em pixels em relação à área do cliente da janela do aplicativo contêiner.

O desenho não deve ocorrer fora do retângulo de corte. Normalmente, o desenho é automaticamente restringido. Use esta função para determinar se o usuário rolou para fora da parte visível do documento; em caso afirmativo, role o documento contêiner conforme necessário por meio de uma chamada para ScrollContainerBy.

COleServerDoc::GetItemPosition

Chame a função de membro GetItemPosition para obter as coordenadas do item que está sendo editado no lugar.

void GetItemPosition(LPRECT lpPosRect) const;

Parâmetros

lpPosRect
Ponteiro para uma estrutura RECT ou um objeto CRect para receber as coordenadas do item.

Comentários

As coordenadas estão em pixels em relação à área do cliente da janela do aplicativo contêiner.

A posição do item pode ser comparada com o retângulo de recorte atual para determinar até que ponto o item está visível (ou não visível) na tela.

COleServerDoc::GetZoomFactor

A função de membro GetZoomFactor determina o "fator de zoom" de um item que foi ativado para edição in-loco.

BOOL GetZoomFactor(
    LPSIZE lpSizeNum = NULL,
    LPSIZE lpSizeDenom = NULL,
    LPCRECT lpPosRect = NULL) const;

Parâmetros

lpSizeNum
Ponteiro para um objeto de classe CSize que manterá o numerador do fator de zoom. Pode ser NULL.

lpSizeDenom
Ponteiro para um objeto de classe CSize que manterá o denominador do fator de zoom. Pode ser NULL.

lpPosRect
Ponteiro para um objeto de classe CRect que descreve a nova posição do item. Se esse argumento for NULL, a função usará a posição atual do item.

Valor de retorno

Diferente de zero se o item estiver ativado para edição in-loco e seu fator de zoom for diferente de 100% (1:1); caso contrário, 0.

Comentários

O fator de zoom, em pixels, é a proporção do tamanho do item em sua extensão atual. Se o aplicativo contêiner não tiver definido a extensão do item, sua extensão natural (conforme determinado por COleServerItem::OnGetExtent) será usada.

A função define seus dois primeiros argumentos para o numerador e denominador do "fator de zoom" do item. Se o item não estiver sendo editado no local, a função definirá esses argumentos como um valor padrão de 100% (ou 1:1) e retornará zero. Para obter mais informações, consulte a Nota Técnica 40, MFC/OLE In-Place Redimensionamento e Zoom.

COleServerDoc::IsDocObject

Determina se o documento é um DocObject.

BOOL IsDocObject() const;

Valor de retorno

TRUE se o documento for um DocObject; caso contrário, FALSE.

COleServerDoc::IsEmbedded

Chame a função de membro IsEmbedded para determinar se o documento representa um objeto incorporado em um contêiner.

BOOL IsEmbedded() const;

Valor de retorno

Diferente de zero se o objeto COleServerDoc for um documento que representa um objeto incorporado em um contêiner; caso contrário, 0.

Comentários

Um documento carregado de um arquivo não é incorporado, embora possa ser manipulado por um aplicativo contêiner como um link. Um documento incorporado em um documento contêiner é considerado incorporado.

COleServerDoc::IsInPlaceActive

Chame a função de membro IsInPlaceActive para determinar se o item está atualmente no estado ativo in-loco.

BOOL IsInPlaceActive() const;

Valor de retorno

Diferente de zero se o objeto COleServerDoc estiver ativo no lugar; caso contrário, 0.

COleServerDoc::NotifyChanged

Chame essa função para notificar todos os itens vinculados conectados ao documento de que o documento foi alterado.

void NotifyChanged();

Comentários

Normalmente, você chama essa função depois que o usuário altera algum atributo global, como as dimensões do documento do servidor. Se um item OLE estiver vinculado ao documento com um link automático, o item será atualizado para refletir as alterações. Em aplicativos de contêiner escritos com a Microsoft Foundation Class Library, o OnChange função de membro do COleClientItem é chamado.

Observação

Esta função está incluída para compatibilidade com OLE 1. Novos aplicativos devem usar UpdateAllItems.

COleServerDoc::NotifyClosed

Chame essa função para notificar o(s) contêiner(es) de que o documento foi fechado.

void NotifyClosed();

Comentários

Quando o usuário escolhe o comando Fechar no menu Arquivo, NotifyClosed é chamado pela implementação do COleServerDocda função de membro do OnCloseDocument. Em aplicativos de contêiner escritos com a Microsoft Foundation Class Library, o OnChange função de membro do COleClientItem é chamado.

COleServerDoc::NotifyRename

Chame essa função depois que o usuário renomear o documento do servidor.

void NotifyRename(LPCTSTR lpszNewName);

Parâmetros

lpszNewName
Ponteiro para uma cadeia de caracteres especificando o novo nome do documento do servidor; Este é normalmente um caminho totalmente qualificado.

Comentários

Quando o usuário escolhe o comando Salvar como no menu Arquivo, NotifyRename é chamado pela implementação do COleServerDocda função de membro do OnSaveDocument. Esta função notifica as DLLs do sistema OLE, que por sua vez notificam os contêineres. Em aplicativos de contêiner escritos com a Microsoft Foundation Class Library, o OnChange função de membro do COleClientItem é chamado.

COleServerDoc::NotifySaved

Chame essa função depois que o usuário salvar o documento do servidor.

void NotifySaved();

Comentários

Quando o usuário escolhe o comando Salvar no menu Arquivo, NotifySaved é chamado por COleServerDocimplementação do OnSaveDocument. Esta função notifica as DLLs do sistema OLE, que por sua vez notificam os contêineres. Em aplicativos de contêiner escritos com a Microsoft Foundation Class Library, o OnChange função de membro do COleClientItem é chamado.

COleServerDoc::OnClose

Chamado pela estrutura quando um contêiner solicita que o documento do servidor seja fechado.

virtual void OnClose(OLECLOSE dwCloseOption);

Parâmetros

dwCloseOption
Um valor da enumeração OLECLOSE. Este parâmetro pode ter um dos seguintes valores:

  • OLECLOSE_SAVEIFDIRTY O ficheiro é guardado se tiver sido modificado.

  • OLECLOSE_NOSAVE O ficheiro é fechado sem ser guardado.

  • OLECLOSE_PROMPTSAVE Se o arquivo tiver sido modificado, o usuário será solicitado a salvá-lo.

Comentários

A implementação padrão chama CDocument::OnCloseDocument.

Para obter mais informações e valores adicionais, consulte OLECLOSE no SDK do Windows.

COleServerDoc::OnDeactivate

Chamado pela estrutura quando o usuário desativa um item incorporado ou vinculado que está ativo no momento.

virtual void OnDeactivate();

Comentários

Essa função restaura a interface do usuário do aplicativo contêiner ao seu estado original e destrói todos os menus e outros controles que foram criados para ativação in-loco.

As informações do estado de desfazer devem ser liberadas incondicionalmente neste momento.

Para obter mais informações, consulte o artigo Activation.

COleServerDoc::OnDeactivateUI

Chamado quando o usuário desativa um item que foi ativado no local.

virtual void OnDeactivateUI(BOOL bUndoable);

Parâmetros

bUndoable
Especifica se as alterações de edição podem ser desfeitas.

Comentários

Essa função restaura a interface do usuário do aplicativo contêiner ao seu estado original, ocultando todos os menus e outros controles que foram criados para ativação in-loco.

A estrutura sempre define bUndoable como FALSE. Se o servidor suportar desfazer e houver uma operação que possa ser desfeita, chame a implementação de classe base com bUndoable definido como TRUE.

COleServerDoc::OnDocWindowActivate

A estrutura chama essa função para ativar ou desativar uma janela de documento para edição in-loco.

virtual void OnDocWindowActivate(BOOL bActivate);

Parâmetros

bAtivar
Especifica se a janela do documento deve ser ativada ou desativada.

Comentários

A implementação padrão remove ou adiciona os elementos da interface do usuário no nível do quadro, conforme apropriado. Substitua essa função se quiser executar ações adicionais quando o documento que contém o item for ativado ou desativado.

Para obter mais informações, consulte o artigo Activation.

COleServerDoc::OnExecOleCmd

A estrutura chama essa função para executar um comando especificado ou exibir ajuda para o comando.

virtual HRESULT OnExecOleCmd(
    const GUID* pguidCmdGroup,
    DWORD nCmdID,
    DWORD nCmdExecOpt,
    VARIANTARG* pvarargIn,
    VARIANTARG* pvarargOut);

Parâmetros

pguidCmdGroup
Um ponteiro para um GUID que identifica um conjunto de comandos. Pode ser NULL para indicar o grupo de comandos padrão.

nCmdID
O comando a ser executado. Deve estar no grupo identificado por pguidCmdGroup.

nCmdExecOut
A maneira como o objeto deve executar o comando, um ou mais dos seguintes valores da enumeração OLECMDEXECOPT:

OLECMDEXECOPT_DODEFAULT

OLECMDEXECOPT_PROMPTUSER

OLECMDEXECOPT_DONTPROMPTUSER

OLECMDEXECOPT_SHOWHELP

pvarargIn
Ponteiro para um VARIANTARG contendo argumentos de entrada para o comando. Pode ser NULL.

pvarargOut
Ponteiro para um VARIANTARG para receber os valores de retorno de saída do comando. Pode ser NULL.

Valor de retorno

Devolve S_OK se for bem-sucedido; caso contrário, um dos seguintes códigos de erro:

Valor Descrição
E_UNEXPECTED Ocorreu um erro inesperado
E_FAIL Ocorreu um erro
E_NOTIMPL Indica que o próprio MFC deve tentar traduzir e despachar o comando
OLECMDERR_E_UNKNOWNGROUP pguidCmdGroup não é NULL, mas não especifica um grupo de comandos reconhecido
OLECMDERR_E_NOTSUPPORTED nCmdID não é reconhecido como um comando válido no grupo pguidCmdGroup
OLECMDERR_DISABLED O comando identificado por nCmdID está desativado e não pode ser executado
OLECMDERR_NOHELP Chamador pediu ajuda no comando identificado por nCmdID mas nenhuma ajuda está disponível
OLECMDERR_CANCELED Usuário cancelou a execução

Comentários

COleCmdUI pode ser usado para habilitar, atualizar e definir outras propriedades dos comandos da interface do usuário DocObject. Depois que os comandos forem inicializados, você poderá executá-los com OnExecOleCmd.

A estrutura chama a função antes de tentar traduzir e despachar um comando de documento OLE. Você não precisa substituir essa função para manipular comandos de documento OLE padrão, mas deve fornecer uma substituição para essa função se quiser manipular seus próprios comandos personalizados ou manipular comandos que aceitam parâmetros ou retornam resultados.

A maioria dos comandos não usa argumentos ou valores de retorno. Para a maioria dos comandos, o chamador pode passar NULLs para pvarargIn e pvarargOut. Para comandos que esperam valores de entrada, o chamador pode declarar e inicializar uma variável VARIANTARG e passar um ponteiro para a variável em pvarargIn. Para comandos que exigem um único valor, o argumento pode ser armazenado diretamente no VARIANTARG e passado para a função. Vários argumentos devem ser empacotados dentro do VARIANTARG usando um dos tipos suportados (como IDispatch e SAFEARRAY ).

Da mesma forma, se um comando retornar argumentos, espera-se que o chamador declare um VARIANTARG, inicialize-o para VT_EMPTY e passe seu endereço em pvarargOut. Se um comando retornar um único valor, o objeto poderá armazená-lo diretamente em pvarargOut. Vários valores de saída devem ser empacotados de alguma forma apropriada para o VARIANTARG.

A implementação de classe base dessa função percorrerá as estruturas de OLE_COMMAND_MAP associadas ao destino do comando e tentará despachar o comando para um manipulador apropriado. A implementação de classe base funciona apenas com comandos que não aceitam argumentos ou valores de retorno. Se você precisar lidar com comandos que aceitam argumentos ou valores de retorno, você deve substituir essa função e trabalhar com os parâmetros pvarargIn e pvarargOut.

COleServerDoc::OnFrameWindowActivate

A estrutura chama essa função quando a janela de quadro do aplicativo contêiner é ativada ou desativada.

virtual void OnFrameWindowActivate(BOOL bActivate);

Parâmetros

bAtivar
Especifica se a janela do quadro deve ser ativada ou desativada.

Comentários

A implementação padrão cancela todos os modos de ajuda em que a janela do quadro possa estar. Substitua essa função se quiser executar um processamento especial quando a janela do quadro estiver ativada ou desativada.

Para obter mais informações, consulte o artigo Activation.

COleServerDoc::OnGetEmbeddedItem

Chamado pela estrutura quando um aplicativo de contêiner chama o aplicativo de servidor para criar ou editar um item incorporado.

virtual COleServerItem* OnGetEmbeddedItem() = 0;

Valor de retorno

Um ponteiro para um item que representa todo o documento; NULL se a operação falhou.

Comentários

Não há nenhuma implementação padrão. Você deve substituir essa função para retornar um item que representa o documento inteiro. Esse valor de retorno deve ser um objeto de uma classe derivada de COleServerItem.

COleServerDoc::OnReactivateAndUndo

A estrutura chama essa função quando o usuário escolhe desfazer alterações feitas em um item que foi ativado no local, alterado e posteriormente desativado.

virtual BOOL OnReactivateAndUndo();

Valor de retorno

Diferente de zero se for bem-sucedido; caso contrário, 0.

Comentários

A implementação padrão não faz nada além de retornar FALSE para indicar falha.

Substitua essa função se seu aplicativo suportar desfazer. Normalmente, você executaria a operação de desfazer e, em seguida, ativaria o item chamando ActivateInPlace. Se o aplicativo contêiner for escrito com a Microsoft Foundation Class Library, chamar COleClientItem::ReactivateAndUndo fará com que essa função seja chamada.

COleServerDoc::OnResizeBorder

A estrutura chama essa função quando as janelas de quadro do aplicativo contêiner mudam de tamanho.

virtual void OnResizeBorder(
    LPCRECT lpRectBorder,
    LPOLEINPLACEUIWINDOW lpUIWindow,
    BOOL bFrame);

Parâmetros

lpRectBorder
Ponteiro para uma estrutura RECT ou um objeto CRect que especifica as coordenadas da borda.

lpUIWindow
Ponteiro para um objeto de classe IOleInPlaceUIWindow que possui a sessão de edição in-loco atual.

bFrame
TRUE se lpUIWindow apontar para a janela de quadro de nível superior do aplicativo contêiner, ou FALSE se lpUIWindow apontar para a janela de quadro de nível de documento do aplicativo contêiner.

Comentários

Esta função redimensiona e ajusta barras de ferramentas e outros elementos da interface do usuário de acordo com o novo tamanho da janela.

Para obter mais informações, consulte IOleInPlaceUIWindow no SDK do Windows.

Este é um avançado substituível.

COleServerDoc::OnSetHostNames

Chamado pela estrutura quando o contêiner define ou altera os nomes de host para este documento.

virtual void OnSetHostNames(
    LPCTSTR lpszHost,
    LPCTSTR lpszHostObj);

Parâmetros

lpszHost
Ponteiro para uma cadeia de caracteres que especifica o nome do aplicativo contêiner.

lpszHostObj
Ponteiro para uma cadeia de caracteres que especifica o nome do contêiner para o documento.

Comentários

A implementação padrão altera o título do documento para todos os modos de exibição referentes a este documento.

Substitua essa função se seu aplicativo definir os títulos por meio de um mecanismo diferente.

COleServerDoc::OnSetItemRects

A estrutura chama essa função para posicionar a janela de quadro de edição in-loco dentro da janela de quadro do aplicativo contêiner.

virtual void OnSetItemRects(
    LPCRECT lpPosRect,
    LPCRECT lpClipRect);

Parâmetros

lpPosRect
Ponteiro para uma estrutura RECT ou um objeto CRect que especifica a posição da janela de quadro in-loco em relação à área do cliente do aplicativo contêiner.

lpClipRect
Ponteiro para uma estrutura RECT ou um objeto CRect que especifica o retângulo de recorte da janela de quadro in-loco em relação à área do cliente do aplicativo contêiner.

Comentários

Substitua essa função para atualizar o fator de zoom da exibição, se necessário.

Esta função é geralmente chamada em resposta a uma chamada RequestPositionChange, embora possa ser chamada a qualquer momento pelo contêiner para solicitar uma alteração de posição para o item in-loco.

COleServerDoc::OnShowControlBars

A estrutura chama essa função para mostrar ou ocultar as barras de controle do aplicativo de servidor associadas à janela de quadro identificada por pFrameWnd.

virtual void OnShowControlBars(
    CFrameWnd* pFrameWnd,
    BOOL bShow);

Parâmetros

pFrameWnd
Ponteiro para a janela do quadro cujas barras de controle devem ser ocultadas ou mostradas.

bMostrar
Determina se as barras de controle são mostradas ou ocultas.

Comentários

A implementação padrão enumera todas as barras de controle pertencentes a essa janela de quadro e as oculta ou mostra.

COleServerDoc::OnShowDocument

A estrutura chama a função OnShowDocument quando o documento do servidor deve ser oculto ou mostrado.

virtual void OnShowDocument(BOOL bShow);

Parâmetros

bMostrar
Especifica se a interface do usuário para o documento deve ser mostrada ou ocultada.

Comentários

Se bShow for TRUE, a implementação padrão ativará o aplicativo de servidor, se necessário, e fará com que o aplicativo contêiner role sua janela para que o item fique visível. Se bShow for FALSE, a implementação padrão desativa o item por meio de uma chamada para OnDeactivatee, em seguida, destrói ou oculta todas as janelas de quadro que foram criadas para o documento, exceto a primeira. Se nenhum documento visível permanecer, a implementação padrão ocultará o aplicativo de servidor.

COleServerDoc::OnUpdateDocument

Chamado pela estrutura ao salvar um documento que é um item incorporado em um documento composto.

virtual BOOL OnUpdateDocument();

Valor de retorno

Diferente de zero se o documento foi atualizado com sucesso; caso contrário, 0.

Comentários

A implementação padrão chama o COleServerDoc::NotifySaved e COleServerDoc::SaveEmbedding funções de membro e, em seguida, marca o documento como limpo. Substitua essa função se quiser executar processamento especial ao atualizar um item incorporado.

COleServerDoc::RequestPositionChange

Chame essa função de membro para que o aplicativo contêiner altere a posição do item.

void RequestPositionChange(LPCRECT lpPosRect);

Parâmetros

lpPosRect
Ponteiro para uma estrutura RECT ou um objeto CRect que contém a nova posição do item.

Comentários

Esta função é geralmente chamada (em conjunto com UpdateAllItems) quando os dados em um item ativo in-loco foram alterados. Após essa chamada, o contêiner pode ou não executar a alteração chamando OnSetItemRects. A posição resultante pode ser diferente da solicitada.

COleServerDoc::SaveEmbedding

Chame essa função para dizer ao aplicativo contêiner para salvar o objeto incorporado.

void SaveEmbedding();

Comentários

Esta função é chamada automaticamente a partir de OnUpdateDocument. Observe que essa função faz com que o item seja atualizado no disco, por isso geralmente é chamado apenas como resultado de uma ação específica do usuário.

COleServerDoc::ScrollContainerBy

Chame a função de membro ScrollContainerBy para rolar o documento contêiner pela quantidade, em pixels, indicada por sizeScroll.

BOOL ScrollContainerBy(CSize sizeScroll);

Parâmetros

sizeScroll
Indica até onde o documento contêiner deve rolar.

Valor de retorno

Diferente de zero se for bem-sucedido; caso contrário, 0.

Comentários

Valores positivos indicam rolagem para baixo e para a direita; valores negativos indicam rolagem para cima e para a esquerda.

COleServerDoc::UpdateAllItems

Chame essa função para notificar todos os itens vinculados conectados ao documento de que o documento foi alterado.

void UpdateAllItems(
    COleServerItem* pSender,
    LPARAM lHint = 0L,
    CObject* pHint = NULL,
    DVASPECT nDrawAspect = DVASPECT_CONTENT);

Parâmetros

pSender
Ponteiro para o item que modificou o documento, ou NULL se todos os itens devem ser atualizados.

lHint
Contém informações sobre a modificação.

pHint
Ponteiro para um objeto que armazena informações sobre a modificação.

nDrawAspect
Determina como o item deve ser desenhado. Este é um valor da enumeração DVASPECT . Este parâmetro pode ter um dos seguintes valores:

  • DVASPECT_CONTENT Item é representado de tal forma que pode ser exibido como um objeto incorporado dentro de seu contêiner.

  • DVASPECT_THUMBNAIL Item é renderizado em uma representação de "miniatura" para que possa ser exibido em uma ferramenta de navegação.

  • DVASPECT_ICON Item é representado por um ícone.

  • DVASPECT_DOCPRINT Item é representado como se fosse impresso usando o comando Imprimir do menu Arquivo.

Comentários

Normalmente, você chama essa função depois que o usuário altera o documento do servidor. Se um item OLE estiver vinculado ao documento com um link automático, o item será atualizado para refletir as alterações. Em aplicativos de contêiner escritos com a Microsoft Foundation Class Library, o OnChange função de membro do COleClientItem é chamado.

Esta função chama a função de membro OnUpdate para cada um dos itens do documento, exceto o item de envio, passando pHint, lHinte nDrawAspect. Use esses parâmetros para passar informações aos itens sobre as modificações feitas no documento. Você pode codificar informações usando lHint ou pode definir uma classe derivada de CObjectpara armazenar informações sobre as modificações e passar um objeto dessa classe usando pHint. Substitua a função de membro OnUpdate em sua classe derivada do COleServerItempara otimizar a atualização de cada item, dependendo se sua apresentação foi alterada.

Ver também

Exemplo MFC HIERSVR
Classe COleLinkingDoc
Gráfico de Hierarquia
COleDocument Classe
Classe COleLinkingDoc
COleTemplateServer Classe