This method of the IStorage interface 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 namespace.
public IStream CreateStream(String pwcsName, int grfMode, int reserved1, int reserved2);
S_OK -- The new stream was successfully created
E_PENDING -- Asynchronous storage only: Part or all the necessary data is currently unavailable.
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 enumeration value.
STG_E_INVALIDFUNCTION -- The specified combination of grfMode flags is not supported. For example, this method was 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.
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. For descriptions of the possible values, see the STGM enumeration values. |
reserved1 | [in] Reserved for future use; must be 0 (zero). |
reserved2 | [in] Reserved for future use; must be 0 (zero). |