The system creates the default IME window when a thread is initialized. That is, the default IME window is given to a thread automatically. The default IME window provides the IME user interface for IME-unaware applications. When the IME or IMM generates an IME message (WM_IME_*), an IME-unaware application passes the message to the DefWindowProc function. DefWindowProc sends the necessary messages to the default IME window, which provides the default IME user interface for the application. An IME-aware application can also use the default IME window when it does not hook messages from IME. The application can use its own application IME window only when necessary.