EnumUILanguagesA 函数 (winnls.h)
枚举操作系统上可用的用户界面语言,并使用列表中的每种语言调用回调函数。
语法
BOOL EnumUILanguagesA(
[in] UILANGUAGE_ENUMPROCA 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
应用程序定义的值。
返回值
如果成功,则返回 TRUE ,否则返回 FALSE 。 若要获取扩展错误信息,应用程序可以调用 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 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | winnls.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |