Treehopper C# API
WinApi.User32 Namespace Reference

Classes

struct  AnimationInfo
 
struct  BlendFunction
 
struct  CreateStruct
 
struct  CursorInfo
 
struct  HardwareInput
 
struct  Input
 
struct  InputPacket
 
struct  KeyboardInput
 
struct  KeyboardInputState
 
struct  KeyState
 
struct  LastInputInfo
 
struct  Message
 
struct  MinimizedMetrics
 
struct  MinMaxInfo
 
struct  MonitorInfo
 
struct  MouseInput
 
struct  NcCalcSizeInput
 
struct  NcCalcSizeOutput
 
struct  NcCalcSizeParams
 
struct  NcCalcSizeRegionUnion
 
struct  PaintStruct
 
struct  TitleBarInfo
 
struct  TrackMouseEventOptions
 
class  User32Helpers
 
class  User32Methods
 
struct  WindowClassEx
 Note: Marshalled More...
 
struct  WindowClassExBlittable
 
struct  WindowInfo
 
struct  WindowPlacement
 
struct  WindowPosition
 

Enumerations

enum  WindowStyles {
  WS_BORDER = 0x00800000, WS_CAPTION = 0x00C00000, WS_CHILD = 0x40000000, WS_CHILDWINDOW = 0x40000000,
  WS_CLIPCHILDREN = 0x02000000, WS_CLIPSIBLINGS = 0x04000000, WS_DISABLED = 0x08000000, WS_DLGFRAME = 0x00400000,
  WS_GROUP = 0x00020000, WS_HSCROLL = 0x00100000, WS_ICONIC = 0x20000000, WS_MAXIMIZE = 0x01000000,
  WS_MAXIMIZEBOX = 0x00010000, WS_MINIMIZE = 0x20000000, WS_MINIMIZEBOX = 0x00020000, WS_OVERLAPPED = 0x00000000,
  WS_OVERLAPPEDWINDOW, WS_POPUP = unchecked ((int) 0x80000000), WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU, WS_SIZEBOX = 0x00040000,
  WS_SYSMENU = 0x00080000, WS_TABSTOP = 0x00010000, WS_THICKFRAME = 0x00040000, WS_TILED = 0x00000000,
  WS_TILEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX, WS_VISIBLE = 0x10000000, WS_VSCROLL = 0x00200000
}
 
enum  WindowExStyles {
  WS_EX_ACCEPTFILES = 0x00000010, WS_EX_APPWINDOW = 0x00040000, WS_EX_CLIENTEDGE = 0x00000200, WS_EX_COMPOSITED = 0x02000000,
  WS_EX_CONTEXTHELP = 0x00000400, WS_EX_CONTROLPARENT = 0x00010000, WS_EX_DLGMODALFRAME = 0x00000001, WS_EX_LAYERED = 0x00080000,
  WS_EX_LAYOUTRTL = 0x00400000, WS_EX_LEFT = 0x00000000, WS_EX_LEFTSCROLLBAR = 0x00004000, WS_EX_LTRREADING = 0x00000000,
  WS_EX_MDICHILD = 0x00000040, WS_EX_NOACTIVATE = 0x08000000, WS_EX_NOINHERITLAYOUT = 0x00100000, WS_EX_NOPARENTNOTIFY = 0x00000004,
  WS_EX_NOREDIRECTIONBITMAP = 0x00200000, WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE, WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST, WS_EX_RIGHT = 0x00001000,
  WS_EX_RIGHTSCROLLBAR = 0x00000000, WS_EX_RTLREADING = 0x00002000, WS_EX_STATICEDGE = 0x00020000, WS_EX_TOOLWINDOW = 0x00000080,
  WS_EX_TOPMOST = 0x00000008, WS_EX_TRANSPARENT = 0x00000020, WS_EX_WINDOWEDGE = 0x00000100
}
 
enum  WindowClassStyles {
  CS_BYTEALIGNCLIENT = 0x1000, CS_BYTEALIGNWINDOW = 0x2000, CS_CLASSDC = 0x0040, CS_DBLCLKS = 0x0008,
  CS_DROPSHADOW = 0x00020000, CS_GLOBALCLASS = 0x4000, CS_HREDRAW = 0x0002, CS_NOCLOSE = 0x0200,
  CS_OWNDC = 0x0020, CS_PARENTDC = 0x0080, CS_SAVEBITS = 0x0800, CS_VREDRAW = 0x0001
}
 
enum  AnimateWindowFlags {
  AW_ACTIVATE = 0x00020000, AW_BLEND = 0x00080000, AW_CENTER = 0x00000010, AW_HIDE = 0x00010000,
  AW_HOR_POSITIVE = 0x00000001, AW_HOR_NEGATIVE = 0x00000002, AW_SLIDE = 0x00040000, AW_VER_POSITIVE = 0x00000004,
  AW_VER_NEGATIVE = 0x00000008
}
 
enum  DrawTextFormatFlags {
  DT_BOTTOM = 0x00000008, DT_CALCRECT = 0x00000400, DT_CENTER = 0x00000001, DT_EDITCONTROL = 0x00002000,
  DT_END_ELLIPSIS = 0x00008000, DT_EXPANDTABS = 0x00000040, DT_EXTERNALLEADING = 0x00000200, DT_HIDEPREFIX = 0x00100000,
  DT_INTERNAL = 0x00001000, DT_LEFT = 0x00000000, DT_MODIFYSTRING = 0x00010000, DT_NOCLIP = 0x00000100,
  DT_NOFULLWIDTHCHARBREAK = 0x00080000, DT_NOPREFIX = 0x00000800, DT_PATH_ELLIPSIS = 0x00004000, DT_PREFIXONLY = 0x00200000,
  DT_RIGHT = 0x00000002, DT_RTLREADING = 0x00020000, DT_SINGLELINE = 0x00000020, DT_TABSTOP = 0x00000080,
  DT_TOP = 0x00000000, DT_VCENTER = 0x00000004, DT_WORDBREAK = 0x00000010, DT_WORD_ELLIPSIS = 0x00040000
}
 
enum  CreateWindowFlags { CW_USEDEFAULT = unchecked((int) 0x80000000) }
 
enum  RegionModeFlags {
  RGN_AND = 1, RGN_OR = 2, RGN_XOR = 3, RGN_DIFF = 4,
  RGN_COPY = 5, RGN_MIN = RGN_AND, RGN_MAX = RGN_COPY
}
 
enum  DeviceCapability {
  DC_ACTIVE = 0x0001, DC_SMALLCAP = 0x0002, DC_ICON = 0x0004, DC_TEXT = 0x0008,
  DC_INBUTTON = 0x0010, DC_GRADIENT = 0x0020, DC_BUTTONS = 0x1000, DC_HASDEFID = 0x534B,
  DC_BRUSH = 18, DC_PEN = 19, DC_FIELDS = 1, DC_PAPERS = 2,
  DC_PAPERSIZE = 3, DC_MINEXTENT = 4, DC_MAXEXTENT = 5, DC_BINS = 6,
  DC_DUPLEX = 7, DC_SIZE = 8, DC_EXTRA = 9, DC_VERSION = 10,
  DC_DRIVER = 11, DC_BINNAMES = 12, DC_ENUMRESOLUTIONS = 13, DC_FILEDEPENDENCIES = 14,
  DC_TRUETYPE = 15, DC_PAPERNAMES = 16, DC_ORIENTATION = 17, DC_COPIES = 18,
  DC_BINADJUST = 19, DC_EMF_COMPLIANT = 20, DC_DATATYPE_PRODUCED = 21, DC_COLLATE = 22,
  DC_MANUFACTURER = 23, DC_MODEL = 24, DC_PERSONALITY = 25, DC_PRINTRATE = 26,
  DC_PRINTRATEUNIT = 27, DC_PRINTERMEM = 28, DC_MEDIAREADY = 29, DC_STAPLE = 30,
  DC_PRINTRATEPPM = 31, DC_COLORDEVICE = 32, DC_NUP = 33, DC_MEDIATYPENAMES = 34,
  DC_MEDIATYPES = 35
}
 
enum  ShowWindowCommands {
  SW_FORCEMINIMIZE = 11, SW_HIDE = 0, SW_MAXIMIZE = 3, SW_MINIMIZE = 6,
  SW_RESTORE = 9, SW_SHOW = 5, SW_SHOWDEFAULT = 10, SW_SHOWMAXIMIZED = 3,
  SW_SHOWMINIMIZED = 2, SW_SHOWMINNOACTIVE = 7, SW_SHOWNA = 8, SW_SHOWNOACTIVATE = 4,
  SW_SHOWNORMAL = 1
}
 
enum  WindowLongFlags {
  GWL_EXSTYLE = -20, GWLP_HINSTANCE = -6, GWLP_HWNDPARENT = -8, GWLP_ID = -12,
  GWL_STYLE = -16, GWLP_USERDATA = -21, GWLP_WNDPROC = -4, DWLP_DLGPROC = 0x4,
  DWLP_MSGRESULT = 0, DWLP_USER = 0x8
}
 
enum  WindowPositionFlags {
  SWP_ASYNCWINDOWPOS = 0x4000, SWP_DEFERERASE = 0x2000, SWP_DRAWFRAME = 0x0020, SWP_FRAMECHANGED = 0x0020,
  SWP_HIDEWINDOW = 0x0080, SWP_NOACTIVATE = 0x0010, SWP_NOCOPYBITS = 0x0100, SWP_NOMOVE = 0x0002,
  SWP_NOOWNERZORDER = 0x0200, SWP_NOREDRAW = 0x0008, SWP_NOREPOSITION = 0x0200, SWP_NOSENDCHANGING = 0x0400,
  SWP_NOSIZE = 0x0001, SWP_NOZORDER = 0x0004, SWP_SHOWWINDOW = 0x0040
}
 
enum  DeviceContextFlags {
  DCX_WINDOW = 0x0000000, DCX_CACHE = 0x0000000, DCX_NORESETATTRS = 0x0000000, DCX_CLIPCHILDREN = 0x0000000,
  DCX_CLIPSIBLINGS = 0x0000001, DCX_PARENTCLIP = 0x0000002, DCX_EXCLUDERGN = 0x0000004, DCX_INTERSECTRGN = 0x0000008,
  DCX_EXCLUDEUPDATE = 0x0000010, DCX_INTERSECTUPDATE = 0x0000020, DCX_LOCKWINDOWUPDATE = 0x0000040, DCX_VALIDATE = 0x0020000
}
 
enum  WindowPlacementFlags { SETMINPOSITION = 0x0001, RESTORETOMAXIMIZED = 0x0002, ASYNCWINDOWPLACEMENT = 0x0004 }
 
enum  RedrawWindowFlags {
  RDW_INVALIDATE = 0x1, RDW_INTERNALPAINT = 0x2, RDW_ERASE = 0x4, RDW_VALIDATE = 0x8,
  RDW_NOINTERNALPAINT = 0x10, RDW_NOERASE = 0x20, RDW_NOCHILDREN = 0x40, RDW_ALLCHILDREN = 0x80,
  RDW_UPDATENOW = 0x100, RDW_ERASENOW = 0x200, RDW_FRAME = 0x400, RDW_NOFRAME = 0x800
}
 
enum  ClassLongFlags {
  GCL_CBCLSEXTRA = -20, GCL_CBWNDEXTRA = -18, GCL_HBRBACKGROUND = -10, GCL_HCURSOR = -12,
  GCL_HICON = -14, GCL_HICONSM = -34, GCL_HMODULE = -16, GCL_MENUNAME = -8,
  GCL_STYLE = -26, GCL_WNDPROC = -24
}
 
enum  QueueStatusFlags {
  QS_ALLEVENTS = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY, QS_ALLINPUT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE, QS_ALLPOSTMESSAGE = 0x0100, QS_HOTKEY = 0x0080,
  QS_INPUT = QS_MOUSE | QS_KEY | QS_RAWINPUT, QS_KEY = 0x0001, QS_MOUSE = QS_MOUSEMOVE | QS_MOUSEBUTTON, QS_MOUSEBUTTON = 0x0004,
  QS_MOUSEMOVE = 0x0002, QS_PAINT = 0x0020, QS_POSTMESSAGE = 0x0008, QS_RAWINPUT = 0x0400,
  QS_SENDMESSAGE = 0x0040, QS_TIMER = 0x0010, QS_REFRESH = QS_HOTKEY | QS_KEY | QS_MOUSEBUTTON | QS_PAINT
}
 
enum  PeekMessageFlags {
  PM_NOREMOVE = 0x0000, PM_REMOVE = 0x0001, PM_NOYIELD = 0x0002, PM_QS_INPUT = QueueStatusFlags.QS_INPUT << 16,
  PM_QS_PAINT = QueueStatusFlags.QS_PAINT << 16, PM_QS_POSTMESSAGE, PM_QS_SENDMESSAGE = QueueStatusFlags.QS_SENDMESSAGE << 16
}
 
enum  ChildWindowFromPointFlags { CWP_ALL = 0x0000, CWP_SKIPDISABLED = 0x0002, CWP_SKIPINVISIBLE = 0x0001, CWP_SKIPTRANSPARENT = 0x0004 }
 
enum  SystemParamtersInfoFlags { None = 0x00, SPIF_UPDATEINIFILE = 0x01, SPIF_SENDCHANGE = 0x02, SPIF_SENDWININICHANGE = 0x02 }
 
enum  ArrangeFlags {
  ARW_BOTTOMLEFT = 0x0000, ARW_BOTTOMRIGHT = 0x0001, ARW_TOPLEFT = 0x0002, ARW_TOPRIGHT = 0x0003,
  ARW_LEFT = 0x0000, ARW_RIGHT = 0x0000, ARW_UP = 0x0004, ARW_DOWN = 0x0004,
  ARW_HIDE = 0x0008
}
 
enum  LoadResourceFlags {
  LR_CREATEDIBSECTION = 0x00002000, LR_DEFAULTCOLOR = 0x00000000, LR_DEFAULTSIZE = 0x00000040, LR_LOADFROMFILE = 0x00000010,
  LR_LOADMAP3DCOLORS = 0x00001000, LR_LOADTRANSPARENT = 0x00000020, LR_MONOCHROME = 0x00000001, LR_SHARED = 0x00008000,
  LR_VGACOLOR = 0x00000080
}
 
enum  MessageBoxFlags {
  MB_ABORTRETRYIGNORE = 0x00000002, MB_CANCELTRYCONTINUE = 0x00000006, MB_HELP = 0x00004000, MB_OK = 0x00000000,
  MB_OKCANCEL = 0x00000001, MB_RETRYCANCEL = 0x00000005, MB_YESNO = 0x00000004, MB_YESNOCANCEL = 0x00000003,
  MB_ICONEXCLAMATION = 0x00000030, MB_ICONWARNING = 0x00000030, MB_ICONINFORMATION = 0x00000040, MB_ICONASTERISK = 0x00000040,
  MB_ICONQUESTION = 0x00000020, MB_ICONSTOP = 0x00000010, MB_ICONERROR = 0x00000010, MB_ICONHAND = 0x00000010,
  MB_DEFBUTTON1 = 0x00000000, MB_DEFBUTTON2 = 0x00000100, MB_DEFBUTTON3 = 0x00000200, MB_DEFBUTTON4 = 0x00000300,
  MB_APPLMODAL = 0x00000000, MB_SYSTEMMODAL = 0x00001000, MB_TASKMODAL = 0x00002000, MB_DEFAULT_DESKTOP_ONLY = 0x00020000,
  MB_RIGHT = 0x00080000, MB_RTLREADING = 0x00100000, MB_SETFOREGROUND = 0x00010000, MB_TOPMOST = 0x00040000,
  MB_SERVICE_NOTIFICATION = 0x00200000
}
 
enum  TrackMouseEventFlags {
  TME_CANCEL = unchecked ((int) 0x80000000), TME_HOVER = 0x00000001, TME_LEAVE = 0x00000002, TME_NONCLIENT = 0x00000010,
  TME_QUERY = 0x40000000
}
 
enum  ShowWindowStatusFlags {
  SW_USER_CALL = 0, SW_OTHERUNZOOM = 4, SW_OTHERZOOM = 2, SW_PARENTCLOSING = 1,
  SW_PARENTOPENING = 3
}
 
enum  WindowViewRegionFlags {
  WVR_DEFAULT = 0, WVR_ALIGNTOP = 0x0010, WVR_ALIGNRIGHT = 0x0080, WVR_ALIGNLEFT = 0x0020,
  WVR_ALIGNBOTTOM = 0x0040, WVR_HREDRAW = 0x0100, WVR_VREDRAW = 0x0200, WVR_REDRAW = 0x0300,
  WVR_VALIDRECTS = 0x0400
}
 
enum  ElementSystemStates {
  STATE_SYSTEM_FOCUSABLE = 0x00100000, STATE_SYSTEM_INVISIBLE = 0x00008000, STATE_SYSTEM_OFFSCREEN = 0x00010000, STATE_SYSTEM_UNAVAILABLE = 0x00000001,
  STATE_SYSTEM_PRESSED = 0x00000008
}
 
enum  SystemCursor {
  IDC_APPSTARTING = 32650, IDC_ARROW = 32512, IDC_CROSS = 32515, IDC_HAND = 32649,
  IDC_HELP = 32651, IDC_IBEAM = 32513, IDC_ICON = 32641, IDC_NO = 32648,
  IDC_SIZE = 32640, IDC_SIZEALL = 32646, IDC_SIZENESW = 32643, IDC_SIZENS = 32645,
  IDC_SIZENWSE = 32642, IDC_SIZEWE = 32644, IDC_UPARROW = 32516, IDC_WAIT = 32514
}
 
enum  SystemIcon {
  IDI_APPLICATION = 32512, IDI_HAND = 32513, IDI_QUESTION = 32514, IDI_EXCLAMATION = 32515,
  IDI_ASTERISK = 32516, IDI_WINLOGO = 32517, IDI_SHIELD = 32518, IDI_WARNING = IDI_EXCLAMATION,
  IDI_ERROR = IDI_HAND, IDI_INFORMATION = IDI_ASTERISK
}
 
enum  HwndZOrder { HWND_BOTTOM = 1, HWND_NOTOPMOST = -2, HWND_TOP = 0, HWND_TOPMOST = -1 }
 
enum  RegionType { ERROR = 0, NULLREGION, SIMPLEREGION, COMPLEXREGION }
 
enum  GetWindowFlag {
  GW_CHILD = 5, GW_ENABLEDPOPUP = 6, GW_HWNDFIRST = 0, GW_HWNDLAST = 1,
  GW_HWNDNEXT = 2, GW_HWNDPREV = 3, GW_OWNER = 4
}
 
enum  AlphaFormat : byte { AC_SRC_OVER = 0x00, AC_SRC_ALPHA = 0x01 }
 
enum  MonitorFlag { MONITOR_DEFAULTTONULL = 0, MONITOR_DEFAULTTOPRIMARY = 1, MONITOR_DEFAULTTONEAREST = 2 }
 
enum  WindowSizeFlag {
  SIZE_MAXHIDE = 4, SIZE_MAXIMIZED = 2, SIZE_MAXSHOW = 3, SIZE_MINIMIZED = 1,
  SIZE_RESTORED = 0
}
 
enum  WindowActivateFlag { WA_ACTIVE = 1, WA_CLICKACTIVE = 2, WA_INACTIVE = 0 }
 
enum  HitTestResult {
  HTERROR = -2, HTTRANSPARENT = -1, HTNOWHERE = 0, HTCLIENT = 1,
  HTCAPTION = 2, HTSYSMENU = 3, HTGROWBOX = 4, HTSIZE = HTGROWBOX,
  HTMENU = 5, HTHSCROLL = 6, HTVSCROLL = 7, HTMINBUTTON = 8,
  HTREDUCE = HTMINBUTTON, HTMAXBUTTON = 9, HTZOOM = HTMAXBUTTON, HTLEFT = 10,
  HTRIGHT = 11, HTTOP = 12, HTTOPLEFT = 13, HTTOPRIGHT = 14,
  HTBOTTOM = 15, HTBOTTOMLEFT = 16, HTBOTTOMRIGHT = 17, HTBORDER = 18,
  HTOBJECT = 19, HTCLOSE = 20, HTHELP = 21
}
 
enum  ResourceImageType { IMAGE_BITMAP = 0, IMAGE_CURSOR = 2, IMAGE_ICON = 1 }
 
enum  MessageBoxResult {
  IDABORT = 3, IDCANCEL = 2, IDCONTINUE = 11, IDIGNORE = 5,
  IDNO = 7, IDOK = 1, IDRETRY = 4, IDTRYAGAIN = 10,
  IDYES = 6
}
 
enum  SystemColor {
  COLOR_SCROLLBAR = 0, COLOR_BACKGROUND = 1, COLOR_ACTIVECAPTION = 2, COLOR_INACTIVECAPTION = 3,
  COLOR_MENU = 4, COLOR_WINDOW = 5, COLOR_WINDOWFRAME = 6, COLOR_MENUTEXT = 7,
  COLOR_WINDOWTEXT = 8, COLOR_CAPTIONTEXT = 9, COLOR_ACTIVEBORDER = 10, COLOR_INACTIVEBORDER = 11,
  COLOR_APPWORKSPACE = 12, COLOR_HIGHLIGHT = 13, COLOR_HIGHLIGHTTEXT = 14, COLOR_BTNFACE = 15,
  COLOR_BTNSHADOW = 16, COLOR_GRAYTEXT = 17, COLOR_BTNTEXT = 18, COLOR_INACTIVECAPTIONTEXT = 19,
  COLOR_BTNHIGHLIGHT = 20, COLOR_3DDKSHADOW = 21, COLOR_3DLIGHT = 22, COLOR_INFOTEXT = 23,
  COLOR_INFOBK = 24, COLOR_HOTLIGHT = 26, COLOR_GRADIENTACTIVECAPTION = 27, COLOR_GRADIENTINACTIVECAPTION = 28,
  COLOR_MENUHILIGHT = 29, COLOR_MENUBAR = 30, COLOR_DESKTOP = COLOR_BACKGROUND, COLOR_3DFACE = COLOR_BTNFACE,
  COLOR_3DSHADOW = COLOR_BTNSHADOW, COLOR_3DHIGHLIGHT = COLOR_BTNHIGHLIGHT, COLOR_3DHILIGHT = COLOR_BTNHIGHLIGHT, COLOR_BTNHILIGHT = COLOR_BTNHIGHLIGHT
}
 
enum  SystemMetrics {
  SM_ARRANGE = 56, SM_CLEANBOOT = 67, SM_CMONITORS = 80, SM_CMOUSEBUTTONS = 43,
  SM_CONVERTIBLESLATEMODE = 0x2003, SM_CXBORDER = 5, SM_CXCURSOR = 13, SM_CXDLGFRAME = 7,
  SM_CXDOUBLECLK = 36, SM_CXDRAG = 68, SM_CXEDGE = 45, SM_CXFIXEDFRAME = 7,
  SM_CXFOCUSBORDER = 83, SM_CXFRAME = 32, SM_CXFULLSCREEN = 16, SM_CXHSCROLL = 21,
  SM_CXHTHUMB = 10, SM_CXICON = 11, SM_CXICONSPACING = 38, SM_CXMAXIMIZED = 61,
  SM_CXMAXTRACK = 59, SM_CXMENUCHECK = 71, SM_CXMENUSIZE = 54, SM_CXMIN = 28,
  SM_CXMINIMIZED = 57, SM_CXMINSPACING = 47, SM_CXMINTRACK = 34, SM_CXPADDEDBORDER = 92,
  SM_CXSCREEN = 0, SM_CXSIZE = 30, SM_CXSIZEFRAME = 32, SM_CXSMICON = 49,
  SM_CXSMSIZE = 52, SM_CXVIRTUALSCREEN = 78, SM_CXVSCROLL = 2, SM_CYBORDER = 6,
  SM_CYCAPTION = 4, SM_CYCURSOR = 14, SM_CYDLGFRAME = 8, SM_CYDOUBLECLK = 37,
  SM_CYDRAG = 69, SM_CYEDGE = 46, SM_CYFIXEDFRAME = 8, SM_CYFOCUSBORDER = 84,
  SM_CYFRAME = 33, SM_CYFULLSCREEN = 17, SM_CYHSCROLL = 3, SM_CYICON = 12,
  SM_CYICONSPACING = 39, SM_CYKANJIWINDOW = 18, SM_CYMAXIMIZED = 62, SM_CYMAXTRACK = 60,
  SM_CYMENU = 15, SM_CYMENUCHECK = 72, SM_CYMENUSIZE = 55, SM_CYMIN = 29,
  SM_CYMINIMIZED = 58, SM_CYMINSPACING = 48, SM_CYMINTRACK = 35, SM_CYSCREEN = 1,
  SM_CYSIZE = 31, SM_CYSIZEFRAME = 33, SM_CYSMCAPTION = 51, SM_CYSMICON = 50,
  SM_CYSMSIZE = 53, SM_CYVIRTUALSCREEN = 79, SM_CYVSCROLL = 20, SM_CYVTHUMB = 9,
  SM_DBCSENABLED = 42, SM_DEBUG = 22, SM_DIGITIZER = 94, SM_IMMENABLED = 82,
  SM_MAXIMUMTOUCHES = 95, SM_MEDIACENTER = 87, SM_MENUDROPALIGNMENT = 40, SM_MIDEASTENABLED = 74,
  SM_MOUSEPRESENT = 19, SM_MOUSEHORIZONTALWHEELPRESENT = 91, SM_MOUSEWHEELPRESENT = 75, SM_NETWORK = 63,
  SM_PENWINDOWS = 41, SM_REMOTECONTROL = 0x2001, SM_REMOTESESSION = 0x1000, SM_SAMEDISPLAYFORMAT = 81,
  SM_SECURE = 44, SM_SERVERR2 = 89, SM_SHOWSOUNDS = 70, SM_SHUTTINGDOWN = 0x2000,
  SM_SLOWMACHINE = 73, SM_STARTER = 88, SM_SWAPBUTTON = 23, SM_SYSTEMDOCKED = 0x2004,
  SM_TABLETPC = 86, SM_XVIRTUALSCREEN = 76, SM_YVIRTUALSCREEN = 77
}
 
enum  SystemParametersAccessibilityInfo {
  SPI_GETACCESSTIMEOUT = 0x003C, SPI_GETAUDIODESCRIPTION = 0x0074, SPI_GETCLIENTAREAANIMATION = 0x1042, SPI_GETDISABLEOVERLAPPEDCONTENT = 0x1040,
  SPI_GETFILTERKEYS = 0x0032, SPI_GETFOCUSBORDERHEIGHT = 0x2010, SPI_GETFOCUSBORDERWIDTH = 0x200E, SPI_GETHIGHCONTRAST = 0x0042,
  SPI_GETLOGICALDPIOVERRIDE = 0x009E, SPI_GETMESSAGEDURATION = 0x2016, SPI_GETMOUSECLICKLOCK = 0x101E, SPI_GETMOUSECLICKLOCKTIME = 0x2008,
  SPI_GETMOUSEKEYS = 0x0036, SPI_GETMOUSESONAR = 0x101C, SPI_GETMOUSEVANISH = 0x1020, SPI_GETSCREENREADER = 0x0046,
  SPI_GETSERIALKEYS = 0x003E, SPI_GETSHOWSOUNDS = 0x0038, SPI_GETSOUNDSENTRY = 0x0040, SPI_GETSTICKYKEYS = 0x003A,
  SPI_GETTOGGLEKEYS = 0x0034, SPI_SETACCESSTIMEOUT = 0x003D, SPI_SETAUDIODESCRIPTION = 0x0075, SPI_SETCLIENTAREAANIMATION = 0x1043,
  SPI_SETDISABLEOVERLAPPEDCONTENT = 0x1041, SPI_SETFILTERKEYS = 0x0033, SPI_SETFOCUSBORDERHEIGHT = 0x2011, SPI_SETFOCUSBORDERWIDTH = 0x200F,
  SPI_SETHIGHCONTRAST = 0x0043, SPI_SETLOGICALDPIOVERRIDE = 0x009F, SPI_SETMESSAGEDURATION = 0x2017, SPI_SETMOUSECLICKLOCK = 0x101F,
  SPI_SETMOUSECLICKLOCKTIME = 0x2009, SPI_SETMOUSEKEYS = 0x0037, SPI_SETMOUSESONAR = 0x101D, SPI_SETMOUSEVANISH = 0x1021,
  SPI_SETSCREENREADER = 0x0047, SPI_SETSERIALKEYS = 0x003F, SPI_SETSHOWSOUNDS = 0x0039, SPI_SETSOUNDSENTRY = 0x0041,
  SPI_SETSTICKYKEYS = 0x003B, SPI_SETTOGGLEKEYS = 0x0035
}
 
enum  SystemParametersDesktopInfo {
  SPI_GETCLEARTYPE = 0x1048, SPI_GETDESKWALLPAPER = 0x0073, SPI_GETDROPSHADOW = 0x1024, SPI_GETFLATMENU = 0x1022,
  SPI_GETFONTSMOOTHING = 0x004A, SPI_GETFONTSMOOTHINGCONTRAST = 0x200C, SPI_GETFONTSMOOTHINGORIENTATION = 0x2012, SPI_GETFONTSMOOTHINGTYPE = 0x200A,
  SPI_GETWORKAREA = 0x0030, SPI_SETCLEARTYPE = 0x1049, SPI_SETCURSORS = 0x0057, SPI_SETDESKPATTERN = 0x0015,
  SPI_SETDESKWALLPAPER = 0x0014, SPI_SETDROPSHADOW = 0x1025, SPI_SETFLATMENU = 0x1023, SPI_SETFONTSMOOTHING = 0x004B,
  SPI_SETFONTSMOOTHINGCONTRAST = 0x200D, SPI_SETFONTSMOOTHINGORIENTATION = 0x2013, SPI_SETFONTSMOOTHINGTYPE = 0x200B, SPI_SETWORKAREA = 0x002F
}
 
enum  SystemParametersIconInfo {
  SPI_GETICONMETRICS = 0x002D, SPI_GETICONTITLELOGFONT = 0x001F, SPI_GETICONTITLEWRAP = 0x0019, SPI_ICONHORIZONTALSPACING = 0x000D,
  SPI_ICONVERTICALSPACING = 0x0018, SPI_SETICONMETRICS = 0x002E, SPI_SETICONS = 0x0058, SPI_SETICONTITLELOGFONT = 0x0022,
  SPI_SETICONTITLEWRAP = 0x001A
}
 
enum  SystemParametersInputInfo {
  SPI_GETBEEP = 0x0001, SPI_GETBLOCKSENDINPUTRESETS = 0x1026, SPI_GETCONTACTVISUALIZATION = 0x2018, SPI_GETDEFAULTINPUTLANG = 0x0059,
  SPI_GETGESTUREVISUALIZATION = 0x201A, SPI_GETKEYBOARDCUES = 0x100A, SPI_GETKEYBOARDDELAY = 0x0016, SPI_GETKEYBOARDPREF = 0x0044,
  SPI_GETKEYBOARDSPEED = 0x000A, SPI_GETMOUSE = 0x0003, SPI_GETMOUSEHOVERHEIGHT = 0x0064, SPI_GETMOUSEHOVERTIME = 0x0066,
  SPI_GETMOUSEHOVERWIDTH = 0x0062, SPI_GETMOUSESPEED = 0x0070, SPI_GETMOUSETRAILS = 0x005E, SPI_GETMOUSEWHEELROUTING = 0x201C,
  SPI_GETPENVISUALIZATION = 0x201E, SPI_GETSNAPTODEFBUTTON = 0x005F, SPI_GETSYSTEMLANGUAGEBAR = 0x1050, SPI_GETTHREADLOCALINPUTSETTINGS = 0x104E,
  SPI_GETWHEELSCROLLCHARS = 0x006C, SPI_GETWHEELSCROLLLINES = 0x0068, SPI_SETBEEP = 0x0002, SPI_SETBLOCKSENDINPUTRESETS = 0x1027,
  SPI_SETCONTACTVISUALIZATION = 0x2019, SPI_SETDEFAULTINPUTLANG = 0x005A, SPI_SETDOUBLECLICKTIME = 0x0020, SPI_SETDOUBLECLKHEIGHT = 0x001E,
  SPI_SETDOUBLECLKWIDTH = 0x001D, SPI_SETGESTUREVISUALIZATION = 0x201B, SPI_SETKEYBOARDCUES = 0x100B, SPI_SETKEYBOARDDELAY = 0x0017,
  SPI_SETKEYBOARDPREF = 0x0045, SPI_SETKEYBOARDSPEED = 0x000B, SPI_SETLANGTOGGLE = 0x005B, SPI_SETMOUSE = 0x0004,
  SPI_SETMOUSEBUTTONSWAP = 0x0021, SPI_SETMOUSEHOVERHEIGHT = 0x0065, SPI_SETMOUSEHOVERTIME = 0x0067, SPI_SETMOUSEHOVERWIDTH = 0x0063,
  SPI_SETMOUSESPEED = 0x0071, SPI_SETMOUSETRAILS = 0x005D, SPI_SETMOUSEWHEELROUTING = 0x201D, SPI_SETPENVISUALIZATION = 0x201F,
  SPI_SETSNAPTODEFBUTTON = 0x0060, SPI_SETSYSTEMLANGUAGEBAR = 0x1051, SPI_SETTHREADLOCALINPUTSETTINGS = 0x104F, SPI_SETWHEELSCROLLCHARS = 0x006D,
  SPI_SETWHEELSCROLLLINES = 0x0069
}
 
enum  SystemParametersMenuInfo {
  SPI_GETMENUDROPALIGNMENT = 0x001B, SPI_GETMENUFADE = 0x1012, SPI_GETMENUSHOWDELAY = 0x006A, SPI_SETMENUDROPALIGNMENT = 0x001C,
  SPI_SETMENUFADE = 0x1013, SPI_SETMENUSHOWDELAY = 0x006B
}
 
enum  SystemParametersPowerInfo {
  SPI_GETLOWPOWERACTIVE = 0x0053, SPI_GETLOWPOWERTIMEOUT = 0x004F, SPI_GETPOWEROFFACTIVE = 0x0054, SPI_GETPOWEROFFTIMEOUT = 0x0050,
  SPI_SETLOWPOWERACTIVE = 0x0055, SPI_SETLOWPOWERTIMEOUT = 0x0051, SPI_SETPOWEROFFACTIVE = 0x0056, SPI_SETPOWEROFFTIMEOUT = 0x0052
}
 
enum  SystemParametersScreenSaverInfo {
  SPI_GETSCREENSAVEACTIVE = 0x0010, SPI_GETSCREENSAVERRUNNING = 0x0072, SPI_GETSCREENSAVESECURE = 0x0076, SPI_GETSCREENSAVETIMEOUT = 0x000E,
  SPI_SETSCREENSAVEACTIVE = 0x0011, SPI_SETSCREENSAVESECURE = 0x0077, SPI_SETSCREENSAVETIMEOUT = 0x000F
}
 
enum  SystemParametersTimeoutInfo {
  SPI_GETHUNGAPPTIMEOUT = 0x0078, SPI_GETWAITTOKILLTIMEOUT = 0x007A, SPI_GETWAITTOKILLSERVICETIMEOUT = 0x007C, SPI_SETHUNGAPPTIMEOUT = 0x0079,
  SPI_SETWAITTOKILLTIMEOUT = 0x007B, SPI_SETWAITTOKILLSERVICETIMEOUT = 0x007D
}
 
enum  SystemParametersUiEffectsInfo {
  SPI_GETCOMBOBOXANIMATION = 0x1004, SPI_GETCURSORSHADOW = 0x101A, SPI_GETGRADIENTCAPTIONS = 0x1008, SPI_GETHOTTRACKING = 0x100E,
  SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006, SPI_GETMENUANIMATION = 0x1002, SPI_GETMENUUNDERLINES = 0x100A, SPI_GETSELECTIONFADE = 0x1014,
  SPI_GETTOOLTIPANIMATION = 0x1016, SPI_GETTOOLTIPFADE = 0x1018, SPI_GETUIEFFECTS = 0x103E, SPI_SETCOMBOBOXANIMATION = 0x1005,
  SPI_SETCURSORSHADOW = 0x101B, SPI_SETGRADIENTCAPTIONS = 0x1009, SPI_SETHOTTRACKING = 0x100F, SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007,
  SPI_SETMENUANIMATION = 0x1003, SPI_SETMENUUNDERLINES = 0x100B, SPI_SETSELECTIONFADE = 0x1015, SPI_SETTOOLTIPANIMATION = 0x1017,
  SPI_SETTOOLTIPFADE = 0x1019, SPI_SETUIEFFECTS = 0x103F
}
 
enum  SystemParametersWindowInfo {
  SPI_GETACTIVEWINDOWTRACKING = 0x1000, SPI_GETACTIVEWNDTRKZORDER = 0x100C, SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002, SPI_GETANIMATION = 0x0048,
  SPI_GETBORDER = 0x0005, SPI_GETCARETWIDTH = 0x2006, SPI_GETDOCKMOVING = 0x0090, SPI_GETDRAGFROMMAXIMIZE = 0x008C,
  SPI_GETDRAGFULLWINDOWS = 0x0026, SPI_GETFOREGROUNDFLASHCOUNT = 0x2004, SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000, SPI_GETMINIMIZEDMETRICS = 0x002B,
  SPI_GETMOUSEDOCKTHRESHOLD = 0x007E, SPI_GETMOUSEDRAGOUTTHRESHOLD = 0x0084, SPI_GETMOUSESIDEMOVETHRESHOLD = 0x0088, SPI_GETNONCLIENTMETRICS = 0x0029,
  SPI_GETPENDOCKTHRESHOLD = 0x0080, SPI_GETPENDRAGOUTTHRESHOLD = 0x0086, SPI_GETPENSIDEMOVETHRESHOLD = 0x008A, SPI_GETSHOWIMEUI = 0x006E,
  SPI_GETSNAPSIZING = 0x008E, SPI_GETWINARRANGING = 0x0082, SPI_SETACTIVEWINDOWTRACKING = 0x1001, SPI_SETACTIVEWNDTRKZORDER = 0x100D,
  SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003, SPI_SETANIMATION = 0x0049, SPI_SETBORDER = 0x0006, SPI_SETCARETWIDTH = 0x2007,
  SPI_SETDOCKMOVING = 0x0091, SPI_SETDRAGFROMMAXIMIZE = 0x008D, SPI_SETDRAGFULLWINDOWS = 0x0025, SPI_SETDRAGHEIGHT = 0x004D,
  SPI_SETDRAGWIDTH = 0x004C, SPI_SETFOREGROUNDFLASHCOUNT = 0x2005, SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001, SPI_SETMINIMIZEDMETRICS = 0x002C,
  SPI_SETMOUSEDOCKTHRESHOLD = 0x007F, SPI_SETMOUSEDRAGOUTTHRESHOLD = 0x0085, SPI_SETMOUSESIDEMOVETHRESHOLD = 0x0089, SPI_SETNONCLIENTMETRICS = 0x002A,
  SPI_SETPENDOCKTHRESHOLD = 0x0081, SPI_SETPENDRAGOUTTHRESHOLD = 0x0087, SPI_SETPENSIDEMOVETHRESHOLD = 0x008B, SPI_SETSHOWIMEUI = 0x006F,
  SPI_SETSNAPSIZING = 0x008F, SPI_SETWINARRANGING = 0x0083
}
 
enum  MouseActivationResult { MA_ACTIVATE = 1, MA_ACTIVATEANDEAT = 2, MA_NOACTIVATE = 3, MA_NOACTIVATEANDEAT = 4 }
 
enum  ScreenshotHotKey { IDHOT_NONE = 0, IDHOT_SNAPDESKTOP = -2, IDHOT_SNAPWINDOW = -1 }
 
enum  CommandSource { Menu = 0, Accelerator = 1 }
 
enum  SysCommand {
  SC_CLOSE = 0xF060, SC_CONTEXTHELP = 0xF180, SC_DEFAULT = 0xF160, SC_HOTKEY = 0xF150,
  SC_HSCROLL = 0xF080, SCF_ISSECURE = 0x00000001, SC_KEYMENU = 0xF100, SC_MAXIMIZE = 0xF030,
  SC_MINIMIZE = 0xF020, SC_MONITORPOWER = 0xF170, SC_MOUSEMENU = 0xF090, SC_MOVE = 0xF010,
  SC_NEXTWINDOW = 0xF040, SC_PREVWINDOW = 0xF050, SC_RESTORE = 0xF120, SC_SCREENSAVE = 0xF140,
  SC_SIZE = 0xF000, SC_TASKLIST = 0xF130, SC_VSCROLL = 0xF070
}
 
enum  AppCommand {
  APPCOMMAND_BASS_BOOST = 20, APPCOMMAND_BASS_DOWN = 19, APPCOMMAND_BASS_UP = 21, APPCOMMAND_BROWSER_BACKWARD = 1,
  APPCOMMAND_BROWSER_FAVORITES = 6, APPCOMMAND_BROWSER_FORWARD = 2, APPCOMMAND_BROWSER_HOME = 7, APPCOMMAND_BROWSER_REFRESH = 3,
  APPCOMMAND_BROWSER_SEARCH = 5, APPCOMMAND_BROWSER_STOP = 4, APPCOMMAND_CLOSE = 31, APPCOMMAND_COPY = 36,
  APPCOMMAND_CORRECTION_LIST = 45, APPCOMMAND_CUT = 37, APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43, APPCOMMAND_FIND = 28,
  APPCOMMAND_FORWARD_MAIL = 40, APPCOMMAND_HELP = 27, APPCOMMAND_LAUNCH_APP1 = 17, APPCOMMAND_LAUNCH_APP2 = 18,
  APPCOMMAND_LAUNCH_MAIL = 15, APPCOMMAND_LAUNCH_MEDIA_SELECT = 16, APPCOMMAND_MEDIA_CHANNEL_DOWN = 52, APPCOMMAND_MEDIA_CHANNEL_UP = 51,
  APPCOMMAND_MEDIA_FAST_FORWARD = 49, APPCOMMAND_MEDIA_NEXTTRACK = 11, APPCOMMAND_MEDIA_PAUSE = 47, APPCOMMAND_MEDIA_PLAY = 46,
  APPCOMMAND_MEDIA_PLAY_PAUSE = 14, APPCOMMAND_MEDIA_PREVIOUSTRACK = 12, APPCOMMAND_MEDIA_RECORD = 48, APPCOMMAND_MEDIA_REWIND = 50,
  APPCOMMAND_MEDIA_STOP = 13, APPCOMMAND_MIC_ON_OFF_TOGGLE = 44, APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25, APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24,
  APPCOMMAND_MICROPHONE_VOLUME_UP = 26, APPCOMMAND_NEW = 29, APPCOMMAND_OPEN = 30, APPCOMMAND_PASTE = 38,
  APPCOMMAND_PRINT = 33, APPCOMMAND_REDO = 35, APPCOMMAND_REPLY_TO_MAIL = 39, APPCOMMAND_SAVE = 32,
  APPCOMMAND_SEND_MAIL = 41, APPCOMMAND_SPELL_CHECK = 42, APPCOMMAND_TREBLE_DOWN = 22, APPCOMMAND_TREBLE_UP = 23,
  APPCOMMAND_UNDO = 34, APPCOMMAND_VOLUME_DOWN = 9, APPCOMMAND_VOLUME_MUTE = 8, APPCOMMAND_VOLUME_UP = 10
}
 
enum  AppCommandDevice { FAPPCOMMAND_KEY = 0, FAPPCOMMAND_MOUSE = 0x8000, FAPPCOMMAND_OEM = 0x1000, FAPPCOMMAND_MASK = 0xF000 }
 
enum  MonitorInfoFlag { MONITORINFOF_NONE = 0, MONITORINFOF_PRIMARY = 0x00000001 }
 
enum  LayeredWindowAttributeFlag { LWA_ALPHA = 0x00000002, LWA_COLORKEY = 0x00000001 }
 
enum  WM {
  NULL = 0x0000, CREATE = 0x0001, DESTROY = 0x0002, MOVE = 0x0003,
  SIZE = 0x0005, ACTIVATE = 0x0006, SETFOCUS = 0x0007, KILLFOCUS = 0x0008,
  ENABLE = 0x000A, SETREDRAW = 0x000B, SETTEXT = 0x000C, GETTEXT = 0x000D,
  GETTEXTLENGTH = 0x000E, PAINT = 0x000F, CLOSE = 0x0010, QUERYENDSESSION = 0x0011,
  QUERYOPEN = 0x0013, ENDSESSION = 0x0016, QUIT = 0x0012, ERASEBKGND = 0x0014,
  SYSCOLORCHANGE = 0x0015, SHOWWINDOW = 0x0018, WININICHANGE = 0x001A, SETTINGCHANGE = WININICHANGE,
  DEVMODECHANGE = 0x001B, ACTIVATEAPP = 0x001C, FONTCHANGE = 0x001D, TIMECHANGE = 0x001E,
  CANCELMODE = 0x001F, SETCURSOR = 0x0020, MOUSEACTIVATE = 0x0021, CHILDACTIVATE = 0x0022,
  QUEUESYNC = 0x0023, GETMINMAXINFO = 0x0024, PAINTICON = 0x0026, ICONERASEBKGND = 0x0027,
  NEXTDLGCTL = 0x0028, SPOOLERSTATUS = 0x002A, DRAWITEM = 0x002B, MEASUREITEM = 0x002C,
  DELETEITEM = 0x002D, VKEYTOITEM = 0x002E, CHARTOITEM = 0x002F, SETFONT = 0x0030,
  GETFONT = 0x0031, SETHOTKEY = 0x0032, GETHOTKEY = 0x0033, QUERYDRAGICON = 0x0037,
  COMPAREITEM = 0x0039, GETOBJECT = 0x003D, COMPACTING = 0x0041, COMMNOTIFY = 0x0044,
  WINDOWPOSCHANGING = 0x0046, WINDOWPOSCHANGED = 0x0047, POWER = 0x0048, COPYDATA = 0x004A,
  CANCELJOURNAL = 0x004B, NOTIFY = 0x004E, INPUTLANGCHANGEREQUEST = 0x0050, INPUTLANGCHANGE = 0x0051,
  TCARD = 0x0052, HELP = 0x0053, USERCHANGED = 0x0054, NOTIFYFORMAT = 0x0055,
  CONTEXTMENU = 0x007B, STYLECHANGING = 0x007C, STYLECHANGED = 0x007D, DISPLAYCHANGE = 0x007E,
  GETICON = 0x007F, SETICON = 0x0080, NCCREATE = 0x0081, NCDESTROY = 0x0082,
  NCCALCSIZE = 0x0083, NCHITTEST = 0x0084, NCPAINT = 0x0085, NCACTIVATE = 0x0086,
  GETDLGCODE = 0x0087, SYNCPAINT = 0x0088, NCMOUSEMOVE = 0x00A0, NCLBUTTONDOWN = 0x00A1,
  NCLBUTTONUP = 0x00A2, NCLBUTTONDBLCLK = 0x00A3, NCRBUTTONDOWN = 0x00A4, NCRBUTTONUP = 0x00A5,
  NCRBUTTONDBLCLK = 0x00A6, NCMBUTTONDOWN = 0x00A7, NCMBUTTONUP = 0x00A8, NCMBUTTONDBLCLK = 0x00A9,
  NCXBUTTONDOWN = 0x00AB, NCXBUTTONUP = 0x00AC, NCXBUTTONDBLCLK = 0x00AD, INPUT_DEVICE_CHANGE = 0x00FE,
  INPUT = 0x00FF, KEYFIRST = 0x0100, KEYDOWN = 0x0100, KEYUP = 0x0101,
  CHAR = 0x0102, DEADCHAR = 0x0103, SYSKEYDOWN = 0x0104, SYSKEYUP = 0x0105,
  SYSCHAR = 0x0106, SYSDEADCHAR = 0x0107, UNICHAR = 0x0109, KEYLAST = 0x0109,
  IME_STARTCOMPOSITION = 0x010D, IME_ENDCOMPOSITION = 0x010E, IME_COMPOSITION = 0x010F, IME_KEYLAST = 0x010F,
  INITDIALOG = 0x0110, COMMAND = 0x0111, SYSCOMMAND = 0x0112, TIMER = 0x0113,
  HSCROLL = 0x0114, VSCROLL = 0x0115, INITMENU = 0x0116, INITMENUPOPUP = 0x0117,
  GESTURE = 0x0119, GESTURENOTIFY = 0x011A, MENUSELECT = 0x011F, MENUCHAR = 0x0120,
  ENTERIDLE = 0x0121, MENURBUTTONUP = 0x0122, MENUDRAG = 0x0123, MENUGETOBJECT = 0x0124,
  UNINITMENUPOPUP = 0x0125, MENUCOMMAND = 0x0126, CHANGEUISTATE = 0x0127, UPDATEUISTATE = 0x0128,
  QUERYUISTATE = 0x0129, CTLCOLORMSGBOX = 0x0132, CTLCOLOREDIT = 0x0133, CTLCOLORLISTBOX = 0x0134,
  CTLCOLORBTN = 0x0135, CTLCOLORDLG = 0x0136, CTLCOLORSCROLLBAR = 0x0137, CTLCOLORSTATIC = 0x0138,
  MOUSEFIRST = 0x0200, MOUSEMOVE = 0x0200, LBUTTONDOWN = 0x0201, LBUTTONUP = 0x0202,
  LBUTTONDBLCLK = 0x0203, RBUTTONDOWN = 0x0204, RBUTTONUP = 0x0205, RBUTTONDBLCLK = 0x0206,
  MBUTTONDOWN = 0x0207, MBUTTONUP = 0x0208, MBUTTONDBLCLK = 0x0209, MOUSEWHEEL = 0x020A,
  XBUTTONDOWN = 0x020B, XBUTTONUP = 0x020C, XBUTTONDBLCLK = 0x020D, MOUSEHWHEEL = 0x020E,
  MOUSELAST = 0x020E, PARENTNOTIFY = 0x0210, ENTERMENULOOP = 0x0211, EXITMENULOOP = 0x0212,
  NEXTMENU = 0x0213, SIZING = 0x0214, CAPTURECHANGED = 0x0215, MOVING = 0x0216,
  POWERBROADCAST = 0x0218, DEVICECHANGE = 0x0219, MDICREATE = 0x0220, MDIDESTROY = 0x0221,
  MDIACTIVATE = 0x0222, MDIRESTORE = 0x0223, MDINEXT = 0x0224, MDIMAXIMIZE = 0x0225,
  MDITILE = 0x0226, MDICASCADE = 0x0227, MDIICONARRANGE = 0x0228, MDIGETACTIVE = 0x0229,
  MDISETMENU = 0x0230, ENTERSIZEMOVE = 0x0231, EXITSIZEMOVE = 0x0232, DROPFILES = 0x0233,
  MDIREFRESHMENU = 0x0234, POINTERDEVICECHANGE = 0x238, POINTERDEVICEINRANGE = 0x239, POINTERDEVICEOUTOFRANGE = 0x23A,
  TOUCH = 0x0240, NCPOINTERUPDATE = 0x0241, NCPOINTERDOWN = 0x0242, NCPOINTERUP = 0x0243,
  POINTERUPDATE = 0x0245, POINTERDOWN = 0x0246, POINTERUP = 0x0247, POINTERENTER = 0x0249,
  POINTERLEAVE = 0x024A, POINTERACTIVATE = 0x024B, POINTERCAPTURECHANGED = 0x024C, TOUCHHITTESTING = 0x024D,
  POINTERWHEEL = 0x024E, POINTERHWHEEL = 0x024F, IME_SETCONTEXT = 0x0281, IME_NOTIFY = 0x0282,
  IME_CONTROL = 0x0283, IME_COMPOSITIONFULL = 0x0284, IME_SELECT = 0x0285, IME_CHAR = 0x0286,
  IME_REQUEST = 0x0288, IME_KEYDOWN = 0x0290, IME_KEYUP = 0x0291, MOUSEHOVER = 0x02A1,
  MOUSELEAVE = 0x02A3, NCMOUSEHOVER = 0x02A0, NCMOUSELEAVE = 0x02A2, WTSSESSION_CHANGE = 0x02B1,
  TABLET_FIRST = 0x02c0, TABLET_LAST = 0x02df, DPICHANGED = 0x02E0, CUT = 0x0300,
  COPY = 0x0301, PASTE = 0x0302, CLEAR = 0x0303, UNDO = 0x0304,
  RENDERFORMAT = 0x0305, RENDERALLFORMATS = 0x0306, DESTROYCLIPBOARD = 0x0307, DRAWCLIPBOARD = 0x0308,
  PAINTCLIPBOARD = 0x0309, VSCROLLCLIPBOARD = 0x030A, SIZECLIPBOARD = 0x030B, ASKCBFORMATNAME = 0x030C,
  CHANGECBCHAIN = 0x030D, HSCROLLCLIPBOARD = 0x030E, QUERYNEWPALETTE = 0x030F, PALETTEISCHANGING = 0x0310,
  PALETTECHANGED = 0x0311, HOTKEY = 0x0312, PRINT = 0x0317, PRINTCLIENT = 0x0318,
  APPCOMMAND = 0x0319, THEMECHANGED = 0x031A, CLIPBOARDUPDATE = 0x031D, DWMCOMPOSITIONCHANGED = 0x031E,
  DWMNCRENDERINGCHANGED = 0x031F, DWMCOLORIZATIONCOLORCHANGED = 0x0320, DWMWINDOWMAXIMIZEDCHANGE = 0x0321, DWMSENDICONICTHUMBNAIL = 0x0323,
  DWMSENDICONICLIVEPREVIEWBITMAP = 0x0326, GETTITLEBARINFOEX = 0x033F, HANDHELDFIRST = 0x0358, HANDHELDLAST = 0x035F,
  AFXFIRST = 0x0360, AFXLAST = 0x037F, PENWINFIRST = 0x0380, PENWINLAST = 0x038F,
  APP = 0x8000, USER = 0x0400
}
 
enum  KeyModifierFlags {
  MOD_ALT = 0x0001, MOD_CONTROL = 0x0002, MOD_NOREPEAT = 0x4000, MOD_SHIFT = 0x0004,
  MOD_WIN = 0x0008
}
 
enum  MouseInputKeyStateFlags {
  MK_CONTROL = 0x0008, MK_LBUTTON = 0x0001, MK_MBUTTON = 0x0010, MK_RBUTTON = 0x0002,
  MK_SHIFT = 0x0004, MK_XBUTTON1 = 0x0020, MK_XBUTTON2 = 0x0040
}
 
enum  HotKeyInputState { MOD_ALT = 0x0001, MOD_CONTROL = 0x0002, MOD_SHIFT = 0x0004, MOD_WIN = 0x0008 }
 
enum  MouseInputXButtonFlag { XBUTTON1 = 0x0001, XBUTTON2 = 0x0002 }
 
enum  MouseInputFlags {
  MOUSEEVENTF_ABSOLUTE = 0x8000, MOUSEEVENTF_HWHEEL = 0x01000, MOUSEEVENTF_MOVE = 0x0001, MOUSEEVENTF_MOVE_NOCOALESCE = 0x2000,
  MOUSEEVENTF_LEFTDOWN = 0x0002, MOUSEEVENTF_LEFTUP = 0x0004, MOUSEEVENTF_RIGHTDOWN = 0x0008, MOUSEEVENTF_RIGHTUP = 0x0010,
  MOUSEEVENTF_MIDDLEDOWN = 0x0020, MOUSEEVENTF_MIDDLEUP = 0x0040, MOUSEEVENTF_VIRTUALDESK = 0x4000, MOUSEEVENTF_WHEEL = 0x0800,
  MOUSEEVENTF_XDOWN = 0x0080, MOUSEEVENTF_XUP = 0x0100
}
 
enum  KeyboardInputFlags { KEYEVENTF_EXTENDEDKEY = 0x0001, KEYEVENTF_KEYUP = 0x0002, KEYEVENTF_SCANCODE = 0x0008, KEYEVENTF_UNICODE = 0x0004 }
 
enum  CursorInfoFlags { CURSOR_SHOWING = 0x00000001, CURSOR_SUPPRESSED = 0x00000002 }
 
enum  InputType { INPUT_MOUSE = 0, INPUT_KEYBOARD = 1, INPUT_HARDWARE = 2 }
 
enum  VirtualKeyMapType {
  MAPVK_VK_TO_CHAR = 2, MAPVK_VK_TO_VSC = 0, MAPVK_VK_TO_VSC_EX = 4, MAPVK_VSC_TO_VK = 1,
  MAPVK_VSC_TO_VK_EX = 3
}
 
enum  VirtualKey {
  LBUTTON = 0x01, RBUTTON = 0x02, CANCEL = 0x03, MBUTTON = 0x04,
  XBUTTON1 = 0x05, XBUTTON2 = 0x06, BACK = 0x08, TAB = 0x09,
  CLEAR = 0x0C, RETURN = 0x0D, SHIFT = 0x10, CONTROL = 0x11,
  MENU = 0x12, PAUSE = 0x13, CAPITAL = 0x14, KANA = 0x15,
  HANGEUL = 0x15, HANGUL = 0x15, JUNJA = 0x17, FINAL = 0x18,
  HANJA = 0x19, KANJI = 0x19, ESCAPE = 0x1B, CONVERT = 0x1C,
  NONCONVERT = 0x1D, ACCEPT = 0x1E, MODECHANGE = 0x1F, SPACE = 0x20,
  PRIOR = 0x21, NEXT = 0x22, END = 0x23, HOME = 0x24,
  LEFT = 0x25, UP = 0x26, RIGHT = 0x27, DOWN = 0x28,
  SELECT = 0x29, PRINT = 0x2A, EXECUTE = 0x2B, SNAPSHOT = 0x2C,
  INSERT = 0x2D, DELETE = 0x2E, HELP = 0x2F, LWIN = 0x5B,
  RWIN = 0x5C, APPS = 0x5D, SLEEP = 0x5F, NUMPAD0 = 0x60,
  NUMPAD1 = 0x61, NUMPAD2 = 0x62, NUMPAD3 = 0x63, NUMPAD4 = 0x64,
  NUMPAD5 = 0x65, NUMPAD6 = 0x66, NUMPAD7 = 0x67, NUMPAD8 = 0x68,
  NUMPAD9 = 0x69, MULTIPLY = 0x6A, ADD = 0x6B, SEPARATOR = 0x6C,
  SUBTRACT = 0x6D, DECIMAL = 0x6E, DIVIDE = 0x6F, F1 = 0x70,
  F2 = 0x71, F3 = 0x72, F4 = 0x73, F5 = 0x74,
  F6 = 0x75, F7 = 0x76, F8 = 0x77, F9 = 0x78,
  F10 = 0x79, F11 = 0x7A, F12 = 0x7B, F13 = 0x7C,
  F14 = 0x7D, F15 = 0x7E, F16 = 0x7F, F17 = 0x80,
  F18 = 0x81, F19 = 0x82, F20 = 0x83, F21 = 0x84,
  F22 = 0x85, F23 = 0x86, F24 = 0x87, NUMLOCK = 0x90,
  SCROLL = 0x91, OEM_NEC_EQUAL = 0x92, OEM_FJ_JISHO = 0x92, OEM_FJ_MASSHOU = 0x93,
  OEM_FJ_TOUROKU = 0x94, OEM_FJ_LOYA = 0x95, OEM_FJ_ROYA = 0x96, LSHIFT = 0xA0,
  RSHIFT = 0xA1, LCONTROL = 0xA2, RCONTROL = 0xA3, LMENU = 0xA4,
  RMENU = 0xA5, BROWSER_BACK = 0xA6, BROWSER_FORWARD = 0xA7, BROWSER_REFRESH = 0xA8,
  BROWSER_STOP = 0xA9, BROWSER_SEARCH = 0xAA, BROWSER_FAVORITES = 0xAB, BROWSER_HOME = 0xAC,
  VOLUME_MUTE = 0xAD, VOLUME_DOWN = 0xAE, VOLUME_UP = 0xAF, MEDIA_NEXT_TRACK = 0xB0,
  MEDIA_PREV_TRACK = 0xB1, MEDIA_STOP = 0xB2, MEDIA_PLAY_PAUSE = 0xB3, LAUNCH_MAIL = 0xB4,
  LAUNCH_MEDIA_SELECT = 0xB5, LAUNCH_APP1 = 0xB6, LAUNCH_APP2 = 0xB7, OEM_1 = 0xBA,
  OEM_PLUS = 0xBB, OEM_COMMA = 0xBC, OEM_MINUS = 0xBD, OEM_PERIOD = 0xBE,
  OEM_2 = 0xBF, OEM_3 = 0xC0, OEM_4 = 0xDB, OEM_5 = 0xDC,
  OEM_6 = 0xDD, OEM_7 = 0xDE, OEM_8 = 0xDF, OEM_AX = 0xE1,
  OEM_102 = 0xE2, ICO_HELP = 0xE3, ICO_00 = 0xE4, PROCESSKEY = 0xE5,
  ICO_CLEAR = 0xE6, PACKET = 0xE7, OEM_RESET = 0xE9, OEM_JUMP = 0xEA,
  OEM_PA1 = 0xEB, OEM_PA2 = 0xEC, OEM_PA3 = 0xED, OEM_WSCTRL = 0xEE,
  OEM_CUSEL = 0xEF, OEM_ATTN = 0xF0, OEM_FINISH = 0xF1, OEM_COPY = 0xF2,
  OEM_AUTO = 0xF3, OEM_ENLW = 0xF4, OEM_BACKTAB = 0xF5, ATTN = 0xF6,
  CRSEL = 0xF7, EXSEL = 0xF8, EREOF = 0xF9, PLAY = 0xFA,
  ZOOM = 0xFB, NONAME = 0xFC, PA1 = 0xFD, OEM_CLEAR = 0xFE,
  A = 0x41, B = 0x42, C = 0x43, D = 0x44,
  E = 0x45, F = 0x46, G = 0x47, H = 0x48,
  I = 0x49, J = 0x4a, K = 0x4b, L = 0x4c,
  M = 0x4d, N = 0x4e, O = 0x4f, P = 0x50,
  Q = 0x51, R = 0x52, S = 0x53, T = 0x54,
  U = 0x55, V = 0x56, W = 0x57, X = 0x58,
  Y = 0x59, Z = 0x5a, D0 = 0x30, D1 = 0x31,
  D2 = 0x32, D3 = 0x33, D4 = 0x34, D5 = 0x35,
  D6 = 0x36, D7 = 0x37, D8 = 0x38, D9 = 0x39
}
 
enum  ScanCodes {
  LBUTTON = 0, RBUTTON = 0, CANCEL = 70, MBUTTON = 0,
  XBUTTON1 = 0, XBUTTON2 = 0, BACK = 14, TAB = 15,
  CLEAR = 76, RETURN = 28, SHIFT = 42, CONTROL = 29,
  MENU = 56, PAUSE = 0, CAPITAL = 58, KANA = 0,
  HANGUL = 0, JUNJA = 0, FINAL = 0, HANJA = 0,
  KANJI = 0, ESCAPE = 1, CONVERT = 0, NONCONVERT = 0,
  ACCEPT = 0, MODECHANGE = 0, SPACE = 57, PRIOR = 73,
  NEXT = 81, END = 79, HOME = 71, LEFT = 75,
  UP = 72, RIGHT = 77, DOWN = 80, SELECT = 0,
  PRINT = 0, EXECUTE = 0, SNAPSHOT = 84, INSERT = 82,
  DELETE = 83, HELP = 99, KEY_0 = 11, KEY_1 = 2,
  KEY_2 = 3, KEY_3 = 4, KEY_4 = 5, KEY_5 = 6,
  KEY_6 = 7, KEY_7 = 8, KEY_8 = 9, KEY_9 = 10,
  KEY_A = 30, KEY_B = 48, KEY_C = 46, KEY_D = 32,
  KEY_E = 18, KEY_F = 33, KEY_G = 34, KEY_H = 35,
  KEY_I = 23, KEY_J = 36, KEY_K = 37, KEY_L = 38,
  KEY_M = 50, KEY_N = 49, KEY_O = 24, KEY_P = 25,
  KEY_Q = 16, KEY_R = 19, KEY_S = 31, KEY_T = 20,
  KEY_U = 22, KEY_V = 47, KEY_W = 17, KEY_X = 45,
  KEY_Y = 21, KEY_Z = 44, LWIN = 91, RWIN = 92,
  APPS = 93, SLEEP = 95, NUMPAD0 = 82, NUMPAD1 = 79,
  NUMPAD2 = 80, NUMPAD3 = 81, NUMPAD4 = 75, NUMPAD5 = 76,
  NUMPAD6 = 77, NUMPAD7 = 71, NUMPAD8 = 72, NUMPAD9 = 73,
  MULTIPLY = 55, ADD = 78, SEPARATOR = 0, SUBTRACT = 74,
  DECIMAL = 83, DIVIDE = 53, F1 = 59, F2 = 60,
  F3 = 61, F4 = 62, F5 = 63, F6 = 64,
  F7 = 65, F8 = 66, F9 = 67, F10 = 68,
  F11 = 87, F12 = 88, F13 = 100, F14 = 101,
  F15 = 102, F16 = 103, F17 = 104, F18 = 105,
  F19 = 106, F20 = 107, F21 = 108, F22 = 109,
  F23 = 110, F24 = 118, NUMLOCK = 69, SCROLL = 70,
  LSHIFT = 42, RSHIFT = 54, LCONTROL = 29, RCONTROL = 29,
  LMENU = 56, RMENU = 56, BROWSER_BACK = 106, BROWSER_FORWARD = 105,
  BROWSER_REFRESH = 103, BROWSER_STOP = 104, BROWSER_SEARCH = 101, BROWSER_FAVORITES = 102,
  BROWSER_HOME = 50, VOLUME_MUTE = 32, VOLUME_DOWN = 46, VOLUME_UP = 48,
  MEDIA_NEXT_TRACK = 25, MEDIA_PREV_TRACK = 16, MEDIA_STOP = 36, MEDIA_PLAY_PAUSE = 34,
  LAUNCH_MAIL = 108, LAUNCH_MEDIA_SELECT = 109, LAUNCH_APP1 = 107, LAUNCH_APP2 = 33,
  OEM_1 = 39, OEM_PLUS = 13, OEM_COMMA = 51, OEM_MINUS = 12,
  OEM_PERIOD = 52, OEM_2 = 53, OEM_3 = 41, OEM_4 = 26,
  OEM_5 = 43, OEM_6 = 27, OEM_7 = 40, OEM_8 = 0,
  OEM_102 = 86, PROCESSKEY = 0, PACKET = 0, ATTN = 0,
  CRSEL = 0, EXSEL = 0, EREOF = 93, PLAY = 0,
  ZOOM = 98, NONAME = 0, PA1 = 0, OEM_CLEAR = 0
}
 

Functions

delegate IntPtr WindowProc (IntPtr hwnd, uint msg, IntPtr wParam, IntPtr lParam)
 
delegate bool EnumWindowsProc (IntPtr hWnd, IntPtr lParam)
 
delegate IntPtr GetMsgProc (int code, IntPtr wParam, IntPtr lParam)
 
delegate void TimerProc (IntPtr hWnd, uint uMsg, IntPtr nIdEvent, uint dwTickCountMillis)
 

Enumeration Type Documentation

◆ AlphaFormat

enum AlphaFormat : byte
strong
Enumerator
AC_SRC_OVER 
AC_SRC_ALPHA 

◆ AnimateWindowFlags

enum AnimateWindowFlags
strong
Enumerator
AW_ACTIVATE 

Activates the window.

Do not use this value with AW_HIDE.

AW_BLEND 

Uses a fade effect.

This flag can be used only if hwnd is a top-level window.

AW_CENTER 

Makes the window appear to collapse inward if AW_HIDE is used or expand outward if the AW_HIDE is not used.

The various direction flags have no effect.

AW_HIDE 

Hides the window.

By default, the window is shown.

AW_HOR_POSITIVE 

Animates the window from left to right.

This flag can be used with roll or slide animation. It is ignored when used with AW_CENTER or AW_BLEND.

AW_HOR_NEGATIVE 

Animates the window from right to left.

This flag can be used with roll or slide animation. It is ignored when used with AW_CENTER or AW_BLEND.

AW_SLIDE 

Uses slide animation.

By default, roll animation is used. This flag is ignored when used with AW_CENTER.

AW_VER_POSITIVE 

Animates the window from top to bottom.

This flag can be used with roll or slide animation. It is ignored when used with AW_CENTER or AW_BLEND.

AW_VER_NEGATIVE 

Animates the window from bottom to top.

This flag can be used with roll or slide animation. It is ignored when used with AW_CENTER or AW_BLEND.

◆ AppCommand

enum AppCommand
strong
Enumerator
APPCOMMAND_BASS_BOOST 

Toggle the bass boost on and off.

APPCOMMAND_BASS_DOWN 

Decrease the bass.

APPCOMMAND_BASS_UP 

Increase the bass.

APPCOMMAND_BROWSER_BACKWARD 

Navigate backward.

APPCOMMAND_BROWSER_FAVORITES 

Open favorites.

APPCOMMAND_BROWSER_FORWARD 

Navigate forward.

APPCOMMAND_BROWSER_HOME 

Navigate home.

APPCOMMAND_BROWSER_REFRESH 

Refresh page.

APPCOMMAND_BROWSER_SEARCH 

Open search.

APPCOMMAND_BROWSER_STOP 

Stop download.

APPCOMMAND_CLOSE 

Close the window (not the application).

APPCOMMAND_COPY 

Copy the selection.

APPCOMMAND_CORRECTION_LIST 

Brings up the correction list when a word is incorrectly identified during speech input.

APPCOMMAND_CUT 

Cut the selection.

APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE 

Toggles between two modes of speech input: dictation and command/control (giving commands to an application or accessing menus).

APPCOMMAND_FIND 

Open the Find dialog.

APPCOMMAND_FORWARD_MAIL 

Forward a mail message.

APPCOMMAND_HELP 

Open the Help dialog.

APPCOMMAND_LAUNCH_APP1 

Start App1.

APPCOMMAND_LAUNCH_APP2 

Start App2.

APPCOMMAND_LAUNCH_MAIL 

Open mail.

APPCOMMAND_LAUNCH_MEDIA_SELECT 

Go to Media Select mode.

APPCOMMAND_MEDIA_CHANNEL_DOWN 

Decrement the channel value, for example, for a TV or radio tuner.

APPCOMMAND_MEDIA_CHANNEL_UP 

Increment the channel value, for example, for a TV or radio tuner.

APPCOMMAND_MEDIA_FAST_FORWARD 

Increase the speed of stream playback.

This can be implemented in many ways, for example, using a fixed speed or toggling through a series of increasing speeds.

APPCOMMAND_MEDIA_NEXTTRACK 

Go to next track.

APPCOMMAND_MEDIA_PAUSE 

Pause.

If already paused, take no further action. This is a direct PAUSE command that has no state. If there are discrete Play and Pause buttons, applications should take action on this command as well as APPCOMMAND_MEDIA_PLAY_PAUSE.

APPCOMMAND_MEDIA_PLAY 

Begin playing at the current position.

If already paused, it will resume. This is a direct PLAY command that has no state. If there are discrete Play and Pause buttons, applications should take action on this command as well as APPCOMMAND_MEDIA_PLAY_PAUSE.

APPCOMMAND_MEDIA_PLAY_PAUSE 

Play or pause playback.

If there are discrete Play and Pause buttons, applications should take action on this command as well as APPCOMMAND_MEDIA_PLAY and APPCOMMAND_MEDIA_PAUSE.

APPCOMMAND_MEDIA_PREVIOUSTRACK 

Go to previous track.

APPCOMMAND_MEDIA_RECORD 

Begin recording the current stream.

APPCOMMAND_MEDIA_REWIND 

Go backward in a stream at a higher rate of speed.

This can be implemented in many ways, for example, using a fixed speed or toggling through a series of increasing speeds.

APPCOMMAND_MEDIA_STOP 

Stop playback.

APPCOMMAND_MIC_ON_OFF_TOGGLE 

Toggle the microphone.

APPCOMMAND_MICROPHONE_VOLUME_DOWN 

Increase microphone volume.

APPCOMMAND_MICROPHONE_VOLUME_MUTE 

Mute the microphone.

APPCOMMAND_MICROPHONE_VOLUME_UP 

Decrease microphone volume.

APPCOMMAND_NEW 

Create a new window.

APPCOMMAND_OPEN 

Open a window.

APPCOMMAND_PASTE 

Paste

APPCOMMAND_PRINT 

Print current document.

APPCOMMAND_REDO 

Redo last action.

APPCOMMAND_REPLY_TO_MAIL 

Reply to a mail message.

APPCOMMAND_SAVE 

Save current document.

APPCOMMAND_SEND_MAIL 

Send a mail message.

APPCOMMAND_SPELL_CHECK 

Initiate a spell check.

APPCOMMAND_TREBLE_DOWN 

Decrease the treble.

APPCOMMAND_TREBLE_UP 

Increase the treble.

APPCOMMAND_UNDO 

Undo last action.

APPCOMMAND_VOLUME_DOWN 

Lower the volume.

APPCOMMAND_VOLUME_MUTE 

Mute the volume.

APPCOMMAND_VOLUME_UP 

Raise the volume.

◆ AppCommandDevice

enum AppCommandDevice
strong
Enumerator
FAPPCOMMAND_KEY 

User pressed a key.

FAPPCOMMAND_MOUSE 

User clicked a mouse button.

FAPPCOMMAND_OEM 

An unidentified hardware source generated the event.

It could be a mouse or a keyboard event.

FAPPCOMMAND_MASK 

◆ ArrangeFlags

enum ArrangeFlags
strong
Enumerator
ARW_BOTTOMLEFT 

Start at the lower-left corner of the work area.

ARW_BOTTOMRIGHT 

Start at the lower-right corner of the work area.

ARW_TOPLEFT 

Start at the upper-left corner of the work area.

ARW_TOPRIGHT 

Start at the upper-right corner of the work area.

ARW_LEFT 

Arrange left (valid with ARW_BOTTOMRIGHT and ARW_TOPRIGHT only).

ARW_RIGHT 

Arrange right (valid with ARW_BOTTOMLEFT and ARW_TOPLEFT only).

ARW_UP 

Arrange up (valid with ARW_BOTTOMLEFT and ARW_BOTTOMRIGHT only).

ARW_DOWN 

Arrange down (valid with ARW_TOPLEFT and ARW_TOPRIGHT only).

ARW_HIDE 

Hide minimized windows by moving them off the visible area of the screen.

◆ ChildWindowFromPointFlags

Enumerator
CWP_ALL 

Does not skip any child windows

CWP_SKIPDISABLED 

Skips disabled child windows

CWP_SKIPINVISIBLE 

Skips invisible child windows

CWP_SKIPTRANSPARENT 

Skips transparent child windows

◆ ClassLongFlags

enum ClassLongFlags
strong
Enumerator
GCL_CBCLSEXTRA 

Sets the size, in bytes, of the extra memory associated with the class.

Setting this value does not change the number of extra bytes already allocated.

GCL_CBWNDEXTRA 

Sets the size, in bytes, of the extra window memory associated with each window in the class.

Setting this value does not change the number of extra bytes already allocated. For information on how to access this memory, see SetWindowLong.

GCL_HBRBACKGROUND 

Replaces a handle to the background brush associated with the class.

GCL_HCURSOR 

Replaces a handle to the cursor associated with the class.

GCL_HICON 

Replaces a handle to the icon associated with the class.

GCL_HICONSM 

Replace a handle to the small icon associated with the class.

GCL_HMODULE 

Replaces a handle to the module that registered the class.

GCL_MENUNAME 

Replaces the address of the menu name string.

The string identifies the menu resource associated with the class.

GCL_STYLE 

Replaces the window-class style bits.

GCL_WNDPROC 

Replaces the address of the window procedure associated with the class.

◆ CommandSource

enum CommandSource
strong
Enumerator
Menu 
Accelerator 

◆ CreateWindowFlags

enum CreateWindowFlags
strong
Enumerator
CW_USEDEFAULT 

Use default values

◆ CursorInfoFlags

enum CursorInfoFlags
strong
Enumerator
CURSOR_SHOWING 

The cursor is showing.

CURSOR_SUPPRESSED 

Windows 8: The cursor is suppressed.

This flag indicates that the system is not drawing the cursor because the user is providing input through touch or pen instead of the mouse.

◆ DeviceCapability

enum DeviceCapability
strong
Enumerator
DC_ACTIVE 
DC_SMALLCAP 
DC_ICON 
DC_TEXT 
DC_INBUTTON 
DC_GRADIENT 
DC_BUTTONS 
DC_HASDEFID 
DC_BRUSH 
DC_PEN 
DC_FIELDS 
DC_PAPERS 
DC_PAPERSIZE 
DC_MINEXTENT 
DC_MAXEXTENT 
DC_BINS 
DC_DUPLEX 
DC_SIZE 
DC_EXTRA 
DC_VERSION 
DC_DRIVER 
DC_BINNAMES 
DC_ENUMRESOLUTIONS 
DC_FILEDEPENDENCIES 
DC_TRUETYPE 
DC_PAPERNAMES 
DC_ORIENTATION 
DC_COPIES 
DC_BINADJUST 
DC_EMF_COMPLIANT 
DC_DATATYPE_PRODUCED 
DC_COLLATE 
DC_MANUFACTURER 
DC_MODEL 
DC_PERSONALITY 
DC_PRINTRATE 
DC_PRINTRATEUNIT 
DC_PRINTERMEM 
DC_MEDIAREADY 
DC_STAPLE 
DC_PRINTRATEPPM 
DC_COLORDEVICE 
DC_NUP 
DC_MEDIATYPENAMES 
DC_MEDIATYPES 

◆ DeviceContextFlags

enum DeviceContextFlags
strong
Enumerator
DCX_WINDOW 

Returns a DC that corresponds to the window rectangle rather than the client rectangle.

DCX_CACHE 

Returns a DC from the cache, rather than the OWNDC or CLASSDC window.

Essentially overrides CS_OWNDC and CS_CLASSDC.

DCX_NORESETATTRS 

Does not reset the attributes of this DC to the default attributes when this DC is released.

DCX_CLIPCHILDREN 

Excludes the visible regions of all child windows below the window identified by hWnd.

DCX_CLIPSIBLINGS 

Excludes the visible regions of all sibling windows above the window identified by hWnd.

DCX_PARENTCLIP 

Uses the visible region of the parent window.

The parent's WS_CLIPCHILDREN and CS_PARENTDC style bits are ignored. The origin is set to the upper-left corner of the window identified by hWnd.

DCX_EXCLUDERGN 

The clipping region identified by hrgnClip is excluded from the visible region of the returned DC.

DCX_INTERSECTRGN 

The clipping region identified by hrgnClip is intersected with the visible region of the returned DC.

DCX_EXCLUDEUPDATE 

Undocumented flag

DCX_INTERSECTUPDATE 

Reserved; do not use.

DCX_LOCKWINDOWUPDATE 

Allows drawing even if there is a LockWindowUpdate call in effect that would otherwise exclude this window.

Used for drawing during tracking.

DCX_VALIDATE 

Reserved; do not use.

◆ DrawTextFormatFlags

enum DrawTextFormatFlags
strong
Enumerator
DT_BOTTOM 

Justifies the text to the bottom of the rectangle.

This value is used only with the DT_SINGLELINE value.

DT_CALCRECT 

Determines the width and height of the rectangle.

If there are multiple lines of text, DrawText uses the width of the rectangle pointed to by the lpRect parameter and extends the base of the rectangle to bound the last line of text. If the largest word is wider than the rectangle, the width is expanded. If the text is less than the width of the rectangle, the width is reduced. If there is only one line of text, DrawText modifies the right side of the rectangle so that it bounds the last character in the line. In either case, DrawText returns the height of the formatted text but does not draw the text.

DT_CENTER 

Centers text horizontally in the rectangle.

DT_EDITCONTROL 

Duplicates the text-displaying characteristics of a multiline edit control.

Specifically, the average character width is calculated in the same manner as for an edit control, and the function does not display a partially visible last line.

DT_END_ELLIPSIS 

For displayed text, if the end of a string does not fit in the rectangle, it is truncated and ellipses are added.

If a word that is not at the end of the string goes beyond the limits of the rectangle, it is truncated without ellipses. The string is not modified unless the DT_MODIFYSTRING flag is specified. Compare with DT_PATH_ELLIPSIS and DT_WORD_ELLIPSIS.

DT_EXPANDTABS 

Expands tab characters.

The default number of characters per tab is eight. The DT_WORD_ELLIPSIS, DT_PATH_ELLIPSIS, and DT_END_ELLIPSIS values cannot be used with the DT_EXPANDTABS value.

DT_EXTERNALLEADING 

Includes the font external leading in line height.

Normally, external leading is not included in the height of a line of text.

DT_HIDEPREFIX 

Ignores the ampersand (&) prefix character in the text.

The letter that follows will not be underlined, but other mnemonic-prefix characters are still processed. Example: input string: "A&bc&&d" normal: "Abc&d" DT_HIDEPREFIX: "Abc&d" Compare with DT_NOPREFIX and DT_PREFIXONLY.

DT_INTERNAL 

Uses the system font to calculate text metrics.

DT_LEFT 

Aligns text to the left.

DT_MODIFYSTRING 

Modifies the specified string to match the displayed text.

This value has no effect unless DT_END_ELLIPSIS or DT_PATH_ELLIPSIS is specified.

DT_NOCLIP 

Draws without clipping.

DrawText is somewhat faster when DT_NOCLIP is used.

DT_NOFULLWIDTHCHARBREAK 

Prevents a line break at a DBCS (double-wide character string), so that the line breaking rule is equivalent to SBCS strings.

For example, this can be used in Korean windows, for more readability of icon labels. This value has no effect unless DT_WORDBREAK is specified.

DT_NOPREFIX 

Turns off processing of prefix characters.

Normally, DrawText interprets the mnemonic-prefix character & as a directive to underscore the character that follows, and the mnemonic-prefix characters && as a directive to print a single &. By specifying DT_NOPREFIX, this processing is turned off. For example, Example: input string: "A&bc&&d" normal: "Abc&d" DT_NOPREFIX: "A&bc&&d" Compare with DT_HIDEPREFIX and DT_PREFIXONLY.

DT_PATH_ELLIPSIS 

For displayed text, replaces characters in the middle of the string with ellipses so that the result fits in the specified rectangle.

If the string contains backslash () characters, DT_PATH_ELLIPSIS preserves as much as possible of the text after the last backslash. The string is not modified unless the DT_MODIFYSTRING flag is specified. Compare with DT_END_ELLIPSIS and DT_WORD_ELLIPSIS.

DT_PREFIXONLY 

Draws only an underline at the position of the character following the ampersand (&) prefix character.

Does not draw any other characters in the string. For example, Example: input string: "A&bc&&d"n normal: "Abc&d" DT_PREFIXONLY: " _ " Compare with DT_HIDEPREFIX and DT_NOPREFIX.

DT_RIGHT 

Aligns text to the right.

DT_RTLREADING 

Layout in right-to-left reading order for bidirectional text when the font selected into the hdc is a Hebrew or Arabic font.

The default reading order for all text is left-to-right.

DT_SINGLELINE 

Displays text on a single line only.

Carriage returns and line feeds do not break the line.

DT_TABSTOP 

Sets tab stops.

Bits 15-8 (high-order byte of the low-order word) of the uFormat parameter specify the number of characters for each tab. The default number of characters per tab is eight. The DT_CALCRECT, DT_EXTERNALLEADING, DT_INTERNAL, DT_NOCLIP, and DT_NOPREFIX values cannot be used with the DT_TABSTOP value.

DT_TOP 

Justifies the text to the top of the rectangle.

DT_VCENTER 

Centers text vertically.

This value is used only with the DT_SINGLELINE value.

DT_WORDBREAK 

Breaks words.

Lines are automatically broken between words if a word would extend past the edge of the rectangle specified by the lpRect parameter. A carriage return-line feed sequence also breaks the line. If this is not specified, output is on one line.

DT_WORD_ELLIPSIS 

Truncates any word that does not fit in the rectangle and adds ellipses.

Compare with DT_END_ELLIPSIS and DT_PATH_ELLIPSIS.

◆ ElementSystemStates

enum ElementSystemStates
strong
Enumerator
STATE_SYSTEM_FOCUSABLE 

The element can accept the focus.

STATE_SYSTEM_INVISIBLE 

The element is invisible.

STATE_SYSTEM_OFFSCREEN 

The element has no visible representation.

STATE_SYSTEM_UNAVAILABLE 

The element is unavailable.

STATE_SYSTEM_PRESSED 

The element is in the pressed state.

◆ GetWindowFlag

enum GetWindowFlag
strong
Enumerator
GW_CHILD 

The retrieved handle identifies the child window at the top of the Z order, if the specified window is a parent window; otherwise, the retrieved handle is NULL.

The function examines only child windows of the specified window. It does not examine descendant windows.

GW_ENABLEDPOPUP 

The retrieved handle identifies the enabled popup window owned by the specified window (the search uses the first such window found using GW_HWNDNEXT); otherwise, if there are no enabled popup windows, the retrieved handle is that of the specified window.

GW_HWNDFIRST 

The retrieved handle identifies the window of the same type that is highest in the Z order.

If the specified window is a topmost window, the handle identifies a topmost window. If the specified window is a top-level window, the handle identifies a top-level window. If the specified window is a child window, the handle identifies a sibling window.

GW_HWNDLAST 

The retrieved handle identifies the window of the same type that is lowest in the Z order.

If the specified window is a topmost window, the handle identifies a topmost window. If the specified window is a top-level window, the handle identifies a top-level window. If the specified window is a child window, the handle identifies a sibling window.

GW_HWNDNEXT 

The retrieved handle identifies the window below the specified window in the Z order.

If the specified window is a topmost window, the handle identifies a topmost window. If the specified window is a top-level window, the handle identifies a top-level window. If the specified window is a child window, the handle identifies a sibling window.

GW_HWNDPREV 

The retrieved handle identifies the window above the specified window in the Z order.

If the specified window is a topmost window, the handle identifies a topmost window. If the specified window is a top-level window, the handle identifies a top-level window. If the specified window is a child window, the handle identifies a sibling window.

GW_OWNER 

The retrieved handle identifies the specified window's owner window, if any.

For more information, see Owned Windows.

◆ HitTestResult

enum HitTestResult
strong
Enumerator
HTERROR 

On the screen background or on a dividing line between windows (same as HTNOWHERE, except that the DefWindowProc function produces a system beep to indicate an error).

HTTRANSPARENT 

In a window currently covered by another window in the same thread (the message will be sent to underlying windows in the same thread until one of them returns a code that is not HTTRANSPARENT).

HTNOWHERE 

On the screen background or on a dividing line between windows.

HTCLIENT 

In a client area.

HTCAPTION 

In a title bar.

HTSYSMENU 

In a window menu or in a Close button in a child window.

HTGROWBOX 

In a size box (same as HTSIZE).

HTSIZE 

In a size box (same as HTGROWBOX).

HTMENU 

In a menu.

HTHSCROLL 

In a horizontal scroll bar.

HTVSCROLL 

In the vertical scroll bar.

HTMINBUTTON 

In a Minimize button.

HTREDUCE 

In a Minimize button.

HTMAXBUTTON 

In a Maximize button.

HTZOOM 

In a Maximize button.

HTLEFT 

In the left border of a resizable window (the user can click the mouse to resize the window horizontally).

HTRIGHT 

In the right border of a resizable window (the user can click the mouse to resize the window horizontally).

HTTOP 

In the upper-horizontal border of a window.

HTTOPLEFT 

In the upper-left corner of a window border.

HTTOPRIGHT 

In the upper-right corner of a window border.

HTBOTTOM 

In the lower-horizontal border of a resizable window (the user can click the mouse to resize the window vertically).

HTBOTTOMLEFT 

In the lower-left corner of a border of a resizable window (the user can click the mouse to resize the window diagonally).

HTBOTTOMRIGHT 

In the lower-right corner of a border of a resizable window (the user can click the mouse to resize the window diagonally).

HTBORDER 

In the border of a window that does not have a sizing border.

HTOBJECT 
HTCLOSE 

In a Close button.

HTHELP 

In a Help button.

◆ HotKeyInputState

enum HotKeyInputState
strong
Enumerator
MOD_ALT 

Either ALT key was held down.

MOD_CONTROL 

Either CTRL key was held down.

MOD_SHIFT 

Either SHIFT key was held down.

MOD_WIN 

Either WINDOWS key was held down.

These keys are labeled with the Windows logo. Hotkeys that involve the Windows key are reserved for use by the operating system.

◆ HwndZOrder

enum HwndZOrder
strong
Enumerator
HWND_BOTTOM 

Places the window at the bottom of the Z order.

If the hWnd parameter identifies a topmost window, the window loses its topmost status and is placed at the bottom of all other windows.

HWND_NOTOPMOST 

Places the window above all non-topmost windows (that is, behind all topmost windows).

This flag has no effect if the window is already a non-topmost window.

HWND_TOP 

Places the window at the top of the Z order.

HWND_TOPMOST 

Places the window above all non-topmost windows.

The window maintains its topmost position even when it is deactivated.

◆ InputType

enum InputType
strong
Enumerator
INPUT_MOUSE 

The event is a mouse event.

Use the mi structure of the union.

INPUT_KEYBOARD 

The event is a keyboard event.

Use the ki structure of the union.

INPUT_HARDWARE 

The event is a hardware event.

Use the hi structure of the union.

◆ KeyboardInputFlags

enum KeyboardInputFlags
strong
Enumerator
KEYEVENTF_EXTENDEDKEY 

If specified, the scan code was preceded by a prefix byte that has the value 0xE0 (224).

KEYEVENTF_KEYUP 

If specified, the key is being released.

If not specified, the key is being pressed.

KEYEVENTF_SCANCODE 

If specified, wScan identifies the key and wVk is ignored.

KEYEVENTF_UNICODE 

If specified, the system synthesizes a VK_PACKET keystroke.

The wVk parameter must be zero. This flag can only be combined with the KEYEVENTF_KEYUP flag. For more information, see the Remarks section.

◆ KeyModifierFlags

enum KeyModifierFlags
strong
Enumerator
MOD_ALT 

Either ALT key must be held down.

MOD_CONTROL 

Either CTRL key must be held down.

MOD_NOREPEAT 

Changes the hotkey behavior so that the keyboard auto-repeat does not yield multiple hotkey notifications.

Windows Vista: This flag is not supported.

MOD_SHIFT 

Either SHIFT key must be held down.

MOD_WIN 

Either WINDOWS key was held down.

These keys are labeled with the Windows logo. Keyboard shortcuts that involve the WINDOWS key are reserved for use by the operating system.

◆ LayeredWindowAttributeFlag

Enumerator
LWA_ALPHA 

Use bAlpha to determine the opacity of the layered window.

LWA_COLORKEY 

Use crKey as the transparency color.

◆ LoadResourceFlags

enum LoadResourceFlags
strong
Enumerator
LR_CREATEDIBSECTION 

When the uType parameter specifies IMAGE_BITMAP, causes the function to return a DIB section bitmap rather than a compatible bitmap.

This flag is useful for loading a bitmap without mapping it to the colors of the display device.

LR_DEFAULTCOLOR 

The default flag; it does nothing.

All it means is "not LR_MONOCHROME".

LR_DEFAULTSIZE 

Uses the width or height specified by the system metric values for cursors or icons, if the cxDesired or cyDesired values are set to zero.

If this flag is not specified and cxDesired and cyDesired are set to zero, the function uses the actual resource size. If the resource contains multiple images, the function uses the size of the first image.

LR_LOADFROMFILE 

Loads the stand-alone image from the file specified by lpszName (icon, cursor, or bitmap file).

LR_LOADMAP3DCOLORS 

Searches the color table for the image and replaces the following shades of gray with the corresponding 3-D color.

Dk Gray, RGB(128,128,128) with COLOR_3DSHADOW Gray, RGB(192,192,192) with COLOR_3DFACE Lt Gray, RGB(223,223,223) with COLOR_3DLIGHT Do not use this option if you are loading a bitmap with a color depth greater than 8bpp.

LR_LOADTRANSPARENT 

Retrieves the color value of the first pixel in the image and replaces the corresponding entry in the color table with the default window color (COLOR_WINDOW).

All pixels in the image that use that entry become the default window color. This value applies only to images that have corresponding color tables. Do not use this option if you are loading a bitmap with a color depth greater than 8bpp. If fuLoad includes both the LR_LOADTRANSPARENT and LR_LOADMAP3DCOLORS values, LR_LOADTRANSPARENT takes precedence. However, the color table entry is replaced with COLOR_3DFACE rather than COLOR_WINDOW.

LR_MONOCHROME 

Loads the image in black and white.

LR_SHARED 

Shares the image handle if the image is loaded multiple times.

If LR_SHARED is not set, a second call to LoadImage for the same resource will load the image again and return a different handle. When you use this flag, the system will destroy the resource when it is no longer needed. Do not use LR_SHARED for images that have non-standard sizes, that may change after loading, or that are loaded from a file. When loading a system icon or cursor, you must use LR_SHARED or the function will fail to load the resource. This function finds the first image in the cache with the requested resource name, regardless of the size requested.

LR_VGACOLOR 

Uses true VGA colors.

◆ MessageBoxFlags

enum MessageBoxFlags
strong
Enumerator
MB_ABORTRETRYIGNORE 

The message box contains three push buttons: Abort, Retry, and Ignore.

MB_CANCELTRYCONTINUE 

The message box contains three push buttons: Cancel, Try Again, Continue.

Use this message box type instead of MB_ABORTRETRYIGNORE.

MB_HELP 

Adds a Help button to the message box.

When the user clicks the Help button or presses F1, the system sends a WM_HELP message to the owner.

MB_OK 

The message box contains one push button: OK.

This is the default.

MB_OKCANCEL 

The message box contains two push buttons: OK and Cancel.

MB_RETRYCANCEL 

The message box contains two push buttons: Retry and Cancel.

MB_YESNO 

The message box contains two push buttons: Yes and No.

MB_YESNOCANCEL 

The message box contains three push buttons: Yes, No, and Cancel.

MB_ICONEXCLAMATION 

An exclamation-point icon appears in the message box.

MB_ICONWARNING 

An exclamation-point icon appears in the message box.

MB_ICONINFORMATION 

An icon consisting of a lowercase letter i in a circle appears in the message box.

MB_ICONASTERISK 

An icon consisting of a lowercase letter i in a circle appears in the message box.

MB_ICONQUESTION 

A question-mark icon appears in the message box.

The question-mark message icon is no longer recommended because it does not clearly represent a specific type of message and because the phrasing of a message as a question could apply to any message type. In addition, users can confuse the message symbol question mark with Help information. Therefore, do not use this question mark message symbol in your message boxes. The system continues to support its inclusion only for backward compatibility.

MB_ICONSTOP 

A stop-sign icon appears in the message box.

MB_ICONERROR 

A stop-sign icon appears in the message box.

MB_ICONHAND 

A stop-sign icon appears in the message box.

MB_DEFBUTTON1 

The first button is the default button.

MB_DEFBUTTON1 is the default unless MB_DEFBUTTON2, MB_DEFBUTTON3, or MB_DEFBUTTON4 is specified.

MB_DEFBUTTON2 

The second button is the default button.

MB_DEFBUTTON3 

The third button is the default button.

MB_DEFBUTTON4 

The fourth button is the default button.

MB_APPLMODAL 

The user must respond to the message box before continuing work in the window identified by the hWnd parameter.

However, the user can move to the windows of other threads and work in those windows. Depending on the hierarchy of windows in the application, the user may be able to move to other windows within the thread. All child windows of the parent of the message box are automatically disabled, but pop-up windows are not. MB_APPLMODAL is the default if neither MB_SYSTEMMODAL nor MB_TASKMODAL is specified.

MB_SYSTEMMODAL 

Same as MB_APPLMODAL except that the message box has the WS_EX_TOPMOST style.

Use system-modal message boxes to notify the user of serious, potentially damaging errors that require immediate attention (for example, running out of memory). This flag has no effect on the user's ability to interact with windows other than those associated with hWnd.

MB_TASKMODAL 

Same as MB_APPLMODAL except that all the top-level windows belonging to the current thread are disabled if the hWnd parameter is NULL.

Use this flag when the calling application or library does not have a window handle available but still needs to prevent input to other windows in the calling thread without suspending other threads.

MB_DEFAULT_DESKTOP_ONLY 

Same as desktop of the interactive window station.

For more information, see Window Stations. If the current input desktop is not the default desktop, MessageBox does not return until the user switches to the default desktop.

MB_RIGHT 

The text is right-justified.

MB_RTLREADING 

Displays message and caption text using right-to-left reading order on Hebrew and Arabic systems.

MB_SETFOREGROUND 

The message box becomes the foreground window.

Internally, the system calls the SetForegroundWindow function for the message box.

MB_TOPMOST 

The message box is created with the WS_EX_TOPMOST window style.

MB_SERVICE_NOTIFICATION 

The caller is a service notifying the user of an event.

The function displays a message box on the current active desktop, even if there is no user logged on to the computer. Terminal Services: If the calling thread has an impersonation token, the function directs the message box to the session specified in the impersonation token. If this flag is set, the hWnd parameter must be NULL. This is so that the message box can appear on a desktop other than the desktop corresponding to the hWnd. For information on security considerations in regard to using this flag, see Interactive Services. In particular, be aware that this flag can produce interactive content on a locked desktop and should therefore be used for only a very limited set of scenarios, such as resource exhaustion.

◆ MessageBoxResult

enum MessageBoxResult
strong
Enumerator
IDABORT 

The Abort button was selected.

IDCANCEL 

The Cancel button was selected.

IDCONTINUE 

The Continue button was selected.

IDIGNORE 

The Ignore button was selected.

IDNO 

The No button was selected.

IDOK 

The OK button was selected.

IDRETRY 

The Retry button was selected.

IDTRYAGAIN 

The Try Again button was selected.

IDYES 

The Yes button was selected.

◆ MonitorFlag

enum MonitorFlag
strong
Enumerator
MONITOR_DEFAULTTONULL 

Returns NULL.

MONITOR_DEFAULTTOPRIMARY 

Returns a handle to the primary display monitor.

MONITOR_DEFAULTTONEAREST 

Returns a handle to the display monitor that is nearest to the window.

◆ MonitorInfoFlag

enum MonitorInfoFlag
strong
Enumerator
MONITORINFOF_NONE 
MONITORINFOF_PRIMARY 

This is the primary display monitor.

◆ MouseActivationResult

enum MouseActivationResult
strong
Enumerator
MA_ACTIVATE 

Activates the window, and does not discard the mouse message.

MA_ACTIVATEANDEAT 

Activates the window, and discards the mouse message.

MA_NOACTIVATE 

Does not activate the window, and does not discard the mouse message.

MA_NOACTIVATEANDEAT 

Does not activate the window, but discards the mouse message.

◆ MouseInputFlags

enum MouseInputFlags
strong
Enumerator
MOUSEEVENTF_ABSOLUTE 

The dx and dy members contain normalized absolute coordinates.

If the flag is not set, dxand dy contain relative data (the change in position since the last reported position). This flag can be set, or not set, regardless of what kind of mouse or other pointing device, if any, is connected to the system. For further information about relative mouse motion, see the following Remarks section.

MOUSEEVENTF_HWHEEL 

The wheel was moved horizontally, if the mouse has a wheel.

The amount of movement is specified in mouseData. Windows XP/2000:  This value is not supported.

MOUSEEVENTF_MOVE 

Movement occurred.

MOUSEEVENTF_MOVE_NOCOALESCE 

The WM_MOUSEMOVE messages will not be coalesced.

The default behavior is to coalesce WM_MOUSEMOVE messages. Windows XP/2000:  This value is not supported.

MOUSEEVENTF_LEFTDOWN 

The left button was pressed.

MOUSEEVENTF_LEFTUP 

The left button was released.

MOUSEEVENTF_RIGHTDOWN 

The right button was pressed.

MOUSEEVENTF_RIGHTUP 

The right button was released.

MOUSEEVENTF_MIDDLEDOWN 

The middle button was pressed.

MOUSEEVENTF_MIDDLEUP 

The middle button was released.

MOUSEEVENTF_VIRTUALDESK 

Maps coordinates to the entire desktop.

Must be used with MOUSEEVENTF_ABSOLUTE.

MOUSEEVENTF_WHEEL 

The wheel was moved, if the mouse has a wheel.

The amount of movement is specified in mouseData.

MOUSEEVENTF_XDOWN 

An X button was pressed.

MOUSEEVENTF_XUP 

An X button was released.

◆ MouseInputKeyStateFlags

Enumerator
MK_CONTROL 

The CTRL key is down.

MK_LBUTTON 

The left mouse button is down.

MK_MBUTTON 

The middle mouse button is down.

MK_RBUTTON 

The right mouse button is down.

MK_SHIFT 

The SHIFT key is down.

MK_XBUTTON1 

The first X button is down.

MK_XBUTTON2 

The second X button is down.

◆ MouseInputXButtonFlag

enum MouseInputXButtonFlag
strong
Enumerator
XBUTTON1 

The first X button was clicked.

XBUTTON2 

The second X button was clicked.

◆ PeekMessageFlags

enum PeekMessageFlags
strong
Enumerator
PM_NOREMOVE 

Messages are not removed from the queue after processing by PeekMessage.

PM_REMOVE 

Messages are removed from the queue after processing by PeekMessage.

PM_NOYIELD 

Prevents the system from releasing any thread that is waiting for the caller to go idle (see WaitForInputIdle).

Combine this value with either PM_NOREMOVE or PM_REMOVE.

PM_QS_INPUT 

Process mouse and keyboard messages.

PM_QS_PAINT 

Process paint messages.

PM_QS_POSTMESSAGE 

Process all posted messages, including timers and hotkeys.

PM_QS_SENDMESSAGE 

Process all sent messages.

◆ QueueStatusFlags

enum QueueStatusFlags
strong
Enumerator
QS_ALLEVENTS 

An input, WM_TIMER, WM_PAINT, WM_HOTKEY, or posted message is in the queue.

QS_ALLINPUT 

Any message is in the queue.

QS_ALLPOSTMESSAGE 

A posted message (other than those listed here) is in the queue.

QS_HOTKEY 

A WM_HOTKEY message is in the queue.

QS_INPUT 

An input message is in the queue.

QS_KEY 

A WM_KEYUP, WM_KEYDOWN, WM_SYSKEYUP, or WM_SYSKEYDOWN message is in the queue.

QS_MOUSE 

A WM_MOUSEMOVE message or mouse-button message (WM_LBUTTONUP, WM_RBUTTONDOWN, and so on).

QS_MOUSEBUTTON 

A mouse-button message (WM_LBUTTONUP, WM_RBUTTONDOWN, and so on).

QS_MOUSEMOVE 

A WM_MOUSEMOVE message is in the queue.

QS_PAINT 

A WM_PAINT message is in the queue.

QS_POSTMESSAGE 

A posted message (other than those listed here) is in the queue.

QS_RAWINPUT 

A raw input message is in the queue.

For more information, see Raw Input. Windows 2000:  This flag is not supported.

QS_SENDMESSAGE 

A message sent by another thread or application is in the queue.

QS_TIMER 

A WM_TIMER message is in the queue.

QS_REFRESH 

◆ RedrawWindowFlags

enum RedrawWindowFlags
strong
Enumerator
RDW_INVALIDATE 

Invalidates lprcUpdate or hrgnUpdate (only one may be non-NULL).

If both are NULL, the entire window is invalidated.

RDW_INTERNALPAINT 

Causes a WM_PAINT message to be posted to the window regardless of whether any portion of the window is invalid.

RDW_ERASE 

Causes the window to receive a WM_ERASEBKGND message when the window is repainted.

The RDW_INVALIDATE flag must also be specified; otherwise, RDW_ERASE has no effect.

RDW_VALIDATE 

Validates lprcUpdate or hrgnUpdate (only one may be non-NULL).

If both are NULL, the entire window is validated. This flag does not affect internal WM_PAINT messages.

RDW_NOINTERNALPAINT 

Suppresses any pending internal WM_PAINT messages.

This flag does not affect WM_PAINT messages resulting from a non-NULL update area.

RDW_NOERASE 

Suppresses any pending WM_ERASEBKGND messages.

RDW_NOCHILDREN 

Excludes child windows, if any, from the repainting operation.

RDW_ALLCHILDREN 

Includes child windows, if any, in the repainting operation.

RDW_UPDATENOW 

Causes the affected windows (as specified by the RDW_ALLCHILDREN and RDW_NOCHILDREN flags) to receive WM_NCPAINT, WM_ERASEBKGND, and WM_PAINT messages, if necessary, before the function returns.

RDW_ERASENOW 

Causes the affected windows (as specified by the RDW_ALLCHILDREN and RDW_NOCHILDREN flags) to receive WM_NCPAINT and WM_ERASEBKGND messages, if necessary, before the function returns.

WM_PAINT messages are received at the ordinary time.

RDW_FRAME 

Causes any part of the nonclient area of the window that intersects the update region to receive a WM_NCPAINT message.

The RDW_INVALIDATE flag must also be specified; otherwise, RDW_FRAME has no effect. The WM_NCPAINT message is typically not sent during the execution of RedrawWindow unless either RDW_UPDATENOW or RDW_ERASENOW is specified.

RDW_NOFRAME 

Suppresses any pending WM_NCPAINT messages.

This flag must be used with RDW_VALIDATE and is typically used with RDW_NOCHILDREN. RDW_NOFRAME should be used with care, as it could cause parts of a window to be painted improperly.

◆ RegionModeFlags

enum RegionModeFlags
strong
Enumerator
RGN_AND 
RGN_OR 
RGN_XOR 
RGN_DIFF 
RGN_COPY 
RGN_MIN 
RGN_MAX 

◆ RegionType

enum RegionType
strong
Enumerator
ERROR 

The specified window does not have a region, or an error occurred while attempting to return the region.

NULLREGION 

The region is empty.

SIMPLEREGION 

The region is a single rectangle.

COMPLEXREGION 

The region is more than one rectangle.

◆ ResourceImageType

enum ResourceImageType
strong
Enumerator
IMAGE_BITMAP 

Loads a bitmap.

IMAGE_CURSOR 

Loads a cursor.

IMAGE_ICON 

Loads an icon.

◆ ScanCodes

enum ScanCodes
strong
Enumerator
LBUTTON 
RBUTTON 
CANCEL 
MBUTTON 
XBUTTON1 
XBUTTON2 
BACK 
TAB 
CLEAR 
RETURN 
SHIFT 
CONTROL 
MENU 
PAUSE 
CAPITAL 
KANA 
HANGUL 
JUNJA 
FINAL 
HANJA 
KANJI 
ESCAPE 
CONVERT 
NONCONVERT 
ACCEPT 
MODECHANGE 
SPACE 
PRIOR 
NEXT 
END 
HOME 
LEFT 
UP 
RIGHT 
DOWN 
SELECT 
PRINT 
EXECUTE 
SNAPSHOT 
INSERT 
DELETE 
HELP 
KEY_0 
KEY_1 
KEY_2 
KEY_3 
KEY_4 
KEY_5 
KEY_6 
KEY_7 
KEY_8 
KEY_9 
KEY_A 
KEY_B 
KEY_C 
KEY_D 
KEY_E 
KEY_F 
KEY_G 
KEY_H 
KEY_I 
KEY_J 
KEY_K 
KEY_L 
KEY_M 
KEY_N 
KEY_O 
KEY_P 
KEY_Q 
KEY_R 
KEY_S 
KEY_T 
KEY_U 
KEY_V 
KEY_W 
KEY_X 
KEY_Y 
KEY_Z 
LWIN 
RWIN 
APPS 
SLEEP 
NUMPAD0 
NUMPAD1 
NUMPAD2 
NUMPAD3 
NUMPAD4 
NUMPAD5 
NUMPAD6 
NUMPAD7 
NUMPAD8 
NUMPAD9 
MULTIPLY 
ADD 
SEPARATOR 
SUBTRACT 
DECIMAL 
DIVIDE 
F1 
F2 
F3 
F4 
F5 
F6 
F7 
F8 
F9 
F10 
F11 
F12 
F13 
F14 
F15 
F16 
F17 
F18 
F19 
F20 
F21 
F22 
F23 
F24 
NUMLOCK 
SCROLL 
LSHIFT 
RSHIFT 
LCONTROL 
RCONTROL 
LMENU 
RMENU 
BROWSER_BACK 
BROWSER_FORWARD 
BROWSER_REFRESH 
BROWSER_STOP 
BROWSER_SEARCH 
BROWSER_FAVORITES 
BROWSER_HOME 
VOLUME_MUTE 
VOLUME_DOWN 
VOLUME_UP 
MEDIA_NEXT_TRACK 
MEDIA_PREV_TRACK 
MEDIA_STOP 
MEDIA_PLAY_PAUSE 
LAUNCH_MAIL 
LAUNCH_MEDIA_SELECT 
LAUNCH_APP1 
LAUNCH_APP2 
OEM_1 
OEM_PLUS 
OEM_COMMA 
OEM_MINUS 
OEM_PERIOD 
OEM_2 
OEM_3 
OEM_4 
OEM_5 
OEM_6 
OEM_7 
OEM_8 
OEM_102 
PROCESSKEY 
PACKET 
ATTN 
CRSEL 
EXSEL 
EREOF 
PLAY 
ZOOM 
NONAME 
PA1 
OEM_CLEAR 

◆ ScreenshotHotKey

enum ScreenshotHotKey
strong
Enumerator
IDHOT_NONE 
IDHOT_SNAPDESKTOP 

The "snap desktop" hot key was pressed.

/* PRINTSCRN

IDHOT_SNAPWINDOW 

◆ ShowWindowCommands

enum ShowWindowCommands
strong
Enumerator
SW_FORCEMINIMIZE 

Minimizes a window, even if the thread that owns the window is not responding.

This flag should only be used when minimizing windows from a different thread.

SW_HIDE 

Hides the window and activates another window.

SW_MAXIMIZE 

Maximizes the specified window.

SW_MINIMIZE 

Minimizes the specified window and activates the next top-level window in the Z order.

SW_RESTORE 

Activates and displays the window.

If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when restoring a minimized window.

SW_SHOW 

Activates the window and displays it in its current size and position.

SW_SHOWDEFAULT 

Sets the show state based on the SW_ value specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application.

SW_SHOWMAXIMIZED 

Activates the window and displays it as a maximized window.

SW_SHOWMINIMIZED 

Activates the window and displays it as a minimized window.

SW_SHOWMINNOACTIVE 

Displays the window as a minimized window.

This value is similar to SW_SHOWMINIMIZED, except the window is not activated.

SW_SHOWNA 

Displays the window in its current size and position.

This value is similar to SW_SHOW, except that the window is not activated.

SW_SHOWNOACTIVATE 

Displays a window in its most recent size and position.

This value is similar to SW_SHOWNORMAL, except that the window is not activated.

SW_SHOWNORMAL 

Activates and displays a window.

If the window is minimized or maximized, the system restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

◆ ShowWindowStatusFlags

enum ShowWindowStatusFlags
strong
Enumerator
SW_USER_CALL 

The 'ShowWindow' function was used, that sent the message.

SW_OTHERUNZOOM 

The window is being uncovered because a maximize window was restored or minimized.

SW_OTHERZOOM 

The window is being covered by another window that has been maximized.

SW_PARENTCLOSING 

The window's owner window is being minimized.

SW_PARENTOPENING 

The window's owner window is being restored.

◆ SysCommand

enum SysCommand
strong
Enumerator
SC_CLOSE 

Closes the window.

SC_CONTEXTHELP 

Changes the cursor to a question mark with a pointer.

If the user then clicks a control in the dialog box, the control receives a WM_HELP message.

SC_DEFAULT 

Selects the default item; the user double-clicked the window menu.

SC_HOTKEY 

Activates the window associated with the application-specified hot key.

The lParam parameter identifies the window to activate.

SC_HSCROLL 

Scrolls horizontally.

SCF_ISSECURE 

Indicates whether the screen saver is secure.

SC_KEYMENU 

Retrieves the window menu as a result of a keystroke.

For more information, see the Remarks section.

SC_MAXIMIZE 

Maximizes the window.

SC_MINIMIZE 

Minimizes the window.

SC_MONITORPOWER 

Sets the state of the display.

This command supports devices that have power-saving features, such as a battery-powered personal computer. The lParam parameter can have the following values: -1 (the display is powering on) 1 (the display is going to low power) 2 (the display is being shut off)

SC_MOUSEMENU 

Retrieves the window menu as a result of a mouse click.

SC_MOVE 

Moves the window.

SC_NEXTWINDOW 

Moves to the next window.

SC_PREVWINDOW 

Moves to the previous window.

SC_RESTORE 

Restores the window to its normal position and size.

SC_SCREENSAVE 

Executes the screen saver application specified in the [boot] section of the System.ini file.

SC_SIZE 

Sizes the window.

SC_TASKLIST 

Activates the Start menu.

SC_VSCROLL 

Scrolls vertically.

◆ SystemColor

enum SystemColor
strong
Enumerator
COLOR_SCROLLBAR 
COLOR_BACKGROUND 
COLOR_ACTIVECAPTION 
COLOR_INACTIVECAPTION 
COLOR_MENU 
COLOR_WINDOW 
COLOR_WINDOWFRAME 
COLOR_MENUTEXT 
COLOR_WINDOWTEXT 
COLOR_CAPTIONTEXT 
COLOR_ACTIVEBORDER 
COLOR_INACTIVEBORDER 
COLOR_APPWORKSPACE 
COLOR_HIGHLIGHT 
COLOR_HIGHLIGHTTEXT 
COLOR_BTNFACE 
COLOR_BTNSHADOW 
COLOR_GRAYTEXT 
COLOR_BTNTEXT 
COLOR_INACTIVECAPTIONTEXT 
COLOR_BTNHIGHLIGHT 
COLOR_3DDKSHADOW 
COLOR_3DLIGHT 
COLOR_INFOTEXT 
COLOR_INFOBK 
COLOR_HOTLIGHT 
COLOR_GRADIENTACTIVECAPTION 
COLOR_GRADIENTINACTIVECAPTION 
COLOR_MENUHILIGHT 
COLOR_MENUBAR 
COLOR_DESKTOP 
COLOR_3DFACE 
COLOR_3DSHADOW 
COLOR_3DHIGHLIGHT 
COLOR_3DHILIGHT 
COLOR_BTNHILIGHT 

◆ SystemCursor

enum SystemCursor
strong
Enumerator
IDC_APPSTARTING 

Standard arrow and small hourglass

IDC_ARROW 

Standard arrow

IDC_CROSS 

Crosshair

IDC_HAND 

Hand

IDC_HELP 

Arrow and question mark

IDC_IBEAM 

I-beam

IDC_ICON 

Obsolete for applications marked version 4.0 or later.

IDC_NO 

Slashed circle

IDC_SIZE 

Obsolete for applications marked version 4.0 or later.

Use IDC_SIZEALL.

IDC_SIZEALL 

Four-pointed arrow pointing north, south, east, and west

IDC_SIZENESW 

Double-pointed arrow pointing northeast and southwest

IDC_SIZENS 

Double-pointed arrow pointing north and south

IDC_SIZENWSE 

Double-pointed arrow pointing northwest and southeast

IDC_SIZEWE 

Double-pointed arrow pointing west and east

IDC_UPARROW 

Vertical arrow

IDC_WAIT 

Hourglass

◆ SystemIcon

enum SystemIcon
strong
Enumerator
IDI_APPLICATION 
IDI_HAND 
IDI_QUESTION 
IDI_EXCLAMATION 
IDI_ASTERISK 
IDI_WINLOGO 
IDI_SHIELD 
IDI_WARNING 
IDI_ERROR 
IDI_INFORMATION 

◆ SystemMetrics

enum SystemMetrics
strong
Enumerator
SM_ARRANGE 

The flags that specify how the system arranged minimized windows.

For more information, see the Remarks section in this topic.

SM_CLEANBOOT 

The value that specifies how the system is started: 0 Normal boot 1 Fail-safe boot 2 Fail-safe with network boot A fail-safe boot (also called SafeBoot, Safe Mode, or Clean Boot) bypasses the user startup files.

SM_CMONITORS 

The number of display monitors on a desktop.

For more information, see the Remarks section in this topic.

SM_CMOUSEBUTTONS 

The number of buttons on a mouse, or zero if no mouse is installed.

SM_CONVERTIBLESLATEMODE 

Reflects the state of the laptop or slate mode, 0 for Slate Mode and non-zero otherwise.

When this system metric changes, the system sends a broadcast message via WM_SETTINGCHANGE with "ConvertibleSlateMode" in the LPARAM. Note that this system metric doesn't apply to desktop PCs. In that case, use GetAutoRotationState.

SM_CXBORDER 

The width of a window border, in pixels.

This is equivalent to the SM_CXEDGE value for windows with the 3-D look.

SM_CXCURSOR 

The width of a cursor, in pixels.

The system cannot create cursors of other sizes.

SM_CXDLGFRAME 

This value is the same as SM_CXFIXEDFRAME.

SM_CXDOUBLECLK 

The width of the rectangle around the location of a first click in a double-click sequence, in pixels.

The second click must occur within the rectangle that is defined by SM_CXDOUBLECLK and SM_CYDOUBLECLK for the system to consider the two clicks a double-click. The two clicks must also occur within a specified time. To set the width of the double-click rectangle, call SystemParametersInfo with SPI_SETDOUBLECLKWIDTH.

SM_CXDRAG 

The number of pixels on either side of a mouse-down point that the mouse pointer can move before a drag operation begins.

This allows the user to click and release the mouse button easily without unintentionally starting a drag operation. If this value is negative, it is subtracted from the left of the mouse-down point and added to the right of it.

SM_CXEDGE 

The width of a 3-D border, in pixels.

This metric is the 3-D counterpart of SM_CXBORDER.

SM_CXFIXEDFRAME 

The thickness of the frame around the perimeter of a window that has a caption but is not sizable, in pixels.

SM_CXFIXEDFRAME is the height of the horizontal border, and SM_CYFIXEDFRAME is the width of the vertical border. This value is the same as SM_CXDLGFRAME.

SM_CXFOCUSBORDER 

The width of the left and right edges of the focus rectangle that the DrawFocusRect draws.

This value is in pixels. Windows 2000:  This value is not supported.

SM_CXFRAME 

This value is the same as SM_CXSIZEFRAME.

SM_CXFULLSCREEN 

The width of the client area for a full-screen window on the primary display monitor, in pixels.

To get the coordinates of the portion of the screen that is not obscured by the system taskbar or by application desktop toolbars, call the SystemParametersInfo function with the SPI_GETWORKAREA value.

SM_CXHSCROLL 

The width of the arrow bitmap on a horizontal scroll bar, in pixels.

SM_CXHTHUMB 

The width of the thumb box in a horizontal scroll bar, in pixels.

SM_CXICON 

The default width of an icon, in pixels.

The LoadIcon function can load only icons with the dimensions that SM_CXICON and SM_CYICON specifies.

SM_CXICONSPACING 

The width of a grid cell for items in large icon view, in pixels.

Each item fits into a rectangle of size SM_CXICONSPACING by SM_CYICONSPACING when arranged. This value is always greater than or equal to SM_CXICON.

SM_CXMAXIMIZED 

The default width, in pixels, of a maximized top-level window on the primary display monitor.

SM_CXMAXTRACK 

The default maximum width of a window that has a caption and sizing borders, in pixels.

This metric refers to the entire desktop. The user cannot drag the window frame to a size larger than these dimensions. A window can override this value by processing the WM_GETMINMAXINFO message.

SM_CXMENUCHECK 

The width of the default menu check-mark bitmap, in pixels.

SM_CXMENUSIZE 

The width of menu bar buttons, such as the child window close button that is used in the multiple document interface, in pixels.

SM_CXMIN 

The minimum width of a window, in pixels.

SM_CXMINIMIZED 

The width of a minimized window, in pixels.

SM_CXMINSPACING 

The width of a grid cell for a minimized window, in pixels.

Each minimized window fits into a rectangle this size when arranged. This value is always greater than or equal to SM_CXMINIMIZED.

SM_CXMINTRACK 

The minimum tracking width of a window, in pixels.

The user cannot drag the window frame to a size smaller than these dimensions. A window can override this value by processing the WM_GETMINMAXINFO message.

SM_CXPADDEDBORDER 

The amount of border padding for captioned windows, in pixels.

Windows XP/2000:  This value is not supported.

SM_CXSCREEN 

The width of the screen of the primary display monitor, in pixels.

This is the same value obtained by calling GetDeviceCaps as follows: GetDeviceCaps( hdcPrimaryMonitor, HORZRES).

SM_CXSIZE 

The width of a button in a window caption or title bar, in pixels.

SM_CXSIZEFRAME 

The thickness of the sizing border around the perimeter of a window that can be resized, in pixels.

SM_CXSIZEFRAME is the width of the horizontal border, and SM_CYSIZEFRAME is the height of the vertical border. This value is the same as SM_CXFRAME.

SM_CXSMICON 

The recommended width of a small icon, in pixels.

Small icons typically appear in window captions and in small icon view.

SM_CXSMSIZE 

The width of small caption buttons, in pixels.

SM_CXVIRTUALSCREEN 

The width of the virtual screen, in pixels.

The virtual screen is the bounding rectangle of all display monitors. The SM_XVIRTUALSCREEN metric is the coordinates for the left side of the virtual screen.

SM_CXVSCROLL 

The width of a vertical scroll bar, in pixels.

SM_CYBORDER 

The height of a window border, in pixels.

This is equivalent to the SM_CYEDGE value for windows with the 3-D look.

SM_CYCAPTION 

The height of a caption area, in pixels.

SM_CYCURSOR 

The height of a cursor, in pixels.

The system cannot create cursors of other sizes.

SM_CYDLGFRAME 

This value is the same as SM_CYFIXEDFRAME.

SM_CYDOUBLECLK 

The height of the rectangle around the location of a first click in a double-click sequence, in pixels.

The second click must occur within the rectangle defined by SM_CXDOUBLECLK and SM_CYDOUBLECLK for the system to consider the two clicks a double-click. The two clicks must also occur within a specified time. To set the height of the double-click rectangle, call SystemParametersInfo with SPI_SETDOUBLECLKHEIGHT.

SM_CYDRAG 

The number of pixels above and below a mouse-down point that the mouse pointer can move before a drag operation begins.

This allows the user to click and release the mouse button easily without unintentionally starting a drag operation. If this value is negative, it is subtracted from above the mouse-down point and added below it.

SM_CYEDGE 

The height of a 3-D border, in pixels.

This is the 3-D counterpart of SM_CYBORDER.

SM_CYFIXEDFRAME 

The thickness of the frame around the perimeter of a window that has a caption but is not sizable, in pixels.

SM_CXFIXEDFRAME is the height of the horizontal border, and SM_CYFIXEDFRAME is the width of the vertical border. This value is the same as SM_CYDLGFRAME.

SM_CYFOCUSBORDER 

The height of the top and bottom edges of the focus rectangle drawn by DrawFocusRect.

This value is in pixels. Windows 2000:  This value is not supported.

SM_CYFRAME 

This value is the same as SM_CYSIZEFRAME.

SM_CYFULLSCREEN 

The height of the client area for a full-screen window on the primary display monitor, in pixels.

To get the coordinates of the portion of the screen not obscured by the system taskbar or by application desktop toolbars, call the SystemParametersInfo function with the SPI_GETWORKAREA value.

SM_CYHSCROLL 

The height of a horizontal scroll bar, in pixels.

SM_CYICON 

The default height of an icon, in pixels.

The LoadIcon function can load only icons with the dimensions SM_CXICON and SM_CYICON.

SM_CYICONSPACING 

The height of a grid cell for items in large icon view, in pixels.

Each item fits into a rectangle of size SM_CXICONSPACING by SM_CYICONSPACING when arranged. This value is always greater than or equal to SM_CYICON.

SM_CYKANJIWINDOW 

For double byte character set versions of the system, this is the height of the Kanji window at the bottom of the screen, in pixels.

SM_CYMAXIMIZED 

The default height, in pixels, of a maximized top-level window on the primary display monitor.

SM_CYMAXTRACK 

The default maximum height of a window that has a caption and sizing borders, in pixels.

This metric refers to the entire desktop. The user cannot drag the window frame to a size larger than these dimensions. A window can override this value by processing the WM_GETMINMAXINFO message.

SM_CYMENU 

The height of a single-line menu bar, in pixels.

SM_CYMENUCHECK 

The height of the default menu check-mark bitmap, in pixels.

SM_CYMENUSIZE 

The height of menu bar buttons, such as the child window close button that is used in the multiple document interface, in pixels.

SM_CYMIN 

The minimum height of a window, in pixels.

SM_CYMINIMIZED 

The height of a minimized window, in pixels.

SM_CYMINSPACING 

The height of a grid cell for a minimized window, in pixels.

Each minimized window fits into a rectangle this size when arranged. This value is always greater than or equal to SM_CYMINIMIZED.

SM_CYMINTRACK 

The minimum tracking height of a window, in pixels.

The user cannot drag the window frame to a size smaller than these dimensions. A window can override this value by processing the WM_GETMINMAXINFO message.

SM_CYSCREEN 

The height of the screen of the primary display monitor, in pixels.

This is the same value obtained by calling GetDeviceCaps as follows: GetDeviceCaps( hdcPrimaryMonitor, VERTRES).

SM_CYSIZE 

The height of a button in a window caption or title bar, in pixels.

SM_CYSIZEFRAME 

The thickness of the sizing border around the perimeter of a window that can be resized, in pixels.

SM_CXSIZEFRAME is the width of the horizontal border, and SM_CYSIZEFRAME is the height of the vertical border. This value is the same as SM_CYFRAME.

SM_CYSMCAPTION 

The height of a small caption, in pixels.

SM_CYSMICON 

The recommended height of a small icon, in pixels.

Small icons typically appear in window captions and in small icon view.

SM_CYSMSIZE 

The height of small caption buttons, in pixels.

SM_CYVIRTUALSCREEN 

The height of the virtual screen, in pixels.

The virtual screen is the bounding rectangle of all display monitors. The SM_YVIRTUALSCREEN metric is the coordinates for the top of the virtual screen.

SM_CYVSCROLL 

The height of the arrow bitmap on a vertical scroll bar, in pixels.

SM_CYVTHUMB 

The height of the thumb box in a vertical scroll bar, in pixels.

SM_DBCSENABLED 

Nonzero if User32.dll supports DBCS; otherwise, 0.

SM_DEBUG 

Nonzero if the debug version of User.exe is installed; otherwise, 0.

SM_DIGITIZER 

Nonzero if the current operating system is Windows 7 or Windows Server 2008 R2 and the Tablet PC Input service is started; otherwise, 0.

The return value is a bitmask that specifies the type of digitizer input supported by the device. For more information, see Remarks. Windows Server 2008, Windows Vista, and Windows XP/2000:  This value is not supported.

SM_IMMENABLED 

Nonzero if Input Method Manager/Input Method Editor features are enabled; otherwise, 0.

SM_IMMENABLED indicates whether the system is ready to use a Unicode-based IME on a Unicode application. To ensure that a language-dependent IME works, check SM_DBCSENABLED and the system ANSI code page. Otherwise the ANSI-to-Unicode conversion may not be performed correctly, or some components like fonts or registry settings may not be present.

SM_MAXIMUMTOUCHES 

Nonzero if there are digitizers in the system; otherwise, 0.

SM_MAXIMUMTOUCHES returns the aggregate maximum of the maximum number of contacts supported by every digitizer in the system. If the system has only single-touch digitizers, the return value is 1. If the system has multi-touch digitizers, the return value is the number of simultaneous contacts the hardware can provide. Windows Server 2008, Windows Vista, and Windows XP/2000:  This value is not supported.

SM_MEDIACENTER 

Nonzero if the current operating system is the Windows XP, Media Center Edition, 0 if not.

SM_MENUDROPALIGNMENT 

Nonzero if drop-down menus are right-aligned with the corresponding menu-bar item; 0 if the menus are left-aligned.

SM_MIDEASTENABLED 

Nonzero if the system is enabled for Hebrew and Arabic languages, 0 if not.

SM_MOUSEPRESENT 

Nonzero if a mouse is installed; otherwise, 0.

This value is rarely zero, because of support for virtual mice and because some systems detect the presence of the port instead of the presence of a mouse.

SM_MOUSEHORIZONTALWHEELPRESENT 

Nonzero if a mouse with a horizontal scroll wheel is installed; otherwise 0.

SM_MOUSEWHEELPRESENT 

Nonzero if a mouse with a vertical scroll wheel is installed; otherwise 0.

SM_NETWORK 

The least significant bit is set if a network is present; otherwise, it is cleared.

The other bits are reserved for future use.

SM_PENWINDOWS 

Nonzero if the Microsoft Windows for Pen computing extensions are installed; zero otherwise.

SM_REMOTECONTROL 

This system metric is used in a Terminal Services environment to determine if the current Terminal Server session is being remotely controlled.

Its value is nonzero if the current session is remotely controlled; otherwise, 0. You can use terminal services management tools such as Terminal Services Manager (tsadmin.msc) and shadow.exe to control a remote session. When a session is being remotely controlled, another user can view the contents of that session and potentially interact with it.

SM_REMOTESESSION 

This system metric is used in a Terminal Services environment.

If the calling process is associated with a Terminal Services client session, the return value is nonzero. If the calling process is associated with the Terminal Services console session, the return value is 0. Windows Server 2003 and Windows XP: The console session is not necessarily the physical console. For more information, see WTSGetActiveConsoleSessionId.

SM_SAMEDISPLAYFORMAT 

Nonzero if all the display monitors have the same color format, otherwise, 0.

Two displays can have the same bit depth, but different color formats. For example, the red, green, and blue pixels can be encoded with different numbers of bits, or those bits can be located in different places in a pixel color value.

SM_SECURE 

This system metric should be ignored; it always returns 0.

SM_SERVERR2 

The build number if the system is Windows Server 2003 R2; otherwise, 0.

SM_SHOWSOUNDS 

Nonzero if the user requires an application to present information visually in situations where it would otherwise present the information only in audible form; otherwise, 0.

SM_SHUTTINGDOWN 

Nonzero if the current session is shutting down; otherwise, 0.

Windows 2000:  This value is not supported.

SM_SLOWMACHINE 

Nonzero if the computer has a low-end (slow) processor; otherwise, 0.

SM_STARTER 

Nonzero if the current operating system is Windows 7 Starter Edition, Windows Vista Starter, or Windows XP Starter Edition; otherwise, 0.

SM_SWAPBUTTON 

Nonzero if the meanings of the left and right mouse buttons are swapped; otherwise, 0.

SM_SYSTEMDOCKED 

Reflects the state of the docking mode, 0 for Undocked Mode and non-zero otherwise.

When this system metric changes, the system sends a broadcast message via WM_SETTINGCHANGE with "SystemDockMode" in the LPARAM.

SM_TABLETPC 

Nonzero if the current operating system is the Windows XP Tablet PC edition or if the current operating system is Windows Vista or Windows 7 and the Tablet PC Input service is started; otherwise, 0.

The SM_DIGITIZER setting indicates the type of digitizer input supported by a device running Windows 7 or Windows Server 2008 R2. For more information, see Remarks.

SM_XVIRTUALSCREEN 

The coordinates for the left side of the virtual screen.

The virtual screen is the bounding rectangle of all display monitors. The SM_CXVIRTUALSCREEN metric is the width of the virtual screen.

SM_YVIRTUALSCREEN 

The coordinates for the top of the virtual screen.

The virtual screen is the bounding rectangle of all display monitors. The SM_CYVIRTUALSCREEN metric is the height of the virtual screen.

◆ SystemParametersAccessibilityInfo

Enumerator
SPI_GETACCESSTIMEOUT 

Retrieves information about the time-out period associated with the accessibility features.

The pvParam parameter must point to an ACCESSTIMEOUT structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(ACCESSTIMEOUT).

SPI_GETAUDIODESCRIPTION 

Determines whether audio descriptions are enabled or disabled.

The pvParam parameter is a pointer to an AUDIODESCRIPTION structure. Set the cbSize member of this structure and the uiParam parameter to sizeof(AUDIODESCRIPTION). While it is possible for users who have visual impairments to hear the audio in video content, there is a lot of action in video that does not have corresponding audio. Specific audio description of what is happening in a video helps these users understand the content better. This flag enables you to determine whether audio descriptions have been enabled and in which language. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_GETCLIENTAREAANIMATION 

Determines whether animations are enabled or disabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if animations are enabled, or FALSE otherwise. Display features such as flashing, blinking, flickering, and moving content can cause seizures in users with photo-sensitive epilepsy. This flag enables you to determine whether such animations have been disabled in the client area. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_GETDISABLEOVERLAPPEDCONTENT 

Determines whether overlapped content is enabled or disabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise. Display features such as background images, textured backgrounds, water marks on documents, alpha blending, and transparency can reduce the contrast between the foreground and background, making it harder for users with low vision to see objects on the screen. This flag enables you to determine whether such overlapped content has been disabled. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_GETFILTERKEYS 

Retrieves information about the FilterKeys accessibility feature.

The pvParam parameter must point to a FILTERKEYS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(FILTERKEYS).

SPI_GETFOCUSBORDERHEIGHT 

Retrieves the height, in pixels, of the top and bottom edges of the focus rectangle drawn with DrawFocusRect.

The pvParam parameter must point to a UINT value. Windows 2000:  This parameter is not supported.

SPI_GETFOCUSBORDERWIDTH 

Retrieves the width, in pixels, of the left and right edges of the focus rectangle drawn with DrawFocusRect.

The pvParam parameter must point to a UINT. Windows 2000:  This parameter is not supported.

SPI_GETHIGHCONTRAST 

Retrieves information about the HighContrast accessibility feature.

The pvParam parameter must point to a HIGHCONTRAST structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(HIGHCONTRAST). For a general discussion, see Remarks.

SPI_GETLOGICALDPIOVERRIDE 

Retrieves a value that determines whether Windows 8 is displaying apps using the default scaling plateau for the hardware or going to the next higher plateau.

This value is based on the current "Make everything on your screen bigger" setting, found in the Ease of Access section of PC settings: 1 is on, 0 is off. Apps can provide text and image resources for each of several scaling plateaus: 100%, 140%, and 180%. Providing separate resources optimized for a particular scale avoids distortion due to resizing. Windows 8 determines the appropriate scaling plateau based on a number of factors, including screen size and pixel density. When "Make everything on your screen bigger" is selected (SPI_GETLOGICALDPIOVERRIDE returns a value of 1), Windows uses resources from the next higher plateau. For example, in the case of hardware that Windows determines should use a scale of SCALE_100_PERCENT, this override causes Windows to use the SCALE_140_PERCENT scale value, assuming that it does not violate other constraints. Note  You should not use this value. It might be altered or unavailable in subsequent versions of Windows. Instead, use the GetScaleFactorForDevice function or the DisplayProperties class to retrieve the preferred scaling factor. Desktop applications should use desktop logical DPI rather than scale factor. Desktop logical DPI can be retrieved through the GetDeviceCaps function.

SPI_GETMESSAGEDURATION 

Retrieves the time that notification pop-ups should be displayed, in seconds.

The pvParam parameter must point to a ULONG that receives the message duration. Users with visual impairments or cognitive conditions such as ADHD and dyslexia might need a longer time to read the text in notification messages. This flag enables you to retrieve the message duration. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_GETMOUSECLICKLOCK 

Retrieves the state of the Mouse ClickLock feature.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise. For more information, see About Mouse Input. Windows 2000:  This parameter is not supported.

SPI_GETMOUSECLICKLOCKTIME 

Retrieves the time delay before the primary mouse button is locked.

The pvParam parameter must point to DWORD that receives the time delay, in milliseconds. This is only enabled if SPI_SETMOUSECLICKLOCK is set to TRUE. For more information, see About Mouse Input. Windows 2000:  This parameter is not supported.

SPI_GETMOUSEKEYS 

Retrieves information about the MouseKeys accessibility feature.

The pvParam parameter must point to a MOUSEKEYS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(MOUSEKEYS).

SPI_GETMOUSESONAR 

Retrieves the state of the Mouse Sonar feature.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled or FALSE otherwise. For more information, see About Mouse Input. Windows 2000:  This parameter is not supported.

SPI_GETMOUSEVANISH 

Retrieves the state of the Mouse Vanish feature.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled or FALSE otherwise. For more information, see About Mouse Input. Windows 2000:  This parameter is not supported.

SPI_GETSCREENREADER 

Determines whether a screen reviewer utility is running.

A screen reviewer utility directs textual information to an output device, such as a speech synthesizer or Braille display. When this flag is set, an application should provide textual information in situations where it would otherwise present the information graphically. The pvParam parameter is a pointer to a BOOLvariable that receives TRUE if a screen reviewer utility is running, or FALSE otherwise. Note  Narrator, the screen reader that is included with Windows, does not set the SPI_SETSCREENREADER or SPI_GETSCREENREADER flags.

SPI_GETSERIALKEYS 

This parameter is not supported.

Windows Server 2003 and Windows XP/2000:  The user should control this setting through the Control Panel.

SPI_GETSHOWSOUNDS 

Determines whether the Show Sounds accessibility flag is on or off.

If it is on, the user requires an application to present information visually in situations where it would otherwise present the information only in audible form. The pvParam parameter must point to a BOOL variable that receives TRUE if the feature is on, or FALSE if it is off. Using this value is equivalent to calling GetSystemMetrics with SM_SHOWSOUNDS. That is the recommended call.

SPI_GETSOUNDSENTRY 

Retrieves information about the SoundSentry accessibility feature.

The pvParam parameter must point to a SOUNDSENTRY structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(SOUNDSENTRY).

SPI_GETSTICKYKEYS 

Retrieves information about the StickyKeys accessibility feature.

The pvParam parameter must point to a STICKYKEYS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(STICKYKEYS).

SPI_GETTOGGLEKEYS 

Retrieves information about the ToggleKeys accessibility feature.

The pvParam parameter must point to a TOGGLEKEYS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(TOGGLEKEYS).

SPI_SETACCESSTIMEOUT 

Sets the time-out period associated with the accessibility features.

The pvParam parameter must point to an ACCESSTIMEOUT structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(ACCESSTIMEOUT).

SPI_SETAUDIODESCRIPTION 

Turns the audio descriptions feature on or off.

The pvParam parameter is a pointer to an AUDIODESCRIPTION structure. While it is possible for users who are visually impaired to hear the audio in video content, there is a lot of action in video that does not have corresponding audio. Specific audio description of what is happening in a video helps these users understand the content better. This flag enables you to enable or disable audio descriptions in the languages they are provided in. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_SETCLIENTAREAANIMATION 

Turns client area animations on or off.

The pvParam parameter is a BOOL variable. Set pvParam to TRUE to enable animations and other transient effects in the client area, or FALSE to disable them. Display features such as flashing, blinking, flickering, and moving content can cause seizures in users with photo-sensitive epilepsy. This flag enables you to enable or disable all such animations. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_SETDISABLEOVERLAPPEDCONTENT 

Turns overlapped content (such as background images and watermarks) on or off.

The pvParam parameter is a BOOL variable. Set pvParam to TRUE to disable overlapped content, or FALSE to enable overlapped content. Display features such as background images, textured backgrounds, water marks on documents, alpha blending, and transparency can reduce the contrast between the foreground and background, making it harder for users with low vision to see objects on the screen. This flag enables you to enable or disable all such overlapped content. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_SETFILTERKEYS 

Sets the parameters of the FilterKeys accessibility feature.

The pvParam parameter must point to a FILTERKEYS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(FILTERKEYS).

SPI_SETFOCUSBORDERHEIGHT 

Sets the height of the top and bottom edges of the focus rectangle drawn with DrawFocusRect to the value of the pvParam parameter.

Windows 2000:  This parameter is not supported.

SPI_SETFOCUSBORDERWIDTH 

Sets the height of the left and right edges of the focus rectangle drawn with DrawFocusRect to the value of the pvParam parameter.

Windows 2000:  This parameter is not supported.

SPI_SETHIGHCONTRAST 

Sets the parameters of the HighContrast accessibility feature.

The pvParam parameter must point to a HIGHCONTRAST structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(HIGHCONTRAST).

SPI_SETLOGICALDPIOVERRIDE 

Do not use.

SPI_SETMESSAGEDURATION 

Sets the time that notification pop-ups should be displayed, in seconds.

The pvParam parameter specifies the message duration. Users with visual impairments or cognitive conditions such as ADHD and dyslexia might need a longer time to read the text in notification messages. This flag enables you to set the message duration. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_SETMOUSECLICKLOCK 

Turns the Mouse ClickLock accessibility feature on or off.

This feature temporarily locks down the primary mouse button when that button is clicked and held down for the time specified by SPI_SETMOUSECLICKLOCKTIME. The pvParam parameter specifies TRUE for on, or FALSE for off. The default is off. For more information, see Remarks and AboutMouse Input. Windows 2000:  This parameter is not supported.

SPI_SETMOUSECLICKLOCKTIME 

Adjusts the time delay before the primary mouse button is locked.

The uiParam parameter should be set to 0. The pvParam parameter points to a DWORD that specifies the time delay in milliseconds. For example, specify 1000 for a 1 second delay. The default is 1200. For more information, see About Mouse Input. Windows 2000:  This parameter is not supported.

SPI_SETMOUSEKEYS 

Sets the parameters of the MouseKeys accessibility feature.

The pvParam parameter must point to a MOUSEKEYS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(MOUSEKEYS).

SPI_SETMOUSESONAR 

Turns the Sonar accessibility feature on or off.

This feature briefly shows several concentric circles around the mouse pointer when the user presses and releases the CTRL key. The pvParam parameter specifies TRUE for on and FALSE for off. The default is off. For more information, see About Mouse Input. Windows 2000:  This parameter is not supported.

SPI_SETMOUSEVANISH 

Turns the Vanish feature on or off.

This feature hides the mouse pointer when the user types; the pointer reappears when the user moves the mouse. The pvParam parameter specifies TRUE for on and FALSE for off. The default is off. For more information, see About Mouse Input. Windows 2000:  This parameter is not supported.

SPI_SETSCREENREADER 

Determines whether a screen review utility is running.

The uiParam parameter specifies TRUE for on, or FALSE for off. Note  Narrator, the screen reader that is included with Windows, does not set the SPI_SETSCREENREADER or SPI_GETSCREENREADER flags.

SPI_SETSERIALKEYS 

This parameter is not supported.

Windows Server 2003 and Windows XP/2000:  The user should control this setting through the Control Panel.

SPI_SETSHOWSOUNDS 

Turns the ShowSounds accessibility feature on or off.

The uiParam parameter specifies TRUE for on, or FALSE for off.

SPI_SETSOUNDSENTRY 

Sets the parameters of the SoundSentry accessibility feature.

The pvParam parameter must point to a SOUNDSENTRY structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(SOUNDSENTRY).

SPI_SETSTICKYKEYS 

Sets the parameters of the StickyKeys accessibility feature.

The pvParam parameter must point to a STICKYKEYS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(STICKYKEYS).

SPI_SETTOGGLEKEYS 

Sets the parameters of the ToggleKeys accessibility feature.

The pvParam parameter must point to a TOGGLEKEYS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(TOGGLEKEYS).

◆ SystemParametersDesktopInfo

Enumerator
SPI_GETCLEARTYPE 

Determines whether ClearType is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if ClearType is enabled, or FALSE otherwise. ClearType is a software technology that improves the readability of text on liquid crystal display (LCD) monitors. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_GETDESKWALLPAPER 

Retrieves the full path of the bitmap file for the desktop wallpaper.

The pvParam parameter must point to a buffer to receive the null-terminated path string. Set the uiParam parameter to the size, in characters, of the pvParam buffer. The returned string will not exceed MAX_PATH characters. If there is no desktop wallpaper, the returned string is empty.

SPI_GETDROPSHADOW 

Determines whether the drop shadow effect is enabled.

The pvParam parameter must point to a BOOL variable that returns TRUE if enabled or FALSE if disabled. Windows 2000:  This parameter is not supported.

SPI_GETFLATMENU 

Determines whether native User menus have flat menu appearance.

The pvParam parameter must point to a BOOL variable that returns TRUE if the flat menu appearance is set, or FALSE otherwise. Windows 2000:  This parameter is not supported.

SPI_GETFONTSMOOTHING 

Determines whether the font smoothing feature is enabled.

This feature uses font antialiasing to make font curves appear smoother by painting pixels at different gray levels. The pvParam parameter must point to a BOOL variable that receives TRUE if the feature is enabled, or FALSE if it is not.

SPI_GETFONTSMOOTHINGCONTRAST 

Retrieves a contrast value that is used in ClearType smoothing.

The pvParam parameter must point to a UINT that receives the information. Valid contrast values are from 1000 to 2200. The default value is 1400. Windows 2000:  This parameter is not supported.

SPI_GETFONTSMOOTHINGORIENTATION 

Retrieves the font smoothing orientation.

The pvParam parameter must point to a UINT that receives the information. The possible values are FE_FONTSMOOTHINGORIENTATIONBGR (blue-green-red) and FE_FONTSMOOTHINGORIENTATIONRGB (red-green-blue). Windows XP/2000:  This parameter is not supported until Windows XP with SP2.

SPI_GETFONTSMOOTHINGTYPE 

Retrieves the type of font smoothing.

The pvParam parameter must point to a UINT that receives the information. The possible values are FE_FONTSMOOTHINGSTANDARD and FE_FONTSMOOTHINGCLEARTYPE. Windows 2000:  This parameter is not supported.

SPI_GETWORKAREA 

Retrieves the size of the work area on the primary display monitor.

The work area is the portion of the screen not obscured by the system taskbar or by application desktop toolbars. The pvParam parameter must point to a RECT structure that receives the coordinates of the work area, expressed in virtual screen coordinates. To get the work area of a monitor other than the primary display monitor, call the GetMonitorInfo function.

SPI_SETCLEARTYPE 

Turns ClearType on or off.

The pvParam parameter is a BOOL variable. Set pvParam to TRUE to enable ClearType, or FALSE to disable it. ClearType is a software technology that improves the readability of text on LCD monitors. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_SETCURSORS 

Reloads the system cursors.

Set the uiParam parameter to zero and the pvParam parameter to NULL.

SPI_SETDESKPATTERN 

Sets the current desktop pattern by causing Windows to read the Pattern= setting from the WIN.INI file.

SPI_SETDESKWALLPAPER 

Note  When the SPI_SETDESKWALLPAPER flag is used, SystemParametersInfo returns TRUE unless there is an error (like when the specified file doesn't exist).

SPI_SETDROPSHADOW 

Enables or disables the drop shadow effect.

Set pvParam to TRUE to enable the drop shadow effect or FALSE to disable it. You must also have CS_DROPSHADOW in the window class style. Windows 2000:  This parameter is not supported.

SPI_SETFLATMENU 

Enables or disables flat menu appearance for native User menus.

Set pvParam to TRUE to enable flat menu appearance or FALSE to disable it. When enabled, the menu bar uses COLOR_MENUBAR for the menubar background, COLOR_MENU for the menu-popup background, COLOR_MENUHILIGHT for the fill of the current menu selection, and COLOR_HILIGHT for the outline of the current menu selection. If disabled, menus are drawn using the same metrics and colors as in Windows 2000. Windows 2000:  This parameter is not supported.

SPI_SETFONTSMOOTHING 

Enables or disables the font smoothing feature, which uses font antialiasing to make font curves appear smoother by painting pixels at different gray levels.

To enable the feature, set the uiParam parameter to TRUE. To disable the feature, set uiParam to FALSE.

SPI_SETFONTSMOOTHINGCONTRAST 

Sets the contrast value used in ClearType smoothing.

The pvParam parameter is the contrast value. Valid contrast values are from 1000 to 2200. The default value is 1400. SPI_SETFONTSMOOTHINGTYPE must also be set to FE_FONTSMOOTHINGCLEARTYPE. Windows 2000:  This parameter is not supported.

SPI_SETFONTSMOOTHINGORIENTATION 

Sets the font smoothing orientation.

The pvParam parameter is either FE_FONTSMOOTHINGORIENTATIONBGR (blue-green-red) or FE_FONTSMOOTHINGORIENTATIONRGB (red-green-blue). Windows XP/2000:  This parameter is not supported until Windows XP with SP2.

SPI_SETFONTSMOOTHINGTYPE 

Sets the font smoothing type.

The pvParam parameter is either FE_FONTSMOOTHINGSTANDARD, if standard anti-aliasing is used, or FE_FONTSMOOTHINGCLEARTYPE, if ClearType is used. The default is FE_FONTSMOOTHINGSTANDARD. SPI_SETFONTSMOOTHING must also be set. Windows 2000:  This parameter is not supported.

SPI_SETWORKAREA 

Sets the size of the work area.

The work area is the portion of the screen not obscured by the system taskbar or by application desktop toolbars. The pvParam parameter is a pointer to a RECT structure that specifies the new work area rectangle, expressed in virtual screen coordinates. In a system with multiple display monitors, the function sets the work area of the monitor that contains the specified rectangle.

◆ SystemParametersIconInfo

Enumerator
SPI_GETICONMETRICS 

Retrieves the metrics associated with icons.

The pvParam parameter must point to an ICONMETRICS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(ICONMETRICS).

SPI_GETICONTITLELOGFONT 

Retrieves the logical font information for the current icon-title font.

The uiParam parameter specifies the size of a LOGFONT structure, and the pvParam parameter must point to the LOGFONT structure to fill in.

SPI_GETICONTITLEWRAP 

Determines whether icon-title wrapping is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise.

SPI_ICONHORIZONTALSPACING 

Sets or retrieves the width, in pixels, of an icon cell.

The system uses this rectangle to arrange icons in large icon view. To set this value, set uiParam to the new value and set pvParam to NULL. You cannot set this value to less than SM_CXICON. To retrieve this value, pvParam must point to an integer that receives the current value.

SPI_ICONVERTICALSPACING 

Sets or retrieves the height, in pixels, of an icon cell.

To set this value, set uiParam to the new value and set pvParam to NULL. You cannot set this value to less than SM_CYICON. To retrieve this value, pvParam must point to an integer that receives the current value.

SPI_SETICONMETRICS 

Sets the metrics associated with icons.

The pvParam parameter must point to an ICONMETRICS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(ICONMETRICS).

SPI_SETICONS 

Reloads the system icons.

Set the uiParam parameter to zero and the pvParam parameter to NULL.

SPI_SETICONTITLELOGFONT 

Sets the font that is used for icon titles.

The uiParam parameter specifies the size of a LOGFONT structure, and the pvParam parameter must point to a LOGFONT structure.

SPI_SETICONTITLEWRAP 

Turns icon-title wrapping on or off.

The uiParam parameter specifies TRUE for on, or FALSE for off.

◆ SystemParametersInputInfo

Enumerator
SPI_GETBEEP 

Determines whether the warning beeper is on.

The pvParam parameter must point to a BOOL variable that receives TRUE if the beeper is on, or FALSE if it is off.

SPI_GETBLOCKSENDINPUTRESETS 

Retrieves a BOOL indicating whether an application can reset the screensaver's timer by calling the SendInput function to simulate keyboard or mouse input.

The pvParam parameter must point to a BOOL variable that receives TRUE if the simulated input will be blocked, or FALSE otherwise.

SPI_GETCONTACTVISUALIZATION 

Retrieves the current contact visualization setting.

The pvParam parameter must point to a ULONG variable that receives the setting. For more information, see Contact Visualization.

SPI_GETDEFAULTINPUTLANG 

Retrieves the input locale identifier for the system default input language.

The pvParam parameter must point to an HKL variable that receives this value. For more information, see Languages, Locales, and Keyboard Layouts.

SPI_GETGESTUREVISUALIZATION 

Retrieves the current gesture visualization setting.

The pvParam parameter must point to a ULONG variable that receives the setting. For more information, see Gesture Visualization.

SPI_GETKEYBOARDCUES 

Determines whether menu access keys are always underlined.

The pvParam parameter must point to a BOOL variable that receives TRUE if menu access keys are always underlined, and FALSE if they are underlined only when the menu is activated by the keyboard.

SPI_GETKEYBOARDDELAY 

Retrieves the keyboard repeat-delay setting, which is a value in the range from 0 (approximately 250 ms delay) through 3 (approximately 1 second delay).

The actual delay associated with each value may vary depending on the hardware. The pvParam parameter must point to an integer variable that receives the setting.

SPI_GETKEYBOARDPREF 

Determines whether the user relies on the keyboard instead of the mouse, and wants applications to display keyboard interfaces that would otherwise be hidden.

The pvParam parameter must point to a BOOL variable that receives TRUE if the user relies on the keyboard; or FALSE otherwise.

SPI_GETKEYBOARDSPEED 

Retrieves the keyboard repeat-speed setting, which is a value in the range from 0 (approximately 2.5 repetitions per second) through 31 (approximately 30 repetitions per second).

The actual repeat rates are hardware-dependent and may vary from a linear scale by as much as 20%. The pvParam parameter must point to a DWORD variable that receives the setting.

SPI_GETMOUSE 

Retrieves the two mouse threshold values and the mouse acceleration.

The pvParam parameter must point to an array of three integers that receives these values. See mouse_event for further information.

SPI_GETMOUSEHOVERHEIGHT 

Retrieves the height, in pixels, of the rectangle within which the mouse pointer has to stay for TrackMouseEvent to generate a WM_MOUSEHOVER message.

The pvParam parameter must point to a UINT variable that receives the height.

SPI_GETMOUSEHOVERTIME 

Retrieves the time, in milliseconds, that the mouse pointer has to stay in the hover rectangle for TrackMouseEvent to generate a WM_MOUSEHOVER message.

The pvParam parameter must point to a UINT variable that receives the time.

SPI_GETMOUSEHOVERWIDTH 

Retrieves the width, in pixels, of the rectangle within which the mouse pointer has to stay for TrackMouseEvent to generate a WM_MOUSEHOVER message.

The pvParam parameter must point to a UINT variable that receives the width.

SPI_GETMOUSESPEED 

Retrieves the current mouse speed.

The mouse speed determines how far the pointer will move based on the distance the mouse moves. The pvParam parameter must point to an integer that receives a value which ranges between 1 (slowest) and 20 (fastest). A value of 10 is the default. The value can be set by an end-user using the mouse control panel application or by an application using SPI_SETMOUSESPEED.

SPI_GETMOUSETRAILS 

Determines whether the Mouse Trails feature is enabled.

This feature improves the visibility of mouse cursor movements by briefly showing a trail of cursors and quickly erasing them. The pvParam parameter must point to an integer variable that receives a value. if the value is zero or 1, the feature is disabled. If the value is greater than 1, the feature is enabled and the value indicates the number of cursors drawn in the trail. The uiParam parameter is not used. Windows 2000:  This parameter is not supported.

SPI_GETMOUSEWHEELROUTING 

Retrieves the routing setting for wheel button input.

The routing setting determines whether wheel button input is sent to the app with focus (foreground) or the app under the mouse cursor. The pvParam parameter must point to a DWORD variable that receives the routing option. If the value is zero or MOUSEWHEEL_ROUTING_FOCUS, mouse wheel input is delivered to the app with focus. If the value is 1 or MOUSEWHEEL_ROUTING_HYBRID (default), mouse wheel input is delivered to the app with focus (desktop apps) or the app under the mouse cursor (Windows Store apps). The uiParam parameter is not used.

SPI_GETPENVISUALIZATION 

Retrieves the current pen gesture visualization setting.

The pvParam parameter must point to a ULONG variable that receives the setting. For more information, see Pen Visualization.

SPI_GETSNAPTODEFBUTTON 

Determines whether the snap-to-default-button feature is enabled.

If enabled, the mouse cursor automatically moves to the default button, such as OK or Apply, of a dialog box. The pvParam parameter must point to a BOOL variable that receives TRUE if the feature is on, or FALSE if it is off.

SPI_GETSYSTEMLANGUAGEBAR 

Starting with Windows 8: Determines whether the system language bar is enabled or disabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if the language bar is enabled, or FALSE otherwise.

SPI_GETTHREADLOCALINPUTSETTINGS 

Starting with Windows 8: Determines whether the active input settings have Local (per-thread, TRUE) or Global (session, FALSE) scope.

The pvParam parameter must point to a BOOL variable.

SPI_GETWHEELSCROLLCHARS 

Retrieves the number of characters to scroll when the horizontal mouse wheel is moved.

The pvParam parameter must point to a UINT variable that receives the number of lines. The default value is 3.

SPI_GETWHEELSCROLLLINES 

Retrieves the number of lines to scroll when the vertical mouse wheel is moved.

The pvParam parameter must point to a UINT variable that receives the number of lines. The default value is 3.

SPI_SETBEEP 

Turns the warning beeper on or off.

The uiParam parameter specifies TRUE for on, or FALSE for off.

SPI_SETBLOCKSENDINPUTRESETS 

Determines whether an application can reset the screensaver's timer by calling the SendInput function to simulate keyboard or mouse input.

The uiParam parameter specifies TRUE if the screensaver will not be deactivated by simulated input, or FALSE if the screensaver will be deactivated by simulated input.

SPI_SETCONTACTVISUALIZATION 

Sets the current contact visualization setting.

The pvParam parameter must point to a ULONG variable that identifies the setting. For more information, see Contact Visualization. Note  If contact visualizations are disabled, gesture visualizations cannot be enabled.

SPI_SETDEFAULTINPUTLANG 

Sets the default input language for the system shell and applications.

The specified language must be displayable using the current system character set. The pvParam parameter must point to an HKL variable that contains the input locale identifier for the default language. For more information, see Languages, Locales, and Keyboard Layouts.

SPI_SETDOUBLECLICKTIME 

Sets the double-click time for the mouse to the value of the uiParam parameter.

If the uiParam value is greater than 5000 milliseconds, the system sets the double-click time to 5000 milliseconds. The double-click time is the maximum number of milliseconds that can occur between the first and second clicks of a double-click. You can also call the SetDoubleClickTime function to set the double-click time. To get the current double-click time, call the GetDoubleClickTime function.

SPI_SETDOUBLECLKHEIGHT 

Sets the height of the double-click rectangle to the value of the uiParam parameter.

The double-click rectangle is the rectangle within which the second click of a double-click must fall for it to be registered as a double-click. To retrieve the height of the double-click rectangle, call GetSystemMetrics with the SM_CYDOUBLECLK flag.

SPI_SETDOUBLECLKWIDTH 

Sets the width of the double-click rectangle to the value of the uiParam parameter.

The double-click rectangle is the rectangle within which the second click of a double-click must fall for it to be registered as a double-click. To retrieve the width of the double-click rectangle, call GetSystemMetrics with the SM_CXDOUBLECLK flag.

SPI_SETGESTUREVISUALIZATION 

Sets the current gesture visualization setting.

The pvParam parameter must point to a ULONG variable that identifies the setting. For more information, see Gesture Visualization. Note  If contact visualizations are disabled, gesture visualizations cannot be enabled.

SPI_SETKEYBOARDCUES 

Sets the underlining of menu access key letters.

The pvParam parameter is a BOOL variable. Set pvParam to TRUE to always underline menu access keys, or FALSE to underline menu access keys only when the menu is activated from the keyboard.

SPI_SETKEYBOARDDELAY 

Sets the keyboard repeat-delay setting.

The uiParam parameter must specify 0, 1, 2, or 3, where zero sets the shortest delay approximately 250 ms) and 3 sets the longest delay (approximately 1 second). The actual delay associated with each value may vary depending on the hardware.

SPI_SETKEYBOARDPREF 

Sets the keyboard preference.

The uiParam parameter specifies TRUE if the user relies on the keyboard instead of the mouse, and wants applications to display keyboard interfaces that would otherwise be hidden; uiParam is FALSE otherwise.

SPI_SETKEYBOARDSPEED 

Sets the keyboard repeat-speed setting.

The uiParam parameter must specify a value in the range from 0 (approximately 2.5 repetitions per second) through 31 (approximately 30 repetitions per second). The actual repeat rates are hardware-dependent and may vary from a linear scale by as much as 20%. If uiParam is greater than 31, the parameter is set to 31.

SPI_SETLANGTOGGLE 

Sets the hot key set for switching between input languages.

The uiParam and pvParam parameters are not used. The value sets the shortcut keys in the keyboard property sheets by reading the registry again. The registry must be set before this flag is used. the path in the registry is HKEY_CURRENT_USER Layout. Valid values are "1" = ALT+SHIFT, "2" = CTRL+SHIFT, and "3" = none.

SPI_SETMOUSE 

Sets the two mouse threshold values and the mouse acceleration.

The pvParam parameter must point to an array of three integers that specifies these values. See mouse_event for further information.

SPI_SETMOUSEBUTTONSWAP 

Swaps or restores the meaning of the left and right mouse buttons.

The uiParam parameter specifies TRUE to swap the meanings of the buttons, or FALSE to restore their original meanings. To retrieve the current setting, call GetSystemMetrics with the SM_SWAPBUTTON flag.

SPI_SETMOUSEHOVERHEIGHT 

Sets the height, in pixels, of the rectangle within which the mouse pointer has to stay for TrackMouseEvent to generate a WM_MOUSEHOVER message.

Set the uiParam parameter to the new height.

SPI_SETMOUSEHOVERTIME 

Sets the time, in milliseconds, that the mouse pointer has to stay in the hover rectangle for TrackMouseEvent to generate a WM_MOUSEHOVER message.

This is used only if you pass HOVER_DEFAULT in the dwHoverTime parameter in the call to TrackMouseEvent. Set the uiParamparameter to the new time. The time specified should be between USER_TIMER_MAXIMUM and USER_TIMER_MINIMUM. If uiParam is less than USER_TIMER_MINIMUM, the function will use USER_TIMER_MINIMUM. If uiParam is greater than USER_TIMER_MAXIMUM, the function will be USER_TIMER_MAXIMUM. Windows Server 2003 and Windows XP:  The operating system does not enforce the use of USER_TIMER_MAXIMUM and USER_TIMER_MINIMUM until Windows Server 2003 with SP1 and Windows XP with SP2.

SPI_SETMOUSEHOVERWIDTH 

Sets the width, in pixels, of the rectangle within which the mouse pointer has to stay for TrackMouseEvent to generate a WM_MOUSEHOVER message.

Set the uiParam parameter to the new width.

SPI_SETMOUSESPEED 

Sets the current mouse speed.

The pvParam parameter is an integer between 1 (slowest) and 20 (fastest). A value of 10 is the default. This value is typically set using the mouse control panel application.

SPI_SETMOUSETRAILS 

Enables or disables the Mouse Trails feature, which improves the visibility of mouse cursor movements by briefly showing a trail of cursors and quickly erasing them.

To disable the feature, set the uiParam parameter to zero or 1. To enable the feature, set uiParam to a value greater than 1 to indicate the number of cursors drawn in the trail. Windows 2000:  This parameter is not supported.

SPI_SETMOUSEWHEELROUTING 

Sets the routing setting for wheel button input.

The routing setting determines whether wheel button input is sent to the app with focus (foreground) or the app under the mouse cursor. The pvParam parameter must point to a DWORD variable that receives the routing option. If the value is zero or MOUSEWHEEL_ROUTING_FOCUS, mouse wheel input is delivered to the app with focus. If the value is 1 or MOUSEWHEEL_ROUTING_HYBRID (default), mouse wheel input is delivered to the app with focus (desktop apps) or the app under the mouse cursor (Windows Store apps). Set the uiParam parameter to zero.

SPI_SETPENVISUALIZATION 

Sets the current pen gesture visualization setting.

The pvParam parameter must point to a ULONG variable that identifies the setting. For more information, see Pen Visualization.

SPI_SETSNAPTODEFBUTTON 

Enables or disables the snap-to-default-button feature.

If enabled, the mouse cursor automatically moves to the default button, such as OK or Apply, of a dialog box. Set the uiParam parameter to TRUE to enable the feature, or FALSE to disable it. Applications should use the ShowWindow function when displaying a dialog box so the dialog manager can position the mouse cursor.

SPI_SETSYSTEMLANGUAGEBAR 

Starting with Windows 8: Turns the legacy language bar feature on or off.

The pvParam parameter is a pointer to a BOOL variable. Set pvParam to TRUE to enable the legacy language bar, or FALSE to disable it. The flag is supported on Windows 8 where the legacy language bar is replaced by Input Switcher and therefore turned off by default. Turning the legacy language bar on is provided for compatibility reasons and has no effect on the Input Switcher.

SPI_SETTHREADLOCALINPUTSETTINGS 

Starting with Windows 8: Determines whether the active input settings have Local (per-thread, TRUE) or Global (session, FALSE) scope.

The pvParam parameter must point to a BOOL variable, casted by PVOID.

SPI_SETWHEELSCROLLCHARS 

Sets the number of characters to scroll when the horizontal mouse wheel is moved.

The number of characters is set from the uiParam parameter.

SPI_SETWHEELSCROLLLINES 

Sets the number of lines to scroll when the vertical mouse wheel is moved.

The number of lines is set from the uiParam parameter. The number of lines is the suggested number of lines to scroll when the mouse wheel is rolled without using modifier keys. If the number is 0, then no scrolling should occur. If the number of lines to scroll is greater than the number of lines viewable, and in particular if it is WHEEL_PAGESCROLL (#defined as UINT_MAX), the scroll operation should be interpreted as clicking once in the page down or page up regions of the scroll bar.

◆ SystemParametersMenuInfo

Enumerator
SPI_GETMENUDROPALIGNMENT 

Determines whether pop-up menus are left-aligned or right-aligned, relative to the corresponding menu-bar item.

The pvParam parameter must point to a BOOL variable that receives TRUE if right-aligned, or FALSE otherwise.

SPI_GETMENUFADE 

Determines whether menu fade animation is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE when fade animation is enabled and FALSE when it isdisabled. If fade animation is disabled, menus use slide animation. This flag is ignored unless menu animation is enabled, which you can do using the SPI_SETMENUANIMATION flag. For more information, see AnimateWindow.

SPI_GETMENUSHOWDELAY 

Retrieves the time, in milliseconds, that the system waits before displaying a shortcut menu when the mouse cursor is over a submenu item.

The pvParam parameter must point to a DWORD variable that receives the time of the delay.

SPI_SETMENUDROPALIGNMENT 

Sets the alignment value of pop-up menus.

The uiParam parameter specifies TRUE for right alignment, or FALSE for left alignment.

SPI_SETMENUFADE 

Enables or disables menu fade animation.

Set pvParam to TRUE to enable the menu fade effect or FALSE to disable it. If fade animation is disabled, menus use slide animation. he The menu fade effect is possible only if the system has a color depth of more than 256 colors. This flag is ignored unless SPI_MENUANIMATION is also set. For more information, see AnimateWindow.

SPI_SETMENUSHOWDELAY 

Sets uiParam to the time, in milliseconds, that the system waits before displaying a shortcut menu when the mouse cursor is over a submenu item.

◆ SystemParametersPowerInfo

Enumerator
SPI_GETLOWPOWERACTIVE 

This parameter is not supported.

Windows Server 2003 and Windows XP/2000:  Determines whether the low-power phase of screen saving is enabled. The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE if disabled. This flag is supported for 32-bit applications only.

SPI_GETLOWPOWERTIMEOUT 

This parameter is not supported.

Windows Server 2003 and Windows XP/2000:  Retrieves the time-out value for the low-power phase of screen saving. The pvParam parameter must point to an integer variable that receives the value. This flag is supported for 32-bit applications only.

SPI_GETPOWEROFFACTIVE 

This parameter is not supported.

When the power-off phase of screen saving is enabled, the GUID_VIDEO_POWERDOWN_TIMEOUT power setting is greater than zero. Windows Server 2003 and Windows XP/2000:  Determines whether the power-off phase of screen saving is enabled. The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE if disabled. This flag is supported for 32-bit applications only.

SPI_GETPOWEROFFTIMEOUT 

This parameter is not supported.

Instead, check the GUID_VIDEO_POWERDOWN_TIMEOUT power setting. Windows Server 2003 and Windows XP/2000:  Retrieves the time-out value for the power-off phase of screen saving. The pvParam parameter must point to an integer variable that receives the value. This flag is supported for 32-bit applications only.

SPI_SETLOWPOWERACTIVE 

This parameter is not supported.

Windows Server 2003 and Windows XP/2000:  Activates or deactivates the low-power phase of screen saving. Set uiParam to 1 to activate, or zero to deactivate. The pvParam parameter must be NULL. This flag is supported for 32-bit applications only.

SPI_SETLOWPOWERTIMEOUT 

This parameter is not supported.

Windows Server 2003 and Windows XP/2000:  Sets the time-out value, in seconds, for the low-power phase of screen saving. The uiParam parameter specifies the new value. The pvParam parameter must be NULL. This flag is supported for 32-bit applications only.

SPI_SETPOWEROFFACTIVE 

This parameter is not supported.

Instead, set the GUID_VIDEO_POWERDOWN_TIMEOUT power setting. Windows Server 2003 and Windows XP/2000:  Activates or deactivates the power-off phase of screen saving. Set uiParam to 1 to activate, or zero to deactivate. The pvParam parameter must be NULL. This flag is supported for 32-bit applications only.

SPI_SETPOWEROFFTIMEOUT 

This parameter is not supported.

Instead, set the GUID_VIDEO_POWERDOWN_TIMEOUT power setting to a time-out value. Windows Server 2003 and Windows XP/2000:  Sets the time-out value, in seconds, for the power-off phase of screen saving. The uiParam parameter specifies the new value. The pvParam parameter must be NULL. This flag is supported for 32-bit applications only.

◆ SystemParametersScreenSaverInfo

Enumerator
SPI_GETSCREENSAVEACTIVE 

Determines whether screen saving is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if screen saving is enabled, or FALSE otherwise. Windows 7, Windows Server 2008 R2, and Windows 2000:  The function returns TRUE even when screen saving is not enabled. For more information and a workaround, see KB318781.

SPI_GETSCREENSAVERRUNNING 

Determines whether a screen saver is currently running on the window station of the calling process.

The pvParam parameter must point to a BOOL variable that receives TRUE if a screen saver is currently running, or FALSE otherwise. Note that only the interactive window station, WinSta0, can have a screen saver running.

SPI_GETSCREENSAVESECURE 

Determines whether the screen saver requires a password to display the Windows desktop.

The pvParam parameter must point to a BOOL variable that receives TRUE if the screen saver requires a password, or FALSE otherwise. The uiParam parameter is ignored. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_GETSCREENSAVETIMEOUT 

Retrieves the screen saver time-out value, in seconds.

The pvParam parameter must point to an integer variable that receives the value.

SPI_SETSCREENSAVEACTIVE 

Sets the state of the screen saver.

The uiParam parameter specifies TRUE to activate screen saving, or FALSE to deactivate it. If the machine has entered power saving mode or system lock state, an ERROR_OPERATION_IN_PROGRESS exception occurs.

SPI_SETSCREENSAVESECURE 

Sets whether the screen saver requires the user to enter a password to display the Windows desktop.

The uiParam parameter is a BOOL variable. The pvParam parameter is ignored. Set uiParam to TRUE to require a password, or FALSE to not require a password. If the machine has entered power saving mode or system lock state, an ERROR_OPERATION_IN_PROGRESS exception occurs. Windows Server 2003 and Windows XP/2000:  This parameter is not supported.

SPI_SETSCREENSAVETIMEOUT 

Sets the screen saver time-out value to the value of the uiParam parameter.

This value is the amount of time, in seconds, that the system must be idle before the screen saver activates. If the machine has entered power saving mode or system lock state, an ERROR_OPERATION_IN_PROGRESS exception occurs.

◆ SystemParametersTimeoutInfo

Enumerator
SPI_GETHUNGAPPTIMEOUT 

Retrieves the number of milliseconds that a thread can go without dispatching a message before the system considers it unresponsive.

The pvParam parameter must point to an integer variable that receives the value. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETWAITTOKILLTIMEOUT 

Retrieves the number of milliseconds that the system waits before terminating an application that does not respond to a shutdown request.

The pvParam parameter must point to an integer variable that receives the value. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETWAITTOKILLSERVICETIMEOUT 

Retrieves the number of milliseconds that the service control manager waits before terminating a service that does not respond to a shutdown request.

The pvParam parameter must point to an integer variable that receives the value. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETHUNGAPPTIMEOUT 

Sets the hung application time-out to the value of the uiParam parameter.

This value is the number of milliseconds that a thread can go without dispatching a message before the system considers it unresponsive. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETWAITTOKILLTIMEOUT 

Sets the application shutdown request time-out to the value of the uiParam parameter.

This value is the number of milliseconds that the system waits before terminating an application that does not respond to a shutdown request. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETWAITTOKILLSERVICETIMEOUT 

Sets the service shutdown request time-out to the value of the uiParam parameter.

This value is the number of milliseconds that the system waits before terminating a service that does not respond to a shutdown request. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

◆ SystemParametersUiEffectsInfo

Enumerator
SPI_GETCOMBOBOXANIMATION 

Determines whether the slide-open effect for combo boxes is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE for enabled, or FALSE for disabled.

SPI_GETCURSORSHADOW 

Determines whether the cursor has a shadow around it.

The pvParam parameter must point to a BOOL variable that receives TRUE if the shadow is enabled, FALSE if it is disabled. This effect appears only if the system has a color depth of more than 256 colors.

SPI_GETGRADIENTCAPTIONS 

Determines whether the gradient effect for window title bars is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE for enabled, or FALSE for disabled. For more information about the gradient effect, see the GetSysColor function.

SPI_GETHOTTRACKING 

Determines whether hot tracking of user-interface elements, such as menu names on menu bars, is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE for enabled, or FALSE for disabled. Hot tracking means that when the cursor moves over an item, it is highlighted but not selected. You can query this value to decide whether to use hot tracking in the user interface of your application.

SPI_GETLISTBOXSMOOTHSCROLLING 

Determines whether the smooth-scrolling effect for list boxes is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE for enabled, or FALSE for disabled.

SPI_GETMENUANIMATION 

Determines whether the menu animation feature is enabled.

This master switch must be on to enable menu animation effects. The pvParam parameter must point to a BOOL variable that receives TRUE if animation is enabled and FALSE if it is disabled. If animation is enabled, SPI_GETMENUFADE indicates whether menus use fade or slide animation.

SPI_GETMENUUNDERLINES 

Same as SPI_GETKEYBOARDCUES.

SPI_GETSELECTIONFADE 

Determines whether the selection fade effect is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled or FALSE if disabled. The selection fade effect causes the menu item selected by the user to remain on the screen briefly while fading out after the menu is dismissed.

SPI_GETTOOLTIPANIMATION 

Determines whether ToolTip animation is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled or FALSE if disabled. If ToolTip animation is enabled, SPI_GETTOOLTIPFADE indicates whether ToolTips use fade or slide animation.

SPI_GETTOOLTIPFADE 

If SPI_SETTOOLTIPANIMATION is enabled, SPI_GETTOOLTIPFADE indicates whether ToolTip animation uses a fade effect or a slide effect.

The pvParam parameter must point to a BOOL variable that receives TRUE for fade animation or FALSE for slide animation. For more information on slide and fade effects, see AnimateWindow.

SPI_GETUIEFFECTS 

Determines whether UI effects are enabled or disabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if all UI effects are enabled, or FALSE if they are disabled.

SPI_SETCOMBOBOXANIMATION 

Enables or disables the slide-open effect for combo boxes.

Set the pvParam parameter to TRUE to enable the gradient effect, or FALSE to disable it.

SPI_SETCURSORSHADOW 

Enables or disables a shadow around the cursor.

The pvParam parameter is a BOOL variable. Set pvParam to TRUE to enable the shadow or FALSE to disable the shadow. This effect appears only if the system has a color depth of more than 256 colors.

SPI_SETGRADIENTCAPTIONS 

Enables or disables the gradient effect for window title bars.

Set the pvParam parameter to TRUE to enable it, or FALSE to disable it. The gradient effect is possible only if the system has a color depth of more than 256 colors. For more information about the gradient effect, see the GetSysColor function.

SPI_SETHOTTRACKING 

Enables or disables hot tracking of user-interface elements such as menu names on menu bars.

Set the pvParam parameter to TRUE to enable it, or FALSE to disable it. Hot-tracking means that when the cursor moves over an item, it is highlighted but not selected.

SPI_SETLISTBOXSMOOTHSCROLLING 

Enables or disables the smooth-scrolling effect for list boxes.

Set the pvParam parameter to TRUE to enable the smooth-scrolling effect, or FALSE to disable it.

SPI_SETMENUANIMATION 

Enables or disables menu animation.

This master switch must be on for any menu animation to occur. The pvParam parameter is a BOOL variable; set pvParam to TRUE to enable animation and FALSE to disable animation. If animation is enabled, SPI_GETMENUFADE indicates whether menus use fade or slide animation.

SPI_SETMENUUNDERLINES 

Same as SPI_SETKEYBOARDCUES.

SPI_SETSELECTIONFADE 

Set pvParam to TRUE to enable the selection fade effect or FALSE to disable it.

The selection fade effect causes the menu item selected by the user to remain on the screen briefly while fading out after the menu is dismissed. The selection fade effect is possible only if the system has a color depth of more than 256 colors.

SPI_SETTOOLTIPANIMATION 

Set pvParam to TRUE to enable ToolTip animation or FALSE to disable it.

If enabled, you can use SPI_SETTOOLTIPFADE to specify fade or slide animation.

SPI_SETTOOLTIPFADE 

If the SPI_SETTOOLTIPANIMATION flag is enabled, use SPI_SETTOOLTIPFADE to indicate whether ToolTip animation uses a fade effect or a slide effect.

Set pvParam to TRUE for fade animation or FALSE for slide animation. The tooltip fade effect is possible only if the system has a color depth of more than 256 colors. For more information on the slide and fade effects, see the AnimateWindowfunction.

SPI_SETUIEFFECTS 

Enables or disables UI effects.

Set the pvParam parameter to TRUE to enable all UI effects or FALSE to disable all UI effects.

◆ SystemParametersWindowInfo

Enumerator
SPI_GETACTIVEWINDOWTRACKING 

Determines whether active window tracking (activating the window the mouse is on) is on or off.

The pvParam parameter must point to a BOOL variable that receives TRUE for on, or FALSE for off.

SPI_GETACTIVEWNDTRKZORDER 

Determines whether windows activated through active window tracking will be brought to the top.

The pvParam parameter must point to a BOOL variable that receives TRUE for on, or FALSE for off.

SPI_GETACTIVEWNDTRKTIMEOUT 

Retrieves the active window tracking delay, in milliseconds.

The pvParam parameter must point to a DWORD variable that receives the time.

SPI_GETANIMATION 

Retrieves the animation effects associated with user actions.

The pvParam parameter must point to an ANIMATIONINFO structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(ANIMATIONINFO).

SPI_GETBORDER 

Retrieves the border multiplier factor that determines the width of a window's sizing border.

The pvParamparameter must point to an integer variable that receives this value.

SPI_GETCARETWIDTH 

Retrieves the caret width in edit controls, in pixels.

The pvParam parameter must point to a DWORD variable that receives this value.

SPI_GETDOCKMOVING 

Determines whether a window is docked when it is moved to the top, left, or right edges of a monitor or monitor array.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise. Use SPI_GETWINARRANGING to determine whether this behavior is enabled. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETDRAGFROMMAXIMIZE 

Determines whether a maximized window is restored when its caption bar is dragged.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise. Use SPI_GETWINARRANGING to determine whether this behavior is enabled. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETDRAGFULLWINDOWS 

Determines whether dragging of full windows is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise.

SPI_GETFOREGROUNDFLASHCOUNT 

Retrieves the number of times SetForegroundWindow will flash the taskbar button when rejecting a foreground switch request.

The pvParam parameter must point to a DWORD variable that receives the value.

SPI_GETFOREGROUNDLOCKTIMEOUT 

Retrieves the amount of time following user input, in milliseconds, during which the system will not allow applications to force themselves into the foreground.

The pvParam parameter must point to a DWORD variable that receives the time.

SPI_GETMINIMIZEDMETRICS 

Retrieves the metrics associated with minimized windows.

The pvParam parameter must point to a MINIMIZEDMETRICS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(MINIMIZEDMETRICS).

SPI_GETMOUSEDOCKTHRESHOLD 

Retrieves the threshold in pixels where docking behavior is triggered by using a mouse to drag a window to the edge of a monitor or monitor array.

The default threshold is 1. The pvParam parameter must point to a DWORD variable that receives the value. Use SPI_GETWINARRANGING to determine whether this behavior is enabled. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETMOUSEDRAGOUTTHRESHOLD 

Retrieves the threshold in pixels where undocking behavior is triggered by using a mouse to drag a window from the edge of a monitor or a monitor array toward the center.

The default threshold is 20. Use SPI_GETWINARRANGING to determine whether this behavior is enabled. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETMOUSESIDEMOVETHRESHOLD 

Retrieves the threshold in pixels from the top of a monitor or a monitor array where a vertically maximized window is restored when dragged with the mouse.

The default threshold is 50. Use SPI_GETWINARRANGING to determine whether this behavior is enabled. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETNONCLIENTMETRICS 

Retrieves the metrics associated with the nonclient area of nonminimized windows.

The pvParam parameter must point to a NONCLIENTMETRICS structure that receives the information. Set the cbSize member of this structure and the uiParam parameter to sizeof(NONCLIENTMETRICS).

SPI_GETPENDOCKTHRESHOLD 

Retrieves the threshold in pixels where docking behavior is triggered by using a pen to drag a window to the edge of a monitor or monitor array.

The default is 30. Use SPI_GETWINARRANGING to determine whether this behavior is enabled. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETPENDRAGOUTTHRESHOLD 

Retrieves the threshold in pixels where undocking behavior is triggered by using a pen to drag a window from the edge of a monitor or monitor array toward its center.

The default threshold is 30. Use SPI_GETWINARRANGING to determine whether this behavior is enabled. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETPENSIDEMOVETHRESHOLD 

Retrieves the threshold in pixels from the top of a monitor or monitor array where a vertically maximized window is restored when dragged with the mouse.

The default threshold is 50. Use SPI_GETWINARRANGING to determine whether this behavior is enabled. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETSHOWIMEUI 

Determines whether the IME status window is visible (on a per-user basis).

The pvParam parameter must point to a BOOL variable that receives TRUE if the status window is visible, or FALSE if it is not.

SPI_GETSNAPSIZING 

Determines whether a window is vertically maximized when it is sized to the top or bottom of a monitor or monitor array.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise. Use SPI_GETWINARRANGING to determine whether this behavior is enabled. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_GETWINARRANGING 

Determines whether window arrangement is enabled.

The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise. Window arrangement reduces the number of mouse, pen, or touch interactions needed to move and size top-level windows by simplifying the default behavior of a window when it is dragged or sized. The following parameters retrieve individual window arrangement settings: SPI_GETDOCKMOVING SPI_GETMOUSEDOCKTHRESHOLD SPI_GETMOUSEDRAGOUTTHRESHOLD SPI_GETMOUSESIDEMOVETHRESHOLD SPI_GETPENDOCKTHRESHOLD SPI_GETPENDRAGOUTTHRESHOLD SPI_GETPENSIDEMOVETHRESHOLD SPI_GETSNAPSIZING Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETACTIVEWINDOWTRACKING 

Sets active window tracking (activating the window the mouse is on) either on or off.

Set pvParam to TRUE for on or FALSE for off.

SPI_SETACTIVEWNDTRKZORDER 

Determines whether or not windows activated through active window tracking should be brought to the top.

Set pvParam to TRUE for on or FALSE for off.

SPI_SETACTIVEWNDTRKTIMEOUT 

Sets the active window tracking delay.

Set pvParam to the number of milliseconds to delay before activating the window under the mouse pointer.

SPI_SETANIMATION 

Sets the animation effects associated with user actions.

The pvParam parameter must point to an ANIMATIONINFO structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(ANIMATIONINFO).

SPI_SETBORDER 

Sets the border multiplier factor that determines the width of a window's sizing border.

The uiParam parameter specifies the new value.

SPI_SETCARETWIDTH 

Sets the caret width in edit controls.

Set pvParam to the desired width, in pixels. The default and minimum value is 1.

SPI_SETDOCKMOVING 

Sets whether a window is docked when it is moved to the top, left, or right docking targets on a monitor or monitor array.

Set pvParam to TRUE for on or FALSE for off. SPI_GETWINARRANGING must be TRUE to enable this behavior. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETDRAGFROMMAXIMIZE 

Sets whether a maximized window is restored when its caption bar is dragged.

Set pvParam to TRUE for on or FALSE for off. SPI_GETWINARRANGING must be TRUE to enable this behavior. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETDRAGFULLWINDOWS 

Sets dragging of full windows either on or off.

The uiParam parameter specifies TRUE for on, or FALSE for off.

SPI_SETDRAGHEIGHT 

Sets the height, in pixels, of the rectangle used to detect the start of a drag operation.

Set uiParam to the new value. To retrieve the drag height, call GetSystemMetrics with the SM_CYDRAG flag.

SPI_SETDRAGWIDTH 

Sets the width, in pixels, of the rectangle used to detect the start of a drag operation.

Set uiParam to the new value. To retrieve the drag width, call GetSystemMetrics with the SM_CXDRAG flag.

SPI_SETFOREGROUNDFLASHCOUNT 

Sets the number of times SetForegroundWindow will flash the taskbar button when rejecting a foreground switch request.

Set pvParam to the number of times to flash.

SPI_SETFOREGROUNDLOCKTIMEOUT 

Sets the amount of time following user input, in milliseconds, during which the system does not allow applications to force themselves into the foreground.

Set pvParam to the new time-out value. The calling thread must be able to change the foreground window, otherwise the call fails.

SPI_SETMINIMIZEDMETRICS 

Sets the metrics associated with minimized windows.

The pvParam parameter must point to a MINIMIZEDMETRICS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(MINIMIZEDMETRICS).

SPI_SETMOUSEDOCKTHRESHOLD 

Sets the threshold in pixels where docking behavior is triggered by using a mouse to drag a window to the edge of a monitor or monitor array.

The default threshold is 1. The pvParam parameter must point to a DWORD variable that contains the new value. SPI_GETWINARRANGING must be TRUE to enable this behavior. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETMOUSEDRAGOUTTHRESHOLD 

Sets the threshold in pixels where undocking behavior is triggered by using a mouse to drag a window from the edge of a monitor or monitor array to its center.

The default threshold is 20. The pvParam parameter must point to a DWORD variable that contains the new value. SPI_GETWINARRANGING must be TRUE to enable this behavior. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETMOUSESIDEMOVETHRESHOLD 

Sets the threshold in pixels from the top of the monitor where a vertically maximized window is restored when dragged with the mouse.

The default threshold is 50. The pvParam parameter must point to a DWORD variable that contains the new value. SPI_GETWINARRANGING must be TRUE to enable this behavior. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETNONCLIENTMETRICS 

Sets the metrics associated with the nonclient area of nonminimized windows.

The pvParam parameter must point to a NONCLIENTMETRICS structure that contains the new parameters. Set the cbSize member of this structure and the uiParam parameter to sizeof(NONCLIENTMETRICS). Also, the lfHeight member of the LOGFONT structure must be a negative value.

SPI_SETPENDOCKTHRESHOLD 

Sets the threshold in pixels where docking behavior is triggered by using a pen to drag a window to the edge of a monitor or monitor array.

The default threshold is 30. The pvParam parameter must point to a DWORD variable that contains the new value. SPI_GETWINARRANGING must be TRUE to enable this behavior. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETPENDRAGOUTTHRESHOLD 

Sets the threshold in pixels where undocking behavior is triggered by using a pen to drag a window from the edge of a monitor or monitor array to its center.

The default threshold is 30. The pvParam parameter must point to a DWORD variable that contains the new value. SPI_GETWINARRANGING must be TRUE to enable this behavior. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETPENSIDEMOVETHRESHOLD 

Sets the threshold in pixels from the top of the monitor where a vertically maximized window is restored when dragged with a pen.

The default threshold is 50. The pvParam parameter must point to a DWORD variable that contains the new value. SPI_GETWINARRANGING must be TRUE to enable this behavior. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETSHOWIMEUI 

Sets whether the IME status window is visible or not on a per-user basis.

The uiParam parameter specifies TRUE for on or FALSE for off.

SPI_SETSNAPSIZING 

Sets whether a window is vertically maximized when it is sized to the top or bottom of the monitor.

Set pvParam to TRUE for on or FALSE for off. SPI_GETWINARRANGING must be TRUE to enable this behavior. Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

SPI_SETWINARRANGING 

Sets whether window arrangement is enabled.

Set pvParam to TRUE for on or FALSE for off. Window arrangement reduces the number of mouse, pen, or touch interactions needed to move and size top-level windows by simplifying the default behavior of a window when it is dragged or sized. The following parameters set individual window arrangement settings: SPI_SETDOCKMOVING SPI_SETMOUSEDOCKTHRESHOLD SPI_SETMOUSEDRAGOUTTHRESHOLD SPI_SETMOUSESIDEMOVETHRESHOLD SPI_SETPENDOCKTHRESHOLD SPI_SETPENDRAGOUTTHRESHOLD SPI_SETPENSIDEMOVETHRESHOLD SPI_SETSNAPSIZING Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000:  This parameter is not supported.

◆ SystemParamtersInfoFlags

Enumerator
None 
SPIF_UPDATEINIFILE 

Writes the new system-wide parameter setting to the user profile.

SPIF_SENDCHANGE 

Broadcasts the WM_SETTINGCHANGE message after updating the user profile.

SPIF_SENDWININICHANGE 

Same as SPIF_SENDCHANGE.

◆ TrackMouseEventFlags

enum TrackMouseEventFlags
strong
Enumerator
TME_CANCEL 

The caller wants to cancel a prior tracking request.

The caller should also specify the type of tracking that it wants to cancel. For example, to cancel hover tracking, the caller must pass the TME_CANCEL and TME_HOVER flags.

TME_HOVER 

The caller wants hover notification.

Notification is delivered as a WM_MOUSEHOVER message. If the caller requests hover tracking while hover tracking is already active, the hover timer will be reset. This flag is ignored if the mouse pointer is not over the specified window or area.

TME_LEAVE 

The caller wants leave notification.

Notification is delivered as a WM_MOUSELEAVE message. If the mouse is not over the specified window or area, a leave notification is generated immediately and no further tracking is performed.

TME_NONCLIENT 

The caller wants hover and leave notification for the nonclient areas.

Notification is delivered as WM_NCMOUSEHOVER and WM_NCMOUSELEAVE messages.

TME_QUERY 

The function fills in the structure instead of treating it as a tracking request.

The structure is filled such that had that structure been passed to TrackMouseEvent, it would generate the current tracking. The only anomaly is that the hover time-out returned is always the actual time-out and not HOVER_DEFAULT, if HOVER_DEFAULT was specified during the original TrackMouseEvent request.

◆ VirtualKey

enum VirtualKey
strong
Enumerator
LBUTTON 
RBUTTON 
CANCEL 
MBUTTON 
XBUTTON1 
XBUTTON2 
BACK 
TAB 
CLEAR 
RETURN 
SHIFT 
CONTROL 
MENU 
PAUSE 
CAPITAL 
KANA 
HANGEUL 
HANGUL 
JUNJA 
FINAL 
HANJA 
KANJI 
ESCAPE 
CONVERT 
NONCONVERT 
ACCEPT 
MODECHANGE 
SPACE 
PRIOR 
NEXT 
END 
HOME 
LEFT 
UP 
RIGHT 
DOWN 
SELECT 
PRINT 
EXECUTE 
SNAPSHOT 
INSERT 
DELETE 
HELP 
LWIN 
RWIN 
APPS 
SLEEP 
NUMPAD0 
NUMPAD1 
NUMPAD2 
NUMPAD3 
NUMPAD4 
NUMPAD5 
NUMPAD6 
NUMPAD7 
NUMPAD8 
NUMPAD9 
MULTIPLY 
ADD 
SEPARATOR 
SUBTRACT 
DECIMAL 
DIVIDE 
F1 
F2 
F3 
F4 
F5 
F6 
F7 
F8 
F9 
F10 
F11 
F12 
F13 
F14 
F15 
F16 
F17 
F18 
F19 
F20 
F21 
F22 
F23 
F24 
NUMLOCK 
SCROLL 
OEM_NEC_EQUAL 
OEM_FJ_JISHO 
OEM_FJ_MASSHOU 
OEM_FJ_TOUROKU 
OEM_FJ_LOYA 
OEM_FJ_ROYA 
LSHIFT 
RSHIFT 
LCONTROL 
RCONTROL 
LMENU 
RMENU 
BROWSER_BACK 
BROWSER_FORWARD 
BROWSER_REFRESH 
BROWSER_STOP 
BROWSER_SEARCH 
BROWSER_FAVORITES 
BROWSER_HOME 
VOLUME_MUTE 
VOLUME_DOWN 
VOLUME_UP 
MEDIA_NEXT_TRACK 
MEDIA_PREV_TRACK 
MEDIA_STOP 
MEDIA_PLAY_PAUSE 
LAUNCH_MAIL 
LAUNCH_MEDIA_SELECT 
LAUNCH_APP1 
LAUNCH_APP2 
OEM_1 
OEM_PLUS 
OEM_COMMA 
OEM_MINUS 
OEM_PERIOD 
OEM_2 
OEM_3 
OEM_4 
OEM_5 
OEM_6 
OEM_7 
OEM_8 
OEM_AX 
OEM_102 
ICO_HELP 
ICO_00 
PROCESSKEY 
ICO_CLEAR 
PACKET 
OEM_RESET 
OEM_JUMP 
OEM_PA1 
OEM_PA2 
OEM_PA3 
OEM_WSCTRL 
OEM_CUSEL 
OEM_ATTN 
OEM_FINISH 
OEM_COPY 
OEM_AUTO 
OEM_ENLW 
OEM_BACKTAB 
ATTN 
CRSEL 
EXSEL 
EREOF 
PLAY 
ZOOM 
NONAME 
PA1 
OEM_CLEAR 
D0 
D1 
D2 
D3 
D4 
D5 
D6 
D7 
D8 
D9 

◆ VirtualKeyMapType

enum VirtualKeyMapType
strong
Enumerator
MAPVK_VK_TO_CHAR 

The uCode parameter is a virtual-key code and is translated into an unshifted character value in the low order word of the return value.

Dead keys (diacritics) are indicated by setting the top bit of the return value. If there is no translation, the function returns 0.

MAPVK_VK_TO_VSC 

The uCode parameter is a virtual-key code and is translated into a scan code.

If it is a virtual-key code that does not distinguish between left- and right-hand keys, the left-hand scan code is returned. If there is no translation, the function returns 0.

MAPVK_VK_TO_VSC_EX 

The uCode parameter is a virtual-key code and is translated into a scan code.

If it is a virtual-key code that does not distinguish between left- and right-hand keys, the left-hand scan code is returned. If the scan code is an extended scan code, the high byte of the uCode value can contain either 0xe0 or 0xe1 to specify the extended scan code. If there is no translation, the function returns 0.

MAPVK_VSC_TO_VK 

The uCode parameter is a scan code and is translated into a virtual-key code that does not distinguish between left- and right-hand keys.

If there is no translation, the function returns 0.

MAPVK_VSC_TO_VK_EX 

The uCode parameter is a scan code and is translated into a virtual-key code that distinguishes between left- and right-hand keys.

If there is no translation, the function returns 0.

◆ WindowActivateFlag

enum WindowActivateFlag
strong
Enumerator
WA_ACTIVE 

Activated by some method other than a mouse click (for example, by a call to the SetActiveWindow function or by use of the keyboard interface to select the window).

WA_CLICKACTIVE 

Activated by a mouse click.

WA_INACTIVE 

Deactivated.

◆ WindowClassStyles

enum WindowClassStyles
strong
Enumerator
CS_BYTEALIGNCLIENT 

Aligns the window's client area on a byte boundary (in the x direction).

This style affects the width of the window and its horizontal placement on the display.

CS_BYTEALIGNWINDOW 

Aligns the window on a byte boundary (in the x direction).

This style affects the width of the window and its horizontal placement on the display.

CS_CLASSDC 

Allocates one device context to be shared by all windows in the class.

Because window classes are process specific, it is possible for multiple threads of an application to create a window of the same class. It is also possible for the threads to attempt to use the device context simultaneously. When this happens, the system allows only one thread to successfully finish its drawing operation.

CS_DBLCLKS 

Sends a double-click message to the window procedure when the user double-clicks the mouse while the cursor is within a window belonging to the class.

CS_DROPSHADOW 

Enables the drop shadow effect on a window.

The effect is turned on and off through SPI_SETDROPSHADOW. Typically, this is enabled for small, short-lived windows such as menus to emphasize their Z-order relationship to other windows. Windows created from a class with this style must be top-level windows; they may not be child windows.

CS_GLOBALCLASS 

Indicates that the window class is an application global class.

For more information, see the "Application Global Classes" section of About Window Classes.

CS_HREDRAW 

Redraws the entire window if a movement or size adjustment changes the width of the client area.

CS_NOCLOSE 

Disables Close on the window menu.

CS_OWNDC 

Allocates a unique device context for each window in the class.

CS_PARENTDC 

Sets the clipping rectangle of the child window to that of the parent window so that the child can draw on the parent.

A window with the CS_PARENTDC style bit receives a regular device context from the system's cache of device contexts. It does not give the child the parent's device context or device context settings. Specifying CS_PARENTDC enhances an application's performance.

CS_SAVEBITS 

Saves, as a bitmap, the portion of the screen image obscured by a window of this class.

When the window is removed, the system uses the saved bitmap to restore the screen image, including other windows that were obscured. Therefore, the system does not send WM_PAINT messages to windows that were obscured if the memory used by the bitmap has not been discarded and if other screen actions have not invalidated the stored image. This style is useful for small windows (for example, menus or dialog boxes) that are displayed briefly and then removed before other screen activity takes place. This style increases the time required to display the window, because the system must first allocate memory to store the bitmap.

CS_VREDRAW 

Redraws the entire window if a movement or size adjustment changes the height of the client area.

◆ WindowExStyles

enum WindowExStyles
strong
Enumerator
WS_EX_ACCEPTFILES 

The window accepts drag-drop files.

WS_EX_APPWINDOW 

Forces a top-level window onto the taskbar when the window is visible.

WS_EX_CLIENTEDGE 

The window has a border with a sunken edge.

WS_EX_COMPOSITED 

Paints all descendants of a window in bottom-to-top painting order using double-buffering.

For more information, see Remarks. This cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC. Windows 2000:  This style is not supported.

WS_EX_CONTEXTHELP 

The title bar of the window includes a question mark.

When the user clicks the question mark, the cursor changes to a question mark with a pointer. If the user then clicks a child window, the child receives a WM_HELP message. The child window should pass the message to the parent window procedure, which should call the WinHelp function using the HELP_WM_HELP command. The Help application displays a pop-up window that typically contains help for the child window. WS_EX_CONTEXTHELP cannot be used with the WS_MAXIMIZEBOX or WS_MINIMIZEBOX styles.

WS_EX_CONTROLPARENT 

The window itself contains child windows that should take part in dialog box navigation.

If this style is specified, the dialog manager recurses into children of this window when performing navigation operations such as handling the TAB key, an arrow key, or a keyboard mnemonic.

WS_EX_DLGMODALFRAME 

The window has a double border; the window can, optionally, be created with a title bar by specifying the WS_CAPTION style in the dwStyle parameter.

WS_EX_LAYERED 

The window is a layered window.

This style cannot be used if the window has a class style of either CS_OWNDC or CS_CLASSDC. Windows 8:  The WS_EX_LAYERED style is supported for top-level windows and child windows. Previous Windows versions support WS_EX_LAYERED only for top-level windows.

WS_EX_LAYOUTRTL 

If the shell language is Hebrew, Arabic, or another language that supports reading order alignment, the horizontal origin of the window is on the right edge.

Increasing horizontal values advance to the left.

WS_EX_LEFT 

The window has generic left-aligned properties.

This is the default.

WS_EX_LEFTSCROLLBAR 

If the shell language is Hebrew, Arabic, or another language that supports reading order alignment, the vertical scroll bar (if present) is to the left of the client area.

For other languages, the style is ignored.

WS_EX_LTRREADING 

The window text is displayed using left-to-right reading-order properties.

This is the default.

WS_EX_MDICHILD 

The window is a MDI child window.

WS_EX_NOACTIVATE 

A top-level window created with this style does not become the foreground window when the user clicks it.

The system does not bring this window to the foreground when the user minimizes or closes the foreground window. To activate the window, use the SetActiveWindow or SetForegroundWindow function. The window does not appear on the taskbar by default. To force the window to appear on the taskbar, use the WS_EX_APPWINDOW style.

WS_EX_NOINHERITLAYOUT 

The window does not pass its window layout to its child windows.

WS_EX_NOPARENTNOTIFY 

The child window created with this style does not send the WM_PARENTNOTIFY message to its parent window when it is created or destroyed.

WS_EX_NOREDIRECTIONBITMAP 

The window does not render to a redirection surface.

This is for windows that do not have visible content or that use mechanisms other than surfaces to provide their visual.

WS_EX_OVERLAPPEDWINDOW 

The window is an overlapped window.

WS_EX_PALETTEWINDOW 

The window is palette window, which is a modeless dialog box that presents an array of commands.

WS_EX_RIGHT 

The window has generic "right-aligned" properties.

This depends on the window class. This style has an effect only if the shell language is Hebrew, Arabic, or another language that supports reading-order alignment; otherwise, the style is ignored. Using the WS_EX_RIGHT style for static or edit controls has the same effect as using the SS_RIGHT or ES_RIGHT style, respectively. Using this style with button controls has the same effect as using BS_RIGHT and BS_RIGHTBUTTON styles.

WS_EX_RIGHTSCROLLBAR 

The vertical scroll bar (if present) is to the right of the client area.

This is the default.

WS_EX_RTLREADING 

If the shell language is Hebrew, Arabic, or another language that supports reading-order alignment, the window text is displayed using right-to-left reading-order properties.

For other languages, the style is ignored.

WS_EX_STATICEDGE 

The window has a three-dimensional border style intended to be used for items that do not accept user input.

WS_EX_TOOLWINDOW 

The window is intended to be used as a floating toolbar.

A tool window has a title bar that is shorter than a normal title bar, and the window title is drawn using a smaller font. A tool window does not appear in the taskbar or in the dialog that appears when the user presses ALT+TAB. If a tool window has a system menu, its icon is not displayed on the title bar. However, you can display the system menu by right-clicking or by typing ALT+SPACE.

WS_EX_TOPMOST 

The window should be placed above all non-topmost windows and should stay above them, even when the window is deactivated.

To add or remove this style, use the SetWindowPos function.

WS_EX_TRANSPARENT 

The window should not be painted until siblings beneath the window (that were created by the same thread) have been painted.

The window appears transparent because the bits of underlying sibling windows have already been painted. To achieve transparency without these restrictions, use the SetWindowRgn function.

WS_EX_WINDOWEDGE 

The window has a border with a raised edge.

◆ WindowLongFlags

enum WindowLongFlags
strong
Enumerator
GWL_EXSTYLE 

Retrieves the extended window styles.

GWLP_HINSTANCE 

Retrieves a handle to the application instance.

GWLP_HWNDPARENT 

Retrieves a handle to the parent window, if there is one.

GWLP_ID 

Retrieves the identifier of the window.

GWL_STYLE 

Retrieves the window styles.

GWLP_USERDATA 

Retrieves the user data associated with the window.

This data is intended for use by the application that created the window. Its value is initially zero.

GWLP_WNDPROC 

Retrieves the pointer to the window procedure, or a handle representing the pointer to the window procedure.

You must use the CallWindowProc function to call the window procedure.

DWLP_DLGPROC 

Retrieves the pointer to the dialog box procedure, or a handle representing the pointer to the dialog box procedure.

You must use the CallWindowProc function to call the dialog box procedure. Note: Should be DWLP_MSGRESULT + sizeof(LRESULT)

DWLP_MSGRESULT 

Retrieves the return value of a message processed in the dialog box procedure.

DWLP_USER 

Retrieves extra information private to the application, such as handles or pointers.

Note: Should be DWLP_DLGPROC + sizeof(DLGPROC)

◆ WindowPlacementFlags

enum WindowPlacementFlags
strong
Enumerator
SETMINPOSITION 

The coordinates of the minimized window may be specified.

This flag must be specified if the coordinates are set in the ptMinPosition member.

RESTORETOMAXIMIZED 

The restored window will be maximized, regardless of whether it was maximized before it was minimized.

This setting is only valid the next time the window is restored. It does not change the default restoration behavior. This flag is only valid when the SW_SHOWMINIMIZED value is specified for the showCmd member.

ASYNCWINDOWPLACEMENT 

If the calling thread and the thread that owns the window are attached to different input queues, the system posts the request to the thread that owns the window.

This prevents the calling thread from blocking its execution while other threads process the request.

◆ WindowPositionFlags

enum WindowPositionFlags
strong
Enumerator
SWP_ASYNCWINDOWPOS 

If the calling thread and the thread that owns the window are attached to different input queues, the system posts the request to the thread that owns the window.

This prevents the calling thread from blocking its execution while other threads process the request.

SWP_DEFERERASE 

Prevents generation of the WM_SYNCPAINT message.

SWP_DRAWFRAME 

Draws a frame (defined in the window's class description) around the window.

SWP_FRAMECHANGED 

Applies new frame styles set using the SetWindowLong function.

Sends a WM_NCCALCSIZE message to the window, even if the window's size is not being changed. If this flag is not specified, WM_NCCALCSIZE is sent only when the window's size is being changed.

SWP_HIDEWINDOW 

Hides the window.

SWP_NOACTIVATE 

Does not activate the window.

If this flag is not set, the window is activated and moved to the top of either the topmost or non-topmost group (depending on the setting of the hWndInsertAfter parameter).

SWP_NOCOPYBITS 

Discards the entire contents of the client area.

If this flag is not specified, the valid contents of the client area are saved and copied back into the client area after the window is sized or repositioned.

SWP_NOMOVE 

Retains the current position (ignores X and Y parameters).

SWP_NOOWNERZORDER 

Does not change the owner window's position in the Z order.

SWP_NOREDRAW 

Does not redraw changes.

If this flag is set, no repainting of any kind occurs. This applies to the client area, the nonclient area (including the title bar and scroll bars), and any part of the parent window uncovered as a result of the window being moved. When this flag is set, the application must explicitly invalidate or redraw any parts of the window and parent window that need redrawing.

SWP_NOREPOSITION 

Same as the SWP_NOOWNERZORDER flag.

SWP_NOSENDCHANGING 

Prevents the window from receiving the WM_WINDOWPOSCHANGING message.

SWP_NOSIZE 

Retains the current size (ignores the cx and cy parameters).

SWP_NOZORDER 

Retains the current Z order (ignores the hWndInsertAfter parameter).

SWP_SHOWWINDOW 

Displays the window.

◆ WindowSizeFlag

enum WindowSizeFlag
strong
Enumerator
SIZE_MAXHIDE 

Message is sent to all pop-up windows when some other window is maximized.

SIZE_MAXIMIZED 

The window has been maximized.

SIZE_MAXSHOW 

Message is sent to all pop-up windows when some other window has been restored to its former size.

SIZE_MINIMIZED 

The window has been minimized.

SIZE_RESTORED 

The window has been resized, but neither the SIZE_MINIMIZED nor SIZE_MAXIMIZED value applies.

◆ WindowStyles

enum WindowStyles
strong
Enumerator
WS_BORDER 

The window has a thin-line border.

WS_CAPTION 

The window has a title bar (includes the WS_BORDER style).

WS_CHILD 

The window is a child window.

A window with this style cannot have a menu bar. This style cannot be used with the WS_POPUP style.

WS_CHILDWINDOW 

Same as the WS_CHILD style.

WS_CLIPCHILDREN 

Excludes the area occupied by child windows when drawing occurs within the parent window.

This style is used when creating the parent window.

WS_CLIPSIBLINGS 

Clips child windows relative to each other; that is, when a particular child window receives a WM_PAINT message, the WS_CLIPSIBLINGS style clips all other overlapping child windows out of the region of the child window to be updated.

If WS_CLIPSIBLINGS is not specified and child windows overlap, it is possible, when drawing within the client area of a child window, to draw within the client area of a neighboring child window.

WS_DISABLED 

The window is initially disabled.

A disabled window cannot receive input from the user. To change this after a window has been created, use the EnableWindow function.

WS_DLGFRAME 

The window has a border of a style typically used with dialog boxes.

A window with this style cannot have a title bar.

WS_GROUP 

The window is the first control of a group of controls.

The group consists of this first control and all controls defined after it, up to the next control with the WS_GROUP style. The first control in each group usually has the WS_TABSTOP style so that the user can move from group to group. The user can subsequently change the keyboard focus from one control in the group to the next control in the group by using the direction keys. You can turn this style on and off to change dialog box navigation. To change this style after a window has been created, use the SetWindowLong function.

WS_HSCROLL 

The window has a horizontal scroll bar.

WS_ICONIC 

The window is initially minimized.

Same as the WS_MINIMIZE style.

WS_MAXIMIZE 

The window is initially maximized.

WS_MAXIMIZEBOX 

The window has a maximize button.

Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified.

WS_MINIMIZE 

The window is initially minimized.

Same as the WS_ICONIC style.

WS_MINIMIZEBOX 

The window has a minimize button.

Cannot be combined with the WS_EX_CONTEXTHELP style. The WS_SYSMENU style must also be specified.

WS_OVERLAPPED 

The window is an overlapped window.

An overlapped window has a title bar and a border. Same as the WS_TILED style.

WS_OVERLAPPEDWINDOW 

The window is an overlapped window.

Same as the WS_TILEDWINDOW style.

WS_POPUP 

The windows is a pop-up window.

This style cannot be used with the WS_CHILD style.

WS_POPUPWINDOW 

The window is a pop-up window.

The WS_CAPTION and WS_POPUPWINDOW styles must be combined to make the window menu visible.

WS_SIZEBOX 

The window has a sizing border.

Same as the WS_THICKFRAME style.

WS_SYSMENU 

The window has a window menu on its title bar.

The WS_CAPTION style must also be specified.

WS_TABSTOP 

The window is a control that can receive the keyboard focus when the user presses the TAB key.

Pressing the TAB key changes the keyboard focus to the next control with the WS_TABSTOP style. You can turn this style on and off to change dialog box navigation. To change this style after a window has been created, use the SetWindowLong function. For user-created windows and modeless dialogs to work with tab stops, alter the message loop to call the IsDialogMessage function.

WS_THICKFRAME 

The window has a sizing border.

Same as the WS_SIZEBOX style.

WS_TILED 

The window is an overlapped window.

An overlapped window has a title bar and a border. Same as the WS_OVERLAPPED style.

WS_TILEDWINDOW 

The window is an overlapped window.

Same as the WS_OVERLAPPEDWINDOW style.

WS_VISIBLE 

The window is initially visible.

This style can be turned on and off by using the ShowWindow or SetWindowPos function.

WS_VSCROLL 

The window has a vertical scroll bar.

◆ WindowViewRegionFlags

enum WindowViewRegionFlags
strong
Enumerator
WVR_DEFAULT 

During NCCALCSIZE, if shouldCalcValidRects is true, this option preserves the previous area and aligns top-left

WVR_ALIGNTOP 

Specifies that the client area of the window is to be preserved and aligned with the top of the new position of the window.

For example, to align the client area to the upper-left corner, return the WVR_ALIGNTOP and WVR_ALIGNLEFT values.

WVR_ALIGNRIGHT 

Specifies that the client area of the window is to be preserved and aligned with the right side of the new position of the window.

For example, to align the client area to the lower-right corner, return the WVR_ALIGNRIGHT and WVR_ALIGNBOTTOM values.

WVR_ALIGNLEFT 

Specifies that the client area of the window is to be preserved and aligned with the left side of the new position of the window.

For example, to align the client area to the lower-left corner, return the WVR_ALIGNLEFT and WVR_ALIGNBOTTOM values.

WVR_ALIGNBOTTOM 

Specifies that the client area of the window is to be preserved and aligned with the bottom of the new position of the window.

For example, to align the client area to the top-left corner, return the WVR_ALIGNTOP and WVR_ALIGNLEFT values.

WVR_HREDRAW 

Used in combination with any other values, except WVR_VALIDRECTS, causes the window to be completely redrawn if the client rectangle changes size horizontally.

This value is similar to CS_HREDRAW class style

WVR_VREDRAW 

Used in combination with any other values, except WVR_VALIDRECTS, causes the window to be completely redrawn if the client rectangle changes size vertically.

This value is similar to CS_VREDRAW class style

WVR_REDRAW 

This value causes the entire window to be redrawn.

It is a combination of WVR_HREDRAW and WVR_VREDRAW values.

WVR_VALIDRECTS 

This value indicates that, upon return from WM_NCCALCSIZE, the rectangles specified by the rgrc[1] and rgrc[2] members of the NCCALCSIZE_PARAMS structure contain valid destination and source area rectangles, respectively.

The system combines these rectangles to calculate the area of the window to be preserved. The system copies any part of the window image that is within the source rectangle and clips the image to the destination rectangle. Both rectangles are in parent-relative or screen-relative coordinates. This flag cannot be combined with any other flags. This return value allows an application to implement more elaborate client-area preservation strategies, such as centering or preserving a subset of the client area.

◆ WM

enum WM
strong
Enumerator
NULL 
CREATE 
DESTROY 
MOVE 
SIZE 
ACTIVATE 
SETFOCUS 
KILLFOCUS 
ENABLE 
SETREDRAW 
SETTEXT 
GETTEXT 
GETTEXTLENGTH 
PAINT 
CLOSE 
QUERYENDSESSION 
QUERYOPEN 
ENDSESSION 
QUIT 
ERASEBKGND 
SYSCOLORCHANGE 
SHOWWINDOW 
WININICHANGE 
SETTINGCHANGE 
DEVMODECHANGE 
ACTIVATEAPP 
FONTCHANGE 
TIMECHANGE 
CANCELMODE 
SETCURSOR 
MOUSEACTIVATE 
CHILDACTIVATE 
QUEUESYNC 
GETMINMAXINFO 
PAINTICON 
ICONERASEBKGND 
NEXTDLGCTL 
SPOOLERSTATUS 
DRAWITEM 
MEASUREITEM 
DELETEITEM 
VKEYTOITEM 
CHARTOITEM 
SETFONT 
GETFONT 
SETHOTKEY 
GETHOTKEY 
QUERYDRAGICON 
COMPAREITEM 
GETOBJECT 
COMPACTING 
COMMNOTIFY 
WINDOWPOSCHANGING 
WINDOWPOSCHANGED 
POWER 
COPYDATA 
CANCELJOURNAL 
NOTIFY 
INPUTLANGCHANGEREQUEST 
INPUTLANGCHANGE 
TCARD 
HELP 
USERCHANGED 
NOTIFYFORMAT 
CONTEXTMENU 
STYLECHANGING 
STYLECHANGED 
DISPLAYCHANGE 
GETICON 
SETICON 
NCCREATE 
NCDESTROY 
NCCALCSIZE 
NCHITTEST 
NCPAINT 
NCACTIVATE 
GETDLGCODE 
SYNCPAINT 
NCMOUSEMOVE 
NCLBUTTONDOWN 
NCLBUTTONUP 
NCLBUTTONDBLCLK 
NCRBUTTONDOWN 
NCRBUTTONUP 
NCRBUTTONDBLCLK 
NCMBUTTONDOWN 
NCMBUTTONUP 
NCMBUTTONDBLCLK 
NCXBUTTONDOWN 
NCXBUTTONUP 
NCXBUTTONDBLCLK 
INPUT_DEVICE_CHANGE 
INPUT 
KEYFIRST 
KEYDOWN 
KEYUP 
CHAR 
DEADCHAR 
SYSKEYDOWN 
SYSKEYUP 
SYSCHAR 
SYSDEADCHAR 
UNICHAR 
KEYLAST 
IME_STARTCOMPOSITION 
IME_ENDCOMPOSITION 
IME_COMPOSITION 
IME_KEYLAST 
INITDIALOG 
COMMAND 
SYSCOMMAND 
TIMER 
HSCROLL 
VSCROLL 
INITMENU 
INITMENUPOPUP 
GESTURE 
GESTURENOTIFY 
MENUSELECT 
MENUCHAR 
ENTERIDLE 
MENURBUTTONUP 
MENUDRAG 
MENUGETOBJECT 
UNINITMENUPOPUP 
MENUCOMMAND 
CHANGEUISTATE 
UPDATEUISTATE 
QUERYUISTATE 
CTLCOLORMSGBOX 
CTLCOLOREDIT 
CTLCOLORLISTBOX 
CTLCOLORBTN 
CTLCOLORDLG 
CTLCOLORSCROLLBAR 
CTLCOLORSTATIC 
MOUSEFIRST 
MOUSEMOVE 
LBUTTONDOWN 
LBUTTONUP 
LBUTTONDBLCLK 
RBUTTONDOWN 
RBUTTONUP 
RBUTTONDBLCLK 
MBUTTONDOWN 
MBUTTONUP 
MBUTTONDBLCLK 
MOUSEWHEEL 
XBUTTONDOWN 
XBUTTONUP 
XBUTTONDBLCLK 
MOUSEHWHEEL 
MOUSELAST 
PARENTNOTIFY 
ENTERMENULOOP 
EXITMENULOOP 
NEXTMENU 
SIZING 
CAPTURECHANGED 
MOVING 
POWERBROADCAST 
DEVICECHANGE 
MDICREATE 
MDIDESTROY 
MDIACTIVATE 
MDIRESTORE 
MDINEXT 
MDIMAXIMIZE 
MDITILE 
MDICASCADE 
MDIICONARRANGE 
MDIGETACTIVE 
MDISETMENU 
ENTERSIZEMOVE 
EXITSIZEMOVE 
DROPFILES 
MDIREFRESHMENU 
POINTERDEVICECHANGE 
POINTERDEVICEINRANGE 
POINTERDEVICEOUTOFRANGE 
TOUCH 
NCPOINTERUPDATE 
NCPOINTERDOWN 
NCPOINTERUP 
POINTERUPDATE 
POINTERDOWN 
POINTERUP 
POINTERENTER 
POINTERLEAVE 
POINTERACTIVATE 
POINTERCAPTURECHANGED 
TOUCHHITTESTING 
POINTERWHEEL 
POINTERHWHEEL 
IME_SETCONTEXT 
IME_NOTIFY 
IME_CONTROL 
IME_COMPOSITIONFULL 
IME_SELECT 
IME_CHAR 
IME_REQUEST 
IME_KEYDOWN 
IME_KEYUP 
MOUSEHOVER 
MOUSELEAVE 
NCMOUSEHOVER 
NCMOUSELEAVE 
WTSSESSION_CHANGE 
TABLET_FIRST 
TABLET_LAST 
DPICHANGED 
CUT 
COPY 
PASTE 
CLEAR 
UNDO 
RENDERFORMAT 
RENDERALLFORMATS 
DESTROYCLIPBOARD 
DRAWCLIPBOARD 
PAINTCLIPBOARD 
VSCROLLCLIPBOARD 
SIZECLIPBOARD 
ASKCBFORMATNAME 
CHANGECBCHAIN 
HSCROLLCLIPBOARD 
QUERYNEWPALETTE 
PALETTEISCHANGING 
PALETTECHANGED 
HOTKEY 
PRINT 
PRINTCLIENT 
APPCOMMAND 
THEMECHANGED 
CLIPBOARDUPDATE 
DWMCOMPOSITIONCHANGED 
DWMNCRENDERINGCHANGED 
DWMCOLORIZATIONCOLORCHANGED 
DWMWINDOWMAXIMIZEDCHANGE 
DWMSENDICONICTHUMBNAIL 
DWMSENDICONICLIVEPREVIEWBITMAP 
GETTITLEBARINFOEX 
HANDHELDFIRST 
HANDHELDLAST 
AFXFIRST 
AFXLAST 
PENWINFIRST 
PENWINLAST 
APP 
USER 

Function Documentation

◆ EnumWindowsProc()

delegate bool WinApi.User32.EnumWindowsProc ( IntPtr  hWnd,
IntPtr  lParam 
)

◆ GetMsgProc()

delegate IntPtr WinApi.User32.GetMsgProc ( int  code,
IntPtr  wParam,
IntPtr  lParam 
)

◆ TimerProc()

delegate void WinApi.User32.TimerProc ( IntPtr  hWnd,
uint  uMsg,
IntPtr  nIdEvent,
uint  dwTickCountMillis 
)

◆ WindowProc()

delegate IntPtr WinApi.User32.WindowProc ( IntPtr  hwnd,
uint  msg,
IntPtr  wParam,
IntPtr  lParam 
)