输入法编程指南(根据 msdn 翻译)
Windows 95 输入法编辑器(IME)
原著:Microsoft
翻译:TBsoft Software Studio
一、关于 Windows 95 混合语言 IME
在 Windows 95 中,IME 是一个动态链接库(DLL),与 Windows 3.1 远东版本 IME 不同的是,
每一个运行的 IME 相当于混合语言键盘布局中的一种。与 Windows 3.1 IME 相比较,Windows 95
混合语言 IME 提供下列增强功能:
●运行时相当于混合语言环境的一个部件
●为每一个应用程序任务提供多重输入上下文
●为每一个应用程序线程提供一个活动的 IME
●通过应用程序消息循环给应用程序提供信息(消息顺序不能改变)
●为无 IME 支持应用程序和部分 IME 支持应用程序提供有力的支持
要得到全部的增强功能,应用程序需要支持 Windows 95 IME 应用程序 I/F。
本文档描述了 Windows 95 IME 体系结构的应用程序 I/F。
1、IME 的结构
Windows 95 IME 必须提供两个部件:IME 转换接口和 IME 用户接口。IME 转换接口由一组 IME
模块引出函数提供,这些函数被 IMM(输入法管理器——译者注)调用。
IME 用户接口由一组窗口提供,这些窗口接收消息并提供 IME 的用户界面。
2、IME 支持应用程序(IME 感知应用程序——译者注)
应用程序有下列类型:
●无 IME 支持应用程序:这种应用程序不控制 IME,然而,如果应用程序接受 DBCS 字符,用户可
以通过 IME 在应用程序中输入 DBCS 字符。
●部分 IME 支持应用程序:这种应用程序只控制不同的 IME 上下文,例如打开和关闭 IME、写作窗
口等等,但是不重新显示任何 IME 用户界面。
●完全 IME 支持应用程序:这种应用程序负责管理通过 IME 显示给应用程序的任何信息。
在 Windows 95 中,一个无 IME 支持应用程序有一个缺省的 IME 窗口和一个缺省的输入上下文。
部分 IME 支持应用程序使用预定义的“IME”类创建自己的 IME 窗口,可以管理或者不管理自己的
输入上下文。
完全 IME 支持应用程序自己管理输入上下文,显示输入上下文给出的任何需要的信息,不使用 I
ME 窗口。
二、IME 用户界面
IME 用户界面包括 IME 窗口、用户界面(UI)窗口以及 UI 窗口的部件。
1、特征
IME 类是实现 IME 用户界面部分的预定义全局窗口类。“IME”类与预定义的公共控制窗口类有许
多相同的特点,IME 窗口实例与静态控制一样通过 CreateWindowEx 函数创建,IME 类窗口自己不
响应用户输入,取而代之的是接收不同类型的控制消息实现全部 IME 用户接口。应用程序可以使用
IME 类创建自己的 IME 窗口,还可以使用 ImmGetDefaultIMEWnd 函数获取缺省 IME 窗口。创建自
己的 IME 窗口或者使用缺省 IME 窗口的应用程序被称为 IME 支持应用程序,具有以下优点(与对应
的 Windows3.1 应用程序比较):
●包括候选字列表窗口(候选窗口),每一个应用程序可以有自己的用户界面窗口实例,使得用户
可以在任何输入过程的中途停止并切换到另一个应用程序。在 Windows 3.1 日文版本中,用户切换