Função OleCreateStaticFromData (ole2.h)

Cria um objeto estático, que contém apenas uma representação, sem dados nativos, de um objeto de transferência de dados.

Nota As funções de conversão OLESTREAM para IStorage também convertem objetos estáticos.
 

Sintaxe

HRESULT OleCreateStaticFromData(
  [in]  LPDATAOBJECT    pSrcDataObj,
  [in]  REFIID          iid,
  [in]  DWORD           renderopt,
  [in]  LPFORMATETC     pFormatEtc,
  [in]  LPOLECLIENTSITE pClientSite,
  [in]  LPSTORAGE       pStg,
  [out] LPVOID          *ppvObj
);

Parâmetros

[in] pSrcDataObj

Ponteiro para a interface IDataObject no objeto de transferência de dados que contém os dados dos quais o objeto será criado.

[in] iid

Referência ao identificador da interface com a qual o chamador deve se comunicar com o novo objeto (geralmente IID_IOleObject, definido nos cabeçalhos OLE como o identificador de interface para IOleObject).

[in] renderopt

Valor da enumeração OLERENDER indicando os recursos de desenho ou recuperação de dados armazenados em cache localmente que o contêiner deseja no componente recém-criado. É um erro passar as opções de renderização OLERENDER_NONE ou OLERENDER_ASIS para essa função.

[in] pFormatEtc

Dependendo de qual dos sinalizadores OLERENDER é usado como o valor de renderopt, pode ser um ponteiro para um dos valores de enumeração FORMATETC . Consulte a enumeração OLERENDER para obter restrições.

[in] pClientSite

Ponteiro para uma instância do IOleClientSite, a interface primária por meio da qual o objeto solicitará serviços de seu contêiner. Este parâmetro pode ser NULL.

[in] pStg

Ponteiro para a interface IStorage para armazenamento para o objeto . Esse parâmetro não pode ser NULL.

[out] ppvObj

Endereço da variável de ponteiro que recebe o ponteiro de interface solicitado em riid. Após o retorno bem-sucedido, *ppvObj contém o ponteiro de interface solicitado no objeto recém-criado.

Retornar valor

Essa função retorna S_OK em caso de êxito.

Comentários

A função OleCreateStaticFromData pode converter qualquer objeto, desde que forneça uma interface IDataObject , em um objeto estático. É útil implementar a opção Converter em Imagem para vinculação ou inserção OLE.

Objetos estáticos só poderão ser criados se a origem der suporte a um dos formatos de área de transferência renderizados por OLE: CF_METAFILEPICT, CF_DIB ou CF_ BITMAP e CF_ENHMETAFILE.

Você também pode chamar OleCreateStaticFromData para colar um objeto estático da área de transferência. Para determinar se um objeto é estático, chame a função OleQueryCreateFromData , que retorna OLE_S_STATIC se um dos CF_METAFILEPICT, CF_DIB, CF_BITMAP ou CF_ENHMETAFILE estiver presente e um formato OLE não estiver presente. Isso indica que você deve chamar OleCreateStaticFromData em vez da função OleCreateFromData para criar o objeto.

O novo objeto estático é da classe CLSID_StaticMetafile no caso de CF_METAFILEPICT, CLSID_StaticDib no caso de CF_DIB ou CF_BITMAP ou CLSID_Picture_EnhMetafile no caso de CF_ENHMETAFILE. O objeto estático define o OLEMISC_STATIC e OLE_CANTLINKINSIDE bits retornados de IOleObject::GetMiscStatus. O objeto estático terá o aspecto DVASPECT_CONTENT e um LINDEX de -1.

O pSrcDataObject ainda é válido após o retorno de OleCreateStaticFromData . É responsabilidade do chamador liberar pSrcDataObject – o OLE não o libera.

Não pode haver mais de um fluxo de apresentação em um objeto estático.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho ole2.h
Biblioteca Ole32.lib
DLL Ole32.dll

Confira também

OleCreateFromData