SHStrDupA function (shlwapi.h)

Makes a copy of a string in newly allocated memory.

Syntax

LWSTDAPI SHStrDupA(
  [in]  LPCSTR psz,
  [out] LPWSTR *ppwsz
);

Parameters

[in] psz

Type: LPCTSTR

A pointer to the null-terminated string to be copied.

[out] ppwsz

Type: LPTSTR*

A pointer to an allocated Unicode string that contains the result. SHStrDup allocates memory for this string with CoTaskMemAlloc. You should free the string with CoTaskMemFree when it is no longer needed.

In the case of failure, this value is NULL.

Return value

Type: HRESULT

Returns S_OK if successful, or a COM error value otherwise.

Remarks

This function will take either Unicode or ANSI strings as input, but the copied string is always Unicode.

This function uses CoTaskMemAlloc to allocate memory for the copied string. You must free this memory with CoTaskMemFree when it is no longer needed.

Note

The shlwapi.h header defines SHStrDup as an alias that automatically selects the ANSI or Unicode version of this function based on the definition of the UNICODE preprocessor constant. Mixing usage of the encoding-neutral alias with code that is not encoding-neutral can lead to mismatches that result in compilation or runtime errors. For more information, see Conventions for Function Prototypes.

Requirements

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

See also

StrDup