1、使用ITfCategoryMgr的RegisterCategory方法注册GUID_TFCAT_TIPCAP_UIELEMENTENABLED。注意些处需要自己判断操作系统版本,win8及以后的版本才支持。
2、实现ITfCandidateListUIElement接口。些接口有三个最主要的方法BeginUIElement、UpdateUIElement、EndUIElement。
首先当你的输入法注册一中的GUID表明自己可以支持UILess后,如果软件本身实现支持UILess,那么它会在调用 Activate时的第三个参数添加 TF_TMAE_UIELEMENTENABLEDONLY来表明软件可能支持UILess。这个时候,如果需要显示自己的输入法窗口时则不应该直接显示,而是调用 BeginUIElement,这个函数相当于询问软件本次输入是否使用UILess模式,此时软件作出应答,如果不使用uiless,BeginUIElement传入的第二个参数则返回 TRUE,表明输入法应该显示自己的候选窗口,这时一般直接调用 EndUIElement然后按照正常模式处理即可,如果它返回的FALSE则表明输入法不应该显示自己的候选窗口。这个时候,如果要更新候选列表则应该调用 UpdateUIElement。这个时候特别要注意,如果候选列表是空的也应该调用 EndUIElement来结束本次输入,然后下次调用 UpdateUIElement前先调用BeginUIElement。如果不按此操作可能会出现候选框不消失的情况。