IOleClientSite::GetMoniker 方法 (oleidl.h)
擷取物件的用戶端月臺的Moniker。 物件可以藉由指定 dwAssign 的值,強制指派自己的或其容器的 Moniker。
語法
HRESULT GetMoniker(
[in] DWORD dwAssign,
[in] DWORD dwWhichMoniker,
[out] IMoniker **ppmk
);
參數
[in] dwAssign
指定只有在已存在時,才取得Moniker、強制指派Moniker、建立暫時Moniker,或移除已指派的Moniker。 實際上,您通常會要求容器強制指派Moniker。 可能的值取自 OLEGETMONIKER 列舉。
[in] dwWhichMoniker
指定是否要傳回容器的Moniker、相對於容器的物件Moniker或物件的完整Moniker。 在實務上,您通常會要求物件的完整Moniker。 可能的值為取自 OLEWHICHMK 列舉。
[out] ppmk
IMoniker 指標變數的指標,可接收物件用戶端月臺之Moniker介面指標。 如果發生錯誤,實作必須將 ppmk 設定為 NULL。 每次容器收到 IOleClientSite::GetMoniker 的呼叫時,都必須在傳回的 ppmk 指標上增加參考計數。 呼叫端必須負責在完成指標時呼叫 Release 。
傳回值
此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。
傳回碼 | Description |
---|---|
|
此容器無法將Monikers指派給物件。 這是 OLE 1 容器的情況。 |
備註
容器會實作 GetMoniker 作為將 Moniker 傳遞給需要連結至這些物件之用戶端的 Moniker 的方式。
當連結建立至內嵌物件或其中虛擬物件時, (電子表格中的單元格範圍,例如) ,物件需要Moniker來建構指出連結來源的複合Moniker。 如果內嵌物件還沒有Moniker,它可以呼叫 GetMoniker 來要求一個。
每個預期包含內嵌連結的容器都應該支援 GetMoniker 提供OLEWHICHMK_CONTAINER,因此在連結用戶端和連結來源檔案移動時啟用連結追蹤,但維持相同的相對位置。
物件不得持續儲存其完整Moniker或其容器的Moniker,因為這些物件在未載入物件時可能會變更。 例如,容器或物件都可以重新命名,在其中,儲存容器的Moniker或物件的完整Moniker,讓客戶端無法追蹤對象的連結。
在某些非常特殊的案例中,物件可能不再需要先前指派的Moniker,而且可能想要將其移除為優化。 在這種情況下,物件可以呼叫具有 OLEGETMONIKER_UNASSIGN 的 GetMoniker ,以移除 Moniker。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | oleidl.h |