Implemented basic handling of assessibility actions.

diff --git a/include/winuser.h b/include/winuser.h
index 68434e0..c8b4527 100644
--- a/include/winuser.h
+++ b/include/winuser.h
@@ -62,6 +62,169 @@
 
 typedef HANDLE HDWP;
 
+/* flags for FILTERKEYS dwFlags field */
+#define FKF_AVAILABLE       0x00000002
+#define FKF_CLICKON         0x00000040
+#define FKF_FILTERKEYSON    0x00000001
+#define FKF_HOTKEYACTIVE    0x00000004
+#define FKF_HOTKEYSOUND     0x00000010
+#define FKF_CONFIRMHOTKEY   0x00000008
+#define FKF_INDICATOR       0x00000020
+
+typedef struct tagFILTERKEYS
+{
+    UINT   cbSize;
+    DWORD  dwFlags;
+    DWORD  iWaitMSec;
+    DWORD  iDelayMSec;
+    DWORD  iRepeatMSec;
+    DWORD  iBounceMSec;
+} FILTERKEYS, *PFILTERKEYS, *LPFILTERKEYS;
+
+/* flags for TOGGLEKEYS dwFlags field */
+#define TKF_AVAILABLE       0x00000002
+#define TKF_CONFIRMHOTKEY   0x00000008
+#define TKF_HOTKEYACTIVE    0x00000004
+#define TKF_HOTKEYSOUND     0x00000010
+#define TKF_TOGGLEKEYSON    0x00000001
+
+typedef struct tagTOGGLEKEYS
+{
+    DWORD   cbSize;
+    DWORD   dwFlags;
+} TOGGLEKEYS, *PTOGGLEKEYS, *LPTOGGLEKEYS;
+
+/* flags for MOUSEKEYS dwFlags field */
+#define MKF_AVAILABLE       0x00000002
+#define MKF_CONFIRMHOTKEY   0x00000008
+#define MKF_HOTKEYACTIVE    0x00000004
+#define MKF_HOTKEYSOUND     0x00000010
+#define MKF_INDICATOR       0x00000020
+#define MKF_MOUSEKEYSON     0x00000001
+#define MKF_MODIFIERS       0x00000040
+#define MKF_REPLACENUMBERS  0x00000080
+
+typedef struct tagMOUSEKEYS
+{
+    UINT    cbSize;
+    DWORD   dwFlags;
+    DWORD   iMaxSpeed;
+    DWORD   iTimeToMaxSpeed;
+    DWORD   iCtrlSpeed;
+    DWORD   dwReserved1;
+    DWORD   dwReserved2;
+} MOUSEKEYS, *PMOUSEKEYS, *LPMOUSEKEYS;
+
+/* flags for STICKYKEYS dwFlags field */
+#define SKF_AUDIBLEFEEDBACK 0x00000040
+#define SKF_AVAILABLE       0x00000002
+#define SKF_CONFIRMHOTKEY   0x00000008
+#define SKF_HOTKEYACTIVE    0x00000004
+#define SKF_HOTKEYSOUND     0x00000010
+#define SKF_INDICATOR       0x00000020
+#define SKF_STICKYKEYSON    0x00000001
+#define SKF_TRISTATE        0x00000080
+#define SKF_TWOKEYSOFF      0x00000100
+
+typedef struct tagSTICKYKEYS
+{
+    DWORD   cbSize;
+    DWORD   dwFlags;
+} STICKYKEYS, *PSTICKYKEYS, *LPSTICKYKEYS;
+
+/* flags for ACCESSTIMEOUT dwFlags field */
+#define ATF_ONOFFFEEDBACK   0x00000002
+#define ATF_AVAILABLE       0x00000004
+#define ATF_TIMEOUTON       0x00000001
+
+typedef struct tagACCESSTIMEOUT
+{
+    UINT    cbSize;
+    DWORD   dwFlags;
+    DWORD   iTimeOutMSec;
+} ACCESSTIMEOUT, *PACCESSTIMEOUT, *LPACCESSTIMEOUT;
+
+/* flags for SERIALKEYS dwFlags field */
+#define SERKF_ACTIVE        0x00000008
+#define SERKF_AVAILABLE     0x00000002
+#define SERKF_INDICATOR     0x00000004
+#define SERKF_SERIALKEYSON  0x00000001
+
+typedef struct tagSERIALKEYSA
+{
+    UINT  cbSize;
+    DWORD  dwFlags;
+    LPSTR  lpszActivePort;
+    LPSTR  lpszPort;
+    UINT  iBaudRate;
+    UINT  iPortState;
+    UINT  iActive;
+} SERIALKEYSA, *LPSERIALKEYSA;
+
+typedef struct tagSERIALKEYSW {
+    UINT  cbSize;
+    DWORD   dwFlags;
+    LPWSTR  lpszActivePort;
+    LPWSTR  lpszPort;
+    UINT   iBaudRate;
+    UINT   iPortState;
+    UINT   iActive;
+} SERIALKEYSW,*LPSERIALKEYSW;
+
+DECL_WINELIB_TYPE_AW(SERIALKEYS)
+DECL_WINELIB_TYPE_AW(LPSERIALKEYS)
+
+/* flags for SOUNDSENTRY dwFlags field */
+#define SSF_AVAILABLE       0x00000002
+#define SSF_SOUNDSENTRYON   0x00000001
+
+#define SSTF_BORDER         0x00000002
+#define SSTF_CHARS          0x00000001
+#define SSTF_DISPLAY        0x00000003
+#define SSTF_NONE           0x00000000
+
+#define SSGF_DISPLAY        0x00000003
+#define SSGF_NONE           0x00000000
+
+#define SSWF_DISPLAY        0x00000003
+#define SSWF_NONE           0x00000000
+#define SSWF_TITLE          0x00000001
+#define SSWF_WINDOW         0x00000002
+
+typedef struct tagSOUNDSENTRYA
+{
+    UINT  cbSize;
+    DWORD  dwFlags;
+    DWORD  iFSTextEffect;
+    DWORD  iFSTextEffectMSec;
+    DWORD  iFSTextEffectColorBits;
+    DWORD  iFSGrafEffect;
+    DWORD  iFSGrafEffectMSec;
+    DWORD  iFSGrafEffectColor;
+    DWORD  iWindowsEffect;
+    DWORD  iWindowsEffectMSec;
+    LPSTR  lpszWindowsEffectDLL;
+    DWORD  iWindowsEffectOrdinal;
+} SOUNDSENTRYA, *LPSOUNDSENTRYA;
+
+typedef struct tagSOUNDSENTRYW
+{
+    UINT  cbSize;
+    DWORD  dwFlags;
+    DWORD  iFSTextEffect;
+    DWORD  iFSTextEffectMSec;
+    DWORD  iFSTextEffectColorBits;
+    DWORD  iFSGrafEffect;
+    DWORD  iFSGrafEffectMSec;
+    DWORD  iFSGrafEffectColor;
+    DWORD  iWindowsEffect;
+    DWORD  iWindowsEffectMSec;
+    LPWSTR  lpszWindowsEffectDLL;
+    DWORD  iWindowsEffectOrdinal;
+} SOUNDSENTRYW, *LPSOUNDSENTRYW;
+
+DECL_WINELIB_TYPE_AW(SOUNDSENTRY)
+DECL_WINELIB_TYPE_AW(LPSOUNDSENTRY)
 
 /* flags for HIGHCONTRAST dwFlags field */
 #define HCF_HIGHCONTRASTON  0x00000001
@@ -98,7 +261,6 @@
     HWND  hwnd;
 } EVENTMSG, *PEVENTMSG, *LPEVENTMSG;
 
-
 /* WH_KEYBOARD_LL structure */
 typedef struct tagKBDLLHOOKSTRUCT
 {