StgMakeUniqueName function (shlobj_core.h)

Creates a unique name for a stream or storage object from a template.

Syntax

HRESULT StgMakeUniqueName(
  [in]  IStorage *pstgParent,
  [in]  PCWSTR   pszFileSpec,
  [in]  DWORD    grfMode,
  [in]  REFIID   riid,
  [out] void     **ppv
);

Parameters

[in] pstgParent

Type: IStorage*

A pointer to an IStorage object.

[in] pszFileSpec

Type: PCWSTR

The format or template for the name of the stream or storage object.

[in] grfMode

Type: DWORD

The access mode to use when opening the stream or storage object. For more information and descriptions of the possible values, see STGM Constants.

[in] riid

Type: REFIID

A reference to the IID of the interface to retrieve through ppv, typically IID_IStorage or IID_IStream.

[out] ppv

Type: void**

When this method returns, contains the interface pointer requested in riid. This is typically IStorage or IStream.

Return value

Type: HRESULT

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

Remarks

It is recommended that you use the IID_PPV_ARGS macro, defined in Objbase.h, to package the riid and ppv parameters. This macro provides the correct IID based on the interface pointed to by the value in ppv, which eliminates the possibility of a coding error.

Requirements

Requirement Value
Minimum supported client Windows 7 [desktop apps only]
Minimum supported server Windows Server 2008 R2 [desktop apps only]
Target Platform Windows
Header shlobj_core.h (include Shlobj.h)
Library Shell32.lib
DLL Shell32.dll (version 6.1 or later)