Share via


OleConvertOLESTREAMToIStorage-Funktion (ole2.h)

Die OleConvertOLESTREAMToIStorage-Funktion konvertiert das angegebene Objekt aus dem OLE 1-Speichermodell in ein strukturiertes OLE 2-Speicherobjekt, ohne Präsentationsdaten anzugeben.

Hinweis Dies ist eine von mehreren Kompatibilitätsfunktionen.
 

Syntax

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

Parameter

[in] lpolestream

Ein Zeiger auf einen Stream, der die persistente Darstellung des Objekts im OLE 1-Speicherformat enthält.

[out] pstg

Ein Zeiger auf die IStorage-Schnittstelle im strukturierten OLE 2-Speicherobjekt.

[in] ptd

Ein Zeiger auf die DVTARGETDEVICE-Struktur , der das Zielgerät angibt, für das das OLE 1-Objekt gerendert wird.

Rückgabewert

Diese Funktion unterstützt zusätzlich folgendes den Standardrückgabewert E_INVALIDARG:

Hinweise

Diese Funktion konvertiert ein OLE 1-Objekt in ein strukturiertes OLE 2-Speicherobjekt. Verwenden Sie diese Funktion, um OLE 1-Objekte auf OLE 2-Objekte zu aktualisieren, wenn eine neue Version der Objektanwendung OLE 2 unterstützt.

Beim Eintrag sollte der lpolestm-Parameter wie bei einem OleLoadFromStream-Funktionsaufruf erstellt und positioniert werden. Beim Beenden wird der lpolestm-Parameter genau wie beim Beenden einer OleLoadFromStream-Funktion positioniert, und der pstg-Parameter enthält die nicht festgelegte persistente Darstellung des OLE 2-Speicherobjekts.

Für OLE 1-Objekte, die native Daten für ihre Präsentation verwenden, gibt die OleConvertOLESTREAMToIStorage-FunktionCONVERT10_S_NO_PRESENTATION zurück. Beim Empfang dieses Rückgabewerts sollten Aufrufer IOleObject::Update aufrufen, um die Präsentationsdaten abzurufen, damit sie in den Speicher geschrieben werden können.

Anwendungen, die nicht die OLE-Standardcacheressourcen verwenden, aber die Konvertierungsressourcen verwenden, können eine alternative Funktion verwenden, OleConvertOLESTREAMToIStorageEx, die die zu konvertierenden Präsentationsdaten angeben kann. In der OleConvertOLESTREAMToIStorageEx-Funktion werden die aus der OLESTREAM-Struktur gelesenen Präsentationsdaten übergeben, und das neu erstellte OLE 2-Speicherobjekt enthält keinen Präsentationsstream.

Das folgende Verfahren beschreibt den Konvertierungsprozess mithilfe von OleConvertOLESTREAMToIStorage.

Konvertieren eines OLE 1-Objekts in ein OLE 2-Speicherobjekt

  1. Erstellen Sie ein IStorage-Stammobjekt , indem Sie die StgCreateDocfile-Funktion (..., &pstg) aufrufen.
  2. Öffnen Sie die OLE 1-Datei (mit OpenFile oder einem anderen OLE 1-Verfahren).
  3. Lesen Sie aus der Datei mithilfe der OLE 1-Prozedur zum Lesen von Dateien, bis ein OLE-Objekt gefunden wird.
  4. Ordnen Sie ein IStorage-Objekt aus dem in Schritt 1 erstellten IStorage-Stamm zu.
    pstg->lpVtbl->CreateStorage(...&pStgChild); 
    hRes = OleConvertIStorageToOLESTREAM(polestm, pStgChild); 
    hRes = OleLoad(pStgChild, &IID_IOleObject, pClientSite, ppvObj);
    
  5. Wiederholen Sie Schritt 3, bis die Datei vollständig gelesen ist.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ole2.h
Bibliothek Ole32.lib
DLL Ole32.dll

Weitere Informationen

CoIsOle1Class

DVTARGETDEVICE

OleConvertIStorageToOLESTREAM

OleConvertIStorageToOLESTREAMEx

OleConvertOLESTREAMToIStorageEx

STGMEDIUM

TYMED