Pengikatan Asinkron dan Sinkron
Klien dapat memeriksa untuk melihat apakah moniker tidak sinkron dengan memanggil fungsi IsAsyncMoniker. Jika klien mengembalikan bendera BINDF_ASYNCHRONOUS, daripada mengembalikan penunjuk objek atau penunjuk penyimpanan dari panggilan berikutnya ke IMoniker::BindToStorage atau IMoniker::BindToObject, moniker mengembalikan MK_S_ASYNCHRONOUS menggantikan pointer objek dan NULL sebagai pengganti penunjuk penyimpanan. Sebagai respons, klien harus menunggu untuk menerima objek atau penyimpanan yang diminta selama implementasi IBindStatusCallback::OnDataAvailable dan IBindStatusCallBack::OnObjectAvailable.
Objek panggilan balik juga menerima pemberitahuan kemajuan melalui IBindStatusCallback::OnProgress, pemberitahuan ketersediaan data melalui OnDataAvailable, dan berbagai pemberitahuan lain dari moniker tentang status operasi pengikatan.
Jika klien tidak mengembalikan bendera BINDF_ASYNCHRONOUS dari panggilan moniker ke IBindStatusCallback::GetBindInfo, operasi pengikatan akan dilanjutkan secara sinkron dan objek atau penyimpanan yang diinginkan akan dikembalikan dari panggilan berikutnya ke BindToObject atau BindToStorage. Demikian pula, jika klien menginginkan operasi sinkron dan tidak ingin menerima pemberitahuan kemajuan atau panggilan balik, klien dapat meminta moniker asinkron untuk berperilaku sinkron dengan tidak menerapkan IBindStatusCallback. Dalam kasus seperti itu, moniker asinkron akan berperilaku seperti moniker sinkron standar.
Topik terkait