Compartir a través de


Función OleConvertOLESTREAMToIStorage (ole2.h)

La función OleConvertOLESTREAMToIStorage convierte el objeto especificado del modelo de almacenamiento OLE 1 en un objeto de almacenamiento estructurado OLE 2 sin especificar datos de presentación.

Nota Se trata de una de varias funciones de compatibilidad.
 

Sintaxis

HRESULT OleConvertOLESTREAMToIStorage(
  [in]  LPOLESTREAM          lpolestream,
  [out] LPSTORAGE            pstg,
  [in]  const DVTARGETDEVICE *ptd
);

Parámetros

[in] lpolestream

Puntero a una secuencia que contiene la representación persistente del objeto en el formato de almacenamiento OLE 1.

[out] pstg

Puntero a la interfaz IStorage en el objeto de almacenamiento estructurado OLE 2.

[in] ptd

Puntero a la estructura DVTARGETDEVICE que especifica el dispositivo de destino para el que se representa el objeto OLE 1.

Valor devuelto

Esta función admite el valor devuelto estándar E_INVALIDARG, además de lo siguiente:

Comentarios

Esta función convierte un objeto OLE 1 en un objeto de almacenamiento estructurado OLE 2. Utilice esta función para actualizar objetos OLE 1 a objetos OLE 2 cuando una nueva versión de la aplicación de objetos admite OLE 2.

En la entrada, el parámetro lpolestm debe crearse y colocarse igual que para una llamada de función OleLoadFromStream . Al salir, el parámetro lpolestm se coloca igual que lo haría al salir de una función OleLoadFromStream y el parámetro pstg contiene la representación persistente no confirmada del objeto de almacenamiento OLE 2.

Para los objetos OLE 1 que usan datos nativos para su presentación, la función OleConvertOLESTREAMToIStorage devuelve CONVERT10_S_NO_PRESENTATION. Al recibir este valor devuelto, los autores de llamadas deben llamar a IOleObject::Update para obtener los datos de presentación para que se puedan escribir en el almacenamiento.

Las aplicaciones que no usan los recursos de almacenamiento en caché predeterminados OLE, pero que usan los recursos de conversión, pueden usar una función alternativa , OleConvertOLESTREAMToIStorageEx, que puede especificar los datos de presentación que se van a convertir. En la función OleConvertOLESTREAMToIStorageEx , los datos de presentación leídos de la estructura OLESTREAM se pasan y el objeto de almacenamiento OLE 2 recién creado no contiene un flujo de presentación.

En el procedimiento siguiente se describe el proceso de conversión mediante OleConvertOLESTREAMToIStorage.

Convertir un objeto OLE 1 en un objeto de almacenamiento OLE 2

  1. Cree un objeto IStorage raíz llamando a la función StgCreateDocfile (..., &pstg).
  2. Abra el archivo OLE 1 (mediante OpenFile u otra técnica OLE 1).
  3. Lea desde el archivo mediante el procedimiento OLE 1 para leer archivos hasta que se encuentre un objeto OLE.
  4. Asigne un objeto IStorage desde el IStorage raíz creado en el paso 1.
    pstg->lpVtbl->CreateStorage(...&pStgChild); 
    hRes = OleConvertIStorageToOLESTREAM(polestm, pStgChild); 
    hRes = OleLoad(pStgChild, &IID_IOleObject, pClientSite, ppvObj);
    
  5. Repita el paso 3 hasta que el archivo se lea por completo.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ole2.h
Library Ole32.lib
Archivo DLL Ole32.dll

Consulte también

CoIsOle1Class

DVTARGETDEVICE

OleConvertIStorageToOLESTREAM

OleConvertIStorageToOLESTREAMEx

OleConvertOLESTREAMToIStorageEx

STGMEDIUM

TYMED