The IME class is a predefined global window class that implements the user interface portion of the IME. The IME class has many of the same characteristics as the predefined common control windows. An IME window instance can be created by the CreateWindowEx function. Like static controls, the IME class window does not respond to user input by itself; instead, it receives various types of control messages to realize the entire user interface of the IME. An application can create its own IME windows by using the IME class, or it can obtain the default IME window by using the ImmGetDefaultIMEWnd function. An application that creates its own IME window or uses the default IME window is considered an IME-aware application and receives the following benefits (as compared to a similar application in Windows 3.1):
Even though the system provides only one IME class, there are two types of IME window. One type is created by the system for IME-unaware applications. The DefWindowProc function processes messages for this window. The DefWindowProc function's IME user interface is shared by all IME-unaware windows of a thread. In this documentation, this is called the default IME window. The other windows are created by IME-aware applications. In this documentation, windows created by IME-aware applications are called application IME windows.