private static IntPtr MsLLHookCallback(int nCode, HOOKPROC wParam, TagMSLLHOOKSTRUCT lParam) { MouseEventArgs MsEventArgs = new MouseEventArgs(); MsEventArgs.LowLevelMsInfo.dwExtraInfo = lParam.dwExtraInfo; MsEventArgs.LowLevelMsInfo.flags = lParam.flags; MsEventArgs.LowLevelMsInfo.mouseData = lParam.mouseData; MsEventArgs.LowLevelMsInfo.pt = lParam.pt; MsEventArgs.LowLevelMsInfo.time = lParam.time; switch (wParam) { case HOOKPROC.WM_LBUTTONDOWN: OnMouseLBtnDownEvent?.Invoke(nCode, MsEventArgs); break; case HOOKPROC.WM_LBUTTONUP: OnMouseLBtnUpEvent?.Invoke(nCode, MsEventArgs); break; case HOOKPROC.WM_RBUTTONDOWN: OnMouseRBtnDownEvent?.Invoke(nCode, MsEventArgs); break; case HOOKPROC.WM_RBUTTONUP: OnMouseRBtnUpEvent?.Invoke(nCode, MsEventArgs); break; } return(CallNextHookEx(_LowLevelMsHookID, nCode, wParam, lParam)); }
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, HOOKPROC wParam, [In] TagMSLLHOOKSTRUCT lParam);