Access_Read |
0 |
Indicates that the object is read-only, meaning that modifications cannot be made.
For example, if a stream object is opened with Access_Read,
the ISequentialStream:Read method may be called, but the ISequentialStream:Write method may not.
Similarly, if a storage object opened with Access_Read,
the IStorage:OpenStream And IStorage:OpenStorage methods may be called,
but the IStorage:CreateStream And IStorage:CreateStorage methods may not.
|
Creation_FailIfExists |
0 |
Causes the create operation to fail if an existing object with the specified name exists.
In this case, STG_E_FILEALREADYEXISTS is returned.
This is the default creation mode; that is, if no other create flag is specified,
Creation_FailIfExists is implied.
|
Transactioning_Direct |
0 |
Indicates that, in direct mode, each change to a storage or stream element is written as it occurs.
This is the default if neither Transactioning_Direct nor
Transactioning_Transacted is specified.
|
Access_Write |
1 |
Enables you to save changes to the object, but does not permit access to its data.
The provided implementations of the IPropertyStorage and IPropertySetStorage interfaces do not
support this write-only mode.
|
Access_ReadWrite |
2 |
Enables access and modification of object data.
For example, if a stream object is created or opened in this mode,
it is possible to call both IStream::Read and IStream::Write.
Be aware that this constant is not a simple binary OR operation of the
Access_Write and Access_Read elements.
|
Sharing_Exclusive |
16 |
Prevents others from subsequently opening the object in any mode.
Be aware that this value is not a simple bitwise OR operation of the
Sharing_DenyRead and Sharing_DenyWrite values.
In transacted mode, sharing of Sharing_DenyWrite or
Sharing_Exclusive can significantly
improve performance because they do not require snapshots.
|
Sharing_DenyWrite |
32 |
Prevents others from subsequently opening the object for Access_Write or
Access_ReadWrite access.
In transacted mode, sharing of Sharing_DenyWrite or
Sharing_Exclusive can significantly
improve performance because they do not require snapshots.
|
Sharing_DenyRead |
48 |
Prevents others from subsequently opening the object in Access_Read mode.
It is typically used on a root storage object.
|
Sharing_DenyNone |
64 |
Specifies that subsequent openings of the object are not denied read or write access.
If no flag from the sharing group is specified, this flag is assumed.
|
Creation_Create |
4,096 |
Indicates that an existing storage object or stream should be removed before the new object replaces it.
A new object is created when this flag is specified only if the existing object has been successfully removed.
This flag Is used When attempting To create
- A storage object on a disk, but a file of that name exists.
- An object inside a storage object, but an object with the specified name exists.
- A byte array object, but one with the specified name exists.
|
Transactioning_Transacted |
65,536 |
Indicates that, in transacted mode, changes are buffered and written only if an explicit commit operation is called.
To ignore the changes, call the Revert method in the IStream, IStorage, or IPropertyStorage interface.
The COM compound file implementation of IStorage does not support transacted streams,
which means that streams can be opened only in direct mode, and you cannot revert changes to them,
however transacted storages are supported.
The compound file, stand-alone, and NTFS file system implementations of IPropertySetStorage similarly do not
support transacted, simple property sets because these property sets are stored in streams.
However, transactioning of nonsimple property sets, which can be created by
specifying the PROPSETFLAG_NONSIMPLE flag in the grfFlags parameter of IPropertySetStorage::Create, are supported.
|
Creation_Convert |
131,072 |
Creates the new object while preserving existing data in a stream named "Contents".
In the case of a storage object or a byte array, the old data is
formatted into a stream regardless of whether the existing file
or byte array currently contains a layered storage object.
This flag can only be used when creating a root storage object.
It cannot be used within a storage object; for example, in IStorage::CreateStream.
It is also not valid to use this flag and the DeleteOnRelease_Yes flag simultaneously.
|
Sharing_Priority |
262,144 |
Opens the storage object with exclusive access to the most recently committed version.
Thus, other users cannot commit changes to the object while you have it open in priority mode.
You gain performance benefits for copy operations, but you prevent others from committing changes.
Limit the time that objects are open in priority mode.
You must specify Transactioning_Direct and
Access_Read with priority mode,
and you cannot specify DeleteOnRelease_Yes.
DeleteOnRelease_Yes is only valid when creating a root object,
such as with StgCreateStorageEx.
It is not valid when opening an existing root object, such as with StgOpenStorageEx.
It is also not valid when creating or opening a subelement, such as with IStorage::OpenStorage.
|
TransactioningPerformance_NoScratch |
1,048,576 |
Indicates that, in transacted mode, a temporary scratch file is usually used to
save modifications until the Commit method is called.
Specifying TransactioningPerformance_NoScratch permits the
unused portion of the original file to be used as work space instead of creating a new file for that purpose.
This does not affect the data in the original file, and in certain cases can result in improved performance.
It is not valid to specify this flag without also specifying Transactioning_Transacted,
and this flag may only be used in a root open.
|
TransactioningPerformance_NoSnapshot |
2,097,152 |
This flag is used when opening a storage object with
Transactioning_Transacted and without
Sharing_Exclusive or Sharing_DenyWrite.
In this case, specifying TransactioningPerformance_NoSnapshot prevents the
system-provided implementation from creating a snapshot copy of the file.
Instead, changes to the file are written to the end of the file.
Unused space is not reclaimed unless consolidation is performed during the commit,
and there is only one current writer on the file.
When the file is opened in no snapshot mode, another open operation cannot be
performed without specifying TransactioningPerformance_NoSnapshot.
This flag may only be used in a root open operation.
|
DirectSWMRorSimple_SWMR |
4,194,304 |
Supports direct mode for single-writer multireader (SWRM) file operations.
|
DeleteOnRelease_Yes |
67,108,864 |
Indicates that the underlying file is to be automatically destroyed when the root storage object is released.
This feature is most useful for creating temporary files.
This flag can only be used when creating a root object, such as with StgCreateStorageEx.
It is not valid when opening a root object, such as with StgOpenStorageEx,
or when creating or opening a subelement, such as with IStorage::CreateStream.
It is also not valid to use this flag and the Creation_Convert flag simultaneously.
|
DirectSWMRorSimple_Simple |
134,217,728 |
Provides a faster implementation of a compound file in a limited, but frequently used, case.
|