/// <summary> /// Converts the internal MouseMessage enum to GHMouseButtons enumeration. /// </summary> /// <param name="button">The MouseMessage argument that was passed on by the InternalGlobalMouseHook to the MouseEvent event.</param> /// <param name="mouseData">(Optional) For an X Button Down or Up, we need to retrieve which X Button was pressed and the information is stored on the mouseData variable.</param> /// <returns></returns> GHMouseButtons MouseMessageToGHMouseButton(InternalGlobalMouseHook.MouseMessages button, uint mouseData = 0) { switch (button) //We need to check which button was pressed and we need to return the associated GHMouseButton enumeration. { case InternalGlobalMouseHook.MouseMessages.WM_LBUTTONDOWN: return(GHMouseButtons.Left); case InternalGlobalMouseHook.MouseMessages.WM_LBUTTONUP: return(GHMouseButtons.Left); case InternalGlobalMouseHook.MouseMessages.WM_MBUTTONDOWN: return(GHMouseButtons.Middle); case InternalGlobalMouseHook.MouseMessages.WM_MBUTTONUP: return(GHMouseButtons.Middle); case InternalGlobalMouseHook.MouseMessages.WM_RBUTTONDOWN: return(GHMouseButtons.Right); case InternalGlobalMouseHook.MouseMessages.WM_RBUTTONUP: return(GHMouseButtons.Right); case InternalGlobalMouseHook.MouseMessages.WM_XBUTTONDOWN: if ((InternalGlobalMouseHook.XButtons)Helper.GetUnsignedHWORD(mouseData) == InternalGlobalMouseHook.XButtons.WM_XBUTTON1) //The high order word stored in mouseData tells us which button was clicked. We need to get that by using the GetUnsignedHWord helper method. { return(GHMouseButtons.XButton1); } else { return(GHMouseButtons.XButton2); } case InternalGlobalMouseHook.MouseMessages.WM_XBUTTONUP: if ((InternalGlobalMouseHook.XButtons)Helper.GetUnsignedHWORD(mouseData) == InternalGlobalMouseHook.XButtons.WM_XBUTTON1) { return(GHMouseButtons.XButton1); } else { return(GHMouseButtons.XButton2); } default: return(GHMouseButtons.None); } }
public GlobalMouseHookEventArgs(InternalGlobalMouseHook.MouseMessages mouseMessages, InternalGlobalMouseHook.MSLLHOOKSTRUCT mouseData) { MouseMessages = mouseMessages; MouseData = mouseData; }