diff --git a/PInvoke/Shared/WinUser/MSG.cs b/PInvoke/Shared/WinUser/MSG.cs
new file mode 100644
index 00000000..df134f9d
--- /dev/null
+++ b/PInvoke/Shared/WinUser/MSG.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Runtime.InteropServices;
+
+// ReSharper disable InconsistentNaming
+
+namespace Vanara.PInvoke
+{
+ /// Contains message information from a thread's message queue.
+ [StructLayout(LayoutKind.Sequential)]
+ public struct MSG
+ {
+ /// A handle to the window whose window procedure receives the message. This member is NULL when the message is a thread message.
+ public IntPtr hwnd;
+ /// The message identifier. Applications can only use the low word; the high word is reserved by the system.
+ public uint message;
+ /// Additional information about the message. The exact meaning depends on the value of the message member.
+ public IntPtr wParam;
+ /// Additional information about the message. The exact meaning depends on the value of the message member.
+ public IntPtr lParam;
+ /// The time at which the message was posted.
+ public uint time;
+ /// The horizontal cursor position, in screen coordinates, when the message was posted.
+ public int pt_x;
+ /// The vertical cursor position, in screen coordinates, when the message was posted.
+ public int pt_y;
+ }
+}
\ No newline at end of file