//! NOTE: this file is autogenerated, DO NOT MODIFY
//--------------------------------------------------------------------------------
// Section: Constants (1402)
//--------------------------------------------------------------------------------
pub const WM_DEVICECHANGE = @as(u32, 537);
pub const BSM_VXDS = @as(u32, 1);
pub const BSM_NETDRIVER = @as(u32, 2);
pub const BSM_INSTALLABLEDRIVERS = @as(u32, 4);
// skipped 'RT_CURSOR'
// skipped 'RT_BITMAP'
// skipped 'RT_ICON'
// skipped 'RT_MENU'
// skipped 'RT_DIALOG'
// skipped 'RT_FONTDIR'
// skipped 'RT_FONT'
// skipped 'RT_ACCELERATOR'
// skipped 'RT_MESSAGETABLE'
pub const DIFFERENCE = @as(u32, 11);
// skipped 'RT_VERSION'
// skipped 'RT_DLGINCLUDE'
// skipped 'RT_PLUGPLAY'
// skipped 'RT_VXD'
// skipped 'RT_ANICURSOR'
// skipped 'RT_ANIICON'
// skipped 'RT_HTML'
pub const RT_MANIFEST = @as(u32, 24);
pub const CREATEPROCESS_MANIFEST_RESOURCE_ID = @as(u32, 1);
pub const ISOLATIONAWARE_MANIFEST_RESOURCE_ID = @as(u32, 2);
pub const ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = @as(u32, 3);
pub const ISOLATIONPOLICY_MANIFEST_RESOURCE_ID = @as(u32, 4);
pub const ISOLATIONPOLICY_BROWSER_MANIFEST_RESOURCE_ID = @as(u32, 5);
pub const MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = @as(u32, 1);
pub const MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = @as(u32, 16);
pub const SB_LINEUP = @as(u32, 0);
pub const SB_LINELEFT = @as(u32, 0);
pub const SB_LINEDOWN = @as(u32, 1);
pub const SB_LINERIGHT = @as(u32, 1);
pub const SB_PAGEUP = @as(u32, 2);
pub const SB_PAGELEFT = @as(u32, 2);
pub const SB_PAGEDOWN = @as(u32, 3);
pub const SB_PAGERIGHT = @as(u32, 3);
pub const SB_THUMBPOSITION = @as(u32, 4);
pub const SB_THUMBTRACK = @as(u32, 5);
pub const SB_TOP = @as(u32, 6);
pub const SB_LEFT = @as(u32, 6);
pub const SB_BOTTOM = @as(u32, 7);
pub const SB_RIGHT = @as(u32, 7);
pub const SB_ENDSCROLL = @as(u32, 8);
pub const HIDE_WINDOW = @as(u32, 0);
pub const SHOW_OPENWINDOW = @as(u32, 1);
pub const SHOW_ICONWINDOW = @as(u32, 2);
pub const SHOW_FULLSCREEN = @as(u32, 3);
pub const SHOW_OPENNOACTIVATE = @as(u32, 4);
pub const KF_EXTENDED = @as(u32, 256);
pub const KF_DLGMODE = @as(u32, 2048);
pub const KF_MENUMODE = @as(u32, 4096);
pub const KF_ALTDOWN = @as(u32, 8192);
pub const KF_REPEAT = @as(u32, 16384);
pub const KF_UP = @as(u32, 32768);
pub const WH_MIN = @as(i32, -1);
pub const WH_HARDWARE = @as(u32, 8);
pub const WH_MAX = @as(u32, 14);
pub const WH_MINHOOK = @as(i32, -1);
pub const WH_MAXHOOK = @as(u32, 14);
pub const HC_ACTION = @as(u32, 0);
pub const HC_GETNEXT = @as(u32, 1);
pub const HC_SKIP = @as(u32, 2);
pub const HC_NOREMOVE = @as(u32, 3);
pub const HC_NOREM = @as(u32, 3);
pub const HC_SYSMODALON = @as(u32, 4);
pub const HC_SYSMODALOFF = @as(u32, 5);
pub const HCBT_MOVESIZE = @as(u32, 0);
pub const HCBT_MINMAX = @as(u32, 1);
pub const HCBT_QS = @as(u32, 2);
pub const HCBT_CREATEWND = @as(u32, 3);
pub const HCBT_DESTROYWND = @as(u32, 4);
pub const HCBT_ACTIVATE = @as(u32, 5);
pub const HCBT_CLICKSKIPPED = @as(u32, 6);
pub const HCBT_KEYSKIPPED = @as(u32, 7);
pub const HCBT_SYSCOMMAND = @as(u32, 8);
pub const HCBT_SETFOCUS = @as(u32, 9);
pub const WTS_CONSOLE_CONNECT = @as(u32, 1);
pub const WTS_CONSOLE_DISCONNECT = @as(u32, 2);
pub const WTS_REMOTE_CONNECT = @as(u32, 3);
pub const WTS_REMOTE_DISCONNECT = @as(u32, 4);
pub const WTS_SESSION_LOGON = @as(u32, 5);
pub const WTS_SESSION_LOGOFF = @as(u32, 6);
pub const WTS_SESSION_LOCK = @as(u32, 7);
pub const WTS_SESSION_UNLOCK = @as(u32, 8);
pub const WTS_SESSION_REMOTE_CONTROL = @as(u32, 9);
pub const WTS_SESSION_CREATE = @as(u32, 10);
pub const WTS_SESSION_TERMINATE = @as(u32, 11);
pub const MSGF_DIALOGBOX = @as(u32, 0);
pub const MSGF_MESSAGEBOX = @as(u32, 1);
pub const MSGF_MENU = @as(u32, 2);
pub const MSGF_SCROLLBAR = @as(u32, 5);
pub const MSGF_NEXTWINDOW = @as(u32, 6);
pub const MSGF_MAX = @as(u32, 8);
pub const MSGF_USER = @as(u32, 4096);
pub const HSHELL_WINDOWCREATED = @as(u32, 1);
pub const HSHELL_WINDOWDESTROYED = @as(u32, 2);
pub const HSHELL_ACTIVATESHELLWINDOW = @as(u32, 3);
pub const HSHELL_WINDOWACTIVATED = @as(u32, 4);
pub const HSHELL_GETMINRECT = @as(u32, 5);
pub const HSHELL_REDRAW = @as(u32, 6);
pub const HSHELL_TASKMAN = @as(u32, 7);
pub const HSHELL_LANGUAGE = @as(u32, 8);
pub const HSHELL_SYSMENU = @as(u32, 9);
pub const HSHELL_ENDTASK = @as(u32, 10);
pub const HSHELL_ACCESSIBILITYSTATE = @as(u32, 11);
pub const HSHELL_APPCOMMAND = @as(u32, 12);
pub const HSHELL_WINDOWREPLACED = @as(u32, 13);
pub const HSHELL_WINDOWREPLACING = @as(u32, 14);
pub const HSHELL_MONITORCHANGED = @as(u32, 16);
pub const HSHELL_HIGHBIT = @as(u32, 32768);
pub const FAPPCOMMAND_MOUSE = @as(u32, 32768);
pub const FAPPCOMMAND_KEY = @as(u32, 0);
pub const FAPPCOMMAND_OEM = @as(u32, 4096);
pub const FAPPCOMMAND_MASK = @as(u32, 61440);
pub const LLMHF_INJECTED = @as(u32, 1);
pub const LLMHF_LOWER_IL_INJECTED = @as(u32, 2);
pub const HKL_PREV = @as(u32, 0);
pub const HKL_NEXT = @as(u32, 1);
pub const INPUTLANGCHANGE_SYSCHARSET = @as(u32, 1);
pub const INPUTLANGCHANGE_FORWARD = @as(u32, 2);
pub const INPUTLANGCHANGE_BACKWARD = @as(u32, 4);
pub const KL_NAMELENGTH = @as(u32, 9);
pub const DESKTOP_READOBJECTS = @as(i32, 1);
pub const DESKTOP_CREATEWINDOW = @as(i32, 2);
pub const DESKTOP_CREATEMENU = @as(i32, 4);
pub const DESKTOP_HOOKCONTROL = @as(i32, 8);
pub const DESKTOP_JOURNALRECORD = @as(i32, 16);
pub const DESKTOP_JOURNALPLAYBACK = @as(i32, 32);
pub const DESKTOP_ENUMERATE = @as(i32, 64);
pub const DESKTOP_WRITEOBJECTS = @as(i32, 128);
pub const DESKTOP_SWITCHDESKTOP = @as(i32, 256);
pub const DF_ALLOWOTHERACCOUNTHOOK = @as(i32, 1);
pub const WINSTA_ENUMDESKTOPS = @as(i32, 1);
pub const WINSTA_READATTRIBUTES = @as(i32, 2);
pub const WINSTA_ACCESSCLIPBOARD = @as(i32, 4);
pub const WINSTA_CREATEDESKTOP = @as(i32, 8);
pub const WINSTA_WRITEATTRIBUTES = @as(i32, 16);
pub const WINSTA_ACCESSGLOBALATOMS = @as(i32, 32);
pub const WINSTA_EXITWINDOWS = @as(i32, 64);
pub const WINSTA_ENUMERATE = @as(i32, 256);
pub const WINSTA_READSCREEN = @as(i32, 512);
pub const CWF_CREATE_ONLY = @as(u32, 1);
pub const WSF_VISIBLE = @as(i32, 1);
pub const UOI_TIMERPROC_EXCEPTION_SUPPRESSION = @as(u32, 7);
pub const WM_NULL = @as(u32, 0);
pub const WM_CREATE = @as(u32, 1);
pub const WM_DESTROY = @as(u32, 2);
pub const WM_MOVE = @as(u32, 3);
pub const WM_SIZE = @as(u32, 5);
pub const WM_ACTIVATE = @as(u32, 6);
pub const WA_INACTIVE = @as(u32, 0);
pub const WA_ACTIVE = @as(u32, 1);
pub const WA_CLICKACTIVE = @as(u32, 2);
pub const WM_SETFOCUS = @as(u32, 7);
pub const WM_KILLFOCUS = @as(u32, 8);
pub const WM_ENABLE = @as(u32, 10);
pub const WM_SETREDRAW = @as(u32, 11);
pub const WM_SETTEXT = @as(u32, 12);
pub const WM_GETTEXT = @as(u32, 13);
pub const WM_GETTEXTLENGTH = @as(u32, 14);
pub const WM_PAINT = @as(u32, 15);
pub const WM_CLOSE = @as(u32, 16);
pub const WM_QUERYENDSESSION = @as(u32, 17);
pub const WM_QUERYOPEN = @as(u32, 19);
pub const WM_ENDSESSION = @as(u32, 22);
pub const WM_QUIT = @as(u32, 18);
pub const WM_ERASEBKGND = @as(u32, 20);
pub const WM_SYSCOLORCHANGE = @as(u32, 21);
pub const WM_SHOWWINDOW = @as(u32, 24);
pub const WM_WININICHANGE = @as(u32, 26);
pub const WM_SETTINGCHANGE = @as(u32, 26);
pub const WM_DEVMODECHANGE = @as(u32, 27);
pub const WM_ACTIVATEAPP = @as(u32, 28);
pub const WM_FONTCHANGE = @as(u32, 29);
pub const WM_TIMECHANGE = @as(u32, 30);
pub const WM_CANCELMODE = @as(u32, 31);
pub const WM_SETCURSOR = @as(u32, 32);
pub const WM_MOUSEACTIVATE = @as(u32, 33);
pub const WM_CHILDACTIVATE = @as(u32, 34);
pub const WM_QUEUESYNC = @as(u32, 35);
pub const WM_GETMINMAXINFO = @as(u32, 36);
pub const WM_PAINTICON = @as(u32, 38);
pub const WM_ICONERASEBKGND = @as(u32, 39);
pub const WM_NEXTDLGCTL = @as(u32, 40);
pub const WM_SPOOLERSTATUS = @as(u32, 42);
pub const WM_DRAWITEM = @as(u32, 43);
pub const WM_MEASUREITEM = @as(u32, 44);
pub const WM_DELETEITEM = @as(u32, 45);
pub const WM_VKEYTOITEM = @as(u32, 46);
pub const WM_CHARTOITEM = @as(u32, 47);
pub const WM_SETFONT = @as(u32, 48);
pub const WM_GETFONT = @as(u32, 49);
pub const WM_SETHOTKEY = @as(u32, 50);
pub const WM_GETHOTKEY = @as(u32, 51);
pub const WM_QUERYDRAGICON = @as(u32, 55);
pub const WM_COMPAREITEM = @as(u32, 57);
pub const WM_GETOBJECT = @as(u32, 61);
pub const WM_COMPACTING = @as(u32, 65);
pub const WM_COMMNOTIFY = @as(u32, 68);
pub const WM_WINDOWPOSCHANGING = @as(u32, 70);
pub const WM_WINDOWPOSCHANGED = @as(u32, 71);
pub const WM_POWER = @as(u32, 72);
pub const PWR_OK = @as(u32, 1);
pub const PWR_FAIL = @as(i32, -1);
pub const PWR_SUSPENDREQUEST = @as(u32, 1);
pub const PWR_SUSPENDRESUME = @as(u32, 2);
pub const PWR_CRITICALRESUME = @as(u32, 3);
pub const WM_COPYDATA = @as(u32, 74);
pub const WM_CANCELJOURNAL = @as(u32, 75);
pub const WM_INPUTLANGCHANGEREQUEST = @as(u32, 80);
pub const WM_INPUTLANGCHANGE = @as(u32, 81);
pub const WM_TCARD = @as(u32, 82);
pub const WM_HELP = @as(u32, 83);
pub const WM_USERCHANGED = @as(u32, 84);
pub const WM_NOTIFYFORMAT = @as(u32, 85);
pub const NFR_ANSI = @as(u32, 1);
pub const NFR_UNICODE = @as(u32, 2);
pub const NF_QUERY = @as(u32, 3);
pub const NF_REQUERY = @as(u32, 4);
pub const WM_STYLECHANGING = @as(u32, 124);
pub const WM_STYLECHANGED = @as(u32, 125);
pub const WM_DISPLAYCHANGE = @as(u32, 126);
pub const WM_GETICON = @as(u32, 127);
pub const WM_SETICON = @as(u32, 128);
pub const WM_NCCREATE = @as(u32, 129);
pub const WM_NCDESTROY = @as(u32, 130);
pub const WM_NCCALCSIZE = @as(u32, 131);
pub const WM_NCHITTEST = @as(u32, 132);
pub const WM_NCPAINT = @as(u32, 133);
pub const WM_NCACTIVATE = @as(u32, 134);
pub const WM_GETDLGCODE = @as(u32, 135);
pub const WM_SYNCPAINT = @as(u32, 136);
pub const WM_NCMOUSEMOVE = @as(u32, 160);
pub const WM_NCLBUTTONDOWN = @as(u32, 161);
pub const WM_NCLBUTTONUP = @as(u32, 162);
pub const WM_NCLBUTTONDBLCLK = @as(u32, 163);
pub const WM_NCRBUTTONDOWN = @as(u32, 164);
pub const WM_NCRBUTTONUP = @as(u32, 165);
pub const WM_NCRBUTTONDBLCLK = @as(u32, 166);
pub const WM_NCMBUTTONDOWN = @as(u32, 167);
pub const WM_NCMBUTTONUP = @as(u32, 168);
pub const WM_NCMBUTTONDBLCLK = @as(u32, 169);
pub const WM_NCXBUTTONDOWN = @as(u32, 171);
pub const WM_NCXBUTTONUP = @as(u32, 172);
pub const WM_NCXBUTTONDBLCLK = @as(u32, 173);
pub const WM_INPUT_DEVICE_CHANGE = @as(u32, 254);
pub const WM_INPUT = @as(u32, 255);
pub const WM_KEYFIRST = @as(u32, 256);
pub const WM_KEYDOWN = @as(u32, 256);
pub const WM_KEYUP = @as(u32, 257);
pub const WM_CHAR = @as(u32, 258);
pub const WM_DEADCHAR = @as(u32, 259);
pub const WM_SYSKEYDOWN = @as(u32, 260);
pub const WM_SYSKEYUP = @as(u32, 261);
pub const WM_SYSCHAR = @as(u32, 262);
pub const WM_SYSDEADCHAR = @as(u32, 263);
pub const WM_KEYLAST = @as(u32, 265);
pub const UNICODE_NOCHAR = @as(u32, 65535);
pub const WM_IME_STARTCOMPOSITION = @as(u32, 269);
pub const WM_IME_ENDCOMPOSITION = @as(u32, 270);
pub const WM_IME_COMPOSITION = @as(u32, 271);
pub const WM_IME_KEYLAST = @as(u32, 271);
pub const WM_INITDIALOG = @as(u32, 272);
pub const WM_COMMAND = @as(u32, 273);
pub const WM_SYSCOMMAND = @as(u32, 274);
pub const WM_TIMER = @as(u32, 275);
pub const WM_HSCROLL = @as(u32, 276);
pub const WM_VSCROLL = @as(u32, 277);
pub const WM_INITMENU = @as(u32, 278);
pub const WM_INITMENUPOPUP = @as(u32, 279);
pub const WM_GESTURE = @as(u32, 281);
pub const WM_GESTURENOTIFY = @as(u32, 282);
pub const WM_MENUSELECT = @as(u32, 287);
pub const WM_MENUCHAR = @as(u32, 288);
pub const WM_ENTERIDLE = @as(u32, 289);
pub const WM_MENURBUTTONUP = @as(u32, 290);
pub const WM_MENUDRAG = @as(u32, 291);
pub const WM_MENUGETOBJECT = @as(u32, 292);
pub const WM_UNINITMENUPOPUP = @as(u32, 293);
pub const WM_MENUCOMMAND = @as(u32, 294);
pub const WM_CHANGEUISTATE = @as(u32, 295);
pub const WM_UPDATEUISTATE = @as(u32, 296);
pub const WM_QUERYUISTATE = @as(u32, 297);
pub const UIS_SET = @as(u32, 1);
pub const UIS_CLEAR = @as(u32, 2);
pub const UIS_INITIALIZE = @as(u32, 3);
pub const UISF_HIDEFOCUS = @as(u32, 1);
pub const UISF_HIDEACCEL = @as(u32, 2);
pub const UISF_ACTIVE = @as(u32, 4);
pub const WM_CTLCOLORMSGBOX = @as(u32, 306);
pub const WM_CTLCOLOREDIT = @as(u32, 307);
pub const WM_CTLCOLORLISTBOX = @as(u32, 308);
pub const WM_CTLCOLORBTN = @as(u32, 309);
pub const WM_CTLCOLORDLG = @as(u32, 310);
pub const WM_CTLCOLORSCROLLBAR = @as(u32, 311);
pub const WM_CTLCOLORSTATIC = @as(u32, 312);
pub const MN_GETHMENU = @as(u32, 481);
pub const WM_MOUSEFIRST = @as(u32, 512);
pub const WM_MOUSEMOVE = @as(u32, 512);
pub const WM_LBUTTONDOWN = @as(u32, 513);
pub const WM_LBUTTONUP = @as(u32, 514);
pub const WM_LBUTTONDBLCLK = @as(u32, 515);
pub const WM_RBUTTONDOWN = @as(u32, 516);
pub const WM_RBUTTONUP = @as(u32, 517);
pub const WM_RBUTTONDBLCLK = @as(u32, 518);
pub const WM_MBUTTONDOWN = @as(u32, 519);
pub const WM_MBUTTONUP = @as(u32, 520);
pub const WM_MBUTTONDBLCLK = @as(u32, 521);
pub const WM_MOUSEWHEEL = @as(u32, 522);
pub const WM_XBUTTONDOWN = @as(u32, 523);
pub const WM_XBUTTONUP = @as(u32, 524);
pub const WM_XBUTTONDBLCLK = @as(u32, 525);
pub const WM_MOUSEHWHEEL = @as(u32, 526);
pub const WM_MOUSELAST = @as(u32, 526);
pub const WHEEL_DELTA = @as(u32, 120);
pub const WM_PARENTNOTIFY = @as(u32, 528);
pub const WM_ENTERMENULOOP = @as(u32, 529);
pub const WM_EXITMENULOOP = @as(u32, 530);
pub const WM_NEXTMENU = @as(u32, 531);
pub const WM_SIZING = @as(u32, 532);
pub const WM_CAPTURECHANGED = @as(u32, 533);
pub const WM_MOVING = @as(u32, 534);
pub const WM_POWERBROADCAST = @as(u32, 536);
pub const PBT_APMQUERYSUSPEND = @as(u32, 0);
pub const PBT_APMQUERYSTANDBY = @as(u32, 1);
pub const PBT_APMQUERYSUSPENDFAILED = @as(u32, 2);
pub const PBT_APMQUERYSTANDBYFAILED = @as(u32, 3);
pub const PBT_APMSUSPEND = @as(u32, 4);
pub const PBT_APMSTANDBY = @as(u32, 5);
pub const PBT_APMRESUMECRITICAL = @as(u32, 6);
pub const PBT_APMRESUMESUSPEND = @as(u32, 7);
pub const PBT_APMRESUMESTANDBY = @as(u32, 8);
pub const PBTF_APMRESUMEFROMFAILURE = @as(u32, 1);
pub const PBT_APMBATTERYLOW = @as(u32, 9);
pub const PBT_APMPOWERSTATUSCHANGE = @as(u32, 10);
pub const PBT_APMOEMEVENT = @as(u32, 11);
pub const PBT_APMRESUMEAUTOMATIC = @as(u32, 18);
pub const PBT_POWERSETTINGCHANGE = @as(u32, 32787);
pub const WM_MDICREATE = @as(u32, 544);
pub const WM_MDIDESTROY = @as(u32, 545);
pub const WM_MDIACTIVATE = @as(u32, 546);
pub const WM_MDIRESTORE = @as(u32, 547);
pub const WM_MDINEXT = @as(u32, 548);
pub const WM_MDIMAXIMIZE = @as(u32, 549);
pub const WM_MDITILE = @as(u32, 550);
pub const WM_MDICASCADE = @as(u32, 551);
pub const WM_MDIICONARRANGE = @as(u32, 552);
pub const WM_MDIGETACTIVE = @as(u32, 553);
pub const WM_MDISETMENU = @as(u32, 560);
pub const WM_ENTERSIZEMOVE = @as(u32, 561);
pub const WM_EXITSIZEMOVE = @as(u32, 562);
pub const WM_DROPFILES = @as(u32, 563);
pub const WM_MDIREFRESHMENU = @as(u32, 564);
pub const WM_POINTERDEVICECHANGE = @as(u32, 568);
pub const WM_POINTERDEVICEINRANGE = @as(u32, 569);
pub const WM_POINTERDEVICEOUTOFRANGE = @as(u32, 570);
pub const WM_TOUCH = @as(u32, 576);
pub const WM_NCPOINTERUPDATE = @as(u32, 577);
pub const WM_NCPOINTERDOWN = @as(u32, 578);
pub const WM_NCPOINTERUP = @as(u32, 579);
pub const WM_POINTERUPDATE = @as(u32, 581);
pub const WM_POINTERDOWN = @as(u32, 582);
pub const WM_POINTERUP = @as(u32, 583);
pub const WM_POINTERENTER = @as(u32, 585);
pub const WM_POINTERLEAVE = @as(u32, 586);
pub const WM_POINTERACTIVATE = @as(u32, 587);
pub const WM_POINTERCAPTURECHANGED = @as(u32, 588);
pub const WM_TOUCHHITTESTING = @as(u32, 589);
pub const WM_POINTERWHEEL = @as(u32, 590);
pub const WM_POINTERHWHEEL = @as(u32, 591);
pub const DM_POINTERHITTEST = @as(u32, 592);
pub const WM_POINTERROUTEDTO = @as(u32, 593);
pub const WM_POINTERROUTEDAWAY = @as(u32, 594);
pub const WM_POINTERROUTEDRELEASED = @as(u32, 595);
pub const WM_IME_SETCONTEXT = @as(u32, 641);
pub const WM_IME_NOTIFY = @as(u32, 642);
pub const WM_IME_CONTROL = @as(u32, 643);
pub const WM_IME_COMPOSITIONFULL = @as(u32, 644);
pub const WM_IME_SELECT = @as(u32, 645);
pub const WM_IME_CHAR = @as(u32, 646);
pub const WM_IME_REQUEST = @as(u32, 648);
pub const WM_IME_KEYDOWN = @as(u32, 656);
pub const WM_IME_KEYUP = @as(u32, 657);
pub const WM_NCMOUSEHOVER = @as(u32, 672);
pub const WM_NCMOUSELEAVE = @as(u32, 674);
pub const WM_WTSSESSION_CHANGE = @as(u32, 689);
pub const WM_TABLET_FIRST = @as(u32, 704);
pub const WM_TABLET_LAST = @as(u32, 735);
pub const WM_DPICHANGED = @as(u32, 736);
pub const WM_DPICHANGED_BEFOREPARENT = @as(u32, 738);
pub const WM_DPICHANGED_AFTERPARENT = @as(u32, 739);
pub const WM_GETDPISCALEDSIZE = @as(u32, 740);
pub const WM_CUT = @as(u32, 768);
pub const WM_COPY = @as(u32, 769);
pub const WM_PASTE = @as(u32, 770);
pub const WM_CLEAR = @as(u32, 771);
pub const WM_UNDO = @as(u32, 772);
pub const WM_RENDERFORMAT = @as(u32, 773);
pub const WM_RENDERALLFORMATS = @as(u32, 774);
pub const WM_DESTROYCLIPBOARD = @as(u32, 775);
pub const WM_DRAWCLIPBOARD = @as(u32, 776);
pub const WM_PAINTCLIPBOARD = @as(u32, 777);
pub const WM_VSCROLLCLIPBOARD = @as(u32, 778);
pub const WM_SIZECLIPBOARD = @as(u32, 779);
pub const WM_ASKCBFORMATNAME = @as(u32, 780);
pub const WM_CHANGECBCHAIN = @as(u32, 781);
pub const WM_HSCROLLCLIPBOARD = @as(u32, 782);
pub const WM_QUERYNEWPALETTE = @as(u32, 783);
pub const WM_PALETTEISCHANGING = @as(u32, 784);
pub const WM_PALETTECHANGED = @as(u32, 785);
pub const WM_HOTKEY = @as(u32, 786);
pub const WM_PRINT = @as(u32, 791);
pub const WM_APPCOMMAND = @as(u32, 793);
pub const WM_THEMECHANGED = @as(u32, 794);
pub const WM_CLIPBOARDUPDATE = @as(u32, 797);
pub const WM_DWMCOMPOSITIONCHANGED = @as(u32, 798);
pub const WM_DWMNCRENDERINGCHANGED = @as(u32, 799);
pub const WM_DWMCOLORIZATIONCOLORCHANGED = @as(u32, 800);
pub const WM_DWMWINDOWMAXIMIZEDCHANGE = @as(u32, 801);
pub const WM_DWMSENDICONICTHUMBNAIL = @as(u32, 803);
pub const WM_DWMSENDICONICLIVEPREVIEWBITMAP = @as(u32, 806);
pub const WM_GETTITLEBARINFOEX = @as(u32, 831);
pub const WM_HANDHELDFIRST = @as(u32, 856);
pub const WM_HANDHELDLAST = @as(u32, 863);
pub const WM_AFXFIRST = @as(u32, 864);
pub const WM_AFXLAST = @as(u32, 895);
pub const WM_PENWINFIRST = @as(u32, 896);
pub const WM_PENWINLAST = @as(u32, 911);
pub const WM_APP = @as(u32, 32768);
pub const WM_USER = @as(u32, 1024);
pub const WMSZ_LEFT = @as(u32, 1);
pub const WMSZ_RIGHT = @as(u32, 2);
pub const WMSZ_TOP = @as(u32, 3);
pub const WMSZ_TOPLEFT = @as(u32, 4);
pub const WMSZ_TOPRIGHT = @as(u32, 5);
pub const WMSZ_BOTTOM = @as(u32, 6);
pub const WMSZ_BOTTOMLEFT = @as(u32, 7);
pub const WMSZ_BOTTOMRIGHT = @as(u32, 8);
pub const HTERROR = @as(i32, -2);
pub const HTTRANSPARENT = @as(i32, -1);
pub const HTNOWHERE = @as(u32, 0);
pub const HTCLIENT = @as(u32, 1);
pub const HTCAPTION = @as(u32, 2);
pub const HTSYSMENU = @as(u32, 3);
pub const HTGROWBOX = @as(u32, 4);
pub const HTSIZE = @as(u32, 4);
pub const HTMENU = @as(u32, 5);
pub const HTHSCROLL = @as(u32, 6);
pub const HTVSCROLL = @as(u32, 7);
pub const HTMINBUTTON = @as(u32, 8);
pub const HTMAXBUTTON = @as(u32, 9);
pub const HTLEFT = @as(u32, 10);
pub const HTRIGHT = @as(u32, 11);
pub const HTTOP = @as(u32, 12);
pub const HTTOPLEFT = @as(u32, 13);
pub const HTTOPRIGHT = @as(u32, 14);
pub const HTBOTTOM = @as(u32, 15);
pub const HTBOTTOMLEFT = @as(u32, 16);
pub const HTBOTTOMRIGHT = @as(u32, 17);
pub const HTBORDER = @as(u32, 18);
pub const HTREDUCE = @as(u32, 8);
pub const HTZOOM = @as(u32, 9);
pub const HTSIZEFIRST = @as(u32, 10);
pub const HTSIZELAST = @as(u32, 17);
pub const HTOBJECT = @as(u32, 19);
pub const HTCLOSE = @as(u32, 20);
pub const HTHELP = @as(u32, 21);
pub const MA_ACTIVATE = @as(u32, 1);
pub const MA_ACTIVATEANDEAT = @as(u32, 2);
pub const MA_NOACTIVATE = @as(u32, 3);
pub const MA_NOACTIVATEANDEAT = @as(u32, 4);
pub const ICON_SMALL = @as(u32, 0);
pub const ICON_BIG = @as(u32, 1);
pub const ICON_SMALL2 = @as(u32, 2);
pub const SIZE_RESTORED = @as(u32, 0);
pub const SIZE_MINIMIZED = @as(u32, 1);
pub const SIZE_MAXIMIZED = @as(u32, 2);
pub const SIZE_MAXSHOW = @as(u32, 3);
pub const SIZE_MAXHIDE = @as(u32, 4);
pub const SIZENORMAL = @as(u32, 0);
pub const SIZEICONIC = @as(u32, 1);
pub const SIZEFULLSCREEN = @as(u32, 2);
pub const SIZEZOOMSHOW = @as(u32, 3);
pub const SIZEZOOMHIDE = @as(u32, 4);
pub const WVR_ALIGNTOP = @as(u32, 16);
pub const WVR_ALIGNLEFT = @as(u32, 32);
pub const WVR_ALIGNBOTTOM = @as(u32, 64);
pub const WVR_ALIGNRIGHT = @as(u32, 128);
pub const WVR_HREDRAW = @as(u32, 256);
pub const WVR_VREDRAW = @as(u32, 512);
pub const WVR_VALIDRECTS = @as(u32, 1024);
pub const MK_LBUTTON = @as(u32, 1);
pub const MK_RBUTTON = @as(u32, 2);
pub const MK_SHIFT = @as(u32, 4);
pub const MK_CONTROL = @as(u32, 8);
pub const MK_MBUTTON = @as(u32, 16);
pub const MK_XBUTTON1 = @as(u32, 32);
pub const MK_XBUTTON2 = @as(u32, 64);
pub const PRF_CHECKVISIBLE = @as(i32, 1);
pub const PRF_NONCLIENT = @as(i32, 2);
pub const PRF_CLIENT = @as(i32, 4);
pub const PRF_ERASEBKGND = @as(i32, 8);
pub const PRF_CHILDREN = @as(i32, 16);
pub const PRF_OWNED = @as(i32, 32);
pub const IDANI_OPEN = @as(u32, 1);
pub const IDANI_CAPTION = @as(u32, 3);
pub const FVIRTKEY = @as(u32, 1);
pub const FNOINVERT = @as(u32, 2);
pub const FSHIFT = @as(u32, 4);
pub const FCONTROL = @as(u32, 8);
pub const FALT = @as(u32, 16);
pub const ODA_DRAWENTIRE = @as(u32, 1);
pub const ODA_SELECT = @as(u32, 2);
pub const ODA_FOCUS = @as(u32, 4);
pub const ODS_SELECTED = @as(u32, 1);
pub const ODS_GRAYED = @as(u32, 2);
pub const ODS_DISABLED = @as(u32, 4);
pub const ODS_CHECKED = @as(u32, 8);
pub const ODS_FOCUS = @as(u32, 16);
pub const ODS_DEFAULT = @as(u32, 32);
pub const ODS_COMBOBOXEDIT = @as(u32, 4096);
pub const ODS_HOTLIGHT = @as(u32, 64);
pub const ODS_INACTIVE = @as(u32, 128);
pub const ODS_NOACCEL = @as(u32, 256);
pub const ODS_NOFOCUSRECT = @as(u32, 512);
pub const IDHOT_SNAPWINDOW = @as(i32, -1);
pub const IDHOT_SNAPDESKTOP = @as(i32, -2);
pub const ENDSESSION_CLOSEAPP = @as(u32, 1);
pub const ENDSESSION_CRITICAL = @as(u32, 1073741824);
pub const ENDSESSION_LOGOFF = @as(u32, 2147483648);
pub const EWX_FORCE = @as(u32, 4);
pub const EWX_FORCEIFHUNG = @as(u32, 16);
pub const EWX_QUICKRESOLVE = @as(u32, 32);
pub const EWX_BOOTOPTIONS = @as(u32, 16777216);
pub const EWX_ARSO = @as(u32, 67108864);
pub const EWX_CHECK_SAFE_FOR_SERVER = @as(u32, 134217728);
pub const EWX_SYSTEM_INITIATED = @as(u32, 268435456);
pub const BROADCAST_QUERY_DENY = @as(u32, 1112363332);
pub const DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = @as(u32, 4);
pub const HWND_MESSAGE = @import("../zig.zig").typedConst(HWND, @as(i32, -3));
pub const ISMEX_NOSEND = @as(u32, 0);
pub const ISMEX_SEND = @as(u32, 1);
pub const ISMEX_NOTIFY = @as(u32, 2);
pub const ISMEX_CALLBACK = @as(u32, 4);
pub const ISMEX_REPLIED = @as(u32, 8);
// skipped 'HWND_DESKTOP'
pub const PW_RENDERFULLCONTENT = @as(u32, 2);
// skipped 'HWND_TOP'
pub const HWND_BOTTOM = @import("../zig.zig").typedConst(HWND, @as(i32, 1));
pub const HWND_TOPMOST = @import("../zig.zig").typedConst(HWND, @as(i32, -1));
pub const HWND_NOTOPMOST = @import("../zig.zig").typedConst(HWND, @as(i32, -2));
pub const DLGWINDOWEXTRA = @as(u32, 30);
pub const POINTER_MOD_SHIFT = @as(u32, 4);
pub const POINTER_MOD_CTRL = @as(u32, 8);
pub const TOUCH_FLAG_NONE = @as(u32, 0);
pub const TOUCH_MASK_NONE = @as(u32, 0);
pub const TOUCH_MASK_CONTACTAREA = @as(u32, 1);
pub const TOUCH_MASK_ORIENTATION = @as(u32, 2);
pub const TOUCH_MASK_PRESSURE = @as(u32, 4);
pub const PEN_FLAG_NONE = @as(u32, 0);
pub const PEN_FLAG_BARREL = @as(u32, 1);
pub const PEN_FLAG_INVERTED = @as(u32, 2);
pub const PEN_FLAG_ERASER = @as(u32, 4);
pub const PEN_MASK_NONE = @as(u32, 0);
pub const PEN_MASK_PRESSURE = @as(u32, 1);
pub const PEN_MASK_ROTATION = @as(u32, 2);
pub const PEN_MASK_TILT_X = @as(u32, 4);
pub const PEN_MASK_TILT_Y = @as(u32, 8);
pub const POINTER_MESSAGE_FLAG_NEW = @as(u32, 1);
pub const POINTER_MESSAGE_FLAG_INRANGE = @as(u32, 2);
pub const POINTER_MESSAGE_FLAG_INCONTACT = @as(u32, 4);
pub const POINTER_MESSAGE_FLAG_FIRSTBUTTON = @as(u32, 16);
pub const POINTER_MESSAGE_FLAG_SECONDBUTTON = @as(u32, 32);
pub const POINTER_MESSAGE_FLAG_THIRDBUTTON = @as(u32, 64);
pub const POINTER_MESSAGE_FLAG_FOURTHBUTTON = @as(u32, 128);
pub const POINTER_MESSAGE_FLAG_FIFTHBUTTON = @as(u32, 256);
pub const POINTER_MESSAGE_FLAG_PRIMARY = @as(u32, 8192);
pub const POINTER_MESSAGE_FLAG_CONFIDENCE = @as(u32, 16384);
pub const POINTER_MESSAGE_FLAG_CANCELED = @as(u32, 32768);
pub const PA_ACTIVATE = @as(u32, 1);
pub const PA_NOACTIVATE = @as(u32, 3);
pub const MAX_TOUCH_COUNT = @as(u32, 256);
pub const TOUCH_HIT_TESTING_DEFAULT = @as(u32, 0);
pub const TOUCH_HIT_TESTING_CLIENT = @as(u32, 1);
pub const TOUCH_HIT_TESTING_NONE = @as(u32, 2);
pub const TOUCH_HIT_TESTING_PROXIMITY_CLOSEST = @as(u32, 0);
pub const TOUCH_HIT_TESTING_PROXIMITY_FARTHEST = @as(u32, 4095);
pub const GWFS_INCLUDE_ANCESTORS = @as(u32, 1);
pub const MAPVK_VK_TO_VSC = @as(u32, 0);
pub const MAPVK_VSC_TO_VK = @as(u32, 1);
pub const MAPVK_VK_TO_CHAR = @as(u32, 2);
pub const MAPVK_VSC_TO_VK_EX = @as(u32, 3);
pub const MAPVK_VK_TO_VSC_EX = @as(u32, 4);
pub const QS_TOUCH = @as(u32, 2048);
pub const QS_POINTER = @as(u32, 4096);
pub const USER_TIMER_MAXIMUM = @as(u32, 2147483647);
pub const USER_TIMER_MINIMUM = @as(u32, 10);
pub const TIMERV_DEFAULT_COALESCING = @as(u32, 0);
pub const TIMERV_NO_COALESCING = @as(u32, 4294967295);
pub const TIMERV_COALESCING_MIN = @as(u32, 1);
pub const TIMERV_COALESCING_MAX = @as(u32, 2147483637);
pub const SM_RESERVED1 = @as(u32, 24);
pub const SM_RESERVED2 = @as(u32, 25);
pub const SM_RESERVED3 = @as(u32, 26);
pub const SM_RESERVED4 = @as(u32, 27);
pub const SM_CMETRICS = @as(u32, 76);
pub const SM_CARETBLINKINGENABLED = @as(u32, 8194);
pub const SM_SYSTEMDOCKED = @as(u32, 8196);
pub const PMB_ACTIVE = @as(u32, 1);
pub const MNC_IGNORE = @as(u32, 0);
pub const MNC_CLOSE = @as(u32, 1);
pub const MNC_EXECUTE = @as(u32, 2);
pub const MNC_SELECT = @as(u32, 3);
pub const MND_CONTINUE = @as(u32, 0);
pub const MND_ENDMENU = @as(u32, 1);
pub const MNGO_NOINTERFACE = @as(u32, 0);
pub const MNGO_NOERROR = @as(u32, 1);
pub const DOF_EXECUTABLE = @as(u32, 32769);
pub const DOF_DOCUMENT = @as(u32, 32770);
pub const DOF_DIRECTORY = @as(u32, 32771);
pub const DOF_MULTIPLE = @as(u32, 32772);
pub const DOF_PROGMAN = @as(u32, 1);
pub const DOF_SHELLDATA = @as(u32, 2);
pub const DO_DROPFILE = @as(i32, 1162627398);
pub const DO_PRINTFILE = @as(i32, 1414419024);
pub const ASFW_ANY = @as(u32, 4294967295);
pub const DCX_EXCLUDEUPDATE = @as(i32, 256);
pub const HELPINFO_WINDOW = @as(u32, 1);
pub const HELPINFO_MENUITEM = @as(u32, 2);
pub const CTLCOLOR_MSGBOX = @as(u32, 0);
pub const CTLCOLOR_EDIT = @as(u32, 1);
pub const CTLCOLOR_LISTBOX = @as(u32, 2);
pub const CTLCOLOR_BTN = @as(u32, 3);
pub const CTLCOLOR_DLG = @as(u32, 4);
pub const CTLCOLOR_SCROLLBAR = @as(u32, 5);
pub const CTLCOLOR_STATIC = @as(u32, 6);
pub const CTLCOLOR_MAX = @as(u32, 7);
pub const COLOR_BTNHIGHLIGHT = @as(u32, 20);
pub const COLOR_BTNHILIGHT = @as(u32, 20);
pub const GW_MAX = @as(u32, 5);
pub const SC_SIZE = @as(u32, 61440);
pub const SC_MOVE = @as(u32, 61456);
pub const SC_MINIMIZE = @as(u32, 61472);
pub const SC_MAXIMIZE = @as(u32, 61488);
pub const SC_NEXTWINDOW = @as(u32, 61504);
pub const SC_PREVWINDOW = @as(u32, 61520);
pub const SC_CLOSE = @as(u32, 61536);
pub const SC_VSCROLL = @as(u32, 61552);
pub const SC_HSCROLL = @as(u32, 61568);
pub const SC_MOUSEMENU = @as(u32, 61584);
pub const SC_KEYMENU = @as(u32, 61696);
pub const SC_ARRANGE = @as(u32, 61712);
pub const SC_RESTORE = @as(u32, 61728);
pub const SC_TASKLIST = @as(u32, 61744);
pub const SC_HOTKEY = @as(u32, 61776);
pub const SC_DEFAULT = @as(u32, 61792);
pub const SC_MONITORPOWER = @as(u32, 61808);
pub const SC_CONTEXTHELP = @as(u32, 61824);
pub const SC_SEPARATOR = @as(u32, 61455);
pub const SCF_ISSECURE = @as(u32, 1);
pub const SC_ICON = @as(u32, 61472);
pub const SC_ZOOM = @as(u32, 61488);
pub const IDC_ARROW = @import("../zig.zig").typedConst([*:0]const u16, @as(i32, 32512));
// skipped 'IDC_IBEAM'
// skipped 'IDC_WAIT'
// skipped 'IDC_CROSS'
// skipped 'IDC_UPARROW'
// skipped 'IDC_SIZE'
// skipped 'IDC_ICON'
// skipped 'IDC_SIZENWSE'
// skipped 'IDC_SIZENESW'
// skipped 'IDC_SIZEWE'
// skipped 'IDC_SIZENS'
// skipped 'IDC_SIZEALL'
// skipped 'IDC_NO'
// skipped 'IDC_HAND'
// skipped 'IDC_APPSTARTING'
// skipped 'IDC_HELP'
// skipped 'IDC_PIN'
// skipped 'IDC_PERSON'
pub const CURSOR_CREATION_SCALING_NONE = @as(u32, 1);
pub const CURSOR_CREATION_SCALING_DEFAULT = @as(u32, 2);
pub const IMAGE_ENHMETAFILE = @as(u32, 3);
pub const LR_COLOR = @as(u32, 2);
pub const RES_ICON = @as(u32, 1);
pub const RES_CURSOR = @as(u32, 2);
pub const OBM_CLOSE = @as(u32, 32754);
pub const OBM_UPARROW = @as(u32, 32753);
pub const OBM_DNARROW = @as(u32, 32752);
pub const OBM_RGARROW = @as(u32, 32751);
pub const OBM_LFARROW = @as(u32, 32750);
pub const OBM_REDUCE = @as(u32, 32749);
pub const OBM_ZOOM = @as(u32, 32748);
pub const OBM_RESTORE = @as(u32, 32747);
pub const OBM_REDUCED = @as(u32, 32746);
pub const OBM_ZOOMD = @as(u32, 32745);
pub const OBM_RESTORED = @as(u32, 32744);
pub const OBM_UPARROWD = @as(u32, 32743);
pub const OBM_DNARROWD = @as(u32, 32742);
pub const OBM_RGARROWD = @as(u32, 32741);
pub const OBM_LFARROWD = @as(u32, 32740);
pub const OBM_MNARROW = @as(u32, 32739);
pub const OBM_COMBO = @as(u32, 32738);
pub const OBM_UPARROWI = @as(u32, 32737);
pub const OBM_DNARROWI = @as(u32, 32736);
pub const OBM_RGARROWI = @as(u32, 32735);
pub const OBM_LFARROWI = @as(u32, 32734);
pub const OBM_OLD_CLOSE = @as(u32, 32767);
pub const OBM_SIZE = @as(u32, 32766);
pub const OBM_OLD_UPARROW = @as(u32, 32765);
pub const OBM_OLD_DNARROW = @as(u32, 32764);
pub const OBM_OLD_RGARROW = @as(u32, 32763);
pub const OBM_OLD_LFARROW = @as(u32, 32762);
pub const OBM_BTSIZE = @as(u32, 32761);
pub const OBM_CHECK = @as(u32, 32760);
pub const OBM_CHECKBOXES = @as(u32, 32759);
pub const OBM_BTNCORNERS = @as(u32, 32758);
pub const OBM_OLD_REDUCE = @as(u32, 32757);
pub const OBM_OLD_ZOOM = @as(u32, 32756);
pub const OBM_OLD_RESTORE = @as(u32, 32755);
pub const OCR_SIZE = @as(u32, 32640);
pub const OCR_ICON = @as(u32, 32641);
pub const OCR_ICOCUR = @as(u32, 32647);
pub const OIC_SAMPLE = @as(u32, 32512);
pub const OIC_HAND = @as(u32, 32513);
pub const OIC_QUES = @as(u32, 32514);
pub const OIC_BANG = @as(u32, 32515);
pub const OIC_NOTE = @as(u32, 32516);
pub const OIC_WINLOGO = @as(u32, 32517);
pub const OIC_WARNING = @as(u32, 32515);
pub const OIC_ERROR = @as(u32, 32513);
pub const OIC_INFORMATION = @as(u32, 32516);
pub const OIC_SHIELD = @as(u32, 32518);
pub const ORD_LANGDRIVER = @as(u32, 1);
pub const IDI_APPLICATION = @import("../zig.zig").typedConst([*:0]const u16, @as(u32, 32512));
// skipped 'IDI_HAND'
// skipped 'IDI_QUESTION'
// skipped 'IDI_EXCLAMATION'
// skipped 'IDI_ASTERISK'
// skipped 'IDI_WINLOGO'
// skipped 'IDI_SHIELD'
pub const IDI_WARNING = @as(u32, 32515);
pub const IDI_ERROR = @as(u32, 32513);
pub const IDI_INFORMATION = @as(u32, 32516);
pub const ES_LEFT = @as(i32, 0);
pub const ES_CENTER = @as(i32, 1);
pub const ES_RIGHT = @as(i32, 2);
pub const ES_MULTILINE = @as(i32, 4);
pub const ES_UPPERCASE = @as(i32, 8);
pub const ES_LOWERCASE = @as(i32, 16);
pub const ES_PASSWORD = @as(i32, 32);
pub const ES_AUTOVSCROLL = @as(i32, 64);
pub const ES_AUTOHSCROLL = @as(i32, 128);
pub const ES_NOHIDESEL = @as(i32, 256);
pub const ES_OEMCONVERT = @as(i32, 1024);
pub const ES_READONLY = @as(i32, 2048);
pub const ES_WANTRETURN = @as(i32, 4096);
pub const ES_NUMBER = @as(i32, 8192);
pub const EN_SETFOCUS = @as(u32, 256);
pub const EN_KILLFOCUS = @as(u32, 512);
pub const EN_CHANGE = @as(u32, 768);
pub const EN_UPDATE = @as(u32, 1024);
pub const EN_ERRSPACE = @as(u32, 1280);
pub const EN_MAXTEXT = @as(u32, 1281);
pub const EN_HSCROLL = @as(u32, 1537);
pub const EN_VSCROLL = @as(u32, 1538);
pub const EN_ALIGN_LTR_EC = @as(u32, 1792);
pub const EN_ALIGN_RTL_EC = @as(u32, 1793);
pub const EN_BEFORE_PASTE = @as(u32, 2048);
pub const EN_AFTER_PASTE = @as(u32, 2049);
pub const EC_LEFTMARGIN = @as(u32, 1);
pub const EC_RIGHTMARGIN = @as(u32, 2);
pub const EC_USEFONTINFO = @as(u32, 65535);
pub const EMSIS_COMPOSITIONSTRING = @as(u32, 1);
pub const EIMES_GETCOMPSTRATONCE = @as(u32, 1);
pub const EIMES_CANCELCOMPSTRINFOCUS = @as(u32, 2);
pub const EIMES_COMPLETECOMPSTRKILLFOCUS = @as(u32, 4);
pub const BS_PUSHBUTTON = @as(i32, 0);
pub const BS_DEFPUSHBUTTON = @as(i32, 1);
pub const BS_CHECKBOX = @as(i32, 2);
pub const BS_AUTOCHECKBOX = @as(i32, 3);
pub const BS_RADIOBUTTON = @as(i32, 4);
pub const BS_3STATE = @as(i32, 5);
pub const BS_AUTO3STATE = @as(i32, 6);
pub const BS_GROUPBOX = @as(i32, 7);
pub const BS_USERBUTTON = @as(i32, 8);
pub const BS_AUTORADIOBUTTON = @as(i32, 9);
pub const BS_PUSHBOX = @as(i32, 10);
pub const BS_OWNERDRAW = @as(i32, 11);
pub const BS_TYPEMASK = @as(i32, 15);
pub const BS_LEFTTEXT = @as(i32, 32);
pub const BS_TEXT = @as(i32, 0);
pub const BS_ICON = @as(i32, 64);
pub const BS_BITMAP = @as(i32, 128);
pub const BS_LEFT = @as(i32, 256);
pub const BS_RIGHT = @as(i32, 512);
pub const BS_CENTER = @as(i32, 768);
pub const BS_TOP = @as(i32, 1024);
pub const BS_BOTTOM = @as(i32, 2048);
pub const BS_VCENTER = @as(i32, 3072);
pub const BS_PUSHLIKE = @as(i32, 4096);
pub const BS_MULTILINE = @as(i32, 8192);
pub const BS_NOTIFY = @as(i32, 16384);
pub const BS_FLAT = @as(i32, 32768);
pub const BS_RIGHTBUTTON = @as(i32, 32);
pub const BN_CLICKED = @as(u32, 0);
pub const BN_PAINT = @as(u32, 1);
pub const BN_HILITE = @as(u32, 2);
pub const BN_UNHILITE = @as(u32, 3);
pub const BN_DISABLE = @as(u32, 4);
pub const BN_DOUBLECLICKED = @as(u32, 5);
pub const BN_PUSHED = @as(u32, 2);
pub const BN_UNPUSHED = @as(u32, 3);
pub const BN_DBLCLK = @as(u32, 5);
pub const BN_SETFOCUS = @as(u32, 6);
pub const BN_KILLFOCUS = @as(u32, 7);
pub const BM_GETCHECK = @as(u32, 240);
pub const BM_SETCHECK = @as(u32, 241);
pub const BM_GETSTATE = @as(u32, 242);
pub const BM_SETSTATE = @as(u32, 243);
pub const BM_SETSTYLE = @as(u32, 244);
pub const BM_CLICK = @as(u32, 245);
pub const BM_GETIMAGE = @as(u32, 246);
pub const BM_SETIMAGE = @as(u32, 247);
pub const BM_SETDONTCLICK = @as(u32, 248);
pub const BST_PUSHED = @as(u32, 4);
pub const BST_FOCUS = @as(u32, 8);
pub const SS_LEFT = @as(i32, 0);
pub const SS_CENTER = @as(i32, 1);
pub const SS_RIGHT = @as(i32, 2);
pub const SS_ICON = @as(i32, 3);
pub const SS_BLACKRECT = @as(i32, 4);
pub const SS_GRAYRECT = @as(i32, 5);
pub const SS_WHITERECT = @as(i32, 6);
pub const SS_BLACKFRAME = @as(i32, 7);
pub const SS_GRAYFRAME = @as(i32, 8);
pub const SS_WHITEFRAME = @as(i32, 9);
pub const SS_USERITEM = @as(i32, 10);
pub const SS_SIMPLE = @as(i32, 11);
pub const SS_LEFTNOWORDWRAP = @as(i32, 12);
pub const SS_OWNERDRAW = @as(i32, 13);
pub const SS_BITMAP = @as(i32, 14);
pub const SS_ENHMETAFILE = @as(i32, 15);
pub const SS_ETCHEDHORZ = @as(i32, 16);
pub const SS_ETCHEDVERT = @as(i32, 17);
pub const SS_ETCHEDFRAME = @as(i32, 18);
pub const SS_TYPEMASK = @as(i32, 31);
pub const SS_REALSIZECONTROL = @as(i32, 64);
pub const SS_NOPREFIX = @as(i32, 128);
pub const SS_NOTIFY = @as(i32, 256);
pub const SS_CENTERIMAGE = @as(i32, 512);
pub const SS_RIGHTJUST = @as(i32, 1024);
pub const SS_REALSIZEIMAGE = @as(i32, 2048);
pub const SS_SUNKEN = @as(i32, 4096);
pub const SS_EDITCONTROL = @as(i32, 8192);
pub const SS_ENDELLIPSIS = @as(i32, 16384);
pub const SS_PATHELLIPSIS = @as(i32, 32768);
pub const SS_WORDELLIPSIS = @as(i32, 49152);
pub const SS_ELLIPSISMASK = @as(i32, 49152);
pub const STM_SETICON = @as(u32, 368);
pub const STM_GETICON = @as(u32, 369);
pub const STM_SETIMAGE = @as(u32, 370);
pub const STM_GETIMAGE = @as(u32, 371);
pub const STN_CLICKED = @as(u32, 0);
pub const STN_DBLCLK = @as(u32, 1);
pub const STN_ENABLE = @as(u32, 2);
pub const STN_DISABLE = @as(u32, 3);
pub const STM_MSGMAX = @as(u32, 372);
pub const DWL_MSGRESULT = @as(u32, 0);
pub const DWL_DLGPROC = @as(u32, 4);
pub const DWL_USER = @as(u32, 8);
pub const DWLP_MSGRESULT = @as(u32, 0);
pub const DS_ABSALIGN = @as(i32, 1);
pub const DS_SYSMODAL = @as(i32, 2);
pub const DS_LOCALEDIT = @as(i32, 32);
pub const DS_SETFONT = @as(i32, 64);
pub const DS_MODALFRAME = @as(i32, 128);
pub const DS_NOIDLEMSG = @as(i32, 256);
pub const DS_SETFOREGROUND = @as(i32, 512);
pub const DS_3DLOOK = @as(i32, 4);
pub const DS_FIXEDSYS = @as(i32, 8);
pub const DS_NOFAILCREATE = @as(i32, 16);
pub const DS_CONTROL = @as(i32, 1024);
pub const DS_CENTER = @as(i32, 2048);
pub const DS_CENTERMOUSE = @as(i32, 4096);
pub const DS_CONTEXTHELP = @as(i32, 8192);
pub const DS_USEPIXELS = @as(i32, 32768);
pub const DM_GETDEFID = @as(u32, 1024);
pub const DM_SETDEFID = @as(u32, 1025);
pub const DM_REPOSITION = @as(u32, 1026);
pub const DC_HASDEFID = @as(u32, 21323);
pub const DLGC_WANTARROWS = @as(u32, 1);
pub const DLGC_WANTTAB = @as(u32, 2);
pub const DLGC_WANTALLKEYS = @as(u32, 4);
pub const DLGC_WANTMESSAGE = @as(u32, 4);
pub const DLGC_HASSETSEL = @as(u32, 8);
pub const DLGC_DEFPUSHBUTTON = @as(u32, 16);
pub const DLGC_UNDEFPUSHBUTTON = @as(u32, 32);
pub const DLGC_RADIOBUTTON = @as(u32, 64);
pub const DLGC_WANTCHARS = @as(u32, 128);
pub const DLGC_STATIC = @as(u32, 256);
pub const DLGC_BUTTON = @as(u32, 8192);
pub const LB_CTLCODE = @as(i32, 0);
pub const LB_OKAY = @as(u32, 0);
pub const LB_ERR = @as(i32, -1);
pub const LB_ERRSPACE = @as(i32, -2);
pub const LBN_ERRSPACE = @as(i32, -2);
pub const LBN_SELCHANGE = @as(u32, 1);
pub const LBN_DBLCLK = @as(u32, 2);
pub const LBN_SELCANCEL = @as(u32, 3);
pub const LBN_SETFOCUS = @as(u32, 4);
pub const LBN_KILLFOCUS = @as(u32, 5);
pub const LB_ADDSTRING = @as(u32, 384);
pub const LB_INSERTSTRING = @as(u32, 385);
pub const LB_DELETESTRING = @as(u32, 386);
pub const LB_SELITEMRANGEEX = @as(u32, 387);
pub const LB_RESETCONTENT = @as(u32, 388);
pub const LB_SETSEL = @as(u32, 389);
pub const LB_SETCURSEL = @as(u32, 390);
pub const LB_GETSEL = @as(u32, 391);
pub const LB_GETCURSEL = @as(u32, 392);
pub const LB_GETTEXT = @as(u32, 393);
pub const LB_GETTEXTLEN = @as(u32, 394);
pub const LB_GETCOUNT = @as(u32, 395);
pub const LB_SELECTSTRING = @as(u32, 396);
pub const LB_DIR = @as(u32, 397);
pub const LB_GETTOPINDEX = @as(u32, 398);
pub const LB_FINDSTRING = @as(u32, 399);
pub const LB_GETSELCOUNT = @as(u32, 400);
pub const LB_GETSELITEMS = @as(u32, 401);
pub const LB_SETTABSTOPS = @as(u32, 402);
pub const LB_GETHORIZONTALEXTENT = @as(u32, 403);
pub const LB_SETHORIZONTALEXTENT = @as(u32, 404);
pub const LB_SETCOLUMNWIDTH = @as(u32, 405);
pub const LB_ADDFILE = @as(u32, 406);
pub const LB_SETTOPINDEX = @as(u32, 407);
pub const LB_GETITEMRECT = @as(u32, 408);
pub const LB_GETITEMDATA = @as(u32, 409);
pub const LB_SETITEMDATA = @as(u32, 410);
pub const LB_SELITEMRANGE = @as(u32, 411);
pub const LB_SETANCHORINDEX = @as(u32, 412);
pub const LB_GETANCHORINDEX = @as(u32, 413);
pub const LB_SETCARETINDEX = @as(u32, 414);
pub const LB_GETCARETINDEX = @as(u32, 415);
pub const LB_SETITEMHEIGHT = @as(u32, 416);
pub const LB_GETITEMHEIGHT = @as(u32, 417);
pub const LB_FINDSTRINGEXACT = @as(u32, 418);
pub const LB_SETLOCALE = @as(u32, 421);
pub const LB_GETLOCALE = @as(u32, 422);
pub const LB_SETCOUNT = @as(u32, 423);
pub const LB_INITSTORAGE = @as(u32, 424);
pub const LB_ITEMFROMPOINT = @as(u32, 425);
pub const LB_MULTIPLEADDSTRING = @as(u32, 433);
pub const LB_GETLISTBOXINFO = @as(u32, 434);
pub const LB_MSGMAX = @as(u32, 435);
pub const LBS_NOTIFY = @as(i32, 1);
pub const LBS_SORT = @as(i32, 2);
pub const LBS_NOREDRAW = @as(i32, 4);
pub const LBS_MULTIPLESEL = @as(i32, 8);
pub const LBS_OWNERDRAWFIXED = @as(i32, 16);
pub const LBS_OWNERDRAWVARIABLE = @as(i32, 32);
pub const LBS_HASSTRINGS = @as(i32, 64);
pub const LBS_USETABSTOPS = @as(i32, 128);
pub const LBS_NOINTEGRALHEIGHT = @as(i32, 256);
pub const LBS_MULTICOLUMN = @as(i32, 512);
pub const LBS_WANTKEYBOARDINPUT = @as(i32, 1024);
pub const LBS_EXTENDEDSEL = @as(i32, 2048);
pub const LBS_DISABLENOSCROLL = @as(i32, 4096);
pub const LBS_NODATA = @as(i32, 8192);
pub const LBS_NOSEL = @as(i32, 16384);
pub const LBS_COMBOBOX = @as(i32, 32768);
pub const CB_OKAY = @as(u32, 0);
pub const CB_ERR = @as(i32, -1);
pub const CB_ERRSPACE = @as(i32, -2);
pub const CBN_ERRSPACE = @as(i32, -1);
pub const CBN_SELCHANGE = @as(u32, 1);
pub const CBN_DBLCLK = @as(u32, 2);
pub const CBN_SETFOCUS = @as(u32, 3);
pub const CBN_KILLFOCUS = @as(u32, 4);
pub const CBN_EDITCHANGE = @as(u32, 5);
pub const CBN_EDITUPDATE = @as(u32, 6);
pub const CBN_DROPDOWN = @as(u32, 7);
pub const CBN_CLOSEUP = @as(u32, 8);
pub const CBN_SELENDOK = @as(u32, 9);
pub const CBN_SELENDCANCEL = @as(u32, 10);
pub const CBS_SIMPLE = @as(i32, 1);
pub const CBS_DROPDOWN = @as(i32, 2);
pub const CBS_DROPDOWNLIST = @as(i32, 3);
pub const CBS_OWNERDRAWFIXED = @as(i32, 16);
pub const CBS_OWNERDRAWVARIABLE = @as(i32, 32);
pub const CBS_AUTOHSCROLL = @as(i32, 64);
pub const CBS_OEMCONVERT = @as(i32, 128);
pub const CBS_SORT = @as(i32, 256);
pub const CBS_HASSTRINGS = @as(i32, 512);
pub const CBS_NOINTEGRALHEIGHT = @as(i32, 1024);
pub const CBS_DISABLENOSCROLL = @as(i32, 2048);
pub const CBS_UPPERCASE = @as(i32, 8192);
pub const CBS_LOWERCASE = @as(i32, 16384);
pub const CB_GETEDITSEL = @as(u32, 320);
pub const CB_LIMITTEXT = @as(u32, 321);
pub const CB_SETEDITSEL = @as(u32, 322);
pub const CB_ADDSTRING = @as(u32, 323);
pub const CB_DELETESTRING = @as(u32, 324);
pub const CB_DIR = @as(u32, 325);
pub const CB_GETCOUNT = @as(u32, 326);
pub const CB_GETCURSEL = @as(u32, 327);
pub const CB_GETLBTEXT = @as(u32, 328);
pub const CB_GETLBTEXTLEN = @as(u32, 329);
pub const CB_INSERTSTRING = @as(u32, 330);
pub const CB_RESETCONTENT = @as(u32, 331);
pub const CB_FINDSTRING = @as(u32, 332);
pub const CB_SELECTSTRING = @as(u32, 333);
pub const CB_SETCURSEL = @as(u32, 334);
pub const CB_SHOWDROPDOWN = @as(u32, 335);
pub const CB_GETITEMDATA = @as(u32, 336);
pub const CB_SETITEMDATA = @as(u32, 337);
pub const CB_GETDROPPEDCONTROLRECT = @as(u32, 338);
pub const CB_SETITEMHEIGHT = @as(u32, 339);
pub const CB_GETITEMHEIGHT = @as(u32, 340);
pub const CB_SETEXTENDEDUI = @as(u32, 341);
pub const CB_GETEXTENDEDUI = @as(u32, 342);
pub const CB_GETDROPPEDSTATE = @as(u32, 343);
pub const CB_FINDSTRINGEXACT = @as(u32, 344);
pub const CB_SETLOCALE = @as(u32, 345);
pub const CB_GETLOCALE = @as(u32, 346);
pub const CB_GETTOPINDEX = @as(u32, 347);
pub const CB_SETTOPINDEX = @as(u32, 348);
pub const CB_GETHORIZONTALEXTENT = @as(u32, 349);
pub const CB_SETHORIZONTALEXTENT = @as(u32, 350);
pub const CB_GETDROPPEDWIDTH = @as(u32, 351);
pub const CB_SETDROPPEDWIDTH = @as(u32, 352);
pub const CB_INITSTORAGE = @as(u32, 353);
pub const CB_MULTIPLEADDSTRING = @as(u32, 355);
pub const CB_GETCOMBOBOXINFO = @as(u32, 356);
pub const CB_MSGMAX = @as(u32, 357);
pub const SBS_HORZ = @as(i32, 0);
pub const SBS_VERT = @as(i32, 1);
pub const SBS_TOPALIGN = @as(i32, 2);
pub const SBS_LEFTALIGN = @as(i32, 2);
pub const SBS_BOTTOMALIGN = @as(i32, 4);
pub const SBS_RIGHTALIGN = @as(i32, 4);
pub const SBS_SIZEBOXTOPLEFTALIGN = @as(i32, 2);
pub const SBS_SIZEBOXBOTTOMRIGHTALIGN = @as(i32, 4);
pub const SBS_SIZEBOX = @as(i32, 8);
pub const SBS_SIZEGRIP = @as(i32, 16);
pub const SBM_SETPOS = @as(u32, 224);
pub const SBM_GETPOS = @as(u32, 225);
pub const SBM_SETRANGE = @as(u32, 226);
pub const SBM_SETRANGEREDRAW = @as(u32, 230);
pub const SBM_GETRANGE = @as(u32, 227);
pub const SBM_ENABLE_ARROWS = @as(u32, 228);
pub const SBM_SETSCROLLINFO = @as(u32, 233);
pub const SBM_GETSCROLLINFO = @as(u32, 234);
pub const SBM_GETSCROLLBARINFO = @as(u32, 235);
pub const MDIS_ALLCHILDSTYLES = @as(u32, 1);
pub const HELP_CONTEXT = @as(i32, 1);
pub const HELP_QUIT = @as(i32, 2);
pub const HELP_INDEX = @as(i32, 3);
pub const HELP_CONTENTS = @as(i32, 3);
pub const HELP_HELPONHELP = @as(i32, 4);
pub const HELP_SETINDEX = @as(i32, 5);
pub const HELP_SETCONTENTS = @as(i32, 5);
pub const HELP_CONTEXTPOPUP = @as(i32, 8);
pub const HELP_FORCEFILE = @as(i32, 9);
pub const HELP_KEY = @as(i32, 257);
pub const HELP_COMMAND = @as(i32, 258);
pub const HELP_PARTIALKEY = @as(i32, 261);
pub const HELP_MULTIKEY = @as(i32, 513);
pub const HELP_SETWINPOS = @as(i32, 515);
pub const HELP_CONTEXTMENU = @as(u32, 10);
pub const HELP_FINDER = @as(u32, 11);
pub const HELP_WM_HELP = @as(u32, 12);
pub const HELP_SETPOPUP_POS = @as(u32, 13);
pub const HELP_TCARD = @as(u32, 32768);
pub const HELP_TCARD_DATA = @as(u32, 16);
pub const HELP_TCARD_OTHER_CALLER = @as(u32, 17);
pub const IDH_NO_HELP = @as(u32, 28440);
pub const IDH_MISSING_CONTEXT = @as(u32, 28441);
pub const IDH_GENERIC_HELP_BUTTON = @as(u32, 28442);
pub const IDH_OK = @as(u32, 28443);
pub const IDH_CANCEL = @as(u32, 28444);
pub const IDH_HELP = @as(u32, 28445);
pub const MAX_TOUCH_PREDICTION_FILTER_TAPS = @as(u32, 3);
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_LATENCY = @as(u32, 8);
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_SAMPLETIME = @as(u32, 8);
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_USE_HW_TIMESTAMP = @as(u32, 1);
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_DELTA = @as(f32, 1.0e-03);
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MIN = @as(f32, 9.0e-01);
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_MAX = @as(f32, 9.99e-01);
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_LAMBDA_LEARNING_RATE = @as(f32, 1.0e-03);
pub const TOUCHPREDICTIONPARAMETERS_DEFAULT_RLS_EXPO_SMOOTH_ALPHA = @as(f32, 9.9e-01);
pub const MAX_LOGICALDPIOVERRIDE = @as(u32, 2);
pub const MIN_LOGICALDPIOVERRIDE = @as(i32, -2);
pub const FE_FONTSMOOTHINGSTANDARD = @as(u32, 1);
pub const FE_FONTSMOOTHINGCLEARTYPE = @as(u32, 2);
pub const FE_FONTSMOOTHINGORIENTATIONBGR = @as(u32, 0);
pub const FE_FONTSMOOTHINGORIENTATIONRGB = @as(u32, 1);
pub const CONTACTVISUALIZATION_OFF = @as(u32, 0);
pub const CONTACTVISUALIZATION_ON = @as(u32, 1);
pub const CONTACTVISUALIZATION_PRESENTATIONMODE = @as(u32, 2);
pub const GESTUREVISUALIZATION_OFF = @as(u32, 0);
pub const GESTUREVISUALIZATION_ON = @as(u32, 31);
pub const GESTUREVISUALIZATION_TAP = @as(u32, 1);
pub const GESTUREVISUALIZATION_DOUBLETAP = @as(u32, 2);
pub const GESTUREVISUALIZATION_PRESSANDTAP = @as(u32, 4);
pub const GESTUREVISUALIZATION_PRESSANDHOLD = @as(u32, 8);
pub const GESTUREVISUALIZATION_RIGHTTAP = @as(u32, 16);
pub const MOUSEWHEEL_ROUTING_FOCUS = @as(u32, 0);
pub const MOUSEWHEEL_ROUTING_HYBRID = @as(u32, 1);
pub const MOUSEWHEEL_ROUTING_MOUSE_POS = @as(u32, 2);
pub const PENVISUALIZATION_ON = @as(u32, 35);
pub const PENVISUALIZATION_OFF = @as(u32, 0);
pub const PENVISUALIZATION_TAP = @as(u32, 1);
pub const PENVISUALIZATION_DOUBLETAP = @as(u32, 2);
pub const PENVISUALIZATION_CURSOR = @as(u32, 32);
pub const PENARBITRATIONTYPE_NONE = @as(u32, 0);
pub const PENARBITRATIONTYPE_WIN8 = @as(u32, 1);
pub const PENARBITRATIONTYPE_FIS = @as(u32, 2);
pub const PENARBITRATIONTYPE_SPT = @as(u32, 3);
pub const PENARBITRATIONTYPE_MAX = @as(u32, 4);
pub const METRICS_USEDEFAULT = @as(i32, -1);
pub const ARW_STARTMASK = @as(i32, 3);
pub const ARW_STARTRIGHT = @as(i32, 1);
pub const ARW_STARTTOP = @as(i32, 2);
pub const ARW_LEFT = @as(i32, 0);
pub const ARW_RIGHT = @as(i32, 0);
pub const ARW_UP = @as(i32, 4);
pub const ARW_DOWN = @as(i32, 4);
pub const ARW_HIDE = @as(i32, 8);
pub const HCF_LOGONDESKTOP = @as(u32, 256);
pub const HCF_DEFAULTDESKTOP = @as(u32, 512);
pub const EDS_RAWMODE = @as(u32, 2);
pub const EDS_ROTATEDMODE = @as(u32, 4);
pub const EDD_GET_DEVICE_INTERFACE_NAME = @as(u32, 1);
pub const FKF_FILTERKEYSON = @as(u32, 1);
pub const FKF_AVAILABLE = @as(u32, 2);
pub const FKF_HOTKEYACTIVE = @as(u32, 4);
pub const FKF_CONFIRMHOTKEY = @as(u32, 8);
pub const FKF_HOTKEYSOUND = @as(u32, 16);
pub const FKF_INDICATOR = @as(u32, 32);
pub const FKF_CLICKON = @as(u32, 64);
pub const MKF_MOUSEKEYSON = @as(u32, 1);
pub const MKF_AVAILABLE = @as(u32, 2);
pub const MKF_HOTKEYACTIVE = @as(u32, 4);
pub const MKF_CONFIRMHOTKEY = @as(u32, 8);
pub const MKF_HOTKEYSOUND = @as(u32, 16);
pub const MKF_INDICATOR = @as(u32, 32);
pub const MKF_MODIFIERS = @as(u32, 64);
pub const MKF_REPLACENUMBERS = @as(u32, 128);
pub const MKF_LEFTBUTTONSEL = @as(u32, 268435456);
pub const MKF_RIGHTBUTTONSEL = @as(u32, 536870912);
pub const MKF_LEFTBUTTONDOWN = @as(u32, 16777216);
pub const MKF_RIGHTBUTTONDOWN = @as(u32, 33554432);
pub const MKF_MOUSEMODE = @as(u32, 2147483648);
pub const TKF_TOGGLEKEYSON = @as(u32, 1);
pub const TKF_AVAILABLE = @as(u32, 2);
pub const TKF_HOTKEYACTIVE = @as(u32, 4);
pub const TKF_CONFIRMHOTKEY = @as(u32, 8);
pub const TKF_HOTKEYSOUND = @as(u32, 16);
pub const TKF_INDICATOR = @as(u32, 32);
pub const MONITORINFOF_PRIMARY = @as(u32, 1);
pub const WINEVENT_OUTOFCONTEXT = @as(u32, 0);
pub const WINEVENT_SKIPOWNTHREAD = @as(u32, 1);
pub const WINEVENT_SKIPOWNPROCESS = @as(u32, 2);
pub const WINEVENT_INCONTEXT = @as(u32, 4);
pub const CHILDID_SELF = @as(u32, 0);
pub const INDEXID_OBJECT = @as(u32, 0);
pub const INDEXID_CONTAINER = @as(u32, 0);
pub const EVENT_MIN = @as(u32, 1);
pub const EVENT_MAX = @as(u32, 2147483647);
pub const EVENT_SYSTEM_SOUND = @as(u32, 1);
pub const EVENT_SYSTEM_ALERT = @as(u32, 2);
pub const EVENT_SYSTEM_FOREGROUND = @as(u32, 3);
pub const EVENT_SYSTEM_MENUSTART = @as(u32, 4);
pub const EVENT_SYSTEM_MENUEND = @as(u32, 5);
pub const EVENT_SYSTEM_MENUPOPUPSTART = @as(u32, 6);
pub const EVENT_SYSTEM_MENUPOPUPEND = @as(u32, 7);
pub const EVENT_SYSTEM_CAPTURESTART = @as(u32, 8);
pub const EVENT_SYSTEM_CAPTUREEND = @as(u32, 9);
pub const EVENT_SYSTEM_MOVESIZESTART = @as(u32, 10);
pub const EVENT_SYSTEM_MOVESIZEEND = @as(u32, 11);
pub const EVENT_SYSTEM_CONTEXTHELPSTART = @as(u32, 12);
pub const EVENT_SYSTEM_CONTEXTHELPEND = @as(u32, 13);
pub const EVENT_SYSTEM_DRAGDROPSTART = @as(u32, 14);
pub const EVENT_SYSTEM_DRAGDROPEND = @as(u32, 15);
pub const EVENT_SYSTEM_DIALOGSTART = @as(u32, 16);
pub const EVENT_SYSTEM_DIALOGEND = @as(u32, 17);
pub const EVENT_SYSTEM_SCROLLINGSTART = @as(u32, 18);
pub const EVENT_SYSTEM_SCROLLINGEND = @as(u32, 19);
pub const EVENT_SYSTEM_SWITCHSTART = @as(u32, 20);
pub const EVENT_SYSTEM_SWITCHEND = @as(u32, 21);
pub const EVENT_SYSTEM_MINIMIZESTART = @as(u32, 22);
pub const EVENT_SYSTEM_MINIMIZEEND = @as(u32, 23);
pub const EVENT_SYSTEM_DESKTOPSWITCH = @as(u32, 32);
pub const EVENT_SYSTEM_SWITCHER_APPGRABBED = @as(u32, 36);
pub const EVENT_SYSTEM_SWITCHER_APPOVERTARGET = @as(u32, 37);
pub const EVENT_SYSTEM_SWITCHER_APPDROPPED = @as(u32, 38);
pub const EVENT_SYSTEM_SWITCHER_CANCELLED = @as(u32, 39);
pub const EVENT_SYSTEM_IME_KEY_NOTIFICATION = @as(u32, 41);
pub const EVENT_SYSTEM_END = @as(u32, 255);
pub const EVENT_OEM_DEFINED_START = @as(u32, 257);
pub const EVENT_OEM_DEFINED_END = @as(u32, 511);
pub const EVENT_UIA_EVENTID_START = @as(u32, 19968);
pub const EVENT_UIA_EVENTID_END = @as(u32, 20223);
pub const EVENT_UIA_PROPID_START = @as(u32, 29952);
pub const EVENT_UIA_PROPID_END = @as(u32, 30207);
pub const EVENT_CONSOLE_CARET = @as(u32, 16385);
pub const EVENT_CONSOLE_UPDATE_REGION = @as(u32, 16386);
pub const EVENT_CONSOLE_UPDATE_SIMPLE = @as(u32, 16387);
pub const EVENT_CONSOLE_UPDATE_SCROLL = @as(u32, 16388);
pub const EVENT_CONSOLE_LAYOUT = @as(u32, 16389);
pub const EVENT_CONSOLE_START_APPLICATION = @as(u32, 16390);
pub const EVENT_CONSOLE_END_APPLICATION = @as(u32, 16391);
pub const CONSOLE_APPLICATION_16BIT = @as(u32, 0);
pub const CONSOLE_CARET_SELECTION = @as(u32, 1);
pub const CONSOLE_CARET_VISIBLE = @as(u32, 2);
pub const EVENT_CONSOLE_END = @as(u32, 16639);
pub const EVENT_OBJECT_CREATE = @as(u32, 32768);
pub const EVENT_OBJECT_DESTROY = @as(u32, 32769);
pub const EVENT_OBJECT_SHOW = @as(u32, 32770);
pub const EVENT_OBJECT_HIDE = @as(u32, 32771);
pub const EVENT_OBJECT_REORDER = @as(u32, 32772);
pub const EVENT_OBJECT_FOCUS = @as(u32, 32773);
pub const EVENT_OBJECT_SELECTION = @as(u32, 32774);
pub const EVENT_OBJECT_SELECTIONADD = @as(u32, 32775);
pub const EVENT_OBJECT_SELECTIONREMOVE = @as(u32, 32776);
pub const EVENT_OBJECT_SELECTIONWITHIN = @as(u32, 32777);
pub const EVENT_OBJECT_STATECHANGE = @as(u32, 32778);
pub const EVENT_OBJECT_LOCATIONCHANGE = @as(u32, 32779);
pub const EVENT_OBJECT_NAMECHANGE = @as(u32, 32780);
pub const EVENT_OBJECT_DESCRIPTIONCHANGE = @as(u32, 32781);
pub const EVENT_OBJECT_VALUECHANGE = @as(u32, 32782);
pub const EVENT_OBJECT_PARENTCHANGE = @as(u32, 32783);
pub const EVENT_OBJECT_HELPCHANGE = @as(u32, 32784);
pub const EVENT_OBJECT_DEFACTIONCHANGE = @as(u32, 32785);
pub const EVENT_OBJECT_ACCELERATORCHANGE = @as(u32, 32786);
pub const EVENT_OBJECT_INVOKED = @as(u32, 32787);
pub const EVENT_OBJECT_TEXTSELECTIONCHANGED = @as(u32, 32788);
pub const EVENT_OBJECT_CONTENTSCROLLED = @as(u32, 32789);
pub const EVENT_SYSTEM_ARRANGMENTPREVIEW = @as(u32, 32790);
pub const EVENT_OBJECT_CLOAKED = @as(u32, 32791);
pub const EVENT_OBJECT_UNCLOAKED = @as(u32, 32792);
pub const EVENT_OBJECT_LIVEREGIONCHANGED = @as(u32, 32793);
pub const EVENT_OBJECT_HOSTEDOBJECTSINVALIDATED = @as(u32, 32800);
pub const EVENT_OBJECT_DRAGSTART = @as(u32, 32801);
pub const EVENT_OBJECT_DRAGCANCEL = @as(u32, 32802);
pub const EVENT_OBJECT_DRAGCOMPLETE = @as(u32, 32803);
pub const EVENT_OBJECT_DRAGENTER = @as(u32, 32804);
pub const EVENT_OBJECT_DRAGLEAVE = @as(u32, 32805);
pub const EVENT_OBJECT_DRAGDROPPED = @as(u32, 32806);
pub const EVENT_OBJECT_IME_SHOW = @as(u32, 32807);
pub const EVENT_OBJECT_IME_HIDE = @as(u32, 32808);
pub const EVENT_OBJECT_IME_CHANGE = @as(u32, 32809);
pub const EVENT_OBJECT_TEXTEDIT_CONVERSIONTARGETCHANGED = @as(u32, 32816);
pub const EVENT_OBJECT_END = @as(u32, 33023);
pub const EVENT_AIA_START = @as(u32, 40960);
pub const EVENT_AIA_END = @as(u32, 45055);
pub const SOUND_SYSTEM_STARTUP = @as(u32, 1);
pub const SOUND_SYSTEM_SHUTDOWN = @as(u32, 2);
pub const SOUND_SYSTEM_BEEP = @as(u32, 3);
pub const SOUND_SYSTEM_ERROR = @as(u32, 4);
pub const SOUND_SYSTEM_QUESTION = @as(u32, 5);
pub const SOUND_SYSTEM_WARNING = @as(u32, 6);
pub const SOUND_SYSTEM_INFORMATION = @as(u32, 7);
pub const SOUND_SYSTEM_MAXIMIZE = @as(u32, 8);
pub const SOUND_SYSTEM_MINIMIZE = @as(u32, 9);
pub const SOUND_SYSTEM_RESTOREUP = @as(u32, 10);
pub const SOUND_SYSTEM_RESTOREDOWN = @as(u32, 11);
pub const SOUND_SYSTEM_APPSTART = @as(u32, 12);
pub const SOUND_SYSTEM_FAULT = @as(u32, 13);
pub const SOUND_SYSTEM_APPEND = @as(u32, 14);
pub const SOUND_SYSTEM_MENUCOMMAND = @as(u32, 15);
pub const SOUND_SYSTEM_MENUPOPUP = @as(u32, 16);
pub const CSOUND_SYSTEM = @as(u32, 16);
pub const CALERT_SYSTEM = @as(u32, 6);
pub const GUI_16BITTASK = @as(u32, 0);
pub const USER_DEFAULT_SCREEN_DPI = @as(u32, 96);
pub const STATE_SYSTEM_SELECTED = @as(u32, 2);
pub const STATE_SYSTEM_FOCUSED = @as(u32, 4);
pub const STATE_SYSTEM_CHECKED = @as(u32, 16);
pub const STATE_SYSTEM_MIXED = @as(u32, 32);
pub const STATE_SYSTEM_INDETERMINATE = @as(u32, 32);
pub const STATE_SYSTEM_READONLY = @as(u32, 64);
pub const STATE_SYSTEM_HOTTRACKED = @as(u32, 128);
pub const STATE_SYSTEM_DEFAULT = @as(u32, 256);
pub const STATE_SYSTEM_EXPANDED = @as(u32, 512);
pub const STATE_SYSTEM_COLLAPSED = @as(u32, 1024);
pub const STATE_SYSTEM_BUSY = @as(u32, 2048);
pub const STATE_SYSTEM_FLOATING = @as(u32, 4096);
pub const STATE_SYSTEM_MARQUEED = @as(u32, 8192);
pub const STATE_SYSTEM_ANIMATED = @as(u32, 16384);
pub const STATE_SYSTEM_SIZEABLE = @as(u32, 131072);
pub const STATE_SYSTEM_MOVEABLE = @as(u32, 262144);
pub const STATE_SYSTEM_SELFVOICING = @as(u32, 524288);
pub const STATE_SYSTEM_SELECTABLE = @as(u32, 2097152);
pub const STATE_SYSTEM_LINKED = @as(u32, 4194304);
pub const STATE_SYSTEM_TRAVERSED = @as(u32, 8388608);
pub const STATE_SYSTEM_MULTISELECTABLE = @as(u32, 16777216);
pub const STATE_SYSTEM_EXTSELECTABLE = @as(u32, 33554432);
pub const STATE_SYSTEM_ALERT_LOW = @as(u32, 67108864);
pub const STATE_SYSTEM_ALERT_MEDIUM = @as(u32, 134217728);
pub const STATE_SYSTEM_ALERT_HIGH = @as(u32, 268435456);
pub const STATE_SYSTEM_PROTECTED = @as(u32, 536870912);
pub const STATE_SYSTEM_VALID = @as(u32, 1073741823);
pub const CCHILDREN_TITLEBAR = @as(u32, 5);
pub const CCHILDREN_SCROLLBAR = @as(u32, 5);
pub const RIM_INPUT = @as(u32, 0);
pub const RIM_INPUTSINK = @as(u32, 1);
pub const RIM_TYPEMAX = @as(u32, 2);
pub const RI_MOUSE_LEFT_BUTTON_DOWN = @as(u32, 1);
pub const RI_MOUSE_LEFT_BUTTON_UP = @as(u32, 2);
pub const RI_MOUSE_RIGHT_BUTTON_DOWN = @as(u32, 4);
pub const RI_MOUSE_RIGHT_BUTTON_UP = @as(u32, 8);
pub const RI_MOUSE_MIDDLE_BUTTON_DOWN = @as(u32, 16);
pub const RI_MOUSE_MIDDLE_BUTTON_UP = @as(u32, 32);
pub const RI_MOUSE_BUTTON_1_DOWN = @as(u32, 1);
pub const RI_MOUSE_BUTTON_1_UP = @as(u32, 2);
pub const RI_MOUSE_BUTTON_2_DOWN = @as(u32, 4);
pub const RI_MOUSE_BUTTON_2_UP = @as(u32, 8);
pub const RI_MOUSE_BUTTON_3_DOWN = @as(u32, 16);
pub const RI_MOUSE_BUTTON_3_UP = @as(u32, 32);
pub const RI_MOUSE_BUTTON_4_DOWN = @as(u32, 64);
pub const RI_MOUSE_BUTTON_4_UP = @as(u32, 128);
pub const RI_MOUSE_BUTTON_5_DOWN = @as(u32, 256);
pub const RI_MOUSE_BUTTON_5_UP = @as(u32, 512);
pub const RI_MOUSE_WHEEL = @as(u32, 1024);
pub const RI_MOUSE_HWHEEL = @as(u32, 2048);
pub const RI_KEY_MAKE = @as(u32, 0);
pub const RI_KEY_BREAK = @as(u32, 1);
pub const RI_KEY_E0 = @as(u32, 2);
pub const RI_KEY_E1 = @as(u32, 4);
pub const RI_KEY_TERMSRV_SET_LED = @as(u32, 8);
pub const RI_KEY_TERMSRV_SHADOW = @as(u32, 16);
pub const RIDEV_EXMODEMASK = @as(u32, 240);
pub const GIDC_ARRIVAL = @as(u32, 1);
pub const GIDC_REMOVAL = @as(u32, 2);
pub const POINTER_DEVICE_PRODUCT_STRING_MAX = @as(u32, 520);
pub const PDC_ARRIVAL = @as(u32, 1);
pub const PDC_REMOVAL = @as(u32, 2);
pub const PDC_ORIENTATION_0 = @as(u32, 4);
pub const PDC_ORIENTATION_90 = @as(u32, 8);
pub const PDC_ORIENTATION_180 = @as(u32, 16);
pub const PDC_ORIENTATION_270 = @as(u32, 32);
pub const PDC_MODE_DEFAULT = @as(u32, 64);
pub const PDC_MODE_CENTERED = @as(u32, 128);
pub const PDC_MAPPING_CHANGE = @as(u32, 256);
pub const PDC_RESOLUTION = @as(u32, 512);
pub const PDC_ORIGIN = @as(u32, 1024);
pub const PDC_MODE_ASPECTRATIOPRESERVED = @as(u32, 2048);
pub const GF_BEGIN = @as(u32, 1);
pub const GF_INERTIA = @as(u32, 2);
pub const GF_END = @as(u32, 4);
pub const GESTURECONFIGMAXCOUNT = @as(u32, 256);
pub const GCF_INCLUDE_ANCESTORS = @as(u32, 1);
pub const NID_INTEGRATED_TOUCH = @as(u32, 1);
pub const NID_EXTERNAL_TOUCH = @as(u32, 2);
pub const NID_INTEGRATED_PEN = @as(u32, 4);
pub const NID_EXTERNAL_PEN = @as(u32, 8);
pub const NID_MULTI_INPUT = @as(u32, 64);
pub const NID_READY = @as(u32, 128);
pub const MAX_STR_BLOCKREASON = @as(u32, 256);
pub const STRSAFE_USE_SECURE_CRT = @as(u32, 0);
pub const STRSAFE_MAX_CCH = @as(u32, 2147483647);
pub const STRSAFE_IGNORE_NULLS = @as(u32, 256);
pub const STRSAFE_FILL_BEHIND_NULL = @as(u32, 512);
pub const STRSAFE_FILL_ON_FAILURE = @as(u32, 1024);
pub const STRSAFE_NULL_ON_FAILURE = @as(u32, 2048);
pub const STRSAFE_NO_TRUNCATION = @as(u32, 4096);
pub const STRSAFE_E_INSUFFICIENT_BUFFER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147024774));
pub const STRSAFE_E_INVALID_PARAMETER = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147024809));
pub const STRSAFE_E_END_OF_FILE = @import("../zig.zig").typedConst(HRESULT, @as(i32, -2147024858));
pub const __WARNING_CYCLOMATIC_COMPLEXITY = @as(u32, 28734);
pub const __WARNING_USING_UNINIT_VAR = @as(u32, 6001);
pub const __WARNING_RETURN_UNINIT_VAR = @as(u32, 6101);
pub const __WARNING_DEREF_NULL_PTR = @as(u32, 6011);
pub const __WARNING_MISSING_ZERO_TERMINATION2 = @as(u32, 6054);
pub const __WARNING_INVALID_PARAM_VALUE_1 = @as(u32, 6387);
pub const __WARNING_INCORRECT_ANNOTATION = @as(u32, 26007);
pub const __WARNING_POTENTIAL_BUFFER_OVERFLOW_HIGH_PRIORITY = @as(u32, 26015);
pub const __WARNING_PRECONDITION_NULLTERMINATION_VIOLATION = @as(u32, 26035);
pub const __WARNING_POSTCONDITION_NULLTERMINATION_VIOLATION = @as(u32, 26036);
pub const __WARNING_HIGH_PRIORITY_OVERFLOW_POSTCONDITION = @as(u32, 26045);
pub const __WARNING_RANGE_POSTCONDITION_VIOLATION = @as(u32, 26061);
pub const __WARNING_POTENTIAL_RANGE_POSTCONDITION_VIOLATION = @as(u32, 26071);
pub const __WARNING_INVALID_PARAM_VALUE_3 = @as(u32, 28183);
pub const __WARNING_RETURNING_BAD_RESULT = @as(u32, 28196);
pub const __WARNING_BANNED_API_USAGE = @as(u32, 28719);
pub const __WARNING_POST_EXPECTED = @as(u32, 28210);
pub const HBMMENU_CALLBACK = @import("../zig.zig").typedConst(HBITMAP, @as(i32, -1));
pub const HBMMENU_SYSTEM = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 1));
pub const HBMMENU_MBAR_RESTORE = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 2));
pub const HBMMENU_MBAR_MINIMIZE = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 3));
pub const HBMMENU_MBAR_CLOSE = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 5));
pub const HBMMENU_MBAR_CLOSE_D = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 6));
pub const HBMMENU_MBAR_MINIMIZE_D = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 7));
pub const HBMMENU_POPUP_CLOSE = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 8));
pub const HBMMENU_POPUP_RESTORE = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 9));
pub const HBMMENU_POPUP_MAXIMIZE = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 10));
pub const HBMMENU_POPUP_MINIMIZE = @import("../zig.zig").typedConst(HBITMAP, @as(i32, 11));
pub const CW_USEDEFAULT = @as(i32, -2147483648);
pub const LBS_STANDARD = @as(i32, 10485763);

//--------------------------------------------------------------------------------
// Section: Types (154)
//--------------------------------------------------------------------------------
pub const WNDCLASS_STYLES = enum(u32) {
    VREDRAW = 1,
    HREDRAW = 2,
    DBLCLKS = 8,
    OWNDC = 32,
    CLASSDC = 64,
    PARENTDC = 128,
    NOCLOSE = 512,
    SAVEBITS = 2048,
    BYTEALIGNCLIENT = 4096,
    BYTEALIGNWINDOW = 8192,
    GLOBALCLASS = 16384,
    IME = 65536,
    DROPSHADOW = 131072,
    _,
    pub fn initFlags(o: struct {
        VREDRAW: u1 = 0,
        HREDRAW: u1 = 0,
        DBLCLKS: u1 = 0,
        OWNDC: u1 = 0,
        CLASSDC: u1 = 0,
        PARENTDC: u1 = 0,
        NOCLOSE: u1 = 0,
        SAVEBITS: u1 = 0,
        BYTEALIGNCLIENT: u1 = 0,
        BYTEALIGNWINDOW: u1 = 0,
        GLOBALCLASS: u1 = 0,
        IME: u1 = 0,
        DROPSHADOW: u1 = 0,
    }) WNDCLASS_STYLES {
        return @as(WNDCLASS_STYLES, @enumFromInt((if (o.VREDRAW == 1) @intFromEnum(WNDCLASS_STYLES.VREDRAW) else 0) | (if (o.HREDRAW == 1) @intFromEnum(WNDCLASS_STYLES.HREDRAW) else 0) | (if (o.DBLCLKS == 1) @intFromEnum(WNDCLASS_STYLES.DBLCLKS) else 0) | (if (o.OWNDC == 1) @intFromEnum(WNDCLASS_STYLES.OWNDC) else 0) | (if (o.CLASSDC == 1) @intFromEnum(WNDCLASS_STYLES.CLASSDC) else 0) | (if (o.PARENTDC == 1) @intFromEnum(WNDCLASS_STYLES.PARENTDC) else 0) | (if (o.NOCLOSE == 1) @intFromEnum(WNDCLASS_STYLES.NOCLOSE) else 0) | (if (o.SAVEBITS == 1) @intFromEnum(WNDCLASS_STYLES.SAVEBITS) else 0) | (if (o.BYTEALIGNCLIENT == 1) @intFromEnum(WNDCLASS_STYLES.BYTEALIGNCLIENT) else 0) | (if (o.BYTEALIGNWINDOW == 1) @intFromEnum(WNDCLASS_STYLES.BYTEALIGNWINDOW) else 0) | (if (o.GLOBALCLASS == 1) @intFromEnum(WNDCLASS_STYLES.GLOBALCLASS) else 0) | (if (o.IME == 1) @intFromEnum(WNDCLASS_STYLES.IME) else 0) | (if (o.DROPSHADOW == 1) @intFromEnum(WNDCLASS_STYLES.DROPSHADOW) else 0)));
    }
};
pub const CS_VREDRAW = WNDCLASS_STYLES.VREDRAW;
pub const CS_HREDRAW = WNDCLASS_STYLES.HREDRAW;
pub const CS_DBLCLKS = WNDCLASS_STYLES.DBLCLKS;
pub const CS_OWNDC = WNDCLASS_STYLES.OWNDC;
pub const CS_CLASSDC = WNDCLASS_STYLES.CLASSDC;
pub const CS_PARENTDC = WNDCLASS_STYLES.PARENTDC;
pub const CS_NOCLOSE = WNDCLASS_STYLES.NOCLOSE;
pub const CS_SAVEBITS = WNDCLASS_STYLES.SAVEBITS;
pub const CS_BYTEALIGNCLIENT = WNDCLASS_STYLES.BYTEALIGNCLIENT;
pub const CS_BYTEALIGNWINDOW = WNDCLASS_STYLES.BYTEALIGNWINDOW;
pub const CS_GLOBALCLASS = WNDCLASS_STYLES.GLOBALCLASS;
pub const CS_IME = WNDCLASS_STYLES.IME;
pub const CS_DROPSHADOW = WNDCLASS_STYLES.DROPSHADOW;

pub const CWP_FLAGS = enum(u32) {
    ALL = 0,
    SKIPINVISIBLE = 1,
    SKIPDISABLED = 2,
    SKIPTRANSPARENT = 4,
    _,
    pub fn initFlags(o: struct {
        ALL: u1 = 0,
        SKIPINVISIBLE: u1 = 0,
        SKIPDISABLED: u1 = 0,
        SKIPTRANSPARENT: u1 = 0,
    }) CWP_FLAGS {
        return @as(CWP_FLAGS, @enumFromInt((if (o.ALL == 1) @intFromEnum(CWP_FLAGS.ALL) else 0) | (if (o.SKIPINVISIBLE == 1) @intFromEnum(CWP_FLAGS.SKIPINVISIBLE) else 0) | (if (o.SKIPDISABLED == 1) @intFromEnum(CWP_FLAGS.SKIPDISABLED) else 0) | (if (o.SKIPTRANSPARENT == 1) @intFromEnum(CWP_FLAGS.SKIPTRANSPARENT) else 0)));
    }
};
pub const CWP_ALL = CWP_FLAGS.ALL;
pub const CWP_SKIPINVISIBLE = CWP_FLAGS.SKIPINVISIBLE;
pub const CWP_SKIPDISABLED = CWP_FLAGS.SKIPDISABLED;
pub const CWP_SKIPTRANSPARENT = CWP_FLAGS.SKIPTRANSPARENT;

pub const MESSAGEBOX_STYLE = enum(u32) {
    ABORTRETRYIGNORE = 2,
    CANCELTRYCONTINUE = 6,
    HELP = 16384,
    OK = 0,
    OKCANCEL = 1,
    RETRYCANCEL = 5,
    YESNO = 4,
    YESNOCANCEL = 3,
    ICONHAND = 16,
    ICONQUESTION = 32,
    ICONEXCLAMATION = 48,
    ICONASTERISK = 64,
    USERICON = 128,
    // ICONWARNING = 48, this enum value conflicts with ICONEXCLAMATION
    // ICONERROR = 16, this enum value conflicts with ICONHAND
    // ICONINFORMATION = 64, this enum value conflicts with ICONASTERISK
    // ICONSTOP = 16, this enum value conflicts with ICONHAND
    // DEFBUTTON1 = 0, this enum value conflicts with OK
    DEFBUTTON2 = 256,
    DEFBUTTON3 = 512,
    DEFBUTTON4 = 768,
    // APPLMODAL = 0, this enum value conflicts with OK
    SYSTEMMODAL = 4096,
    TASKMODAL = 8192,
    NOFOCUS = 32768,
    SETFOREGROUND = 65536,
    DEFAULT_DESKTOP_ONLY = 131072,
    TOPMOST = 262144,
    RIGHT = 524288,
    RTLREADING = 1048576,
    SERVICE_NOTIFICATION = 2097152,
    // SERVICE_NOTIFICATION_NT3X = 262144, this enum value conflicts with TOPMOST
    TYPEMASK = 15,
    ICONMASK = 240,
    DEFMASK = 3840,
    MODEMASK = 12288,
    MISCMASK = 49152,
    _,
    pub fn initFlags(o: struct {
        ABORTRETRYIGNORE: u1 = 0,
        CANCELTRYCONTINUE: u1 = 0,
        HELP: u1 = 0,
        OK: u1 = 0,
        OKCANCEL: u1 = 0,
        RETRYCANCEL: u1 = 0,
        YESNO: u1 = 0,
        YESNOCANCEL: u1 = 0,
        ICONHAND: u1 = 0,
        ICONQUESTION: u1 = 0,
        ICONEXCLAMATION: u1 = 0,
        ICONASTERISK: u1 = 0,
        USERICON: u1 = 0,
        DEFBUTTON2: u1 = 0,
        DEFBUTTON3: u1 = 0,
        DEFBUTTON4: u1 = 0,
        SYSTEMMODAL: u1 = 0,
        TASKMODAL: u1 = 0,
        NOFOCUS: u1 = 0,
        SETFOREGROUND: u1 = 0,
        DEFAULT_DESKTOP_ONLY: u1 = 0,
        TOPMOST: u1 = 0,
        RIGHT: u1 = 0,
        RTLREADING: u1 = 0,
        SERVICE_NOTIFICATION: u1 = 0,
        TYPEMASK: u1 = 0,
        ICONMASK: u1 = 0,
        DEFMASK: u1 = 0,
        MODEMASK: u1 = 0,
        MISCMASK: u1 = 0,
    }) MESSAGEBOX_STYLE {
        return @as(MESSAGEBOX_STYLE, @enumFromInt((if (o.ABORTRETRYIGNORE == 1) @intFromEnum(MESSAGEBOX_STYLE.ABORTRETRYIGNORE) else 0) | (if (o.CANCELTRYCONTINUE == 1) @intFromEnum(MESSAGEBOX_STYLE.CANCELTRYCONTINUE) else 0) | (if (o.HELP == 1) @intFromEnum(MESSAGEBOX_STYLE.HELP) else 0) | (if (o.OK == 1) @intFromEnum(MESSAGEBOX_STYLE.OK) else 0) | (if (o.OKCANCEL == 1) @intFromEnum(MESSAGEBOX_STYLE.OKCANCEL) else 0) | (if (o.RETRYCANCEL == 1) @intFromEnum(MESSAGEBOX_STYLE.RETRYCANCEL) else 0) | (if (o.YESNO == 1) @intFromEnum(MESSAGEBOX_STYLE.YESNO) else 0) | (if (o.YESNOCANCEL == 1) @intFromEnum(MESSAGEBOX_STYLE.YESNOCANCEL) else 0) | (if (o.ICONHAND == 1) @intFromEnum(MESSAGEBOX_STYLE.ICONHAND) else 0) | (if (o.ICONQUESTION == 1) @intFromEnum(MESSAGEBOX_STYLE.ICONQUESTION) else 0) | (if (o.ICONEXCLAMATION == 1) @intFromEnum(MESSAGEBOX_STYLE.ICONEXCLAMATION) else 0) | (if (o.ICONASTERISK == 1) @intFromEnum(MESSAGEBOX_STYLE.ICONASTERISK) else 0) | (if (o.USERICON == 1) @intFromEnum(MESSAGEBOX_STYLE.USERICON) else 0) | (if (o.DEFBUTTON2 == 1) @intFromEnum(MESSAGEBOX_STYLE.DEFBUTTON2) else 0) | (if (o.DEFBUTTON3 == 1) @intFromEnum(MESSAGEBOX_STYLE.DEFBUTTON3) else 0) | (if (o.DEFBUTTON4 == 1) @intFromEnum(MESSAGEBOX_STYLE.DEFBUTTON4) else 0) | (if (o.SYSTEMMODAL == 1) @intFromEnum(MESSAGEBOX_STYLE.SYSTEMMODAL) else 0) | (if (o.TASKMODAL == 1) @intFromEnum(MESSAGEBOX_STYLE.TASKMODAL) else 0) | (if (o.NOFOCUS == 1) @intFromEnum(MESSAGEBOX_STYLE.NOFOCUS) else 0) | (if (o.SETFOREGROUND == 1) @intFromEnum(MESSAGEBOX_STYLE.SETFOREGROUND) else 0) | (if (o.DEFAULT_DESKTOP_ONLY == 1) @intFromEnum(MESSAGEBOX_STYLE.DEFAULT_DESKTOP_ONLY) else 0) | (if (o.TOPMOST == 1) @intFromEnum(MESSAGEBOX_STYLE.TOPMOST) else 0) | (if (o.RIGHT == 1) @intFromEnum(MESSAGEBOX_STYLE.RIGHT) else 0) | (if (o.RTLREADING == 1) @intFromEnum(MESSAGEBOX_STYLE.RTLREADING) else 0) | (if (o.SERVICE_NOTIFICATION == 1) @intFromEnum(MESSAGEBOX_STYLE.SERVICE_NOTIFICATION) else 0) | (if (o.TYPEMASK == 1) @intFromEnum(MESSAGEBOX_STYLE.TYPEMASK) else 0) | (if (o.ICONMASK == 1) @intFromEnum(MESSAGEBOX_STYLE.ICONMASK) else 0) | (if (o.DEFMASK == 1) @intFromEnum(MESSAGEBOX_STYLE.DEFMASK) else 0) | (if (o.MODEMASK == 1) @intFromEnum(MESSAGEBOX_STYLE.MODEMASK) else 0) | (if (o.MISCMASK == 1) @intFromEnum(MESSAGEBOX_STYLE.MISCMASK) else 0)));
    }
};
pub const MB_ABORTRETRYIGNORE = MESSAGEBOX_STYLE.ABORTRETRYIGNORE;
pub const MB_CANCELTRYCONTINUE = MESSAGEBOX_STYLE.CANCELTRYCONTINUE;
pub const MB_HELP = MESSAGEBOX_STYLE.HELP;
pub const MB_OK = MESSAGEBOX_STYLE.OK;
pub const MB_OKCANCEL = MESSAGEBOX_STYLE.OKCANCEL;
pub const MB_RETRYCANCEL = MESSAGEBOX_STYLE.RETRYCANCEL;
pub const MB_YESNO = MESSAGEBOX_STYLE.YESNO;
pub const MB_YESNOCANCEL = MESSAGEBOX_STYLE.YESNOCANCEL;
pub const MB_ICONHAND = MESSAGEBOX_STYLE.ICONHAND;
pub const MB_ICONQUESTION = MESSAGEBOX_STYLE.ICONQUESTION;
pub const MB_ICONEXCLAMATION = MESSAGEBOX_STYLE.ICONEXCLAMATION;
pub const MB_ICONASTERISK = MESSAGEBOX_STYLE.ICONASTERISK;
pub const MB_USERICON = MESSAGEBOX_STYLE.USERICON;
pub const MB_ICONWARNING = MESSAGEBOX_STYLE.ICONEXCLAMATION;
pub const MB_ICONERROR = MESSAGEBOX_STYLE.ICONHAND;
pub const MB_ICONINFORMATION = MESSAGEBOX_STYLE.ICONASTERISK;
pub const MB_ICONSTOP = MESSAGEBOX_STYLE.ICONHAND;
pub const MB_DEFBUTTON1 = MESSAGEBOX_STYLE.OK;
pub const MB_DEFBUTTON2 = MESSAGEBOX_STYLE.DEFBUTTON2;
pub const MB_DEFBUTTON3 = MESSAGEBOX_STYLE.DEFBUTTON3;
pub const MB_DEFBUTTON4 = MESSAGEBOX_STYLE.DEFBUTTON4;
pub const MB_APPLMODAL = MESSAGEBOX_STYLE.OK;
pub const MB_SYSTEMMODAL = MESSAGEBOX_STYLE.SYSTEMMODAL;
pub const MB_TASKMODAL = MESSAGEBOX_STYLE.TASKMODAL;
pub const MB_NOFOCUS = MESSAGEBOX_STYLE.NOFOCUS;
pub const MB_SETFOREGROUND = MESSAGEBOX_STYLE.SETFOREGROUND;
pub const MB_DEFAULT_DESKTOP_ONLY = MESSAGEBOX_STYLE.DEFAULT_DESKTOP_ONLY;
pub const MB_TOPMOST = MESSAGEBOX_STYLE.TOPMOST;
pub const MB_RIGHT = MESSAGEBOX_STYLE.RIGHT;
pub const MB_RTLREADING = MESSAGEBOX_STYLE.RTLREADING;
pub const MB_SERVICE_NOTIFICATION = MESSAGEBOX_STYLE.SERVICE_NOTIFICATION;
pub const MB_SERVICE_NOTIFICATION_NT3X = MESSAGEBOX_STYLE.TOPMOST;
pub const MB_TYPEMASK = MESSAGEBOX_STYLE.TYPEMASK;
pub const MB_ICONMASK = MESSAGEBOX_STYLE.ICONMASK;
pub const MB_DEFMASK = MESSAGEBOX_STYLE.DEFMASK;
pub const MB_MODEMASK = MESSAGEBOX_STYLE.MODEMASK;
pub const MB_MISCMASK = MESSAGEBOX_STYLE.MISCMASK;

pub const MENU_ITEM_FLAGS = enum(u32) {
    BYCOMMAND = 0,
    BYPOSITION = 1024,
    BITMAP = 4,
    CHECKED = 8,
    DISABLED = 2,
    // ENABLED = 0, this enum value conflicts with BYCOMMAND
    GRAYED = 1,
    MENUBARBREAK = 32,
    MENUBREAK = 64,
    OWNERDRAW = 256,
    POPUP = 16,
    SEPARATOR = 2048,
    // STRING = 0, this enum value conflicts with BYCOMMAND
    // UNCHECKED = 0, this enum value conflicts with BYCOMMAND
    // INSERT = 0, this enum value conflicts with BYCOMMAND
    CHANGE = 128,
    // APPEND = 256, this enum value conflicts with OWNERDRAW
    DELETE = 512,
    REMOVE = 4096,
    // USECHECKBITMAPS = 512, this enum value conflicts with DELETE
    // UNHILITE = 0, this enum value conflicts with BYCOMMAND
    // HILITE = 128, this enum value conflicts with CHANGE
    // DEFAULT = 4096, this enum value conflicts with REMOVE
    SYSMENU = 8192,
    HELP = 16384,
    // RIGHTJUSTIFY = 16384, this enum value conflicts with HELP
    MOUSESELECT = 32768,
    // END = 128, this enum value conflicts with CHANGE
    _,
    pub fn initFlags(o: struct {
        BYCOMMAND: u1 = 0,
        BYPOSITION: u1 = 0,
        BITMAP: u1 = 0,
        CHECKED: u1 = 0,
        DISABLED: u1 = 0,
        GRAYED: u1 = 0,
        MENUBARBREAK: u1 = 0,
        MENUBREAK: u1 = 0,
        OWNERDRAW: u1 = 0,
        POPUP: u1 = 0,
        SEPARATOR: u1 = 0,
        CHANGE: u1 = 0,
        DELETE: u1 = 0,
        REMOVE: u1 = 0,
        SYSMENU: u1 = 0,
        HELP: u1 = 0,
        MOUSESELECT: u1 = 0,
    }) MENU_ITEM_FLAGS {
        return @as(MENU_ITEM_FLAGS, @enumFromInt((if (o.BYCOMMAND == 1) @intFromEnum(MENU_ITEM_FLAGS.BYCOMMAND) else 0) | (if (o.BYPOSITION == 1) @intFromEnum(MENU_ITEM_FLAGS.BYPOSITION) else 0) | (if (o.BITMAP == 1) @intFromEnum(MENU_ITEM_FLAGS.BITMAP) else 0) | (if (o.CHECKED == 1) @intFromEnum(MENU_ITEM_FLAGS.CHECKED) else 0) | (if (o.DISABLED == 1) @intFromEnum(MENU_ITEM_FLAGS.DISABLED) else 0) | (if (o.GRAYED == 1) @intFromEnum(MENU_ITEM_FLAGS.GRAYED) else 0) | (if (o.MENUBARBREAK == 1) @intFromEnum(MENU_ITEM_FLAGS.MENUBARBREAK) else 0) | (if (o.MENUBREAK == 1) @intFromEnum(MENU_ITEM_FLAGS.MENUBREAK) else 0) | (if (o.OWNERDRAW == 1) @intFromEnum(MENU_ITEM_FLAGS.OWNERDRAW) else 0) | (if (o.POPUP == 1) @intFromEnum(MENU_ITEM_FLAGS.POPUP) else 0) | (if (o.SEPARATOR == 1) @intFromEnum(MENU_ITEM_FLAGS.SEPARATOR) else 0) | (if (o.CHANGE == 1) @intFromEnum(MENU_ITEM_FLAGS.CHANGE) else 0) | (if (o.DELETE == 1) @intFromEnum(MENU_ITEM_FLAGS.DELETE) else 0) | (if (o.REMOVE == 1) @intFromEnum(MENU_ITEM_FLAGS.REMOVE) else 0) | (if (o.SYSMENU == 1) @intFromEnum(MENU_ITEM_FLAGS.SYSMENU) else 0) | (if (o.HELP == 1) @intFromEnum(MENU_ITEM_FLAGS.HELP) else 0) | (if (o.MOUSESELECT == 1) @intFromEnum(MENU_ITEM_FLAGS.MOUSESELECT) else 0)));
    }
};
pub const MF_BYCOMMAND = MENU_ITEM_FLAGS.BYCOMMAND;
pub const MF_BYPOSITION = MENU_ITEM_FLAGS.BYPOSITION;
pub const MF_BITMAP = MENU_ITEM_FLAGS.BITMAP;
pub const MF_CHECKED = MENU_ITEM_FLAGS.CHECKED;
pub const MF_DISABLED = MENU_ITEM_FLAGS.DISABLED;
pub const MF_ENABLED = MENU_ITEM_FLAGS.BYCOMMAND;
pub const MF_GRAYED = MENU_ITEM_FLAGS.GRAYED;
pub const MF_MENUBARBREAK = MENU_ITEM_FLAGS.MENUBARBREAK;
pub const MF_MENUBREAK = MENU_ITEM_FLAGS.MENUBREAK;
pub const MF_OWNERDRAW = MENU_ITEM_FLAGS.OWNERDRAW;
pub const MF_POPUP = MENU_ITEM_FLAGS.POPUP;
pub const MF_SEPARATOR = MENU_ITEM_FLAGS.SEPARATOR;
pub const MF_STRING = MENU_ITEM_FLAGS.BYCOMMAND;
pub const MF_UNCHECKED = MENU_ITEM_FLAGS.BYCOMMAND;
pub const MF_INSERT = MENU_ITEM_FLAGS.BYCOMMAND;
pub const MF_CHANGE = MENU_ITEM_FLAGS.CHANGE;
pub const MF_APPEND = MENU_ITEM_FLAGS.OWNERDRAW;
pub const MF_DELETE = MENU_ITEM_FLAGS.DELETE;
pub const MF_REMOVE = MENU_ITEM_FLAGS.REMOVE;
pub const MF_USECHECKBITMAPS = MENU_ITEM_FLAGS.DELETE;
pub const MF_UNHILITE = MENU_ITEM_FLAGS.BYCOMMAND;
pub const MF_HILITE = MENU_ITEM_FLAGS.CHANGE;
pub const MF_DEFAULT = MENU_ITEM_FLAGS.REMOVE;
pub const MF_SYSMENU = MENU_ITEM_FLAGS.SYSMENU;
pub const MF_HELP = MENU_ITEM_FLAGS.HELP;
pub const MF_RIGHTJUSTIFY = MENU_ITEM_FLAGS.HELP;
pub const MF_MOUSESELECT = MENU_ITEM_FLAGS.MOUSESELECT;
pub const MF_END = MENU_ITEM_FLAGS.CHANGE;

pub const SHOW_WINDOW_CMD = enum(u32) {
    FORCEMINIMIZE = 11,
    HIDE = 0,
    MAXIMIZE = 3,
    MINIMIZE = 6,
    RESTORE = 9,
    SHOW = 5,
    SHOWDEFAULT = 10,
    // SHOWMAXIMIZED = 3, this enum value conflicts with MAXIMIZE
    SHOWMINIMIZED = 2,
    SHOWMINNOACTIVE = 7,
    SHOWNA = 8,
    SHOWNOACTIVATE = 4,
    SHOWNORMAL = 1,
    // NORMAL = 1, this enum value conflicts with SHOWNORMAL
    // MAX = 11, this enum value conflicts with FORCEMINIMIZE
    // PARENTCLOSING = 1, this enum value conflicts with SHOWNORMAL
    // OTHERZOOM = 2, this enum value conflicts with SHOWMINIMIZED
    // PARENTOPENING = 3, this enum value conflicts with MAXIMIZE
    // OTHERUNZOOM = 4, this enum value conflicts with SHOWNOACTIVATE
    // SCROLLCHILDREN = 1, this enum value conflicts with SHOWNORMAL
    // INVALIDATE = 2, this enum value conflicts with SHOWMINIMIZED
    // ERASE = 4, this enum value conflicts with SHOWNOACTIVATE
    SMOOTHSCROLL = 16,
    _,
    pub fn initFlags(o: struct {
        FORCEMINIMIZE: u1 = 0,
        HIDE: u1 = 0,
        MAXIMIZE: u1 = 0,
        MINIMIZE: u1 = 0,
        RESTORE: u1 = 0,
        SHOW: u1 = 0,
        SHOWDEFAULT: u1 = 0,
        SHOWMINIMIZED: u1 = 0,
        SHOWMINNOACTIVE: u1 = 0,
        SHOWNA: u1 = 0,
        SHOWNOACTIVATE: u1 = 0,
        SHOWNORMAL: u1 = 0,
        SMOOTHSCROLL: u1 = 0,
    }) SHOW_WINDOW_CMD {
        return @as(SHOW_WINDOW_CMD, @enumFromInt((if (o.FORCEMINIMIZE == 1) @intFromEnum(SHOW_WINDOW_CMD.FORCEMINIMIZE) else 0) | (if (o.HIDE == 1) @intFromEnum(SHOW_WINDOW_CMD.HIDE) else 0) | (if (o.MAXIMIZE == 1) @intFromEnum(SHOW_WINDOW_CMD.MAXIMIZE) else 0) | (if (o.MINIMIZE == 1) @intFromEnum(SHOW_WINDOW_CMD.MINIMIZE) else 0) | (if (o.RESTORE == 1) @intFromEnum(SHOW_WINDOW_CMD.RESTORE) else 0) | (if (o.SHOW == 1) @intFromEnum(SHOW_WINDOW_CMD.SHOW) else 0) | (if (o.SHOWDEFAULT == 1) @intFromEnum(SHOW_WINDOW_CMD.SHOWDEFAULT) else 0) | (if (o.SHOWMINIMIZED == 1) @intFromEnum(SHOW_WINDOW_CMD.SHOWMINIMIZED) else 0) | (if (o.SHOWMINNOACTIVE == 1) @intFromEnum(SHOW_WINDOW_CMD.SHOWMINNOACTIVE) else 0) | (if (o.SHOWNA == 1) @intFromEnum(SHOW_WINDOW_CMD.SHOWNA) else 0) | (if (o.SHOWNOACTIVATE == 1) @intFromEnum(SHOW_WINDOW_CMD.SHOWNOACTIVATE) else 0) | (if (o.SHOWNORMAL == 1) @intFromEnum(SHOW_WINDOW_CMD.SHOWNORMAL) else 0) | (if (o.SMOOTHSCROLL == 1) @intFromEnum(SHOW_WINDOW_CMD.SMOOTHSCROLL) else 0)));
    }
};
pub const SW_FORCEMINIMIZE = SHOW_WINDOW_CMD.FORCEMINIMIZE;
pub const SW_HIDE = SHOW_WINDOW_CMD.HIDE;
pub const SW_MAXIMIZE = SHOW_WINDOW_CMD.MAXIMIZE;
pub const SW_MINIMIZE = SHOW_WINDOW_CMD.MINIMIZE;
pub const SW_RESTORE = SHOW_WINDOW_CMD.RESTORE;
pub const SW_SHOW = SHOW_WINDOW_CMD.SHOW;
pub const SW_SHOWDEFAULT = SHOW_WINDOW_CMD.SHOWDEFAULT;
pub const SW_SHOWMAXIMIZED = SHOW_WINDOW_CMD.MAXIMIZE;
pub const SW_SHOWMINIMIZED = SHOW_WINDOW_CMD.SHOWMINIMIZED;
pub const SW_SHOWMINNOACTIVE = SHOW_WINDOW_CMD.SHOWMINNOACTIVE;
pub const SW_SHOWNA = SHOW_WINDOW_CMD.SHOWNA;
pub const SW_SHOWNOACTIVATE = SHOW_WINDOW_CMD.SHOWNOACTIVATE;
pub const SW_SHOWNORMAL = SHOW_WINDOW_CMD.SHOWNORMAL;
pub const SW_NORMAL = SHOW_WINDOW_CMD.SHOWNORMAL;
pub const SW_MAX = SHOW_WINDOW_CMD.FORCEMINIMIZE;
pub const SW_PARENTCLOSING = SHOW_WINDOW_CMD.SHOWNORMAL;
pub const SW_OTHERZOOM = SHOW_WINDOW_CMD.SHOWMINIMIZED;
pub const SW_PARENTOPENING = SHOW_WINDOW_CMD.MAXIMIZE;
pub const SW_OTHERUNZOOM = SHOW_WINDOW_CMD.SHOWNOACTIVATE;
pub const SW_SCROLLCHILDREN = SHOW_WINDOW_CMD.SHOWNORMAL;
pub const SW_INVALIDATE = SHOW_WINDOW_CMD.SHOWMINIMIZED;
pub const SW_ERASE = SHOW_WINDOW_CMD.SHOWNOACTIVATE;
pub const SW_SMOOTHSCROLL = SHOW_WINDOW_CMD.SMOOTHSCROLL;

pub const SYSTEM_PARAMETERS_INFO_ACTION = enum(u32) {
    GETBEEP = 1,
    SETBEEP = 2,
    GETMOUSE = 3,
    SETMOUSE = 4,
    GETBORDER = 5,
    SETBORDER = 6,
    GETKEYBOARDSPEED = 10,
    SETKEYBOARDSPEED = 11,
    LANGDRIVER = 12,
    ICONHORIZONTALSPACING = 13,
    GETSCREENSAVETIMEOUT = 14,
    SETSCREENSAVETIMEOUT = 15,
    GETSCREENSAVEACTIVE = 16,
    SETSCREENSAVEACTIVE = 17,
    GETGRIDGRANULARITY = 18,
    SETGRIDGRANULARITY = 19,
    SETDESKWALLPAPER = 20,
    SETDESKPATTERN = 21,
    GETKEYBOARDDELAY = 22,
    SETKEYBOARDDELAY = 23,
    ICONVERTICALSPACING = 24,
    GETICONTITLEWRAP = 25,
    SETICONTITLEWRAP = 26,
    GETMENUDROPALIGNMENT = 27,
    SETMENUDROPALIGNMENT = 28,
    SETDOUBLECLKWIDTH = 29,
    SETDOUBLECLKHEIGHT = 30,
    GETICONTITLELOGFONT = 31,
    SETDOUBLECLICKTIME = 32,
    SETMOUSEBUTTONSWAP = 33,
    SETICONTITLELOGFONT = 34,
    GETFASTTASKSWITCH = 35,
    SETFASTTASKSWITCH = 36,
    SETDRAGFULLWINDOWS = 37,
    GETDRAGFULLWINDOWS = 38,
    GETNONCLIENTMETRICS = 41,
    SETNONCLIENTMETRICS = 42,
    GETMINIMIZEDMETRICS = 43,
    SETMINIMIZEDMETRICS = 44,
    GETICONMETRICS = 45,
    SETICONMETRICS = 46,
    SETWORKAREA = 47,
    GETWORKAREA = 48,
    SETPENWINDOWS = 49,
    GETHIGHCONTRAST = 66,
    SETHIGHCONTRAST = 67,
    GETKEYBOARDPREF = 68,
    SETKEYBOARDPREF = 69,
    GETSCREENREADER = 70,
    SETSCREENREADER = 71,
    GETANIMATION = 72,
    SETANIMATION = 73,
    GETFONTSMOOTHING = 74,
    SETFONTSMOOTHING = 75,
    SETDRAGWIDTH = 76,
    SETDRAGHEIGHT = 77,
    SETHANDHELD = 78,
    GETLOWPOWERTIMEOUT = 79,
    GETPOWEROFFTIMEOUT = 80,
    SETLOWPOWERTIMEOUT = 81,
    SETPOWEROFFTIMEOUT = 82,
    GETLOWPOWERACTIVE = 83,
    GETPOWEROFFACTIVE = 84,
    SETLOWPOWERACTIVE = 85,
    SETPOWEROFFACTIVE = 86,
    SETCURSORS = 87,
    SETICONS = 88,
    GETDEFAULTINPUTLANG = 89,
    SETDEFAULTINPUTLANG = 90,
    SETLANGTOGGLE = 91,
    GETWINDOWSEXTENSION = 92,
    SETMOUSETRAILS = 93,
    GETMOUSETRAILS = 94,
    SETSCREENSAVERRUNNING = 97,
    // SCREENSAVERRUNNING = 97, this enum value conflicts with SETSCREENSAVERRUNNING
    GETFILTERKEYS = 50,
    SETFILTERKEYS = 51,
    GETTOGGLEKEYS = 52,
    SETTOGGLEKEYS = 53,
    GETMOUSEKEYS = 54,
    SETMOUSEKEYS = 55,
    GETSHOWSOUNDS = 56,
    SETSHOWSOUNDS = 57,
    GETSTICKYKEYS = 58,
    SETSTICKYKEYS = 59,
    GETACCESSTIMEOUT = 60,
    SETACCESSTIMEOUT = 61,
    GETSERIALKEYS = 62,
    SETSERIALKEYS = 63,
    GETSOUNDSENTRY = 64,
    SETSOUNDSENTRY = 65,
    GETSNAPTODEFBUTTON = 95,
    SETSNAPTODEFBUTTON = 96,
    GETMOUSEHOVERWIDTH = 98,
    SETMOUSEHOVERWIDTH = 99,
    GETMOUSEHOVERHEIGHT = 100,
    SETMOUSEHOVERHEIGHT = 101,
    GETMOUSEHOVERTIME = 102,
    SETMOUSEHOVERTIME = 103,
    GETWHEELSCROLLLINES = 104,
    SETWHEELSCROLLLINES = 105,
    GETMENUSHOWDELAY = 106,
    SETMENUSHOWDELAY = 107,
    GETWHEELSCROLLCHARS = 108,
    SETWHEELSCROLLCHARS = 109,
    GETSHOWIMEUI = 110,
    SETSHOWIMEUI = 111,
    GETMOUSESPEED = 112,
    SETMOUSESPEED = 113,
    GETSCREENSAVERRUNNING = 114,
    GETDESKWALLPAPER = 115,
    GETAUDIODESCRIPTION = 116,
    SETAUDIODESCRIPTION = 117,
    GETSCREENSAVESECURE = 118,
    SETSCREENSAVESECURE = 119,
    GETHUNGAPPTIMEOUT = 120,
    SETHUNGAPPTIMEOUT = 121,
    GETWAITTOKILLTIMEOUT = 122,
    SETWAITTOKILLTIMEOUT = 123,
    GETWAITTOKILLSERVICETIMEOUT = 124,
    SETWAITTOKILLSERVICETIMEOUT = 125,
    GETMOUSEDOCKTHRESHOLD = 126,
    SETMOUSEDOCKTHRESHOLD = 127,
    GETPENDOCKTHRESHOLD = 128,
    SETPENDOCKTHRESHOLD = 129,
    GETWINARRANGING = 130,
    SETWINARRANGING = 131,
    GETMOUSEDRAGOUTTHRESHOLD = 132,
    SETMOUSEDRAGOUTTHRESHOLD = 133,
    GETPENDRAGOUTTHRESHOLD = 134,
    SETPENDRAGOUTTHRESHOLD = 135,
    GETMOUSESIDEMOVETHRESHOLD = 136,
    SETMOUSESIDEMOVETHRESHOLD = 137,
    GETPENSIDEMOVETHRESHOLD = 138,
    SETPENSIDEMOVETHRESHOLD = 139,
    GETDRAGFROMMAXIMIZE = 140,
    SETDRAGFROMMAXIMIZE = 141,
    GETSNAPSIZING = 142,
    SETSNAPSIZING = 143,
    GETDOCKMOVING = 144,
    SETDOCKMOVING = 145,
    GETTOUCHPREDICTIONPARAMETERS = 156,
    SETTOUCHPREDICTIONPARAMETERS = 157,
    GETLOGICALDPIOVERRIDE = 158,
    SETLOGICALDPIOVERRIDE = 159,
    GETMENURECT = 162,
    SETMENURECT = 163,
    GETACTIVEWINDOWTRACKING = 4096,
    SETACTIVEWINDOWTRACKING = 4097,
    GETMENUANIMATION = 4098,
    SETMENUANIMATION = 4099,
    GETCOMBOBOXANIMATION = 4100,
    SETCOMBOBOXANIMATION = 4101,
    GETLISTBOXSMOOTHSCROLLING = 4102,
    SETLISTBOXSMOOTHSCROLLING = 4103,
    GETGRADIENTCAPTIONS = 4104,
    SETGRADIENTCAPTIONS = 4105,
    GETKEYBOARDCUES = 4106,
    SETKEYBOARDCUES = 4107,
    // GETMENUUNDERLINES = 4106, this enum value conflicts with GETKEYBOARDCUES
    // SETMENUUNDERLINES = 4107, this enum value conflicts with SETKEYBOARDCUES
    GETACTIVEWNDTRKZORDER = 4108,
    SETACTIVEWNDTRKZORDER = 4109,
    GETHOTTRACKING = 4110,
    SETHOTTRACKING = 4111,
    GETMENUFADE = 4114,
    SETMENUFADE = 4115,
    GETSELECTIONFADE = 4116,
    SETSELECTIONFADE = 4117,
    GETTOOLTIPANIMATION = 4118,
    SETTOOLTIPANIMATION = 4119,
    GETTOOLTIPFADE = 4120,
    SETTOOLTIPFADE = 4121,
    GETCURSORSHADOW = 4122,
    SETCURSORSHADOW = 4123,
    GETMOUSESONAR = 4124,
    SETMOUSESONAR = 4125,
    GETMOUSECLICKLOCK = 4126,
    SETMOUSECLICKLOCK = 4127,
    GETMOUSEVANISH = 4128,
    SETMOUSEVANISH = 4129,
    GETFLATMENU = 4130,
    SETFLATMENU = 4131,
    GETDROPSHADOW = 4132,
    SETDROPSHADOW = 4133,
    GETBLOCKSENDINPUTRESETS = 4134,
    SETBLOCKSENDINPUTRESETS = 4135,
    GETUIEFFECTS = 4158,
    SETUIEFFECTS = 4159,
    GETDISABLEOVERLAPPEDCONTENT = 4160,
    SETDISABLEOVERLAPPEDCONTENT = 4161,
    GETCLIENTAREAANIMATION = 4162,
    SETCLIENTAREAANIMATION = 4163,
    GETCLEARTYPE = 4168,
    SETCLEARTYPE = 4169,
    GETSPEECHRECOGNITION = 4170,
    SETSPEECHRECOGNITION = 4171,
    GETCARETBROWSING = 4172,
    SETCARETBROWSING = 4173,
    GETTHREADLOCALINPUTSETTINGS = 4174,
    SETTHREADLOCALINPUTSETTINGS = 4175,
    GETSYSTEMLANGUAGEBAR = 4176,
    SETSYSTEMLANGUAGEBAR = 4177,
    GETFOREGROUNDLOCKTIMEOUT = 8192,
    SETFOREGROUNDLOCKTIMEOUT = 8193,
    GETACTIVEWNDTRKTIMEOUT = 8194,
    SETACTIVEWNDTRKTIMEOUT = 8195,
    GETFOREGROUNDFLASHCOUNT = 8196,
    SETFOREGROUNDFLASHCOUNT = 8197,
    GETCARETWIDTH = 8198,
    SETCARETWIDTH = 8199,
    GETMOUSECLICKLOCKTIME = 8200,
    SETMOUSECLICKLOCKTIME = 8201,
    GETFONTSMOOTHINGTYPE = 8202,
    SETFONTSMOOTHINGTYPE = 8203,
    GETFONTSMOOTHINGCONTRAST = 8204,
    SETFONTSMOOTHINGCONTRAST = 8205,
    GETFOCUSBORDERWIDTH = 8206,
    SETFOCUSBORDERWIDTH = 8207,
    GETFOCUSBORDERHEIGHT = 8208,
    SETFOCUSBORDERHEIGHT = 8209,
    GETFONTSMOOTHINGORIENTATION = 8210,
    SETFONTSMOOTHINGORIENTATION = 8211,
    GETMINIMUMHITRADIUS = 8212,
    SETMINIMUMHITRADIUS = 8213,
    GETMESSAGEDURATION = 8214,
    SETMESSAGEDURATION = 8215,
    GETCONTACTVISUALIZATION = 8216,
    SETCONTACTVISUALIZATION = 8217,
    GETGESTUREVISUALIZATION = 8218,
    SETGESTUREVISUALIZATION = 8219,
    GETMOUSEWHEELROUTING = 8220,
    SETMOUSEWHEELROUTING = 8221,
    GETPENVISUALIZATION = 8222,
    SETPENVISUALIZATION = 8223,
    GETPENARBITRATIONTYPE = 8224,
    SETPENARBITRATIONTYPE = 8225,
    GETCARETTIMEOUT = 8226,
    SETCARETTIMEOUT = 8227,
    GETHANDEDNESS = 8228,
    SETHANDEDNESS = 8229,
    _,
    pub fn initFlags(o: struct {
        GETBEEP: u1 = 0,
        SETBEEP: u1 = 0,
        GETMOUSE: u1 = 0,
        SETMOUSE: u1 = 0,
        GETBORDER: u1 = 0,
        SETBORDER: u1 = 0,
        GETKEYBOARDSPEED: u1 = 0,
        SETKEYBOARDSPEED: u1 = 0,
        LANGDRIVER: u1 = 0,
        ICONHORIZONTALSPACING: u1 = 0,
        GETSCREENSAVETIMEOUT: u1 = 0,
        SETSCREENSAVETIMEOUT: u1 = 0,
        GETSCREENSAVEACTIVE: u1 = 0,
        SETSCREENSAVEACTIVE: u1 = 0,
        GETGRIDGRANULARITY: u1 = 0,
        SETGRIDGRANULARITY: u1 = 0,
        SETDESKWALLPAPER: u1 = 0,
        SETDESKPATTERN: u1 = 0,
        GETKEYBOARDDELAY: u1 = 0,
        SETKEYBOARDDELAY: u1 = 0,
        ICONVERTICALSPACING: u1 = 0,
        GETICONTITLEWRAP: u1 = 0,
        SETICONTITLEWRAP: u1 = 0,
        GETMENUDROPALIGNMENT: u1 = 0,
        SETMENUDROPALIGNMENT: u1 = 0,
        SETDOUBLECLKWIDTH: u1 = 0,
        SETDOUBLECLKHEIGHT: u1 = 0,
        GETICONTITLELOGFONT: u1 = 0,
        SETDOUBLECLICKTIME: u1 = 0,
        SETMOUSEBUTTONSWAP: u1 = 0,
        SETICONTITLELOGFONT: u1 = 0,
        GETFASTTASKSWITCH: u1 = 0,
        SETFASTTASKSWITCH: u1 = 0,
        SETDRAGFULLWINDOWS: u1 = 0,
        GETDRAGFULLWINDOWS: u1 = 0,
        GETNONCLIENTMETRICS: u1 = 0,
        SETNONCLIENTMETRICS: u1 = 0,
        GETMINIMIZEDMETRICS: u1 = 0,
        SETMINIMIZEDMETRICS: u1 = 0,
        GETICONMETRICS: u1 = 0,
        SETICONMETRICS: u1 = 0,
        SETWORKAREA: u1 = 0,
        GETWORKAREA: u1 = 0,
        SETPENWINDOWS: u1 = 0,
        GETHIGHCONTRAST: u1 = 0,
        SETHIGHCONTRAST: u1 = 0,
        GETKEYBOARDPREF: u1 = 0,
        SETKEYBOARDPREF: u1 = 0,
        GETSCREENREADER: u1 = 0,
        SETSCREENREADER: u1 = 0,
        GETANIMATION: u1 = 0,
        SETANIMATION: u1 = 0,
        GETFONTSMOOTHING: u1 = 0,
        SETFONTSMOOTHING: u1 = 0,
        SETDRAGWIDTH: u1 = 0,
        SETDRAGHEIGHT: u1 = 0,
        SETHANDHELD: u1 = 0,
        GETLOWPOWERTIMEOUT: u1 = 0,
        GETPOWEROFFTIMEOUT: u1 = 0,
        SETLOWPOWERTIMEOUT: u1 = 0,
        SETPOWEROFFTIMEOUT: u1 = 0,
        GETLOWPOWERACTIVE: u1 = 0,
        GETPOWEROFFACTIVE: u1 = 0,
        SETLOWPOWERACTIVE: u1 = 0,
        SETPOWEROFFACTIVE: u1 = 0,
        SETCURSORS: u1 = 0,
        SETICONS: u1 = 0,
        GETDEFAULTINPUTLANG: u1 = 0,
        SETDEFAULTINPUTLANG: u1 = 0,
        SETLANGTOGGLE: u1 = 0,
        GETWINDOWSEXTENSION: u1 = 0,
        SETMOUSETRAILS: u1 = 0,
        GETMOUSETRAILS: u1 = 0,
        SETSCREENSAVERRUNNING: u1 = 0,
        GETFILTERKEYS: u1 = 0,
        SETFILTERKEYS: u1 = 0,
        GETTOGGLEKEYS: u1 = 0,
        SETTOGGLEKEYS: u1 = 0,
        GETMOUSEKEYS: u1 = 0,
        SETMOUSEKEYS: u1 = 0,
        GETSHOWSOUNDS: u1 = 0,
        SETSHOWSOUNDS: u1 = 0,
        GETSTICKYKEYS: u1 = 0,
        SETSTICKYKEYS: u1 = 0,
        GETACCESSTIMEOUT: u1 = 0,
        SETACCESSTIMEOUT: u1 = 0,
        GETSERIALKEYS: u1 = 0,
        SETSERIALKEYS: u1 = 0,
        GETSOUNDSENTRY: u1 = 0,
        SETSOUNDSENTRY: u1 = 0,
        GETSNAPTODEFBUTTON: u1 = 0,
        SETSNAPTODEFBUTTON: u1 = 0,
        GETMOUSEHOVERWIDTH: u1 = 0,
        SETMOUSEHOVERWIDTH: u1 = 0,
        GETMOUSEHOVERHEIGHT: u1 = 0,
        SETMOUSEHOVERHEIGHT: u1 = 0,
        GETMOUSEHOVERTIME: u1 = 0,
        SETMOUSEHOVERTIME: u1 = 0,
        GETWHEELSCROLLLINES: u1 = 0,
        SETWHEELSCROLLLINES: u1 = 0,
        GETMENUSHOWDELAY: u1 = 0,
        SETMENUSHOWDELAY: u1 = 0,
        GETWHEELSCROLLCHARS: u1 = 0,
        SETWHEELSCROLLCHARS: u1 = 0,
        GETSHOWIMEUI: u1 = 0,
        SETSHOWIMEUI: u1 = 0,
        GETMOUSESPEED: u1 = 0,
        SETMOUSESPEED: u1 = 0,
        GETSCREENSAVERRUNNING: u1 = 0,
        GETDESKWALLPAPER: u1 = 0,
        GETAUDIODESCRIPTION: u1 = 0,
        SETAUDIODESCRIPTION: u1 = 0,
        GETSCREENSAVESECURE: u1 = 0,
        SETSCREENSAVESECURE: u1 = 0,
        GETHUNGAPPTIMEOUT: u1 = 0,
        SETHUNGAPPTIMEOUT: u1 = 0,
        GETWAITTOKILLTIMEOUT: u1 = 0,
        SETWAITTOKILLTIMEOUT: u1 = 0,
        GETWAITTOKILLSERVICETIMEOUT: u1 = 0,
        SETWAITTOKILLSERVICETIMEOUT: u1 = 0,
        GETMOUSEDOCKTHRESHOLD: u1 = 0,
        SETMOUSEDOCKTHRESHOLD: u1 = 0,
        GETPENDOCKTHRESHOLD: u1 = 0,
        SETPENDOCKTHRESHOLD: u1 = 0,
        GETWINARRANGING: u1 = 0,
        SETWINARRANGING: u1 = 0,
        GETMOUSEDRAGOUTTHRESHOLD: u1 = 0,
        SETMOUSEDRAGOUTTHRESHOLD: u1 = 0,
        GETPENDRAGOUTTHRESHOLD: u1 = 0,
        SETPENDRAGOUTTHRESHOLD: u1 = 0,
        GETMOUSESIDEMOVETHRESHOLD: u1 = 0,
        SETMOUSESIDEMOVETHRESHOLD: u1 = 0,
        GETPENSIDEMOVETHRESHOLD: u1 = 0,
        SETPENSIDEMOVETHRESHOLD: u1 = 0,
        GETDRAGFROMMAXIMIZE: u1 = 0,
        SETDRAGFROMMAXIMIZE: u1 = 0,
        GETSNAPSIZING: u1 = 0,
        SETSNAPSIZING: u1 = 0,
        GETDOCKMOVING: u1 = 0,
        SETDOCKMOVING: u1 = 0,
        GETTOUCHPREDICTIONPARAMETERS: u1 = 0,
        SETTOUCHPREDICTIONPARAMETERS: u1 = 0,
        GETLOGICALDPIOVERRIDE: u1 = 0,
        SETLOGICALDPIOVERRIDE: u1 = 0,
        GETMENURECT: u1 = 0,
        SETMENURECT: u1 = 0,
        GETACTIVEWINDOWTRACKING: u1 = 0,
        SETACTIVEWINDOWTRACKING: u1 = 0,
        GETMENUANIMATION: u1 = 0,
        SETMENUANIMATION: u1 = 0,
        GETCOMBOBOXANIMATION: u1 = 0,
        SETCOMBOBOXANIMATION: u1 = 0,
        GETLISTBOXSMOOTHSCROLLING: u1 = 0,
        SETLISTBOXSMOOTHSCROLLING: u1 = 0,
        GETGRADIENTCAPTIONS: u1 = 0,
        SETGRADIENTCAPTIONS: u1 = 0,
        GETKEYBOARDCUES: u1 = 0,
        SETKEYBOARDCUES: u1 = 0,
        GETACTIVEWNDTRKZORDER: u1 = 0,
        SETACTIVEWNDTRKZORDER: u1 = 0,
        GETHOTTRACKING: u1 = 0,
        SETHOTTRACKING: u1 = 0,
        GETMENUFADE: u1 = 0,
        SETMENUFADE: u1 = 0,
        GETSELECTIONFADE: u1 = 0,
        SETSELECTIONFADE: u1 = 0,
        GETTOOLTIPANIMATION: u1 = 0,
        SETTOOLTIPANIMATION: u1 = 0,
        GETTOOLTIPFADE: u1 = 0,
        SETTOOLTIPFADE: u1 = 0,
        GETCURSORSHADOW: u1 = 0,
        SETCURSORSHADOW: u1 = 0,
        GETMOUSESONAR: u1 = 0,
        SETMOUSESONAR: u1 = 0,
        GETMOUSECLICKLOCK: u1 = 0,
        SETMOUSECLICKLOCK: u1 = 0,
        GETMOUSEVANISH: u1 = 0,
        SETMOUSEVANISH: u1 = 0,
        GETFLATMENU: u1 = 0,
        SETFLATMENU: u1 = 0,
        GETDROPSHADOW: u1 = 0,
        SETDROPSHADOW: u1 = 0,
        GETBLOCKSENDINPUTRESETS: u1 = 0,
        SETBLOCKSENDINPUTRESETS: u1 = 0,
        GETUIEFFECTS: u1 = 0,
        SETUIEFFECTS: u1 = 0,
        GETDISABLEOVERLAPPEDCONTENT: u1 = 0,
        SETDISABLEOVERLAPPEDCONTENT: u1 = 0,
        GETCLIENTAREAANIMATION: u1 = 0,
        SETCLIENTAREAANIMATION: u1 = 0,
        GETCLEARTYPE: u1 = 0,
        SETCLEARTYPE: u1 = 0,
        GETSPEECHRECOGNITION: u1 = 0,
        SETSPEECHRECOGNITION: u1 = 0,
        GETCARETBROWSING: u1 = 0,
        SETCARETBROWSING: u1 = 0,
        GETTHREADLOCALINPUTSETTINGS: u1 = 0,
        SETTHREADLOCALINPUTSETTINGS: u1 = 0,
        GETSYSTEMLANGUAGEBAR: u1 = 0,
        SETSYSTEMLANGUAGEBAR: u1 = 0,
        GETFOREGROUNDLOCKTIMEOUT: u1 = 0,
        SETFOREGROUNDLOCKTIMEOUT: u1 = 0,
        GETACTIVEWNDTRKTIMEOUT: u1 = 0,
        SETACTIVEWNDTRKTIMEOUT: u1 = 0,
        GETFOREGROUNDFLASHCOUNT: u1 = 0,
        SETFOREGROUNDFLASHCOUNT: u1 = 0,
        GETCARETWIDTH: u1 = 0,
        SETCARETWIDTH: u1 = 0,
        GETMOUSECLICKLOCKTIME: u1 = 0,
        SETMOUSECLICKLOCKTIME: u1 = 0,
        GETFONTSMOOTHINGTYPE: u1 = 0,
        SETFONTSMOOTHINGTYPE: u1 = 0,
        GETFONTSMOOTHINGCONTRAST: u1 = 0,
        SETFONTSMOOTHINGCONTRAST: u1 = 0,
        GETFOCUSBORDERWIDTH: u1 = 0,
        SETFOCUSBORDERWIDTH: u1 = 0,
        GETFOCUSBORDERHEIGHT: u1 = 0,
        SETFOCUSBORDERHEIGHT: u1 = 0,
        GETFONTSMOOTHINGORIENTATION: u1 = 0,
        SETFONTSMOOTHINGORIENTATION: u1 = 0,
        GETMINIMUMHITRADIUS: u1 = 0,
        SETMINIMUMHITRADIUS: u1 = 0,
        GETMESSAGEDURATION: u1 = 0,
        SETMESSAGEDURATION: u1 = 0,
        GETCONTACTVISUALIZATION: u1 = 0,
        SETCONTACTVISUALIZATION: u1 = 0,
        GETGESTUREVISUALIZATION: u1 = 0,
        SETGESTUREVISUALIZATION: u1 = 0,
        GETMOUSEWHEELROUTING: u1 = 0,
        SETMOUSEWHEELROUTING: u1 = 0,
        GETPENVISUALIZATION: u1 = 0,
        SETPENVISUALIZATION: u1 = 0,
        GETPENARBITRATIONTYPE: u1 = 0,
        SETPENARBITRATIONTYPE: u1 = 0,
        GETCARETTIMEOUT: u1 = 0,
        SETCARETTIMEOUT: u1 = 0,
        GETHANDEDNESS: u1 = 0,
        SETHANDEDNESS: u1 = 0,
    }) SYSTEM_PARAMETERS_INFO_ACTION {
        return @as(SYSTEM_PARAMETERS_INFO_ACTION, @enumFromInt((if (o.GETBEEP == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETBEEP) else 0) | (if (o.SETBEEP == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETBEEP) else 0) | (if (o.GETMOUSE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSE) else 0) | (if (o.SETMOUSE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSE) else 0) | (if (o.GETBORDER == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETBORDER) else 0) | (if (o.SETBORDER == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETBORDER) else 0) | (if (o.GETKEYBOARDSPEED == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETKEYBOARDSPEED) else 0) | (if (o.SETKEYBOARDSPEED == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETKEYBOARDSPEED) else 0) | (if (o.LANGDRIVER == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.LANGDRIVER) else 0) | (if (o.ICONHORIZONTALSPACING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.ICONHORIZONTALSPACING) else 0) | (if (o.GETSCREENSAVETIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENSAVETIMEOUT) else 0) | (if (o.SETSCREENSAVETIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENSAVETIMEOUT) else 0) | (if (o.GETSCREENSAVEACTIVE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENSAVEACTIVE) else 0) | (if (o.SETSCREENSAVEACTIVE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENSAVEACTIVE) else 0) | (if (o.GETGRIDGRANULARITY == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETGRIDGRANULARITY) else 0) | (if (o.SETGRIDGRANULARITY == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETGRIDGRANULARITY) else 0) | (if (o.SETDESKWALLPAPER == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDESKWALLPAPER) else 0) | (if (o.SETDESKPATTERN == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDESKPATTERN) else 0) | (if (o.GETKEYBOARDDELAY == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETKEYBOARDDELAY) else 0) | (if (o.SETKEYBOARDDELAY == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETKEYBOARDDELAY) else 0) | (if (o.ICONVERTICALSPACING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.ICONVERTICALSPACING) else 0) | (if (o.GETICONTITLEWRAP == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETICONTITLEWRAP) else 0) | (if (o.SETICONTITLEWRAP == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETICONTITLEWRAP) else 0) | (if (o.GETMENUDROPALIGNMENT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMENUDROPALIGNMENT) else 0) | (if (o.SETMENUDROPALIGNMENT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMENUDROPALIGNMENT) else 0) | (if (o.SETDOUBLECLKWIDTH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDOUBLECLKWIDTH) else 0) | (if (o.SETDOUBLECLKHEIGHT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDOUBLECLKHEIGHT) else 0) | (if (o.GETICONTITLELOGFONT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETICONTITLELOGFONT) else 0) | (if (o.SETDOUBLECLICKTIME == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDOUBLECLICKTIME) else 0) | (if (o.SETMOUSEBUTTONSWAP == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEBUTTONSWAP) else 0) | (if (o.SETICONTITLELOGFONT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETICONTITLELOGFONT) else 0) | (if (o.GETFASTTASKSWITCH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFASTTASKSWITCH) else 0) | (if (o.SETFASTTASKSWITCH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFASTTASKSWITCH) else 0) | (if (o.SETDRAGFULLWINDOWS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDRAGFULLWINDOWS) else 0) | (if (o.GETDRAGFULLWINDOWS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETDRAGFULLWINDOWS) else 0) | (if (o.GETNONCLIENTMETRICS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETNONCLIENTMETRICS) else 0) | (if (o.SETNONCLIENTMETRICS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETNONCLIENTMETRICS) else 0) | (if (o.GETMINIMIZEDMETRICS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMINIMIZEDMETRICS) else 0) | (if (o.SETMINIMIZEDMETRICS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMINIMIZEDMETRICS) else 0) | (if (o.GETICONMETRICS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETICONMETRICS) else 0) | (if (o.SETICONMETRICS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETICONMETRICS) else 0) | (if (o.SETWORKAREA == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETWORKAREA) else 0) | (if (o.GETWORKAREA == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETWORKAREA) else 0) | (if (o.SETPENWINDOWS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETPENWINDOWS) else 0) | (if (o.GETHIGHCONTRAST == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETHIGHCONTRAST) else 0) | (if (o.SETHIGHCONTRAST == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETHIGHCONTRAST) else 0) | (if (o.GETKEYBOARDPREF == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETKEYBOARDPREF) else 0) | (if (o.SETKEYBOARDPREF == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETKEYBOARDPREF) else 0) | (if (o.GETSCREENREADER == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENREADER) else 0) | (if (o.SETSCREENREADER == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENREADER) else 0) | (if (o.GETANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETANIMATION) else 0) | (if (o.SETANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETANIMATION) else 0) | (if (o.GETFONTSMOOTHING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFONTSMOOTHING) else 0) | (if (o.SETFONTSMOOTHING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFONTSMOOTHING) else 0) | (if (o.SETDRAGWIDTH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDRAGWIDTH) else 0) | (if (o.SETDRAGHEIGHT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDRAGHEIGHT) else 0) | (if (o.SETHANDHELD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETHANDHELD) else 0) | (if (o.GETLOWPOWERTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETLOWPOWERTIMEOUT) else 0) | (if (o.GETPOWEROFFTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETPOWEROFFTIMEOUT) else 0) | (if (o.SETLOWPOWERTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETLOWPOWERTIMEOUT) else 0) | (if (o.SETPOWEROFFTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETPOWEROFFTIMEOUT) else 0) | (if (o.GETLOWPOWERACTIVE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETLOWPOWERACTIVE) else 0) | (if (o.GETPOWEROFFACTIVE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETPOWEROFFACTIVE) else 0) | (if (o.SETLOWPOWERACTIVE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETLOWPOWERACTIVE) else 0) | (if (o.SETPOWEROFFACTIVE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETPOWEROFFACTIVE) else 0) | (if (o.SETCURSORS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETCURSORS) else 0) | (if (o.SETICONS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETICONS) else 0) | (if (o.GETDEFAULTINPUTLANG == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETDEFAULTINPUTLANG) else 0) | (if (o.SETDEFAULTINPUTLANG == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDEFAULTINPUTLANG) else 0) | (if (o.SETLANGTOGGLE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETLANGTOGGLE) else 0) | (if (o.GETWINDOWSEXTENSION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETWINDOWSEXTENSION) else 0) | (if (o.SETMOUSETRAILS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSETRAILS) else 0) | (if (o.GETMOUSETRAILS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSETRAILS) else 0) | (if (o.SETSCREENSAVERRUNNING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENSAVERRUNNING) else 0) | (if (o.GETFILTERKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFILTERKEYS) else 0) | (if (o.SETFILTERKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFILTERKEYS) else 0) | (if (o.GETTOGGLEKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETTOGGLEKEYS) else 0) | (if (o.SETTOGGLEKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETTOGGLEKEYS) else 0) | (if (o.GETMOUSEKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEKEYS) else 0) | (if (o.SETMOUSEKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEKEYS) else 0) | (if (o.GETSHOWSOUNDS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSHOWSOUNDS) else 0) | (if (o.SETSHOWSOUNDS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSHOWSOUNDS) else 0) | (if (o.GETSTICKYKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSTICKYKEYS) else 0) | (if (o.SETSTICKYKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSTICKYKEYS) else 0) | (if (o.GETACCESSTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETACCESSTIMEOUT) else 0) | (if (o.SETACCESSTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETACCESSTIMEOUT) else 0) | (if (o.GETSERIALKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSERIALKEYS) else 0) | (if (o.SETSERIALKEYS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSERIALKEYS) else 0) | (if (o.GETSOUNDSENTRY == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSOUNDSENTRY) else 0) | (if (o.SETSOUNDSENTRY == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSOUNDSENTRY) else 0) | (if (o.GETSNAPTODEFBUTTON == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSNAPTODEFBUTTON) else 0) | (if (o.SETSNAPTODEFBUTTON == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSNAPTODEFBUTTON) else 0) | (if (o.GETMOUSEHOVERWIDTH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEHOVERWIDTH) else 0) | (if (o.SETMOUSEHOVERWIDTH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEHOVERWIDTH) else 0) | (if (o.GETMOUSEHOVERHEIGHT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEHOVERHEIGHT) else 0) | (if (o.SETMOUSEHOVERHEIGHT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEHOVERHEIGHT) else 0) | (if (o.GETMOUSEHOVERTIME == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEHOVERTIME) else 0) | (if (o.SETMOUSEHOVERTIME == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEHOVERTIME) else 0) | (if (o.GETWHEELSCROLLLINES == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETWHEELSCROLLLINES) else 0) | (if (o.SETWHEELSCROLLLINES == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETWHEELSCROLLLINES) else 0) | (if (o.GETMENUSHOWDELAY == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMENUSHOWDELAY) else 0) | (if (o.SETMENUSHOWDELAY == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMENUSHOWDELAY) else 0) | (if (o.GETWHEELSCROLLCHARS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETWHEELSCROLLCHARS) else 0) | (if (o.SETWHEELSCROLLCHARS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETWHEELSCROLLCHARS) else 0) | (if (o.GETSHOWIMEUI == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSHOWIMEUI) else 0) | (if (o.SETSHOWIMEUI == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSHOWIMEUI) else 0) | (if (o.GETMOUSESPEED == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSESPEED) else 0) | (if (o.SETMOUSESPEED == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSESPEED) else 0) | (if (o.GETSCREENSAVERRUNNING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENSAVERRUNNING) else 0) | (if (o.GETDESKWALLPAPER == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETDESKWALLPAPER) else 0) | (if (o.GETAUDIODESCRIPTION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETAUDIODESCRIPTION) else 0) | (if (o.SETAUDIODESCRIPTION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETAUDIODESCRIPTION) else 0) | (if (o.GETSCREENSAVESECURE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENSAVESECURE) else 0) | (if (o.SETSCREENSAVESECURE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENSAVESECURE) else 0) | (if (o.GETHUNGAPPTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETHUNGAPPTIMEOUT) else 0) | (if (o.SETHUNGAPPTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETHUNGAPPTIMEOUT) else 0) | (if (o.GETWAITTOKILLTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETWAITTOKILLTIMEOUT) else 0) | (if (o.SETWAITTOKILLTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETWAITTOKILLTIMEOUT) else 0) | (if (o.GETWAITTOKILLSERVICETIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETWAITTOKILLSERVICETIMEOUT) else 0) | (if (o.SETWAITTOKILLSERVICETIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETWAITTOKILLSERVICETIMEOUT) else 0) | (if (o.GETMOUSEDOCKTHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEDOCKTHRESHOLD) else 0) | (if (o.SETMOUSEDOCKTHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEDOCKTHRESHOLD) else 0) | (if (o.GETPENDOCKTHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETPENDOCKTHRESHOLD) else 0) | (if (o.SETPENDOCKTHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETPENDOCKTHRESHOLD) else 0) | (if (o.GETWINARRANGING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETWINARRANGING) else 0) | (if (o.SETWINARRANGING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETWINARRANGING) else 0) | (if (o.GETMOUSEDRAGOUTTHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEDRAGOUTTHRESHOLD) else 0) | (if (o.SETMOUSEDRAGOUTTHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEDRAGOUTTHRESHOLD) else 0) | (if (o.GETPENDRAGOUTTHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETPENDRAGOUTTHRESHOLD) else 0) | (if (o.SETPENDRAGOUTTHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETPENDRAGOUTTHRESHOLD) else 0) | (if (o.GETMOUSESIDEMOVETHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSESIDEMOVETHRESHOLD) else 0) | (if (o.SETMOUSESIDEMOVETHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSESIDEMOVETHRESHOLD) else 0) | (if (o.GETPENSIDEMOVETHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETPENSIDEMOVETHRESHOLD) else 0) | (if (o.SETPENSIDEMOVETHRESHOLD == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETPENSIDEMOVETHRESHOLD) else 0) | (if (o.GETDRAGFROMMAXIMIZE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETDRAGFROMMAXIMIZE) else 0) | (if (o.SETDRAGFROMMAXIMIZE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDRAGFROMMAXIMIZE) else 0) | (if (o.GETSNAPSIZING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSNAPSIZING) else 0) | (if (o.SETSNAPSIZING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSNAPSIZING) else 0) | (if (o.GETDOCKMOVING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETDOCKMOVING) else 0) | (if (o.SETDOCKMOVING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDOCKMOVING) else 0) | (if (o.GETTOUCHPREDICTIONPARAMETERS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETTOUCHPREDICTIONPARAMETERS) else 0) | (if (o.SETTOUCHPREDICTIONPARAMETERS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETTOUCHPREDICTIONPARAMETERS) else 0) | (if (o.GETLOGICALDPIOVERRIDE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETLOGICALDPIOVERRIDE) else 0) | (if (o.SETLOGICALDPIOVERRIDE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETLOGICALDPIOVERRIDE) else 0) | (if (o.GETMENURECT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMENURECT) else 0) | (if (o.SETMENURECT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMENURECT) else 0) | (if (o.GETACTIVEWINDOWTRACKING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETACTIVEWINDOWTRACKING) else 0) | (if (o.SETACTIVEWINDOWTRACKING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETACTIVEWINDOWTRACKING) else 0) | (if (o.GETMENUANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMENUANIMATION) else 0) | (if (o.SETMENUANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMENUANIMATION) else 0) | (if (o.GETCOMBOBOXANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETCOMBOBOXANIMATION) else 0) | (if (o.SETCOMBOBOXANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETCOMBOBOXANIMATION) else 0) | (if (o.GETLISTBOXSMOOTHSCROLLING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETLISTBOXSMOOTHSCROLLING) else 0) | (if (o.SETLISTBOXSMOOTHSCROLLING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETLISTBOXSMOOTHSCROLLING) else 0) | (if (o.GETGRADIENTCAPTIONS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETGRADIENTCAPTIONS) else 0) | (if (o.SETGRADIENTCAPTIONS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETGRADIENTCAPTIONS) else 0) | (if (o.GETKEYBOARDCUES == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETKEYBOARDCUES) else 0) | (if (o.SETKEYBOARDCUES == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETKEYBOARDCUES) else 0) | (if (o.GETACTIVEWNDTRKZORDER == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETACTIVEWNDTRKZORDER) else 0) | (if (o.SETACTIVEWNDTRKZORDER == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETACTIVEWNDTRKZORDER) else 0) | (if (o.GETHOTTRACKING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETHOTTRACKING) else 0) | (if (o.SETHOTTRACKING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETHOTTRACKING) else 0) | (if (o.GETMENUFADE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMENUFADE) else 0) | (if (o.SETMENUFADE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMENUFADE) else 0) | (if (o.GETSELECTIONFADE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSELECTIONFADE) else 0) | (if (o.SETSELECTIONFADE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSELECTIONFADE) else 0) | (if (o.GETTOOLTIPANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETTOOLTIPANIMATION) else 0) | (if (o.SETTOOLTIPANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETTOOLTIPANIMATION) else 0) | (if (o.GETTOOLTIPFADE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETTOOLTIPFADE) else 0) | (if (o.SETTOOLTIPFADE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETTOOLTIPFADE) else 0) | (if (o.GETCURSORSHADOW == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETCURSORSHADOW) else 0) | (if (o.SETCURSORSHADOW == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETCURSORSHADOW) else 0) | (if (o.GETMOUSESONAR == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSESONAR) else 0) | (if (o.SETMOUSESONAR == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSESONAR) else 0) | (if (o.GETMOUSECLICKLOCK == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSECLICKLOCK) else 0) | (if (o.SETMOUSECLICKLOCK == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSECLICKLOCK) else 0) | (if (o.GETMOUSEVANISH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEVANISH) else 0) | (if (o.SETMOUSEVANISH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEVANISH) else 0) | (if (o.GETFLATMENU == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFLATMENU) else 0) | (if (o.SETFLATMENU == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFLATMENU) else 0) | (if (o.GETDROPSHADOW == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETDROPSHADOW) else 0) | (if (o.SETDROPSHADOW == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDROPSHADOW) else 0) | (if (o.GETBLOCKSENDINPUTRESETS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETBLOCKSENDINPUTRESETS) else 0) | (if (o.SETBLOCKSENDINPUTRESETS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETBLOCKSENDINPUTRESETS) else 0) | (if (o.GETUIEFFECTS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETUIEFFECTS) else 0) | (if (o.SETUIEFFECTS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETUIEFFECTS) else 0) | (if (o.GETDISABLEOVERLAPPEDCONTENT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETDISABLEOVERLAPPEDCONTENT) else 0) | (if (o.SETDISABLEOVERLAPPEDCONTENT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETDISABLEOVERLAPPEDCONTENT) else 0) | (if (o.GETCLIENTAREAANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETCLIENTAREAANIMATION) else 0) | (if (o.SETCLIENTAREAANIMATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETCLIENTAREAANIMATION) else 0) | (if (o.GETCLEARTYPE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETCLEARTYPE) else 0) | (if (o.SETCLEARTYPE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETCLEARTYPE) else 0) | (if (o.GETSPEECHRECOGNITION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSPEECHRECOGNITION) else 0) | (if (o.SETSPEECHRECOGNITION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSPEECHRECOGNITION) else 0) | (if (o.GETCARETBROWSING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETCARETBROWSING) else 0) | (if (o.SETCARETBROWSING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETCARETBROWSING) else 0) | (if (o.GETTHREADLOCALINPUTSETTINGS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETTHREADLOCALINPUTSETTINGS) else 0) | (if (o.SETTHREADLOCALINPUTSETTINGS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETTHREADLOCALINPUTSETTINGS) else 0) | (if (o.GETSYSTEMLANGUAGEBAR == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETSYSTEMLANGUAGEBAR) else 0) | (if (o.SETSYSTEMLANGUAGEBAR == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETSYSTEMLANGUAGEBAR) else 0) | (if (o.GETFOREGROUNDLOCKTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFOREGROUNDLOCKTIMEOUT) else 0) | (if (o.SETFOREGROUNDLOCKTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFOREGROUNDLOCKTIMEOUT) else 0) | (if (o.GETACTIVEWNDTRKTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETACTIVEWNDTRKTIMEOUT) else 0) | (if (o.SETACTIVEWNDTRKTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETACTIVEWNDTRKTIMEOUT) else 0) | (if (o.GETFOREGROUNDFLASHCOUNT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFOREGROUNDFLASHCOUNT) else 0) | (if (o.SETFOREGROUNDFLASHCOUNT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFOREGROUNDFLASHCOUNT) else 0) | (if (o.GETCARETWIDTH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETCARETWIDTH) else 0) | (if (o.SETCARETWIDTH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETCARETWIDTH) else 0) | (if (o.GETMOUSECLICKLOCKTIME == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSECLICKLOCKTIME) else 0) | (if (o.SETMOUSECLICKLOCKTIME == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSECLICKLOCKTIME) else 0) | (if (o.GETFONTSMOOTHINGTYPE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFONTSMOOTHINGTYPE) else 0) | (if (o.SETFONTSMOOTHINGTYPE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFONTSMOOTHINGTYPE) else 0) | (if (o.GETFONTSMOOTHINGCONTRAST == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFONTSMOOTHINGCONTRAST) else 0) | (if (o.SETFONTSMOOTHINGCONTRAST == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFONTSMOOTHINGCONTRAST) else 0) | (if (o.GETFOCUSBORDERWIDTH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFOCUSBORDERWIDTH) else 0) | (if (o.SETFOCUSBORDERWIDTH == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFOCUSBORDERWIDTH) else 0) | (if (o.GETFOCUSBORDERHEIGHT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFOCUSBORDERHEIGHT) else 0) | (if (o.SETFOCUSBORDERHEIGHT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFOCUSBORDERHEIGHT) else 0) | (if (o.GETFONTSMOOTHINGORIENTATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETFONTSMOOTHINGORIENTATION) else 0) | (if (o.SETFONTSMOOTHINGORIENTATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETFONTSMOOTHINGORIENTATION) else 0) | (if (o.GETMINIMUMHITRADIUS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMINIMUMHITRADIUS) else 0) | (if (o.SETMINIMUMHITRADIUS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMINIMUMHITRADIUS) else 0) | (if (o.GETMESSAGEDURATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMESSAGEDURATION) else 0) | (if (o.SETMESSAGEDURATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMESSAGEDURATION) else 0) | (if (o.GETCONTACTVISUALIZATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETCONTACTVISUALIZATION) else 0) | (if (o.SETCONTACTVISUALIZATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETCONTACTVISUALIZATION) else 0) | (if (o.GETGESTUREVISUALIZATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETGESTUREVISUALIZATION) else 0) | (if (o.SETGESTUREVISUALIZATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETGESTUREVISUALIZATION) else 0) | (if (o.GETMOUSEWHEELROUTING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEWHEELROUTING) else 0) | (if (o.SETMOUSEWHEELROUTING == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEWHEELROUTING) else 0) | (if (o.GETPENVISUALIZATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETPENVISUALIZATION) else 0) | (if (o.SETPENVISUALIZATION == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETPENVISUALIZATION) else 0) | (if (o.GETPENARBITRATIONTYPE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETPENARBITRATIONTYPE) else 0) | (if (o.SETPENARBITRATIONTYPE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETPENARBITRATIONTYPE) else 0) | (if (o.GETCARETTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETCARETTIMEOUT) else 0) | (if (o.SETCARETTIMEOUT == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETCARETTIMEOUT) else 0) | (if (o.GETHANDEDNESS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.GETHANDEDNESS) else 0) | (if (o.SETHANDEDNESS == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_ACTION.SETHANDEDNESS) else 0)));
    }
};
pub const SPI_GETBEEP = SYSTEM_PARAMETERS_INFO_ACTION.GETBEEP;
pub const SPI_SETBEEP = SYSTEM_PARAMETERS_INFO_ACTION.SETBEEP;
pub const SPI_GETMOUSE = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSE;
pub const SPI_SETMOUSE = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSE;
pub const SPI_GETBORDER = SYSTEM_PARAMETERS_INFO_ACTION.GETBORDER;
pub const SPI_SETBORDER = SYSTEM_PARAMETERS_INFO_ACTION.SETBORDER;
pub const SPI_GETKEYBOARDSPEED = SYSTEM_PARAMETERS_INFO_ACTION.GETKEYBOARDSPEED;
pub const SPI_SETKEYBOARDSPEED = SYSTEM_PARAMETERS_INFO_ACTION.SETKEYBOARDSPEED;
pub const SPI_LANGDRIVER = SYSTEM_PARAMETERS_INFO_ACTION.LANGDRIVER;
pub const SPI_ICONHORIZONTALSPACING = SYSTEM_PARAMETERS_INFO_ACTION.ICONHORIZONTALSPACING;
pub const SPI_GETSCREENSAVETIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENSAVETIMEOUT;
pub const SPI_SETSCREENSAVETIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENSAVETIMEOUT;
pub const SPI_GETSCREENSAVEACTIVE = SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENSAVEACTIVE;
pub const SPI_SETSCREENSAVEACTIVE = SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENSAVEACTIVE;
pub const SPI_GETGRIDGRANULARITY = SYSTEM_PARAMETERS_INFO_ACTION.GETGRIDGRANULARITY;
pub const SPI_SETGRIDGRANULARITY = SYSTEM_PARAMETERS_INFO_ACTION.SETGRIDGRANULARITY;
pub const SPI_SETDESKWALLPAPER = SYSTEM_PARAMETERS_INFO_ACTION.SETDESKWALLPAPER;
pub const SPI_SETDESKPATTERN = SYSTEM_PARAMETERS_INFO_ACTION.SETDESKPATTERN;
pub const SPI_GETKEYBOARDDELAY = SYSTEM_PARAMETERS_INFO_ACTION.GETKEYBOARDDELAY;
pub const SPI_SETKEYBOARDDELAY = SYSTEM_PARAMETERS_INFO_ACTION.SETKEYBOARDDELAY;
pub const SPI_ICONVERTICALSPACING = SYSTEM_PARAMETERS_INFO_ACTION.ICONVERTICALSPACING;
pub const SPI_GETICONTITLEWRAP = SYSTEM_PARAMETERS_INFO_ACTION.GETICONTITLEWRAP;
pub const SPI_SETICONTITLEWRAP = SYSTEM_PARAMETERS_INFO_ACTION.SETICONTITLEWRAP;
pub const SPI_GETMENUDROPALIGNMENT = SYSTEM_PARAMETERS_INFO_ACTION.GETMENUDROPALIGNMENT;
pub const SPI_SETMENUDROPALIGNMENT = SYSTEM_PARAMETERS_INFO_ACTION.SETMENUDROPALIGNMENT;
pub const SPI_SETDOUBLECLKWIDTH = SYSTEM_PARAMETERS_INFO_ACTION.SETDOUBLECLKWIDTH;
pub const SPI_SETDOUBLECLKHEIGHT = SYSTEM_PARAMETERS_INFO_ACTION.SETDOUBLECLKHEIGHT;
pub const SPI_GETICONTITLELOGFONT = SYSTEM_PARAMETERS_INFO_ACTION.GETICONTITLELOGFONT;
pub const SPI_SETDOUBLECLICKTIME = SYSTEM_PARAMETERS_INFO_ACTION.SETDOUBLECLICKTIME;
pub const SPI_SETMOUSEBUTTONSWAP = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEBUTTONSWAP;
pub const SPI_SETICONTITLELOGFONT = SYSTEM_PARAMETERS_INFO_ACTION.SETICONTITLELOGFONT;
pub const SPI_GETFASTTASKSWITCH = SYSTEM_PARAMETERS_INFO_ACTION.GETFASTTASKSWITCH;
pub const SPI_SETFASTTASKSWITCH = SYSTEM_PARAMETERS_INFO_ACTION.SETFASTTASKSWITCH;
pub const SPI_SETDRAGFULLWINDOWS = SYSTEM_PARAMETERS_INFO_ACTION.SETDRAGFULLWINDOWS;
pub const SPI_GETDRAGFULLWINDOWS = SYSTEM_PARAMETERS_INFO_ACTION.GETDRAGFULLWINDOWS;
pub const SPI_GETNONCLIENTMETRICS = SYSTEM_PARAMETERS_INFO_ACTION.GETNONCLIENTMETRICS;
pub const SPI_SETNONCLIENTMETRICS = SYSTEM_PARAMETERS_INFO_ACTION.SETNONCLIENTMETRICS;
pub const SPI_GETMINIMIZEDMETRICS = SYSTEM_PARAMETERS_INFO_ACTION.GETMINIMIZEDMETRICS;
pub const SPI_SETMINIMIZEDMETRICS = SYSTEM_PARAMETERS_INFO_ACTION.SETMINIMIZEDMETRICS;
pub const SPI_GETICONMETRICS = SYSTEM_PARAMETERS_INFO_ACTION.GETICONMETRICS;
pub const SPI_SETICONMETRICS = SYSTEM_PARAMETERS_INFO_ACTION.SETICONMETRICS;
pub const SPI_SETWORKAREA = SYSTEM_PARAMETERS_INFO_ACTION.SETWORKAREA;
pub const SPI_GETWORKAREA = SYSTEM_PARAMETERS_INFO_ACTION.GETWORKAREA;
pub const SPI_SETPENWINDOWS = SYSTEM_PARAMETERS_INFO_ACTION.SETPENWINDOWS;
pub const SPI_GETHIGHCONTRAST = SYSTEM_PARAMETERS_INFO_ACTION.GETHIGHCONTRAST;
pub const SPI_SETHIGHCONTRAST = SYSTEM_PARAMETERS_INFO_ACTION.SETHIGHCONTRAST;
pub const SPI_GETKEYBOARDPREF = SYSTEM_PARAMETERS_INFO_ACTION.GETKEYBOARDPREF;
pub const SPI_SETKEYBOARDPREF = SYSTEM_PARAMETERS_INFO_ACTION.SETKEYBOARDPREF;
pub const SPI_GETSCREENREADER = SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENREADER;
pub const SPI_SETSCREENREADER = SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENREADER;
pub const SPI_GETANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.GETANIMATION;
pub const SPI_SETANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.SETANIMATION;
pub const SPI_GETFONTSMOOTHING = SYSTEM_PARAMETERS_INFO_ACTION.GETFONTSMOOTHING;
pub const SPI_SETFONTSMOOTHING = SYSTEM_PARAMETERS_INFO_ACTION.SETFONTSMOOTHING;
pub const SPI_SETDRAGWIDTH = SYSTEM_PARAMETERS_INFO_ACTION.SETDRAGWIDTH;
pub const SPI_SETDRAGHEIGHT = SYSTEM_PARAMETERS_INFO_ACTION.SETDRAGHEIGHT;
pub const SPI_SETHANDHELD = SYSTEM_PARAMETERS_INFO_ACTION.SETHANDHELD;
pub const SPI_GETLOWPOWERTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETLOWPOWERTIMEOUT;
pub const SPI_GETPOWEROFFTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETPOWEROFFTIMEOUT;
pub const SPI_SETLOWPOWERTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETLOWPOWERTIMEOUT;
pub const SPI_SETPOWEROFFTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETPOWEROFFTIMEOUT;
pub const SPI_GETLOWPOWERACTIVE = SYSTEM_PARAMETERS_INFO_ACTION.GETLOWPOWERACTIVE;
pub const SPI_GETPOWEROFFACTIVE = SYSTEM_PARAMETERS_INFO_ACTION.GETPOWEROFFACTIVE;
pub const SPI_SETLOWPOWERACTIVE = SYSTEM_PARAMETERS_INFO_ACTION.SETLOWPOWERACTIVE;
pub const SPI_SETPOWEROFFACTIVE = SYSTEM_PARAMETERS_INFO_ACTION.SETPOWEROFFACTIVE;
pub const SPI_SETCURSORS = SYSTEM_PARAMETERS_INFO_ACTION.SETCURSORS;
pub const SPI_SETICONS = SYSTEM_PARAMETERS_INFO_ACTION.SETICONS;
pub const SPI_GETDEFAULTINPUTLANG = SYSTEM_PARAMETERS_INFO_ACTION.GETDEFAULTINPUTLANG;
pub const SPI_SETDEFAULTINPUTLANG = SYSTEM_PARAMETERS_INFO_ACTION.SETDEFAULTINPUTLANG;
pub const SPI_SETLANGTOGGLE = SYSTEM_PARAMETERS_INFO_ACTION.SETLANGTOGGLE;
pub const SPI_GETWINDOWSEXTENSION = SYSTEM_PARAMETERS_INFO_ACTION.GETWINDOWSEXTENSION;
pub const SPI_SETMOUSETRAILS = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSETRAILS;
pub const SPI_GETMOUSETRAILS = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSETRAILS;
pub const SPI_SETSCREENSAVERRUNNING = SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENSAVERRUNNING;
pub const SPI_SCREENSAVERRUNNING = SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENSAVERRUNNING;
pub const SPI_GETFILTERKEYS = SYSTEM_PARAMETERS_INFO_ACTION.GETFILTERKEYS;
pub const SPI_SETFILTERKEYS = SYSTEM_PARAMETERS_INFO_ACTION.SETFILTERKEYS;
pub const SPI_GETTOGGLEKEYS = SYSTEM_PARAMETERS_INFO_ACTION.GETTOGGLEKEYS;
pub const SPI_SETTOGGLEKEYS = SYSTEM_PARAMETERS_INFO_ACTION.SETTOGGLEKEYS;
pub const SPI_GETMOUSEKEYS = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEKEYS;
pub const SPI_SETMOUSEKEYS = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEKEYS;
pub const SPI_GETSHOWSOUNDS = SYSTEM_PARAMETERS_INFO_ACTION.GETSHOWSOUNDS;
pub const SPI_SETSHOWSOUNDS = SYSTEM_PARAMETERS_INFO_ACTION.SETSHOWSOUNDS;
pub const SPI_GETSTICKYKEYS = SYSTEM_PARAMETERS_INFO_ACTION.GETSTICKYKEYS;
pub const SPI_SETSTICKYKEYS = SYSTEM_PARAMETERS_INFO_ACTION.SETSTICKYKEYS;
pub const SPI_GETACCESSTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETACCESSTIMEOUT;
pub const SPI_SETACCESSTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETACCESSTIMEOUT;
pub const SPI_GETSERIALKEYS = SYSTEM_PARAMETERS_INFO_ACTION.GETSERIALKEYS;
pub const SPI_SETSERIALKEYS = SYSTEM_PARAMETERS_INFO_ACTION.SETSERIALKEYS;
pub const SPI_GETSOUNDSENTRY = SYSTEM_PARAMETERS_INFO_ACTION.GETSOUNDSENTRY;
pub const SPI_SETSOUNDSENTRY = SYSTEM_PARAMETERS_INFO_ACTION.SETSOUNDSENTRY;
pub const SPI_GETSNAPTODEFBUTTON = SYSTEM_PARAMETERS_INFO_ACTION.GETSNAPTODEFBUTTON;
pub const SPI_SETSNAPTODEFBUTTON = SYSTEM_PARAMETERS_INFO_ACTION.SETSNAPTODEFBUTTON;
pub const SPI_GETMOUSEHOVERWIDTH = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEHOVERWIDTH;
pub const SPI_SETMOUSEHOVERWIDTH = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEHOVERWIDTH;
pub const SPI_GETMOUSEHOVERHEIGHT = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEHOVERHEIGHT;
pub const SPI_SETMOUSEHOVERHEIGHT = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEHOVERHEIGHT;
pub const SPI_GETMOUSEHOVERTIME = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEHOVERTIME;
pub const SPI_SETMOUSEHOVERTIME = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEHOVERTIME;
pub const SPI_GETWHEELSCROLLLINES = SYSTEM_PARAMETERS_INFO_ACTION.GETWHEELSCROLLLINES;
pub const SPI_SETWHEELSCROLLLINES = SYSTEM_PARAMETERS_INFO_ACTION.SETWHEELSCROLLLINES;
pub const SPI_GETMENUSHOWDELAY = SYSTEM_PARAMETERS_INFO_ACTION.GETMENUSHOWDELAY;
pub const SPI_SETMENUSHOWDELAY = SYSTEM_PARAMETERS_INFO_ACTION.SETMENUSHOWDELAY;
pub const SPI_GETWHEELSCROLLCHARS = SYSTEM_PARAMETERS_INFO_ACTION.GETWHEELSCROLLCHARS;
pub const SPI_SETWHEELSCROLLCHARS = SYSTEM_PARAMETERS_INFO_ACTION.SETWHEELSCROLLCHARS;
pub const SPI_GETSHOWIMEUI = SYSTEM_PARAMETERS_INFO_ACTION.GETSHOWIMEUI;
pub const SPI_SETSHOWIMEUI = SYSTEM_PARAMETERS_INFO_ACTION.SETSHOWIMEUI;
pub const SPI_GETMOUSESPEED = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSESPEED;
pub const SPI_SETMOUSESPEED = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSESPEED;
pub const SPI_GETSCREENSAVERRUNNING = SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENSAVERRUNNING;
pub const SPI_GETDESKWALLPAPER = SYSTEM_PARAMETERS_INFO_ACTION.GETDESKWALLPAPER;
pub const SPI_GETAUDIODESCRIPTION = SYSTEM_PARAMETERS_INFO_ACTION.GETAUDIODESCRIPTION;
pub const SPI_SETAUDIODESCRIPTION = SYSTEM_PARAMETERS_INFO_ACTION.SETAUDIODESCRIPTION;
pub const SPI_GETSCREENSAVESECURE = SYSTEM_PARAMETERS_INFO_ACTION.GETSCREENSAVESECURE;
pub const SPI_SETSCREENSAVESECURE = SYSTEM_PARAMETERS_INFO_ACTION.SETSCREENSAVESECURE;
pub const SPI_GETHUNGAPPTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETHUNGAPPTIMEOUT;
pub const SPI_SETHUNGAPPTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETHUNGAPPTIMEOUT;
pub const SPI_GETWAITTOKILLTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETWAITTOKILLTIMEOUT;
pub const SPI_SETWAITTOKILLTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETWAITTOKILLTIMEOUT;
pub const SPI_GETWAITTOKILLSERVICETIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETWAITTOKILLSERVICETIMEOUT;
pub const SPI_SETWAITTOKILLSERVICETIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETWAITTOKILLSERVICETIMEOUT;
pub const SPI_GETMOUSEDOCKTHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEDOCKTHRESHOLD;
pub const SPI_SETMOUSEDOCKTHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEDOCKTHRESHOLD;
pub const SPI_GETPENDOCKTHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.GETPENDOCKTHRESHOLD;
pub const SPI_SETPENDOCKTHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.SETPENDOCKTHRESHOLD;
pub const SPI_GETWINARRANGING = SYSTEM_PARAMETERS_INFO_ACTION.GETWINARRANGING;
pub const SPI_SETWINARRANGING = SYSTEM_PARAMETERS_INFO_ACTION.SETWINARRANGING;
pub const SPI_GETMOUSEDRAGOUTTHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEDRAGOUTTHRESHOLD;
pub const SPI_SETMOUSEDRAGOUTTHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEDRAGOUTTHRESHOLD;
pub const SPI_GETPENDRAGOUTTHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.GETPENDRAGOUTTHRESHOLD;
pub const SPI_SETPENDRAGOUTTHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.SETPENDRAGOUTTHRESHOLD;
pub const SPI_GETMOUSESIDEMOVETHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSESIDEMOVETHRESHOLD;
pub const SPI_SETMOUSESIDEMOVETHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSESIDEMOVETHRESHOLD;
pub const SPI_GETPENSIDEMOVETHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.GETPENSIDEMOVETHRESHOLD;
pub const SPI_SETPENSIDEMOVETHRESHOLD = SYSTEM_PARAMETERS_INFO_ACTION.SETPENSIDEMOVETHRESHOLD;
pub const SPI_GETDRAGFROMMAXIMIZE = SYSTEM_PARAMETERS_INFO_ACTION.GETDRAGFROMMAXIMIZE;
pub const SPI_SETDRAGFROMMAXIMIZE = SYSTEM_PARAMETERS_INFO_ACTION.SETDRAGFROMMAXIMIZE;
pub const SPI_GETSNAPSIZING = SYSTEM_PARAMETERS_INFO_ACTION.GETSNAPSIZING;
pub const SPI_SETSNAPSIZING = SYSTEM_PARAMETERS_INFO_ACTION.SETSNAPSIZING;
pub const SPI_GETDOCKMOVING = SYSTEM_PARAMETERS_INFO_ACTION.GETDOCKMOVING;
pub const SPI_SETDOCKMOVING = SYSTEM_PARAMETERS_INFO_ACTION.SETDOCKMOVING;
pub const SPI_GETTOUCHPREDICTIONPARAMETERS = SYSTEM_PARAMETERS_INFO_ACTION.GETTOUCHPREDICTIONPARAMETERS;
pub const SPI_SETTOUCHPREDICTIONPARAMETERS = SYSTEM_PARAMETERS_INFO_ACTION.SETTOUCHPREDICTIONPARAMETERS;
pub const SPI_GETLOGICALDPIOVERRIDE = SYSTEM_PARAMETERS_INFO_ACTION.GETLOGICALDPIOVERRIDE;
pub const SPI_SETLOGICALDPIOVERRIDE = SYSTEM_PARAMETERS_INFO_ACTION.SETLOGICALDPIOVERRIDE;
pub const SPI_GETMENURECT = SYSTEM_PARAMETERS_INFO_ACTION.GETMENURECT;
pub const SPI_SETMENURECT = SYSTEM_PARAMETERS_INFO_ACTION.SETMENURECT;
pub const SPI_GETACTIVEWINDOWTRACKING = SYSTEM_PARAMETERS_INFO_ACTION.GETACTIVEWINDOWTRACKING;
pub const SPI_SETACTIVEWINDOWTRACKING = SYSTEM_PARAMETERS_INFO_ACTION.SETACTIVEWINDOWTRACKING;
pub const SPI_GETMENUANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.GETMENUANIMATION;
pub const SPI_SETMENUANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.SETMENUANIMATION;
pub const SPI_GETCOMBOBOXANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.GETCOMBOBOXANIMATION;
pub const SPI_SETCOMBOBOXANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.SETCOMBOBOXANIMATION;
pub const SPI_GETLISTBOXSMOOTHSCROLLING = SYSTEM_PARAMETERS_INFO_ACTION.GETLISTBOXSMOOTHSCROLLING;
pub const SPI_SETLISTBOXSMOOTHSCROLLING = SYSTEM_PARAMETERS_INFO_ACTION.SETLISTBOXSMOOTHSCROLLING;
pub const SPI_GETGRADIENTCAPTIONS = SYSTEM_PARAMETERS_INFO_ACTION.GETGRADIENTCAPTIONS;
pub const SPI_SETGRADIENTCAPTIONS = SYSTEM_PARAMETERS_INFO_ACTION.SETGRADIENTCAPTIONS;
pub const SPI_GETKEYBOARDCUES = SYSTEM_PARAMETERS_INFO_ACTION.GETKEYBOARDCUES;
pub const SPI_SETKEYBOARDCUES = SYSTEM_PARAMETERS_INFO_ACTION.SETKEYBOARDCUES;
pub const SPI_GETMENUUNDERLINES = SYSTEM_PARAMETERS_INFO_ACTION.GETKEYBOARDCUES;
pub const SPI_SETMENUUNDERLINES = SYSTEM_PARAMETERS_INFO_ACTION.SETKEYBOARDCUES;
pub const SPI_GETACTIVEWNDTRKZORDER = SYSTEM_PARAMETERS_INFO_ACTION.GETACTIVEWNDTRKZORDER;
pub const SPI_SETACTIVEWNDTRKZORDER = SYSTEM_PARAMETERS_INFO_ACTION.SETACTIVEWNDTRKZORDER;
pub const SPI_GETHOTTRACKING = SYSTEM_PARAMETERS_INFO_ACTION.GETHOTTRACKING;
pub const SPI_SETHOTTRACKING = SYSTEM_PARAMETERS_INFO_ACTION.SETHOTTRACKING;
pub const SPI_GETMENUFADE = SYSTEM_PARAMETERS_INFO_ACTION.GETMENUFADE;
pub const SPI_SETMENUFADE = SYSTEM_PARAMETERS_INFO_ACTION.SETMENUFADE;
pub const SPI_GETSELECTIONFADE = SYSTEM_PARAMETERS_INFO_ACTION.GETSELECTIONFADE;
pub const SPI_SETSELECTIONFADE = SYSTEM_PARAMETERS_INFO_ACTION.SETSELECTIONFADE;
pub const SPI_GETTOOLTIPANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.GETTOOLTIPANIMATION;
pub const SPI_SETTOOLTIPANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.SETTOOLTIPANIMATION;
pub const SPI_GETTOOLTIPFADE = SYSTEM_PARAMETERS_INFO_ACTION.GETTOOLTIPFADE;
pub const SPI_SETTOOLTIPFADE = SYSTEM_PARAMETERS_INFO_ACTION.SETTOOLTIPFADE;
pub const SPI_GETCURSORSHADOW = SYSTEM_PARAMETERS_INFO_ACTION.GETCURSORSHADOW;
pub const SPI_SETCURSORSHADOW = SYSTEM_PARAMETERS_INFO_ACTION.SETCURSORSHADOW;
pub const SPI_GETMOUSESONAR = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSESONAR;
pub const SPI_SETMOUSESONAR = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSESONAR;
pub const SPI_GETMOUSECLICKLOCK = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSECLICKLOCK;
pub const SPI_SETMOUSECLICKLOCK = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSECLICKLOCK;
pub const SPI_GETMOUSEVANISH = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEVANISH;
pub const SPI_SETMOUSEVANISH = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEVANISH;
pub const SPI_GETFLATMENU = SYSTEM_PARAMETERS_INFO_ACTION.GETFLATMENU;
pub const SPI_SETFLATMENU = SYSTEM_PARAMETERS_INFO_ACTION.SETFLATMENU;
pub const SPI_GETDROPSHADOW = SYSTEM_PARAMETERS_INFO_ACTION.GETDROPSHADOW;
pub const SPI_SETDROPSHADOW = SYSTEM_PARAMETERS_INFO_ACTION.SETDROPSHADOW;
pub const SPI_GETBLOCKSENDINPUTRESETS = SYSTEM_PARAMETERS_INFO_ACTION.GETBLOCKSENDINPUTRESETS;
pub const SPI_SETBLOCKSENDINPUTRESETS = SYSTEM_PARAMETERS_INFO_ACTION.SETBLOCKSENDINPUTRESETS;
pub const SPI_GETUIEFFECTS = SYSTEM_PARAMETERS_INFO_ACTION.GETUIEFFECTS;
pub const SPI_SETUIEFFECTS = SYSTEM_PARAMETERS_INFO_ACTION.SETUIEFFECTS;
pub const SPI_GETDISABLEOVERLAPPEDCONTENT = SYSTEM_PARAMETERS_INFO_ACTION.GETDISABLEOVERLAPPEDCONTENT;
pub const SPI_SETDISABLEOVERLAPPEDCONTENT = SYSTEM_PARAMETERS_INFO_ACTION.SETDISABLEOVERLAPPEDCONTENT;
pub const SPI_GETCLIENTAREAANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.GETCLIENTAREAANIMATION;
pub const SPI_SETCLIENTAREAANIMATION = SYSTEM_PARAMETERS_INFO_ACTION.SETCLIENTAREAANIMATION;
pub const SPI_GETCLEARTYPE = SYSTEM_PARAMETERS_INFO_ACTION.GETCLEARTYPE;
pub const SPI_SETCLEARTYPE = SYSTEM_PARAMETERS_INFO_ACTION.SETCLEARTYPE;
pub const SPI_GETSPEECHRECOGNITION = SYSTEM_PARAMETERS_INFO_ACTION.GETSPEECHRECOGNITION;
pub const SPI_SETSPEECHRECOGNITION = SYSTEM_PARAMETERS_INFO_ACTION.SETSPEECHRECOGNITION;
pub const SPI_GETCARETBROWSING = SYSTEM_PARAMETERS_INFO_ACTION.GETCARETBROWSING;
pub const SPI_SETCARETBROWSING = SYSTEM_PARAMETERS_INFO_ACTION.SETCARETBROWSING;
pub const SPI_GETTHREADLOCALINPUTSETTINGS = SYSTEM_PARAMETERS_INFO_ACTION.GETTHREADLOCALINPUTSETTINGS;
pub const SPI_SETTHREADLOCALINPUTSETTINGS = SYSTEM_PARAMETERS_INFO_ACTION.SETTHREADLOCALINPUTSETTINGS;
pub const SPI_GETSYSTEMLANGUAGEBAR = SYSTEM_PARAMETERS_INFO_ACTION.GETSYSTEMLANGUAGEBAR;
pub const SPI_SETSYSTEMLANGUAGEBAR = SYSTEM_PARAMETERS_INFO_ACTION.SETSYSTEMLANGUAGEBAR;
pub const SPI_GETFOREGROUNDLOCKTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETFOREGROUNDLOCKTIMEOUT;
pub const SPI_SETFOREGROUNDLOCKTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETFOREGROUNDLOCKTIMEOUT;
pub const SPI_GETACTIVEWNDTRKTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETACTIVEWNDTRKTIMEOUT;
pub const SPI_SETACTIVEWNDTRKTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETACTIVEWNDTRKTIMEOUT;
pub const SPI_GETFOREGROUNDFLASHCOUNT = SYSTEM_PARAMETERS_INFO_ACTION.GETFOREGROUNDFLASHCOUNT;
pub const SPI_SETFOREGROUNDFLASHCOUNT = SYSTEM_PARAMETERS_INFO_ACTION.SETFOREGROUNDFLASHCOUNT;
pub const SPI_GETCARETWIDTH = SYSTEM_PARAMETERS_INFO_ACTION.GETCARETWIDTH;
pub const SPI_SETCARETWIDTH = SYSTEM_PARAMETERS_INFO_ACTION.SETCARETWIDTH;
pub const SPI_GETMOUSECLICKLOCKTIME = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSECLICKLOCKTIME;
pub const SPI_SETMOUSECLICKLOCKTIME = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSECLICKLOCKTIME;
pub const SPI_GETFONTSMOOTHINGTYPE = SYSTEM_PARAMETERS_INFO_ACTION.GETFONTSMOOTHINGTYPE;
pub const SPI_SETFONTSMOOTHINGTYPE = SYSTEM_PARAMETERS_INFO_ACTION.SETFONTSMOOTHINGTYPE;
pub const SPI_GETFONTSMOOTHINGCONTRAST = SYSTEM_PARAMETERS_INFO_ACTION.GETFONTSMOOTHINGCONTRAST;
pub const SPI_SETFONTSMOOTHINGCONTRAST = SYSTEM_PARAMETERS_INFO_ACTION.SETFONTSMOOTHINGCONTRAST;
pub const SPI_GETFOCUSBORDERWIDTH = SYSTEM_PARAMETERS_INFO_ACTION.GETFOCUSBORDERWIDTH;
pub const SPI_SETFOCUSBORDERWIDTH = SYSTEM_PARAMETERS_INFO_ACTION.SETFOCUSBORDERWIDTH;
pub const SPI_GETFOCUSBORDERHEIGHT = SYSTEM_PARAMETERS_INFO_ACTION.GETFOCUSBORDERHEIGHT;
pub const SPI_SETFOCUSBORDERHEIGHT = SYSTEM_PARAMETERS_INFO_ACTION.SETFOCUSBORDERHEIGHT;
pub const SPI_GETFONTSMOOTHINGORIENTATION = SYSTEM_PARAMETERS_INFO_ACTION.GETFONTSMOOTHINGORIENTATION;
pub const SPI_SETFONTSMOOTHINGORIENTATION = SYSTEM_PARAMETERS_INFO_ACTION.SETFONTSMOOTHINGORIENTATION;
pub const SPI_GETMINIMUMHITRADIUS = SYSTEM_PARAMETERS_INFO_ACTION.GETMINIMUMHITRADIUS;
pub const SPI_SETMINIMUMHITRADIUS = SYSTEM_PARAMETERS_INFO_ACTION.SETMINIMUMHITRADIUS;
pub const SPI_GETMESSAGEDURATION = SYSTEM_PARAMETERS_INFO_ACTION.GETMESSAGEDURATION;
pub const SPI_SETMESSAGEDURATION = SYSTEM_PARAMETERS_INFO_ACTION.SETMESSAGEDURATION;
pub const SPI_GETCONTACTVISUALIZATION = SYSTEM_PARAMETERS_INFO_ACTION.GETCONTACTVISUALIZATION;
pub const SPI_SETCONTACTVISUALIZATION = SYSTEM_PARAMETERS_INFO_ACTION.SETCONTACTVISUALIZATION;
pub const SPI_GETGESTUREVISUALIZATION = SYSTEM_PARAMETERS_INFO_ACTION.GETGESTUREVISUALIZATION;
pub const SPI_SETGESTUREVISUALIZATION = SYSTEM_PARAMETERS_INFO_ACTION.SETGESTUREVISUALIZATION;
pub const SPI_GETMOUSEWHEELROUTING = SYSTEM_PARAMETERS_INFO_ACTION.GETMOUSEWHEELROUTING;
pub const SPI_SETMOUSEWHEELROUTING = SYSTEM_PARAMETERS_INFO_ACTION.SETMOUSEWHEELROUTING;
pub const SPI_GETPENVISUALIZATION = SYSTEM_PARAMETERS_INFO_ACTION.GETPENVISUALIZATION;
pub const SPI_SETPENVISUALIZATION = SYSTEM_PARAMETERS_INFO_ACTION.SETPENVISUALIZATION;
pub const SPI_GETPENARBITRATIONTYPE = SYSTEM_PARAMETERS_INFO_ACTION.GETPENARBITRATIONTYPE;
pub const SPI_SETPENARBITRATIONTYPE = SYSTEM_PARAMETERS_INFO_ACTION.SETPENARBITRATIONTYPE;
pub const SPI_GETCARETTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.GETCARETTIMEOUT;
pub const SPI_SETCARETTIMEOUT = SYSTEM_PARAMETERS_INFO_ACTION.SETCARETTIMEOUT;
pub const SPI_GETHANDEDNESS = SYSTEM_PARAMETERS_INFO_ACTION.GETHANDEDNESS;
pub const SPI_SETHANDEDNESS = SYSTEM_PARAMETERS_INFO_ACTION.SETHANDEDNESS;

pub const TRACK_POPUP_MENU_FLAGS = enum(u32) {
    LEFTBUTTON = 0,
    RIGHTBUTTON = 2,
    // LEFTALIGN = 0, this enum value conflicts with LEFTBUTTON
    CENTERALIGN = 4,
    RIGHTALIGN = 8,
    // TOPALIGN = 0, this enum value conflicts with LEFTBUTTON
    VCENTERALIGN = 16,
    BOTTOMALIGN = 32,
    // HORIZONTAL = 0, this enum value conflicts with LEFTBUTTON
    VERTICAL = 64,
    NONOTIFY = 128,
    RETURNCMD = 256,
    RECURSE = 1,
    HORPOSANIMATION = 1024,
    HORNEGANIMATION = 2048,
    VERPOSANIMATION = 4096,
    VERNEGANIMATION = 8192,
    NOANIMATION = 16384,
    LAYOUTRTL = 32768,
    WORKAREA = 65536,
    _,
    pub fn initFlags(o: struct {
        LEFTBUTTON: u1 = 0,
        RIGHTBUTTON: u1 = 0,
        CENTERALIGN: u1 = 0,
        RIGHTALIGN: u1 = 0,
        VCENTERALIGN: u1 = 0,
        BOTTOMALIGN: u1 = 0,
        VERTICAL: u1 = 0,
        NONOTIFY: u1 = 0,
        RETURNCMD: u1 = 0,
        RECURSE: u1 = 0,
        HORPOSANIMATION: u1 = 0,
        HORNEGANIMATION: u1 = 0,
        VERPOSANIMATION: u1 = 0,
        VERNEGANIMATION: u1 = 0,
        NOANIMATION: u1 = 0,
        LAYOUTRTL: u1 = 0,
        WORKAREA: u1 = 0,
    }) TRACK_POPUP_MENU_FLAGS {
        return @as(TRACK_POPUP_MENU_FLAGS, @enumFromInt((if (o.LEFTBUTTON == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.LEFTBUTTON) else 0) | (if (o.RIGHTBUTTON == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.RIGHTBUTTON) else 0) | (if (o.CENTERALIGN == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.CENTERALIGN) else 0) | (if (o.RIGHTALIGN == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.RIGHTALIGN) else 0) | (if (o.VCENTERALIGN == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.VCENTERALIGN) else 0) | (if (o.BOTTOMALIGN == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.BOTTOMALIGN) else 0) | (if (o.VERTICAL == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.VERTICAL) else 0) | (if (o.NONOTIFY == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.NONOTIFY) else 0) | (if (o.RETURNCMD == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.RETURNCMD) else 0) | (if (o.RECURSE == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.RECURSE) else 0) | (if (o.HORPOSANIMATION == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.HORPOSANIMATION) else 0) | (if (o.HORNEGANIMATION == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.HORNEGANIMATION) else 0) | (if (o.VERPOSANIMATION == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.VERPOSANIMATION) else 0) | (if (o.VERNEGANIMATION == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.VERNEGANIMATION) else 0) | (if (o.NOANIMATION == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.NOANIMATION) else 0) | (if (o.LAYOUTRTL == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.LAYOUTRTL) else 0) | (if (o.WORKAREA == 1) @intFromEnum(TRACK_POPUP_MENU_FLAGS.WORKAREA) else 0)));
    }
};
pub const TPM_LEFTBUTTON = TRACK_POPUP_MENU_FLAGS.LEFTBUTTON;
pub const TPM_RIGHTBUTTON = TRACK_POPUP_MENU_FLAGS.RIGHTBUTTON;
pub const TPM_LEFTALIGN = TRACK_POPUP_MENU_FLAGS.LEFTBUTTON;
pub const TPM_CENTERALIGN = TRACK_POPUP_MENU_FLAGS.CENTERALIGN;
pub const TPM_RIGHTALIGN = TRACK_POPUP_MENU_FLAGS.RIGHTALIGN;
pub const TPM_TOPALIGN = TRACK_POPUP_MENU_FLAGS.LEFTBUTTON;
pub const TPM_VCENTERALIGN = TRACK_POPUP_MENU_FLAGS.VCENTERALIGN;
pub const TPM_BOTTOMALIGN = TRACK_POPUP_MENU_FLAGS.BOTTOMALIGN;
pub const TPM_HORIZONTAL = TRACK_POPUP_MENU_FLAGS.LEFTBUTTON;
pub const TPM_VERTICAL = TRACK_POPUP_MENU_FLAGS.VERTICAL;
pub const TPM_NONOTIFY = TRACK_POPUP_MENU_FLAGS.NONOTIFY;
pub const TPM_RETURNCMD = TRACK_POPUP_MENU_FLAGS.RETURNCMD;
pub const TPM_RECURSE = TRACK_POPUP_MENU_FLAGS.RECURSE;
pub const TPM_HORPOSANIMATION = TRACK_POPUP_MENU_FLAGS.HORPOSANIMATION;
pub const TPM_HORNEGANIMATION = TRACK_POPUP_MENU_FLAGS.HORNEGANIMATION;
pub const TPM_VERPOSANIMATION = TRACK_POPUP_MENU_FLAGS.VERPOSANIMATION;
pub const TPM_VERNEGANIMATION = TRACK_POPUP_MENU_FLAGS.VERNEGANIMATION;
pub const TPM_NOANIMATION = TRACK_POPUP_MENU_FLAGS.NOANIMATION;
pub const TPM_LAYOUTRTL = TRACK_POPUP_MENU_FLAGS.LAYOUTRTL;
pub const TPM_WORKAREA = TRACK_POPUP_MENU_FLAGS.WORKAREA;

pub const WINDOW_EX_STYLE = enum(u32) {
    DLGMODALFRAME = 1,
    NOPARENTNOTIFY = 4,
    TOPMOST = 8,
    ACCEPTFILES = 16,
    TRANSPARENT = 32,
    MDICHILD = 64,
    TOOLWINDOW = 128,
    WINDOWEDGE = 256,
    CLIENTEDGE = 512,
    CONTEXTHELP = 1024,
    RIGHT = 4096,
    LEFT = 0,
    RTLREADING = 8192,
    // LTRREADING = 0, this enum value conflicts with LEFT
    LEFTSCROLLBAR = 16384,
    // RIGHTSCROLLBAR = 0, this enum value conflicts with LEFT
    CONTROLPARENT = 65536,
    STATICEDGE = 131072,
    APPWINDOW = 262144,
    OVERLAPPEDWINDOW = 768,
    PALETTEWINDOW = 392,
    LAYERED = 524288,
    NOINHERITLAYOUT = 1048576,
    NOREDIRECTIONBITMAP = 2097152,
    LAYOUTRTL = 4194304,
    COMPOSITED = 33554432,
    NOACTIVATE = 134217728,
    _,
    pub fn initFlags(o: struct {
        DLGMODALFRAME: u1 = 0,
        NOPARENTNOTIFY: u1 = 0,
        TOPMOST: u1 = 0,
        ACCEPTFILES: u1 = 0,
        TRANSPARENT: u1 = 0,
        MDICHILD: u1 = 0,
        TOOLWINDOW: u1 = 0,
        WINDOWEDGE: u1 = 0,
        CLIENTEDGE: u1 = 0,
        CONTEXTHELP: u1 = 0,
        RIGHT: u1 = 0,
        LEFT: u1 = 0,
        RTLREADING: u1 = 0,
        LEFTSCROLLBAR: u1 = 0,
        CONTROLPARENT: u1 = 0,
        STATICEDGE: u1 = 0,
        APPWINDOW: u1 = 0,
        OVERLAPPEDWINDOW: u1 = 0,
        PALETTEWINDOW: u1 = 0,
        LAYERED: u1 = 0,
        NOINHERITLAYOUT: u1 = 0,
        NOREDIRECTIONBITMAP: u1 = 0,
        LAYOUTRTL: u1 = 0,
        COMPOSITED: u1 = 0,
        NOACTIVATE: u1 = 0,
    }) WINDOW_EX_STYLE {
        return @as(WINDOW_EX_STYLE, @enumFromInt((if (o.DLGMODALFRAME == 1) @intFromEnum(WINDOW_EX_STYLE.DLGMODALFRAME) else 0) | (if (o.NOPARENTNOTIFY == 1) @intFromEnum(WINDOW_EX_STYLE.NOPARENTNOTIFY) else 0) | (if (o.TOPMOST == 1) @intFromEnum(WINDOW_EX_STYLE.TOPMOST) else 0) | (if (o.ACCEPTFILES == 1) @intFromEnum(WINDOW_EX_STYLE.ACCEPTFILES) else 0) | (if (o.TRANSPARENT == 1) @intFromEnum(WINDOW_EX_STYLE.TRANSPARENT) else 0) | (if (o.MDICHILD == 1) @intFromEnum(WINDOW_EX_STYLE.MDICHILD) else 0) | (if (o.TOOLWINDOW == 1) @intFromEnum(WINDOW_EX_STYLE.TOOLWINDOW) else 0) | (if (o.WINDOWEDGE == 1) @intFromEnum(WINDOW_EX_STYLE.WINDOWEDGE) else 0) | (if (o.CLIENTEDGE == 1) @intFromEnum(WINDOW_EX_STYLE.CLIENTEDGE) else 0) | (if (o.CONTEXTHELP == 1) @intFromEnum(WINDOW_EX_STYLE.CONTEXTHELP) else 0) | (if (o.RIGHT == 1) @intFromEnum(WINDOW_EX_STYLE.RIGHT) else 0) | (if (o.LEFT == 1) @intFromEnum(WINDOW_EX_STYLE.LEFT) else 0) | (if (o.RTLREADING == 1) @intFromEnum(WINDOW_EX_STYLE.RTLREADING) else 0) | (if (o.LEFTSCROLLBAR == 1) @intFromEnum(WINDOW_EX_STYLE.LEFTSCROLLBAR) else 0) | (if (o.CONTROLPARENT == 1) @intFromEnum(WINDOW_EX_STYLE.CONTROLPARENT) else 0) | (if (o.STATICEDGE == 1) @intFromEnum(WINDOW_EX_STYLE.STATICEDGE) else 0) | (if (o.APPWINDOW == 1) @intFromEnum(WINDOW_EX_STYLE.APPWINDOW) else 0) | (if (o.OVERLAPPEDWINDOW == 1) @intFromEnum(WINDOW_EX_STYLE.OVERLAPPEDWINDOW) else 0) | (if (o.PALETTEWINDOW == 1) @intFromEnum(WINDOW_EX_STYLE.PALETTEWINDOW) else 0) | (if (o.LAYERED == 1) @intFromEnum(WINDOW_EX_STYLE.LAYERED) else 0) | (if (o.NOINHERITLAYOUT == 1) @intFromEnum(WINDOW_EX_STYLE.NOINHERITLAYOUT) else 0) | (if (o.NOREDIRECTIONBITMAP == 1) @intFromEnum(WINDOW_EX_STYLE.NOREDIRECTIONBITMAP) else 0) | (if (o.LAYOUTRTL == 1) @intFromEnum(WINDOW_EX_STYLE.LAYOUTRTL) else 0) | (if (o.COMPOSITED == 1) @intFromEnum(WINDOW_EX_STYLE.COMPOSITED) else 0) | (if (o.NOACTIVATE == 1) @intFromEnum(WINDOW_EX_STYLE.NOACTIVATE) else 0)));
    }
};
pub const WS_EX_DLGMODALFRAME = WINDOW_EX_STYLE.DLGMODALFRAME;
pub const WS_EX_NOPARENTNOTIFY = WINDOW_EX_STYLE.NOPARENTNOTIFY;
pub const WS_EX_TOPMOST = WINDOW_EX_STYLE.TOPMOST;
pub const WS_EX_ACCEPTFILES = WINDOW_EX_STYLE.ACCEPTFILES;
pub const WS_EX_TRANSPARENT = WINDOW_EX_STYLE.TRANSPARENT;
pub const WS_EX_MDICHILD = WINDOW_EX_STYLE.MDICHILD;
pub const WS_EX_TOOLWINDOW = WINDOW_EX_STYLE.TOOLWINDOW;
pub const WS_EX_WINDOWEDGE = WINDOW_EX_STYLE.WINDOWEDGE;
pub const WS_EX_CLIENTEDGE = WINDOW_EX_STYLE.CLIENTEDGE;
pub const WS_EX_CONTEXTHELP = WINDOW_EX_STYLE.CONTEXTHELP;
pub const WS_EX_RIGHT = WINDOW_EX_STYLE.RIGHT;
pub const WS_EX_LEFT = WINDOW_EX_STYLE.LEFT;
pub const WS_EX_RTLREADING = WINDOW_EX_STYLE.RTLREADING;
pub const WS_EX_LTRREADING = WINDOW_EX_STYLE.LEFT;
pub const WS_EX_LEFTSCROLLBAR = WINDOW_EX_STYLE.LEFTSCROLLBAR;
pub const WS_EX_RIGHTSCROLLBAR = WINDOW_EX_STYLE.LEFT;
pub const WS_EX_CONTROLPARENT = WINDOW_EX_STYLE.CONTROLPARENT;
pub const WS_EX_STATICEDGE = WINDOW_EX_STYLE.STATICEDGE;
pub const WS_EX_APPWINDOW = WINDOW_EX_STYLE.APPWINDOW;
pub const WS_EX_OVERLAPPEDWINDOW = WINDOW_EX_STYLE.OVERLAPPEDWINDOW;
pub const WS_EX_PALETTEWINDOW = WINDOW_EX_STYLE.PALETTEWINDOW;
pub const WS_EX_LAYERED = WINDOW_EX_STYLE.LAYERED;
pub const WS_EX_NOINHERITLAYOUT = WINDOW_EX_STYLE.NOINHERITLAYOUT;
pub const WS_EX_NOREDIRECTIONBITMAP = WINDOW_EX_STYLE.NOREDIRECTIONBITMAP;
pub const WS_EX_LAYOUTRTL = WINDOW_EX_STYLE.LAYOUTRTL;
pub const WS_EX_COMPOSITED = WINDOW_EX_STYLE.COMPOSITED;
pub const WS_EX_NOACTIVATE = WINDOW_EX_STYLE.NOACTIVATE;

pub const WINDOW_STYLE = enum(u32) {
    OVERLAPPED = 0,
    POPUP = 2147483648,
    CHILD = 1073741824,
    MINIMIZE = 536870912,
    VISIBLE = 268435456,
    DISABLED = 134217728,
    CLIPSIBLINGS = 67108864,
    CLIPCHILDREN = 33554432,
    MAXIMIZE = 16777216,
    CAPTION = 12582912,
    BORDER = 8388608,
    DLGFRAME = 4194304,
    VSCROLL = 2097152,
    HSCROLL = 1048576,
    SYSMENU = 524288,
    THICKFRAME = 262144,
    GROUP = 131072,
    TABSTOP = 65536,
    // MINIMIZEBOX = 131072, this enum value conflicts with GROUP
    // MAXIMIZEBOX = 65536, this enum value conflicts with TABSTOP
    // TILED = 0, this enum value conflicts with OVERLAPPED
    // ICONIC = 536870912, this enum value conflicts with MINIMIZE
    // SIZEBOX = 262144, this enum value conflicts with THICKFRAME
    TILEDWINDOW = 13565952,
    // OVERLAPPEDWINDOW = 13565952, this enum value conflicts with TILEDWINDOW
    POPUPWINDOW = 2156396544,
    // CHILDWINDOW = 1073741824, this enum value conflicts with CHILD
    ACTIVECAPTION = 1,
    _,
    pub fn initFlags(o: struct {
        OVERLAPPED: u1 = 0,
        POPUP: u1 = 0,
        CHILD: u1 = 0,
        MINIMIZE: u1 = 0,
        VISIBLE: u1 = 0,
        DISABLED: u1 = 0,
        CLIPSIBLINGS: u1 = 0,
        CLIPCHILDREN: u1 = 0,
        MAXIMIZE: u1 = 0,
        CAPTION: u1 = 0,
        BORDER: u1 = 0,
        DLGFRAME: u1 = 0,
        VSCROLL: u1 = 0,
        HSCROLL: u1 = 0,
        SYSMENU: u1 = 0,
        THICKFRAME: u1 = 0,
        GROUP: u1 = 0,
        TABSTOP: u1 = 0,
        TILEDWINDOW: u1 = 0,
        POPUPWINDOW: u1 = 0,
        ACTIVECAPTION: u1 = 0,
    }) WINDOW_STYLE {
        return @as(WINDOW_STYLE, @enumFromInt((if (o.OVERLAPPED == 1) @intFromEnum(WINDOW_STYLE.OVERLAPPED) else 0) | (if (o.POPUP == 1) @intFromEnum(WINDOW_STYLE.POPUP) else 0) | (if (o.CHILD == 1) @intFromEnum(WINDOW_STYLE.CHILD) else 0) | (if (o.MINIMIZE == 1) @intFromEnum(WINDOW_STYLE.MINIMIZE) else 0) | (if (o.VISIBLE == 1) @intFromEnum(WINDOW_STYLE.VISIBLE) else 0) | (if (o.DISABLED == 1) @intFromEnum(WINDOW_STYLE.DISABLED) else 0) | (if (o.CLIPSIBLINGS == 1) @intFromEnum(WINDOW_STYLE.CLIPSIBLINGS) else 0) | (if (o.CLIPCHILDREN == 1) @intFromEnum(WINDOW_STYLE.CLIPCHILDREN) else 0) | (if (o.MAXIMIZE == 1) @intFromEnum(WINDOW_STYLE.MAXIMIZE) else 0) | (if (o.CAPTION == 1) @intFromEnum(WINDOW_STYLE.CAPTION) else 0) | (if (o.BORDER == 1) @intFromEnum(WINDOW_STYLE.BORDER) else 0) | (if (o.DLGFRAME == 1) @intFromEnum(WINDOW_STYLE.DLGFRAME) else 0) | (if (o.VSCROLL == 1) @intFromEnum(WINDOW_STYLE.VSCROLL) else 0) | (if (o.HSCROLL == 1) @intFromEnum(WINDOW_STYLE.HSCROLL) else 0) | (if (o.SYSMENU == 1) @intFromEnum(WINDOW_STYLE.SYSMENU) else 0) | (if (o.THICKFRAME == 1) @intFromEnum(WINDOW_STYLE.THICKFRAME) else 0) | (if (o.GROUP == 1) @intFromEnum(WINDOW_STYLE.GROUP) else 0) | (if (o.TABSTOP == 1) @intFromEnum(WINDOW_STYLE.TABSTOP) else 0) | (if (o.TILEDWINDOW == 1) @intFromEnum(WINDOW_STYLE.TILEDWINDOW) else 0) | (if (o.POPUPWINDOW == 1) @intFromEnum(WINDOW_STYLE.POPUPWINDOW) else 0) | (if (o.ACTIVECAPTION == 1) @intFromEnum(WINDOW_STYLE.ACTIVECAPTION) else 0)));
    }
};
pub const WS_OVERLAPPED = WINDOW_STYLE.OVERLAPPED;
pub const WS_POPUP = WINDOW_STYLE.POPUP;
pub const WS_CHILD = WINDOW_STYLE.CHILD;
pub const WS_MINIMIZE = WINDOW_STYLE.MINIMIZE;
pub const WS_VISIBLE = WINDOW_STYLE.VISIBLE;
pub const WS_DISABLED = WINDOW_STYLE.DISABLED;
pub const WS_CLIPSIBLINGS = WINDOW_STYLE.CLIPSIBLINGS;
pub const WS_CLIPCHILDREN = WINDOW_STYLE.CLIPCHILDREN;
pub const WS_MAXIMIZE = WINDOW_STYLE.MAXIMIZE;
pub const WS_CAPTION = WINDOW_STYLE.CAPTION;
pub const WS_BORDER = WINDOW_STYLE.BORDER;
pub const WS_DLGFRAME = WINDOW_STYLE.DLGFRAME;
pub const WS_VSCROLL = WINDOW_STYLE.VSCROLL;
pub const WS_HSCROLL = WINDOW_STYLE.HSCROLL;
pub const WS_SYSMENU = WINDOW_STYLE.SYSMENU;
pub const WS_THICKFRAME = WINDOW_STYLE.THICKFRAME;
pub const WS_GROUP = WINDOW_STYLE.GROUP;
pub const WS_TABSTOP = WINDOW_STYLE.TABSTOP;
pub const WS_MINIMIZEBOX = WINDOW_STYLE.GROUP;
pub const WS_MAXIMIZEBOX = WINDOW_STYLE.TABSTOP;
pub const WS_TILED = WINDOW_STYLE.OVERLAPPED;
pub const WS_ICONIC = WINDOW_STYLE.MINIMIZE;
pub const WS_SIZEBOX = WINDOW_STYLE.THICKFRAME;
pub const WS_TILEDWINDOW = WINDOW_STYLE.TILEDWINDOW;
pub const WS_OVERLAPPEDWINDOW = WINDOW_STYLE.TILEDWINDOW;
pub const WS_POPUPWINDOW = WINDOW_STYLE.POPUPWINDOW;
pub const WS_CHILDWINDOW = WINDOW_STYLE.CHILD;
pub const WS_ACTIVECAPTION = WINDOW_STYLE.ACTIVECAPTION;

pub const OBJECT_IDENTIFIER = enum(i32) {
    WINDOW = 0,
    SYSMENU = -1,
    TITLEBAR = -2,
    MENU = -3,
    CLIENT = -4,
    VSCROLL = -5,
    HSCROLL = -6,
    SIZEGRIP = -7,
    CARET = -8,
    CURSOR = -9,
    ALERT = -10,
    SOUND = -11,
    QUERYCLASSNAMEIDX = -12,
    NATIVEOM = -16,
};
pub const OBJID_WINDOW = OBJECT_IDENTIFIER.WINDOW;
pub const OBJID_SYSMENU = OBJECT_IDENTIFIER.SYSMENU;
pub const OBJID_TITLEBAR = OBJECT_IDENTIFIER.TITLEBAR;
pub const OBJID_MENU = OBJECT_IDENTIFIER.MENU;
pub const OBJID_CLIENT = OBJECT_IDENTIFIER.CLIENT;
pub const OBJID_VSCROLL = OBJECT_IDENTIFIER.VSCROLL;
pub const OBJID_HSCROLL = OBJECT_IDENTIFIER.HSCROLL;
pub const OBJID_SIZEGRIP = OBJECT_IDENTIFIER.SIZEGRIP;
pub const OBJID_CARET = OBJECT_IDENTIFIER.CARET;
pub const OBJID_CURSOR = OBJECT_IDENTIFIER.CURSOR;
pub const OBJID_ALERT = OBJECT_IDENTIFIER.ALERT;
pub const OBJID_SOUND = OBJECT_IDENTIFIER.SOUND;
pub const OBJID_QUERYCLASSNAMEIDX = OBJECT_IDENTIFIER.QUERYCLASSNAMEIDX;
pub const OBJID_NATIVEOM = OBJECT_IDENTIFIER.NATIVEOM;

pub const MENU_ITEM_TYPE = enum(u32) {
    BITMAP = 4,
    MENUBARBREAK = 32,
    MENUBREAK = 64,
    OWNERDRAW = 256,
    RADIOCHECK = 512,
    RIGHTJUSTIFY = 16384,
    RIGHTORDER = 8192,
    SEPARATOR = 2048,
    STRING = 0,
    _,
    pub fn initFlags(o: struct {
        BITMAP: u1 = 0,
        MENUBARBREAK: u1 = 0,
        MENUBREAK: u1 = 0,
        OWNERDRAW: u1 = 0,
        RADIOCHECK: u1 = 0,
        RIGHTJUSTIFY: u1 = 0,
        RIGHTORDER: u1 = 0,
        SEPARATOR: u1 = 0,
        STRING: u1 = 0,
    }) MENU_ITEM_TYPE {
        return @as(MENU_ITEM_TYPE, @enumFromInt((if (o.BITMAP == 1) @intFromEnum(MENU_ITEM_TYPE.BITMAP) else 0) | (if (o.MENUBARBREAK == 1) @intFromEnum(MENU_ITEM_TYPE.MENUBARBREAK) else 0) | (if (o.MENUBREAK == 1) @intFromEnum(MENU_ITEM_TYPE.MENUBREAK) else 0) | (if (o.OWNERDRAW == 1) @intFromEnum(MENU_ITEM_TYPE.OWNERDRAW) else 0) | (if (o.RADIOCHECK == 1) @intFromEnum(MENU_ITEM_TYPE.RADIOCHECK) else 0) | (if (o.RIGHTJUSTIFY == 1) @intFromEnum(MENU_ITEM_TYPE.RIGHTJUSTIFY) else 0) | (if (o.RIGHTORDER == 1) @intFromEnum(MENU_ITEM_TYPE.RIGHTORDER) else 0) | (if (o.SEPARATOR == 1) @intFromEnum(MENU_ITEM_TYPE.SEPARATOR) else 0) | (if (o.STRING == 1) @intFromEnum(MENU_ITEM_TYPE.STRING) else 0)));
    }
};
pub const MFT_BITMAP = MENU_ITEM_TYPE.BITMAP;
pub const MFT_MENUBARBREAK = MENU_ITEM_TYPE.MENUBARBREAK;
pub const MFT_MENUBREAK = MENU_ITEM_TYPE.MENUBREAK;
pub const MFT_OWNERDRAW = MENU_ITEM_TYPE.OWNERDRAW;
pub const MFT_RADIOCHECK = MENU_ITEM_TYPE.RADIOCHECK;
pub const MFT_RIGHTJUSTIFY = MENU_ITEM_TYPE.RIGHTJUSTIFY;
pub const MFT_RIGHTORDER = MENU_ITEM_TYPE.RIGHTORDER;
pub const MFT_SEPARATOR = MENU_ITEM_TYPE.SEPARATOR;
pub const MFT_STRING = MENU_ITEM_TYPE.STRING;

pub const MESSAGEBOX_RESULT = enum(i32) {
    OK = 1,
    CANCEL = 2,
    ABORT = 3,
    RETRY = 4,
    IGNORE = 5,
    YES = 6,
    NO = 7,
    CLOSE = 8,
    HELP = 9,
    TRYAGAIN = 10,
    CONTINUE = 11,
    ASYNC = 32001,
    TIMEOUT = 32000,
};
pub const IDOK = MESSAGEBOX_RESULT.OK;
pub const IDCANCEL = MESSAGEBOX_RESULT.CANCEL;
pub const IDABORT = MESSAGEBOX_RESULT.ABORT;
pub const IDRETRY = MESSAGEBOX_RESULT.RETRY;
pub const IDIGNORE = MESSAGEBOX_RESULT.IGNORE;
pub const IDYES = MESSAGEBOX_RESULT.YES;
pub const IDNO = MESSAGEBOX_RESULT.NO;
pub const IDCLOSE = MESSAGEBOX_RESULT.CLOSE;
pub const IDHELP = MESSAGEBOX_RESULT.HELP;
pub const IDTRYAGAIN = MESSAGEBOX_RESULT.TRYAGAIN;
pub const IDCONTINUE = MESSAGEBOX_RESULT.CONTINUE;
pub const IDASYNC = MESSAGEBOX_RESULT.ASYNC;
pub const IDTIMEOUT = MESSAGEBOX_RESULT.TIMEOUT;

pub const MENU_ITEM_STATE = enum(u32) {
    GRAYED = 3,
    // DISABLED = 3, this enum value conflicts with GRAYED
    CHECKED = 8,
    HILITE = 128,
    ENABLED = 0,
    // UNCHECKED = 0, this enum value conflicts with ENABLED
    // UNHILITE = 0, this enum value conflicts with ENABLED
    DEFAULT = 4096,
    _,
    pub fn initFlags(o: struct {
        GRAYED: u1 = 0,
        CHECKED: u1 = 0,
        HILITE: u1 = 0,
        ENABLED: u1 = 0,
        DEFAULT: u1 = 0,
    }) MENU_ITEM_STATE {
        return @as(MENU_ITEM_STATE, @enumFromInt((if (o.GRAYED == 1) @intFromEnum(MENU_ITEM_STATE.GRAYED) else 0) | (if (o.CHECKED == 1) @intFromEnum(MENU_ITEM_STATE.CHECKED) else 0) | (if (o.HILITE == 1) @intFromEnum(MENU_ITEM_STATE.HILITE) else 0) | (if (o.ENABLED == 1) @intFromEnum(MENU_ITEM_STATE.ENABLED) else 0) | (if (o.DEFAULT == 1) @intFromEnum(MENU_ITEM_STATE.DEFAULT) else 0)));
    }
};
pub const MFS_GRAYED = MENU_ITEM_STATE.GRAYED;
pub const MFS_DISABLED = MENU_ITEM_STATE.GRAYED;
pub const MFS_CHECKED = MENU_ITEM_STATE.CHECKED;
pub const MFS_HILITE = MENU_ITEM_STATE.HILITE;
pub const MFS_ENABLED = MENU_ITEM_STATE.ENABLED;
pub const MFS_UNCHECKED = MENU_ITEM_STATE.ENABLED;
pub const MFS_UNHILITE = MENU_ITEM_STATE.ENABLED;
pub const MFS_DEFAULT = MENU_ITEM_STATE.DEFAULT;

pub const SCROLLBAR_CONSTANTS = enum(u32) {
    CTL = 2,
    HORZ = 0,
    VERT = 1,
    BOTH = 3,
    _,
    pub fn initFlags(o: struct {
        CTL: u1 = 0,
        HORZ: u1 = 0,
        VERT: u1 = 0,
        BOTH: u1 = 0,
    }) SCROLLBAR_CONSTANTS {
        return @as(SCROLLBAR_CONSTANTS, @enumFromInt((if (o.CTL == 1) @intFromEnum(SCROLLBAR_CONSTANTS.CTL) else 0) | (if (o.HORZ == 1) @intFromEnum(SCROLLBAR_CONSTANTS.HORZ) else 0) | (if (o.VERT == 1) @intFromEnum(SCROLLBAR_CONSTANTS.VERT) else 0) | (if (o.BOTH == 1) @intFromEnum(SCROLLBAR_CONSTANTS.BOTH) else 0)));
    }
};
pub const SB_CTL = SCROLLBAR_CONSTANTS.CTL;
pub const SB_HORZ = SCROLLBAR_CONSTANTS.HORZ;
pub const SB_VERT = SCROLLBAR_CONSTANTS.VERT;
pub const SB_BOTH = SCROLLBAR_CONSTANTS.BOTH;

pub const GET_CLASS_LONG_INDEX = enum(i32) {
    W_ATOM = -32,
    L_CBCLSEXTRA = -20,
    L_CBWNDEXTRA = -18,
    L_HBRBACKGROUND = -10,
    L_HCURSOR = -12,
    L_HICON = -14,
    L_HICONSM = -34,
    L_HMODULE = -16,
    L_MENUNAME = -8,
    L_STYLE = -26,
    L_WNDPROC = -24,
    // LP_HBRBACKGROUND = -10, this enum value conflicts with L_HBRBACKGROUND
    // LP_HCURSOR = -12, this enum value conflicts with L_HCURSOR
    // LP_HICON = -14, this enum value conflicts with L_HICON
    // LP_HICONSM = -34, this enum value conflicts with L_HICONSM
    // LP_HMODULE = -16, this enum value conflicts with L_HMODULE
    // LP_MENUNAME = -8, this enum value conflicts with L_MENUNAME
    // LP_WNDPROC = -24, this enum value conflicts with L_WNDPROC
};
pub const GCW_ATOM = GET_CLASS_LONG_INDEX.W_ATOM;
pub const GCL_CBCLSEXTRA = GET_CLASS_LONG_INDEX.L_CBCLSEXTRA;
pub const GCL_CBWNDEXTRA = GET_CLASS_LONG_INDEX.L_CBWNDEXTRA;
pub const GCL_HBRBACKGROUND = GET_CLASS_LONG_INDEX.L_HBRBACKGROUND;
pub const GCL_HCURSOR = GET_CLASS_LONG_INDEX.L_HCURSOR;
pub const GCL_HICON = GET_CLASS_LONG_INDEX.L_HICON;
pub const GCL_HICONSM = GET_CLASS_LONG_INDEX.L_HICONSM;
pub const GCL_HMODULE = GET_CLASS_LONG_INDEX.L_HMODULE;
pub const GCL_MENUNAME = GET_CLASS_LONG_INDEX.L_MENUNAME;
pub const GCL_STYLE = GET_CLASS_LONG_INDEX.L_STYLE;
pub const GCL_WNDPROC = GET_CLASS_LONG_INDEX.L_WNDPROC;
pub const GCLP_HBRBACKGROUND = GET_CLASS_LONG_INDEX.L_HBRBACKGROUND;
pub const GCLP_HCURSOR = GET_CLASS_LONG_INDEX.L_HCURSOR;
pub const GCLP_HICON = GET_CLASS_LONG_INDEX.L_HICON;
pub const GCLP_HICONSM = GET_CLASS_LONG_INDEX.L_HICONSM;
pub const GCLP_HMODULE = GET_CLASS_LONG_INDEX.L_HMODULE;
pub const GCLP_MENUNAME = GET_CLASS_LONG_INDEX.L_MENUNAME;
pub const GCLP_WNDPROC = GET_CLASS_LONG_INDEX.L_WNDPROC;

pub const UPDATE_LAYERED_WINDOW_FLAGS = enum(u32) {
    ALPHA = 2,
    COLORKEY = 1,
    OPAQUE = 4,
    EX_NORESIZE = 8,
};
pub const ULW_ALPHA = UPDATE_LAYERED_WINDOW_FLAGS.ALPHA;
pub const ULW_COLORKEY = UPDATE_LAYERED_WINDOW_FLAGS.COLORKEY;
pub const ULW_OPAQUE = UPDATE_LAYERED_WINDOW_FLAGS.OPAQUE;
pub const ULW_EX_NORESIZE = UPDATE_LAYERED_WINDOW_FLAGS.EX_NORESIZE;

pub const WINDOW_LONG_PTR_INDEX = enum(i32) {
    _EXSTYLE = -20,
    P_HINSTANCE = -6,
    P_HWNDPARENT = -8,
    P_ID = -12,
    _STYLE = -16,
    P_USERDATA = -21,
    P_WNDPROC = -4,
    // _HINSTANCE = -6, this enum value conflicts with P_HINSTANCE
    // _ID = -12, this enum value conflicts with P_ID
    // _USERDATA = -21, this enum value conflicts with P_USERDATA
    // _WNDPROC = -4, this enum value conflicts with P_WNDPROC
    // _HWNDPARENT = -8, this enum value conflicts with P_HWNDPARENT
    _,
};
pub const GWL_EXSTYLE = WINDOW_LONG_PTR_INDEX._EXSTYLE;
pub const GWLP_HINSTANCE = WINDOW_LONG_PTR_INDEX.P_HINSTANCE;
pub const GWLP_HWNDPARENT = WINDOW_LONG_PTR_INDEX.P_HWNDPARENT;
pub const GWLP_ID = WINDOW_LONG_PTR_INDEX.P_ID;
pub const GWL_STYLE = WINDOW_LONG_PTR_INDEX._STYLE;
pub const GWLP_USERDATA = WINDOW_LONG_PTR_INDEX.P_USERDATA;
pub const GWLP_WNDPROC = WINDOW_LONG_PTR_INDEX.P_WNDPROC;
pub const GWL_HINSTANCE = WINDOW_LONG_PTR_INDEX.P_HINSTANCE;
pub const GWL_ID = WINDOW_LONG_PTR_INDEX.P_ID;
pub const GWL_USERDATA = WINDOW_LONG_PTR_INDEX.P_USERDATA;
pub const GWL_WNDPROC = WINDOW_LONG_PTR_INDEX.P_WNDPROC;
pub const GWL_HWNDPARENT = WINDOW_LONG_PTR_INDEX.P_HWNDPARENT;

pub const ANIMATE_WINDOW_FLAGS = enum(u32) {
    ACTIVATE = 131072,
    BLEND = 524288,
    CENTER = 16,
    HIDE = 65536,
    HOR_POSITIVE = 1,
    HOR_NEGATIVE = 2,
    SLIDE = 262144,
    VER_POSITIVE = 4,
    VER_NEGATIVE = 8,
    _,
    pub fn initFlags(o: struct {
        ACTIVATE: u1 = 0,
        BLEND: u1 = 0,
        CENTER: u1 = 0,
        HIDE: u1 = 0,
        HOR_POSITIVE: u1 = 0,
        HOR_NEGATIVE: u1 = 0,
        SLIDE: u1 = 0,
        VER_POSITIVE: u1 = 0,
        VER_NEGATIVE: u1 = 0,
    }) ANIMATE_WINDOW_FLAGS {
        return @as(ANIMATE_WINDOW_FLAGS, @enumFromInt((if (o.ACTIVATE == 1) @intFromEnum(ANIMATE_WINDOW_FLAGS.ACTIVATE) else 0) | (if (o.BLEND == 1) @intFromEnum(ANIMATE_WINDOW_FLAGS.BLEND) else 0) | (if (o.CENTER == 1) @intFromEnum(ANIMATE_WINDOW_FLAGS.CENTER) else 0) | (if (o.HIDE == 1) @intFromEnum(ANIMATE_WINDOW_FLAGS.HIDE) else 0) | (if (o.HOR_POSITIVE == 1) @intFromEnum(ANIMATE_WINDOW_FLAGS.HOR_POSITIVE) else 0) | (if (o.HOR_NEGATIVE == 1) @intFromEnum(ANIMATE_WINDOW_FLAGS.HOR_NEGATIVE) else 0) | (if (o.SLIDE == 1) @intFromEnum(ANIMATE_WINDOW_FLAGS.SLIDE) else 0) | (if (o.VER_POSITIVE == 1) @intFromEnum(ANIMATE_WINDOW_FLAGS.VER_POSITIVE) else 0) | (if (o.VER_NEGATIVE == 1) @intFromEnum(ANIMATE_WINDOW_FLAGS.VER_NEGATIVE) else 0)));
    }
};
pub const AW_ACTIVATE = ANIMATE_WINDOW_FLAGS.ACTIVATE;
pub const AW_BLEND = ANIMATE_WINDOW_FLAGS.BLEND;
pub const AW_CENTER = ANIMATE_WINDOW_FLAGS.CENTER;
pub const AW_HIDE = ANIMATE_WINDOW_FLAGS.HIDE;
pub const AW_HOR_POSITIVE = ANIMATE_WINDOW_FLAGS.HOR_POSITIVE;
pub const AW_HOR_NEGATIVE = ANIMATE_WINDOW_FLAGS.HOR_NEGATIVE;
pub const AW_SLIDE = ANIMATE_WINDOW_FLAGS.SLIDE;
pub const AW_VER_POSITIVE = ANIMATE_WINDOW_FLAGS.VER_POSITIVE;
pub const AW_VER_NEGATIVE = ANIMATE_WINDOW_FLAGS.VER_NEGATIVE;

pub const CHANGE_WINDOW_MESSAGE_FILTER_FLAGS = enum(u32) {
    ADD = 1,
    REMOVE = 2,
};
pub const MSGFLT_ADD = CHANGE_WINDOW_MESSAGE_FILTER_FLAGS.ADD;
pub const MSGFLT_REMOVE = CHANGE_WINDOW_MESSAGE_FILTER_FLAGS.REMOVE;

pub const GDI_IMAGE_TYPE = enum(u32) {
    BITMAP = 0,
    CURSOR = 2,
    ICON = 1,
};
pub const IMAGE_BITMAP = GDI_IMAGE_TYPE.BITMAP;
pub const IMAGE_CURSOR = GDI_IMAGE_TYPE.CURSOR;
pub const IMAGE_ICON = GDI_IMAGE_TYPE.ICON;

pub const WINDOWS_HOOK_ID = enum(i32) {
    CALLWNDPROC = 4,
    CALLWNDPROCRET = 12,
    CBT = 5,
    DEBUG = 9,
    FOREGROUNDIDLE = 11,
    GETMESSAGE = 3,
    JOURNALPLAYBACK = 1,
    JOURNALRECORD = 0,
    KEYBOARD = 2,
    KEYBOARD_LL = 13,
    MOUSE = 7,
    MOUSE_LL = 14,
    MSGFILTER = -1,
    SHELL = 10,
    SYSMSGFILTER = 6,
};
pub const WH_CALLWNDPROC = WINDOWS_HOOK_ID.CALLWNDPROC;
pub const WH_CALLWNDPROCRET = WINDOWS_HOOK_ID.CALLWNDPROCRET;
pub const WH_CBT = WINDOWS_HOOK_ID.CBT;
pub const WH_DEBUG = WINDOWS_HOOK_ID.DEBUG;
pub const WH_FOREGROUNDIDLE = WINDOWS_HOOK_ID.FOREGROUNDIDLE;
pub const WH_GETMESSAGE = WINDOWS_HOOK_ID.GETMESSAGE;
pub const WH_JOURNALPLAYBACK = WINDOWS_HOOK_ID.JOURNALPLAYBACK;
pub const WH_JOURNALRECORD = WINDOWS_HOOK_ID.JOURNALRECORD;
pub const WH_KEYBOARD = WINDOWS_HOOK_ID.KEYBOARD;
pub const WH_KEYBOARD_LL = WINDOWS_HOOK_ID.KEYBOARD_LL;
pub const WH_MOUSE = WINDOWS_HOOK_ID.MOUSE;
pub const WH_MOUSE_LL = WINDOWS_HOOK_ID.MOUSE_LL;
pub const WH_MSGFILTER = WINDOWS_HOOK_ID.MSGFILTER;
pub const WH_SHELL = WINDOWS_HOOK_ID.SHELL;
pub const WH_SYSMSGFILTER = WINDOWS_HOOK_ID.SYSMSGFILTER;

pub const IMAGE_FLAGS = enum(u32) {
    CREATEDIBSECTION = 8192,
    DEFAULTCOLOR = 0,
    DEFAULTSIZE = 64,
    LOADFROMFILE = 16,
    LOADMAP3DCOLORS = 4096,
    LOADTRANSPARENT = 32,
    MONOCHROME = 1,
    SHARED = 32768,
    VGACOLOR = 128,
    COPYDELETEORG = 8,
    COPYFROMRESOURCE = 16384,
    COPYRETURNORG = 4,
    _,
    pub fn initFlags(o: struct {
        CREATEDIBSECTION: u1 = 0,
        DEFAULTCOLOR: u1 = 0,
        DEFAULTSIZE: u1 = 0,
        LOADFROMFILE: u1 = 0,
        LOADMAP3DCOLORS: u1 = 0,
        LOADTRANSPARENT: u1 = 0,
        MONOCHROME: u1 = 0,
        SHARED: u1 = 0,
        VGACOLOR: u1 = 0,
        COPYDELETEORG: u1 = 0,
        COPYFROMRESOURCE: u1 = 0,
        COPYRETURNORG: u1 = 0,
    }) IMAGE_FLAGS {
        return @as(IMAGE_FLAGS, @enumFromInt((if (o.CREATEDIBSECTION == 1) @intFromEnum(IMAGE_FLAGS.CREATEDIBSECTION) else 0) | (if (o.DEFAULTCOLOR == 1) @intFromEnum(IMAGE_FLAGS.DEFAULTCOLOR) else 0) | (if (o.DEFAULTSIZE == 1) @intFromEnum(IMAGE_FLAGS.DEFAULTSIZE) else 0) | (if (o.LOADFROMFILE == 1) @intFromEnum(IMAGE_FLAGS.LOADFROMFILE) else 0) | (if (o.LOADMAP3DCOLORS == 1) @intFromEnum(IMAGE_FLAGS.LOADMAP3DCOLORS) else 0) | (if (o.LOADTRANSPARENT == 1) @intFromEnum(IMAGE_FLAGS.LOADTRANSPARENT) else 0) | (if (o.MONOCHROME == 1) @intFromEnum(IMAGE_FLAGS.MONOCHROME) else 0) | (if (o.SHARED == 1) @intFromEnum(IMAGE_FLAGS.SHARED) else 0) | (if (o.VGACOLOR == 1) @intFromEnum(IMAGE_FLAGS.VGACOLOR) else 0) | (if (o.COPYDELETEORG == 1) @intFromEnum(IMAGE_FLAGS.COPYDELETEORG) else 0) | (if (o.COPYFROMRESOURCE == 1) @intFromEnum(IMAGE_FLAGS.COPYFROMRESOURCE) else 0) | (if (o.COPYRETURNORG == 1) @intFromEnum(IMAGE_FLAGS.COPYRETURNORG) else 0)));
    }
};
pub const LR_CREATEDIBSECTION = IMAGE_FLAGS.CREATEDIBSECTION;
pub const LR_DEFAULTCOLOR = IMAGE_FLAGS.DEFAULTCOLOR;
pub const LR_DEFAULTSIZE = IMAGE_FLAGS.DEFAULTSIZE;
pub const LR_LOADFROMFILE = IMAGE_FLAGS.LOADFROMFILE;
pub const LR_LOADMAP3DCOLORS = IMAGE_FLAGS.LOADMAP3DCOLORS;
pub const LR_LOADTRANSPARENT = IMAGE_FLAGS.LOADTRANSPARENT;
pub const LR_MONOCHROME = IMAGE_FLAGS.MONOCHROME;
pub const LR_SHARED = IMAGE_FLAGS.SHARED;
pub const LR_VGACOLOR = IMAGE_FLAGS.VGACOLOR;
pub const LR_COPYDELETEORG = IMAGE_FLAGS.COPYDELETEORG;
pub const LR_COPYFROMRESOURCE = IMAGE_FLAGS.COPYFROMRESOURCE;
pub const LR_COPYRETURNORG = IMAGE_FLAGS.COPYRETURNORG;

pub const SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS = enum(u32) {
    UPDATEINIFILE = 1,
    SENDCHANGE = 2,
    // SENDWININICHANGE = 2, this enum value conflicts with SENDCHANGE
    _,
    pub fn initFlags(o: struct {
        UPDATEINIFILE: u1 = 0,
        SENDCHANGE: u1 = 0,
    }) SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS {
        return @as(SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS, @enumFromInt((if (o.UPDATEINIFILE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS.UPDATEINIFILE) else 0) | (if (o.SENDCHANGE == 1) @intFromEnum(SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS.SENDCHANGE) else 0)));
    }
};
pub const SPIF_UPDATEINIFILE = SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS.UPDATEINIFILE;
pub const SPIF_SENDCHANGE = SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS.SENDCHANGE;
pub const SPIF_SENDWININICHANGE = SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS.SENDCHANGE;

pub const SET_WINDOW_POS_FLAGS = enum(u32) {
    ASYNCWINDOWPOS = 16384,
    DEFERERASE = 8192,
    DRAWFRAME = 32,
    // FRAMECHANGED = 32, this enum value conflicts with DRAWFRAME
    HIDEWINDOW = 128,
    NOACTIVATE = 16,
    NOCOPYBITS = 256,
    NOMOVE = 2,
    NOOWNERZORDER = 512,
    NOREDRAW = 8,
    // NOREPOSITION = 512, this enum value conflicts with NOOWNERZORDER
    NOSENDCHANGING = 1024,
    NOSIZE = 1,
    NOZORDER = 4,
    SHOWWINDOW = 64,
    // _NOOWNERZORDER = 512, this enum value conflicts with NOOWNERZORDER
    _,
    pub fn initFlags(o: struct {
        ASYNCWINDOWPOS: u1 = 0,
        DEFERERASE: u1 = 0,
        DRAWFRAME: u1 = 0,
        HIDEWINDOW: u1 = 0,
        NOACTIVATE: u1 = 0,
        NOCOPYBITS: u1 = 0,
        NOMOVE: u1 = 0,
        NOOWNERZORDER: u1 = 0,
        NOREDRAW: u1 = 0,
        NOSENDCHANGING: u1 = 0,
        NOSIZE: u1 = 0,
        NOZORDER: u1 = 0,
        SHOWWINDOW: u1 = 0,
    }) SET_WINDOW_POS_FLAGS {
        return @as(SET_WINDOW_POS_FLAGS, @enumFromInt((if (o.ASYNCWINDOWPOS == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.ASYNCWINDOWPOS) else 0) | (if (o.DEFERERASE == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.DEFERERASE) else 0) | (if (o.DRAWFRAME == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.DRAWFRAME) else 0) | (if (o.HIDEWINDOW == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.HIDEWINDOW) else 0) | (if (o.NOACTIVATE == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.NOACTIVATE) else 0) | (if (o.NOCOPYBITS == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.NOCOPYBITS) else 0) | (if (o.NOMOVE == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.NOMOVE) else 0) | (if (o.NOOWNERZORDER == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.NOOWNERZORDER) else 0) | (if (o.NOREDRAW == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.NOREDRAW) else 0) | (if (o.NOSENDCHANGING == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.NOSENDCHANGING) else 0) | (if (o.NOSIZE == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.NOSIZE) else 0) | (if (o.NOZORDER == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.NOZORDER) else 0) | (if (o.SHOWWINDOW == 1) @intFromEnum(SET_WINDOW_POS_FLAGS.SHOWWINDOW) else 0)));
    }
};
pub const SWP_ASYNCWINDOWPOS = SET_WINDOW_POS_FLAGS.ASYNCWINDOWPOS;
pub const SWP_DEFERERASE = SET_WINDOW_POS_FLAGS.DEFERERASE;
pub const SWP_DRAWFRAME = SET_WINDOW_POS_FLAGS.DRAWFRAME;
pub const SWP_FRAMECHANGED = SET_WINDOW_POS_FLAGS.DRAWFRAME;
pub const SWP_HIDEWINDOW = SET_WINDOW_POS_FLAGS.HIDEWINDOW;
pub const SWP_NOACTIVATE = SET_WINDOW_POS_FLAGS.NOACTIVATE;
pub const SWP_NOCOPYBITS = SET_WINDOW_POS_FLAGS.NOCOPYBITS;
pub const SWP_NOMOVE = SET_WINDOW_POS_FLAGS.NOMOVE;
pub const SWP_NOOWNERZORDER = SET_WINDOW_POS_FLAGS.NOOWNERZORDER;
pub const SWP_NOREDRAW = SET_WINDOW_POS_FLAGS.NOREDRAW;
pub const SWP_NOREPOSITION = SET_WINDOW_POS_FLAGS.NOOWNERZORDER;
pub const SWP_NOSENDCHANGING = SET_WINDOW_POS_FLAGS.NOSENDCHANGING;
pub const SWP_NOSIZE = SET_WINDOW_POS_FLAGS.NOSIZE;
pub const SWP_NOZORDER = SET_WINDOW_POS_FLAGS.NOZORDER;
pub const SWP_SHOWWINDOW = SET_WINDOW_POS_FLAGS.SHOWWINDOW;
pub const SWP__NOOWNERZORDER = SET_WINDOW_POS_FLAGS.NOOWNERZORDER;

pub const MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS = enum(u32) {
    NONE = 0,
    ALERTABLE = 2,
    INPUTAVAILABLE = 4,
    WAITALL = 1,
    _,
    pub fn initFlags(o: struct {
        NONE: u1 = 0,
        ALERTABLE: u1 = 0,
        INPUTAVAILABLE: u1 = 0,
        WAITALL: u1 = 0,
    }) MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS {
        return @as(MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS, @enumFromInt((if (o.NONE == 1) @intFromEnum(MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS.NONE) else 0) | (if (o.ALERTABLE == 1) @intFromEnum(MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS.ALERTABLE) else 0) | (if (o.INPUTAVAILABLE == 1) @intFromEnum(MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS.INPUTAVAILABLE) else 0) | (if (o.WAITALL == 1) @intFromEnum(MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS.WAITALL) else 0)));
    }
};
pub const MWMO_NONE = MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS.NONE;
pub const MWMO_ALERTABLE = MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS.ALERTABLE;
pub const MWMO_INPUTAVAILABLE = MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS.INPUTAVAILABLE;
pub const MWMO_WAITALL = MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS.WAITALL;

pub const QUEUE_STATUS_FLAGS = enum(u32) {
    ALLEVENTS = 1215,
    ALLINPUT = 1279,
    ALLPOSTMESSAGE = 256,
    HOTKEY = 128,
    INPUT = 1031,
    KEY = 1,
    MOUSE = 6,
    MOUSEBUTTON = 4,
    MOUSEMOVE = 2,
    PAINT = 32,
    POSTMESSAGE = 8,
    RAWINPUT = 1024,
    SENDMESSAGE = 64,
    TIMER = 16,
    _,
    pub fn initFlags(o: struct {
        ALLEVENTS: u1 = 0,
        ALLINPUT: u1 = 0,
        ALLPOSTMESSAGE: u1 = 0,
        HOTKEY: u1 = 0,
        INPUT: u1 = 0,
        KEY: u1 = 0,
        MOUSE: u1 = 0,
        MOUSEBUTTON: u1 = 0,
        MOUSEMOVE: u1 = 0,
        PAINT: u1 = 0,
        POSTMESSAGE: u1 = 0,
        RAWINPUT: u1 = 0,
        SENDMESSAGE: u1 = 0,
        TIMER: u1 = 0,
    }) QUEUE_STATUS_FLAGS {
        return @as(QUEUE_STATUS_FLAGS, @enumFromInt((if (o.ALLEVENTS == 1) @intFromEnum(QUEUE_STATUS_FLAGS.ALLEVENTS) else 0) | (if (o.ALLINPUT == 1) @intFromEnum(QUEUE_STATUS_FLAGS.ALLINPUT) else 0) | (if (o.ALLPOSTMESSAGE == 1) @intFromEnum(QUEUE_STATUS_FLAGS.ALLPOSTMESSAGE) else 0) | (if (o.HOTKEY == 1) @intFromEnum(QUEUE_STATUS_FLAGS.HOTKEY) else 0) | (if (o.INPUT == 1) @intFromEnum(QUEUE_STATUS_FLAGS.INPUT) else 0) | (if (o.KEY == 1) @intFromEnum(QUEUE_STATUS_FLAGS.KEY) else 0) | (if (o.MOUSE == 1) @intFromEnum(QUEUE_STATUS_FLAGS.MOUSE) else 0) | (if (o.MOUSEBUTTON == 1) @intFromEnum(QUEUE_STATUS_FLAGS.MOUSEBUTTON) else 0) | (if (o.MOUSEMOVE == 1) @intFromEnum(QUEUE_STATUS_FLAGS.MOUSEMOVE) else 0) | (if (o.PAINT == 1) @intFromEnum(QUEUE_STATUS_FLAGS.PAINT) else 0) | (if (o.POSTMESSAGE == 1) @intFromEnum(QUEUE_STATUS_FLAGS.POSTMESSAGE) else 0) | (if (o.RAWINPUT == 1) @intFromEnum(QUEUE_STATUS_FLAGS.RAWINPUT) else 0) | (if (o.SENDMESSAGE == 1) @intFromEnum(QUEUE_STATUS_FLAGS.SENDMESSAGE) else 0) | (if (o.TIMER == 1) @intFromEnum(QUEUE_STATUS_FLAGS.TIMER) else 0)));
    }
};
pub const QS_ALLEVENTS = QUEUE_STATUS_FLAGS.ALLEVENTS;
pub const QS_ALLINPUT = QUEUE_STATUS_FLAGS.ALLINPUT;
pub const QS_ALLPOSTMESSAGE = QUEUE_STATUS_FLAGS.ALLPOSTMESSAGE;
pub const QS_HOTKEY = QUEUE_STATUS_FLAGS.HOTKEY;
pub const QS_INPUT = QUEUE_STATUS_FLAGS.INPUT;
pub const QS_KEY = QUEUE_STATUS_FLAGS.KEY;
pub const QS_MOUSE = QUEUE_STATUS_FLAGS.MOUSE;
pub const QS_MOUSEBUTTON = QUEUE_STATUS_FLAGS.MOUSEBUTTON;
pub const QS_MOUSEMOVE = QUEUE_STATUS_FLAGS.MOUSEMOVE;
pub const QS_PAINT = QUEUE_STATUS_FLAGS.PAINT;
pub const QS_POSTMESSAGE = QUEUE_STATUS_FLAGS.POSTMESSAGE;
pub const QS_RAWINPUT = QUEUE_STATUS_FLAGS.RAWINPUT;
pub const QS_SENDMESSAGE = QUEUE_STATUS_FLAGS.SENDMESSAGE;
pub const QS_TIMER = QUEUE_STATUS_FLAGS.TIMER;

pub const SYSTEM_CURSOR_ID = enum(u32) {
    APPSTARTING = 32650,
    NORMAL = 32512,
    CROSS = 32515,
    HAND = 32649,
    HELP = 32651,
    IBEAM = 32513,
    NO = 32648,
    SIZEALL = 32646,
    SIZENESW = 32643,
    SIZENS = 32645,
    SIZENWSE = 32642,
    SIZEWE = 32644,
    UP = 32516,
    WAIT = 32514,
};
pub const OCR_APPSTARTING = SYSTEM_CURSOR_ID.APPSTARTING;
pub const OCR_NORMAL = SYSTEM_CURSOR_ID.NORMAL;
pub const OCR_CROSS = SYSTEM_CURSOR_ID.CROSS;
pub const OCR_HAND = SYSTEM_CURSOR_ID.HAND;
pub const OCR_HELP = SYSTEM_CURSOR_ID.HELP;
pub const OCR_IBEAM = SYSTEM_CURSOR_ID.IBEAM;
pub const OCR_NO = SYSTEM_CURSOR_ID.NO;
pub const OCR_SIZEALL = SYSTEM_CURSOR_ID.SIZEALL;
pub const OCR_SIZENESW = SYSTEM_CURSOR_ID.SIZENESW;
pub const OCR_SIZENS = SYSTEM_CURSOR_ID.SIZENS;
pub const OCR_SIZENWSE = SYSTEM_CURSOR_ID.SIZENWSE;
pub const OCR_SIZEWE = SYSTEM_CURSOR_ID.SIZEWE;
pub const OCR_UP = SYSTEM_CURSOR_ID.UP;
pub const OCR_WAIT = SYSTEM_CURSOR_ID.WAIT;

pub const LAYERED_WINDOW_ATTRIBUTES_FLAGS = enum(u32) {
    ALPHA = 2,
    COLORKEY = 1,
    _,
    pub fn initFlags(o: struct {
        ALPHA: u1 = 0,
        COLORKEY: u1 = 0,
    }) LAYERED_WINDOW_ATTRIBUTES_FLAGS {
        return @as(LAYERED_WINDOW_ATTRIBUTES_FLAGS, @enumFromInt((if (o.ALPHA == 1) @intFromEnum(LAYERED_WINDOW_ATTRIBUTES_FLAGS.ALPHA) else 0) | (if (o.COLORKEY == 1) @intFromEnum(LAYERED_WINDOW_ATTRIBUTES_FLAGS.COLORKEY) else 0)));
    }
};
pub const LWA_ALPHA = LAYERED_WINDOW_ATTRIBUTES_FLAGS.ALPHA;
pub const LWA_COLORKEY = LAYERED_WINDOW_ATTRIBUTES_FLAGS.COLORKEY;

pub const SEND_MESSAGE_TIMEOUT_FLAGS = enum(u32) {
    ABORTIFHUNG = 2,
    BLOCK = 1,
    NORMAL = 0,
    NOTIMEOUTIFNOTHUNG = 8,
    ERRORONEXIT = 32,
    _,
    pub fn initFlags(o: struct {
        ABORTIFHUNG: u1 = 0,
        BLOCK: u1 = 0,
        NORMAL: u1 = 0,
        NOTIMEOUTIFNOTHUNG: u1 = 0,
        ERRORONEXIT: u1 = 0,
    }) SEND_MESSAGE_TIMEOUT_FLAGS {
        return @as(SEND_MESSAGE_TIMEOUT_FLAGS, @enumFromInt((if (o.ABORTIFHUNG == 1) @intFromEnum(SEND_MESSAGE_TIMEOUT_FLAGS.ABORTIFHUNG) else 0) | (if (o.BLOCK == 1) @intFromEnum(SEND_MESSAGE_TIMEOUT_FLAGS.BLOCK) else 0) | (if (o.NORMAL == 1) @intFromEnum(SEND_MESSAGE_TIMEOUT_FLAGS.NORMAL) else 0) | (if (o.NOTIMEOUTIFNOTHUNG == 1) @intFromEnum(SEND_MESSAGE_TIMEOUT_FLAGS.NOTIMEOUTIFNOTHUNG) else 0) | (if (o.ERRORONEXIT == 1) @intFromEnum(SEND_MESSAGE_TIMEOUT_FLAGS.ERRORONEXIT) else 0)));
    }
};
pub const SMTO_ABORTIFHUNG = SEND_MESSAGE_TIMEOUT_FLAGS.ABORTIFHUNG;
pub const SMTO_BLOCK = SEND_MESSAGE_TIMEOUT_FLAGS.BLOCK;
pub const SMTO_NORMAL = SEND_MESSAGE_TIMEOUT_FLAGS.NORMAL;
pub const SMTO_NOTIMEOUTIFNOTHUNG = SEND_MESSAGE_TIMEOUT_FLAGS.NOTIMEOUTIFNOTHUNG;
pub const SMTO_ERRORONEXIT = SEND_MESSAGE_TIMEOUT_FLAGS.ERRORONEXIT;

pub const PEEK_MESSAGE_REMOVE_TYPE = enum(u32) {
    NOREMOVE = 0,
    REMOVE = 1,
    NOYIELD = 2,
    QS_INPUT = 67567616,
    QS_POSTMESSAGE = 9961472,
    QS_PAINT = 2097152,
    QS_SENDMESSAGE = 4194304,
    _,
    pub fn initFlags(o: struct {
        NOREMOVE: u1 = 0,
        REMOVE: u1 = 0,
        NOYIELD: u1 = 0,
        QS_INPUT: u1 = 0,
        QS_POSTMESSAGE: u1 = 0,
        QS_PAINT: u1 = 0,
        QS_SENDMESSAGE: u1 = 0,
    }) PEEK_MESSAGE_REMOVE_TYPE {
        return @as(PEEK_MESSAGE_REMOVE_TYPE, @enumFromInt((if (o.NOREMOVE == 1) @intFromEnum(PEEK_MESSAGE_REMOVE_TYPE.NOREMOVE) else 0) | (if (o.REMOVE == 1) @intFromEnum(PEEK_MESSAGE_REMOVE_TYPE.REMOVE) else 0) | (if (o.NOYIELD == 1) @intFromEnum(PEEK_MESSAGE_REMOVE_TYPE.NOYIELD) else 0) | (if (o.QS_INPUT == 1) @intFromEnum(PEEK_MESSAGE_REMOVE_TYPE.QS_INPUT) else 0) | (if (o.QS_POSTMESSAGE == 1) @intFromEnum(PEEK_MESSAGE_REMOVE_TYPE.QS_POSTMESSAGE) else 0) | (if (o.QS_PAINT == 1) @intFromEnum(PEEK_MESSAGE_REMOVE_TYPE.QS_PAINT) else 0) | (if (o.QS_SENDMESSAGE == 1) @intFromEnum(PEEK_MESSAGE_REMOVE_TYPE.QS_SENDMESSAGE) else 0)));
    }
};
pub const PM_NOREMOVE = PEEK_MESSAGE_REMOVE_TYPE.NOREMOVE;
pub const PM_REMOVE = PEEK_MESSAGE_REMOVE_TYPE.REMOVE;
pub const PM_NOYIELD = PEEK_MESSAGE_REMOVE_TYPE.NOYIELD;
pub const PM_QS_INPUT = PEEK_MESSAGE_REMOVE_TYPE.QS_INPUT;
pub const PM_QS_POSTMESSAGE = PEEK_MESSAGE_REMOVE_TYPE.QS_POSTMESSAGE;
pub const PM_QS_PAINT = PEEK_MESSAGE_REMOVE_TYPE.QS_PAINT;
pub const PM_QS_SENDMESSAGE = PEEK_MESSAGE_REMOVE_TYPE.QS_SENDMESSAGE;

pub const SYS_COLOR_INDEX = enum(u32) {
    COLOR_3DDKSHADOW = 21,
    COLOR_3DFACE = 15,
    COLOR_3DHIGHLIGHT = 20,
    // COLOR_3DHILIGHT = 20, this enum value conflicts with COLOR_3DHIGHLIGHT
    COLOR_3DLIGHT = 22,
    COLOR_3DSHADOW = 16,
    COLOR_ACTIVEBORDER = 10,
    COLOR_ACTIVECAPTION = 2,
    COLOR_APPWORKSPACE = 12,
    COLOR_BACKGROUND = 1,
    // COLOR_BTNFACE = 15, this enum value conflicts with COLOR_3DFACE
    // _COLOR_BTNHIGHLIGHT = 20, this enum value conflicts with COLOR_3DHIGHLIGHT
    // _COLOR_BTNHILIGHT = 20, this enum value conflicts with COLOR_3DHIGHLIGHT
    // COLOR_BTNSHADOW = 16, this enum value conflicts with COLOR_3DSHADOW
    COLOR_BTNTEXT = 18,
    COLOR_CAPTIONTEXT = 9,
    // COLOR_DESKTOP = 1, this enum value conflicts with COLOR_BACKGROUND
    COLOR_GRADIENTACTIVECAPTION = 27,
    COLOR_GRADIENTINACTIVECAPTION = 28,
    COLOR_GRAYTEXT = 17,
    COLOR_HIGHLIGHT = 13,
    COLOR_HIGHLIGHTTEXT = 14,
    COLOR_HOTLIGHT = 26,
    COLOR_INACTIVEBORDER = 11,
    COLOR_INACTIVECAPTION = 3,
    COLOR_INACTIVECAPTIONTEXT = 19,
    COLOR_INFOBK = 24,
    COLOR_INFOTEXT = 23,
    COLOR_MENU = 4,
    COLOR_MENUHILIGHT = 29,
    COLOR_MENUBAR = 30,
    COLOR_MENUTEXT = 7,
    COLOR_SCROLLBAR = 0,
    COLOR_WINDOW = 5,
    COLOR_WINDOWFRAME = 6,
    COLOR_WINDOWTEXT = 8,
};
pub const COLOR_3DDKSHADOW = SYS_COLOR_INDEX.COLOR_3DDKSHADOW;
pub const COLOR_3DFACE = SYS_COLOR_INDEX.COLOR_3DFACE;
pub const COLOR_3DHIGHLIGHT = SYS_COLOR_INDEX.COLOR_3DHIGHLIGHT;
pub const COLOR_3DHILIGHT = SYS_COLOR_INDEX.COLOR_3DHIGHLIGHT;
pub const COLOR_3DLIGHT = SYS_COLOR_INDEX.COLOR_3DLIGHT;
pub const COLOR_3DSHADOW = SYS_COLOR_INDEX.COLOR_3DSHADOW;
pub const COLOR_ACTIVEBORDER = SYS_COLOR_INDEX.COLOR_ACTIVEBORDER;
pub const COLOR_ACTIVECAPTION = SYS_COLOR_INDEX.COLOR_ACTIVECAPTION;
pub const COLOR_APPWORKSPACE = SYS_COLOR_INDEX.COLOR_APPWORKSPACE;
pub const COLOR_BACKGROUND = SYS_COLOR_INDEX.COLOR_BACKGROUND;
pub const COLOR_BTNFACE = SYS_COLOR_INDEX.COLOR_3DFACE;
pub const _COLOR_BTNHIGHLIGHT = SYS_COLOR_INDEX.COLOR_3DHIGHLIGHT;
pub const _COLOR_BTNHILIGHT = SYS_COLOR_INDEX.COLOR_3DHIGHLIGHT;
pub const COLOR_BTNSHADOW = SYS_COLOR_INDEX.COLOR_3DSHADOW;
pub const COLOR_BTNTEXT = SYS_COLOR_INDEX.COLOR_BTNTEXT;
pub const COLOR_CAPTIONTEXT = SYS_COLOR_INDEX.COLOR_CAPTIONTEXT;
pub const COLOR_DESKTOP = SYS_COLOR_INDEX.COLOR_BACKGROUND;
pub const COLOR_GRADIENTACTIVECAPTION = SYS_COLOR_INDEX.COLOR_GRADIENTACTIVECAPTION;
pub const COLOR_GRADIENTINACTIVECAPTION = SYS_COLOR_INDEX.COLOR_GRADIENTINACTIVECAPTION;
pub const COLOR_GRAYTEXT = SYS_COLOR_INDEX.COLOR_GRAYTEXT;
pub const COLOR_HIGHLIGHT = SYS_COLOR_INDEX.COLOR_HIGHLIGHT;
pub const COLOR_HIGHLIGHTTEXT = SYS_COLOR_INDEX.COLOR_HIGHLIGHTTEXT;
pub const COLOR_HOTLIGHT = SYS_COLOR_INDEX.COLOR_HOTLIGHT;
pub const COLOR_INACTIVEBORDER = SYS_COLOR_INDEX.COLOR_INACTIVEBORDER;
pub const COLOR_INACTIVECAPTION = SYS_COLOR_INDEX.COLOR_INACTIVECAPTION;
pub const COLOR_INACTIVECAPTIONTEXT = SYS_COLOR_INDEX.COLOR_INACTIVECAPTIONTEXT;
pub const COLOR_INFOBK = SYS_COLOR_INDEX.COLOR_INFOBK;
pub const COLOR_INFOTEXT = SYS_COLOR_INDEX.COLOR_INFOTEXT;
pub const COLOR_MENU = SYS_COLOR_INDEX.COLOR_MENU;
pub const COLOR_MENUHILIGHT = SYS_COLOR_INDEX.COLOR_MENUHILIGHT;
pub const COLOR_MENUBAR = SYS_COLOR_INDEX.COLOR_MENUBAR;
pub const COLOR_MENUTEXT = SYS_COLOR_INDEX.COLOR_MENUTEXT;
pub const COLOR_SCROLLBAR = SYS_COLOR_INDEX.COLOR_SCROLLBAR;
pub const COLOR_WINDOW = SYS_COLOR_INDEX.COLOR_WINDOW;
pub const COLOR_WINDOWFRAME = SYS_COLOR_INDEX.COLOR_WINDOWFRAME;
pub const COLOR_WINDOWTEXT = SYS_COLOR_INDEX.COLOR_WINDOWTEXT;

pub const GET_WINDOW_CMD = enum(u32) {
    CHILD = 5,
    ENABLEDPOPUP = 6,
    HWNDFIRST = 0,
    HWNDLAST = 1,
    HWNDNEXT = 2,
    HWNDPREV = 3,
    OWNER = 4,
};
pub const GW_CHILD = GET_WINDOW_CMD.CHILD;
pub const GW_ENABLEDPOPUP = GET_WINDOW_CMD.ENABLEDPOPUP;
pub const GW_HWNDFIRST = GET_WINDOW_CMD.HWNDFIRST;
pub const GW_HWNDLAST = GET_WINDOW_CMD.HWNDLAST;
pub const GW_HWNDNEXT = GET_WINDOW_CMD.HWNDNEXT;
pub const GW_HWNDPREV = GET_WINDOW_CMD.HWNDPREV;
pub const GW_OWNER = GET_WINDOW_CMD.OWNER;

pub const SYSTEM_METRICS_INDEX = enum(u32) {
    ARRANGE = 56,
    CLEANBOOT = 67,
    CMONITORS = 80,
    CMOUSEBUTTONS = 43,
    CONVERTIBLESLATEMODE = 8195,
    CXBORDER = 5,
    CXCURSOR = 13,
    CXDLGFRAME = 7,
    CXDOUBLECLK = 36,
    CXDRAG = 68,
    CXEDGE = 45,
    // CXFIXEDFRAME = 7, this enum value conflicts with CXDLGFRAME
    CXFOCUSBORDER = 83,
    CXFRAME = 32,
    CXFULLSCREEN = 16,
    CXHSCROLL = 21,
    CXHTHUMB = 10,
    CXICON = 11,
    CXICONSPACING = 38,
    CXMAXIMIZED = 61,
    CXMAXTRACK = 59,
    CXMENUCHECK = 71,
    CXMENUSIZE = 54,
    CXMIN = 28,
    CXMINIMIZED = 57,
    CXMINSPACING = 47,
    CXMINTRACK = 34,
    CXPADDEDBORDER = 92,
    CXSCREEN = 0,
    CXSIZE = 30,
    // CXSIZEFRAME = 32, this enum value conflicts with CXFRAME
    CXSMICON = 49,
    CXSMSIZE = 52,
    CXVIRTUALSCREEN = 78,
    CXVSCROLL = 2,
    CYBORDER = 6,
    CYCAPTION = 4,
    CYCURSOR = 14,
    CYDLGFRAME = 8,
    CYDOUBLECLK = 37,
    CYDRAG = 69,
    CYEDGE = 46,
    // CYFIXEDFRAME = 8, this enum value conflicts with CYDLGFRAME
    CYFOCUSBORDER = 84,
    CYFRAME = 33,
    CYFULLSCREEN = 17,
    CYHSCROLL = 3,
    CYICON = 12,
    CYICONSPACING = 39,
    CYKANJIWINDOW = 18,
    CYMAXIMIZED = 62,
    CYMAXTRACK = 60,
    CYMENU = 15,
    CYMENUCHECK = 72,
    CYMENUSIZE = 55,
    CYMIN = 29,
    CYMINIMIZED = 58,
    CYMINSPACING = 48,
    CYMINTRACK = 35,
    CYSCREEN = 1,
    CYSIZE = 31,
    // CYSIZEFRAME = 33, this enum value conflicts with CYFRAME
    CYSMCAPTION = 51,
    CYSMICON = 50,
    CYSMSIZE = 53,
    CYVIRTUALSCREEN = 79,
    CYVSCROLL = 20,
    CYVTHUMB = 9,
    DBCSENABLED = 42,
    DEBUG = 22,
    DIGITIZER = 94,
    IMMENABLED = 82,
    MAXIMUMTOUCHES = 95,
    MEDIACENTER = 87,
    MENUDROPALIGNMENT = 40,
    MIDEASTENABLED = 74,
    MOUSEPRESENT = 19,
    MOUSEHORIZONTALWHEELPRESENT = 91,
    MOUSEWHEELPRESENT = 75,
    NETWORK = 63,
    PENWINDOWS = 41,
    REMOTECONTROL = 8193,
    REMOTESESSION = 4096,
    SAMEDISPLAYFORMAT = 81,
    SECURE = 44,
    SERVERR2 = 89,
    SHOWSOUNDS = 70,
    SHUTTINGDOWN = 8192,
    SLOWMACHINE = 73,
    STARTER = 88,
    SWAPBUTTON = 23,
    SYSTEMDOCKED_ = 8196,
    TABLETPC = 86,
    XVIRTUALSCREEN = 76,
    YVIRTUALSCREEN = 77,
};
pub const SM_ARRANGE = SYSTEM_METRICS_INDEX.ARRANGE;
pub const SM_CLEANBOOT = SYSTEM_METRICS_INDEX.CLEANBOOT;
pub const SM_CMONITORS = SYSTEM_METRICS_INDEX.CMONITORS;
pub const SM_CMOUSEBUTTONS = SYSTEM_METRICS_INDEX.CMOUSEBUTTONS;
pub const SM_CONVERTIBLESLATEMODE = SYSTEM_METRICS_INDEX.CONVERTIBLESLATEMODE;
pub const SM_CXBORDER = SYSTEM_METRICS_INDEX.CXBORDER;
pub const SM_CXCURSOR = SYSTEM_METRICS_INDEX.CXCURSOR;
pub const SM_CXDLGFRAME = SYSTEM_METRICS_INDEX.CXDLGFRAME;
pub const SM_CXDOUBLECLK = SYSTEM_METRICS_INDEX.CXDOUBLECLK;
pub const SM_CXDRAG = SYSTEM_METRICS_INDEX.CXDRAG;
pub const SM_CXEDGE = SYSTEM_METRICS_INDEX.CXEDGE;
pub const SM_CXFIXEDFRAME = SYSTEM_METRICS_INDEX.CXDLGFRAME;
pub const SM_CXFOCUSBORDER = SYSTEM_METRICS_INDEX.CXFOCUSBORDER;
pub const SM_CXFRAME = SYSTEM_METRICS_INDEX.CXFRAME;
pub const SM_CXFULLSCREEN = SYSTEM_METRICS_INDEX.CXFULLSCREEN;
pub const SM_CXHSCROLL = SYSTEM_METRICS_INDEX.CXHSCROLL;
pub const SM_CXHTHUMB = SYSTEM_METRICS_INDEX.CXHTHUMB;
pub const SM_CXICON = SYSTEM_METRICS_INDEX.CXICON;
pub const SM_CXICONSPACING = SYSTEM_METRICS_INDEX.CXICONSPACING;
pub const SM_CXMAXIMIZED = SYSTEM_METRICS_INDEX.CXMAXIMIZED;
pub const SM_CXMAXTRACK = SYSTEM_METRICS_INDEX.CXMAXTRACK;
pub const SM_CXMENUCHECK = SYSTEM_METRICS_INDEX.CXMENUCHECK;
pub const SM_CXMENUSIZE = SYSTEM_METRICS_INDEX.CXMENUSIZE;
pub const SM_CXMIN = SYSTEM_METRICS_INDEX.CXMIN;
pub const SM_CXMINIMIZED = SYSTEM_METRICS_INDEX.CXMINIMIZED;
pub const SM_CXMINSPACING = SYSTEM_METRICS_INDEX.CXMINSPACING;
pub const SM_CXMINTRACK = SYSTEM_METRICS_INDEX.CXMINTRACK;
pub const SM_CXPADDEDBORDER = SYSTEM_METRICS_INDEX.CXPADDEDBORDER;
pub const SM_CXSCREEN = SYSTEM_METRICS_INDEX.CXSCREEN;
pub const SM_CXSIZE = SYSTEM_METRICS_INDEX.CXSIZE;
pub const SM_CXSIZEFRAME = SYSTEM_METRICS_INDEX.CXFRAME;
pub const SM_CXSMICON = SYSTEM_METRICS_INDEX.CXSMICON;
pub const SM_CXSMSIZE = SYSTEM_METRICS_INDEX.CXSMSIZE;
pub const SM_CXVIRTUALSCREEN = SYSTEM_METRICS_INDEX.CXVIRTUALSCREEN;
pub const SM_CXVSCROLL = SYSTEM_METRICS_INDEX.CXVSCROLL;
pub const SM_CYBORDER = SYSTEM_METRICS_INDEX.CYBORDER;
pub const SM_CYCAPTION = SYSTEM_METRICS_INDEX.CYCAPTION;
pub const SM_CYCURSOR = SYSTEM_METRICS_INDEX.CYCURSOR;
pub const SM_CYDLGFRAME = SYSTEM_METRICS_INDEX.CYDLGFRAME;
pub const SM_CYDOUBLECLK = SYSTEM_METRICS_INDEX.CYDOUBLECLK;
pub const SM_CYDRAG = SYSTEM_METRICS_INDEX.CYDRAG;
pub const SM_CYEDGE = SYSTEM_METRICS_INDEX.CYEDGE;
pub const SM_CYFIXEDFRAME = SYSTEM_METRICS_INDEX.CYDLGFRAME;
pub const SM_CYFOCUSBORDER = SYSTEM_METRICS_INDEX.CYFOCUSBORDER;
pub const SM_CYFRAME = SYSTEM_METRICS_INDEX.CYFRAME;
pub const SM_CYFULLSCREEN = SYSTEM_METRICS_INDEX.CYFULLSCREEN;
pub const SM_CYHSCROLL = SYSTEM_METRICS_INDEX.CYHSCROLL;
pub const SM_CYICON = SYSTEM_METRICS_INDEX.CYICON;
pub const SM_CYICONSPACING = SYSTEM_METRICS_INDEX.CYICONSPACING;
pub const SM_CYKANJIWINDOW = SYSTEM_METRICS_INDEX.CYKANJIWINDOW;
pub const SM_CYMAXIMIZED = SYSTEM_METRICS_INDEX.CYMAXIMIZED;
pub const SM_CYMAXTRACK = SYSTEM_METRICS_INDEX.CYMAXTRACK;
pub const SM_CYMENU = SYSTEM_METRICS_INDEX.CYMENU;
pub const SM_CYMENUCHECK = SYSTEM_METRICS_INDEX.CYMENUCHECK;
pub const SM_CYMENUSIZE = SYSTEM_METRICS_INDEX.CYMENUSIZE;
pub const SM_CYMIN = SYSTEM_METRICS_INDEX.CYMIN;
pub const SM_CYMINIMIZED = SYSTEM_METRICS_INDEX.CYMINIMIZED;
pub const SM_CYMINSPACING = SYSTEM_METRICS_INDEX.CYMINSPACING;
pub const SM_CYMINTRACK = SYSTEM_METRICS_INDEX.CYMINTRACK;
pub const SM_CYSCREEN = SYSTEM_METRICS_INDEX.CYSCREEN;
pub const SM_CYSIZE = SYSTEM_METRICS_INDEX.CYSIZE;
pub const SM_CYSIZEFRAME = SYSTEM_METRICS_INDEX.CYFRAME;
pub const SM_CYSMCAPTION = SYSTEM_METRICS_INDEX.CYSMCAPTION;
pub const SM_CYSMICON = SYSTEM_METRICS_INDEX.CYSMICON;
pub const SM_CYSMSIZE = SYSTEM_METRICS_INDEX.CYSMSIZE;
pub const SM_CYVIRTUALSCREEN = SYSTEM_METRICS_INDEX.CYVIRTUALSCREEN;
pub const SM_CYVSCROLL = SYSTEM_METRICS_INDEX.CYVSCROLL;
pub const SM_CYVTHUMB = SYSTEM_METRICS_INDEX.CYVTHUMB;
pub const SM_DBCSENABLED = SYSTEM_METRICS_INDEX.DBCSENABLED;
pub const SM_DEBUG = SYSTEM_METRICS_INDEX.DEBUG;
pub const SM_DIGITIZER = SYSTEM_METRICS_INDEX.DIGITIZER;
pub const SM_IMMENABLED = SYSTEM_METRICS_INDEX.IMMENABLED;
pub const SM_MAXIMUMTOUCHES = SYSTEM_METRICS_INDEX.MAXIMUMTOUCHES;
pub const SM_MEDIACENTER = SYSTEM_METRICS_INDEX.MEDIACENTER;
pub const SM_MENUDROPALIGNMENT = SYSTEM_METRICS_INDEX.MENUDROPALIGNMENT;
pub const SM_MIDEASTENABLED = SYSTEM_METRICS_INDEX.MIDEASTENABLED;
pub const SM_MOUSEPRESENT = SYSTEM_METRICS_INDEX.MOUSEPRESENT;
pub const SM_MOUSEHORIZONTALWHEELPRESENT = SYSTEM_METRICS_INDEX.MOUSEHORIZONTALWHEELPRESENT;
pub const SM_MOUSEWHEELPRESENT = SYSTEM_METRICS_INDEX.MOUSEWHEELPRESENT;
pub const SM_NETWORK = SYSTEM_METRICS_INDEX.NETWORK;
pub const SM_PENWINDOWS = SYSTEM_METRICS_INDEX.PENWINDOWS;
pub const SM_REMOTECONTROL = SYSTEM_METRICS_INDEX.REMOTECONTROL;
pub const SM_REMOTESESSION = SYSTEM_METRICS_INDEX.REMOTESESSION;
pub const SM_SAMEDISPLAYFORMAT = SYSTEM_METRICS_INDEX.SAMEDISPLAYFORMAT;
pub const SM_SECURE = SYSTEM_METRICS_INDEX.SECURE;
pub const SM_SERVERR2 = SYSTEM_METRICS_INDEX.SERVERR2;
pub const SM_SHOWSOUNDS = SYSTEM_METRICS_INDEX.SHOWSOUNDS;
pub const SM_SHUTTINGDOWN = SYSTEM_METRICS_INDEX.SHUTTINGDOWN;
pub const SM_SLOWMACHINE = SYSTEM_METRICS_INDEX.SLOWMACHINE;
pub const SM_STARTER = SYSTEM_METRICS_INDEX.STARTER;
pub const SM_SWAPBUTTON = SYSTEM_METRICS_INDEX.SWAPBUTTON;
pub const SM_SYSTEMDOCKED_ = SYSTEM_METRICS_INDEX.SYSTEMDOCKED_;
pub const SM_TABLETPC = SYSTEM_METRICS_INDEX.TABLETPC;
pub const SM_XVIRTUALSCREEN = SYSTEM_METRICS_INDEX.XVIRTUALSCREEN;
pub const SM_YVIRTUALSCREEN = SYSTEM_METRICS_INDEX.YVIRTUALSCREEN;

pub const GET_ANCESTOR_FLAGS = enum(u32) {
    PARENT = 1,
    ROOT = 2,
    ROOTOWNER = 3,
};
pub const GA_PARENT = GET_ANCESTOR_FLAGS.PARENT;
pub const GA_ROOT = GET_ANCESTOR_FLAGS.ROOT;
pub const GA_ROOTOWNER = GET_ANCESTOR_FLAGS.ROOTOWNER;

pub const TILE_WINDOWS_HOW = enum(u32) {
    HORIZONTAL = 1,
    VERTICAL = 0,
};
pub const MDITILE_HORIZONTAL = TILE_WINDOWS_HOW.HORIZONTAL;
pub const MDITILE_VERTICAL = TILE_WINDOWS_HOW.VERTICAL;

pub const WINDOW_DISPLAY_AFFINITY = enum(u32) {
    NONE = 0,
    MONITOR = 1,
    EXCLUDEFROMCAPTURE = 17,
};
pub const WDA_NONE = WINDOW_DISPLAY_AFFINITY.NONE;
pub const WDA_MONITOR = WINDOW_DISPLAY_AFFINITY.MONITOR;
pub const WDA_EXCLUDEFROMCAPTURE = WINDOW_DISPLAY_AFFINITY.EXCLUDEFROMCAPTURE;

pub const FOREGROUND_WINDOW_LOCK_CODE = enum(u32) {
    LOCK = 1,
    UNLOCK = 2,
};
pub const LSFW_LOCK = FOREGROUND_WINDOW_LOCK_CODE.LOCK;
pub const LSFW_UNLOCK = FOREGROUND_WINDOW_LOCK_CODE.UNLOCK;

pub const CASCADE_WINDOWS_HOW = enum(u32) {
    SKIPDISABLED = 2,
    ZORDER = 4,
    _,
    pub fn initFlags(o: struct {
        SKIPDISABLED: u1 = 0,
        ZORDER: u1 = 0,
    }) CASCADE_WINDOWS_HOW {
        return @as(CASCADE_WINDOWS_HOW, @enumFromInt((if (o.SKIPDISABLED == 1) @intFromEnum(CASCADE_WINDOWS_HOW.SKIPDISABLED) else 0) | (if (o.ZORDER == 1) @intFromEnum(CASCADE_WINDOWS_HOW.ZORDER) else 0)));
    }
};
pub const MDITILE_SKIPDISABLED = CASCADE_WINDOWS_HOW.SKIPDISABLED;
pub const MDITILE_ZORDER = CASCADE_WINDOWS_HOW.ZORDER;

pub const WINDOW_MESSAGE_FILTER_ACTION = enum(u32) {
    ALLOW = 1,
    DISALLOW = 2,
    RESET = 0,
};
pub const MSGFLT_ALLOW = WINDOW_MESSAGE_FILTER_ACTION.ALLOW;
pub const MSGFLT_DISALLOW = WINDOW_MESSAGE_FILTER_ACTION.DISALLOW;
pub const MSGFLT_RESET = WINDOW_MESSAGE_FILTER_ACTION.RESET;

pub const GET_MENU_DEFAULT_ITEM_FLAGS = enum(u32) {
    GOINTOPOPUPS = 2,
    USEDISABLED = 1,
    _,
    pub fn initFlags(o: struct {
        GOINTOPOPUPS: u1 = 0,
        USEDISABLED: u1 = 0,
    }) GET_MENU_DEFAULT_ITEM_FLAGS {
        return @as(GET_MENU_DEFAULT_ITEM_FLAGS, @enumFromInt((if (o.GOINTOPOPUPS == 1) @intFromEnum(GET_MENU_DEFAULT_ITEM_FLAGS.GOINTOPOPUPS) else 0) | (if (o.USEDISABLED == 1) @intFromEnum(GET_MENU_DEFAULT_ITEM_FLAGS.USEDISABLED) else 0)));
    }
};
pub const GMDI_GOINTOPOPUPS = GET_MENU_DEFAULT_ITEM_FLAGS.GOINTOPOPUPS;
pub const GMDI_USEDISABLED = GET_MENU_DEFAULT_ITEM_FLAGS.USEDISABLED;

pub const MSGFLTINFO_STATUS = enum(u32) {
    NONE = 0,
    ALLOWED_HIGHER = 3,
    ALREADYALLOWED_FORWND = 1,
    ALREADYDISALLOWED_FORWND = 2,
};
pub const MSGFLTINFO_NONE = MSGFLTINFO_STATUS.NONE;
pub const MSGFLTINFO_ALLOWED_HIGHER = MSGFLTINFO_STATUS.ALLOWED_HIGHER;
pub const MSGFLTINFO_ALREADYALLOWED_FORWND = MSGFLTINFO_STATUS.ALREADYALLOWED_FORWND;
pub const MSGFLTINFO_ALREADYDISALLOWED_FORWND = MSGFLTINFO_STATUS.ALREADYDISALLOWED_FORWND;

pub const MOUSEHOOKSTRUCTEX_MOUSE_DATA = enum(u32) {
    @"1" = 1,
    @"2" = 2,
    _,
    pub fn initFlags(o: struct {
        @"1": u1 = 0,
        @"2": u1 = 0,
    }) MOUSEHOOKSTRUCTEX_MOUSE_DATA {
        return @as(MOUSEHOOKSTRUCTEX_MOUSE_DATA, @enumFromInt((if (o.@"1" == 1) @intFromEnum(MOUSEHOOKSTRUCTEX_MOUSE_DATA.@"1") else 0) | (if (o.@"2" == 1) @intFromEnum(MOUSEHOOKSTRUCTEX_MOUSE_DATA.@"2") else 0)));
    }
};
pub const XBUTTON1 = MOUSEHOOKSTRUCTEX_MOUSE_DATA.@"1";
pub const XBUTTON2 = MOUSEHOOKSTRUCTEX_MOUSE_DATA.@"2";

pub const MENU_ITEM_MASK = enum(u32) {
    BITMAP = 128,
    CHECKMARKS = 8,
    DATA = 32,
    FTYPE = 256,
    ID = 2,
    STATE = 1,
    STRING = 64,
    SUBMENU = 4,
    TYPE = 16,
    _,
    pub fn initFlags(o: struct {
        BITMAP: u1 = 0,
        CHECKMARKS: u1 = 0,
        DATA: u1 = 0,
        FTYPE: u1 = 0,
        ID: u1 = 0,
        STATE: u1 = 0,
        STRING: u1 = 0,
        SUBMENU: u1 = 0,
        TYPE: u1 = 0,
    }) MENU_ITEM_MASK {
        return @as(MENU_ITEM_MASK, @enumFromInt((if (o.BITMAP == 1) @intFromEnum(MENU_ITEM_MASK.BITMAP) else 0) | (if (o.CHECKMARKS == 1) @intFromEnum(MENU_ITEM_MASK.CHECKMARKS) else 0) | (if (o.DATA == 1) @intFromEnum(MENU_ITEM_MASK.DATA) else 0) | (if (o.FTYPE == 1) @intFromEnum(MENU_ITEM_MASK.FTYPE) else 0) | (if (o.ID == 1) @intFromEnum(MENU_ITEM_MASK.ID) else 0) | (if (o.STATE == 1) @intFromEnum(MENU_ITEM_MASK.STATE) else 0) | (if (o.STRING == 1) @intFromEnum(MENU_ITEM_MASK.STRING) else 0) | (if (o.SUBMENU == 1) @intFromEnum(MENU_ITEM_MASK.SUBMENU) else 0) | (if (o.TYPE == 1) @intFromEnum(MENU_ITEM_MASK.TYPE) else 0)));
    }
};
pub const MIIM_BITMAP = MENU_ITEM_MASK.BITMAP;
pub const MIIM_CHECKMARKS = MENU_ITEM_MASK.CHECKMARKS;
pub const MIIM_DATA = MENU_ITEM_MASK.DATA;
pub const MIIM_FTYPE = MENU_ITEM_MASK.FTYPE;
pub const MIIM_ID = MENU_ITEM_MASK.ID;
pub const MIIM_STATE = MENU_ITEM_MASK.STATE;
pub const MIIM_STRING = MENU_ITEM_MASK.STRING;
pub const MIIM_SUBMENU = MENU_ITEM_MASK.SUBMENU;
pub const MIIM_TYPE = MENU_ITEM_MASK.TYPE;

pub const FLASHWINFO_FLAGS = enum(u32) {
    ALL = 3,
    CAPTION = 1,
    STOP = 0,
    TIMER = 4,
    TIMERNOFG = 12,
    TRAY = 2,
    _,
    pub fn initFlags(o: struct {
        ALL: u1 = 0,
        CAPTION: u1 = 0,
        STOP: u1 = 0,
        TIMER: u1 = 0,
        TIMERNOFG: u1 = 0,
        TRAY: u1 = 0,
    }) FLASHWINFO_FLAGS {
        return @as(FLASHWINFO_FLAGS, @enumFromInt((if (o.ALL == 1) @intFromEnum(FLASHWINFO_FLAGS.ALL) else 0) | (if (o.CAPTION == 1) @intFromEnum(FLASHWINFO_FLAGS.CAPTION) else 0) | (if (o.STOP == 1) @intFromEnum(FLASHWINFO_FLAGS.STOP) else 0) | (if (o.TIMER == 1) @intFromEnum(FLASHWINFO_FLAGS.TIMER) else 0) | (if (o.TIMERNOFG == 1) @intFromEnum(FLASHWINFO_FLAGS.TIMERNOFG) else 0) | (if (o.TRAY == 1) @intFromEnum(FLASHWINFO_FLAGS.TRAY) else 0)));
    }
};
pub const FLASHW_ALL = FLASHWINFO_FLAGS.ALL;
pub const FLASHW_CAPTION = FLASHWINFO_FLAGS.CAPTION;
pub const FLASHW_STOP = FLASHWINFO_FLAGS.STOP;
pub const FLASHW_TIMER = FLASHWINFO_FLAGS.TIMER;
pub const FLASHW_TIMERNOFG = FLASHWINFO_FLAGS.TIMERNOFG;
pub const FLASHW_TRAY = FLASHWINFO_FLAGS.TRAY;

pub const CURSORINFO_FLAGS = enum(u32) {
    HOWING = 1,
    UPPRESSED = 2,
};
pub const CURSOR_SHOWING = CURSORINFO_FLAGS.HOWING;
pub const CURSOR_SUPPRESSED = CURSORINFO_FLAGS.UPPRESSED;

pub const MENUINFO_STYLE = enum(u32) {
    AUTODISMISS = 268435456,
    CHECKORBMP = 67108864,
    DRAGDROP = 536870912,
    MODELESS = 1073741824,
    NOCHECK = 2147483648,
    NOTIFYBYPOS = 134217728,
    _,
    pub fn initFlags(o: struct {
        AUTODISMISS: u1 = 0,
        CHECKORBMP: u1 = 0,
        DRAGDROP: u1 = 0,
        MODELESS: u1 = 0,
        NOCHECK: u1 = 0,
        NOTIFYBYPOS: u1 = 0,
    }) MENUINFO_STYLE {
        return @as(MENUINFO_STYLE, @enumFromInt((if (o.AUTODISMISS == 1) @intFromEnum(MENUINFO_STYLE.AUTODISMISS) else 0) | (if (o.CHECKORBMP == 1) @intFromEnum(MENUINFO_STYLE.CHECKORBMP) else 0) | (if (o.DRAGDROP == 1) @intFromEnum(MENUINFO_STYLE.DRAGDROP) else 0) | (if (o.MODELESS == 1) @intFromEnum(MENUINFO_STYLE.MODELESS) else 0) | (if (o.NOCHECK == 1) @intFromEnum(MENUINFO_STYLE.NOCHECK) else 0) | (if (o.NOTIFYBYPOS == 1) @intFromEnum(MENUINFO_STYLE.NOTIFYBYPOS) else 0)));
    }
};
pub const MNS_AUTODISMISS = MENUINFO_STYLE.AUTODISMISS;
pub const MNS_CHECKORBMP = MENUINFO_STYLE.CHECKORBMP;
pub const MNS_DRAGDROP = MENUINFO_STYLE.DRAGDROP;
pub const MNS_MODELESS = MENUINFO_STYLE.MODELESS;
pub const MNS_NOCHECK = MENUINFO_STYLE.NOCHECK;
pub const MNS_NOTIFYBYPOS = MENUINFO_STYLE.NOTIFYBYPOS;

pub const WINDOWPLACEMENT_FLAGS = enum(u32) {
    ASYNCWINDOWPLACEMENT = 4,
    RESTORETOMAXIMIZED = 2,
    SETMINPOSITION = 1,
    _,
    pub fn initFlags(o: struct {
        ASYNCWINDOWPLACEMENT: u1 = 0,
        RESTORETOMAXIMIZED: u1 = 0,
        SETMINPOSITION: u1 = 0,
    }) WINDOWPLACEMENT_FLAGS {
        return @as(WINDOWPLACEMENT_FLAGS, @enumFromInt((if (o.ASYNCWINDOWPLACEMENT == 1) @intFromEnum(WINDOWPLACEMENT_FLAGS.ASYNCWINDOWPLACEMENT) else 0) | (if (o.RESTORETOMAXIMIZED == 1) @intFromEnum(WINDOWPLACEMENT_FLAGS.RESTORETOMAXIMIZED) else 0) | (if (o.SETMINPOSITION == 1) @intFromEnum(WINDOWPLACEMENT_FLAGS.SETMINPOSITION) else 0)));
    }
};
pub const WPF_ASYNCWINDOWPLACEMENT = WINDOWPLACEMENT_FLAGS.ASYNCWINDOWPLACEMENT;
pub const WPF_RESTORETOMAXIMIZED = WINDOWPLACEMENT_FLAGS.RESTORETOMAXIMIZED;
pub const WPF_SETMINPOSITION = WINDOWPLACEMENT_FLAGS.SETMINPOSITION;

pub const MENUINFO_MASK = enum(u32) {
    APPLYTOSUBMENUS = 2147483648,
    BACKGROUND = 2,
    HELPID = 4,
    MAXHEIGHT = 1,
    MENUDATA = 8,
    STYLE = 16,
    _,
    pub fn initFlags(o: struct {
        APPLYTOSUBMENUS: u1 = 0,
        BACKGROUND: u1 = 0,
        HELPID: u1 = 0,
        MAXHEIGHT: u1 = 0,
        MENUDATA: u1 = 0,
        STYLE: u1 = 0,
    }) MENUINFO_MASK {
        return @as(MENUINFO_MASK, @enumFromInt((if (o.APPLYTOSUBMENUS == 1) @intFromEnum(MENUINFO_MASK.APPLYTOSUBMENUS) else 0) | (if (o.BACKGROUND == 1) @intFromEnum(MENUINFO_MASK.BACKGROUND) else 0) | (if (o.HELPID == 1) @intFromEnum(MENUINFO_MASK.HELPID) else 0) | (if (o.MAXHEIGHT == 1) @intFromEnum(MENUINFO_MASK.MAXHEIGHT) else 0) | (if (o.MENUDATA == 1) @intFromEnum(MENUINFO_MASK.MENUDATA) else 0) | (if (o.STYLE == 1) @intFromEnum(MENUINFO_MASK.STYLE) else 0)));
    }
};
pub const MIM_APPLYTOSUBMENUS = MENUINFO_MASK.APPLYTOSUBMENUS;
pub const MIM_BACKGROUND = MENUINFO_MASK.BACKGROUND;
pub const MIM_HELPID = MENUINFO_MASK.HELPID;
pub const MIM_MAXHEIGHT = MENUINFO_MASK.MAXHEIGHT;
pub const MIM_MENUDATA = MENUINFO_MASK.MENUDATA;
pub const MIM_STYLE = MENUINFO_MASK.STYLE;

pub const MINIMIZEDMETRICS_ARRANGE = enum(i32) {
    BOTTOMLEFT = 0,
    BOTTOMRIGHT = 1,
    TOPLEFT = 2,
    TOPRIGHT = 3,
};
pub const ARW_BOTTOMLEFT = MINIMIZEDMETRICS_ARRANGE.BOTTOMLEFT;
pub const ARW_BOTTOMRIGHT = MINIMIZEDMETRICS_ARRANGE.BOTTOMRIGHT;
pub const ARW_TOPLEFT = MINIMIZEDMETRICS_ARRANGE.TOPLEFT;
pub const ARW_TOPRIGHT = MINIMIZEDMETRICS_ARRANGE.TOPRIGHT;

pub const SCROLLINFO_MASK = enum(u32) {
    ALL = 23,
    DISABLENOSCROLL = 8,
    PAGE = 2,
    POS = 4,
    RANGE = 1,
    TRACKPOS = 16,
    _,
    pub fn initFlags(o: struct {
        ALL: u1 = 0,
        DISABLENOSCROLL: u1 = 0,
        PAGE: u1 = 0,
        POS: u1 = 0,
        RANGE: u1 = 0,
        TRACKPOS: u1 = 0,
    }) SCROLLINFO_MASK {
        return @as(SCROLLINFO_MASK, @enumFromInt((if (o.ALL == 1) @intFromEnum(SCROLLINFO_MASK.ALL) else 0) | (if (o.DISABLENOSCROLL == 1) @intFromEnum(SCROLLINFO_MASK.DISABLENOSCROLL) else 0) | (if (o.PAGE == 1) @intFromEnum(SCROLLINFO_MASK.PAGE) else 0) | (if (o.POS == 1) @intFromEnum(SCROLLINFO_MASK.POS) else 0) | (if (o.RANGE == 1) @intFromEnum(SCROLLINFO_MASK.RANGE) else 0) | (if (o.TRACKPOS == 1) @intFromEnum(SCROLLINFO_MASK.TRACKPOS) else 0)));
    }
};
pub const SIF_ALL = SCROLLINFO_MASK.ALL;
pub const SIF_DISABLENOSCROLL = SCROLLINFO_MASK.DISABLENOSCROLL;
pub const SIF_PAGE = SCROLLINFO_MASK.PAGE;
pub const SIF_POS = SCROLLINFO_MASK.POS;
pub const SIF_RANGE = SCROLLINFO_MASK.RANGE;
pub const SIF_TRACKPOS = SCROLLINFO_MASK.TRACKPOS;

pub const MENUGETOBJECTINFO_FLAGS = enum(u32) {
    BOTTOMGAP = 2,
    TOPGAP = 1,
};
pub const MNGOF_BOTTOMGAP = MENUGETOBJECTINFO_FLAGS.BOTTOMGAP;
pub const MNGOF_TOPGAP = MENUGETOBJECTINFO_FLAGS.TOPGAP;

pub const GUITHREADINFO_FLAGS = enum(u32) {
    CARETBLINKING = 1,
    INMENUMODE = 4,
    INMOVESIZE = 2,
    POPUPMENUMODE = 16,
    SYSTEMMENUMODE = 8,
    _,
    pub fn initFlags(o: struct {
        CARETBLINKING: u1 = 0,
        INMENUMODE: u1 = 0,
        INMOVESIZE: u1 = 0,
        POPUPMENUMODE: u1 = 0,
        SYSTEMMENUMODE: u1 = 0,
    }) GUITHREADINFO_FLAGS {
        return @as(GUITHREADINFO_FLAGS, @enumFromInt((if (o.CARETBLINKING == 1) @intFromEnum(GUITHREADINFO_FLAGS.CARETBLINKING) else 0) | (if (o.INMENUMODE == 1) @intFromEnum(GUITHREADINFO_FLAGS.INMENUMODE) else 0) | (if (o.INMOVESIZE == 1) @intFromEnum(GUITHREADINFO_FLAGS.INMOVESIZE) else 0) | (if (o.POPUPMENUMODE == 1) @intFromEnum(GUITHREADINFO_FLAGS.POPUPMENUMODE) else 0) | (if (o.SYSTEMMENUMODE == 1) @intFromEnum(GUITHREADINFO_FLAGS.SYSTEMMENUMODE) else 0)));
    }
};
pub const GUI_CARETBLINKING = GUITHREADINFO_FLAGS.CARETBLINKING;
pub const GUI_INMENUMODE = GUITHREADINFO_FLAGS.INMENUMODE;
pub const GUI_INMOVESIZE = GUITHREADINFO_FLAGS.INMOVESIZE;
pub const GUI_POPUPMENUMODE = GUITHREADINFO_FLAGS.POPUPMENUMODE;
pub const GUI_SYSTEMMENUMODE = GUITHREADINFO_FLAGS.SYSTEMMENUMODE;

pub const KBDLLHOOKSTRUCT_FLAGS = enum(u32) {
    EXTENDED = 1,
    ALTDOWN = 32,
    UP = 128,
    INJECTED = 16,
    LOWER_IL_INJECTED = 2,
    _,
    pub fn initFlags(o: struct {
        EXTENDED: u1 = 0,
        ALTDOWN: u1 = 0,
        UP: u1 = 0,
        INJECTED: u1 = 0,
        LOWER_IL_INJECTED: u1 = 0,
    }) KBDLLHOOKSTRUCT_FLAGS {
        return @as(KBDLLHOOKSTRUCT_FLAGS, @enumFromInt((if (o.EXTENDED == 1) @intFromEnum(KBDLLHOOKSTRUCT_FLAGS.EXTENDED) else 0) | (if (o.ALTDOWN == 1) @intFromEnum(KBDLLHOOKSTRUCT_FLAGS.ALTDOWN) else 0) | (if (o.UP == 1) @intFromEnum(KBDLLHOOKSTRUCT_FLAGS.UP) else 0) | (if (o.INJECTED == 1) @intFromEnum(KBDLLHOOKSTRUCT_FLAGS.INJECTED) else 0) | (if (o.LOWER_IL_INJECTED == 1) @intFromEnum(KBDLLHOOKSTRUCT_FLAGS.LOWER_IL_INJECTED) else 0)));
    }
};
pub const LLKHF_EXTENDED = KBDLLHOOKSTRUCT_FLAGS.EXTENDED;
pub const LLKHF_ALTDOWN = KBDLLHOOKSTRUCT_FLAGS.ALTDOWN;
pub const LLKHF_UP = KBDLLHOOKSTRUCT_FLAGS.UP;
pub const LLKHF_INJECTED = KBDLLHOOKSTRUCT_FLAGS.INJECTED;
pub const LLKHF_LOWER_IL_INJECTED = KBDLLHOOKSTRUCT_FLAGS.LOWER_IL_INJECTED;

pub const DI_FLAGS = enum(u32) {
    MASK = 1,
    IMAGE = 2,
    NORMAL = 3,
    COMPAT = 4,
    DEFAULTSIZE = 8,
    NOMIRROR = 16,
    _,
    pub fn initFlags(o: struct {
        MASK: u1 = 0,
        IMAGE: u1 = 0,
        NORMAL: u1 = 0,
        COMPAT: u1 = 0,
        DEFAULTSIZE: u1 = 0,
        NOMIRROR: u1 = 0,
    }) DI_FLAGS {
        return @as(DI_FLAGS, @enumFromInt((if (o.MASK == 1) @intFromEnum(DI_FLAGS.MASK) else 0) | (if (o.IMAGE == 1) @intFromEnum(DI_FLAGS.IMAGE) else 0) | (if (o.NORMAL == 1) @intFromEnum(DI_FLAGS.NORMAL) else 0) | (if (o.COMPAT == 1) @intFromEnum(DI_FLAGS.COMPAT) else 0) | (if (o.DEFAULTSIZE == 1) @intFromEnum(DI_FLAGS.DEFAULTSIZE) else 0) | (if (o.NOMIRROR == 1) @intFromEnum(DI_FLAGS.NOMIRROR) else 0)));
    }
};
pub const DI_MASK = DI_FLAGS.MASK;
pub const DI_IMAGE = DI_FLAGS.IMAGE;
pub const DI_NORMAL = DI_FLAGS.NORMAL;
pub const DI_COMPAT = DI_FLAGS.COMPAT;
pub const DI_DEFAULTSIZE = DI_FLAGS.DEFAULTSIZE;
pub const DI_NOMIRROR = DI_FLAGS.NOMIRROR;

// TODO: this type has a FreeFunc 'UnhookWindowsHookEx', what can Zig do with this information?
pub const HHOOK = *opaque {};

// TODO: this type has a FreeFunc 'DestroyIcon', what can Zig do with this information?
pub const HICON = *opaque {};

// TODO: this type has a FreeFunc 'DestroyMenu', what can Zig do with this information?
pub const HMENU = *opaque {};

// TODO: this type has a FreeFunc 'DestroyCursor', what can Zig do with this information?
//TODO: type 'HCURSOR' is "AlsoUsableFor" 'HICON' which means this type is implicitly
//      convertible to 'HICON' but not the other way around.  I don't know how to do this
//      in Zig so for now I'm just defining it as an alias
pub const HCURSOR = HICON;

// TODO: this type has a FreeFunc 'DestroyAcceleratorTable', what can Zig do with this information?
pub const HACCEL = *opaque {};

pub const MESSAGE_RESOURCE_ENTRY = extern struct {
    Length: u16,
    Flags: u16,
    Text: [1]u8,
};

pub const MESSAGE_RESOURCE_BLOCK = extern struct {
    LowId: u32,
    HighId: u32,
    OffsetToEntries: u32,
};

pub const MESSAGE_RESOURCE_DATA = extern struct {
    NumberOfBlocks: u32,
    Blocks: [1]MESSAGE_RESOURCE_BLOCK,
};

pub const WNDPROC = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: HWND,
        param1: u32,
        param2: WPARAM,
        param3: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) LRESULT,
    else => *const fn (
        param0: HWND,
        param1: u32,
        param2: WPARAM,
        param3: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) LRESULT,
};

pub const DLGPROC = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: HWND,
        param1: u32,
        param2: WPARAM,
        param3: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) isize,
    else => *const fn (
        param0: HWND,
        param1: u32,
        param2: WPARAM,
        param3: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) isize,
};

pub const TIMERPROC = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: HWND,
        param1: u32,
        param2: usize,
        param3: u32,
    ) callconv(@import("std").os.windows.WINAPI) void,
    else => *const fn (
        param0: HWND,
        param1: u32,
        param2: usize,
        param3: u32,
    ) callconv(@import("std").os.windows.WINAPI) void,
};

pub const WNDENUMPROC = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: HWND,
        param1: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
    else => *const fn (
        param0: HWND,
        param1: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
};

pub const HOOKPROC = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        code: i32,
        wParam: WPARAM,
        lParam: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) LRESULT,
    else => *const fn (
        code: i32,
        wParam: WPARAM,
        lParam: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) LRESULT,
};

pub const SENDASYNCPROC = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: HWND,
        param1: u32,
        param2: usize,
        param3: LRESULT,
    ) callconv(@import("std").os.windows.WINAPI) void,
    else => *const fn (
        param0: HWND,
        param1: u32,
        param2: usize,
        param3: LRESULT,
    ) callconv(@import("std").os.windows.WINAPI) void,
};

pub const PROPENUMPROCA = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: HWND,
        param1: ?[*:0]const u8,
        param2: ?HANDLE,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
    else => *const fn (
        param0: HWND,
        param1: ?[*:0]const u8,
        param2: ?HANDLE,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
};

pub const PROPENUMPROCW = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: HWND,
        param1: ?[*:0]const u16,
        param2: ?HANDLE,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
    else => *const fn (
        param0: HWND,
        param1: ?[*:0]const u16,
        param2: ?HANDLE,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
};

pub const PROPENUMPROCEXA = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: HWND,
        param1: ?PSTR,
        param2: ?HANDLE,
        param3: usize,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
    else => *const fn (
        param0: HWND,
        param1: ?PSTR,
        param2: ?HANDLE,
        param3: usize,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
};

pub const PROPENUMPROCEXW = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: HWND,
        param1: ?PWSTR,
        param2: ?HANDLE,
        param3: usize,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
    else => *const fn (
        param0: HWND,
        param1: ?PWSTR,
        param2: ?HANDLE,
        param3: usize,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
};

pub const NAMEENUMPROCA = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: ?PSTR,
        param1: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
    else => *const fn (
        param0: ?PSTR,
        param1: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
};

pub const NAMEENUMPROCW = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: ?PWSTR,
        param1: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
    else => *const fn (
        param0: ?PWSTR,
        param1: LPARAM,
    ) callconv(@import("std").os.windows.WINAPI) BOOL,
};

pub const CBT_CREATEWNDA = extern struct {
    lpcs: ?*CREATESTRUCTA,
    hwndInsertAfter: ?HWND,
};

pub const CBT_CREATEWNDW = extern struct {
    lpcs: ?*CREATESTRUCTW,
    hwndInsertAfter: ?HWND,
};

pub const CBTACTIVATESTRUCT = extern struct {
    fMouse: BOOL,
    hWndActive: ?HWND,
};

pub const SHELLHOOKINFO = extern struct {
    hwnd: ?HWND,
    rc: RECT,
};

pub const EVENTMSG = extern struct {
    message: u32,
    paramL: u32,
    paramH: u32,
    time: u32,
    hwnd: ?HWND,
};

pub const CWPSTRUCT = extern struct {
    lParam: LPARAM,
    wParam: WPARAM,
    message: u32,
    hwnd: ?HWND,
};

pub const CWPRETSTRUCT = extern struct {
    lResult: LRESULT,
    lParam: LPARAM,
    wParam: WPARAM,
    message: u32,
    hwnd: ?HWND,
};

pub const KBDLLHOOKSTRUCT = extern struct {
    vkCode: u32,
    scanCode: u32,
    flags: KBDLLHOOKSTRUCT_FLAGS,
    time: u32,
    dwExtraInfo: usize,
};

pub const MSLLHOOKSTRUCT = extern struct {
    pt: POINT,
    mouseData: MOUSEHOOKSTRUCTEX_MOUSE_DATA,
    flags: u32,
    time: u32,
    dwExtraInfo: usize,
};

pub const DEBUGHOOKINFO = extern struct {
    idThread: u32,
    idThreadInstaller: u32,
    lParam: LPARAM,
    wParam: WPARAM,
    code: i32,
};

pub const MOUSEHOOKSTRUCT = extern struct {
    pt: POINT,
    hwnd: ?HWND,
    wHitTestCode: u32,
    dwExtraInfo: usize,
};

pub const MOUSEHOOKSTRUCTEX = extern struct {
    __AnonymousBase_winuser_L1166_C46: MOUSEHOOKSTRUCT,
    mouseData: MOUSEHOOKSTRUCTEX_MOUSE_DATA,
};

pub const HARDWAREHOOKSTRUCT = extern struct {
    hwnd: ?HWND,
    message: u32,
    wParam: WPARAM,
    lParam: LPARAM,
};

pub const WNDCLASSEXA = extern struct {
    cbSize: u32,
    style: WNDCLASS_STYLES,
    lpfnWndProc: ?WNDPROC,
    cbClsExtra: i32,
    cbWndExtra: i32,
    hInstance: ?HINSTANCE,
    hIcon: ?HICON,
    hCursor: ?HCURSOR,
    hbrBackground: ?HBRUSH,
    lpszMenuName: ?[*:0]const u8,
    lpszClassName: ?[*:0]const u8,
    hIconSm: ?HICON,
};

pub const WNDCLASSEXW = extern struct {
    cbSize: u32,
    style: WNDCLASS_STYLES,
    lpfnWndProc: ?WNDPROC,
    cbClsExtra: i32,
    cbWndExtra: i32,
    hInstance: ?HINSTANCE,
    hIcon: ?HICON,
    hCursor: ?HCURSOR,
    hbrBackground: ?HBRUSH,
    lpszMenuName: ?[*:0]const u16,
    lpszClassName: ?[*:0]const u16,
    hIconSm: ?HICON,
};

pub const WNDCLASSA = extern struct {
    style: WNDCLASS_STYLES,
    lpfnWndProc: ?WNDPROC,
    cbClsExtra: i32,
    cbWndExtra: i32,
    hInstance: ?HINSTANCE,
    hIcon: ?HICON,
    hCursor: ?HCURSOR,
    hbrBackground: ?HBRUSH,
    lpszMenuName: ?[*:0]const u8,
    lpszClassName: ?[*:0]const u8,
};

pub const WNDCLASSW = extern struct {
    style: WNDCLASS_STYLES,
    lpfnWndProc: ?WNDPROC,
    cbClsExtra: i32,
    cbWndExtra: i32,
    hInstance: ?HINSTANCE,
    hIcon: ?HICON,
    hCursor: ?HCURSOR,
    hbrBackground: ?HBRUSH,
    lpszMenuName: ?[*:0]const u16,
    lpszClassName: ?[*:0]const u16,
};

pub const MSG = extern struct {
    hwnd: ?HWND,
    message: u32,
    wParam: WPARAM,
    lParam: LPARAM,
    time: u32,
    pt: POINT,
};

pub const MINMAXINFO = extern struct {
    ptReserved: POINT,
    ptMaxSize: POINT,
    ptMaxPosition: POINT,
    ptMinTrackSize: POINT,
    ptMaxTrackSize: POINT,
};

pub const MDINEXTMENU = extern struct {
    hmenuIn: ?HMENU,
    hmenuNext: ?HMENU,
    hwndNext: ?HWND,
};

pub const WINDOWPOS = extern struct {
    hwnd: ?HWND,
    hwndInsertAfter: ?HWND,
    x: i32,
    y: i32,
    cx: i32,
    cy: i32,
    flags: SET_WINDOW_POS_FLAGS,
};

pub const NCCALCSIZE_PARAMS = extern struct {
    rgrc: [3]RECT,
    lppos: ?*WINDOWPOS,
};

pub const ACCEL = extern struct {
    fVirt: u8,
    key: u16,
    cmd: u16,
};

pub const CREATESTRUCTA = extern struct {
    lpCreateParams: ?*anyopaque,
    hInstance: ?HINSTANCE,
    hMenu: ?HMENU,
    hwndParent: ?HWND,
    cy: i32,
    cx: i32,
    y: i32,
    x: i32,
    style: i32,
    lpszName: ?[*:0]const u8,
    lpszClass: ?[*:0]const u8,
    dwExStyle: u32,
};

pub const CREATESTRUCTW = extern struct {
    lpCreateParams: ?*anyopaque,
    hInstance: ?HINSTANCE,
    hMenu: ?HMENU,
    hwndParent: ?HWND,
    cy: i32,
    cx: i32,
    y: i32,
    x: i32,
    style: i32,
    lpszName: ?[*:0]const u16,
    lpszClass: ?[*:0]const u16,
    dwExStyle: u32,
};

pub const WINDOWPLACEMENT = extern struct {
    length: u32,
    flags: WINDOWPLACEMENT_FLAGS,
    showCmd: SHOW_WINDOW_CMD,
    ptMinPosition: POINT,
    ptMaxPosition: POINT,
    rcNormalPosition: RECT,
};

pub const STYLESTRUCT = extern struct {
    styleOld: u32,
    styleNew: u32,
};

pub const PREGISTERCLASSNAMEW = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        param0: ?[*:0]const u16,
    ) callconv(@import("std").os.windows.WINAPI) BOOLEAN,
    else => *const fn (
        param0: ?[*:0]const u16,
    ) callconv(@import("std").os.windows.WINAPI) BOOLEAN,
};

pub const UPDATELAYEREDWINDOWINFO = extern struct {
    cbSize: u32,
    hdcDst: ?HDC,
    pptDst: ?*const POINT,
    psize: ?*const SIZE,
    hdcSrc: ?HDC,
    pptSrc: ?*const POINT,
    crKey: u32,
    pblend: ?*const BLENDFUNCTION,
    dwFlags: UPDATE_LAYERED_WINDOW_FLAGS,
    prcDirty: ?*const RECT,
};

pub const FLASHWINFO = extern struct {
    cbSize: u32,
    hwnd: ?HWND,
    dwFlags: FLASHWINFO_FLAGS,
    uCount: u32,
    dwTimeout: u32,
};

pub const DLGTEMPLATE = extern struct {
    style: u32 align(2),
    dwExtendedStyle: u32 align(2),
    cdit: u16 align(2),
    x: i16 align(2),
    y: i16 align(2),
    cx: i16 align(2),
    cy: i16 align(2),
};

pub const DLGITEMTEMPLATE = extern struct {
    style: u32 align(2),
    dwExtendedStyle: u32 align(2),
    x: i16 align(2),
    y: i16 align(2),
    cx: i16 align(2),
    cy: i16 align(2),
    id: u16 align(2),
};

pub const POINTER_INPUT_TYPE = enum(i32) {
    POINTER = 1,
    TOUCH = 2,
    PEN = 3,
    MOUSE = 4,
    TOUCHPAD = 5,
};
pub const PT_POINTER = POINTER_INPUT_TYPE.POINTER;
pub const PT_TOUCH = POINTER_INPUT_TYPE.TOUCH;
pub const PT_PEN = POINTER_INPUT_TYPE.PEN;
pub const PT_MOUSE = POINTER_INPUT_TYPE.MOUSE;
pub const PT_TOUCHPAD = POINTER_INPUT_TYPE.TOUCHPAD;

pub const TPMPARAMS = extern struct {
    cbSize: u32,
    rcExclude: RECT,
};

pub const MENUINFO = extern struct {
    cbSize: u32,
    fMask: MENUINFO_MASK,
    dwStyle: MENUINFO_STYLE,
    cyMax: u32,
    hbrBack: ?HBRUSH,
    dwContextHelpID: u32,
    dwMenuData: usize,
};

pub const MENUGETOBJECTINFO = extern struct {
    dwFlags: MENUGETOBJECTINFO_FLAGS,
    uPos: u32,
    hmenu: ?HMENU,
    riid: ?*anyopaque,
    pvObj: ?*anyopaque,
};

pub const MENUITEMINFOA = extern struct {
    cbSize: u32,
    fMask: MENU_ITEM_MASK,
    fType: MENU_ITEM_TYPE,
    fState: MENU_ITEM_STATE,
    wID: u32,
    hSubMenu: ?HMENU,
    hbmpChecked: ?HBITMAP,
    hbmpUnchecked: ?HBITMAP,
    dwItemData: usize,
    dwTypeData: ?PSTR,
    cch: u32,
    hbmpItem: ?HBITMAP,
};

pub const MENUITEMINFOW = extern struct {
    cbSize: u32,
    fMask: MENU_ITEM_MASK,
    fType: MENU_ITEM_TYPE,
    fState: MENU_ITEM_STATE,
    wID: u32,
    hSubMenu: ?HMENU,
    hbmpChecked: ?HBITMAP,
    hbmpUnchecked: ?HBITMAP,
    dwItemData: usize,
    dwTypeData: ?PWSTR,
    cch: u32,
    hbmpItem: ?HBITMAP,
};

pub const DROPSTRUCT = extern struct {
    hwndSource: ?HWND,
    hwndSink: ?HWND,
    wFmt: u32,
    dwData: usize,
    ptDrop: POINT,
    dwControlData: u32,
};

pub const MSGBOXCALLBACK = switch (@import("builtin").zig_backend) {
    .stage1 => fn (
        lpHelpInfo: ?*HELPINFO,
    ) callconv(@import("std").os.windows.WINAPI) void,
    else => *const fn (
        lpHelpInfo: ?*HELPINFO,
    ) callconv(@import("std").os.windows.WINAPI) void,
};

pub const MSGBOXPARAMSA = extern struct {
    cbSize: u32,
    hwndOwner: ?HWND,
    hInstance: ?HINSTANCE,
    lpszText: ?[*:0]const u8,
    lpszCaption: ?[*:0]const u8,
    dwStyle: MESSAGEBOX_STYLE,
    lpszIcon: ?[*:0]const u8,
    dwContextHelpId: usize,
    lpfnMsgBoxCallback: ?MSGBOXCALLBACK,
    dwLanguageId: u32,
};

pub const MSGBOXPARAMSW = extern struct {
    cbSize: u32,
    hwndOwner: ?HWND,
    hInstance: ?HINSTANCE,
    lpszText: ?[*:0]const u16,
    lpszCaption: ?[*:0]const u16,
    dwStyle: MESSAGEBOX_STYLE,
    lpszIcon: ?[*:0]const u16,
    dwContextHelpId: usize,
    lpfnMsgBoxCallback: ?MSGBOXCALLBACK,
    dwLanguageId: u32,
};

pub const MENUITEMTEMPLATEHEADER = extern struct {
    versionNumber: u16,
    offset: u16,
};

pub const MENUITEMTEMPLATE = extern struct {
    mtOption: u16,
    mtID: u16,
    mtString: [1]u16,
};

pub const ICONINFO = extern struct {
    fIcon: BOOL,
    xHotspot: u32,
    yHotspot: u32,
    hbmMask: ?HBITMAP,
    hbmColor: ?HBITMAP,
};

pub const CURSORSHAPE = extern struct {
    xHotSpot: i32,
    yHotSpot: i32,
    cx: i32,
    cy: i32,
    cbWidth: i32,
    Planes: u8,
    BitsPixel: u8,
};

pub const ICONINFOEXA = extern struct {
    cbSize: u32,
    fIcon: BOOL,
    xHotspot: u32,
    yHotspot: u32,
    hbmMask: ?HBITMAP,
    hbmColor: ?HBITMAP,
    wResID: u16,
    szModName: [260]CHAR,
    szResName: [260]CHAR,
};

pub const ICONINFOEXW = extern struct {
    cbSize: u32,
    fIcon: BOOL,
    xHotspot: u32,
    yHotspot: u32,
    hbmMask: ?HBITMAP,
    hbmColor: ?HBITMAP,
    wResID: u16,
    szModName: [260]u16,
    szResName: [260]u16,
};

pub const EDIT_CONTROL_FEATURE = enum(i32) {
    ENTERPRISE_DATA_PROTECTION_PASTE_SUPPORT = 0,
    PASTE_NOTIFICATIONS = 1,
};
pub const EDIT_CONTROL_FEATURE_ENTERPRISE_DATA_PROTECTION_PASTE_SUPPORT = EDIT_CONTROL_FEATURE.ENTERPRISE_DATA_PROTECTION_PASTE_SUPPORT;
pub const EDIT_CONTROL_FEATURE_PASTE_NOTIFICATIONS = EDIT_CONTROL_FEATURE.PASTE_NOTIFICATIONS;

pub const SCROLLINFO = extern struct {
    cbSize: u32,
    fMask: SCROLLINFO_MASK,
    nMin: i32,
    nMax: i32,
    nPage: u32,
    nPos: i32,
    nTrackPos: i32,
};

pub const MDICREATESTRUCTA = extern struct {
    szClass: ?[*:0]const u8,
    szTitle: ?[*:0]const u8,
    hOwner: ?HANDLE,
    x: i32,
    y: i32,
    cx: i32,
    cy: i32,
    style: WINDOW_STYLE,
    lParam: LPARAM,
};

pub const MDICREATESTRUCTW = extern struct {
    szClass: ?[*:0]const u16,
    szTitle: ?[*:0]const u16,
    hOwner: ?HANDLE,
    x: i32,
    y: i32,
    cx: i32,
    cy: i32,
    style: WINDOW_STYLE,
    lParam: LPARAM,
};

pub const CLIENTCREATESTRUCT = extern struct {
    hWindowMenu: ?HANDLE,
    idFirstChild: u32,
};

pub const TouchPredictionParameters = extern struct {
    cbSize: u32,
    dwLatency: u32,
    dwSampleTime: u32,
    bUseHWTimeStamp: u32,
};

pub const HANDEDNESS = enum(i32) {
    LEFT = 0,
    RIGHT = 1,
};
pub const HANDEDNESS_LEFT = HANDEDNESS.LEFT;
pub const HANDEDNESS_RIGHT = HANDEDNESS.RIGHT;

pub const NONCLIENTMETRICSA = extern struct {
    cbSize: u32,
    iBorderWidth: i32,
    iScrollWidth: i32,
    iScrollHeight: i32,
    iCaptionWidth: i32,
    iCaptionHeight: i32,
    lfCaptionFont: LOGFONTA,
    iSmCaptionWidth: i32,
    iSmCaptionHeight: i32,
    lfSmCaptionFont: LOGFONTA,
    iMenuWidth: i32,
    iMenuHeight: i32,
    lfMenuFont: LOGFONTA,
    lfStatusFont: LOGFONTA,
    lfMessageFont: LOGFONTA,
    iPaddedBorderWidth: i32,
};

pub const NONCLIENTMETRICSW = extern struct {
    cbSize: u32,
    iBorderWidth: i32,
    iScrollWidth: i32,
    iScrollHeight: i32,
    iCaptionWidth: i32,
    iCaptionHeight: i32,
    lfCaptionFont: LOGFONTW,
    iSmCaptionWidth: i32,
    iSmCaptionHeight: i32,
    lfSmCaptionFont: LOGFONTW,
    iMenuWidth: i32,
    iMenuHeight: i32,
    lfMenuFont: LOGFONTW,
    lfStatusFont: LOGFONTW,
    lfMessageFont: LOGFONTW,
    iPaddedBorderWidth: i32,
};

pub const MINIMIZEDMETRICS = extern struct {
    cbSize: u32,
    iWidth: i32,
    iHorzGap: i32,
    iVertGap: i32,
    iArrange: MINIMIZEDMETRICS_ARRANGE,
};

pub const ICONMETRICSA = extern struct {
    cbSize: u32,
    iHorzSpacing: i32,
    iVertSpacing: i32,
    iTitleWrap: i32,
    lfFont: LOGFONTA,
};

pub const ICONMETRICSW = extern struct {
    cbSize: u32,
    iHorzSpacing: i32,
    iVertSpacing: i32,
    iTitleWrap: i32,
    lfFont: LOGFONTW,
};

pub const ANIMATIONINFO = extern struct {
    cbSize: u32,
    iMinAnimate: i32,
};

pub const AUDIODESCRIPTION = extern struct {
    cbSize: u32,
    Enabled: BOOL,
    Locale: u32,
};

pub const GUITHREADINFO = extern struct {
    cbSize: u32,
    flags: GUITHREADINFO_FLAGS,
    hwndActive: ?HWND,
    hwndFocus: ?HWND,
    hwndCapture: ?HWND,
    hwndMenuOwner: ?HWND,
    hwndMoveSize: ?HWND,
    hwndCaret: ?HWND,
    rcCaret: RECT,
};

pub const CURSORINFO = extern struct {
    cbSize: u32,
    flags: CURSORINFO_FLAGS,
    hCursor: ?HCURSOR,
    ptScreenPos: POINT,
};

pub const WINDOWINFO = extern struct {
    cbSize: u32,
    rcWindow: RECT,
    rcClient: RECT,
    dwStyle: u32,
    dwExStyle: u32,
    dwWindowStatus: u32,
    cxWindowBorders: u32,
    cyWindowBorders: u32,
    atomWindowType: u16,
    wCreatorVersion: u16,
};

pub const TITLEBARINFO = extern struct {
    cbSize: u32,
    rcTitleBar: RECT,
    rgstate: [6]u32,
};

pub const TITLEBARINFOEX = extern struct {
    cbSize: u32,
    rcTitleBar: RECT,
    rgstate: [6]u32,
    rgrect: [6]RECT,
};

pub const MENUBARINFO = extern struct {
    cbSize: u32,
    rcBar: RECT,
    hMenu: ?HMENU,
    hwndMenu: ?HWND,
    _bitfield: i32,
};

pub const SCROLLBARINFO = extern struct {
    cbSize: u32,
    rcScrollBar: RECT,
    dxyLineButton: i32,
    xyThumbTop: i32,
    xyThumbBottom: i32,
    reserved: i32,
    rgstate: [6]u32,
};

pub const ALTTABINFO = extern struct {
    cbSize: u32,
    cItems: i32,
    cColumns: i32,
    cRows: i32,
    iColFocus: i32,
    iRowFocus: i32,
    cxItem: i32,
    cyItem: i32,
    ptStart: POINT,
};

pub const CHANGEFILTERSTRUCT = extern struct {
    cbSize: u32,
    ExtStatus: MSGFLTINFO_STATUS,
};

pub const IndexedResourceQualifier = extern struct {
    name: ?PWSTR,
    value: ?PWSTR,
};

pub const MrmPlatformVersion = enum(i32) {
    Default = 0,
    Windows10_0_0_0 = 17432576,
    Windows10_0_0_5 = 17432581,
};
pub const MrmPlatformVersion_Default = MrmPlatformVersion.Default;
pub const MrmPlatformVersion_Windows10_0_0_0 = MrmPlatformVersion.Windows10_0_0_0;
pub const MrmPlatformVersion_Windows10_0_0_5 = MrmPlatformVersion.Windows10_0_0_5;

pub const MrmResourceIndexerHandle = extern struct {
    handle: ?*anyopaque,
};

pub const MrmPackagingMode = enum(i32) {
    StandaloneFile = 0,
    AutoSplit = 1,
    ResourcePack = 2,
};
pub const MrmPackagingModeStandaloneFile = MrmPackagingMode.StandaloneFile;
pub const MrmPackagingModeAutoSplit = MrmPackagingMode.AutoSplit;
pub const MrmPackagingModeResourcePack = MrmPackagingMode.ResourcePack;

pub const MrmPackagingOptions = enum(i32) {
    None = 0,
    OmitSchemaFromResourcePacks = 1,
    SplitLanguageVariants = 2,
};
pub const MrmPackagingOptionsNone = MrmPackagingOptions.None;
pub const MrmPackagingOptionsOmitSchemaFromResourcePacks = MrmPackagingOptions.OmitSchemaFromResourcePacks;
pub const MrmPackagingOptionsSplitLanguageVariants = MrmPackagingOptions.SplitLanguageVariants;

pub const MrmDumpType = enum(i32) {
    Basic = 0,
    Detailed = 1,
    Schema = 2,
};
pub const MrmDumpType_Basic = MrmDumpType.Basic;
pub const MrmDumpType_Detailed = MrmDumpType.Detailed;
pub const MrmDumpType_Schema = MrmDumpType.Schema;

pub const MrmResourceIndexerMessageSeverity = enum(i32) {
    Verbose = 0,
    Info = 1,
    Warning = 2,
    Error = 3,
};
pub const MrmResourceIndexerMessageSeverityVerbose = MrmResourceIndexerMessageSeverity.Verbose;
pub const MrmResourceIndexerMessageSeverityInfo = MrmResourceIndexerMessageSeverity.Info;
pub const MrmResourceIndexerMessageSeverityWarning = MrmResourceIndexerMessageSeverity.Warning;
pub const MrmResourceIndexerMessageSeverityError = MrmResourceIndexerMessageSeverity.Error;

pub const MrmIndexerFlags = enum(i32) {
    None = 0,
    AutoMerge = 1,
    CreateContentChecksum = 2,
};
pub const MrmIndexerFlagsNone = MrmIndexerFlags.None;
pub const MrmIndexerFlagsAutoMerge = MrmIndexerFlags.AutoMerge;
pub const MrmIndexerFlagsCreateContentChecksum = MrmIndexerFlags.CreateContentChecksum;

pub const MrmResourceIndexerMessage = extern struct {
    severity: MrmResourceIndexerMessageSeverity,
    id: u32,
    text: ?[*:0]const u16,
};

//--------------------------------------------------------------------------------
// Section: Functions (414)
//--------------------------------------------------------------------------------
// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadStringA(
    hInstance: ?HINSTANCE,
    uID: u32,
    lpBuffer: [*:0]u8,
    cchBufferMax: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadStringW(
    hInstance: ?HINSTANCE,
    uID: u32,
    lpBuffer: [*:0]u16,
    cchBufferMax: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn wvsprintfA(
    param0: ?PSTR,
    param1: ?[*:0]const u8,
    arglist: ?*i8,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn wvsprintfW(
    param0: ?PWSTR,
    param1: ?[*:0]const u16,
    arglist: ?*i8,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn wsprintfA(
    param0: ?PSTR,
    param1: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn wsprintfW(
    param0: ?PWSTR,
    param1: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsHungAppWindow(
    hwnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn DisableProcessWindowsGhosting() callconv(@import("std").os.windows.WINAPI) void;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RegisterWindowMessageA(
    lpString: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RegisterWindowMessageW(
    lpString: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMessageA(
    lpMsg: ?*MSG,
    hWnd: ?HWND,
    wMsgFilterMin: u32,
    wMsgFilterMax: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMessageW(
    lpMsg: ?*MSG,
    hWnd: ?HWND,
    wMsgFilterMin: u32,
    wMsgFilterMax: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn TranslateMessage(
    lpMsg: ?*const MSG,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DispatchMessageA(
    lpMsg: ?*const MSG,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DispatchMessageW(
    lpMsg: ?*const MSG,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

pub extern "user32" fn SetMessageQueue(
    cMessagesMax: i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn PeekMessageA(
    lpMsg: ?*MSG,
    hWnd: ?HWND,
    wMsgFilterMin: u32,
    wMsgFilterMax: u32,
    wRemoveMsg: PEEK_MESSAGE_REMOVE_TYPE,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn PeekMessageW(
    lpMsg: ?*MSG,
    hWnd: ?HWND,
    wMsgFilterMin: u32,
    wMsgFilterMax: u32,
    wRemoveMsg: PEEK_MESSAGE_REMOVE_TYPE,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMessagePos() callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMessageTime() callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMessageExtraInfo() callconv(@import("std").os.windows.WINAPI) LPARAM;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn IsWow64Message() callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetMessageExtraInfo(
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LPARAM;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendMessageA(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendMessageW(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendMessageTimeoutA(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
    fuFlags: SEND_MESSAGE_TIMEOUT_FLAGS,
    uTimeout: u32,
    lpdwResult: ?*usize,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendMessageTimeoutW(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
    fuFlags: SEND_MESSAGE_TIMEOUT_FLAGS,
    uTimeout: u32,
    lpdwResult: ?*usize,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendNotifyMessageA(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendNotifyMessageW(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendMessageCallbackA(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
    lpResultCallBack: ?SENDASYNCPROC,
    dwData: usize,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendMessageCallbackW(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
    lpResultCallBack: ?SENDASYNCPROC,
    dwData: usize,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn RegisterDeviceNotificationA(
    hRecipient: ?HANDLE,
    NotificationFilter: ?*anyopaque,
    Flags: POWER_SETTING_REGISTER_NOTIFICATION_FLAGS,
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;

// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn RegisterDeviceNotificationW(
    hRecipient: ?HANDLE,
    NotificationFilter: ?*anyopaque,
    Flags: POWER_SETTING_REGISTER_NOTIFICATION_FLAGS,
) callconv(@import("std").os.windows.WINAPI) ?*anyopaque;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn PostMessageA(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn PostMessageW(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn PostThreadMessageA(
    idThread: u32,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn PostThreadMessageW(
    idThread: u32,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ReplyMessage(
    lResult: LRESULT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn WaitMessage() callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DefWindowProcA(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DefWindowProcW(
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn PostQuitMessage(
    nExitCode: i32,
) callconv(@import("std").os.windows.WINAPI) void;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CallWindowProcA(
    lpPrevWndFunc: ?WNDPROC,
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CallWindowProcW(
    lpPrevWndFunc: ?WNDPROC,
    hWnd: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn InSendMessage() callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn InSendMessageEx(
    lpReserved: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RegisterClassA(
    lpWndClass: ?*const WNDCLASSA,
) callconv(@import("std").os.windows.WINAPI) u16;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RegisterClassW(
    lpWndClass: ?*const WNDCLASSW,
) callconv(@import("std").os.windows.WINAPI) u16;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn UnregisterClassA(
    lpClassName: ?[*:0]const u8,
    hInstance: ?HINSTANCE,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn UnregisterClassW(
    lpClassName: ?[*:0]const u16,
    hInstance: ?HINSTANCE,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClassInfoA(
    hInstance: ?HINSTANCE,
    lpClassName: ?[*:0]const u8,
    lpWndClass: ?*WNDCLASSA,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClassInfoW(
    hInstance: ?HINSTANCE,
    lpClassName: ?[*:0]const u16,
    lpWndClass: ?*WNDCLASSW,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RegisterClassExA(
    param0: ?*const WNDCLASSEXA,
) callconv(@import("std").os.windows.WINAPI) u16;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RegisterClassExW(
    param0: ?*const WNDCLASSEXW,
) callconv(@import("std").os.windows.WINAPI) u16;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClassInfoExA(
    hInstance: ?HINSTANCE,
    lpszClass: ?[*:0]const u8,
    lpwcx: ?*WNDCLASSEXA,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClassInfoExW(
    hInstance: ?HINSTANCE,
    lpszClass: ?[*:0]const u16,
    lpwcx: ?*WNDCLASSEXW,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateWindowExA(
    dwExStyle: WINDOW_EX_STYLE,
    lpClassName: ?[*:0]const u8,
    lpWindowName: ?[*:0]const u8,
    dwStyle: WINDOW_STYLE,
    X: i32,
    Y: i32,
    nWidth: i32,
    nHeight: i32,
    hWndParent: ?HWND,
    hMenu: ?HMENU,
    hInstance: ?HINSTANCE,
    lpParam: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateWindowExW(
    dwExStyle: WINDOW_EX_STYLE,
    lpClassName: ?[*:0]const u16,
    lpWindowName: ?[*:0]const u16,
    dwStyle: WINDOW_STYLE,
    X: i32,
    Y: i32,
    nWidth: i32,
    nHeight: i32,
    hWndParent: ?HWND,
    hMenu: ?HMENU,
    hInstance: ?HINSTANCE,
    lpParam: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsWindow(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsMenu(
    hMenu: ?HMENU,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsChild(
    hWndParent: ?HWND,
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DestroyWindow(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ShowWindow(
    hWnd: ?HWND,
    nCmdShow: SHOW_WINDOW_CMD,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn AnimateWindow(
    hWnd: ?HWND,
    dwTime: u32,
    dwFlags: ANIMATE_WINDOW_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn UpdateLayeredWindow(
    hWnd: ?HWND,
    hdcDst: ?HDC,
    pptDst: ?*POINT,
    psize: ?*SIZE,
    hdcSrc: ?HDC,
    pptSrc: ?*POINT,
    crKey: u32,
    pblend: ?*BLENDFUNCTION,
    dwFlags: UPDATE_LAYERED_WINDOW_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

pub extern "user32" fn UpdateLayeredWindowIndirect(
    hWnd: ?HWND,
    pULWInfo: ?*const UPDATELAYEREDWINDOWINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn GetLayeredWindowAttributes(
    hwnd: ?HWND,
    pcrKey: ?*u32,
    pbAlpha: ?*u8,
    pdwFlags: ?*LAYERED_WINDOW_ATTRIBUTES_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetLayeredWindowAttributes(
    hwnd: ?HWND,
    crKey: u32,
    bAlpha: u8,
    dwFlags: LAYERED_WINDOW_ATTRIBUTES_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ShowWindowAsync(
    hWnd: ?HWND,
    nCmdShow: SHOW_WINDOW_CMD,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn FlashWindow(
    hWnd: ?HWND,
    bInvert: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn FlashWindowEx(
    pfwi: ?*FLASHWINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ShowOwnedPopups(
    hWnd: ?HWND,
    fShow: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn OpenIcon(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CloseWindow(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn MoveWindow(
    hWnd: ?HWND,
    X: i32,
    Y: i32,
    nWidth: i32,
    nHeight: i32,
    bRepaint: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetWindowPos(
    hWnd: ?HWND,
    hWndInsertAfter: ?HWND,
    X: i32,
    Y: i32,
    cx: i32,
    cy: i32,
    uFlags: SET_WINDOW_POS_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowPlacement(
    hWnd: ?HWND,
    lpwndpl: ?*WINDOWPLACEMENT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetWindowPlacement(
    hWnd: ?HWND,
    lpwndpl: ?*const WINDOWPLACEMENT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.1'
pub extern "user32" fn GetWindowDisplayAffinity(
    hWnd: ?HWND,
    pdwAffinity: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.1'
pub extern "user32" fn SetWindowDisplayAffinity(
    hWnd: ?HWND,
    dwAffinity: WINDOW_DISPLAY_AFFINITY,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn BeginDeferWindowPos(
    nNumWindows: i32,
) callconv(@import("std").os.windows.WINAPI) isize;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DeferWindowPos(
    hWinPosInfo: isize,
    hWnd: ?HWND,
    hWndInsertAfter: ?HWND,
    x: i32,
    y: i32,
    cx: i32,
    cy: i32,
    uFlags: SET_WINDOW_POS_FLAGS,
) callconv(@import("std").os.windows.WINAPI) isize;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EndDeferWindowPos(
    hWinPosInfo: isize,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsWindowVisible(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsIconic(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn AnyPopup() callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn BringWindowToTop(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsZoomed(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateDialogParamA(
    hInstance: ?HINSTANCE,
    lpTemplateName: ?[*:0]const u8,
    hWndParent: ?HWND,
    lpDialogFunc: ?DLGPROC,
    dwInitParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateDialogParamW(
    hInstance: ?HINSTANCE,
    lpTemplateName: ?[*:0]const u16,
    hWndParent: ?HWND,
    lpDialogFunc: ?DLGPROC,
    dwInitParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateDialogIndirectParamA(
    hInstance: ?HINSTANCE,
    lpTemplate: ?*DLGTEMPLATE,
    hWndParent: ?HWND,
    lpDialogFunc: ?DLGPROC,
    dwInitParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateDialogIndirectParamW(
    hInstance: ?HINSTANCE,
    lpTemplate: ?*DLGTEMPLATE,
    hWndParent: ?HWND,
    lpDialogFunc: ?DLGPROC,
    dwInitParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DialogBoxParamA(
    hInstance: ?HINSTANCE,
    lpTemplateName: ?[*:0]const u8,
    hWndParent: ?HWND,
    lpDialogFunc: ?DLGPROC,
    dwInitParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) isize;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DialogBoxParamW(
    hInstance: ?HINSTANCE,
    lpTemplateName: ?[*:0]const u16,
    hWndParent: ?HWND,
    lpDialogFunc: ?DLGPROC,
    dwInitParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) isize;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DialogBoxIndirectParamA(
    hInstance: ?HINSTANCE,
    hDialogTemplate: ?*DLGTEMPLATE,
    hWndParent: ?HWND,
    lpDialogFunc: ?DLGPROC,
    dwInitParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) isize;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DialogBoxIndirectParamW(
    hInstance: ?HINSTANCE,
    hDialogTemplate: ?*DLGTEMPLATE,
    hWndParent: ?HWND,
    lpDialogFunc: ?DLGPROC,
    dwInitParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) isize;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EndDialog(
    hDlg: ?HWND,
    nResult: isize,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetDlgItem(
    hDlg: ?HWND,
    nIDDlgItem: i32,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetDlgItemInt(
    hDlg: ?HWND,
    nIDDlgItem: i32,
    uValue: u32,
    bSigned: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetDlgItemInt(
    hDlg: ?HWND,
    nIDDlgItem: i32,
    lpTranslated: ?*BOOL,
    bSigned: BOOL,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetDlgItemTextA(
    hDlg: ?HWND,
    nIDDlgItem: i32,
    lpString: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetDlgItemTextW(
    hDlg: ?HWND,
    nIDDlgItem: i32,
    lpString: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetDlgItemTextA(
    hDlg: ?HWND,
    nIDDlgItem: i32,
    lpString: [*:0]u8,
    cchMax: i32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetDlgItemTextW(
    hDlg: ?HWND,
    nIDDlgItem: i32,
    lpString: [*:0]u16,
    cchMax: i32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendDlgItemMessageA(
    hDlg: ?HWND,
    nIDDlgItem: i32,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SendDlgItemMessageW(
    hDlg: ?HWND,
    nIDDlgItem: i32,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetNextDlgGroupItem(
    hDlg: ?HWND,
    hCtl: ?HWND,
    bPrevious: BOOL,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetNextDlgTabItem(
    hDlg: ?HWND,
    hCtl: ?HWND,
    bPrevious: BOOL,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetDlgCtrlID(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetDialogBaseUnits() callconv(@import("std").os.windows.WINAPI) i32;

pub extern "user32" fn DefDlgProcA(
    hDlg: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DefDlgProcW(
    hDlg: ?HWND,
    Msg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CallMsgFilterA(
    lpMsg: ?*MSG,
    nCode: i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CallMsgFilterW(
    lpMsg: ?*MSG,
    nCode: i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharToOemA(
    pSrc: ?[*:0]const u8,
    pDst: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharToOemW(
    pSrc: ?[*:0]const u16,
    pDst: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn OemToCharA(
    pSrc: ?[*:0]const u8,
    pDst: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn OemToCharW(
    pSrc: ?[*:0]const u8,
    pDst: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharToOemBuffA(
    lpszSrc: ?[*:0]const u8,
    lpszDst: [*:0]u8,
    cchDstLength: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharToOemBuffW(
    lpszSrc: ?[*:0]const u16,
    lpszDst: [*:0]u8,
    cchDstLength: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn OemToCharBuffA(
    lpszSrc: ?[*:0]const u8,
    lpszDst: [*:0]u8,
    cchDstLength: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn OemToCharBuffW(
    lpszSrc: ?[*:0]const u8,
    lpszDst: [*:0]u16,
    cchDstLength: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharUpperA(
    lpsz: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) ?PSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharUpperW(
    lpsz: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) ?PWSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharUpperBuffA(
    lpsz: [*:0]u8,
    cchLength: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharUpperBuffW(
    lpsz: [*:0]u16,
    cchLength: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharLowerA(
    lpsz: ?PSTR,
) callconv(@import("std").os.windows.WINAPI) ?PSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharLowerW(
    lpsz: ?PWSTR,
) callconv(@import("std").os.windows.WINAPI) ?PWSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharLowerBuffA(
    lpsz: [*:0]u8,
    cchLength: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharLowerBuffW(
    lpsz: [*:0]u16,
    cchLength: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharNextA(
    lpsz: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?PSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharNextW(
    lpsz: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?PWSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharPrevA(
    lpszStart: ?[*:0]const u8,
    lpszCurrent: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?PSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharPrevW(
    lpszStart: ?[*:0]const u16,
    lpszCurrent: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?PWSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharNextExA(
    CodePage: u16,
    lpCurrentChar: ?[*:0]const u8,
    dwFlags: u32,
) callconv(@import("std").os.windows.WINAPI) ?PSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CharPrevExA(
    CodePage: u16,
    lpStart: ?[*:0]const u8,
    lpCurrentChar: ?[*:0]const u8,
    dwFlags: u32,
) callconv(@import("std").os.windows.WINAPI) ?PSTR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsCharAlphaA(
    ch: CHAR,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsCharAlphaW(
    ch: u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsCharAlphaNumericA(
    ch: CHAR,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsCharAlphaNumericW(
    ch: u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsCharUpperA(
    ch: CHAR,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsCharUpperW(
    ch: u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsCharLowerA(
    ch: CHAR,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetInputState() callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetQueueStatus(
    flags: QUEUE_STATUS_FLAGS,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn MsgWaitForMultipleObjects(
    nCount: u32,
    pHandles: ?[*]const ?HANDLE,
    fWaitAll: BOOL,
    dwMilliseconds: u32,
    dwWakeMask: QUEUE_STATUS_FLAGS,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn MsgWaitForMultipleObjectsEx(
    nCount: u32,
    pHandles: ?[*]const ?HANDLE,
    dwMilliseconds: u32,
    dwWakeMask: QUEUE_STATUS_FLAGS,
    dwFlags: MSG_WAIT_FOR_MULTIPLE_OBJECTS_EX_FLAGS,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetTimer(
    hWnd: ?HWND,
    nIDEvent: usize,
    uElapse: u32,
    lpTimerFunc: ?TIMERPROC,
) callconv(@import("std").os.windows.WINAPI) usize;

// TODO: this type is limited to platform 'windows8.0'
pub extern "user32" fn SetCoalescableTimer(
    hWnd: ?HWND,
    nIDEvent: usize,
    uElapse: u32,
    lpTimerFunc: ?TIMERPROC,
    uToleranceDelay: u32,
) callconv(@import("std").os.windows.WINAPI) usize;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn KillTimer(
    hWnd: ?HWND,
    uIDEvent: usize,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsWindowUnicode(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadAcceleratorsA(
    hInstance: ?HINSTANCE,
    lpTableName: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HACCEL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadAcceleratorsW(
    hInstance: ?HINSTANCE,
    lpTableName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?HACCEL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateAcceleratorTableA(
    paccel: [*]ACCEL,
    cAccel: i32,
) callconv(@import("std").os.windows.WINAPI) ?HACCEL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateAcceleratorTableW(
    paccel: [*]ACCEL,
    cAccel: i32,
) callconv(@import("std").os.windows.WINAPI) ?HACCEL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DestroyAcceleratorTable(
    hAccel: ?HACCEL,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CopyAcceleratorTableA(
    hAccelSrc: ?HACCEL,
    lpAccelDst: ?[*]ACCEL,
    cAccelEntries: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CopyAcceleratorTableW(
    hAccelSrc: ?HACCEL,
    lpAccelDst: ?[*]ACCEL,
    cAccelEntries: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn TranslateAcceleratorA(
    hWnd: ?HWND,
    hAccTable: ?HACCEL,
    lpMsg: ?*MSG,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn TranslateAcceleratorW(
    hWnd: ?HWND,
    hAccTable: ?HACCEL,
    lpMsg: ?*MSG,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetSystemMetrics(
    nIndex: SYSTEM_METRICS_INDEX,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadMenuA(
    hInstance: ?HINSTANCE,
    lpMenuName: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HMENU;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadMenuW(
    hInstance: ?HINSTANCE,
    lpMenuName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?HMENU;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadMenuIndirectA(
    lpMenuTemplate: ?*const anyopaque,
) callconv(@import("std").os.windows.WINAPI) ?HMENU;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadMenuIndirectW(
    lpMenuTemplate: ?*const anyopaque,
) callconv(@import("std").os.windows.WINAPI) ?HMENU;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenu(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) ?HMENU;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetMenu(
    hWnd: ?HWND,
    hMenu: ?HMENU,
) callconv(@import("std").os.windows.WINAPI) BOOL;

pub extern "user32" fn ChangeMenuA(
    hMenu: ?HMENU,
    cmd: u32,
    lpszNewItem: ?[*:0]const u8,
    cmdInsert: u32,
    flags: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

pub extern "user32" fn ChangeMenuW(
    hMenu: ?HMENU,
    cmd: u32,
    lpszNewItem: ?[*:0]const u16,
    cmdInsert: u32,
    flags: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn HiliteMenuItem(
    hWnd: ?HWND,
    hMenu: ?HMENU,
    uIDHiliteItem: u32,
    uHilite: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuStringA(
    hMenu: ?HMENU,
    uIDItem: u32,
    lpString: ?[*:0]u8,
    cchMax: i32,
    flags: MENU_ITEM_FLAGS,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuStringW(
    hMenu: ?HMENU,
    uIDItem: u32,
    lpString: ?[*:0]u16,
    cchMax: i32,
    flags: MENU_ITEM_FLAGS,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuState(
    hMenu: ?HMENU,
    uId: u32,
    uFlags: MENU_ITEM_FLAGS,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DrawMenuBar(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetSystemMenu(
    hWnd: ?HWND,
    bRevert: BOOL,
) callconv(@import("std").os.windows.WINAPI) ?HMENU;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateMenu() callconv(@import("std").os.windows.WINAPI) ?HMENU;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreatePopupMenu() callconv(@import("std").os.windows.WINAPI) ?HMENU;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DestroyMenu(
    hMenu: ?HMENU,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CheckMenuItem(
    hMenu: ?HMENU,
    uIDCheckItem: u32,
    uCheck: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EnableMenuItem(
    hMenu: ?HMENU,
    uIDEnableItem: u32,
    uEnable: MENU_ITEM_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetSubMenu(
    hMenu: ?HMENU,
    nPos: i32,
) callconv(@import("std").os.windows.WINAPI) ?HMENU;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuItemID(
    hMenu: ?HMENU,
    nPos: i32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuItemCount(
    hMenu: ?HMENU,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn InsertMenuA(
    hMenu: ?HMENU,
    uPosition: u32,
    uFlags: MENU_ITEM_FLAGS,
    uIDNewItem: usize,
    lpNewItem: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn InsertMenuW(
    hMenu: ?HMENU,
    uPosition: u32,
    uFlags: MENU_ITEM_FLAGS,
    uIDNewItem: usize,
    lpNewItem: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn AppendMenuA(
    hMenu: ?HMENU,
    uFlags: MENU_ITEM_FLAGS,
    uIDNewItem: usize,
    lpNewItem: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn AppendMenuW(
    hMenu: ?HMENU,
    uFlags: MENU_ITEM_FLAGS,
    uIDNewItem: usize,
    lpNewItem: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ModifyMenuA(
    hMnu: ?HMENU,
    uPosition: u32,
    uFlags: MENU_ITEM_FLAGS,
    uIDNewItem: usize,
    lpNewItem: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ModifyMenuW(
    hMnu: ?HMENU,
    uPosition: u32,
    uFlags: MENU_ITEM_FLAGS,
    uIDNewItem: usize,
    lpNewItem: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RemoveMenu(
    hMenu: ?HMENU,
    uPosition: u32,
    uFlags: MENU_ITEM_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DeleteMenu(
    hMenu: ?HMENU,
    uPosition: u32,
    uFlags: MENU_ITEM_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetMenuItemBitmaps(
    hMenu: ?HMENU,
    uPosition: u32,
    uFlags: MENU_ITEM_FLAGS,
    hBitmapUnchecked: ?HBITMAP,
    hBitmapChecked: ?HBITMAP,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuCheckMarkDimensions() callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn TrackPopupMenu(
    hMenu: ?HMENU,
    uFlags: TRACK_POPUP_MENU_FLAGS,
    x: i32,
    y: i32,
    nReserved: i32,
    hWnd: ?HWND,
    prcRect: ?*const RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn TrackPopupMenuEx(
    hMenu: ?HMENU,
    uFlags: u32,
    x: i32,
    y: i32,
    hwnd: ?HWND,
    lptpm: ?*TPMPARAMS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.1'
pub extern "user32" fn CalculatePopupWindowPosition(
    anchorPoint: ?*const POINT,
    windowSize: ?*const SIZE,
    flags: u32,
    excludeRect: ?*RECT,
    popupWindowPosition: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuInfo(
    param0: ?HMENU,
    param1: ?*MENUINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetMenuInfo(
    param0: ?HMENU,
    param1: ?*MENUINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EndMenu() callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn InsertMenuItemA(
    hmenu: ?HMENU,
    item: u32,
    fByPosition: BOOL,
    lpmi: ?*MENUITEMINFOA,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn InsertMenuItemW(
    hmenu: ?HMENU,
    item: u32,
    fByPosition: BOOL,
    lpmi: ?*MENUITEMINFOW,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuItemInfoA(
    hmenu: ?HMENU,
    item: u32,
    fByPosition: BOOL,
    lpmii: ?*MENUITEMINFOA,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuItemInfoW(
    hmenu: ?HMENU,
    item: u32,
    fByPosition: BOOL,
    lpmii: ?*MENUITEMINFOW,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetMenuItemInfoA(
    hmenu: ?HMENU,
    item: u32,
    fByPositon: BOOL,
    lpmii: ?*MENUITEMINFOA,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetMenuItemInfoW(
    hmenu: ?HMENU,
    item: u32,
    fByPositon: BOOL,
    lpmii: ?*MENUITEMINFOW,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuDefaultItem(
    hMenu: ?HMENU,
    fByPos: u32,
    gmdiFlags: GET_MENU_DEFAULT_ITEM_FLAGS,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetMenuDefaultItem(
    hMenu: ?HMENU,
    uItem: u32,
    fByPos: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuItemRect(
    hWnd: ?HWND,
    hMenu: ?HMENU,
    uItem: u32,
    lprcItem: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn MenuItemFromPoint(
    hWnd: ?HWND,
    hMenu: ?HMENU,
    ptScreen: POINT,
) callconv(@import("std").os.windows.WINAPI) i32;

pub extern "user32" fn DragObject(
    hwndParent: ?HWND,
    hwndFrom: ?HWND,
    fmt: u32,
    data: usize,
    hcur: ?HCURSOR,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DrawIcon(
    hDC: ?HDC,
    X: i32,
    Y: i32,
    hIcon: ?HICON,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetForegroundWindow() callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SwitchToThisWindow(
    hwnd: ?HWND,
    fUnknown: BOOL,
) callconv(@import("std").os.windows.WINAPI) void;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetForegroundWindow(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn AllowSetForegroundWindow(
    dwProcessId: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LockSetForegroundWindow(
    uLockCode: FOREGROUND_WINDOW_LOCK_CODE,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn ScrollWindow(
    hWnd: ?HWND,
    XAmount: i32,
    YAmount: i32,
    lpRect: ?*const RECT,
    lpClipRect: ?*const RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn ScrollDC(
    hDC: ?HDC,
    dx: i32,
    dy: i32,
    lprcScroll: ?*const RECT,
    lprcClip: ?*const RECT,
    hrgnUpdate: ?HRGN,
    lprcUpdate: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn ScrollWindowEx(
    hWnd: ?HWND,
    dx: i32,
    dy: i32,
    prcScroll: ?*const RECT,
    prcClip: ?*const RECT,
    hrgnUpdate: ?HRGN,
    prcUpdate: ?*RECT,
    flags: SHOW_WINDOW_CMD,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn GetScrollPos(
    hWnd: ?HWND,
    nBar: SCROLLBAR_CONSTANTS,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn GetScrollRange(
    hWnd: ?HWND,
    nBar: SCROLLBAR_CONSTANTS,
    lpMinPos: ?*i32,
    lpMaxPos: ?*i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetPropA(
    hWnd: ?HWND,
    lpString: ?[*:0]const u8,
    hData: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetPropW(
    hWnd: ?HWND,
    lpString: ?[*:0]const u16,
    hData: ?HANDLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetPropA(
    hWnd: ?HWND,
    lpString: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetPropW(
    hWnd: ?HWND,
    lpString: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RemovePropA(
    hWnd: ?HWND,
    lpString: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RemovePropW(
    hWnd: ?HWND,
    lpString: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EnumPropsExA(
    hWnd: ?HWND,
    lpEnumFunc: ?PROPENUMPROCEXA,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EnumPropsExW(
    hWnd: ?HWND,
    lpEnumFunc: ?PROPENUMPROCEXW,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EnumPropsA(
    hWnd: ?HWND,
    lpEnumFunc: ?PROPENUMPROCA,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EnumPropsW(
    hWnd: ?HWND,
    lpEnumFunc: ?PROPENUMPROCW,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetWindowTextA(
    hWnd: ?HWND,
    lpString: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetWindowTextW(
    hWnd: ?HWND,
    lpString: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowTextA(
    hWnd: ?HWND,
    lpString: [*:0]u8,
    nMaxCount: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowTextW(
    hWnd: ?HWND,
    lpString: [*:0]u16,
    nMaxCount: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowTextLengthA(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowTextLengthW(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClientRect(
    hWnd: ?HWND,
    lpRect: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowRect(
    hWnd: ?HWND,
    lpRect: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn AdjustWindowRect(
    lpRect: ?*RECT,
    dwStyle: WINDOW_STYLE,
    bMenu: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn AdjustWindowRectEx(
    lpRect: ?*RECT,
    dwStyle: WINDOW_STYLE,
    bMenu: BOOL,
    dwExStyle: WINDOW_EX_STYLE,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn MessageBoxA(
    hWnd: ?HWND,
    lpText: ?[*:0]const u8,
    lpCaption: ?[*:0]const u8,
    uType: MESSAGEBOX_STYLE,
) callconv(@import("std").os.windows.WINAPI) MESSAGEBOX_RESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn MessageBoxW(
    hWnd: ?HWND,
    lpText: ?[*:0]const u16,
    lpCaption: ?[*:0]const u16,
    uType: MESSAGEBOX_STYLE,
) callconv(@import("std").os.windows.WINAPI) MESSAGEBOX_RESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn MessageBoxExA(
    hWnd: ?HWND,
    lpText: ?[*:0]const u8,
    lpCaption: ?[*:0]const u8,
    uType: MESSAGEBOX_STYLE,
    wLanguageId: u16,
) callconv(@import("std").os.windows.WINAPI) MESSAGEBOX_RESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn MessageBoxExW(
    hWnd: ?HWND,
    lpText: ?[*:0]const u16,
    lpCaption: ?[*:0]const u16,
    uType: MESSAGEBOX_STYLE,
    wLanguageId: u16,
) callconv(@import("std").os.windows.WINAPI) MESSAGEBOX_RESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn MessageBoxIndirectA(
    lpmbp: ?*const MSGBOXPARAMSA,
) callconv(@import("std").os.windows.WINAPI) MESSAGEBOX_RESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn MessageBoxIndirectW(
    lpmbp: ?*const MSGBOXPARAMSW,
) callconv(@import("std").os.windows.WINAPI) MESSAGEBOX_RESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ShowCursor(
    bShow: BOOL,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetCursorPos(
    X: i32,
    Y: i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn SetPhysicalCursorPos(
    X: i32,
    Y: i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetCursor(
    hCursor: ?HCURSOR,
) callconv(@import("std").os.windows.WINAPI) ?HCURSOR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetCursorPos(
    lpPoint: ?*POINT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn GetPhysicalCursorPos(
    lpPoint: ?*POINT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClipCursor(
    lpRect: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetCursor() callconv(@import("std").os.windows.WINAPI) ?HCURSOR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateCaret(
    hWnd: ?HWND,
    hBitmap: ?HBITMAP,
    nWidth: i32,
    nHeight: i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetCaretBlinkTime() callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetCaretBlinkTime(
    uMSeconds: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DestroyCaret() callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn HideCaret(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ShowCaret(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetCaretPos(
    X: i32,
    Y: i32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetCaretPos(
    lpPoint: ?*POINT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn LogicalToPhysicalPoint(
    hWnd: ?HWND,
    lpPoint: ?*POINT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn PhysicalToLogicalPoint(
    hWnd: ?HWND,
    lpPoint: ?*POINT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn WindowFromPoint(
    Point: POINT,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn WindowFromPhysicalPoint(
    Point: POINT,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ChildWindowFromPoint(
    hWndParent: ?HWND,
    Point: POINT,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ClipCursor(
    lpRect: ?*const RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ChildWindowFromPointEx(
    hwnd: ?HWND,
    pt: POINT,
    flags: CWP_FLAGS,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetSysColor(
    nIndex: SYS_COLOR_INDEX,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetSysColors(
    cElements: i32,
    lpaElements: [*]const i32,
    lpaRgbValues: [*]const u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

pub extern "user32" fn GetWindowWord(
    hWnd: ?HWND,
    nIndex: i32,
) callconv(@import("std").os.windows.WINAPI) u16;

pub extern "user32" fn SetWindowWord(
    hWnd: ?HWND,
    nIndex: i32,
    wNewWord: u16,
) callconv(@import("std").os.windows.WINAPI) u16;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowLongA(
    hWnd: ?HWND,
    nIndex: WINDOW_LONG_PTR_INDEX,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowLongW(
    hWnd: ?HWND,
    nIndex: WINDOW_LONG_PTR_INDEX,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetWindowLongA(
    hWnd: ?HWND,
    nIndex: WINDOW_LONG_PTR_INDEX,
    dwNewLong: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetWindowLongW(
    hWnd: ?HWND,
    nIndex: WINDOW_LONG_PTR_INDEX,
    dwNewLong: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

pub usingnamespace switch (@import("../zig.zig").arch) {
    .X64, .Arm64 => struct {

        // TODO: this type is limited to platform 'windows5.0'
        pub extern "user32" fn GetWindowLongPtrA(
            hWnd: ?HWND,
            nIndex: WINDOW_LONG_PTR_INDEX,
        ) callconv(@import("std").os.windows.WINAPI) isize;
    },
    else => struct {},
};

pub usingnamespace switch (@import("../zig.zig").arch) {
    .X64, .Arm64 => struct {

        // TODO: this type is limited to platform 'windows5.0'
        pub extern "user32" fn GetWindowLongPtrW(
            hWnd: ?HWND,
            nIndex: WINDOW_LONG_PTR_INDEX,
        ) callconv(@import("std").os.windows.WINAPI) isize;
    },
    else => struct {},
};

pub usingnamespace switch (@import("../zig.zig").arch) {
    .X64, .Arm64 => struct {

        // TODO: this type is limited to platform 'windows5.0'
        pub extern "user32" fn SetWindowLongPtrA(
            hWnd: ?HWND,
            nIndex: WINDOW_LONG_PTR_INDEX,
            dwNewLong: isize,
        ) callconv(@import("std").os.windows.WINAPI) isize;
    },
    else => struct {},
};

pub usingnamespace switch (@import("../zig.zig").arch) {
    .X64, .Arm64 => struct {

        // TODO: this type is limited to platform 'windows5.0'
        pub extern "user32" fn SetWindowLongPtrW(
            hWnd: ?HWND,
            nIndex: WINDOW_LONG_PTR_INDEX,
            dwNewLong: isize,
        ) callconv(@import("std").os.windows.WINAPI) isize;
    },
    else => struct {},
};

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClassWord(
    hWnd: ?HWND,
    nIndex: i32,
) callconv(@import("std").os.windows.WINAPI) u16;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetClassWord(
    hWnd: ?HWND,
    nIndex: i32,
    wNewWord: u16,
) callconv(@import("std").os.windows.WINAPI) u16;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClassLongA(
    hWnd: ?HWND,
    nIndex: GET_CLASS_LONG_INDEX,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClassLongW(
    hWnd: ?HWND,
    nIndex: GET_CLASS_LONG_INDEX,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetClassLongA(
    hWnd: ?HWND,
    nIndex: GET_CLASS_LONG_INDEX,
    dwNewLong: i32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetClassLongW(
    hWnd: ?HWND,
    nIndex: GET_CLASS_LONG_INDEX,
    dwNewLong: i32,
) callconv(@import("std").os.windows.WINAPI) u32;

pub usingnamespace switch (@import("../zig.zig").arch) {
    .X64, .Arm64 => struct {

        // TODO: this type is limited to platform 'windows5.0'
        pub extern "user32" fn GetClassLongPtrA(
            hWnd: ?HWND,
            nIndex: GET_CLASS_LONG_INDEX,
        ) callconv(@import("std").os.windows.WINAPI) usize;
    },
    else => struct {},
};

pub usingnamespace switch (@import("../zig.zig").arch) {
    .X64, .Arm64 => struct {

        // TODO: this type is limited to platform 'windows5.0'
        pub extern "user32" fn GetClassLongPtrW(
            hWnd: ?HWND,
            nIndex: GET_CLASS_LONG_INDEX,
        ) callconv(@import("std").os.windows.WINAPI) usize;
    },
    else => struct {},
};

pub usingnamespace switch (@import("../zig.zig").arch) {
    .X64, .Arm64 => struct {

        // TODO: this type is limited to platform 'windows5.0'
        pub extern "user32" fn SetClassLongPtrA(
            hWnd: ?HWND,
            nIndex: GET_CLASS_LONG_INDEX,
            dwNewLong: isize,
        ) callconv(@import("std").os.windows.WINAPI) usize;
    },
    else => struct {},
};

pub usingnamespace switch (@import("../zig.zig").arch) {
    .X64, .Arm64 => struct {

        // TODO: this type is limited to platform 'windows5.0'
        pub extern "user32" fn SetClassLongPtrW(
            hWnd: ?HWND,
            nIndex: GET_CLASS_LONG_INDEX,
            dwNewLong: isize,
        ) callconv(@import("std").os.windows.WINAPI) usize;
    },
    else => struct {},
};

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetProcessDefaultLayout(
    pdwDefaultLayout: ?*u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetProcessDefaultLayout(
    dwDefaultLayout: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetDesktopWindow() callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetParent(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetParent(
    hWndChild: ?HWND,
    hWndNewParent: ?HWND,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EnumChildWindows(
    hWndParent: ?HWND,
    lpEnumFunc: ?WNDENUMPROC,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn FindWindowA(
    lpClassName: ?[*:0]const u8,
    lpWindowName: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn FindWindowW(
    lpClassName: ?[*:0]const u16,
    lpWindowName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn FindWindowExA(
    hWndParent: ?HWND,
    hWndChildAfter: ?HWND,
    lpszClass: ?[*:0]const u8,
    lpszWindow: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn FindWindowExW(
    hWndParent: ?HWND,
    hWndChildAfter: ?HWND,
    lpszClass: ?[*:0]const u16,
    lpszWindow: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetShellWindow() callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RegisterShellHookWindow(
    hwnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DeregisterShellHookWindow(
    hwnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EnumWindows(
    lpEnumFunc: ?WNDENUMPROC,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn EnumThreadWindows(
    dwThreadId: u32,
    lpfn: ?WNDENUMPROC,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClassNameA(
    hWnd: ?HWND,
    lpClassName: [*:0]u8,
    nMaxCount: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetClassNameW(
    hWnd: ?HWND,
    lpClassName: [*:0]u16,
    nMaxCount: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetTopWindow(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowThreadProcessId(
    hWnd: ?HWND,
    lpdwProcessId: ?*u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.1.2600'
pub extern "user32" fn IsGUIThread(
    bConvert: BOOL,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetLastActivePopup(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindow(
    hWnd: ?HWND,
    uCmd: GET_WINDOW_CMD,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

pub extern "user32" fn SetWindowsHookA(
    nFilterType: i32,
    pfnFilterProc: ?HOOKPROC,
) callconv(@import("std").os.windows.WINAPI) ?HHOOK;

pub extern "user32" fn SetWindowsHookW(
    nFilterType: i32,
    pfnFilterProc: ?HOOKPROC,
) callconv(@import("std").os.windows.WINAPI) ?HHOOK;

pub extern "user32" fn UnhookWindowsHook(
    nCode: i32,
    pfnFilterProc: ?HOOKPROC,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetWindowsHookExA(
    idHook: WINDOWS_HOOK_ID,
    lpfn: ?HOOKPROC,
    hmod: ?HINSTANCE,
    dwThreadId: u32,
) callconv(@import("std").os.windows.WINAPI) ?HHOOK;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetWindowsHookExW(
    idHook: WINDOWS_HOOK_ID,
    lpfn: ?HOOKPROC,
    hmod: ?HINSTANCE,
    dwThreadId: u32,
) callconv(@import("std").os.windows.WINAPI) ?HHOOK;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn UnhookWindowsHookEx(
    hhk: ?HHOOK,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CallNextHookEx(
    hhk: ?HHOOK,
    nCode: i32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CheckMenuRadioItem(
    hmenu: ?HMENU,
    first: u32,
    last: u32,
    check: u32,
    flags: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadCursorA(
    hInstance: ?HINSTANCE,
    lpCursorName: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HCURSOR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadCursorW(
    hInstance: ?HINSTANCE,
    lpCursorName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?HCURSOR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadCursorFromFileA(
    lpFileName: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HCURSOR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadCursorFromFileW(
    lpFileName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?HCURSOR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateCursor(
    hInst: ?HINSTANCE,
    xHotSpot: i32,
    yHotSpot: i32,
    nWidth: i32,
    nHeight: i32,
    pvANDPlane: ?*const anyopaque,
    pvXORPlane: ?*const anyopaque,
) callconv(@import("std").os.windows.WINAPI) ?HCURSOR;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DestroyCursor(
    hCursor: ?HCURSOR,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SetSystemCursor(
    hcur: ?HCURSOR,
    id: SYSTEM_CURSOR_ID,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadIconA(
    hInstance: ?HINSTANCE,
    lpIconName: ?[*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HICON;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadIconW(
    hInstance: ?HINSTANCE,
    lpIconName: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) ?HICON;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn PrivateExtractIconsA(
    szFileName: *[260]u8,
    nIconIndex: i32,
    cxIcon: i32,
    cyIcon: i32,
    phicon: ?[*]?HICON,
    piconid: ?[*]u32,
    nIcons: u32,
    flags: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn PrivateExtractIconsW(
    szFileName: *[260]u16,
    nIconIndex: i32,
    cxIcon: i32,
    cyIcon: i32,
    phicon: ?[*]?HICON,
    piconid: ?[*]u32,
    nIcons: u32,
    flags: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateIcon(
    hInstance: ?HINSTANCE,
    nWidth: i32,
    nHeight: i32,
    cPlanes: u8,
    cBitsPixel: u8,
    lpbANDbits: [*:0]const u8,
    lpbXORbits: [*:0]const u8,
) callconv(@import("std").os.windows.WINAPI) ?HICON;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DestroyIcon(
    hIcon: ?HICON,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LookupIconIdFromDirectory(
    presbits: ?*u8,
    fIcon: BOOL,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LookupIconIdFromDirectoryEx(
    presbits: ?*u8,
    fIcon: BOOL,
    cxDesired: i32,
    cyDesired: i32,
    Flags: IMAGE_FLAGS,
) callconv(@import("std").os.windows.WINAPI) i32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateIconFromResource(
    // TODO: what to do with BytesParamIndex 1?
    presbits: ?*u8,
    dwResSize: u32,
    fIcon: BOOL,
    dwVer: u32,
) callconv(@import("std").os.windows.WINAPI) ?HICON;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateIconFromResourceEx(
    // TODO: what to do with BytesParamIndex 1?
    presbits: ?*u8,
    dwResSize: u32,
    fIcon: BOOL,
    dwVer: u32,
    cxDesired: i32,
    cyDesired: i32,
    Flags: IMAGE_FLAGS,
) callconv(@import("std").os.windows.WINAPI) ?HICON;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadImageA(
    hInst: ?HINSTANCE,
    name: ?[*:0]const u8,
    type: GDI_IMAGE_TYPE,
    cx: i32,
    cy: i32,
    fuLoad: IMAGE_FLAGS,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn LoadImageW(
    hInst: ?HINSTANCE,
    name: ?[*:0]const u16,
    type: GDI_IMAGE_TYPE,
    cx: i32,
    cy: i32,
    fuLoad: IMAGE_FLAGS,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CopyImage(
    h: ?HANDLE,
    type: GDI_IMAGE_TYPE,
    cx: i32,
    cy: i32,
    flags: IMAGE_FLAGS,
) callconv(@import("std").os.windows.WINAPI) ?HANDLE;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DrawIconEx(
    hdc: ?HDC,
    xLeft: i32,
    yTop: i32,
    hIcon: ?HICON,
    cxWidth: i32,
    cyWidth: i32,
    istepIfAniCur: u32,
    hbrFlickerFreeDraw: ?HBRUSH,
    diFlags: DI_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateIconIndirect(
    piconinfo: ?*ICONINFO,
) callconv(@import("std").os.windows.WINAPI) ?HICON;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CopyIcon(
    hIcon: ?HICON,
) callconv(@import("std").os.windows.WINAPI) ?HICON;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetIconInfo(
    hIcon: ?HICON,
    piconinfo: ?*ICONINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn GetIconInfoExA(
    hicon: ?HICON,
    piconinfo: ?*ICONINFOEXA,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn GetIconInfoExW(
    hicon: ?HICON,
    piconinfo: ?*ICONINFOEXW,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsDialogMessageA(
    hDlg: ?HWND,
    lpMsg: ?*MSG,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn IsDialogMessageW(
    hDlg: ?HWND,
    lpMsg: ?*MSG,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn MapDialogRect(
    hDlg: ?HWND,
    lpRect: ?*RECT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn GetScrollInfo(
    hwnd: ?HWND,
    nBar: SCROLLBAR_CONSTANTS,
    lpsi: ?*SCROLLINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DefFrameProcA(
    hWnd: ?HWND,
    hWndMDIClient: ?HWND,
    uMsg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DefFrameProcW(
    hWnd: ?HWND,
    hWndMDIClient: ?HWND,
    uMsg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DefMDIChildProcA(
    hWnd: ?HWND,
    uMsg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn DefMDIChildProcW(
    hWnd: ?HWND,
    uMsg: u32,
    wParam: WPARAM,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) LRESULT;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn TranslateMDISysAccel(
    hWndClient: ?HWND,
    lpMsg: ?*MSG,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn ArrangeIconicWindows(
    hWnd: ?HWND,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateMDIWindowA(
    lpClassName: ?[*:0]const u8,
    lpWindowName: ?[*:0]const u8,
    dwStyle: WINDOW_STYLE,
    X: i32,
    Y: i32,
    nWidth: i32,
    nHeight: i32,
    hWndParent: ?HWND,
    hInstance: ?HINSTANCE,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CreateMDIWindowW(
    lpClassName: ?[*:0]const u16,
    lpWindowName: ?[*:0]const u16,
    dwStyle: WINDOW_STYLE,
    X: i32,
    Y: i32,
    nWidth: i32,
    nHeight: i32,
    hWndParent: ?HWND,
    hInstance: ?HINSTANCE,
    lParam: LPARAM,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn TileWindows(
    hwndParent: ?HWND,
    wHow: TILE_WINDOWS_HOW,
    lpRect: ?*const RECT,
    cKids: u32,
    lpKids: ?[*]const ?HWND,
) callconv(@import("std").os.windows.WINAPI) u16;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn CascadeWindows(
    hwndParent: ?HWND,
    wHow: CASCADE_WINDOWS_HOW,
    lpRect: ?*const RECT,
    cKids: u32,
    lpKids: ?[*]const ?HWND,
) callconv(@import("std").os.windows.WINAPI) u16;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SystemParametersInfoA(
    uiAction: SYSTEM_PARAMETERS_INFO_ACTION,
    uiParam: u32,
    pvParam: ?*anyopaque,
    fWinIni: SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn SystemParametersInfoW(
    uiAction: SYSTEM_PARAMETERS_INFO_ACTION,
    uiParam: u32,
    pvParam: ?*anyopaque,
    fWinIni: SYSTEM_PARAMETERS_INFO_UPDATE_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn SoundSentry() callconv(@import("std").os.windows.WINAPI) BOOL;

pub extern "user32" fn SetDebugErrorLevel(
    dwLevel: u32,
) callconv(@import("std").os.windows.WINAPI) void;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn InternalGetWindowText(
    hWnd: ?HWND,
    pString: [*:0]u16,
    cchMaxCount: i32,
) callconv(@import("std").os.windows.WINAPI) i32;

pub extern "user32" fn CancelShutdown() callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetGUIThreadInfo(
    idThread: u32,
    pgui: ?*GUITHREADINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn SetProcessDPIAware() callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn IsProcessDPIAware() callconv(@import("std").os.windows.WINAPI) BOOL;

pub extern "user32" fn InheritWindowMonitor(
    hwnd: ?HWND,
    hwndInherit: ?HWND,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowModuleFileNameA(
    hwnd: ?HWND,
    pszFileName: [*:0]u8,
    cchFileNameMax: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowModuleFileNameW(
    hwnd: ?HWND,
    pszFileName: [*:0]u16,
    cchFileNameMax: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetCursorInfo(
    pci: ?*CURSORINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetWindowInfo(
    hwnd: ?HWND,
    pwi: ?*WINDOWINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetTitleBarInfo(
    hwnd: ?HWND,
    pti: ?*TITLEBARINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetMenuBarInfo(
    hwnd: ?HWND,
    idObject: OBJECT_IDENTIFIER,
    idItem: i32,
    pmbi: ?*MENUBARINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn GetScrollBarInfo(
    hwnd: ?HWND,
    idObject: OBJECT_IDENTIFIER,
    psbi: ?*SCROLLBARINFO,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetAncestor(
    hwnd: ?HWND,
    gaFlags: GET_ANCESTOR_FLAGS,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RealChildWindowFromPoint(
    hwndParent: ?HWND,
    ptParentClientCoords: POINT,
) callconv(@import("std").os.windows.WINAPI) ?HWND;

pub extern "user32" fn RealGetWindowClassA(
    hwnd: ?HWND,
    ptszClassName: [*:0]u8,
    cchClassNameMax: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn RealGetWindowClassW(
    hwnd: ?HWND,
    ptszClassName: [*:0]u16,
    cchClassNameMax: u32,
) callconv(@import("std").os.windows.WINAPI) u32;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetAltTabInfoA(
    hwnd: ?HWND,
    iItem: i32,
    pati: ?*ALTTABINFO,
    pszItemText: ?[*:0]u8,
    cchItemText: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows5.0'
pub extern "user32" fn GetAltTabInfoW(
    hwnd: ?HWND,
    iItem: i32,
    pati: ?*ALTTABINFO,
    pszItemText: ?[*:0]u16,
    cchItemText: u32,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.0.6000'
pub extern "user32" fn ChangeWindowMessageFilter(
    message: u32,
    dwFlag: CHANGE_WINDOW_MESSAGE_FILTER_FLAGS,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows6.1'
pub extern "user32" fn ChangeWindowMessageFilterEx(
    hwnd: ?HWND,
    message: u32,
    action: WINDOW_MESSAGE_FILTER_ACTION,
    pChangeFilterStruct: ?*CHANGEFILTERSTRUCT,
) callconv(@import("std").os.windows.WINAPI) BOOL;

// TODO: this type is limited to platform 'windows10.0.10240'
pub extern "mrmsupport" fn CreateResourceIndexer(
    projectRoot: ?[*:0]const u16,
    extensionDllPath: ?[*:0]const u16,
    ppResourceIndexer: ?*?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

// TODO: this type is limited to platform 'windows10.0.10240'
pub extern "mrmsupport" fn DestroyResourceIndexer(
    resourceIndexer: ?*anyopaque,
) callconv(@import("std").os.windows.WINAPI) void;

// TODO: this type is limited to platform 'windows10.0.10240'
pub extern "mrmsupport" fn IndexFilePath(
    resourceIndexer: ?*anyopaque,
    filePath: ?[*:0]const u16,
    ppResourceUri: ?*?PWSTR,
    pQualifierCount: ?*u32,
    ppQualifiers: [*]?*IndexedResourceQualifier,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

// TODO: this type is limited to platform 'windows10.0.10240'
pub extern "mrmsupport" fn DestroyIndexedResults(
    resourceUri: ?PWSTR,
    qualifierCount: u32,
    qualifiers: ?[*]IndexedResourceQualifier,
) callconv(@import("std").os.windows.WINAPI) void;

pub extern "mrmsupport" fn MrmCreateResourceIndexer(
    packageFamilyName: ?[*:0]const u16,
    projectRoot: ?[*:0]const u16,
    platformVersion: MrmPlatformVersion,
    defaultQualifiers: ?[*:0]const u16,
    indexer: ?*MrmResourceIndexerHandle,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateResourceIndexerFromPreviousSchemaFile(
    projectRoot: ?[*:0]const u16,
    platformVersion: MrmPlatformVersion,
    defaultQualifiers: ?[*:0]const u16,
    schemaFile: ?[*:0]const u16,
    indexer: ?*MrmResourceIndexerHandle,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateResourceIndexerFromPreviousPriFile(
    projectRoot: ?[*:0]const u16,
    platformVersion: MrmPlatformVersion,
    defaultQualifiers: ?[*:0]const u16,
    priFile: ?[*:0]const u16,
    indexer: ?*MrmResourceIndexerHandle,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateResourceIndexerFromPreviousSchemaData(
    projectRoot: ?[*:0]const u16,
    platformVersion: MrmPlatformVersion,
    defaultQualifiers: ?[*:0]const u16,
    // TODO: what to do with BytesParamIndex 4?
    schemaXmlData: ?*u8,
    schemaXmlSize: u32,
    indexer: ?*MrmResourceIndexerHandle,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateResourceIndexerFromPreviousPriData(
    projectRoot: ?[*:0]const u16,
    platformVersion: MrmPlatformVersion,
    defaultQualifiers: ?[*:0]const u16,
    // TODO: what to do with BytesParamIndex 4?
    priData: ?*u8,
    priSize: u32,
    indexer: ?*MrmResourceIndexerHandle,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateResourceIndexerWithFlags(
    packageFamilyName: ?[*:0]const u16,
    projectRoot: ?[*:0]const u16,
    platformVersion: MrmPlatformVersion,
    defaultQualifiers: ?[*:0]const u16,
    flags: MrmIndexerFlags,
    indexer: ?*MrmResourceIndexerHandle,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmIndexString(
    indexer: MrmResourceIndexerHandle,
    resourceUri: ?[*:0]const u16,
    resourceString: ?[*:0]const u16,
    qualifiers: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmIndexEmbeddedData(
    indexer: MrmResourceIndexerHandle,
    resourceUri: ?[*:0]const u16,
    // TODO: what to do with BytesParamIndex 3?
    embeddedData: ?*const u8,
    embeddedDataSize: u32,
    qualifiers: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmIndexFile(
    indexer: MrmResourceIndexerHandle,
    resourceUri: ?[*:0]const u16,
    filePath: ?[*:0]const u16,
    qualifiers: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmIndexFileAutoQualifiers(
    indexer: MrmResourceIndexerHandle,
    filePath: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmIndexResourceContainerAutoQualifiers(
    indexer: MrmResourceIndexerHandle,
    containerPath: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateResourceFile(
    indexer: MrmResourceIndexerHandle,
    packagingMode: MrmPackagingMode,
    packagingOptions: MrmPackagingOptions,
    outputDirectory: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateResourceFileWithChecksum(
    indexer: MrmResourceIndexerHandle,
    packagingMode: MrmPackagingMode,
    packagingOptions: MrmPackagingOptions,
    checksum: u32,
    outputDirectory: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateResourceFileInMemory(
    indexer: MrmResourceIndexerHandle,
    packagingMode: MrmPackagingMode,
    packagingOptions: MrmPackagingOptions,
    outputPriData: ?*?*u8,
    outputPriSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmPeekResourceIndexerMessages(
    handle: MrmResourceIndexerHandle,
    messages: [*]?*MrmResourceIndexerMessage,
    numMsgs: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmDestroyIndexerAndMessages(
    indexer: MrmResourceIndexerHandle,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmFreeMemory(
    data: ?*u8,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmDumpPriFile(
    indexFileName: ?[*:0]const u16,
    schemaPriFile: ?[*:0]const u16,
    dumpType: MrmDumpType,
    outputXmlFile: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmDumpPriFileInMemory(
    indexFileName: ?[*:0]const u16,
    schemaPriFile: ?[*:0]const u16,
    dumpType: MrmDumpType,
    outputXmlData: ?*?*u8,
    outputXmlSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmDumpPriDataInMemory(
    // TODO: what to do with BytesParamIndex 1?
    inputPriData: ?*u8,
    inputPriSize: u32,
    // TODO: what to do with BytesParamIndex 3?
    schemaPriData: ?*u8,
    schemaPriSize: u32,
    dumpType: MrmDumpType,
    outputXmlData: ?*?*u8,
    outputXmlSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateConfig(
    platformVersion: MrmPlatformVersion,
    defaultQualifiers: ?[*:0]const u16,
    outputXmlFile: ?[*:0]const u16,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmCreateConfigInMemory(
    platformVersion: MrmPlatformVersion,
    defaultQualifiers: ?[*:0]const u16,
    outputXmlData: ?*?*u8,
    outputXmlSize: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

pub extern "mrmsupport" fn MrmGetPriFileContentChecksum(
    priFile: ?[*:0]const u16,
    checksum: ?*u32,
) callconv(@import("std").os.windows.WINAPI) HRESULT;

//--------------------------------------------------------------------------------
// Section: Unicode Aliases (109)
//--------------------------------------------------------------------------------
const thismodule = @This();
pub usingnamespace switch (@import("../zig.zig").unicode_mode) {
    .ansi => struct {
        pub const PROPENUMPROC = thismodule.PROPENUMPROCA;
        pub const PROPENUMPROCEX = thismodule.PROPENUMPROCEXA;
        pub const NAMEENUMPROC = thismodule.NAMEENUMPROCA;
        pub const CBT_CREATEWND = thismodule.CBT_CREATEWNDA;
        pub const WNDCLASSEX = thismodule.WNDCLASSEXA;
        pub const WNDCLASS = thismodule.WNDCLASSA;
        pub const CREATESTRUCT = thismodule.CREATESTRUCTA;
        pub const MENUITEMINFO = thismodule.MENUITEMINFOA;
        pub const MSGBOXPARAMS = thismodule.MSGBOXPARAMSA;
        pub const ICONINFOEX = thismodule.ICONINFOEXA;
        pub const MDICREATESTRUCT = thismodule.MDICREATESTRUCTA;
        pub const NONCLIENTMETRICS = thismodule.NONCLIENTMETRICSA;
        pub const ICONMETRICS = thismodule.ICONMETRICSA;
        pub const LoadString = thismodule.LoadStringA;
        pub const wvsprintf = thismodule.wvsprintfA;
        pub const wsprintf = thismodule.wsprintfA;
        pub const RegisterWindowMessage = thismodule.RegisterWindowMessageA;
        pub const GetMessage = thismodule.GetMessageA;
        pub const DispatchMessage = thismodule.DispatchMessageA;
        pub const PeekMessage = thismodule.PeekMessageA;
        pub const SendMessage = thismodule.SendMessageA;
        pub const SendMessageTimeout = thismodule.SendMessageTimeoutA;
        pub const SendNotifyMessage = thismodule.SendNotifyMessageA;
        pub const SendMessageCallback = thismodule.SendMessageCallbackA;
        pub const RegisterDeviceNotification = thismodule.RegisterDeviceNotificationA;
        pub const PostMessage = thismodule.PostMessageA;
        pub const PostThreadMessage = thismodule.PostThreadMessageA;
        pub const DefWindowProc = thismodule.DefWindowProcA;
        pub const CallWindowProc = thismodule.CallWindowProcA;
        pub const RegisterClass = thismodule.RegisterClassA;
        pub const UnregisterClass = thismodule.UnregisterClassA;
        pub const GetClassInfo = thismodule.GetClassInfoA;
        pub const RegisterClassEx = thismodule.RegisterClassExA;
        pub const GetClassInfoEx = thismodule.GetClassInfoExA;
        pub const CreateWindowEx = thismodule.CreateWindowExA;
        pub const CreateDialogParam = thismodule.CreateDialogParamA;
        pub const CreateDialogIndirectParam = thismodule.CreateDialogIndirectParamA;
        pub const DialogBoxParam = thismodule.DialogBoxParamA;
        pub const DialogBoxIndirectParam = thismodule.DialogBoxIndirectParamA;
        pub const SetDlgItemText = thismodule.SetDlgItemTextA;
        pub const GetDlgItemText = thismodule.GetDlgItemTextA;
        pub const SendDlgItemMessage = thismodule.SendDlgItemMessageA;
        pub const DefDlgProc = thismodule.DefDlgProcA;
        pub const CallMsgFilter = thismodule.CallMsgFilterA;
        pub const CharToOem = thismodule.CharToOemA;
        pub const OemToChar = thismodule.OemToCharA;
        pub const CharToOemBuff = thismodule.CharToOemBuffA;
        pub const OemToCharBuff = thismodule.OemToCharBuffA;
        pub const CharUpper = thismodule.CharUpperA;
        pub const CharUpperBuff = thismodule.CharUpperBuffA;
        pub const CharLower = thismodule.CharLowerA;
        pub const CharLowerBuff = thismodule.CharLowerBuffA;
        pub const CharNext = thismodule.CharNextA;
        pub const CharPrev = thismodule.CharPrevA;
        pub const IsCharAlpha = thismodule.IsCharAlphaA;
        pub const IsCharAlphaNumeric = thismodule.IsCharAlphaNumericA;
        pub const IsCharUpper = thismodule.IsCharUpperA;
        pub const LoadAccelerators = thismodule.LoadAcceleratorsA;
        pub const CreateAcceleratorTable = thismodule.CreateAcceleratorTableA;
        pub const CopyAcceleratorTable = thismodule.CopyAcceleratorTableA;
        pub const TranslateAccelerator = thismodule.TranslateAcceleratorA;
        pub const LoadMenu = thismodule.LoadMenuA;
        pub const LoadMenuIndirect = thismodule.LoadMenuIndirectA;
        pub const ChangeMenu = thismodule.ChangeMenuA;
        pub const GetMenuString = thismodule.GetMenuStringA;
        pub const InsertMenu = thismodule.InsertMenuA;
        pub const AppendMenu = thismodule.AppendMenuA;
        pub const ModifyMenu = thismodule.ModifyMenuA;
        pub const InsertMenuItem = thismodule.InsertMenuItemA;
        pub const GetMenuItemInfo = thismodule.GetMenuItemInfoA;
        pub const SetMenuItemInfo = thismodule.SetMenuItemInfoA;
        pub const SetProp = thismodule.SetPropA;
        pub const GetProp = thismodule.GetPropA;
        pub const RemoveProp = thismodule.RemovePropA;
        pub const EnumPropsEx = thismodule.EnumPropsExA;
        pub const EnumProps = thismodule.EnumPropsA;
        pub const SetWindowText = thismodule.SetWindowTextA;
        pub const GetWindowText = thismodule.GetWindowTextA;
        pub const GetWindowTextLength = thismodule.GetWindowTextLengthA;
        pub const MessageBox = thismodule.MessageBoxA;
        pub const MessageBoxEx = thismodule.MessageBoxExA;
        pub const MessageBoxIndirect = thismodule.MessageBoxIndirectA;
        pub const GetWindowLong = thismodule.GetWindowLongA;
        pub const SetWindowLong = thismodule.SetWindowLongA;
        pub const GetWindowLongPtr = thismodule.GetWindowLongPtrA;
        pub const SetWindowLongPtr = thismodule.SetWindowLongPtrA;
        pub const GetClassLong = thismodule.GetClassLongA;
        pub const SetClassLong = thismodule.SetClassLongA;
        pub const GetClassLongPtr = thismodule.GetClassLongPtrA;
        pub const SetClassLongPtr = thismodule.SetClassLongPtrA;
        pub const FindWindow = thismodule.FindWindowA;
        pub const FindWindowEx = thismodule.FindWindowExA;
        pub const GetClassName = thismodule.GetClassNameA;
        pub const SetWindowsHook = thismodule.SetWindowsHookA;
        pub const SetWindowsHookEx = thismodule.SetWindowsHookExA;
        pub const LoadCursor = thismodule.LoadCursorA;
        pub const LoadCursorFromFile = thismodule.LoadCursorFromFileA;
        pub const LoadIcon = thismodule.LoadIconA;
        pub const PrivateExtractIcons = thismodule.PrivateExtractIconsA;
        pub const LoadImage = thismodule.LoadImageA;
        pub const GetIconInfoEx = thismodule.GetIconInfoExA;
        pub const IsDialogMessage = thismodule.IsDialogMessageA;
        pub const DefFrameProc = thismodule.DefFrameProcA;
        pub const DefMDIChildProc = thismodule.DefMDIChildProcA;
        pub const CreateMDIWindow = thismodule.CreateMDIWindowA;
        pub const SystemParametersInfo = thismodule.SystemParametersInfoA;
        pub const GetWindowModuleFileName = thismodule.GetWindowModuleFileNameA;
        pub const RealGetWindowClass = thismodule.RealGetWindowClassA;
        pub const GetAltTabInfo = thismodule.GetAltTabInfoA;
    },
    .wide => struct {
        pub const PROPENUMPROC = thismodule.PROPENUMPROCW;
        pub const PROPENUMPROCEX = thismodule.PROPENUMPROCEXW;
        pub const NAMEENUMPROC = thismodule.NAMEENUMPROCW;
        pub const CBT_CREATEWND = thismodule.CBT_CREATEWNDW;
        pub const WNDCLASSEX = thismodule.WNDCLASSEXW;
        pub const WNDCLASS = thismodule.WNDCLASSW;
        pub const CREATESTRUCT = thismodule.CREATESTRUCTW;
        pub const MENUITEMINFO = thismodule.MENUITEMINFOW;
        pub const MSGBOXPARAMS = thismodule.MSGBOXPARAMSW;
        pub const ICONINFOEX = thismodule.ICONINFOEXW;
        pub const MDICREATESTRUCT = thismodule.MDICREATESTRUCTW;
        pub const NONCLIENTMETRICS = thismodule.NONCLIENTMETRICSW;
        pub const ICONMETRICS = thismodule.ICONMETRICSW;
        pub const LoadString = thismodule.LoadStringW;
        pub const wvsprintf = thismodule.wvsprintfW;
        pub const wsprintf = thismodule.wsprintfW;
        pub const RegisterWindowMessage = thismodule.RegisterWindowMessageW;
        pub const GetMessage = thismodule.GetMessageW;
        pub const DispatchMessage = thismodule.DispatchMessageW;
        pub const PeekMessage = thismodule.PeekMessageW;
        pub const SendMessage = thismodule.SendMessageW;
        pub const SendMessageTimeout = thismodule.SendMessageTimeoutW;
        pub const SendNotifyMessage = thismodule.SendNotifyMessageW;
        pub const SendMessageCallback = thismodule.SendMessageCallbackW;
        pub const RegisterDeviceNotification = thismodule.RegisterDeviceNotificationW;
        pub const PostMessage = thismodule.PostMessageW;
        pub const PostThreadMessage = thismodule.PostThreadMessageW;
        pub const DefWindowProc = thismodule.DefWindowProcW;
        pub const CallWindowProc = thismodule.CallWindowProcW;
        pub const RegisterClass = thismodule.RegisterClassW;
        pub const UnregisterClass = thismodule.UnregisterClassW;
        pub const GetClassInfo = thismodule.GetClassInfoW;
        pub const RegisterClassEx = thismodule.RegisterClassExW;
        pub const GetClassInfoEx = thismodule.GetClassInfoExW;
        pub const CreateWindowEx = thismodule.CreateWindowExW;
        pub const CreateDialogParam = thismodule.CreateDialogParamW;
        pub const CreateDialogIndirectParam = thismodule.CreateDialogIndirectParamW;
        pub const DialogBoxParam = thismodule.DialogBoxParamW;
        pub const DialogBoxIndirectParam = thismodule.DialogBoxIndirectParamW;
        pub const SetDlgItemText = thismodule.SetDlgItemTextW;
        pub const GetDlgItemText = thismodule.GetDlgItemTextW;
        pub const SendDlgItemMessage = thismodule.SendDlgItemMessageW;
        pub const DefDlgProc = thismodule.DefDlgProcW;
        pub const CallMsgFilter = thismodule.CallMsgFilterW;
        pub const CharToOem = thismodule.CharToOemW;
        pub const OemToChar = thismodule.OemToCharW;
        pub const CharToOemBuff = thismodule.CharToOemBuffW;
        pub const OemToCharBuff = thismodule.OemToCharBuffW;
        pub const CharUpper = thismodule.CharUpperW;
        pub const CharUpperBuff = thismodule.CharUpperBuffW;
        pub const CharLower = thismodule.CharLowerW;
        pub const CharLowerBuff = thismodule.CharLowerBuffW;
        pub const CharNext = thismodule.CharNextW;
        pub const CharPrev = thismodule.CharPrevW;
        pub const IsCharAlpha = thismodule.IsCharAlphaW;
        pub const IsCharAlphaNumeric = thismodule.IsCharAlphaNumericW;
        pub const IsCharUpper = thismodule.IsCharUpperW;
        pub const LoadAccelerators = thismodule.LoadAcceleratorsW;
        pub const CreateAcceleratorTable = thismodule.CreateAcceleratorTableW;
        pub const CopyAcceleratorTable = thismodule.CopyAcceleratorTableW;
        pub const TranslateAccelerator = thismodule.TranslateAcceleratorW;
        pub const LoadMenu = thismodule.LoadMenuW;
        pub const LoadMenuIndirect = thismodule.LoadMenuIndirectW;
        pub const ChangeMenu = thismodule.ChangeMenuW;
        pub const GetMenuString = thismodule.GetMenuStringW;
        pub const InsertMenu = thismodule.InsertMenuW;
        pub const AppendMenu = thismodule.AppendMenuW;
        pub const ModifyMenu = thismodule.ModifyMenuW;
        pub const InsertMenuItem = thismodule.InsertMenuItemW;
        pub const GetMenuItemInfo = thismodule.GetMenuItemInfoW;
        pub const SetMenuItemInfo = thismodule.SetMenuItemInfoW;
        pub const SetProp = thismodule.SetPropW;
        pub const GetProp = thismodule.GetPropW;
        pub const RemoveProp = thismodule.RemovePropW;
        pub const EnumPropsEx = thismodule.EnumPropsExW;
        pub const EnumProps = thismodule.EnumPropsW;
        pub const SetWindowText = thismodule.SetWindowTextW;
        pub const GetWindowText = thismodule.GetWindowTextW;
        pub const GetWindowTextLength = thismodule.GetWindowTextLengthW;
        pub const MessageBox = thismodule.MessageBoxW;
        pub const MessageBoxEx = thismodule.MessageBoxExW;
        pub const MessageBoxIndirect = thismodule.MessageBoxIndirectW;
        pub const GetWindowLong = thismodule.GetWindowLongW;
        pub const SetWindowLong = thismodule.SetWindowLongW;
        pub const GetWindowLongPtr = thismodule.GetWindowLongPtrW;
        pub const SetWindowLongPtr = thismodule.SetWindowLongPtrW;
        pub const GetClassLong = thismodule.GetClassLongW;
        pub const SetClassLong = thismodule.SetClassLongW;
        pub const GetClassLongPtr = thismodule.GetClassLongPtrW;
        pub const SetClassLongPtr = thismodule.SetClassLongPtrW;
        pub const FindWindow = thismodule.FindWindowW;
        pub const FindWindowEx = thismodule.FindWindowExW;
        pub const GetClassName = thismodule.GetClassNameW;
        pub const SetWindowsHook = thismodule.SetWindowsHookW;
        pub const SetWindowsHookEx = thismodule.SetWindowsHookExW;
        pub const LoadCursor = thismodule.LoadCursorW;
        pub const LoadCursorFromFile = thismodule.LoadCursorFromFileW;
        pub const LoadIcon = thismodule.LoadIconW;
        pub const PrivateExtractIcons = thismodule.PrivateExtractIconsW;
        pub const LoadImage = thismodule.LoadImageW;
        pub const GetIconInfoEx = thismodule.GetIconInfoExW;
        pub const IsDialogMessage = thismodule.IsDialogMessageW;
        pub const DefFrameProc = thismodule.DefFrameProcW;
        pub const DefMDIChildProc = thismodule.DefMDIChildProcW;
        pub const CreateMDIWindow = thismodule.CreateMDIWindowW;
        pub const SystemParametersInfo = thismodule.SystemParametersInfoW;
        pub const GetWindowModuleFileName = thismodule.GetWindowModuleFileNameW;
        pub const RealGetWindowClass = thismodule.RealGetWindowClassW;
        pub const GetAltTabInfo = thismodule.GetAltTabInfoW;
    },
    .unspecified => if (@import("builtin").is_test) struct {
        pub const PROPENUMPROC = *opaque {};
        pub const PROPENUMPROCEX = *opaque {};
        pub const NAMEENUMPROC = *opaque {};
        pub const CBT_CREATEWND = *opaque {};
        pub const WNDCLASSEX = *opaque {};
        pub const WNDCLASS = *opaque {};
        pub const CREATESTRUCT = *opaque {};
        pub const MENUITEMINFO = *opaque {};
        pub const MSGBOXPARAMS = *opaque {};
        pub const ICONINFOEX = *opaque {};
        pub const MDICREATESTRUCT = *opaque {};
        pub const NONCLIENTMETRICS = *opaque {};
        pub const ICONMETRICS = *opaque {};
        pub const LoadString = *opaque {};
        pub const wvsprintf = *opaque {};
        pub const wsprintf = *opaque {};
        pub const RegisterWindowMessage = *opaque {};
        pub const GetMessage = *opaque {};
        pub const DispatchMessage = *opaque {};
        pub const PeekMessage = *opaque {};
        pub const SendMessage = *opaque {};
        pub const SendMessageTimeout = *opaque {};
        pub const SendNotifyMessage = *opaque {};
        pub const SendMessageCallback = *opaque {};
        pub const RegisterDeviceNotification = *opaque {};
        pub const PostMessage = *opaque {};
        pub const PostThreadMessage = *opaque {};
        pub const DefWindowProc = *opaque {};
        pub const CallWindowProc = *opaque {};
        pub const RegisterClass = *opaque {};
        pub const UnregisterClass = *opaque {};
        pub const GetClassInfo = *opaque {};
        pub const RegisterClassEx = *opaque {};
        pub const GetClassInfoEx = *opaque {};
        pub const CreateWindowEx = *opaque {};
        pub const CreateDialogParam = *opaque {};
        pub const CreateDialogIndirectParam = *opaque {};
        pub const DialogBoxParam = *opaque {};
        pub const DialogBoxIndirectParam = *opaque {};
        pub const SetDlgItemText = *opaque {};
        pub const GetDlgItemText = *opaque {};
        pub const SendDlgItemMessage = *opaque {};
        pub const DefDlgProc = *opaque {};
        pub const CallMsgFilter = *opaque {};
        pub const CharToOem = *opaque {};
        pub const OemToChar = *opaque {};
        pub const CharToOemBuff = *opaque {};
        pub const OemToCharBuff = *opaque {};
        pub const CharUpper = *opaque {};
        pub const CharUpperBuff = *opaque {};
        pub const CharLower = *opaque {};
        pub const CharLowerBuff = *opaque {};
        pub const CharNext = *opaque {};
        pub const CharPrev = *opaque {};
        pub const IsCharAlpha = *opaque {};
        pub const IsCharAlphaNumeric = *opaque {};
        pub const IsCharUpper = *opaque {};
        pub const LoadAccelerators = *opaque {};
        pub const CreateAcceleratorTable = *opaque {};
        pub const CopyAcceleratorTable = *opaque {};
        pub const TranslateAccelerator = *opaque {};
        pub const LoadMenu = *opaque {};
        pub const LoadMenuIndirect = *opaque {};
        pub const ChangeMenu = *opaque {};
        pub const GetMenuString = *opaque {};
        pub const InsertMenu = *opaque {};
        pub const AppendMenu = *opaque {};
        pub const ModifyMenu = *opaque {};
        pub const InsertMenuItem = *opaque {};
        pub const GetMenuItemInfo = *opaque {};
        pub const SetMenuItemInfo = *opaque {};
        pub const SetProp = *opaque {};
        pub const GetProp = *opaque {};
        pub const RemoveProp = *opaque {};
        pub const EnumPropsEx = *opaque {};
        pub const EnumProps = *opaque {};
        pub const SetWindowText = *opaque {};
        pub const GetWindowText = *opaque {};
        pub const GetWindowTextLength = *opaque {};
        pub const MessageBox = *opaque {};
        pub const MessageBoxEx = *opaque {};
        pub const MessageBoxIndirect = *opaque {};
        pub const GetWindowLong = *opaque {};
        pub const SetWindowLong = *opaque {};
        pub const GetWindowLongPtr = *opaque {};
        pub const SetWindowLongPtr = *opaque {};
        pub const GetClassLong = *opaque {};
        pub const SetClassLong = *opaque {};
        pub const GetClassLongPtr = *opaque {};
        pub const SetClassLongPtr = *opaque {};
        pub const FindWindow = *opaque {};
        pub const FindWindowEx = *opaque {};
        pub const GetClassName = *opaque {};
        pub const SetWindowsHook = *opaque {};
        pub const SetWindowsHookEx = *opaque {};
        pub const LoadCursor = *opaque {};
        pub const LoadCursorFromFile = *opaque {};
        pub const LoadIcon = *opaque {};
        pub const PrivateExtractIcons = *opaque {};
        pub const LoadImage = *opaque {};
        pub const GetIconInfoEx = *opaque {};
        pub const IsDialogMessage = *opaque {};
        pub const DefFrameProc = *opaque {};
        pub const DefMDIChildProc = *opaque {};
        pub const CreateMDIWindow = *opaque {};
        pub const SystemParametersInfo = *opaque {};
        pub const GetWindowModuleFileName = *opaque {};
        pub const RealGetWindowClass = *opaque {};
        pub const GetAltTabInfo = *opaque {};
    } else struct {
        pub const PROPENUMPROC = @compileError("'PROPENUMPROC' requires that UNICODE be set to true or false in the root module");
        pub const PROPENUMPROCEX = @compileError("'PROPENUMPROCEX' requires that UNICODE be set to true or false in the root module");
        pub const NAMEENUMPROC = @compileError("'NAMEENUMPROC' requires that UNICODE be set to true or false in the root module");
        pub const CBT_CREATEWND = @compileError("'CBT_CREATEWND' requires that UNICODE be set to true or false in the root module");
        pub const WNDCLASSEX = @compileError("'WNDCLASSEX' requires that UNICODE be set to true or false in the root module");
        pub const WNDCLASS = @compileError("'WNDCLASS' requires that UNICODE be set to true or false in the root module");
        pub const CREATESTRUCT = @compileError("'CREATESTRUCT' requires that UNICODE be set to true or false in the root module");
        pub const MENUITEMINFO = @compileError("'MENUITEMINFO' requires that UNICODE be set to true or false in the root module");
        pub const MSGBOXPARAMS = @compileError("'MSGBOXPARAMS' requires that UNICODE be set to true or false in the root module");
        pub const ICONINFOEX = @compileError("'ICONINFOEX' requires that UNICODE be set to true or false in the root module");
        pub const MDICREATESTRUCT = @compileError("'MDICREATESTRUCT' requires that UNICODE be set to true or false in the root module");
        pub const NONCLIENTMETRICS = @compileError("'NONCLIENTMETRICS' requires that UNICODE be set to true or false in the root module");
        pub const ICONMETRICS = @compileError("'ICONMETRICS' requires that UNICODE be set to true or false in the root module");
        pub const LoadString = @compileError("'LoadString' requires that UNICODE be set to true or false in the root module");
        pub const wvsprintf = @compileError("'wvsprintf' requires that UNICODE be set to true or false in the root module");
        pub const wsprintf = @compileError("'wsprintf' requires that UNICODE be set to true or false in the root module");
        pub const RegisterWindowMessage = @compileError("'RegisterWindowMessage' requires that UNICODE be set to true or false in the root module");
        pub const GetMessage = @compileError("'GetMessage' requires that UNICODE be set to true or false in the root module");
        pub const DispatchMessage = @compileError("'DispatchMessage' requires that UNICODE be set to true or false in the root module");
        pub const PeekMessage = @compileError("'PeekMessage' requires that UNICODE be set to true or false in the root module");
        pub const SendMessage = @compileError("'SendMessage' requires that UNICODE be set to true or false in the root module");
        pub const SendMessageTimeout = @compileError("'SendMessageTimeout' requires that UNICODE be set to true or false in the root module");
        pub const SendNotifyMessage = @compileError("'SendNotifyMessage' requires that UNICODE be set to true or false in the root module");
        pub const SendMessageCallback = @compileError("'SendMessageCallback' requires that UNICODE be set to true or false in the root module");
        pub const RegisterDeviceNotification = @compileError("'RegisterDeviceNotification' requires that UNICODE be set to true or false in the root module");
        pub const PostMessage = @compileError("'PostMessage' requires that UNICODE be set to true or false in the root module");
        pub const PostThreadMessage = @compileError("'PostThreadMessage' requires that UNICODE be set to true or false in the root module");
        pub const DefWindowProc = @compileError("'DefWindowProc' requires that UNICODE be set to true or false in the root module");
        pub const CallWindowProc = @compileError("'CallWindowProc' requires that UNICODE be set to true or false in the root module");
        pub const RegisterClass = @compileError("'RegisterClass' requires that UNICODE be set to true or false in the root module");
        pub const UnregisterClass = @compileError("'UnregisterClass' requires that UNICODE be set to true or false in the root module");
        pub const GetClassInfo = @compileError("'GetClassInfo' requires that UNICODE be set to true or false in the root module");
        pub const RegisterClassEx = @compileError("'RegisterClassEx' requires that UNICODE be set to true or false in the root module");
        pub const GetClassInfoEx = @compileError("'GetClassInfoEx' requires that UNICODE be set to true or false in the root module");
        pub const CreateWindowEx = @compileError("'CreateWindowEx' requires that UNICODE be set to true or false in the root module");
        pub const CreateDialogParam = @compileError("'CreateDialogParam' requires that UNICODE be set to true or false in the root module");
        pub const CreateDialogIndirectParam = @compileError("'CreateDialogIndirectParam' requires that UNICODE be set to true or false in the root module");
        pub const DialogBoxParam = @compileError("'DialogBoxParam' requires that UNICODE be set to true or false in the root module");
        pub const DialogBoxIndirectParam = @compileError("'DialogBoxIndirectParam' requires that UNICODE be set to true or false in the root module");
        pub const SetDlgItemText = @compileError("'SetDlgItemText' requires that UNICODE be set to true or false in the root module");
        pub const GetDlgItemText = @compileError("'GetDlgItemText' requires that UNICODE be set to true or false in the root module");
        pub const SendDlgItemMessage = @compileError("'SendDlgItemMessage' requires that UNICODE be set to true or false in the root module");
        pub const DefDlgProc = @compileError("'DefDlgProc' requires that UNICODE be set to true or false in the root module");
        pub const CallMsgFilter = @compileError("'CallMsgFilter' requires that UNICODE be set to true or false in the root module");
        pub const CharToOem = @compileError("'CharToOem' requires that UNICODE be set to true or false in the root module");
        pub const OemToChar = @compileError("'OemToChar' requires that UNICODE be set to true or false in the root module");
        pub const CharToOemBuff = @compileError("'CharToOemBuff' requires that UNICODE be set to true or false in the root module");
        pub const OemToCharBuff = @compileError("'OemToCharBuff' requires that UNICODE be set to true or false in the root module");
        pub const CharUpper = @compileError("'CharUpper' requires that UNICODE be set to true or false in the root module");
        pub const CharUpperBuff = @compileError("'CharUpperBuff' requires that UNICODE be set to true or false in the root module");
        pub const CharLower = @compileError("'CharLower' requires that UNICODE be set to true or false in the root module");
        pub const CharLowerBuff = @compileError("'CharLowerBuff' requires that UNICODE be set to true or false in the root module");
        pub const CharNext = @compileError("'CharNext' requires that UNICODE be set to true or false in the root module");
        pub const CharPrev = @compileError("'CharPrev' requires that UNICODE be set to true or false in the root module");
        pub const IsCharAlpha = @compileError("'IsCharAlpha' requires that UNICODE be set to true or false in the root module");
        pub const IsCharAlphaNumeric = @compileError("'IsCharAlphaNumeric' requires that UNICODE be set to true or false in the root module");
        pub const IsCharUpper = @compileError("'IsCharUpper' requires that UNICODE be set to true or false in the root module");
        pub const LoadAccelerators = @compileError("'LoadAccelerators' requires that UNICODE be set to true or false in the root module");
        pub const CreateAcceleratorTable = @compileError("'CreateAcceleratorTable' requires that UNICODE be set to true or false in the root module");
        pub const CopyAcceleratorTable = @compileError("'CopyAcceleratorTable' requires that UNICODE be set to true or false in the root module");
        pub const TranslateAccelerator = @compileError("'TranslateAccelerator' requires that UNICODE be set to true or false in the root module");
        pub const LoadMenu = @compileError("'LoadMenu' requires that UNICODE be set to true or false in the root module");
        pub const LoadMenuIndirect = @compileError("'LoadMenuIndirect' requires that UNICODE be set to true or false in the root module");
        pub const ChangeMenu = @compileError("'ChangeMenu' requires that UNICODE be set to true or false in the root module");
        pub const GetMenuString = @compileError("'GetMenuString' requires that UNICODE be set to true or false in the root module");
        pub const InsertMenu = @compileError("'InsertMenu' requires that UNICODE be set to true or false in the root module");
        pub const AppendMenu = @compileError("'AppendMenu' requires that UNICODE be set to true or false in the root module");
        pub const ModifyMenu = @compileError("'ModifyMenu' requires that UNICODE be set to true or false in the root module");
        pub const InsertMenuItem = @compileError("'InsertMenuItem' requires that UNICODE be set to true or false in the root module");
        pub const GetMenuItemInfo = @compileError("'GetMenuItemInfo' requires that UNICODE be set to true or false in the root module");
        pub const SetMenuItemInfo = @compileError("'SetMenuItemInfo' requires that UNICODE be set to true or false in the root module");
        pub const SetProp = @compileError("'SetProp' requires that UNICODE be set to true or false in the root module");
        pub const GetProp = @compileError("'GetProp' requires that UNICODE be set to true or false in the root module");
        pub const RemoveProp = @compileError("'RemoveProp' requires that UNICODE be set to true or false in the root module");
        pub const EnumPropsEx = @compileError("'EnumPropsEx' requires that UNICODE be set to true or false in the root module");
        pub const EnumProps = @compileError("'EnumProps' requires that UNICODE be set to true or false in the root module");
        pub const SetWindowText = @compileError("'SetWindowText' requires that UNICODE be set to true or false in the root module");
        pub const GetWindowText = @compileError("'GetWindowText' requires that UNICODE be set to true or false in the root module");
        pub const GetWindowTextLength = @compileError("'GetWindowTextLength' requires that UNICODE be set to true or false in the root module");
        pub const MessageBox = @compileError("'MessageBox' requires that UNICODE be set to true or false in the root module");
        pub const MessageBoxEx = @compileError("'MessageBoxEx' requires that UNICODE be set to true or false in the root module");
        pub const MessageBoxIndirect = @compileError("'MessageBoxIndirect' requires that UNICODE be set to true or false in the root module");
        pub const GetWindowLong = @compileError("'GetWindowLong' requires that UNICODE be set to true or false in the root module");
        pub const SetWindowLong = @compileError("'SetWindowLong' requires that UNICODE be set to true or false in the root module");
        pub const GetWindowLongPtr = @compileError("'GetWindowLongPtr' requires that UNICODE be set to true or false in the root module");
        pub const SetWindowLongPtr = @compileError("'SetWindowLongPtr' requires that UNICODE be set to true or false in the root module");
        pub const GetClassLong = @compileError("'GetClassLong' requires that UNICODE be set to true or false in the root module");
        pub const SetClassLong = @compileError("'SetClassLong' requires that UNICODE be set to true or false in the root module");
        pub const GetClassLongPtr = @compileError("'GetClassLongPtr' requires that UNICODE be set to true or false in the root module");
        pub const SetClassLongPtr = @compileError("'SetClassLongPtr' requires that UNICODE be set to true or false in the root module");
        pub const FindWindow = @compileError("'FindWindow' requires that UNICODE be set to true or false in the root module");
        pub const FindWindowEx = @compileError("'FindWindowEx' requires that UNICODE be set to true or false in the root module");
        pub const GetClassName = @compileError("'GetClassName' requires that UNICODE be set to true or false in the root module");
        pub const SetWindowsHook = @compileError("'SetWindowsHook' requires that UNICODE be set to true or false in the root module");
        pub const SetWindowsHookEx = @compileError("'SetWindowsHookEx' requires that UNICODE be set to true or false in the root module");
        pub const LoadCursor = @compileError("'LoadCursor' requires that UNICODE be set to true or false in the root module");
        pub const LoadCursorFromFile = @compileError("'LoadCursorFromFile' requires that UNICODE be set to true or false in the root module");
        pub const LoadIcon = @compileError("'LoadIcon' requires that UNICODE be set to true or false in the root module");
        pub const PrivateExtractIcons = @compileError("'PrivateExtractIcons' requires that UNICODE be set to true or false in the root module");
        pub const LoadImage = @compileError("'LoadImage' requires that UNICODE be set to true or false in the root module");
        pub const GetIconInfoEx = @compileError("'GetIconInfoEx' requires that UNICODE be set to true or false in the root module");
        pub const IsDialogMessage = @compileError("'IsDialogMessage' requires that UNICODE be set to true or false in the root module");
        pub const DefFrameProc = @compileError("'DefFrameProc' requires that UNICODE be set to true or false in the root module");
        pub const DefMDIChildProc = @compileError("'DefMDIChildProc' requires that UNICODE be set to true or false in the root module");
        pub const CreateMDIWindow = @compileError("'CreateMDIWindow' requires that UNICODE be set to true or false in the root module");
        pub const SystemParametersInfo = @compileError("'SystemParametersInfo' requires that UNICODE be set to true or false in the root module");
        pub const GetWindowModuleFileName = @compileError("'GetWindowModuleFileName' requires that UNICODE be set to true or false in the root module");
        pub const RealGetWindowClass = @compileError("'RealGetWindowClass' requires that UNICODE be set to true or false in the root module");
        pub const GetAltTabInfo = @compileError("'GetAltTabInfo' requires that UNICODE be set to true or false in the root module");
    },
};
//--------------------------------------------------------------------------------
// Section: Imports (24)
//--------------------------------------------------------------------------------
const BLENDFUNCTION = @import("../graphics/gdi.zig").BLENDFUNCTION;
const BOOL = @import("../foundation.zig").BOOL;
const BOOLEAN = @import("../foundation.zig").BOOLEAN;
const CHAR = @import("../foundation.zig").CHAR;
const HANDLE = @import("../foundation.zig").HANDLE;
const HBITMAP = @import("../graphics/gdi.zig").HBITMAP;
const HBRUSH = @import("../graphics/gdi.zig").HBRUSH;
const HDC = @import("../graphics/gdi.zig").HDC;
const HELPINFO = @import("../ui/shell.zig").HELPINFO;
const HINSTANCE = @import("../foundation.zig").HINSTANCE;
const HRESULT = @import("../foundation.zig").HRESULT;
const HRGN = @import("../graphics/gdi.zig").HRGN;
const HWND = @import("../foundation.zig").HWND;
const LOGFONTA = @import("../graphics/gdi.zig").LOGFONTA;
const LOGFONTW = @import("../graphics/gdi.zig").LOGFONTW;
const LPARAM = @import("../foundation.zig").LPARAM;
const LRESULT = @import("../foundation.zig").LRESULT;
const POINT = @import("../foundation.zig").POINT;
const POWER_SETTING_REGISTER_NOTIFICATION_FLAGS = @import("../system/power.zig").POWER_SETTING_REGISTER_NOTIFICATION_FLAGS;
const PSTR = @import("../foundation.zig").PSTR;
const PWSTR = @import("../foundation.zig").PWSTR;
const RECT = @import("../foundation.zig").RECT;
const SIZE = @import("../foundation.zig").SIZE;
const WPARAM = @import("../foundation.zig").WPARAM;

test {
    // The following '_ = <FuncPtrType>' lines are a workaround for https://github.com/ziglang/zig/issues/4476
    if (@hasDecl(@This(), "WNDPROC")) {
        _ = WNDPROC;
    }
    if (@hasDecl(@This(), "DLGPROC")) {
        _ = DLGPROC;
    }
    if (@hasDecl(@This(), "TIMERPROC")) {
        _ = TIMERPROC;
    }
    if (@hasDecl(@This(), "WNDENUMPROC")) {
        _ = WNDENUMPROC;
    }
    if (@hasDecl(@This(), "HOOKPROC")) {
        _ = HOOKPROC;
    }
    if (@hasDecl(@This(), "SENDASYNCPROC")) {
        _ = SENDASYNCPROC;
    }
    if (@hasDecl(@This(), "PROPENUMPROCA")) {
        _ = PROPENUMPROCA;
    }
    if (@hasDecl(@This(), "PROPENUMPROCW")) {
        _ = PROPENUMPROCW;
    }
    if (@hasDecl(@This(), "PROPENUMPROCEXA")) {
        _ = PROPENUMPROCEXA;
    }
    if (@hasDecl(@This(), "PROPENUMPROCEXW")) {
        _ = PROPENUMPROCEXW;
    }
    if (@hasDecl(@This(), "NAMEENUMPROCA")) {
        _ = NAMEENUMPROCA;
    }
    if (@hasDecl(@This(), "NAMEENUMPROCW")) {
        _ = NAMEENUMPROCW;
    }
    if (@hasDecl(@This(), "PREGISTERCLASSNAMEW")) {
        _ = PREGISTERCLASSNAMEW;
    }
    if (@hasDecl(@This(), "MSGBOXCALLBACK")) {
        _ = MSGBOXCALLBACK;
    }

    @setEvalBranchQuota(comptime @import("std").meta.declarations(@This()).len * 3);

    // reference all the pub declarations
    if (!@import("builtin").is_test) return;
    inline for (comptime @import("std").meta.declarations(@This())) |decl| {
        if (decl.is_pub) {
            _ = @field(@This(), decl.name);
        }
    }
}
