Bagikan melalui


Metode IBindCtx::RegisterObjectBound (objidl.h)

Mendaftarkan objek dengan konteks ikat untuk memastikan bahwa objek tetap aktif hingga konteks ikatan dirilis.

Sintaks

HRESULT RegisterObjectBound(
  [in] IUnknown *punk
);

Parameter

[in] punk

Penunjuk ke antarmuka IUnknown pada objek yang didaftarkan sebagai terikat.

Nilai kembali

Metode ini dapat mengembalikan nilai pengembalian standar E_OUTOFMEMORY dan S_OK.

Keterangan

Mereka yang menulis kelas moniker baru (melalui implementasi antarmuka IMoniker ) harus memanggil metode ini setiap kali implementasi mengaktifkan objek. Ini paling sering terjadi selama mengikat moniker, tetapi juga dapat terjadi saat mengambil nama tampilan moniker, mengurai nama tampilan ke moniker, atau mengambil waktu objek terakhir dimodifikasi.

RegisterObjectBound memanggil AddRef untuk membuat referensi tambahan ke objek. Namun, Anda harus melepaskan salinan pointer Anda sendiri. Memanggil metode ini dua kali untuk objek yang sama membuat dua referensi ke objek tersebut. Anda dapat merilis referensi yang diperoleh melalui panggilan ke metode ini dengan memanggil IBindCtx::RevokeObjectBound. Semua referensi yang dipegang oleh konteks ikatan dirilis ketika konteks ikatan itu sendiri dirilis.

Memanggil RegisterObjectBound untuk mendaftarkan objek dengan konteks ikatan membuat objek tetap aktif hingga konteks ikatan dirilis. Menggunakan kembali konteks ikatan dalam operasi pengikatan berikutnya (baik untuk bagian lain dari moniker komposit yang sama atau untuk moniker yang berbeda) dapat membuat operasi pengikatan berikutnya lebih efisien karena tidak perlu memuat ulang objek tersebut. Namun, ini meningkatkan performa hanya jika operasi pengikatan berikutnya memerlukan beberapa objek yang sama dengan yang asli, jadi Anda perlu menyeimbangkan kemungkinan peningkatan performa menggunakan kembali konteks yang terikat terhadap biaya menjaga objek tetap diaktifkan secara tidak perlu.

IBindCtx tidak menyediakan metode untuk mengambil pointer ke objek yang terdaftar menggunakan RegisterObjectBound. Dengan asumsi objek telah mendaftarkan dirinya dengan tabel objek yang sedang berjalan, implementasi moniker dapat memanggil IRunningObjectTable::GetObject untuk mengambil pointer ke objek.

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

IBindCtx

IRunningObjectTable::GetObject