GetProcessPreferredUILanguages 函数 (winnls.h)
检索进程首选 UI 语言。 有关详细信息,请参阅 用户界面语言管理。
语法
BOOL GetProcessPreferredUILanguages(
[in] DWORD dwFlags,
[out] PULONG pulNumLanguages,
[out, optional] PZZWSTR pwszLanguagesBuffer,
[in, out] PULONG pcchLanguagesBuffer
);
参数
[in] dwFlags
标识要用于进程首选 UI 语言的语言格式的标志。 标志互斥,默认值为MUI_LANGUAGE_NAME。
值 | 含义 |
---|---|
|
检索语言 标识符格式的语言 字符串。 |
|
检索语言 名称格式的语言 字符串。 |
[out] pulNumLanguages
指向 在 pwszLanguagesBuffer 中检索的语言数量的指针。
[out, optional] pwszLanguagesBuffer
可选。 指向双 null 终止的多字符串缓冲区的指针,函数在此缓冲区中按优先顺序(从最可取的顺序开始)检索有序的 null 分隔列表。
或者,如果此参数设置为 NULL 并且 pcchLanguagesBuffer 设置为 0,则该函数在 pcchLanguagesBuffer 中检索语言缓冲区的所需大小。 所需的大小包括两个 null 字符。
[in, out] pcchLanguagesBuffer
指向 pwszLanguagesBuffer 指示的语言缓冲区的大小(以字符为单位)的指针。 从 函数成功返回后,参数包含检索到的语言缓冲区的大小。
或者,如果此参数设置为 0 并且 pwszLanguagesBuffer 设置为 NULL,则该函数在 pcchLanguagesBuffer 中检索语言缓冲区的所需大小。
返回值
如果成功,则返回 TRUE ,否则返回 FALSE 。 若要获取扩展错误信息,应用程序可以调用 GetLastError,这会返回以下错误代码之一:
- ERROR_INSUFFICIENT_BUFFER。 提供的缓冲区大小不够大,或者错误地设置为 NULL。
- ERROR_INVALID_PARAMETER。 任何参数值都无效。
注解
根据应用程序指定的标志,此函数可以检索由进程首选 UI 语言组成的列表。 如果遇到重复语言,函数仅检索重复语言的第一个实例。
指定MUI_LANGUAGE_ID时,检索到的语言字符串将是十六进制语言标识符
不包括前导 0x,长度为 4 个字符。 例如,将返回 en-US
为“0409”,en 为“0009”。
C# 签名
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetProcessPreferredUILanguages(
System.UInt32 dwFlags,
ref System.UInt32 pulNumLanguages,
System.IntPtr pwszLanguagesBuffer,
ref System.UInt32 pcchLanguagesBuffer
);
要求
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | winnls.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |