using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Runtime.InteropServices; namespace Foundations { public static class NativeMethods { // See https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-msg [StructLayout(LayoutKind.Sequential)] public struct Message { public IntPtr hWnd; public uint message; public IntPtr wParam; public IntPtr lParam; public uint time; public System.Drawing.Point pt; public uint lPrivate; } // See https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-peekmessagea [DllImport("User32.dll", CharSet = CharSet.Auto)] public static extern bool PeekMessage(out Message msg, IntPtr hWnd, uint messageFilterMin, uint messageFilterMax, uint wRemoveMsg); } }