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 |
---|---|
|
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 |