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 |