• 締切済み

グローバルフック

http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_setwindowshookex.htm に フックタイプがスレッドとグローバルの両方をサポートしている場合、最初にスレッドフックが呼び出され、次にグローバルフックが呼び出されます。 と書いてありますが、WH_GETMESSAGEでフックしてWM_USERを発生させてみてもMessageProcは1回しか実行されていないようでした。 MessageProcが2回実行されるという解釈は間違っていますか?

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.2

>フックタイプがスレッドとグローバルの両方をサポートしている場合、最初にスレッドフックが呼び出され、次にグローバルフックが呼び出されます。 なんかMSDNの日本語訳がおかしいですね。 原文はこうです。 For a specified hook type, thread hooks are called first, then global hooks. ようは、「スレッドフックとグローバルフックを両方指定したら、スレッドフックのほうが先に呼ばれるよってことです。」 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/hooks/hookreference/hookfunctions/setwindowshookex.asp

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>MessageProcが2回実行されるという解釈は間違っていますか? 間違ってます。 スレッドフックはdwThreadIdを指定してかけるフック、グローバルフックは0を指定してかけるフックのことです。 WH_GETMESSAGEだからとかは関係ありません。