Partager via


GetGeoInfoW, 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 GetGeoInfoW(
  [in]            GEOID   Location,
  [in]            GEOTYPE GeoType,
  [out, optional] LPWSTR  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 La 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 norme RFC 4646 (Windows Vista). Pour plus d'informations, consultez la section Notes.

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

Windows Me : Lorsque GeoType est défini sur 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 est le nombre d’octets pour la version ANSI de la fonction, ou le 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 Emplacement. L’application peut définir ce paramètre sur 0, avec GEO_RFC1766 ou GEO_LCID spécifié pour GeoType. Ce paramètre amène la fonction à 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 est défini sur 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 suffisamment grande ou 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 une langue indépendante des paramètres régionaux ou une langue avec des paramètres régionaux correspondant à l’identificateur spécifié. La chaîne résultante, conforme à RFC 4646 (Windows Vista), constitue un nom de paramètres régionaux.

Par exemple, si Location est spécifié en tant que 0xF4 pour États-Unis, GeoType est spécifié en tant que GEO_RFC1766 et LangId est spécifié comme 0x09 pour l’anglais indépendant des paramètres régionaux ou 0x409 pour l’anglais (États-Unis), la fonction récupère « en-US » en cas de 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é en tant que 0xF4 pour États-Unis, GeoType est spécifié en tant que GEO_RFC1766 et LangId 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 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 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