ScriptStringAnalyse (Windows CE 5.0)

Send Feedback

This function analyzes a plain text string.

HRESULT WINAPI ScriptStringAnalyse(  HDC hdc,  const void* pString,  int cString,  int cGlyphs,  int iCharset,  DWORD dwFlags,  int iReqWidth,  SCRIPT_CONTROL* psControl,  SCRIPT_STATE* psState,  const int* piDx,  SCRIPT_TABDEF* pTabdef,  const BYTE* pbInClass,  SCRIPT_STRING_ANALYSIS* pssa);

Parameters

  • hdc
    [in] Handle to the device context. If dwFlags is SSA_GLYPH, the hdc is required. If dwFlags is SSA_BREAK, the hdc is optional.

    If the hdc is present, the current font in the hdc is inspected. If the current font is a symbolic font, the character string is treated as a single neutral SCRIPT_UNDEFINED item.

  • pString
    [in] Pointer to the string to be analyzed. It must have at least one character.

  • cString
    [in] Length of the string. This must be at least 1.

  • cGlyphs
    [in] Glyph buffer size. This is required. The default size is cString * 3/2 + 1.

  • iCharset
    [in] Character set descriptor. If this is an ANSI string, this is the charset. If it is a Unicode string, this is -1.

  • dwFlags
    [in] Indicates the analysis required. This parameter can be one of the following values.

    Value Description
    SSA_BREAK Returns break flags, that is, character and word stops.
    SSA_CLIP Clips the string at iReqWidth.
    SSA_DZWG Provides representation glyphs for control characters.
    SSA_FALLBACK Uses fallback fonts.
    SSA_FIT Justifies string to iReqWidth.
    SSA_GLYPHS Generates glyphs, positions, and attributes.
    SSA_HIDEHOTKEY Removes the first '&' from displayed string.
    SSA_HOTKEY Replaces '&' with underline on subsequent codepoint.
    SSA_HOTKEYONLY Displays underline only.
    SSA_PASSWORD Inputs string contains a single character to be duplicated iLength times.
    SSA_RTL Uses base embedding level 1.
    SSA_TAB Expands tabs.
  • iReqWidth
    [in] Required width for fitting or clipping.

  • psControl
    [in] Pointer to a SCRIPT_CONTROL structure. If NULL, all SCRIPT_CONTROL members are set to zero.

  • psState
    [in] Pointer to a SCRIPT_STATE structure. If NULL, all SCRIPT_STATE members are set to zero. The uBidiLevel member of SCRIPT_STATE is ignored. The value used is derived from the SSA_RTL flag in combination with the layout of the hdc.

  • piDx
    [in] Pointer to the requested logical dx array.

  • pTabdef
    [in] Pointer to a SCRIPT_TABDEF structure. This is only required if dwFlags is SSA_TAB.

  • pbInClass
    [in] Must be set to NULL for Windows CE.

  • pssa
    [out] Pointer to a SCRIPT_STRING_ANALYSIS structure.

Return Values

If the function is successful, it returns S_OK.

If there is an invalid argument, it returns E_INVALIDARG.

If SSA_FALLBACK was not specified, or if a standard fallback font is missing, it returns USP_E_SCRIPT_NOT_IN_FONT. It can also return a system error (converted to an HRESULT), such as those from lack of memory or GDI calls using the hdc.

Remarks

The ScriptStringAnalyse function is the first step in handling plain text strings. Plain text is a string that has only one font, one style, one size, one color, and so forth. ScriptStringAnalyse allocates temporary buffers for item analyzes, glyphs, advance widths, and so forth. Then it automatically runs ScriptItemize, ScriptShape, ScriptPlace, and ScriptBreak. The results are then available through all the other ScriptString functions.

Although the functionality of ScriptStringAnalyse can be implemented by direct calls to other functions, ScriptStringAnalyse drastically reduces the amount of code required in the application for plain text handling.

Note that the uBidiLevel member in the initial SCRIPT_STATE value is ignored. The uBidiLevel that is used is derived from the SSA_RTL flag in combination with the layout of the hdc.

Requirements

OS Versions: Windows CE 5.0 and later.
Header: Usp10.h.
Link Library: Uspce.lib.

See Also

ScriptBreak | ScriptItemize | ScriptPlace | ScriptShape | SCRIPT_CONTROL | SCRIPT_STATE | SCRIPT_STRING_ANALYSIS | SCRIPT_TABDEF

Send Feedback on this topic to the authors

Feedback FAQs

© 2006 Microsoft Corporation. All rights reserved.