我目前正在開發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