Metode IStorage::CopyTo (objidl.h)

Metode CopyTo menyalin seluruh konten objek penyimpanan terbuka ke objek penyimpanan lain.

Sintaks

HRESULT CopyTo(
  [in] DWORD     ciidExclude,
  [in] const IID *rgiidExclude,
  [in] SNB       snbExclude,
  [in] IStorage  *pstgDest
);

Parameter

[in] ciidExclude

Jumlah elemen dalam array yang ditunjukkan oleh rgiidExclude. Jika rgiidExcludeADALAH NULL, maka ciidExclude diabaikan.

[in] rgiidExclude

Array pengidentifikasi antarmuka (IID) yang diketahui pemanggil dan tidak ingin disalin atau bahwa objek penyimpanan tidak mendukung, tetapi yang statusnya penelepon nantinya akan secara eksplisit menyalin. Array dapat mencakup IStorage, yang menunjukkan bahwa hanya objek stream yang akan disalin, dan IStream, yang menunjukkan bahwa hanya objek penyimpanan yang akan disalin. Panjang array nol menunjukkan bahwa hanya status yang diekspos oleh objek IStorage yang akan disalin; semua antarmuka lain pada objek akan diabaikan. Melewati NULL menunjukkan bahwa semua antarmuka pada objek akan disalin.

[in] snbExclude

Blok nama string (lihat SNB) yang menentukan blok penyimpanan atau objek stream yang tidak akan disalin ke tujuan. Elemen-elemen ini tidak dibuat di tujuan. Jika IID_IStorage berada dalam array rgiidExclude , parameter ini diabaikan. Parameter ini mungkin NULL.

[in] pstgDest

Penunjuk ke objek penyimpanan terbuka tempat objek penyimpanan ini akan disalin. Objek penyimpanan tujuan dapat menjadi implementasi yang berbeda dari antarmuka IStorage dari objek penyimpanan sumber. Dengan demikian, IStorage::CopyTo hanya dapat menggunakan metode yang tersedia untuk umum dari objek penyimpanan tujuan. Jika pstgDest terbuka dalam mode bertransaksi, pstgDest dapat dikembalikan dengan memanggil metode IStorage::Revert-nya .

Nilai kembali

Metode ini dapat mengembalikan salah satu nilai ini.

Menampilkan kode Deskripsi
S_OK Objek penyimpanan berhasil disalin.
E_PENDING Hanya Penyimpanan Asinkron: Bagian atau semua data yang akan disalin saat ini tidak tersedia.
STG_E_ACCESSDENIED Objek penyimpanan tujuan adalah anak dari objek penyimpanan sumber.
STG_E_INSUFFICIENTMEMORY Salinan tidak selesai karena kurangnya memori.
STG_E_INVALIDPOINTER Penunjuk yang ditentukan untuk objek penyimpanan tidak valid.
STG_E_INVALIDPARAMETER Salah satu parameter tidak valid.
STG_E_TOOMANYOPENFILES Salinan tidak selesai karena terlalu banyak file yang terbuka.
STG_E_REVERTED Objek penyimpanan telah dibatalkan oleh operasi kembali di atasnya di pohon transaksi.
STG_E_MEDIUMFULL Salinan tidak selesai karena media penyimpanan penuh.

Keterangan

Metode ini menggabungkan elemen yang terkandung dalam objek penyimpanan sumber dengan yang sudah ada di tujuan. Tata letak objek penyimpanan tujuan mungkin berbeda dari objek penyimpanan sumber.

Proses penyalinan rekursif, memanggil IStorage::CopyTo dan IStream::CopyTo pada elemen yang disarangkan di dalam sumber.

Saat menyalin aliran di atas aliran yang ada dengan nama yang sama, aliran yang ada terlebih dahulu dihapus lalu diganti dengan aliran sumber. Saat menyalin penyimpanan di atas penyimpanan yang ada dengan nama yang sama, penyimpanan yang ada tidak dihapus. Akibatnya, setelah operasi salin, IStorage tujuan berisi elemen yang lebih lama, kecuali jika digantikan oleh yang lebih baru dengan nama yang sama.

Objek penyimpanan dapat mengekspos antarmuka selain IStorage, termasuk IRootStorage, IPropertyStorage, atau IPropertySetStorage. Parameter rgiidExclude mengizinkan pengecualian salah satu atau semua antarmuka tambahan ini dari operasi salin.

Penelepon dengan salinan yang lebih baru atau lebih efisien dari substorase atau objek stream yang ada mungkin ingin mengecualikan versi objek ini saat ini dari operasi salin. Parameter snbExclude dan rgiidExclude menyediakan dua cara untuk mengecualikan objek penyimpanan yang ada penyimpanan atau aliran.

Catatan untuk Penelepon

Cara paling umum untuk menggunakan metode IStorage::CopyTo adalah menyalin semuanya dari sumber ke tujuan, seperti dalam sebagian besar operasi simpan dan simpan sebagai penuh.

Contoh kode berikut menunjukkan cara menyalin semuanya dari objek penyimpanan sumber ke objek penyimpanan tujuan.

pstg->CopyTo(0, Null, Null, pstgDest)
Catatan Untuk memampatkan file dokumen, panggil CopyTo pada objek penyimpanan akar dan salin ke objek penyimpanan baru.
 

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

IStorage - Implementasi File Gabungan

IStorage::MoveElementTo

IStorage::Revert