Gharesh wrote (on Sat Apr 7, 2001 11:45am):
> There is an article in MSJ Nov98 publication on 'Supporting
> Multilingual text layout and complex scripts on Windows NT 5.0"
> http://www.microsoft.com/MSJ/1198/multilang/multilang.htm
>
> It says following;
>
> "Indic scripts must be handled separately because they have no
> charset values. Since there is no default ACP value for Indic
> scripts, none of the Win32? ANSI entry points (the A routines) will
> work with Indic text. Indic text is not automatically translated to
> Unicode"
>
> 1. Can somebody explain in detail what does this mean?
Windows 32 API's have two sets of text-related functions:
- the "A routines" (so called because their names end with an "A") work with
"ANSI" code pages (i.e., the local character set),
- the "W routines" (so called because their names end with a "W") work with
"Wide characters", that is: Unicode.
See for example the declaration of functions TextOut...() from a Win API
header ("wingdi.h"):
WINGDIAPI BOOL WINAPI TextOutA(HDC, int, int, LPCSTR, int);
WINGDIAPI BOOL WINAPI TextOutW(HDC, int, int, LPCWSTR, int);
#ifdef UNICODE
#define TextOut TextOutW
#else
#define TextOut TextOutA
#endif // !UNICODE
So, you can use TextOutA() for displaying an "ANSI" string, or TextOutW() to
display an Unicode string.
The shortcut TextOut() is the default: either TextOutA() or TextOutW(),
depending whether the UNICODE macro is defined or not.
Notice that the acronym "ANSI" to denote a local character set is a misnomer
only used within Microsoft Windows API.
> 2.What are Charset values and ACP values?
ACP probably means be "ANSI code page". Charset values are numerical
identifiers for "ANSI code pages".
There are no charset values for Indian scripts (see question 3).
> 3. What is meaning of statement "Indic text is not automatically
> translated to Unicode"
It is a tautology, I think.
Microsoft does not support the local character sets of India ("ISCII" =
"Indian Set of Characters for Information Interchange"), so Indic languages
may only be used with Unicode and, hence, you can only use "W routines" such
as TextOutW().
Of course, as there is no local character set, there can be no automatic
conversions between the local character set and Unicode.
_ Marco
This archive was generated by hypermail 2.1.2 : Fri Jul 06 2001 - 00:17:15 EDT