public int HookProc(int ncode, int wparam, IntPtr lparam) { if (ncode >= 0) { MouseHookStruct mousehookstruct = (MouseHookStruct)Marshal.PtrToStructure(lparam, typeof(MouseHookStruct)); MouseButtons button = MouseButtons.None; short mouseDelta = 0; int clickCount = 0; bool mouseDown = false; bool mouseUp = false; switch (wparam) { case WM_LBUTTONDOWN: mouseDown = true; button = MouseButtons.Left; clickCount = 1; break; case WM_LBUTTONUP: mouseDown = true; button = MouseButtons.Left; clickCount = 1; break; case WM_MOUSEWHEEL: mouseDelta = (short)((mousehookstruct.MouseData) >> 16 & 0xffff); break; } mousehook6mar.MouseEventExtArgs e = new mousehook6mar.MouseEventExtArgs(button, clickCount, mousehookstruct.Point.X, mousehookstruct.Point.Y, mouseDelta); if (s_MouseUp != null && mouseUp) { s_MouseUp.Invoke(null, e); } if (s_MouseDown != null && mouseDown) { s_MouseDown.Invoke(null, e); } if (s_MouseWheel != null && mouseDelta != 0) { s_MouseWheel.Invoke(null, e); }
System.Windows.Forms.Controls
MouseClick
MouseEnter
MouseUp
MouseDown
MouseScroll
System.Windows.Forms.Form.DefWndProc
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)