Overview of the Technology

The Unicode Script Processor (USP10.dll), or Uniscribe, is the system engine used to shape and lay out complex scripts. (For more information, see Chapter 5, "Text Input, Output, and Display.") Extending beyond complex scripts, however, Uniscribe provides for Unicode text display in all Microsoft-supported scripts and languages. Uniscribe also supplies a script-independent interface for writing applications that display or edit formatted text. In addition, Uniscribe offers simple font fallback for all languages and enables support for OpenType typographic features. (For more information, see Chapter 5 and Chapter 20, "OpenType Fonts.")

In contrast, Uniscribe does not provide support for sorting, code-page translation, nor does it supply keyboards, spelling checkers, or grammar checkers. Furthermore, it does not furnish a markup language or object model for creating or manipulating formatted text.

The following sections contain information on Unicode support for text lines and text runs. You will see when to use this support, and when you should forego it, as well as what scripts and features have been added to various Uniscribe versions.

Text Line Support

Uniscribe's text line support was developed to help handle international text for the Microsoft Win32 application programming interfaces (APIs) ExtTextOut and DrawText. This support includes the ScriptStringAnalyse,ScriptStringOut, and ScriptStringFree APIs and all the ScriptStringGet functions.

Don't use Uniscribe text line support if DrawText or ExtTextOut provides sufficient functionality. These functions are easier to use, and can be faster in simple script cases. Moreover, don't use text line support for text that has formatting changes within the line. Instead use Rich Edit or the Uniscribe text run APIs mentioned in the next section.

On the other hand, you should use Uniscribe's text line support API if you need the following extra features:

  • Caret placement and hit-testing functions for authors of unformatted text edit controls.
  • Simple unformatted text justification.
  • Support for displaying (but not keying, sorting, or 8-bit coding) complex scripts and East Asian scripts on platforms that are not enabled. Note that East Asian support in Uniscribe is limited to horizontal text.

Text Run Support

Uniscribe support for text runs was developed to effectively handle international text in formatted text display (such as in Microsoft Internet Explorer) and in editing applications (such as in Rich Edit). It is also used by the text line implementation. Text run APIs include ScriptItemize,ScriptShape, ScriptPlace, and ScriptTextOut.

Don't use text run support if you can utilize an easier formatted text interface such as one that Rich Edit furnishes. Instead, use it only if you are developing an edit control or a forms display package that requires formatted text.

Uniscribe Versions

Certain scripts and features have been added to Uniscribe versions, as shown in Table 24-1. As you look at the table, note that Arabic (1) refers to Arabic support for all Arabic font types supported by the Arabic version of Microsoft Windows 95/98/Millennium Edition (Me), and Microsoft Windows NT. Arabic (2) adds support for new OpenType features required for fonts such as those with a descending baseline.

Table 24-1 Scripts and features added to Uniscribe versions.

Scripts and Features

Version

Shipped With

Arabic (1), Hebrew, Thai

173

Microsoft Internet Explorer 4 complex-script version

Arabic (2), Devanagari, Tamil, Vietnamese, East Asian supplementary planes

325

Microsoft Windows 2000, Microsoft Office 2000, Microsoft Internet Explorer 5

Gurmukhi, Gujarati, Kannada, Telugu, Old Hangul, Syriac, Thanna, East Asian vertical

407

Microsoft Windows XP, Microsoft Office XP, Microsoft Internet Explorer 6



Microsoft Corporation - Developing International Software
Developing International Software
ISBN: 0735615837
EAN: 2147483647
Year: 2003
Pages: 198

Similar book on Amazon

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net