EnumUILanguagesW 函数 (winnls.h)
枚举操作系统上可用的用户界面语言,并使用列表中的每种语言调用回调函数。
语法
BOOL EnumUILanguagesW(
[in] UILANGUAGE_ENUMPROCW lpUILanguageEnumProc,
[in] DWORD dwFlags,
[in] LONG_PTR lParam
);
参数
[in] lpUILanguageEnumProc
指向应用程序定义的 EnumUILanguagesProc 回调函数的指针。 EnumUILanguages 重复调用此函数以枚举列表中的语言。
[in] dwFlags
标识语言格式和筛选的标志。 以下标志指定要传递给回调函数的语言的格式。 格式标志互斥,MUI_LANGUAGE_ID为默认值。
价值 | 意义 |
---|---|
|
将语言字符串中的 语言标识符 传递给回调函数。 |
|
将语言字符串中的 语言名称 传递给回调函数。 |
以下标志指定用于枚举语言的函数的筛选。 筛选标志互斥,默认值为MUI_LICENSED_LANGUAGES。
价值 | 意义 |
---|---|
|
枚举操作系统可用的所有已安装语言。 |
|
枚举所有可用和许可使用的语言。 |
|
枚举所有可用和许可的已安装语言,以及允许的语言 组策略。 |
Windows Vista 及更高版本: 应用程序可以将 dwFlags 设置为 0,或设置为一个或多个指定的标志。 设置为 0 会导致参数值默认为 MUI_LANGUAGE_ID |MUI_LICENSED_LANGUAGES。
Windows 2000、Windows XP、Windows Server 2003: 应用程序必须将 dwFlags 设置为 0。
[in] lParam
应用程序定义的值。
返回值
如果成功或 FALSE,则返回 TRUE。 若要获取扩展的错误信息,应用程序可以调用 GetLastError,这会返回以下错误代码之一:
- ERROR_INVALID_FLAGS。 为标志提供的值无效。
- ERROR_INVALID_PARAMETER。 任何参数值都无效。
言论
此函数枚举可用的用户界面语言,并根据指定的标志,授权在操作系统上使用。 它将语言标识符或语言名称一次传递到 EnumUILanguagesProc 回调函数。 EnumUILanguages 函数继续将语言标识符或名称传递给回调函数,直到找到最后一种语言或回调函数返回 FALSE。
对于仅在 Windows Vista 及更高版本上运行的应用程序,建议MUI_LANGUAGE_NAME MUI_LANGUAGE_ID。 MUI_LANGUAGE_NAME允许区分与 补充区域设置关联的语言。
如果在对此函数的调用中指定了MUI_LANGUAGE_ID标志,则传递给回调的字符串
函数将是不包含前导 0x 且为 4 的十六进制语言标识符
长度为字符。 例如,en-US 将作为“0409”传递,en 作为“0009”。 值“1000”将传递给与补充区域设置关联的任何语言的回调函数。 此值对应于 LOCALE_CUSTOM_UNSPECIFIED的十六进制值。 它不区分补充区域设置,即使所选语言位于用户首选 UI 语言列表或系统首选 UI 语言列表中。
C# 签名
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean EnumUILanguages(
EnumUILanguagesProc lpUILanguageEnumProc,
System.UInt32 dwFlags,
System.IntPtr lParam
);
注意
winnls.h 标头将 EnumUILanguages 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [桌面应用 |UWP 应用] |
支持的最低服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | 窗户 |
标头 | winnls.h (包括 Windows.h) |
库 | Kernel32.lib |
DLL | Kernel32.dll |