ISequentialStream::Write-Methode (objidl.h)

Die Write-Methode schreibt eine angegebene Anzahl von Bytes ab dem aktuellen Suchzeiger in das Streamobjekt.

Syntax

HRESULT Write(
  [in]  const void *pv,
  [in]  ULONG      cb,
  [out] ULONG      *pcbWritten
);

Parameter

[in] pv

Ein Zeiger auf den Puffer, der die Daten enthält, die in den Stream geschrieben werden sollen. Für diesen Parameter muss ein gültiger Zeiger bereitgestellt werden, auch wenn cb null ist.

[in] cb

Die Anzahl der Datenbytes, die versucht werden sollen, in den Stream zu schreiben. Dieser Wert kann auch 0 sein.

[out] pcbWritten

Ein Zeiger auf eine ULONG-Variable , bei der diese Methode die tatsächliche Anzahl von Bytes schreibt, die in das Streamobjekt geschrieben werden. Der Aufrufer kann diesen Zeiger auf NULL festlegen. In diesem Fall gibt diese Methode nicht die tatsächliche Anzahl der geschriebenen Bytes an.

Rückgabewert

Diese Methode kann einen dieser Werte zurückgeben.

Rückgabecode Beschreibung
S_OK Die Daten wurden erfolgreich in das Streamobjekt geschrieben.
E_PENDING Nur asynchroner Speicher: Ein Teil oder alle zu schreibenden Daten sind derzeit nicht verfügbar.
STG_E_MEDIUMFULL Fehler beim Schreibvorgang, da auf dem Speichergerät kein Speicherplatz mehr vorhanden ist.
STG_E_ACCESSDENIED Der Aufrufer verfügt nicht über die erforderlichen Berechtigungen zum Schreiben in dieses Streamobjekt.
STG_E_CANTSAVE Daten können nicht aus anderen Gründen als unsachgemäßem Zugriff oder unzureichendem Speicherplatz geschrieben werden.
STG_E_INVALIDPOINTER Einer der Zeigerwerte ist ungültig. Der pv-Parameter muss einen gültigen Zeiger enthalten, auch wenn cb null ist.
STG_E_REVERTED Das Objekt wurde durch einen rückgängig machen Vorgang darüber in der Transaktionsstruktur ungültig gemacht.
STG_E_WRITEFAULT Fehler beim Schreibvorgang aufgrund eines Datenträgerfehlers. Dieser Wert wird auch zurückgegeben, wenn diese Methode versucht, in einen Stream zu schreiben, der im einfachen Modus geöffnet wurde (mit dem flag STGM_SIMPLE).

Hinweise

ISequentialStream::Write schreibt die angegebenen Daten in ein Streamobjekt. Der Suchzeiger wird für die Anzahl der tatsächlich geschriebenen Bytes angepasst. Die Anzahl der tatsächlich geschriebenen Bytes wird im pcbWritten-Parameter zurückgegeben. Wenn die Byteanzahl null Bytes beträgt, hat der Schreibvorgang keine Auswirkung.

Wenn sich der Suchzeiger derzeit am Ende des Datenstroms befindet und die Byteanzahl nonzero ist, erhöht diese Methode die Größe des Datenstroms auf den Suchzeiger und schreibt die angegebenen Bytes ab dem Suchzeiger. Die in den Stream geschriebenen Füllbytes werden nicht für einen bestimmten Wert initialisiert. Dies entspricht dem Verhalten am Ende der Datei im MS-DOS FAT-Dateisystem.

Mit einer Anzahl von null Byte und einem Suchzeiger über das Ende des Datenstroms hinaus erstellt diese Methode keine Füllbytes, um den Stream auf den Suchzeiger zu erhöhen. In diesem Fall müssen Sie die IStream::SetSize-Methode aufrufen, um die Größe des Datenstroms zu erhöhen und die Füllbytes zu schreiben.

Der pcbWritten-Parameter kann einen Wert haben, auch wenn ein Fehler auftritt.

In der von COM bereitgestellten Implementierung sind Streamobjekte nicht spärlich. Alle Füllbytes werden schließlich auf dem Datenträger zugeordnet und dem Stream zugewiesen.

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

ISequentialStream::Read

IStorage::OpenStream

IStream

IStream – Implementierung zusammengesetzter Dateien

STGMOVE