Share via


IStream::Commit

This method ensures that any changes made to a stream object opened in transacted mode are reflected in the parent storage. If the stream object is opened in direct mode, IStream::Commit has no effect other than flushing all memory buffers to the next level storage object. The OLE compound file implementation of streams does not support opening streams in transacted mode.

HRESULT Commit( 
DWORD grfCommitFlags 
);

Parameters

  • grfCommitFlags
    [in] Controls how the changes for the stream object are committed. For a definition of these values, see the STGC enumeration.

Return Values

One of the values described in the following table is returned.

Value Description
S_OK Changes to the stream object were successfully committed to the parent level.
E_PENDING Asynchronous Storage only: Part or all of the streams data is currently unavailable.
STG_E_MEDIUMFULL The commit operation failed due to lack of space on the storage device.
STG_E_REVERTED The object has been invalidated by a revert operation above it in the transaction tree.

Remarks

This method ensures that changes to a stream object opened in transacted mode are reflected in the parent storage. Changes that have been made to the stream since it was opened or last committed are reflected to the parent storage object. If the parent is opened in transacted mode, the parent may still revert at a later time rolling back the changes to this stream object. The compound file implementation does not support opening streams in transacted mode, so this method has very little effect other than to flush memory buffers.

If the stream is open in direct mode, this method ensures that any memory buffers have been flushed out to the underlying storage object. This is much like a flush in traditional file systems.

The IStream::Commit method is useful on a direct mode stream when the implementation of the IStream interface is a wrapper for underlying file system APIs. In this case, IStream::Commit would be connected to the file systems flush call.

Requirements

Runs on Versions Defined in Include Link to
Windows CE OS 2.0 and later Objidl.h    

Note   This API is part of the complete Windows CE OS package as provided by Microsoft. The functionality of a particular platform is determined by the original equipment manufacturer (OEM) and some devices may not support this API.

 Last updated on Tuesday, July 13, 2004

© 1992-2000 Microsoft Corporation. All rights reserved.