共用方式為


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
E_FAIL
作業失敗。

備註

支援內嵌物件連結的容器,必須能夠在其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

另請參閱

CreateItemMoniker

IAdviseSink::OnRename

IOleClientSite::GetMoniker

IOleObject

IOleObject::GetMoniker