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,输入法状态被改变

相关文章推荐

第二章 Windows9x系统提供的ime管理函数

  上一章,我们介绍了ime文件中必须设计的函数,这些函数要靠我们自己来设计。要完成这些函数的设计,需用到windows系统提供的管理函数(Input Method Manager,简称IMM)。IM...
  • camfrog
  • camfrog
  • 2011年03月31日 23:59
  • 157

IME输入法编程: 第二章 Windows9x系统提供的ime管理函数

IME输入法编程: 第二章 Windows9x系统提供的ime管理函数 上一章,我们介绍了ime文件中必须设计的函数,这些函数要靠我们自己来设计。要完成这些函数的设计, 需用到...
  • trandy
  • trandy
  • 2012年03月17日 20:15
  • 736

IME输入法编程:第一章 Windows9x系统下汉字输入法的基本原理

IME输入法编程 第一章 Windows9x系统下汉字输入法的基本原理 Windows系统下汉字输入法实际上是将输入的标准ascii字符串按照一定的编码规则转换为汉字或汉字串,进 入...
  • trandy
  • trandy
  • 2012年03月17日 20:13
  • 809

IME管理基本函数

IME管理基本函数 http://blog.csdn.net/daone/article/details/4576310 http://andylin02.iteye.co...
  • hsg77
  • hsg77
  • 2012年02月03日 17:03
  • 955

Ruby系列文章之9 ---OS X 10.8.1 系统 用Homebrew + rbenv 安装和管理ruby

本文章为菲利克斯猫(Felix.mao) 原创,转载务必在明显处注明: 原文链接:http://blog.csdn.net/maojudong/article/details/7925315 ...

农电管理系统(win9X版)

  • 2001年09月16日 00:00
  • 293B
  • 下载

实战DeviceIoControl 之七:在Windows 9X中读写磁盘扇区

在Windows NT/2K/XP中,直接用CreateFile打开名称类似于"//./A:"的”文件”,就可以与设备驱动打交道,通过ReadFile/WriteFile以绝对地址方式访问磁盘了。但W...

06X9JX项目管理系统 PC

  • 2013年12月19日 16:45
  • 8.34MB
  • 下载

Windows2003 IIS6 + PHP-5.3.6-nts-Win32-VC9-x86.zip

操作系统:WIN2003 Server Standard Edition Service Pack2 下载软件:Microsoft Visual C++ 2008 Redistributable Pa...
  • ZBzibing
  • ZBzibing
  • 2011年03月30日 14:49
  • 14672
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows9x系统提供的ime管理函数
举报原因:
原因补充:

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