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.
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
- Erstellen Sie ein IStorage-Stammobjekt , indem Sie die StgCreateDocfile-Funktion (..., &pstg) aufrufen.
- Öffnen Sie die OLE 1-Datei (mit OpenFile oder einem anderen OLE 1-Verfahren).
- Lesen Sie aus der Datei mithilfe der OLE 1-Prozedur zum Lesen von Dateien, bis ein OLE-Objekt gefunden wird.
- 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);
- 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
OleConvertIStorageToOLESTREAMEx