Konteks Input
"Konteks input" adalah struktur internal yang dikelola oleh IMM. Ini berisi informasi tentang status IME dan digunakan oleh jendela IME. Secara default, sistem operasi membuat dan menetapkan konteks input ke setiap utas. Dalam utas, konteks input default ini adalah sumber daya bersama dan dikaitkan dengan setiap jendela yang baru dibuat.
Untuk mengambil atau mengatur informasi di IME, aplikasi yang sadar IME harus terlebih dahulu mengambil handel ke konteks input yang terkait dengan jendela tertentu. Aplikasi mengambil handel dengan menggunakan fungsi ImmGetContext . Ini dapat menggunakan handel yang diambil dalam panggilan berikutnya ke fungsi IMM untuk mengambil dan mengatur nilai IME, seperti gaya jendela komposisi, gaya komposisi, dan posisi jendela status. Setelah aplikasi selesai menggunakan konteks, aplikasi harus merilis konteks menggunakan fungsi ImmReleaseContext .
Karena konteks input default adalah sumber daya bersama, setiap perubahan yang dilakukan aplikasi untuk itu berlaku untuk semua jendela di utas. Namun, aplikasi dapat mengambil alih perilaku default ini dengan membuat konteks inputnya sendiri dan mengaitkannya dengan satu atau beberapa jendela utas. Perubahan yang dilakukan pada konteks input khusus aplikasi hanya berlaku untuk jendela yang terkait dengan konteks.
Aplikasi Anda dapat membuat konteks input dengan menggunakan fungsi ImmCreateContext . Untuk menetapkan konteks ke jendela, aplikasi memanggil fungsi ImmAssociateContext . Fungsi ini mengembalikan handel ke konteks input yang terkait sebelumnya. Jika aplikasi belum mengaitkan konteks input dengan jendela, handel yang dikembalikan adalah untuk konteks input default. Biasanya, aplikasi menyimpan handel ini dan kemudian mengaitkannya kembali dengan jendela ketika konteks input yang disesuaikan tidak lagi diperlukan.
Setelah konteks input dikaitkan dengan jendela, sistem operasi secara otomatis memilih konteks tersebut saat jendela diaktifkan dan menerima fokus input. Gaya dan informasi lain dalam konteks input memengaruhi input keyboard berikutnya untuk jendela tersebut, menentukan cara IME beroperasi.
Aplikasi Anda harus menghancurkan konteks input yang disesuaikan sebelum berakhir. Pertama, aplikasi menghapus konteks input dari asosiasi apa pun yang telah dibuatnya dengan jendela di utas dengan menggunakan fungsi ImmAssociateContext . Kemudian, ia memanggil fungsi ImmDestroyContext .
Topik terkait