Retrieves information about the user preferred UI languages. For more information, see User Interface Language Management.
BOOL GetUserPreferredUILanguages( _In_ DWORD dwFlags, _Out_ PULONG pulNumLanguages, _Out_opt_ PZZWSTR pwszLanguagesBuffer, _Inout_ PULONG pcchLanguagesBuffer );
- dwFlags [in]
Flags identifying language format and filtering. The following flags specify the language format to use for the user preferred UI languages list. The flags are mutually exclusive, and the default is MUI_LANGUAGE_NAME.
Retrieve the language strings in language identifier format.
Retrieve the language strings in language name format.
- pulNumLanguages [out]
Pointer to the number of languages retrieved in pwszLanguagesBuffer.
- pwszLanguagesBuffer [out, optional]
Optional. Pointer to a buffer in which this function retrieves an ordered, null-delimited user preferred UI languages list, in the format specified by dwflags. This list ends with two null characters.
Alternatively if this parameter is set to NULL and pcchLanguagesBuffer is set to 0, the function retrieves the required size of the language buffer in pcchLanguagesBuffer. The required size includes the two null characters.
- pcchLanguagesBuffer [in, out]
Pointer to the size, in characters, for the language buffer indicated by pwszLanguagesBuffer. On successful return from the function, the parameter contains the size of the retrieved language buffer.
Alternatively if this parameter is set to 0 and pwszLanguagesBuffer is set to NULL, the function retrieves the required size of the language buffer in pcchLanguagesBuffer.
Returns TRUE if successful or FALSE otherwise. To get extended error information, the application can call GetLastError, which can return one of the following error codes:
- ERROR_INSUFFICIENT_BUFFER. A supplied buffer size was not large enough, or it was incorrectly set to NULL.
If the function fails for any other reason, the values of pulNumLanguages and pcchLanguagesBuffer are undefined.
When MUI_LANGUAGE_ID is specified, the language strings retrieved will be hexadecimal language identifiers that do not include the leading 0x, and will be 4 characters in length. For example, en-US will be returned as "0409" and en as "0009".
The user preferred UI languages cannot include more than one Language Interface Pack (LIP) language that corresponds to a supplemental locale. If the list includes more than one of these languages, and if the application specifies MUI_LANGUAGE_ID in the call to the function, the language buffer contains "1400" for that language. This string corresponds to the hexadecimal value of LOCALE_CUSTOM_UI_DEFAULT.
The language list retrieved by this function has the following characteristics:
- Each language represents a valid NLS locale.
- Each language is installed on the operating system.
- The list contains one entry for each language, with no duplicate entries.
- If the list is empty or does not meet these validation criteria, the system preferred UI languages list is used instead.
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)] static extern System.Boolean GetUserPreferredUILanguages( System.UInt32 dwFlags, ref System.UInt32 pulNumLanguages, System.IntPtr pwszLanguagesBuffer, ref System.UInt32 pcchLanguagesBuffer );
Windows Phone 8: This API is supported.
Windows Phone 8.1: This API is supported.
Minimum supported client
|Windows Vista [desktop apps only]|
Minimum supported server
|Windows Server 2008 [desktop apps only]|
- Multilingual User Interface
- Multilingual User Interface Functions