ScriptGetCMap 函数 (usp10.h)
根据 TrueType cmap 表或为旧样式字体实现的标准 cmap 表检索字符串中 Unicode 字符的字形索引。
语法
HRESULT ScriptGetCMap(
[in] HDC hdc,
[in, out] SCRIPT_CACHE *psc,
[in] const WCHAR *pwcInChars,
[in] int cChars,
[in] DWORD dwFlags,
[out] WORD *pwOutGlyphs
);
参数
[in] hdc
可选。 设备上下文的句柄。 有关详细信息,请参阅 缓存。
[in, out] psc
指向标识脚本缓存 的SCRIPT_CACHE 结构的指针。
[in] pwcInChars
指向 Unicode 字符字符串的指针。
[in] cChars
pwcInChars 指示的字符串中的 Unicode 字符数。
[in] dwFlags
指定标志符号的任何特殊处理标志。 默认情况下,标志符号按逻辑顺序提供,无需特殊处理。 此参数可以具有以下值。
值 | 含义 |
---|---|
|
由 pwOutGlyphs 指示的字形数组应包含那些具有镜像等效字形的镜像字形。 |
[out] pwOutGlyphs
指向缓冲区的指针,函数在其中检索字形索引数组。 此缓冲区的长度应与 pwcInChars 指示的输入缓冲区的长度相同。 每个代码点映射到单个字形。
返回值
如果字体中存在所有 Unicode 码位,则返回S_OK。 如果函数不成功,则返回下面列出的非零 HRESULT 值之一。
返回值 | 含义 |
---|---|
E_HANDLE | 字体或操作系统不支持字形索引。 |
S_FALSE | 某些 Unicode 码位已映射到默认字形。 |
注解
有关通常调用此函数的上下文的讨论,请参阅 使用 Uniscribe 显示文本 。
此函数可用于确定运行中所选字体支持的字符。 应用程序可以扫描检索到的字形缓冲区,查找默认字形以确定不可用的字符。 应用程序应通过调用 ScriptGetFontProperties 来确定所选字体的默认字形索引。
此函数的返回值指示是否存在任何缺失的字形。
注意 函数假定输入和输出数组中的元素之间存在 1:1 关系。 但是, 函数不支持 UTF-16 代理项对的此关系。 对于代理项对,函数不会检索补充平面字符的字形索引。 同样,函数不支持 Unicode Variation-Selector (VS) 序列,每个序列由 Unicode 图形字符组成,后跟一组变体 SELECTOR 字符,用于为该图形字符选择特定的字形表示形式。 对于 VS 序列,函数检索由 cmap 为两个字符映射的默认字形索引,而不是为 VS 序列检索特定字形的字形索引。
重要从Windows 8开始:若要保持在 Windows 7 上运行的功能,使用 Uniscribe 的模块必须在其库列表中指定 gdi32.lib 之前的 Usp10.lib。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | usp10.h |
Library | Usp10.lib |
DLL | Usp10.dll |
可再发行组件 | Windows Me/98/95 上的 Internet Explorer 5 或更高版本 |