
What are the differences between IME-unaware, partially aware and fully aware apps?
IME-unaware applications ignore all IMM/IME window messages. They do not call any IMM/IME APIs. They rely solely on the default window process in USER to process all IME-related messages. They received finalized input characters from the IME just as they would from a keyboard.
Partially IME-aware applications tend to want to control the behavior of the IME—opening or closing the IME, or positioning the IME UI windows. These applications might get the IME converted strings through special IMM messages. They do not display any user interface elements themselves.
Fully IME-aware applications take responsibility for painting the IME UI windows (the status, composition, and candidate windows) from the IME. These applications can fully customize the appearance of each window, including the position on the screen and the fonts and font styles used to display characters in them. This allows more sophisticated programs, which rely heavily on text input (such as word processors) to provide the user with a more transparent character input method.