///// DLL에 훅 설치 함수
#define WM_ACTIVWND WM_USER+1
.
.
.
extern "C" __declspec(dllexport)
HHOOK InstallSHHook ()
{
g_hSHHook=SetWindowsHookEx(WH_SHELL,SHHookProc,g_hInst, 0);
return g_hSHHook;
}
.
.
.
extern "C" __declspec(dllexport)
LRESULT CALLBACK CBTHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
switch(nCode)
{
case HSHELL_WINDOWACTIVATED :
SendMessage(g_hwndBlackBox, WM_ACTIVWND, wParam, lParam ) ; // 중단점
break;
}
return (CallNextHookEx(g_hSHHook, nCode, wParam, lParam));
}
일단 이렇게 간략히 추려 봤습니다.
제대로 했다고 생각하는데
중단점을 설정해놓고 디버깅을 해봐도
g_hwndBlackBox // 제 메인 윈도우 핸들
를 제외한 모든 메시지가 후킹이 안되네요..
(이 훅을 설치한 윈도의(g_hwndBlackBox ) 에서의 메시지는 후킹됨... )
왜이럴까요 ㅜㅜ
이거때문에 지금 3일 째입니다
해결좀 해주세요 ~~
WH_SHELL 훅은 탑레벨 윈도우만 감지합니다. CBT훅을 쓰세요.