Función GetThreadPreferredUILanguages (winnls.h)

Recupera los idiomas de interfaz de usuario preferidos para el subproceso actual. Para obtener más información, consulte User Interface Language Management.

Sintaxis

BOOL GetThreadPreferredUILanguages(
  [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 de idioma que se va a usar para los idiomas preferidos de la interfaz de usuario del subproceso. 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 .
 

Las marcas siguientes especifican el filtrado de la función que se va a usar para recuperar los lenguajes de interfaz de usuario preferidos del subproceso. La marca predeterminada es MUI_MERGE_USER_FALLBACK.

Valor Significado
MUI_MERGE_SYSTEM_FALLBACK
Use la reserva del sistema para recuperar una lista que se corresponda exactamente con la lista de idioma utilizada por el cargador de recursos. Esta marca solo se puede usar en combinación con MUI_MERGE_USER_FALLBACK. El uso de las marcas en combinación modifica el efecto habitual de MUI_MERGE_USER_FALLBACK mediante la inclusión de idiomas de reserva y neutros en la lista.
MUI_MERGE_USER_FALLBACK
Recupere una lista compuesta que consta de los idiomas de interfaz de usuario preferidos del subproceso, seguido de los idiomas de interfaz de usuario preferidos por el proceso, seguidos de los idiomas de interfaz de usuario preferidos por el usuario, seguidos del idioma predeterminado de la interfaz de usuario del sistema, si aún no está en la lista. Si la lista de idiomas preferidos por el usuario está vacía, la función recupera los idiomas de interfaz de usuario preferidos por el sistema. Esta marca no se puede combinar con MUI_THREAD_LANGUAGES.
MUI_THREAD_LANGUAGES
Recupere solo los idiomas de interfaz de usuario preferidos para el subproceso actual o una lista vacía si no se establecen idiomas preferidos para el subproceso actual. Esta marca no se puede combinar con MUI_MERGE_USER_FALLBACK o MUI_MERGE_SYSTEM_FALLBACK.
MUI_UI_FALLBACK
Recupere una lista completa de idiomas de interfaz de usuario preferidos por subprocesos junto con idiomas neutros y de reserva asociados. El uso de esta marca equivale a combinar MUI_MERGE_SYSTEM_FALLBACK y MUI_MERGE_USER_FALLBACK. (Aplicable solo para Windows 7 y versiones posteriores).

[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 de idiomas de interfaz de usuario preferidos por subprocesos ordenados y delimitados 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 se establece 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 de lo contrario. Para obtener información de error extendida, la aplicación puede llamar a GetLastError, que devuelve 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

Dependiendo de las marcas especificadas por la aplicación, esta función puede recuperar una lista compuesta que consta de los lenguajes de interfaz de usuario preferidos por el subproceso, procesar los idiomas de interfaz de usuario preferidos por el usuario, los idiomas de interfaz de usuario preferidos por el usuario o los idiomas de interfaz de usuario preferidos por el sistema y el idioma predeterminado de la interfaz de usuario del sistema. Si encuentra un lenguaje duplicado, la función solo recupera el primer idioma.

Si la aplicación ha llamado a SetThreadPreferredUILanguages con la marca MUI_CONSOLE_FILTER o MUI_COMPLEX_SCRIPT_FILTER, GetThreadPreferredUILanguages filtra los idiomas de la lista de resultados. La función reemplaza los idiomas que la consola no puede mostrar por un idioma sustituto. La sustitución de un idioma se determina a partir del valor de LOCALE_SCONSOLEFALLBACKNAME para el idioma. Para obtener más información sobre la consola, consulte la descripción de SetThreadUILanguage.

Se recomienda usar MUI_LANGUAGE_NAME en MUI_LANGUAGE_ID porque la marca de MUI_LANGUAGE_NAME puede hacer un mejor trabajo de controlar los idiomas del paquete de interfaz de idioma (LIP) que corresponden a configuraciones regionales complementarias.

Cuando se especifica MUI_LANGUAGE_ID, las cadenas de idioma recuperadas serán identificadores de idioma hexadecimales.

que no incluyen el 0x inicial y tendrán 4 caracteres de longitud. Por ejemplo, se devolverá en-US.

como "0409" y en como "0009".

Si la aplicación establece la marca de MUI_LANGUAGE_ID, los idiomas de interfaz de usuario preferidos del subproceso pueden incluir uno o varios idiomas que corresponden a configuraciones regionales complementarias. Si la función se devuelve correctamente, el búfer de idioma contiene "1400" para cualquier idioma correspondiente a una configuración regional complementaria. Solo puede haber un idioma de este tipo en esta lista. La cadena "1400" corresponde al valor hexadecimal de LOCALE_CUSTOM_UI_DEFAULT. Además, si la función se devuelve correctamente, pwszLanguagesBuffer contiene "1000" para cualquier otro lenguaje que corresponda a una configuración regional complementaria. La cadena "1000" corresponde al valor hexadecimal de LOCALE_CUSTOM_UNSPECIFIED, que no es útil como entrada para ninguna función, ya que no puede distinguir entre configuraciones regionales complementarias.

Firma de C#

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.Boolean GetThreadPreferredUILanguages(
            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 (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

GetThreadUILanguage

Interfaz de usuario multilingüe

Funciones de interfaz de usuario multilingüe

SetThreadPreferredUILanguages

SetThreadUILanguage