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 doesn't 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 windows 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 document, this is called the default IME window. The other windows are created by IME aware applications. In this document, windows created by IME-aware applications are called application IME windows.