グローバルシェルフックを使用して、Windowsで作成および破棄されたイベントをリッスンしようとしていますが、プログラムが破棄されたイベントをローカルスレッドに登録しているだけのようです。作成イベントはまったくありません。また、そうあるべきだと私が思うグローバルイベントでもありません。
私は最後の日をグーグル、codeguru、codeproject、msdnの精査に費やしましたが、明らかにそうではありませんが、私はそれを正しく行っているように見えます。誰かが私を正しい方向に向けるのを手伝ってもらえますか?
#pragma data_seg(".SHARE")
HWND hWndServer = NULL;
HHOOK g_shell_hook = NULL;
#pragma data_seg()
#pragma comment(linker, "/section:.SHARE,RWS")
TASKBAR_API int StartShellHook(HWND hWnd)
{
g_shell_hook = SetWindowsHookEx(WH_SHELL, ShellProc, g_dll_module_handle, 0);
if(g_shell_hook)
hWndServer = hWnd;
return (g_shell_hook != NULL);
}
これがシェルにフックするための私のコードです。これはすべて私には正しいようですが、やはり、適切な出力が得られません。現在、ShellProc関数は、ウィンドウで簡単な変数インクリメントを実行してメッセージを作成および破棄するように設定されていますが、プログラムはローカルウィンドウの破棄メッセージのブレークのみをヒットします。繰り返しになりますが、どんな助けでも素晴らしいでしょう、事前にどうもありがとうございました。