ScriptGetFontAlternateGlyphs 函数 (usp10.h)

检索可通过指定的 OpenType 功能访问的指定字符的替代字形列表。

语法

HRESULT ScriptGetFontAlternateGlyphs(
  [in, optional] HDC             hdc,
  [in, out]      SCRIPT_CACHE    *psc,
  [in, optional] SCRIPT_ANALYSIS *psa,
  [in]           OPENTYPE_TAG    tagScript,
  [in]           OPENTYPE_TAG    tagLangSys,
  [in]           OPENTYPE_TAG    tagFeature,
  [in]           WORD            wGlyphId,
  [in]           int             cMaxAlternates,
  [out]          WORD            *pAlternateGlyphs,
  [out]          int             *pcAlternates
);

参数

[in, optional] hdc

设备上下文的句柄。 有关详细信息,请参阅 缓存

[in, out] psc

指向定义脚本缓存 的SCRIPT_CACHE 结构的指针。

[in, optional] psa

指向从先前调用 ScriptItemizeOpenType 获取的SCRIPT_ANALYSIS结构的指针。 此参数标识整形引擎,以便可以使用正确的范围创建备用字形数组。

或者,应用程序可以将此参数设置为 NULL 以接收未筛选的结果。

[in] tagScript

定义与备用字形关联的脚本标记的 OPENTYPE_TAG 结构。

[in] tagLangSys

定义与备用字形关联的语言标记 的OPENTYPE_TAG 结构。

[in] tagFeature

定义与备用字形关联的功能标记的 OPENTYPE_TAG 结构。

[in] wGlyphId

从字符映射表映射的原始字形的标识符。

[in] cMaxAlternates

由 pAlternateGlyphs 指定的数组的长度。

[out] pAlternateGlyphs

指向缓冲区的指针,此函数在其中检索字形标识符数组。 数组包括原始字形,后跟备用字形。 第一个元素始终是原始字形。 替代形式由数组中的索引标识。 索引是大于 1 且小于 pcAlternates 的值的值。

当用户从用户界面中选择备用窗体时,备用字形将应用于相应的字符,并重新设置呈现格式。

[out] pcAlternates

指向 由 pAlternateGlyphs 指定的数组中的元素数的指针。

返回值

如果成功,则返回 0。 如果函数不成功,则返回非零 HRESULT 值。 应用程序可以使用 SUCCEEDEDFAILED 宏测试返回值。

如果备用字形的数目超过 cMaxAlternates 的值,则函数将失败并E_OUTOFMEMORY。 应用程序可以尝试使用较大的缓冲区再次调用。

注解

使用备用字形时,应用程序先调整原始字形而不应用任何功能标记,然后选择备用字形。 将原始字形建立为基本字形。 如果需要另一个替代项,则原始字形提供的信息与相应的替换项列表匹配。

如果使用备用字形作为基本字形,则找不到匹配的输出列表。 用户界面使用所选的最终窗体,但不提供选择另一个备用窗体的功能。

ScriptGetFontAlternateGlyphs 的操作可由 ScriptSubstituteSingleGlyph 模拟。 在替换字形时,应用程序应逐个尝试参数。

对于使用 Uniscribe 调整字体, ScriptShapeOpenType 优先于较旧的 ScriptShape 函数。

重要从Windows 8开始:若要保持在 Windows 7 上运行的功能,使用 Uniscribe 的模块必须在其库列表中指定 gdi32.lib 之前的 Usp10.lib。
 

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 usp10.h
Library Usp10.lib
DLL Usp10.dll
可再发行组件 在 Windows XP 上 Usp10.dll 版本 1.600 或更高版本

另请参阅

缓存

OPENTYPE_TAG

SCRIPT_ANALYSIS

SCRIPT_CACHE

ScriptItemizeOpenType

ScriptShapeOpenType

ScriptSubstituteSingleGlyph

Uniscribe

Uniscribe 函数