IOleLink::SetSourceMoniker 方法 (oleidl.h)

設定連結來源的 Moniker。

語法

HRESULT SetSourceMoniker(
  [in] IMoniker *pmk,
  [in] REFCLSID rclsid
);

參數

[in] pmk

Moniker 上 IMoniker 介面的指標,可識別連結化物件的新連結來源。 Null的值會中斷連結。

[in] rclsid

連結化物件在未系結時,連結化物件應該用來存取連結化物件相關資訊的連結來源 CLSID。

傳回值

此方法會在成功時傳回S_OK。

備註

來電者附注

當終端使用者變更連結的來源或中斷連結時,您的容器應用程式可以呼叫 IOleLink::SetSourceMoniker 。 請注意,這需要您的容器使用 MkParseDisplayName 函式,從使用者輸入的顯示名稱中建立 Moniker。 如果您想要讓連結的物件執行剖析,您的容器可以呼叫 IOleLink::SetSourceDisplayName ,而不是 IOleLink::SetSourceMoniker

終端使用者會使用 [ 連結 ] 對話方塊來變更連結的來源或中斷連結。 如果您使用 OleUIEditLinks 函式來顯示 [連結 ] 對話方塊,則必須實作 IOleUILinkContainer 介面。 對話方塊會呼叫 IOleUILinkContainer::SetLinkSourceIOleUILinkContainer::CancelLink的實作;這些方法的實作可以呼叫 IOleLink::SetSourceMoniker

如果連結的物件目前系結至其連結來源,則連結化物件的 IOleLink::SetSourceMoniker 實作會在變更 Moniker 之前關閉連結。

實作者的注意事項

IOleLink合約不會指定連結化物件儲存或使用連結來源 Moniker 的方式。 提供的實作會儲存建立連結或 Moniker 變更時所指定的絕對 Moniker;然後,它會計算並儲存相對 Moniker。 未來的實作可能會以不同的方式管理 Moniker,以提供更佳的 Moniker 追蹤。 絕對 Moniker 會提供連結來源的完整路徑。 連結化物件會使用這個絕對 Moniker 和複合檔案的 Moniker 來計算相對 Moniker,以識別相對於包含連結之複合檔案的連結來源。

pmkCompoundDoc-RelativePathTo > (pmkAbsolute, ppmkRelative)

系結至連結來源時,連結的物件會先嘗試使用相對 Moniker 進行系結。 如果失敗,它會嘗試系結絕對 Moniker。

當連結的物件使用相對或絕對 Moniker 成功系結時,它會自動更新另一個 Moniker。 連結的物件也會在系結至連結來源時更新這兩個 Moniker,並透過 IAdviseSink::OnRename 方法接收重新命名通知。 容器應用程式也可以使用 IOleLink::SetSourceDisplayName 方法來變更連結的 Moniker。

連結化物件的 IPersistStorage::Save 實作會同時儲存相對和絕對 Moniker。

需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 oleidl.h

另請參閱

IOleLink

IOleLink::GetSourceMoniker

IOleLink::SetSourceDisplayName

IOleUILinkContainer

OleUIEditLinks