GetStringTypeEx (Windows CE 5.0)

Windows CE 5.0
Send Feedback

This function returns character-type information for the characters in the specified source string. For each character in the string, GetStringTypeEx sets one or more bits in the corresponding 16-bit element of the output array. Each bit identifies a given character type, such as whether the character is a letter, a digit, or neither.

BOOL GetStringTypeEx(
  LCID Locale, 
  DWORD dwInfoType, 
  LPCTSTR lpSrcStr, 
  int cchSrc, 
  LPWORD lpCharType 


[in] Value that specifies the locale identifier. This value uniquely defines the ANSI code page to use to translate the string pointed to by lpSrcStr from ANSI to Unicode. The function then analyzes each Unicode character for character type information

This parameter can be a locale identifier created by the MAKELCID macro, or one of the following predefined values. The following table shows the values this parameter can take.

LOCALE_SYSTEM_DEFAULTDefault system locale.
LOCALE_USER_DEFAULT.Default user locale.

For Microsoft® Windows® CE 1.0, Locale is ignored.

[in] Value that specifies the type of character information the user wants to retrieve. The various types are divided into different levels (see the following Remarks section for a list of the information included in each type). This parameter can specify one of the following character type flags. The following table shows the values this parameter can take.
CT_CTYPE1Retrieve character type information.
CT_CTYPE2Retrieve bidirectional layout information.
CT_CTYPE3Retrieve text-processing information.
[in] Pointer to the string for which character types are requested. If cchSrc is –1, the string is assumed to be null terminated.
[in] Size, in characters, of the string pointed to by the lpSrcStr parameter. If this count includes a terminating null character, the function returns character type information for the terminating null character. If this value is –1, the string is assumed to be null terminated and the length is calculated automatically.
[out] Pointer to an array of 16-bit values. The length of this array must be large enough to receive one 16-bit value for each character in the source string. When the function returns, this array contains one word corresponding to each character in the source string.

Return Values

Nonzero indicates success. Zero indicates failure. To get extended error information, call the GetLastError function. Possible values for GetLastError include the following:



Windows CE supports only the Unicode version of GetStringTypeEx, which ignores the Locale parameter.

The lpSrcStr and lpCharType pointers must not be the same. If they are the same, the function fails and GetLastError returns ERROR_INVALID_PARAMETER.

The character-type bits are divided into several levels. The information for one level can be retrieved by a single call to this function. Each level is limited to 16 bits of information so that the other mapping routines, which are limited to 16 bits of representation per character, can also return character-type information.

The character types supported by this function include the following.

Ctype 1
These types support ANSI C and POSIX (LC_CTYPE) character-typing functions. A combination of these values is returned in the array pointed to by the lpCharType parameter when the dwInfoType parameter is set to CT_CTYPE1.
C1_DIGIT0x0004Decimal digits
C1_SPACE0x0008Space characters
C1_CNTRL0x0020Control characters
C1_BLANK0x0040Blank characters
C1_XDIGIT0x0080Hexadecimal digits
C1_ALPHA0x0100Any linguistic character: alphabetic, syllabary, or ideographic

The following character types are either constant or computable from basic types and do not need to be supported by this function.

AlphanumericAlphabetic characters and digits (C1_ALPHA and C1_DIGIT)
PrintableGraphic characters and blank (all C1_* types except C1_CNTRL)
Ctype 2
These types support proper layout of Unicode text. The direction attributes are assigned so that the bidirectional layout algorithm standardized by Unicode produces accurate results. These types are mutually exclusive.
C2_LEFTTORIGHT0x0001Left to right
C2_RIGHTTOLEFT0x0002Right to left
C2_EUROPENUMBER0x0003European number, European digit
C2_EUROPESEPARATOR0x0004European numeric separator
C2_EUROPETERMINATOR0x0005European numeric terminator
C2_ARABICNUMBER0x0006Arabic number
C2_COMMONSEPARATOR0x0007Common numeric separator
C2_BLOCKSEPARATOR0x0008Block separator
C2_SEGMENTSEPARATOR0x0009Segment separator
C2_WHITESPACE0x000AWhite space
C2_OTHERNEUTRAL0x000BOther neutrals
Not applicable
C2_NOTAPPLICABLE0x0000No implicit directionality (for example, control codes)
Ctype 3
These types are intended to be placeholders for extensions to the POSIX types required for general text processing or for the standard C library functions. A combination of these values is returned when dwInfoType is set to CT_CTYPE3.
C3_NONSPACING0x0001Nonspacing mark
C3_DIACRITIC0x0002Diacritic nonspacing mark
C3_VOWELMARK0x0004Vowel nonspacing mark
C3_KATAKANA0x0010Katakana character
C3_HIRAGANA0x0020Hiragana character
C3_HALFWIDTH0x0040Half-width character
C3_FULLWIDTH0x0080Full-width character
C3_IDEOGRAPH0x0100Ideographic character
C3_KASHIDA0x0200Arabic Kashida character
C3_LEXICAL0x0400Punctuation which is counted as part of the word (Kashida, hyphen, feminine/masculine ordinal indicators, equal sign, and so forth)
C3_ALPHA0x8000All linguistic characters (alphabetic, syllabary, and ideographic)
Not applicable  
C3_NOTAPPLICABLE0x0000Not applicable


OS Versions: Windows CE 1.0 and later.
Header: Winnls.h.
Link Library: Coreloc.lib.

See Also

GetLocaleInfo | GetStringTypeW

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.

© 2016 Microsoft