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

指向此函数检索字形标识符数组的缓冲区的指针。 该数组包括原始字形,后跟备用字形。 第一个元素始终为原始字形。 备用窗体由数组中的索引标识。 索引是大于一个值,小于 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 函数