Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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