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::Commit メソッドは、IStream インターフェイスの実装が基になるファイル システム API のラッパーである場合に、ダイレクト モード ストリームで役立ちます。 この場合、 IStream::Commit はファイル システムのフラッシュ呼び出しに接続されます。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー objidl.h
Library Uuid.lib
[DLL] Ole32.dll

こちらもご覧ください

IStorage::Commit

IStream - 複合ファイルの実装