Platform SDK: International Features

SCRIPT_STATE

The SCRIPT_STATE structure is used both to initialize the Unicode algorithm state as an input parameter to ScriptItemize, and is also a component of the analyzis returned by ScriptItemize.

typedef struct tag_SCRIPT_STATE { 
  WORD uBidiLevel :5; 
  WORD fOverrideDirection :1; 
  WORD fInhibitSymSwap :1; 
  WORD fCharShape :1; 
  WORD fDigitSubstitute :1; 
  WORD fInhibitLigate :1; 
  WORD fDisplayZWG :1; 
  WORD fArabicNumContext :1; 
  WORD fGcpClusters :1; 
  WORD fReserved :1; 
  WORD fEngineReserved :2; 
} SCRIPT_STATE;

Members

uBidiLevel
The embedding level associated with all characters in this run according to the Unicode bidirectional algorithm. When passed to ScriptItemize, should be initialized to zero for an LTR base embedding level, or 1 for RTL.
fOverrideDirection
TRUE if this level is an override level (LRO/RLO). In an override level, characters are laid out in one direction only, either left-to-right or right-to-left. No reordering of digits or strong characters of opposing direction takes place. Note that this initial value is reset by LRE, RLE, LRO or RLO codes in the string.
fInhibitSymSwap
TRUE if the shaping engine is to bypass mirroring of Unicode mirrored glyphs such as brackets. Set by Unicode character ISS, cleared by ASS.
fCharShape
TRUE if character codes in the Arabic Presentation Forms areas of Unicode should be shaped. (Not implemented).
fDigitSubstitute
TRUE if character codes U+0030 through U+0039 (European digits) are to be substituted by national digits. Set by Unicode NADS, cleared by NODS.
fInhibitLigate
TRUE if ligatures are not to be used in the shaping of Arabic or Hebrew characters.
fDisplayZWG
TRUE if control characters are to be shaped as representational glyphs. (Typically, control characters are shaped to the blank glyph and given a width of zero).
fArabicNumContext
TRUE indicates prior strong characters were Arabic for the purposes of rule P0 as discussed in The Unicode Standard, version 2.0. This should normally be set to TRUE before itemizing an RTL paragraph in an Arabic language, and FALSE otherwise.
fGcpClusters
For GetCharacterPlacement legacy support only. Initialize to TRUE to request ScriptShape to generate the pwLogClust array the same way as GetCharacterPlacement does in Arabic and Hebrew Windows 95. Affects only Arabic and Hebrew items.
fReserved
Reserved. Always initialize to zero.
fEngineReserved
Reserved. Always initialize to zero.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Header: Declared in Usp10.h.

See Also

Uniscribe Overview, Uniscribe Structures, GetCharacterPlacement, ScriptItemize, ScriptShape