SetWindowsHookExについて


りょく  2008-02-27 13:08:34  No: 29931  IP: 192.*.*.*

DLLのモジュールで以下を使用してシステムフックをかけているのですが
SetWindowsHookEx(WH_CALLWNDPROC, @CallWndProc, hInstance, 0);
実際に実行してみるとEXEのプライマリーのスレッド上のメッセージしか
インターセプトしていないようなのですが?
何か考えられる問題点などあるでしょうか?

編集 削除
KHE00221  2008-02-27 15:45:27  No: 29932  IP: 192.*.*.*

DLL上でメッセージを判別してそこで BEEP 入れても音が鳴らない?
それとも 
EXE に メッセージやコールバックを設定してるけど飛んでこない?

編集 削除
りょく  2008-02-27 16:35:26  No: 29933  IP: 192.*.*.*

DLLのコールバックに入ってくるのはホストアプリ上のメッセージだけです。
ちなみにhInstanceをモジュールハンドルに変えても結局ホストアプリ上のメッセージしか
コールバックに入ってきませんでした

編集 削除
KHE00221  2008-02-27 18:32:42  No: 29934  IP: 192.*.*.*

つまり

>EXE に メッセージやコールバックを設定してるけど飛んでこない?

だね

EXE から DLL にコールバック先を指定すると EXE がロードした DLL に
コールバック先が指定されるけど
HOOK DLL はプロセス毎にロードされるので
そのプロセス毎にロードされたDLLにはコールバック先が設定されて
いないでのコールバックが飛んでこないわけです。

編集 削除