ローカルフック使用時にはスレッドIDが必要

Posted on Thu 11 February 2010 in Windows

ローカルフックを作成するには、
第3引数にNULL、第4引数にスレッドIDを指定する。

対して、グローバルフックの場合は、
第3引数にDLLモジュールのハンドル、第4引数に0を指定する。

//ローカルフックの作成
::SetWindowsHookEx(
  WH_GETMESSAGE,
  (HOOKPROC)hookfunc,
  NULL,
  ::GetCurrentThreadId());