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.
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
- Cree un objeto IStorage raíz llamando a la función StgCreateDocfile (..., &pstg).
- Abra el archivo OLE 1 (mediante OpenFile u otra técnica OLE 1).
- Lea desde el archivo mediante el procedimiento OLE 1 para leer archivos hasta que se encuentre un objeto OLE.
- 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);
- 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
OleConvertIStorageToOLESTREAMEx