Antarmuka IStream (objidl.h)

Antarmuka IStream memungkinkan Anda membaca dan menulis data untuk mengalirkan objek. Stream objek berisi data dalam objek penyimpanan terstruktur, di mana penyimpanan menyediakan struktur. Data sederhana dapat ditulis langsung ke aliran tetapi, yang paling sering, aliran adalah elemen yang ditumpuk dalam objek penyimpanan. File tersebut mirip dengan file standar.

Antarmuka IStream mendefinisikan metode yang mirip dengan fungsi file MS-DOS FAT. Misalnya, setiap objek stream memiliki hak akses sendiri dan penunjuk pencarian. Perbedaan utama antara file DOS dan objek stream adalah bahwa dalam kasus terakhir, aliran dibuka menggunakan penunjuk antarmuka IStream daripada handel file.

Metode dalam antarmuka ini menyajikan data objek Anda sebagai urutan byte yang berdekatan yang dapat Anda baca atau tulis. Ada juga metode untuk menerapkan dan mengembalikan perubahan pada aliran yang terbuka dalam mode dan metode yang ditransaksikan untuk membatasi akses ke berbagai byte di aliran.

Aliran dapat tetap terbuka untuk jangka waktu yang lama tanpa menggunakan sumber daya sistem file. Metode IUnknown::Release mirip dengan fungsi dekat pada file. Setelah dirilis, objek stream tidak lagi valid dan tidak dapat digunakan.

Klien moniker asinkron dapat memilih antara model penarikan data atau pendorongan data untuk mendorong operasi IMoniker::BindToStorage asinkron dan untuk menerima pemberitahuan asinkron. Lihat URL Monikers untuk informasi selengkapnya. Tabel berikut membandingkan perilaku ISequentialStream::Read dan IStream::Seek panggilan asinkron yang dikembalikan di IBindStatusCallback::OnDataAvailable dalam dua model unduhan ini:

Panggilan metode IStream Perilaku dalam model penarikan data Perilaku dalam model pendorongan data
Baca dipanggil untuk membaca sebagian data (yaitu, tidak semua data yang tersedia) Mengembalikan S_OK. Klien harus terus membaca semua data yang tersedia sebelum kembali dari IBindStatusCallback::OnDataAvailable atau operasi pengikatan diblokir. (artinya, baca hingga S_FALSE atau E_PENDING dikembalikan) Mengembalikan S_OK. Bahkan jika klien kembali dari IBindStatusCallback::OnDataAvailable pada titik ini operasi ikat berlanjut dan IBindStatusCallback::OnDataAvailable akan dipanggil lagi berulang kali sampai pengikatan selesai.
Baca dipanggil untuk membaca semua data yang tersedia Mengembalikan E_PENDING jika operasi pengikatan belum selesai, dan IBindStatusCallback::OnDataAvailable akan dipanggil lagi ketika lebih banyak data tersedia. Sama seperti model penarikan data.
Baca dipanggil untuk membaca semua data yang tersedia dan operasi pengikatan berakhir (akhir file) Mengembalikan S_FALSE. Akan ada panggilan berikutnya ke IBindStatusCallback::OnDataAvailable dengan bendera grfBSC diatur ke BSCF_LASTDATANOTIFICATION. Sama seperti model penarikan data.
Pencarian dipanggil Pencarian tidak berfungsi dalam model penarikan data Pencarian tidak berfungsi dalam model pendorongan data.
 

Untuk informasi umum tentang topik ini, lihat Monikers Asinkron dan Data-Pull-Model versus Data Push-Model untuk informasi yang lebih spesifik. Selain itu, lihat Mengelola Alokasi Memori untuk detail tentang aturan COM untuk mengelola memori.

Warisan

Antarmuka IStream mewarisi dari antarmuka ISequentialStream . IStream juga memiliki jenis anggota ini:

Metode

Antarmuka IStream memiliki metode ini.

 
IStream::Kloning

Metode Kloning membuat objek stream baru dengan penunjuk pencariannya sendiri yang mereferensikan byte yang sama dengan aliran asli.
IStream::Commit

Metode Penerapan memastikan bahwa setiap perubahan yang dilakukan pada objek stream terbuka dalam mode yang ditransaksikan tercermin dalam penyimpanan induk.
IStream::CopyTo

Menyalin jumlah byte tertentu dari penunjuk pencarian saat ini di aliran ke penunjuk pencarian saat ini di aliran lain.
IStream::LockRegion

Metode LockRegion membatasi akses ke rentang byte tertentu dalam aliran.
IStream::Kembalikan

Metode Kembalikan membuang semua perubahan yang telah dilakukan pada aliran yang ditransaksikan sejak panggilan IStream::Commit terakhir. Pada aliran terbuka dalam mode langsung dan aliran menggunakan implementasi file gabungan COM dari IStream::Revert, metode ini tidak berpengaruh.
IStream::Seek

Mengubah penunjuk pencarian ke lokasi baru. Lokasi baru relatif terhadap awal aliran, akhir aliran, atau penunjuk pencarian saat ini.
IStream::SetSize

Mengubah ukuran objek stream.
IStream::Stat

Metode Stat mengambil struktur STATSTG untuk aliran ini.
IStream::UnlockRegion

Metode UnlockRegion menghapus pembatasan akses pada rentang byte yang sebelumnya dibatasi dengan IStream::LockRegion.

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

Lihat juga

ISequentialStream

IStream - Implementasi File Manggala