SetThreadPreferredUILanguages, fonction (winnls.h)

Définit les langues d’interface utilisateur préférées du thread actuel. Pour plus d’informations, consultez Gestion des langues de l’interface utilisateur.

Note Cette fonction est également utilisée par le système d’exploitation pour identifier les langues qui peuvent être utilisées en toute sécurité sur la console Windows.
 

Syntaxe

BOOL SetThreadPreferredUILanguages(
  [in]            DWORD    dwFlags,
  [in, optional]  PCZZWSTR pwszLanguagesBuffer,
  [out, optional] PULONG   pulNumLanguages
);

Paramètres

[in] dwFlags

Indicateurs identifiant le format et le filtrage des langues à définir.

Les indicateurs de format suivants spécifient le format de langue à utiliser pour les langues d’interface utilisateur préférées du thread. Les indicateurs s’excluent mutuellement et la valeur par défaut est MUI_LANGUAGE_NAME.

Nous vous recommandons d’utiliser MUI_LANGUAGE_NAME au lieu de MUI_LANGUAGE_ID.

Valeur Signification
MUI_LANGUAGE_ID
Les chaînes de langue du paramètre d’entrée sont au format d’identificateur de langue .
MUI_LANGUAGE_NAME
Les chaînes de langue du paramètre d’entrée sont au format de nom de langue .
 

Les indicateurs de filtrage suivants spécifient le filtrage pour la liste des langues. Les indicateurs s’excluent mutuellement. Par défaut, ni MUI_COMPLEX_SCRIPT_FILTER ni MUI_CONSOLE_FILTER n’est défini. Pour plus d’informations sur les indicateurs de filtrage, consultez la section Remarques.

Valeur Signification
MUI_COMPLEX_SCRIPT_FILTER

GetThreadPreferredUILanguages doit remplacer par le secours approprié tous les langages ayant des scripts complexes. Lorsque cet indicateur est spécifié, null doit être passé pour tous les autres paramètres.

MUI_CONSOLE_FILTER

GetThreadPreferredUILanguages doit remplacer par le secours approprié toutes les langues qui ne peuvent pas s’afficher correctement dans une fenêtre de console avec les paramètres actuels du système d’exploitation. Lorsque cet indicateur est spécifié, null doit être passé pour tous les autres paramètres.

MUI_RESET_FILTERS
Réinitialisez le filtrage pour la liste des langues en supprimant tous les autres paramètres de filtre. Lorsque cet indicateur est spécifié, null doit être passé pour tous les autres paramètres. Après avoir défini cet indicateur, l’application peut appeler GetThreadPreferredUILanguages pour récupérer la liste complète non filtrée.

[in, optional] pwszLanguagesBuffer

Pointeur vers une mémoire tampon multi-chaîne à double terminaison null qui contient une liste ordonnée, délimitée par null, au format spécifié par dwFlags.

Pour effacer la liste des langages d’interface utilisateur préférés du thread, une application définit ce paramètre sur une chaîne null ou une chaîne vide à double fin null. Si une application efface une liste de langues, elle doit spécifier un indicateur de format ou 0 pour le paramètre dwFlags .

Lorsque l’application spécifie l’un des indicateurs de filtrage, elle doit définir ce paramètre sur NULL. Dans ce cas, la fonction réussit, mais ne réinitialise pas les langages préférés du thread.

[out, optional] pulNumLanguages

Pointeur vers le nombre de langues définies par la fonction dans la liste des langues d’interface utilisateur préférées du thread. Lorsque l’application spécifie l’un des indicateurs de filtrage, la fonction doit définir ce paramètre sur NULL.

Valeur retournée

Retourne TRUE si la fonction réussit ou FALSE dans le cas contraire.

Remarques

Lorsque l’application charge des ressources après un appel à cette fonction, les préférences spécifiques au thread sont prioritaires sur les langues préférées par l’utilisateur.

Cette fonction peut configurer jusqu’à cinq langues préférées pour le thread, dans l’ordre de préférence. Si la mémoire tampon de langue contient plus de cinq langues valides, la fonction définit les cinq premières langues valides et ignore le reste.

Si l’application appelle cette fonction avec l’indicateur MUI_LANGUAGE_ID défini, les chaînes de la liste de langues doivent utiliser la langue hexadécimale

identificateurs qui n’incluent pas le 0x de début et sont de 4 caractères. Par exemple, en-US doit être

passé comme « 0409 » et en comme « 0009 ».

Lorsque MUI_LANGUAGE_ID est spécifié, les valeurs hexadécimales de la liste des langues doivent chacune représenter un identificateur de langue réel. En particulier, les valeurs d’identificateur de paramètres régionaux suivantes ne peuvent pas être utilisées pour correspondre à l’identificateur de langue :

L’appel de cette fonction avec une liste de langues vide et la définition de l’indicateur MUI_CONSOLE_FILTER a le même effet que l’appel de SetThreadUILanguage avec l’identificateur de langue défini sur 0. La langue est correctement définie pour une utilisation dans une fenêtre de console.

Une fois cette fonction retournée, l’application peut appeler GetThreadPreferredUILanguages pour vérifier et examiner la liste de langues résultante. Lorsque MUI_CONSOLE_FILTER ou MUI_COMPLEX_FILTER a été défini par SetThreadPreferredUILanguages, la fonction GetThreadPreferredUILanguages remplace par la langue de secours que la console ne peut pas afficher à l’aide du paramètre de langue du système d’exploitation actuel. Le secours d’une langue est déterminé en fonction de la valeur de LOCALE_SCONSOLEFALLBACKNAME pour la langue.

Si vous définissez l’indicateur MUI_COMPLEX_SCRIPT_FILTER dans l’appel à SetThreadPreferredUILanguages , GetThreadPreferredUILanguages supprime les langues que la console ne peut pas afficher avec des langues qui ne peuvent être rendues qu’à l’aide de Uniscribe, et insère la langue de secours comme secours ultime. L’arabe ou les différentes langues indiques sont des exemples de ces langues.

Si vous définissez l’indicateur MUI_CONSOLE_FILTER dans l’appel à SetThreadPreferredUILanguages , GetThreadPreferredUILanguages supprime les langues que la console ne peut pas afficher avec le paramètre système actuel et insère la langue de secours comme secours ultime, car la console est limitée à l’affichage des caractères d’une page de codes unique. Par exemple, si la langue de l’utilisateur est le japonais (Japon), mais que la page de codes de la console actuelle est la page de codes pour le russe (Russie), la console affiche le texte en japonais principalement sous la forme d’une série de symboles de caractères introuvables. GetThreadPreferredUILanguages choisit une langue dans la liste de secours qui sera lisible dans la console.

Note Les fonctions de chargement de ressources, telles que LoadString, LoadImage et FindResource, effectuent également des appels à GetThreadPreferredUILanguages.
 
Pour modifier la page de codes, l’application utilise la fonction setlocale , ou une valeur équivalente.

C# Signature

[DllImport("Kernel32.dll", CharSet = CharSet.Auto)]
        static extern System.Boolean SetThreadPreferredUILanguages(
            System.UInt32 dwFlags,
            System.String pwszLanguagesBuffer,
            ref System.UInt32 pulNumLanguages
            );

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

Voir aussi

GetThreadPreferredUILanguages

Interface utilisateur multilingue

Fonctions d’interface utilisateur multilingues

SetThreadUILanguage