ISequentialStream::Metode tulis (objidl.h)

Metode Tulis menulis jumlah byte tertentu ke dalam objek aliran yang dimulai pada penunjuk pencarian saat ini.

Sintaks

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

Parameter

[in] pv

Penunjuk ke buffer yang berisi data yang akan ditulis ke aliran. Pointer yang valid harus disediakan untuk parameter ini bahkan ketika cb adalah nol.

[in] cb

Jumlah byte data untuk mencoba menulis ke aliran. Nilai ini bisa nol.

[out] pcbWritten

Penunjuk ke variabel ULONG di mana metode ini menulis jumlah byte aktual yang ditulis ke objek stream. Pemanggil dapat mengatur penunjuk ini ke NULL, dalam hal ini metode ini tidak memberikan jumlah byte aktual yang ditulis.

Nilai kembali

Metode ini dapat mengembalikan salah satu nilai ini.

Menampilkan kode Deskripsi
S_OK Data berhasil ditulis ke objek stream.
E_PENDING Hanya Penyimpanan Asinkron: Bagian atau semua data yang akan ditulis saat ini tidak tersedia.
STG_E_MEDIUMFULL Operasi tulis gagal karena tidak ada ruang yang tersisa pada perangkat penyimpanan.
STG_E_ACCESSDENIED Pemanggil tidak memiliki izin yang diperlukan untuk menulis ke objek aliran ini.
STG_E_CANTSAVE Data tidak dapat ditulis karena alasan selain akses yang tidak tepat atau ruang yang tidak mencukup.
STG_E_INVALIDPOINTER Salah satu nilai pointer tidak valid. Parameter pv harus berisi pointer yang valid meskipun cb adalah nol.
STG_E_REVERTED Objek telah divalidasi oleh operasi kembali di atasnya di pohon transaksi.
STG_E_WRITEFAULT Operasi tulis gagal karena kesalahan disk. Nilai ini juga dikembalikan ketika metode ini mencoba menulis ke aliran yang dibuka dalam mode sederhana (menggunakan bendera STGM_SIMPLE).

Keterangan

ISequentialStream::Write menulis data yang ditentukan ke objek stream. Penunjuk pencarian disesuaikan untuk jumlah byte yang benar-benar ditulis. Jumlah byte yang benar-benar ditulis dikembalikan dalam parameter pcbWritten . Jika jumlah byte nol byte, operasi tulis tidak berpengaruh.

Jika penunjuk pencarian saat ini melewati akhir aliran dan jumlah byte bukan nol, metode ini meningkatkan ukuran aliran ke penunjuk pencarian dan menulis byte yang ditentukan mulai dari penunjuk pencarian. Byte isian yang ditulis ke aliran tidak diinisialisasi ke nilai tertentu. Ini sama dengan perilaku akhir file dalam sistem file MS-DOS FAT.

Dengan jumlah byte nol dan penunjuk pencarian melewati akhir aliran, metode ini tidak membuat byte isi untuk meningkatkan aliran ke penunjuk pencarian. Dalam hal ini, Anda harus memanggil metode IStream::SetSize untuk meningkatkan ukuran aliran dan menulis byte isian.

Parameter pcbWritten dapat memiliki nilai bahkan jika terjadi kesalahan.

Dalam implementasi yang disediakan COM, objek stream tidak jarang. Setiap byte pengisian akhirnya dialokasikan pada disk dan ditetapkan ke aliran.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows 2000 Server [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header objidl.h
Pustaka Uuid.lib
DLL Ole32.dll

Lihat juga

ISequentialStream::Read

IStorage::OpenStream

IStream

IStream - Implementasi File Manggala

STGMOVE