getGeoInfoEx 函数 (winnls.h)

检索有关您通过使用双字母国际标准化组织 (ISO) 3166-1 代码或数字联合国 (联合国) 系列 M,编号 49 (M.49) 代码指定的地理位置的信息。

语法

int GetGeoInfoEx(
  [in]            PWSTR   location,
  [in]            GEOTYPE geoType,
  [out, optional] PWSTR   geoData,
  [in]            int     geoDataCount
);

参数

[in] location

用于获取信息的地理位置的双字母 ISO 3166-1 或数字 UN M.49 代码。 若要获取操作系统上可用的代码,请调用 EnumSystemGeoNames

[in] geoType

要检索的信息类型。 可能的值由 SYSGEOTYPE 枚举定义。 SYSGEOTYPE 枚举的以下值不应与 GetGeoInfoEx 一起使用:

  • GEO_ID

    提供此值是为了向后兼容。 不要在新应用程序中使用此值,而是改用 GEO_NAME

  • GEO_LCID

    GetGeoInfoEx 函数不支持此值。

  • GEO_NATION

    GetGeoInfoEx 函数不支持此值。

  • GEO_RFC1766

    GetGeoInfoEx 函数不支持此值。

[out, optional] geoData

指向 GetGeoInfoEx 应在其中写入所请求信息的缓冲区的指针。

[in] geoDataCount

GeoData 参数指向的缓冲区的大小(以字符为单位)。 将此参数设置为 0 可指定函数应仅返回存储所请求信息所需的缓冲区大小,而不将请求的信息写入缓冲区。

返回值

函数写入输出缓冲区的地理位置信息的字节数。 如果 geoDataCount 为 0,则函数返回保存信息所需的缓冲区大小,而无需将信息写入缓冲区。

0 表示函数未成功。 若要获取扩展错误信息,请调用 GetLastError,这会返回以下错误代码之一:

返回代码 说明
ERROR_INSUFFICIENT_BUFFER
提供的缓冲区大小不够大,或者错误地设置为 NULL
ERROR_INVALID_PARAMETER
参数值无效。
ERROR_INVALID_FLAGS
为标志提供的值无效。

注解

有关双字母 ISO 3166-1 代码的信息,请参阅 国家/地区代码 - ISO 3166。 有关数字 UN M.49 代码的信息,请参阅 用于统计使用的标准国家或地区代码 (M49)

要求

要求
最低受支持的客户端 Windows 10版本 1709 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
目标平台 Windows
标头 winnls.h
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

EnumSystemGeoNames

GetGeoInfo

国家语言支持

国家语言支持函数

SYSGEOTYPE