这篇文章参考了Input Method Manager。
从输入法的角度来讲,应用程序可以分为IME-aware和IME-unaware两类。
IMM是使应用程序和IME进行通信的一种技术。它以服务的方式运行。
IME允许用户使用标准键盘输入复杂的字符和符号,不如输入中文、韩文和日文等。
IME监控用户的击键,预测用户期望的输入,提供候选词以供选择。
IMM只有在中国、韩国和日本本地化环境中有效。
1、候选词类表(Candidate List)
候选词类表是还有字符和字符串的数组。要获得相关信息可以调用ImmGetCandidateListCount和ImmGetCandidateList两个方法。
2、编码字符串(Composition String)
当用户在Composition Window中键入文本时,IME追踪Composition String的属性、Clause、击键和光标位置信息。每个Clause中的所有字符必须具有相同的属性。
属性数组为字符串中的每个字节对应一个值。数组中的每一个值的第0~3位可以是一下值的一个组合。
1 ATTR_INPUT | 用户键入的字符。IME还没有转换该字符。 |
2 ATTR_INPUT_ERROR | IME不能转换的字符。例IME不能把一些辅音放到一起。 |