GetGeoInfoA, fonction (winnls.h)

[GetGeoInfo est disponible pour une utilisation dans les systèmes d’exploitation spécifiés dans la section Configuration requise. Il sera peut-être modifié ou indisponible dans les versions ultérieures. Utilisez plutôt GetGeoInfoEx.

]

Récupère des informations sur un emplacement géographique spécifié.

Syntaxe

int GetGeoInfoA(
  [in]            GEOID   Location,
  [in]            GEOTYPE GeoType,
  [out, optional] LPSTR   lpGeoData,
  [in]            int     cchData,
  [in]            LANGID  LangId
);

Paramètres

[in] Location

Identificateur de l’emplacement géographique pour lequel obtenir des informations. Pour plus d’informations, consultez Table des emplacements géographiques. Vous pouvez obtenir les valeurs disponibles en appelant EnumSystemGeoID.

[in] GeoType

Type d’informations à récupérer. Les valeurs possibles sont définies par l’énumération SYSGEOTYPE . Si la valeur de GeoType est GEO_LCID, la fonction récupère un identificateur de paramètres régionaux. Si la valeur de GeoType est GEO_RFC1766, la fonction récupère un nom de chaîne conforme à la RFC 4646 (Windows Vista). Pour plus d'informations, consultez la section Notes.

Windows XP : Lorsque GeoType a la valeur GEO_LCID, la chaîne récupérée est une valeur hexadécimale à 8 chiffres.

Windows Me : Lorsque GeoType a la valeur GEO_LCID, la chaîne récupérée est une valeur décimale.

[out, optional] lpGeoData

Pointeur vers la mémoire tampon dans laquelle cette fonction récupère les informations.

[in] cchData

Taille de la mémoire tampon indiquée par lpGeoData. La taille correspond au nombre d’octets pour la version ANSI de la fonction, ou au nombre de mots pour la version Unicode. L’application peut définir ce paramètre sur 0 si la fonction doit retourner la taille requise de la mémoire tampon.

[in] LangId

Identificateur de la langue, utilisé avec la valeur Location. L’application peut définir ce paramètre sur 0, avec GEO_RFC1766 ou GEO_LCID spécifiés pour GeoType. Ce paramètre permet à la fonction de récupérer l’identificateur de langue en appelant GetUserDefaultLangID.

Note L’application doit définir ce paramètre sur 0 si GeoType a une valeur autre que GEO_RFC1766 ou GEO_LCID.
 

Valeur retournée

Retourne le nombre d’octets (ANSI) ou de mots (Unicode) des informations d’emplacement géographique récupérées dans la mémoire tampon de sortie. Si cchData a la valeur 0, la fonction retourne la taille requise pour la mémoire tampon.

La fonction retourne 0 si elle ne réussit pas. Pour obtenir des informations d’erreur étendues, l’application peut appeler GetLastError, qui peut retourner l’un des codes d’erreur suivants :

  • ERROR_INSUFFICIENT_BUFFER. Une taille de mémoire tampon fournie n’était pas assez grande ou elle a été incorrectement définie sur NULL.
  • ERROR_INVALID_PARAMETER. L’une des valeurs de paramètre n’était pas valide.

Remarques

Si l’application spécifie GEO_RFC1766 pour GeoType, elle doit spécifier un identificateur de langue pour LangId approprié à l’identificateur d’emplacement géographique spécifié. La langue appropriée est soit une langue indépendante des paramètres régionaux, soit une langue avec des paramètres régionaux correspondant à l’identificateur spécifié. La chaîne résultante, conforme à la RFC 4646 (Windows Vista), constitue un nom de paramètres régionaux.

Par exemple, si Location est spécifié comme 0xF4 pour États-Unis, GeoType est spécifié comme GEO_RFC1766 et LangId est spécifié comme 0x09 pour l’anglais neutre ou 0x409 pour l’anglais (États-Unis), la fonction récupère « en-US » lors d’un retour réussi. En fait, la fonction ignore la partie spécifique des paramètres régionaux de la langue. Par conséquent, si l’application spécifie LangId comme 0x809 pour l’anglais (Royaume-Uni), la fonction écrit également « en-US » dans lpGeoData.

Prenons un autre exemple. Si Location est spécifié comme 0xF4 pour États-Unis, GeoType est spécifié comme GEO_RFC1766 et LangId est spécifié comme 0x04 pour le chinois, la fonction récupère « zh-US » en cas de retour réussi. Il ne s’agit pas du nom d’un paramètre régional pris en charge.

Si l’application spécifie GEO_LCID pour GeoType, la fonction traite l’identificateur de langue comme un identificateur de paramètres régionaux (LCID). Il tente de retourner l’identificateur de paramètres régionaux s’il est associé à l’identificateur géographique fourni d’une manière ou d’une autre.

Notes

L’en-tête winnls.h définit GetGeoInfo comme un 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. Le mélange 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

Condition requise Valeur
Client minimal pris en charge Windows XP [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête winnls.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

EnumSystemGeoID

GetGeoInfoEx

Prise en charge des langues nationales

Fonctions de prise en charge des langues nationales

SYSGEOTYPE