IOleObject::SetMoniker 方法 (oleidl.h)
通知物件其容器的Moniker、相對於容器的物件本身的Moniker,或物件的完整Moniker。
語法
HRESULT SetMoniker(
[in] DWORD dwWhichMoniker,
[in] IMoniker *pmk
);
參數
[in] dwWhichMoniker
Moniker 會在 pmk 中傳遞。 可能的值為來自列舉 OLEWHICHMK。
[in] pmk
要傳回Moniker之位置的指標。
傳回值
此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。
傳回碼 | Description |
---|---|
|
作業失敗。 |
備註
支援內嵌物件連結的容器,必須能夠在其Moniker變更時通知內嵌物件。 否則,鏈接客戶端系結至對象的後續嘗試將會失敗。 IOleObject::SetMoniker 方法提供一種方式,讓容器傳達這項資訊。
容器可以傳遞自己的Moniker、相對於容器的物件Moniker或物件的完整Moniker。 實際上,如果容器傳遞物件的完整Moniker以外的任何專案,則每個物件都會呼叫容器,以要求指派完整的Moniker,而對象必須在執行中的對象數據表中註冊本身。
對象相對於其容器的Moniker會由對象處理程式儲存為物件永續性狀態的一部分。 不過,物件的容器Moniker不得持續儲存在物件內,因為容器可以隨時重新命名。
來電者附註
容器在重新命名容器時呼叫 IOleObject::SetMoniker ,而且容器的內嵌物件目前或可能可作為連結來源。 容器主要在鏈接內容中呼叫 SetMoniker,因為內嵌物件已經知道其 Moniker。 即使在鏈接的內容中,呼叫這個方法也是選擇性的,因為物件可以呼叫 IOleClientSite::GetMoniker 來強制指派新的 Moniker。實作者的注意事項
收到 呼叫 IOleObject::SetMoniker 時,對象應該在執行的對象數據表中註冊其完整 Moniker,並將 IAdviseSink::OnRename 通知傳送給物件存在的所有建議接收。規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | oleidl.h |