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 |
---|---|
|
Recupere las cadenas de idioma en formato de identificador de idioma . |
|
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.
[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
Interfaz de usuario multilingüe