IOleObject::Close 方法 (oleidl.h)
将嵌入对象从 运行 状态更改为已加载状态。 断开链接对象与其链接源的连接。
语法
HRESULT Close(
[in] DWORD dwSaveOption
);
参数
[in] dwSaveOption
指示对象是否作为转换到已加载状态的一部分进行保存。 有效值取自枚举 OLECLOSE。
注意 OLE 2 用户模型建议对象应用程序在保存链接或嵌入的对象(包括已就地激活的对象)之前不提示用户。 此策略表示 OLE 1 用户模型中的更改,对象应用程序始终提示用户决定是否保存更改。
返回值
此方法在成功时返回S_OK。 其他可能的返回值包括以下内容。
返回代码 | 说明 |
---|---|
|
系统提示用户保存,但从提示消息框中选择了 “取消 ”按钮。 |
注解
调用方备注
容器应用程序在想要将对象从运行状态移动到已加载状态时调用 IOleObject::Close 。 进行此类调用后,对象仍会显示在其容器中,但不打开进行编辑。 对已加载但未运行的对象调用 IOleObject::Close 不起作用。 关闭链接的对象只是意味着断开它的连接。实施者说明
收到对 IOleObject::Close 的调用后,正在运行的对象应执行以下操作:- 如果对象自上次打开进行编辑以来已更改,则应根据 dwSaveOption 中指定的说明请求保存或不保存对象。 如果选项是保存对象,则应调用其容器的 IOleClientSite::SaveObject 接口。
- 如果对象具有 IDataObject::D Advise 与 ADVF _DATAONSTOP 标志的连接,则它应发送 IAdviseSink::OnDataChange 通知。 有关详细信息,请参阅 IDataObject::D Advise 。
- 如果对象当前拥有剪贴板,则应通过调用 OleFlushClipboard 将其清空。
- 如果对象当前可见,则通过调用 IOleClientSite::OnShowWindow 通知其容器,并将 fshow 参数设置为 FALSE。
- 将 IAdviseSink::OnClose 通知发送到相应的建议接收器。
- 最后,通过调用 CoDisconnectObject 强行切断所有远程处理客户端。
对链接对象调用 IOleObject::Close 会断开它与其源应用程序的连接,但不会关闭。 在对象关闭时对用户可见的源应用程序在断开连接后保持可见且正在运行,并且不会向链接容器发送 IAdviseSink::OnClose 通知。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | oleidl.h |