ScriptPlace 函数 (usp10.h)
从 ScriptShape 的输出生成字形高级宽度和二维偏移信息。
语法
HRESULT ScriptPlace(
[in] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in] const WORD *pwGlyphs,
[in] int cGlyphs,
[in] const SCRIPT_VISATTR *psva,
[in, out] SCRIPT_ANALYSIS *psa,
[out] int *piAdvance,
[out] GOFFSET *pGoffset,
[out] ABC *pABC
);
参数
[in] hdc
可选。 设备上下文的句柄。 有关详细信息,请参阅 缓存。
[in, out] psc
指向标识脚本缓存 的SCRIPT_CACHE 结构的指针。
[in] pwGlyphs
指向从先前对 ScriptShape 函数的调用获取的字形缓冲区的指针。
[in] cGlyphs
字形缓冲区中的字形计数。
[in] psva
指向指示可视属性的 SCRIPT_VISATTR 结构的数组的指针。
[in, out] psa
指向 SCRIPT_ANALYSIS 结构的指针。 输入时,此结构是从之前对 ScriptItemize 的调用中获取的。 在输出时,此结构包含 ScriptPlace 检索的值。
[out] piAdvance
指向数组的指针,此函数在其中检索高级宽度信息。
[out] pGoffset
可选。 指向 GOFFSET 结构的数组的指针,此函数在其中检索组合字形的 x 和 y 偏移量。 此数组的长度必须由 cGlyphs 指示。
[out] pABC
指向 ABC 结构的指针,此函数在其中检索整个运行的ABC 宽度。
返回值
如果成功,则返回 0。 如果函数不成功,则返回非零 HRESULT 值。 应用程序可以使用 SUCCEEDED 和 FAILED 宏测试返回值。
如果 psc 参数指定的脚本缓存不包含足够的信息来放置字形,并且 hdc 参数设置为 NULL ,因此函数无法完成放置过程,则函数将返回E_PENDING。 应用程序应为运行设置正确的设备上下文,并使用相应的设备上下文和所有其他参数再次调用此函数。
注解
有关通常调用此函数的上下文的讨论,请参阅 使用 Uniscribe 显示文本 。
整个项的复合 ABC 宽度标识字形 悬在 起始位置左侧和预进宽度之和所隐含的长度右侧的多少。 行的总前进宽度正好是 abcA+abcB+abcC。 abcA 和 abcC 值以 8 位表示的单元格高度的比例进行维护,因此大致为 +/-1%。 检索的总宽度( piAdvance 指示的 abcA+abcB+abcC 值之和)与 TrueType 整形引擎的分辨率精确。
除非在 psa 参数指示的 SCRIPT_ANALYSIS 结构中设置了 fLogicalOrder 成员,否则所有数组均采用可视顺序。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | usp10.h |
Library | Usp10.lib |
DLL | Usp10.dll |