Export (0) Print
Expand All

SCRIPT_ANALYSIS structure

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.

ValueMeaning
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.

ValueMeaning
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.

ValueMeaning
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.

ValueMeaning
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.

ValueMeaning
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.

ValueMeaning
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

Minimum supported client

Windows 2000 Professional [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]

Redistributable

Internet Explorer 5 or later onWindows Me/98/95

Header

Usp10.h

See also

Uniscribe
Uniscribe Structures
ScriptGetProperties
ScriptItemize
ScriptItemizeOpenType
ScriptPlace
ScriptPlaceOpenType
ScriptShape
ScriptShapeOpenType
ScriptTextOut
SCRIPT_ITEM
SCRIPT_STATE

 

 

Community Additions

ADD
Show:
© 2014 Microsoft