Skip to content
This repository was archived by the owner on Apr 21, 2021. It is now read-only.

Commit 4464062

Browse files
Merge pull request #20 from Jabe/master
Expose MouseData and fix an issue with AsyncConcurrentQueue
2 parents 7819ffa + dd2a631 commit 4464062

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

src/EventHook/Helpers/AsyncConcurrentQueue.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ internal void Enqueue(T value)
3838

3939
//signal
4040
dequeueTaskLock.Wait();
41-
dequeueTask.TrySetResult(true);
41+
dequeueTask?.TrySetResult(true);
4242
dequeueTaskLock.Release();
4343

4444
}

src/EventHook/Hooks/MouseHook.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ internal class RawMouseEventArgs : EventArgs
1111
{
1212
internal MouseMessages Message { get; set; }
1313
internal Point Point { get; set; }
14+
internal uint MouseData { get; set; }
1415
}
1516

1617
/// <summary>
@@ -25,7 +26,9 @@ public enum MouseMessages
2526
WM_RBUTTONDOWN = 0x0204,
2627
WM_RBUTTONUP = 0x0205,
2728
WM_WHEELBUTTONDOWN = 0x207,
28-
WM_WHEELBUTTONUP = 0x208
29+
WM_WHEELBUTTONUP = 0x208,
30+
WM_XBUTTONDOWN = 0x020B,
31+
WM_XBUTTONUP = 0x020C
2932
}
3033

3134
/// <summary>
@@ -94,7 +97,7 @@ private IntPtr HookCallback(
9497

9598
hookStruct = (MSLLHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MSLLHOOKSTRUCT));
9699

97-
MouseAction(null, new RawMouseEventArgs { Message = (MouseMessages)wParam, Point = hookStruct.pt });
100+
MouseAction(null, new RawMouseEventArgs { Message = (MouseMessages)wParam, Point = hookStruct.pt, MouseData = hookStruct.mouseData });
98101

99102
return CallNextHookEx(_hookId, nCode, wParam, lParam);
100103
}

src/EventHook/MouseWatcher.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class MouseEventArgs : EventArgs
1313
{
1414
public MouseMessages Message { get; set; }
1515
public Point Point { get; set; }
16+
public uint MouseData { get; set; }
1617
}
1718

1819
/// <summary>
@@ -134,7 +135,7 @@ private async Task ConsumeKeyAsync()
134135
/// <param name="kd"></param>
135136
private void KListener_KeyDown(RawMouseEventArgs kd)
136137
{
137-
OnMouseInput?.Invoke(null, new MouseEventArgs { Message = kd.Message, Point = kd.Point });
138+
OnMouseInput?.Invoke(null, new MouseEventArgs { Message = kd.Message, Point = kd.Point, MouseData = kd.MouseData });
138139
}
139140
}
140141
}

0 commit comments

Comments
 (0)