SCRIPT_ANALYSIS structure (usp10.h)

Contains a portion of a Unicode string, that is, an "item".

Syntax

typedef struct tag_SCRIPT_ANALYSIS {
  WORD         eScript : 10;
  WORD         fRTL : 1;
  WORD         fLayoutRTL : 1;
  WORD         fLinkBefore : 1;
  WORD         fLinkAfter : 1;
  WORD         fLogicalOrder : 1;
  WORD         fNoGlyphIndex : 1;
  SCRIPT_STATE s;
} SCRIPT_ANALYSIS;

Members

eScript

Opaque value identifying the engine that Uniscribe uses when calling the ScriptShape, ScriptPlace, and ScriptTextOut functions for the item. The value for this member is undefined and applications should not rely on its value being the same from one release to the next. An application can obtain the attributes of eScript by calling ScriptGetProperties.

To disable shaping, the application should set this member to SCRIPT_UNDEFINED.

fRTL

Value indicating rendering direction. Possible values are defined in the following table. This member is set to TRUE for a number in a left-to-right run, because digits are always displayed left to right, or FALSE for a number in a right-to-left run. The value of this member is normally identical to the parity of the Unicode embedding level, but it might differ if overridden by GetCharacterPlacement legacy support.

Value Meaning
TRUE
Use a right-to-left rendering direction.
FALSE
Use a left-to-right rendering direction.

fLayoutRTL

Value indicating layout direction for a number. Possible values are defined in the following table. This member is usually the same as the value assigned to fRTL for a number in a right-to-left run.

Value Meaning
TRUE
Lay out the number in a right-to-left run, because it is read as part of the right-to-left sequence.
FALSE
Lay out the number in a left-to-right run, because it is read as part of the left-to-right sequence.

fLinkBefore

Value indicating if the shaping engine shapes the first character of the item as if it joins with a previous character. Possible values are defined in the following table. This member is set by ScriptItemize. The application can override the value before calling ScriptShape.

Value Meaning
TRUE
Shape the first character by linking with a previous character.
FALSE
Do not shape the first character by linking with a previous character.

fLinkAfter

Value indicating if the shaping engine shapes the last character of the item as if it joins with a subsequent character. Possible values are defined in the following table. This member is set by ScriptItemize. The application can override the value before calling ScriptItemize.

Value Meaning
TRUE
Shape the last character by linking with a subsequent character.
FALSE
Do not shape the last character by linking with a subsequent character.

fLogicalOrder

Value indicating if the shaping engine generates all glyph-related arrays in logical order. Possible values are defined in the following table. This member is set to FALSE by ScriptItemize. The application can override the value before calling ScriptShape.

Value Meaning
TRUE
Generate all glyph-related arrays in logical order.
FALSE
Generate all glyph-related arrays in visual order, with the first array entry corresponding to the leftmost glyph. This value is the default.

fNoGlyphIndex

Value indicating the use of glyphs for the item. Possible values are defined in the following table. The application can set this member to TRUE on input to ScriptShape to disable the use of glyphs for the item. Additionally, ScriptShape sets it to TRUE for a hardware context containing symbolic, unrecognized, and device fonts.

Disabling the use of glyphs also disables complex script shaping. Setting this member to TRUE implements shaping and placing directly by calls to GetTextExtentExPoint and ExtTextOut.

Value Meaning
TRUE
Disable the use of glyphs for the item. This value is used for bitmap, vector, and device fonts.
FALSE
Enable the use of glyphs for the item. This value is the default.

s

A SCRIPT_STATE structure containing a copy of the Unicode algorithm state.

Remarks

This structure is filled by ScriptItemize or ScriptItemizeOpenType, each of which breaks a Unicode string into individually shapeable items. Neither function accesses the SCRIPT_ANALYSIS structure directly. Each function handles an array of SCRIPT_ITEM structures, each of which has a member defining a SCRIPT_ANALYSIS structure.

Applications that use ScriptItemizeOpenType instead of ScriptItemize should also use ScriptShapeOpenType and ScriptPlaceOpenType instead of ScriptShape and ScriptPlace. For more information, see Displaying Text with Uniscribe.

Requirements

Requirement Value
Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Header usp10.h
Redistributable Internet Explorer 5 or later onWindows Me/98/95

See also

SCRIPT_ITEM

SCRIPT_STATE

ScriptGetProperties

ScriptItemize

ScriptItemizeOpenType

ScriptPlace

ScriptPlaceOpenType

ScriptShape

ScriptShapeOpenType

ScriptTextOut

Uniscribe

Uniscribe Structures