IStorage::OpenStorage-Methode (objidl.h)

Die OpenStorage-Methode öffnet ein vorhandenes Speicherobjekt mit dem angegebenen Namen im angegebenen Zugriffsmodus.

Syntax

HRESULT OpenStorage(
  [in]  const OLECHAR *pwcsName,
  [in]  IStorage      *pstgPriority,
  [in]  DWORD         grfMode,
  [in]  SNB           snbExclude,
  [in]  DWORD         reserved,
  [out] IStorage      **ppstg
);

Parameter

[in] pwcsName

Ein Zeiger auf ein Breitzeichen-Unicode-Zeichenfolge, die auf NULL endet und die den Namen des Speicherobjekts enthält, das geöffnet wird. Die Zeichen 000 bis 01f, welche als erste Zeichen des Namens des Datenstroms/Speichers dienen, sind durch die OLE für die Benutzung reserviert. Dies ist eine Verbunddateieinschränkung, keine strukturierte Speichereinschränkung. Es wird ignoriert, wenn pstgPriority nicht NULL ist.

[in] pstgPriority

Muss NULL sein. Ein Wert ohne NULL gibt STG_E_INVALIDPARAMETER zurück.

[in] grfMode

Bezeichnet den bei der Öffnung des Speicherobjekts zu verwendenden Zugriffsmodus. Beschreibungen der möglichen Werte finden Sie unter STGM-Konstanten. Andere Modi, die Sie auswählen, müssen mindestens STGM_SHARE_EXCLUSIVE angeben, wenn diese Methode aufgerufen wird.

[in] snbExclude

Muss NULL sein. Ein Wert ohne NULL gibt STG_E_INVALIDPARAMETER zurück.

[in] reserved

Für die zukünftige Verwendung reserviert. Muss 0 (null) sein.

[out] ppstg

Zeigen Sie bei erfolgreicher Ausführung auf den Speicherort eines IStorage-Zeigers auf das geöffnete Speicherobjekt. Dieser Parameter wird auf NULL festgelegt, wenn ein Fehler auftritt.

Rückgabewert

Diese Methode kann einen dieser Werte zurückgeben.

Rückgabecode Beschreibung
S_OK Das Speicherobjekt wurde erfolgreich geöffnet.
E_PENDING Nur asynchroner Speicher: Ein Teil oder alle Daten des Speichers sind derzeit nicht verfügbar.
STG_E_ACCESSDENIED Nicht genügend Berechtigungen zum Öffnen des Speicherobjekts.
STG_E_FILENOTFOUND Das Speicherobjekt mit dem angegebenen Namen ist nicht vorhanden.
STG_E_INSUFFICIENTMEMORY Das Speicherobjekt wurde aufgrund eines Mangels an Arbeitsspeicher nicht geöffnet.
STG_E_INVALIDFLAG Der für den grfMode-Parameter angegebene Wert ist kein gültiger STGM-Konstantenwert .
STG_E_INVALIDFUNCTION Die angegebene Kombination von Flags im grfMode-Parameter wird nicht unterstützt.
STG_E_INVALIDNAME Kein gültiger Wert für pwcsName.
STG_E_INVALIDPOINTER Der für das Speicherobjekt angegebene Zeiger war ungültig.
STG_E_INVALIDPARAMETER Einer der Parameter war ungültig.
STG_E_REVERTED Das Speicherobjekt wurde durch einen rückgängig machen Vorgang darüber in der Transaktionsstruktur ungültig gemacht.
STG_E_TOOMANYOPENFILES Das Speicherobjekt wurde nicht erstellt, da zu viele dateien geöffnet sind.
STG_S_CONVERTED Der vorhandene Stream mit dem angegebenen Namen wurde durch ein neues Speicherobjekt ersetzt, das einen einzelnen Stream namens CONTENTS enthält. Im direkten Modus wird der neue Speicher sofort auf den Datenträger geschrieben. Im Transaktionsmodus wird der neue Speicher in einen temporären Speicher im Arbeitsspeicher geschrieben und später beim Commit auf den Datenträger geschrieben.

Hinweise

Wenn der pstgPriority-ParameterNULL ist, wird er ignoriert. Wenn der pstgPriority-Parameter nicht NULL ist, handelt es sich um einen IStorage-Zeiger auf ein vorheriges Öffnen eines Elements des Speicherobjekts, das normalerweise im Prioritätsmodus geöffnet wurde. Das Speicherobjekt sollte gemäß grfMode geschlossen und erneut geöffnet werden. Wenn die IStorage::OpenStorage-Methode zurückgibt, ist pstgPriority nicht mehr gültig. Verwenden Sie den im ppstg-Parameter angegebenen Wert.

Speicherobjekte können mit STGM_DELETEONRELEASE geöffnet werden. In diesem Fall wird das Objekt zerstört, wenn es seine endgültige Freigabe erhält. Dies ist nützlich, um temporäre Speicherobjekte zu erstellen.

Anforderungen

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

Weitere Informationen

IStorage – Implementierung zusammengesetzter Dateien

IStorage::CreateStorage