Skip to content

ChineseInputMethod/SampleIME

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

58 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

文件说明

本章输入法源自Windows-classic-samples。 使用Visual Studio 2019编译。测试环境为Windows 7和Windows 10的64位版。

Files Description
track.xml 断点文件,跟踪主要函数的调用关系。
install.bat 安装文件,安装debug64位版。
uninstall.bat 卸载文件。

COM组件框架

Source Files Document
DllMain.cpp DLL入口点,注册候选窗口类。
Globals.cpp 全局设置,全局变量、类型、函数,对标点符号以及快捷键进行通用设置。
Server.cpp COM导出函数,注册输入法以及创建输入法实例。
Register.cpp 注册输入法,注册TSF输入法的标准实现。

TSF文本服务框架

Source Files Document
SampleIME.cpp TSF文本服务框架,扩展了对无界面元素程序和触摸键盘支持。
ThreadMgrEventSink.cpp 线程管理器事件接收器,主要处理焦点事件。
TextEditSink.cpp 编辑会话完成消息接收器,用于感知其他文本服务对编辑内容的更改。
KeyEventSink.cpp 键盘事件接收器,用于接收按键和虚拟按键事件。
ActiveLanguageProfileNotifySink.cpp 语言配置激活消息接收器,当更改激活语言配置文件时,框架调用接收器。
ThreadFocusSink.cpp 线程输入焦点消息接收器,在线程接收或失去UI焦点时接收通知。
FunctionProviderSink.cpp 扩展功能提供者,提供各种函数对象。

输入法配置

Source Files Document
CompositionProcessorEngine.cpp 合成处理器引擎,输入法核心类。
TfInputProcessorProfile.cpp 文本服务语言配置,用来操作一个或多个文本服务的语言配置文件。
Compartment.cpp 公共缓冲池,用来保存输入法状态开关。
LanguageBar.cpp 语言栏,设置输入法状态开关。
File.cpp 文件,打开码表文件。
FileMapping.cpp 文件映射,将码表文件创建为文件映射对象。

按键事件

Source Files Document
KeyHandler.cpp 按键处理器,用来处理按键事件。
EditSession.cpp 编辑会话基接口,本章工程所有编辑会话均继承此接口。
KeyHandlerEditSession.cpp 按键处理编辑会话,在会话中按照按键分类调用相应处理函数。
KeyStateCategory.cpp 按键分类,按照按键分类调用相应处理函数。

候选列表

Source Files Document
SampleIMEBaseStructure.h 数据结构,输入法自定义数据结构。
TableDictionaryEngine.cpp 词典引擎,获取候选列表。
DictionarySearch.cpp 词典搜索,在词典中搜索编码为输入编码的汉字。
DictionaryParser.cpp 词典搜索基类,为词典搜索提供辅助函数。
BaseDictionaryEngine.cpp 词典引擎基类,为词典引擎提供辅助函数。

候选窗口控制

Source Files Document
CandidateListUIPresenter.cpp 候选窗口控制器,控制候选窗口的显示。
TfTextLayoutSink.cpp 文本布局消息接收器,通过响应布局更改消息,实现光标跟随。
GetTextExtentEditSession.cpp 文本布局会话,处理文本布局消息。

候选窗口绘制

Source Files Document
CandidateWindow.cpp 候选窗口,在主窗口中显示候选列表。
BaseWindow.cpp 窗口基类,为派生类调用API函数。
ShadowWindow.cpp 阴影窗口,为窗口添加阴影。
ScrollBarWindow.cpp 滚动条窗口。
ButtonWindow.cpp 按钮窗口。

合成

Source Files Document
StartComposition.cpp 开始合成,在上下文中创建一个合成。
Composition.cpp 合成,标记为GUID_PROP_COMPOSING属性的文本范围。
EndComposition.cpp 结束合成,完成汉字输入。

显示属性

Source Files Document
DisplayAttribute.cpp 显示属性,合成中编码或汉字的显示样式。
DisplayAttributeProvider.cpp 显示属性提供者,由TSF管理器用来枚举和获取单个显示属性信息对象。
DisplayAttributeInfo.cpp 显示属性信息对象,为应用程序提供显示属性信息。
EnumDisplayAttributeInfo.cpp 显示属性信息对象枚举器,未演示此接口。

无界面模式

Source Files Document
UIless.md 无界面模式,由应用程序显示UI元素。

其他主题

Source Files Document
RegKey.cpp 注册表类,未讲解。
SearchCandidateProvider.cpp 搜索候选提供者,未讲解。
TipCandidateList.cpp 候选列表对象,未讲解。
TipCandidateString.cpp 候选文字串对象,未讲解。
EnumTfCandidates.cpp 候选文字串对象枚举器,未讲解。

附录A

  1. 启动过程
  2. 按键处理
  3. 候选列表

附录B

  1. 选择候选字词
  2. 销毁候选窗口
  3. 完成汉字输入

附录C

  1. 启动过程
  2. 按键处理
  3. 候选列表

About

微软TSF完整样例

from:microsoft/Windows-classic-samples

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages