scriptLayout 函数 (usp10.h)
将运行 嵌入级别的 数组转换为视觉到逻辑位置和/或逻辑到视觉位置的映射。
语法
HRESULT ScriptLayout(
[in] int cRuns,
[in] const BYTE *pbLevel,
[out, optional] int *piVisualToLogical,
[out, optional] int *piLogicalToVisual
);
参数
[in] cRuns
要处理的运行数。
[in] pbLevel
指向数组的指针,长度由 cRuns 指示,包含运行嵌入级别。 必须包括行上所有运行的嵌入级别,并按逻辑顺序排序。 有关详细信息,请参见“备注”部分。
[out, optional] piVisualToLogical
指向一个数组的指针,该数组长度由 cRuns 指示,在此数组中,此函数检索按可视顺序重新排序的运行嵌入级别。 第一个数组元素表示要在最左侧显示的运行,后续条目应从左到右显示进度。 如果没有输出,则函数将此参数设置为 NULL 。
[out, optional] piLogicalToVisual
指向数组的指针,该数组长度由 cRuns 指示,此函数在其中检索可视运行位置。 第一个数组元素是应显示第一个逻辑运行的相对可视位置,最左侧的显示位置为 0。 如果没有输出,则函数将此参数设置为 NULL 。
返回值
如果成功,则返回 0。 如果函数不成功,则返回非零 HRESULT 值。 应用程序可以使用 SUCCEEDED 和 FAILED 宏测试返回值。
注解
有关通常调用此函数的上下文的讨论,请参阅 使用 Uniscribe 显示文本 。
此函数仅处理与单行文本相关的数据。
运行嵌入级别在 Unicode 双向算法中定义。 它们描述运行的方向、嵌入它的任何运行的方向以及段落的方向。 调用此函数不需要其他输入。 有关详细信息,请参阅 Unicode。
下表列出了预定义的嵌入级别。 应用程序可以根据需要添加级别。
级别 | 含义 |
---|---|
0 | 在从左到右的段落中从左到右运行。 |
1 | 在从左到右段落中嵌入的从左到右运行。 或者,在从右到左的段落中,从右到左运行,而不是嵌入在另一个运行中。 |
2 | 嵌入在类型 1 的从右到左运行中的从左到右运行。 |
3 | 嵌入在类型 2 的从左到右运行中的从右到左运行。 |
“逻辑位置”是指运行相对于其他运行的位置。 它是后备存储中的位置,对应于用户大声朗读文本的顺序。 运行的“视觉位置”是指运行在行上直观显示的方式,同时考虑到运行可以具有的可能方向。
应用程序可以调用此函数设置 piLogicalToVisual 或 piVisualToLogical,也可以调用这两者。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | usp10.h |
Library | Usp10.lib |
DLL | Usp10.dll |
可再发行组件 | Windows Me/98/95 上的 Internet Explorer 5 或更高版本 |