ALC_ Alphabet Codes

The ALC_ constants enable a subset of the active character set, depending on the current language.

For example, the French language includes "h" in the lowercase alphabet. In the same way, "" replaces "$" if ALC_MONETARY is set in British systems. For more information about alphabets, see "Specifying an Alphabet Set" in Chapter 8 and "Alphabet" in Chapter 5.

Comments

The following ALC_ constants are are supported:

Constant
Description
ALC_ALL
All characters except Japanese characters.
ALC_ALPHA
ALC_LCALPHA | ALC_UCALPHA.
ALC_ALPHANUMERIC
ALC_LCALPHA | ALC_UCALPHA | ALC_NUMERIC.
ALC_ASCII
Seven-bit characters ASCII #20pics/PENAPI00090000.gifASCII #0x7F
ALC_DBCS
Allow double-byte character set (DBCS) variety of single-byte character set (SBCS).
ALC_DEFAULT
Default value; uses complete set of recognizable char-acters and gestures. The set of these is defined by the recognizer. It is the set of characters at or above ALC_SYSMINIMUM that the recognizer can accurately distinguish.
If an application sets ALC_DEFAULT in the HRC object, and the recognizer is an alphanumeric system recognizer, the recognizer must at least support ALC_SYSMINIMUM as a default. ALC_DEFAULT should be the same character set as the complete character set for the given language minus the ALC_OTHER characters.
If an application combines ALC_DEFAULT with other ALC_ values, ALC_DEFAULT is ignored.
ALC_GESTURE
Gestures.
ALC_GLOBALPRIORITY
Specifies that the global recognition priorities (from Tool Palette) are to be used during recognition. An application can control its own recognition priority in a control by clearing this flag and then setting its own priorities in the HRC.
ALC_HIRAGANA
Hiragana characters. (Japanese version only.)
ALC_JIS1
All Kanji Shift JIS level 1 characters. (Japanese version only.)
ALC_KANJI
Kanji characters, Shift JIS levels 1, 2, and 3. (Japanese version only.)
ALC_KANJIALL
ALC_ALL | ALC_HIRAGANA | ALC_KATAKANA | ALC_KANJI. (Japanese version only.)
ALC_KANJISYSMINIMUM
Minimum set of characters needed for Japanese system recognizer. Same as ALC_SYSMINIMUM | ALC_HIRAGANA | ALC_KATAKANA | ALC_JIS1. (Japanese version only.)
ALC_KATAKANA
Katakana characters. (Japanese version only.)
ALC_LCALPHA
Lowercase letters apics/PENAPI00090000.gifz.
ALC_MATH
Math symbols: %^*()-+={}<>,/.
ALC_MONETARY
Monetary symbols: ,.$ or appropriate currency desig-nation such as the yen or pound sterling symbol, accord-ing to the current language setting.
ALC_NONPRINT
Space, tab, carriage-return, and control glyphs.
ALC_NOPRIORITY
No priority. This value means the application has no preference for one type of symbol over another.
ALC_NUMERIC
Numerals 0pics/PENAPI00090000.gif9.
ALC_OEM
Bits reserved for recognizer capabilities specific to the original equipment manufacturer (OEM).
ALC_OTHER
Other symbols: @ # | _ ~ [ ]. That is, all other symbols not included in ALC_ALPHANUMERIC, ALC_MONETARY, ALC_MATH, and ALC_PUNC.
ALC_PUNC
Punctuation: !-;`"?()&.,\.
ALC_RESERVED
Reserved.
ALC_SYSMINIMUM
Minimum set of characters needed for Roman alphabet system recognizers: ALPHANUMERIC | ALC_PUNC | ALC_WHITE | ALC_GEST.
ALC_UCALPHA
Uppercase letters Apics/PENAPI00090000.gifZ.
ALC_USEBITMAP
(Description follows table.)
ALC_WHITE
White space. If this value is not set in the HRC object, the recognizer should ignore any white space left between characters. Thus, ALC_WHITE is included in the ALC_DEFAULT. For example, in the zip code field of the Hform sample application, where ALC_NUMERIC | ALC_GESTURE is set, the user does not have to worry about getting any extraneous spaces.

If ALC_USEBITMAP is set, it indicates the recognizer should adopt an alphabet set defined by the application. The defined set specifies individual characters of an alphabet by setting bits in a 256-bit bitfield. The lowest bit corresponds to the first character of the alphabet, the second bit to the second character, and so forth.

An application passes the bitfield to a recognizer through the SetAlphabetHRC or SetBoxAlphabetHRC functions. The following code shows how. Assume the array rgbfSet holds the desired bit values.

HRC hrc; // HRC handle

BYTE rgbfSet[cbRcrgbfAlcMax] // 256-bit bitfield

SetAlphabetHRC( hrc, ALC_USEBITMAP, (LPBYTE) rgbSet );

ALC_USEBITMAP can be combined with other ALC_ values using the bitwise-OR operator. An application can thus, for example, select certain letters with a defined bitmap and combine them with all numerals and punctuation.

For Asian languages other than Japanese, refer to the appropriate subsets within the language: phonetic symbols for words within the language, phonetic symbols for words outside the language, and native pictographs. For example, in Korean, ALC_HANGUEL equals ALC_KATAKANA, and ALC_HANJA equals ALC_KANJI.

For kanji and other Asian encodings, different effects are possible depending on the state of ALC_DBCS. These effects are described in the following table.

Character in
ALC_DBCS = 0
ALC_DBCS = 1
ALC_HIRAGANA
N/A
Shift JIS characters 0x8154, 0x8155, and 0x829F pics/PENAPI00090000.gif 0x82F1.
ALC_JIS1
N/A
All Kanji Shift JIS level 1 characters.
ALC_KATAKANA
0xA1 - 0xDF
Shift JIS characters 0x814A, 0x814B, 0x8152, 0x8153, 0x815B, and 0x8340 pics/PENAPI00090000.gif 0x8396.
ALC_KANJI
N/A
All Kanji characters, Shift JIS levels 1, 2, and 3.

The following table shows the characters in Shift-JIS in each ALC_ set supported in the Japanese version:

ALC_ value
Shift JIS Code
ALC_HIRAGANA
0x8154, 0x8155, and 0x829F pics/PENAPI00090000.gif 0x82F1
ALC_JIS1
0x8156 pics/PENAPI00090000.gif 0x815A, 0x889F pics/PENAPI00090000.gif 0x9872
ALC_KANJI
0x8156 pics/PENAPI00090000.gif 0x815A, 0x889F pics/PENAPI00090000.gif 0xEAA4, 0xED40 pics/PENAPI00090000.gif 0xEDFC, 0xEE40 pics/PENAPI00090000.gif 0xEEFC, 0xF040 pics/PENAPI00090000.gif 0xF9FC, 0xFAF0 pics/PENAPI00090000.gif 0xFAFC, 0xFB40 pics/PENAPI00090000.gif 0xFBFC, 0xFC40 pics/PENAPI00090000.gif 0xFC4B
ALC_KATAKANA
0x814A, 0x814B, 0x8152, 0x8153, 0x815B, 0x8340 pics/PENAPI00090000.gif 0x8396
ALC_LCALPHA
0x8281 pics/PENAPI00090000.gif 0x829A
ALC_MATH
0x8143, 0x8144, 0x814F, 0x815E, 0x8169, 0x816A, 0x816F, 0x8170, 0x817B pics/PENAPI00090000.gif 0x817E, 0x8180 pics/PENAPI00090000.gif 0x8188, 0x8193, 0x8196
ALC_MONETARY
0x8143, 0x8144, 0x818F pics/PENAPI00090000.gif 0x8192
ALC_NONPRINT
0x8140
ALC_NUMERIC
0x824F pics/PENAPI00090000.gif 0x8258
ALC_OTHER
0x814C pics/PENAPI00090000.gif 0x814E, 0x8150, 0x8151, 0x8160 pics/PENAPI00090000.gif 0x8164, 0x816B, 0x816C, 0x8171 pics/PENAPI00090000.gif 0x8174, 0x8179, 0x817A, 0x817F, 0x8189 pics/PENAPI00090000.gif 0x818E, 0x8194, 0x8197 pics/PENAPI00090000.gif 0x81FC, 0x8240 pics/PENAPI00090000.gif 0x824E, 0x8259 pics/PENAPI00090000.gif 0x825F, 0x827A pics/PENAPI00090000.gif 0x8280, 0x829B pics/PENAPI00090000.gif 0x829E, 0x82F2 pics/PENAPI00090000.gif 0x82FC, 0x837F, 0x897 pics/PENAPI00090000.gif 0x83FC, 0x8840 pics/PENAPI00090000.gif 0x84FC, 0x8740 pics/PENAPI00090000.gif 0x879D
ALC_PUNC
0x8141 pics/PENAPI00090000.gif 0x8149, 0x815B pics/PENAPI00090000.gif 0x815F, 0x8165 pics/PENAPI00090000.gif 0x816A, 0x816D pics/PENAPI00090000.gif 0x8170, 0x8175 pics/PENAPI00090000.gif 0x8178, 0x817C, 0x8195
ALC_UCALPHA
0x8260 pics/PENAPI00090000.gif 0x8279
ALC_WHITE
0x8140

A recognizer must not return a symbol value outside the specified subset. However, a recognizer does not have to force a match to the subset; it can instead return "unknown" if a suitable match is not found.

You can set the ALC_ value for an hedit or bedit control in a dialog box by insert-ing a special string in the .RC file's CONTROL statement. This string is in the form ALC<xxxx> where xxxx represents a case-independent hexadecimal ALC_ code, without a preceding 0x qualifier. You can append normal window text after the ALC_ entry.

The following line demonstrates setting the ALC_ value for an hedit control using a CONTROL statement:

CONTROL "ALC<402C>Dollars", IDD_PAID, "hedit", ES_LEFT | ... etc.

In the above example, the ALC<402C> value is stripped out with "Dollars" left as window text. The number 402C is the hexadecimal equivalent of:

ALC_NUMERIC | ALC_PUNC | ALC_MONETARY | ALC_GESTURE

The following example allows only kanji characters, katakana characters, and gestures; it does not specify initial window text:

CONTROL "ALC<74000>", IDD_J, "hedit", ES_LEFT | ... etc.

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database