Função OleConvertOLESTREAMToIStorage (ole2.h)
A função OleConvertOLESTREAMToIStorage converte o objeto especificado do modelo de armazenamento OLE 1 em um objeto de armazenamento estruturado OLE 2 sem especificar dados de apresentação.
Sintaxe
HRESULT OleConvertOLESTREAMToIStorage(
[in] LPOLESTREAM lpolestream,
[out] LPSTORAGE pstg,
[in] const DVTARGETDEVICE *ptd
);
Parâmetros
[in] lpolestream
Um ponteiro para um fluxo que contém a representação persistente do objeto no formato de armazenamento OLE 1.
[out] pstg
Um ponteiro para a interface IStorage no objeto de armazenamento estruturado OLE 2.
[in] ptd
Um ponteiro para a estrutura DVTARGETDEVICE que especifica o dispositivo de destino para o qual o objeto OLE 1 é renderizado.
Retornar valor
Essa função dá suporte ao valor retornado padrão E_INVALIDARG, além do seguinte:
Comentários
Essa função converte um objeto OLE 1 em um objeto de armazenamento estruturado OLE 2. Use essa função para atualizar objetos OLE 1 para objetos OLE 2 quando uma nova versão do aplicativo de objeto der suporte ao OLE 2.
Na entrada, o parâmetro lpolestm deve ser criado e posicionado da mesma forma que seria para uma chamada de função OleLoadFromStream . Na saída, o parâmetro lpolestm é posicionado exatamente como seria na saída de uma função OleLoadFromStream e o parâmetro pstg contém a representação persistente não confirmada do objeto de armazenamento OLE 2.
Para objetos OLE 1 que usam dados nativos para sua apresentação, a função OleConvertOLESTREAMToIStorage retorna CONVERT10_S_NO_PRESENTATION. Ao receber esse valor retornado, os chamadores devem chamar IOleObject::Update para obter os dados da apresentação para que possam ser gravados no armazenamento.
Aplicativos que não usam os recursos de cache padrão OLE, mas usam os recursos de conversão, podem usar uma função alternativa, OleConvertOLESTREAMToIStorageEx, que pode especificar os dados de apresentação a serem convertidos. Na função OleConvertOLESTREAMToIStorageEx , os dados de apresentação lidos da estrutura OLESTREAM são passados e o objeto de armazenamento OLE 2 recém-criado não contém um fluxo de apresentação.
O procedimento a seguir descreve o processo de conversão usando OleConvertOLESTREAMToIStorage.
Convertendo um objeto OLE 1 em um objeto de armazenamento OLE 2
- Crie um objeto IStorage raiz chamando a função StgCreateDocfile (..., &pstg).
- Abra o arquivo OLE 1 (usando OpenFile ou outra técnica OLE 1).
- Leia do arquivo, usando o procedimento OLE 1 para ler arquivos, até que um objeto OLE seja encontrado.
- Aloque um objeto IStorage do IStorage raiz criado na Etapa 1.
pstg->lpVtbl->CreateStorage(...&pStgChild); hRes = OleConvertIStorageToOLESTREAM(polestm, pStgChild); hRes = OleLoad(pStgChild, &IID_IOleObject, pClientSite, ppvObj);
- Repita a Etapa 3 até que o arquivo seja completamente lido.
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
OleConvertIStorageToOLESTREAMEx