using Starpelly.Common; using System; using System.Runtime.InteropServices; namespace Starpelly.Enums.Windows { public enum WindowsCursor : int { StandardArrowAndSmallHourglass = 32650, StandardArrow = 32512, Crosshair = 32515, Hand = 32649, ArrowAndQuestionMark = 32651, IBeam = 32513, /// /// Obsolete for applications marked version 4.0 or later. /// [System.Obsolete] Icon = 32641, SlashedCircle = 32648, /// /// Obsolete for applications marked version 4.0 or later. Use FourPointedArrowPointingNorthSouthEastAndWest /// [System.Obsolete] Size = 32640, FourPointedArrowPointingNorthSouthEastAndWest = 32646, DoublePointedArrowPointingNortheastAndSouthwest = 32643, DoublePointedArrowPointingNorthAndSouth = 32645, DoublePointedArrowPointingNorthwestAndSoutheast = 32642, DoublePointedArrowPointingWestAndEast = 32644, VerticalArrow = 32516, Hourglass = 32514 } [Flags] public enum SendInputEventType : uint { InputMouse, InputKeyboard, InputHardware } [StructLayout(LayoutKind.Sequential)] public struct MOUSEINPUT { public int dx; public int dy; public uint mouseData; public MouseEventFlags dwFlags; public uint time; public IntPtr dwExtraInfo; } [StructLayout(LayoutKind.Sequential)] public struct KEYBOARDINPUT { public ushort wVk; public ushort wScan; public uint dwFlags; public uint time; public IntPtr dwExtraInfo; } [StructLayout(LayoutKind.Sequential)] public struct HARDWAREINPUT { public int uMsg; public short wParamL; public short wParamH; } [StructLayout(LayoutKind.Explicit)] public struct MOUSEANDKEYBOARDINPUT { [FieldOffset(0)] public MOUSEINPUT mi; [FieldOffset(0)] public KEYBOARDINPUT ki; [FieldOffset(0)] public HARDWAREINPUT hi; } [Flags] public enum MouseEventFlags : uint { MOUSEEVENT_MOVE = 0x0001, MOUSEEVENT_LEFTDOWN = 0x0002, MOUSEEVENT_LEFTUP = 0x0004, MOUSEEVENT_RIGHTDOWN = 0x0008, MOUSEEVENT_RIGHTUP = 0x0010, MOUSEEVENT_MIDDLEDOWN = 0x0020, MOUSEEVENT_MIDDLEUP = 0x0040, MOUSEEVENT_XDOWN = 0x0080, MOUSEEVENT_XUP = 0x0100, MOUSEEVENT_WHEEL = 0x0800, MOUSEEVENT_VIRTUALDESK = 0x4000, MOUSEEVENT_ABSOLUTE = 0x8000 } [StructLayout(LayoutKind.Sequential)] public struct INPUT { public SendInputEventType type; public MOUSEANDKEYBOARDINPUT mkhi; } }