IStorage::CreateStream-Methode (objidl.h)
Die CreateStream-Methode erstellt und öffnet ein Streamobjekt mit dem angegebenen Namen, der in diesem Speicherobjekt enthalten ist. Alle Elemente innerhalb eines Speicherobjekts, sowohl Streams als auch andere Speicherobjekte, werden im gleichen Namensraum aufbewahrt.
Syntax
HRESULT CreateStream(
[in] const OLECHAR *pwcsName,
[in] DWORD grfMode,
[in] DWORD reserved1,
[in] DWORD reserved2,
[out] IStream **ppstm
);
Parameter
[in] pwcsName
Ein Zeiger auf eine Unicode-Zeichenfolge mit breitem Zeichen null, die den Namen des neu erstellten Datenstroms enthält. Der Name kann später verwendet werden, um den Stream zu öffnen oder erneut zu öffnen. Der Name darf nicht länger als 31 Zeichen sein, wobei der Zeichenfolgenabschluss 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
Gibt den Zugriffsmodus an, der beim Öffnen des neu erstellten Datenstroms verwendet werden soll. Weitere Informationen und Beschreibungen der möglichen 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] ppstm
Zeigen Sie bei der Rückgabe auf die Position des neuen IStream-Schnittstellenzeigers. Dies ist nur gültig, wenn der Vorgang erfolgreich ist. Wenn ein Fehler auftritt, wird dieser Parameter auf NULL festgelegt.
Rückgabewert
Diese Methode kann einen dieser Werte zurückgeben.
Rückgabecode | Beschreibung |
---|---|
S_OK | Der neue Stream 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 von Stream. |
STG_E_FILEALREADYEXISTS | Der für den Stream angegebene Name ist bereits im Speicherobjekt vorhanden, und der grfMode-Parameter enthält den Wert STGM_FAILIFTHERE. |
STG_E_INSUFFICIENTMEMORY | Der Stream 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 . |
STG_E_INVALIDFUNCTION | Die angegebene Kombination von Flags im grfMode-Parameter wird nicht unterstützt. Beispielsweise, wenn diese Methode ohne das flag STGM_SHARE_EXCLUSIVE aufgerufen wird. |
STG_E_INVALIDNAME | Ungültiger Wert für pwcsName. |
STG_E_INVALIDPOINTER | Der für das Streamobjekt 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 | Der Stream wurde nicht erstellt, da zu viele geöffnete Dateien vorhanden sind. |
Hinweise
Wenn ein Stream mit dem im pwcsName-Parameter angegebenen Namen bereits vorhanden ist und der grfMode-Parameter das flag STGM_CREATE enthält, wird der vorhandene Stream durch einen neu erstellten Stream ersetzt. Sowohl die Zerstörung des alten Datenstroms als auch die Erstellung des neuen Streamobjekts unterliegen dem Transaktionsmodus für das übergeordnete Speicherobjekt.
Die von COM bereitgestellte Implementierung einer zusammengesetzten Datei der IStorage::CreateStream-Methode unterstützt die folgenden Verhaltensweisen nicht:
- Das STGM_DELETEONRELEASE-Flag wird nicht unterstützt.
- Der Transacted-Modus (STGM_TRANSACTED) wird für Streamobjekte nicht unterstützt.
- Das mehrmalse Öffnen desselben Datenstroms aus demselben Speicher wird nicht unterstützt. Das STGM_SHARE_EXCLUSIVE Freigabemodusflagge muss im grfMode-Parameter angegeben werden.
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 |