Metode IStream::CopyTo (objidl.h)

Metode CopyTo menyalin jumlah byte tertentu dari penunjuk pencarian saat ini di aliran ke penunjuk pencarian saat ini di aliran lain.

Sintaks

HRESULT CopyTo(
  [in]  IStream        *pstm,
  [in]  ULARGE_INTEGER cb,
  [out] ULARGE_INTEGER *pcbRead,
  [out] ULARGE_INTEGER *pcbWritten
);

Parameter

[in] pstm

Penunjuk ke aliran tujuan. Aliran yang ditujukkan oleh pstm dapat menjadi aliran baru atau kloning aliran sumber.

[in] cb

Jumlah byte yang akan disalin dari aliran sumber.

[out] pcbRead

Penunjuk ke lokasi di mana metode ini menulis jumlah byte aktual yang dibaca dari sumbernya. Anda dapat mengatur penunjuk ini ke NULL. Dalam hal ini, metode ini tidak menyediakan jumlah byte aktual yang dibaca.

[out] pcbWritten

Penunjuk ke lokasi di mana metode ini menulis jumlah byte aktual yang ditulis ke tujuan. Anda 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 Objek stream berhasil disalin.
E_PENDING Hanya Penyimpanan Asinkron: Bagian atau semua data yang akan disalin saat ini tidak tersedia.
STG_E_INVALIDPOINTER Nilai salah satu parameter penunjuk tidak valid.
STG_E_MEDIUMFULL Aliran tidak disalin karena tidak ada ruang yang tersisa pada perangkat penyimpanan.
STG_E_REVERTED Objek telah divalidasi oleh operasi kembali di atasnya di pohon transaksi.

Keterangan

Metode CopyTo menyalin byte yang ditentukan dari satu aliran ke aliran lainnya. Ini juga dapat digunakan untuk menyalin aliran ke dirinya sendiri. Penunjuk pencarian di setiap instans aliran disesuaikan untuk jumlah byte yang dibaca atau ditulis. Metode ini setara dengan membaca byte cb ke dalam memori menggunakan ISequentialStream::Read dan kemudian segera menulisnya ke aliran tujuan menggunakan ISequentialStream::Write, meskipun IStream::CopyTo akan lebih efisien.

Aliran tujuan dapat menjadi klon aliran sumber yang dibuat dengan memanggil metode IStream::Clone .

Jika IStream::CopyTo mengembalikan kesalahan, Anda tidak dapat berasumsi bahwa penunjuk pencarian valid untuk sumber atau tujuan. Selain itu, nilai pcbRead dan pcbWritten tidak bermakna meskipun dikembalikan.

Jika IStream::CopyTo berhasil dikembalikan, jumlah aktual byte yang dibaca dan ditulis sama.

Untuk menyalin sisa sumber dari penunjuk pencarian saat ini, tentukan nilai bilangan bulat besar maksimum untuk parameter cb . Jika penunjuk pencarian adalah awal aliran, operasi ini menyalin seluruh 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

ISequentialStream::Write

IStream - Implementasi File Manggala

IStream::Kloning