IPersistStorage::Simpan metode (objidl.h)
Menyimpan objek, dan objek berlapis apa pun yang dikandungnya, ke dalam objek penyimpanan yang ditentukan. Objek memasuki mode NoScribble.
Sintaks
HRESULT Save(
[in] IStorage *pStgSave,
[in] BOOL fSameAsLoad
);
Parameter
[in] pStgSave
Penunjuk IStorage ke penyimpanan tempat objek akan disimpan.
[in] fSameAsLoad
Menunjukkan apakah penyimpanan yang ditentukan adalah yang saat ini, yang diteruskan ke objek oleh salah satu panggilan berikut: IPersistStorage::InitNew, IPersistStorage::Load, atau IPersistStorage::SaveCompleted.
Parameter ini diatur ke FALSE saat melakukan operasi Simpan Sebagai atau Simpan Salinan Ke atau saat melakukan penyimpanan penuh. Dalam kasus terakhir, metode ini menyimpan ke file sementara, menghapus file asli, dan mengganti nama file sementara.
Parameter ini diatur ke TRUE untuk melakukan penyimpanan penuh dalam situasi memori rendah atau untuk melakukan penyimpanan bertahap cepat di mana hanya komponen kotor yang disimpan.
Nilai kembali
Metode ini dapat mengembalikan nilai berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Metode berhasil diselesaikan. |
|
Objek tidak disimpan karena kurangnya ruang pada disk. |
|
Objek tidak dapat disimpan karena kesalahan selain kurangnya ruang disk. |
Keterangan
Metode ini menyimpan objek, dan objek berlapis apa pun yang dikandungnya, ke dalam penyimpanan yang ditentukan. Ini juga menempatkan objek ke dalam mode NoScribble. Dengan demikian, objek tidak dapat menulis ke penyimpanannya sampai panggilan berikutnya ke metode IPersistStorage::SaveCompleted mengembalikan objek ke mode Normal.
Jika objek penyimpanan sama dengan objek yang dimuat atau dibuat, operasi penyimpanan mungkin dapat menulis perubahan inkremental ke objek penyimpanan. Jika tidak, penyimpanan penuh harus dilakukan.
Metode ini secara rekursif memanggil metode IPersistStorage::Save , fungsi OleSave , atau metode IStorage::CopyTo untuk menyimpan objek berlapisnya.
Metode ini tidak memanggil metode IStorage::Commit . Juga tidak menulis CLSID ke objek penyimpanan. Kedua tugas ini adalah tanggung jawab pemanggil.
Catatan untuk Penelepon
Daripada memanggil IPersistStorage::Save secara langsung, Anda biasanya memanggil fungsi pembantu OleSave yang melakukan langkah-langkah berikut:- Panggil fungsi WriteClassStg untuk menulis pengidentifikasi kelas untuk objek ke penyimpanan.
- Panggil metode IPersistStorage::Save .
- Jika diperlukan, panggil metode IStorage::Commit pada objek penyimpanan.
Jika objek yang disematkan meneruskan metode IPersistStorage::Save ke objek berlapisnya, objek harus menerima panggilan ke metode IPersistStorage::SaveCompleted sebelum memanggil metode ini untuk objek berlapisnya.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
Server minimum yang didukung | Windows 2000 Server [hanya aplikasi desktop] |
Target Platform | Windows |
Header | objidl.h |
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk