我目前正在开发VSTO Word Add-In程序。我必须捕获IME消息来监视输入状态。有两条消息我试图在这里捕获:使用全局钩子捕获IME消息
1,IMC_OPENSTATUSWINDOW(候选栏打开时)2,IMC_CLOSESTATUSWINDOW(当候选栏关闭时)。
以下是我正在使用的代码。它在基本上任何应用程序(如winform,wpf或notepad ++,因为我在这里使用全局钩子)都能正常工作,但是,当我在Vsto Word Add-in应用程序中使用此代码时,IMC_CLOSESTATUSWINDOW消息永远不会被捕获。任何人有任何想法或任何线索将不胜感激。
int CandidateBarOpen = 0;
LRESULT CALLBACK HookshurufaProcess(int nCode, WPARAM wParam, LPARAM lParam)
{
//win10
PMSG pmsg = (PMSG)lParam;
if (pmsg->message == WM_IME_NOTIFY){
if (pmsg->wParam& IMC_CLOSESTATUSWINDOW){
CandidateBarOpen = 1;
}
else if (pmsg->wParam& IMC_OPENSTATUSWINDOW){
CandidateBarOpen = 0;
}
}
return TRUE;
}
感谢您的注意,只是编辑为C++。 – Yao