Fully IME-aware applications create and maintain their own input contexts and draw the IME's status, composition, and candidate windows themselves. Whereas applications with partial support might reposition the IME's user interface windows or change the fonts used to display characters, fully IME-aware applications can customize the IME user interface more extensively. Windows 95 provides a number of API calls, listed in Appendix N, for communicating closely with IMEs. Because IME DLLs still contain the code that converts keyboard strokes into characters and determines candidate lists, applications need to query IMEs for information on composition strings and candidate lists before they can draw any windows. Applications also need to ask IMEs for status information, such as whether the IME is open or closed, and what the current input mode and sentence mode are.