关闭

Windows9x系统提供的ime管理函数

1443人阅读 评论(0) 收藏 举报
上一章,我们介绍了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,输入法状态被改变
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:319540次
    • 积分:3685
    • 等级:
    • 排名:第9142名
    • 原创:11篇
    • 转载:153篇
    • 译文:0篇
    • 评论:57条
    最新评论