Fungsi ToUnicodeEx (winuser.h)
Menerjemahkan kode kunci virtual dan status keyboard yang ditentukan ke karakter atau karakter Unicode yang sesuai.
Sintaksis
int ToUnicodeEx(
[in] UINT wVirtKey,
[in] UINT wScanCode,
[in] const BYTE *lpKeyState,
[out] LPWSTR pwszBuff,
[in] int cchBuff,
[in] UINT wFlags,
[in, optional] HKL dwhkl
);
Parameter
[in] wVirtKey
Jenis: UINT
Kode kunci virtual yang akan diterjemahkan. LihatKode
[in] wScanCode
Jenis: UINT
Perangkat keras kode pemindaian kunci yang akan diterjemahkan. Bit berurutan tinggi dari nilai ini diatur jika kunci sudah aktif.
[in] lpKeyState
Jenis:
Penunjuk ke array 256-byte yang berisi status keyboard saat ini. Setiap elemen (byte) dalam array berisi status satu kunci.
Jika bit byte berurutan tinggi diatur, kuncinya tidak berfungsi. Bit rendah, jika diatur, menunjukkan bahwa kunci diaktifkan. Dalam fungsi ini, hanya bit tombol CAPS LOCK yang relevan. Status pengalih tombol NUM LOCK dan SCROLL LOCK diabaikan. Lihat GetKeyboardState
[out] pwszBuff
Jenis:
Buffer yang menerima karakter atau karakter yang diterjemahkan sebagai array unit kode UTF-16. Buffer ini dapat dikembalikan tanpa dihentikan null meskipun nama variabel menunjukkan bahwa itu null-dihentikan. Anda dapat menggunakan nilai pengembalian metode ini untuk menentukan berapa banyak karakter yang ditulis.
[in] cchBuff
Jenis: int
Ukuran, dalam karakter, dari buffer yang diarahkan oleh parameter pwszBuff.
[in] wFlags
Jenis: UINT
Perilaku fungsi.
Jika bit 0 diatur, menu aktif. Dalam mode ini keypad Alt+Numerik kombinasi kunci tidak ditangani.
Jika bit 1 diatur, ToUnicodeEx akan menerjemahkan kode pemindaian yang ditandai sebagai peristiwa pemisah kunci selain perlakuan yang biasa terhadap peristiwa pembuatan kunci.
Jika bit 2 diatur, status keyboard tidak diubah (Windows 10, versi 1607 dan yang lebih baru)
Semua bit lainnya (hingga 31) dicadangkan.
[in, optional] dwhkl
Jenis: HKL
Pengidentifikasi lokal input yang digunakan untuk menerjemahkan kode yang ditentukan. Parameter ini dapat menjadi pengidentifikasi lokal input yang sebelumnya dikembalikan oleh fungsi LoadKeyboardLayout.
Mengembalikan nilai
Jenis: int
Fungsi mengembalikan salah satu nilai berikut.
Mengembalikan nilai | Deskripsi |
---|---|
|
Kunci virtual yang ditentukan adalah kunci mati karakter (aksen atau diakritik). Nilai ini dikembalikan terlepas dari tata letak keyboard, bahkan jika beberapa karakter telah di ketik dan disimpan dalam status keyboard. Jika memungkinkan, bahkan dengan tata letak keyboard Unicode, fungsi telah menulis versi penspasian karakter dead-key ke buffer yang ditentukan oleh pwszBuff. Misalnya, fungsi menulis karakter ACUTE ACCENT (U+00B4), daripada karakter MENGGABUNGKAN ACUTE ACCENT (U+0301). |
|
Kunci virtual yang ditentukan tidak memiliki terjemahan untuk status keyboard saat ini. Tidak ada yang ditulis ke buffer yang ditentukan oleh pwszBuff. |
|
Satu atau beberapa unit kode UTF-16 ditulis ke buffer yang ditentukan oleh pwszBuff. pwszBuff yang dikembalikan mungkin berisi lebih banyak karakter daripada nilai yang ditentukan. Ketika ini terjadi, setiap karakter tambahan tidak valid dan harus diabaikan. |
Komentar
Pengidentifikasi lokal input adalah konsep yang lebih luas daripada tata letak keyboard, karena juga dapat mencakup pengonversi ucapan ke teks, Editor Metode Input (IME), atau bentuk input lainnya.
Beberapa tata letak keyboard dapat mengembalikan beberapa karakter dan/atau karakter tambahan sebagai pasangan pengganti di pwszBuff. Jika karakter tombol mati (aksen atau diakritik) yang disimpan dalam tata letak keyboard tidak dapat dikombinasikan dengan tombol virtual yang ditentukan untuk membentuk satu karakter maka karakter mati yang dimasukkan sebelumnya dapat dikombinasikan dengan karakter saat ini.
Parameter yang disediakan ke fungsi
Biasanya, ToUnicodeEx melakukan terjemahan berdasarkan kode kunci virtual. Namun, dalam beberapa kasus, bit 15 dari parameter wScanCode
Karena ToUnicodeEx menerjemahkan kode kunci virtual, itu juga mengubah status buffer keyboard mode kernel. Perubahan status ini memengaruhi kunci mati, ligatur, keypad Alt+Numerik entri kunci, dan sebagainya. Ini juga dapat menyebabkan efek samping yang tidak diinginkan jika digunakan bersama dengan TranslateMessage (yang juga mengubah status buffer keyboard mode kernel).
Persyaratan
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows 2000 Professional [hanya aplikasi desktop] |
server minimum yang didukung |
Windows 2000 Server [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
winuser.h (termasuk Windows.h) |
Pustaka |
User32.lib |
DLL |
User32.dll |
Lihat juga
Konseptual
Input Keyboard
Referensi
VkKeyScan