Writing, Mapping, and Sorting Characters
Applications write end-user-defined characters to the screen or printer the
same way as writing other characters, by using output functions such as
TextOut and
ExtTextOut. These functions automatically retrieve character information from EUDC fonts
if EUDC is enabled. When writing end-user-defined characters, the action of
the text output function depends on the currently selected font. If the selected
font is an integrated EUDC font, the function retrieves character information
from that font. If the selected font is a DBCS TrueType font that has an
associated typeface-aware EUDC font, the function retrieves information from the
specified typeface-aware font. If the selected font does not have an associated
typeface-aware font, the function retrieves information from the system default
EUDC font. If the character is not in the system default EUDC font or there is no
system default EUDC font, the function writes the default character defined by
the selected font.
Applications can map end-user-defined characters to and from Unicode by using
the
MultiByteToWideChar and
WideCharToMultiByte functions. The
MultiByteToWideChar function maps an end-user-defined character to a character position in the
Unicode private use area. The
WideCharToMultiByte function maps a character in the private use area to its multibyte character
counterpart, if such a mapping exists. The code page specified in this function
must contain an EUDC code range for the mapping to occur. If it does not, the
function returns the default character for any characters in the Unicode
private use area.
Both
MultiByteToWideChar and
WideCharToMultiByte preserve the "round trip" mapping of end-user-defined characters from a code
page to Unicode and back to the original code page. But these functions do not
necessarily preserve mapping to other code pages. For example, if a character
from code page 932 is mapped to Unicode, then mapped from Unicode to another
code page with an EUDC range, it is likely that the original character will be
mapped to a different end-user-defined character in the destination code page.
Similarly, mapping a Unicode string to a code page that has an EUDC range may have
unintended results. If the Unicode string contains a private-use code point,
that code point may be mapped to an end-user-defined character whether or not
the code point actually represents such a character.
Applications can compare strings that contain end-user-defined characters by
using the
CompareStringA function. The function maps the characters to the Unicode end user zone
before comparing character values. Applications can create a sort key for the string
by using the
LCMapStringA function and the LCMAP_SORTKEY value. This function maps characters to
Unicode first. All characters in the private use area are sorted after all other
Unicode characters. Within the area, characters are sorted in numerical order. If
an application attempts to retrieve CTYPE ifnormation for an end-user-defined
character by using the
GetStringTypeA function, the function returns NULL for each character.
- 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