|
안녕하세요...
WM_NCPAINT 메세지를 후킹하려고 합니다...
그래서..WH_GETMESSAGE 타입에 대해서 hook을 설정했습니다...
프로시저에 해당하는 부분은 다음과 같습니다..
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
HWND hSend;
MSG *msg;
if (nCode < 0)
return CallNextHookEx(hHook, nCode,wParam, lParam);
switch (nCode)
{
case HC_ACTION:
switch (wParam)
{
case PM_REMOVE:
msg = (MSG *)lParam;
if(msg->message == WM_NCPAINT)
{
MessageBox(NULL, "ncpaint", "hehehe", MB_OK);
}
break;
case PM_NOREMOVE:
break;
default:
break;
}
default:
break;
}
return CallNextHookEx(hHook, nCode, wParam, lParam);
}
그리고 훅은 이렇게 걸었습니다..
HOOK hHook;
hHook = SetWindowsHookEx(WH_GETMESSAGE, (HOOKPROC)GetMsgProc, NULL, GetCurrentThreadId());
WM_PAINT 메세지도 hooking 되는 것을 확인해 봤고..
키보드나 마우스 메시지도 같은 방법으로 잘 되었습니다...
(같은 방법이라고 한 것은..
프로시저에서 if(msg->message == WM_NCPAINT) 이 부분을 해당 메시지로 바꾼 경우입니다...)
그런데 WM_NCPAINT는 처리가 안되는군요...
도움을 부탁드립니다..
감사합니다.. 좋은 하루 되세요! ^^
|