Ecco il codice:
private static IntPtr HookCallback(int nCode, IntPtr wParam, ref MBDLLHOOKSTRUCT lParam)
{
if ((wParam == (IntPtr)WM_LBUTTONUP))
{
mlg.OnClickAction(lParam.mouseData, lParam.scanCode, lParam.pt, MouseState.L_BUTTON_UP);
}
else if ((wParam == (IntPtr)WM_RBUTTONUP))
{
mlg.OnClickAction(lParam.mouseData, lParam.scanCode, lParam.pt, MouseState.R_BUTTON_UP);
}
else if ((wParam == (IntPtr)WM_LBUTTONDOWN))
{
mlg.OnClickAction(lParam.mouseData, lParam.scanCode, lParam.pt, MouseState.L_BUTTON_DOWN);
}
else if ((wParam == (IntPtr)WM_RBUTTONDOWN))
{
mlg.OnClickAction(lParam.mouseData, lParam.scanCode, lParam.pt, MouseState.R_BUTTON_DOWN);
}
else if ((wParam == (IntPtr)WM_LBUTTONDBLCLK))
{
mlg.OnClickAction(lParam.mouseData, lParam.scanCode, lParam.pt, MouseState.L_BUTTON_DB);
}
else if ((wParam == (IntPtr)WM_RBUTTONDBLCLK))
{
mlg.OnClickAction(lParam.mouseData, lParam.scanCode, lParam.pt, MouseState.R_BUTTON_DB);
}
return CallNextHookEx(_hookID, nCode, wParam, ref lParam);
}