Windows9x系统提供的ime管理函数

转载 2006年05月29日 17:33:00
上一章,我们介绍了ime文件中必须设计的函数,这些函数要靠我们自己来设计。要完成这些函数的设计,需用到windows系统提供的管理函数(Input Method Manager,简称IMM)。

    IMM函数可以被IME函数使用,也可用于应用软件直接管理IME。

    相关术语:

        (1)input method context 简称IMC--输入法相关部分,在这里解释为:相关连的应用程序(进程)

        (2)component of the input context   简称IMCC--IMC的部件,是INPUTCONTEXT 结构的成员。

一、IME中使用的IMM函数清单

 

ImmSetCompositionWindow                      //

ImmGetCandidateWindow                          //

ImmSetCandidateWindow                          //

ImmGetCompositionString                         //

ImmSetCompositionString                         //

ImmGetCompositionFont                           //

ImmSetCompositionFont                           //

ImmGetNumCandidateList                         //

ImmGetCandidateList                                //

ImmGetGuideLine                         

ImmGetConversionStatus                          //

ImmGetConversionList                              //

ImmGetOpenStatus                                   //

ImmSetConversionStatus                          //

ImmSetOpenStatus                                   //

ImmNotifyIME                                           //

         ImmGenerateMessage            //

         ImmLockIMC                              //设置输入法的热键
            ImmCreateSoftKeyboard          //产生一个软键盘
            ImmDestroySoftKeyboard      //销毁软键盘
            ImmShowSoftKeyboard      //显示或隐藏软键盘
二、
IMM函数使用格式说明

            ImmSetHotKey                         //

1BOOL WINAPI ImmGenerateMessage(            //将我们的汉字串法发送到与当前输入法相关联的应用软件中
        HIMC 与当前输入法相关联的应用软件
hIMC                                                    //的句柄,

                                           //该结构的hMsgBuf项即为汉字串消息
        )

     成功为TRUE,否则为FALSE

2、

LRESULT WINAPI  ImmRequestMessage(      //向应用程序发送WM_IME_REQUEST

                                                                               //只是用于w98w2000
            HIMC
与当前输入法相关联的应用软件            WPARAM
hIMC,                                                 //的句柄
wParam,                                       //lParam                                          //WM_IME_REQUEST相关的LPWM_IME_REQUEST相关的wP
            LPARAM

                                                                              //=IMR_COMPOSITIONWINOW

                                                                               //=IMR_CANDIDATEWINDOW

                                                                               //=IMR_COMPOSITIONFONT

                                                                                //=IMR_RECONVERTSTRING

                                                                                //=IMR_CONFIRMRECONVERTSTRING

                                                                                //=IMR_QUERYCHARPOSITION

                                                                                //=IMR_DOCUMENTFEED


        )

3、

       

4、

        

 

5、

       NULL.

6、

HIMCC WINAPI ImmCreateIMCC(              //创建INPUTCONTEXT结构的一个成员
            DWORD 成员的缓冲区长度
dwSize                                      //        )

   如果成功返回IMC的成员句柄,否则为NULL

7、

 

8、

If the function is successful, the return value is the pointer for the IMC component. Otherwise, the return value is NULL.

9、

     

10、

       

11、

          

12、

       

13、

 

HIMCC WINAPI ImmDestroyIMCC(           //删除IMC成员缓冲区
            HIMCC 被删除的IMC的成员
hIMCC                                       //        )如果成功返回NULL,否则等于该HIMCC.LPVOID WINAPI  ImmLockIMCC(      //IMCC缓冲地址,同时使IMCC的计数器值增加
            HIMCC 成员句柄
hIMCC                                 //IMC        )BOOL WINAPI ImmUnlockIMCC(      //递减IMCC计数器
            HIMCC 成员句柄
hIMCC                                //IMC        )如果IMCC的计数器值为零,则返回 FALSE,否则为TRUE.HIMCC WINAPI ImmReSizeIMCC( //重新设置IMC的成员的缓冲区大小
            HIMCC 的成员句柄
            DWORD 新缓冲区大小
hIMCC,                                   //IMCdwSize                                 //        )如果成功,返回新的HIMCC,否则为 NULL.DWORD WINAPI ImmGetIMCCSize(       //IMC成员的缓冲区大小
                HIMCC 成员句柄
            )返回IMC成员的缓冲区大小DWORD WINAPI返回IMC计数器值
                HIMCC 成员的句柄
ImmGetIMCCLockCount(   //hIMCC                                           //IMC            )成功返回该IMCC的计数器值,否则为0BOOL WINAPI取输入法状态键,该函数供控制面板使用  
                DWORD
14BOOL WINAPI设置输入法的热键
                DWORD

15、

HWND WINAPI产生一个软键盘
                UINT 软件盘上的键码含义的定义方式
ImmCreateSoftKeyboard(           //uType,                                                     //

                                                                              //=SOFTKEYBOARD_TYPE_T1

                                                                             //=SOFTKEYBOARD_TYPE_C1
                UINT
hOwner,                                                 //x,                                                              //y                                                              //            )                int 定位坐标
                int
该输入法的UI窗口                              
定位坐标

    成功返回软键盘的窗口句柄

16、

     

17、

BOOL WINAPI销毁软键盘
                HWND 软年盘窗口句柄
ImmDestroySoftKeyboard(      //hSoftKbdWnd                                    //            )成功为TRUE,法哦则为FALSE.BOOL WINAPI显示或隐藏软键盘
                HWND 软年盘窗口句柄
nCmdShow                                            //SW_HIDE SW_SHOWNOACTIVATE
  ImmShowSoftKeyboard(      //hSoftKbdWnd,                                   //                int 窗口状态=表示隐藏,=表示显示
               )

如构成功返回 TRUE. 否则为 FALSE.

ImmSetHotKey(    //dwHotKeyID,
                UINT
uModifiers,
                UINT
uVKey,
                hKL
hKL
            )
ImmGetHotKey(           //dwHotKeyID,
                LPUINT
lpuModifiers,
                LPUINT
lpuVKey,
                LPHKL
lphKL
            )
hIMCC                                     //IMC LPINPUTCONTEXT  WINAPI ImmLockIMC(     //获取当前IMCINPUTCONTEXT结构信息,增加IMC 计数器
            HIMC 当前应用程序句柄
            )成功返回INPUTCONTEXT 结构指针,否则为NULLBOOL WINAPI ImmUnlockIMC(    //释放IMC计数器
            HIMC 当前应用程序句柄
            )返回:如果IMC计数器被减少到0,返回FALSE,否则为TRUE.   注意:ImmLockIMCImmUnlockIMC必须成对出现,必须是相同的HIMCHIMCC WINAPI ImmGetIMCLockCount(        //取计数器值
            HIMC 当前应用程序句柄
        )如果成功返回HIMC的计数器值,否则为
hIMC                                                 //
hIMC                                  //
hIMC                                                   //
将我们的汉字串法发送到与当前输入法相关联的应用软件中
         ImmRequestMessage              //向应用程序发送WM_IME_REQUEST获取当前IMCINPUTCONTEXT结构信息,增加IMC 计数器
         ImmUnlockIMC                        //释放IMC计数器
         ImmGetIMCLockCount                //取计数器值
         ImmCreateIMCC                      //创建INPUTCONTEXT结构的一个成员
         ImmDestroyIMCC                   //删除IMC成员缓冲区
         ImmLockIMCC                          //IMCC缓冲地址,同时使IMCC的计数器值增加
        ImmUnlockIMCC                     //递减IMCC计数器
         ImmReSizeIMCC             //重新设置IMC的成员的缓冲区大小
        ImmGetIMCCSize                  //IMC成员的缓冲区大小
            ImmGetIMCCLockCount       //返回IMC计数器值
            ImmGetHotKey                       //取输入法状态键,该函数供控制面板使用           ImmGetCompositionWindow                     //取编码窗口信息设置编码窗口信息 取选择窗口信息 设置选择窗口信息取编码窗口的某一信息设置编码窗口的某一信息取编码字体设置编码字体取选择区中编码数取选择区中编码取当前输入法的状态(ACSII,SHAPE,FULL等)重新获得选择区转换表取输入法打开属性设置输入法状态设置输入法打开状态通报IME,输入法状态被改变

Android输入法框架分析

Android输入法框架(Input Method Framework,IMF)是Android中非常重要的模块,它分布于三个部分(确切的说,是三个进程), 包含编辑框的客户(Client)ap...
  • lyglostangel
  • lyglostangel
  • 2015年08月31日 17:39
  • 759

进程管理相关的系统调用

2.4 进程管理相关的系统调用 从用户状态切换到核心态的方法,依不同的体系结构二各有不同。这两种状态之间切换的机制,并解释用户空间和内核空间之间如何交换参数。就目前而言,将内核视为有C标准使...
  • aixiaoxiaoyu
  • aixiaoxiaoyu
  • 2016年07月16日 18:12
  • 247

Android获取IME,IMSI等各种手机信息,并对号码组成详解

本文转载自http://www.cnblogs.com/zyw-205520/p/3829119.html 简介: IMSI:international mobiles subscribe...
  • cajian3
  • cajian3
  • 2016年08月20日 10:41
  • 2606

Linux下Signal信号系统调用

前面两节已经介绍了有关信号的大部分知 识。这一节我们来了解一下这些系统调用。其中,系统调用signal是进程用来设定某个信号的处理方法,系统调用kill是用来发送信号给指定进程的。这 两个调用可以形成...
  • faihung
  • faihung
  • 2017年04月04日 23:39
  • 633

彻底解决Win10频繁禁用IME或者已禁用IME后无法启用的问题

在任务计划程序中,找到microsoft-windows-TextServicesFramework,如下图: 已禁用IME时,上图的红圈圈部分会显示“准备就绪”,通常情况下,在网上能找到的解决办...
  • xgl272268065
  • xgl272268065
  • 2015年12月15日 14:38
  • 17378

应用程序和VFS之间的接口是系统调用

应用程序和VFS之间的接口是系统调用,而VFS与磁盘文件系统以及普通设备之间的接口是file_operatioons结构体成员函数,这个结构体包含对文件进行打开、关闭、读写、控制等一系列成员函数。由于...
  • ljk0922
  • ljk0922
  • 2015年08月23日 21:48
  • 504

IME 消息 函数 常量

IME消息   以下列出IME中用到的消息。 WM_IME_CHAR(IME得到了转换结果中的一个字符) WM_IME_COMPOSITION(IME根据用户击键的情况更改了按键组合状态) W...
  • fakine
  • fakine
  • 2016年08月29日 17:34
  • 769

Win7 64位系统,使用(IME)模式VS2010 编写 和 安装 输入法 教程(1)

首先感谢: http://blog.csdn.net/shuilan0066/article/details/6884483输入法 编程分析 http://blog.csdn.net/mspiny...
  • fakine
  • fakine
  • 2016年09月09日 16:08
  • 2409

未能找到与解决方案关联的源代码管理提供程序

今天打开一个解决方案,Visual Studio出现了提示“未能找到与解决方案关联的源代码管理提供程序”,如图1所示:   图1 错误提示     单击“否”,发现解决方案已经不接受TFS的...
  • lile010
  • lile010
  • 2015年03月24日 10:39
  • 2070

内存管理相关函数 -- Linux

1、kmalloc()/kfree() static __always_inline void *kmalloc(size_t size, gfp_t flags) 内核空间申请指定大小的内存区域...
  • ccy365263452
  • ccy365263452
  • 2015年07月22日 11:52
  • 595
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows9x系统提供的ime管理函数
举报原因:
原因补充:

(最多只允许输入30个字)