public int MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam) { //Unmarshall the data from the callback. MouseHookStructWithData hookStruct = (MouseHookStructWithData)Marshal.PtrToStructure(lParam, typeof(MouseHookStructWithData)); if (nCode < 0) { return(CallNextHookEx(hHook, nCode, wParam, lParam)); } else { if (wParam.ToInt32() == 0x20A) //WM_MOUSEWHEEL { if (RectangleToScreen( new Rectangle(Point.Empty, Size) ).Contains(hookStruct.pt.x, hookStruct.pt.y)) { OnMouseWheel(new MouseEventArgs(MouseButtons.None, 0, hookStruct.pt.x, hookStruct.pt.y, hookStruct.mouseData)); } } //else if (wParam.ToInt32() == 0x201) //WM_LBUTTONDOWN //{ // if (OrbDropDown.Visible && // OrbDropDown.ToolStripDropDown != null && // !OrbDropDown.ToolStripDropDown.Bounds.Contains(hookStruct.pt.x, hookStruct.pt.y)) // { // Console.WriteLine("CLOSSSING"); // OrbDropDown.CloseAll(); // } //} return(CallNextHookEx(hHook, nCode, wParam, lParam)); } }
public int MouseHookProc(int nCode, IntPtr wParam, IntPtr lParam) { //Marshall the data from the callback. MouseHookStructWithData hookStruct = (MouseHookStructWithData)Marshal.PtrToStructure(lParam, typeof(MouseHookStructWithData)); if (nCode < 0) { return(CallNextHookEx(hHook, nCode, wParam, lParam)); } else { if (wParam.ToInt32() == 0x20A) { if (RectangleToScreen( new Rectangle(Point.Empty, Size) ).Contains(hookStruct.pt.x, hookStruct.pt.y)) { OnMouseWheel(new MouseEventArgs(MouseButtons.None, 0, hookStruct.pt.x, hookStruct.pt.y, hookStruct.mouseData)); } } return(CallNextHookEx(hHook, nCode, wParam, lParam)); } }