IPersistStorage::Load method (objidl.h)

Memuat objek dari penyimpanan yang ada.

Sintaks

HRESULT Load(
  [in] IStorage *pStg
);

Parameter

[in] pStg

Pointer IStorage ke penyimpanan yang ada tempat objek akan dimuat.

Nilai kembali

Metode ini dapat mengembalikan nilai berikut.

Menampilkan kode Deskripsi
S_OK
Metode berhasil diselesaikan.
CO_E_ALREADYINITIALIZED
Objek telah diinisialisasi oleh panggilan sebelumnya ke metode IPersistStorage::Load atau metode IPersistStorage::InitNew .
E_OUTOFMEMORY
Objek tidak dimuat karena kurangnya memori.
E_FAIL
Objek tidak dimuat karena beberapa alasan selain kurangnya memori.

Keterangan

Metode ini menginisialisasi objek dari penyimpanan yang ada. Objek ditempatkan dalam status dimuat jika metode ini dipanggil oleh aplikasi kontainer. Jika dipanggil oleh handler default, metode ini menempatkan objek dalam status berjalan.

Baik handler default atau objek itu sendiri dapat menahan penunjuk IStorage saat objek dimuat atau berjalan.

Catatan untuk Penelepon

Daripada memanggil IPersistStorage::Load secara langsung, Anda biasanya memanggil fungsi pembantu OleLoad yang melakukan hal berikut:
  1. Buat instans yang tidak diinisialisasi dari kelas objek.
  2. Kueri instans baru untuk antarmuka IPersistStorage .
  3. Panggil Muat untuk menginisialisasi objek dari penyimpanan yang ada.
Anda juga memanggil metode ini secara tidak langsung ketika Anda memanggil fungsi OleCreateFromData atau fungsi OleCreateFromFile untuk menyisipkan objek ke dalam file mampul (seperti dalam operasi seret dan letakkan atau tempel clipboard).

Kontainer harus menyimpan penunjuk IPersistStorage untuk digunakan dalam operasi selanjutnya pada objek .

Catatan untuk Pelaksana

Implementasi Anda harus melakukan langkah-langkah berikut untuk memuat objek:
  1. Buka aliran objek di objek penyimpanan, dan baca data yang diperlukan ke dalam struktur data internal objek.
  2. Bersihkan bendera kotor objek.
  3. Panggil metode AddRef dan cache yang diteruskan di penunjuk penyimpanan.
  4. Tetap buka dan cache pointer ke aliran atau penyimpanan apa pun yang diperlukan objek untuk menyimpan dirinya ke penyimpanan ini.
  5. Lakukan inisialisasi default lainnya yang diperlukan untuk objek .
Langkah 3 dan 4 sangat penting untuk memastikan bahwa objek dapat menyimpan dirinya dalam situasi memori rendah. Menahan pointer ke antarmuka penyimpanan dan aliran menjamin bahwa operasi penyimpanan yang disimpan ke penyimpanan ini tidak akan gagal karena memori yang tidak mencukup.

Implementasi Anda dari metode ini harus mengembalikan kode kesalahan CO_E_ALREADYINITIALIZED jika menerima panggilan ke metode IPersistStorage::InitNew atau metode IPersistStorage::Load setelah sudah diinisialisasi.

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

IPersistStorage

OleLoad