DownlevelVerifyScripts 函数
比较枚举的两个脚本列表。
注意
此函数仅供 Windows Vista 之前的操作系统上运行的应用程序使用。 使用它需要下载包。 仅在 Windows Vista 及更高版本上运行的应用程序应调用 VerifyScripts。
语法
BOOL DownlevelVerifyScripts(
_In_ DWORD dwFlags,
_In_ LPCWSTR lpLocaleScripts,
_In_ int cchLocaleScripts,
_In_ LPCWSTR lpTestScripts,
_In_ int cchTestScripts
);
参数
-
dwFlags [in]
-
指定脚本验证选项的标志。
值 含义 - VS_ALLOW_LATIN
允许测试列表中的“Latn”(拉丁语脚本),即使它不在区域设置列表中也是如此。 -
lpLocaleScripts [in]
-
指向区域设置列表的指针,即给定区域设置的脚本枚举列表。 通常通过调用 DownlevelGetLocaleScripts 填充此列表。
-
cchLocaleScripts [in]
-
lpLocaleScripts 指示的字符串的大小(以字符为单位)。 如果字符串以 null 结尾,则应用程序将此参数设置为 -1。 如果此参数设置为 0,函数将失败。
-
lpTestScripts [in]
-
指向测试列表的指针,这是脚本的第二个枚举列表。 通常通过调用 DownlevelGetStringScript 填充此列表。
-
cchTestScripts [in]
-
lpTestScripts 指示的字符串的大小(以字符为单位)。 如果字符串以 null 结尾,则应用程序将此参数设置为 -1。 如果此参数设置为 0,函数将失败。
返回值
如果测试列表为非空,并且列表中的所有项也包含在区域设置列表中,则返回 TRUE。 否则,该函数返回 FALSE。
FALSE 的返回值可能表示测试列表包含不在区域设置列表中的项,也可能表示出现错误。 为了区分这两种情况,应用程序可以调用 GetLastError。 如果 DownlevelVerifyScripts 已成功确定测试列表中的某个项不在区域设置列表中,GetLastError 将返回 ERROR_SUCCESS。 否则,GetLastError 可能返回以下错误代码之一:
- ERROR_INVALID_FLAGS。 为标志提供的值无效。
- ERROR_INVALID_PARAMETER。 任意参数值无效。
注解
此函数比较字符串(例如“Latn;Cyrl;”)由一系列 4 个字符的脚本名称组成,每个脚本名称后跟分号。 它还有一个特殊情况来应对拉丁语脚本经常用于其并非本机的语言和区域设置的情况。
此函数在缓解与国际化域名 (IDN) 相关的安全问题的策略中非常有用。
下面是此函数返回的示例,以及各种场景中对 GetLastError 的后续调用。 最后两个示例分别说明了测试列表缺少终止分号(字符串格式不正确)和测试列表为空的情况。
“区域设置”字符串 | “测试”字符串 | dwFlags | 返回值 | GetLastError 返回 |
---|---|---|---|---|
Hani;Hira;Kana; | Hani; | 不可用 | TRUE | 不可用 |
Hani;Hira;Kana; | Hani;Latn; | 0 | FALSE | ERROR_SUCCESS |
Hani;Hira;Kana; | Hani;Latn; | VS_ALLOW_LATIN | TRUE | 不可用 |
Hani;Hira;Kana; | Cyrl; | 不可用 | FALSE | ERROR_SUCCESS |
Hani;Hira;Kana; | Cyrl; | 不可用 | FALSE | ERROR_INVALID_PARAMETER |
Hani;Hira;Kana; | 不可用 | FALSE | ERROR_SUCCESS |
所需的头文件和 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 |
|
另请参阅