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 |