Compartilhar via


Servidores: Itens do servidor

Quando um contêiner inicia um servidor para que um usuário possa edição um item incorporado ou vinculado OLE, o aplicativo de servidor cria um "item de servidor". O item do servidor, que é um objeto de uma classe derivada de COleServerItem, fornece uma interface entre o documento do servidor e o aplicativo de contêiner.

The COleServerItem classe define várias funções de membro substituíveis são chamadas por OLE, geralmente em resposta às solicitações do contêiner. Itens do servidor podem representar a parte do documento servidor ou o documento inteiro.Quando um item OLE é incorporado no documento contêiner, o item do servidor representa o documento de todo o servidor.Quando o item OLE é vinculado, o item do servidor pode representar uma parte do documento servidor ou todo o documento, dependendo se o link para uma parte ou todo.

No HIERSVR amostra, por exemplo, a classe dos itens do servidor, CServerItem, tem um membro que é um ponteiro para um objeto do classe CServerNode.The CServerNode objeto é um nó no documento do aplicativo HIERSVR, que é uma árvore.Quando o CServerNode objeto é o nó raiz, a CServerItem objeto representa o documento inteiro.Quando o CServerNode objeto é um nó filho, a CServerItem objeto representa uma parte do documento.Consulte o MFC OLE amostra HIERSVR para obter um exemplo dessa interação.

Implementação de itens do servidor

Se você usar o Assistente de aplicativo para produzir código "inicial" para seu aplicativo, tudo o que você precisa fazer para incluir itens do servidor no seu código inicial é escolher uma das opções de servidor na página Opções de OLE.Se você estiver adicionando itens do servidor para um aplicativo existente, execute as seguintes etapas:

Para implementar um item do servidor

  1. Derivar uma classe de COleServerItem.

  2. Em sua classe derivada, substituir o OnDraw função de membro.

    A estrutura chama OnDraw para processar o item OLE em um metarquivo. O aplicativo contêiner usa esse metarquivo para processar o item.Classe de modo de exibição do seu aplicativo também possui um OnDraw função de membro, que é usada para processar o item quando o aplicativo do servidor está ativo.

  3. Implementar uma substituir de OnGetEmbeddedItem para sua classe de documento do servidor. Para obter mais informações, consulte o artigo Servidores: Implementando documentos servidor e o MFC OLE amostragem HIERSVR.

  4. Implementação OnGetExtent função de membro. A estrutura chama esta função para recuperar o dimensionar do item.A implementação padrão não faz nada.

Uma dica para arquitetura de servidor-item

sistema autônomo observado em Implementação de itens do servidor, aplicativos de servidor devem ser capazes de processar sistema autônomo itens no modo de exibição do servidor e em um metarquivo usado pelo aplicativo contêiner.Arquitetura de aplicativo da biblioteca Microsoft Foundation Class, OnDraw função de membro processa o item quando ele está sendo editado (consulte a CView::OnDraw in the Referência da biblioteca de classes). Do servidor do itemOnDraw apresenta o item em um metarquivo em todos os outros casos (consulte COleServerItem::OnDraw).

Você pode evitar a duplicação de código, escrevendo funções auxiliares em sua classe de documento de servidores e discando o OnDraw funções de suas classes de modo de exibição e o item do servidor. O MFC OLE amostra HIERSVR usa essa estratégia: as funções CServerView::OnDraw and CServerItem::OnDraw ambas telefonar CServerDoc::DrawTree para processar o item.

O modo de exibição e o item possuem OnDraw membro funciona porque eles desenhar em diferentes condições. O modo de exibição deve levar em consideração tais fatores sistema autônomo zoom, dimensionar da seleção e extensão, recorte e elementos de interface do usuário, sistema autônomo barras de rolar.O item do servidor, por Outros lado, sempre desenha todo o objeto OLE.

Para obter mais informações, consulte CView::OnDraw, COleServerItem, COleServerItem::OnDraw, and COleServerDoc::OnGetEmbeddedItem in the Referência da biblioteca de classes.

Consulte também

Conceitos

Servidores