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 。 它通常在调用 OleLoad 或 OleCreate 后立即进行调用,并且永远不会再次调用该方法,甚至在方法关闭之前也是如此。 此外,容器几乎总是调用此方法, 并且 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 |