SendMessage と EM_REPLACESEL を介してメモ帳にテキストを送信する小さなアプリケーションを作成しました。
ここで、メモ帳をフックして EM_REPLACESEL 値 (lParam 値、この場合は「GET THIS TEXT」テキスト) を取得しようとしています。
編集: この写真を参照してください: http://i.stack.imgur.com/8scNL.jpg
フックは正常に動作します。私の問題は、EM_REPLACESEL メッセージをリッスンし、lParam から値を取得することです。
メッセージがメモ帳に送信されると、このコードは正常に機能します。
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
Beep (2000,100);
return(CallNextHookEx(g_hHook, nCode, wParam, lParam));
}
そこで、EM_REPLACESEL メッセージをインターセプトしたいと思います。これは機能しません:
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == EM_REPLACESEL)
{
Beep (2000,100);
}
return(CallNextHookEx(g_hHook, nCode, wParam, lParam));
}
1) EM_REPLACESEL メッセージをリッスンする方法は?
2) lParam 値を取得して MessageBox に表示する方法などのメッセージを受け取った場合。このようなもの:
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode == EM_REPLACESEL)
{
MSG *lpMsg;
lpMsg = (MSG *) lParam;
MessageBox(NULL,(LPCWSTR)lpMsg,NULL,NULL);
}
return(CallNextHookEx(g_hHook, nCode, wParam, lParam));
}
ありがとう