private void DebugMousePressSignal(int code, int wParam, MouseHookStructure.HookStruct lParam) { logger.Debug($"mouse code = {code}"); logger.Debug($"mouse wparam = {wParam}"); logger.Debug($"mouse lparam struct = (info = {lParam.dwExtraInfo}, mouseData {lParam.mousedata}, " + $"testCode {lParam.wHitTestCode}, Point.X = {lParam.pt.x}, Point.Y = {lParam.pt.y})"); }
/// <summary> /// Global mouse hook procedure /// </summary> /// <param name="code"></param> /// <param name="wParam"></param> /// <param name="lParam"></param> /// <returns></returns> private IntPtr ConfigHook(int code, int wParam, ref MouseHookStructure.HookStruct lParam) { //DebugMousePressSignal(code, wParam, lParam); if (code < 0) { //you need to call CallNextHookEx without further processing //and return the value returned by CallNextHookEx return(ApiFunctions.CallNextHookEx(mouseHookHandler, code, wParam, ref lParam)); } if (MouseCodes.WM_LBUTTONDOWN == (MouseCodes)wParam || MouseCodes.WM_RBUTTONDOWN == (MouseCodes)wParam) { var modKeysToPressOnce = Globals.GetModKeysToPressOnce().ToList(); var modKeysToUse = Globals.GetModKeysToHoldDown().ToList(); modKeysToUse.AddRange(modKeysToPressOnce); CheckCrtlKeyPressed(); //CheckShiftKeyPressed(); } return(ApiFunctions.CallNextHookEx(mouseHookHandler, code, wParam, ref lParam)); }
public static extern IntPtr CallNextHookEx(IntPtr hookHandler, int nCode, int wParam, ref MouseHookStructure.HookStruct lParam);