This method of the IStorage interface creates and opens a new storage object nested within this storage object.
public IStorage CreateStorage(String pwcsName, int grfMode, int reserved1, int reserved2);
S_OK -- The storage object was created successfully.
E_PENDING -- Asynchronous storage only: Part or all the necessary data is currently unavailable.
STG_E_ACCESSDENIED -- Insufficient permissions to create storage object.
STG_E_FILEALREADYEXISTS -- The name specified for the storage object already exists in the storage object and the grfmode flag includes the flag STGM_FAILIFTHERE.
STG_E_INSUFFICIENTMEMORY -- The storage object 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.
STG_E_INVALIDNAME -- Invalid value for pwcsName.
STG_E_INVALIDPOINTER -- The pointer specified for the storage 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 storage object was not created because there are too many open files.
STG_S_CONVERTED -- The existing stream with the specified name was replaced with a new storage object containing a single stream called CONTENTS. The new storage object will be added.
pwcsName | [in] Points to a wide character string that contains the name of the newly created storage object. This name can be used later to reopen the storage object. |
grfMode | [in] Specifies the access mode to use when opening the newly created storage object. 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). |