Added constructor for MSG struct

pull/211/head
dahall 2020-12-25 20:40:00 -07:00
parent 5b55dc2686
commit 4c85c898ce
1 changed files with 24 additions and 1 deletions

View File

@ -4,7 +4,9 @@ using System.Runtime.InteropServices;
namespace Vanara.PInvoke
{
/// <summary>Contains message information from a thread's message queue.</summary>
[PInvokeData("winuser.h")]
// https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-msg typedef struct tagMSG { HWND hwnd; UINT message; WPARAM
// wParam; LPARAM lParam; DWORD time; POINT pt; DWORD lPrivate; } MSG, *PMSG, *NPMSG, *LPMSG;
[PInvokeData("winuser.h", MSDNShortId = "NS:winuser.tagMSG")]
[StructLayout(LayoutKind.Sequential)]
public struct MSG
{
@ -30,5 +32,26 @@ namespace Vanara.PInvoke
/// <summary>The vertical cursor position, in screen coordinates, when the message was posted.</summary>
public int pt_y;
/// <summary>Initializes a new instance of the <see cref="MSG"/> struct.</summary>
/// <param name="hwnd">
/// A handle to the window whose window procedure receives the message. This member is NULL when the message is a thread message.
/// </param>
/// <param name="msg">The message identifier. Applications can only use the low word; the high word is reserved by the system.</param>
/// <param name="wParam">Additional information about the message. The exact meaning depends on the value of the message member.</param>
/// <param name="lParam">Additional information about the message. The exact meaning depends on the value of the message member.</param>
/// <param name="pt_x">The horizontal cursor position, in screen coordinates, when the message was posted.</param>
/// <param name="pt_y">The vertical cursor position, in screen coordinates, when the message was posted.</param>
/// <param name="time">The time at which the message was posted.</param>
public MSG(HWND hwnd, uint msg, IntPtr wParam, IntPtr lParam, int pt_x = default, int pt_y = default, uint time = default)
{
this.hwnd = hwnd;
this.message = msg;
this.wParam = wParam;
this.lParam = lParam;
this.time = time;
this.pt_x = pt_x;
this.pt_y = pt_y;
}
}
}