Função GetGeoInfoA (winnls.h)

[GetGeoInfo está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele poderá ser alterado ou ficar indisponível em versões subsequentes. Em vez disso, use GetGeoInfoEx.

]

Recupera informações sobre uma localização geográfica especificada.

Sintaxe

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

Parâmetros

[in] Location

Identificador da localização geográfica para a qual obter informações. Para obter mais informações, consulte Tabela de Localizações Geográficas. Você pode obter os valores disponíveis chamando EnumSystemGeoID.

[in] GeoType

Tipo de informação a ser recuperada. Os valores possíveis são definidos pela enumeração SYSGEOTYPE . Se o valor de GeoType for GEO_LCID, a função recuperará um identificador de localidade. Se o valor de GeoType for GEO_RFC1766, a função recuperará um nome de cadeia de caracteres em conformidade com RFC 4646 (Windows Vista). Para obter mais informações, consulte a seção Comentários.

Windows XP: Quando GeoType é definido como GEO_LCID, a cadeia de caracteres recuperada é um valor hexadecimal de 8 dígitos.

Windows Me: Quando GeoType é definido como GEO_LCID, a cadeia de caracteres recuperada é um valor decimal.

[out, optional] lpGeoData

Ponteiro para o buffer no qual essa função recupera as informações.

[in] cchData

Tamanho do buffer indicado por lpGeoData. O tamanho é o número de bytes para a versão ANSI da função ou o número de palavras para a versão Unicode. O aplicativo pode definir esse parâmetro como 0 se a função deve retornar o tamanho necessário do buffer.

[in] LangId

Identificador para o idioma, usado com o valor de Location. O aplicativo pode definir esse parâmetro como 0, com GEO_RFC1766 ou GEO_LCID especificados para GeoType. Essa configuração faz com que a função recupere o identificador de idioma chamando GetUserDefaultLangID.

Nota O aplicativo deverá definir esse parâmetro como 0 se GeoType tiver qualquer valor diferente de GEO_RFC1766 ou GEO_LCID.
 

Retornar valor

Retorna o número de bytes (ANSI) ou palavras (Unicode) das informações de localização geográfica recuperadas no buffer de saída. Se cchData estiver definido como 0, a função retornará o tamanho necessário para o buffer.

A função retornará 0 se não for bem-sucedida. Para obter informações de erro estendidas, o aplicativo pode chamar GetLastError, que pode retornar um dos seguintes códigos de erro:

  • ERROR_INSUFFICIENT_BUFFER. Um tamanho de buffer fornecido não era grande o suficiente ou foi definido incorretamente como NULL.
  • ERROR_INVALID_PARAMETER. Qualquer um dos valores de parâmetro era inválido.

Comentários

Se o aplicativo especificar GEO_RFC1766 para GeoType, ele deverá especificar um identificador de linguagem para LangId apropriado para o identificador de localização geográfica especificado. O idioma apropriado é uma linguagem neutra em localidade ou uma com uma localidade correspondente ao identificador especificado. A cadeia de caracteres resultante, em conformidade com o RFC 4646 (Windows Vista), constitui um nome de localidade.

Por exemplo, se Location for especificado como 0xF4 para Estados Unidos, GeoType será especificado como GEO_RFC1766 e LangId for especificado como 0x09 para inglês neutro local ou 0x409 para inglês (Estados Unidos), a função recuperará "en-US" no retorno bem-sucedido. Na verdade, a função ignora a parte específica da localidade do idioma. Portanto, se o aplicativo especificar LangId como 0x809 para inglês (Reino Unido), a função também gravará "en-US" em lpGeoData.

Considere outro exemplo. Se Location for especificado como 0xF4 para Estados Unidos, GeoType será especificado como GEO_RFC1766 e LangId for especificado como 0x04 para chinês, a função recuperará "zh-US" no retorno bem-sucedido. Esse não é o nome de uma localidade com suporte.

Se o aplicativo especificar GEO_LCID para GeoType, a função tratará o identificador de linguagem como um LCID (identificador de localidade). Ele tentará retornar o identificador de localidade se ele estiver associado ao identificador geográfico fornecido de alguma forma.

Observação

O cabeçalho winnls.h define GetGeoInfo como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows XP [aplicativos da área de trabalho | aplicativos UWP]
Servidor mínimo com suporte Windows Server 2003 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winnls.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

EnumSystemGeoID

GetGeoInfoEx

Suporte à linguagem nacional

Funções de suporte à linguagem nacional

SYSGEOTYPE