IRunnableObject::SetContainedObject 方法 (objidl.h)

通知对象它嵌入到 OLE 容器中,这可确保为支持嵌入对象链接的容器正确执行引用计数。

语法

HRESULT SetContainedObject(
  [in] BOOL fContained
);

参数

[in] fContained

TRUE 指定对象包含在 OLE 容器中。 FALSE 表示它不是。

返回值

此方法可以返回标准返回值E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED和S_OK。

注解

SetContainedObject 方法使容器能够通知对象处理程序它已嵌入到容器中,而不是充当链接。 此调用将容器对 对象的引用从强(外部连接的默认值)更改为弱。 当对象明显运行时,此方法意义不大,因为最终用户对对象具有锁定。 但是,在嵌入式链接源的无提示更新期间,容器在链接断开后不应能够保留处于运行状态的对象。 因此,容器对 对象的引用必须是弱的。

给调用方的说明

如果容器应用程序支持链接到嵌入的对象,则必须调用 SetContainedObject 。 它通常在调用 OleLoadOleCreate 后立即进行调用,并且永远不会再次调用该方法,甚至在方法关闭之前也是如此。 此外,容器几乎总是调用此方法, 并且 fContained 设置为 TRUE。 很少使用将 fContained 设置为 FALSE 的此方法。

仅当知道嵌入对象不会被容器以外的任何客户端引用时才调用 SetContainedObject 是可选的。 如果容器应用程序不支持链接到嵌入的对象;最好(但没有必要)调用 SetContainedObject

OleSetContainedObject 是一个帮助程序函数,可方便地重新打包 SetContainedObject 提供的功能。 随着 OLE 2.01 的发布, OleSetContainedObject 的实现已更改为调用 QueryInterface,请求 IRunnableObject,然后调用 IRunnableObject::SetContainedObject。 换句话说,可以互换使用 接口和帮助程序函数。

要求

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

另请参阅

IRunnableObject

OleSetContainedObject