Input Method Editors (Windows Store apps)
Input Method Editors (IMEs) enable text input for complex languages.
Overview
An IME is a software component that enables a user (usually, but not limited to, East Asian users) to input text in a language that can't be represented easily on a hardware keyboard, due to the number of characters in the language.
Instead of each single character appearing on a keyboard, a user types combinations of keys that are interpreted by the IME. The IME generates the character that matches the set of key strokes, possibly presenting the user with a list of candidate characters to pick from, and then inserts the character into the edit control that the user is interacting with.
Your app doesn't need to interact directly with the IME. The IME is built into the system, just as the touch keyboard is. If your app has text input, and you intend to support text input in languages that require an IME, you should test the end-to-end customer experience for text entry. This lets you fix any issues, such as adjusting your UI so it isn't covered by the touch keyboard or IME candidate window.
Creating an IME
IMEs are a core element of the Windows experience for users in East Asian (EA) markets. Microsoft produces IMEs that ship in-box in a variety of languages, to enable a great input experience for users in their markets.
In addition to the in-box IMEs, third-party vendors can develop their own IMEs. Third-party IMEs for both hardware keyboards and touch keyboards are supported. Users can install these third-party IME and use them.
Third-party IMEs run in the Windows system. In addition, the system is hardened to stop malicious IMEs and improve the security and user experience of third-party IMEs.
Third-party IMEs can use the default touch keyboard layout to link to their IME, so that users can use their IME with touch keyboards. However, third party IMEs can't provide their own independent touch keyboard.
Requirements for IMEs
A third-party IME must meet these requirements:
- Must be digitally signed.
- Must be Text Services Framework (TSF) aware, and appropriate IME flags must be set.
- Must follow the UX guidelines for Windows Runtime apps.
A third-party IME that doesn't meet these requirements is blocked from running.
Note The third-party IME can still run on the desktop.
Also, Windows Defender removes malicious IMEs from the system. Because of this, it's important that you familiarize yourself with the IME coding requirements. For more info, see Guidelines and checklist for IME development.
Design guidelines for IMEs
Read the Guidelines and checklist for IME development for more details on best practices and design guidelines for IMEs.
- All IME UIs need to follow the UX guidelines for Windows Runtime apps.
- No sticky windows. Only show the IME window when needed.
- IME icons must be black and white only.
Related topics
- Guidelines and checklist for IME development
- ITfFnGetPreferredTouchKeyboardLayout
- ITfCompartmentEventSink
- ITfThreadMgrEx::GetActiveFlags
- ITfContextView::GetWnd
- TF_INPUTPROCESSORPROFILE
- SendInput