/**
 * @link https://learn.microsoft.com/zh-cn/windows/win32/api/winuser/nf-winuser-showwindow
 */
declare enum CmdShow {
    SW_HIDE = 0,
    SW_SHOWNORMAL = 1,
    SW_SHOWMINIMIZED = 2,
    SW_SHOWMAXIMIZED = 3,
    SW_MAXIMIZE = 3,
    SW_SHOWNOACTIVATE = 4,
    SW_SHOW = 5,
    SW_MINIMIZE = 6,
    SW_SHOWMINNOACTIVE = 7,
    SW_SHOWNA = 8,
    SW_RESTORE = 9,
    SW_SHOWDEFAULT = 10,
    SW_FORCEMINIMIZE = 11
}
declare const enum CmdSetPos {
    HWND_BOTTOM = 1,
    HWND_NOTOPMOST = -2,
    HWND_TOP = 0,
    HWND_TOPMOST = -1,
    SWP_ASYNCWINDOWPOS = 16384,
    SWP_DEFERERASE = 8192,
    SWP_DRAWFRAME = 32,
    SWP_FRAMECHANGED = 32,
    SWP_HIDEWINDOW = 128,
    SWP_NOACTIVATE = 16,
    SWP_NOCOPYBITS = 256,
    SWP_NOMOVE = 2,
    SWP_NOOWNERZORDER = 512,
    SWP_NOREDRAW = 8,
    SWP_NOREPOSITION = 512,
    SWP_NOSENDCHANGING = 1024,
    SWP_NOSIZE = 1,
    SWP_NOZORDER = 4,
    SWP_SHOWWINDOW = 64
}
declare const WS_BORDER = 8388608;
declare const WS_CAPTION = 12582912;
declare const WS_CHILD = 1073741824;
declare const WS_CLIPCHILDREN = 33554432;
declare const WS_CLIPSIBLINGS = 67108864;
declare const WS_DISABLED = 134217728;
declare const WS_DLGFRAME = 4194304;
declare const WS_GROUP = 131072;
declare const WS_HSCROLL = 1048576;
declare const WS_ICONIC = 536870912;
declare const WS_MAXIMIZE = 16777216;
declare const WS_MAXIMIZEBOX = 65536;
declare const WS_MINIMIZE = 536870912;
declare const WS_MINIMIZEBOX = 131072;
declare const WS_OVERLAPPED = 0;
declare const WS_POPUP = 2147483648;
declare const WS_SIZEBOX = 262144;
declare const WS_SYSMENU = 524288;
declare const WS_TABSTOP = 65536;
declare const WS_THICKFRAME = 262144;
declare const WS_TILED = 0;
declare const WS_VISIBLE = 268435456;
declare const WS_VSCROLL = 2097152;
declare const WS_OVERLAPPEDWINDOW: number;
declare const WS_POPUPWINDOW: number;
declare const WS_TILEDWINDOW: number;
declare const WS_EX_ACCEPTFILES = 16;
declare const WS_EX_APPWINDOW = 262144;
declare const WS_EX_CLIENTEDGE = 512;
declare const WS_EX_COMPOSITED = 33554432;
declare const WS_EX_CONTEXTHELP = 1024;
declare const WS_EX_CONTROLPARENT = 65536;
declare const WS_EX_DLGMODALFRAME = 1;
declare const WS_EX_LAYERED = 524288;
declare const WS_EX_LAYOUTRTL = 4194304;
declare const WS_EX_LEFT = 0;
declare const WS_EX_LEFTSCROLLBAR = 16384;
declare const WS_EX_LTRREADING = 0;
declare const WS_EX_MDICHILD = 64;
declare const WS_EX_NOACTIVATE = 134217728;
declare const WS_EX_NOINHERITLAYOUT = 1048576;
declare const WS_EX_NOPARENTNOTIFY = 4;
declare const WS_EX_NOREDIRECTIONBITMAP = 2097152;
declare const WS_EX_RIGHT = 4096;
declare const WS_EX_RIGHTSCROLLBAR = 0;
declare const WS_EX_RTLREADING = 8192;
declare const WS_EX_STATICEDGE = 131072;
declare const WS_EX_TOOLWINDOW = 128;
declare const WS_EX_TOPMOST = 8;
declare const WS_EX_TRANSPARENT = 32;
declare const WS_EX_WINDOWEDGE = 256;
declare const WS_EX_OVERLAPPEDWINDOW: number;
declare const WS_EX_PALETTEWINDOW: number;
declare const PM_NOREMOVE = 0;
declare const PM_REMOVE = 1;
declare const PM_NOYIELD = 2;
declare const CW_USEDEFAULT: number;

/**
 * Virtual-Key Codes
 *
 * @description The following table shows the symbolic constant names, hexadecimal values,
 * and mouse or keyboard equivalents for the virtual-key codes used by the system.
 * The codes are listed in numeric order.
 * @link https://docs.microsoft.com/zh-cn/windows/win32/inputdev/virtual-key-codes?redirectedfrom=MSDN
 * @link https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes?redirectedfrom=MSDN
 */
declare enum VirtualKey {
    /** Left mouse button */
    VK_LBUTTON = 1,
    /** Right mouse button */
    VK_RBUTTON = 2,
    /** Control-break processing */
    VK_CANCEL = 3,
    /** Middle mouse button(three - button mouse) */
    VK_MBUTTON = 4,
    /** X1 mouse button */
    VK_XBUTTON1 = 5,
    /** X2 mouse button */
    VK_XBUTTON2 = 6,
    /** BACKSPACE key */
    VK_BACK = 8,
    /** TAB key */
    VK_TAB = 9,
    /** CLEAR key */
    VK_CLEAR = 12,
    VK_RETURN = 13,
    VK_SHIFT = 16,
    VK_CONTROL = 17,
    /** ALT key */
    VK_MENU = 18,
    VK_PAUSE = 19,
    /** CAPS LOCK key */
    VK_CAPITAL = 20,
    /** IME Kana mode */
    VK_KANA = 21,
    /** IME Hanguel mode(maintained for compatibility; use VK_HANGUL)  */
    /** IME Hangul mode */
    VK_HANGUL = 21,
    /** IME On */
    VK_IME_ON = 22,
    VK_JUNJA = 23,
    VK_FINAL = 24,
    VK_HANJA = 25,
    VK_KANJI = 25,
    /** IME Off */
    VK_IME_OFF = 26,
    /** ESC key */
    VK_ESCAPE = 27,
    /** IME convert */
    VK_CONVERT = 28,
    /** IME nonconvert */
    VK_NONCONVERT = 29,
    /** IME accept */
    VK_ACCEPT = 30,
    /** IME mode change request */
    VK_MODECHANGE = 31,
    /** SPACEBAR */
    VK_SPACE = 32,
    /** PAGE UP key */
    VK_PRIOR = 33,
    /** PAGE DOWN key */
    VK_NEXT = 34,
    /** END key */
    VK_END = 35,
    /** HOME key */
    VK_HOME = 36,
    /** LEFT ARROW key */
    VK_LEFT = 37,
    /** UP ARROW key */
    VK_UP = 38,
    /** RIGHT ARROW key */
    VK_RIGHT = 39,
    /** DOWN ARROW key */
    VK_DOWN = 40,
    /** SELECT key */
    VK_SELECT = 41,
    /** PRINT key */
    VK_PRINT = 42,
    /** EXECUTE key */
    VK_EXECUTE = 43,
    /** PRINT SCREEN key */
    VK_SNAPSHOT = 44,
    /** INS key */
    VK_INSERT = 45,
    /** DEL key */
    VK_DELETE = 46,
    /** HELP key */
    VK_HELP = 47,
    /** 0 key */
    VK_0 = 48,
    VK_1 = 49,
    VK_2 = 50,
    VK_3 = 51,
    VK_4 = 52,
    VK_5 = 53,
    VK_6 = 54,
    VK_7 = 55,
    VK_8 = 56,
    VK_9 = 57,
    /** A key */
    VK_A = 65,
    VK_B = 66,
    VK_C = 67,
    VK_D = 68,
    VK_E = 69,
    VK_F = 70,
    VK_G = 71,
    VK_H = 72,
    VK_I = 73,
    VK_J = 74,
    VK_K = 75,
    VK_L = 76,
    VK_M = 77,
    VK_N = 78,
    VK_O = 79,
    VK_P = 80,
    VK_Q = 81,
    VK_R = 82,
    VK_S = 83,
    VK_T = 84,
    VK_U = 85,
    VK_V = 86,
    VK_W = 87,
    VK_X = 88,
    VK_Y = 89,
    VK_Z = 90,
    /** Left Windows key(Natural keyboard) */
    VK_LWIN = 91,
    /** Right Windows key(Natural keyboard) */
    VK_RWIN = 92,
    /** Applications key(Natural keyboard) */
    VK_APPS = 93,
    /** Computer Sleep key */
    VK_SLEEP = 95,
    /** Numeric keypad 0 key */
    VK_NUMPAD0 = 96,
    /** Numeric keypad 1 key */
    VK_NUMPAD1 = 97,
    /** Numeric keypad 2 key */
    VK_NUMPAD2 = 98,
    /** Numeric keypad 3 key */
    VK_NUMPAD3 = 99,
    /** Numeric keypad 4 key */
    VK_NUMPAD4 = 100,
    /** Numeric keypad 5 key */
    VK_NUMPAD5 = 101,
    /** Numeric keypad 6 key */
    VK_NUMPAD6 = 102,
    /** Numeric keypad 7 key */
    VK_NUMPAD7 = 103,
    /** Numeric keypad 8 key */
    VK_NUMPAD8 = 104,
    /** Numeric keypad 9 key */
    VK_NUMPAD9 = 105,
    /** Multiply key */
    VK_MULTIPLY = 106,
    /** Add key */
    VK_ADD = 107,
    /** Separator key */
    VK_SEPARATOR = 108,
    /** Subtract key */
    VK_SUBTRACT = 109,
    /** Decimal key */
    VK_DECIMAL = 110,
    /** Divide key */
    VK_DIVIDE = 111,
    /** F1 key */
    VK_F1 = 112,
    VK_F2 = 113,
    VK_F3 = 114,
    VK_F4 = 115,
    VK_F5 = 116,
    VK_F6 = 117,
    VK_F7 = 118,
    VK_F8 = 119,
    VK_F9 = 120,
    VK_F10 = 121,
    VK_F11 = 122,
    VK_F12 = 123,
    VK_F13 = 124,
    VK_F14 = 125,
    VK_F15 = 126,
    VK_F16 = 127,
    VK_F17 = 128,
    VK_F18 = 129,
    VK_F19 = 130,
    VK_F20 = 131,
    VK_F21 = 132,
    VK_F22 = 133,
    VK_F23 = 134,
    VK_F24 = 135,
    /** NUM LOCK key */
    VK_NUMLOCK = 144,
    /** SCROLL LOCK key */
    VK_SCROLL = 145,
    /** Left SHIFT key */
    VK_LSHIFT = 160,
    /** Right SHIFT key */
    VK_RSHIFT = 161,
    /** Left CONTROL key */
    VK_LCONTROL = 162,
    /** Right CONTROL key */
    VK_RCONTROL = 163,
    /** Left ALT key */
    VK_LMENU = 164,
    /** Right ALT key */
    VK_RMENU = 165,
    /** Browser Back key */
    VK_BROWSER_BACK = 166,
    /** Browser Forward key */
    VK_BROWSER_FORWARD = 167,
    /** Browser Refresh key */
    VK_BROWSER_REFRESH = 168,
    /** Browser Stop key */
    VK_BROWSER_STOP = 169,
    /** Browser Search key */
    VK_BROWSER_SEARCH = 170,
    /** Browser Favorites key */
    VK_BROWSER_FAVORITES = 171,
    /** Browser Start and Home key */
    VK_BROWSER_HOME = 172,
    /** Volume Mute key */
    VK_VOLUME_MUTE = 173,
    /** Volume Down key */
    VK_VOLUME_DOWN = 174,
    /** Volume Up key */
    VK_VOLUME_UP = 175,
    /** Next Track key */
    VK_MEDIA_NEXT_TRACK = 176,
    /** Previous Track key */
    VK_MEDIA_PREV_TRACK = 177,
    /** Stop Media key  */
    VK_MEDIA_STOP = 178,
    /** Play / Pause Media key */
    VK_MEDIA_PLAY_PAUSE = 179,
    /** Start Mail key */
    VK_LAUNCH_MAIL = 180,
    /** Select Media key */
    VK_LAUNCH_MEDIA_SELECT = 181,
    /** Start Application 1 key */
    VK_LAUNCH_APP1 = 182,
    /** Start Application 2 key */
    VK_LAUNCH_APP2 = 183,
    /** Used for miscellaneous characters; it can vary by keyboard.For the US standard keyboard, the ';:' key  */
    VK_OEM_1 = 186,
    /** For any country / region, the '+' key */
    VK_OEM_PLUS = 187,
    /** For any country / region, the ',' key */
    VK_OEM_COMMA = 188,
    /** For any country / region, the '-' key */
    VK_OEM_MINUS = 189,
    /** For any country / region, the '.' key */
    VK_OEM_PERIOD = 190,
    /** Used for miscellaneous characters; it can vary by keyboard.For the US standard keyboard, the '/?' key */
    VK_OEM_2 = 191,
    /** Used for miscellaneous characters; it can vary by keyboard.For the US standard keyboard, the '`~' key  */
    VK_OEM_3 = 192,
    /** Used for miscellaneous characters; it can vary by keyboard.For the US standard keyboard, the '[{' key */
    VK_OEM_4 = 219,
    /** Used for miscellaneous characters; it can vary by keyboard.For the US standard keyboard, the '\|' key */
    VK_OEM_5 = 220,
    /** Used for miscellaneous characters; it can vary by keyboard.For the US standard keyboard, the ']}' key */
    VK_OEM_6 = 221,
    /**
     * Used for miscellaneous characters; it can vary by keyboard.For the US standard keyboard,
     * the 'single-quote/double-quote' key
     */
    VK_OEM_7 = 222,
    /** Used for miscellaneous characters; it can vary by keyboard. */
    VK_OEM_8 = 223,
    /** The <> keys on the US standard keyboard, or the \\| key on the non - US 102 - key keyboard  */
    VK_OEM_102 = 226,
    /** IME PROCESS key */
    VK_PROCESSKEY = 229,
    /**
     * Used to pass Unicode characters as if they were keystrokes.
     * The VK_PACKET key is the low word of a 32 - bit Virtual Key value used for non - keyboard input methods.
     * For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP
     */
    VK_PACKET = 231,
    /** Attn key */
    VK_ATTN = 246,
    /** CrSel key */
    VK_CRSEL = 247,
    /** ExSel key */
    VK_EXSEL = 248,
    /** Erase EOF key */
    VK_EREOF = 249,
    /** Play key */
    VK_PLAY = 250,
    /** Zoom key */
    VK_ZOOM = 251,
    /** Reserved */
    VK_NONAME = 252,
    /** PA1 key */
    VK_PA1 = 253,
    /** Clear key */
    VK_OEM_CLEAR = 254
}

/** https://docs.microsoft.com/en-us/windows/desktop/api/winbase/nf-winbase-setthreadexecutionstate */
declare enum EXECUTION_STATE {
    /**
     * Enables away mode. This value must be specified with ES_CONTINUOUS.
     * Away mode should be used only by media-recording and media-distribution
     * applications that must perform critical background processing on desktop
     * computers while the computer appears to be sleeping. See Remarks.
     */
    ES_CONTINUOUS = 2147483648,
    /**
     * Informs the system that the state being set should remain in effect until
     * the next call that uses ES_CONTINUOUS and one of the other state flags is cleared.
     */
    ES_AWAYMODE_REQUIRED = 64,
    /** Forces the display to be on by resetting the display idle timer. */
    ES_SYSTEM_REQUIRED = 1,
    /** Forces the system to be in the working state by resetting the system idle timer. */
    ES_DISPLAY_REQUIRED = 2
}

/**
 * Specifies the clockwise rotation of the display.
 * @link https://docs.microsoft.com/en-us/windows/win32/api/wingdi/ne-wingdi-displayconfig_rotation
 */
declare const enum DISPLAYCONFIG_ROTATION {
    DISPLAYCONFIG_ROTATION_IDENTITY = 1,
    DISPLAYCONFIG_ROTATION_ROTATE90 = 2,
    DISPLAYCONFIG_ROTATION_ROTATE180 = 3,
    DISPLAYCONFIG_ROTATION_ROTATE270 = 4,
    DISPLAYCONFIG_ROTATION_FORCE_UINT32 = 4294967295
}
/**
 * Specifies the scaling transformation applied to content displayed
 * on a video present network (VidPN) present path.
 * @link https://docs.microsoft.com/en-us/windows/win32/api/wingdi/ne-wingdi-displayconfig_scaling
 */
declare const enum DISPLAYCONFIG_SCALING {
    DISPLAYCONFIG_SCALING_IDENTITY = 1,
    DISPLAYCONFIG_SCALING_CENTERED = 2,
    DISPLAYCONFIG_SCALING_STRETCHED = 3,
    DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4,
    DISPLAYCONFIG_SCALING_CUSTOM = 5,
    DISPLAYCONFIG_SCALING_PREFERRED = 128,
    DISPLAYCONFIG_SCALING_FORCE_UINT32 = 4294967295
}
/**
 * Specifies the method that the display uses to create an image on a screen.
 * @link https://docs.microsoft.com/en-us/windows/win32/api/wingdi/ne-wingdi-displayconfig_scanline_ordering
 */
declare const enum DISPLAYCONFIG_SCANLINE_ORDERING {
    DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0,
    DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1,
    DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2,
    DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = 3,
    DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_LOWERFIELDFIRST = 3,
    DISPLAYCONFIG_SCANLINE_ORDERING_FORCE_UINT32 = 4294967295
}

declare enum PrinterEnumFlags {
    PRINTER_ENUM_DEFAULT = 1,
    PRINTER_ENUM_LOCAL = 2,
    PRINTER_ENUM_CONNECTIONS = 4,
    PRINTER_ENUM_NAME = 8,
    PRINTER_ENUM_REMOTE = 16,
    PRINTER_ENUM_SHARED = 32,
    PRINTER_ENUM_NETWORK = 64,
    PRINTER_ENUM_EXPAND = 16384,
    PRINTER_ENUM_CONTAINER = 32768,
    PRINTER_ENUM_ICONMASK = 16711680,
    PRINTER_ENUM_ICON1 = 65536,
    PRINTER_ENUM_ICON2 = 131072,
    PRINTER_ENUM_ICON3 = 262144,
    PRINTER_ENUM_ICON4 = 524288,
    PRINTER_ENUM_ICON5 = 1048576,
    PRINTER_ENUM_ICON6 = 2097152,
    PRINTER_ENUM_ICON7 = 4194304,
    PRINTER_ENUM_ICON8 = 8388608,
    PRINTER_ENUM_HIDE = 16777216,
    PRINTER_ENUM_CATEGORY_ALL = 33554432,
    PRINTER_ENUM_CATEGORY_3D = 67108864
}

/**
 * Flash both the window caption and taskbar button.This is equivalent to setting the FLASHW_CAPTION | FLASHW_TRAY flags.
 * @link https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-flashwinfo
 */
declare const FLASHW_ALL = 3;
/**
 * Flash the window caption.
 * @link https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-flashwinfo
 */
declare const FLASHW_CAPTION = 1;
/**
 * Stop flashing. The system restores the window to its original state.
 * @link https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-flashwinfo
 */
declare const FLASHW_STOP = 0;
/**
 * Flash continuously, until the FLASHW_STOP flag is set.
 * @link https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-flashwinfo
 */
declare const FLASHW_TIMER = 4;
/**
 * Flash continuously until the window comes to the foreground.
 * @link https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-flashwinfo
 */
declare const FLASHW_TIMERNOFG = 12;
/**
 * Flash the taskbar button.
 * @link https://docs.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-flashwinfo
 */
declare const FLASHW_TRAY = 2;

/**
 * Used by SendInput to store information for synthesizing input events such as keystrokes, mouse movement, and mouse clicks.
 * @link https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-input
 */
declare enum INPUT {
    INPUT_MOUSE = 0,
    INPUT_KEYBOARD = 1,
    INPUT_HARDWARE = 2
}

/**
 * A simulated keyboard event
 * @link https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-keybdinput
 */
declare enum KEYBDINPUT {
    KEYEVENTF_EXTENDEDKEY = 1,
    KEYEVENTF_KEYUP = 2,
    KEYEVENTF_SCANCODE = 8,
    KEYEVENTF_UNICODE = 4
}

/**
 * A simulated keyboard event
 * @link https://learn.microsoft.com/en-us/windows/win32/api/winuser/ns-winuser-mouseinput
 */
declare enum MOUSEINPUT {
    MOUSEEVENTF_MOVE = 1,
    MOUSEEVENTF_LEFTDOWN = 2,
    MOUSEEVENTF_LEFTUP = 4,
    MOUSEEVENTF_RIGHTDOWN = 8,
    MOUSEEVENTF_RIGHTUP = 16,
    MOUSEEVENTF_MIDDLEDOWN = 32,
    MOUSEEVENTF_MIDDLEUP = 64,
    MOUSEEVENTF_XDOWN = 128,
    MOUSEEVENTF_XUP = 256,
    MOUSEEVENTF_WHEEL = 2048,
    MOUSEEVENTF_HWHEEL = 4096,
    MOUSEEVENTF_MOVE_NOCOALESCE = 8192,
    MOUSEEVENTF_VIRTUALDESK = 16384,
    MOUSEEVENTF_ABSOLUTE = 32768
}

/**
 * @link https://learn.microsoft.com/en-us/windows/win32/winmsg/windowing
 * @link https://learn.microsoft.com/zh-cn/windows/win32/winmsg/window-notifications
 */
declare enum WIN_MSG {
    /** https://docs.microsoft.com/zh-cn/windows/win32/winmsg/window-messages */
    MN_GETHMENU = 481,
    WM_ERASEBKGND = 20,
    WM_GETFONT = 49,
    WM_GETTEXT = 13,
    WM_GETTEXTLENGTH = 14,
    WM_SETFONT = 48,
    WM_SETICON = 128,
    WM_SETTEXT = 12,
    /** https://docs.microsoft.com/zh-cn/windows/win32/winmsg/window-notifications */
    WM_ACTIVATEAPP = 28,
    WM_CANCELMODE = 31,
    WM_CHILDACTIVATE = 34,
    WM_CLOSE = 16,
    WM_CREATE = 1,
    WM_DESTROY = 2,
    WM_ENABLE = 10,
    WM_ENTERSIZEMOVE = 561,
    WM_EXITSIZEMOVE = 562,
    WM_GETICON = 127,
    WM_GETMINMAXINFO = 36,
    WM_INPUTLANGCHANGE = 81,
    WM_INPUTLANGCHANGEREQUEST = 80,
    WM_MOVE = 3,
    WM_MOVING = 534,
    WM_NCACTIVATE = 134,
    WM_NCCALCSIZE = 131,
    WM_NCCREATE = 129,
    WM_NCDESTROY = 130,
    WM_NULL = 0,
    WM_QUERYDRAGICON = 55,
    WM_QUERYOPEN = 19,
    WM_QUIT = 18,
    WM_SHOWWINDOW = 24,
    WM_SIZE = 5,
    WM_SIZING = 532,
    WM_STYLECHANGED = 125,
    WM_STYLECHANGING = 124,
    WM_THEMECHANGED = 794,
    WM_USERCHANGED = 84,
    WM_WINDOWPOSCHANGED = 71,
    WM_WINDOWPOSCHANGING = 70,
    /** https://learn.microsoft.com/en-us/windows/win32/dataxchg/wm-copydata */
    WM_COPYDATA = 74,
    WM_COMMAND = 273,
    WM_CONTEXTMENU = 123,
    WM_ENTERMENULOOP = 529,
    WM_EXITMENULOOP = 530,
    WM_GETTITLEBARINFOEX = 831,
    WM_MENUCOMMAND = 294,
    WM_MENUDRAG = 291,
    WM_MENUGETOBJECT = 292,
    WM_MENURBUTTONUP = 290,
    WM_NEXTMENU = 531,
    WM_UNINITMENUPOPUP = 293
}

/**
 * @link https://learn.microsoft.com/zh-cn/windows/win32/printdocs/printer-info-6
 * @link https://github.com/wine-mirror/wine/blob/master/include/winspool.h
 */
declare enum PRINTER_STATUS {
    unknown = 0,
    PRINTER_STATUS_PAUSED = 1,
    PRINTER_STATUS_ERROR = 2,
    PRINTER_STATUS_PENDING_DELETION = 4,
    PRINTER_STATUS_PAPER_JAM = 8,
    PRINTER_STATUS_PAPER_OUT = 16,
    PRINTER_STATUS_MANUAL_FEED = 32,
    PRINTER_STATUS_PAPER_PROBLEM = 64,
    PRINTER_STATUS_OFFLINE = 128,
    PRINTER_STATUS_IO_ACTIVE = 256,
    PRINTER_STATUS_BUSY = 512,
    PRINTER_STATUS_PRINTING = 1024,
    PRINTER_STATUS_OUTPUT_BIN_FULL = 2048,
    PRINTER_STATUS_NOT_AVAILABLE = 4096,
    PRINTER_STATUS_WAITING = 8192,
    PRINTER_STATUS_PROCESSING = 16384,
    PRINTER_STATUS_INITIALIZING = 32768,
    PRINTER_STATUS_WARMING_UP = 65536,
    PRINTER_STATUS_TONER_LOW = 131072,
    PRINTER_STATUS_NO_TONER = 262144,
    PRINTER_STATUS_PAGE_PUNT = 524288,
    PRINTER_STATUS_USER_INTERVENTION = 1048576,
    PRINTER_STATUS_OUT_OF_MEMORY = 2097152,
    PRINTER_STATUS_DOOR_OPEN = 4194304,
    PRINTER_STATUS_SERVER_UNKNOWN = 8388608,
    PRINTER_STATUS_POWER_SAVE = 16777216,
    PRINTER_STATUS_SERVER_OFFLINE = 33554432,
    PRINTER_STATUS_DRIVER_UPDATE_NEEDED = 67108864
}

export { CW_USEDEFAULT, CmdSetPos, CmdShow, DISPLAYCONFIG_ROTATION, DISPLAYCONFIG_SCALING, DISPLAYCONFIG_SCANLINE_ORDERING, EXECUTION_STATE, FLASHW_ALL, FLASHW_CAPTION, FLASHW_STOP, FLASHW_TIMER, FLASHW_TIMERNOFG, FLASHW_TRAY, INPUT, KEYBDINPUT, MOUSEINPUT, PM_NOREMOVE, PM_NOYIELD, PM_REMOVE, PRINTER_STATUS, PrinterEnumFlags, VirtualKey, WIN_MSG, WS_BORDER, WS_CAPTION, WS_CHILD, WS_CLIPCHILDREN, WS_CLIPSIBLINGS, WS_DISABLED, WS_DLGFRAME, WS_EX_ACCEPTFILES, WS_EX_APPWINDOW, WS_EX_CLIENTEDGE, WS_EX_COMPOSITED, WS_EX_CONTEXTHELP, WS_EX_CONTROLPARENT, WS_EX_DLGMODALFRAME, WS_EX_LAYERED, WS_EX_LAYOUTRTL, WS_EX_LEFT, WS_EX_LEFTSCROLLBAR, WS_EX_LTRREADING, WS_EX_MDICHILD, WS_EX_NOACTIVATE, WS_EX_NOINHERITLAYOUT, WS_EX_NOPARENTNOTIFY, WS_EX_NOREDIRECTIONBITMAP, WS_EX_OVERLAPPEDWINDOW, WS_EX_PALETTEWINDOW, WS_EX_RIGHT, WS_EX_RIGHTSCROLLBAR, WS_EX_RTLREADING, WS_EX_STATICEDGE, WS_EX_TOOLWINDOW, WS_EX_TOPMOST, WS_EX_TRANSPARENT, WS_EX_WINDOWEDGE, WS_GROUP, WS_HSCROLL, WS_ICONIC, WS_MAXIMIZE, WS_MAXIMIZEBOX, WS_MINIMIZE, WS_MINIMIZEBOX, WS_OVERLAPPED, WS_OVERLAPPEDWINDOW, WS_POPUP, WS_POPUPWINDOW, WS_SIZEBOX, WS_SYSMENU, WS_TABSTOP, WS_THICKFRAME, WS_TILED, WS_TILEDWINDOW, WS_VISIBLE, WS_VSCROLL };
