Bagikan melalui


Fungsi VerifyScripts (winnls.h)

Membandingkan dua daftar skrip yang dijumlahkan.

Sintaks

BOOL VerifyScripts(
  [in] DWORD   dwFlags,
  [in] LPCWSTR lpLocaleScripts,
  [in] int     cchLocaleScripts,
  [in] LPCWSTR lpTestScripts,
  [in] int     cchTestScripts
);

Parameter

[in] dwFlags

Bendera yang menentukan opsi verifikasi skrip.

Nilai Makna
VS_ALLOW_LATIN
Izinkan "Latn" (skrip Latin) dalam daftar pengujian meskipun tidak ada dalam daftar lokal.

[in] lpLocaleScripts

Penunjuk ke daftar lokal, daftar skrip yang dijumlahkan untuk lokal tertentu. Daftar ini biasanya diisi dengan memanggil GetLocaleInfoEx dengan LCType diatur ke LOCALE_SSCRIPTS.

[in] cchLocaleScripts

Ukuran, dalam karakter, dari string yang ditunjukkan oleh lpLocaleScripts. Aplikasi mengatur parameter ini ke -1 jika string dihentikan null. Jika parameter ini diatur ke 0, fungsi gagal.

[in] lpTestScripts

Penunjuk ke daftar pengujian, daftar skrip kedua yang dijumlahkan. Daftar ini biasanya diisi dengan memanggil GetStringScripts.

[in] cchTestScripts

Ukuran, dalam karakter, dari string yang ditunjukkan oleh lpTestScripts. Aplikasi mengatur parameter ini ke -1 jika string dihentikan null. Jika parameter ini diatur ke 0, fungsi gagal.

Nilai kembali

Mengembalikan TRUE jika daftar pengujian tidak kosong dan semua item dalam daftar juga disertakan dalam daftar lokal. Fungsi masih mengembalikan TRUE jika daftar lokal berisi lebih banyak skrip daripada daftar pengujian, tetapi semua skrip daftar pengujian harus dimuat dalam daftar lokal. Jika VS_ALLOW_LATIN ditentukan dalam dwFlags, fungsi berperilaku seolah-olah "Latn;" selalu ada dalam daftar lokal.

Dalam semua kasus lain, fungsi mengembalikan FALSE. Pengembalian ini dapat menunjukkan bahwa daftar pengujian berisi item yang tidak ada dalam daftar lokal, atau dapat menunjukkan kesalahan. Untuk membedakan antara kedua kasus ini, aplikasi harus memanggil GetLastError, yang dapat mengembalikan salah satu kode kesalahan berikut:

  • ERROR_INVALID_FLAGS. Nilai yang disediakan untuk bendera tidak valid.
  • ERROR_INVALID_PARAMETER. Salah satu nilai parameter tidak valid.
  • ERROR_SUCCESS. Tindakan berhasil diselesaikan tetapi tidak menghasilkan hasil.

Keterangan

Fungsi ini membandingkan string, seperti "Latn; Cyrl;", yang terdiri dari serangkaian nama skrip 4 karakter, dengan setiap nama skrip diikuti oleh titik koma. Ini juga memiliki kasus khusus untuk mempertangungjawabkan fakta bahwa skrip Latin sering digunakan dalam bahasa dan lokal yang bukan aslinya.

Fungsi ini berguna sebagai bagian dari strategi untuk mengurangi masalah keamanan yang terkait dengan nama domain internasional (IDN).

Berikut ini adalah contoh pengembalian fungsi ini dan panggilan berikutnya ke GetLastError dalam berbagai skenario. Dua contoh terakhir mengilustrasikan, masing-masing, kasus di mana daftar pengujian tidak memiliki titik koma yang mengakhiri (string cacat) dan kasus di mana daftar pengujian kosong.

String lokal String pengujian dwFlags Nilai kembali Pengembalian GetLastError
Hani; Hira; Kana; Hani; * TRUE (tidak berubah)
Hani; Hira; Kana; Hani; Latn; 0 FALSE ERROR_SUCCESS
Hani; Hira; Kana; Hani; Latn; VS_ALLOW_LATIN TRUE (tidak berubah)
Hani; Hira; Kana; Siri; * FALSE ERROR_SUCCESS
Hani; Hani; Hira; Kana; * FALSE ERROR_SUCCESS
Hani; Hira; Kana; Siri * FALSE ERROR_INVALID_PARAMETER
Hani; Hira; Kana; * TRUE (tidak berubah)
 
  • Hasilnya sama apakah VS_ALLOW_LATIN diteruskan dalam parameter dwFlags atau tidak ada bendera yang disediakan.

Contoh

NLS: Sampel Mitigasi Nama Domain Internasional (IDN) menunjukkan penggunaan fungsi ini.

Persyaratan

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

Lihat juga

DownlevelVerifyScripts

GetLocaleInfoEx

GetStringScripts

Menangani Nama Domain Internasional (IDN)

Dukungan Bahasa Nasional

Fungsi Dukungan Bahasa Nasional