用于集成虚机和输入方法编辑程序的方法

文档序号:6415668阅读:135来源:国知局
专利名称:用于集成虚机和输入方法编辑程序的方法
本申请是美国专利申请序号08/831,975的部分继续申请,后者于1997年4月2日递交,发明人为David M.Silver和Yung-Shin Lin,名称为“用于集成虚机和输入方法编辑程序的方法”。
本发明一般地涉及扩充型键盘编辑程序,尤其涉及平台可移植的虚机和输入方法编辑程序的集成,用于建立复合字符,例如包括日文、中文和朝鲜文的非拉丁语言的书面表意文字。
因特网带来的全球性连接将增加对国际化软件产品的需求并且对国际化应用程序提出更多的需求。例如,在因特网上传送并运行的应用程序需要在运行时和用户的语言相适应。有的应用程序要求是多语言的并且支持不同语言的组合。平台可移植的编辑语言JAVA已设计成支持国际化。JAVA原始字符类型以单一代码(Unicode)为基,该单一代码是用于编辑书写语言元素的国际标准。
虽然JAVA包括对单一代码串的支持,许多文本编辑程序采用双字节字符集(DBCS)编码,而且许多文本文件包括DBCS串而不是单一代码串。对于包含DBCS串的文本文件,在编译时必须把源文件转换成单一代码。此外,在读写操作期间必须把DBCS串转换成单一代码。微软系统的用于JAVA的开发工具增强了JAVA的支持DBCS编码及微软视窗资源国际化特性。
具体地,在把源代码编译成类文件时,微软JAVA编译程序(JVC)把源代码文件中的DBCS文字串翻译成单一代码。当带有单一代码使JAVA支持(例如微软Internet Explorer 3.0版中的支持)的浏览器运行这些类文件时,这些文字串会正确地出现。此外,微软虚(拟)机允许系统开发员编写基于JAVA的在DBCS和单一代码之间转换文本串的程序。
输入方法编辑程序(IME)是一种程序,它允许计算机用户利用标准键盘输入复杂字符和符号,例如日文汉字字符。微软视窗的国际化版本为使用非拉丁字母表,例如日文、朝鲜文、繁体中文、简化中文,的语言的场所提供系统IME。也可为其它语言如俄语、阿拉伯语、希伯来语等开发IME。
目前,IME源代码不能由系统开发员以需要为基础修改。由于各种IME是在许多不同类型的平台上利用不同的操作系统实现的现实,很难使IME源代码变体普遍使用。期望更新每一种可能必须和IME交互的操作系统不是一种切实可行的解决办法。
从而,需要一种平台可移植的虚机,它允许各个开发员以其需要为基修改IME源代码。实际上,需要一种为宿留基于JAVA的IME以及现有系统IME的JAVA应用程序提供IME支持的系统。
本发明通过集成JAVA虚机和一个或多个IME,满足一种允许各个开发员按其需要为基修改输入方法编辑程序(IME)的平台可移值的虚机的需求。可在采用不同操作系统的大范围平台上有益地实施JAVA编辑环境。从而,系统开发员可以利用JAVA虚机在采用不同操作系统的大范围的各种平台上修改IME源代码。此外,在一种平台上修改的IME可移植到采用其它操作系统的其它平台上。从而,本发明提供一种允许各个开发员按其需要为基础修改IME源代码的平台可移植的虚机。
依据本发明的基于JAVA的虚机在下述三种范围内支持输入方法编辑程序(IME)(1)利用带有JAVA虚机的基于JAVA的IME;(2)编写基于JAVA的IME;以及(3)把JAVA虚机集成到各系统IME。虚机包括一个窗口管理程序、一个输入方法管理程序、一个或多个IME和/或键盘驱动程序(KBD)以及一个组件。虚机还可以包括一个用于集成虚机和系统IME的系统IME桥路以及一个用于集成虚机和系统KBD的系统KBD桥路。窗口管理程序充当操作系统和虚机之间的网关。输入方法管理程序(IMM)充当窗口管理程序和多个IME、KBD之间的路由器。IME包括一个复合字符查开表,这些字符由单一代码键盘命令检索。该组件典型地提供一个允许用户操纵由IME回送的复合字符的用户接口。
为容纳用户可定义的IME及组件,虚机实现一组预先规定的接口,这些接口允许上述各IME和各组件彼此通信并且和虚机的其它构件(即窗口管理程序和IMM)通信。这些预先规定的接口允许系统开发员修改各IME和各组件的功能以及把修改后的IME及组件与虚机集成。具体地,一个可兼容的IME实现一个称为接口方法收听器接口的接口。IMM实现一个称为输入管理程序收听器接口的接口。窗口管理程序实现一个称为输入方法回收接口的接口。而该组件实现一个称为输入方法消息收听器接口的接口。通过编写一个实现输入方法收听器接口的IME建立一个可兼容的IME。即,建立一个实现输入方法收听器接口的IME是必要的,并且对于建立一个可和依据本发明构建的虚机兼容的IME是充分的。
概括地描述,本发明是一种平台可移植的虚机,其运行在包括键盘、显示器、处理单元及在该处理单元上运行的操作系统的计算机系统上。也运行在该处理单元上的该虚机包括一个窗口管理程序,后者从该操作系统接收键盘命令。该输入方法管理程序接收来自窗口管理程序的键盘命令。输入方法编辑程序接收来自输入方法管理程序的键盘命令并且把键盘命令翻译成复合字符,例如书面表意文字或书面表意文字的元素。该组件接收来自输入方法编辑程序的复合字符并且为在显示器上显示提供复合字符。
更具体地,窗口管理程序接收来自键盘的键盘命令并且判定输入方法管理程序是否现用。若输入方法管理程序不是现用的,窗口管理程序把键盘命令传送到组件上。若输入方法管理程序是现用的,则窗口管理程序把键盘命令传送到输入方法管理程序并且从输入方法管理程序接收回送消息。若输入方法管理程序不能处理该键盘消息,它向窗口管理程序回送“假”回送消息。接着窗口管理程序把键盘命令传送给组件。反之,输入消息管理程序处理键盘命令并且向窗口管理程序回送“真”。
输入方法管理程序接收来自窗口管理程序的键盘命令并且判定键盘命令是否指向输入方法管理程序。若键盘命令是指向输入方法管理程序响应的,输入方法管理程序响应该键盘命令。例如,键盘命令可能造成输入方法管理程序去激活当前现用的输入方法编辑程序并且激活一种替代的输入方法编辑程序。若键盘命令不指向输入方法管理程序,输入方向管理程序把键盘命令传送到当前现用的输入方法编辑程序。
输入方法编辑程序接收来自输入方法管理程序的键盘命令,并且可能把该键盘命令和以前接收的键盘命令组合起来以建立组合串。然后输入方法编辑程序判定该组合串是否对应某复合字符。若该组合串对应于某复合字符,输入方法编辑程序把组合串翻译成复合字符并且把该复合字符传送到窗口管理程序。窗口管理程序从输入方法编辑程序接收复合字符,并且把复合字符传送到组件。
组件接收来自窗口管理程序的复合字符,提供显示设备上的用户接口,并且和该用户接口相结合在显示设备上提供复合字符。接着组件通过用户接口接收用户命令,响应用户命令改变复合字符,并且和用户接口相结合在显示设备上提供改变后的复合字符。
计算机系统还可包括在处理单元上运行的系统输入方法编辑程序,并且虚机可包括一个用于把系统输入方法编辑程序和窗口管理程序及输入方法管理程序集成起来的输入方法编辑程序桥路。
依据本发明的一个方面,输入方法编辑程序定义一个包括第一接口方法的接口,该方法用于从输入方法管理程序接收指示输入方法编辑程序处理键盘命令的消息。该输入方法编辑程序接口还可包括第二接口方法,用于从输入方法管理程序接收指示输入方法编辑程序以激活的消息。该输入方法编辑程序接口还可包括第三接口方法,用于从输入方法管理程序接收指示输入方法编辑程序以去激活的消息。该输入方法编辑程序接口还可包括第四接口方法,用于从窗口管理程序接收指示输入方法编辑程序处理该接收的消息的消息。
该输入方法编辑程序接口还可包括第五接口方法,用于从组件接收指示输入方法编辑程序提供用于在显示设备上显示的用户接口的消息。该输入方法编辑程序接口还可包括第六接口方法,用于从组件接收定义由输入方法提供的用户接口的尺寸的消息,以便在显示设备上显示。该输入方法编辑程序接口还可包括第七接口方法,用于从组件接收定义由输入方法提供的用于在显示设备上显示的用户接口的位置。
依据本发明的另一个方面,该输入方法管理程序定义一个包括第一接口方法的接口,该方法用于从窗口管理程序接收指示输入方法管理程序激活第一输入方法编辑程序的消息。该输入方法管理程序还可包括第二接口方法,用于从窗口管理程序接收指示输入方法管理程序从输入方法编辑程序的注册表中去掉第二输入方法编辑程序的消息。该输入方法管理程序还可包括第三接口方法,用于从窗口管理程序接收指示输入方法管理程序确定一个现用输入方法编辑程序的消息。该输入方法管理程序还可包括第四接口方法,用于从窗口管理程序接收指示输入方法管理程序枚举输入方法编辑程序的注册表的消息。该输入方法管理程序还可包括第五接口方法,用于从窗口管理程序接收要求输入方法管理程序处理键盘命令的消息。
依据本发明的又一个方面,窗口管理程序定义一个包括用于从输入方法编辑程序接收消息的接口方法的接口。此外,组件定义一个包括用于从窗口管理程序接收消息的接口方法的接口。
从下面对示范实施例的详细说明,本发明对现有技术中的缺点的改进以及对本发明的目的的实现将变为清晰。


图1是为本发明的示范实施例提供运行环境的个人计算机的示意框图。
图2是一个示意框图,说明与平台可移植的虚机配合的操作系统以便把该操作系统和多个输入方法编辑程序及键盘驱动器相集成。
图3是一个逻辑流程图,说明用于操作图2的虚机内的窗口管理程序的第一例行程序。
图4是一个逻辑流程图,说明用于操作图2的虚机内的窗口管理程序的第二例行程序。
图5是一个逻辑流程图,说明用于操作图2的虚机内的输入方法管理程序的一个例行程序。
图6是一个示意框图,说明依据本发明的一种实施例的输入方法编辑程序的接口。
图7是一个示意框图,说明依据本发明的一种实施例的输入方法管理程序的接口。
图8是一个示意框图,说明依据本发明的一种实施例的窗口管理程序的接口。
图9是一个示意框图,说明依据本发明的一种实施例的组件的接口。
图10A是一个示意框图,说明用于处理键盘命令的现有技术方法。
图10B是一个示意框图,说明用于实现输入方法编辑程序的现有技术。
图11是一个示意框图,说明依据本发明的一种实施例的支持系统输入方法编辑程序的虚机。
图12是一个示意框图,说明依据本发明的一种实施例的实现输入方法编辑程序的虚机。
图13是一个示意框图,说明依据本发明的一种实施例的宿留系统输入方法编辑程序的虚机。
示范实施例的详细说明本发明可体现在下述三种范围内支持IME功能的虚机中(1)利用带有JAVA虚机的基于JAVA的IME;(2)编写基于JAVA的IME;以及(3)把JAVA虚机集成到各系统IME。虚机包括一个窗口管理程序、一个IMM、一个或多个基于JAVA的IME、一个或多个基于JAVA的KBD及一个组件。虚机还可包括一个用于集成虚机和系统IME的系统IME桥路以及一个用于集成虚机和系统KBD的系统KBD桥路。
窗口管理程序充当操作系统和虚机之间的网关。因此,窗口管理程序接收来自操作系统的键盘命令,其中包括诸如“CTRL+”、“ALT+”、“CTRL ALT+”的功能命令和复合键盘命令,这些命令增加了可由标准键盘唯一标记的字符数量。窗口管理程序把键盘命令翻译成标准单一代码格式并且恰当地把单一代码键盘命令传送到组件上或IMM上。窗口管理程序还接收由IME回送的复合字符并且把复合字符传送到组件上,以如组件的功能所规定供显示并进而由用户操纵。窗口管理程序还可接收IME消息并把IME消息传送到组件。
IMM充当窗口管理程序和多个IME及多个KBD之间的路由器。IMM响应某些IMM命令如触发命令,以允许用户激活特定的IME或KBD。IMM典型地通过去激活先前现用的IME或KBD并且激活指定的IME或KBD对IMM命令作出响应。接着IMM把后继的键盘命令路由到被激活的IME或KBD,直到接收另一个IMM命令为止。
IME包括一个复合字符查找表,这些复合字符是通过各种单一代码键盘命令检索的。IME接收称为WM_IME_CHAR键盘命令的单一代码消息,并且把它们翻译成对应的复合字符。为了进一步增加可由标准键盘唯一标记的字符数量,可把IME配置成根据多重键盘命令检索复合字符。即,IME可组合一些WM_IME_CHAR键盘命令以构建和某预先确定的复合字符对应的某单一代码组合串。采用多重键盘命令组合串可使IME检索成千上万的独立复合字符,这对于生成非拉丁语,如日文、朝鲜文和中文,的书面表意文字是非常有用的。接着IME把复合字符传送到窗口管理程序,后者把复合字符传送到组件供用户进一步操作。
IME还把称为IME消息的指令传送到窗口管理程序。窗口管理程序典型地把IME消息传送到组件。IME消息典型地包括组合消息,例如“开始复合字符”以及“结束复合字符”,它们使IME和组件交互作用。系统开发员可对组件和IME进行配置,以便按其需要为基础处理许多其它IME消息。JAVA虚机提供一种可使组件和IME通信的机制,但是JAVA虚机并不限定组件或IME的功能。而且JAVA虚机也不限定可在组件和IME之间通信的IME消息的类型或结构。从而,虚机不确定专用的IME消息,相反,这是留给各个系统开发员以其需要为基础定义的。虚机的作用是提供一种把用户可定义的IME和用户可定义的组件相集成的标准化载体。
尽管可把组件或IME配置成控制IME的绘图空间,组件典型地提供一个用户接口,其允许用户改变IME回送的复合字符,例如书面表意文字或书面表意文字的元素。当然,随着平台的不同以及用户的不同,可由用户定义的具体IME和组件的功能性可以是不同的。为了容纳这些可由用户定义的IME和组件,虚机实现一组预先确定的接口,这些接口使得IME和组件可彼此通信以及可和虚机的其它构件(窗口管理程序和IMM)通信。这些预先规定的接口允许系统开发员修改IME和组件的功能以及把IME及组件和虚机相集成。
从而,本发明的各示范实施例主要是定义一组允许虚机的各构件彼此通信的协同操作的接口。一个可兼容的IME实现称为接口方法收听器接口的一个接口。接口方法收听器接口最好包括八种接口方法“处理键”-指示IME试图响应某事件(例如键盘命令);“处理IME消息”-指示IME处理IME消息;“设定可见组件”-告诉IME哪个模块控制IME的绘图空间;“设定位置”-指示IME在特定位置上开始绘图;“设定尺寸”-设定IME要画的图形图象的尺寸;“涂”-指示IME开始绘制某字符;“激活”-指示IME响应后继消息;以及“去激活”-指示IME不响应后继消息(激活除外)。
IMM实现称为输入管理程序收听器接口的一个接口。输入管理程序收听器最好包括五种接口方法“得到输入方法”-指示IMM确定现用IME;“得到输入方法数量”-指示IMM枚举注册的IME;“去掉输入方法”-指示IMM从IME的注册表中去掉某IMM;“设定输入方法”一指示IMM激活某特定IME;以及“被处理的键”-使窗口管理程序把键盘命令传送到IMM并且得到来自IMM表示IMM接受或拒绝该键盘命令的回送消息。
窗口管理程序实现称为输入方法回叫接口的一个接口。输入方法回叫接口最好包括二种接口方法“处理IME字符”-其由IME使用以向窗口管理程序回送复合字符,例如书面表意文字或者书面表意文字的元素;以及“处理IME消息”-用于由IME向窗口管理程序传送IME消息。
组件实现称为输入方法消息收听器接口的一种接口。输入方法消息收听器接口最好包括一种接口方法“处理IME消息”-用于由窗口管理程序把复合字符和IME消息传送给组件。
通过编写一个实现输入方法收听器接口的IME建立一个可兼容的IME。即,对于建立一个可和依据本发明构建的虚机兼容的IME,建立一个实现输入方法收听器接口的接口是必要的和充分的。虚机还可包括一个系统IME桥路,它集成虚机和系统IME。该系统IME桥路把标志或其它命令名标识符插入到IME消息中以防止从系统IME到操作系统的不希望反馈。类似地,虚机还可包括一个系统KBD桥路,它集成虚机和系统KBD。
和系统IME相比,基于JAVA的IME提供更多的灵活性及控制。例如,基于JAVA的IME可和视窗操作系统的任何版本一起使用。从而,基于JAVA的混合平台IME可运行在任何安装着虚机的系统上。从而,可用单个JAVA应用程序并发地激活多个基于不同语言的以JAVA为基的IME。基于JAVA的IME可被封装并且借助小应用程序从因特网下载,或者用户随意下载。应用程序可以控制IME接口元素,诸如成分、状态和候选窗口。保密的基于JAVA的IME实现常规的JAVA安全准则并且借助JAVA应用程序运行在“沙箱”中。
com.ms.util包包括输入方法收听器接口类,该类是用于基于JAVA的IME的基类。基于该类的IME会由IMM识别。虚机还支持装在COM包装件中的现有系统IME,COM包装件可和基于JAVA的IME互换。但是,和使用系统IME相关存在一些限制。只要JAVA虚机得到安装,在任何系统上可使用基于JAVA的IME,而与系统定位在何种语言无关。另一方面,系统IME受限于主机系统上IMM所支持的IME。例如,朝鲜语的系统IME不能运行在定位于希腊语的视窗95的有关版本上。
系统IME由com.ms.util包中的系统IME类支持。通过嵌入一个直接和各系统IME通信的对象COM,系统IME类实现输入方法收听器接口。该COM对象从IME接收键盘命令消息并且把复合结果传送到窗口管理程序并且继续传送到组件。
(***问题在本申请之前知道com.ms.util包吗?,或者,它对这种类型的申请是标准吗?我们注意到本申请未详细说明下述来自API的信息“关于com.ms.util输入方法”、“类IME复合消息”、“类IME通知消息”及“类输入方法消息”。这些信息对于理解和实施本发明是必需的吗?)现参照附图在下面说明本发明的示范实施例,在几个附图中相同的数字表示相同的构件。总体上,图1表示本发明的公开实施例的运行环境。示范性运行环境图1和伴随的说明为实施本发明的适当计算环境提供简单概括的说明。尽管是在个人计算机中操作系统上运行的应用程序的总范围内说明本发明的,业内人士可意识到本发明也可在和其它程序模块组合下得到实现。通常,程序模块包括例行程序、程序、组件、数据结构等,它们执行特定任务或者实现特定的抽象数据类型。此外,业内人士可理解,可以用其它计算机系统配置实施本发明,包括手持部件、多处理机系统、基于微处理器的或可编辑的家用电器、小型计算机、大型计算机等。本发明也可实施于分布式计算环境,在该环境下通过经通信网络链接的远程处理设备执行各任务。在分布式计算环境下,程序模块可位于本地和远程存储设备中。
参照图1,实现本发明的一种示范性系统是常规个人计算机20,它包括处理单元21、系统存储器22以及把系统存储器连接到处理器21的系统总线23。系统存储器22包括只读存储器(ROM)24和随机存取存储器(RAM)25。在ROM24中存储基本输入/输出系统(BIOS)26,BIOS包括帮助在个人计算机20内的构件间传送信息的基本例行程序,例如在启动期间。个人计算机20还包括硬盘驱动器27、软盘驱动器28,例如对可移动盘29进行读写,以及包括光盘驱动器30,例如对CD-ROM盘读或者对其它光介质读写。分别通过硬盘驱动器接口32、软盘驱动器接口33和光驱接口34把硬盘驱动器27、软盘驱动器28和光驱连接到系统总线23上。这些驱动器以及和它们关联的计算机可读介质为个人计算机20提供非易失性存储。虽然上面对计算机可读介质的说明引用了硬盘、可移动磁盘以及CD-ROM盘,业内人士会理解,在示范性运行环境中也可采用其它计算机可读的介质,例如盒式磁带、闪速存储器卡、数字视盘、贝努里盒带等。
在各驱动器和RAM25中可存储一些程序模块,包括操作系统35、一个或多个应用程序36、其它程序模块37以及数据程序38。尤其,其它程序模块37中的一个是JAVA虚机100,虚机100包括下面参照图2-13详细说明的本发明的某些实施例。如业内人士所周知,作为SUN微系统公司的一种注册商标的JAVA指的是一种多平台编辑语言。JAVA虚机100的用户可通过键盘40以及诸如鼠标42的指点器向个人计算机20输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏台、卫星抛物面天线、扫描仪等。通常通过和系统总线连接的串行端口46把这些以及其它输入设备和处理单元21相连接,但是亦可通过其它接口,例如游戏端口或通用串行总线(USB),连接。经过某接口,例如视频适配器48,监视器47或其它类型的显示设备也和系统总线23连接。除监视器外,个人计算机典型地包括其它外围输出设备(未示出),例如扬声器或打印机。
个人计算机20可利用与一个或多个远程计算机如远程计算机49的逻辑连接在连网环境下运行。远程计算机49可以是服务器、路由器、对等部件或其它公用网络节点,并且典型地包括多个或全部相对于个人计算机20说明的构件,虽然在图1中仅示出存储器部件50。图1中描述的逻辑连接包括局域网(LAN)51和广域网(WAN)52。在办公室、公司计算机网、内联网和因特网中,这种连网环境习以为见的。
当在LAN连网环境下使用时,个人计算机20通过网络接口53和LAN 51连接。当在WAN连网环境下使用时,个人计算机20典型地包括用于建立WAN 52,例如因特网,上的通信的调制解调器54。可以在内部或外部的调制解调器54经串行端口接口46和系统总线23连接。在连网环境下,相对于个人计算机20描述的程序模块或模块的一部分可存储在远程存储器设备上。应理解所示的网络连接是示范性的,并且可采用其它建立计算机间通信链接的装置。
公开实施例的操作图2是一个示意框图,表示和JAVA虚机100协同操作的操作系统35,该JAVA虚机100包括多个用IME/J 112和114代表的基于JAVA的输入方法编辑程序以及多个用KBD/J 118和120代表的基于JAVA的键盘驱动程序。通过把预先规定的键盘命令输入到键盘40或某些其它适当类型的输入设备,以书面表意文字编写文档的作者建立书面表意文字。操作系统35在键盘驱动程序102上接收这些键盘命令,键盘驱动程序102把键击译成键盘命令。每次键击转换成三种可独立处理和翻译的键盘命令WM KEYDOWN-表示按下某键,WM_CHAR-典型地是和按下的键相关的ASCII码或数值,以及WM_KEYUP-表示释放某键。这些键盘命令传送到JAVA虚机100。
键盘命令最初由JAVA窗口管理程序108接收,JAVA窗口管理程序108把命令翻译成可由JAVA虚机100的其它构件理解的单一代码键盘命令。窗口管理程序108典型地消耗掉WM_KEYDOWN和WM_KEYUP键盘命令,这些命令充当包括多键复合键盘命令在内的键盘命令的界定符。窗口管理程序108典型地把WM_CHAR键盘命令的单一代码翻译传送给IMM 110,后者起窗口构件108和多个IME及KBD之间的路由器的作用。
IME典型地用于建立非拉丁语,例如中文、朝鲜文和日文,的复合字符。IME一般是相当复杂的,并且经常使用多个键盘命令以定义各个复合字符。IME一般还和一个组件一起运行,该组件允许用户进一步操纵由IME产生的复合字符。KBD是相对简单的翻译程序,用于建立拉丁语,如法语、德语、西班牙语,中的字符。和IME不同,KBD典型地使用单个键盘命令和复式键盘命令(即,同时按多个键)定义各个复合字符。KBD典型地不需要由组件用户接口提供的功能。然而,可以利用通常和IME关联的所有复杂化以及组件用户接口功能开发KBD。
IMM 110为维护IME及KBD注册表并且为激活及去激活注册表中的IME和KBD而工作。例如,标志成IME/J 112的第一基于JAVA的IME可运转成用来生成中文下的书面表意文字。标志成IME/J114的第二基于JAVA的IME可运转成用来生成日文下的书面表意文字。此外,标志成KBD/J 118的第一基于JAVA的KBD可运转成在法文下书写。标志成KBD/J 120的第二基于JAVA的KBD,可运转成在德文或西班牙文下书写。出于简明,后面的说明只涉及IME。然而,应理解,可对KBD实施类似的操作。
IMM 110充当窗口管理程序108和多个用IME112、114、116代表的IME之间的路由路。IME/J 112和114代表基于JAVA的IME,而IME/S116代表系统IME。为在这些IME 112、114、116之中作出选择,IMM 110响应某些允许用户选择某特定IME的预先规定的IMM命令(例如,触发命令)。通过去激活先前现用的IME并且激活指定的IME,IMM 110响应某IMM命令。然后,在接收到另一个IMM命令之前,IMM 110把后继事件传送到被激活的IME。对于非IMM命令,IMM 110把来自窗口管理程序108的命令传送到现用IME。从IMM 108传送到现用IME的命令典型地包括WM-CHAR键盘命令的单一代码翻译。从IMM 110传送到现用IME的键盘命令还可包括用于控制IME的功能命令。
由基于JAVA的IME/J 112和114实现的输入方法收听器接口对于使JAVA组件108适当地和IME交互是必要和充分的。这样,由JAVA开发员根据JAVA虚机系统开发成套软件(SDK)的结构建立的IME/J 112和114一般被编辑为通过虚机100和操作系统35通信。但是,在以前已建立的或不考虑虚机100下建立的基于操作系统IME/S 116可编辑为在某些情况下直接和操作系统35通信。进而会对窗口管理程序108提供IME消息的,IME/S 116和操作系统35之间的这种反馈可产生输入到操作系统35和JAVA虚机100之间的不断循环的命令,或者产生其它不可预测的和不希望的结果。
为了防止这种类型的反馈,JAVA虚机100典型地包括IME/S桥路124,后者把窗口管理程序108链接到系统IME/S 116。JAVA虚机还包括把窗口管理程序链接到系统KBD/S的系统KBD/S桥路126。系统IME/S桥路124和系统KBD/S桥路126分别把标志或其它命令名标识符插入到由IME/S 116和系统KBD/S生成的命令中,以防止不希望的反馈从IME/S116到达操作系统35。具体地,系统IME/S桥路124和KBD/S桥路126分别把WM_CHAR键盘命令改变成WM_IME_CHAR键盘命令以表示消息已由系统IME/S 116或系统KBD/S处理过。
由IME建立的复合字符回送到窗口管理程序108,后者把复合字符传送到组件122。组件122把复合字符译成操作系统35的屏幕驱动程序104理解的操作系统命令。具体地,如业内人士周知的那样,JAVA组件122实现一系列包括“键事件”命令、“后事件”命令及“键按下”命令的命令以在监视器上提供图象。
组件122典型地提供一个用户接口,其包括一个或多个其中包含着若干绘图工具的工具栏。和由IME回送的复合字符相关联在监视器47上显示用户接口。该用户接口允许组件122接收用户命令以进一步操纵复合字符。例如,组件122可使从IME接收的复合字符被显示在该用户接口内。然后组件122可接收利用用户接口的绘图工具建立的用户命令以改变或者增添复合字符。这样组件122把IME和基于JAVA用户接口相集成,以便操纵由IME回送的复合字符。备择地,虚机100允许IME在由另一个程序模块,例如字处理器或编辑程序,控制的绘图空间内画出复合字符。
图3是一个逻辑流程图,说明用于操作虚机100中的窗口管理程序108的第一例行程序300。在步骤302,窗口管理程序108等待事件。窗口管理程序108典型地接收二种类型的事件来自操作系统35的键盘命令和来自IME的包括复合字符和其它系统IME消息的IME消息。在步骤304,窗口管理程序108接收一个事件,该情况下为来自操作系统的键盘命令。
在步骤306,窗口管理程序108判定虚机100是否包括一个用IMM110表示的现用IMM。若虚机100不包括现用IMM,随“NO”分支到达步骤308,在其中窗口管理程序108把键盘命令的单一代码翻译传送到组件122。若虚机100包括现用IMM,随“YES”分支到达步骤310,在其中窗口管理程序108把键盘命令的单一代码翻译传送到IMM 110。
取决于命令的类型,IMM 110可接收该事件,或者IMM 110可拒绝该事件。在步骤311。窗口管理程序108检查IMM是否接收该事件。窗口管理程序108最好通过从输入消息收听器接口的处理键方法接收回送消息进行该查询,该处理键方法被调用以把键盘命令传送到IMM 110。若IMM 100回送指示IMM接收事件的“真”,“YES”分支循环到步骤302,在步骤302窗口管理程序108等待另一个事件。若IMM 100回送指示IMM拒绝事件的“假”,“NO”分支循环到步骤308,在步骤308窗口管理程序108把事件传送给组件122。
在步骤308之后,例行程序300循环到步骤302,在步骤302窗口管理程序108等待另一个事件。在步骤311的查询允许在不必先经过IMM110的传送下把某些事件直接传送到组件122。这样,窗口管理程序108通过把事件传送到IMM 110或者通过把事件传送到用于进一步进行处理并最终提供到监视器47的IMM 110处理每个事件。
图4是一个逻辑流程图,说明用于操作虚机100内的窗口管理程序的第二方法400。在步骤402,窗口管理程序108等待事件。在步骤404,窗口管理程序108接收一个事件,在该情况下为来自IME的复合字符或其它系统IME消息。IME最好通过调用输入方法回叫接口的处理IME消息方法向窗口管理程序108传送事件。
在步骤406,窗口管理程序108判定组件122是否实现输入方法消息收听器接口。若组件122实现输入方法消息收听器接口,随“YES”分支到达步骤408,在步骤408窗口管理程序108把事件传送给组件122。窗口管理程序108最好通过调用输入方法消息收听器接口的处理IME消息方法把事件传送到组件122。若组件122不实现输入方法消息收听器接口,随“NO”分支到达步骤412,在步骤412窗口管理程序108把事件直接发送到现用IME。
再参照步骤408,组件122可接受该事件,或者,组件122可拒绝该事件。若组件122接受事件,组件最好对处理IME消息命令回送“真”。若组件122拒绝事件,组件最好对处理IME消息命令回送“假”。在步骤410,窗口管理程序108判定组件122是否回送“真”。若组件122回送“真”,“YES”分支循环到步骤402,在步骤402窗口管理程序等待另一个事件。若组件122回送“假”,随“NO”分支到达步骤412,在步骤412窗口管理程序108把事件传送到现用IME。在步骤412之后,例行程序400循环到步骤402,在步骤402窗口管理程序等待另一个事件。
从而例行程序400把包含复合字符和其它系统IME命令的各IME消息传送给组件122或者现用IME。允许窗口管理程序108把IME传送给组件122或现用IME中的一个可使JAVA系统开发员把组件122或现用IME中的一个配置成接收某特定的IME消息。该特性的目的是为JAVA系统开发员在设计组件和IME时提供基于不同情况的灵活性。
图5是一个逻辑流程图,说明用于操作虚机100内的IMM的例行程序500。在步骤502,IMM 110等待事件,事件典型地是从窗口管理程序108接收的WM_CHAR键盘命令的单一代码翻译。在步骤504,IMM110接收来自窗口管理程序108的事件。在步骤506,IMM 110判定事件是否是IMM命令。若事件是IMM命令,从步骤506沿“YES”分支到达步骤508,在步骤508IMM 110例如通过去激活先前现用的IME并激活指定IME响应IMM命令。IMM最好通过调用输入方法收听器接口的去激活方法去激活先前现用的IME,并通过调用输入方法收听器接口的激活方法激活指定的IME。步骤508之后是步骤510,在步骤510 IMM110向窗口管理程序108回送“真”,以表示该事件已由IMM接收。在步骤510后,例行程序500循环到步骤502,在步骤502 IMM 110等待另一个事件。
再次参照步骤506,若事件不是IMM命令,从步骤506沿“NO”分支到达步骤512,在步骤512中IMM 110判定虚机100是否包括现用IME。若虚机100包括现用IME,随“YES”分支到达步骤514,在步骤514 IMM 110把事件传送到现用IME。IMM 110最好通过调用输入方法收听器接口的处理键方法把事件传送到现用IMM。步骤514之后是步骤510,在步骤510 IMM 110向窗口管理程序108回送“真”,以表示事件已由IMM接收。在步骤510后,例行程序500循环到步骤502,在步骤502 IMM 110等待另一个事件。
再次参照步骤512,若虚机100不包括现用IME,IMM 110向窗口管理程序108回送“假”,以表示IMM拒绝该事件。在步骤516后,例行程序循环到步骤502,在步骤502 IMM 110等待另一个事件。从而,通过去激活先前现用的IME并激活指定的IME(并向窗口管理程序108回送“真”)、向现用IME传送事件(并向窗口管理程序108回送“真”)或者向窗口管理程序108回送“假”以表示IMM拒绝事件,IMM 100处理每个事件。
图6是一个示意框图,说明由IME实现的和虚机100兼容的输入方法收听器接口600。诸如用IME/J 112表示的某IME或KBD必须实现可和虚机100兼容的输入方法收听器接口。输入方法收听器接口600最好包括第一接口方法“处理键”602。“处理键”接口方法由IMM 110调用以把键盘命令传送到IME/J 112。例如,传送到IME/J 112的键盘命令可以是窗口管理程序108传送给IMM 110的WM_CHAR键盘命令的单一代码翻译。若IME接收键盘命令IME/J 112回送“真”,若IME不接收该键盘命令则回送“假”。
“处理键”接口方法602最好包括五个操作数“imeCallback”-标识实现输入方法回叫接口的回叫对象(窗口管理程序108);“when”-调用“处理键”方法的时间;“键代码”-键盘命令的ASCII键代码;“键字符”-键盘命令的单-代码键字符;以及“state”-调用“处理键”方法时虚机100的状态。
输入方法收听器接口600最好包括第二接口方法“激活”604。“激活”接口方法604由IMM 110调用以激活指定IME。“激活”接口方法604最好包括一个指明要激活的IME的操作数(“ime”)。“激活”接口方法604不涉及回送消息。
输入方法收听器接口600最好包括第三接口方法“去激法”606。“去激活”接口方法606由IMM 110调用以去激活当前现用IME。“去激活”接口方法606不需要操作数而且不涉及回送消息。
输入方法收听器接口600最好包括第四接口方法“设定位置”608。“设定位置”接口方法608由组件122调用以设定监视器47的显示屏幕上的复合字符的位置。“设定位置”接口方法608包括表示监视器47的显示屏幕上的坐标(“x,y”)。“设定位置”接口方法608不涉及回送消息。
输入方法收听器接口600最好包括第五接口方法“设定尺寸”610。“设定尺寸”接口方法610由组件122调用以设定监视器47的显示屏幕上的复合字符的尺寸。“设定尺寸”接口方法610包括一个操作数,其表示一个确定监视器47的显示屏幕上的复合字符的尺寸的图形对象(“g”)。图形对象(“g”)还确定出现在监视器47的显示屏幕上的复合字符的字形和颜色。“设定尺寸”接口方法610返回空值。
输入方法收听器接口600最好包括第六接口方法“涂”612。“涂”接口方法由组件122调用以使IME在特定图形对象上涂画复合字符。“涂”接口方法612包括一个表示图形对象(“g”)的操作数。“涂”接口方法612不涉及回送消息。
输入方法收听器接口600最好包括第七接口方法“设定可视组件”614。“设定可视组件”接口方法614由组件122调用以把组件122设置成控制IME绘图空间的对象。“设定可视组件”接口方法614包括一个操作数,其表示控制IME的绘图空间的组件(“c”)(在本例中是组件122)。“设定可视组件”接口方法614不涉及回送消息。“设定可视组件”接口方法614允许IME在由组件122控制的绘图空间内画复合字符,其典型地是一个在监视器47上显示的用户接口,该用户接口包括一个或多个包含一些绘图工具的工具栏。若不调用“设定可见组件”接口方法614,IME典型地在由IME控制的绘图空间内绘制复合字符。备择地,IME可在由其它程序模块,例如字处理器或编辑程序,控制的绘图空间中绘制复合字符。
输入方法收听器接口600最好包括第八接口方法“处理IME消息”616。“处理IME消息”接口方法616由窗口管理程序108调用以把特定IME消息传送到IME。“处理IME消息”接口方法616包括充当操作数的特定IME消息。“处理IME消息”接口方法616不涉及回送消息。典型地由IME生成某IME消息并且传送给回叫对象即窗口管理程序108。若窗口管理程序不处理IME消息,窗口管理程序通过调用“处理IME消息”接口方法616把该IME消息回送给IME。这给窗口管理程序108处理IME消息的机会。若窗口管理程序不处理IME消息,IME典型地实施缺省条件。换言之,IME“听”窗口管理程序108响应IME消息的行为,并当窗口管理程序108不处理IME消息时IME实施缺省条件。
图7是一个示意框图,说明用于虚机100的IMM 110的输入管理程序收听器接口700。输入管理程序收听器接口700典型地包括第一接口方法“得到输入方法”702。“得到输入方法”接口方法702由窗口管理程序108调用,用于询问IMM 110哪个IME是现用的。“得到输入方法”702涉及包括一个操作数(“idx”)的回送消息,该操作数规定和当前现用IME相关的索引。
输入管理程序收听器接口700最好包括第二接口方法“得到输入方法数量”704。“得到输入方法数量”接口方法704由窗口管理程序108调用,用于询问IMM 110与其注册了多少IME。“得到输入方法数量”接口方法704涉及回送消息,其枚举对该IMM注册的IME。例如,IMM可回送一个消息,该消息包括一个规定对IMM注册的IME的数量的操作数。替代地,IMM可回送对IMM注册的IME的列表。
输入管理程序收听器接口700最好包括第三接口方法“去掉输入方法”706。“去掉输入方法”接口方法706由窗口管理程序108调用,用于要求IMM 110从其保持的IME注册表中去掉某特定IME。“去掉输入方法”接口方法706包括一个操作数(“ime”),其指示要从注册表中去掉的特定IME。“去掉输入方法”接口方法706不涉及回送消息。
输入管理程序收听器接口700最好包括第四接口方法“设定输入方法”708。“设定输入方法”接口方法708由窗口管理程序108调用,以要求IMM 110激活其保持的IME注册表上的某特定IME。“设定输入方法”接口方法708包括一个指示要激活的某特定IME的操作数(“ime”)。“设定输入方法”接口方法708不涉及回送消息。
输入管理程序收听器接口700最好包括第五接口方法“被处理键710。“被处理键”接口方法710由窗口管理程序108调用以要求IMM 110处理键盘命令,典型地是WM CHAR键盘命令的单一代码翻译。“被处理键”接口方法710包括一个指示要激活的特定IME的操作数。“被处理键”接口方法不涉及回送消息。
“被处理键”接口方法最好包括五个操作数,“ime Callback”-标识实现输入方法回叫接口的回叫对象(窗口管理程序108);“when”-调用“被处理键”方法的时间;“key Code”-键盘命令的ASCII键代码;“Key Char”-键盘命令的单-代码键字符;以及“state”-调用“被处理键”方法时虚机的状态。
图8是一个示意框图,表示用于虚机100的窗口管理程序108的输入方法回叫接口800。输入方法回叫接口800最好包括第一接口方法“处理IME字符”802。“处理IME字符”接口方法802由某IME调用以向窗口管理程序108传送某特定复合字符。窗口管理程序108把可能是根据某包括若干键盘命令的复合串的复合字符添加到内部输入队列中,仿佛它是从键盘40接收的单个字符。“处理IME字符”接口方法802包括三个操作数“when”-调用“处理IME字符”接口方法802的时间;“Key Char”-复合字符的单一代码键字符;以及“state”-调用“处理IME字符”接口方法802时虚机100的状态。“处理IME字符”接口方法802不涉及回送消息。
输入方法回叫接口800最好包括第二接口方法“处理IME消息”804。“处理IME消息”接口方法804由IME调用以向窗口管理程序108传送特定的IME消息。“处理IME消息”接口方法804包含作为操作数的特定IME消息。“处理IME消息”接口方法804不涉及回送消息。IME消息典型地由IME生成并传送到回叫对象(窗口管理程序108)。若窗口管理程序不处理该IME消息,窗口管理程序通过调用输入方法收听器接口的“处理IME消息”接口616把该IME消息传回到IME。这为窗口管理程序108提供处理IME消息的机会。
图9是一个示意框图,表示用于虚机100的组件122的输入方法消息收听器接口900。输入方法消息收听器接口900最好包括接口方法“处理IME消息”902,其由窗口管理程序108调用。窗口管理程序108调用该方法以询问组件122是否要画并控制一个用户可用来操纵由IME回送的复合字符的用户接口。“处理IME消息”接口方法902可包括一个作为操作数的IME消息。“处理IME消息”接口方法902涉及表示组件122是否会画并控制一个用户接口的回送消息。若组件会画并控制用户接口组件122回送“真”,但若组件不画及不控制用户接口组件122回送“假”。(***问题为什么组件不包括用以允许从窗口管理程序向组件传送复合字符的“处理键)或“处理WM字符”接口?窗口管理程序怎样向部件传送复合字符?)图10A是一个示意框图,表示用于处理键盘命令的现有技术的方法。用户在键盘40上按下某键。该键盘命令由键盘驱动程序102译成各种键盘命令,键盘驱动程序102典型地是操作系统35的一个模块。键盘驱动程序102把每个键击翻译成三种可独立处理和解释的三种键盘命令WM_KEYDOWN-表示按下某键,WM_CHAR-典型地是和按下的键关联的ASCII码或值,以及WM_KEYUP-表示某键被释放。这些键盘命令被传送到某应用程序36,例如字处理程序,编辑程序等。应用程序36根据其定义的功能性解释键盘命令。接着该应用程序向驱动监视器47的屏幕驱动程序104发送屏幕更新。
图10B是一个示意框图,表示实现系统IME 116的现有技术。用户在键盘40上按下某键。由键盘驱动程序102把该键盘命令翻译成各种键盘命令。键盘驱动程序102把每次键击译成WM_KEYDOWN、WM_CHAR及WM_KEYUP键盘命令。这些键盘命令被发送到系统IME116,后者把键盘命令译成复合字符。
系统IME/S 116典型地配置成累积几个键盘命令以建立某复合字符的组合串。利用多键盘命令组合串可使系统IME/S 116索引成千上万的独立复合字符,这对于生成包括日文、朝鲜文和中文的非拉丁语的书面表意文字是很有用的。接着系统IME/S 116把复合字符传送到应用程序36。应用程序36根据其定义的功能性解释各键盘命令。接着应用程序向驱动监视器47的屏幕驱动程序104传送屏幕更新。
图11是示意框图,表示依据本发明的一种实施例的支持系统IME/S116的虚机100。用户按下键盘40上的某键。键盘驱动程序102把该键盘命令译成各键盘命令。键盘驱动程序102把每次键击译成WM_KEYDOWN、WM_CHAR及WM_KEYUP键盘命令。这些键盘命令被发送到系统IME 116,后者根据各键盘命令生成复合字符。
系统IME/S 116把复合字符传送到窗口管理程序108,其包括一个单一代码翻译程序以把复合字符译成单一代码格式。窗口管理程序108把单一代码格式下的复合字符传送到组件122,组件122典型地提供一个允许用户操纵复合字符的用户接口。接着组件122向驱动监视器47的屏幕驱动程序104传送屏幕更新。
图12是一个示意框图,表示依据本发明的一种实施方式实现基于JAVA的IME/J 112的虚机100。用户按下键盘40上的某键。键盘驱动程序102把该键盘命令译成各键盘命令。键盘驱动程序102把每次键击译成WM_KEYDOWN、WM_CHAR及WM_KEYUP键盘命令。这些键盘命令被发送到虚机100的窗口管理程序108。
窗口管理程序108包括一个把键盘命令翻译成单一代码格式的单一代码翻译器。窗口管理程序108把单一代码的键盘命令传送给IMM 110。IMM 110把单一代码键盘命令传送到基于JAVA的IME/J 112,后者把单一代码键盘命令译成复合字符。基于JAVA的IME/J 112把复合字符传回窗口管理程序108,窗口管理程序108把复合字符传送到组件122。组件122典型地提供允许用户操纵复合字符的一个用户接口。然后组件122向驱动监视器47的屏幕驱动程序104传送屏幕更新。
图13是一个示意框图,表示依据本发明的一种实施例的宿留系统IME/S 116的虚机100。用户按下键盘40上的某键。由键盘驱动程序102把该键盘命令翻译成各种键盘命令,键盘驱动程序102典型地是操作系统35的一个模块。键盘驱动程序102把每次键击译成WM_KEYDOWN、WM_CHAR及WM_KEYUP键盘命令。这些键盘命令被发送到系统IME/S 116,后者可把多个键盘命令建立成包括多个WM_CHAR和WM_IME_CHAR键盘命令的组合串。
系统IME/S 116把组合串传送到虚机100的窗口管理程序108。窗口程序108包括一个把组合串译成单一代码形式的单一代码翻译程序。窗口管理程序108把单一代码组合串传送到系统IME/S桥路124。系统IME/S桥路124把任何WM_CHAR键盘命令改变成WM_IME_CHAR键盘命令以表示系统IME/S 116已经处理过该组合串。系统IME/S桥路124还可和系统IME/S 116交换查询以及其它系统IME消息。接着系统IME/S桥路124把组合串送回到窗口管理程序108,窗口管理程序108把复合字符传送到组件122。组件122典型地提供一个允许用户操纵组合字符的用户接口。然后组件122把屏幕更新传送到驱动监视器47的屏幕驱动程序104。
鉴于上述,可理解本发明提供一种JAVA虚机,其可用于在按照需要的基础上改变或扩大用于IME的源代码。本发明还定义一种用于建立JAVA兼容IME的控制接口。依据本发明的基于JAVA的虚机支持三种范围内的输入方法编辑程序(IME)功能(1)和JAVA虚机一起使用基于JAVA的IME;(2)编写基于JAVA的IME;以及(3)把JAVA虚机和系统IME相集成。虚机包括一个窗口管理程序、一个输入方法管理程序、一个或多个IME和/或KBD以及一个组件。组件典型地提供一个允许用户操纵由IME回送的复合字符的用户接口。虚机还可包括一个用于集成虚机和系统IME的IME桥路。窗口管理程序充当操作系统和虚机之间的网关。输入方法管理程序(IMM)充当窗口管理程序和多个IME及KBD之间的路由器。IME包括一个通过单一代码键盘命令检索的复合字符查找表。
应理解上述只是和本发明的一些具体实施例相关的,并且在不违背由下述权利要求书规定的本发明的精神和范围下可对它们做出大量修改。
权利要求
1.在用于由处理单元、和处理单元连接的键盘及和处理单元连接的显示设备的计算机系统中,其中在处理单元上运行着操作系统,一种在处理单元上运行的平台可移植的虚机,包括一个窗口管理程序,运行或用于从操作系统接收键盘命令;一个输入方法管理程序,用于从窗口管理程序接收键盘命令;一个输入方法编辑程序,运行成用于从输入方法管理程序接收键盘命令并把键盘命令译成复合字符;以及一个组件,运行成用于从输入方法编辑程序接收复合字符和提供用于在显示设备上显示的复合字符。
2.权利要求1的虚机,其中窗口管理程序运行成用于从键盘接收键盘命令;判定输入方法管理程序是否现用;若输入方法管理程序不是现用的,把键盘命令传送到组件;以及若输入方法管理程序是现用的,把键盘命令传送到输入方法管理程序、从输入方法管理程序接收回送消息,并且若回送消息是假,回送消息把键盘命令传送到组件。
3.权利要求1的虚机,其中输入方法管理程序运行成用于从窗口管理程序接收键盘命令;判定键盘命令是否指向输入方法管理程序;若键盘命令指向输入方法管理程序,响应键盘命令;以及若键盘命令不指向输入方法管理程序,把键盘命令传送到输入方法编辑程序。
4.权利要求1的虚机,其中输入方法编辑程序运行成用于从输入方法管理程序接收键盘命令;组合该键盘命令和先前接收的键盘命令以建立组合串;判定组合串是否和复合字符对应;以及若组合串和复合字符对应。把组合串译成复合字符,以及把复合字符传送到窗口管理程序。
5.权利要求1的虚机,其中窗口管理程序还运行成用于从输入方法编辑程序接收复合字符;以及把复合字符传送到组件。
6.权利要求1的虚机,其中组件运行成用于从窗口管理程序接收复合字符;在显示设备上提供用户接口;以及和该用户接口结合在显示设备上提供复合字符。
7.权利要求1的虚机,其中组件还运行成用于在和该用户接口结合在显示设备上提供复合字符后,通过该用户接口接收用户命令、响应用户命令改变复合字符并且和该用户接口结合在显示设备上提供改变后的复合字符。
8.权利要求1的虚机,其中响应指向输入方法管理程序的键盘命令的步骤包括步骤去激活该输入方法编辑程序;以及激活其替代的输入方法编辑程序。
9.权利要求1的虚机,其中计算机系统还包括在处理单元上运行的系统输入方法编辑程序,虚机还包括一个输入方法编辑程序桥路,其运行成用于使系统输入方法编辑程序和窗口管理程序及输入方法管理程序相集成。
10.权利要求1的虚机,其中输入方法编辑程序定义一个接口,该接口包括第一接口方法,用于从输入方法管理程序接收指示输入方法编辑程序处理键盘命令的消息;第二接口方法,用于从输入方法管理程序接收指示输入方法编辑程序进行激活的消息;第三接口方法,用于从输入方法管理程序接收指示输入方法编辑程序进行去激活的消息;以及第四接口方法,用于从窗口管理程序接收消息以指示输入方法编辑程序处理该消息。
11.权利要求10的虚机,其中由输入方法编辑程序定义的该接口还包括第五接口方法,用于从组件接收指示输入方法编辑程序操纵由输入方法编辑程序提供的并显示在显示设备上的一个用户接口的消息。
12.权利要求10的虚机,其中由输入方法编辑程序定义的接口还包括第五接口方法,用于从组件接收指示输入方法编辑程序提供一个用于在显示设备上显示的用户接口的消息;第六接口方法,用于从组件接收定义输入方法所提供的用于在显示设备上显示的该用户接口的尺寸的消息;以及第七接口方法,用于从组件接收定义输入方法所提供的用于在显示设备上显示的该用户接口的位置的消息。
13.权利要求1的虚机,其中输入方法管理程序定义一个接口,该接口包括第一接口方法,用于从窗口管理程序接收指示输入方法管理程序激活第一输入方法编辑程序的消息;第二接口方法,用于从窗口管理程序接收指示输入方法管理程序从输入方法编辑程序注册表中去掉第二输入方法编辑程序的消息;第三接口方法,用于从窗口管理程序接收指示输入方法管理程序确定现用输入方法编辑程序的消息;第四接口方法,用于从窗口管理程序接收指示输入方法管理程序枚举输入方法编辑程序注册表的消息;以及第五接口方法,用于从窗口管理程序接收要求输入方法管理程序处理键盘命令的消息。
14.权利要求1的虚机,其中窗口管理程序定义一个接口,该接口包括一个用于从输入方法编辑程序接收消息的接口方法。
15.权利要求1的虚机,其中组件定义一个接口,该接口包括一个用于从窗口管理程序接收消息的接口方法。
16.一种存储用于定义可在计算机系统上运行的平台可移植的虚机的指令的计算机存储介质,其中该计算机系统包括一个处理单元、一个和该处理单元连接的键盘以及一个和该处理单元连接的显示设备,并且一个操作系统在该处理单元上运行,该介质包括一个窗口管理程序,其运行成用于,从键盘接收某键盘命令,判定是否某输入方法管理程序是现用的,若该输入方法管理程序不是现用的,把该键盘命令传送到一个组件,以及若该输入方法管理程序是现用的,把该键盘命令传送到输入方法管理程序、从输入方法管理程序接收回送消息、以及当若回送消息是假回送消息把该键盘命令传送到组件;该输入方法管理程序运行成用于,从窗口管理程序接收该键盘命令,以及判定该键盘命令是否指向该输入方法管理程序,若该键盘命令指向该输入方法管理程序,响应该键盘命令,以及若该键盘命令不指向该输入方法管理程序,把该键盘命令传送到某输入方法编辑程序;该输入方法编辑程序运行成用于从该输入方法管理程序接收该键盘命令,组合该键盘命令和先前接收的键盘命令,以建立一个组合串,判定该组合串是否对应某复合字符,以及若该组合串对应于复合字符,把该组合串译成复合字符,以及把复合字符传送到窗口管理程序;窗口管理程序还运行成用于,从该输入方法编辑程序接收该复合字符,以及把该复合字符传送到该组件;该组件运行成用于,从窗口管理程序接收该复合字符,在显示设备上提供一个用户接口,以及和该用户接口结合在显示设备上提供复合字符。
17.权利要求16的计算机可读介质,其中响应指向输入方法管理程序的键盘命令的步骤包括下述步骤去激活该输入方法编辑程序;以及激活替代的输入方法编辑程序。
18.权利要求16的计算机可读介质,还包括一个在处理单元上运行的系统输入方法编辑程序;以及一个输入方法编辑程序桥路,其运行成用于把系统输入方法编辑程序和窗口管理程序及输入方法管理程序相集成。
19.权利要求16的计算机可读介质,其中输入方法编辑程序定义一个接口,该接口包括第一接口方法,用于从输入方法管理程序接收指示输入方法编辑程序处理键盘命令的消息;第二接口方法,用于从输入方法管理程序接收指示输入方法编辑程序进行激活的消息;第三接口方法,用于从输入方法管理程序接收指示输入方法编辑程序进行去激活的消息;第四接口方法,用于从窗口管理程序接收消息以指示输入方法编辑程序处理该消息;第五接口方法,用于从组件接收指示输入方法编辑程序提供一个用于在显示设备上显示的用户接口的消息;第六接口方法,用于从组件接收定义输入方法所提供的用于在显示设备上显示的该用户接口的尺寸的消息;以及第七接口方法,用于从组件接收定义输入方法所提供的用于在显示设备上显示的该用户接口的位置的消息。
20.权利要求16的计算机可读介质,其中输入方法管理程序定义一个接口,该接口包括第一接口方法,用于从窗口管理程序接收指示输入方法管理程序激活的第一输入方法编辑程序的消息;第二接口方法,用于从窗口管理程序接收指示输入方法管理程序去激活第二输入方法编辑程序的消息;第三接口方法,用于从窗口管理程序接收指示输入方法管理程序确定现用输入方法编辑程序的消息;第四接口方法,用于从窗口管理程序接收指示输入方法管理程序处理键盘命令的消息。
21.权利要求20的计算机可读介质,其中由输入方法管理程序定义的接口还包括第五接口方法,用于从窗口管理程序接收指示输入方法管理程序枚举注册到该输入方法管理程序的输入方法编辑程序表。
22.权利要求21的计算机可读介质,其中窗口管理程序包括一个接口,该接口包括一个用于从输入方法编辑程序接收消息的接口方法。
23.权利要求22的计算机可读介质,其中组件定义一个接口,该接口包括一个用于从窗口管理程序接收消息的接口方法。
全文摘要
一种基于JAVA的虚机,其在三种范围内支持输入方法编辑程序(IME)的功能:(1)和JAVA虚机一起使用基于JAVA的IME;(2)编写基于JAVA的IME;以及(3)集成JAVA虚机和系统IME。虚机包括一个窗口管理程序、一个输入方法管理程序、一个或多个IME和/或键盘驱动程序(KBD)以及一个组件。虚机还可包括一个IME桥路,用于集成虚机和系统IME。窗口管理程序充当操作系统和虚机之间的网关。输入方法管理程序(IMM)充当窗口管理程序和多个IME及键盘驱动程序(KBD)之间的路由器。IME包括一个用单一代码键盘命令检索的复合字符查找表。组件典型地提供一个用户接口,以允许用户操纵IME回送的复合字符。IME和组件的功能性可随平台不同及用户不同而不同。
文档编号G06F9/44GK1255984SQ98805042
公开日2000年6月7日 申请日期1998年4月1日 优先权日1997年4月2日
发明者戴维·M·希弗, 林阳森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1