Compartilhar via


Classe COleServerItem

Fornece a interface do servidor para itens OLE.

Sintaxe

class COleServerItem : public CDocItem

Membros

Construtores Protegidos

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

Métodos públicos

Nome Descrição
COleServerItem::AddOtherClipboardData Coloca formatos de apresentação e conversão em um objeto COleDataSource.
COleServerItem::CopyToClipboard Copia o item para a área de transferência.
COleServerItem::DoDragDrop Executa uma operação arrastar e soltar.
COleServerItem::GetClipboardData Obtém a fonte de dados para uso na transferência de dados (arrastar e soltar ou área de transferência).
COleServerItem::GetDocument Retorna o documento do servidor que contém o item.
COleServerItem::GetEmbedSourceData Obtém os dados CF_EMBEDSOURCE de um item OLE.
COleServerItem::GetItemName Retorna o nome do item. Usado somente para itens conectados.
COleServerItem::GetLinkSourceData Obtém os dados CF_LINKSOURCE de um item OLE.
COleServerItem::GetObjectDescriptorData Obtém os dados CF_OBJECTDESCRIPTOR de um item OLE.
COleServerItem::IsConnected Indica se o item está anexado a um contêiner ativo no momento.
COleServerItem::IsLinkedItem Indica se o item representa um item OLE vinculado.
COleServerItem::NotifyChanged Atualizações todos os contêineres com atualização automática de link.
COleServerItem::OnDoVerb Chamado para executar um verbo.
COleServerItem::OnDraw Chamado quando o contêiner solicita desenhar o item; implementação obrigatória.
COleServerItem::OnDrawEx Chamado para desenho de item especializado.
COleServerItem::OnGetClipboardData Chamado pela estrutura para obter os dados a serem copiados para a área de transferência.
COleServerItem::OnGetExtent Chamado pela estrutura para recuperar o tamanho do item OLE.
COleServerItem::OnInitFromData Chamado pela estrutura para inicializar um item OLE usando o conteúdo do objeto de transferência de dados especificado.
COleServerItem::OnQueryUpdateItems Chamado para determinar se os itens vinculados exigem atualização.
COleServerItem::OnRenderData Recupera dados como parte da renderização com atraso.
COleServerItem::OnRenderFileData Recupera dados em um objeto CFile como parte da renderização com atraso.
COleServerItem::OnRenderGlobalData Recupera dados em um HGLOBAL como parte da renderização com atraso.
COleServerItem::OnSetColorScheme Chamado para definir o esquema de cores do item.
COleServerItem::OnSetData Chamado para definir os dados do item.
COleServerItem::OnSetExtent Chamado pela estrutura para definir o tamanho do item OLE.
COleServerItem::OnUpdate Chamado quando alguma parte do documento em que o item pertence é alterada.
COleServerItem::OnUpdateItems Chamado para atualizar o cache de apresentação de todos os itens no documento do servidor.
COleServerItem::SetItemName Define o nome da tabela. Usado somente para itens conectados.

Métodos protegidos

Nome Descrição
COleServerItem::GetDataSource Obtém o objeto usado para armazenar formatos de conversão.
COleServerItem::OnHide Chamado pela estrutura para ocultar o item OLE.
COleServerItem::OnOpen Chamado pela estrutura para exibir o item OLE na própria janela de nível superior.
COleServerItem::OnShow Chamado quando o contêiner solicita para mostrar o item.

Membros de Dados Públicos

Nome Descrição
COleServerItem::m_sizeExtent Informa ao servidor quanto do item OLE está visível.

Comentários

Um item vinculado pode representar alguns ou todos os documentos do servidor. Um item inserido sempre representa um documento de servidor inteiro.

A classe COleServerItem define várias funções de membro substituíveis que são chamadas pelas DLLs (bibliotecas de vínculo dinâmico) do sistema OLE, geralmente em resposta a solicitações do aplicativo de contêiner. Essas funções de membro permitem que o aplicativo de contêiner manipule o item indiretamente de várias maneiras, como exibi-lo, executar seus verbos ou recuperar seus dados em vários formatos.

Para usar COleServerItem, derive uma classe dela e implemente as funções de membro OnDraw e Serialize. A função OnDraw fornece a representação de meta-arquivo de um item, permitindo que ele seja exibido quando um aplicativo de contêiner abre um documento composto. A função Serialize de CObject fornece a representação nativa de um item, permitindo que um item inserido seja transferido entre os aplicativos de servidor e contêiner. OnGetExtent fornece o tamanho natural do item para o contêiner, permitindo que o contêiner dimensione o item.

Para obter mais informações sobre servidores e tópicos relacionados, confira o artigo Servidores: Implementando um servidor e "Criando um aplicativo de contêiner/servidor" no artigo Contêineres: Recursos Avançados.

Hierarquia de herança

CObject

CCmdTarget

CDocItem

COleServerItem

Requisitos

Cabeçalho: afxole.h

COleServerItem::AddOtherClipboardData

Chame essa função para colocar os formatos de apresentação e conversão para o item OLE no objeto especificado COleDataSource.

void AddOtherClipboardData(COleDataSource* pDataSource);

Parâmetros

pDataSource
Ponteiro para o objeto COleDataSource no qual os dados devem ser colocados.

Comentários

Você precisa ter implementado a função de membro OnDraw para fornecer o formato de apresentação (uma imagem de meta-arquivo) para o item. Para permitir outros formatos de conversão, registre-os usando o objeto COleDataSource retornado por GetDataSource e substitua a função de membro OnRenderData para fornecer dados nos formatos que você deseja dar suporte.

COleServerItem::COleServerItem

Constrói e adiciona o objeto COleServerItem à coleção de itens de documento do documento do servidor.

COleServerItem(
    COleServerDoc* pServerDoc,
    BOOL bAutoDelete);

Parâmetros

pServerDoc
Ponteiro para o documento que conterá o novo item.

bAutoDelete
Sinalizador que indica se o objeto pode ser excluído quando um link para ele é liberado. Defina isso como FALSE se o objeto COleServerItem for parte integrante dos dados do documento que você precisa excluir. Defina como TRUE se o objeto for uma estrutura secundária usada para identificar um intervalo nos dados do documento que pode ser excluído pela estrutura.

COleServerItem::CopyToClipboard

Chame essa função para copiar o item OLE para a Área de Transferência.

void CopyToClipboard(BOOL bIncludeLink = FALSE);

Parâmetros

bIncludeLink
Defina isso como TRUE se os dados de link devem ser copiados para a área de transferência. Defina isso como FALSE se o aplicativo de servidor não der suporte a links.

Comentários

A função usa a função de membro OnGetClipboardData para criar um objeto COleDataSource que contém os dados do item OLE nos formatos com suporte. A função depois coloca o objeto COleDataSource na área de transferência usando a função COleDataSource::SetClipboard. O objeto COleDataSource inclui os dados nativos do item e sua representação no formato CF_METAFILEPICT, bem como dados em qualquer formato de conversão que você optar por dar suporte. Você precisa ter implementado Serialize e OnDraw para que essa função de membro funcione.

COleServerItem::DoDragDrop

Chame a função membro DoDragDrop para executar uma operação de arrastar e soltar.

DROPEFFECT DoDragDrop(
    LPCRECT lpRectItem,
    CPoint ptOffset,
    BOOL bIncludeLink = FALSE,
    DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
    LPCRECT lpRectStartDrag = NULL);

Parâmetros

lpRectItem
O retângulo do item na tela, em pixels, em relação à área do cliente.

ptOffset
O desvio de lpItemRect em que a posição do mouse estava no momento do arrasto.

bIncludeLink
Defina isso como TRUE se os dados de link devem ser copiados para a área de transferência. Defina-o como FALSE se o aplicativo não permitir links.

dwEffects
Determina os efeitos que a origem de arrastar permitirá na operação de arrastar (uma combinação de Copiar, Mover e Vincular).

lpRectStartDrag
O ponteiro para o retângulo que define onde a ação de arrastar realmente começa. Para obter mais informações, consulte a seção Comentários a seguir.

Valor de retorno

Um valor da enumeração DROPEFFECT. Se for DROPEFFECT_MOVE, os dados originais deverão ser removidos.

Comentários

A operação do tipo "arrastar e soltar" não é iniciada imediatamente. Ela aguarda até que o cursor do mouse deixe o retângulo especificado por lpRectStartDrag ou até que um número específico de milissegundos tenha passado. Se lpRectStartDrag for NULL, um retângulo padrão será usado para que o arrastar comece quando o cursor do mouse mover um pixel.

O tempo de atraso é especificado por uma configuração de chave do Registro. Você pode alterar o tempo de atraso chamando CWinApp::WriteProfileString ou CWinApp::WriteProfileInt. Se você não especificar o tempo de atraso, um valor padrão de 200 milissegundos será usado. O tempo de atraso de arrastar é armazenado da seguinte maneira:

  • O tempo de atraso de arrastar do Windows NT é armazenado em HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay.

  • O tempo de atraso de arrastar do Windows 3.x é armazenado no arquivo WIN.INI, na seção [Windows}.

  • O tempo de atraso de arrastar do Windows 95/98 é armazenado em uma versão armazenada em cache do WIN.INI.

Para obter mais informações sobre como as informações de atraso de arrastar são armazenadas no Registro ou no arquivo .INI, confira WriteProfileString no SDK do Windows.

COleServerItem::GetClipboardData

Chame essa função para preencher o objeto COleDataSource especificado com todos os dados que seriam copiados para a área de transferência se você chamar CopyToClipboard (os mesmos dados também seriam transferidos se você chamar DoDragDrop).

void GetClipboardData(
    COleDataSource* pDataSource,
    BOOL bIncludeLink = FALSE,
    LPPOINT lpOffset = NULL,
    LPSIZE lpSize = NULL);

Parâmetros

pDataSource
Ponteiro para o objeto COleDataSource que receberá os dados do item OLE em todos os formatos compatíveis.

bIncludeLink
TRUE se os dados de link devem ser copiados para a área de transferência. FALSE se o aplicativo para servidores não permitir links.

lpOffset
O deslocamento em pixels do cursor do mouse da origem do objeto.

lpSize
O tamanho do objeto em pixels.

Comentários

Essa função chama a função membro GetEmbedSourceData para obter os dados nativos do item OLE e chama a função membro AddOtherClipboardData para obter o formato de apresentação e os formatos de conversão com suporte. Se bIncludeLink for TRUE, a função também chamará GetLinkSourceData para obter os dados de link para o item.

Substitua essa função se você quiser colocar formatos em um objeto COleDataSource antes ou depois desses formatos fornecidos por CopyToClipboard.

COleServerItem::GetDataSource

Chame essa função para obter o objeto COleDataSource usado para armazenar os formatos de conversão que o aplicativo de servidor permite.

COleDataSource* GetDataSource();

Valor de retorno

Um ponteiro para o objeto COleDataSource usado para armazenar os formatos de conversão.

Comentários

Se você quiser que seu aplicativo de servidor ofereça dados em vários formatos durante operações de transferência de dados, registre esses formatos com o objeto COleDataSource retornado por essa função. Por exemplo, se você quiser fornecer uma representação CF_TEXT do item OLE para operações de transferência ou arrastar e soltar, registrará o formato com o objeto COleDataSource que essa função retorna e substituirá a função de membro OnRenderXxxData para fornecer os dados.

COleServerItem::GetDocument

Chame essa função para obter um ponteiro para o documento que contém o item.

COleServerDoc* GetDocument() const;

Valor de retorno

Um ponteiro para o documento que contém o item; NULL se o item não fizer parte de um documento.

Comentários

Isso permite o acesso ao documento do servidor que você passou como um argumento para o construtor COleServerItem.

COleServerItem::GetEmbedSourceData

Chame essa função para obter os dados CF_EMBEDSOURCE para um item OLE.

void GetEmbedSourceData(LPSTGMEDIUM lpStgMedium);

Parâmetros

lpStgMedium
Ponteiro para a estrutura STGMEDIUM que receberá os dados CF_EMBEDSOURCE para o item OLE.

Comentários

Esse formato inclui os dados nativos do item. Você precisa ter implementado a função membro Serialize para que essa função funcione corretamente.

Em seguida, o resultado pode ser adicionado a uma fonte de dados usando COleDataSource::CacheData. Essa função é chamada automaticamente por COleServerItem::OnGetClipboardData.

Para obter mais informações, confira STGMEDIUM no SDK do Windows.

COleServerItem::GetItemName

Chame essa função para obter o nome do item.

const CString& GetItemName() const;

Valor de retorno

O nome do item.

Comentários

Normalmente, você chama essa função apenas para itens vinculados.

COleServerItem::GetLinkSourceData

Chame essa função para obter os dados CF_LINKSOURCE para um item OLE.

BOOL GetLinkSourceData(LPSTGMEDIUM lpStgMedium);

Parâmetros

lpStgMedium
Ponteiro para a estrutura STGMEDIUM que receberá os dados CF_LINKSOURCE para o item OLE.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Esse formato inclui o CLSID que descreve o tipo do item OLE e as informações necessárias para localizar o documento que contém o item OLE.

Em seguida, o resultado pode ser adicionado a uma fonte de dados com COleDataSource::CacheData. Essa função é chamada automaticamente por OnGetClipboardData.

Para obter mais informações, confira STGMEDIUM no SDK do Windows.

COleServerItem::GetObjectDescriptorData

Chame essa função para obter os dados CF_OBJECTDESCRIPTOR para um item OLE.

void GetObjectDescriptorData(
    LPPOINT lpOffset,
    LPSIZE lpSize,
    LPSTGMEDIUM lpStgMedium);

Parâmetros

lpOffset
Deslocamento do clique do mouse do canto superior esquerdo do item OLE. Pode ser NULL.

lpSize
Tamanho do item OLE. Pode ser NULL.

lpStgMedium
Ponteiro para a estrutura STGMEDIUM que receberá os dados CF_OBJECTDESCRIPTOR para o item OLE.

Comentários

As informações são copiadas para a estrutura STGMEDIUM apontada por lpStgMedium. Esse formato inclui as informações necessárias para a caixa de diálogo Colar Especial.

Para obter mais informações, confira STGMEDIUM no SDK do Windows.

COleServerItem::IsConnected

Chame essa função para ver se o item OLE está conectado.

BOOL IsConnected() const;

Valor de retorno

Diferentes de zero se o item estiver conectado; caso contrário, 0.

Comentários

Um item OLE será considerado conectado se um ou mais contêineres tiverem referências ao item. Um item será conectado se sua contagem de referência for maior que 0 ou se for um item inserido.

COleServerItem::IsLinkedItem

Chame essa função para ver se o item OLE é um item conectado.

BOOL IsLinkedItem() const;

Valor de retorno

Não zero se o item for um item vinculado; caso contrário, 0.

Comentários

Um item será vinculado se o item for válido e não for retornado na lista de itens inseridos do documento. Um item vinculado pode ou não estar conectado a um contêiner.

É comum usar a mesma classe para itens vinculados e inseridos. IsLinkedItem permite que fazer com que os itens vinculados se comportem de forma diferente dos itens inseridos, embora muitas vezes o código seja comum.

COleServerItem::m_sizeExtent

Esse membro informa ao servidor quanto do objeto está visível no documento de contêiner.

CSize m_sizeExtent;

Comentários

A implementação padrão do OnSetExtent define esse membro.

COleServerItem::NotifyChanged

Chame essa função depois que o item vinculado tiver sido alterado.

void NotifyChanged(DVASPECT nDrawAspect = DVASPECT_CONTENT);

Parâmetros

nDrawAspect
Um valor da enumeração DVASPECT que indica qual aspecto do item OLE foi alterado. Esse parâmetro pode ter um dos seguintes valores:

  • DVASPECT_CONTENT O item é representado de maneira que ele possa ser exibido como um objeto inserido dentro do respectivo contêiner.

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

  • DVASPECT_ICON O item é representado por um ícone.

  • DVASPECT_DOCPRINT O item é representado como se tivesse sido impresso usando o comando Imprimir no menu Arquivo.

Comentários

Se um item de contêiner estiver vinculado ao documento com um link automático, o item será atualizado para refletir as alterações. Em aplicativos de contêiner escritos usando a biblioteca Microsoft Foundation Class, COleClientItem::OnChange é chamado em resposta.

COleServerItem::OnDoVerb

Chamado pela estrutura para executar o verbo especificado.

virtual void OnDoVerb(LONG iVerb);

Parâmetros

iVerb
Especifica o verbo a ser executado. Pode ser qualquer um dos seguintes:

Valor Significado Símbolo
0 Verbo primário OLEIVERB_PRIMARY
1 Verbo secundário (Nenhuma)
- 1 Exibir item para edição OLEIVERB_SHOW
- 2 Editar item em janela separada OLEIVERB_OPEN
- 3 Ocultar item OLEIVERB_HIDE

O valor -1 normalmente é um alias para outro verbo. Se não houver suporte para edição aberta, -2 terá o mesmo efeito que -1. Para obter valores adicionais, confira IOleObject::DoVerb no SDK do Windows.

Comentários

Se o aplicativo de contêiner tiver sido gravado com a biblioteca Microsoft Foundation Class, essa função será chamada quando a função de membro COleClientItem::Activate do objeto COleClientItem correspondente for chamada. A implementação padrão chamará a função membro OnShow se o verbo primário ou OLEIVERB_SHOW for especificado, OnOpen se o verbo secundário ou OLEIVERB_OPEN for especificado e OnHide se OLEIVERB_HIDE for especificado. A implementação padrão chamará OnShow se iVerb não for um dos verbos listados acima.

Substitua essa função se o verbo primário não mostrar o item. Por exemplo, se o item for uma gravação de som e seu verbo principal for Reproduzir, você não precisará exibir o aplicativo do servidor para reproduzir o item.

Para obter mais informações, confira IOleObject::DoVerb no SDK do Windows.

COleServerItem::OnDraw

Chamado pelo framework para renderizar um item OLE em um meta-arquivo.

virtual BOOL OnDraw(
    CDC* pDC,
    CSize& rSize) = 0;

Parâmetros

pDC
Um ponteiro para o objeto CDC no qual desenhar o item. O contexto de exibição é conectado automaticamente ao contexto dele para que você possa chamar funções de atributo, embora isso torne o meta-arquivo específico ao dispositivo.

rSize
Tamanho, em unidades HIMETRIC, nas quais desenhar o meta-arquivo.

Valor de retorno

Não zero se o item foi desenhado com êxito; caso contrário, 0.

Comentários

A representação de meta-arquivo do item OLE é usada para exibir o item no aplicativo de contêiner. Se o aplicativo de contêiner tiver sido escrito com a biblioteca Microsoft Foundation Class, o meta-arquivo será usado pela função de membro Draw do objeto COleClientItem correspondente. Não há implementação padrão. Você precisa substituir essa função para desenhar o item no contexto do dispositivo especificado.

COleServerItem::OnDrawEx

Chamado pela estrutura para todos os desenhos.

virtual BOOL OnDrawEx(
    CDC* pDC,
    DVASPECT nDrawAspect,
    CSize& rSize);

Parâmetros

pDC
Um ponteiro para o objeto CDC no qual desenhar o item. O DC é conectado automaticamente ao DC do atributo para que você possa chamar funções de atributo, embora isso torne o meta-arquivo específico ao dispositivo.

nDrawAspect
Um valor da enumeração DVASPECT. Esse parâmetro pode ter um dos seguintes valores:

  • DVASPECT_CONTENT O item é representado de maneira que ele possa ser exibido como um objeto inserido dentro do respectivo contêiner.

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

  • DVASPECT_ICON O item é representado por um ícone.

  • DVASPECT_DOCPRINT O item é representado como se tivesse sido impresso usando o comando Imprimir no menu Arquivo.

rSize
Tamanho do item em unidades HIMETRIC.

Valor de retorno

Não zero se o item foi desenhado com êxito; caso contrário, 0.

Comentários

A implementação padrão chama OnDraw quando DVASPECT é igual a DVASPECT_CONTENT; caso contrário, falha.

Substitua essa função para fornecer dados de apresentação para aspectos diferentes de DVASPECT_CONTENT, como DVASPECT_ICON ou DVASPECT_THUMBNAIL.

COleServerItem::OnGetClipboardData

Chamado pela estrutura para obter um objeto COleDataSource que contenha todos os dados que seriam colocados na Área de Transferência por uma chamada para a função membro CopyToClipboard.

virtual COleDataSource* OnGetClipboardData(
    BOOL bIncludeLink,
    LPPOINT lpOffset,
    LPSIZE lpSize);

Parâmetros

bIncludeLink
Defina isso como TRUE se os dados de link devem ser copiados para a área de transferência. Defina isso como FALSE se o aplicativo de servidor não der suporte a links.

lpOffset
O deslocamento do cursor do mouse da origem do objeto em pixels.

lpSize
O tamanho do objeto em pixels.

Valor de retorno

Um ponteiro para um objeto COleDataSource que contém os dados da área de transferência.

Comentários

A implementação padrão dessa função chama GetClipboardData.

COleServerItem::OnGetExtent

Chamado pela estrutura para recuperar o tamanho, em unidades HIMETRIC, do item OLE.

virtual BOOL OnGetExtent(
    DVASPECT nDrawAspect,
    CSize& rSize);

Parâmetros

nDrawAspect
Especifica o aspecto do item OLE cujos limites devem ser recuperados. Esse parâmetro pode ter um dos seguintes valores:

  • DVASPECT_CONTENT O item é representado de maneira que ele possa ser exibido como um objeto inserido dentro do respectivo contêiner.

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

  • DVASPECT_ICON O item é representado por um ícone.

  • DVASPECT_DOCPRINT O item é representado como se tivesse sido impresso usando o comando Imprimir no menu Arquivo.

rSize
Referência a um objeto CSize que receberá o tamanho do item OLE.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Se o aplicativo de contêiner tiver sido gravado com a biblioteca Microsoft Foundation Class, essa função será chamada quando a função de membro GetExtent do objeto COleClientItem correspondente for chamada. A implementação padrão não tem ação. Você precisa implementar por contra própria. Substitua essa função se você quiser executar um processamento especial ao manipular uma solicitação para o tamanho do item OLE.

COleServerItem::OnHide

Chamado pela estrutura para ocultar o item OLE.

virtual void OnHide();

Comentários

O padrão chama COleServerDoc::OnShowDocument( FALSE ). A função também notifica o contêiner de que o item OLE foi oculto. Substitua essa função se você quiser executar um processamento especial ao ocultar um item OLE.

COleServerItem::OnInitFromData

Chamado pela estrutura para inicializar um item OLE usando o conteúdo de pDataObject.

virtual BOOL OnInitFromData(
    COleDataObject* pDataObject,
    BOOL bCreation);

Parâmetros

pDataObject
Ponteiro para um objeto de dados OLE que contém dados em vários formatos para inicializar o item OLE.

bCreation
TRUE se a função for chamada para inicializar um item OLE que está sendo criado recentemente por um aplicativo de contêiner. FALSE se a função for chamada para substituir o conteúdo de um item OLE já existente.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Se bCreation for TRUE, essa função será chamada se um contêiner implementar Inserir Novo Objeto com base na seleção atual. Os dados selecionados são usados ao criar o novo item OLE. Por exemplo, ao selecionar um intervalo de células em um programa de planilha e, em seguida, usar o Objeto Inserir Novo para criar um gráfico com base nos valores no intervalo selecionado. A implementação padrão não tem ação. Substitua essa função para escolher um formato aceitável daqueles oferecidos pelo pDataObject e inicialize o item OLE com base nos dados fornecidos. Essa é uma substituição avançada.

Para obter mais informações, confira IOleObject::InitFromData no SDK do Windows.

COleServerItem::OnOpen

Chamado pela estrutura para exibir o item OLE em uma instância separada do aplicativo de servidor, em vez de no local.

virtual void OnOpen();

Comentários

A implementação padrão ativa a primeira janela de quadro exibindo o documento que contém o item OLE. Se o aplicativo for um mini-servidor, a implementação padrão mostrará a janela principal. A função também notifica o contêiner de que o item OLE foi aberto.

Substitua essa função se você quiser executar um processamento especial ao abrir um item OLE. Isso é especialmente comum com itens vinculados em que você quer definir a seleção para o link quando ela é aberta.

Para obter mais informações, confira IOleClientSite::OnShowWindow no SDK do Windows.

COleServerItem::OnQueryUpdateItems

Chamado pela estrutura para determinar se os itens vinculados no documento do servidor atual estão desatualizados.

virtual BOOL OnQueryUpdateItems();

Valor de retorno

Não zero se o documento tiver itens que precisam de atualizações; 0 se todos os itens estiverem atualizados.

Comentários

Um item estará desatualizado se o documento de origem tiver sido alterado, mas o item vinculado não tiver sido atualizado para refletir as alterações no documento.

COleServerItem::OnRenderData

Chamado pela estrutura para recuperar dados no formato especificado.

virtual BOOL OnRenderData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium);

Parâmetros

lpFormatEtc
Aponta para a estrutura FORMATETC especificando o formato no qual as informações são solicitadas.

lpStgMedium
Aponta para uma estrutura STGMEDIUM na qual os dados devem ser retornados.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

O formato especificado é um colocado anteriormente no objeto COleDataSource usando a função de membro DelayRenderData ou DelayRenderFileData para renderização com atraso. A implementação padrão dessa função chama OnRenderFileData ou OnRenderGlobalData se o meio de armazenamento fornecido for um arquivo ou memória, respectivamente. Se nenhum desses formatos for fornecido, a implementação padrão retornará 0 e não terá efeito.

Se lpStgMedium->tymed for TYMED_NULL, STGMEDIUM deverá ser alocado e preenchido conforme especificado por lpFormatEtc->tymed. Se não for TYMED_NULL, STGMEDIUM deverá ser preenchido localmente com os dados.

Essa é uma substituição avançada. Substitua essa função para fornecer seus dados no formato e no meio solicitados. Dependendo dos dados, talvez você queira substituir uma das outras versões dessa função. Se os dados forem pequenos e fixos em tamanho, substitua OnRenderGlobalData. Se os dados estiverem em um arquivo ou forem de tamanho variável, substitua OnRenderFileData.

Para obter mais informações, confira IDataObject::GetData, STGMEDIUM, FORMATETC e TYMED no SDK do Windows.

COleServerItem::OnRenderFileData

Chamado pela estrutura para recuperar dados no formato especificado quando o meio de armazenamento for um arquivo.

virtual BOOL OnRenderFileData(
    LPFORMATETC lpFormatEtc,
    CFile* pFile);

Parâmetros

lpFormatEtc
Aponta para a estrutura FORMATETC especificando o formato no qual as informações são solicitadas.

pFile
Aponta para um objeto CFile no qual os dados devem ser renderizados.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

O formato especificado é um colocado anteriormente no objeto COleDataSource usando a função de membro DelayRenderData para renderização com atraso. A implementação padrão dessa função simplesmente retorna FALSE.

Essa é uma substituição avançada. Substitua essa função para fornecer seus dados no formato e no meio solicitados. Dependendo dos dados, talvez você queira substituir uma das outras versões dessa função. Se você quiser manipular várias mídias de armazenamento, substitua OnRenderData. Se os dados estiverem em um arquivo ou forem de tamanho variável, substitua OnRenderFileData.

Para obter mais informações, confira IDataObject::GetData e FORMATETC no SDK do Windows.

COleServerItem::OnRenderGlobalData

Chamado pela estrutura para recuperar dados no formato especificado quando o meio de armazenamento especificado for uma memória global.

virtual BOOL OnRenderGlobalData(
    LPFORMATETC lpFormatEtc,
    HGLOBAL* phGlobal);

Parâmetros

lpFormatEtc
Aponta para a estrutura FORMATETC especificando o formato no qual as informações são solicitadas.

phGlobal
Aponta para um identificador para a memória global na qual os dados devem ser retornados. Se nenhuma memória tiver sido alocada, esse parâmetro poderá ser NULL.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

O formato especificado é um colocado anteriormente no objeto COleDataSource usando a função de membro DelayRenderData para renderização com atraso. A implementação padrão dessa função simplesmente retorna FALSE.

Se phGlobal for NULL, um novo HGLOBAL deverá ser alocado e retornado em phGlobal. Caso contrário, o HGLOBAL especificado pelo phGlobal deverá ser preenchido com os dados. A quantidade de dados colocados no HGLOBAL não pode exceder o tamanho atual do bloco de memória. Além disso, o bloco não pode ser realocado para um tamanho maior.

Essa é uma substituição avançada. Substitua essa função para fornecer seus dados no formato e no meio solicitados. Dependendo dos dados, talvez você queira substituir uma das outras versões dessa função. Se você quiser manipular várias mídias de armazenamento, substitua OnRenderData. Se os dados estiverem em um arquivo ou forem de tamanho variável, substitua OnRenderFileData.

Para obter mais informações, confira IDataObject::GetData e FORMATETC no SDK do Windows.

COleServerItem::OnSetColorScheme

Chamado pela estrutura para especificar uma paleta de cores a ser usada ao editar o item OLE.

virtual BOOL OnSetColorScheme(const LOGPALETTE* lpLogPalette);

Parâmetros

lpLogPalette
Ponteiro para uma estrutura LOGPALETTE do Windows.

Valor de retorno

Não zero se a paleta de cores for usada; caso contrário, 0.

Comentários

Se o aplicativo de contêiner tiver sido gravado com a biblioteca Microsoft Foundation Class, essa função será chamada quando a função de membro IOleObject::SetColorScheme do objeto COleClientItem correspondente for chamada. A implementação padrão retorna FALSE. Substitua essa função se você quiser usar a paleta recomendada. O aplicativo de servidor não é necessário para usar a paleta sugerida.

Para obter mais informações, confira IOleObject::SetColorScheme no SDK do Windows.

COleServerItem::OnSetData

Chamado pela estrutura para substituir os dados do item OLE pelos dados especificados.

virtual BOOL OnSetData(
    LPFORMATETC lpFormatEtc,
    LPSTGMEDIUM lpStgMedium,
    BOOL bRelease);

Parâmetros

lpFormatEtc
Ponteiro para uma estrutura FORMATETC que especifica o formato dos dados.

lpStgMedium
Ponteiro para uma estrutura STGMEDIUM na qual os dados residem.

bRelease
Indica quem tem a propriedade do meio de armazenamento depois de concluir a chamada de função. O chamador decide quem é responsável por liberar os recursos alocados em nome do meio de armazenamento. O chamador faz isso definindo bRelease. Se bRelease não for zero, o item do servidor assumirá a propriedade, liberando o meio quando terminar de usá-lo. Quando bRelease for 0, o chamador manterá a propriedade, e o item do servidor poderá usar o meio de armazenamento somente durante a chamada.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

O item do servidor não assume a propriedade dos dados até que a tenha obtido com êxito. Ou seja, ele não assumirá a propriedade se retornar 0. Se a fonte de dados assumir a propriedade, ela liberará o meio de armazenamento chamando a função ReleaseStgMedium.

A implementação padrão não tem ação. Substitua essa função para substituir os dados do item OLE pelos dados especificados. Essa é uma substituição avançada.

Para obter mais informações, confira STGMEDIUM, FORMATETC e ReleaseStgMedium no SDK do Windows.

COleServerItem::OnSetExtent

Chamado pela estrutura para informar ao item OLE quanto espaço está disponível para ele no documento de contêiner.

virtual BOOL OnSetExtent(
    DVASPECT nDrawAspect,
    const CSize& size);

Parâmetros

nDrawAspect
Especifica o aspecto do item OLE cujos limites estão sendo especificados. Esse parâmetro pode ter um dos seguintes valores:

  • DVASPECT_CONTENT O item é representado de maneira que ele possa ser exibido como um objeto inserido dentro do respectivo contêiner.

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

  • DVASPECT_ICON O item é representado por um ícone.

  • DVASPECT_DOCPRINT O item é representado como se tivesse sido impresso usando o comando Imprimir no menu Arquivo.

size
Uma estrutura CSize que especifica o novo tamanho do item OLE.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

Se o aplicativo de contêiner tiver sido gravado com a biblioteca Microsoft Foundation Class, essa função será chamada quando a função de membro SetExtent do objeto COleClientItem correspondente for chamada. A implementação padrão define o membro m_sizeExtent para o tamanho especificado se nDrawAspect for DVASPECT_CONTENT; caso contrário, retornará 0. Substitua essa função para executar o processamento especial quando você alterar o tamanho do item.

COleServerItem::OnShow

Chamado pela estrutura para instruir o aplicativo de servidor a exibir o item OLE no local.

virtual void OnShow();

Comentários

Essa função normalmente é chamada quando o usuário do aplicativo de contêiner cria um item ou executa um verbo, como Editar, que exige que o item seja mostrado. A implementação padrão tenta ativação in-loco. Se isso falhar, a função chamará a função membro OnOpen para exibir o item OLE em uma janela separada.

Substitua essa função se você quiser executar um processamento especial ao mostrar um item OLE.

COleServerItem::OnUpdate

Chamado pela estrutura quando um item foi modificado.

virtual void OnUpdate(
    COleServerItem* pSender,
    LPARAM lHint,
    CObject* pHint,
    DVASPECT nDrawAspect);

Parâmetros

pSender
Ponteiro para o item que modificou o documento. Pode ser NULL.

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

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

nDrawAspect
Um valor da enumeração DVASPECT. Esse parâmetro pode ter algum dos seguintes valores:

  • DVASPECT_CONTENT O item é representado de maneira que ele possa ser exibido como um objeto inserido dentro do respectivo contêiner.

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

  • DVASPECT_ICON O item é representado por um ícone.

  • DVASPECT_DOCPRINT O item é representado como se tivesse sido impresso usando o comando Imprimir no menu Arquivo.

Comentários

A implementação padrão chama NotifyChanged, independentemente da dica ou do remetente.

COleServerItem::OnUpdateItems

Chamado pela estrutura para atualizar todos os itens no documento do servidor.

virtual void OnUpdateItems();

Comentários

A implementação padrão chama UpdateLink para todos os objetos COleClientItem no documento.

COleServerItem::SetItemName

Chame essa função ao criar um item vinculado para definir seu nome.

void SetItemName(LPCTSTR lpszItemName);

Parâmetros

lpszItemName
Ponteiro ao novo nome do item.

Comentários

O nome precisa ser exclusivo no documento. Quando um aplicativo de servidor é chamado para editar um item conectado, o aplicativo usa esse nome para localizar o item. Você não precisa chamar essa função para itens inseridos.

Confira também

HIERSVR de exemplo do MFC
Classe CDocItem
Gráfico da hierarquia
Classe COleClientItem
Classe COleServerDoc
Classe COleTemplateServer