IStream::Commit 方法 (objidl.h)

Commit 方法可确保对在事务处理模式下打开的流对象所做的任何更改都反映在父存储中。 如果流对象在直接模式下打开, 则 IStream::Commit 除了将所有内存缓冲区刷新到下一级存储对象之外,没有其他效果。 流的 COM 复合文件实现不支持在事务处理模式下打开流。

语法

HRESULT Commit(
  [in] DWORD grfCommitFlags
);

参数

[in] grfCommitFlags

控制提交对流对象的更改的方式。 有关这些值的定义,请参阅 STGC 枚举。

返回值

此方法可以返回其中一个值。

返回代码 说明
S_OK 对流对象的更改已成功提交到父级别。
E_PENDING 仅异步存储:部分或全部流数据当前不可用。
STG_E_MEDIUMFULL 由于存储设备上缺少空间,提交操作失败。
STG_E_REVERTED 对象在事务树中的上方还原操作已失效。

注解

Commit 方法可确保在事务处理模式下打开的流对象的更改反映在父存储中。 自流打开或上次提交以来对流所做的更改将反映到父存储对象。 如果父级在事务处理模式下打开,则父级以后可能会还原,回滚对此流对象的更改。 复合文件实现不支持在事务处理模式下打开流,因此此方法除了刷新内存缓冲区外,效果很小。 有关详细信息,请参阅 IStream - 复合文件实现

如果流在直接模式下打开,此方法可确保已将任何内存缓冲区刷新到基础存储对象。 这非常类似于传统文件系统中的刷新。

当 IStream 接口的实现是基础文件系统 API 的包装器时,IStream::Commit 方法对直接模式流很有用。 在这种情况下, IStream::Commit 将连接到文件系统的刷新调用。

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 objidl.h
Library Uuid.lib
DLL Ole32.dll

另请参阅

IStorage::Commit

IStream - 复合文件实现