int LCMapStringA(
LCID lcid, |
|
DWORD dwMapFlags, |
|
LPCSTR lpSrcStr, |
|
int cchSrc, |
|
LPSTR lpDestStr, |
|
int cchDest, |
|
); |
Transforms the case or sort order of a string.
Name | Meaning |
---|---|
LCMAP_LOWERCASE | Lowercase. |
LCMAP_UPPERCASE | Uppercase. |
LCMAP_SORTKEY | Character sort key. |
LCMAP_HALFWIDTH | Narrow characters (where applicable). |
LCMAP_FULLWIDTH | Wide characters (where applicable). |
LCMAP_HIRAGANA | Hiragana. |
LCMAP_KATAKANA | Katakana. |
NORM_IGNORECASE | Ignore case. Default is Off. |
NORM_IGNORENONSPACE | Ignore nonspacing. Default is Off. |
NORM_IGNOREWIDTH | Ignore character width. Default is Off. |
NORM_IGNOREKANATYPE | Ignore Japanese hiragana/katakana character differences. Default is Off. |
NORM_IGNORESYMBOLS | Ignore symbols. Default is Off. |
The latter five options (NORM_IGNORECASE, NORM_IGNORENONSPACE, NORM_IGNOREWIDTH, NORM_IGNOREKANATYPE, and NORM_IGNORESYMBOLS) are normalization options that can only be used in combination with the LCMAP_SORTKEY conversion option.
Conversion options can be combined only when they are taken from the following three groups, and then only when there is no more than one option from each group:
Value | Meaning |
---|---|
0 | Failure. |
The number of characters written to lpDestSt | Success. |
LCMapStringA maps one character string to another, performing the specified locale-dependent translation.
The flag LCMAP_UPPER produces the same result as AnsiUpper in the given locale. The flag LCMAP_LOWER produces the same result as AnsiLower. This function always maps a single character to a single character.
The mapped string is null-terminated if the source string is null-terminated.
When used with LCMAP_UPPER and LCMAP_LOWER, the lpSrcStr and lpDestStr may be the same to produce an in-place mapping. When LCMAP_SORTKEY is used, the lpSrcStr and lpDestStr pointers may not be the same. In this case, an error will result.
The LCMAP_SORTKEY transforms two strings so that when they are compared with the standard C library function strcmp (by strict numerical valuation of their characters), the same order will result, as if the original strings were compared with CompareStringA. When LCMAP_SORTKEY is specified, the output string is a string (without Nulls, except for the terminator), but the character values will not be meaningful display values. This is similar behavior to the ANSI C function strxfrm.