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.
Wenn der Stream bereits vorhanden ist und grfMode auf STGM_FAILIFTHERE festgelegt ist, schlägt diese Methode mit dem Rückgabewert STG_E_FILEALREADYEXISTS fehl.

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::OpenStream

IStream