struktur BIND_OPTS2 (objidl.h)

Berisi parameter yang digunakan selama operasi pengikatan moniker.

Sintaks

typedef struct tagBIND_OPTS2 {
  DWORD        cbStruct;
  DWORD        grfFlags;
  DWORD        grfMode;
  DWORD        dwTickCountDeadline;
  DWORD        dwTrackFlags;
  DWORD        dwClassContext;
  LCID         locale;
  COSERVERINFO *pServerInfo;
} BIND_OPTS2, *LPBIND_OPTS2;

Anggota

cbStruct

Ukuran struktur ini, dalam byte.

grfFlags

Bendera yang mengontrol aspek operasi pengikatan moniker. Nilai ini adalah kombinasi dari bendera bit dalam enumerasi BIND_FLAGS . Fungsi CreateBindCtx menginisialisasi anggota ini ke nol.

grfMode

Bendera yang harus digunakan saat membuka file yang berisi objek yang diidentifikasi oleh moniker. Nilai yang mungkin adalah konstanta STGM. Operasi pengikatan menggunakan bendera ini dalam panggilan ke IPersistFile::Load saat memuat file. Jika objek sudah berjalan, bendera ini diabaikan oleh operasi pengikatan. Fungsi CreateBindCtx menginisialisasi bidang ini ke STGM_READWRITE.

dwTickCountDeadline

Waktu jam di mana pemanggil ingin operasi pengikatan selesai, dalam milidetik. Anggota ini memungkinkan pemanggil membatasi waktu eksekusi operasi ketika kecepatan sangat penting. Nilai nol menunjukkan bahwa tidak ada tenggat waktu. Penelepon paling sering menggunakan kemampuan ini saat memanggil metode IMoniker::GetTimeOfLastChange , meskipun dapat diterapkan secara berguna ke operasi lain juga. Fungsi CreateBindCtx menginisialisasi bidang ini ke nol.

Tenggat waktu umum memungkinkan beberapa ratus milidetik eksekusi. Tenggat waktu ini adalah rekomendasi, bukan persyaratan; namun, operasi yang melebihi tenggat waktu mereka dengan jumlah besar dapat menyebabkan penundaan bagi pengguna akhir. Setiap implementasi moniker harus mencoba menyelesaikan operasinya pada tenggat waktu, atau gagal dengan kesalahan MK_E_EXCEEDEDDEADLINE.

Jika operasi pengikatan melebihi tenggat waktunya karena satu atau beberapa objek yang dibutuhkannya tidak berjalan, implementasi moniker harus mendaftarkan objek yang bertanggung jawab dalam konteks ikat menggunakan IBindCtx::RegisterObjectParam. Objek harus terdaftar di bawah nama parameter "ExceededDeadline", "ExceededDeadline1", "ExceededDeadline2", dan sebagainya. Jika penelepon nanti menemukan objek dalam tabel objek yang sedang berjalan, pemanggil dapat mencoba kembali operasi pengikatan.

Fungsi GetTickCount menunjukkan jumlah milidetik sejak startup sistem, dan membungkus kembali ke nol setelah 2^31 milidetik. Akibatnya, penelepon harus berhati-hati untuk tidak secara tidak sengaja melewati nilai nol (yang menunjukkan tidak ada tenggat waktu), dan implementasi moniker harus menyadari masalah pembungkusan jam.

dwTrackFlags

Moniker dapat menggunakan nilai ini selama pelacakan tautan. Jika data persisten asli yang dirujuk moniker telah dipindahkan, moniker dapat mencoba membangun kembali tautan dengan mencari data asli meskipun beberapa mekanisme yang memadai. Anggota ini memberikan informasi tambahan tentang bagaimana tautan harus diselesaikan. Lihat dokumentasi parameter fFlags di IShellLink::Resolve.

Implementasi moniker file COM menggunakan mekanisme tautan shell untuk membangun kembali tautan dan meneruskan bendera ini ke IShellLink::Resolve.

dwClassContext

Konteks kelas, diambil dari enumerasi CLSCTX , yang akan digunakan untuk membuat instans objek. Monikers biasanya meneruskan nilai ini ke parameter dwClsContextcoCreateInstance.

locale

Nilai LCID yang menunjukkan preferensi klien untuk lokal yang akan digunakan oleh objek tempat mereka mengikat. Moniker meneruskan nilai ini ke IClassActivator::GetClassObject.

pServerInfo

Penunjuk ke struktur COSERVERINFO . Anggota ini memungkinkan klien memanggil IMoniker::BindToObject untuk menentukan informasi server. Klien dapat meneruskan struktur BIND_OPTS2 ke metode IBindCtx::SetBindOptions . Jika nama server ditentukan dalam struktur COSERVERINFO , ikatan moniker akan diteruskan ke komputer yang ditentukan. SetBindOptions hanya menyalin anggota struct BIND_OPTS2, bukan struktur COSERVERINFO dan pointer yang dikandungnya. Penelepon mungkin tidak membebaskan salah satu pointer ini sampai konteks ikatan dirilis. Moniker kelas baru COM saat ini tidak menghormati bendera pServerInfo .

Keterangan

Struktur BIND_OPTS2 disimpan dalam konteks ikat; konteks ikatan yang sama digunakan oleh setiap komponen moniker komposit selama pengikatan, memungkinkan parameter yang sama diteruskan ke semua komponen moniker komposit. Lihat IBindCtx untuk informasi selengkapnya tentang konteks ikatan.

Klien Moniker (gunakan moniker untuk memperoleh penunjuk antarmuka ke objek) biasanya tidak perlu menentukan nilai untuk anggota struktur ini. Fungsi CreateBindCtx membuat konteks ikatan dengan opsi ikatan yang diatur ke nilai default yang cocok untuk sebagian besar situasi; Fungsi BindMoniker melakukan hal yang sama saat membuat konteks ikatan untuk digunakan dalam mengikat moniker. Jika Anda ingin mengubah nilai opsi ikatan ini, Anda dapat melakukannya dengan meneruskan struktur BIND_OPTS2 ke metode IBindCtx::SetBindOptions . Implementer Moniker dapat meneruskan struktur BIND_OPTS2 ke metode IBindCtx::GetBindOptions untuk mengambil nilai opsi ikat ini.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 10 Build 20348
Server minimum yang didukung Windows 10 Build 20348
Header objidl.h

Lihat juga

BIND_OPTS3

CreateBindCtx

IBindCtx

IMoniker