struktur BIND_OPTS3 (objidl.h)
Berisi parameter yang digunakan selama operasi pengikatan moniker.
Sintaks
typedef struct tagBIND_OPTS3 {
DWORD cbStruct;
DWORD grfFlags;
DWORD grfMode;
DWORD dwTickCountDeadline;
DWORD dwTrackFlags;
DWORD dwClassContext;
LCID locale;
COSERVERINFO *pServerInfo;
HWND hwnd;
} BIND_OPTS3, *LPBIND_OPTS3;
Anggota
cbStruct
Ukuran struktur ini, dalam byte.
grfFlags
Bendera yang mengontrol aspek operasi pengikatan moniker. Nilai ini adalah kombinasi 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 untuk STGM_READWRITE.
dwTickCountDeadline
Waktu jam tempat pemanggil ingin operasi pengikatan selesai, dalam milidetik. Anggota ini memungkinkan penelepon membatasi waktu eksekusi operasi ketika kecepatan sangat penting. Nilai nol menunjukkan bahwa tidak ada tenggat waktu. Pemanggil paling sering menggunakan kemampuan ini saat memanggil metode IMoniker::GetTimeOfLastChange , meskipun dapat diterapkan secara berguna ke operasi lain juga. Fungsi CreateBindCtx menginisialisasi bidang ini menjadi 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 sebelum tenggat waktu, atau gagal dengan kesalahan MK_E_EXCEEDEDDEADLINE.
Jika operasi pengikatan melebihi tenggat waktunya karena satu atau beberapa objek yang dibutuhkan 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 dwClsContext dari CoCreateInstance.
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 , pengikatan 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 .
hwnd
Handel ke jendela yang menjadi pemilik UI elevasi, jika berlaku. Jika hwnd adalah NULL, COM akan memanggil fungsi GetActiveWindow untuk menemukan handel jendela yang terkait dengan utas saat ini. Kasus ini mungkin terjadi jika klien adalah skrip, yang tidak dapat mengisi struktur BIND_OPTS3 . Dalam hal ini, COM akan mencoba menggunakan jendela yang terkait dengan utas skrip.
Keterangan
Struktur BIND_OPTS3 disimpan dalam konteks ikatan; 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_OPTS3 ke metode IBindCtx::SetBindOptions . Pelaksana Moniker dapat meneruskan struktur BIND_OPTS3 ke metode IBindCtx::GetBindOptions untuk mengambil nilai opsi ikatan ini.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Windows 10 Build 20348 |
Server minimum yang didukung | Windows 10 Build 20348 |
Header | objidl.h |