Persyaratan Editor Metode Input Kustom (IME)
Panduan dan persyaratan ini dapat membantu Anda mengembangkan Editor Metode Input (IME) kustom untuk membantu teks input pengguna dalam bahasa yang tidak dapat diwakili dengan mudah pada keyboard QWERTY standar.
Untuk gambaran umum IMEs, lihat Editor Metode Input (IME).
Default IME
Pengguna dapat memilih SALAH SATU IME aktif mereka (Pengaturan -> Waktu & Bahasa -> Bahasa -> Bahasa pilihan -> Paket bahasa - Opsi) untuk menjadi IME default untuk bahasa pilihan mereka.
Pilih keyboard default pada layar Pengaturan opsi bahasa untuk bahasa pilihan.
Penting
Kami tidak menyarankan penulisan langsung ke registri untuk mengatur keyboard default untuk IME kustom Anda.
Persyaratan kompatibilitas
Berikut ini adalah persyaratan kompatibilitas dasar untuk IME kustom.
IME harus kompatibel dengan aplikasi Windows
Gunakan Text Services Framework (TSF) untuk mengimplementasikan IMEs. Sebelumnya, Anda memiliki opsi untuk menggunakan Manajer Metode Input (IMM32) untuk layanan input. Sekarang sistem memblokir IMEs yang diimplementasikan dengan menggunakan Input Method Manager (IMM32).
Saat aplikasi dimulai, TSF memuat DLL IME untuk IME yang saat ini dipilih oleh pengguna. Saat IME dimuat, IME tunduk pada pembatasan kontainer aplikasi yang sama dengan aplikasi. Misalnya, IME tidak dapat mengakses Internet jika aplikasi belum meminta akses Internet dalam manifesnya. Perilaku ini memastikan bahwa IMEs tidak dapat melanggar kontrak keamanan.
TSF adalah perantara antara aplikasi dan IME Anda. TSF mengkomunikasikan peristiwa input ke IME dan menerima karakter input kembali dari IME setelah pengguna memilih karakter.
Perilaku ini sama dengan versi Windows sebelumnya, tetapi dimuat ke dalam aplikasi Windows memengaruhi kemampuan potensial IME.
Jika IME Anda perlu menyediakan fungsionalitas atau UI yang berbeda antara aplikasi Windows dan aplikasi desktop, pastikan bahwa DLL yang dimuat oleh TSF memeriksa jenis aplikasi mana yang sedang dimuatnya. Panggil metode ITfThreadMgrEx::GetActiveFlags di IME Anda dan periksa bendera TF_TMF_IMMERSIVEMODE, sehingga IME Anda memicu logika aplikasi yang berbeda tergantung pada hasilnya.
Aplikasi Windows tidak mendukung IMEs Table Text Service (TTS).
Catatan
Beberapa alat untuk menghasilkan IMEs TTS menghasilkan IMEs yang ditandai sebagai malware oleh Windows.
IME harus kompatibel dengan baki sistem
Tidak ada bilah bahasa untuk menghosting ikon IME. Sebagai gantinya, Indikator Input menunjukkan pada baki sistem yang menunjukkan opsi input saat ini. Indikator Input hanya memperlihatkan ikon merek IME untuk menunjukkan IME yang sedang berjalan. Selain itu, ada satu ikon mode IME yang menunjukkan di sebelah kiri ikon merek IME bagi pengguna untuk melakukan sakelar mode IME yang paling umum digunakan, seperti mengaktifkan atau menonaktifkan IME.
Indikator Input memperlihatkan ikon merek dan ikon mode IME hanya untuk IMEs yang kompatibel. IM yang tidak kompatibel tidak memiliki ikon merek dan ikon mode yang ditampilkan di baki sistem. Sebagai gantinya, Indikator Input menunjukkan singkatan bahasa alih-alih ikon merek IME.
Simpan ikon IME dalam file DLL atau EXE, bukan file .ico mandiri. Desain ikon IME harus mengikuti panduan yang dijelaskan di bagian panduan desain UI berikut.
Ikon merek IME
Indikator Input mendapatkan ikon merek IME dari DLL IME dengan menggunakan ID sumber daya yang ditentukan oleh IME ketika terdaftar pada sistem.
Ikon mode IME
Beberapa IMEs mungkin perlu mengandalkan Indikator Input yang ditampilkan pada baki sistem untuk menampilkan ikon mode IME. Dalam hal ini, IME meneruskan ikon mode IME ke Indikator Input dengan menggunakan GUID_LBI_INPUTMODE.
Saat meneruskan ikon mode IME ke Indikator Input pada baki sistem, ukuran default ikon mode IME adalah 16x16 piksel. Penskalakan UI mengikuti DPI.
Saat meneruskan ikon mode IME ke Indikator Input pada UAC (Kontrol Akun Pengguna di Desktop Aman), ukuran default ikon mode IME adalah 20x20 piksel. Ikon penskalaan UI untuk mode IME di UAC mengikuti PPI.
IME harus berfungsi dalam kontainer aplikasi
Beberapa fungsi IME terpengaruh dalam kontainer aplikasi.
- File Kamus - Sering kali, IMEs memiliki file kamus baca-saja untuk memetakan input pengguna ke karakter tertentu. Untuk mengakses file-file ini dari dalam kontainer aplikasi, IME Anda harus menempatkannya di bawah File Program atau direktori Windows. Secara default, direktori ini dapat dibaca dari kontainer aplikasi, sehingga IMEs dapat mengakses file kamus yang disimpan di lokasi ini. Jika IME Anda harus menyimpan file kamus di tempat lain, IME harus secara eksplisit memanipulasi Daftar Kontrol Akses (ACL) file kamus untuk mengizinkan akses dari kontainer aplikasi.
- Pembaruan Internet - Jika IME Anda perlu memperbarui kamusnya menggunakan data dari Internet, IME tidak dapat melakukannya dengan andal di dalam kontainer aplikasi, karena akses Internet tidak selalu diizinkan. Sebagai gantinya, IME Anda harus menjalankan proses desktop terpisah yang bertanggung jawab untuk memperbarui file kamus dengan data dari Internet.
- Pembelajaran on-the-fly - Jika IME berjalan dalam kontainer aplikasi yang memiliki akses Internet, tidak ada batasan pada titik akhir yang dapat dikomunikasikan dengan IME. Dalam hal ini, IME dapat menggunakan server cloud untuk menyediakan layanan pembelajaran on-the-fly. Beberapa IMEs mengunduh dan mengunggah input pengguna dengan cepat, saat pengguna mengetik. Karena akses Internet tidak dijamin dalam kontainer aplikasi, ini mungkin tidak selalu diizinkan.
- Berbagi informasi antar proses - IMEs mungkin perlu berbagi data tentang preferensi input pengguna antara aplikasi yang berada di kontainer aplikasi yang berbeda. Gunakan layanan web untuk berbagi data antar aplikasi.
Penting
Jika Anda mencoba menghindari aturan keamanan kontainer aplikasi, IME Anda dapat diperlakukan sebagai malware dan diblokir.
IME dan keyboard sentuh
IME Anda harus memastikan bahwa UI panel kandidatnya, dan elemen UI lainnya, tidak digambar di bawah keyboard sentuh. Keyboard sentuh ditampilkan dalam pita z-order yang lebih tinggi daripada semua aplikasi, dan UI IME ditampilkan dalam pita z-order yang sama dengan aplikasi tempatnya aktif. Akibatnya, keyboard sentuh dapat tumpang tindih dan menyembunyikan UI IME. Dalam kebanyakan kasus, aplikasi harus mengubah ukuran jendelanya untuk memperhitungkan keyboard sentuh. Jika aplikasi tidak mengubah ukuran, IME masih dapat menggunakan INPUTPane API untuk mendapatkan posisi keyboard sentuh. IME meminta properti Lokasi , atau mendaftarkan handler untuk acara Tampilkan dan Sembunyikan keyboard sentuh. Acara Tampilkan dinaikkan setiap kali pengguna mengetuk di bidang edit, meskipun keyboard sentuh ditampilkan saat ini. IME Anda dapat menggunakan API ini untuk mendapatkan ruang layar yang digunakan oleh keyboard sentuh sebelum IME menggambar UI kandidat (atau lainnya), dan untuk me-reflow UI IMEs untuk menghindari menggambar di bawah keyboard sentuh.
Menentukan tata letak keyboard sentuh pilihan
IME dapat menentukan tata letak keyboard sentuh mana yang akan digunakan, dan IME diaktifkan untuk bekerja dengan tata letak yang dioptimalkan sentuhan. Fungsionalitas ini terbatas pada IMEs untuk bahasa input Korea, Jepang, Tionghoa Sederhana, dan Tionghoa Tradisional.
Ada tujuh tata letak yang didukung oleh keyboard sentuh, tiga di antaranya adalah tata letak klasik dan empat di antaranya adalah tata letak yang dioptimalkan untuk sentuhan. Tata letak klasik terlihat dan berulah seperti keyboard fisik.
Ketiga tata letak klasik adalah untuk memasukkan bahasa Tionghoa tradisional dalam bentuk yang berbeda:
- Input berbasis fonetik
- Input Changjie
- Input Dayi
Selain tata letak klasik, ada satu tata letak yang dioptimalkan sentuhan untuk masing-masing bahasa input Korea, Jepang, Tionghoa Sederhana, dan Tionghoa Tradisional.
Untuk menggunakan fungsionalitas ini, IME Anda harus menerapkan antarmuka ITfFnGetPreferredTouchKeyboardLayout , yang diekspor oleh IME dengan menggunakan TEXT Services Framework ITfFunctionProvider API.
Jika IME Anda tidak mendukung antarmuka ITfFnGetPreferredTouchKeyboardLayout, menggunakan hasil IME dalam tata letak klasik default untuk bahasa yang ditampilkan oleh keyboard sentuh.
Jika IME Anda perlu mengatur salah satu tata letak klasik sebagai tata letak pilihan, tidak ada pekerjaan tambahan yang diperlukan di sisi IME selain mendukung antarmuka ITfFnGetPreferredTouchKeyboardLayout dan ITfFunctionProvider. Tetapi pekerjaan tambahan diperlukan di IME untuk bekerja dengan tata letak yang dioptimalkan sentuhan, dan ini dijelaskan di bagian berikutnya.
Tata letak yang dioptimalkan sentuhan
Keyboard yang dioptimalkan sentuhan untuk bahasa input Korea, Jepang, Tionghoa Sederhana, dan Tionghoa Tradisional menampilkan tata letak yang berbeda untuk mode konversi IME On dan IME Off. Ada tombol pada keyboard sentuh untuk mengatur mode konversi IME ke Aktif atau Nonaktif, tetapi mode IME keyboard juga dapat berubah saat fokus berubah di antara kontrol edit.
Keyboard yang dioptimalkan sentuhan untuk bahasa input Bahasa Jepang, Tionghoa Sederhana, dan Tionghoa Tradisional berisi kunci, atau tombol, yang digunakan IME untuk menavigasi melalui halaman kandidat. Untuk bahasa Jepang dan Tionghoa Sederhana, kunci halaman kandidat ditampilkan pada tata letak yang dioptimalkan sentuhan. Untuk Bahasa Tionghoa Tradisional, ada kunci terpisah untuk halaman kandidat sebelumnya dan berikutnya.
Ketika tombol ini ditekan, keyboard sentuh memanggil fungsi SendInput untuk mengirim karakter Area Penggunaan Privat Unicode berikut ke aplikasi yang berfokus, yang dapat dicegat dan ditindaklanjuti IME:
- Halaman berikutnya (0xF003) - Dikirim saat tombol halaman kandidat ditekan pada keyboard yang dioptimalkan sentuhan untuk bahasa Jepang dan Tionghoa Sederhana, atau ketika tombol halaman berikutnya ditekan pada keyboard yang dioptimalkan sentuhan untuk Tionghoa Tradisional.
- Halaman sebelumnya (0xF004) - Dikirim saat tombol halaman kandidat ditekan pada saat yang sama dengan tombol Shift pada keyboard yang dioptimalkan sentuhan untuk bahasa Jepang dan Tionghoa Sederhana, atau ketika tombol halaman sebelumnya ditekan pada keyboard yang dioptimalkan sentuhan untuk Bahasa Tionghoa Tradisional.
Karakter ini dikirim sebagai input Unicode. Paragraf berikutnya merinci cara mengekstrak informasi karakter selama pemberitahuan sink peristiwa utama yang akan diterima IME Kerangka Kerja Layanan Teks. Nilai karakter ini tidak didefinisikan dalam file header apa pun, jadi Anda harus menentukannya dalam kode Anda.
Untuk mencegat input keyboard, IME Anda harus mendaftar sebagai sink peristiwa kunci. Untuk input Unicode yang dihasilkan dengan menggunakan fungsi SendInput, parameter WPARAM dari callback ITfKeyEventSink (OnKeyDown, OnKeyUp, OnTestKeyDown, OnTestKeyUp) selalu berisi kunci virtual VK_PACKET dan tidak mengidentifikasi karakter secara langsung.
Terapkan urutan panggilan berikut untuk mengakses karakter:
// Keyboard state
BYTE abKbdState[256];
if (!GetKeyboardState(abKbdState))
{
return 0;
}
// Map virtual key to character code
WCHAR wch;
if (ToUnicode(VK_PACKET, 0, abKbdState, &wch, 1, 0) == 1)
{
return wch;
}
Integrasi pencarian IME
Berikan fitur pencarian kepada pengguna melalui kontrak pencarian dan integrasi dengan panel pencarian.
Panel pencarian dan saran IME
Panel pencarian adalah lokasi pusat bagi pengguna untuk melakukan pencarian di semua aplikasi mereka. Untuk pengguna IME, Windows memberikan pengalaman pencarian unik yang memungkinkan IMEs yang kompatibel berintegrasi dengan Windows untuk efisiensi dan kegunaan yang lebih besar.
Pengguna yang mengetik dengan IME yang kompatibel dengan pencarian mendapatkan dua manfaat utama:
- Interaksi tanpa hambatan antara IME dan pengalaman pencarian. Kandidat IME ditampilkan sebaris di bawah kotak pencarian tanpa mengolah saran pencarian. Pengguna dapat menggunakan keyboard untuk menavigasi dengan mulus antara kotak pencarian, kandidat konversi IME, dan saran pencarian.
- Akses yang lebih cepat ke hasil dan saran yang relevan yang disediakan oleh aplikasi. Aplikasi ini memiliki akses ke semua kandidat konversi saat ini untuk memberikan saran yang lebih relevan. Untuk lebih memprioritaskan saran pencarian, konversi diberikan ke aplikasi dalam urutan relevansi. Pengguna menemukan dan memilih hasil yang mereka inginkan tanpa mengonversi, hanya dengan mengetik dalam fonetik.
IME kompatibel dengan pengalaman pencarian terintegrasi jika memenuhi kriteria berikut:
- Kompatibel dengan shell gaya Windows.
- Terapkan API mode UILess TSF. Untuk informasi selengkapnya, lihat Gambaran Umum Mode Tanpa UI.
- Terapkan API integrasi pencarian TSF, ITfFnSearchCandidateProvider dan ITfIntegratableCandidateListUIElement.
Saat diaktifkan di panel pencarian, IME yang kompatibel ditempatkan dalam mode tanpa UI dan tidak dapat menampilkan UI-nya. Sebaliknya, ini mengirim kandidat konversi ke Windows, yang menampilkannya dalam kontrol daftar kandidat sebaris, seperti yang ditunjukkan pada cuplikan layar sebelumnya.
Selain itu, IME mengirimkan kandidat yang harus digunakan untuk menjalankan pencarian saat ini. Kandidat ini bisa sama dengan kandidat konversi, atau mereka dapat disesuaikan untuk pencarian.
Kandidat pencarian yang baik memenuhi kriteria berikut:
- Tidak ada awalan yang tumpang tindih. Misalnya, 北京大学 dan北京 berlebihan karena salah satunya adalah awalan yang lain.
- Tidak ada kandidat redundan. Kandidat redundan apa pun tidak berguna untuk pencarian karena tidak membantu memfilter hasil. Misalnya, hasil apa pun yang cocok dengan 北京大学 juga cocok dengan 北京.
- Tidak ada kandidat prediksi, hanya konversi. Misalnya, jika jenis pengguna "be", IME dapat mengembalikan 北 sebagai kandidat, tetapi tidak 北京大学. Biasanya, kandidat prediksi terlalu ketat.
IM yang tidak memenuhi kriteria tidak kompatibel dengan tampilan pencarian dengan cara yang sama seperti kontrol lain, dan tidak dapat memanfaatkan integrasi UI dan kandidat pencarian. Aplikasi menerima kueri hanya setelah pengguna selesai membuat.
Saat aplikasi yang mendukung kontrak pencarian menerima kueri, peristiwa kueri berisi array "queryTextAlternatives" yang berisi semua alternatif yang diketahui, diberi peringkat dari yang paling relevan (kemungkinan) menjadi paling tidak relevan (tidak mungkin).
Ketika alternatif disediakan, aplikasi harus memperlakukan setiap alternatif sebagai kueri dan mengembalikan semua hasil yang cocok dengan salah satu alternatif. Aplikasi harus berperilaku seolah-olah pengguna telah mengeluarkan beberapa kueri pada saat yang sama, pada dasarnya mengeluarkan kueri "atau" ke layanan yang memberikan hasilnya. Untuk pertimbangan performa, aplikasi sering membatasi pencocokan hingga antara 5 dan 20 alternatif yang paling relevan.
Panduan desain UI
Semua IMEs harus mengikuti panduan pengalaman pengguna yang dijelaskan dalam Desain dan kode aplikasi Windows.
Jangan gunakan jendela lengket
Jendela IME Anda akan muncul hanya jika diperlukan, dan tidak boleh terlihat sepanjang waktu. Ketika pengguna tidak perlu mengetik, jendela IME tidak boleh ditampilkan. Jendela IME seharusnya bukan jendela layar penuh. Jendela IME tidak boleh saling tumpang tindih. Jendela harus dirancang dalam gaya Windows dan mengikuti penskalakan UI.
Ikon IME
Ada dua jenis ikon IME, ikon merek, dan ikon mode. Semua ikon IME harus dirancang hanya dengan warna hitam dan putih. Ikon IME baru meminjam dari tampilan glyphic ikon baki sistem. Gaya ini telah dibuat sehingga semua bahasa dapat menggunakannya untuk melengkapi tampilan familial sambil juga membedakan satu sama lain.
Format file untuk ikon IME adalah ICO. Anda harus menyediakan ukuran ikon berikut.
- 16x16 piksel
- 20x20 piksel
- 24x24 piksel
- 32x32 piksel
- 40x40 piksel
- 48x48 piksel
Pastikan bahwa ikon 32-bit dengan saluran alfa disediakan di semua resolusi.
Ikon merek IME didefinisikan oleh kotak putih di mana glyph tipografis yang dirender dalam typeface modern ditempatkan. Setiap glyph yang menentukan dipilih oleh setiap tim bahasa. Glyph berwarna hitam. Kotak ini mencakup goresan luar 1 piksel hitam dengan keburaman 50%. Versi "Baru" ditentukan oleh sudut bulat di kiri atas kotak.
Ikon mode IME didefinisikan oleh glyph tipografi putih dalam typeface modern yang mencakup goresan luar 1 piksel hitam pada keburaman 50%.
Ikon | Deskripsi |
---|---|
Contoh ikon merek IME untuk Traditional Chinese ChangeJie. | |
Contoh ikon merek IME untuk Traditional Chinese ChangeJie. | |
Contoh ikon mode IME. |
Jendela yang dimiliki
Untuk menampilkan UI kandidat, IME harus mengatur jendelanya menjadi jendela milik, sehingga dapat ditampilkan melalui aplikasi yang sedang berjalan. Gunakan metode ITfContextView::GetWnd untuk mengambil jendela miliknya. Jika GetWnd mengembalikan kesalahan atau NULLHWND, panggil fungsi GetFocus .
if (FAILED(pView->GetWnd(&parentWndHandle)) || (parentWndHandle == nullptr)) { parentWndHandle = GetFocus(); }
Interaksi jendela kandidat IME dengan permukaan tutup cahaya
Model pemecatan untuk jendela popup disebut "pengabaian cahaya" karena mudah bagi pengguna untuk menutup jendela tersebut. Agar IMEs berfungsi dengan baik dalam model interaksi Windows, jendela IME harus berpartisipasi dalam model pengabaian cahaya.
Untuk berpartisipasi dalam model pengalihan cahaya, IME Anda harus menaikkan tiga peristiwa Windows baru dengan menggunakan fungsi NotifyWinEvent atau fungsi serupa. Peristiwa baru ini adalah:
- EVENT_OBJECT_IME_SHOW - Naikkan peristiwa ini saat IME menjadi terlihat.
- EVENT_OBJECT_IME_HIDE - Naikkan peristiwa ini saat IME disembunyikan.
- EVENT_OBJECT_IME_CHANGE - Naikkan peristiwa ini saat IME bergerak atau mengubah ukuran.
Mendeklarasikan kompatibilitas
IMEs menyatakan bahwa mereka kompatibel dengan mendaftarkan kategori GUID_TFCAT_TIPCAP_IMMERSIVESUPPORT untuk IME mereka menggunakan ITfCategoryMgr::RegisterCategory.
Atur mode IME default ke aktif
Kami menyediakan UX yang lebih baik untuk IMEs.
Dukungan penskalaan DPI untuk aplikasi desktop
Dukungan penskalaan DPI yang ditingkatkan memungkinkan kueri tingkat kesadaran DPI yang dinyatakan dari setiap proses desktop untuk menentukan apakah perlu menskalakan UI. Dalam skenario multi-monitor, Windows menskalakan UI dengan tepat untuk pengaturan DPI yang berbeda pada setiap monitor.
Karena IME Anda berjalan dalam konteks proses setiap aplikasi, Anda tidak boleh mendeklarasikan tingkat kesadaran DPI untuk IME Anda. Ini memastikan bahwa IME Anda berjalan pada tingkat kesadaran DPI dari proses saat ini.
Untuk memastikan bahwa semua elemen IME UI memiliki paritas penskalaan dengan elemen UI proses tempat Anda menjalankan, Anda harus merespons nilai DPI yang berbeda dengan tepat.
Catatan
Untuk memastikan paritas dengan aplikasi desktop baru, IME Anda harus mendukung kesadaran per monitor–DPI, tetapi tidak boleh menyatakan tingkat kesadaran itu sendiri. Sistem menentukan persyaratan penskalakan yang sesuai dalam setiap skenario.
Untuk detail tentang persyaratan dukungan penskalaan DPI untuk aplikasi Desktop, lihat DPI Tinggi.
Penginstalan IME
Jika Anda membangun IME dengan menggunakan Microsoft Visual Studio, buat pengalaman penginstalan untuk IME Anda dengan menggunakan alat penginstal pihak ketiga, seperti InstallShield dari Flexera Software.
Langkah-langkah berikut menunjukkan cara menggunakan InstallShield untuk membuat proyek penyiapan untuk DLL IME Anda.
- Memasang Visual Studio.
- Mulai Visual Studio.
- Pada menu File , arahkan ke Baru dan pilih Proyek. Dialog Proyek Baru terbuka.
- Di panel kiri, navigasi ke Templat > Penyetelan dan Penyebaran Jenis > Proyek Lainnya, klik Aktifkan InstallShield Limited Edition, dan klik OK. Ikuti petunjuk penginstalan.
- Mulai Visual Studio.
- Buka file solusi IME (.sln).
- Di Penjelajah Solusi, klik kanan solusi, arahkan ke Tambahkan, dan pilih Proyek Baru. Dialog Tambahkan Proyek Baru terbuka.
- Di kontrol tampilan pohon kiri, navigasikan ke Templat > Jenis > Proyek Lainnya InstallShield Limited Edition.
- Di jendela tengah, klik InstallShield Limited Edition Project.
- Dalam kotak teks Nama , ketik "SetupIME" dan klik OK.
- Dalam dialog Asisten Proyek, klik Informasi Aplikasi.
- Isi nama perusahaan Anda dan bidang lainnya.
- Klik File Aplikasi.
- Di panel kiri, klik kanan folder [INSTALLDIR] , dan pilih Folder Baru. Beri nama folder "Plugin".
- Klik Tambahkan File. Navigasikan ke DLL IME Anda dan tambahkan ke folder Plugin . Ulangi langkah ini untuk kamus IME.
- Klik kanan DLL IME dan pilih Properti. Dialog Properti terbuka.
- Dalam dialog Properti, klik tab PENGATURAN COM & .NET.
- Di bawah Jenis Pendaftaran, pilih Pendaftaran mandiri dan klik OK.
- Bangun solusinya. DLL IME dibuat, dan InstallShield membuat file setup.exe yang memungkinkan pengguna menginstal IME Anda di Windows.
Untuk membuat pengalaman penginstalan Anda sendiri, panggil metode ITfInputProcessorProfileMgr::RegisterProfile untuk mendaftarkan IME selama penginstalan. Jangan menulis entri registri secara langsung.
Jika IME harus dapat digunakan segera setelah penginstalan, panggil InstallLayoutOrTip untuk menambahkan IME ke metode input yang diaktifkan pengguna, menggunakan format berikut untuk parameter psz:
<LangID 1>:{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
Aksesibilitas IME
Terapkan konvensi berikut untuk membuat IMEs Anda sesuai dengan persyaratan aksesibilitas dan bekerja dengan Narator. Agar daftar kandidat dapat diakses, IMEs Anda harus mengikuti konvensi ini.
- Daftar kandidat harus memiliki UIA_AutomationIdPropertyId sama dengan "IME_Candidate_Window" untuk daftar kandidat konversi atau "IME_Prediction_Window" untuk daftar kandidat prediksi.
- Ketika daftar kandidat muncul dan menghilang, daftar tersebut masing-masing memunculkan peristiwa jenis UIA_MenuOpenedEventId dan UIA_MenuClosedEventId
- Ketika kandidat yang dipilih saat ini berubah, daftar kandidat akan menaikkan UIA_SelectionItem_ElementSelectedEventId. Elemen yang dipilih harus memiliki properti UIA_SelectionItemIsSelectedPropertyId sama dengan TRUE.
- UIA_NamePropertyId untuk setiap item dalam daftar kandidat haruslah nama kandidat. Secara opsional, Anda dapat memberikan informasi tambahan untuk membedakan kandidat melalui UIA_HelpTextPropertyId.
Topik terkait
Windows developer