GetUILanguageInfo, fonction (winnls.h)
Récupère diverses informations sur une langue d’interface utilisateur installée :
- La langue est-elle installée ?
- L’utilisateur actuel est-il autorisé à utiliser la langue ?
- La langue est-elle entièrement localisée ? Partiellement localisé ? Partie d’un pack d’installation linguistique (LIP) ?
- S’il est partiellement localisé ou fait partie d’un LIP :
- Quel est son langage de secours ?
- Si cette langue de secours est une langue partiellement localisée, quelle est sa base ?
- Quelle est la langue de secours par défaut ?
Syntaxe
BOOL GetUILanguageInfo(
[in] DWORD dwFlags,
[in] PCZZWSTR pwmszLanguage,
[out, optional] PZZWSTR pwszFallbackLanguages,
[in, out, optional] PDWORD pcchFallbackLanguages,
[out] PDWORD pAttributes
);
Paramètres
[in] dwFlags
Indicateurs définissant le format de la langue spécifiée. Les indicateurs s’excluent mutuellement et la valeur par défaut est MUI_LANGUAGE_NAME.
Valeur | Signification |
---|---|
|
Récupérez les chaînes de langue au format d’identificateur de langue . |
|
Récupérez les chaînes de langue au format de nom de langue . |
[in] pwmszLanguage
Pointeur vers les langues pour lesquelles la fonction doit récupérer des informations. Ce paramètre indique une liste ordonnée et délimitée par des valeurs Null d’identificateurs de langue ou de noms de langue, en fonction du paramètre d’indicateur. Pour plus d’informations sur l’utilisation de ce paramètre, consultez la section Remarques.
[out, optional] pwszFallbackLanguages
Pointeur vers une mémoire tampon dans laquelle cette fonction récupère une liste ordonnée et délimitée par des valeurs Null de langues de secours, mise en forme comme défini par le paramètre dwFlags. Cette liste se termine par deux caractères Null.
Si ce paramètre est défini sur NULL et que pcchLanguagesBuffer a la valeur 0, la fonction récupère la taille requise de la mémoire tampon de langue dans pcchLanguagesBuffer. La taille requise inclut les deux caractères Null.
[in, out, optional] pcchFallbackLanguages
Pointeur vers la taille, en caractères, de la mémoire tampon de langue indiquée par pwszFallbackLanguages. En cas de retour réussi de la fonction, le paramètre contient la taille de la mémoire tampon de langue récupérée.
Si ce paramètre est défini sur 0 et que pwszLanguagesBuffer a la valeur NULL, la fonction récupère la taille requise de la mémoire tampon de langue dans pcchLanguagesBuffer.
[out] pAttributes
Pointeur vers des indicateurs indiquant les attributs de la liste des langues d’entrée. La fonction récupère toujours l’indicateur qui caractérise la dernière langue répertoriée.
Valeur | Signification |
---|---|
|
La langue est entièrement localisée. |
|
La langue est partiellement localisée. |
|
La langue est une langue LIP. |
En outre, pdwAttributes inclut l’un des indicateurs suivants, ou les deux, selon le cas.
Valeur | Signification |
---|---|
|
La langue est installée sur cet ordinateur. |
|
La langue est concédée sous licence pour l’utilisateur actuel. |
Valeur retournée
Retourne TRUE en cas de réussite ou FALSE dans le cas contraire. Pour obtenir des informations d’erreur étendues, l’application peut appeler GetLastError, qui peut retourner les codes d’erreur suivants :
- ERROR_INSUFFICIENT_BUFFER. Une taille de mémoire tampon fournie n’était pas suffisamment grande ou a été incorrectement définie sur NULL.
- ERROR_INVALID_PARAMETER. L’une des valeurs de paramètre n’était pas valide. Pour plus d'informations, consultez la section Notes.
- ERROR_OBJECT_NAME_NOT_FOUND. Le nom de l’objet spécifié est introuvable ou n’est pas valide, ou la première langue de la liste d’entrée n’est pas une langue installée. Pour plus d'informations, consultez la section Notes.
Remarques
MUI_LANGUAGE_NAME est recommandé sur MUI_LANGUAGE_ID, car elle permet à la fonction de mieux gérer les langues LIP qui ne correspondent pas à des paramètres régionaux prédéfinis, mais correspondent plutôt à des paramètres régionaux supplémentaires. Les langues LIP qui correspondent à des paramètres régionaux prédéfinis sont gérées comme les langues non LIP.
Si l’indicateur MUI_LANGUAGE_ID est spécifié, les chaînes de langue fournies doivent
utilisent des identificateurs de langue hexadécimale qui n’incluent pas le 0x de début et qui sont de 4 caractères.
Par exemple, en-US doit être passé comme « 0409 » et en comme « 0009 ». Les chaînes de langue retournées se trouveront dans le
même format.
Lorsque MUI_LANGUAGE_ID est spécifié, et s’il existe une telle langue dans la liste des langues d’interface utilisateur préférées de l’utilisateur, il ne peut y avoir qu’une seule langue de ce type dans la liste. Cette langue peut être spécifiée dans pwmszLanguage sous la forme « 1400 », ce qui correspond à la valeur hexadécimale de LOCALE_CUSTOM_UI_DEFAULT. Aucune autre langue de ce type ne peut être spécifiée à l’aide de MUI_LANGUAGE_ID. L’utilisation de « 1000 », qui correspond à la valeur hexadécimale de LOCALE_CUSTOM_UNSPECIFIED, dans la chaîne indiquée par pwmszLanguage génère un code ERROR_INVALID_PARAMETER.
Une langue partiellement localisée peut avoir une langue de secours partiellement localisée, nécessitant des appels répétés à GetUILanguageInfo pour obtenir des informations complètes. Prenons le cas d’une langue partiellement localisée Lang1 qui offre un choix de trois langues de secours. La langue de secours Lang3 est partiellement localisée et offre un choix de deux langues de secours. Les dépendances sont les suivantes, avec le secours par défaut répertorié en premier :
- Lang1
- Lang2
- Lang3
- Lang5
- Lang6
- Lang4
Pour obtenir la ou les langues de secours de Lang3 par rapport à Lang1, l’application transmet pwmszLanguage comme « lang1\0\lang3\0\0\0 ». Au retour de la fonction, pwszFallbackLanguages est défini sur « Lang5\0Lang6\0\0 ».
Cette fonction retourne ERROR_INVALID_PARAMETER pour l’un des éléments suivants :
- pwmszLanguage a la valeur NULL ou vide.
- Les MUI_LANGUAGE_ID et les MUI_LANGUAGE_NAME sont définis.
- Tous les indicateurs autres que MUI_LANGUAGE_ID ou MUI_LANGUAGE_NAME sont définis.
- pcchFallbackLanguages est supérieur à 0, mais pwszFallbackLanguages a la valeur NULL.
- pwmszLanguage ne peut pas être analysé en tant que mémoire tampon à chaînes multiples d’identificateurs de langue ou de noms de langue, en fonction du paramètre d’indicateur.
C# Signature
[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
);
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | winnls.h (inclure Windows.h) |
Bibliothèque | Kernel32.lib |
DLL | Kernel32.dll |