IOleObject::SetMoniker 方法 (oleidl.h)

通知对象其容器的名称对象、相对于容器的对象自己的名字对象或对象的完整名字对象。

语法

HRESULT SetMoniker(
  [in] DWORD    dwWhichMoniker,
  [in] IMoniker *pmk
);

参数

[in] dwWhichMoniker

名字对象以 pmk 传递。 可能的值来自枚举 OLEWHICHMK

[in] pmk

指向要返回名字对象的位置的指针。

返回值

此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。

返回代码 说明
E_FAIL
此操作失败。

注解

支持嵌入对象链接的容器必须能够在嵌入对象的名字对象更改时通知嵌入对象。 否则,链接客户端随后尝试绑定到 对象将失败。 IOleObject::SetMoniker 方法为容器提供了一种方法来传达此信息。

容器可以传递其自己的名字对象、相对于容器的对象名字对象或对象的完整名字对象。 实际上,如果容器传递对象的完整名字对象以外的任何内容,则每个对象都会调用该容器以请求完整名字对象的分配,该对象需要在运行的对象表中注册自己。

对象相对于其容器的名称对象由对象处理程序存储为对象的持久状态的一部分。 但是,对象容器的名称对象不能永久存储在 对象内,因为容器可以随时重命名。

给调用方的说明

容器在重命名容器后调用 IOleObject::SetMoniker ,并且容器的嵌入对象当前或可能用作链接源。 容器主要在链接上下文中调用 SetMoniker,因为嵌入的对象已经知道其名字对象。 即使在链接上下文中,调用此方法也是可选的,因为对象可以调用 IOleClientSite::GetMoniker 来强制分配新的名字对象。

实施者说明

收到对 IOleObject::SetMoniker 的调用后,对象应在运行的对象表中注册其完整名字对象,并将 IAdviseSink::OnRename 通知发送到对象存在的所有建议接收器。

要求

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

另请参阅

CreateItemMoniker

IAdviseSink::OnRename

IOleClientSite::GetMoniker

IOleObject

IOleObject::GetMoniker