IOleLink::SetSourceMoniker 方法 (oleidl.h)

设置链接源的名字对象。

语法

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

parameters

[in] pmk

指向标识链接对象的新链接源的名字对象上 IMoniker 接口的指针。 NULL 值会中断链接。

[in] rclsid

链接源的 CLSID,链接对象应使用该 CLSID 在未绑定链接对象时访问有关链接对象的信息。

返回值

此方法在成功时返回S_OK。

注解

调用方备注

当最终用户更改链接源或中断链接时,容器应用程序可以调用 IOleLink::SetSourceMoniker 。 请注意,这要求容器使用 MkParseDisplayName 函数从最终用户输入的显示名称中创建名字对象。 如果希望链接对象执行分析,容器可以调用 IOleLink::SetSourceDisplayName 而不是 IOleLink::SetSourceMoniker

最终用户 使用“链接 ”对话框更改链接源或中断链接。 如果使用 OleUIEditLinks 函数显示 “链接 ”对话框,则必须实现 IOleUILinkContainer 接口。 该对话框调用 IOleUILinkContainer::SetLinkSourceIOleUILinkContainer::CancelLink 的实现;这些方法的实现可以调用 IOleLink::SetSourceMoniker

如果链接对象当前绑定到其链接源,则链接对象的 IOleLink::SetSourceMoniker 实现会在更改名字对象之前关闭链接。

实施者说明

IOleLink 协定未指定链接对象存储或使用链接源名字对象的方式。 提供的 实现存储创建链接或更改名字对象时指定的绝对名字对象;然后,它计算并存储相对名字对象。 未来的实现可能会以不同的方式管理名字对象,以便提供更好的名字对象跟踪。 绝对名字对象提供链接源的完整路径。 链接对象使用此绝对名字对象和复合文档的名字对象来计算一个相对名字对象,该名字对象标识相对于包含链接的复合文档的链接源。

pmkCompoundDoc-RelativePathTo> (pmkAbsolute、ppmkRelative)

绑定到链接源时,链接对象首先尝试使用相对名字对象进行绑定。 如果失败,它将尝试绑定绝对名字对象。

当链接对象使用相对或绝对名字对象成功绑定时,它会自动更新另一个名字对象。 当链接对象绑定到链接源并通过 IAdviseSink::OnRename 方法接收重命名通知时,链接对象也会更新这两个名字对象。 容器应用程序还可以使用 IOleLink::SetSourceDisplayName 方法更改链接的名字对象。

链接对象的 IPersistStorage::Save 实现同时保存相对名称和绝对名字对象。

要求

   
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 oleidl.h

请参阅

IOleLink

IOleLink::GetSourceMoniker

IOleLink::SetSourceDisplayName

IOleUILinkContainer

OleUIEditLinks