IStorage::CreateStorage-Methode (objidl.h)
Die CreateStorage-Methode erstellt und öffnet ein neues Speicherobjekt, das in diesem Speicherobjekt geschachtelt ist, mit dem angegebenen Namen im angegebenen Zugriffsmodus.
Syntax
HRESULT CreateStorage(
[in] const OLECHAR *pwcsName,
[in] DWORD grfMode,
[in] DWORD reserved1,
[in] DWORD reserved2,
[out] IStorage **ppstg
);
Parameter
[in] pwcsName
Ein Zeiger auf eine Unicode-Zeichenfolge mit Breitzeichen mit NULL-Endung, die den Namen des neu erstellten Speicherobjekts enthält. Der Name kann später verwendet werden, um das Speicherobjekt erneut zu öffnen. Der Name darf nicht länger als 31 Zeichen sein, wobei das Zeichenfolgenabschlusszeichen nicht enthalten ist. 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.
[in] grfMode
Ein -Wert, der den Zugriffsmodus angibt, der beim Öffnen des neu erstellten Speicherobjekts verwendet werden soll. Weitere Informationen und eine Beschreibung möglicher Werte finden Sie unter STGM-Konstanten.
[in] reserved1
Für die zukünftige Verwendung reserviert. Muss 0 (null) sein.
[in] reserved2
Für die zukünftige Verwendung reserviert. Muss 0 (null) sein.
[out] ppstg
Bei erfolgreicher Ausführung ein Zeiger auf den Speicherort des IStorage-Zeigers auf das neu erstellte 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 erstellt. | |
E_PENDING | Nur asynchroner Speicher: Ein Teil oder alle erforderlichen Daten sind derzeit nicht verfügbar. | |
STG_E_ACCESSDENIED | Nicht genügend Berechtigungen zum Erstellen eines Speicherobjekts. | |
STG_E_FILEALREADYEXISTS | Der für das Speicherobjekt angegebene Name ist bereits im Speicherobjekt vorhanden, und der grfMode-Parameter enthält das Flag STGM_FAILIFTHERE. | |
STG_E_INSUFFICIENTMEMORY | Das Speicherobjekt wurde aufgrund eines Mangels an Arbeitsspeicher nicht erstellt. | |
STG_E_INVALIDFLAG | Der für den grfMode-Parameter< angegebene Wert ist kein gültiger STGM-Konstantenwert . | Der für den grfMode-Parameter angegebene Wert ist kein gültiger. |
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 geöffnete Dateien vorhanden 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. Das neue Speicherobjekt wird hinzugefügt. |
Hinweise
Wenn im übergeordneten Speicherobjekt bereits ein Speicher mit dem im parameter pwcsName angegebenen Namen vorhanden ist und der grfMode-Parameter das flag STGM_CREATE enthält, wird der vorhandene Speicher durch den neuen ersetzt. Wenn der grfMode-Parameter das flag STGM_CONVERT enthält, wird das vorhandene Element in ein Streamobjekt namens CONTENTS konvertiert, und das neue Speicherobjekt wird erstellt, das das CONTENTS-Streamobjekt enthält. Die Zerstörung des alten Elements und die Erstellung des neuen Speicherobjekts unterliegen beide dem Transaktionsmodus für das übergeordnete Speicherobjekt. Beachten Sie, dass Sie STGM_CONVERT nicht verwenden können, wenn Sie auch STGM_CREATE verwenden.
Die von COM bereitgestellte Verbunddateiimplementierung der IStorage::CreateStorage-Methode unterstützt das folgende Verhalten nicht:
- Das STGM_PRIORITY-Flag für Nicht-Stammspeicher.
- Dasselbe Speicherobjekt wird mehrmals aus demselben übergeordneten Speicher geöffnet. Das flag STGM_SHARE_EXCLUSIVE muss angegeben werden.
- Das STGM_DELETEONRELEASE-Flag. Wenn dieses Flag angegeben ist, gibt die Funktion STG_E_INVALIDFLAG zurück.
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 |