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 |