現在、VSTO Wordアドインプログラムを開発中です。 IMEメッセージをキャプチャして入力ステータスを監視する必要があります。ここでキャプチャしようとしている2つのメッセージがあります。グローバルフックを使用してIMEメッセージを取得する
1、IMC_OPENSTATUSWINDOW(候補バーが開いているとき)2、IMC_CLOSESTATUSWINDOW(候補バーが閉じているとき)。
以下は私が使用しているコードです。ただし、Vsto Wordアドインアプリケーションでこのコードを使用すると、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