15,471
社区成员
发帖
与我相关
我的任务
分享
#include<windows.h>
HINSTANCE m_hDLL;
HHOOK m_hhookDll;
HWND m_hWnd; //调用DLL的窗口句柄
MOUSEHOOKSTRUCT* mhookstruct;
BOOL WINAPI DllMain(
HINSTANCE hinstDLL,
DWORD fdwReason,
LPVOID lpvReserved
)
{
switch(fdwReason)
{
case DLL_PROCESS_ATTACH:
m_hDLL = hinstDLL;
break;
case DLL_THREAD_ATTACH:
break;
case DLL_THREAD_DETACH:
break;
case DLL_PROCESS_DETACH:
UnhookWindowsHookEx(m_hhookDll);
}
return true;
}
LRESULT CALLBACK MouseProc(int nCode,
WPARAM wParam,
LPARAM lParam
)
{
if(wParam == WM_MOUSEMOVE)
{
mhookstruct = (MOUSEHOOKSTRUCT*)lParam;
PostMessage(m_hWnd,WM_MOUSEMOVE,0,MAKELPARAM((mhookstruct->pt).x,(mhookstruct->pt).y ));
return 1;
}
else
{
if(wParam == WM_LBUTTONDOWN )
{
mhookstruct = (MOUSEHOOKSTRUCT*)lParam;
PostMessage(m_hWnd,WM_LBUTTONDOWN ,0,MAKELPARAM(mhookstruct->pt.x,mhookstruct->pt.y));
return 1;
}
}
return CallNextHookEx(m_hhookDll,nCode,wParam,lParam);
}
void _stdcall setHook(HWND hWnd)
{
m_hWnd = hWnd;
m_hhookDll = SetWindowsHookEx(WH_MOUSE,MouseProc,m_hDLL,0);
return;
}