SetProcessPreferredUILanguages 函数 (winnls.h)
设置应用程序进程的进程首选 UI 语言。 有关详细信息,请参阅 用户界面语言管理。
语法
BOOL SetProcessPreferredUILanguages(
[in] DWORD dwFlags,
[in, optional] PCZZWSTR pwszLanguagesBuffer,
[out, optional] PULONG pulNumLanguages
);
参数
[in] dwFlags
标识要用于进程首选 UI 语言的语言格式的标志。 标志互斥,默认值为MUI_LANGUAGE_NAME。
建议使用 MUI_LANGUAGE_NAME 而不是MUI_LANGUAGE_ID。
值 | 含义 |
---|---|
|
输入参数语言字符串采用 语言标识符 格式。 |
|
输入参数语言字符串采用 语言名称 格式。 |
[in, optional] pwszLanguagesBuffer
指向双 null 终止的多字符串缓冲区的指针,该缓冲区包含按优先顺序降序排列的 null 分隔列表。 如果缓冲区中有超过五种语言,则 函数仅设置前五种有效语言。
或者,如果不需要语言列表,此参数可以包含 NULL 。 在这种情况下,函数会清除进程的首选 UI 语言。
[out, optional] pulNumLanguages
指向输入缓冲区中进程语言列表中已设置的语言数的指针,最多为 5。
返回值
如果成功,则返回 TRUE ,否则返回 FALSE 。 若要获取扩展错误信息,应用程序可以调用 GetLastError,这会返回以下错误代码:
- ERROR_INVALID_PARAMETER。 指定的参数无效。
注解
理想情况下,应用程序会在启动后尽快调用 SetProcessPreferredUILanguages 。
此函数返回后,应用程序可以调用 GetProcessPreferredUILanguages 来验证和检查生成的语言列表。
指定MUI_LANGUAGE_ID时,输入参数语言字符串必须使用十六进制语言
不包含前导 0x 且长度为 4 个字符的标识符。 例如,en-US 应为
传递为“0409”,将 en 传递为“0009”。
注意 建议MUI_LANGUAGE_ID使用MUI_LANGUAGE_NAME。
C# 签名
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean SetProcessPreferredUILanguages(
System.UInt32 dwFlags,
System.String pwszLanguagesBuffer,
ref System.UInt32 pulNumLanguages
);
要求
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | winnls.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |