Bagikan melalui


Fungsi GetGeoInfoA (winnls.h)

[GetGeoInfo tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini dapat diubah atau tidak tersedia dalam versi berikutnya. Sebagai gantinya, gunakan GetGeoInfoEx.

]

Mengambil informasi tentang lokasi geografis tertentu.

Sintaks

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

Parameter

[in] Location

Pengidentifikasi untuk lokasi geografis untuk mendapatkan informasi. Untuk informasi selengkapnya, lihat Tabel Lokasi Geografis. Anda dapat memperoleh nilai yang tersedia dengan memanggil EnumSystemGeoID.

[in] GeoType

Jenis informasi yang akan diambil. Nilai yang mungkin ditentukan oleh enumerasi SYSGEOTYPE . Jika nilai GeoType GEO_LCID, fungsi mengambil pengidentifikasi lokal. Jika nilai GeoType GEO_RFC1766, fungsi mengambil nama string yang sesuai dengan RFC 4646 (Windows Vista). Untuk informasi lebih lanjut, lihat bagian Keterangan.

Windows XP: Saat GeoType diatur ke GEO_LCID, string yang diambil adalah nilai heksadesimal 8 digit.

Windows Me: Saat GeoType diatur ke GEO_LCID, string yang diambil adalah nilai desimal.

[out, optional] lpGeoData

Arahkan ke buffer tempat fungsi ini mengambil informasi.

[in] cchData

Ukuran buffer yang ditunjukkan oleh lpGeoData. Ukurannya adalah jumlah byte untuk versi ANSI fungsi, atau jumlah kata untuk versi Unicode. Aplikasi dapat mengatur parameter ini ke 0 jika fungsinya adalah mengembalikan ukuran buffer yang diperlukan.

[in] LangId

Pengidentifikasi untuk bahasa, digunakan dengan nilai Lokasi. Aplikasi dapat mengatur parameter ini ke 0, dengan GEO_RFC1766 atau GEO_LCID ditentukan untuk GeoType. Pengaturan ini menyebabkan fungsi mengambil pengidentifikasi bahasa dengan memanggil GetUserDefaultLangID.

Catatan Aplikasi harus mengatur parameter ini ke 0 jika GeoType memiliki nilai selain GEO_RFC1766 atau GEO_LCID.
 

Nilai kembali

Mengembalikan jumlah byte (ANSI) atau kata (Unicode) dari informasi lokasi geografis yang diambil dalam buffer output. Jika cchData diatur ke 0, fungsi mengembalikan ukuran yang diperlukan untuk buffer.

Fungsi mengembalikan 0 jika tidak berhasil. Untuk mendapatkan informasi kesalahan yang diperluas, aplikasi dapat memanggil GetLastError, yang dapat mengembalikan salah satu kode kesalahan berikut:

  • ERROR_INSUFFICIENT_BUFFER. Ukuran buffer yang disediakan tidak cukup besar, atau salah diatur ke NULL.
  • ERROR_INVALID_PARAMETER. Salah satu nilai parameter tidak valid.

Keterangan

Jika aplikasi menentukan GEO_RFC1766 untuk GeoType, aplikasi harus menentukan pengidentifikasi bahasa untuk LangId yang sesuai dengan pengidentifikasi lokasi geografis yang ditentukan. Bahasa yang sesuai adalah bahasa lokal netral atau bahasa dengan lokal yang sesuai dengan pengidentifikasi yang ditentukan. String yang dihasilkan, sesuai dengan RFC 4646 (Windows Vista), merupakan nama lokal.

Misalnya, jika Lokasi ditentukan sebagai 0xF4 untuk Amerika Serikat, GeoType ditentukan sebagai GEO_RFC1766, dan LangId ditentukan sebagai 0x09 untuk bahasa Inggris lokal netral atau 0x409 untuk bahasa Inggris (Amerika Serikat), fungsi mengambil "en-US" saat pengembalian berhasil. Bahkan, fungsi mengabaikan bagian bahasa khusus lokal. Dengan demikian, jika aplikasi menentukan LangId sebagai 0x809 untuk bahasa Inggris (Inggris), fungsi ini juga menulis "en-US" ke lpGeoData.

Pertimbangkan contoh lain. Jika Lokasi ditentukan sebagai 0xF4 untuk Amerika Serikat, GeoType ditentukan sebagai GEO_RFC1766, dan LangId ditentukan sebagai 0x04 untuk bahasa Tionghoa, fungsi mengambil "zh-US" saat pengembalian berhasil. Ini bukan nama lokal yang didukung.

Jika aplikasi menentukan GEO_LCID untuk GeoType, fungsi memperlakukan pengidentifikasi bahasa sebagai pengidentifikasi lokal (LCID). Ini mencoba mengembalikan pengidentifikasi lokal jika dikaitkan dengan pengidentifikasi geografis yang disediakan dalam beberapa cara.

Catatan

Header winnls.h mendefinisikan GetGeoInfo sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header winnls.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

EnumSystemGeoID

GetGeoInfoEx

Dukungan Bahasa Nasional

Fungsi Dukungan Bahasa Nasional

SYSGEOTYPE