The main parts of the Input Method system are the following:
The basic operation is as follows.
A user presses keys on a keyboard. These keystrokes are routed to the IME by the IMM. The IME uses the keys either as commands or to generate characters in the composition string. As the IME carries out its operations, it sends notification messages to the window that currently has the focus. If this window does not process the messages, the messages are sent to the IME Control window, which then routes them back to the IME for default processing. Windows that do not process IME messages are called IME-unaware windows. The IME provides the entire user interface, and the window is completely unaware that an IME is operational. Windows that intercept and process IME messages are called IME-aware windows. By intercepting IME messages, these windows may provide their own UI. By using IMM functions, these windows communicate with the IME.