/// Retrieves the current granularity value of the desktop sizing grid. The pvParam parameter must point to an integer variable that receives the granularity.
/// Determines whether icon-title wrapping is enabled. The pvParam parameter must point to a bool variable that receives TRUE if enabled, or FALSE otherwise.
/// <summary>Sets the alignment value of pop-up menus. The uiParam parameter specifies TRUE for right alignment, or FALSE for left alignment.</summary>
/// 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.
/// Sets the number of lines to scroll when the mouse wheel is rotated. 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. Windows 95: Not supported.
/// Determines whether window arrangement is enabled. The pvParam parameter must point to a BOOL variable that receives TRUE if enabled, or FALSE otherwise.
/// <para>
/// 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.
/// </para>
/// <para>The following parameters retrieve individual window arrangement settings:</para>
/// <list type="bullet">
/// <item>
/// <term>SPI_GETDOCKMOVING</term>
/// </item>
/// <item>
/// <term>SPI_GETMOUSEDOCKTHRESHOLD</term>
/// </item>
/// <item>
/// <term>SPI_GETMOUSEDRAGOUTTHRESHOLD</term>
/// </item>
/// <item>
/// <term>SPI_GETMOUSESIDEMOVETHRESHOLD</term>
/// </item>
/// <item>
/// <term>SPI_GETPENDOCKTHRESHOLD</term>
/// </item>
/// <item>
/// <term>SPI_GETPENDRAGOUTTHRESHOLD</term>
/// </item>
/// <item>
/// <term>SPI_GETPENSIDEMOVETHRESHOLD</term>
/// </item>
/// <item>
/// <term>SPI_GETSNAPSIZING</term>
/// </item>
/// </list>
/// <para>Windows Server 2008, Windows Vista, Windows Server 2003 and Windows XP/2000: This parameter is not supported.</para>
/// 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. Windows NT, Windows 95: This value is not supported.
/// 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. Windows NT, Windows Me/98/95: This value is not supported.
/// Determines whether ClearType is enabled. The pvParam parameter must point to a BOOL variable that receives TRUE if ClearType is enabled, or FALSE otherwise.
/// <para>ClearType is a software technology that improves the readability of text on liquid crystal display (LCD) monitors.</para>
/// <para><c>Windows Server 2003 and Windows XP/2000:</c> This parameter is not supported.</para>
/// 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.
/// <summary>The width of the default menu check-mark bitmap, in pixels.</summary>
SM_CXMENUCHECK=71,
/// <summary>The width of menu bar buttons, such as the child window close button that is used in the multiple document interface, in pixels.</summary>
SM_CXMENUSIZE=54,
/// <summary>The minimum width of a window, in pixels.</summary>
SM_CXMIN=28,
/// <summary>The width of a minimized window, in pixels.</summary>
/// 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.
/// <summary>The height of a horizontal scroll bar, in pixels.</summary>
SM_CYHSCROLL=3,
/// <summary>The default height of an icon, in pixels. The LoadIcon function can load only icons with the dimensions SM_CXICON and SM_CYICON.</summary>
/// <summary>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.</summary>
SM_CYKANJIWINDOW=18,
/// <summary>The default height, in pixels, of a maximized top-level window on the primary display monitor.</summary>
/// <summary>The height of a single-line menu bar, in pixels.</summary>
SM_CYMENU=15,
/// <summary>The height of the default menu check-mark bitmap, in pixels.</summary>
SM_CYMENUCHECK=72,
/// <summary>The height of menu bar buttons, such as the child window close button that is used in the multiple document interface, in pixels.</summary>
SM_CYMENUSIZE=55,
/// <summary>The minimum height of a window, in pixels.</summary>
SM_CYMIN=29,
/// <summary>The height of a minimized window, in pixels.</summary>
/// 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.
/// <para>Windows Server 2003 and Windows XP: The console session is not necessarily the physical console. For more information, see WTSGetActiveConsoleSessionId.</para>
/// <para>Retrieves the specified system metric or system configuration setting.</para>
/// <para>Note that all dimensions retrieved by <c>GetSystemMetrics</c> are in pixels.</para>
/// </summary>
/// <param name="nIndex">
/// <para>Type: <c>int</c></para>
/// <para>
/// The system metric or configuration setting to be retrieved. This parameter can be one of the following values. Note that all SM_CX* values are widths
/// and all SM_CY* values are heights. Also note that all settings designed to return Boolean data represent <c>TRUE</c> as any nonzero value, and
/// <c>FALSE</c> as a zero value.
/// </para>
/// <para>
/// <list type="table">
/// <listheader>
/// <term>Value</term>
/// <term>Meaning</term>
/// </listheader>
/// <item>
/// <term>SM_ARRANGE56</term>
/// <term>The flags that specify how the system arranged minimized windows. For more information, see the Remarks section in this topic.</term>
/// </item>
/// <item>
/// <term>SM_CLEANBOOT67</term>
/// <term>
/// The value that specifies how the system is started: A fail-safe boot (also called SafeBoot, Safe Mode, or Clean Boot) bypasses the user startup files.
/// </term>
/// </item>
/// <item>
/// <term>SM_CMONITORS80</term>
/// <term>The number of display monitors on a desktop. For more information, see the Remarks section in this topic.</term>
/// </item>
/// <item>
/// <term>SM_CMOUSEBUTTONS43</term>
/// <term>The number of buttons on a mouse, or zero if no mouse is installed.</term>
/// </item>
/// <item>
/// <term>SM_CONVERTIBLESLATEMODE0x2003</term>
/// <term>
/// 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 &quot;ConvertibleSlateMode&quot; in the LPARAM. Note that this system metric doesn&#39;t
/// apply to desktop PCs. In that case, use GetAutoRotationState.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXBORDER5</term>
/// <term>The width of a window border, in pixels. This is equivalent to the SM_CXEDGE value for windows with the 3-D look.</term>
/// </item>
/// <item>
/// <term>SM_CXCURSOR13</term>
/// <term>The width of a cursor, in pixels. The system cannot create cursors of other sizes.</term>
/// </item>
/// <item>
/// <term>SM_CXDLGFRAME7</term>
/// <term>This value is the same as SM_CXFIXEDFRAME.</term>
/// </item>
/// <item>
/// <term>SM_CXDOUBLECLK36</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXDRAG68</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXEDGE45</term>
/// <term>The width of a 3-D border, in pixels. This metric is the 3-D counterpart of SM_CXBORDER.</term>
/// </item>
/// <item>
/// <term>SM_CXFIXEDFRAME7</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXFOCUSBORDER83</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXFRAME32</term>
/// <term>This value is the same as SM_CXSIZEFRAME.</term>
/// </item>
/// <item>
/// <term>SM_CXFULLSCREEN16</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXHSCROLL21</term>
/// <term>The width of the arrow bitmap on a horizontal scroll bar, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CXHTHUMB10</term>
/// <term>The width of the thumb box in a horizontal scroll bar, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CXICON11</term>
/// <term>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.</term>
/// </item>
/// <item>
/// <term>SM_CXICONSPACING38</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXMAXIMIZED61</term>
/// <term>The default width, in pixels, of a maximized top-level window on the primary display monitor.</term>
/// </item>
/// <item>
/// <term>SM_CXMAXTRACK59</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXMENUCHECK71</term>
/// <term>The width of the default menu check-mark bitmap, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CXMENUSIZE54</term>
/// <term>The width of menu bar buttons, such as the child window close button that is used in the multiple document interface, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CXMIN28</term>
/// <term>The minimum width of a window, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CXMINIMIZED57</term>
/// <term>The width of a minimized window, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CXMINSPACING47</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXMINTRACK34</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXPADDEDBORDER92</term>
/// <term>The amount of border padding for captioned windows, in pixels.Windows XP/2000: This value is not supported.</term>
/// </item>
/// <item>
/// <term>SM_CXSCREEN0</term>
/// <term>The width of the screen of the primary display monitor, in pixels. This is the same value obtained by calling GetDeviceCaps as follows: .</term>
/// </item>
/// <item>
/// <term>SM_CXSIZE30</term>
/// <term>The width of a button in a window caption or title bar, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CXSIZEFRAME32</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXSMICON49</term>
/// <term>The recommended width of a small icon, in pixels. Small icons typically appear in window captions and in small icon view.</term>
/// </item>
/// <item>
/// <term>SM_CXSMSIZE52</term>
/// <term>The width of small caption buttons, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CXVIRTUALSCREEN78</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CXVSCROLL2</term>
/// <term>The width of a vertical scroll bar, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYBORDER6</term>
/// <term>The height of a window border, in pixels. This is equivalent to the SM_CYEDGE value for windows with the 3-D look.</term>
/// </item>
/// <item>
/// <term>SM_CYCAPTION4</term>
/// <term>The height of a caption area, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYCURSOR14</term>
/// <term>The height of a cursor, in pixels. The system cannot create cursors of other sizes.</term>
/// </item>
/// <item>
/// <term>SM_CYDLGFRAME8</term>
/// <term>This value is the same as SM_CYFIXEDFRAME.</term>
/// </item>
/// <item>
/// <term>SM_CYDOUBLECLK37</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYDRAG69</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYEDGE46</term>
/// <term>The height of a 3-D border, in pixels. This is the 3-D counterpart of SM_CYBORDER.</term>
/// </item>
/// <item>
/// <term>SM_CYFIXEDFRAME8</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYFOCUSBORDER84</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYFRAME33</term>
/// <term>This value is the same as SM_CYSIZEFRAME.</term>
/// </item>
/// <item>
/// <term>SM_CYFULLSCREEN17</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYHSCROLL3</term>
/// <term>The height of a horizontal scroll bar, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYICON12</term>
/// <term>The default height of an icon, in pixels. The LoadIcon function can load only icons with the dimensions SM_CXICON and SM_CYICON.</term>
/// </item>
/// <item>
/// <term>SM_CYICONSPACING39</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYKANJIWINDOW18</term>
/// <term>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.</term>
/// </item>
/// <item>
/// <term>SM_CYMAXIMIZED62</term>
/// <term>The default height, in pixels, of a maximized top-level window on the primary display monitor.</term>
/// </item>
/// <item>
/// <term>SM_CYMAXTRACK60</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYMENU15</term>
/// <term>The height of a single-line menu bar, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYMENUCHECK72</term>
/// <term>The height of the default menu check-mark bitmap, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYMENUSIZE55</term>
/// <term>The height of menu bar buttons, such as the child window close button that is used in the multiple document interface, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYMIN29</term>
/// <term>The minimum height of a window, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYMINIMIZED58</term>
/// <term>The height of a minimized window, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYMINSPACING48</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYMINTRACK35</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYSCREEN1</term>
/// <term>The height of the screen of the primary display monitor, in pixels. This is the same value obtained by calling GetDeviceCaps as follows: .</term>
/// </item>
/// <item>
/// <term>SM_CYSIZE31</term>
/// <term>The height of a button in a window caption or title bar, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYSIZEFRAME33</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYSMCAPTION51</term>
/// <term>The height of a small caption, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYSMICON50</term>
/// <term>The recommended height of a small icon, in pixels. Small icons typically appear in window captions and in small icon view.</term>
/// </item>
/// <item>
/// <term>SM_CYSMSIZE53</term>
/// <term>The height of small caption buttons, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYVIRTUALSCREEN79</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_CYVSCROLL20</term>
/// <term>The height of the arrow bitmap on a vertical scroll bar, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_CYVTHUMB9</term>
/// <term>The height of the thumb box in a vertical scroll bar, in pixels.</term>
/// </item>
/// <item>
/// <term>SM_DBCSENABLED42</term>
/// <term>Nonzero if User32.dll supports DBCS; otherwise, 0.</term>
/// </item>
/// <item>
/// <term>SM_DEBUG22</term>
/// <term>Nonzero if the debug version of User.exe is installed; otherwise, 0.</term>
/// </item>
/// <item>
/// <term>SM_DIGITIZER94</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_IMMENABLED82</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_MAXIMUMTOUCHES95</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_MEDIACENTER87</term>
/// <term>Nonzero if the current operating system is the Windows XP, Media Center Edition, 0 if not.</term>
/// </item>
/// <item>
/// <term>SM_MENUDROPALIGNMENT40</term>
/// <term>Nonzero if drop-down menus are right-aligned with the corresponding menu-bar item; 0 if the menus are left-aligned.</term>
/// </item>
/// <item>
/// <term>SM_MIDEASTENABLED74</term>
/// <term>Nonzero if the system is enabled for Hebrew and Arabic languages, 0 if not.</term>
/// </item>
/// <item>
/// <term>SM_MOUSEPRESENT19</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_MOUSEHORIZONTALWHEELPRESENT91</term>
/// <term>Nonzero if a mouse with a horizontal scroll wheel is installed; otherwise 0.</term>
/// </item>
/// <item>
/// <term>SM_MOUSEWHEELPRESENT75</term>
/// <term>Nonzero if a mouse with a vertical scroll wheel is installed; otherwise 0.</term>
/// </item>
/// <item>
/// <term>SM_NETWORK63</term>
/// <term>The least significant bit is set if a network is present; otherwise, it is cleared. The other bits are reserved for future use.</term>
/// </item>
/// <item>
/// <term>SM_PENWINDOWS41</term>
/// <term>Nonzero if the Microsoft Windows for Pen computing extensions are installed; zero otherwise.</term>
/// </item>
/// <item>
/// <term>SM_REMOTECONTROL0x2001</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_REMOTESESSION0x1000</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_SAMEDISPLAYFORMAT81</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_SECURE44</term>
/// <term>This system metric should be ignored; it always returns 0.</term>
/// </item>
/// <item>
/// <term>SM_SERVERR289</term>
/// <term>The build number if the system is Windows Server 2003 R2; otherwise, 0.</term>
/// </item>
/// <item>
/// <term>SM_SHOWSOUNDS70</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_SHUTTINGDOWN0x2000</term>
/// <term>Nonzero if the current session is shutting down; otherwise, 0. Windows 2000: This value is not supported.</term>
/// </item>
/// <item>
/// <term>SM_SLOWMACHINE73</term>
/// <term>Nonzero if the computer has a low-end (slow) processor; otherwise, 0.</term>
/// </item>
/// <item>
/// <term>SM_STARTER88</term>
/// <term>Nonzero if the current operating system is Windows 7 Starter Edition, Windows Vista Starter, or Windows XP Starter Edition; otherwise, 0.</term>
/// </item>
/// <item>
/// <term>SM_SWAPBUTTON23</term>
/// <term>Nonzero if the meanings of the left and right mouse buttons are swapped; otherwise, 0.</term>
/// </item>
/// <item>
/// <term>SM_SYSTEMDOCKED0x2004</term>
/// <term>
/// 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 &quot;SystemDockMode&quot; in the LPARAM.
/// </term>
/// </item>
/// <item>
/// <term>SM_TABLETPC86</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_XVIRTUALSCREEN76</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// <item>
/// <term>SM_YVIRTUALSCREEN77</term>
/// <term>
/// 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.
/// </term>
/// </item>
/// </list>
/// </para>
/// </param>
/// <returns>
/// <para>Type:</para>
/// <para>If the function succeeds, the return value is the requested system metric or configuration setting.</para>
/// <para>If the function fails, the return value is 0. <c>GetLastError</c> does not provide extended error information.</para>
/// <summary>Indicates that the system cannot be shut down and sets a reason string to be displayed to the user if system shutdown is initiated.</summary>
/// The reason the application must block system shutdown. This string will be truncated for display purposes after MAX_STR_BLOCKREASON characters.
/// </param>
/// <returns>
/// If the call succeeds, the return value is nonzero. If the call fails, the return value is zero. To get extended error information, call GetLastError.
/// If the call succeeds, the return value is nonzero. If the call fails, the return value is zero. To get extended error information, call GetLastError.
/// <summary>Retrieves the reason string set by the <see cref="ShutdownBlockReasonCreate"/> function.</summary>
/// <param name="hWnd">A handle to the main window of the application.</param>
/// <param name="pwszBuff">
/// A pointer to a buffer that receives the reason string. If this parameter is NULL, the function retrieves the number of characters in the reason string.
/// </param>
/// <param name="pcchBuff">
/// A pointer to a variable that specifies the size of the pwszBuff buffer, in characters. If the function succeeds, this variable receives the number of
/// characters copied into the buffer, including the null-terminating character. If the buffer is too small, the variable receives the required buffer
/// size, in characters, not including the null-terminating character.
/// </param>
/// <returns>
/// If the call succeeds, the return value is nonzero. If the call fails, the return value is zero. To get extended error information, call GetLastError.
/// If the call succeeds, the return value is nonzero. If the call fails, the return value is zero. To get extended error information, call GetLastError.
/// <summary>Retrieves or sets the value of one of the system-wide parameters. This function can also update the user profile while setting a parameter.</summary>
/// <param name="uiAction">
/// <para>Type: <c>UINT</c></para>
/// <para>The system-wide parameter to be retrieved or set. The possible values are organized in the following tables of related parameters:</para>
/// </param>
/// <param name="uiParam">
/// <para>Type: <c>UINT</c></para>
/// <para>
/// A parameter whose usage and format depends on the system parameter being queried or set. For more information about system-wide parameters, see the
/// uiAction parameter. If not otherwise indicated, you must specify zero for this parameter.
/// </para>
/// </param>
/// <param name="pvParam">
/// <para>Type: <c>PVOID</c></para>
/// <para>
/// A parameter whose usage and format depends on the system parameter being queried or set. For more information about system-wide parameters, see the
/// uiAction parameter. If not otherwise indicated, you must specify <c>NULL</c> for this parameter. For information on the <c>PVOID</c> datatype, see
/// <c>Windows Data Types</c>.
/// </para>
/// </param>
/// <param name="fWinIni">
/// <para>Type: <c>UINT</c></para>
/// <para>
/// If a system parameter is being set, specifies whether the user profile is to be updated, and if so, whether the <c>WM_SETTINGCHANGE</c> message is to
/// be broadcast to all top-level windows to notify them of the change.
/// </para>
/// <para>
/// This parameter can be zero if you do not want to update the user profile or broadcast the <c>WM_SETTINGCHANGE</c> message, or it can be one or more
/// of the following values.
/// </para>
/// <para>
/// <list type="table">
/// <listheader>
/// <term>Value</term>
/// <term>Meaning</term>
/// </listheader>
/// <item>
/// <term>SPIF_UPDATEINIFILE</term>
/// <term>Writes the new system-wide parameter setting to the user profile.</term>
/// </item>
/// <item>
/// <term>SPIF_SENDCHANGE</term>
/// <term>Broadcasts the WM_SETTINGCHANGE message after updating the user profile.</term>
/// </item>
/// <item>
/// <term>SPIF_SENDWININICHANGE</term>
/// <term>Same as SPIF_SENDCHANGE.</term>
/// </item>
/// </list>
/// </para>
/// </param>
/// <returns>
/// <para>Type:</para>
/// <para>If the function succeeds, the return value is a nonzero value.</para>
/// <para>If the function fails, the return value is zero. To get extended error information, call <c>GetLastError</c>.</para>
/// <summary>Retrieves or sets the value of one of the system-wide parameters. This function can also update the user profile while setting a parameter.</summary>
/// <param name="uiAction">
/// <para>Type: <c>UINT</c></para>
/// <para>The system-wide parameter to be retrieved or set. The possible values are organized in the following tables of related parameters:</para>
/// </param>
/// <param name="uiParam">
/// <para>Type: <c>UINT</c></para>
/// <para>
/// A parameter whose usage and format depends on the system parameter being queried or set. For more information about system-wide parameters, see the
/// uiAction parameter. If not otherwise indicated, you must specify zero for this parameter.
/// </para>
/// </param>
/// <param name="pvParam">
/// <para>Type: <c>PVOID</c></para>
/// <para>
/// A parameter whose usage and format depends on the system parameter being queried or set. For more information about system-wide parameters, see the
/// uiAction parameter. If not otherwise indicated, you must specify <c>NULL</c> for this parameter. For information on the <c>PVOID</c> datatype, see
/// <c>Windows Data Types</c>.
/// </para>
/// </param>
/// <param name="fWinIni">
/// <para>Type: <c>UINT</c></para>
/// <para>
/// If a system parameter is being set, specifies whether the user profile is to be updated, and if so, whether the <c>WM_SETTINGCHANGE</c> message is to
/// be broadcast to all top-level windows to notify them of the change.
/// </para>
/// <para>
/// This parameter can be zero if you do not want to update the user profile or broadcast the <c>WM_SETTINGCHANGE</c> message, or it can be one or more
/// of the following values.
/// </para>
/// <para>
/// <list type="table">
/// <listheader>
/// <term>Value</term>
/// <term>Meaning</term>
/// </listheader>
/// <item>
/// <term>SPIF_UPDATEINIFILE</term>
/// <term>Writes the new system-wide parameter setting to the user profile.</term>
/// </item>
/// <item>
/// <term>SPIF_SENDCHANGE</term>
/// <term>Broadcasts the WM_SETTINGCHANGE message after updating the user profile.</term>
/// </item>
/// <item>
/// <term>SPIF_SENDWININICHANGE</term>
/// <term>Same as SPIF_SENDCHANGE.</term>
/// </item>
/// </list>
/// </para>
/// </param>
/// <returns>
/// <para>Type:</para>
/// <para>If the function succeeds, the return value is a nonzero value.</para>
/// <para>If the function fails, the return value is zero. To get extended error information, call <c>GetLastError</c>.</para>
/// <summary>Retrieves or sets the value of one of the system-wide parameters. This function can also update the user profile while setting a parameter.</summary>
/// <param name="uiAction">
/// <para>Type: <c>UINT</c></para>
/// <para>The system-wide parameter to be retrieved or set. The possible values are organized in the following tables of related parameters:</para>
/// </param>
/// <param name="uiParam">
/// <para>Type: <c>UINT</c></para>
/// <para>
/// A parameter whose usage and format depends on the system parameter being queried or set. For more information about system-wide parameters, see the
/// uiAction parameter. If not otherwise indicated, you must specify zero for this parameter.
/// </para>
/// </param>
/// <param name="pvParam">
/// <para>Type: <c>PVOID</c></para>
/// <para>
/// A parameter whose usage and format depends on the system parameter being queried or set. For more information about system-wide parameters, see the
/// uiAction parameter. If not otherwise indicated, you must specify <c>NULL</c> for this parameter. For information on the <c>PVOID</c> datatype, see
/// <c>Windows Data Types</c>.
/// </para>
/// </param>
/// <param name="fWinIni">
/// <para>Type: <c>UINT</c></para>
/// <para>
/// If a system parameter is being set, specifies whether the user profile is to be updated, and if so, whether the <c>WM_SETTINGCHANGE</c> message is to
/// be broadcast to all top-level windows to notify them of the change.
/// </para>
/// <para>
/// This parameter can be zero if you do not want to update the user profile or broadcast the <c>WM_SETTINGCHANGE</c> message, or it can be one or more
/// of the following values.
/// </para>
/// <para>
/// <list type="table">
/// <listheader>
/// <term>Value</term>
/// <term>Meaning</term>
/// </listheader>
/// <item>
/// <term>SPIF_UPDATEINIFILE</term>
/// <term>Writes the new system-wide parameter setting to the user profile.</term>
/// </item>
/// <item>
/// <term>SPIF_SENDCHANGE</term>
/// <term>Broadcasts the WM_SETTINGCHANGE message after updating the user profile.</term>
/// </item>
/// <item>
/// <term>SPIF_SENDWININICHANGE</term>
/// <term>Same as SPIF_SENDCHANGE.</term>
/// </item>
/// </list>
/// </para>
/// </param>
/// <returns>
/// <para>Type:</para>
/// <para>If the function succeeds, the return value is a nonzero value.</para>
/// <para>If the function fails, the return value is zero. To get extended error information, call <c>GetLastError</c>.</para>
/// Contains information about the time-out period associated with the Microsoft Win32 accessibility features.
/// <para>The accessibility time-out period is the length of time that must pass without keyboard and mouse input before the operating system automatically turns off accessibility features.The accessibility time-out is designed for computers that are shared by several users so that options selected by one user do not inconvenience a subsequent user.</para>
/// <para>The accessibility features affected by the time-out are the FilterKeys features(SlowKeys, BounceKeys, and RepeatKeys), MouseKeys, ToggleKeys, and StickyKeys.The accessibility time-out also affects the high contrast mode setting.</para></summary>
/// <summary>Specifies the size, in bytes, of this structure.</summary>
publicuintcbSize;
/// <summary>A set of bit flags that specify properties of the time-out behavior for accessibility features.</summary>
publicATFdwFlags;
/// <summary>Specifies the time-out period, in milliseconds.</summary>
publicuintiTimeOutMSec;
}
/// <summary>
/// A set of bit flags that specify properties of the time-out behavior for accessibility features.
/// </summary>
[PInvokeData("Winuser.h")]
[Flags]
publicenumATF
{
/// <summary>If this flag is set, a time-out period has been set for accessibility features. If this flag is not set, the features will not time out even though a time-out period is specified.</summary>
ATF_TIMEOUTON=0x00000001,
/// <summary>If this flag is set, the operating system plays a descending siren sound when the time-out period elapses and the accessibility features are turned off.</summary>
ATF_ONOFFFEEDBACK=0x00000002
}
/// <summary>
/// Describes the animation effects associated with user actions. This structure is used with the <c>SystemParametersInfo</c> function when the
/// SPI_GETANIMATION or SPI_SETANIMATION action value is specified.
/// <summary>The size of the structure, in bytes. The caller must set this member to .</summary>
publicuintcbSize;
/// <summary>If this member is <c>TRUE</c>, audio descriptions are enabled; Otherwise, this member is <c>FALSE</c>.</summary>
[MarshalAs(UnmanagedType.Bool)]
publicboolEnabled;
/// <summary>The locale identifier (LCID) of the language for the audio description. For more information, see Locales and Languages.</summary>
publicuintLocale;
}
/// <summary>
/// Contains information about the FilterKeys accessibility feature, which enables a user with disabilities to set the keyboard repeat rate (RepeatKeys), acceptance delay (SlowKeys), and bounce rate (BounceKeys).
/// <summary>Specifies the structure size, in bytes.</summary>
publicuintcbSize;
/// <summary>A set of bit flags that specify properties of the FilterKeys feature.</summary>
publicFKFdwFlags;
/// <summary>Specifies the length of time, in milliseconds, that the user must hold down a key before it is accepted by the computer.</summary>
publicuintiWaitMSec;
/// <summary>Specifies the length of time, in milliseconds, that the user must hold down a key before it begins to repeat.</summary>
publicuintiDelayMSec;
/// <summary>Specifies the length of time, in milliseconds, between each repetition of the keystroke.</summary>
publicuintiRepeatMSec;
/// <summary>Specifies the length of time, in milliseconds, that must elapse after releasing a key before the computer will accept a subsequent press of the same key.</summary>
publicuintiBounceMSec;
}
/// <summary>A set of bit flags that specify properties of the FilterKeys feature.</summary>
[PInvokeData("Winuser.h")]
[Flags]
publicenumFKF
{
/// <summary>The FilterKeys features are available.</summary>
FKF_AVAILABLE=0x00000002,
/// <summary>The computer makes a click sound when a key is pressed or accepted. If SlowKeys is on, a click is generated when the key is pressed and again when the keystroke is accepted.</summary>
FKF_CLICKON=0x00000040,
/// <summary>Windows 95/98, Windows 2000: A confirmation dialog box appears when the FilterKeys features are activated by using the hot key.</summary>
FKF_CONFIRMHOTKEY=0x00000008,
/// <summary>The FilterKeys features are on.</summary>
FKF_FILTERKEYSON=0x00000001,
/// <summary>The user can turn the FilterKeys feature on and off by holding down the RIGHT SHIFT key for eight seconds.</summary>
FKF_HOTKEYACTIVE=0x00000004,
/// <summary>If this flag is set, the computer plays a siren sound when the user turns the FilterKeys feature on or off by using the hot key.</summary>
FKF_HOTKEYSOUND=0x00000010,
/// <summary>Windows 95, Windows 2000: A visual indicator is displayed when the FilterKeys features are on.</summary>
FKF_INDICATOR=0x00000020,
}
/// <summary>
/// Contains information about the high contrast accessibility feature. This feature sets the appearance scheme of the user interface for maximum visibility for a visually-impaired user, and advises applications to comply with this appearance scheme.
/// <summary>Specifies the size, in bytes, of this structure.</summary>
publicuintcbSize;
/// <summary>A set of bit flags that specify properties of the HighContrast feature.</summary>
publicHFCdwFlags;
/// <summary>Points to a string that contains the name of the color scheme that will be set to the default scheme.</summary>
publicstringlpszDefaultScheme;
}
/// <summary>A set of bit flags that specify properties of the HighContrast feature.</summary>
[PInvokeData("Winuser.h")]
[Flags]
publicenumHFC
{
/// <summary>The high contrast feature is available.</summary>
HCF_AVAILABLE=0x00000002,
/// <summary>A confirmation dialog appears when the high contrast feature is activated by using the hot key.</summary>
HCF_CONFIRMHOTKEY=0x00000008,
/// <summary>The high contrast feature is on.</summary>
HCF_HIGHCONTRASTON=0x00000001,
/// <summary>The user can turn the high contrast feature on and off by simultaneously pressing the left ALT, left SHIFT, and PRINT SCREEN keys.</summary>
HCF_HOTKEYACTIVE=0x00000004,
/// <summary>The hot key associated with the high contrast feature can be enabled. An application can retrieve this value, but cannot set it.</summary>
HCF_HOTKEYAVAILABLE=0x00000040,
/// <summary>A siren is played when the user turns the high contrast feature on or off by using the hot key.</summary>
HCF_HOTKEYSOUND=0x00000010,
/// <summary>A visual indicator is displayed when the high contrast feature is on. This value is not currently used and is ignored.</summary>
HCF_INDICATOR=0x00000020,
/// <summary>Undocumented</summary>
HCF_LOGONDESKTOP=0x00000100,
/// <summary>Undocumented</summary>
HCF_DEFAULTDESKTOP=0x00000200
}
/// <summary>
/// Contains the scalable metrics associated with icons. This structure is used with the SystemParametersInfo function when the SPI_GETICONMETRICS or SPI_SETICONMETRICS action is specified.
/// <summary>The size of the structure, in bytes. The caller must set this to .</summary>
publicuintcbSize;
/// <summary>The width of minimized windows, in pixels.</summary>
publicintiWidth;
/// <summary>The horizontal space between arranged minimized windows, in pixels.</summary>
publicintiHorzGap;
/// <summary>The vertical space between arranged minimized windows, in pixels.</summary>
publicintiVertGap;
/// <summary>
/// <para>The starting position and direction used when arranging minimized windows. The starting position must be one of the following values.</para>
/// <para>
/// <list type="table">
/// <listheader>
/// <term>Value</term>
/// <term>Meaning</term>
/// </listheader>
/// <item>
/// <term>ARW_BOTTOMLEFT0x0000L</term>
/// <term>Start at the lower-left corner of the work area.</term>
/// </item>
/// <item>
/// <term>ARW_BOTTOMRIGHT0x0001L</term>
/// <term>Start at the lower-right corner of the work area.</term>
/// </item>
/// <item>
/// <term>ARW_TOPLEFT0x0002L</term>
/// <term>Start at the upper-left corner of the work area.</term>
/// </item>
/// <item>
/// <term>ARW_TOPRIGHT0x0003L</term>
/// <term>Start at the upper-right corner of the work area.</term>
/// </item>
/// </list>
/// </para>
/// <para>The direction must be one of the following values.</para>
/// <para>
/// <list type="table">
/// <listheader>
/// <term>Value</term>
/// <term>Meaning</term>
/// </listheader>
/// <item>
/// <term>ARW_LEFT0x0000L</term>
/// <term>Arrange left (valid with ARW_BOTTOMRIGHT and ARW_TOPRIGHT only).</term>
/// </item>
/// <item>
/// <term>ARW_RIGHT0x0000L</term>
/// <term>Arrange right (valid with ARW_BOTTOMLEFT and ARW_TOPLEFT only).</term>
/// </item>
/// <item>
/// <term>ARW_UP0x0004L</term>
/// <term>Arrange up (valid with ARW_BOTTOMLEFT and ARW_BOTTOMRIGHT only).</term>
/// </item>
/// <item>
/// <term>ARW_DOWN0x0004L</term>
/// <term>Arrange down (valid with ARW_TOPLEFT and ARW_TOPRIGHT only).</term>
/// </item>
/// <item>
/// <term>ARW_HIDE0x0008L</term>
/// <term>Hide minimized windows by moving them off the visible area of the screen.</term>
/// </item>
/// </list>
/// </para>
/// </summary>
publicARWiArrange;
}
/// <summary>The starting position and direction used when arranging minimized windows.</summary>
[PInvokeData("Winuser.h")]
[Flags]
publicenumARW:uint
{
/// <summary>Start at the lower-left corner of the work area.</summary>
ARW_BOTTOMLEFT=0x0000,
/// <summary>Start at the lower-right corner of the work area.</summary>
ARW_BOTTOMRIGHT=0x0001,
/// <summary>Start at the upper-left corner of the work area.</summary>
ARW_TOPLEFT=0x0002,
/// <summary>Start at the upper-right corner of the work area.</summary>
ARW_TOPRIGHT=0x0003,
/// <summary>Arrange left (valid with ARW_BOTTOMRIGHT and ARW_TOPRIGHT only).</summary>
ARW_LEFT=0x0000,
/// <summary>Arrange right (valid with ARW_BOTTOMLEFT and ARW_TOPLEFT only).</summary>
ARW_RIGHT=0x0000,
/// <summary>Arrange up (valid with ARW_BOTTOMLEFT and ARW_BOTTOMRIGHT only).</summary>
ARW_UP=0x0004,
/// <summary>Arrange down (valid with ARW_TOPLEFT and ARW_TOPRIGHT only).</summary>
ARW_DOWN=0x0004,
/// <summary>Hide minimized windows by moving them off the visible area of the screen.</summary>
ARW_HIDE=0x0008,
}
/// <summary>
/// Contains information about the MouseKeys accessibility feature. When the MouseKeys feature is active, the user can use the numeric keypad to control the mouse pointer, and to click, double-click, drag, and drop. By pressing NUMLOCK, the user can toggle the numeric keypad between mouse control mode and normal operation.
/// <summary>Specifies the size, in bytes, of this structure.</summary>
publicuintcbSize;
/// <summary>A set of bit-flags that specify properties of the MouseKeys feature.</summary>
publicMKFdwFlags;
/// <summary>Specifies the maximum speed the mouse cursor attains when an arrow key is held down.</summary>
publicuintiMaxSpeed;
/// <summary>Specifies the length of time, in milliseconds, that it takes for the mouse cursor to reach maximum speed when an arrow key is held down. Valid values are from 1000 to 5000.</summary>
publicuintiTimeToMaxSpeed;
/// <summary>Specifies the multiplier to apply to the mouse cursor speed when the user holds down the CTRL key while using the arrow keys to move the cursor. this value is ignored if MKF_MODIFIERS is not set.</summary>
publicuintiCtrlSpeed;
/// <summary>This member is reserved for future use. It must be set to zero.</summary>
publicuintdwReserved1;
/// <summary>This member is reserved for future use. It must be set to zero.</summary>
publicuintdwReserved2;
}
/// <summary>A set of bit-flags that specify properties of the MouseKeys feature.</summary>
[PInvokeData("Winuser.h")]
[Flags]
publicenumMKF:uint
{
/// <summary>If this flag is set, the MouseKeys feature is available.</summary>
MKF_AVAILABLE=0x00000002,
/// <summary>Windows 95/98, Windows 2000: A confirmation dialog box appears when the MouseKeys feature is activated by using the hot key.</summary>
MKF_CONFIRMHOTKEY=0x00000008,
/// <summary>If this flag is set, the user can turn the MouseKeys feature on and off by using the hot key, which is LEFT ALT+LEFT SHIFT+NUM LOCK.</summary>
MKF_HOTKEYACTIVE=0x00000004,
/// <summary>If this flag is set, the system plays a siren sound when the user turns the MouseKeys feature on or off by using the hot key.</summary>
MKF_HOTKEYSOUND=0x00000010,
/// <summary>Windows 95/98, Windows 2000: A visual indicator is displayed when the MouseKeys feature is on.</summary>
MKF_INDICATOR=0x00000020,
/// <summary>Windows 95/98, Windows 2000: The left button is in the "down" state.</summary>
MKF_LEFTBUTTONDOWN=0x01000000,
/// <summary>Windows 95/98, Windows 2000: The user has selected the left button for mouse-button actions.</summary>
MKF_LEFTBUTTONSEL=0x10000000,
/// <summary>Windows 95/98, Windows 2000: The CTRL key increases cursor speed by the value specified by the iCtrlSpeed member, and the SHIFT key causes the cursor to delay briefly after moving a single pixel, allowing fine positioning of the cursor. If this value is not specified, the CTRLand SHIFT keys are ignored while the user moves the mouse cursor using the arrow keys.</summary>
MKF_MODIFIERS=0x00000040,
/// <summary>If this flag is set, the MouseKeys feature is on.</summary>
MKF_MOUSEKEYSON=0x00000001,
/// <summary>Windows 95/98, Windows 2000: The system is processing numeric keypad input as mouse commands.</summary>
MKF_MOUSEMODE=0x80000000,
/// <summary>Windows 95/98, Windows 2000: The numeric keypad moves the mouse when the NUM LOCK key is on. If this flag is not specified, the numeric keypad moves the mouse cursor when the NUM LOCK key is off.</summary>
MKF_REPLACENUMBERS=0x00000080,
/// <summary>Windows 95/98, Windows 2000: The right button is in the "down" state.</summary>
MKF_RIGHTBUTTONDOWN=0x02000000,
/// <summary>Windows 95/98, Windows 2000: The user has selected the right button for mouse-button actions.</summary>
/// The size of the structure, in bytes. The caller must set this to sizeof(NONCLIENTMETRICS). For information about application compatibility, see Remarks.
/// Contains information about the SerialKeys accessibility feature, which interprets data from a communication aid attached to a serial port as commands causing the system to simulate keyboard and mouse input.
/// <summary>A set of bit-flags that specify properties of the SerialKeys feature.</summary>
publicSERKFdwFlags;
/// <summary>Points to a string that contains the name of the serial port that receives input from the communication aid when the SerialKeys feature is on. If no port is being used, this member is NULL. If this member is "Auto", the system watches all unused serial ports for input from communication aids.</summary>
publicstringlpszActivePort;
/// <summary>Reserved; must be NULL.</summary>
publicIntPtrlpszPort;
/// <summary>Specifies the baud rate setting for the serial port specified by the lpszActivePort member. This member should be set to one of the CBR_ values defined in the winbase.h header file. If lpszActivePort is NULL, this member is zero.</summary>
publicuintiBaudRate;
/// <summary>Specifies the state of the port specified by the lpszActivePort member. If lpszActivePort is NULL, iPortState is zero; otherwise, it is one of the following values:
/// <item><term>0</term><description>All input on this port is ignored by the SerialKeys feature.</description></item>
/// <item><term>1</term><description>Input on this port is watched for SerialKeys activation sequences when no other application has the port open.</description></item>
/// <item><term>2</term><description>All input on this port is treated as SerialKeys commands.</description></item>
/// Contains information about the SoundSentry accessibility feature. When the SoundSentry feature is on, the computer displays a visual indication only when a sound is generated.
/// <summary>A set of bit flags that specify properties of the SoundSentry feature.</summary>
publicSSFdwFlags;
/// <summary>Specifies the visual signal to present when a text-mode application generates a sound while running in a full-screen virtual machine.</summary>
publicSSTFiFSTextEffect;
/// <summary>Specifies the duration, in milliseconds, of the visual signal that is displayed when a full-screen, text-mode application generates a sound.</summary>
publicuintiFSTextEffectMSec;
/// <summary>Specifies the RGB value of the color to be used when displaying the visual signal shown when a full-screen, text-mode application generates a sound.</summary>
publicCOLORREFiFSTextEffectColorBits;
/// <summary>Specifies the visual signal to present when a graphics-mode application generates a sound while running in a full-screen virtual machine. </summary>
publicSSGFiFSGrafEffect;
/// <summary>Specifies the duration, in milliseconds, of the visual signal that is displayed when a full-screen, graphics-mode application generates a sound.</summary>
publicuintiFSGrafEffectMSec;
/// <summary>Specifies the RGB value of the color to be used when displaying the visual signal shown when a full-screen, graphics-mode application generates a sound.</summary>
publicCOLORREFiFSGrafEffectColor;
/// <summary>Specifies the visual signal to display when a sound is generated by a Windows-based application or an MS-DOS application running in a window.</summary>
publicSSWFiWindowsEffect;
/// <summary>Specifies the duration, in milliseconds, of the visual signal that is displayed when a Win32-based application (or an application running in a window) generates a sound.</summary>
publicuintiWindowsEffectMSec;
/// <summary>This member is reserved for future use. It should be set to NULL.</summary>
publicIntPtrlpszWindowsEffectDLL;
/// <summary>This member is reserved for future use. It must be set to zero.</summary>
/// Contains information about the StickyKeys accessibility feature. When the StickyKeys feature is on, the user can press a modifier key (SHIFT, CTRL, or ALT) and then another key in sequence rather than at the same time, to enter shifted (modified) characters and other key combinations. Pressing a modifier key once latches the key down until the user presses a non-modifier key or clicks a mouse button. Pressing a modifier key twice locks the key until the user presses the key a third time.
/// <summary>If this flag is set, the system plays a sound when the user latches, locks, or releases modifier keys using the StickyKeys feature.</summary>
SKF_AUDIBLEFEEDBACK=0x00000040,
/// <summary>If this flag is set, the StickyKeys feature is available.</summary>
SKF_AVAILABLE=0x00000002,
/// <summary>Windows 95/98, Windows 2000: A confirmation dialog appears when the StickyKeys feature is activated by using the hot key.</summary>
SKF_CONFIRMHOTKEY=0x00000008,
/// <summary>If this flag is set, the user can turn the StickyKeys feature on and off by pressing the SHIFT key five times.</summary>
SKF_HOTKEYACTIVE=0x00000004,
/// <summary>If this flag is set, the system plays a siren sound when the user turns the StickyKeys feature on or off by using the hot key.</summary>
SKF_HOTKEYSOUND=0x00000010,
/// <summary>Windows 95/98, Windows 2000: A visual indicator should be displayed when the StickyKeys feature is on.</summary>
SKF_INDICATOR=0x00000020,
/// <summary>If this flag is set, the StickyKeys feature is on.</summary>
SKF_STICKYKEYSON=0x00000001,
/// <summary>If this flag is set, pressing a modifier key twice in a row locks down the key until the user presses it a third time.</summary>
SKF_TRISTATE=0x00000080,
/// <summary>If this flag is set, releasing a modifier key that has been pressed in combination with any other key turns off the StickyKeys feature.</summary>
SKF_TWOKEYSOFF=0x00000100,
/// <summary>Windows 98, Windows 2000: The left ALT key is latched.</summary>
SKF_LALTLATCHED=0x10000000,
/// <summary>Windows 98, Windows 2000: The left CTRL key is latched.</summary>
SKF_LCTLLATCHED=0x04000000,
/// <summary>Windows 98, Windows 2000: The left SHIFT key is latched.</summary>
SKF_LSHIFTLATCHED=0x01000000,
/// <summary>Windows 98, Windows 2000: The right ALT key is latched.</summary>
SKF_RALTLATCHED=0x20000000,
/// <summary>Windows 98, Windows 2000: The right CTRL key is latched.</summary>
SKF_RCTLLATCHED=0x08000000,
/// <summary>Windows 98, Windows 2000: The right SHIFT key is latched.</summary>
SKF_RSHIFTLATCHED=0x02000000,
/// <summary>Windows 98, Windows 2000: The left ALT key is locked.</summary>
SKF_LALTLOCKED=0x00100000,
/// <summary>Windows 98, Windows 2000: The left CTRL key is locked.</summary>
SKF_LCTLLOCKED=0x00040000,
/// <summary>Windows 98, Windows 2000: The left SHIFT key is locked.</summary>
SKF_LSHIFTLOCKED=0x00010000,
/// <summary>Windows 98, Windows 2000: The right ALT key is locked.</summary>
SKF_RALTLOCKED=0x00200000,
/// <summary>Windows 98, Windows 2000: The right CTRL key is locked.</summary>
SKF_RCTLLOCKED=0x00080000,
/// <summary>Windows 98, Windows 2000: The right SHIFT key is locked.</summary>
SKF_RSHIFTLOCKED=0x00020000,
/// <summary>Windows 98, Windows 2000: The left Windows key is latched.</summary>
SKF_LWINLATCHED=0x40000000,
/// <summary>Windows 98, Windows 2000: The right Windows key is latched.</summary>
SKF_RWINLATCHED=0x80000000,
/// <summary>Windows 98, Windows 2000: The left Windows key is locked.</summary>
SKF_LWINLOCKED=0x00400000,
/// <summary>Windows 98, Windows 2000: The right Windows key is locked.</summary>
/// Contains information about the ToggleKeys accessibility feature. When the ToggleKeys feature is on, the computer emits a high-pitched tone whenever the user turns on the CAPS LOCK, NUM LOCK, or SCROLL LOCK key, and a low-pitched tone whenever the user turns off one of those keys.
/// <summary>If this flag is set, the ToggleKeys feature is available.</summary>
TKF_AVAILABLE=0x00000002,
/// <summary>Windows 95/98, Windows 2000: A confirmation dialog box appears when the ToggleKeys feature is activated by using the hot key.</summary>
TKF_CONFIRMHOTKEY=0x00000008,
/// <summary>If this flag is set, the user can turn the ToggleKeys feature on and off by holding down the NUM LOCK key for eight seconds.</summary>
TKF_HOTKEYACTIVE=0x00000004,
/// <summary>If this flag is set, the system plays a siren sound when the user turns the ToggleKeys feature on or off by using the hot key.</summary>
TKF_HOTKEYSOUND=0x00000010,
/// <summary>This flag is not implemented.</summary>
TKF_INDICATOR=0x00000020,
/// <summary>If this flag is set, the ToggleKeys feature is on.</summary>
TKF_TOGGLEKEYSON=0x00000001,
}
/// <summary>Contains hardware input details that can be used to predict touch targets and help compensate for hardware latency when processing touch and gesture input that contains distance and velocity data.</summary>