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
程式庫 Uuid.lib
Dll Ole32.dll

另請參閱

IStorage::Commit

IStream - 複合檔案實作