Función GetSystemPreferredUILanguages (winnls.h)
Recupera los idiomas de la interfaz de usuario preferidos por el sistema. Para obtener más información, consulte Administración de lenguajes de la interfaz de usuario.
Sintaxis
BOOL GetSystemPreferredUILanguages(
[in] DWORD dwFlags,
[out] PULONG pulNumLanguages,
[out, optional] PZZWSTR pwszLanguagesBuffer,
[in, out] PULONG pcchLanguagesBuffer
);
Parámetros
[in] dwFlags
Marcas que identifican el formato de idioma y el filtrado. Las marcas siguientes especifican el formato que se va a usar para los idiomas de la interfaz de usuario preferidos del sistema. Las marcas son mutuamente excluyentes y el valor predeterminado es MUI_LANGUAGE_NAME.
Valor | Significado |
---|---|
|
Recupere las cadenas de idioma en formato de identificador de idioma . |
|
Recupere las cadenas de idioma en formato de nombre de idioma . |
La marca siguiente especifica si la función es validar la lista de idiomas (valor predeterminado) o recuperar la lista de idiomas de interfaz de usuario preferidos del sistema exactamente como se almacena en el registro.
[out] pulNumLanguages
Puntero al número de idiomas recuperados en pwszLanguagesBuffer.
[out, optional] pwszLanguagesBuffer
Opcional. Puntero a un búfer en el que esta función recupera una lista ordenada de idiomas de interfaz de usuario preferidos del sistema delimitado por null, en el formato especificado por dwFlags. Esta lista termina con dos caracteres NULL.
Como alternativa, si este parámetro se establece en NULL y pcchLanguagesBuffer está establecido en 0, la función recupera el tamaño necesario del búfer de idioma en pcchLanguagesBuffer. El tamaño necesario incluye los dos caracteres NULL.
[in, out] pcchLanguagesBuffer
Puntero al tamaño, en caracteres, para el búfer de idioma indicado por pwszLanguagesBuffer. Si la función se devuelve correctamente, el parámetro contiene el tamaño del búfer de idioma recuperado.
Como alternativa, si este parámetro se establece en 0 y pwszLanguagesBuffer se establece en NULL, la función recupera el tamaño necesario del búfer de idioma en pcchLanguagesBuffer.
Valor devuelto
Devuelve TRUE si es correcto o FALSE en caso contrario. Para obtener información de error extendida, la aplicación puede llamar a GetLastError, que puede devolver uno de los siguientes códigos de error:
- ERROR_INSUFFICIENT_BUFFER. Un tamaño de búfer proporcionado no era lo suficientemente grande o se estableció incorrectamente en NULL.
Si se produce un error en la función por cualquier otro motivo, los parámetros pulNumLanguages y pcchLanguagesBuffer no están definidos.
Comentarios
Cuando se especifica MUI_LANGUAGE_ID, las cadenas de idioma recuperadas serán identificadores de idioma hexadecimales.
que no incluyan el 0x inicial y tendrán 4 caracteres de longitud. Por ejemplo, se devolverá en-US.
como "0409" y en como "0009".
Los idiomas de interfaz de usuario preferidos por el sistema no pueden incluir más de un idioma del paquete de interfaz de idioma (LIP) que corresponda a una configuración regional complementaria. Si la lista incluye más de uno de estos idiomas y si la aplicación especifica MUI_LANGUAGE_ID en la llamada a la función, el búfer de idioma contiene "1400" para ese idioma. Esta cadena corresponde al valor hexadecimal de LOCALE_CUSTOM_UI_DEFAULT.
Si se establece la marca MUI_MACHINE_LANGUAGE_SETTINGS, esta función comprueba cada idioma de la lista que representa una configuración regional NLS válida. La lista recuperada puede contener los siguientes elementos:
- Idiomas no instalados en el sistema
- Entradas de idioma duplicadas
- Una cadena vacía
Si no se establece la marca de MUI_MACHINE_LANGUAGE_SETTINGS, la lista de idiomas recuperado tiene las siguientes características:
- Cada idioma representa una configuración regional NLS válida.
- Cada idioma se instala en el sistema operativo.
- La lista contiene una entrada para cada idioma, sin entradas duplicadas.
Firma de C#
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetSystemPreferredUILanguages(
System.UInt32 dwFlags,
ref System.UInt32 pulNumLanguages,
System.IntPtr pwszLanguagesBuffer,
ref System.UInt32 pcchLanguagesBuffer
);
Requisitos
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | winnls.h (incluye Windows.h) |
Library | Kernel32.lib |
Archivo DLL | Kernel32.dll |
Vea también
Interfaz de usuario multilingüe