Fonction SetLocaleInfoW (winnls.h)

Définit un élément d’informations dans la partie de remplacement utilisateur des paramètres régionaux actuels. Cette fonction ne définit pas les valeurs système par défaut.

Attention Étant donné que cette fonction modifie les valeurs de toutes les applications, elle doit être appelée uniquement par la fonctionnalité d’options régionales et linguistiques de Panneau de configuration, ou par un utilitaire similaire. Si vous apportez une modification internationale aux paramètres système, l’application appelante doit diffuser le message WM_SETTINGCHANGE pour éviter de provoquer des instabilités dans d’autres applications.
 

Syntaxe

BOOL SetLocaleInfoW(
  [in] LCID    Locale,
  [in] LCTYPE  LCType,
  [in] LPCWSTR lpLCData
);

Paramètres

[in] Locale

Pour la version ANSI de la fonction, identificateur des paramètres régionaux avec la page de codes utilisée lors de l’interprétation des informations lpLCData . Pour la version Unicode, ce paramètre est ignoré.

Vous pouvez utiliser la macro MAKELCID pour créer un identificateur de paramètres régionaux ou utiliser l’une des valeurs prédéfinies suivantes.

Les identificateurs de paramètres régionaux personnalisés suivants sont également pris en charge.

[in] LCType

Type d’informations de paramètres régionaux à définir. Pour connaître les constantes valides, consultez la section « Constantes utilisées dans le paramètre LCType de GetLocaleInfo, GetLocaleInfoEx et SetLocaleInfo » dans Constantes d’informations de paramètres régionaux. L’application ne peut spécifier qu’une seule valeur par appel, mais elle peut utiliser l’opérateur binaire OR pour combiner LOCALE_USE_CP_ACP avec n’importe quelle autre constante.

[in] lpLCData

Pointeur vers une chaîne terminée par un caractère Null contenant les informations de paramètres régionaux à définir. Les informations doivent être au format spécifique à la constante spécifiée. L’application utilise une chaîne Unicode pour la version Unicode de la fonction et une chaîne ANSI pour la version ANSI.

Valeur retournée

Retourne une valeur différente de zéro en cas de réussite, ou 0 dans le cas contraire. Pour obtenir des informations d’erreur étendues, l’application peut appeler GetLastError, qui peut retourner l’un des codes d’erreur suivants :

  • ERROR_ACCESS_DISABLED_BY_POLICY. La stratégie de groupe de l’ordinateur ou de l’utilisateur a interdit cette opération.
  • ERROR_INVALID_ACCESS. Le code d’accès n’était pas valide.
  • ERROR_INVALID_FLAGS. Les valeurs fournies pour les indicateurs n’étaient pas valides.
  • ERROR_INVALID_PARAMETER. L’une des valeurs de paramètre n’était pas valide.

Remarques

Cette fonction écrit dans le Registre, où elle définit les valeurs associées à un utilisateur particulier au lieu d’une application particulière. Ces valeurs de Registre affectent le comportement d’autres applications exécutées par l’utilisateur. En règle générale, une application doit appeler cette fonction uniquement lorsque l’utilisateur a explicitement demandé les modifications. Les paramètres du Registre ne doivent pas être modifiés pour la commodité d’une seule application.

Pour le paramètre LCType , l’application doit définir LOCALE_USE_CP_ACP pour utiliser la page de codes ANSI du système d’exploitation au lieu de la page de codes des paramètres régionaux pour la traduction de chaînes.

Lorsque la version ANSI de cette fonction est utilisée avec un identificateur de paramètres régionaux Unicode uniquement, la fonction peut réussir, car le système d’exploitation utilise la page de codes système. Toutefois, les caractères qui ne sont pas définis dans la page de codes système apparaissent dans la chaîne sous la forme d’un point d’interrogation (?).

À partir de Windows Vista, les constantes LOCALE_SDATE et LOCALE_STIME sont obsolètes. N’utilisez pas ces constantes. Utilisez LOCALE_SSHORTDATE et LOCALE_STIMEFORMAT à la place. Un paramètre régional personnalisé peut ne pas avoir un seul caractère de séparation uniforme dans le format de date ou d’heure : par exemple, un format tel que « 31/12, 2006 » ou « 03:56'23 » peut être valide.

Notes

L’en-tête winnls.h définit SetLocaleInfo en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winnls.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

GetLocaleInfo

Prise en charge des langues nationales

Fonctions de prise en charge des langues nationales