回調函數簽名
LRESULT CALLBACK JournalRecordProc(int nCode, WPARAM wParam, LPARAM lParam);
參數含義
nCode:行為代碼(HC_ACTION 表示有事件、HC_SYSMODALON/OFF 系統模態狀態)。
wParam:消息類型(WM_MOUSEMOVE、WM_KEYDOWN 等)。
lParam:指向 EVENTMSG 結構的指針,包含訊息詳情(座標、時間、鍵碼等)。
EVENTMSG 結構
typedef struct tagEVENTMSG {
UINT message;
UINT paramL;
UINT paramH;
DWORD time;
HWND hwnd;
} EVENTMSG;
實作要點
nCode < 0 時必須呼叫 CallNextHookEx 並返回其結果。
HC_ACTION 時將 EVENTMSG 複製保存(memcpy),供回放使用。
- 回放鉤子
WH_JOURNALPLAYBACK 需實作 HC_GETNEXT 返回下一事件的時間間隔。
官方文檔參考
MSDN:JournalRecordProc callback function