经过一周多的拔山涉水,痛苦煎熬,终于在wince5上将mspy3中文输入法调出来了。
      原来在wince4.2下已经成功了的,但是也是由于受到wince4.2的影响,而耽搁了这么多天。我参照wince4.2下的设置,将以下设置加到wince5下的platfrom.reg中:
#define BUILTIN_ROOT HKEY_LOCAL_MACHINE\Drivers\BuiltIn
#define DRIVERS_DIR $(_PUBLICROOT)\common\oak\drivers
[HKEY_CURRENT_USER\Keyboard Layout\Preload\1]
 @="00000409"
#include "$(DRIVERS_DIR)\keybd\keybd.reg"
#include "$(DRIVERS_DIR)\keybd\LayMgr.reg"
并将catalog中的MSPY 3.0 for Windows CE下的Double Spelling (Shuang Pin) soft keyboard - Small和1.7 MB - Standard Database加到os中。但是问题很快出现了,键盘根本就不能用了。原来不加还可以输入英文,但是现在干脆用都不能用了。
      于是乎,我就自己找了个偏僻的地方乘凉去了。我的感觉是似乎少加了什么东西,但是经过n+1次的调试之后还是没有什么效果。
      在快要绝望的时候,对比了一下wince4.2和wince5下的wceshellfe.reg(public\wceshellfe\oak\files\wceshellfe.reg,输入法的注册表设置就是在这个.reg中)。通过对比发现最主要的不同就是在wince4.2中的有这样一项(如下)在[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Layouts\e0010804]之前。
[HKEY_CURRENT_USER\Keyboard Layout\Preload\1]
 @="e0010804"
      还记得刚才在platform.reg中的设置吗,似乎离问题的解决只有0.01毫米了。将上面的注册项添加到platform.reg中并改为preload\2。sysgen后,终于看到了中文输入法。但是似乎Ctrl + Space之后就再也切换不回来中文输入法了。怪哉!
      看来添加注册项在这里是行不通的了,那就直接修改好了。最后的修改结果如下(platform.reg中):
#define BUILTIN_ROOT HKEY_LOCAL_MACHINE\Drivers\BuiltIn
#define DRIVERS_DIR $(_PUBLICROOT)\common\oak\drivers
[HKEY_CURRENT_USER\Keyboard Layout\Preload\1]
 @="e0010804"
#include "$(DRIVERS_DIR)\keybd\keybd.reg"
#include "$(DRIVERS_DIR)\keybd\LayMgr.reg"
 
      至此,可以正常的对中英文输入法进行切换了。