異步和同步Monikers
標準、同步 OLE Moniker 的用戶端通常會建立和保存 Moniker 的參考,以及系結期間要使用的系結內容。 下圖顯示使用傳統Moniker所涉及的元件。
用戶端通常會藉由呼叫 CreateFileMoniker、CreateItemMoniker 或 CreatePointerMoniker 等函式來建立標準 Moniker,或者,因為它們可以透過 OleSaveToStream 和 OleLoadFromStream 儲存至永續性記憶體。 您也可以呼叫 IBindHost::CreateMoniker 方法,從容器物件取得 Monikers。 用戶端會藉由呼叫 CreateBindCtx 函式來建立系結內容,然後將系結內容傳遞至 Moniker,並呼叫 IMoniker::BindTo 儲存體 或 IMoniker::BindToObject。
如下圖所示,異步Moniker的用戶端也會建立並保存Moniker的參考,以及系結期間要使用的系結內容。
若要取得異步行為,用戶端會在 bind-status-callback 對象上實作 IBindStatusCallback 介面,並呼叫 RegisterBindStatusCallback 函式或 CreateAsyncBindCtx 函式,以向系結內容註冊此介面。 Moniker 會在呼叫 IBindStatusCallback::OnStartBinding 方法時,將指標傳遞至其 IBinding 介面。 用戶端會告知異步Moniker如何從Moniker呼叫 IBindStatusCallback::GetBindInfo 方法傳回時系結。
相關主題