DownlevelGetLocaleScripts 函数
提供指定区域设置的脚本列表。
注意
此函数仅供 Windows Vista 之前的操作系统上运行的应用程序使用。 其使用需要下载程序包。 仅在 Windows Vista 及更高版本上运行的应用程序应调用 LCType 设置为 LOCALE_SSCRIPTS 的 GetLocaleInfo。
语法
int DownlevelGetLocaleScripts(
_In_ LPCWSTR lpLocaleName,
_Out_ LPWSTR lpScripts,
_In_ int cchScripts
);
参数
-
lpLocaleName [in]
-
指向以 null 结尾的区域设置名称的指针。
-
lpScripts [out]
-
指向缓冲区的指针,此函数使用 ISO 15924 中使用的 4 字符表示法检索表示脚本列表的以 null 结尾的字符串。 每个脚本名称由四个拉丁字符组成,名称按字母顺序检索。 其中每一个(包括最后一个)都后跟一个分号。
或者,如果 cchScripts 设置为 0,则此参数可以包含 NULL。 在这种情况下,该函数返回脚本缓冲区所需的大小。
-
cchScripts [in]
-
lpScripts 指示的脚本缓冲区的大小(以字符为单位)。
或者,应用程序可以将此参数设置为 0。 在这种情况下,该函数在 lpScripts 中检索 NULL,并返回脚本缓冲区所需的大小。
返回值
返回脚本缓冲区中检索的字符数,包括终止 null 字符。 如果函数成功且 cchScripts 的值为 0,则返回值是脚本缓冲区的终止 null 字符(包括终止 null 字符)所需的大小。
如果此函数不成功,则返回 0。 若要获取扩展错误信息,可以让应用程序调用 GetLastError,它可能会返回以下错误代码之一:
- ERROR_BADDB。 函数无法访问数据。 这种情况一般不会发生,通常表示安装错误、磁盘问题或类似情况。
- ERROR_INSUFFICIENT_BUFFER。 提供的缓冲区大小不够大,或者错误地设置为 NULL。
- ERROR_INVALID_PARAMETER。 任何参数值无效。
备注
此函数在缓解与国际化域名 (IDN) 相关的安全问题的策略中非常有用。
下面是此函数的输入和输出的一些示例,假设有缓冲区大小合适:
区域设置 | lpLocaleName | lpScripts |
---|---|---|
英语(美国) | en-US | Latn; |
印地语(印度) | hi-IN | Deva; |
日语(日本) | ja-JP | Hani;Hira;Kana; |
列表不含拉丁语脚本,除非是用于区域设置的写入系统的重要组成部分。 但拉丁字符通常用于非本地语言环境,如外国企业名称。 在上述印度印地语示例中,检索的唯一脚本是“Deva”(对于 Devanagari),尽管拉丁字符也可以出现在印地语文字中。 DownlevelVerifyScripts 函数有一个特殊标志来处理这种情况。
所需的标题文件和 DLL 是可从 archive.org 下载的“Microsoft 国际化域名 (IDN) 缓解 API”的一部分。
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows XP [仅限桌面应用] |
最低受支持的服务器 |
Windows Server 2003 [仅限桌面应用] |
可再发行组件 |
Windows XP(SP2 或更高版本)、Windows Server 2003(SP1 或更高版本)或 Windows Vista 上的 Microsoft 国际化域名 (IDN) 缓解 API |
Header |
|
DLL |
|
另请参阅