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 值。 应用程序可以使用 SUCCEEDED 和 FAILED 宏测试返回值。
如果备用字形的数目超过 cMaxAlternates 的值,则函数将失败并E_OUTOFMEMORY。 应用程序可以尝试使用较大的缓冲区再次调用。
注解
使用备用字形时,应用程序先调整原始字形而不应用任何功能标记,然后选择备用字形。 将原始字形建立为基本字形。 如果需要另一个替代项,则原始字形提供的信息与相应的替换项列表匹配。
如果使用备用字形作为基本字形,则找不到匹配的输出列表。 用户界面使用所选的最终窗体,但不提供选择另一个备用窗体的功能。
ScriptGetFontAlternateGlyphs 的操作可由 ScriptSubstituteSingleGlyph 模拟。 在替换字形时,应用程序应逐个尝试参数。
对于使用 Uniscribe 调整字体, ScriptShapeOpenType 优先于较旧的 ScriptShape 函数。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | usp10.h |
Library | Usp10.lib |
DLL | Usp10.dll |
可再发行组件 | 在 Windows XP 上 Usp10.dll 版本 1.600 或更高版本 |