SHCreateStreamOnFileEx function (shlwapi.h)

Opens or creates a file and retrieves a stream to read or write to that file.

Syntax

LWSTDAPI SHCreateStreamOnFileEx(
  [in]           LPCWSTR pszFile,
  [in]           DWORD   grfMode,
  [in]           DWORD   dwAttributes,
  [in]           BOOL    fCreate,
  [in, optional] IStream *pstmTemplate,
  [out]          IStream **ppstm
);

Parameters

[in] pszFile

Type: LPCWSTR

A pointer to a null-terminated string that specifies the file name.

[in] grfMode

Type: DWORD

One or more STGM values that are used to specify the file access mode and how the object that exposes the stream is created and deleted.

[in] dwAttributes

Type: DWORD

One or more flag values that specify file attributes in the case that a new file is created. For a complete list of possible values, see the dwFlagsAndAttributes parameter of the CreateFile function.

[in] fCreate

Type: BOOL

A BOOL value that helps specify, in conjunction with grfMode, how existing files should be treated when creating the stream. See Remarks for details.

[in, optional] pstmTemplate

Type: IStream*

Reserved.

[out] ppstm

Type: IStream**

Receives an IStream interface pointer for the stream associated with the file.

Return value

Type: HRESULT

If this function succeeds, it returns S_OK. Otherwise, it returns an HRESULT error code.

Remarks

The SHCreateStreamOnFileEx function extends the semantics of the STGM flags and produces the same effect as calling the CreateFile function.

The grfMode and fCreate parameters work together to specify how the function should behave with respect to existing files.

grfMode fCreate File exists? Behavior
STGM_CREATE Ignored Yes The file is recreated.
STGM_CREATE Ignored No The file is created.
STGM_FAILIFTHERE FALSE Yes The file is opened.
STGM_FAILIFTHERE FALSE No The call fails.
STGM_FAILIFTHERE TRUE Yes The call fails.
STGM_FAILIFTHERE TRUE No The file is created.

Requirements

Requirement Value
Minimum supported client Windows XP [desktop apps only]
Minimum supported server Windows Server 2003 [desktop apps only]
Target Platform Windows
Header shlwapi.h
Library Shlwapi.lib
DLL Shlwapi.dll (version 6.0 or later)