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
MUI_LANGUAGE_ID
Recupere las cadenas de idioma en formato de identificador de idioma .
MUI_LANGUAGE_NAME
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.

Valor Significado
MUI_MACHINE_LANGUAGE_SETTINGS
Recupere la lista de idiomas de interfaz de usuario preferidos del sistema almacenado, comprobando solo para asegurarse de que cada nombre de idioma corresponde a una configuración regional NLS válida. Si no se establece esta marca, la función recupera los idiomas de interfaz de usuario preferidos del sistema en pwszLanguagesBuffer, siempre y cuando la lista no esté vacía y cumpla los criterios de validación. De lo contrario, la función recupera el idioma de la interfaz de usuario predeterminado del sistema en el búfer de idioma.

[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 se establece la marca MUI_MACHINE_LANGUAGE_SETTINGS y la lista de idiomas de la interfaz de usuario preferida del sistema está vacía, la función recupera una cadena vacía en el búfer de idioma (dos caracteres NULL, porque es un búfer de varias cadenas), 0 para el número de idiomas y 2 para el tamaño del búfer.

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

GetSystemDefaultUILanguage

GetThreadPreferredUILanguages

GetThreadUILanguage

GetUserPreferredUILanguages

Interfaz de usuario multilingüe

Funciones de interfaz de usuario multilingüe

SetThreadPreferredUILanguages