Función GetUILanguageInfo (winnls.h)
Recupera una variedad de información sobre un idioma de interfaz de usuario instalado:
- ¿Está instalado el idioma?
- ¿El usuario actual tiene licencia para usar el idioma?
- ¿El idioma está totalmente localizado? ¿Localizado parcialmente? ¿Parte de un paquete de instalación de idioma (LIP)?
- Si se localiza parcialmente o forma parte de un LIP:
- ¿Cuál es su idioma de reserva?
- Si ese idioma de reserva es un idioma parcialmente localizado, ¿cuál es su base?
- ¿Cuál es el idioma de reserva predeterminado?
Sintaxis
BOOL GetUILanguageInfo(
[in] DWORD dwFlags,
[in] PCZZWSTR pwmszLanguage,
[out, optional] PZZWSTR pwszFallbackLanguages,
[in, out, optional] PDWORD pcchFallbackLanguages,
[out] PDWORD pAttributes
);
Parámetros
[in] dwFlags
Marcas que definen el formato del idioma especificado. 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 . |
[in] pwmszLanguage
Puntero a los idiomas para los que la función va a recuperar información. Este parámetro indica una lista ordenada delimitada por valores NULL de identificadores de idioma o nombres de idioma, según la configuración de la marca. Para obtener información sobre el uso de este parámetro, vea la sección Comentarios.
[out, optional] pwszFallbackLanguages
Puntero a un búfer en el que esta función recupera una lista ordenada delimitada por null de idiomas de reserva, con el formato definido por la configuración de 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, optional] pcchFallbackLanguages
Puntero al tamaño, en caracteres, para el búfer de idioma indicado por pwszFallbackLanguages. 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.
[out] pAttributes
Puntero a marcas que indican los atributos de la lista de idiomas de entrada. La función siempre recupera la marca que caracteriza al último idioma enumerado.
Valor | Significado |
---|---|
|
El idioma está totalmente localizado. |
|
El idioma se localiza parcialmente. |
|
El idioma es un idioma LIP. |
Además, pdwAttributes incluye una o ambas marcas, según corresponda.
Valor | Significado |
---|---|
|
El idioma está instalado en este equipo. |
|
El idioma tiene la licencia adecuada para el usuario actual. |
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 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.
- ERROR_INVALID_PARAMETER. Cualquiera de los valores de parámetro no era válido. Para obtener más información, vea la sección Comentarios.
- ERROR_OBJECT_NAME_NOT_FOUND. No se encontró el nombre de objeto especificado o no era válido o el primer idioma de la lista de entrada no es un idioma instalado. Para obtener más información, vea la sección Comentarios.
Comentarios
MUI_LANGUAGE_NAME se recomienda en MUI_LANGUAGE_ID porque permite a la función realizar un mejor trabajo de control de los lenguajes LIP que no corresponden a configuraciones regionales predefinidas, sino que se corresponden con una configuración regional complementaria. Los lenguajes LIP que corresponden a configuraciones regionales predefinidas se controlan igual que los lenguajes que no son LIP.
Si se especifica la marca MUI_LANGUAGE_ID, las cadenas de idioma proporcionadas deben
use identificadores de idioma hexadecimales que no incluyan el 0x inicial y que tienen una longitud de 4 caracteres.
Por ejemplo, en-US debe pasarse como "0409" y en como "0009". Las cadenas de idioma devueltas estarán en
mismo formato.
Cuando se especifica MUI_LANGUAGE_ID y si hay un idioma de este tipo en la lista de idiomas preferidos de la interfaz de usuario del usuario, solo puede haber uno de estos idiomas en la lista. Ese idioma se puede especificar en pwmszLanguage como "1400", que corresponde al valor hexadecimal de LOCALE_CUSTOM_UI_DEFAULT. No se puede especificar ningún otro lenguaje de este tipo mediante MUI_LANGUAGE_ID. El uso de "1000", que corresponde al valor hexadecimal de LOCALE_CUSTOM_UNSPECIFIED, en la cadena indicada por pwmszLanguage dará como resultado un código ERROR_INVALID_PARAMETER.
Un idioma localizado parcialmente puede tener un idioma de reserva localizado parcialmente, lo que requiere llamadas repetidas a GetUILanguageInfo para obtener información completa. Considere el caso de un idioma parcialmente localizado Lang1 que ofrece una opción de tres idiomas de reserva. El idioma de reserva Lang3 se localiza parcialmente y ofrece una opción de dos idiomas de reserva. Las dependencias son las siguientes, con la reserva predeterminada que se muestra primero:
- Lang1
- Lang2
- Lang3
- Lang5
- Lang6
- Lang4
Para obtener los idiomas de reserva de Lang3 en relación con Lang1, la aplicación pasa pwmszLanguage como "lang1\0\lang3\0\0\0". Al volver de la función, pwszFallbackLanguages se establece en "Lang5\0Lang6\0\0".
Esta función devuelve ERROR_INVALID_PARAMETER para cualquiera de las siguientes opciones:
- pwmszLanguage es NULL o está vacío.
- Se establecen MUI_LANGUAGE_ID y MUI_LANGUAGE_NAME.
- Se establecen marcas que no sean MUI_LANGUAGE_ID o MUI_LANGUAGE_NAME.
- pcchFallbackLanguages es mayor que 0, pero pwszFallbackLanguages es NULL.
- pwmszLanguage no se puede analizar como un búfer de varias cadenas de identificadores de idioma o nombres de idioma, según la configuración de la marca.
Firma de C#
[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
static extern System.Boolean GetUILanguageInfo(
System.UInt32 dwFlags,
System.String pwmszLanguage,
System.IntPtr pwszFallbackLanguages,
ref System.UInt32 pcchFallbackLanguages,
ref System.UInt32 pdwAttributes
);
Requisitos
Requisito | Value |
---|---|
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 |