Partager via


OleConvertOLESTREAMToIStorage, fonction (ole2.h)

La fonction OleConvertOLESTREAMToIStorage convertit l’objet spécifié du modèle de stockage OLE 1 en objet de stockage structuré OLE 2 sans spécifier de données de présentation.

Note Il s’agit de l’une des nombreuses fonctions de compatibilité.
 

Syntaxe

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

Paramètres

[in] lpolestream

Pointeur vers un flux qui contient la représentation persistante de l’objet au format de stockage OLE 1.

[out] pstg

Pointeur vers l’interface IStorage sur l’objet de stockage structuré OLE 2.

[in] ptd

Pointeur vers la structure DVTARGETDEVICE qui spécifie l’appareil cible pour lequel l’objet OLE 1 est rendu.

Valeur retournée

Cette fonction prend en charge la valeur de retour standard E_INVALIDARG, en plus des éléments suivants :

Remarques

Cette fonction convertit un objet OLE 1 en objet de stockage structuré OLE 2. Utilisez cette fonction pour mettre à jour des objets OLE 1 vers des objets OLE 2 lorsqu’une nouvelle version de l’application objet prend en charge OLE 2.

Lors de l’entrée, le paramètre lpolestm doit être créé et positionné comme il le serait pour un appel de fonction OleLoadFromStream . À la sortie, le paramètre lpolestm est positionné comme il le serait à la sortie d’une fonction OleLoadFromStream , et le paramètre pstg contient la représentation persistante non validée de l’objet de stockage OLE 2.

Pour les objets OLE 1 qui utilisent des données natives pour leur présentation, la fonction OleConvertOLESTREAMToIStorage retourne CONVERT10_S_NO_PRESENTATION. À la réception de cette valeur de retour, les appelants doivent appeler IOleObject ::Update pour obtenir les données de présentation afin qu’elles puissent être écrites dans le stockage.

Les applications qui n’utilisent pas les ressources de mise en cache par défaut OLE, mais qui utilisent les ressources de conversion, peuvent utiliser une autre fonction, OleConvertOLESTREAMToIStorageEx, qui peut spécifier les données de présentation à convertir. Dans la fonction OleConvertOLESTREAMToIStorageEx , les données de présentation lues à partir de la structure OLESTREAM sont passées et l’objet de stockage OLE 2 nouvellement créé ne contient pas de flux de présentation.

La procédure suivante décrit le processus de conversion à l’aide d’OleConvertOLESTREAMToIStorage.

Conversion d’un objet OLE 1 en objet de stockage OLE 2

  1. Créez un objet IStorage racine en appelant la fonction StgCreateDocfile (..., &pstg).
  2. Ouvrez le fichier OLE 1 (à l’aide d’OpenFile ou d’une autre technique OLE 1).
  3. Lire à partir du fichier, à l’aide de la procédure OLE 1 pour la lecture des fichiers, jusqu’à ce qu’un objet OLE soit trouvé.
  4. Allouez un objet IStorage à partir de l’IStorage racine créé à l’étape 1.
    pstg->lpVtbl->CreateStorage(...&pStgChild); 
    hRes = OleConvertIStorageToOLESTREAM(polestm, pStgChild); 
    hRes = OleLoad(pStgChild, &IID_IOleObject, pClientSite, ppvObj);
    
  5. Répétez l’étape 3 jusqu’à ce que le fichier soit entièrement lu.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête ole2.h
Bibliothèque Ole32.lib
DLL Ole32.dll

Voir aussi

CoIsOle1Class

DVTARGETDEVICE

OleConvertIStorageToOLESTREAM

OleConvertIStorageToOLESTREAMEx

OleConvertOLESTREAMToIStorageEx

STGMEDIUM

TYMED