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 //
1、BOOL WINAPI ImmGenerateMessage( //将我们的汉字串法发送到与当前输入法相关联的应用软件中
HIMC 与当前输入法相关联的应用软件hIMC //的句柄,
//该结构的hMsgBuf项即为汉字串消息
)
成功为TRUE,否则为FALSE
2、
LRESULT WINAPI ImmRequestMessage( //向应用程序发送WM_IME_REQUEST //只是用于w98及w2000
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、 如果成功返回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、 15、 //=SOFTKEYBOARD_TYPE_T1 //=SOFTKEYBOARD_TYPE_C1 成功返回软键盘的窗口句柄 16、 17、 如构成功返回 TRUE. 否则为 FALSE.
DWORD 成员的缓冲区长度
dwSize // )
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 14、BOOL WINAPI设置输入法的热键
DWORD
UINT 软件盘上的键码含义的定义方式 ImmCreateSoftKeyboard( //uType, //
UINT hOwner, //x, //y // ) int 定位坐标
int 该输入法的UI窗口
定位坐标
HWND 软年盘窗口句柄
ImmDestroySoftKeyboard( //hSoftKbdWnd // )成功为TRUE,法哦则为FALSE.BOOL WINAPI显示或隐藏软键盘
HWND 软年盘窗口句柄
nCmdShow //SW_HIDE SW_SHOWNOACTIVATE ImmShowSoftKeyboard( //hSoftKbdWnd, // int 窗口状态=表示隐藏,=表示显示
)
UINT uModifiers,
UINT uVKey,
hKL hKL
) ImmGetHotKey( //dwHotKeyID,
LPUINT lpuModifiers,
LPUINT lpuVKey,
LPHKL lphKL
)hIMCC //IMC
HIMC 当前应用程序句柄
)成功返回INPUTCONTEXT 结构指针,否则为NULLBOOL WINAPI ImmUnlockIMC( //释放IMC计数器
HIMC 当前应用程序句柄
)返回:如果IMC计数器被减少到0了,返回FALSE,否则为TRUE. 注意:ImmLockIMC与ImmUnlockIMC必须成对出现,必须是相同的HIMCHIMCC WINAPI ImmGetIMCLockCount( //取计数器值
HIMC 当前应用程序句柄
)如果成功返回HIMC的计数器值,否则为hIMC //hIMC //hIMC // 将我们的汉字串法发送到与当前输入法相关联的应用软件中
ImmRequestMessage //向应用程序发送WM_IME_REQUEST获取当前IMC的INPUTCONTEXT结构信息,增加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,输入法状态被改变