IStorage::CreateStream
Creates and
opens a stream object with the specified name contained in this storage object.
All elements within a storage object both streams and
other storage objects are kept in the
same name space.
HRESULT CreateStream(
const WCHAR * pwcsName, |
//Points
to the name of the new stream |
DWORD grfMode, |
//Access
mode for the new stream |
DWORD reserved1, |
//Reserved;
must be zero |
DWORD reserved2, |
//Reserved;
must be zero |
IStream ** ppstm |
//Points
to new stream object |
); |
|
Parameters
pwcsName
[in] Points
to a wide character string that contains the name of the newly created stream.
This name can be used later to open or reopen the stream.
grfMode
[in]
Specifies the access mode to use when opening the newly created stream. See the
STGM
reserved1
[in] Reserved
for future use; must be zero.
reserved2
[in] Reserved
for future use; must be zero.
ppstm
[out] On return,
points to the location of the new IStream
Return Values
S_OK
The new
stream was successfully created
E_PENDING
Asynchronous
Storage only: Part or all of the necessary data is currently unavailable. For
more information see IFillLockBytes
STG_E_ACCESSDENIED
Insufficient
permissions to create stream.
STG_E_FILEALREADYEXISTS
The name specified
for the stream already exists in the storage object and the grfmode flag
includes the flag STGM_FAILIFTHERE.
STG_E_INSUFFICIENTMEMORY
The stream
was not created due to a lack of memory.
STG_E_INVALIDFLAG
The value
specified for the grfMode flag is not a valid STGM
STG_E_INVALIDFUNCTION
The specified
combination of grfMode flags is not supported. For example, if this
method is called without the STGM_SHARE_EXCLUSIVE flag.
STG_E_INVALIDNAME
Invalid value
for pwcsName.
STG_E_INVALIDPOINTER
The pointer
specified for the stream object was invalid.
STG_E_INVALIDPARAMETER
One of the
parameters was invalid.
STG_E_REVERTED
The storage
object has been invalidated by a revert operation above it in the transaction
tree.
STG_E_TOOMANYOPENFILES
The stream
was not created because there are too many open files.
Remarks
If a stream
with the name specified in the pwcsName parameter already exists and the
grfMode parameter includes the STGM_CREATE flag, the existing stream is
replaced by a newly created one. Both the destruction of the old stream and the
creation of the new stream object are subject to the transaction mode on the
parent storage object.
If the stream
already exists and grfMode is set to STGM_FAILIFTHERE, this method fails
with the return value STG_E_FILEALREADYEXISTS.
See Also