これが私の関数のプロトタイプです:
LRESULT CALLBACK JournalRecoProc(int code, WPARAM wParam, LPARAM lParam)
{
}
ENTER またはマウスボタンがクリックされた場合、内部を確認するにはどうすればよいですか? lParam を使用する必要があると思いますが、方法が見つかりませんでした。
フック プロシージャがWM_KEYFIRSTから WM_KEYLASTの範囲のメッセージを返す場合、次の条件が適用されます。
- EVENTMSG構造体のparamLメンバーは、押されたキーの仮想キー コードを指定します。
- EVENTMSG構造体のparamHメンバーは、スキャン コードを指定します。
- 繰り返し回数を指定する方法はありません。イベントは、常に 1 つの重要なイベントを表すものと見なされます。
したがって、次のようにアクセスします。
LRESULT CALLBACK JournalPlaybackProc(int code, WPARAM wParam, LPARAM lParam)
{
// ... blah blah ...
if (code == HC_GETNEXT)
{
// examine eventmsg
EVENTMSG *pEvent = (EVENTMSG*)lParam;
// keypress
if (pEvent->message >= WM_KEYFIRST &&
pEvent->message <= WM_KEYLAST)
{
// decode key press
unsigned int uVirtualKeyCode = pEvent->paramL;
unsigned int uScanCode = pEvent->paramH;
// do your conditional checks here
if (uVirtualKeyCode == VK_ENTER)
{
// Enter key was pressed
}
}
else if (pEvent->message == WM_LBUTTONDOWN)
{
// left mouse click
}
else // ... add checks for other messages ....
}
// ... blah blah ...
}