输入法管理器:

GetSystemMetrics(82)   // 常量: SM_IMMENABLED 确定是否已启用 IMM

IME开发就是实现类似“输入法名字.ime”这样一个动态库(编译的时候通常将.dll后缀改为.ime后缀)。这个库需要导出如下15个接口函数:

红色的为最重要的两个

ImeConversionList根据输入上下文的有关内容,将字符串/字符转换成目标字符串/字符
ImeConfigure设置ime参数
ImeDestroy退出当前使用的IME
ImeEscape应用软件访问输入法的接口函数 应用程序通过调用这个函数可以直接访问某个输入法编辑器的特定功能,这些功能通常无法通过其他的IMM函数调用实现。这么做的目的主要是为了支持特定语种的函数或者IME的私有函数
ImeInquire刚选择某输入法时,IMM调用此函数,获得输入法相关信息,并根据用户界面类UICLASSNAME,自动创建用户界面
ImeProcessKey

IMM 通过IME 转换接口ImeProcessKey 将键盘消息发动到IME

此函数对键盘消息进行筛选处理,用以判断此消息是发送给IME 还是直接发送给应用程序。

如果返回TRUE 则发送给IME  否则,直接发送给应用程序

ImeSelect打开或关闭输入法时被调用,在此函数中对输入法上下文进行初始化或恢复释放
ImeSetActiveContext若是在某个窗口中打开了输入法编辑器,那么此接口函数会在应用程序窗口得到或失去输入焦点时被调用。在此函数中能够获取当前的输入法上下文并通知输入法编辑器用户界面窗口组件,令其刷新显示
ImeSetCompositionString由应用程序设置输入法编码
ImeToAsciiExIME 通过ImeToAsciiEx 函数来处理ImeProcessKey 发送过来的键盘消息,并最终转换为输出的结果串
NotifyIME系统或(IME有意识)应用程序通知输入法编辑器根据参数修改输入法编辑器的当前状态。好比:显示/隐藏候选窗口,选定某个候选项,更新候选窗口页起始位置和页尺寸,更新输入上下文内容,修改写做串内容等等;
ImeRegisterWord向输入法编辑器的词典里增长一个新词;
ImeUnregisterWord把某个词今后输入法编辑器的词典里去掉;
ImeGetRegisterWordStyle取得本输入法编辑器支持的词风格的列表;
ImeEnumRegisterWord列出符合给定条件的全部字符串。


详细解释