Funzione GetGeoInfoA (winnls.h)

[GetGeoInfo è disponibile per l'uso nei sistemi operativi specificati nella sezione Requisiti. È possibile che in versioni successive sia stata modificata o non sia più disponibile. Usare invece GetGeoInfoEx.

]

Recupera informazioni su una posizione geografica specificata.

Sintassi

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

Parametri

[in] Location

Identificatore della posizione geografica per cui ottenere informazioni. Per altre informazioni, vedere Tabella delle posizioni geografiche. È possibile ottenere i valori disponibili chiamando EnumSystemGeoID.

[in] GeoType

Tipo di informazioni da recuperare. I valori possibili sono definiti dall'enumerazione SYSGEOTYPE . Se il valore di GeoType è GEO_LCID, la funzione recupera un identificatore delle impostazioni locali. Se il valore di GeoType è GEO_RFC1766, la funzione recupera un nome stringa conforme a RFC 4646 (Windows Vista). Per altre informazioni, vedere la sezione Osservazioni.

Windows XP: Quando GeoType è impostato su GEO_LCID, la stringa recuperata è un valore esadecimale a 8 cifre.

Windows Me: Quando GeoType è impostato su GEO_LCID, la stringa recuperata è un valore decimale.

[out, optional] lpGeoData

Puntatore al buffer in cui questa funzione recupera le informazioni.

[in] cchData

Dimensione del buffer indicato da lpGeoData. La dimensione è il numero di byte per la versione ANSI della funzione o il numero di parole per la versione Unicode. L'applicazione può impostare questo parametro su 0 se la funzione deve restituire le dimensioni necessarie del buffer.

[in] LangId

Identificatore per la lingua, usato con il valore location. L'applicazione può impostare questo parametro su 0, con GEO_RFC1766 o GEO_LCID specificato per GeoType. Questa impostazione fa sì che la funzione recuperi l'identificatore di lingua chiamando GetUserDefaultLangID.

Nota L'applicazione deve impostare questo parametro su 0 se GeoType ha un valore diverso da GEO_RFC1766 o GEO_LCID.
 

Valore restituito

Restituisce il numero di byte (ANSI) o parole (Unicode) di informazioni sulla posizione geografica recuperate nel buffer di output. Se cchData è impostato su 0, la funzione restituisce le dimensioni necessarie per il buffer.

La funzione restituisce 0 se non riesce. Per ottenere informazioni estese sull'errore, l'applicazione può chiamare GetLastError, che può restituire uno dei codici di errore seguenti:

  • ERROR_INSUFFICIENT_BUFFER. Le dimensioni del buffer fornite non sono sufficienti o non sono state impostate correttamente su NULL.
  • ERROR_INVALID_PARAMETER. Uno dei valori dei parametri non è valido.

Commenti

Se l'applicazione specifica GEO_RFC1766 per GeoType, deve specificare un identificatore di lingua per LangId appropriato all'identificatore di posizione geografica specificato. La lingua appropriata è una lingua indipendente dalle impostazioni locali o una con impostazioni locali corrispondenti all'identificatore specificato. La stringa risultante, conforme a RFC 4646 (Windows Vista), costituisce un nome delle impostazioni locali.

Ad esempio, se Location viene specificato come 0xF4 per Stati Uniti, GeoType viene specificato come GEO_RFC1766 e LangId viene specificato come 0x09 per l'inglese indipendente dalle impostazioni locali o 0x409 per l'inglese (Stati Uniti), la funzione recupera "en-US" in caso di esito positivo. In realtà, la funzione ignora la parte specifica delle impostazioni locali del linguaggio. Pertanto, se l'applicazione specifica LangId come 0x809 per l'inglese (Regno Unito), la funzione scrive anche "en-US" in lpGeoData.

Ecco un altro esempio. Se Location viene specificato come 0xF4 per Stati Uniti, GeoType viene specificato come GEO_RFC1766 e LangId viene specificato come 0x04 per il cinese, la funzione recupera "zh-US" in caso di esito positivo. Questo non è il nome di impostazioni locali supportate.

Se l'applicazione specifica GEO_LCID per GeoType, la funzione considera l'identificatore di lingua come identificatore delle impostazioni locali (LCID). Tenta di restituire l'identificatore delle impostazioni locali se è associato all'identificatore geografico specificato in qualche modo.

Nota

L'intestazione winnls.h definisce GetGeoInfo come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice che non è indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere Convenzioni per i prototipi di funzioni.

Requisiti

Requisito Valore
Client minimo supportato Windows XP [app desktop | App UWP]
Server minimo supportato Windows Server 2003 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione winnls.h (include Windows.h)
Libreria Kernel32.lib
DLL Kernel32.dll

Vedere anche

EnumSystemGeoID

GetGeoInfoEx

Supporto per la lingua nazionale

Funzioni di supporto per il linguaggio nazionale

SYSGEOTYPE