ScriptBreak function

Retrieves information for determining line breaks.


HRESULT ScriptBreak(
  const WCHAR           *pwcChars,
  int                   cChars,
  const SCRIPT_ANALYSIS *psa,
  SCRIPT_LOGATTR        *psla



Pointer to the Unicode characters to process.


Number of Unicode characters to process.


Pointer to the SCRIPT_ANALYSIS structure obtained from an earlier call to ScriptItemize.


Pointer to a buffer in which this function retrieves the character attributes as a SCRIPT_LOGATTR structure.

Return Value

Returns 0 if successful. The function returns a nonzero HRESULT value if it does not succeed. The application can test the return value with the SUCCEEDED and FAILED macros.


See Displaying Text with Uniscribe for a discussion of the context in which this function is normally called.

This function does not require a device context and does not perform glyph shaping.

This function retrieves cursor movement and formatting break positions for an item in an array of SCRIPT_LOGATTR structures. To support mixed formatting within a single word correctly, the call to ScriptBreak should pass whole items as retrieved by ScriptItemize, and not the finer formatting runs.

The SCRIPT_LOGATTR structure identifies valid caret positions and line breaks. The fCharStop member specifies a flag that marks cluster boundaries for scripts that are conventionally restricted from moving inside clusters. The same boundaries can also be inferred by inspecting the logical cluster information retrieved by ScriptShape. However, ScriptBreak is considerably faster in implementation and does not require a device context to be prepared.

The flags designated by the fWordStop, fSoftBreak, and fWhiteSpace members of SCRIPT_LOGATTR are only available through ScriptBreak.

Most shaping engines that identify invalid sequences set the flag indicated by the fInvalid member of SCRIPT_LOGATTR in ScriptBreak. The fInvalidLogAttr member of SCRIPT_PROPERTIES identifies the applicable scripts.

Important  Starting with Windows 8: To maintain the ability to run on Windows 7, a module that uses Uniscribe must specify Usp10.lib before gdi32.lib in its library list.


Minimum supported client Windows 2000 Professional [desktop apps only]
Minimum supported server Windows 2000 Server [desktop apps only]
Target Platform Windows
Header usp10.h
Library Usp10.lib
DLL Usp10.dll
Redistributable Internet Explorer 5 or later on Windows Me/98/95

See Also

Displaying Text with Uniscribe






Uniscribe Functions