OleSave 函数 (ole2.h)
将事务处理模式下打开的对象保存到指定的存储对象中。
语法
HRESULT OleSave(
[in] LPPERSISTSTORAGE pPS,
[in] LPSTORAGE pStg,
[in] BOOL fSameAsLoad
);
参数
[in] pPS
指向要保存的对象上的 IPersistStorage 接口的指针。
[in] pStg
指向目标存储对象上的 IStorage 接口的指针, pPS 中指示的对象将保存到该对象。
[in] fSameAsLoad
TRUE 表示 pStg 是加载或创建对象的同一存储对象; FALSE 表示 pStg 是从其他存储对象加载或创建的。
返回值
此函数在成功时返回S_OK。 其他可能的值包括以下内容。
返回代码 | 说明 |
---|---|
|
由于磁盘空间不足,无法保存对象。
此函数还可以返回 IPersistStorage::Save 方法返回的任何错误值。 |
注解
OleSave 帮助程序函数处理在事务处理模式下打开对象的常见情况,然后保存到使用 OLE 提供的复合文件实现的指定存储对象中。 事务处理模式意味着对对象的更改将缓冲,直到调用 IStorage::Commit 或 IStorage::Revert 之一。 调用方可以通过直接调用 IPersistStorage 和 IStorage 接口来处理其他情况。
OleSave 执行以下操作:
- 调用 IPersist::GetClassID 方法以获取对象的 CLSID。
- 使用 WriteClassStg 函数将 CLSID 写入存储对象。
- 调用 IPersistStorage::Save 方法来保存对象。
- 如果保存时没有错误;调用 IStorage::Commit 方法来提交更改。
注意 静态对象保存到名为 CONTENTS 的流中。 静态图元文件对象以“可放置的图元文件格式”保存,静态 DIB 数据以“DIB 文件格式”保存。 这些格式定义为图元文件和 DIB 的 OLE 标准。 使用 IStream 接口或文件 ((即通过 IDataObject::GetDataHere) )传输的所有数据都必须采用这些格式。 此外,默认文件格式为图元文件或 DIB 的所有对象都必须使用这些标准格式将其数据写入 CONTENTS 流。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | ole2.h |
Library | Ole32.lib |
DLL | Ole32.dll |
API 集 | Windows 10版本 10.0.10240 中引入的 ext-ms-win-com-ole32-l1-1-3 () |