指標 Monikers
指標 Moniker 會識別只能存在於使用中或執行中狀態的物件。 這與其他Moniker類別不同,這些類別可識別可存在於被動或主動狀態中的物件。
例如,假設應用程式具有沒有持續性表示的物件。 一般而言,如果應用程式的用戶端需要存取該物件,您只要將指標傳遞至該物件即可。 不過,假設您的客戶端預期有Moniker。 無法以檔案Moniker來識別物件,因為它不會儲存在檔案中,也不會與專案Moniker一起識別,因為它未包含在另一個物件中。
相反地,您的應用程式可以建立指標 Moniker,這是只包含內部指標的 Moniker,並將它傳遞至用戶端。 用戶端可以將此Moniker視為任何其他。 不過,當用戶端在指標Moniker上呼叫 IMoniker::BindToObject 時,Moniker 程式代碼不會檢查執行中的對象數據表 (ROT) 或從記憶體載入任何專案。 相反地,Moniker 程式代碼只會在儲存在Moniker內的指標上呼叫QueryInterface。
指標 Moniker 允許只存在於作用中或執行中狀態的對象參與 Moniker 作業,並供 Moniker 用戶端使用。 指標 Moniker 與其他 Moniker 類別之間的一個重要差異是指針 Moniker 無法儲存至永續性記憶體。 如果您這樣做,呼叫 IMoniker::Save 方法會傳回錯誤。 這表示指標 Moniker 只有在特殊情況下才有用。 如果您需要使用 指標 Moniker,可以使用 CreatePointerMoniker 函式。
相關主題