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.

Nota Essa é uma das várias funções de compatibilidade.
 

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

  1. Crie um objeto IStorage raiz chamando a função StgCreateDocfile (..., &pstg).
  2. Abra o arquivo OLE 1 (usando OpenFile ou outra técnica OLE 1).
  3. Leia do arquivo, usando o procedimento OLE 1 para ler arquivos, até que um objeto OLE seja encontrado.
  4. 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);
    
  5. 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

CoIsOle1Class

DVTARGETDEVICE

OleConvertIStorageToOLESTREAM

OleConvertIStorageToOLESTREAMEx

OleConvertOLESTREAMToIStorageEx

STGMEDIUM

TYMED