현재 VSTO Word 추가 기능 프로그램을 개발 중입니다. IME 메시지를 캡처하여 입력 상태를 모니터링해야합니다. 여기서 캡처하려고하는 메시지는 두 가지입니다.글로벌 훅을 사용하여 IME 메시지 캡처
1, IMC_OPENSTATUSWINDOW (후보 막대가 열려있을 때) 2, IMC_CLOSESTATUSWINDOW (후보 막대가 닫힐 때).
아래 코드는 제가 사용하고있는 코드입니다. Vsto Word Add-in 응용 프로그램에서이 코드를 사용하면 IMC_CLOSESTATUSWINDOW 메시지를 캡처 할 수 없지만 기본적으로 모든 응용 프로그램 (winform, wpf 또는 notepad ++ 같은 전역 후크를 사용하기 때문에)에서는 잘 작동합니다. 누구나 아이디어가 있거나 단서를 얻으실 수 있습니다.
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