Función GetGeoInfoA (winnls.h)

[GetGeoInfo está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. En versiones posteriores podría modificarse o no estar disponible. En su lugar, use GetGeoInfoEx.

]

Recupera información sobre una ubicación geográfica especificada.

Sintaxis

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

Parámetros

[in] Location

Identificador de la ubicación geográfica para la que se va a obtener información. Para obtener más información, vea Tabla de ubicaciones geográficas. Puede obtener los valores disponibles llamando a EnumSystemGeoID.

[in] GeoType

Tipo de información que se va a recuperar. Los valores posibles se definen mediante la enumeración SYSGEOTYPE . Si el valor de GeoType es GEO_LCID, la función recupera un identificador de configuración regional. Si el valor de GeoType es GEO_RFC1766, la función recupera un nombre de cadena compatible con RFC 4646 (Windows Vista). Para obtener más información, vea la sección Comentarios.

Windows XP: Cuando GeoType se establece en GEO_LCID, la cadena recuperada es un valor hexadecimal de 8 dígitos.

Windows Me: Cuando GeoType se establece en GEO_LCID, la cadena recuperada es un valor decimal.

[out, optional] lpGeoData

Puntero al búfer en el que esta función recupera la información.

[in] cchData

Tamaño del búfer indicado por lpGeoData. El tamaño es el número de bytes de la versión ANSI de la función o el número de palabras de la versión Unicode. La aplicación puede establecer este parámetro en 0 si la función es devolver el tamaño necesario del búfer.

[in] LangId

Identificador del idioma, que se usa con el valor de Location. La aplicación puede establecer este parámetro en 0, con GEO_RFC1766 o GEO_LCID especificados para GeoType. Esta configuración hace que la función recupere el identificador de idioma mediante una llamada a GetUserDefaultLangID.

Nota La aplicación debe establecer este parámetro en 0 si GeoType tiene algún valor distinto de GEO_RFC1766 o GEO_LCID.
 

Valor devuelto

Devuelve el número de bytes (ANSI) o palabras (Unicode) de la información de ubicación geográfica recuperada en el búfer de salida. Si cchData se establece en 0, la función devuelve el tamaño necesario para el búfer.

La función devuelve 0 si no se realiza correctamente. Para obtener información de error extendida, la aplicación puede llamar a GetLastError, que puede devolver uno de los siguientes códigos de error:

  • ERROR_INSUFFICIENT_BUFFER. Un tamaño de búfer proporcionado no era lo suficientemente grande o se estableció incorrectamente en NULL.
  • ERROR_INVALID_PARAMETER. Cualquiera de los valores de parámetro no era válido.

Comentarios

Si la aplicación especifica GEO_RFC1766 para GeoType, debe especificar un identificador de idioma para LangId que sea adecuado para el identificador de ubicación geográfica especificado. El idioma adecuado es un idioma independiente de la configuración regional o uno con una configuración regional correspondiente al identificador especificado. La cadena resultante, compatible con RFC 4646 (Windows Vista), constituye un nombre de configuración regional.

Por ejemplo, si Location se especifica como 0xF4 para Estados Unidos, GeoType se especifica como GEO_RFC1766 y LangId se especifica como 0x09 para inglés neutro de configuración regional o 0x409 para inglés (Estados Unidos), la función recupera "en-US" al devolverse correctamente. De hecho, la función omite la parte específica de la configuración regional del lenguaje. Por lo tanto, si la aplicación especifica LangId como 0x809 para inglés (Reino Unido), la función también escribe "en-US" en lpGeoData.

Aquí tenemos otro ejemplo. Si Location se especifica como 0xF4 para Estados Unidos, GeoType se especifica como GEO_RFC1766 y LangId se especifica como 0x04 para chino, la función recupera "zh-US" al devolverse correctamente. Este no es el nombre de una configuración regional admitida.

Si la aplicación especifica GEO_LCID para GeoType, la función trata el identificador de idioma como un identificador de configuración regional (LCID). Intenta devolver el identificador de configuración regional si está asociado al identificador geográfico proporcionado de alguna manera.

Nota

El encabezado winnls.h define GetGeoInfo como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2003 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winnls.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

EnumSystemGeoID

GetGeoInfoEx

Compatibilidad con idiomas nacionales

Funciones de compatibilidad con idiomas nacionales

SYSGEOTYPE