SHAnsiToAnsi function (shlwapi.h)
[This function is available through Windows XP and Windows Server 2003. It might be altered or unavailable in subsequent versions of Windows.]
Copies an ANSI string.
Syntax
int SHAnsiToAnsi(
[in] PCSTR pszSrc,
[out] PSTR pszDst,
int cchBuf
);
Parameters
[in] pszSrc
Type: LPCSTR
A pointer to a null-terminated ANSI string to be converted to Unicode.
[out] pszDst
Type: LPWSTR
A pointer to a buffer that, when this function returns successfully, receives the characters copied from pszSrc. The buffer must be large enough to contain the number of characters specified by the cchBuf parameter, including a room for a terminating null character.
cchBuf
Type: int
The number of characters that can be contained by the buffer pointed to by pszDst. This parameter must be greater than zero.
Return value
Type: int
Returns the number of characters written to pszDst, including the terminating null character. Returns 0 if unsuccessful.
Remarks
Security Warning: Using this function incorrectly can compromise the security of your application. For example, if pszDst buffer is not large enough to contain the number of characters specified by cchBuf, a buffer overrun can occur. Buffer overruns can cause a denial of service attack against an application if an access violation occurs. In the worst case, a buffer overrun might allow an attacker to inject executable code into your process, especially if pszDst is a stack-based buffer. Note that the output string is silently truncated if the buffer is not large enough. This can result in canonicalization or other security vulnerabilities.
If the pszDst buffer is not large enough to contain the entire converted output string, the string is truncated to fit the buffer. There is no way to detect that the return string has been truncated. The string will always be null-terminated, even if it has been truncated. This function takes care to not truncate between the lead and trail bytes of a DBCS character pair. In that case, only cchBuf-1 characters are returned.
If the pszSrc and pszDst buffers overlap, the function's behavior is undefined.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Windows 2000 Professional, Windows XP [desktop apps only] |
Minimum supported server | Windows 2000 Server, Windows Server 2003 [desktop apps only] |
Target Platform | Windows |
Header | shlwapi.h |
DLL | Shlwapi.dll (version 5.0 or later) |
See also
StringCchLength