# ILockBytes::Flush

Ensures that any internal buffers maintained by the ILockBytes implementation are written out to the underlying physical storage.

HRESULT Flush(void);

Return Values

S_OK
  The flush operation was successful.
STG_E_ACCESSDENIED
  The caller does not have permission to access the byte array.
STG_E_MEDIUMFULL
  The flush operation is not completed because there is no space left on the storage device.
E_FAIL
  General failure writing data.
STG_E_TOOMANYFILESOPEN
  Under certain circumstances, Flush does a dump-and-close to flush, which can lead to a return value of STG_E_TOOMANYFILESOPEN if no file handles are available.
STG_E_INVALIDHANDLE
  An underlying file has been prematurely closed, or the correct floppy disk has been replaced by an invalid one.

Remarks

ILockBytes::Flush flushes internal buffers to the underlying storage device.

The OLE-provided implementation of compound files calls this method during a transacted commit operation to provide a two-phase commit process that protects against loss of data.

See Also

IStorage::Commit, ILockBytes&emdash;File-Based Implementation, ILockBytes&emdash;Global Memory Implementation