为什么钩不住WM_COPYDATA消息?该如何解决

为什么钩不住WM_COPYDATA消息?
我是在同一进程里试的,但始终钩不住WM_COPYDATA消息!!


HHOOK   hhook1;
HHOOK   hhook2;
HHOOK   hhook3;


void   CtestdllDlg::OnBnClickedOk()
{

COPYDATASTRUCT   cps;


cps.cbData   =   0;
cps.dwData   =   HH_StartFish;
cps.lpData   =   NULL;
hhook1   =   SetWindowsHookEx(WH_GETMESSAGE,   HookHotKey,   NULL,   GetCurrentThreadId());
hhook2   =   SetWindowsHookEx(WH_CALLWNDPROC,   CallWndProc,   NULL,   GetCurrentThreadId());
hhook3   =   SetWindowsHookEx(WH_CALLWNDPROCRET,   CallWndRetProc,   NULL,   GetCurrentThreadId());
::PostThreadMessage(GetCurrentThreadId(),   WM_NULL,   0,   0);
::SendMessage(m_hWnd,   WM_COPYDATA,   0,   (LPARAM)&cps);

}


LRESULT   CALLBACK   HookHotKey(int   code,   WPARAM   wParam,   LPARAM   lParam)
{

CWPSTRUCT*   pTemp   =   (CWPSTRUCT*)lParam;
HWND   hWnd   =   pTemp-> hwnd;


if(code   >   0)
{
if(pTemp-> message   ==   WM_COPYDATA)
{
PCOPYDATASTRUCT   pCopyDataStruct;


pCopyDataStruct   =   (PCOPYDATASTRUCT)pTemp-> lParam;
if(pCopyDataStruct)
{
if(pCopyDataStruct-> dwData   ==   HH_StartFish)
{
::MessageBox(0,   "pCopyDataStruct ",   NULL,   MB_OK   |   MB_ICONSTOP);
}
}
}

}

return   CallNextHookEx(hhook1,   code,   wParam,   lParam);

}

LRESULT   CALLBACK   CallWndProc(int   code,   WPARAM   wParam,   LPARAM   lParam)
{

CWPSTRUCT*   pTemp   =   (CWPSTRUCT*)lParam;


if(code   >   0)
{
if(pTemp-> message   ==   WM_COPYDATA)
{
PCOPYDATASTRUCT   pCopyDataStruct;


pCopyDataStruct   =   (PCOPYDATASTRUCT)pTemp-> lParam;
if(pCopyDataStruct)
{
if(pCopyDataStruct-> dwData   ==   HH_StartFish)
{
::MessageBox(0,   "pCopyDataStruct ",   NULL,   MB_OK   |   MB_ICONSTOP);
}
}
}

}

return   CallNextHookEx(hhook2,   code,   wParam,   lParam);

}


LRESULT   CALLBACK   CallWndRetProc(int   code,   WPARAM   wParam,   LPARAM   lParam)
{

CWPSTRUCT*   pTemp   =   (CWPSTRUCT*)lParam;


if(code   >   0)
{
if(pTemp-> message   ==   WM_COPYDATA)
{
PCOPYDATASTRUCT   pCopyDataStruct;


pCopyDataStruct   =   (PCOPYDATASTRUCT)pTemp-> lParam;
if(pCopyDataStruct)
{
if(pCopyDataStruct-> dwData   ==   HH_StartFish)
{
::MessageBox(0,   "pCopyDataStruct ",   NULL,   MB_OK   |   MB_ICONSTOP);
}
}
}

}

return   CallNextHookEx(hhook3,   code,   wParam,   lParam);

}

------解决方案--------------------
我来接.
------解决方案--------------------
jiefen