Overview by Functionality
There are three functional approaches to working with the Input Method Editor (IME).
IME Active Dictionary Interface: The IMEActiveDict Interface global interface allows vendors to develop a plug-in dictionary in any format.
IME Pad Interface: The IIMEPad Interface global interfaces allow vendors to develop a "pluggable" input method with its own user interface. The WM_MSIME_xxx Messages allows an application to control the IME Pad as a part of the IME interface. The IIMEFNIMEPad Interface interface allows an application to invoke the IME Pad on the Common Text Framework.
Other Native Application Interfaces: Currently, there are four other global interfaces, namely IFECommon Interface, IFE Language 2 Interface, IFEDictionary Interface, and IIMECheckDefaultInputProfile Interface. In addition, a service object called CIMEShare Interface allows multiple applications to share the same behavior and UI (IME-undetermined string). Further, the WM_MSIME_xxx Messages are defined to allow applications to use advanced features of Microsoft IME in synchrony with standard IMM messages, through the IME interface.