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