- Make TIME_ZONE_ID_XXX constants available from kernel mode.
[reactos.git] / reactos / include / defines.h
index 78c4c3a..7036925 100644 (file)
@@ -13,7 +13,7 @@
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.
-   
+
    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
    If you are interested in a warranty or support for this source code,
    contact Scott Christley <scottc@net-community.com> for more information.
-   
+
    You should have received a copy of the GNU Library General Public
    License along with this library; see the file COPYING.LIB.
-   If not, write to the Free Software Foundation, 
+   If not, write to the Free Software Foundation,
    59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 */
 /* WARNING:  This file is automatically generated. */
 #ifndef _GNU_H_WINDOWS32_DEFINES
 #define _GNU_H_WINDOWS32_DEFINES
 
+#ifndef RC_INVOKED
+#include <ntos/ntdef.h>
+#include <ntos/registry.h>
+#endif
+
 #define WINBASEAPI
 
-#define EXCEPTION_MAXIMUM_PARAMETERS   (15)
-#define ANYSIZE_ARRAY  (1)
+
 
 #ifndef WIN32_NO_STATUS
+/*
 #define STATUS_WAIT_0                  (0x00000000L)
 #define STATUS_ABANDONED_WAIT_0        (0x00000080L)
 #define STATUS_USER_APC                (0x000000C0L)
 #define STATUS_TIMEOUT                 (0x00000102L)
 #define STATUS_PENDING                 (0x00000103L)
+*/
 #endif /* WIN32_NO_STATUS */
 
-#define SEC_COMMIT     (134217728)
-#define SEC_IMAGE      (16777216)
-#define SEC_NOCACHE    (268435456)
-#define SEC_RESERVE    (67108864)
-#define PAGE_READONLY  (2)
-#define PAGE_READWRITE (4)
-#define PAGE_WRITECOPY (8)
-#define PAGE_EXECUTE   (16)
-#define PAGE_EXECUTE_READ      (32)
-#define PAGE_EXECUTE_READWRITE (64)
-#define PAGE_EXECUTE_WRITECOPY (128)
-#define PAGE_GUARD     (256)
-#define PAGE_NOACCESS  (1)
-#define PAGE_NOCACHE   (512)
-#define MEM_COMMIT     (4096)
-#define MEM_FREE       (65536)
-#define MEM_RESERVE    (8192)
-#define MEM_IMAGE      (16777216)
-#define MEM_MAPPED     (262144)
-#define MEM_PRIVATE    (131072)
-#define MEM_DECOMMIT   (16384)
-#define MEM_RELEASE    (32768)
-#define MEM_TOP_DOWN   (1048576)
-#define EXCEPTION_GUARD_PAGE   (0x80000001L)
-#define SECTION_EXTEND_SIZE    (0x10)
-#define SECTION_MAP_READ       (0x4)
-#define SECTION_MAP_WRITE      (0x2)
-#define SECTION_QUERY  (0x1)
-#define SECTION_ALL_ACCESS     (0xf001fL)
-
-
-/* DuplicateHandle, MapViewOfFile */
-#define DUPLICATE_CLOSE_SOURCE (1)
-#define DUPLICATE_SAME_ACCESS  (2)
-#define FILE_MAP_ALL_ACCESS    (0xf001fL)
-#define FILE_MAP_READ  (4)
-#define FILE_MAP_WRITE (2)
-#define FILE_MAP_COPY  (1)
-#define MUTEX_ALL_ACCESS       (0x1f0001L)
-#define MUTEX_MODIFY_STATE     (1)
-#define SYNCHRONIZE    (0x100000L)
-#define SEMAPHORE_ALL_ACCESS   (0x1f0003L)
-#define SEMAPHORE_MODIFY_STATE (2)
-#define EVENT_ALL_ACCESS       (0x1f0003L)
-#define EVENT_MODIFY_STATE     (2)
-#define KEY_ALL_ACCESS (0xf003fL)
-#define KEY_CREATE_LINK        (32)
-#define KEY_CREATE_SUB_KEY     (4)
-#define KEY_ENUMERATE_SUB_KEYS (8)
-#define KEY_EXECUTE    (0x20019L)
-#define KEY_NOTIFY     (16)
-#define KEY_QUERY_VALUE        (1)
-#define KEY_READ       (0x20019L)
-#define KEY_SET_VALUE  (2)
-#define KEY_WRITE      (0x20006L)
-#define PROCESS_ALL_ACCESS     (0x1f0fffL)
-#define PROCESS_CREATE_PROCESS (128)
-#define PROCESS_CREATE_THREAD  (2)
-#define PROCESS_DUP_HANDLE     (64)
-#define PROCESS_QUERY_INFORMATION      (1024)
-#define PROCESS_SET_INFORMATION        (512)
-#define PROCESS_TERMINATE      (1)
-#define PROCESS_VM_OPERATION   (8)
-#define PROCESS_VM_READ        (16)
-#define PROCESS_VM_WRITE       (32)
-#define THREAD_ALL_ACCESS      (0x1f03ffL)
-#define THREAD_DIRECT_IMPERSONATION    (512)
-#define THREAD_GET_CONTEXT     (8)
-#define THREAD_IMPERSONATE     (256)
-#define THREAD_QUERY_INFORMATION       (64)
-#define THREAD_SET_CONTEXT     (16)
-#define THREAD_SET_INFORMATION (32)
-#define THREAD_SET_THREAD_TOKEN        (128)
-#define THREAD_SUSPEND_RESUME  (2)
-#define THREAD_TERMINATE       (1)
-
-#define PACKED __attribute__((packed))
-
-#define THREAD_PRIORITY_ABOVE_NORMAL   (1)
-#define THREAD_PRIORITY_BELOW_NORMAL   (-1)
-#define THREAD_PRIORITY_HIGHEST        (2)
-#define THREAD_PRIORITY_IDLE   (-15)
-#define THREAD_PRIORITY_LOWEST (-2)
-#define THREAD_PRIORITY_NORMAL (0)
-#define THREAD_PRIORITY_TIME_CRITICAL  (15)
-#define THREAD_PRIORITY_ERROR_RETURN   (2147483647)
+#define GA_PARENT               (1)
+#define GA_ROOT                 (2)
+#define GA_ROOTOWNER            (3)
 
 /* CreateFile, GetFileAttributes, SetFileAttributes */
-#define GENERIC_READ   (0x80000000L)
-#define GENERIC_WRITE  (0x40000000L)
-#define FILE_READ_DATA            ( 0x0001 )    /* file & pipe */
-#define FILE_LIST_DIRECTORY       ( 0x0001 )    /* directory */
-
-#define FILE_WRITE_DATA           ( 0x0002 )    /* file & pipe */
-#define FILE_ADD_FILE             ( 0x0002 )    /* directory */
-
-#define FILE_APPEND_DATA          ( 0x0004 )    /* file */
-#define FILE_ADD_SUBDIRECTORY     ( 0x0004 )    /* directory */
-#define FILE_CREATE_PIPE_INSTANCE ( 0x0004 )    /* named pipe */
-
-#define FILE_READ_EA              ( 0x0008 )    /* file & directory */
-#define FILE_READ_PROPERTIES      FILE_READ_EA
-
-#define FILE_WRITE_EA             ( 0x0010 )    /* file & directory */
-#define FILE_WRITE_PROPERTIES     FILE_WRITE_EA
-
-#define FILE_EXECUTE              ( 0x0020 )    /* file */
-#define FILE_TRAVERSE             ( 0x0020 )    /* directory */
-
-#define FILE_DELETE_CHILD         ( 0x0040 )    /* directory */
-
-#define FILE_READ_ATTRIBUTES      ( 0x0080 )    /* all */
-
-#define FILE_WRITE_ATTRIBUTES     ( 0x0100 )    /* all */
-
-#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)
-
-#define FILE_GENERIC_READ         (STANDARD_RIGHTS_READ     |\
-                                   FILE_READ_DATA           |\
-                                   FILE_READ_ATTRIBUTES     |\
-                                   FILE_READ_EA             |\
-                                   SYNCHRONIZE)
-
-
-#define FILE_GENERIC_WRITE        (STANDARD_RIGHTS_WRITE    |\
-                                   FILE_WRITE_DATA          |\
-                                   FILE_WRITE_ATTRIBUTES    |\
-                                   FILE_WRITE_EA            |\
-                                   FILE_APPEND_DATA         |\
-                                   SYNCHRONIZE)
-
-
-#define FILE_GENERIC_EXECUTE      (STANDARD_RIGHTS_EXECUTE  |\
-                                   FILE_READ_ATTRIBUTES     |\
-                                   FILE_EXECUTE             |\
-                                   SYNCHRONIZE)
-
-#define FILE_SHARE_DELETE      (4)
-#define FILE_SHARE_READ        (1)
-#define FILE_SHARE_WRITE       (2)
-#define CONSOLE_TEXTMODE_BUFFER        (1)
-#define CREATE_NEW     (1)
-#define CREATE_ALWAYS  (2)
-#define OPEN_EXISTING  (3)
-#define OPEN_ALWAYS    (4)
-#define TRUNCATE_EXISTING      (5)
-#define FILE_ATTRIBUTE_ARCHIVE (32)
-#define FILE_ATTRIBUTE_COMPRESSED      (2048)
-#define FILE_ATTRIBUTE_DEVICE   (64)
-#define FILE_ATTRIBUTE_NORMAL  (128)
-#define FILE_ATTRIBUTE_DIRECTORY       (16)
-#define FILE_ATTRIBUTE_ENCRYPTED (16384)
-#define FILE_ATTRIBUTE_HIDDEN  (2)
-#define FILE_ATTRIBUTE_NOT_CONTENT_INDEXED (8192)
-#define FILE_ATTRIBUTE_OFFLINE  (4096)
-#define FILE_ATTRIBUTE_READONLY        (1)
-#define FILE_ATTRIBUTE_REPARSE_POINT (1024)
-#define FILE_ATTRIBUTE_SPARSE_FILE (512)
-#define FILE_ATTRIBUTE_SYSTEM  (4)
-#define FILE_ATTRIBUTE_TEMPORARY       (256)
-#define FILE_ATTRIBUTE_VALID_FLAGS     0x00007fb7
-#define FILE_ATTRIBUTE_VALID_SET_FLAGS 0x000031a7
-#define FILE_FLAG_WRITE_THROUGH        (2147483648)
-#define FILE_FLAG_OVERLAPPED   (1073741824)
-#define FILE_FLAG_NO_BUFFERING (536870912)
-#define FILE_FLAG_RANDOM_ACCESS        (268435456)
-#define FILE_FLAG_SEQUENTIAL_SCAN      (134217728)
-#define FILE_FLAG_DELETE_ON_CLOSE      (67108864)
-#define FILE_FLAG_BACKUP_SEMANTICS     (33554432)
-#define FILE_FLAG_POSIX_SEMANTICS      (16777216)
+
 #define SECURITY_ANONYMOUS     (0)
 #define SECURITY_IDENTIFICATION        (65536)
 #define SECURITY_IMPERSONATION (131072)
 #define SECURITY_EFFECTIVE_ONLY        (524288)
 #define SECURITY_SQOS_PRESENT  (1048576)
 
-/* Standard rights */
-#define STANDARD_RIGHTS_REQUIRED       (0xf0000L)
-#define STANDARD_RIGHTS_WRITE  (0x20000L)
-#define STANDARD_RIGHTS_READ   (0x20000L)
-#define STANDARD_RIGHTS_EXECUTE        (0x20000L)
-#define STANDARD_RIGHTS_ALL    (0x1f0000L)
-#define SPECIFIC_RIGHTS_ALL    (0xffffL)
 
-/* ACCESS_MASK */
-#define MAXIMUM_ALLOWED        (0x2000000L)
-#define GENERIC_ALL    (0x10000000L)
-#define GENERIC_EXECUTE        (0x20000000L)
 
 
 #ifndef WIN32_LEAN_AND_MEAN
@@ -248,12 +79,8 @@ extern "C" {
 #define LF_FACESIZE    (32)
 #define LF_FULLFACESIZE        (64)
 #define ELF_VENDOR_SIZE        (4)
-#define SECURITY_STATIC_TRACKING       (0)
-#define SECURITY_DYNAMIC_TRACKING      (1)
 #define MAX_DEFAULTCHAR        (2)
 #define MAX_LEADBYTES  (12)
-#define CCHDEVICENAME  (32)
-#define CCHFORMNAME    (32)
 #define MENU_TEXT_LEN  (40)
 #define MAX_LANA       (254)
 #define NCBNAMSZ       (16)
@@ -316,6 +143,11 @@ extern "C" {
 #define KLF_REPLACELANG        (16)
 #define KLF_SUBSTITUTE_OK      (2)
 
+/* AddFontResourceEx */
+#define FR_PRIVATE     (0x10)
+#define FR_NOT_ENUM    (0x20)
+
+
 /* AppendMenu */
 #define MF_BITMAP      (0x4L)
 #define MF_DISABLED    (0x2L)
@@ -331,6 +163,8 @@ extern "C" {
 #define MF_STRING      (0L)
 #define MF_SYSMENU     (0x2000L)
 #define MF_USECHECKBITMAPS     (0x200L)
+#define MF_RIGHTJUSTIFY MF_HELP
+
 
 /* Ternary Raster Operations - BitBlt */
 #define BLACKNESS      0x00000042
@@ -419,19 +253,30 @@ extern "C" {
 #define DISP_CHANGE_FAILED     (-1)
 #define DISP_CHANGE_BADMODE    (-2)
 #define DISP_CHANGE_NOTUPDATED (-3)
+#define DISP_CHANGE_BADPARAM   (-5)
+
+/* ChangeMenu */
+#define MF_INSERT 0
+#define MF_CHANGE 128
+#define MF_APPEND 256
+#define MF_DELETE 512
+#define MF_REMOVE 4096
 
 /* ChangeServiceConfig */
 #define SERVICE_NO_CHANGE      (-1)
+#define SERVICE_KERNEL_DRIVER          (1)
+#define SERVICE_FILE_SYSTEM_DRIVER     (2)
+#define SERVICE_RECOGNIZER_DRIVER      (8)
 #define SERVICE_WIN32_OWN_PROCESS      (16)
 #define SERVICE_WIN32_SHARE_PROCESS    (32)
-#define SERVICE_KERNEL_DRIVER  (1)
-#define SERVICE_FILE_SYSTEM_DRIVER     (2)
 #define SERVICE_INTERACTIVE_PROCESS    (256)
 #define SERVICE_BOOT_START     (0)
 #define SERVICE_SYSTEM_START   (1)
 #define SERVICE_AUTO_START     (2)
 #define SERVICE_DEMAND_START   (3)
 #define SERVICE_DISABLED       (4)
+#define SERVICE_CONFIG_DESCRIPTION (1)
+#define SERVICE_CONFIG_FAILURE_ACTIONS (2)
 
 /* SERVICE_STATUS structure */
 #define SERVICE_STOPPED        (1)
@@ -444,6 +289,11 @@ extern "C" {
 #define SERVICE_ACCEPT_STOP    (1)
 #define SERVICE_ACCEPT_PAUSE_CONTINUE  (2)
 #define SERVICE_ACCEPT_SHUTDOWN        (4)
+#define SERVICE_ACCEPT_PARAMCHANGE (8)
+#define SERVICE_ACCEPT_NETBINDCHANGE (16)
+#define SERVICE_ACCEPT_HARDWAREPROFILECHANGE (32)
+#define SERVICE_ACCEPT_POWEREVENT (64)
+#define SERVICE_ACCEPT_SESSIONCHANGE (128)
 
 /* CheckDlgButton */
 #define BST_CHECKED    (1)
@@ -492,6 +342,8 @@ extern "C" {
 #define COMPLEXREGION  (3)
 #define ERROR  (0)
 
+#define HW_PROFILE_GUIDLEN         39
+#define MAX_PROFILE_LEN            80
 /* CommonDlgExtendedError */
 #define CDERR_DIALOGFAILURE    (0xffff)
 #define CDERR_FINDRESFAILURE   (6)
@@ -557,6 +409,15 @@ extern "C" {
 #define SERVICE_CONTROL_CONTINUE       (3)
 #define SERVICE_CONTROL_INTERROGATE    (4)
 #define SERVICE_CONTROL_SHUTDOWN       (5)
+#define SERVICE_CONTROL_PARAMCHANGE (6)
+#define SERVICE_CONTROL_NETBINDADD (7)
+#define SERVICE_CONTROL_NETBINDREMOVE (8)
+#define SERVICE_CONTROL_NETBINDENABLE (9)
+#define SERVICE_CONTROL_NETBINDDISABLE (10)
+#define SERVICE_CONTROL_DEVICEEVENT (11)
+#define SERVICE_CONTROL_HARDWAREPROFILECHANGE (12)
+#define SERVICE_CONTROL_POWEREVENT (13)
+#define SERVICE_CONTROL_SESSIONCHANGE (14)
 
 /* CopyImage, LoadImage */
 #define IMAGE_BITMAP   (0)
@@ -568,6 +429,7 @@ extern "C" {
 #define LR_MONOCHROME  (1)
 #define LR_CREATEDIBSECTION    (8192)
 #define LR_DEFAULTSIZE (64)
+#define LR_SHARED      (32768)
 
 /* CreateDesktop */
 #define DF_ALLOWOTHERACCOUNTHOOK       (0x1L)
@@ -606,10 +468,12 @@ extern "C" {
 #define SYMBOL_CHARSET (2)
 #define SHIFTJIS_CHARSET       (128)
 #define HANGEUL_CHARSET        (129)
+#define JOHAB_CHARSET  (130)
 #define GB2312_CHARSET (134)
 #define CHINESEBIG5_CHARSET    (136)
 #define GREEK_CHARSET  (161)
 #define TURKISH_CHARSET        (162)
+#define VIETNAMESE_CHARSET     (163)
 #define HEBREW_CHARSET (177)
 #define ARABIC_CHARSET (178)
 #define BALTIC_CHARSET (186)
@@ -670,15 +534,13 @@ extern "C" {
 #define PIPE_ACCESS_DUPLEX     (3)
 #define PIPE_ACCESS_INBOUND    (1)
 #define PIPE_ACCESS_OUTBOUND   (2)
-#define WRITE_DAC      (0x40000L)
-#define WRITE_OWNER    (0x80000L)
-#define ACCESS_SYSTEM_SECURITY (0x1000000L)
 #define PIPE_TYPE_BYTE (0)
 #define PIPE_TYPE_MESSAGE      (4)
 #define PIPE_READMODE_BYTE     (0)
 #define PIPE_READMODE_MESSAGE  (2)
 #define PIPE_WAIT      (0)
 #define PIPE_NOWAIT    (1)
+#define PIPE_UNLIMITED_INSTANCES (255)
 
 /* CreatePen, ExtCreatePen */
 #define PS_GEOMETRIC   (65536)
@@ -706,23 +568,8 @@ extern "C" {
 #define ALTERNATE      (1)
 #define WINDING        (2)
 
-/* CreateProcess */
-#define CREATE_DEFAULT_ERROR_MODE      (67108864)
-#define CREATE_NEW_CONSOLE     (16)
-#define CREATE_NEW_PROCESS_GROUP       (512)
-#define CREATE_SEPARATE_WOW_VDM        (2048)
-#define CREATE_SUSPENDED       (4)
-#define CREATE_UNICODE_ENVIRONMENT     (1024)
-#define DEBUG_PROCESS  (1)
-#define DEBUG_ONLY_THIS_PROCESS        (2)
-#define DETACHED_PROCESS       (8)
-#define HIGH_PRIORITY_CLASS    (128)
-#define IDLE_PRIORITY_CLASS    (64)
-#define NORMAL_PRIORITY_CLASS  (32)
-#define REALTIME_PRIORITY_CLASS        (256)
 
 /* CreateService */
-#define SERVICE_ALL_ACCESS     (0xf01ffL)
 #define SERVICE_CHANGE_CONFIG  (2)
 #define SERVICE_ENUMERATE_DEPENDENTS   (8)
 #define SERVICE_INTERROGATE    (128)
@@ -732,8 +579,6 @@ extern "C" {
 #define SERVICE_START  (16)
 #define SERVICE_STOP   (32)
 #define SERVICE_USER_DEFINED_CONTROL   (256)
-#define DELETE (0x10000L)
-#define READ_CONTROL   (0x20000L)
 #define SERVICE_WIN32_OWN_PROCESS      (16)
 #define SERVICE_WIN32_SHARE_PROCESS    (32)
 #define SERVICE_KERNEL_DRIVER  (1)
@@ -748,6 +593,17 @@ extern "C" {
 #define SERVICE_ERROR_NORMAL   (1)
 #define SERVICE_ERROR_SEVERE   (2)
 #define SERVICE_ERROR_CRITICAL (3)
+#define SERVICE_RUNS_IN_SYSTEM_PROCESS (1)
+#define SERVICE_ALL_ACCESS             (STANDARD_RIGHTS_REQUIRED     | \
+                                        SERVICE_QUERY_CONFIG         | \
+                                        SERVICE_CHANGE_CONFIG        | \
+                                        SERVICE_QUERY_STATUS         | \
+                                        SERVICE_ENUMERATE_DEPENDENTS | \
+                                        SERVICE_START                | \
+                                        SERVICE_STOP                 | \
+                                        SERVICE_PAUSE_CONTINUE       | \
+                                        SERVICE_INTERROGATE          | \
+                                        SERVICE_USER_DEFINED_CONTROL)
 
 /* CreateTapePartition, WriteTapemark */
 #define TAPE_FIXED_PARTITIONS  (0L)
@@ -758,8 +614,12 @@ extern "C" {
 #define TAPE_SETMARKS  (0L)
 #define TAPE_SHORT_FILEMARKS   (0x2L)
 
+/* Mouse Wheel */
+#define WHEEL_DELTA (120)
+#define GET_WHEEL_DELTA_WPARAM(wParam)  ((short)HIWORD(wParam))
+
 /* CreateWindow */
-#define CW_USEDEFAULT  (0x80000000)
+#define CW_USEDEFAULT  (0x80000000L)
 #define WS_BORDER      (0x800000L)
 #define WS_CAPTION     (0xc00000L)
 #define WS_CHILD       (0x40000000L)
@@ -813,6 +673,7 @@ extern "C" {
 #define BS_TOP (0x400L)
 #define BS_USERBUTTON  (0x8L)
 #define BS_VCENTER     (0xc00L)
+#define BS_FLAT (0x8000L)
 #define CBS_AUTOHSCROLL        (0x40L)
 #define CBS_DISABLENOSCROLL    (0x800L)
 #define CBS_DROPDOWN   (0x2L)
@@ -871,6 +732,8 @@ extern "C" {
 #define SS_BLACKRECT   (0x4L)
 #define SS_CENTER      (0x1L)
 #define SS_CENTERIMAGE (0x200L)
+#define SS_ELLIPSISMASK        (0xC000L)
+#define SS_ENDELLIPSIS (0x4000L)
 #define SS_ENHMETAFILE (0xfL)
 #define SS_ETCHEDFRAME (0x12L)
 #define SS_ETCHEDHORZ  (0x10L)
@@ -883,14 +746,17 @@ extern "C" {
 #define SS_NOPREFIX    (0x80L)
 #define SS_NOTIFY      (0x100L)
 #define SS_OWNERDRAW   (0xdL)
+#define SS_PATHELLIPSIS        (0x8000L)
 #define SS_REALSIZEIMAGE       (0x800L)
 #define SS_RIGHT       (0x2L)
 #define SS_RIGHTJUST   (0x400L)
 #define SS_SIMPLE      (0xbL)
 #define SS_SUNKEN      (0x1000L)
+#define SS_TYPEMASK    (0x1FL)
 #define SS_USERITEM     (0xaL)
 #define SS_WHITEFRAME  (0x9L)
 #define SS_WHITERECT   (0x6L)
+#define SS_WORDELLIPSIS (0xC000L)
 #define DS_3DLOOK      (0x4L)
 #define DS_ABSALIGN    (0x1L)
 #define DS_CENTER      (0x800L)
@@ -961,13 +827,18 @@ extern "C" {
 #define WH_JOURNALPLAYBACK     (1)
 #define WH_JOURNALRECORD       (0)
 #define WH_KEYBOARD    (2)
+#define WH_KEYBOARD_LL (13)
 #define WH_MOUSE       (7)
+#define WH_MOUSE_LL    (14)
 #define WH_MSGFILTER   (-1)
 #define WH_SHELL       (10)
 #define WH_SYSMSGFILTER        (6)
 #define WH_MSGFILTER   (-1)
 #define WH_FOREGROUNDIDLE      (11)
 
+#define WH_MINHOOK (-1)
+#define WH_MAXHOOK (14)
+
 /* DefineDosDevice */
 #define DDD_RAW_TARGET_PATH    (1)
 #define DDD_REMOVE_DEFINITION  (2)
@@ -1033,10 +904,21 @@ extern "C" {
 #define IDANI_CLOSE    (2)
 
 /* DrawCaption */
-#define DC_ACTIVE      (1)
-#define DC_SMALLCAP    (2)
+#define DC_ACTIVE      1
+#define DC_SMALLCAP    2
+#define DC_ICON        4
+#define DC_TEXT        8
+#define DC_INBUTTON    16
+#define DC_GRADIENT 32
+#define DC_BUTTONS 0x1000
+#define DC_CAPTION     (DC_ICON|DC_TEXT|DC_BUTTONS|DC_GRADIENT)
+#define DC_NC  (DC_CAPTION|DC_FRAME)
 
 /* DrawEdge */
+#define BDR_OUTER       (3)
+#define BDR_INNER       (12)
+#define BDR_RAISED      (5)
+#define BDR_SUNKEN      (10)
 #define BDR_RAISEDINNER        (4)
 #define BDR_SUNKENINNER        (8)
 #define BDR_RAISEDOUTER        (1)
@@ -1067,6 +949,7 @@ extern "C" {
 
 /* DrawFrameControl */
 #define DFC_BUTTON     (4)
+#define DFC_POPUPMENU (5)
 #define DFC_CAPTION    (1)
 #define DFC_MENU       (2)
 #define DFC_SCROLL     (3)
@@ -1097,6 +980,11 @@ extern "C" {
 #define DFCS_MONO      (32768)
 #define DFCS_PUSHED    (512)
 
+/* DrawIcon */
+#define ICON_SMALL     (0)
+#define ICON_BIG       (1)
+#define ICON_SMALL2    (2)
+
 /* DrawIconEx */
 #define DI_COMPAT      (4)
 #define DI_DEFAULTSIZE (8)
@@ -1114,6 +1002,7 @@ extern "C" {
 #define DSS_UNION      (16)
 #define DSS_DISABLED   (32)
 #define DSS_MONO       (128)
+#define DSS_RIGHT   (0x8000)    /* Undocumented */
 
 /* DrawStatusText */
 #define SBT_NOBORDERS  (256)
@@ -1141,6 +1030,7 @@ extern "C" {
 #define DT_TOP (0)
 #define DT_VCENTER     (4)
 #define DT_WORDBREAK   (16)
+#define DT_WORD_ELLIPSIS       (262144)
 #define DT_INTERNAL    (4096)
 
 
@@ -1190,6 +1080,8 @@ extern "C" {
 /* EnumDependentServices */
 #define SERVICE_ACTIVE (1)
 #define SERVICE_INACTIVE       (2)
+#define SERVICE_STATE_ALL              (SERVICE_ACTIVE   | \
+                                        SERVICE_INACTIVE)
 
 /* EnumFontFamExProc */
 #define DEVICE_FONTTYPE        (2)
@@ -1197,39 +1089,89 @@ extern "C" {
 #define TRUETYPE_FONTTYPE      (4)
 
 /* EnumObjects, GetCurrentObject, GetObjectType */
-#define OBJ_BRUSH      (2)
 #define OBJ_PEN        (1)
+#define OBJ_BRUSH      (2)
+#define OBJ_DC (3)
+#define OBJ_METADC     (4)
 #define OBJ_PAL        (5)
 #define OBJ_FONT       (6)
 #define OBJ_BITMAP     (7)
-#define OBJ_EXTPEN     (11)
 #define OBJ_REGION     (8)
-#define OBJ_DC (3)
-#define OBJ_MEMDC      (10)
 #define OBJ_METAFILE   (9)
-#define OBJ_METADC     (4)
-#define OBJ_ENHMETAFILE        (13)
+#define OBJ_MEMDC      (10)
+#define OBJ_EXTPEN     (11)
 #define OBJ_ENHMETADC  (12)
+#define OBJ_ENHMETAFILE        (13)
+#define OBJ_COLORSPACE (14)
 
 /* EnumPrinters */
 
 /* EnumProtocols */
 
 /* EnumResLangProc */
-#define RT_ACCELERATOR (MAKEINTRESOURCE(9))
-#define RT_BITMAP      (MAKEINTRESOURCE(2))
-#define RT_DIALOG      (MAKEINTRESOURCE(5))
-#define RT_FONT        (MAKEINTRESOURCE(8))
-#define RT_FONTDIR     (MAKEINTRESOURCE(7))
-#define RT_MENU        (MAKEINTRESOURCE(4))
-#define RT_RCDATA      (MAKEINTRESOURCE(10))
-#define RT_STRING      (MAKEINTRESOURCE(6))
-#define RT_MESSAGETABLE        (MAKEINTRESOURCE(11))
-#define RT_CURSOR      (MAKEINTRESOURCE(1))
-#define RT_GROUP_CURSOR        (MAKEINTRESOURCE(12))
-#define RT_ICON        (MAKEINTRESOURCE(3))
-#define RT_GROUP_ICON  (MAKEINTRESOURCE(13))
-#define RT_VERSION     (MAKEINTRESOURCE(16))
+#define RT_ACCELERATORA        (MAKEINTRESOURCEA(9))
+#define RT_BITMAPA     (MAKEINTRESOURCEA(2))
+#define RT_DIALOGA     (MAKEINTRESOURCEA(5))
+#define RT_FONTA       (MAKEINTRESOURCEA(8))
+#define RT_FONTDIRA    (MAKEINTRESOURCEA(7))
+#define RT_MENUA       (MAKEINTRESOURCEA(4))
+#define RT_RCDATAA     (MAKEINTRESOURCEA(10))
+#define RT_STRINGA     (MAKEINTRESOURCEA(6))
+#define RT_MESSAGETABLEA       (MAKEINTRESOURCEA(11))
+#define RT_CURSORA     (MAKEINTRESOURCEA(1))
+#define RT_GROUP_CURSORA       (MAKEINTRESOURCEA(12))
+#define RT_ICONA       (MAKEINTRESOURCEA(3))
+#define RT_GROUP_ICONA (MAKEINTRESOURCEA(14))
+#define RT_VERSIONA    (MAKEINTRESOURCEA(16))
+
+#define RT_ACCELERATORW        (MAKEINTRESOURCEW(9))
+#define RT_BITMAPW     (MAKEINTRESOURCEW(2))
+#define RT_DIALOGW     (MAKEINTRESOURCEW(5))
+#define RT_FONTW       (MAKEINTRESOURCEW(8))
+#define RT_FONTDIRW    (MAKEINTRESOURCEW(7))
+#define RT_MENUW       (MAKEINTRESOURCEW(4))
+#define RT_RCDATAW     (MAKEINTRESOURCEW(10))
+#define RT_STRINGW     (MAKEINTRESOURCEW(6))
+#define RT_MESSAGETABLEW       (MAKEINTRESOURCEW(11))
+#define RT_CURSORW     (MAKEINTRESOURCEW(1))
+#define RT_GROUP_CURSORW       (MAKEINTRESOURCEW(12))
+#define RT_ICONW       (MAKEINTRESOURCEW(3))
+#define RT_GROUP_ICONW (MAKEINTRESOURCEW(14))
+#define RT_VERSIONW    (MAKEINTRESOURCEW(16))
+
+#ifndef _DISABLE_TIDENT
+#ifdef UNICODE
+#define RT_ACCELERATOR RT_ACCELERATORW
+#define RT_BITMAP      RT_BITMAPW
+#define RT_DIALOG      RT_DIALOGW
+#define RT_FONT        RT_FONTW
+#define RT_FONTDIR     RT_FONTDIRW
+#define RT_MENU        RT_MENUW
+#define RT_RCDATA      RT_RCDATAW
+#define RT_STRING      RT_STRINGW
+#define RT_MESSAGETABLE        RT_MESSAGETABLEW
+#define RT_CURSOR      RT_CURSORW
+#define RT_GROUP_CURSOR        RT_GROUP_CURSORW
+#define RT_ICON        RT_ICONW
+#define RT_GROUP_ICON  RT_GROUP_ICONW
+#define RT_VERSION     RT_VERSIONW
+#else /* UNICODE */
+#define RT_ACCELERATOR RT_ACCELERATORA
+#define RT_BITMAP      RT_BITMAPA
+#define RT_DIALOG      RT_DIALOGA
+#define RT_FONT        RT_FONTA
+#define RT_FONTDIR     RT_FONTDIRA
+#define RT_MENU        RT_MENUA
+#define RT_RCDATA      RT_RCDATAA
+#define RT_STRING      RT_STRINGA
+#define RT_MESSAGETABLE        RT_MESSAGETABLEA
+#define RT_CURSOR      RT_CURSORA
+#define RT_GROUP_CURSOR        RT_GROUP_CURSORA
+#define RT_ICON        RT_ICONA
+#define RT_GROUP_ICON  RT_GROUP_ICONA
+#define RT_VERSION     RT_VERSIONA
+#endif /* UNICODE */
+#endif /* _DISABLE_TIDENT */
 
 /* EnumServicesStatus */
 #define SERVICE_WIN32  (48)
@@ -1319,6 +1261,9 @@ extern "C" {
 
 /* FindNextPrinterNotification */
 
+/* FlsAlloc */
+#define FLS_OUT_OF_INDEXES (0xFFFFFFFF)
+
 /* FMExtensionProc */
 
 /* FoldString */
@@ -1366,6 +1311,7 @@ extern "C" {
 #define SCS_PIF_BINARY (3)
 #define SCS_POSIX_BINARY       (4)
 #define SCS_WOW_BINARY (2)
+#define SCS_64BIT_BINARY       (6)
 
 /* GetBoundsRect, SetBoundsRect */
 #define DCB_DISABLE    (8)
@@ -1460,19 +1406,18 @@ extern "C" {
 /* GetComputerName */
 #define MAX_COMPUTERNAME_LENGTH        (15)
 
-/* GetConsoleMode */
-#define ENABLE_LINE_INPUT      (2)
-#define ENABLE_ECHO_INPUT      (4)
-#define ENABLE_PROCESSED_INPUT (1)
-#define ENABLE_WINDOW_INPUT    (8)
-#define ENABLE_MOUSE_INPUT     (16)
-#define ENABLE_PROCESSED_OUTPUT        (1)
-#define ENABLE_WRAP_AT_EOL_OUTPUT      (2)
+/* GetCursorInfo */
+#define CURSOR_SHOWING     0x00000001
+
 
 /* GetCPInfo */
 #define CP_ACP (0)
 #define CP_MACCP       (2)
 #define CP_OEMCP       (1)
+#define CP_THREAD_ACP                  3                       /* ACP Current thread's ANSI code page */
+#define CP_SYMBOL                              42                      /* Symbol code page (42) */
+#define CP_UTF7                                        65000           /* Translate using UTF-7 */
+#define CP_UTF8                                        65001           /* Translate using UTF-8 */
 
 /* GetDateFormat */
 #define DATE_SHORTDATE (1)
@@ -1490,6 +1435,10 @@ extern "C" {
 #define DCX_EXCLUDERGN (0x40L)
 #define DCX_INTERSECTRGN       (0x80L)
 #define DCX_VALIDATE   (0x200000L)
+#define DCX_USESTYLE         (0x00010000L)
+#define DCX_NORECOMPUTE      (0x00100000L)
+#define DCX_EXCLUDEUPDATE    (0x00000100L)
+#define DCX_INTERSECTUPDATE  (0x00000200L)
 
 /* GetDeviceCaps */
 #define DRIVERVERSION  (0)
@@ -1620,9 +1569,10 @@ extern "C" {
 #define EXCEPTION_INVALID_HANDLE       (0xc0000008L)
 #define EXCEPTION_PRIV_INSTRUCTION     (0xc0000096L)
 #define EXCEPTION_NONCONTINUABLE_EXCEPTION     (0xc0000025L)
-#define EXCEPTION_NONCONTINUABLE       (0x1)
 #define EXCEPTION_STACK_OVERFLOW       (0xc00000fdL)
 #define EXCEPTION_INVALID_DISPOSITION  (0xc0000026L)
+#define EXCEPTION_CONTINUABLE          (0x0)
+#define EXCEPTION_NONCONTINUABLE       (0x1)
 
 /* GetFileType */
 #define FILE_TYPE_UNKNOWN      (0)
@@ -1643,32 +1593,45 @@ extern "C" {
 #define GM_COMPATIBLE  (1)
 #define GM_ADVANCED    (2)
 
+/* GetGuiResources */
+#define GR_GDIOBJECTS    (0)
+#define GR_USEROBJECTS  (1)
+
+/* GetGUIThreadInfo */
+#define GUI_CARETBLINKING   (1)
+#define GUI_INMOVESIZE   (2)
+#define GUI_INMENUMODE   (4)
+#define GUI_SYSTEMMENUMODE   (8)
+#define GUI_POPUPMENUMODE   (16)
+#define GUI_16BITTASK   (32)
+
 /* GetHandleInformation */
 #define HANDLE_FLAG_INHERIT    (1)
 #define HANDLE_FLAG_PROTECT_FROM_CLOSE (2)
 
 /* GetIconInfo */
-#define IDC_ARROW      (MAKEINTRESOURCE(32512))
-#define IDC_IBEAM      (MAKEINTRESOURCE(32513))
-#define IDC_WAIT       (MAKEINTRESOURCE(32514))
-#define IDC_CROSS      (MAKEINTRESOURCE(32515))
-#define IDC_UPARROW    (MAKEINTRESOURCE(32516))
-#define IDC_SIZENWSE   (MAKEINTRESOURCE(32642))
-#define IDC_SIZENESW   (MAKEINTRESOURCE(32643))
-#define IDC_SIZEWE     (MAKEINTRESOURCE(32644))
-#define IDC_SIZENS     (MAKEINTRESOURCE(32645))
-#define IDC_SIZEALL    (MAKEINTRESOURCE(32646))
-#define IDC_NO (MAKEINTRESOURCE(32648))
-#define IDC_APPSTARTING        (MAKEINTRESOURCE(32650))
-#define IDC_HELP       (MAKEINTRESOURCE(32651))
-#define IDI_APPLICATION        (MAKEINTRESOURCE(32512))
-#define IDI_HAND       (MAKEINTRESOURCE(32513))
-#define IDI_QUESTION   (MAKEINTRESOURCE(32514))
-#define IDI_EXCLAMATION        (MAKEINTRESOURCE(32515))
-#define IDI_ASTERISK   (MAKEINTRESOURCE(32516))
-#define IDI_WINLOGO    (MAKEINTRESOURCE(32517))
-#define IDC_SIZE       (MAKEINTRESOURCE(32640))
-#define IDC_ICON       (MAKEINTRESOURCE(32641))
+#define IDC_ARROW      (MAKEINTRESOURCEW(32512))
+#define IDC_IBEAM      (MAKEINTRESOURCEW(32513))
+#define IDC_WAIT       (MAKEINTRESOURCEW(32514))
+#define IDC_CROSS      (MAKEINTRESOURCEW(32515))
+#define IDC_UPARROW    (MAKEINTRESOURCEW(32516))
+#define IDC_SIZENWSE   (MAKEINTRESOURCEW(32642))
+#define IDC_SIZENESW   (MAKEINTRESOURCEW(32643))
+#define IDC_SIZEWE     (MAKEINTRESOURCEW(32644))
+#define IDC_SIZENS     (MAKEINTRESOURCEW(32645))
+#define IDC_SIZEALL    (MAKEINTRESOURCEW(32646))
+#define IDC_NO (MAKEINTRESOURCEW(32648))
+#define IDC_APPSTARTING        (MAKEINTRESOURCEW(32650))
+#define IDC_HELP       (MAKEINTRESOURCEW(32651))
+#define IDI_APPLICATION        (MAKEINTRESOURCEW(32512))
+#define IDI_HAND       (MAKEINTRESOURCEW(32513))
+#define IDI_QUESTION   (MAKEINTRESOURCEW(32514))
+#define IDI_EXCLAMATION        (MAKEINTRESOURCEW(32515))
+#define IDI_ASTERISK   (MAKEINTRESOURCEW(32516))
+#define IDI_WINLOGO    (MAKEINTRESOURCEW(32517))
+#define IDC_SIZE       (MAKEINTRESOURCEW(32640))
+#define IDC_ICON       (MAKEINTRESOURCEW(32641))
+#define IDC_HAND       (MAKEINTRESOURCEW(32649))
 
 /* GetMapMode */
 #define MM_ANISOTROPIC (8)
@@ -1730,17 +1693,17 @@ extern "C" {
 #define QS_TIMER       (16)
 
 /* GetScrollInfo, SetScrollInfo */
-#define SIF_ALL        (23)
-#define SIF_PAGE       (2)
-#define SIF_POS        (4)
-#define SIF_RANGE      (1)
-#define SIF_DISABLENOSCROLL    (8)
+#define SIF_ALL 23
+#define SIF_PAGE 2
+#define SIF_POS 4
+#define SIF_RANGE 1
+#define SIF_DISABLENOSCROLL 8
+#define SIF_TRACKPOS   16
 
 /* GetStdHandle */
 #define STD_INPUT_HANDLE       (DWORD)(-10)
 #define STD_OUTPUT_HANDLE      (DWORD)(-11)
 #define STD_ERROR_HANDLE       (DWORD)(-12)
-#define INVALID_HANDLE_VALUE   ((HANDLE)-1)
 
 /* GetStockObject */
 #define BLACK_BRUSH    (4)
@@ -1804,6 +1767,7 @@ extern "C" {
 #define COLOR_3DDKSHADOW       (21)
 #define COLOR_3DFACE   (15)
 #define COLOR_3DHILIGHT        (20)
+#define COLOR_3DHIGHLIGHT      (20)
 #define COLOR_3DLIGHT  (22)
 #define COLOR_BTNHILIGHT       (20)
 #define COLOR_3DSHADOW (16)
@@ -1831,6 +1795,10 @@ extern "C" {
 #define COLOR_WINDOW   (5)
 #define COLOR_WINDOWFRAME      (6)
 #define COLOR_WINDOWTEXT       (8)
+#define COLOR_GRADIENTACTIVECAPTION    (27)
+#define COLOR_GRADIENTINACTIVECAPTION  (28)
+#define COLOR_MENUHILIGHT      (29)
+#define COLOR_MENUBAR  (30)
 
 /* GetSystemMetrics */
 #define SM_CYMIN       (29)
@@ -1911,6 +1879,7 @@ extern "C" {
 #define SM_SHOWSOUNDS  (70)
 #define SM_SLOWMACHINE (73)
 #define SM_SWAPBUTTON  (23)
+#define SM_CMONITORS   (80)
 #define ARW_BOTTOMLEFT (0L)
 #define ARW_BOTTOMRIGHT        (0x1L)
 #define ARW_HIDE       (0x8L)
@@ -1958,25 +1927,11 @@ extern "C" {
 #define TIME_NOTIMEMARKER      (4)
 #define TIME_FORCE24HOURFORMAT (8)
 
-/* GetTimeZoneInformation */
-#define TIME_ZONE_ID_INVALID   ((DWORD) -1)
-#define TIME_ZONE_ID_UNKNOWN   (0)
-#define TIME_ZONE_ID_STANDARD  (1)
-#define TIME_ZONE_ID_DAYLIGHT  (2)
-
 /* GetUserObjectInformation */
 #define UOI_FLAGS      (1)
 #define UOI_NAME       (2)
 #define UOI_TYPE       (3)
 
-/* GetVolumeInformation */
-#define FS_CASE_IS_PRESERVED   (2)
-#define FS_CASE_SENSITIVE      (1)
-#define FS_UNICODE_STORED_ON_DISK      (4)
-#define FS_PERSISTENT_ACLS     (8)
-#define FS_FILE_COMPRESSION    (16)
-#define FS_VOL_IS_COMPRESSED   (32768)
-
 /* GetWindowLong */
 #define GWL_EXSTYLE    (-20)
 #define GWL_STYLE      (-16)
@@ -2006,14 +1961,16 @@ extern "C" {
 #define GMEM_DISCARDED (16384)
 #define GMEM_INVALID_HANDLE    (32768)
 #define GMEM_LOCKCOUNT (255)
+#define GMEM_MODIFY     (128)
+#define GMEM_DISCARDED  (16384)
+#define GMEM_LOCKCOUNT  (255)
+#define GlobalDiscard(h) GlobalReAlloc(h, 0, GMEM_MOVEABLE)
+
+/* GradientFill */
+#define GRADIENT_FILL_RECT_H   (0)
+#define GRADIENT_FILL_RECT_V   (1)
+#define GRADIENT_FILL_TRIANGLE (2)
 
-/* HeapAlloc, HeapReAlloc */
-#define HEAP_GENERATE_EXCEPTIONS       (4)
-#define HEAP_NO_SERIALIZE      (1)
-#define HEAP_ZERO_MEMORY       (8)
-#define HEAP_REALLOC_IN_PLACE_ONLY     (16)
-#define HEAP_GROWABLE (32)
-   
 /* ImageList_Create */
 #define ILC_COLOR      (0)
 #define ILC_COLOR4     (4)
@@ -2123,22 +2080,12 @@ extern "C" {
 /* InitializeSecurityDescriptor */
 #define SECURITY_DESCRIPTOR_REVISION   (1)
 
-/* IsTextUnicode */
-#define IS_TEXT_UNICODE_ASCII16        (1)
-#define IS_TEXT_UNICODE_REVERSE_ASCII16        (16)
-#define IS_TEXT_UNICODE_STATISTICS     (2)
-#define IS_TEXT_UNICODE_REVERSE_STATISTICS     (32)
-#define IS_TEXT_UNICODE_CONTROLS       (4)
-#define IS_TEXT_UNICODE_REVERSE_CONTROLS       (64)
-#define IS_TEXT_UNICODE_SIGNATURE      (8)
-#define IS_TEXT_UNICODE_REVERSE_SIGNATURE      (128)
-#define IS_TEXT_UNICODE_ILLEGAL_CHARS  (256)
-#define IS_TEXT_UNICODE_ODD_LENGTH     (512)
-#define IS_TEXT_UNICODE_NULL_BYTES     (4096)
-#define IS_TEXT_UNICODE_UNICODE_MASK   (15)
-#define IS_TEXT_UNICODE_REVERSE_MASK   (240)
-#define IS_TEXT_UNICODE_NOT_UNICODE_MASK       (3840)
-#define IS_TEXT_UNICODE_NOT_ASCII_MASK (61440)
+/* InSendMessageEx */
+#define ISMEX_NOSEND   (0)
+#define ISMEX_SEND     (1)
+#define ISMEX_NOTIFY   (2)
+#define ISMEX_CALLBACK (4)
+#define ISMEX_REPLIED  (8)
 
 /* JournalPlaybackProc, KeyboardProc */
 #define HC_GETNEXT     (1)
@@ -2248,6 +2195,7 @@ extern "C" {
 #define MB_TASKMODAL   (0x2000L)
 #define MB_YESNO       (0x4L)
 #define MB_YESNOCANCEL (0x3L)
+#define MB_CANCELTRYCONTINUE   (0x6L)
 #define IDABORT        (3)
 #define IDCANCEL       (2)
 #define IDCLOSE        (8)
@@ -2257,6 +2205,8 @@ extern "C" {
 #define IDOK   (1)
 #define IDRETRY        (4)
 #define IDYES  (6)
+#define IDTRYAGAIN     (10)
+#define IDCONTINUE     (11)
 
 /* MessageProc */
 #define MSGF_DIALOGBOX (0)
@@ -2313,27 +2263,21 @@ extern "C" {
 /* NetUserEnum */
 
 /* OpenProcessToken */
-#define TOKEN_ADJUST_DEFAULT   (128)
-#define TOKEN_ADJUST_GROUPS    (64)
-#define TOKEN_ADJUST_PRIVILEGES        (32)
-#define TOKEN_ALL_ACCESS       (0xf00ffL)
-#define TOKEN_ASSIGN_PRIMARY   (1)
-#define TOKEN_DUPLICATE        (2)
-#define TOKEN_EXECUTE  (0x20000L)
-#define TOKEN_IMPERSONATE      (4)
-#define TOKEN_QUERY    (8)
-#define TOKEN_QUERY_SOURCE     (16)
-#define TOKEN_READ     (0x20008L)
-#define TOKEN_WRITE    (0x200e0L)
 
 /* OpenSCManager */
-#define SC_MANAGER_ALL_ACCESS  (0xf003fL)
 #define SC_MANAGER_CONNECT     (1)
 #define SC_MANAGER_CREATE_SERVICE      (2)
 #define SC_MANAGER_ENUMERATE_SERVICE   (4)
 #define SC_MANAGER_LOCK        (8)
 #define SC_MANAGER_QUERY_LOCK_STATUS   (16)
 #define SC_MANAGER_MODIFY_BOOT_CONFIG  (32)
+#define SC_MANAGER_ALL_ACCESS          (STANDARD_RIGHTS_REQUIRED      | \
+                                        SC_MANAGER_CONNECT            | \
+                                        SC_MANAGER_CREATE_SERVICE     | \
+                                        SC_MANAGER_ENUMERATE_SERVICE  | \
+                                        SC_MANAGER_LOCK               | \
+                                        SC_MANAGER_QUERY_LOCK_STATUS  | \
+                                        SC_MANAGER_MODIFY_BOOT_CONFIG)
 
 /* PostMessage */
 #define HWND_BROADCAST ((HWND)0xFFFF)
@@ -2360,17 +2304,12 @@ extern "C" {
 #define PURGE_TXCLEAR  (4)
 #define PURGE_RXCLEAR  (8)
 
-/* QueryServiceObjectSecurity */
-#define OWNER_SECURITY_INFORMATION     (0x1L)
-#define GROUP_SECURITY_INFORMATION     (0x2L)
-#define DACL_SECURITY_INFORMATION      (0x4L)
-#define SACL_SECURITY_INFORMATION      (0x8L)
-
 /* ReadEventLog, ReportEvent */
 #define EVENTLOG_FORWARDS_READ (4)
 #define EVENTLOG_BACKWARDS_READ        (8)
 #define EVENTLOG_SEEK_READ     (2)
 #define EVENTLOG_SEQUENTIAL_READ       (1)
+#define EVENTLOG_SUCCESS       (0)
 #define EVENTLOG_ERROR_TYPE    (1)
 #define EVENTLOG_WARNING_TYPE  (2)
 #define EVENTLOG_INFORMATION_TYPE      (4)
@@ -2401,24 +2340,8 @@ extern "C" {
 #define HKEY_DYN_DATA          ((HKEY)0x00000006)
 
 /* RegCreateKeyEx */
-#define REG_OPTION_VOLATILE    (0x1L)
-#define REG_OPTION_NON_VOLATILE        (0L)
-#define REG_CREATED_NEW_KEY    (0x1L)
-#define REG_OPENED_EXISTING_KEY        (0x2L)
 
 /* RegEnumValue */
-#define REG_BINARY     (3)
-#define REG_DWORD      (4)
-#define REG_DWORD_LITTLE_ENDIAN        (4)
-#define REG_DWORD_BIG_ENDIAN   (5)
-#define REG_EXPAND_SZ  (2)
-#define REG_FULL_RESOURCE_DESCRIPTOR (9)
-#define REG_LINK       (6)
-#define REG_MULTI_SZ   (7)
-#define REG_NONE       (0)
-#define REG_RESOURCE_LIST      (8)
-#define REG_RESOURCE_REQUIREMENTS_LIST (10)
-#define REG_SZ (1)
 
 /* RegisterHotKey */
 #define MOD_ALT        (1)
@@ -2612,7 +2535,6 @@ extern "C" {
 #define CAL_SSHORTDATE (5)
 
 /* SetProcessWorkingSetSize */
-#define PROCESS_SET_QUOTA      (256)
 
 /* SetPrinter */
 
@@ -2665,6 +2587,7 @@ extern "C" {
 #define HWND_NOTOPMOST ((HWND)-2)
 #define HWND_TOP       ((HWND)0)
 #define HWND_TOPMOST   ((HWND)-1)
+#define HWND_MESSAGE   ((HWND)-3)
 #define SWP_DRAWFRAME  (32)
 #define SWP_FRAMECHANGED       (32)
 #define SWP_HIDEWINDOW (128)
@@ -2716,6 +2639,17 @@ extern "C" {
 #define WPF_RESTORETOMAXIMIZED (2)
 #define WPF_SETMINPOSITION     (1)
 
+/* AnimageWindow */
+#define AW_SLIDE        (0x00040000)
+#define AW_ACTIVATE     (0x00020000)
+#define AW_BLEND        (0x00080000)
+#define AW_HIDE         (0x00010000)
+#define AW_CENTER       (0x00000010)
+#define AW_HOR_POSITIVE (0x00000001)
+#define AW_HOR_NEGATIVE (0x00000002)
+#define AW_VER_POSITIVE (0x00000004)
+#define AW_VER_NEGATIVE (0x00000008)
+
 /* Sleep */
 #define INFINITE       0xFFFFFFFF
 
@@ -2756,6 +2690,7 @@ extern "C" {
 #define SPI_GETSTICKYKEYS      (58)
 #define SPI_GETTOGGLEKEYS      (52)
 #define SPI_GETWINDOWSEXTENSION        (92)
+#define SPI_GETWHEELSCROLLLINES (104)
 #define SPI_GETWORKAREA        (48)
 #define SPI_ICONHORIZONTALSPACING      (13)
 #define SPI_ICONVERTICALSPACING        (24)
@@ -2808,18 +2743,98 @@ extern "C" {
 #define SPI_SETSTICKYKEYS      (59)
 #define SPI_SETTOGGLEKEYS      (53)
 #define SPI_SETWORKAREA        (47)
+#define SPI_GETACTIVEWINDOWTRACKING    (4096)
+#define SPI_SETACTIVEWINDOWTRACKING    (4097)
+#define SPI_GETMENUANIMATION   (4098)
+#define SPI_SETMENUANIMATION   (4099)
+#define SPI_GETCOMBOBOXANIMATION       (4100)
+#define SPI_SETCOMBOBOXANIMATION       (4101)
+#define SPI_GETLISTBOXSMOOTHSCROLLING  (4102)
+#define SPI_SETLISTBOXSMOOTHSCROLLING  (4103)
+#define SPI_GETGRADIENTCAPTIONS        (4104)
+#define SPI_SETGRADIENTCAPTIONS        (4105)
+#define SPI_GETKEYBOARDCUES    (4106)
+#define SPI_SETKEYBOARDCUES    (4107)
+#define SPI_GETMENUUNDERLINES  (SPI_GETKEYBOARDCUES)
+#define SPI_SETMENUUNDERLINES  (SPI_SETKEYBOARDCUES)
+#define SPI_GETACTIVEWNDTRKZORDER      (4108)
+#define SPI_SETACTIVEWNDTRKZORDER      (4109)
+#define SPI_GETHOTTRACKING     (4110)
+#define SPI_SETHOTTRACKING     (4111)
+#define SPI_GETMENUFADE        (4114)
+#define SPI_SETMENUFADE        (4115)
+#define SPI_GETSELECTIONFADE   (4116)
+#define SPI_SETSELECTIONFADE   (4117)
+#define SPI_GETTOOLTIPANIMATION        (4118)
+#define SPI_SETTOOLTIPANIMATION        (4119)
+#define SPI_GETTOOLTIPFADE     (4120)
+#define SPI_SETTOOLTIPFADE     (4121)
+#define SPI_GETCURSORSHADOW    (4122)
+#define SPI_SETCURSORSHADOW    (4123)
+#define SPI_GETMOUSESONAR      (4124)
+#define SPI_SETMOUSESONAR      (4125)
+#define SPI_GETMOUSECLICKLOCK  (4126)
+#define SPI_SETMOUSECLICKLOCK  (4127)
+#define SPI_GETMOUSEVANISH     (4128)
+#define SPI_SETMOUSEVANISH     (4129)
+#define SPI_GETFLATMENU        (4130)
+#define SPI_SETFLATMENU        (4131)
+#define SPI_GETDROPSHADOW      (4132)
+#define SPI_SETDROPSHADOW      (4133)
+#define SPI_GETBLOCKSENDINPUTRESETS    (4134)
+#define SPI_SETBLOCKSENDINPUTRESETS    (4135)
+#define SPI_GETUIEFFECTS       (4158)
+#define SPI_SETUIEFFECTS       (4159)
+#define SPI_GETFOREGROUNDLOCKTIMEOUT   (8192)
+#define SPI_SETFOREGROUNDLOCKTIMEOUT   (8192)
+#define SPI_GETACTIVEWNDTRKTIMEOUT     (8193)
+#define SPI_SETACTIVEWNDTRKTIMEOUT     (8194)
+#define SPI_GETFOREGROUNDFLASHCOUNT    (8195)
+#define SPI_SETFOREGROUNDFLASHCOUNT    (8196)
+#define SPI_GETCARETWIDTH      (8197)
+#define SPI_SETCARETWIDTH      (8198)
+#define SPI_GETMOUSECLICKLOCKTIME      (8199)
+#define SPI_SETMOUSECLICKLOCKTIME      (8200)
+#define SPI_GETFONTSMOOTHINGTYPE       (8201)
+#define SPI_SETFONTSMOOTHINGTYPE       (8202)
+#define FE_FONTSMOOTHINGSTANDARD       (1) /* for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE */
+#define FE_FONTSMOOTHINGCLEARTYPE      (2) /* for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE */
+#define FE_FONTSMOOTHINGDOCKING        (32768) /* for SPI_GETFONTSMOOTHINGTYPE and SPI_SETFONTSMOOTHINGTYPE */
+#define SPI_GETFONTSMOOTHINGCONTRAST   (8204)
+#define SPI_SETFONTSMOOTHINGCONTRAST   (8205)
+#define SPI_GETFOCUSBORDERWIDTH        (8206)
+#define SPI_SETFOCUSBORDERWIDTH        (8207)
+#define SPI_GETFOCUSBORDERHEIGHT       (8208)
+#define SPI_SETFOCUSBORDERHEIGHT       (8209)
+#define SPI_GETFONTSMOOTHINGORIENTATION        (8210)
+#define SPI_SETFONTSMOOTHINGORIENTATION        (8211)
+#define FE_FONTSMOOTHINGORIENTATIONBGR (0) /* for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION */
+#define FE_FONTSMOOTHINGORIENTATIONRGB (1) /* for SPI_GETFONTSMOOTHINGORIENTATION and SPI_SETFONTSMOOTHINGORIENTATION */
+
 #define SPIF_UPDATEINIFILE     (1)
 #define SPIF_SENDWININICHANGE  (2)
 #define SPIF_SENDCHANGE        (2)
 
 /* TrackPopupMenu, TrackPopMenuEx */
-#define TPM_CENTERALIGN        (0x4L)
-#define TPM_LEFTALIGN  (0L)
-#define TPM_RIGHTALIGN (0x8L)
-#define TPM_LEFTBUTTON (0L)
-#define TPM_RIGHTBUTTON        (0x2L)
-#define TPM_HORIZONTAL (0L)
-#define TPM_VERTICAL   (0x40L)
+#define TPM_LEFTBUTTON (0)
+#define TPM_RIGHTBUTTON        (2)
+#define TPM_LEFTALIGN  (0)
+#define TPM_CENTERALIGN        (4)
+#define TPM_RIGHTALIGN (8)
+#define TPM_TOPALIGN   (0)
+#define TPM_VCENTERALIGN       (16)
+#define TPM_BOTTOMALIGN        (32)
+#define TPM_HORIZONTAL (0)
+#define TPM_VERTICAL   (64)
+#define TPM_NONOTIFY   (128)
+#define TPM_RETURNCMD  (256)
+#define TPM_RECURSE    (1)
+#define TPM_HORPOSANIMATION    (1024)
+#define TPM_HORNEGANIMATION    (2048)
+#define TPM_VERPOSANIMATION    (4096)
+#define TPM_VERNEGANIMATION    (8192)
+#define TPM_NOANIMATION        (16384)
+#define TPM_LAYOUTRTL  (32768)
 
 /* TranslateCharsetInfo */
 #define TCI_SRCCHARSET (1)
@@ -2871,6 +2886,7 @@ extern "C" {
 #define HELP_INDEX     (0x3L)
 #define HELP_KEY       (0x101L)
 #define HELP_MULTIKEY  (0x201L)
+#define HELP_SETWINPOS  (0x0203L)
 #define HELP_PARTIALKEY        (0x105L)
 #define HELP_QUIT      (0x2L)
 #define HELP_SETCONTENTS       (0x5L)
@@ -3048,7 +3064,7 @@ extern "C" {
 #define STARTF_USESIZE (2)
 #define STARTF_USECOUNTCHARS   (8)
 #define STARTF_USEFILLATTRIBUTE        (16)
-#define STARTF_RUNFULLSCREEN   (32) 
+#define STARTF_RUNFULLSCREEN   (32)
 #define STARTF_FORCEONFEEDBACK (64)
 #define STARTF_FORCEOFFFEEDBACK        (128)
 #define STARTF_USESTDHANDLES   (256)
@@ -3086,6 +3102,7 @@ extern "C" {
 #define PSH_RTLREADING (2048)
 #define PSCB_INITIALIZED       (1)
 #define PSCB_PRECREATE (2)
+#define PSCB_BUTTONPRESSED     (3)
 
 /* PSN_APPLY message */
 #define PSNRET_NOERROR (0)
@@ -3120,6 +3137,8 @@ extern "C" {
 #define VS_FF_PRERELEASE       (0x2L)
 #define VS_FF_PRIVATEBUILD     (0x8L)
 #define VS_FF_SPECIALBUILD     (0x20L)
+#define VS_FFI_SIGNATURE       (0xfeef04bd)
+#define VS_FFI_STRUCVERSION    (0x00010000)
 #define VOS_UNKNOWN    (0L)
 #define VOS_DOS        (0x10000L)
 #define VOS_OS216      (0x20000L)
@@ -3247,6 +3266,18 @@ extern "C" {
 #define PAN_XHEIGHT_DUCKING_SMALL      (5)
 #define PAN_XHEIGHT_DUCKING_STD        (6)
 #define PAN_XHEIGHT_DUCKING_LARGE      (7)
+#define PANOSE_COUNT   (10)
+#define PAN_FAMILYTYPE_INDEX   (0)
+#define PAN_SERIFSTYLE_INDEX   (1)
+#define PAN_WEIGTH_INDEX       (2)
+#define PAN_PROPORTION_INDEX   (3)
+#define PAN_CONTRAST_INDEX     (4)
+#define PAN_STROKEVARIATION_INDEX      (5)
+#define PAN_ARMSTYLE_INDEX     (6)
+#define PAN_LETTERFORM_INDEX   (7)
+#define PAN_MIDLINE_INDEX      (8)
+#define PAN_XHEIGHT_INDEX      (9)
+#define PAN_CULTURE_LATIN      (0)
 
 /* PALETTENTRY structure */
 #define PC_EXPLICIT    (2)
@@ -3599,6 +3630,7 @@ extern "C" {
 #define WC_LISTVIEWA   "SysListView32"
 #define WC_TABCONTROLA "SysTabControl32"
 #define WC_TREEVIEWA   "SysTreeView32"
+#ifndef _DISABLE_TIDENTS
 #ifdef UNICODE
 #define ANIMATE_CLASS ANIMATE_CLASSW
 #define HOTKEY_CLASS HOTKEY_CLASSW
@@ -3626,6 +3658,7 @@ extern "C" {
 #define WC_TABCONTROL WC_TABCONTROLA
 #define WC_TREEVIEW WC_TREEVIEWA
 #endif /* UNICODE */
+#endif /* _DISABLE_TIDENTS */
 
 /* Header control styles */
 #define HDS_BUTTONS    (2)
@@ -3801,6 +3834,7 @@ extern "C" {
 #define LVS_SMALLICON  (2)
 #define LVS_SORTASCENDING      (16)
 #define LVS_SORTDESCENDING     (32)
+#define LVS_OWNERDATA           0x1000
 #define LVS_TYPESTYLEMASK      (64512)
 #define LVSIL_NORMAL   (0)
 #define LVSIL_SMALL    (1)
@@ -3813,11 +3847,13 @@ extern "C" {
 #define LVIS_STATEIMAGEMASK    (61440)
 #define LPSTR_TEXTCALLBACKW    ((LPWSTR)-1L)
 #define LPSTR_TEXTCALLBACKA    ((LPSTR)-1L)
+#ifndef _DISABLE_TIDENTS
 #ifdef UNICODE
 #define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKW
 #else
 #define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKA
 #endif /* UNICODE */
+#endif /* _DISABLE_TIDENTS */
 
 /* LV_ITEM structure */
 #define LVIF_TEXT      (1)
@@ -4088,17 +4124,23 @@ extern "C" {
 #define SORT_KOREAN_UNICODE    (1)
 
 /* SYSTEM_INFO structure */
+#define PROCESSOR_ARCHITECTURE_IA64 (6)
+#define PROCESSOR_ARCHITECTURE_AMD64 (9)
+#define PROCESSOR_ARCHITECTURE_IA64_ON_WIN64 (10)
 #define PROCESSOR_INTEL_386    (386)
 #define PROCESSOR_INTEL_486    (486)
 #define PROCESSOR_INTEL_PENTIUM        (586)
+#define PROCESSOR_INTEL_PENTIUMII (686)
+#define PROCESSOR_INTEL_PENTIUMIII (786)
+#define PROCESSOR_PPC_601      (601)
+#define PROCESSOR_PPC_603      (603)
+#define PROCESSOR_PPC_604      (604)
+#define PROCESSOR_PPC_620      (620)
+#define PROCESSOR_INTEL_IA64   (2200)
 #define PROCESSOR_MIPS_R4000   (4000)
+#define PROCESSOR_AMD_X8664    (8664)
 #define PROCESSOR_ALPHA_21064  (21064)
 
-/* FSCTL_SET_COMPRESSION */
-#define COMPRESSION_FORMAT_NONE        (0)
-#define COMPRESSION_FORMAT_DEFAULT     (1)
-#define COMPRESSION_FORMAT_LZNT1       (2)
-
 /* TAPE_GET_DRIVE_PARAMETERS structure */
 #define TAPE_DRIVE_COMPRESSION (131072)
 #define TAPE_DRIVE_ECC (65536)
@@ -4276,6 +4318,7 @@ extern "C" {
 #define LBSELCHSTRINGA "commdlg_LBSelChangedNotify"
 #define SETRGBSTRINGA  "commdlg_SetRGBColor"
 #define SHAREVISTRINGA "commdlg_ShareViolation"
+#ifndef _DISABLE_TIDENTS
 #ifdef UNICODE
 #define COLOROKSTRING COLOROKSTRINGW
 #define FILEOKSTRING FILEOKSTRINGW
@@ -4292,7 +4335,8 @@ extern "C" {
 #define LBSELCHSTRING LBSELCHSTRINGA
 #define SETRGBSTRING SETRGBSTRINGA
 #define SHAREVISTRING SHAREVISTRINGA
-#endif
+#endif /* UNICODE */
+#endif /* _DISABLE_TIDENTS */
 
 /* LBSELCHSTRING message */
 #define CD_LBSELCHANGE (0)
@@ -4354,124 +4398,6 @@ extern "C" {
 #define SW_PARENTCLOSING       (1)
 #define SW_PARENTOPENING       (3)
 
-/* Virtual Key codes */
-#define VK_LBUTTON     (1)
-#define VK_RBUTTON     (2)
-#define VK_CANCEL      (3)
-#define VK_MBUTTON     (4)
-#define VK_BACK        (8)
-#define VK_TAB (9)
-#define VK_CLEAR       (12)
-#define VK_RETURN      (13)
-#define VK_SHIFT       (16)
-#define VK_CONTROL     (17)
-#define VK_MENU        (18)
-#define VK_PAUSE       (19)
-#define VK_CAPITAL     (20)
-#define VK_ESCAPE      (27)
-#define VK_SPACE       (32)
-#define VK_PRIOR       (33)
-#define VK_NEXT        (34)
-#define VK_END (35)
-#define VK_HOME        (36)
-#define VK_LEFT        (37)
-#define VK_UP  (38)
-#define VK_RIGHT       (39)
-#define VK_DOWN        (40)
-#define VK_SELECT      (41)
-#define VK_PRINT       (42)
-#define VK_EXECUTE     (43)
-#define VK_SNAPSHOT    (44)
-#define VK_INSERT      (45)
-#define VK_DELETE      (46)
-#define VK_HELP        (47)
-#define VK_0   (48)
-#define VK_1   (49)
-#define VK_2   (50)
-#define VK_3   (51)
-#define VK_4   (52)
-#define VK_5   (53)
-#define VK_6   (54)
-#define VK_7   (55)
-#define VK_8   (56)
-#define VK_9   (57)
-#define VK_A   (65)
-#define VK_B   (66)
-#define VK_C   (67)
-#define VK_D   (68)
-#define VK_E   (69)
-#define VK_F   (70)
-#define VK_G   (71)
-#define VK_H   (72)
-#define VK_I   (73)
-#define VK_J   (74)
-#define VK_K   (75)
-#define VK_L   (76)
-#define VK_M   (77)
-#define VK_N   (78)
-#define VK_O   (79)
-#define VK_P   (80)
-#define VK_Q   (81)
-#define VK_R   (82)
-#define VK_S   (83)
-#define VK_T   (84)
-#define VK_U   (85)
-#define VK_V   (86)
-#define VK_W   (87)
-#define VK_X   (88)
-#define VK_Y   (89)
-#define VK_Z   (90)
-#define VK_NUMPAD0     (96)
-#define VK_NUMPAD1     (97)
-#define VK_NUMPAD2     (98)
-#define VK_NUMPAD3     (99)
-#define VK_NUMPAD4     (100)
-#define VK_NUMPAD5     (101)
-#define VK_NUMPAD6     (102)
-#define VK_NUMPAD7     (103)
-#define VK_NUMPAD8     (104)
-#define VK_NUMPAD9     (105)
-#define VK_MULTIPLY    (106)
-#define VK_ADD (107)
-#define VK_SEPARATOR   (108)
-#define VK_SUBTRACT    (109)
-#define VK_DECIMAL     (110)
-#define VK_DIVIDE      (111)
-#define VK_F1  (112)
-#define VK_F2  (113)
-#define VK_F3  (114)
-#define VK_F4  (115)
-#define VK_F5  (116)
-#define VK_F6  (117)
-#define VK_F7  (118)
-#define VK_F8  (119)
-#define VK_F9  (120)
-#define VK_F10 (121)
-#define VK_F11 (122)
-#define VK_F12 (123)
-#define VK_F13 (124)
-#define VK_F14 (125)
-#define VK_F15 (126)
-#define VK_F16 (127)
-#define VK_F17 (128)
-#define VK_F18 (129)
-#define VK_F19 (130)
-#define VK_F20 (131)
-#define VK_F21 (132)
-#define VK_F22 (133)
-#define VK_F23 (134)
-#define VK_F24 (135)
-
-/* GetAsyncKeyState */
-#define VK_NUMLOCK     (144)
-#define VK_SCROLL      (145)
-#define VK_LSHIFT      (160)
-#define VK_LCONTROL    (162)
-#define VK_LMENU       (164)
-#define VK_RSHIFT      (161)
-#define VK_RCONTROL    (163)
-#define VK_RMENU       (165)
-
 /* ImmGetVirtualKey */
 #define VK_PROCESSKEY  (229)
 
@@ -4543,22 +4469,26 @@ extern "C" {
 #define HTBOTTOMRIGHT  (17)
 #define HTCAPTION      (2)
 #define HTCLIENT       (1)
-#define HTERROR        (-2)
+#define HTERROR                (-2)
 #define HTGROWBOX      (4)
 #define HTHSCROLL      (6)
-#define HTLEFT (10)
-#define HTMENU (5)
+#define HTLEFT         (10)
+#define HTMENU         (5)
 #define HTNOWHERE      (0)
 #define HTREDUCE       (8)
-#define HTRIGHT        (11)
-#define HTSIZE (4)
+#define HTRIGHT                (11)
+#define HTSIZE         (4)
 #define HTSYSMENU      (3)
-#define HTTOP  (12)
+#define HTTOP          (12)
 #define HTTOPLEFT      (13)
 #define HTTOPRIGHT     (14)
 #define HTTRANSPARENT  (-1)
 #define HTVSCROLL      (7)
-#define HTZOOM (9)
+#define HTZOOM         (9)
+#define HTBORDER       (18)
+#define HTCLOSE                (20)
+#define HTMAXBUTTON HTZOOM
+#define HTMINBUTTON HTREDUCE
 
 /* Mouse messages */
 #define MK_CONTROL     (8)
@@ -4566,6 +4496,12 @@ extern "C" {
 #define MK_MBUTTON     (16)
 #define MK_RBUTTON     (2)
 #define MK_SHIFT       (4)
+#define MK_XBUTTON1 (0x0020)
+#define MK_XBUTTON2 (0x0040)
+
+/* XButton values */
+#define XBUTTON1       (0x0001)
+#define XBUTTON2       (0x0002)
 
 /* WNDCLASS structure */
 #define CS_BYTEALIGNCLIENT     (4096)
@@ -4590,6 +4526,14 @@ extern "C" {
 #define FSHIFT (4)
 #define FVIRTKEY       (1)
 
+/* MENUINFO structure */
+#define MIM_MAXHEIGHT          0x00000001
+#define MIM_BACKGROUND         0x00000002
+#define MIM_HELPID             0x00000004
+#define MIM_MENUDATA           0x00000008
+#define MIM_STYLE              0x00000010
+#define MIM_APPLYTOSUBMENUS    0x80000000
+
 /* MENUITEMINFO structure */
 #define MIIM_CHECKMARKS        (8)
 #define MIIM_DATA      (32)
@@ -4597,6 +4541,9 @@ extern "C" {
 #define MIIM_STATE     (1)
 #define MIIM_SUBMENU   (4)
 #define MIIM_TYPE      (16)
+#define MIIM_STRING    (0x40)
+#define MIIM_BITMAP    (0x80)
+#define MIIM_FTYPE     (0x100)
 #define MFT_BITMAP     (0x4L)
 #define MFT_MENUBARBREAK       (0x20L)
 #define MFT_MENUBREAK  (0x40L)
@@ -4790,33 +4737,6 @@ extern "C" {
 #define RESOURCEDISPLAYTYPE_SERVER     (2)
 #define RESOURCEDISPLAYTYPE_SHARE      (3)
 
-/* KEY_EVENT_RECORD structure */
-#define CAPSLOCK_ON    (128)
-#define ENHANCED_KEY   (256)
-#define LEFT_ALT_PRESSED       (2)
-#define LEFT_CTRL_PRESSED      (8)
-#define NUMLOCK_ON     (32)
-#define RIGHT_ALT_PRESSED      (1)
-#define RIGHT_CTRL_PRESSED     (4)
-#define SCROLLLOCK_ON  (64)
-#define SHIFT_PRESSED  (16)
-
-/* MOUSE_EVENT_RECORD structure */
-#define FROM_LEFT_1ST_BUTTON_PRESSED   (1)
-#define RIGHTMOST_BUTTON_PRESSED       (2)
-#define FROM_LEFT_2ND_BUTTON_PRESSED   (4)
-#define FROM_LEFT_3RD_BUTTON_PRESSED   (8)
-#define FROM_LEFT_4TH_BUTTON_PRESSED   (16)
-#define DOUBLE_CLICK   (2)
-#define MOUSE_MOVED    (1)
-
-/* INPUT_RECORD structure */
-#define KEY_EVENT      (1)
-#define MOUSE_EVENT    (2)
-#define WINDOW_BUFFER_SIZE_EVENT       (4)
-#define MENU_EVENT     (8)
-#define FOCUS_EVENT    (16)
-
 /* BITMAPINFOHEADER structure */
 #define BI_RGB (0L)
 #define BI_RLE8        (1L)
@@ -4859,6 +4779,45 @@ extern "C" {
 #define TMPF_TRUETYPE          (0x4)
 #define TMPF_DEVICE            (0x8)
 
+/* NEWTEXTMETRIC structure */
+#define NTM_ITALIC             (0x01)
+#define NTM_BOLD               (0x20)
+#define NTM_REGULAR            (0x40)
+
+/* CopyFileEx options */
+#define COPY_FILE_FAIL_IF_EXISTS       (1)
+
+/* CopyProgressRoutine callback */
+#define CALLBACK_CHUNK_FINISHED (0)
+#define CALLBACK_STREAM_SWITCH (1)
+
+#define PROGRESS_CONTINUE      (0)
+#define PROGRESS_CANCEL                (1)
+#define PROGRESS_STOP          (2)
+#define PROGRESS_QUIET         (3)
+
+/* GetFileAttributes */
+#define INVALID_FILE_ATTRIBUTES ((DWORD)-1)
+
+/* GetFileCompressedSize */
+#define INVALID_FILE_SIZE ((DWORD)-1)
+
+/* system ids */
+#define OBJID_WINDOW        ((LONG)0x00000000)
+#define OBJID_SYSMENU       ((LONG)0xFFFFFFFF)
+#define OBJID_TITLEBAR      ((LONG)0xFFFFFFFE)
+#define OBJID_MENU          ((LONG)0xFFFFFFFD)
+#define OBJID_CLIENT        ((LONG)0xFFFFFFFC)
+#define OBJID_VSCROLL       ((LONG)0xFFFFFFFB)
+#define OBJID_HSCROLL       ((LONG)0xFFFFFFFA)
+#define OBJID_SIZEGRIP      ((LONG)0xFFFFFFF9)
+#define OBJID_CARET         ((LONG)0xFFFFFFF8)
+#define OBJID_CURSOR        ((LONG)0xFFFFFFF7)
+#define OBJID_ALERT         ((LONG)0xFFFFFFF6)
+#define OBJID_SOUND         ((LONG)0xFFFFFFF5)
+#define OBJID_QUERYCLASSNAMEIDX ((LONG)0xFFFFFFF4)
+#define OBJID_NATIVEOM      ((LONG)0xFFFFFFF0)
+
 /* --------------------- old stuff, need to organize! --------------- */
 
 /* BEGINNING of windowsx.h stuff from old headers: */
@@ -5023,6 +4982,22 @@ extern "C" {
 
 #define _fmemcpy memcpy
 
+/* Control Panel */
+#define WM_CPL_LAUNCH (WM_USER+1000)
+#define WM_CPL_LAUNCHED (WM_USER+1001)
+#define CPL_DYNAMIC_RES 0
+#define CPL_INIT 1
+#define CPL_GETCOUNT 2
+#define CPL_INQUIRE 3
+#define CPL_SELECT 4
+#define CPL_DBLCLK 5
+#define CPL_STOP 6
+#define CPL_EXIT 7
+#define CPL_NEWINQUIRE 8
+#define CPL_STARTWPARMSA 9
+#define CPL_STARTWPARMSW 10
+#define CPL_SETUP 200
+
 /* Used by wxwindows. */
 #define SIZEFULLSCREEN SIZE_MAXIMIZED
 #define SIZENORMAL     SIZE_RESTORED
@@ -5054,10 +5029,10 @@ DECLARE_HANDLE(HANDLE);
 
 /* Values for contextflags */
 #define CONTEXT_i386    0x10000
-#define CONTEXT_CONTROL         (CONTEXT_i386 | 1)     
-#define CONTEXT_INTEGER         (CONTEXT_i386 | 2)     
-#define CONTEXT_SEGMENTS        (CONTEXT_i386 | 4)     
-#define CONTEXT_FLOATING_POINT  (CONTEXT_i386 | 8)     
+#define CONTEXT_CONTROL         (CONTEXT_i386 | 1)
+#define CONTEXT_INTEGER         (CONTEXT_i386 | 2)
+#define CONTEXT_SEGMENTS        (CONTEXT_i386 | 4)
+#define CONTEXT_FLOATING_POINT  (CONTEXT_i386 | 8)
 #define CONTEXT_DEBUG_REGISTERS (CONTEXT_i386 | 0x10)
 #define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)
 
@@ -5098,10 +5073,68 @@ DECLARE_HANDLE(HANDLE);
 #endif
 
 
+#ifndef __USE_W32API
+
+#define INVALID_SET_FILE_POINTER       ((DWORD)-1)
+
+typedef enum _SC_STATUS_TYPE {
+  SC_STATUS_PROCESS_INFO = 0
+} SC_STATUS_TYPE;
+
+typedef enum _SC_ENUM_TYPE {
+  SC_ENUM_PROCESS_INFO = 0
+} SC_ENUM_TYPE;
+
+#endif /* !__USE_W32API */
+
+typedef enum _SystemState {
+  STATE_SYSTEM_UNAVAILABLE        = 0x00000001, /* Disabled */
+  STATE_SYSTEM_SELECTED           = 0x00000002,
+  STATE_SYSTEM_FOCUSED            = 0x00000004,
+  STATE_SYSTEM_PRESSED            = 0x00000008,
+  STATE_SYSTEM_CHECKED            = 0x00000010,
+  STATE_SYSTEM_MIXED              = 0x00000020, /* 3-state checkbox or toolbar button */
+  STATE_SYSTEM_READONLY           = 0x00000040,
+  STATE_SYSTEM_HOTTRACKED         = 0x00000080,
+  STATE_SYSTEM_DEFAULT            = 0x00000100,
+  STATE_SYSTEM_EXPANDED           = 0x00000200,
+  STATE_SYSTEM_COLLAPSED          = 0x00000400,
+  STATE_SYSTEM_BUSY               = 0x00000800,
+  STATE_SYSTEM_FLOATING           = 0x00001000, /* Children "owned" not "contained" by parent */
+  STATE_SYSTEM_MARQUEED           = 0x00002000,
+  STATE_SYSTEM_ANIMATED           = 0x00004000,
+  STATE_SYSTEM_INVISIBLE          = 0x00008000,
+  STATE_SYSTEM_OFFSCREEN          = 0x00010000,
+  STATE_SYSTEM_SIZEABLE           = 0x00020000,
+  STATE_SYSTEM_MOVEABLE           = 0x00040000,
+  STATE_SYSTEM_SELFVOICING        = 0x00080000,
+  STATE_SYSTEM_FOCUSABLE          = 0x00100000,
+  STATE_SYSTEM_SELECTABLE         = 0x00200000,
+  STATE_SYSTEM_LINKED             = 0x00400000,
+  STATE_SYSTEM_TRAVERSED          = 0x00800000,
+  STATE_SYSTEM_MULTISELECTABLE    = 0x01000000,  /* Supports multiple selection */
+  STATE_SYSTEM_EXTSELECTABLE      = 0x02000000,  /* Supports extended selection */
+  STATE_SYSTEM_ALERT_LOW          = 0x04000000,  /* This information is of low priority */
+  STATE_SYSTEM_ALERT_MEDIUM       = 0x08000000,  /* This information is of medium priority */
+  STATE_SYSTEM_ALERT_HIGH         = 0x10000000,  /* This information is of high priority */
+  STATE_SYSTEM_VALID              = 0x1FFFFFFF
+} SystemState;
+
+/*
+ * From OS/2 2.0 exception handling
+ * Win32 seems to use the same flags as ExceptionFlags in an EXCEPTION_RECORD
+ */
+
+#define EH_NONCONTINUABLE   0x01
+#define EH_UNWINDING        0x02
+#define EH_EXIT_UNWIND      0x04
+#define EH_STACK_INVALID    0x08
+#define EH_NESTED_CALL      0x10
+
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
-#endif /* WIN32_LEAN_AND_MEAN */                                                              
-                                                              
+#endif /* WIN32_LEAN_AND_MEAN */
+
 #endif /* _GNU_H_WINDOWS32_DEFINES */