Differences From Artifact [48b85ca4f30327f3]:
- File        
src/win32/winuser.d
- 2011-02-23 12:53:16 - part of checkin [c2b7a98c21] on branch trunk - Initial import (user: kinaba) [annotate]
 
 
To Artifact [b45c73c216c900bc]:
- File        
src/win32/winuser.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
 
 
            1  +/***********************************************************************\
            2  +*                               winuser.d                               *
            3  +*                                                                       *
            4  +*                       Windows API header module                       *
            5  +*                                                                       *
            6  +*                 Translated from MinGW Windows headers                 *
            7  +*                                                                       *
            8  +*                       Placed into public domain                       *
            9  +\***********************************************************************/
     1     10   module win32.winuser;
     2         -
     3         -// Translated from Microsoft Platform SDK August 2001 Edition
     4         -// by Y.Tomino (demoonlit@inter7.jp)
     5         -
     6         -import win32.winbase, win32.wingdi;
     7         -enum : uint {
     8         -  QS_POSTMESSAGE = 0x0008,
     9         -  QS_TIMER       = 0x0010,
    10         -  QS_PAINT       = 0x0020,
    11         -  QS_SENDMESSAGE = 0x0040,
    12         -  QS_HOTKEY      = 0x0080,
    13         -  QS_INPUT       = 0x0407
    14         -}
    15         -
    16         -// #ifndef _WINUSER_
    17         -// #define _WINUSER_
    18         -
    19         -// #if !defined(_USER32_)
    20         -// #define WINUSERAPI DECLSPEC_IMPORT
    21         -// #else
    22         -// #...
    23         -// #endif
    24         -
    25         -// #ifdef _MAC
    26         -// #...
    27         -// #endif
    28         -
    29         -// #ifdef __cplusplus
    30         -// extern "C" {
    31         -// #endif /* __cplusplus */
    32         -
    33         -// #ifndef WINVER
    34         -// #...
    35         -// #endif /* !WINVER */
    36         -
    37         -// #include <stdarg.h>
    38         -
    39         -// #ifndef NOUSER
    40         -
           11  +pragma(lib, "user32.lib");
           12  +
           13  +// Conversion Notes:
           14  +// The following macros were for win16 only, and are not included in this file:
           15  +//#define EnumTaskWindows(h, f, p) EnumThreadWindows((DWORD)h, f, p)
           16  +//#define PostAppMessageA(t, m, w, l) PostThreadMessageA((DWORD)t, m, w, l)
           17  +//#define PostAppMessageW(t, m, w, l) PostThreadMessageW((DWORD)t, m, w, l)
           18  +//#define GetSysModalWindow() (NULL)
           19  +//#define SetSysModalWindow(h) (NULL)
           20  +//#define GetWindowTask(hWnd) ((HANDLE)GetWindowThreadProcessId(hWnd, NULL))
           21  +//#define DefHookProc(c, p, lp, h) CallNextHookEx((HHOOK)*h, c, p, lp)
           22  +
           23  +private import win32.w32api, win32.winbase, win32.wingdi;
           24  +private import win32.windef; // for HMONITOR
           25  +
           26  +// FIXME: clean up Windows version support
           27  +
           28  +template MAKEINTATOM_T(int i) {
           29  + const LPTSTR MAKEINTATOM_T = cast(LPTSTR) i;
           30  +}
           31  +
           32  +const WC_DIALOG = MAKEINTATOM_T!(0x8002);
           33  +
           34  +const FVIRTKEY  = 1;
           35  +const FNOINVERT = 2;
           36  +const FSHIFT    = 4;
           37  +const FCONTROL  = 8;
           38  +const FALT      = 16;
           39  +
           40  +const ATF_TIMEOUTON     = 1;
           41  +const ATF_ONOFFFEEDBACK = 2;
           42  +const ATF_AVAILABLE     = 4; // May be obsolete. Not in recent MS docs.
           43  +
           44  +const WH_MIN             = -1;
           45  +const WH_MSGFILTER       =  -1;
           46  +const WH_JOURNALRECORD   = 0;
           47  +const WH_JOURNALPLAYBACK = 1;
           48  +const WH_KEYBOARD        = 2;
           49  +const WH_GETMESSAGE      = 3;
           50  +const WH_CALLWNDPROC     = 4;
           51  +const WH_CBT             = 5;
           52  +const WH_SYSMSGFILTER    = 6;
           53  +const WH_MOUSE           = 7;
           54  +const WH_HARDWARE        = 8;
           55  +const WH_DEBUG           = 9;
           56  +const WH_SHELL           = 10;
           57  +const WH_FOREGROUNDIDLE  = 11;
           58  +const WH_CALLWNDPROCRET  = 12;
           59  +const WH_KEYBOARD_LL     = 13;
           60  +const WH_MOUSE_LL        = 14;
           61  +const WH_MAX             = 14;
           62  +const WH_MINHOOK         = WH_MIN;
           63  +const WH_MAXHOOK         = WH_MAX;
           64  +
           65  +enum {
           66  + HC_ACTION = 0,
           67  + HC_GETNEXT,
           68  + HC_SKIP,
           69  + HC_NOREMOVE, // = 3
           70  + HC_NOREM = HC_NOREMOVE,
           71  + HC_SYSMODALON,
           72  + HC_SYSMODALOFF
           73  +}
           74  +
           75  +enum {
           76  + HCBT_MOVESIZE = 0,
           77  + HCBT_MINMAX,
           78  + HCBT_QS,
           79  + HCBT_CREATEWND,
           80  + HCBT_DESTROYWND,
           81  + HCBT_ACTIVATE,
           82  + HCBT_CLICKSKIPPED,
           83  + HCBT_KEYSKIPPED,
           84  + HCBT_SYSCOMMAND,
           85  + HCBT_SETFOCUS // = 9
           86  +}
           87  +
           88  +enum {
           89  + CF_TEXT = 1,
           90  + CF_BITMAP,
           91  + CF_METAFILEPICT,
           92  + CF_SYLK,
           93  + CF_DIF,
           94  + CF_TIFF,
           95  + CF_OEMTEXT,
           96  + CF_DIB,
           97  + CF_PALETTE,
           98  + CF_PENDATA,
           99  + CF_RIFF,
          100  + CF_WAVE,
          101  + CF_UNICODETEXT,
          102  + CF_ENHMETAFILE,
          103  + CF_HDROP,
          104  + CF_LOCALE,
          105  + CF_MAX, // = 17
          106  + CF_OWNERDISPLAY   = 128,
          107  + CF_DSPTEXT,
          108  + CF_DSPBITMAP,
          109  + CF_DSPMETAFILEPICT, // = 131
          110  + CF_DSPENHMETAFILE = 142,
          111  + CF_PRIVATEFIRST   = 512,
          112  + CF_PRIVATELAST    = 767,
          113  + CF_GDIOBJFIRST    = 768,
          114  + CF_GDIOBJLAST     = 1023
          115  +}
          116  +
          117  +const HKL_PREV = 0;
          118  +const HKL_NEXT = 1;
          119  +
          120  +const KLF_ACTIVATE       = 1;
          121  +const KLF_SUBSTITUTE_OK  = 2;
          122  +const KLF_UNLOADPREVIOUS = 4;
          123  +const KLF_REORDER        = 8;
          124  +const KLF_REPLACELANG    = 16;
          125  +const KLF_NOTELLSHELL    = 128;
          126  +const KLF_SETFORPROCESS  = 256;
          127  +const KL_NAMELENGTH      = 9;
          128  +
          129  +const MF_ENABLED = 0;
          130  +const MF_GRAYED = 1;
          131  +const MF_DISABLED = 2;
          132  +const MF_BITMAP = 4;
          133  +const MF_CHECKED = 8;
          134  +const MF_MENUBARBREAK = 32;
          135  +const MF_MENUBREAK = 64;
          136  +const MF_OWNERDRAW = 256;
          137  +const MF_POPUP = 16;
          138  +const MF_SEPARATOR = 0x800;
          139  +const MF_STRING = 0;
          140  +const MF_UNCHECKED = 0;
          141  +const MF_DEFAULT = 4096;
          142  +const MF_SYSMENU = 0x2000;
          143  +const MF_HELP = 0x4000;
          144  +const MF_END = 128;
          145  +const MF_RIGHTJUSTIFY = 0x4000;
          146  +const MF_MOUSESELECT = 0x8000;
          147  +const MF_INSERT = 0;
          148  +const MF_CHANGE = 128;
          149  +const MF_APPEND = 256;
          150  +const MF_DELETE = 512;
          151  +const MF_REMOVE = 4096;
          152  +const MF_USECHECKBITMAPS = 512;
          153  +const MF_UNHILITE = 0;
          154  +const MF_HILITE = 128;
          155  +
          156  +// Also defined in dbt.h
          157  +const BSM_ALLCOMPONENTS      = 0;
          158  +const BSM_VXDS               = 1;
          159  +const BSM_NETDRIVER          = 2;
          160  +const BSM_INSTALLABLEDRIVERS = 4;
          161  +const BSM_APPLICATIONS       = 8;
          162  +const BSM_ALLDESKTOPS        = 16;
          163  +
          164  +const BSF_QUERY              = 0x00000001;
          165  +const BSF_IGNORECURRENTTASK  = 0x00000002;
          166  +const BSF_FLUSHDISK          = 0x00000004;
          167  +const BSF_NOHANG             = 0x00000008;
          168  +const BSF_POSTMESSAGE        = 0x00000010;
          169  +const BSF_FORCEIFHUNG        = 0x00000020;
          170  +const BSF_NOTIMEOUTIFNOTHUNG = 0x00000040;
          171  +
          172  +static if (_WIN32_WINNT >= 0x500) {
          173  + const BSF_ALLOWSFW          = 0x00000080;
          174  + const BSF_SENDNOTIFYMESSAGE = 0x00000100;
          175  +}
          176  +static if (_WIN32_WINNT >= 0x501) {
          177  + const BSF_RETURNHDESK       = 0x00000200;
          178  + const BSF_LUID              = 0x00000400;
          179  +}
          180  +
          181  +const BROADCAST_QUERY_DENY = 1112363332;
          182  +const DWORD ENUM_CURRENT_SETTINGS  = -1;
          183  +const DWORD ENUM_REGISTRY_SETTINGS = -2;
          184  +
          185  +const CDS_UPDATEREGISTRY = 1;
          186  +const CDS_TEST           = 2;
          187  +const CDS_FULLSCREEN     = 4;
          188  +const CDS_GLOBAL         = 8;
          189  +const CDS_SET_PRIMARY    = 16;
          190  +const CDS_NORESET        = 0x10000000;
          191  +const CDS_SETRECT        = 0x20000000;
          192  +const CDS_RESET          = 0x40000000;
          193  +
          194  +const DISP_CHANGE_RESTART    = 1;
          195  +const DISP_CHANGE_SUCCESSFUL = 0;
          196  +const DISP_CHANGE_FAILED     = -1;
          197  +const DISP_CHANGE_BADMODE    = -2;
          198  +const DISP_CHANGE_NOTUPDATED = -3;
          199  +const DISP_CHANGE_BADFLAGS   = -4;
          200  +const DISP_CHANGE_BADPARAM   = -5;
          201  +
          202  +const BST_UNCHECKED     = 0;
          203  +const BST_CHECKED       = 1;
          204  +const BST_INDETERMINATE = 2;
          205  +const BST_PUSHED        = 4;
          206  +const BST_FOCUS         = 8;
          207  +
          208  +const MF_BYCOMMAND  = 0;
          209  +const MF_BYPOSITION = 1024;
          210  +// [Redefined] MF_UNCHECKED=0
          211  +// [Redefined] MF_HILITE=128
          212  +// [Redefined] MF_UNHILITE=0
          213  +
          214  +const CWP_ALL             = 0;
          215  +const CWP_SKIPINVISIBLE   = 1;
          216  +const CWP_SKIPDISABLED    = 2;
          217  +const CWP_SKIPTRANSPARENT = 4;
          218  +
          219  +const IMAGE_BITMAP=0;
          220  +const IMAGE_ICON=1;
          221  +const IMAGE_CURSOR=2;
          222  +const IMAGE_ENHMETAFILE=3;
          223  +
          224  +const DF_ALLOWOTHERACCOUNTHOOK = 1;
          225  +
          226  +const DESKTOP_READOBJECTS     = 1;
          227  +const DESKTOP_CREATEWINDOW    = 2;
          228  +const DESKTOP_CREATEMENU      = 4;
          229  +const DESKTOP_HOOKCONTROL     = 8;
          230  +const DESKTOP_JOURNALRECORD   = 16;
          231  +const DESKTOP_JOURNALPLAYBACK = 32;
          232  +const DESKTOP_ENUMERATE       = 64;
          233  +const DESKTOP_WRITEOBJECTS    = 128;
          234  +const DESKTOP_SWITCHDESKTOP   = 256;
          235  +
          236  +const CW_USEDEFAULT       = 0x80000000;
          237  +
          238  +enum {
          239  + WS_OVERLAPPED       = 0,
          240  + WS_TILED            = WS_OVERLAPPED,
          241  + WS_MAXIMIZEBOX      = 0x00010000,
          242  + WS_MINIMIZEBOX      = 0x00020000,
          243  + WS_TABSTOP          = 0x00010000,
          244  + WS_GROUP            = 0x00020000,
          245  + WS_THICKFRAME       = 0x00040000,
          246  + WS_SIZEBOX          = WS_THICKFRAME,
          247  + WS_SYSMENU          = 0x00080000,
          248  + WS_HSCROLL          = 0x00100000,
          249  + WS_VSCROLL          = 0x00200000,
          250  + WS_DLGFRAME         = 0x00400000,
          251  + WS_BORDER           = 0x00800000,
          252  + WS_CAPTION          = 0x00c00000,
          253  + WS_OVERLAPPEDWINDOW = WS_OVERLAPPED|WS_CAPTION|WS_SYSMENU|WS_THICKFRAME|WS_MINIMIZEBOX|WS_MAXIMIZEBOX,
          254  + WS_TILEDWINDOW      = WS_OVERLAPPEDWINDOW,
          255  + WS_MAXIMIZE         = 0x01000000,
          256  + WS_CLIPCHILDREN     = 0x02000000,
          257  + WS_CLIPSIBLINGS     = 0x04000000,
          258  + WS_DISABLED         = 0x08000000,
          259  + WS_VISIBLE          = 0x10000000,
          260  + WS_MINIMIZE         = 0x20000000,
          261  + WS_ICONIC           = WS_MINIMIZE,
          262  + WS_CHILD            = 0x40000000,
          263  + WS_CHILDWINDOW      = 0x40000000,
          264  + WS_POPUP            = 0x80000000,
          265  + WS_POPUPWINDOW      = WS_POPUP|WS_BORDER|WS_SYSMENU,
          266  +}
          267  +
          268  +const MDIS_ALLCHILDSTYLES = 1;
          269  +
          270  +const BS_3STATE = 5;
          271  +const BS_AUTO3STATE = 6;
          272  +const BS_AUTOCHECKBOX = 3;
          273  +const BS_AUTORADIOBUTTON = 9;
          274  +const BS_BITMAP = 128;
          275  +const BS_BOTTOM = 0x800;
          276  +const BS_CENTER = 0x300;
          277  +const BS_CHECKBOX = 2;
          278  +const BS_DEFPUSHBUTTON = 1;
          279  +const BS_GROUPBOX = 7;
          280  +const BS_ICON = 64;
          281  +const BS_LEFT = 256;
          282  +const BS_LEFTTEXT = 32;
          283  +const BS_MULTILINE = 0x2000;
          284  +const BS_NOTIFY = 0x4000;
          285  +const BS_OWNERDRAW = 0xb;
          286  +const BS_PUSHBUTTON = 0;
          287  +const BS_PUSHLIKE = 4096;
          288  +const BS_RADIOBUTTON = 4;
          289  +const BS_RIGHT = 512;
          290  +const BS_RIGHTBUTTON = 32;
          291  +const BS_TEXT = 0;
          292  +const BS_TOP = 0x400;
          293  +const BS_USERBUTTON = 8;
          294  +const BS_VCENTER = 0xc00;
          295  +const BS_FLAT = 0x8000;
          296  +
          297  +const CBS_AUTOHSCROLL = 64;
          298  +const CBS_DISABLENOSCROLL = 0x800;
          299  +const CBS_DROPDOWN = 2;
          300  +const CBS_DROPDOWNLIST = 3;
          301  +const CBS_HASSTRINGS = 512;
          302  +const CBS_LOWERCASE = 0x4000;
          303  +const CBS_NOINTEGRALHEIGHT = 0x400;
          304  +const CBS_OEMCONVERT = 128;
          305  +const CBS_OWNERDRAWFIXED = 16;
          306  +const CBS_OWNERDRAWVARIABLE = 32;
          307  +const CBS_SIMPLE = 1;
          308  +const CBS_SORT = 256;
          309  +const CBS_UPPERCASE = 0x2000;
          310  +
          311  +const ES_AUTOHSCROLL = 128;
          312  +const ES_AUTOVSCROLL = 64;
          313  +const ES_CENTER = 1;
          314  +const ES_LEFT = 0;
          315  +const ES_LOWERCASE = 16;
          316  +const ES_MULTILINE = 4;
          317  +const ES_NOHIDESEL = 256;
          318  +const ES_NUMBER = 0x2000;
          319  +const ES_OEMCONVERT = 0x400;
          320  +const ES_PASSWORD = 32;
          321  +const ES_READONLY = 0x800;
          322  +const ES_RIGHT = 2;
          323  +const ES_UPPERCASE = 8;
          324  +const ES_WANTRETURN = 4096;
          325  +
          326  +const LBS_DISABLENOSCROLL = 4096;
          327  +const LBS_EXTENDEDSEL = 0x800;
          328  +const LBS_HASSTRINGS = 64;
          329  +const LBS_MULTICOLUMN = 512;
          330  +const LBS_MULTIPLESEL = 8;
          331  +const LBS_NODATA = 0x2000;
          332  +const LBS_NOINTEGRALHEIGHT = 256;
          333  +const LBS_NOREDRAW = 4;
          334  +const LBS_NOSEL = 0x4000;
          335  +const LBS_NOTIFY = 1;
          336  +const LBS_OWNERDRAWFIXED = 16;
          337  +const LBS_OWNERDRAWVARIABLE = 32;
          338  +const LBS_SORT = 2;
          339  +const LBS_STANDARD = 0xa00003;
          340  +const LBS_USETABSTOPS = 128;
          341  +const LBS_WANTKEYBOARDINPUT = 0x400;
          342  +
          343  +const SBS_BOTTOMALIGN = 4;
          344  +const SBS_HORZ = 0;
          345  +const SBS_LEFTALIGN = 2;
          346  +const SBS_RIGHTALIGN = 4;
          347  +const SBS_SIZEBOX = 8;
          348  +const SBS_SIZEBOXBOTTOMRIGHTALIGN = 4;
          349  +const SBS_SIZEBOXTOPLEFTALIGN = 2;
          350  +const SBS_SIZEGRIP = 16;
          351  +const SBS_TOPALIGN = 2;
          352  +const SBS_VERT = 1;
          353  +
          354  +const SS_BITMAP = 14;
          355  +const SS_BLACKFRAME = 7;
          356  +const SS_BLACKRECT = 4;
          357  +const SS_CENTER = 1;
          358  +const SS_CENTERIMAGE = 512;
          359  +const SS_ENHMETAFILE = 15;
          360  +const SS_ETCHEDFRAME = 18;
          361  +const SS_ETCHEDHORZ = 16;
          362  +const SS_ETCHEDVERT = 17;
          363  +const SS_GRAYFRAME = 8;
          364  +const SS_GRAYRECT = 5;
          365  +const SS_ICON = 3;
          366  +const SS_LEFT = 0;
          367  +const SS_LEFTNOWORDWRAP = 0xc;
          368  +const SS_NOPREFIX = 128;
          369  +const SS_NOTIFY = 256;
          370  +const SS_OWNERDRAW = 0xd;
          371  +const SS_REALSIZEIMAGE = 0x800;
          372  +const SS_RIGHT = 2;
          373  +const SS_RIGHTJUST = 0x400;
          374  +const SS_SIMPLE = 11;
          375  +const SS_SUNKEN = 4096;
          376  +const SS_WHITEFRAME = 9;
          377  +const SS_WHITERECT = 6;
          378  +const SS_USERITEM = 10;
          379  +const SS_TYPEMASK = 0x0000001FL;
          380  +const SS_ENDELLIPSIS = 0x00004000L;
          381  +const SS_PATHELLIPSIS = 0x00008000L;
          382  +const SS_WORDELLIPSIS = 0x0000C000L;
          383  +const SS_ELLIPSISMASK = 0x0000C000L;
          384  +
          385  +const DS_ABSALIGN      = 0x0001;
          386  +const DS_3DLOOK        = 0x0004;
          387  +const DS_SYSMODAL      = 0x0002;
          388  +const DS_FIXEDSYS      = 0x0008;
          389  +const DS_NOFAILCREATE  = 0x0010;
          390  +const DS_LOCALEDIT     = 0x0020;
          391  +const DS_SETFONT       = 0x0040;
          392  +const DS_MODALFRAME    = 0x0080;
          393  +const DS_NOIDLEMSG     = 0x0100;
          394  +const DS_SETFOREGROUND = 0x0200;
          395  +const DS_CONTROL       = 0x0400;
          396  +const DS_CENTER        = 0x0800;
          397  +const DS_CENTERMOUSE   = 0x1000;
          398  +const DS_CONTEXTHELP   = 0x2000;
          399  +const DS_SHELLFONT     = DS_SETFONT | DS_FIXEDSYS;
          400  +
          401  +const WS_EX_ACCEPTFILES = 16;
          402  +const WS_EX_APPWINDOW = 0x40000;
          403  +const WS_EX_CLIENTEDGE = 512;
          404  +const WS_EX_COMPOSITED = 0x2000000;  // XP
          405  +const WS_EX_CONTEXTHELP = 0x400;
          406  +const WS_EX_CONTROLPARENT = 0x10000;
          407  +const WS_EX_DLGMODALFRAME = 1;
          408  +const WS_EX_LAYERED = 0x80000;  // w2k
          409  +const WS_EX_LAYOUTRTL = 0x400000;  // w98, w2k
          410  +const WS_EX_LEFT = 0;
          411  +const WS_EX_LEFTSCROLLBAR = 0x4000;
          412  +const WS_EX_LTRREADING = 0;
          413  +const WS_EX_MDICHILD = 64;
          414  +const WS_EX_NOACTIVATE = 0x8000000;  // w2k
          415  +const WS_EX_NOINHERITLAYOUT = 0x100000;  // w2k
          416  +const WS_EX_NOPARENTNOTIFY = 4;
          417  +const WS_EX_OVERLAPPEDWINDOW = 0x300;
          418  +const WS_EX_PALETTEWINDOW = 0x188;
          419  +const WS_EX_RIGHT = 0x1000;
          420  +const WS_EX_RIGHTSCROLLBAR = 0;
          421  +const WS_EX_RTLREADING = 0x2000;
          422  +const WS_EX_STATICEDGE = 0x20000;
          423  +const WS_EX_TOOLWINDOW = 128;
          424  +const WS_EX_TOPMOST = 8;
          425  +const WS_EX_TRANSPARENT = 32;
          426  +const WS_EX_WINDOWEDGE = 256;
          427  +
          428  +const WINSTA_ENUMDESKTOPS      = 1;
          429  +const WINSTA_READATTRIBUTES    = 2;
          430  +const WINSTA_ACCESSCLIPBOARD   = 4;
          431  +const WINSTA_CREATEDESKTOP     = 8;
          432  +const WINSTA_WRITEATTRIBUTES   = 16;
          433  +const WINSTA_ACCESSGLOBALATOMS = 32;
          434  +const WINSTA_EXITWINDOWS       = 64;
          435  +const WINSTA_ENUMERATE         = 256;
          436  +const WINSTA_READSCREEN        = 512;
          437  +
          438  +const DDL_READWRITE = 0;
          439  +const DDL_READONLY  = 1;
          440  +const DDL_HIDDEN    = 2;
          441  +const DDL_SYSTEM    = 4;
          442  +const DDL_DIRECTORY = 16;
          443  +const DDL_ARCHIVE   = 32;
          444  +const DDL_POSTMSGS  = 8192;
          445  +const DDL_DRIVES    = 16384;
          446  +const DDL_EXCLUSIVE = 32768;
          447  +
          448  +const DC_ACTIVE   = 0x00000001;
          449  +const DC_SMALLCAP = 0x00000002;
          450  +const DC_ICON     = 0x00000004;
          451  +const DC_TEXT     = 0x00000008;
          452  +const DC_INBUTTON = 0x00000010;
          453  +
          454  +static if (WINVER >= 0x500) {
          455  +const DC_GRADIENT=0x00000020;
          456  +}
          457  +static if (_WIN32_WINNT >= 0x501) {
          458  +const DC_BUTTONS=0x00001000;
          459  +}
          460  +
          461  +// Where are these documented?
          462  +//const DC_CAPTION = DC_ICON|DC_TEXT|DC_BUTTONS;
          463  +//const DC_NC      = DC_CAPTION|DC_FRAME;
          464  +
          465  +const BDR_RAISEDOUTER = 1;
          466  +const BDR_SUNKENOUTER = 2;
          467  +const BDR_RAISEDINNER = 4;
          468  +const BDR_SUNKENINNER = 8;
          469  +const BDR_OUTER       = 3;
          470  +const BDR_INNER       = 0xc;
          471  +const BDR_RAISED      = 5;
          472  +const BDR_SUNKEN      = 10;
          473  +
          474  +const EDGE_RAISED = BDR_RAISEDOUTER|BDR_RAISEDINNER;
          475  +const EDGE_SUNKEN = BDR_SUNKENOUTER|BDR_SUNKENINNER;
          476  +const EDGE_ETCHED = BDR_SUNKENOUTER|BDR_RAISEDINNER;
          477  +const EDGE_BUMP   = BDR_RAISEDOUTER|BDR_SUNKENINNER;
          478  +
          479  +const BF_LEFT                    = 1;
          480  +const BF_TOP                     = 2;
          481  +const BF_RIGHT                   = 4;
          482  +const BF_BOTTOM                  = 8;
          483  +const BF_TOPLEFT                 = BF_TOP|BF_LEFT;
          484  +const BF_TOPRIGHT                = BF_TOP|BF_RIGHT;
          485  +const BF_BOTTOMLEFT              = BF_BOTTOM|BF_LEFT;
          486  +const BF_BOTTOMRIGHT             = BF_BOTTOM|BF_RIGHT;
          487  +const BF_RECT                    = BF_LEFT|BF_TOP|BF_RIGHT|BF_BOTTOM ;
          488  +const BF_DIAGONAL                = 16;
          489  +const BF_DIAGONAL_ENDTOPRIGHT    = BF_DIAGONAL|BF_TOP|BF_RIGHT;
          490  +const BF_DIAGONAL_ENDTOPLEFT     = BF_DIAGONAL|BF_TOP|BF_LEFT;
          491  +const BF_DIAGONAL_ENDBOTTOMLEFT  = BF_DIAGONAL|BF_BOTTOM|BF_LEFT;
          492  +const BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL|BF_BOTTOM|BF_RIGHT;
          493  +const BF_MIDDLE                  = 0x800;
          494  +const BF_SOFT                    = 0x1000;
          495  +const BF_ADJUST                  = 0x2000;
          496  +const BF_FLAT                    = 0x4000;
          497  +const BF_MONO                    = 0x8000;
          498  +
          499  +const DFC_CAPTION=1;
          500  +const DFC_MENU=2;
          501  +const DFC_SCROLL=3;
          502  +const DFC_BUTTON=4;
          503  +static if (WINVER >= 0x500) {
          504  +const DFC_POPUPMENU=5;
          505  +}// WINVER >= 0x500
          506  +
          507  +const DFCS_CAPTIONCLOSE   = 0;
          508  +const DFCS_CAPTIONMIN     = 1;
          509  +const DFCS_CAPTIONMAX     = 2;
          510  +const DFCS_CAPTIONRESTORE = 3;
          511  +const DFCS_CAPTIONHELP    = 4;
          512  +
          513  +const DFCS_MENUARROW      = 0;
          514  +const DFCS_MENUCHECK      = 1;
          515  +const DFCS_MENUBULLET     = 2;
          516  +const DFCS_MENUARROWRIGHT = 4;
          517  +
          518  +const DFCS_SCROLLUP            = 0;
          519  +const DFCS_SCROLLDOWN          = 1;
          520  +const DFCS_SCROLLLEFT          = 2;
          521  +const DFCS_SCROLLRIGHT         = 3;
          522  +const DFCS_SCROLLCOMBOBOX      = 5;
          523  +const DFCS_SCROLLSIZEGRIP      = 8;
          524  +const DFCS_SCROLLSIZEGRIPRIGHT = 16;
          525  +
          526  +const DFCS_BUTTONCHECK         = 0;
          527  +const DFCS_BUTTONRADIOIMAGE    = 1;
          528  +const DFCS_BUTTONRADIOMASK     = 2;
          529  +const DFCS_BUTTONRADIO         = 4;
          530  +const DFCS_BUTTON3STATE        = 8;
          531  +const DFCS_BUTTONPUSH          = 16;
          532  +const DFCS_INACTIVE            = 256;
          533  +const DFCS_PUSHED              = 512;
          534  +const DFCS_CHECKED             = 1024;
          535  +static if (WINVER >= 0x500) {
          536  +const DFCS_TRANSPARENT         = 0x800;
          537  +const DFCS_HOT                 = 0x1000;
          538  +}
          539  +const DFCS_ADJUSTRECT          = 0x2000;
          540  +const DFCS_FLAT                = 0x4000;
          541  +const DFCS_MONO                = 0x8000;
          542  +
          543  +enum {
          544  + DST_COMPLEX = 0,
          545  + DST_TEXT,
          546  + DST_PREFIXTEXT,
          547  + DST_ICON,
          548  + DST_BITMAP // = 4
          549  +}
          550  +
          551  +const DSS_NORMAL = 0;
          552  +const DSS_UNION = 16;
          553  +const DSS_DISABLED = 32;
          554  +const DSS_MONO = 128;
          555  +const DSS_RIGHT = 0x8000;
          556  +
          557  +const DT_BOTTOM = 8;
          558  +const DT_CALCRECT = 1024;
          559  +const DT_CENTER = 1;
          560  +const DT_EDITCONTROL = 8192;
          561  +const DT_END_ELLIPSIS = 32768;
          562  +const DT_PATH_ELLIPSIS = 16384;
          563  +const DT_WORD_ELLIPSIS = 0x40000;
          564  +const DT_EXPANDTABS = 64;
          565  +const DT_EXTERNALLEADING = 512;
          566  +const DT_LEFT = 0;
          567  +const DT_MODIFYSTRING = 65536;
          568  +const DT_NOCLIP = 256;
          569  +const DT_NOPREFIX = 2048;
          570  +const DT_RIGHT = 2;
          571  +const DT_RTLREADING = 131072;
          572  +const DT_SINGLELINE = 32;
          573  +const DT_TABSTOP = 128;
          574  +const DT_TOP = 0;
          575  +const DT_VCENTER = 4;
          576  +const DT_WORDBREAK = 16;
          577  +const DT_INTERNAL = 4096;
          578  +
          579  +const WB_ISDELIMITER = 2;
          580  +const WB_LEFT = 0;
          581  +const WB_RIGHT = 1;
          582  +
          583  +const SB_HORZ = 0;
          584  +const SB_VERT = 1;
          585  +const SB_CTL = 2;
          586  +const SB_BOTH = 3;
          587  +
          588  +const ESB_DISABLE_BOTH = 3;
          589  +const ESB_DISABLE_DOWN = 2;
          590  +const ESB_DISABLE_LEFT = 1;
          591  +const ESB_DISABLE_LTUP = 1;
          592  +const ESB_DISABLE_RIGHT = 2;
          593  +const ESB_DISABLE_RTDN = 2;
          594  +const ESB_DISABLE_UP = 1;
          595  +const ESB_ENABLE_BOTH = 0;
          596  +
          597  +const SB_LINEUP = 0;
          598  +const SB_LINEDOWN = 1;
          599  +const SB_LINELEFT = 0;
          600  +const SB_LINERIGHT = 1;
          601  +const SB_PAGEUP = 2;
          602  +const SB_PAGEDOWN = 3;
          603  +const SB_PAGELEFT = 2;
          604  +const SB_PAGERIGHT = 3;
          605  +const SB_THUMBPOSITION = 4;
          606  +const SB_THUMBTRACK = 5;
          607  +const SB_ENDSCROLL = 8;
          608  +const SB_LEFT = 6;
          609  +const SB_RIGHT = 7;
          610  +const SB_BOTTOM = 7;
          611  +const SB_TOP = 6;
          612  +
          613  +//MACRO #define IS_INTRESOURCE(i) (((ULONG_PTR)(i) >> 16) == 0)
          614  +
          615  +template MAKEINTRESOURCE_T (WORD i)
          616  +{
          617  + const LPTSTR MAKEINTRESOURCE_T = cast(LPTSTR)(i);
          618  +}
          619  +
          620  +LPSTR MAKEINTRESOURCEA(WORD i)
          621  +{
          622  + return cast(LPSTR)(i);
          623  +}
          624  +
          625  +LPWSTR MAKEINTRESOURCEW(WORD i)
          626  +{
          627  + return cast(LPWSTR)(i);
          628  +}
          629  +
          630  +const RT_CURSOR       = MAKEINTRESOURCE_T!(1);
          631  +const RT_BITMAP       = MAKEINTRESOURCE_T!(2);
          632  +const RT_ICON         = MAKEINTRESOURCE_T!(3);
          633  +const RT_MENU         = MAKEINTRESOURCE_T!(4);
          634  +const RT_DIALOG       = MAKEINTRESOURCE_T!(5);
          635  +const RT_STRING       = MAKEINTRESOURCE_T!(6);
          636  +const RT_FONTDIR      = MAKEINTRESOURCE_T!(7);
          637  +const RT_FONT         = MAKEINTRESOURCE_T!(8);
          638  +const RT_ACCELERATOR  = MAKEINTRESOURCE_T!(9);
          639  +const RT_RCDATA       = MAKEINTRESOURCE_T!(10);
          640  +const RT_MESSAGETABLE = MAKEINTRESOURCE_T!(11);
          641  +
          642  +const RT_GROUP_CURSOR = MAKEINTRESOURCE_T!(12);
          643  +const RT_GROUP_ICON   = MAKEINTRESOURCE_T!(14);
          644  +const RT_VERSION      = MAKEINTRESOURCE_T!(16);
          645  +const RT_DLGINCLUDE   = MAKEINTRESOURCE_T!(17);
          646  +const RT_PLUGPLAY     = MAKEINTRESOURCE_T!(19);
          647  +const RT_VXD          = MAKEINTRESOURCE_T!(20);
          648  +const RT_ANICURSOR    = MAKEINTRESOURCE_T!(21);
          649  +const RT_ANIICON      = MAKEINTRESOURCE_T!(22);
          650  +const RT_HTML         = MAKEINTRESOURCE_T!(23);
          651  +const RT_MANIFEST     = MAKEINTRESOURCE_T!(24);
          652  +
          653  +const CREATEPROCESS_MANIFEST_RESOURCE_ID                 = MAKEINTRESOURCE_T!(1);
          654  +const ISOLATIONAWARE_MANIFEST_RESOURCE_ID                = MAKEINTRESOURCE_T!(2);
          655  +const ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = MAKEINTRESOURCE_T!(3);
          656  +
          657  +const EWX_LOGOFF   = 0;
          658  +const EWX_SHUTDOWN = 1;
          659  +const EWX_REBOOT   = 2;
          660  +const EWX_FORCE    = 4;
          661  +const EWX_POWEROFF = 8;
          662  +static if (_WIN32_WINNT >= 0x500) {
          663  +const EWX_FORCEIFHUNG = 16;
          664  +}
          665  +
          666  +const CS_BYTEALIGNCLIENT = 4096;
          667  +const CS_BYTEALIGNWINDOW = 8192;
          668  +const CS_KEYCVTWINDOW = 4;
          669  +const CS_NOKEYCVT = 256;
          670  +const CS_CLASSDC = 64;
          671  +const CS_DBLCLKS = 8;
          672  +const CS_GLOBALCLASS = 16384;
          673  +const CS_HREDRAW = 2;
          674  +const CS_NOCLOSE = 512;
          675  +const CS_OWNDC = 32;
          676  +const CS_PARENTDC = 128;
          677  +const CS_SAVEBITS = 2048;
          678  +const CS_VREDRAW = 1;
          679  +const CS_IME = 0x10000;
          680  +
          681  +const GCW_ATOM = -32;
          682  +const GCL_CBCLSEXTRA = -20;
          683  +const GCL_CBWNDEXTRA = -18;
          684  +const GCL_HBRBACKGROUND = -10;
          685  +const GCL_HCURSOR = -12;
          686  +const GCL_HICON = -14;
          687  +const GCL_HICONSM = -34;
          688  +const GCL_HMODULE = -16;
          689  +const GCL_MENUNAME = -8;
          690  +const GCL_STYLE = -26;
          691  +const GCL_WNDPROC = -24;
          692  +
          693  +alias GCL_HICONSM GCLP_HICONSM;
          694  +alias GCL_HICON GCLP_HICON;
          695  +alias GCL_HCURSOR GCLP_HCURSOR;
          696  +alias GCL_HBRBACKGROUND GCLP_HBRBACKGROUND;
          697  +alias GCL_HMODULE  GCLP_HMODULE;
          698  +alias GCL_MENUNAME GCLP_MENUNAME;
          699  +alias GCL_WNDPROC  GCLP_WNDPROC;
          700  +
          701  +const IDC_ARROW       = MAKEINTRESOURCE_T!(32512);
          702  +const IDC_IBEAM       = MAKEINTRESOURCE_T!(32513);
          703  +const IDC_WAIT        = MAKEINTRESOURCE_T!(32514);
          704  +const IDC_CROSS       = MAKEINTRESOURCE_T!(32515);
          705  +const IDC_UPARROW     = MAKEINTRESOURCE_T!(32516);
          706  +const IDC_SIZENWSE    = MAKEINTRESOURCE_T!(32642);
          707  +const IDC_SIZENESW    = MAKEINTRESOURCE_T!(32643);
          708  +const IDC_SIZEWE      = MAKEINTRESOURCE_T!(32644);
          709  +const IDC_SIZENS      = MAKEINTRESOURCE_T!(32645);
          710  +const IDC_SIZEALL     = MAKEINTRESOURCE_T!(32646);
          711  +const IDC_NO          = MAKEINTRESOURCE_T!(32648);
          712  +const IDC_HAND        = MAKEINTRESOURCE_T!(32649);
          713  +const IDC_APPSTARTING = MAKEINTRESOURCE_T!(32650);
          714  +const IDC_HELP        = MAKEINTRESOURCE_T!(32651);
          715  +const IDC_ICON        = MAKEINTRESOURCE_T!(32641);
          716  +const IDC_SIZE        = MAKEINTRESOURCE_T!(32640);
          717  +const IDI_APPLICATION = MAKEINTRESOURCE_T!(32512);
          718  +const IDI_HAND        = MAKEINTRESOURCE_T!(32513);
          719  +const IDI_QUESTION    = MAKEINTRESOURCE_T!(32514);
          720  +const IDI_EXCLAMATION = MAKEINTRESOURCE_T!(32515);
          721  +const IDI_ASTERISK    = MAKEINTRESOURCE_T!(32516);
          722  +const IDI_WINLOGO     = MAKEINTRESOURCE_T!(32517);
          723  +const IDI_WARNING     = IDI_EXCLAMATION;
          724  +const IDI_ERROR       = IDI_HAND;
          725  +const IDI_INFORMATION = IDI_ASTERISK;
          726  +
          727  +const MIIM_STATE = 1;
          728  +const MIIM_ID = 2;
          729  +const MIIM_SUBMENU = 4;
          730  +const MIIM_CHECKMARKS = 8;
          731  +const MIIM_TYPE = 16;
          732  +const MIIM_DATA = 32;
          733  +const MIIM_STRING = 64;
          734  +const MIIM_BITMAP = 128;
          735  +const MIIM_FTYPE = 256;
          736  +
          737  +static if (WINVER >= 0x500) {
          738  +
          739  +const MIM_MAXHEIGHT = 1;
          740  +const MIM_BACKGROUND = 2;
          741  +const MIM_HELPID = 4;
          742  +const MIM_MENUDATA = 8;
          743  +const MIM_STYLE = 16;
          744  +const MIM_APPLYTOSUBMENUS = 0x80000000L;
          745  +
          746  +const MNS_NOCHECK = 0x80000000;
          747  +const MNS_MODELESS = 0x40000000;
          748  +const MNS_DRAGDROP = 0x20000000;
          749  +const MNS_AUTODISMISS = 0x10000000;
          750  +const MNS_NOTIFYBYPOS = 0x08000000;
          751  +const MNS_CHECKORBMP = 0x04000000;
          752  +
          753  +}
          754  +
          755  +const MFT_BITMAP = 4;
          756  +const MFT_MENUBARBREAK = 32;
          757  +const MFT_MENUBREAK = 64;
          758  +const MFT_OWNERDRAW = 256;
          759  +const MFT_RADIOCHECK = 512;
          760  +const MFT_RIGHTJUSTIFY = 0x4000;
          761  +const MFT_SEPARATOR = 0x800;
          762  +const MFT_RIGHTORDER = 0x2000L;
          763  +const MFT_STRING = 0;
          764  +
          765  +const MFS_CHECKED = 8;
          766  +const MFS_DEFAULT = 4096;
          767  +const MFS_DISABLED = 3;
          768  +const MFS_ENABLED = 0;
          769  +const MFS_GRAYED = 3;
          770  +const MFS_HILITE = 128;
          771  +const MFS_UNCHECKED = 0;
          772  +const MFS_UNHILITE = 0;
          773  +
          774  +const GW_HWNDNEXT = 2;
          775  +const GW_HWNDPREV = 3;
          776  +const GW_CHILD = 5;
          777  +const GW_HWNDFIRST = 0;
          778  +const GW_HWNDLAST = 1;
          779  +const GW_OWNER = 4;
          780  +
          781  +const SW_HIDE = 0;
          782  +const SW_NORMAL = 1;
          783  +const SW_SHOWNORMAL = 1;
          784  +const SW_SHOWMINIMIZED = 2;
          785  +const SW_MAXIMIZE = 3;
          786  +const SW_SHOWMAXIMIZED = 3;
          787  +const SW_SHOWNOACTIVATE = 4;
          788  +const SW_SHOW = 5;
          789  +const SW_MINIMIZE = 6;
          790  +const SW_SHOWMINNOACTIVE = 7;
          791  +const SW_SHOWNA = 8;
          792  +const SW_RESTORE = 9;
          793  +const SW_SHOWDEFAULT = 10;
          794  +const SW_FORCEMINIMIZE = 11;
          795  +const SW_MAX = 11;
          796  +
          797  +const MB_USERICON = 128;
          798  +const MB_ICONASTERISK = 64;
          799  +const MB_ICONEXCLAMATION = 0x30;
          800  +const MB_ICONWARNING = 0x30;
          801  +const MB_ICONERROR = 16;
          802  +const MB_ICONHAND = 16;
          803  +const MB_ICONQUESTION = 32;
          804  +const MB_OK = 0;
          805  +const MB_ABORTRETRYIGNORE = 2;
          806  +const MB_APPLMODAL = 0;
          807  +const MB_DEFAULT_DESKTOP_ONLY = 0x20000;
          808  +const MB_HELP = 0x4000;
          809  +const MB_RIGHT = 0x80000;
          810  +const MB_RTLREADING = 0x100000;
          811  +const MB_TOPMOST = 0x40000;
          812  +const MB_DEFBUTTON1 = 0;
          813  +const MB_DEFBUTTON2 = 256;
          814  +const MB_DEFBUTTON3 = 512;
          815  +const MB_DEFBUTTON4 = 0x300;
          816  +const MB_ICONINFORMATION = 64;
          817  +const MB_ICONSTOP = 16;
          818  +const MB_OKCANCEL = 1;
          819  +const MB_RETRYCANCEL = 5;
          820  +
          821  +static if (_WIN32_WINNT_ONLY) {
          822  + static if (_WIN32_WINNT >= 0x400) {
          823  +  const MB_SERVICE_NOTIFICATION = 0x00200000;
          824  + } else {
          825  +  const MB_SERVICE_NOTIFICATION = 0x00040000;
          826  + }
          827  + const MB_SERVICE_NOTIFICATION_NT3X = 0x00040000;
          828  +}
          829  +
          830  +const MB_SETFOREGROUND = 0x10000;
          831  +const MB_SYSTEMMODAL = 4096;
          832  +const MB_TASKMODAL = 0x2000;
          833  +const MB_YESNO = 4;
          834  +const MB_YESNOCANCEL = 3;
          835  +const MB_ICONMASK = 240;
          836  +const MB_DEFMASK = 3840;
          837  +const MB_MODEMASK = 0x00003000;
          838  +const MB_MISCMASK = 0x0000C000;
          839  +const MB_NOFOCUS = 0x00008000;
          840  +const MB_TYPEMASK = 15;
          841  +// [Redefined] MB_TOPMOST=0x40000
          842  +static if (WINVER >= 0x500) {
          843  + const MB_CANCELTRYCONTINUE=6;
          844  +}
          845  +
          846  +const IDOK       = 1;
          847  +const IDCANCEL   = 2;
          848  +const IDABORT    = 3;
          849  +const IDRETRY    = 4;
          850  +const IDIGNORE   = 5;
          851  +const IDYES      = 6;
          852  +const IDNO       = 7;
          853  +static if (WINVER >= 0x400) {
          854  +const IDCLOSE    = 8;
          855  +const IDHELP     = 9;
          856  +}
          857  +static if (WINVER >= 0x500) {
          858  +const IDTRYAGAIN = 10;
          859  +const IDCONTINUE = 11;
          860  +}
          861  +
          862  +const GWL_EXSTYLE = -20;
          863  +const GWL_STYLE = -16;
          864  +const GWL_WNDPROC = -4;
          865  +const GWLP_WNDPROC = -4;
          866  +const GWL_HINSTANCE = -6;
          867  +const GWLP_HINSTANCE = -6;
          868  +const GWL_HWNDPARENT = -8;
          869  +const GWLP_HWNDPARENT = -8;
          870  +const GWL_ID = -12;
          871  +const GWLP_ID = -12;
          872  +const GWL_USERDATA = -21;
          873  +const GWLP_USERDATA = -21;
          874  +
          875  +const DWL_DLGPROC = 4;
          876  +const DWLP_DLGPROC = 4;
          877  +const DWL_MSGRESULT = 0;
          878  +const DWLP_MSGRESULT = 0;
          879  +const DWL_USER = 8;
          880  +const DWLP_USER = 8;
          881  +
          882  +const QS_KEY            = 1;
          883  +const QS_MOUSEMOVE      = 2;
          884  +const QS_MOUSEBUTTON    = 4;
          885  +const QS_MOUSE          = 6;
          886  +const QS_POSTMESSAGE    = 8;
          887  +const QS_TIMER          = 16;
          888  +const QS_PAINT          = 32;
          889  +const QS_SENDMESSAGE    = 64;
          890  +const QS_HOTKEY         = 128;
          891  +const QS_ALLPOSTMESSAGE = 256;
          892  +static if (_WIN32_WINNT >= 0x501) {
          893  +const QS_RAWINPUT       = 1024;
          894  +const QS_INPUT          = 1031;
          895  +const QS_ALLEVENTS      = 1215;
          896  +const QS_ALLINPUT       = 1279;
          897  +} else {
          898  +const QS_INPUT          = 7;
          899  +const QS_ALLEVENTS      = 191;
          900  +const QS_ALLINPUT       = 255;
          901  +}
          902  +
          903  +const MWMO_WAITALL        = 1;
          904  +const MWMO_ALERTABLE      = 2;
          905  +const MWMO_INPUTAVAILABLE = 4;
          906  +
          907  +const COLOR_3DDKSHADOW=21;
          908  +const COLOR_3DFACE=15;
          909  +const COLOR_3DHILIGHT=20;
          910  +const COLOR_3DHIGHLIGHT=20;
          911  +const COLOR_3DLIGHT=22;
          912  +const COLOR_BTNHILIGHT=20;
          913  +const COLOR_3DSHADOW=16;
          914  +const COLOR_ACTIVEBORDER=10;
          915  +const COLOR_ACTIVECAPTION=2;
          916  +const COLOR_APPWORKSPACE=12;
          917  +const COLOR_BACKGROUND=1;
          918  +const COLOR_DESKTOP=1;
          919  +const COLOR_BTNFACE=15;
          920  +const COLOR_BTNHIGHLIGHT=20;
          921  +const COLOR_BTNSHADOW=16;
          922  +const COLOR_BTNTEXT=18;
          923  +const COLOR_CAPTIONTEXT=9;
          924  +const COLOR_GRAYTEXT=17;
          925  +const COLOR_HIGHLIGHT=13;
          926  +const COLOR_HIGHLIGHTTEXT=14;
          927  +const COLOR_INACTIVEBORDER=11;
          928  +const COLOR_INACTIVECAPTION=3;
          929  +const COLOR_INACTIVECAPTIONTEXT=19;
          930  +const COLOR_INFOBK=24;
          931  +const COLOR_INFOTEXT=23;
          932  +const COLOR_MENU=4;
          933  +const COLOR_MENUTEXT=7;
          934  +const COLOR_SCROLLBAR=0;
          935  +const COLOR_WINDOW=5;
          936  +const COLOR_WINDOWFRAME=6;
          937  +const COLOR_WINDOWTEXT=8;
          938  +const COLOR_HOTLIGHT=26;
          939  +const COLOR_GRADIENTACTIVECAPTION=27;
          940  +const COLOR_GRADIENTINACTIVECAPTION=28;
          941  +
          942  +const CTLCOLOR_MSGBOX=0;
          943  +const CTLCOLOR_EDIT=1;
          944  +const CTLCOLOR_LISTBOX=2;
          945  +const CTLCOLOR_BTN=3;
          946  +const CTLCOLOR_DLG=4;
          947  +const CTLCOLOR_SCROLLBAR=5;
          948  +const CTLCOLOR_STATIC=6;
          949  +const CTLCOLOR_MAX=7;
          950  +
          951  +// For GetSystemMetrics()
          952  +enum : int {
          953  + SM_CXSCREEN = 0,
          954  + SM_CYSCREEN,
          955  + SM_CXVSCROLL,
          956  + SM_CYHSCROLL,
          957  + SM_CYCAPTION,
          958  + SM_CXBORDER,
          959  + SM_CYBORDER,
          960  + SM_CXDLGFRAME, // = 7,
          961  + SM_CXFIXEDFRAME = SM_CXDLGFRAME,
          962  + SM_CYDLGFRAME, // =8,
          963  + SM_CYFIXEDFRAME = SM_CYDLGFRAME,
          964  + SM_CYVTHUMB = 9,
          965  + SM_CXHTHUMB,
          966  + SM_CXICON,
          967  + SM_CYICON,
          968  + SM_CXCURSOR,
          969  + SM_CYCURSOR,
          970  + SM_CYMENU,
          971  + SM_CXFULLSCREEN,
          972  + SM_CYFULLSCREEN,
          973  + SM_CYKANJIWINDOW,
          974  + SM_MOUSEPRESENT,
          975  + SM_CYVSCROLL,
          976  + SM_CXHSCROLL,
          977  + SM_DEBUG,
          978  + SM_SWAPBUTTON,
          979  + SM_RESERVED1,
          980  + SM_RESERVED2,
          981  + SM_RESERVED3,
          982  + SM_RESERVED4,
          983  + SM_CXMIN,
          984  + SM_CYMIN,
          985  + SM_CXSIZE,
          986  + SM_CYSIZE,
          987  + SM_CXSIZEFRAME, // = 32,
          988  + SM_CXFRAME = SM_CXSIZEFRAME,
          989  + SM_CYSIZEFRAME, // = 33
          990  + SM_CYFRAME = SM_CYSIZEFRAME,
          991  + SM_CXMINTRACK,
          992  + SM_CYMINTRACK,
          993  + SM_CXDOUBLECLK,
          994  + SM_CYDOUBLECLK,
          995  + SM_CXICONSPACING,
          996  + SM_CYICONSPACING,
          997  + SM_MENUDROPALIGNMENT,
          998  + SM_PENWINDOWS,
          999  + SM_DBCSENABLED,
         1000  + SM_CMOUSEBUTTONS,
         1001  + SM_SECURE,
         1002  + SM_CXEDGE,
         1003  + SM_CYEDGE,
         1004  + SM_CXMINSPACING,
         1005  + SM_CYMINSPACING,
         1006  + SM_CXSMICON,
         1007  + SM_CYSMICON,
         1008  + SM_CYSMCAPTION,
         1009  + SM_CXSMSIZE,
         1010  + SM_CYSMSIZE,
         1011  + SM_CXMENUSIZE,
         1012  + SM_CYMENUSIZE,
         1013  + SM_ARRANGE,
         1014  + SM_CXMINIMIZED,
         1015  + SM_CYMINIMIZED,
         1016  + SM_CXMAXTRACK,
         1017  + SM_CYMAXTRACK,
         1018  + SM_CXMAXIMIZED,
         1019  + SM_CYMAXIMIZED,
         1020  + SM_NETWORK, // = 63
         1021  + SM_CLEANBOOT = 67,
         1022  + SM_CXDRAG,
         1023  + SM_CYDRAG,
         1024  + SM_SHOWSOUNDS,
         1025  + SM_CXMENUCHECK,
         1026  + SM_CYMENUCHECK,
         1027  + SM_SLOWMACHINE,
         1028  + SM_MIDEASTENABLED,
         1029  + // The next values aren't supported in Win95.
         1030  + SM_MOUSEWHEELPRESENT,
         1031  + SM_XVIRTUALSCREEN,
         1032  + SM_YVIRTUALSCREEN,
         1033  + SM_CXVIRTUALSCREEN,
         1034  + SM_CYVIRTUALSCREEN,
         1035  + SM_CMONITORS,
         1036  + SM_SAMEDISPLAYFORMAT,
         1037  + SM_IMMENABLED,
         1038  + SM_CXFOCUSBORDER,
         1039  + SM_CYFOCUSBORDER, // = 84
         1040  + SM_TABLETPC = 86,
         1041  + SM_MEDIACENTER = 87,
         1042  + SM_REMOTESESSION = 0x1000,
         1043  + // These are only for WinXP and later
         1044  + SM_SHUTTINGDOWN = 0x2000,
         1045  + SM_REMOTECONTROL = 0x2001
         1046  +}
         1047  +
         1048  +const ARW_BOTTOMLEFT=0;
         1049  +const ARW_BOTTOMRIGHT=1;
         1050  +const ARW_HIDE=8;
         1051  +const ARW_TOPLEFT=2;
         1052  +const ARW_TOPRIGHT=3;
         1053  +const ARW_DOWN=4;
         1054  +const ARW_LEFT=0;
         1055  +const ARW_RIGHT=0;
         1056  +const ARW_UP=4;
         1057  +
         1058  +const UOI_FLAGS=1;
         1059  +const UOI_NAME=2;
         1060  +const UOI_TYPE=3;
         1061  +const UOI_USER_SID=4;
         1062  +
         1063  +// For the fuLoad parameter of LoadImage()
         1064  +enum : UINT {
         1065  + LR_DEFAULTCOLOR     = 0,
         1066  + LR_MONOCHROME       = 1,
         1067  + LR_COLOR            = 2,
         1068  + LR_COPYRETURNORG    = 4,
         1069  + LR_COPYDELETEORG    = 8,
         1070  + LR_LOADFROMFILE     = 16,
         1071  + LR_LOADTRANSPARENT  = 32,
         1072  + LR_DEFAULTSIZE      = 64,
         1073  + LR_LOADREALSIZE     = 128,
         1074  + LR_LOADMAP3DCOLORS  = 4096,
         1075  + LR_CREATEDIBSECTION = 8192,
         1076  + LR_COPYFROMRESOURCE = 16384,
         1077  + LR_SHARED           = 32768
         1078  +}
         1079  +
         1080  +const KEYEVENTF_EXTENDEDKEY = 0x00000001;
         1081  +const KEYEVENTF_KEYUP       = 00000002;
         1082  +static if (_WIN32_WINNT >= 0x500) {
         1083  +const KEYEVENTF_UNICODE     = 0x00000004;
         1084  +const KEYEVENTF_SCANCODE    = 0x00000008;
         1085  +}
         1086  +
         1087  +const OBM_BTNCORNERS = 32758;
         1088  +const OBM_BTSIZE = 32761;
         1089  +const OBM_CHECK = 32760;
         1090  +const OBM_CHECKBOXES = 32759;
         1091  +const OBM_CLOSE = 32754;
         1092  +const OBM_COMBO = 32738;
         1093  +const OBM_DNARROW = 32752;
         1094  +const OBM_DNARROWD = 32742;
         1095  +const OBM_DNARROWI = 32736;
         1096  +const OBM_LFARROW = 32750;
         1097  +const OBM_LFARROWI = 32734;
         1098  +const OBM_LFARROWD = 32740;
         1099  +const OBM_MNARROW = 32739;
         1100  +const OBM_OLD_CLOSE = 32767;
         1101  +const OBM_OLD_DNARROW = 32764;
         1102  +const OBM_OLD_LFARROW = 32762;
         1103  +const OBM_OLD_REDUCE = 32757;
         1104  +const OBM_OLD_RESTORE = 32755;
         1105  +const OBM_OLD_RGARROW = 32763;
         1106  +const OBM_OLD_UPARROW = 32765;
         1107  +const OBM_OLD_ZOOM = 32756;
         1108  +const OBM_REDUCE = 32749;
         1109  +const OBM_REDUCED = 32746;
         1110  +const OBM_RESTORE = 32747;
         1111  +const OBM_RESTORED = 32744;
         1112  +const OBM_RGARROW = 32751;
         1113  +const OBM_RGARROWD = 32741;
         1114  +const OBM_RGARROWI = 32735;
         1115  +const OBM_SIZE = 32766;
         1116  +const OBM_UPARROW = 32753;
         1117  +const OBM_UPARROWD = 32743;
         1118  +const OBM_UPARROWI = 32737;
         1119  +const OBM_ZOOM = 32748;
         1120  +const OBM_ZOOMD = 32745;
         1121  +
         1122  +const OCR_NORMAL = 32512;
         1123  +const OCR_IBEAM = 32513;
         1124  +const OCR_WAIT = 32514;
         1125  +const OCR_CROSS = 32515;
         1126  +const OCR_UP = 32516;
         1127  +const OCR_SIZE = 32640;
         1128  +const OCR_ICON = 32641;
         1129  +const OCR_SIZENWSE = 32642;
         1130  +const OCR_SIZENESW = 32643;
         1131  +const OCR_SIZEWE = 32644;
         1132  +const OCR_SIZENS = 32645;
         1133  +const OCR_SIZEALL = 32646;
         1134  +const OCR_NO = 32648;
         1135  +const OCR_APPSTARTING = 32650;
         1136  +
         1137  +const OIC_SAMPLE = 32512;
         1138  +const OIC_HAND = 32513;
         1139  +const OIC_QUES = 32514;
         1140  +const OIC_BANG = 32515;
         1141  +const OIC_NOTE = 32516;
         1142  +const OIC_WINLOGO = 32517;
         1143  +const OIC_WARNING = OIC_BANG;
         1144  +const OIC_ERROR = OIC_HAND;
         1145  +const OIC_INFORMATION = OIC_NOTE;
         1146  +
         1147  +const HELPINFO_MENUITEM = 2;
         1148  +const HELPINFO_WINDOW = 1;
         1149  +
         1150  +const MSGF_DIALOGBOX = 0;
         1151  +const MSGF_MESSAGEBOX = 1;
         1152  +const MSGF_MENU = 2;
         1153  +const MSGF_MOVE = 3;
         1154  +const MSGF_SIZE = 4;
         1155  +const MSGF_SCROLLBAR = 5;
         1156  +const MSGF_NEXTWINDOW = 6;
         1157  +const MSGF_MAINLOOP = 8;
         1158  +const MSGF_USER = 4096;
         1159  +
         1160  +const MOUSEEVENTF_MOVE = 1;
         1161  +const MOUSEEVENTF_LEFTDOWN = 2;
         1162  +const MOUSEEVENTF_LEFTUP = 4;
         1163  +const MOUSEEVENTF_RIGHTDOWN = 8;
         1164  +const MOUSEEVENTF_RIGHTUP = 16;
         1165  +const MOUSEEVENTF_MIDDLEDOWN = 32;
         1166  +const MOUSEEVENTF_MIDDLEUP = 64;
         1167  +const MOUSEEVENTF_WHEEL = 0x0800;
         1168  +const MOUSEEVENTF_ABSOLUTE = 32768;
         1169  +
         1170  +const PM_NOREMOVE = 0;
         1171  +const PM_REMOVE = 1;
         1172  +const PM_NOYIELD = 2;
         1173  +
         1174  +static if (WINVER >= 0x500) {
         1175  +const PM_QS_INPUT = (QS_INPUT << 16);
         1176  +const PM_QS_POSTMESSAGE = ((QS_POSTMESSAGE|QS_HOTKEY|QS_TIMER) << 16);
         1177  +const PM_QS_PAINT = (QS_PAINT << 16);
         1178  +const PM_QS_SENDMESSAGE = (QS_SENDMESSAGE << 16);
         1179  +}
         1180  +const HWND
         1181  + HWND_BROADCAST = cast(HWND)0xffff,
         1182  + HWND_BOTTOM    = cast(HWND)1,
         1183  + HWND_NOTOPMOST = cast(HWND)(-2),
         1184  + HWND_TOP       = cast(HWND)0,
         1185  + HWND_TOPMOST   = cast(HWND)(-1),
         1186  + HWND_DESKTOP   = cast(HWND)0,
         1187  + HWND_MESSAGE   = cast(HWND)(-3);// w2k
         1188  +
         1189  +const RDW_INVALIDATE      = 1;
         1190  +const RDW_INTERNALPAINT   = 2;
         1191  +const RDW_ERASE           = 4;
         1192  +const RDW_VALIDATE        = 8;
         1193  +const RDW_NOINTERNALPAINT = 16;
         1194  +const RDW_NOERASE         = 32;
         1195  +const RDW_NOCHILDREN      = 64;
         1196  +const RDW_ALLCHILDREN     = 128;
         1197  +const RDW_UPDATENOW       = 256;
         1198  +const RDW_ERASENOW        = 512;
         1199  +const RDW_FRAME           = 1024;
         1200  +const RDW_NOFRAME         = 2048;
         1201  +
         1202  +const SMTO_NORMAL      = 0;
         1203  +const SMTO_BLOCK       = 1;
         1204  +const SMTO_ABORTIFHUNG = 2;
         1205  +
         1206  +const SIF_ALL = 23;
         1207  +const SIF_PAGE = 2;
         1208  +const SIF_POS = 4;
         1209  +const SIF_RANGE = 1;
         1210  +const SIF_DISABLENOSCROLL = 8;
         1211  +const SIF_TRACKPOS = 16;
         1212  +
         1213  +const SWP_DRAWFRAME = 32;
         1214  +const SWP_FRAMECHANGED = 32;
         1215  +const SWP_HIDEWINDOW = 128;
         1216  +const SWP_NOACTIVATE = 16;
         1217  +const SWP_NOCOPYBITS = 256;
         1218  +const SWP_NOMOVE = 2;
         1219  +const SWP_NOSIZE = 1;
         1220  +const SWP_NOREDRAW = 8;
         1221  +const SWP_NOZORDER = 4;
         1222  +const SWP_SHOWWINDOW = 64;
         1223  +const SWP_NOOWNERZORDER = 512;
         1224  +const SWP_NOREPOSITION = 512;
         1225  +const SWP_NOSENDCHANGING = 1024;
         1226  +const SWP_DEFERERASE = 8192;
         1227  +const SWP_ASYNCWINDOWPOS = 16384;
         1228  +
         1229  +const HSHELL_ACTIVATESHELLWINDOW = 3;
         1230  +const HSHELL_GETMINRECT = 5;
         1231  +const HSHELL_LANGUAGE = 8;
         1232  +const HSHELL_REDRAW = 6;
         1233  +const HSHELL_TASKMAN = 7;
         1234  +const HSHELL_WINDOWACTIVATED = 4;
         1235  +const HSHELL_WINDOWCREATED = 1;
         1236  +const HSHELL_WINDOWDESTROYED = 2;
         1237  +const HSHELL_FLASH = 32774;
         1238  +
         1239  +static if (WINVER >= 0x500) {
         1240  +const SPI_SETFOREGROUNDLOCKTIMEOUT=0x2001;
         1241  +const SPI_GETFOREGROUNDLOCKTIMEOUT=0x2000;
         1242  +}
         1243  +
         1244  +const SPI_GETACCESSTIMEOUT=60;
         1245  +const SPI_GETACTIVEWNDTRKTIMEOUT=8194;
         1246  +const SPI_GETANIMATION=72;
         1247  +const SPI_GETBEEP=1;
         1248  +const SPI_GETBORDER=5;
         1249  +const SPI_GETDEFAULTINPUTLANG=89;
         1250  +const SPI_GETDRAGFULLWINDOWS=38;
         1251  +const SPI_GETFASTTASKSWITCH=35;
         1252  +const SPI_GETFILTERKEYS=50;
         1253  +const SPI_GETFONTSMOOTHING=74;
         1254  +const SPI_GETGRIDGRANULARITY=18;
         1255  +const SPI_GETHIGHCONTRAST=66;
         1256  +const SPI_GETICONMETRICS=45;
         1257  +const SPI_GETICONTITLELOGFONT=31;
         1258  +const SPI_GETICONTITLEWRAP=25;
         1259  +const SPI_GETKEYBOARDDELAY=22;
         1260  +const SPI_GETKEYBOARDPREF=68;
         1261  +const SPI_GETKEYBOARDSPEED=10;
         1262  +const SPI_GETLOWPOWERACTIVE=83;
         1263  +const SPI_GETLOWPOWERTIMEOUT=79;
         1264  +const SPI_GETMENUDROPALIGNMENT=27;
         1265  +const SPI_GETMINIMIZEDMETRICS=43;
         1266  +const SPI_GETMOUSE=3;
         1267  +const SPI_GETMOUSEKEYS=54;
         1268  +const SPI_GETMOUSETRAILS=94;
         1269  +const SPI_GETNONCLIENTMETRICS=41;
         1270  +const SPI_GETPOWEROFFACTIVE=84;
         1271  +const SPI_GETPOWEROFFTIMEOUT=80;
         1272  +const SPI_GETSCREENREADER=70;
         1273  +const SPI_GETSCREENSAVEACTIVE=16;
         1274  +const SPI_GETSCREENSAVETIMEOUT=14;
         1275  +const SPI_GETSERIALKEYS=62;
         1276  +const SPI_GETSHOWSOUNDS=56;
         1277  +const SPI_GETSOUNDSENTRY=64;
         1278  +const SPI_GETSTICKYKEYS=58;
         1279  +const SPI_GETTOGGLEKEYS=52;
         1280  +const SPI_GETWHEELSCROLLLINES=104;
         1281  +const SPI_GETWINDOWSEXTENSION=92;
         1282  +const SPI_GETWORKAREA=48;
         1283  +const SPI_ICONHORIZONTALSPACING=13;
         1284  +const SPI_ICONVERTICALSPACING=24;
         1285  +const SPI_LANGDRIVER=12;
         1286  +const SPI_SCREENSAVERRUNNING=97;
         1287  +const SPI_SETACCESSTIMEOUT=61;
         1288  +const SPI_SETACTIVEWNDTRKTIMEOUT=8195;
         1289  +const SPI_SETANIMATION=73;
         1290  +const SPI_SETBEEP=2;
         1291  +const SPI_SETBORDER=6;
         1292  +const SPI_SETDEFAULTINPUTLANG=90;
         1293  +const SPI_SETDESKPATTERN=21;
         1294  +const SPI_SETDESKWALLPAPER=20;
         1295  +const SPI_SETDOUBLECLICKTIME=32;
         1296  +const SPI_SETDOUBLECLKHEIGHT=30;
         1297  +const SPI_SETDOUBLECLKWIDTH=29;
         1298  +const SPI_SETDRAGFULLWINDOWS=37;
         1299  +const SPI_SETDRAGHEIGHT=77;
         1300  +const SPI_SETDRAGWIDTH=76;
         1301  +const SPI_SETFASTTASKSWITCH=36;
         1302  +const SPI_SETFILTERKEYS=51;
         1303  +const SPI_SETFONTSMOOTHING=75;
         1304  +const SPI_SETGRIDGRANULARITY=19;
         1305  +const SPI_SETHANDHELD=78;
         1306  +const SPI_SETHIGHCONTRAST=67;
         1307  +const SPI_SETICONMETRICS=46;
         1308  +const SPI_SETICONTITLELOGFONT=34;
         1309  +const SPI_SETICONTITLEWRAP=26;
         1310  +const SPI_SETKEYBOARDDELAY=23;
         1311  +const SPI_SETKEYBOARDPREF=69;
         1312  +const SPI_SETKEYBOARDSPEED=11;
         1313  +const SPI_SETLANGTOGGLE=91;
         1314  +const SPI_SETLOWPOWERACTIVE=85;
         1315  +const SPI_SETLOWPOWERTIMEOUT=81;
         1316  +const SPI_SETMENUDROPALIGNMENT=28;
         1317  +const SPI_SETMINIMIZEDMETRICS=44;
         1318  +const SPI_SETMOUSE=4;
         1319  +const SPI_SETMOUSEBUTTONSWAP=33;
         1320  +const SPI_SETMOUSEKEYS=55;
         1321  +const SPI_SETMOUSETRAILS=93;
         1322  +const SPI_SETNONCLIENTMETRICS=42;
         1323  +const SPI_SETPENWINDOWS=49;
         1324  +const SPI_SETPOWEROFFACTIVE=86;
         1325  +const SPI_SETPOWEROFFTIMEOUT=82;
         1326  +const SPI_SETSCREENREADER=71;
         1327  +const SPI_SETSCREENSAVEACTIVE=17;
         1328  +const SPI_SETSCREENSAVERRUNNING=97;
         1329  +const SPI_SETSCREENSAVETIMEOUT=15;
         1330  +const SPI_SETSERIALKEYS=63;
         1331  +const SPI_SETSHOWSOUNDS=57;
         1332  +const SPI_SETSOUNDSENTRY=65;
         1333  +const SPI_SETSTICKYKEYS=59;
         1334  +const SPI_SETTOGGLEKEYS=53;
         1335  +const SPI_SETWHEELSCROLLLINES=105;
         1336  +const SPI_SETWORKAREA=47;
         1337  +
         1338  +static if (WINVER >= 0x500) {
         1339  +const SPI_GETDESKWALLPAPER=115;
         1340  +const SPI_GETMOUSESPEED=112;
         1341  +const SPI_GETSCREENSAVERRUNNING=114;
         1342  +const SPI_GETACTIVEWINDOWTRACKING=0x1000;
         1343  +const SPI_GETACTIVEWNDTRKZORDER=0x100C;
         1344  +const SPI_GETCOMBOBOXANIMATION=0x1004;
         1345  +const SPI_GETCURSORSHADOW=0x101A;
         1346  +const SPI_GETGRADIENTCAPTIONS=0x1008;
         1347  +const SPI_GETHOTTRACKING=0x100E;
         1348  +const SPI_GETKEYBOARDCUES=0x100A;
         1349  +const SPI_GETLISTBOXSMOOTHSCROLLING=0x1006;
         1350  +const SPI_GETMENUANIMATION=0x1002;
         1351  +const SPI_GETMENUFADE=0x1012;
         1352  +const SPI_GETMENUUNDERLINES=0x100A;
         1353  +const SPI_GETSELECTIONFADE=0x1014;
         1354  +const SPI_GETTOOLTIPANIMATION=0x1016;
         1355  +const SPI_GETTOOLTIPFADE=0x1018;
         1356  +const SPI_SETACTIVEWINDOWTRACKING=0x1001;
         1357  +const SPI_SETACTIVEWNDTRKZORDER=0x100D;
         1358  +const SPI_SETCOMBOBOXANIMATION=0x1005;
         1359  +const SPI_SETCURSORSHADOW=0x101B;
         1360  +const SPI_SETGRADIENTCAPTIONS=0x1009;
         1361  +const SPI_SETHOTTRACKING=0x100F;
         1362  +const SPI_SETKEYBOARDCUES=0x100B;
         1363  +const SPI_SETLISTBOXSMOOTHSCROLLING=0x1007;
         1364  +const SPI_SETMENUANIMATION=0x1003;
         1365  +const SPI_SETMENUFADE=0x1013;
         1366  +const SPI_SETMENUUNDERLINES=0x100B;
         1367  +const SPI_SETMOUSESPEED=113;
         1368  +const SPI_SETSELECTIONFADE=0x1015;
         1369  +const SPI_SETTOOLTIPANIMATION=0x1017;
         1370  +const SPI_SETTOOLTIPFADE=0x1019;
         1371  +}
         1372  +
         1373  +const SPIF_UPDATEINIFILE=1;
         1374  +const SPIF_SENDWININICHANGE=2;
         1375  +const SPIF_SENDCHANGE=2;
         1376  +// [Redefined] ATF_ONOFFFEEDBACK=2
         1377  +// [Redefined] ATF_TIMEOUTON=1
         1378  +const WM_APP=32768;
         1379  +const WM_ACTIVATE=6;
         1380  +const WM_ACTIVATEAPP=28;
         1381  +// FIXME/CHECK: Are WM_AFX {FIRST, LAST} valid for WINVER < 0x400?
         1382  +const WM_AFXFIRST=864;
         1383  +const WM_AFXLAST=895;
         1384  +const WM_ASKCBFORMATNAME=780;
         1385  +const WM_CANCELJOURNAL=75;
         1386  +const WM_CANCELMODE=31;
         1387  +const WM_CAPTURECHANGED=533;
         1388  +const WM_CHANGECBCHAIN=781;
         1389  +const WM_CHAR=258;
         1390  +const WM_CHARTOITEM=47;
         1391  +const WM_CHILDACTIVATE=34;
         1392  +const WM_CLEAR=771;
         1393  +const WM_CLOSE=16;
         1394  +const WM_COMMAND=273;
         1395  +const WM_COMMNOTIFY=68; // obsolete
         1396  +const WM_COMPACTING=65;
         1397  +const WM_COMPAREITEM=57;
         1398  +const WM_CONTEXTMENU=123;
         1399  +const WM_COPY=769;
         1400  +const WM_COPYDATA=74;
         1401  +const WM_CREATE=1;
         1402  +const WM_CTLCOLORBTN=309;
         1403  +const WM_CTLCOLORDLG=310;
         1404  +const WM_CTLCOLOREDIT=307;
         1405  +const WM_CTLCOLORLISTBOX=308;
         1406  +const WM_CTLCOLORMSGBOX=306;
         1407  +const WM_CTLCOLORSCROLLBAR=311;
         1408  +const WM_CTLCOLORSTATIC=312;
         1409  +const WM_CUT=768;
         1410  +const WM_DEADCHAR=259;
         1411  +const WM_DELETEITEM=45;
         1412  +const WM_DESTROY=2;
         1413  +const WM_DESTROYCLIPBOARD=775;
         1414  +const WM_DEVICECHANGE=537;
         1415  +const WM_DEVMODECHANGE=27;
         1416  +const WM_DISPLAYCHANGE=126;
         1417  +const WM_DRAWCLIPBOARD=776;
         1418  +const WM_DRAWITEM=43;
         1419  +const WM_DROPFILES=563;
         1420  +const WM_ENABLE=10;
         1421  +const WM_ENDSESSION=22;
         1422  +const WM_ENTERIDLE=289;
         1423  +const WM_ENTERMENULOOP=529;
         1424  +const WM_ENTERSIZEMOVE=561;
         1425  +const WM_ERASEBKGND=20;
         1426  +const WM_EXITMENULOOP=530;
         1427  +const WM_EXITSIZEMOVE=562;
         1428  +const WM_FONTCHANGE=29;
         1429  +const WM_GETDLGCODE=135;
         1430  +const WM_GETFONT=49;
         1431  +const WM_GETHOTKEY=51;
         1432  +const WM_GETICON=127;
         1433  +const WM_GETMINMAXINFO=36;
         1434  +const WM_GETTEXT=13;
         1435  +const WM_GETTEXTLENGTH=14;
         1436  +const WM_HANDHELDFIRST=856;
         1437  +const WM_HANDHELDLAST=863;
         1438  +const WM_HELP=83;
         1439  +const WM_HOTKEY=786;
         1440  +const WM_HSCROLL=276;
         1441  +const WM_HSCROLLCLIPBOARD=782;
         1442  +const WM_ICONERASEBKGND=39;
         1443  +const WM_INITDIALOG=272;
         1444  +const WM_INITMENU=278;
         1445  +const WM_INITMENUPOPUP=279;
         1446  +const WM_INPUTLANGCHANGE=81;
         1447  +const WM_INPUTLANGCHANGEREQUEST=80;
         1448  +const WM_KEYDOWN=256;
         1449  +const WM_KEYUP=257;
         1450  +const WM_KILLFOCUS=8;
         1451  +const WM_MDIACTIVATE=546;
         1452  +const WM_MDICASCADE=551;
         1453  +const WM_MDICREATE=544;
         1454  +const WM_MDIDESTROY=545;
         1455  +const WM_MDIGETACTIVE=553;
         1456  +const WM_MDIICONARRANGE=552;
         1457  +const WM_MDIMAXIMIZE=549;
         1458  +const WM_MDINEXT=548;
         1459  +const WM_MDIREFRESHMENU=564;
         1460  +const WM_MDIRESTORE=547;
         1461  +const WM_MDISETMENU=560;
         1462  +const WM_MDITILE=550;
         1463  +const WM_MEASUREITEM=44;
         1464  +static if (WINVER >= 0x500) {
         1465  +const WM_UNINITMENUPOPUP=0x0125;
         1466  +const WM_MENURBUTTONUP=290;
         1467  +const WM_MENUCOMMAND=0x0126;
         1468  +const WM_MENUGETOBJECT=0x0124;
         1469  +const WM_MENUDRAG=0x0123;
         1470  +}
         1471  +
         1472  +static if (_WIN32_WINNT >= 0x500) {
         1473  +
         1474  + enum {
         1475  +  WM_CHANGEUISTATE = 0x0127,
         1476  +  WM_UPDATEUISTATE = 0x0128,
         1477  +  WM_QUERYUISTATE  = 0x0129
         1478  + }
         1479  +
         1480  + // LOWORD(wParam) values in WM_*UISTATE*
         1481  + enum {
         1482  +  UIS_SET   = 1,
         1483  +  UIS_CLEAR  = 2,
         1484  +  UIS_INITIALIZE = 3
         1485  + }
         1486  +
         1487  + // HIWORD(wParam) values in WM_*UISTATE*
         1488  + enum {
         1489  +  UISF_HIDEFOCUS = 0x1,
         1490  +  UISF_HIDEACCEL = 0x2
         1491  + }
         1492  +
         1493  +}
         1494  +
         1495  +static if (_WIN32_WINNT >= 0x501) {
         1496  +
         1497  + // HIWORD(wParam) values in WM_*UISTATE*
         1498  + enum {
         1499  +  UISF_ACTIVE  = 0x4
         1500  + }
         1501  +
         1502  +}
         1503  +
         1504  +const WM_MENUCHAR=288;
         1505  +const WM_MENUSELECT=287;
         1506  +const WM_MOVE=3;
         1507  +const WM_MOVING=534;
         1508  +const WM_NCACTIVATE=134;
         1509  +const WM_NCCALCSIZE=131;
         1510  +const WM_NCCREATE=129;
         1511  +const WM_NCDESTROY=130;
         1512  +const WM_NCHITTEST=132;
         1513  +const WM_NCLBUTTONDBLCLK=163;
         1514  +const WM_NCLBUTTONDOWN=161;
         1515  +const WM_NCLBUTTONUP=162;
         1516  +const WM_NCMBUTTONDBLCLK=169;
         1517  +const WM_NCMBUTTONDOWN=167;
         1518  +const WM_NCMBUTTONUP=168;
         1519  +static if (_WIN32_WINNT >= 0x500) {
         1520  +const WM_NCXBUTTONDOWN=171;
         1521  +const WM_NCXBUTTONUP=172;
         1522  +const WM_NCXBUTTONDBLCLK=173;
         1523  +const WM_NCMOUSEHOVER=0x02A0;
         1524  +const WM_NCMOUSELEAVE=0x02A2;
         1525  +}
         1526  +const WM_NCMOUSEMOVE=160;
         1527  +const WM_NCPAINT=133;
         1528  +const WM_NCRBUTTONDBLCLK=166;
         1529  +const WM_NCRBUTTONDOWN=164;
         1530  +const WM_NCRBUTTONUP=165;
         1531  +const WM_NEXTDLGCTL=40;
         1532  +const WM_NEXTMENU=531;
         1533  +const WM_NOTIFY=78;
         1534  +const WM_NOTIFYFORMAT=85;
         1535  +const WM_NULL=0;
         1536  +const WM_PAINT=15;
         1537  +const WM_PAINTCLIPBOARD=777;
         1538  +const WM_PAINTICON=38;
         1539  +const WM_PALETTECHANGED=785;
         1540  +const WM_PALETTEISCHANGING=784;
         1541  +const WM_PARENTNOTIFY=528;
         1542  +const WM_PASTE=770;
         1543  +const WM_PENWINFIRST=896;
         1544  +const WM_PENWINLAST=911;
         1545  +const WM_POWER=72;
         1546  +const WM_POWERBROADCAST=536;
         1547  +const WM_PRINT=791;
         1548  +const WM_PRINTCLIENT=792;
         1549  +const WM_APPCOMMAND = 0x0319;
         1550  +const WM_QUERYDRAGICON=55;
         1551  +const WM_QUERYENDSESSION=17;
         1552  +const WM_QUERYNEWPALETTE=783;
         1553  +const WM_QUERYOPEN=19;
         1554  +const WM_QUEUESYNC=35;
         1555  +const WM_QUIT=18;
         1556  +const WM_RENDERALLFORMATS=774;
         1557  +const WM_RENDERFORMAT=773;
         1558  +const WM_SETCURSOR=32;
         1559  +const WM_SETFOCUS=7;
         1560  +const WM_SETFONT=48;
         1561  +const WM_SETHOTKEY=50;
         1562  +const WM_SETICON=128;
         1563  +const WM_SETREDRAW=11;
         1564  +const WM_SETTEXT=12;
         1565  +const WM_SETTINGCHANGE=26;
         1566  +const WM_SHOWWINDOW=24;
         1567  +const WM_SIZE=5;
         1568  +const WM_SIZECLIPBOARD=779;
         1569  +const WM_SIZING=532;
         1570  +const WM_SPOOLERSTATUS=42;
         1571  +const WM_STYLECHANGED=125;
         1572  +const WM_STYLECHANGING=124;
         1573  +const WM_SYSCHAR=262;
         1574  +const WM_SYSCOLORCHANGE=21;
         1575  +const WM_SYSCOMMAND=274;
         1576  +const WM_SYSDEADCHAR=263;
         1577  +const WM_SYSKEYDOWN=260;
         1578  +const WM_SYSKEYUP=261;
         1579  +const WM_TCARD=82;
         1580  +const WM_THEMECHANGED=794;
         1581  +const WM_TIMECHANGE=30;
         1582  +const WM_TIMER=275;
         1583  +const WM_UNDO=772;
         1584  +const WM_USER=1024;
         1585  +const WM_USERCHANGED=84;
         1586  +const WM_VKEYTOITEM=46;
         1587  +const WM_VSCROLL=277;
         1588  +const WM_VSCROLLCLIPBOARD=778;
         1589  +const WM_WINDOWPOSCHANGED=71;
         1590  +const WM_WINDOWPOSCHANGING=70;
         1591  +const WM_WININICHANGE=26;
         1592  +const WM_INPUT=255;
         1593  +const WM_KEYFIRST=256;
         1594  +const WM_KEYLAST=264;
         1595  +const WM_SYNCPAINT=136;
         1596  +const WM_MOUSEACTIVATE=33;
         1597  +const WM_MOUSEMOVE=512;
         1598  +const WM_LBUTTONDOWN=513;
         1599  +const WM_LBUTTONUP=514;
         1600  +const WM_LBUTTONDBLCLK=515;
         1601  +const WM_RBUTTONDOWN=516;
         1602  +const WM_RBUTTONUP=517;
         1603  +const WM_RBUTTONDBLCLK=518;
         1604  +const WM_MBUTTONDOWN=519;
         1605  +const WM_MBUTTONUP=520;
         1606  +const WM_MBUTTONDBLCLK=521;
         1607  +const WM_MOUSEWHEEL=522;
         1608  +const WM_MOUSEFIRST=512;
         1609  +static if (_WIN32_WINNT >= 0x500) {
         1610  +const WM_XBUTTONDOWN=523;
         1611  +const WM_XBUTTONUP=524;
         1612  +const WM_XBUTTONDBLCLK=525;
         1613  +const WM_MOUSELAST=525;
         1614  +} else {
         1615  +const WM_MOUSELAST=522;
         1616  +}
         1617  +const WM_MOUSEHOVER=0x2A1;
         1618  +const WM_MOUSELEAVE=0x2A3;
         1619  +static if (_WIN32_WINNT >= 0x400) {
         1620  +const WHEEL_DELTA=120;
         1621  +
         1622  +SHORT GET_WHEEL_DELTA_WPARAM(WPARAM wparam)
         1623  +{
         1624  +return cast(SHORT) HIWORD(wparam);
         1625  +}
         1626  +
         1627  +const WHEEL_PAGESCROLL = uint.max;
         1628  +}
         1629  +const BM_CLICK=245;
         1630  +const BM_GETCHECK=240;
         1631  +const BM_GETIMAGE=246;
         1632  +const BM_GETSTATE=242;
         1633  +const BM_SETCHECK=241;
         1634  +const BM_SETIMAGE=247;
         1635  +const BM_SETSTATE=243;
         1636  +const BM_SETSTYLE=244;
         1637  +const BN_CLICKED=0;
         1638  +const BN_DBLCLK=5;
         1639  +const BN_DISABLE=4;
         1640  +const BN_DOUBLECLICKED=5;
         1641  +const BN_HILITE=2;
         1642  +const BN_KILLFOCUS=7;
         1643  +const BN_PAINT=1;
         1644  +const BN_PUSHED=2;
         1645  +const BN_SETFOCUS=6;
         1646  +const BN_UNHILITE=3;
         1647  +const BN_UNPUSHED=3;
         1648  +const CB_ADDSTRING=323;
         1649  +const CB_DELETESTRING=324;
         1650  +const CB_DIR=325;
         1651  +const CB_FINDSTRING=332;
         1652  +const CB_FINDSTRINGEXACT=344;
         1653  +const CB_GETCOUNT=326;
         1654  +const CB_GETCURSEL=327;
         1655  +const CB_GETDROPPEDCONTROLRECT=338;
         1656  +const CB_GETDROPPEDSTATE=343;
         1657  +const CB_GETDROPPEDWIDTH=351;
         1658  +const CB_GETEDITSEL=320;
         1659  +const CB_GETEXTENDEDUI=342;
         1660  +const CB_GETHORIZONTALEXTENT=349;
         1661  +const CB_GETITEMDATA=336;
         1662  +const CB_GETITEMHEIGHT=340;
         1663  +const CB_GETLBTEXT=328;
         1664  +const CB_GETLBTEXTLEN=329;
         1665  +const CB_GETLOCALE=346;
         1666  +const CB_GETTOPINDEX=347;
         1667  +const CB_INITSTORAGE=353;
         1668  +const CB_INSERTSTRING=330;
         1669  +const CB_LIMITTEXT=321;
         1670  +const CB_RESETCONTENT=331;
         1671  +const CB_SELECTSTRING=333;
         1672  +const CB_SETCURSEL=334;
         1673  +const CB_SETDROPPEDWIDTH=352;
         1674  +const CB_SETEDITSEL=322;
         1675  +const CB_SETEXTENDEDUI=341;
         1676  +const CB_SETHORIZONTALEXTENT=350;
         1677  +const CB_SETITEMDATA=337;
         1678  +const CB_SETITEMHEIGHT=339;
         1679  +const CB_SETLOCALE=345;
         1680  +const CB_SETTOPINDEX=348;
         1681  +const CB_SHOWDROPDOWN=335;
         1682  +
         1683  +const CBN_CLOSEUP=8;
         1684  +const CBN_DBLCLK=2;
         1685  +const CBN_DROPDOWN=7;
         1686  +const CBN_EDITCHANGE=5;
         1687  +const CBN_EDITUPDATE=6;
         1688  +const CBN_ERRSPACE=(-1);
         1689  +const CBN_KILLFOCUS=4;
         1690  +const CBN_SELCHANGE=1;
         1691  +const CBN_SELENDCANCEL=10;
         1692  +const CBN_SELENDOK=9;
         1693  +const CBN_SETFOCUS=3;
         1694  +
         1695  +const EM_CANUNDO=198;
         1696  +const EM_CHARFROMPOS=215;
         1697  +const EM_EMPTYUNDOBUFFER=205;
         1698  +const EM_FMTLINES=200;
         1699  +const EM_GETFIRSTVISIBLELINE=206;
         1700  +const EM_GETHANDLE=189;
         1701  +const EM_GETLIMITTEXT=213;
         1702  +const EM_GETLINE=196;
         1703  +const EM_GETLINECOUNT=186;
         1704  +const EM_GETMARGINS=212;
         1705  +const EM_GETMODIFY=184;
         1706  +const EM_GETPASSWORDCHAR=210;
         1707  +const EM_GETRECT=178;
         1708  +const EM_GETSEL=176;
         1709  +const EM_GETTHUMB=190;
         1710  +const EM_GETWORDBREAKPROC=209;
         1711  +const EM_LIMITTEXT=197;
         1712  +const EM_LINEFROMCHAR=201;
         1713  +const EM_LINEINDEX=187;
         1714  +const EM_LINELENGTH=193;
         1715  +const EM_LINESCROLL=182;
         1716  +const EM_POSFROMCHAR=214;
         1717  +const EM_REPLACESEL=194;
         1718  +const EM_SCROLL=181;
         1719  +const EM_SCROLLCARET=183;
         1720  +const EM_SETHANDLE=188;
         1721  +const EM_SETLIMITTEXT=197;
         1722  +const EM_SETMARGINS=211;
         1723  +const EM_SETMODIFY=185;
         1724  +const EM_SETPASSWORDCHAR=204;
         1725  +const EM_SETREADONLY=207;
         1726  +const EM_SETRECT=179;
         1727  +const EM_SETRECTNP=180;
         1728  +const EM_SETSEL=177;
         1729  +const EM_SETTABSTOPS=203;
         1730  +const EM_SETWORDBREAKPROC=208;
         1731  +const EM_UNDO=199;
         1732  +
         1733  +const EN_CHANGE=768;
         1734  +const EN_ERRSPACE=1280;
         1735  +const EN_HSCROLL=1537;
         1736  +const EN_KILLFOCUS=512;
         1737  +const EN_MAXTEXT=1281;
         1738  +const EN_SETFOCUS=256;
         1739  +const EN_UPDATE=1024;
         1740  +const EN_VSCROLL=1538;
         1741  +
         1742  +const LB_ADDFILE=406;
         1743  +const LB_ADDSTRING=384;
         1744  +const LB_DELETESTRING=386;
         1745  +const LB_DIR=397;
         1746  +const LB_FINDSTRING=399;
         1747  +const LB_FINDSTRINGEXACT=418;
         1748  +const LB_GETANCHORINDEX=413;
         1749  +const LB_GETCARETINDEX=415;
         1750  +const LB_GETCOUNT=395;
         1751  +const LB_GETCURSEL=392;
         1752  +const LB_GETHORIZONTALEXTENT=403;
         1753  +const LB_GETITEMDATA=409;
         1754  +const LB_GETITEMHEIGHT=417;
         1755  +const LB_GETITEMRECT=408;
         1756  +const LB_GETLOCALE=422;
         1757  +const LB_GETSEL=391;
         1758  +const LB_GETSELCOUNT=400;
         1759  +const LB_GETSELITEMS=401;
         1760  +const LB_GETTEXT=393;
         1761  +const LB_GETTEXTLEN=394;
         1762  +const LB_GETTOPINDEX=398;
         1763  +const LB_INITSTORAGE=424;
         1764  +const LB_INSERTSTRING=385;
         1765  +const LB_ITEMFROMPOINT=425;
         1766  +const LB_RESETCONTENT=388;
         1767  +const LB_SELECTSTRING=396;
         1768  +const LB_SELITEMRANGE=411;
         1769  +const LB_SELITEMRANGEEX=387;
         1770  +const LB_SETANCHORINDEX=412;
         1771  +const LB_SETCARETINDEX=414;
         1772  +const LB_SETCOLUMNWIDTH=405;
         1773  +const LB_SETCOUNT=423;
         1774  +const LB_SETCURSEL=390;
         1775  +const LB_SETHORIZONTALEXTENT=404;
         1776  +const LB_SETITEMDATA=410;
         1777  +const LB_SETITEMHEIGHT=416;
         1778  +const LB_SETLOCALE=421;
         1779  +const LB_SETSEL=389;
         1780  +const LB_SETTABSTOPS=402;
         1781  +const LB_SETTOPINDEX=407;
         1782  +
         1783  +const LBN_DBLCLK=2;
         1784  +const LBN_ERRSPACE=-2;
         1785  +const LBN_KILLFOCUS=5;
         1786  +const LBN_SELCANCEL=3;
         1787  +const LBN_SELCHANGE=1;
         1788  +const LBN_SETFOCUS=4;
         1789  +
         1790  +const SBM_ENABLE_ARROWS=228;
         1791  +const SBM_GETPOS=225;
         1792  +const SBM_GETRANGE=227;
         1793  +const SBM_GETSCROLLINFO=234;
         1794  +const SBM_SETPOS=224;
         1795  +const SBM_SETRANGE=226;
         1796  +const SBM_SETRANGEREDRAW=230;
         1797  +const SBM_SETSCROLLINFO=233;
         1798  +const STM_GETICON=369;
         1799  +const STM_GETIMAGE=371;
         1800  +const STM_SETICON=368;
         1801  +const STM_SETIMAGE=370;
         1802  +const STN_CLICKED=0;
         1803  +const STN_DBLCLK=1;
         1804  +const STN_DISABLE=3;
         1805  +const STN_ENABLE=2;
         1806  +
         1807  +const DM_GETDEFID   = WM_USER;
         1808  +const DM_SETDEFID   = WM_USER+1;
         1809  +const DM_REPOSITION = WM_USER+2;
         1810  +
         1811  +const PSM_PAGEINFO  = WM_USER+100;
         1812  +const PSM_SHEETINFO = WM_USER+101;
         1813  +
         1814  +const PSI_SETACTIVE=1;
         1815  +const PSI_KILLACTIVE=2;
         1816  +const PSI_APPLY=3;
         1817  +const PSI_RESET=4;
         1818  +const PSI_HASHELP=5;
         1819  +const PSI_HELP=6;
         1820  +const PSI_CHANGED=1;
         1821  +const PSI_GUISTART=2;
         1822  +const PSI_REBOOT=3;
         1823  +const PSI_GETSIBLINGS=4;
         1824  +
         1825  +const DCX_WINDOW=1;
         1826  +const DCX_CACHE=2;
         1827  +const DCX_PARENTCLIP=32;
         1828  +const DCX_CLIPSIBLINGS=16;
         1829  +const DCX_CLIPCHILDREN=8;
         1830  +const DCX_NORESETATTRS=4;
         1831  +const DCX_INTERSECTUPDATE=0x200;
         1832  +const DCX_LOCKWINDOWUPDATE=0x400;
         1833  +const DCX_EXCLUDERGN=64;
         1834  +const DCX_INTERSECTRGN=128;
         1835  +const DCX_VALIDATE=0x200000;
         1836  +
         1837  +const GMDI_GOINTOPOPUPS=2;
         1838  +const GMDI_USEDISABLED=1;
         1839  +const FKF_AVAILABLE=2;
         1840  +const FKF_CLICKON=64;
         1841  +const FKF_FILTERKEYSON=1;
         1842  +const FKF_HOTKEYACTIVE=4;
         1843  +const FKF_HOTKEYSOUND=16;
         1844  +const FKF_CONFIRMHOTKEY=8;
         1845  +const FKF_INDICATOR=32;
         1846  +const HCF_HIGHCONTRASTON=1;
         1847  +const HCF_AVAILABLE=2;
         1848  +const HCF_HOTKEYACTIVE=4;
         1849  +const HCF_CONFIRMHOTKEY=8;
         1850  +const HCF_HOTKEYSOUND=16;
         1851  +const HCF_INDICATOR=32;
         1852  +const HCF_HOTKEYAVAILABLE=64;
         1853  +const MKF_AVAILABLE=2;
         1854  +const MKF_CONFIRMHOTKEY=8;
         1855  +const MKF_HOTKEYACTIVE=4;
         1856  +const MKF_HOTKEYSOUND=16;
         1857  +const MKF_INDICATOR=32;
         1858  +const MKF_MOUSEKEYSON=1;
         1859  +const MKF_MODIFIERS=64;
         1860  +const MKF_REPLACENUMBERS=128;
         1861  +const SERKF_ACTIVE=8;  // May be obsolete. Not in recent MS docs.
         1862  +const SERKF_AVAILABLE=2;
         1863  +const SERKF_INDICATOR=4;
         1864  +const SERKF_SERIALKEYSON=1;
         1865  +const SSF_AVAILABLE=2;
         1866  +const SSF_SOUNDSENTRYON=1;
         1867  +const SSTF_BORDER=2;
         1868  +const SSTF_CHARS=1;
         1869  +const SSTF_DISPLAY=3;
         1870  +const SSTF_NONE=0;
         1871  +const SSGF_DISPLAY=3;
         1872  +const SSGF_NONE=0;
         1873  +const SSWF_CUSTOM=4;
         1874  +const SSWF_DISPLAY=3;
         1875  +const SSWF_NONE=0;
         1876  +const SSWF_TITLE=1;
         1877  +const SSWF_WINDOW=2;
         1878  +const SKF_AUDIBLEFEEDBACK=64;
         1879  +const SKF_AVAILABLE=2;
         1880  +const SKF_CONFIRMHOTKEY=8;
         1881  +const SKF_HOTKEYACTIVE=4;
         1882  +const SKF_HOTKEYSOUND=16;
         1883  +const SKF_INDICATOR=32;
         1884  +const SKF_STICKYKEYSON=1;
         1885  +const SKF_TRISTATE=128;
         1886  +const SKF_TWOKEYSOFF=256;
         1887  +const TKF_AVAILABLE=2;
         1888  +const TKF_CONFIRMHOTKEY=8;
         1889  +const TKF_HOTKEYACTIVE=4;
         1890  +const TKF_HOTKEYSOUND=16;
         1891  +const TKF_TOGGLEKEYSON=1;
         1892  +const MDITILE_SKIPDISABLED=2;
         1893  +const MDITILE_HORIZONTAL=1;
         1894  +const MDITILE_VERTICAL=0;
         1895  +
         1896  +enum {
         1897  + VK_LBUTTON = 0x01,
         1898  + VK_RBUTTON = 0x02,
         1899  + VK_CANCEL = 0x03,
         1900  + VK_MBUTTON = 0x04,
         1901  + //static if (_WIN32_WINNT > =  0x500) {
         1902  + VK_XBUTTON1 = 0x05,
         1903  + VK_XBUTTON2 = 0x06,
         1904  + //}
         1905  + VK_BACK = 0x08,
         1906  + VK_TAB = 0x09,
         1907  + VK_CLEAR = 0x0C,
         1908  + VK_RETURN = 0x0D,
         1909  + VK_SHIFT = 0x10,
         1910  + VK_CONTROL = 0x11,
         1911  + VK_MENU = 0x12,
         1912  + VK_PAUSE = 0x13,
         1913  + VK_CAPITAL = 0x14,
         1914  + VK_KANA = 0x15,
         1915  + VK_HANGEUL = 0x15,
         1916  + VK_HANGUL = 0x15,
         1917  + VK_JUNJA = 0x17,
         1918  + VK_FINAL = 0x18,
         1919  + VK_HANJA = 0x19,
         1920  + VK_KANJI = 0x19,
         1921  + VK_ESCAPE = 0x1B,
         1922  + VK_CONVERT = 0x1C,
         1923  + VK_NONCONVERT = 0x1D,
         1924  + VK_ACCEPT = 0x1E,
         1925  + VK_MODECHANGE = 0x1F,
         1926  + VK_SPACE = 0x20,
         1927  + VK_PRIOR = 0x21,
         1928  + VK_NEXT = 0x22,
         1929  + VK_END = 0x23,
         1930  + VK_HOME = 0x24,
         1931  + VK_LEFT = 0x25,
         1932  + VK_UP = 0x26,
         1933  + VK_RIGHT = 0x27,
         1934  + VK_DOWN = 0x28,
         1935  + VK_SELECT = 0x29,
         1936  + VK_PRINT = 0x2A,
         1937  + VK_EXECUTE = 0x2B,
         1938  + VK_SNAPSHOT = 0x2C,
         1939  + VK_INSERT = 0x2D,
         1940  + VK_DELETE = 0x2E,
         1941  + VK_HELP = 0x2F,
         1942  + VK_LWIN = 0x5B,
         1943  + VK_RWIN = 0x5C,
         1944  + VK_APPS = 0x5D,
         1945  + VK_SLEEP = 0x5F,
         1946  + VK_NUMPAD0 = 0x60,
         1947  + VK_NUMPAD1 = 0x61,
         1948  + VK_NUMPAD2 = 0x62,
         1949  + VK_NUMPAD3 = 0x63,
         1950  + VK_NUMPAD4 = 0x64,
         1951  + VK_NUMPAD5 = 0x65,
         1952  + VK_NUMPAD6 = 0x66,
         1953  + VK_NUMPAD7 = 0x67,
         1954  + VK_NUMPAD8 = 0x68,
         1955  + VK_NUMPAD9 = 0x69,
         1956  + VK_MULTIPLY = 0x6A,
         1957  + VK_ADD = 0x6B,
         1958  + VK_SEPARATOR = 0x6C,
         1959  + VK_SUBTRACT = 0x6D,
         1960  + VK_DECIMAL = 0x6E,
         1961  + VK_DIVIDE = 0x6F,
         1962  + VK_F1 = 0x70,
         1963  + VK_F2 = 0x71,
         1964  + VK_F3 = 0x72,
         1965  + VK_F4 = 0x73,
         1966  + VK_F5 = 0x74,
         1967  + VK_F6 = 0x75,
         1968  + VK_F7 = 0x76,
         1969  + VK_F8 = 0x77,
         1970  + VK_F9 = 0x78,
         1971  + VK_F10 = 0x79,
         1972  + VK_F11 = 0x7A,
         1973  + VK_F12 = 0x7B,
         1974  + VK_F13 = 0x7C,
         1975  + VK_F14 = 0x7D,
         1976  + VK_F15 = 0x7E,
         1977  + VK_F16 = 0x7F,
         1978  + VK_F17 = 0x80,
         1979  + VK_F18 = 0x81,
         1980  + VK_F19 = 0x82,
         1981  + VK_F20 = 0x83,
         1982  + VK_F21 = 0x84,
         1983  + VK_F22 = 0x85,
         1984  + VK_F23 = 0x86,
         1985  + VK_F24 = 0x87,
         1986  + VK_NUMLOCK = 0x90,
         1987  + VK_SCROLL = 0x91,
         1988  + VK_LSHIFT = 0xA0,
         1989  + VK_RSHIFT = 0xA1,
         1990  + VK_LCONTROL = 0xA2,
         1991  + VK_RCONTROL = 0xA3,
         1992  + VK_LMENU = 0xA4,
         1993  + VK_RMENU = 0xA5,
         1994  + //static if (_WIN32_WINNT > =  0x500) {
         1995  + VK_BROWSER_BACK = 0xA6,
         1996  + VK_BROWSER_FORWARD = 0xA7,
         1997  + VK_BROWSER_REFRESH = 0xA8,
         1998  + VK_BROWSER_STOP = 0xA9,
         1999  + VK_BROWSER_SEARCH = 0xAA,
         2000  + VK_BROWSER_FAVORITES = 0xAB,
         2001  + VK_BROWSER_HOME = 0xAC,
         2002  + VK_VOLUME_MUTE = 0xAD,
         2003  + VK_VOLUME_DOWN = 0xAE,
         2004  + VK_VOLUME_UP = 0xAF,
         2005  + VK_MEDIA_NEXT_TRACK = 0xB0,
         2006  + VK_MEDIA_PREV_TRACK = 0xB1,
         2007  + VK_MEDIA_STOP = 0xB2,
         2008  + VK_MEDIA_PLAY_PAUSE = 0xB3,
         2009  + VK_LAUNCH_MAIL = 0xB4,
         2010  + VK_LAUNCH_MEDIA_SELECT = 0xB5,
         2011  + VK_LAUNCH_APP1 = 0xB6,
         2012  + VK_LAUNCH_APP2 = 0xB7,
         2013  + //}
         2014  + VK_OEM_1 = 0xBA,
         2015  + //static if (_WIN32_WINNT > =  0x500) {
         2016  + VK_OEM_PLUS = 0xBB,
         2017  + VK_OEM_COMMA = 0xBC,
         2018  + VK_OEM_MINUS = 0xBD,
         2019  + VK_OEM_PERIOD = 0xBE,
         2020  + //}
         2021  + VK_OEM_2 = 0xBF,
         2022  + VK_OEM_3 = 0xC0,
         2023  + VK_OEM_4 = 0xDB,
         2024  + VK_OEM_5 = 0xDC,
         2025  + VK_OEM_6 = 0xDD,
         2026  + VK_OEM_7 = 0xDE,
         2027  + VK_OEM_8 = 0xDF,
         2028  + //static if (_WIN32_WINNT > =  0x500) {
         2029  + VK_OEM_102 = 0xE2,
         2030  + //}
         2031  + VK_PROCESSKEY = 0xE5,
         2032  + //static if (_WIN32_WINNT > =  0x500) {
         2033  + VK_PACKET = 0xE7,
         2034  + //}
         2035  + VK_ATTN = 0xF6,
         2036  + VK_CRSEL = 0xF7,
         2037  + VK_EXSEL = 0xF8,
         2038  + VK_EREOF = 0xF9,
         2039  + VK_PLAY = 0xFA,
         2040  + VK_ZOOM = 0xFB,
         2041  + VK_NONAME = 0xFC,
         2042  + VK_PA1 = 0xFD,
         2043  + VK_OEM_CLEAR = 0xFE,
         2044  +}
         2045  +
         2046  +const TME_HOVER=1;
         2047  +const TME_LEAVE=2;
         2048  +const TME_QUERY=0x40000000;
         2049  +const TME_CANCEL=0x80000000;
         2050  +
         2051  +const HOVER_DEFAULT=0xFFFFFFFF;
         2052  +
         2053  +const MK_LBUTTON=1;
         2054  +const MK_RBUTTON=2;
         2055  +const MK_SHIFT=4;
         2056  +const MK_CONTROL=8;
         2057  +const MK_MBUTTON=16;
         2058  +static if (_WIN32_WINNT >= 0x500) {
         2059  +const MK_XBUTTON1=32;
         2060  +const MK_XBUTTON2=64;
         2061  +}
         2062  +const TPM_CENTERALIGN=4;
         2063  +const TPM_LEFTALIGN=0;
         2064  +const TPM_RIGHTALIGN=8;
         2065  +const TPM_LEFTBUTTON=0;
         2066  +const TPM_RIGHTBUTTON=2;
         2067  +const TPM_HORIZONTAL=0;
         2068  +const TPM_VERTICAL=64;
         2069  +const TPM_TOPALIGN=0;
         2070  +const TPM_VCENTERALIGN=16;
         2071  +const TPM_BOTTOMALIGN=32;
         2072  +const TPM_NONOTIFY=128;
         2073  +const TPM_RETURNCMD=256;
         2074  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
         2075  +const TPM_RECURSE=1;
         2076  +}
         2077  +
         2078  +const HELP_COMMAND=0x102;
         2079  +const HELP_CONTENTS=3;
         2080  +const HELP_CONTEXT=1;
         2081  +const HELP_CONTEXTPOPUP=8;
         2082  +const HELP_FORCEFILE=9;
         2083  +const HELP_HELPONHELP=4;
         2084  +const HELP_INDEX=3;
         2085  +const HELP_KEY=0x101;
         2086  +const HELP_MULTIKEY=0x201;
         2087  +const HELP_PARTIALKEY=0x105;
         2088  +const HELP_QUIT=2;
         2089  +const HELP_SETCONTENTS=5;
         2090  +const HELP_SETINDEX=5;
         2091  +const HELP_SETWINPOS=0x203;
         2092  +const HELP_CONTEXTMENU=0xa;
         2093  +const HELP_FINDER=0xb;
         2094  +const HELP_WM_HELP=0xc;
         2095  +const HELP_TCARD=0x8000;
         2096  +const HELP_TCARD_DATA=16;
         2097  +const HELP_TCARD_OTHER_CALLER=0x11;
         2098  +
         2099  +const IDH_NO_HELP=28440;
         2100  +const IDH_MISSING_CONTEXT=28441;
         2101  +const IDH_GENERIC_HELP_BUTTON=28442;
         2102  +const IDH_OK=28443;
         2103  +const IDH_CANCEL=28444;
         2104  +const IDH_HELP=28445;
         2105  +
         2106  +const LB_CTLCODE=0;
         2107  +const LB_OKAY=0;
         2108  +const LB_ERR=-1;
         2109  +const LB_ERRSPACE=-2;
         2110  +
         2111  +const CB_OKAY=0;
         2112  +const CB_ERR=-1;
         2113  +const CB_ERRSPACE=-2;
         2114  +
         2115  +const HIDE_WINDOW=0;
         2116  +
         2117  +const SHOW_OPENWINDOW=1;
         2118  +const SHOW_ICONWINDOW=2;
         2119  +const SHOW_FULLSCREEN=3;
         2120  +const SHOW_OPENNOACTIVATE=4;
         2121  +
         2122  +const SW_PARENTCLOSING=1;
         2123  +const SW_OTHERZOOM=2;
         2124  +const SW_PARENTOPENING=3;
         2125  +const SW_OTHERUNZOOM=4;
         2126  +
         2127  +const KF_EXTENDED=256;
         2128  +const KF_DLGMODE=2048;
         2129  +const KF_MENUMODE=4096;
         2130  +const KF_ALTDOWN=8192;
         2131  +const KF_REPEAT=16384;
         2132  +const KF_UP=32768;
         2133  +
         2134  +const WSF_VISIBLE=1;
         2135  +
         2136  +const PWR_OK=1;
         2137  +const PWR_FAIL=-1;
         2138  +const PWR_SUSPENDREQUEST=1;
         2139  +const PWR_SUSPENDRESUME=2;
         2140  +const PWR_CRITICALRESUME=3;
         2141  +
         2142  +const NFR_ANSI=1;
         2143  +const NFR_UNICODE=2;
         2144  +const NF_QUERY=3;
         2145  +const NF_REQUERY=4;
         2146  +
         2147  +const MENULOOP_WINDOW=0;
         2148  +const MENULOOP_POPUP=1;
         2149  +
         2150  +const WMSZ_LEFT=1;
         2151  +const WMSZ_RIGHT=2;
         2152  +const WMSZ_TOP=3;
         2153  +const WMSZ_TOPLEFT=4;
         2154  +const WMSZ_TOPRIGHT=5;
         2155  +const WMSZ_BOTTOM=6;
         2156  +const WMSZ_BOTTOMLEFT=7;
         2157  +const WMSZ_BOTTOMRIGHT=8;
         2158  +
         2159  +const HTERROR=-2;
         2160  +const HTTRANSPARENT=-1;
         2161  +const HTNOWHERE=0;
         2162  +const HTCLIENT=1;
         2163  +const HTCAPTION=2;
         2164  +const HTSYSMENU=3;
         2165  +const HTGROWBOX=4;
         2166  +const HTSIZE=4;
         2167  +const HTMENU=5;
         2168  +const HTHSCROLL=6;
         2169  +const HTVSCROLL=7;
         2170  +const HTMINBUTTON=8;
         2171  +const HTMAXBUTTON=9;
         2172  +const HTREDUCE=8;
         2173  +const HTZOOM=9;
         2174  +const HTLEFT=10;
         2175  +const HTSIZEFIRST=10;
         2176  +const HTRIGHT=11;
         2177  +const HTTOP=12;
         2178  +const HTTOPLEFT=13;
         2179  +const HTTOPRIGHT=14;
         2180  +const HTBOTTOM=15;
         2181  +const HTBOTTOMLEFT=16;
         2182  +const HTBOTTOMRIGHT=17;
         2183  +const HTSIZELAST=17;
         2184  +const HTBORDER=18;
         2185  +const HTOBJECT=19;
         2186  +const HTCLOSE=20;
         2187  +const HTHELP=21;
         2188  +
         2189  +const MA_ACTIVATE=1;
         2190  +const MA_ACTIVATEANDEAT=2;
         2191  +const MA_NOACTIVATE=3;
         2192  +const MA_NOACTIVATEANDEAT=4;
         2193  +
         2194  +const SIZE_RESTORED=0;
         2195  +const SIZE_MINIMIZED=1;
         2196  +const SIZE_MAXIMIZED=2;
         2197  +const SIZE_MAXSHOW=3;
         2198  +const SIZE_MAXHIDE=4;
         2199  +
         2200  +const SIZENORMAL=0;
         2201  +const SIZEICONIC=1;
         2202  +const SIZEFULLSCREEN=2;
         2203  +const SIZEZOOMSHOW=3;
         2204  +const SIZEZOOMHIDE=4;
         2205  +
         2206  +const WVR_ALIGNTOP=16;
         2207  +const WVR_ALIGNLEFT=32;
         2208  +const WVR_ALIGNBOTTOM=64;
         2209  +const WVR_ALIGNRIGHT=128;
         2210  +const WVR_HREDRAW=256;
         2211  +const WVR_VREDRAW=512;
         2212  +const WVR_REDRAW=(WVR_HREDRAW|WVR_VREDRAW);
         2213  +const WVR_VALIDRECTS=1024;
         2214  +
         2215  +const PRF_CHECKVISIBLE=1;
         2216  +const PRF_NONCLIENT=2;
         2217  +const PRF_CLIENT=4;
         2218  +const PRF_ERASEBKGND=8;
         2219  +const PRF_CHILDREN=16;
         2220  +const PRF_OWNED=32;
         2221  +
         2222  +const IDANI_OPEN=1;
         2223  +const IDANI_CLOSE=2;
         2224  +const IDANI_CAPTION=3;
         2225  +
         2226  +const WPF_RESTORETOMAXIMIZED=2;
         2227  +const WPF_SETMINPOSITION=1;
         2228  +
         2229  +const ODT_MENU=1;
         2230  +const ODT_LISTBOX=2;
         2231  +const ODT_COMBOBOX=3;
         2232  +const ODT_BUTTON=4;
         2233  +const ODT_STATIC=5;
         2234  +const ODA_DRAWENTIRE=1;
         2235  +const ODA_SELECT=2;
         2236  +const ODA_FOCUS=4;
         2237  +const ODS_SELECTED=1;
         2238  +const ODS_GRAYED=2;
         2239  +const ODS_DISABLED=4;
         2240  +const ODS_CHECKED=8;
         2241  +const ODS_FOCUS=16;
         2242  +const ODS_DEFAULT=32;
         2243  +const ODS_COMBOBOXEDIT=4096;
         2244  +
         2245  +const IDHOT_SNAPWINDOW=-1;
         2246  +const IDHOT_SNAPDESKTOP=-2;
         2247  +
         2248  +const DBWF_LPARAMPOINTER=0x8000;
         2249  +const DLGWINDOWEXTRA=30;
         2250  +const MNC_IGNORE=0;
         2251  +const MNC_CLOSE=1;
         2252  +const MNC_EXECUTE=2;
         2253  +const MNC_SELECT=3;
         2254  +const DOF_EXECUTABLE=0x8001;
         2255  +const DOF_DOCUMENT=0x8002;
         2256  +const DOF_DIRECTORY=0x8003;
         2257  +const DOF_MULTIPLE=0x8004;
         2258  +const DOF_PROGMAN=1;
         2259  +const DOF_SHELLDATA=2;
         2260  +const DO_DROPFILE=0x454C4946;
         2261  +const DO_PRINTFILE=0x544E5250;
         2262  +
         2263  +const SW_SCROLLCHILDREN=1;
         2264  +const SW_INVALIDATE=2;
         2265  +const SW_ERASE=4;
         2266  +
         2267  +const SC_SIZE=0xF000;
         2268  +const SC_MOVE=0xF010;
         2269  +const SC_MINIMIZE=0xF020;
         2270  +const SC_ICON=0xf020;
         2271  +const SC_MAXIMIZE=0xF030;
         2272  +const SC_ZOOM=0xF030;
         2273  +const SC_NEXTWINDOW=0xF040;
         2274  +const SC_PREVWINDOW=0xF050;
         2275  +const SC_CLOSE=0xF060;
         2276  +const SC_VSCROLL=0xF070;
         2277  +const SC_HSCROLL=0xF080;
         2278  +const SC_MOUSEMENU=0xF090;
         2279  +const SC_KEYMENU=0xF100;
         2280  +const SC_ARRANGE=0xF110;
         2281  +const SC_RESTORE=0xF120;
         2282  +const SC_TASKLIST=0xF130;
         2283  +const SC_SCREENSAVE=0xF140;
         2284  +const SC_HOTKEY=0xF150;
         2285  +const SC_DEFAULT=0xF160;
         2286  +const SC_MONITORPOWER=0xF170;
         2287  +const SC_CONTEXTHELP=0xF180;
         2288  +const SC_SEPARATOR=0xF00F;
         2289  +
         2290  +const EC_LEFTMARGIN=1;
         2291  +const EC_RIGHTMARGIN=2;
         2292  +const EC_USEFONTINFO=0xffff;
         2293  +
         2294  +const DC_HASDEFID=0x534B;
         2295  +
         2296  +const DLGC_WANTARROWS=1;
         2297  +const DLGC_WANTTAB=2;
         2298  +const DLGC_WANTALLKEYS=4;
         2299  +const DLGC_WANTMESSAGE=4;
         2300  +const DLGC_HASSETSEL=8;
         2301  +const DLGC_DEFPUSHBUTTON=16;
         2302  +const DLGC_UNDEFPUSHBUTTON=32;
         2303  +const DLGC_RADIOBUTTON=64;
         2304  +const DLGC_WANTCHARS=128;
         2305  +const DLGC_STATIC=256;
         2306  +const DLGC_BUTTON=0x2000;
         2307  +
         2308  +const WA_INACTIVE=0;
         2309  +const WA_ACTIVE=1;
         2310  +const WA_CLICKACTIVE=2;
         2311  +
         2312  +const ICON_SMALL=0;
         2313  +const ICON_BIG=1;
         2314  +static if (_WIN32_WINNT >= 0x501) {
         2315  +const ICON_SMALL2=2;
         2316  +}
         2317  +
         2318  +const HBITMAP
         2319  + HBMMENU_CALLBACK = cast(HBITMAP)-1,
         2320  + HBMMENU_SYSTEM = cast(HBITMAP)1,
         2321  + HBMMENU_MBAR_RESTORE = cast(HBITMAP)2,
         2322  + HBMMENU_MBAR_MINIMIZE = cast(HBITMAP)3,
         2323  + HBMMENU_MBAR_CLOSE = cast(HBITMAP)5,
         2324  + HBMMENU_MBAR_CLOSE_D = cast(HBITMAP)6,
         2325  + HBMMENU_MBAR_MINIMIZE_D = cast(HBITMAP)7,
         2326  + HBMMENU_POPUP_CLOSE = cast(HBITMAP)8,
         2327  + HBMMENU_POPUP_RESTORE = cast(HBITMAP)9,
         2328  + HBMMENU_POPUP_MAXIMIZE = cast(HBITMAP)10,
         2329  + HBMMENU_POPUP_MINIMIZE = cast(HBITMAP)11;
         2330  +
         2331  +const MOD_ALT=1;
         2332  +const MOD_CONTROL=2;
         2333  +const MOD_SHIFT=4;
         2334  +const MOD_WIN=8;
         2335  +const MOD_IGNORE_ALL_MODIFIER=1024;
         2336  +const MOD_ON_KEYUP=2048;
         2337  +const MOD_RIGHT=16384;
         2338  +const MOD_LEFT=32768;
         2339  +
         2340  +const LLKHF_EXTENDED=(KF_EXTENDED >> 8);
         2341  +const LLKHF_INJECTED=0x00000010;
         2342  +const LLKHF_ALTDOWN=(KF_ALTDOWN >> 8);
         2343  +const LLKHF_UP=(KF_UP >> 8);
         2344  +
         2345  +static if (WINVER >= 0x500) {
         2346  +const FLASHW_STOP=0;
         2347  +const FLASHW_CAPTION=1;
         2348  +const FLASHW_TRAY=2;
         2349  +const FLASHW_ALL=(FLASHW_CAPTION|FLASHW_TRAY);
         2350  +const FLASHW_TIMER=4;
         2351  +const FLASHW_TIMERNOFG=12;
         2352  +}
         2353  +
         2354  +const CURSOR_SHOWING=0x00000001;
         2355  +const WS_ACTIVECAPTION=0x00000001;
         2356  +static if (_WIN32_WINNT >= 0x403) {
         2357  +const INPUT_MOUSE=0x00000000;
         2358  +const INPUT_KEYBOARD=0x00000001;
         2359  +const INPUT_HARDWARE=0x00000002;
         2360  +}
         2361  +static if (WINVER >= 0x400) {
         2362  +const ENDSESSION_LOGOFF = 0x80000000;
         2363  +}
         2364  +
         2365  +static if (WINVER >= 0x500) {
         2366  +const CHILDID_SELF   = 0;
         2367  +const OBJID_WINDOW   = 0x00000000;
         2368  +const OBJID_SYSMENU  = 0xFFFFFFFF;
         2369  +const OBJID_TITLEBAR = 0xFFFFFFFE;
         2370  +const OBJID_MENU     = 0xFFFFFFFD;
         2371  +const OBJID_CLIENT   = 0xFFFFFFFC;
         2372  +const OBJID_VSCROLL  = 0xFFFFFFFB;
         2373  +const OBJID_HSCROLL  = 0xFFFFFFFA;
         2374  +const OBJID_SIZEGRIP = 0xFFFFFFF9;
         2375  +const OBJID_CARET    = 0xFFFFFFF8;
         2376  +const OBJID_CURSOR   = 0xFFFFFFF7;
         2377  +const OBJID_ALERT    = 0xFFFFFFF6;
         2378  +const OBJID_SOUND    = 0xFFFFFFF5;
         2379  +
         2380  +const GUI_CARETBLINKING  = 0x00000001;
         2381  +const GUI_INMOVESIZE     = 0x00000002;
         2382  +const GUI_INMENUMODE     = 0x00000004;
         2383  +const GUI_SYSTEMMENUMODE = 0x00000008;
         2384  +const GUI_POPUPMENUMODE  = 0x00000010;
         2385  +
         2386  +static if (_WIN32_WINNT >= 0x501) {
         2387  +const GUI_16BITTASK      = 0x00000020;
         2388  +}
         2389  +const WINEVENT_OUTOFCONTEXT=0x0000;
         2390  +const WINEVENT_SKIPOWNTHREAD=0x0001;
         2391  +const WINEVENT_SKIPOWNPROCESS=0x0002;
         2392  +const WINEVENT_INCONTEXT=0x0004;
         2393  +const AW_HOR_POSITIVE=0x00000001;
         2394  +const AW_HOR_NEGATIVE=0x00000002;
         2395  +const AW_VER_POSITIVE=0x00000004;
         2396  +const AW_VER_NEGATIVE=0x00000008;
         2397  +const AW_CENTER=0x00000010;
         2398  +const AW_HIDE=0x00010000;
         2399  +const AW_ACTIVATE=0x00020000;
         2400  +const AW_SLIDE=0x00040000;
         2401  +const AW_BLEND=0x00080000;
         2402  +const DEVICE_NOTIFY_WINDOW_HANDLE=0x00000000;
         2403  +const DEVICE_NOTIFY_SERVICE_HANDLE=0x00000001;
         2404  +
         2405  +static if (_WIN32_WINNT >= 0x501) {
         2406  +const DEVICE_NOTIFY_ALL_INTERFACE_CLASSES=0x00000004;
         2407  +}
         2408  +
         2409  +const EVENT_MIN = 0x00000001;
         2410  +const EVENT_SYSTEM_SOUND = 0x00000001;
         2411  +const EVENT_SYSTEM_ALERT = 0x00000002;
         2412  +const EVENT_SYSTEM_FOREGROUND = 0x00000003;
         2413  +const EVENT_SYSTEM_MENUSTART = 0x00000004;
         2414  +const EVENT_SYSTEM_MENUEND = 0x00000005;
         2415  +const EVENT_SYSTEM_MENUPOPUPSTART = 0x00000006;
         2416  +const EVENT_SYSTEM_MENUPOPUPEND = 0x00000007;
         2417  +const EVENT_SYSTEM_CAPTURESTART = 0x00000008;
         2418  +const EVENT_SYSTEM_CAPTUREEND = 0x00000009;
         2419  +const EVENT_SYSTEM_MOVESIZESTART = 0x0000000a;
         2420  +const EVENT_SYSTEM_MOVESIZEEND = 0x0000000b;
         2421  +const EVENT_SYSTEM_CONTEXTHELPSTART = 0x0000000c;
         2422  +const EVENT_SYSTEM_CONTEXTHELPEND = 0x0000000d;
         2423  +const EVENT_SYSTEM_DRAGDROPSTART = 0x0000000e;
         2424  +const EVENT_SYSTEM_DRAGDROPEND = 0x0000000f;
         2425  +const EVENT_SYSTEM_DIALOGSTART = 0x00000010;
         2426  +const EVENT_SYSTEM_DIALOGEND = 0x00000011;
         2427  +const EVENT_SYSTEM_SCROLLINGSTART = 0x00000012;
         2428  +const EVENT_SYSTEM_SCROLLINGEND = 0x00000013;
         2429  +const EVENT_SYSTEM_SWITCHSTART = 0x00000014;
         2430  +const EVENT_SYSTEM_SWITCHEND = 0x00000015;
         2431  +const EVENT_SYSTEM_MINIMIZESTART = 0x00000016;
         2432  +const EVENT_SYSTEM_MINIMIZEEND = 0x00000017;
         2433  +
         2434  +const EVENT_OBJECT_CREATE = 0x00008000;
         2435  +const EVENT_OBJECT_DESTROY = 0x00008001;
         2436  +const EVENT_OBJECT_SHOW = 0x00008002;
         2437  +const EVENT_OBJECT_HIDE = 0x00008003;
         2438  +const EVENT_OBJECT_REORDER = 0x00008004;
         2439  +const EVENT_OBJECT_FOCUS = 0x00008005;
         2440  +const EVENT_OBJECT_SELECTION = 0x00008006;
         2441  +const EVENT_OBJECT_SELECTIONADD = 0x00008007;
         2442  +const EVENT_OBJECT_SELECTIONREMOVE = 0x00008008;
         2443  +const EVENT_OBJECT_SELECTIONWITHIN = 0x00008009;
         2444  +const EVENT_OBJECT_STATECHANGE = 0x0000800a;
         2445  +const EVENT_OBJECT_LOCATIONCHANGE = 0x0000800b;
         2446  +const EVENT_OBJECT_NAMECHANGE = 0x0000800c;
         2447  +const EVENT_OBJECT_DESCRIPTIONCHANGE = 0x0000800d;
         2448  +const EVENT_OBJECT_VALUECHANGE = 0x0000800e;
         2449  +const EVENT_OBJECT_PARENTCHANGE = 0x0000800f;
         2450  +const EVENT_OBJECT_HELPCHANGE = 0x00008010;
         2451  +const EVENT_OBJECT_DEFACTIONCHANGE = 0x00008011;
         2452  +const EVENT_OBJECT_ACCELERATORCHANGE = 0x00008012;
         2453  +
         2454  +static if (_WIN32_WINNT >= 0x501) {
         2455  +const EVENT_CONSOLE_CARET             = 0x00004001;
         2456  +const EVENT_CONSOLE_UPDATE_REGION     = 0x00004002;
         2457  +const EVENT_CONSOLE_UPDATE_SIMPLE     = 0x00004003;
         2458  +const EVENT_CONSOLE_UPDATE_SCROLL     = 0x00004004;
         2459  +const EVENT_CONSOLE_LAYOUT            = 0x00004005;
         2460  +const EVENT_CONSOLE_START_APPLICATION = 0x00004006;
         2461  +const EVENT_CONSOLE_END_APPLICATION   = 0x00004007;
         2462  +
         2463  +const CONSOLE_CARET_SELECTION   = 0x00000001;
         2464  +const CONSOLE_CARET_VISIBLE     = 0x00000002;
         2465  +
         2466  +const CONSOLE_APPLICATION_16BIT = 0x00000001;
         2467  +
         2468  +}
         2469  +const EVENT_MAX=0x7fffffff;
         2470  +
         2471  +}//(WINVER >= 0x500)
         2472  +
         2473  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) {
         2474  +const DWORD ASFW_ANY = -1;
         2475  +const LSFW_LOCK   = 1;
         2476  +const LSFW_UNLOCK = 2;
         2477  +}
         2478  +
         2479  +static if (_WIN32_WINNT >= 0x500) {
         2480  +const LWA_COLORKEY=0x01;
         2481  +const LWA_ALPHA=0x02;
         2482  +const ULW_COLORKEY=0x01;
         2483  +const ULW_ALPHA=0x02;
         2484  +const ULW_OPAQUE=0x04;
         2485  +}
         2486  +
         2487  +const GA_PARENT    = 1;
         2488  +const GA_ROOT      = 2;
         2489  +const GA_ROOTOWNER = 3;
         2490  +
         2491  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
         2492  +
         2493  +const MONITOR_DEFAULTTONULL    = 0;
         2494  +const MONITOR_DEFAULTTOPRIMARY = 1;
         2495  +const MONITOR_DEFAULTTONEAREST = 2;
         2496  +const MONITORINFOF_PRIMARY     = 1;
         2497  +
         2498  +const EDS_RAWMODE = 0x00000002;
         2499  +
         2500  +const ISMEX_NOSEND   = 0x00000000;
         2501  +const ISMEX_SEND     = 0x00000001;
         2502  +const ISMEX_NOTIFY   = 0x00000002;
         2503  +const ISMEX_CALLBACK = 0x00000004;
         2504  +const ISMEX_REPLIED  = 0x00000008;
         2505  +}
         2506  +
         2507  +static if (_WIN32_WINNT >= 0x500) {
         2508  +const GR_GDIOBJECTS  = 0;
         2509  +const GR_USEROBJECTS = 1;
         2510  +}
         2511  +
         2512  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) {
         2513  +const GMMP_USE_DISPLAY_POINTS         = 1;
         2514  +const GMMP_USE_HIGH_RESOLUTION_POINTS = 2;
         2515  +}
         2516  +
         2517  +static if (_WIN32_WINNT >= 0x501) {
         2518  +const PW_CLIENTONLY               = 0x00000001;
         2519  +const RIM_INPUT                   = 0x00000000;
         2520  +const RIM_INPUTSINK               = 0x00000001;
         2521  +const RIM_TYPEMOUSE               = 0x00000000;
         2522  +const RIM_TYPEKEYBOARD            = 0x00000001;
         2523  +const RIM_TYPEHID                 = 0x00000002;
         2524  +const MOUSE_MOVE_RELATIVE         = 0x00000000;
         2525  +const MOUSE_MOVE_ABSOLUTE         = 0x00000001;
         2526  +const MOUSE_VIRTUAL_DESKTOP       = 0x00000002;
         2527  +const MOUSE_ATTRIBUTES_CHANGED    = 0x00000004;
         2528  +const RI_MOUSE_LEFT_BUTTON_DOWN   = 0x0001;
         2529  +const RI_MOUSE_LEFT_BUTTON_UP     = 0x0002;
         2530  +const RI_MOUSE_RIGHT_BUTTON_DOWN  = 0x0004;
         2531  +const RI_MOUSE_RIGHT_BUTTON_UP    = 0x0008;
         2532  +const RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010;
         2533  +const RI_MOUSE_MIDDLE_BUTTON_UP   = 0x0020;
         2534  +const RI_MOUSE_BUTTON_1_DOWN = RI_MOUSE_LEFT_BUTTON_DOWN;
         2535  +const RI_MOUSE_BUTTON_1_UP   = RI_MOUSE_LEFT_BUTTON_UP;
         2536  +const RI_MOUSE_BUTTON_2_DOWN = RI_MOUSE_RIGHT_BUTTON_DOWN;
         2537  +const RI_MOUSE_BUTTON_2_UP   = RI_MOUSE_RIGHT_BUTTON_UP;
         2538  +const RI_MOUSE_BUTTON_3_DOWN = RI_MOUSE_MIDDLE_BUTTON_DOWN;
         2539  +const RI_MOUSE_BUTTON_3_UP   = RI_MOUSE_MIDDLE_BUTTON_UP;
         2540  +const RI_MOUSE_BUTTON_4_DOWN = 0x0040;
         2541  +const RI_MOUSE_BUTTON_4_UP   = 0x0080;
         2542  +const RI_MOUSE_BUTTON_5_DOWN = 0x0100;
         2543  +const RI_MOUSE_BUTTON_5_UP   = 0x0200;
         2544  +const RI_MOUSE_WHEEL         = 0x0400;
         2545  +const KEYBOARD_OVERRUN_MAKE_CODE = 0x00ff;
         2546  +const RI_KEY_MAKE            = 0x0000;
         2547  +const RI_KEY_BREAK           = 0x0001;
         2548  +const RI_KEY_E0              = 0x0002;
         2549  +const RI_KEY_E1              = 0x0004;
         2550  +const RI_KEY_TERMSRV_SET_LED = 0x0008;
         2551  +const RI_KEY_TERMSRV_SHADOW  = 0x0010;
         2552  +
         2553  +const RID_INPUT          = 0x10000003;
         2554  +const RID_HEADER         = 0x10000005;
         2555  +
         2556  +const RIDI_PREPARSEDDATA = 0x20000005;
         2557  +const RIDI_DEVICENAME    = 0x20000007;
         2558  +const RIDI_DEVICEINFO    = 0x2000000b;
         2559  +
         2560  +const RIDEV_REMOVE       = 0x00000001;
         2561  +const RIDEV_EXCLUDE      = 0x00000010;
         2562  +const RIDEV_PAGEONLY     = 0x00000020;
         2563  +const RIDEV_NOLEGACY     = 0x00000030;
         2564  +const RIDEV_INPUTSINK    = 0x00000100;
         2565  +const RIDEV_CAPTUREMOUSE = 0x00000200;
         2566  +const RIDEV_NOHOTKEYS    = 0x00000200;
         2567  +const RIDEV_APPKEYS      = 0x00000400;
         2568  +}
         2569  +
         2570  +// Callbacks
         2571  +// ---------
         2572  +extern (Windows) {
         2573  + alias BOOL function (HWND, UINT, WPARAM, LPARAM)    DLGPROC;
         2574  + alias void function (HWND, UINT, UINT, DWORD)       TIMERPROC;
         2575  + alias BOOL function (HDC, LPARAM, int)              GRAYSTRINGPROC;
         2576  + alias LRESULT function (int, WPARAM, LPARAM)        HOOKPROC;
         2577  + alias BOOL function (HWND, LPCSTR, HANDLE)          PROPENUMPROCA;
         2578  + alias BOOL function (HWND, LPCWSTR, HANDLE)         PROPENUMPROCW;
         2579  + alias BOOL function (HWND, LPSTR, HANDLE, DWORD)    PROPENUMPROCEXA;
         2580  + alias BOOL function (HWND, LPWSTR, HANDLE, DWORD)   PROPENUMPROCEXW;
         2581  + alias int function (LPSTR, int, int, int)           EDITWORDBREAKPROCA;
         2582  + alias int function (LPWSTR, int, int, int)          EDITWORDBREAKPROCW;
         2583  + alias LRESULT function (HWND, UINT, WPARAM, LPARAM) WNDPROC;
         2584  + alias BOOL function (HDC, LPARAM, WPARAM, int, int) DRAWSTATEPROC;
         2585  + alias BOOL function (HWND, LPARAM)                  WNDENUMPROC;
         2586  + alias BOOL function (HWND, LPARAM)                  ENUMWINDOWSPROC;
         2587  + alias void function (LPHELPINFO)                    MSGBOXCALLBACK;
         2588  +
         2589  + static if (WINVER >= 0x410) {
         2590  +  alias BOOL function (HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC;
         2591  + }
         2592  + alias BOOL function (LPSTR, LPARAM)                 NAMEENUMPROCA;
         2593  + alias BOOL function (LPWSTR, LPARAM)                NAMEENUMPROCW;
         2594  + alias void function (HWND, UINT, DWORD, LRESULT)    SENDASYNCPROC;
         2595  +
         2596  + alias NAMEENUMPROCA DESKTOPENUMPROCA;
         2597  + alias NAMEENUMPROCW DESKTOPENUMPROCW;
         2598  + alias NAMEENUMPROCA WINSTAENUMPROCA;
         2599  + alias NAMEENUMPROCW WINSTAENUMPROCW;
         2600  +}
         2601  +
         2602  +alias HANDLE HHOOK;
    41   2603   alias HANDLE HDWP;
    42         -alias VOID MENUTEMPLATEA;
    43         -alias VOID MENUTEMPLATEW;
    44         -// #ifdef UNICODE
    45         -alias MENUTEMPLATEW MENUTEMPLATE;
    46         -// #else
    47         -// ...
    48         -// #endif // UNICODE
    49         -alias PVOID LPMENUTEMPLATEA;
    50         -alias PVOID LPMENUTEMPLATEW;
    51         -// #ifdef UNICODE
    52         -alias LPMENUTEMPLATEW LPMENUTEMPLATE;
    53         -// #else
    54         -// ...
    55         -// #endif // UNICODE
    56         -
    57         -extern(Windows) alias LRESULT function(HWND, UINT, WPARAM, LPARAM) WNDPROC;
    58         -
    59         -// #ifdef STRICT
    60         -
    61         -extern(Windows) alias INT_PTR function(HWND, UINT, WPARAM, LPARAM) DLGPROC;
    62         -extern(Windows) alias VOID function(HWND, UINT, UINT_PTR, DWORD) TIMERPROC;
    63         -extern(Windows) alias BOOL function(HDC, LPARAM, int) GRAYSTRINGPROC;
    64         -extern(Windows) alias BOOL function(HWND, LPARAM) WNDENUMPROC;
    65         -extern(Windows) alias LRESULT function(int code, WPARAM wParam, LPARAM lParam) HOOKPROC;
    66         -extern(Windows) alias VOID function(HWND, UINT, ULONG_PTR, LRESULT) SENDASYNCPROC;
    67         -
    68         -extern(Windows) alias BOOL function(HWND, LPCSTR, HANDLE) PROPENUMPROCA;
    69         -extern(Windows) alias BOOL function(HWND, LPCWSTR, HANDLE) PROPENUMPROCW;
    70         -
    71         -extern(Windows) alias BOOL function(HWND, LPSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXA;
    72         -extern(Windows) alias BOOL function(HWND, LPWSTR, HANDLE, ULONG_PTR) PROPENUMPROCEXW;
    73         -
    74         -extern(Windows) alias int function(LPSTR lpch, int ichCurrent, int cch, int code) EDITWORDBREAKPROCA;
    75         -extern(Windows) alias int function(LPWSTR lpch, int ichCurrent, int cch, int code) EDITWORDBREAKPROCW;
    76         -
    77         -// #if(WINVER >= 0x0400)
    78         -extern(Windows) alias BOOL function(HDC hdc, LPARAM lData, WPARAM wData, int cx, int cy) DRAWSTATEPROC;
    79         -// #endif /* WINVER >= 0x0400 */
    80         -// #else /* !STRICT */
    81         -
    82         -// ...
    83         -
    84         -// ...
    85         -
    86         -// ...
    87         -
    88         -// ...
    89         -
    90         -// #if(WINVER >= 0x0400)
    91         -// ...
    92         -// #endif /* WINVER >= 0x0400 */
    93         -// #endif /* !STRICT */
    94         -
    95         -// #ifdef UNICODE
    96         -alias PROPENUMPROCW PROPENUMPROC;
    97         -alias PROPENUMPROCEXW PROPENUMPROCEX;
    98         -alias EDITWORDBREAKPROCW EDITWORDBREAKPROC;
    99         -// #else  /* !UNICODE */
   100         -// ...
   101         -// #endif /* UNICODE */
   102         -
   103         -// #ifdef STRICT
   104         -
   105         -extern(Windows) alias BOOL function(LPSTR, LPARAM) NAMEENUMPROCA;
   106         -extern(Windows) alias BOOL function(LPWSTR, LPARAM) NAMEENUMPROCW;
   107         -
   108         -alias NAMEENUMPROCA WINSTAENUMPROCA;
   109         -alias NAMEENUMPROCA DESKTOPENUMPROCA;
   110         -alias NAMEENUMPROCW WINSTAENUMPROCW;
   111         -alias NAMEENUMPROCW DESKTOPENUMPROCW;
   112         -
   113         -// #else /* !STRICT */
   114         -
   115         -// ...
   116         -
   117         -// #endif /* !STRICT */
   118         -
   119         -// #ifdef UNICODE
   120         -alias WINSTAENUMPROCW WINSTAENUMPROC;
   121         -alias DESKTOPENUMPROCW DESKTOPENUMPROC;
   122         -
   123         -// #else  /* !UNICODE */
   124         -// ...
   125         -
   126         -// #endif /* UNICODE */
   127         -
   128         -bit IS_INTRESOURCE(LPTSTR _r){ return ((cast(ULONG_PTR)(_r) >> 16) == 0); }
   129         -LPSTR MAKEINTRESOURCEA(WORD i){ return cast(LPSTR)(cast(ULONG_PTR)(cast(WORD)(i))); }
   130         -LPWSTR MAKEINTRESOURCEW(WORD i){ return cast(LPWSTR)(cast(ULONG_PTR)(cast(WORD)(i))); }
   131         -// #ifdef UNICODE
   132         -alias MAKEINTRESOURCEW MAKEINTRESOURCE;
   133         -// #else
   134         -// #...
   135         -// #endif // !UNICODE
   136         -
   137         -// #ifndef NORESOURCE
   138         -
   139         -const LPTSTR RT_CURSOR = cast(LPTSTR)(1);
   140         -const LPTSTR RT_BITMAP = cast(LPTSTR)(2);
   141         -const LPTSTR RT_ICON = cast(LPTSTR)(3);
   142         -const LPTSTR RT_MENU = cast(LPTSTR)(4);
   143         -const LPTSTR RT_DIALOG = cast(LPTSTR)(5);
   144         -const LPTSTR RT_STRING = cast(LPTSTR)(6);
   145         -const LPTSTR RT_FONTDIR = cast(LPTSTR)(7);
   146         -const LPTSTR RT_FONT = cast(LPTSTR)(8);
   147         -const LPTSTR RT_ACCELERATOR = cast(LPTSTR)(9);
   148         -const LPTSTR RT_RCDATA = cast(LPTSTR)(10);
   149         -const LPTSTR RT_MESSAGETABLE = cast(LPTSTR)(11);
   150         -
   151         -enum : uint { DIFFERENCE = 11 }
   152         -const LPTSTR RT_GROUP_CURSOR = cast(LPTSTR)(cast(ULONG_PTR)RT_CURSOR + DIFFERENCE);
   153         -const LPTSTR RT_GROUP_ICON = cast(LPTSTR)(cast(ULONG_PTR)RT_ICON + DIFFERENCE);
   154         -const LPTSTR RT_VERSION = cast(LPTSTR)(16);
   155         -const LPTSTR RT_DLGINCLUDE = cast(LPTSTR)(17);
   156         -// #if(WINVER >= 0x0400)
   157         -const LPTSTR RT_PLUGPLAY = cast(LPTSTR)(19);
   158         -const LPTSTR RT_VXD = cast(LPTSTR)(20);
   159         -const LPTSTR RT_ANICURSOR = cast(LPTSTR)(21);
   160         -const LPTSTR RT_ANIICON = cast(LPTSTR)(22);
   161         -// #endif /* WINVER >= 0x0400 */
   162         -const LPTSTR RT_HTML = cast(LPTSTR)(23);
   163         -// #ifdef RC_INVOKED
   164         -// #...
   165         -// #...
   166         -// #...
   167         -// #...
   168         -// #...
   169         -// #...
   170         -// #else  /* RC_INVOKED */
   171         -const LPTSTR RT_MANIFEST = cast(LPTSTR)(24);
   172         -const LPTSTR CREATEPROCESS_MANIFEST_RESOURCE_ID = cast(LPTSTR)( 1);
   173         -const LPTSTR ISOLATIONAWARE_MANIFEST_RESOURCE_ID = cast(LPTSTR)(2);
   174         -const LPTSTR ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID = cast(LPTSTR)(3);
   175         -const LPTSTR MINIMUM_RESERVED_MANIFEST_RESOURCE_ID = cast(LPTSTR)( 1 );
   176         -const LPTSTR MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID = cast(LPTSTR)(16 );
   177         -// #endif /* RC_INVOKED */
   178         -
   179         -// #endif /* !NORESOURCE */
   180         -
   181         -extern(Windows) export int wvsprintfA(
   182         -  LPSTR,
   183         -  LPCSTR,
   184         -  va_list arglist);
   185         -extern(Windows) export int wvsprintfW(
   186         -  LPWSTR,
   187         -  LPCWSTR,
   188         -  va_list arglist);
   189         -// #ifdef UNICODE
   190         -alias wvsprintfW wvsprintf;
   191         -// #else
   192         -// #...
   193         -// #endif // !UNICODE
   194         -
   195         -extern(C) export int wsprintfA(
   196         -  LPSTR,
   197         -  LPCSTR,
   198         -  ...);
   199         -extern(C) export int wsprintfW(
   200         -  LPWSTR,
   201         -  LPCWSTR,
   202         -  ...);
   203         -// #ifdef UNICODE
   204         -alias wsprintfW wsprintf;
   205         -// #else
   206         -// #...
   207         -// #endif // !UNICODE
   208         -
   209         -const LPWSTR SETWALLPAPER_DEFAULT = cast(LPWSTR)-1;
   210         -
   211         -// #ifndef NOSCROLL
   212         -
   213         -enum : uint { SB_HORZ = 0 }
   214         -enum : uint { SB_VERT = 1 }
   215         -enum : uint { SB_CTL = 2 }
   216         -enum : uint { SB_BOTH = 3 }
   217         -
   218         -enum : uint { SB_LINEUP = 0 }
   219         -enum : uint { SB_LINELEFT = 0 }
   220         -enum : uint { SB_LINEDOWN = 1 }
   221         -enum : uint { SB_LINERIGHT = 1 }
   222         -enum : uint { SB_PAGEUP = 2 }
   223         -enum : uint { SB_PAGELEFT = 2 }
   224         -enum : uint { SB_PAGEDOWN = 3 }
   225         -enum : uint { SB_PAGERIGHT = 3 }
   226         -enum : uint { SB_THUMBPOSITION = 4 }
   227         -enum : uint { SB_THUMBTRACK = 5 }
   228         -enum : uint { SB_TOP = 6 }
   229         -enum : uint { SB_LEFT = 6 }
   230         -enum : uint { SB_BOTTOM = 7 }
   231         -enum : uint { SB_RIGHT = 7 }
   232         -enum : uint { SB_ENDSCROLL = 8 }
   233         -
   234         -// #endif /* !NOSCROLL */
   235         -
   236         -// #ifndef NOSHOWWINDOW
   237         -
   238         -enum : uint { SW_HIDE = 0 }
   239         -enum : uint { SW_SHOWNORMAL = 1 }
   240         -enum : uint { SW_NORMAL = 1 }
   241         -enum : uint { SW_SHOWMINIMIZED = 2 }
   242         -enum : uint { SW_SHOWMAXIMIZED = 3 }
   243         -enum : uint { SW_MAXIMIZE = 3 }
   244         -enum : uint { SW_SHOWNOACTIVATE = 4 }
   245         -enum : uint { SW_SHOW = 5 }
   246         -enum : uint { SW_MINIMIZE = 6 }
   247         -enum : uint { SW_SHOWMINNOACTIVE = 7 }
   248         -enum : uint { SW_SHOWNA = 8 }
   249         -enum : uint { SW_RESTORE = 9 }
   250         -enum : uint { SW_SHOWDEFAULT = 10 }
   251         -enum : uint { SW_FORCEMINIMIZE = 11 }
   252         -enum : uint { SW_MAX = 11 }
   253         -
   254         -enum : uint { HIDE_WINDOW = 0 }
   255         -enum : uint { SHOW_OPENWINDOW = 1 }
   256         -enum : uint { SHOW_ICONWINDOW = 2 }
   257         -enum : uint { SHOW_FULLSCREEN = 3 }
   258         -enum : uint { SHOW_OPENNOACTIVATE = 4 }
   259         -
   260         -enum : uint { SW_PARENTCLOSING = 1 }
   261         -enum : uint { SW_OTHERZOOM = 2 }
   262         -enum : uint { SW_PARENTOPENING = 3 }
   263         -enum : uint { SW_OTHERUNZOOM = 4 }
   264         -
   265         -// #endif /* !NOSHOWWINDOW */
   266         -
   267         -// #if(WINVER >= 0x0500)
   268         -
   269         -enum : uint { AW_HOR_POSITIVE = 0x00000001 }
   270         -enum : uint { AW_HOR_NEGATIVE = 0x00000002 }
   271         -enum : uint { AW_VER_POSITIVE = 0x00000004 }
   272         -enum : uint { AW_VER_NEGATIVE = 0x00000008 }
   273         -enum : uint { AW_CENTER = 0x00000010 }
   274         -enum : uint { AW_HIDE = 0x00010000 }
   275         -enum : uint { AW_ACTIVATE = 0x00020000 }
   276         -enum : uint { AW_SLIDE = 0x00040000 }
   277         -enum : uint { AW_BLEND = 0x00080000 }
   278         -
   279         -// #endif /* WINVER >= 0x0500 */
   280         -
   281         -enum : uint { KF_EXTENDED = 0x0100 }
   282         -enum : uint { KF_DLGMODE = 0x0800 }
   283         -enum : uint { KF_MENUMODE = 0x1000 }
   284         -enum : uint { KF_ALTDOWN = 0x2000 }
   285         -enum : uint { KF_REPEAT = 0x4000 }
   286         -enum : uint { KF_UP = 0x8000 }
   287         -
   288         -// #ifndef NOVIRTUALKEYCODES
   289         -
   290         -enum : uint { VK_LBUTTON = 0x01 }
   291         -enum : uint { VK_RBUTTON = 0x02 }
   292         -enum : uint { VK_CANCEL = 0x03 }
   293         -enum : uint { VK_MBUTTON = 0x04 }
   294         -
   295         -// #if(_WIN32_WINNT >= 0x0500)
   296         -enum : uint { VK_XBUTTON1 = 0x05 }
   297         -enum : uint { VK_XBUTTON2 = 0x06 }
   298         -// #endif /* _WIN32_WINNT >= 0x0500 */
   299         -
   300         -enum : uint { VK_BACK = 0x08 }
   301         -enum : uint { VK_TAB = 0x09 }
   302         -
   303         -enum : uint { VK_CLEAR = 0x0C }
   304         -enum : uint { VK_RETURN = 0x0D }
   305         -
   306         -enum : uint { VK_SHIFT = 0x10 }
   307         -enum : uint { VK_CONTROL = 0x11 }
   308         -enum : uint { VK_MENU = 0x12 }
   309         -enum : uint { VK_PAUSE = 0x13 }
   310         -enum : uint { VK_CAPITAL = 0x14 }
   311         -
   312         -enum : uint { VK_KANA = 0x15 }
   313         -enum : uint { VK_HANGEUL = 0x15 }
   314         -enum : uint { VK_HANGUL = 0x15 }
   315         -enum : uint { VK_JUNJA = 0x17 }
   316         -enum : uint { VK_FINAL = 0x18 }
   317         -enum : uint { VK_HANJA = 0x19 }
   318         -enum : uint { VK_KANJI = 0x19 }
   319         -
   320         -enum : uint { VK_ESCAPE = 0x1B }
   321         -
   322         -enum : uint { VK_CONVERT = 0x1C }
   323         -enum : uint { VK_NONCONVERT = 0x1D }
   324         -enum : uint { VK_ACCEPT = 0x1E }
   325         -enum : uint { VK_MODECHANGE = 0x1F }
   326         -
   327         -enum : uint { VK_SPACE = 0x20 }
   328         -enum : uint { VK_PRIOR = 0x21 }
   329         -enum : uint { VK_NEXT = 0x22 }
   330         -enum : uint { VK_END = 0x23 }
   331         -enum : uint { VK_HOME = 0x24 }
   332         -enum : uint { VK_LEFT = 0x25 }
   333         -enum : uint { VK_UP = 0x26 }
   334         -enum : uint { VK_RIGHT = 0x27 }
   335         -enum : uint { VK_DOWN = 0x28 }
   336         -enum : uint { VK_SELECT = 0x29 }
   337         -enum : uint { VK_PRINT = 0x2A }
   338         -enum : uint { VK_EXECUTE = 0x2B }
   339         -enum : uint { VK_SNAPSHOT = 0x2C }
   340         -enum : uint { VK_INSERT = 0x2D }
   341         -enum : uint { VK_DELETE = 0x2E }
   342         -enum : uint { VK_HELP = 0x2F }
   343         -
   344         -enum : uint { VK_LWIN = 0x5B }
   345         -enum : uint { VK_RWIN = 0x5C }
   346         -enum : uint { VK_APPS = 0x5D }
   347         -
   348         -enum : uint { VK_SLEEP = 0x5F }
   349         -
   350         -enum : uint { VK_NUMPAD0 = 0x60 }
   351         -enum : uint { VK_NUMPAD1 = 0x61 }
   352         -enum : uint { VK_NUMPAD2 = 0x62 }
   353         -enum : uint { VK_NUMPAD3 = 0x63 }
   354         -enum : uint { VK_NUMPAD4 = 0x64 }
   355         -enum : uint { VK_NUMPAD5 = 0x65 }
   356         -enum : uint { VK_NUMPAD6 = 0x66 }
   357         -enum : uint { VK_NUMPAD7 = 0x67 }
   358         -enum : uint { VK_NUMPAD8 = 0x68 }
   359         -enum : uint { VK_NUMPAD9 = 0x69 }
   360         -enum : uint { VK_MULTIPLY = 0x6A }
   361         -enum : uint { VK_ADD = 0x6B }
   362         -enum : uint { VK_SEPARATOR = 0x6C }
   363         -enum : uint { VK_SUBTRACT = 0x6D }
   364         -enum : uint { VK_DECIMAL = 0x6E }
   365         -enum : uint { VK_DIVIDE = 0x6F }
   366         -enum : uint { VK_F1 = 0x70 }
   367         -enum : uint { VK_F2 = 0x71 }
   368         -enum : uint { VK_F3 = 0x72 }
   369         -enum : uint { VK_F4 = 0x73 }
   370         -enum : uint { VK_F5 = 0x74 }
   371         -enum : uint { VK_F6 = 0x75 }
   372         -enum : uint { VK_F7 = 0x76 }
   373         -enum : uint { VK_F8 = 0x77 }
   374         -enum : uint { VK_F9 = 0x78 }
   375         -enum : uint { VK_F10 = 0x79 }
   376         -enum : uint { VK_F11 = 0x7A }
   377         -enum : uint { VK_F12 = 0x7B }
   378         -enum : uint { VK_F13 = 0x7C }
   379         -enum : uint { VK_F14 = 0x7D }
   380         -enum : uint { VK_F15 = 0x7E }
   381         -enum : uint { VK_F16 = 0x7F }
   382         -enum : uint { VK_F17 = 0x80 }
   383         -enum : uint { VK_F18 = 0x81 }
   384         -enum : uint { VK_F19 = 0x82 }
   385         -enum : uint { VK_F20 = 0x83 }
   386         -enum : uint { VK_F21 = 0x84 }
   387         -enum : uint { VK_F22 = 0x85 }
   388         -enum : uint { VK_F23 = 0x86 }
   389         -enum : uint { VK_F24 = 0x87 }
   390         -
   391         -enum : uint { VK_NUMLOCK = 0x90 }
   392         -enum : uint { VK_SCROLL = 0x91 }
   393         -
   394         -enum : uint { VK_OEM_NEC_EQUAL = 0x92 }
   395         -
   396         -enum : uint { VK_OEM_FJ_JISHO = 0x92 }
   397         -enum : uint { VK_OEM_FJ_MASSHOU = 0x93 }
   398         -enum : uint { VK_OEM_FJ_TOUROKU = 0x94 }
   399         -enum : uint { VK_OEM_FJ_LOYA = 0x95 }
   400         -enum : uint { VK_OEM_FJ_ROYA = 0x96 }
   401         -
   402         -enum : uint { VK_LSHIFT = 0xA0 }
   403         -enum : uint { VK_RSHIFT = 0xA1 }
   404         -enum : uint { VK_LCONTROL = 0xA2 }
   405         -enum : uint { VK_RCONTROL = 0xA3 }
   406         -enum : uint { VK_LMENU = 0xA4 }
   407         -enum : uint { VK_RMENU = 0xA5 }
   408         -
   409         -// #if(_WIN32_WINNT >= 0x0500)
   410         -enum : uint { VK_BROWSER_BACK = 0xA6 }
   411         -enum : uint { VK_BROWSER_FORWARD = 0xA7 }
   412         -enum : uint { VK_BROWSER_REFRESH = 0xA8 }
   413         -enum : uint { VK_BROWSER_STOP = 0xA9 }
   414         -enum : uint { VK_BROWSER_SEARCH = 0xAA }
   415         -enum : uint { VK_BROWSER_FAVORITES = 0xAB }
   416         -enum : uint { VK_BROWSER_HOME = 0xAC }
   417         -
   418         -enum : uint { VK_VOLUME_MUTE = 0xAD }
   419         -enum : uint { VK_VOLUME_DOWN = 0xAE }
   420         -enum : uint { VK_VOLUME_UP = 0xAF }
   421         -enum : uint { VK_MEDIA_NEXT_TRACK = 0xB0 }
   422         -enum : uint { VK_MEDIA_PREV_TRACK = 0xB1 }
   423         -enum : uint { VK_MEDIA_STOP = 0xB2 }
   424         -enum : uint { VK_MEDIA_PLAY_PAUSE = 0xB3 }
   425         -enum : uint { VK_LAUNCH_MAIL = 0xB4 }
   426         -enum : uint { VK_LAUNCH_MEDIA_SELECT = 0xB5 }
   427         -enum : uint { VK_LAUNCH_APP1 = 0xB6 }
   428         -enum : uint { VK_LAUNCH_APP2 = 0xB7 }
   429         -
   430         -// #endif /* _WIN32_WINNT >= 0x0500 */
   431         -
   432         -enum : uint { VK_OEM_1 = 0xBA }
   433         -enum : uint { VK_OEM_PLUS = 0xBB }
   434         -enum : uint { VK_OEM_COMMA = 0xBC }
   435         -enum : uint { VK_OEM_MINUS = 0xBD }
   436         -enum : uint { VK_OEM_PERIOD = 0xBE }
   437         -enum : uint { VK_OEM_2 = 0xBF }
   438         -enum : uint { VK_OEM_3 = 0xC0 }
   439         -
   440         -enum : uint { VK_OEM_4 = 0xDB }
   441         -enum : uint { VK_OEM_5 = 0xDC }
   442         -enum : uint { VK_OEM_6 = 0xDD }
   443         -enum : uint { VK_OEM_7 = 0xDE }
   444         -enum : uint { VK_OEM_8 = 0xDF }
   445         -
   446         -enum : uint { VK_OEM_AX = 0xE1 }
   447         -enum : uint { VK_OEM_102 = 0xE2 }
   448         -enum : uint { VK_ICO_HELP = 0xE3 }
   449         -enum : uint { VK_ICO_00 = 0xE4 }
   450         -
   451         -// #if(WINVER >= 0x0400)
   452         -enum : uint { VK_PROCESSKEY = 0xE5 }
   453         -// #endif /* WINVER >= 0x0400 */
   454         -
   455         -enum : uint { VK_ICO_CLEAR = 0xE6 }
   456         -
   457         -// #if(_WIN32_WINNT >= 0x0500)
   458         -enum : uint { VK_PACKET = 0xE7 }
   459         -// #endif /* _WIN32_WINNT >= 0x0500 */
   460         -
   461         -enum : uint { VK_OEM_RESET = 0xE9 }
   462         -enum : uint { VK_OEM_JUMP = 0xEA }
   463         -enum : uint { VK_OEM_PA1 = 0xEB }
   464         -enum : uint { VK_OEM_PA2 = 0xEC }
   465         -enum : uint { VK_OEM_PA3 = 0xED }
   466         -enum : uint { VK_OEM_WSCTRL = 0xEE }
   467         -enum : uint { VK_OEM_CUSEL = 0xEF }
   468         -enum : uint { VK_OEM_ATTN = 0xF0 }
   469         -enum : uint { VK_OEM_FINISH = 0xF1 }
   470         -enum : uint { VK_OEM_COPY = 0xF2 }
   471         -enum : uint { VK_OEM_AUTO = 0xF3 }
   472         -enum : uint { VK_OEM_ENLW = 0xF4 }
   473         -enum : uint { VK_OEM_BACKTAB = 0xF5 }
   474         -
   475         -enum : uint { VK_ATTN = 0xF6 }
   476         -enum : uint { VK_CRSEL = 0xF7 }
   477         -enum : uint { VK_EXSEL = 0xF8 }
   478         -enum : uint { VK_EREOF = 0xF9 }
   479         -enum : uint { VK_PLAY = 0xFA }
   480         -enum : uint { VK_ZOOM = 0xFB }
   481         -enum : uint { VK_NONAME = 0xFC }
   482         -enum : uint { VK_PA1 = 0xFD }
   483         -enum : uint { VK_OEM_CLEAR = 0xFE }
   484         -
   485         -// #endif /* !NOVIRTUALKEYCODES */
   486         -
   487         -// #ifndef NOWH
   488         -
   489         -enum { WH_MIN = -1 }
   490         -enum { WH_MSGFILTER = -1 }
   491         -enum : uint { WH_JOURNALRECORD = 0 }
   492         -enum : uint { WH_JOURNALPLAYBACK = 1 }
   493         -enum : uint { WH_KEYBOARD = 2 }
   494         -enum : uint { WH_GETMESSAGE = 3 }
   495         -enum : uint { WH_CALLWNDPROC = 4 }
   496         -enum : uint { WH_CBT = 5 }
   497         -enum : uint { WH_SYSMSGFILTER = 6 }
   498         -enum : uint { WH_MOUSE = 7 }
   499         -// #if defined(_WIN32_WINDOWS)
   500         -// #...
   501         -// #endif
   502         -enum : uint { WH_DEBUG = 9 }
   503         -enum : uint { WH_SHELL = 10 }
   504         -enum : uint { WH_FOREGROUNDIDLE = 11 }
   505         -// #if(WINVER >= 0x0400)
   506         -enum : uint { WH_CALLWNDPROCRET = 12 }
   507         -// #endif /* WINVER >= 0x0400 */
   508         -
   509         -// #if (_WIN32_WINNT >= 0x0400)
   510         -enum : uint { WH_KEYBOARD_LL = 13 }
   511         -enum : uint { WH_MOUSE_LL = 14 }
   512         -// #endif // (_WIN32_WINNT >= 0x0400)
   513         -
   514         -// #if(WINVER >= 0x0400)
   515         -// #if (_WIN32_WINNT >= 0x0400)
   516         -enum : uint { WH_MAX = 14 }
   517         -// #else
   518         -// #...
   519         -// #endif // (_WIN32_WINNT >= 0x0400)
   520         -// #else
   521         -// #...
   522         -// #endif
   523         -
   524         -alias WH_MIN WH_MINHOOK;
   525         -alias WH_MAX WH_MAXHOOK;
   526         -
   527         -enum : uint { HC_ACTION = 0 }
   528         -enum : uint { HC_GETNEXT = 1 }
   529         -enum : uint { HC_SKIP = 2 }
   530         -enum : uint { HC_NOREMOVE = 3 }
   531         -alias HC_NOREMOVE HC_NOREM;
   532         -enum : uint { HC_SYSMODALON = 4 }
   533         -enum : uint { HC_SYSMODALOFF = 5 }
   534         -
   535         -enum : uint { HCBT_MOVESIZE = 0 }
   536         -enum : uint { HCBT_MINMAX = 1 }
   537         -enum : uint { HCBT_QS = 2 }
   538         -enum : uint { HCBT_CREATEWND = 3 }
   539         -enum : uint { HCBT_DESTROYWND = 4 }
   540         -enum : uint { HCBT_ACTIVATE = 5 }
   541         -enum : uint { HCBT_CLICKSKIPPED = 6 }
   542         -enum : uint { HCBT_KEYSKIPPED = 7 }
   543         -enum : uint { HCBT_SYSCOMMAND = 8 }
   544         -enum : uint { HCBT_SETFOCUS = 9 }
   545         -
   546         -struct tagCBT_CREATEWNDA {
   547         -  tagCREATESTRUCTA *lpcs;
   548         -  HWND hwndInsertAfter;
   549         -}
   550         -alias tagCBT_CREATEWNDA CBT_CREATEWNDA;
   551         -alias tagCBT_CREATEWNDA* LPCBT_CREATEWNDA;
   552         -
   553         -struct tagCBT_CREATEWNDW {
   554         -  tagCREATESTRUCTW *lpcs;
   555         -  HWND hwndInsertAfter;
   556         -}
   557         -alias tagCBT_CREATEWNDW CBT_CREATEWNDW;
   558         -alias tagCBT_CREATEWNDW* LPCBT_CREATEWNDW;
   559         -
   560         -// #ifdef UNICODE
   561         -alias CBT_CREATEWNDW CBT_CREATEWND;
   562         -alias LPCBT_CREATEWNDW LPCBT_CREATEWND;
   563         -// #else
   564         -// ...
   565         -// #endif // UNICODE
   566         -
   567         -struct tagCBTACTIVATESTRUCT {
   568         -  BOOL fMouse;
   569         -  HWND hWndActive;
   570         -}
   571         -alias tagCBTACTIVATESTRUCT CBTACTIVATESTRUCT;
   572         -alias tagCBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT;
   573         -
   574         -// #if(_WIN32_WINNT >= 0x0501)
   575         -
   576         -struct tagWTSSESSION_NOTIFICATION {
   577         -  DWORD cbSize;
   578         -  DWORD dwSessionId;
   579         -}
   580         -alias tagWTSSESSION_NOTIFICATION WTSSESSION_NOTIFICATION;
   581         -alias tagWTSSESSION_NOTIFICATION* PWTSSESSION_NOTIFICATION;
   582         -
   583         -enum : uint { WTS_CONSOLE_CONNECT = 0x1 }
   584         -enum : uint { WTS_CONSOLE_DISCONNECT = 0x2 }
   585         -enum : uint { WTS_REMOTE_CONNECT = 0x3 }
   586         -enum : uint { WTS_REMOTE_DISCONNECT = 0x4 }
   587         -enum : uint { WTS_SESSION_LOGON = 0x5 }
   588         -enum : uint { WTS_SESSION_LOGOFF = 0x6 }
   589         -enum : uint { WTS_SESSION_LOCK = 0x7 }
   590         -enum : uint { WTS_SESSION_UNLOCK = 0x8 }
   591         -
   592         -// #endif /* _WIN32_WINNT >= 0x0501 */
   593         -
   594         -enum : uint { MSGF_DIALOGBOX = 0 }
   595         -enum : uint { MSGF_MESSAGEBOX = 1 }
   596         -enum : uint { MSGF_MENU = 2 }
   597         -enum : uint { MSGF_SCROLLBAR = 5 }
   598         -enum : uint { MSGF_NEXTWINDOW = 6 }
   599         -enum : uint { MSGF_MAX = 8 }
   600         -enum : uint { MSGF_USER = 4096 }
   601         -
   602         -enum : uint { HSHELL_WINDOWCREATED = 1 }
   603         -enum : uint { HSHELL_WINDOWDESTROYED = 2 }
   604         -enum : uint { HSHELL_ACTIVATESHELLWINDOW = 3 }
   605         -
   606         -// #if(WINVER >= 0x0400)
   607         -enum : uint { HSHELL_WINDOWACTIVATED = 4 }
   608         -enum : uint { HSHELL_GETMINRECT = 5 }
   609         -enum : uint { HSHELL_REDRAW = 6 }
   610         -enum : uint { HSHELL_TASKMAN = 7 }
   611         -enum : uint { HSHELL_LANGUAGE = 8 }
   612         -// #endif /* WINVER >= 0x0400 */
   613         -// #if(_WIN32_WINNT >= 0x0500)
   614         -enum : uint { HSHELL_ACCESSIBILITYSTATE = 11 }
   615         -enum : uint { HSHELL_APPCOMMAND = 12 }
   616         -// #endif /* _WIN32_WINNT >= 0x0500 */
   617         -
   618         -// #if(_WIN32_WINNT >= 0x0501)
   619         -enum : uint { HSHELL_WINDOWREPLACED = 13 }
   620         -// #endif /* _WIN32_WINNT >= 0x0501 */
   621         -
   622         -// #if(_WIN32_WINNT >= 0x0500)
   623         -
   624         -enum : uint { ACCESS_STICKYKEYS = 0x0001 }
   625         -enum : uint { ACCESS_FILTERKEYS = 0x0002 }
   626         -enum : uint { ACCESS_MOUSEKEYS = 0x0003 }
   627         -
   628         -enum : uint { APPCOMMAND_BROWSER_BACKWARD = 1 }
   629         -enum : uint { APPCOMMAND_BROWSER_FORWARD = 2 }
   630         -enum : uint { APPCOMMAND_BROWSER_REFRESH = 3 }
   631         -enum : uint { APPCOMMAND_BROWSER_STOP = 4 }
   632         -enum : uint { APPCOMMAND_BROWSER_SEARCH = 5 }
   633         -enum : uint { APPCOMMAND_BROWSER_FAVORITES = 6 }
   634         -enum : uint { APPCOMMAND_BROWSER_HOME = 7 }
   635         -enum : uint { APPCOMMAND_VOLUME_MUTE = 8 }
   636         -enum : uint { APPCOMMAND_VOLUME_DOWN = 9 }
   637         -enum : uint { APPCOMMAND_VOLUME_UP = 10 }
   638         -enum : uint { APPCOMMAND_MEDIA_NEXTTRACK = 11 }
   639         -enum : uint { APPCOMMAND_MEDIA_PREVIOUSTRACK = 12 }
   640         -enum : uint { APPCOMMAND_MEDIA_STOP = 13 }
   641         -enum : uint { APPCOMMAND_MEDIA_PLAY_PAUSE = 14 }
   642         -enum : uint { APPCOMMAND_LAUNCH_MAIL = 15 }
   643         -enum : uint { APPCOMMAND_LAUNCH_MEDIA_SELECT = 16 }
   644         -enum : uint { APPCOMMAND_LAUNCH_APP1 = 17 }
   645         -enum : uint { APPCOMMAND_LAUNCH_APP2 = 18 }
   646         -enum : uint { APPCOMMAND_BASS_DOWN = 19 }
   647         -enum : uint { APPCOMMAND_BASS_BOOST = 20 }
   648         -enum : uint { APPCOMMAND_BASS_UP = 21 }
   649         -enum : uint { APPCOMMAND_TREBLE_DOWN = 22 }
   650         -enum : uint { APPCOMMAND_TREBLE_UP = 23 }
   651         -// #if(_WIN32_WINNT >= 0x0501)
   652         -enum : uint { APPCOMMAND_MICROPHONE_VOLUME_MUTE = 24 }
   653         -enum : uint { APPCOMMAND_MICROPHONE_VOLUME_DOWN = 25 }
   654         -enum : uint { APPCOMMAND_MICROPHONE_VOLUME_UP = 26 }
   655         -enum : uint { APPCOMMAND_HELP = 27 }
   656         -enum : uint { APPCOMMAND_FIND = 28 }
   657         -enum : uint { APPCOMMAND_NEW = 29 }
   658         -enum : uint { APPCOMMAND_OPEN = 30 }
   659         -enum : uint { APPCOMMAND_CLOSE = 31 }
   660         -enum : uint { APPCOMMAND_SAVE = 32 }
   661         -enum : uint { APPCOMMAND_PRINT = 33 }
   662         -enum : uint { APPCOMMAND_UNDO = 34 }
   663         -enum : uint { APPCOMMAND_REDO = 35 }
   664         -enum : uint { APPCOMMAND_COPY = 36 }
   665         -enum : uint { APPCOMMAND_CUT = 37 }
   666         -enum : uint { APPCOMMAND_PASTE = 38 }
   667         -enum : uint { APPCOMMAND_REPLY_TO_MAIL = 39 }
   668         -enum : uint { APPCOMMAND_FORWARD_MAIL = 40 }
   669         -enum : uint { APPCOMMAND_SEND_MAIL = 41 }
   670         -enum : uint { APPCOMMAND_SPELL_CHECK = 42 }
   671         -enum : uint { APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE = 43 }
   672         -enum : uint { APPCOMMAND_MIC_ON_OFF_TOGGLE = 44 }
   673         -enum : uint { APPCOMMAND_CORRECTION_LIST = 45 }
   674         -// #endif /* _WIN32_WINNT >= 0x0501 */
   675         -
   676         -enum : uint { FAPPCOMMAND_MOUSE = 0x8000 }
   677         -enum : uint { FAPPCOMMAND_KEY = 0 }
   678         -enum : uint { FAPPCOMMAND_OEM = 0x1000 }
   679         -enum : uint { FAPPCOMMAND_MASK = 0xF000 }
   680         -
   681         -// #define GET_APPCOMMAND_LPARAM(lParam) ((short)(HIWORD(lParam) & ~FAPPCOMMAND_MASK))
   682         -// #define GET_DEVICE_LPARAM(lParam) ((WORD)(HIWORD(lParam) & FAPPCOMMAND_MASK))
   683         -// #define GET_MOUSEORKEY_LPARAM GET_DEVICE_LPARAM
   684         -// #define GET_FLAGS_LPARAM(lParam) (LOWORD(lParam))
   685         -// #define GET_KEYSTATE_LPARAM(lParam) GET_FLAGS_LPARAM(lParam)
   686         -// #endif /* _WIN32_WINNT >= 0x0500 */
   687         -
   688         -struct tagEVENTMSG {
   689         -  UINT message;
   690         -  UINT paramL;
   691         -  UINT paramH;
   692         -  DWORD time;
   693         -  HWND hwnd;
   694         -}
   695         -alias tagEVENTMSG EVENTMSG;
   696         -alias tagEVENTMSG* PEVENTMSGMSG;
   697         -alias tagEVENTMSG* NPEVENTMSGMSG;
   698         -alias tagEVENTMSG* LPEVENTMSGMSG;
   699         -
   700         -alias tagEVENTMSG* PEVENTMSG;
   701         -alias tagEVENTMSG* NPEVENTMSG;
   702         -alias tagEVENTMSG* LPEVENTMSG;
   703         -
   704         -struct tagCWPSTRUCT {
   705         -  LPARAM lParam;
   706         -  WPARAM wParam;
   707         -  UINT message;
   708         -  HWND hwnd;
   709         -}
   710         -alias tagCWPSTRUCT CWPSTRUCT;
   711         -alias tagCWPSTRUCT* PCWPSTRUCT;
   712         -alias tagCWPSTRUCT* NPCWPSTRUCT;
   713         -alias tagCWPSTRUCT* LPCWPSTRUCT;
   714         -
   715         -// #if(WINVER >= 0x0400)
   716         -
   717         -struct tagCWPRETSTRUCT {
   718         -  LRESULT lResult;
   719         -  LPARAM lParam;
   720         -  WPARAM wParam;
   721         -  UINT message;
   722         -  HWND hwnd;
   723         -}
   724         -alias tagCWPRETSTRUCT CWPRETSTRUCT;
   725         -alias tagCWPRETSTRUCT* PCWPRETSTRUCT;
   726         -alias tagCWPRETSTRUCT* NPCWPRETSTRUCT;
   727         -alias tagCWPRETSTRUCT* LPCWPRETSTRUCT;
   728         -
   729         -// #endif /* WINVER >= 0x0400 */
   730         -
   731         -// #if (_WIN32_WINNT >= 0x0400)
   732         -
   733         -enum : uint { LLKHF_EXTENDED = KF_EXTENDED >> 8 }
   734         -enum : uint { LLKHF_INJECTED = 0x00000010 }
   735         -enum : uint { LLKHF_ALTDOWN = KF_ALTDOWN >> 8 }
   736         -enum : uint { LLKHF_UP = KF_UP >> 8 }
   737         -
   738         -enum : uint { LLMHF_INJECTED = 0x00000001 }
   739         -
   740         -struct tagKBDLLHOOKSTRUCT {
   741         -  DWORD vkCode;
   742         -  DWORD scanCode;
   743         -  DWORD flags;
   744         -  DWORD time;
   745         -  ULONG_PTR dwExtraInfo;
   746         -}
   747         -alias tagKBDLLHOOKSTRUCT KBDLLHOOKSTRUCT;
   748         -alias tagKBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT;
   749         -alias tagKBDLLHOOKSTRUCT* PKBDLLHOOKSTRUCT;
   750         -
   751         -struct tagMSLLHOOKSTRUCT {
   752         -  POINT pt;
   753         -  DWORD mouseData;
   754         -  DWORD flags;
   755         -  DWORD time;
   756         -  ULONG_PTR dwExtraInfo;
   757         -}
   758         -alias tagMSLLHOOKSTRUCT MSLLHOOKSTRUCT;
   759         -alias tagMSLLHOOKSTRUCT* LPMSLLHOOKSTRUCT;
   760         -alias tagMSLLHOOKSTRUCT* PMSLLHOOKSTRUCT;
   761         -
   762         -// #endif // (_WIN32_WINNT >= 0x0400)
   763         -
   764         -struct tagDEBUGHOOKINFO {
   765         -  DWORD idThread;
   766         -  DWORD idThreadInstaller;
   767         -  LPARAM lParam;
   768         -  WPARAM wParam;
   769         -  int code;
   770         -}
   771         -alias tagDEBUGHOOKINFO DEBUGHOOKINFO;
   772         -alias tagDEBUGHOOKINFO* PDEBUGHOOKINFO;
   773         -alias tagDEBUGHOOKINFO* NPDEBUGHOOKINFO;
   774         -alias tagDEBUGHOOKINFO* LPDEBUGHOOKINFO;
   775         -
   776         -struct tagMOUSEHOOKSTRUCT {
   777         -  POINT pt;
   778         -  HWND hwnd;
   779         -  UINT wHitTestCode;
   780         -  ULONG_PTR dwExtraInfo;
   781         -}
   782         -alias tagMOUSEHOOKSTRUCT MOUSEHOOKSTRUCT;
   783         -alias tagMOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT;
   784         -alias tagMOUSEHOOKSTRUCT* PMOUSEHOOKSTRUCT;
   785         -
   786         -// #if(_WIN32_WINNT >= 0x0500)
   787         -// #ifdef __cplusplus
   788         -struct tagMOUSEHOOKSTRUCTEX {
   789         -  POINT pt;
   790         -  HWND hwnd;
   791         -  UINT wHitTestCode;
   792         -  ULONG_PTR dwExtraInfo;
   793         -  DWORD mouseData;
   794         -}
   795         -alias tagMOUSEHOOKSTRUCTEX MOUSEHOOKSTRUCTEX;
   796         -alias tagMOUSEHOOKSTRUCTEX* LPMOUSEHOOKSTRUCTEX;
   797         -alias tagMOUSEHOOKSTRUCTEX* PMOUSEHOOKSTRUCTEX;
   798         -
   799         -// #else // ndef __cplusplus
   800         -// ...
   801         -// #endif
   802         -// #endif /* _WIN32_WINNT >= 0x0500 */
   803         -
   804         -// #if(WINVER >= 0x0400)
   805         -
   806         -struct tagHARDWAREHOOKSTRUCT {
   807         -  HWND hwnd;
   808         -  UINT message;
   809         -  WPARAM wParam;
   810         -  LPARAM lParam;
   811         -}
   812         -alias tagHARDWAREHOOKSTRUCT HARDWAREHOOKSTRUCT;
   813         -alias tagHARDWAREHOOKSTRUCT* LPHARDWAREHOOKSTRUCT;
   814         -alias tagHARDWAREHOOKSTRUCT* PHARDWAREHOOKSTRUCT;
   815         -
   816         -// #endif /* WINVER >= 0x0400 */
   817         -// #endif /* !NOWH */
   818         -
   819         -enum : uint { HKL_PREV = 0 }
   820         -enum : uint { HKL_NEXT = 1 }
   821         -
   822         -enum : uint { KLF_ACTIVATE = 0x00000001 }
   823         -enum : uint { KLF_SUBSTITUTE_OK = 0x00000002 }
   824         -enum : uint { KLF_REORDER = 0x00000008 }
   825         -// #if(WINVER >= 0x0400)
   826         -enum : uint { KLF_REPLACELANG = 0x00000010 }
   827         -enum : uint { KLF_NOTELLSHELL = 0x00000080 }
   828         -// #endif /* WINVER >= 0x0400 */
   829         -enum : uint { KLF_SETFORPROCESS = 0x00000100 }
   830         -// #if(_WIN32_WINNT >= 0x0500)
   831         -enum : uint { KLF_SHIFTLOCK = 0x00010000 }
   832         -enum : uint { KLF_RESET = 0x40000000 }
   833         -// #endif /* _WIN32_WINNT >= 0x0500 */
   834         -
   835         -// #if(WINVER >= 0x0500)
   836         -
   837         -enum : uint { INPUTLANGCHANGE_SYSCHARSET = 0x0001 }
   838         -enum : uint { INPUTLANGCHANGE_FORWARD = 0x0002 }
   839         -enum : uint { INPUTLANGCHANGE_BACKWARD = 0x0004 }
   840         -// #endif /* WINVER >= 0x0500 */
   841         -
   842         -enum : uint { KL_NAMELENGTH = 9 }
   843         -
   844         -extern(Windows) export HKL LoadKeyboardLayoutA(
   845         -  LPCSTR pwszKLID,
   846         -  UINT Flags);
   847         -extern(Windows) export HKL LoadKeyboardLayoutW(
   848         -  LPCWSTR pwszKLID,
   849         -  UINT Flags);
   850         -// #ifdef UNICODE
   851         -alias LoadKeyboardLayoutW LoadKeyboardLayout;
   852         -// #else
   853         -// #...
   854         -// #endif // !UNICODE
   855         -
   856         -// #if(WINVER >= 0x0400)
   857         -extern(Windows) export HKL ActivateKeyboardLayout(
   858         -  HKL hkl,
   859         -  UINT Flags);
   860         -// #else
   861         -// ...
   862         -// #endif /* WINVER >= 0x0400 */
   863         -
   864         -// #if(WINVER >= 0x0400)
   865         -extern(Windows) export int ToUnicodeEx(
   866         -  UINT wVirtKey,
   867         -  UINT wScanCode,
   868         -  BYTE *lpKeyState,
   869         -  LPWSTR pwszBuff,
   870         -  int cchBuff,
   871         -  UINT wFlags,
   872         -  HKL dwhkl);
   873         -// #endif /* WINVER >= 0x0400 */
   874         -
   875         -extern(Windows) export BOOL UnloadKeyboardLayout(
   876         -  HKL hkl);
   877         -
   878         -extern(Windows) export BOOL GetKeyboardLayoutNameA(
   879         -  LPSTR pwszKLID);
   880         -extern(Windows) export BOOL GetKeyboardLayoutNameW(
   881         -  LPWSTR pwszKLID);
   882         -// #ifdef UNICODE
   883         -alias GetKeyboardLayoutNameW GetKeyboardLayoutName;
   884         -// #else
   885         -// #...
   886         -// #endif // !UNICODE
   887         -
   888         -// #if(WINVER >= 0x0400)
   889         -extern(Windows) export int GetKeyboardLayoutList(
   890         -  int nBuff,
   891         -  HKL *lpList);
   892         -
   893         -extern(Windows) export HKL GetKeyboardLayout(
   894         -  DWORD idThread
   895         -);
   896         -// #endif /* WINVER >= 0x0400 */
   897         -
   898         -// #if(WINVER >= 0x0500)
   899         -
   900         -struct tagMOUSEMOVEPOINT {
   901         -  int x;
   902         -  int y;
   903         -  DWORD time;
   904         -  ULONG_PTR dwExtraInfo;
   905         -}
   906         -alias tagMOUSEMOVEPOINT MOUSEMOVEPOINT;
   907         -alias tagMOUSEMOVEPOINT* PMOUSEMOVEPOINT;
   908         -alias tagMOUSEMOVEPOINT* LPMOUSEMOVEPOINT;
   909         -
   910         -enum : uint { GMMP_USE_DISPLAY_POINTS = 1 }
   911         -enum : uint { GMMP_USE_HIGH_RESOLUTION_POINTS = 2 }
   912         -
   913         -extern(Windows) export int GetMouseMovePointsEx(
   914         -  UINT cbSize,
   915         -  LPMOUSEMOVEPOINT lppt,
   916         -  LPMOUSEMOVEPOINT lpptBuf,
   917         -  int nBufPoints,
   918         -  DWORD resolution
   919         -);
   920         -
   921         -// #endif /* WINVER >= 0x0500 */
   922         -
   923         -// #ifndef NODESKTOP
   924         -
   925         -enum : uint { DESKTOP_READOBJECTS = 0x0001 }
   926         -enum : uint { DESKTOP_CREATEWINDOW = 0x0002 }
   927         -enum : uint { DESKTOP_CREATEMENU = 0x0004 }
   928         -enum : uint { DESKTOP_HOOKCONTROL = 0x0008 }
   929         -enum : uint { DESKTOP_JOURNALRECORD = 0x0010 }
   930         -enum : uint { DESKTOP_JOURNALPLAYBACK = 0x0020 }
   931         -enum : uint { DESKTOP_ENUMERATE = 0x0040 }
   932         -enum : uint { DESKTOP_WRITEOBJECTS = 0x0080 }
   933         -enum : uint { DESKTOP_SWITCHDESKTOP = 0x0100 }
   934         -
   935         -enum : uint { DF_ALLOWOTHERACCOUNTHOOK = 0x0001 }
   936         -
   937         -// #ifdef _WINGDI_
   938         -// #ifndef NOGDI
   939         -
   940         -// ...
   941         -// #ifdef UNICODE
   942         -// #...
   943         -// #else
   944         -// #...
   945         -// #endif // !UNICODE
   946         -
   947         -// #endif /* NOGDI */
   948         -// #endif /* _WINGDI_ */
   949         -
   950         -extern(Windows) export HDESK OpenDesktopA(
   951         -  LPCSTR lpszDesktop,
   952         -  DWORD dwFlags,
   953         -  BOOL fInherit,
   954         -  ACCESS_MASK dwDesiredAccess);
   955         -extern(Windows) export HDESK OpenDesktopW(
   956         -  LPCWSTR lpszDesktop,
   957         -  DWORD dwFlags,
   958         -  BOOL fInherit,
   959         -  ACCESS_MASK dwDesiredAccess);
   960         -// #ifdef UNICODE
   961         -alias OpenDesktopW OpenDesktop;
   962         -// #else
   963         -// #...
   964         -// #endif // !UNICODE
   965         -
   966         -extern(Windows) export HDESK OpenInputDesktop(
   967         -  DWORD dwFlags,
   968         -  BOOL fInherit,
   969         -  ACCESS_MASK dwDesiredAccess);
   970         -
   971         -extern(Windows) export BOOL EnumDesktopsA(
   972         -  HWINSTA hwinsta,
   973         -  DESKTOPENUMPROCA lpEnumFunc,
   974         -  LPARAM lParam);
   975         -extern(Windows) export BOOL EnumDesktopsW(
   976         -  HWINSTA hwinsta,
   977         -  DESKTOPENUMPROCW lpEnumFunc,
   978         -  LPARAM lParam);
   979         -// #ifdef UNICODE
   980         -alias EnumDesktopsW EnumDesktops;
   981         -// #else
   982         -// #...
   983         -// #endif // !UNICODE
   984         -
   985         -extern(Windows) export BOOL EnumDesktopWindows(
   986         -  HDESK hDesktop,
   987         -  WNDENUMPROC lpfn,
   988         -  LPARAM lParam);
   989         -
   990         -extern(Windows) export BOOL SwitchDesktop(
   991         -  HDESK hDesktop);
   992         -
   993         -extern(Windows) export BOOL SetThreadDesktop(
   994         -  HDESK hDesktop);
   995         -
   996         -extern(Windows) export BOOL CloseDesktop(
   997         -  HDESK hDesktop);
   998         -
   999         -extern(Windows) export HDESK GetThreadDesktop(
  1000         -  DWORD dwThreadId);
  1001         -// #endif  /* !NODESKTOP */
  1002         -
  1003         -// #ifndef NOWINDOWSTATION
  1004         -
  1005         -enum : uint { WINSTA_ENUMDESKTOPS = 0x0001 }
  1006         -enum : uint { WINSTA_READATTRIBUTES = 0x0002 }
  1007         -enum : uint { WINSTA_ACCESSCLIPBOARD = 0x0004 }
  1008         -enum : uint { WINSTA_CREATEDESKTOP = 0x0008 }
  1009         -enum : uint { WINSTA_WRITEATTRIBUTES = 0x0010 }
  1010         -enum : uint { WINSTA_ACCESSGLOBALATOMS = 0x0020 }
  1011         -enum : uint { WINSTA_EXITWINDOWS = 0x0040 }
  1012         -enum : uint { WINSTA_ENUMERATE = 0x0100 }
  1013         -enum : uint { WINSTA_READSCREEN = 0x0200 }
  1014         -
  1015         -enum : uint { WSF_VISIBLE = 0x0001 }
  1016         -
  1017         -extern(Windows) export HWINSTA CreateWindowStationA(
  1018         -  LPCSTR lpwinsta,
  1019         -  DWORD dwReserved,
  1020         -  ACCESS_MASK dwDesiredAccess,
  1021         -  LPSECURITY_ATTRIBUTES lpsa);
  1022         -extern(Windows) export HWINSTA CreateWindowStationW(
  1023         -  LPCWSTR lpwinsta,
  1024         -  DWORD dwReserved,
  1025         -  ACCESS_MASK dwDesiredAccess,
  1026         -  LPSECURITY_ATTRIBUTES lpsa);
  1027         -// #ifdef UNICODE
  1028         -alias CreateWindowStationW CreateWindowStation;
  1029         -// #else
  1030         -// #...
  1031         -// #endif // !UNICODE
  1032         -
  1033         -extern(Windows) export HWINSTA OpenWindowStationA(
  1034         -  LPCSTR lpszWinSta,
  1035         -  BOOL fInherit,
  1036         -  ACCESS_MASK dwDesiredAccess);
  1037         -extern(Windows) export HWINSTA OpenWindowStationW(
  1038         -  LPCWSTR lpszWinSta,
  1039         -  BOOL fInherit,
  1040         -  ACCESS_MASK dwDesiredAccess);
  1041         -// #ifdef UNICODE
  1042         -alias OpenWindowStationW OpenWindowStation;
  1043         -// #else
  1044         -// #...
  1045         -// #endif // !UNICODE
  1046         -
  1047         -extern(Windows) export BOOL EnumWindowStationsA(
  1048         -  WINSTAENUMPROCA lpEnumFunc,
  1049         -  LPARAM lParam);
  1050         -extern(Windows) export BOOL EnumWindowStationsW(
  1051         -  WINSTAENUMPROCW lpEnumFunc,
  1052         -  LPARAM lParam);
  1053         -// #ifdef UNICODE
  1054         -alias EnumWindowStationsW EnumWindowStations;
  1055         -// #else
  1056         -// #...
  1057         -// #endif // !UNICODE
  1058         -
  1059         -extern(Windows) export BOOL CloseWindowStation(
  1060         -  HWINSTA hWinSta);
  1061         -
  1062         -extern(Windows) export BOOL SetProcessWindowStation(
  1063         -  HWINSTA hWinSta);
  1064         -
  1065         -extern(Windows) export HWINSTA GetProcessWindowStation();
  1066         -// #endif  /* !NOWINDOWSTATION */
  1067         -
  1068         -// #ifndef NOSECURITY
  1069         -
  1070         -extern(Windows) export BOOL SetUserObjectSecurity(
  1071         -  HANDLE hObj,
  1072         -  PSECURITY_INFORMATION pSIRequested,
  1073         -  PSECURITY_DESCRIPTOR pSID);
  1074         -
  1075         -extern(Windows) export BOOL GetUserObjectSecurity(
  1076         -  HANDLE hObj,
  1077         -  PSECURITY_INFORMATION pSIRequested,
  1078         -  PSECURITY_DESCRIPTOR pSID,
  1079         -  DWORD nLength,
  1080         -  LPDWORD lpnLengthNeeded);
  1081         -
  1082         -enum : uint { UOI_FLAGS = 1 }
  1083         -enum : uint { UOI_NAME = 2 }
  1084         -enum : uint { UOI_TYPE = 3 }
  1085         -enum : uint { UOI_USER_SID = 4 }
  1086         -
  1087         -struct tagUSEROBJECTFLAGS {
  1088         -  BOOL fInherit;
  1089         -  BOOL fReserved;
  1090         -  DWORD dwFlags;
  1091         -}
  1092         -alias tagUSEROBJECTFLAGS USEROBJECTFLAGS;
  1093         -alias tagUSEROBJECTFLAGS* PUSEROBJECTFLAGS;
  1094         -
  1095         -extern(Windows) export BOOL GetUserObjectInformationA(
  1096         -  HANDLE hObj,
  1097         -  int nIndex,
  1098         -  PVOID pvInfo,
  1099         -  DWORD nLength,
  1100         -  LPDWORD lpnLengthNeeded);
  1101         -extern(Windows) export BOOL GetUserObjectInformationW(
  1102         -  HANDLE hObj,
  1103         -  int nIndex,
  1104         -  PVOID pvInfo,
  1105         -  DWORD nLength,
  1106         -  LPDWORD lpnLengthNeeded);
  1107         -// #ifdef UNICODE
  1108         -alias GetUserObjectInformationW GetUserObjectInformation;
  1109         -// #else
  1110         -// #...
  1111         -// #endif // !UNICODE
  1112         -
  1113         -extern(Windows) export BOOL SetUserObjectInformationA(
  1114         -  HANDLE hObj,
  1115         -  int nIndex,
  1116         -  PVOID pvInfo,
  1117         -  DWORD nLength);
  1118         -extern(Windows) export BOOL SetUserObjectInformationW(
  1119         -  HANDLE hObj,
  1120         -  int nIndex,
  1121         -  PVOID pvInfo,
  1122         -  DWORD nLength);
  1123         -// #ifdef UNICODE
  1124         -alias SetUserObjectInformationW SetUserObjectInformation;
  1125         -// #else
  1126         -// #...
  1127         -// #endif // !UNICODE
  1128         -
  1129         -// #endif  /* !NOSECURITY */
  1130         -
  1131         -// #if(WINVER >= 0x0400)
  1132         -struct tagWNDCLASSEXA {
  1133         -  UINT cbSize;
  1134         -  UINT style;
  1135         -  WNDPROC lpfnWndProc;
  1136         -  int cbClsExtra;
  1137         -  int cbWndExtra;
  1138         -  HINSTANCE hInstance;
  1139         -  HICON hIcon;
  1140         -  HCURSOR hCursor;
  1141         -  HBRUSH hbrBackground;
  1142         -  LPCSTR lpszMenuName;
  1143         -  LPCSTR lpszClassName;
  1144         -  HICON hIconSm;
  1145         -}
  1146         -alias tagWNDCLASSEXA WNDCLASSEXA;
  1147         -alias tagWNDCLASSEXA* PWNDCLASSEXA;
  1148         -alias tagWNDCLASSEXA* NPWNDCLASSEXA;
  1149         -alias tagWNDCLASSEXA* LPWNDCLASSEXA;
  1150         -
  1151         -struct tagWNDCLASSEXW {
  1152         -  UINT cbSize;
  1153         -  UINT style;
  1154         -  WNDPROC lpfnWndProc;
  1155         -  int cbClsExtra;
  1156         -  int cbWndExtra;
  1157         -  HINSTANCE hInstance;
  1158         -  HICON hIcon;
  1159         -  HCURSOR hCursor;
  1160         -  HBRUSH hbrBackground;
  1161         -  LPCWSTR lpszMenuName;
  1162         -  LPCWSTR lpszClassName;
  1163         -  HICON hIconSm;
  1164         -}
  1165         -alias tagWNDCLASSEXW WNDCLASSEXW;
  1166         -alias tagWNDCLASSEXW* PWNDCLASSEXW;
  1167         -alias tagWNDCLASSEXW* NPWNDCLASSEXW;
  1168         -alias tagWNDCLASSEXW* LPWNDCLASSEXW;
  1169         -
  1170         -// #ifdef UNICODE
  1171         -alias WNDCLASSEXW WNDCLASSEX;
  1172         -alias PWNDCLASSEXW PWNDCLASSEX;
  1173         -alias NPWNDCLASSEXW NPWNDCLASSEX;
  1174         -alias LPWNDCLASSEXW LPWNDCLASSEX;
  1175         -// #else
  1176         -// ...
  1177         -// #endif // UNICODE
  1178         -// #endif /* WINVER >= 0x0400 */
  1179         -
  1180         -struct tagWNDCLASSA {
  1181         -  UINT style;
  1182         -  WNDPROC lpfnWndProc;
  1183         -  int cbClsExtra;
  1184         -  int cbWndExtra;
  1185         -  HINSTANCE hInstance;
  1186         -  HICON hIcon;
  1187         -  HCURSOR hCursor;
  1188         -  HBRUSH hbrBackground;
  1189         -  LPCSTR lpszMenuName;
  1190         -  LPCSTR lpszClassName;
  1191         -}
  1192         -alias tagWNDCLASSA WNDCLASSA;
  1193         -alias tagWNDCLASSA* PWNDCLASSA;
  1194         -alias tagWNDCLASSA* NPWNDCLASSA;
  1195         -alias tagWNDCLASSA* LPWNDCLASSA;
  1196         -
  1197         -struct tagWNDCLASSW {
  1198         -  UINT style;
  1199         -  WNDPROC lpfnWndProc;
  1200         -  int cbClsExtra;
  1201         -  int cbWndExtra;
  1202         -  HINSTANCE hInstance;
  1203         -  HICON hIcon;
  1204         -  HCURSOR hCursor;
  1205         -  HBRUSH hbrBackground;
  1206         -  LPCWSTR lpszMenuName;
  1207         -  LPCWSTR lpszClassName;
  1208         -}
  1209         -alias tagWNDCLASSW WNDCLASSW;
  1210         -alias tagWNDCLASSW* PWNDCLASSW;
  1211         -alias tagWNDCLASSW* NPWNDCLASSW;
  1212         -alias tagWNDCLASSW* LPWNDCLASSW;
  1213         -
  1214         -// #ifdef UNICODE
  1215         -alias WNDCLASSW WNDCLASS;
  1216         -alias PWNDCLASSW PWNDCLASS;
  1217         -alias NPWNDCLASSW NPWNDCLASS;
  1218         -alias LPWNDCLASSW LPWNDCLASS;
  1219         -// #else
  1220         -// ...
  1221         -// #endif // UNICODE
  1222         -
  1223         -// #ifndef NOMSG
  1224         -
  1225         -struct tagMSG {
  1226         -  HWND hwnd;
  1227         -  UINT message;
  1228         -  WPARAM wParam;
  1229         -  LPARAM lParam;
  1230         -  DWORD time;
  1231         -  POINT pt;
  1232         -// #ifdef _MAC
  1233         -// ...
  1234         -// #endif
  1235         -}
  1236         -alias tagMSG MSG;
  1237         -alias tagMSG* PMSG;
  1238         -alias tagMSG* NPMSG;
  1239         -alias tagMSG* LPMSG;
  1240         -
  1241         -// #define POINTSTOPOINT(pt, pts) { (pt).x = (LONG)(SHORT)LOWORD(*(LONG*)&pts); (pt).y = (LONG)(SHORT)HIWORD(*(LONG*)&pts); }
  1242         -
  1243         -// #define POINTTOPOINTS(pt) (MAKELONG((short)((pt).x), (short)((pt).y)))
  1244         -alias MAKELONG MAKEWPARAM;
  1245         -alias MAKELONG MAKELPARAM;
  1246         -alias MAKELONG MAKELRESULT;
  1247         -
  1248         -// #endif /* !NOMSG */
  1249         -
  1250         -// #ifndef NOWINOFFSETS
  1251         -
  1252         -enum { GWL_WNDPROC = -4 }
  1253         -enum { GWL_HINSTANCE = -6 }
  1254         -enum { GWL_HWNDPARENT = -8 }
  1255         -enum { GWL_STYLE = -16 }
  1256         -enum { GWL_EXSTYLE = -20 }
  1257         -enum { GWL_USERDATA = -21 }
  1258         -enum { GWL_ID = -12 }
  1259         -
  1260         -// #ifdef _WIN64
  1261         -
  1262         -// #...
  1263         -// #...
  1264         -// #...
  1265         -// #...
  1266         -
  1267         -// #endif /* _WIN64 */
  1268         -
  1269         -enum { GWLP_WNDPROC = -4 }
  1270         -enum { GWLP_HINSTANCE = -6 }
  1271         -enum { GWLP_HWNDPARENT = -8 }
  1272         -enum { GWLP_USERDATA = -21 }
  1273         -enum { GWLP_ID = -12 }
  1274         -
  1275         -enum { GCL_MENUNAME = -8 }
  1276         -enum { GCL_HBRBACKGROUND = -10 }
  1277         -enum { GCL_HCURSOR = -12 }
  1278         -enum { GCL_HICON = -14 }
  1279         -enum { GCL_HMODULE = -16 }
  1280         -enum { GCL_CBWNDEXTRA = -18 }
  1281         -enum { GCL_CBCLSEXTRA = -20 }
  1282         -enum { GCL_WNDPROC = -24 }
  1283         -enum { GCL_STYLE = -26 }
  1284         -enum { GCW_ATOM = -32 }
  1285         -
  1286         -// #if(WINVER >= 0x0400)
  1287         -enum { GCL_HICONSM = -34 }
  1288         -// #endif /* WINVER >= 0x0400 */
  1289         -
  1290         -// #ifdef _WIN64
  1291         -
  1292         -// #...
  1293         -// #...
  1294         -// #...
  1295         -// #...
  1296         -// #...
  1297         -// #...
  1298         -// #...
  1299         -
  1300         -// #endif /* _WIN64 */
  1301         -
  1302         -enum { GCLP_MENUNAME = -8 }
  1303         -enum { GCLP_HBRBACKGROUND = -10 }
  1304         -enum { GCLP_HCURSOR = -12 }
  1305         -enum { GCLP_HICON = -14 }
  1306         -enum { GCLP_HMODULE = -16 }
  1307         -enum { GCLP_WNDPROC = -24 }
  1308         -enum { GCLP_HICONSM = -34 }
  1309         -
  1310         -// #endif /* !NOWINOFFSETS */
  1311         -
  1312         -// #ifndef NOWINMESSAGES
  1313         -
  1314         -enum : uint { WM_NULL = 0x0000 }
  1315         -enum : uint { WM_CREATE = 0x0001 }
  1316         -enum : uint { WM_DESTROY = 0x0002 }
  1317         -enum : uint { WM_MOVE = 0x0003 }
  1318         -enum : uint { WM_SIZE = 0x0005 }
  1319         -
  1320         -enum : uint { WM_ACTIVATE = 0x0006 }
  1321         -
  1322         -enum : uint { WA_INACTIVE = 0 }
  1323         -enum : uint { WA_ACTIVE = 1 }
  1324         -enum : uint { WA_CLICKACTIVE = 2 }
  1325         -
  1326         -enum : uint { WM_SETFOCUS = 0x0007 }
  1327         -enum : uint { WM_KILLFOCUS = 0x0008 }
  1328         -enum : uint { WM_ENABLE = 0x000A }
  1329         -enum : uint { WM_SETREDRAW = 0x000B }
  1330         -enum : uint { WM_SETTEXT = 0x000C }
  1331         -enum : uint { WM_GETTEXT = 0x000D }
  1332         -enum : uint { WM_GETTEXTLENGTH = 0x000E }
  1333         -enum : uint { WM_PAINT = 0x000F }
  1334         -enum : uint { WM_CLOSE = 0x0010 }
  1335         -// #ifndef _WIN32_WCE
  1336         -enum : uint { WM_QUERYENDSESSION = 0x0011 }
  1337         -enum : uint { WM_QUERYOPEN = 0x0013 }
  1338         -enum : uint { WM_ENDSESSION = 0x0016 }
  1339         -// #endif
  1340         -enum : uint { WM_QUIT = 0x0012 }
  1341         -enum : uint { WM_ERASEBKGND = 0x0014 }
  1342         -enum : uint { WM_SYSCOLORCHANGE = 0x0015 }
  1343         -enum : uint { WM_SHOWWINDOW = 0x0018 }
  1344         -enum : uint { WM_WININICHANGE = 0x001A }
  1345         -// #if(WINVER >= 0x0400)
  1346         -alias WM_WININICHANGE WM_SETTINGCHANGE;
  1347         -// #endif /* WINVER >= 0x0400 */
  1348         -
  1349         -enum : uint { WM_DEVMODECHANGE = 0x001B }
  1350         -enum : uint { WM_ACTIVATEAPP = 0x001C }
  1351         -enum : uint { WM_FONTCHANGE = 0x001D }
  1352         -enum : uint { WM_TIMECHANGE = 0x001E }
  1353         -enum : uint { WM_CANCELMODE = 0x001F }
  1354         -enum : uint { WM_SETCURSOR = 0x0020 }
  1355         -enum : uint { WM_MOUSEACTIVATE = 0x0021 }
  1356         -enum : uint { WM_CHILDACTIVATE = 0x0022 }
  1357         -enum : uint { WM_QUEUESYNC = 0x0023 }
  1358         -
  1359         -enum : uint { WM_GETMINMAXINFO = 0x0024 }
  1360         -
  1361         -struct tagMINMAXINFO {
  1362         -  POINT ptReserved;
  1363         -  POINT ptMaxSize;
  1364         -  POINT ptMaxPosition;
  1365         -  POINT ptMinTrackSize;
  1366         -  POINT ptMaxTrackSize;
  1367         -}
  1368         -alias tagMINMAXINFO MINMAXINFO;
  1369         -alias tagMINMAXINFO* PMINMAXINFO;
  1370         -alias tagMINMAXINFO* LPMINMAXINFO;
  1371         -
  1372         -enum : uint { WM_PAINTICON = 0x0026 }
  1373         -enum : uint { WM_ICONERASEBKGND = 0x0027 }
  1374         -enum : uint { WM_NEXTDLGCTL = 0x0028 }
  1375         -enum : uint { WM_SPOOLERSTATUS = 0x002A }
  1376         -enum : uint { WM_DRAWITEM = 0x002B }
  1377         -enum : uint { WM_MEASUREITEM = 0x002C }
  1378         -enum : uint { WM_DELETEITEM = 0x002D }
  1379         -enum : uint { WM_VKEYTOITEM = 0x002E }
  1380         -enum : uint { WM_CHARTOITEM = 0x002F }
  1381         -enum : uint { WM_SETFONT = 0x0030 }
  1382         -enum : uint { WM_GETFONT = 0x0031 }
  1383         -enum : uint { WM_SETHOTKEY = 0x0032 }
  1384         -enum : uint { WM_GETHOTKEY = 0x0033 }
  1385         -enum : uint { WM_QUERYDRAGICON = 0x0037 }
  1386         -enum : uint { WM_COMPAREITEM = 0x0039 }
  1387         -// #if(WINVER >= 0x0500)
  1388         -// #ifndef _WIN32_WCE
  1389         -enum : uint { WM_GETOBJECT = 0x003D }
  1390         -// #endif
  1391         -// #endif /* WINVER >= 0x0500 */
  1392         -enum : uint { WM_COMPACTING = 0x0041 }
  1393         -enum : uint { WM_COMMNOTIFY = 0x0044 }
  1394         -enum : uint { WM_WINDOWPOSCHANGING = 0x0046 }
  1395         -enum : uint { WM_WINDOWPOSCHANGED = 0x0047 }
  1396         -
  1397         -enum : uint { WM_POWER = 0x0048 }
  1398         -
  1399         -enum : uint { PWR_OK = 1 }
  1400         -enum { PWR_FAIL = -1 }
  1401         -enum : uint { PWR_SUSPENDREQUEST = 1 }
  1402         -enum : uint { PWR_SUSPENDRESUME = 2 }
  1403         -enum : uint { PWR_CRITICALRESUME = 3 }
  1404         -
  1405         -enum : uint { WM_COPYDATA = 0x004A }
  1406         -enum : uint { WM_CANCELJOURNAL = 0x004B }
  1407         -
  1408         -struct tagCOPYDATASTRUCT {
  1409         -  ULONG_PTR dwData;
  1410         -  DWORD cbData;
  1411         -  PVOID lpData;
  1412         -}
  1413         -alias tagCOPYDATASTRUCT COPYDATASTRUCT;
  1414         -alias tagCOPYDATASTRUCT* PCOPYDATASTRUCT;
  1415         -
  1416         -// #if(WINVER >= 0x0400)
  1417         -struct tagMDINEXTMENU {
  1418         -  HMENU hmenuIn;
  1419         -  HMENU hmenuNext;
  1420         -  HWND hwndNext;
  1421         -}
  1422         -alias tagMDINEXTMENU MDINEXTMENU;
  1423         -alias tagMDINEXTMENU* PMDINEXTMENU;
  1424         -alias tagMDINEXTMENU* LPMDINEXTMENU;
  1425         -
  1426         -// #endif /* WINVER >= 0x0400 */
  1427         -
  1428         -// #if(WINVER >= 0x0400)
  1429         -enum : uint { WM_NOTIFY = 0x004E }
  1430         -enum : uint { WM_INPUTLANGCHANGEREQUEST = 0x0050 }
  1431         -enum : uint { WM_INPUTLANGCHANGE = 0x0051 }
  1432         -enum : uint { WM_TCARD = 0x0052 }
  1433         -enum : uint { WM_HELP = 0x0053 }
  1434         -enum : uint { WM_USERCHANGED = 0x0054 }
  1435         -enum : uint { WM_NOTIFYFORMAT = 0x0055 }
  1436         -
  1437         -enum : uint { NFR_ANSI = 1 }
  1438         -enum : uint { NFR_UNICODE = 2 }
  1439         -enum : uint { NF_QUERY = 3 }
  1440         -enum : uint { NF_REQUERY = 4 }
  1441         -
  1442         -enum : uint { WM_CONTEXTMENU = 0x007B }
  1443         -enum : uint { WM_STYLECHANGING = 0x007C }
  1444         -enum : uint { WM_STYLECHANGED = 0x007D }
  1445         -enum : uint { WM_DISPLAYCHANGE = 0x007E }
  1446         -enum : uint { WM_GETICON = 0x007F }
  1447         -enum : uint { WM_SETICON = 0x0080 }
  1448         -// #endif /* WINVER >= 0x0400 */
  1449         -
  1450         -enum : uint { WM_NCCREATE = 0x0081 }
  1451         -enum : uint { WM_NCDESTROY = 0x0082 }
  1452         -enum : uint { WM_NCCALCSIZE = 0x0083 }
  1453         -enum : uint { WM_NCHITTEST = 0x0084 }
  1454         -enum : uint { WM_NCPAINT = 0x0085 }
  1455         -enum : uint { WM_NCACTIVATE = 0x0086 }
  1456         -enum : uint { WM_GETDLGCODE = 0x0087 }
  1457         -// #ifndef _WIN32_WCE
  1458         -enum : uint { WM_SYNCPAINT = 0x0088 }
  1459         -// #endif
  1460         -enum : uint { WM_NCMOUSEMOVE = 0x00A0 }
  1461         -enum : uint { WM_NCLBUTTONDOWN = 0x00A1 }
  1462         -enum : uint { WM_NCLBUTTONUP = 0x00A2 }
  1463         -enum : uint { WM_NCLBUTTONDBLCLK = 0x00A3 }
  1464         -enum : uint { WM_NCRBUTTONDOWN = 0x00A4 }
  1465         -enum : uint { WM_NCRBUTTONUP = 0x00A5 }
  1466         -enum : uint { WM_NCRBUTTONDBLCLK = 0x00A6 }
  1467         -enum : uint { WM_NCMBUTTONDOWN = 0x00A7 }
  1468         -enum : uint { WM_NCMBUTTONUP = 0x00A8 }
  1469         -enum : uint { WM_NCMBUTTONDBLCLK = 0x00A9 }
  1470         -
  1471         -// #if(_WIN32_WINNT >= 0x0500)
  1472         -enum : uint { WM_NCXBUTTONDOWN = 0x00AB }
  1473         -enum : uint { WM_NCXBUTTONUP = 0x00AC }
  1474         -enum : uint { WM_NCXBUTTONDBLCLK = 0x00AD }
  1475         -// #endif /* _WIN32_WINNT >= 0x0500 */
  1476         -
  1477         -// #if(_WIN32_WINNT >= 0x0501)
  1478         -enum : uint { WM_INPUT = 0x00FF }
  1479         -// #endif /* _WIN32_WINNT >= 0x0501 */
  1480         -
  1481         -enum : uint { WM_KEYFIRST = 0x0100 }
  1482         -enum : uint { WM_KEYDOWN = 0x0100 }
  1483         -enum : uint { WM_KEYUP = 0x0101 }
  1484         -enum : uint { WM_CHAR = 0x0102 }
  1485         -enum : uint { WM_DEADCHAR = 0x0103 }
  1486         -enum : uint { WM_SYSKEYDOWN = 0x0104 }
  1487         -enum : uint { WM_SYSKEYUP = 0x0105 }
  1488         -enum : uint { WM_SYSCHAR = 0x0106 }
  1489         -enum : uint { WM_SYSDEADCHAR = 0x0107 }
  1490         -// #if(_WIN32_WINNT >= 0x0501)
  1491         -enum : uint { WM_UNICHAR = 0x0109 }
  1492         -enum : uint { WM_KEYLAST = 0x0109 }
  1493         -enum : uint { UNICODE_NOCHAR = 0xFFFF }
  1494         -// #else
  1495         -// #...
  1496         -// #endif /* _WIN32_WINNT >= 0x0501 */
  1497         -
  1498         -// #if(WINVER >= 0x0400)
  1499         -enum : uint { WM_IME_STARTCOMPOSITION = 0x010D }
  1500         -enum : uint { WM_IME_ENDCOMPOSITION = 0x010E }
  1501         -enum : uint { WM_IME_COMPOSITION = 0x010F }
  1502         -enum : uint { WM_IME_KEYLAST = 0x010F }
  1503         -// #endif /* WINVER >= 0x0400 */
  1504         -
  1505         -enum : uint { WM_INITDIALOG = 0x0110 }
  1506         -enum : uint { WM_COMMAND = 0x0111 }
  1507         -enum : uint { WM_SYSCOMMAND = 0x0112 }
  1508         -enum : uint { WM_TIMER = 0x0113 }
  1509         -enum : uint { WM_HSCROLL = 0x0114 }
  1510         -enum : uint { WM_VSCROLL = 0x0115 }
  1511         -enum : uint { WM_INITMENU = 0x0116 }
  1512         -enum : uint { WM_INITMENUPOPUP = 0x0117 }
  1513         -enum : uint { WM_MENUSELECT = 0x011F }
  1514         -enum : uint { WM_MENUCHAR = 0x0120 }
  1515         -enum : uint { WM_ENTERIDLE = 0x0121 }
  1516         -// #if(WINVER >= 0x0500)
  1517         -// #ifndef _WIN32_WCE
  1518         -enum : uint { WM_MENURBUTTONUP = 0x0122 }
  1519         -enum : uint { WM_MENUDRAG = 0x0123 }
  1520         -enum : uint { WM_MENUGETOBJECT = 0x0124 }
  1521         -enum : uint { WM_UNINITMENUPOPUP = 0x0125 }
  1522         -enum : uint { WM_MENUCOMMAND = 0x0126 }
  1523         -
  1524         -// #ifndef _WIN32_WCE
  1525         -// #if(_WIN32_WINNT >= 0x0500)
  1526         -enum : uint { WM_CHANGEUISTATE = 0x0127 }
  1527         -enum : uint { WM_UPDATEUISTATE = 0x0128 }
  1528         -enum : uint { WM_QUERYUISTATE = 0x0129 }
  1529         -
  1530         -enum : uint { UIS_SET = 1 }
  1531         -enum : uint { UIS_CLEAR = 2 }
  1532         -enum : uint { UIS_INITIALIZE = 3 }
  1533         -
  1534         -enum : uint { UISF_HIDEFOCUS = 0x1 }
  1535         -enum : uint { UISF_HIDEACCEL = 0x2 }
  1536         -// #if(_WIN32_WINNT >= 0x0501)
  1537         -enum : uint { UISF_ACTIVE = 0x4 }
  1538         -// #endif /* _WIN32_WINNT >= 0x0501 */
  1539         -// #endif /* _WIN32_WINNT >= 0x0500 */
  1540         -// #endif
  1541         -
  1542         -// #endif
  1543         -// #endif /* WINVER >= 0x0500 */
  1544         -
  1545         -enum : uint { WM_CTLCOLORMSGBOX = 0x0132 }
  1546         -enum : uint { WM_CTLCOLOREDIT = 0x0133 }
  1547         -enum : uint { WM_CTLCOLORLISTBOX = 0x0134 }
  1548         -enum : uint { WM_CTLCOLORBTN = 0x0135 }
  1549         -enum : uint { WM_CTLCOLORDLG = 0x0136 }
  1550         -enum : uint { WM_CTLCOLORSCROLLBAR = 0x0137 }
  1551         -enum : uint { WM_CTLCOLORSTATIC = 0x0138 }
  1552         -
  1553         -enum : uint { WM_MOUSEFIRST = 0x0200 }
  1554         -enum : uint { WM_MOUSEMOVE = 0x0200 }
  1555         -enum : uint { WM_LBUTTONDOWN = 0x0201 }
  1556         -enum : uint { WM_LBUTTONUP = 0x0202 }
  1557         -enum : uint { WM_LBUTTONDBLCLK = 0x0203 }
  1558         -enum : uint { WM_RBUTTONDOWN = 0x0204 }
  1559         -enum : uint { WM_RBUTTONUP = 0x0205 }
  1560         -enum : uint { WM_RBUTTONDBLCLK = 0x0206 }
  1561         -enum : uint { WM_MBUTTONDOWN = 0x0207 }
  1562         -enum : uint { WM_MBUTTONUP = 0x0208 }
  1563         -enum : uint { WM_MBUTTONDBLCLK = 0x0209 }
  1564         -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
  1565         -enum : uint { WM_MOUSEWHEEL = 0x020A }
  1566         -// #endif
  1567         -// #if (_WIN32_WINNT >= 0x0500)
  1568         -enum : uint { WM_XBUTTONDOWN = 0x020B }
  1569         -enum : uint { WM_XBUTTONUP = 0x020C }
  1570         -enum : uint { WM_XBUTTONDBLCLK = 0x020D }
  1571         -// #endif
  1572         -// #if (_WIN32_WINNT >= 0x0500)
  1573         -enum : uint { WM_MOUSELAST = 0x020D }
  1574         -// #elif (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
  1575         -// #...
  1576         -// #else
  1577         -// #...
  1578         -// #endif /* (_WIN32_WINNT >= 0x0500) */
  1579         -
  1580         -// #if(_WIN32_WINNT >= 0x0400)
  1581         -
  1582         -enum : uint { WHEEL_DELTA = 120 }
  1583         -// #define GET_WHEEL_DELTA_WPARAM(wParam) ((short)HIWORD(wParam))
  1584         -
  1585         -enum : uint { WHEEL_PAGESCROLL = UINT_MAX }
  1586         -// #endif /* _WIN32_WINNT >= 0x0400 */
  1587         -
  1588         -// #if(_WIN32_WINNT >= 0x0500)
  1589         -// #define GET_KEYSTATE_WPARAM(wParam) (LOWORD(wParam))
  1590         -// #define GET_NCHITTEST_WPARAM(wParam) ((short)LOWORD(wParam))
  1591         -// #define GET_XBUTTON_WPARAM(wParam) (HIWORD(wParam))
  1592         -
  1593         -enum : uint { XBUTTON1 = 0x0001 }
  1594         -enum : uint { XBUTTON2 = 0x0002 }
  1595         -
  1596         -// #endif /* _WIN32_WINNT >= 0x0500 */
  1597         -
  1598         -enum : uint { WM_PARENTNOTIFY = 0x0210 }
  1599         -enum : uint { WM_ENTERMENULOOP = 0x0211 }
  1600         -enum : uint { WM_EXITMENULOOP = 0x0212 }
  1601         -
  1602         -// #if(WINVER >= 0x0400)
  1603         -enum : uint { WM_NEXTMENU = 0x0213 }
  1604         -enum : uint { WM_SIZING = 0x0214 }
  1605         -enum : uint { WM_CAPTURECHANGED = 0x0215 }
  1606         -enum : uint { WM_MOVING = 0x0216 }
  1607         -// #endif /* WINVER >= 0x0400 */
  1608         -
  1609         -// #if(WINVER >= 0x0400)
  1610         -
  1611         -enum : uint { WM_POWERBROADCAST = 0x0218 }
  1612         -
  1613         -// #ifndef _WIN32_WCE
  1614         -enum : uint { PBT_APMQUERYSUSPEND = 0x0000 }
  1615         -enum : uint { PBT_APMQUERYSTANDBY = 0x0001 }
  1616         -
  1617         -enum : uint { PBT_APMQUERYSUSPENDFAILED = 0x0002 }
  1618         -enum : uint { PBT_APMQUERYSTANDBYFAILED = 0x0003 }
  1619         -
  1620         -enum : uint { PBT_APMSUSPEND = 0x0004 }
  1621         -enum : uint { PBT_APMSTANDBY = 0x0005 }
  1622         -
  1623         -enum : uint { PBT_APMRESUMECRITICAL = 0x0006 }
  1624         -enum : uint { PBT_APMRESUMESUSPEND = 0x0007 }
  1625         -enum : uint { PBT_APMRESUMESTANDBY = 0x0008 }
  1626         -
  1627         -enum : uint { PBTF_APMRESUMEFROMFAILURE = 0x00000001 }
  1628         -
  1629         -enum : uint { PBT_APMBATTERYLOW = 0x0009 }
  1630         -enum : uint { PBT_APMPOWERSTATUSCHANGE = 0x000A }
  1631         -
  1632         -enum : uint { PBT_APMOEMEVENT = 0x000B }
  1633         -enum : uint { PBT_APMRESUMEAUTOMATIC = 0x0012 }
  1634         -// #endif
  1635         -
  1636         -// #endif /* WINVER >= 0x0400 */
  1637         -
  1638         -// #if(WINVER >= 0x0400)
  1639         -enum : uint { WM_DEVICECHANGE = 0x0219 }
  1640         -// #endif /* WINVER >= 0x0400 */
  1641         -
  1642         -enum : uint { WM_MDICREATE = 0x0220 }
  1643         -enum : uint { WM_MDIDESTROY = 0x0221 }
  1644         -enum : uint { WM_MDIACTIVATE = 0x0222 }
  1645         -enum : uint { WM_MDIRESTORE = 0x0223 }
  1646         -enum : uint { WM_MDINEXT = 0x0224 }
  1647         -enum : uint { WM_MDIMAXIMIZE = 0x0225 }
  1648         -enum : uint { WM_MDITILE = 0x0226 }
  1649         -enum : uint { WM_MDICASCADE = 0x0227 }
  1650         -enum : uint { WM_MDIICONARRANGE = 0x0228 }
  1651         -enum : uint { WM_MDIGETACTIVE = 0x0229 }
  1652         -
  1653         -enum : uint { WM_MDISETMENU = 0x0230 }
  1654         -enum : uint { WM_ENTERSIZEMOVE = 0x0231 }
  1655         -enum : uint { WM_EXITSIZEMOVE = 0x0232 }
  1656         -enum : uint { WM_DROPFILES = 0x0233 }
  1657         -enum : uint { WM_MDIREFRESHMENU = 0x0234 }
  1658         -
  1659         -// #if(WINVER >= 0x0400)
  1660         -enum : uint { WM_IME_SETCONTEXT = 0x0281 }
  1661         -enum : uint { WM_IME_NOTIFY = 0x0282 }
  1662         -enum : uint { WM_IME_CONTROL = 0x0283 }
  1663         -enum : uint { WM_IME_COMPOSITIONFULL = 0x0284 }
  1664         -enum : uint { WM_IME_SELECT = 0x0285 }
  1665         -enum : uint { WM_IME_CHAR = 0x0286 }
  1666         -// #endif /* WINVER >= 0x0400 */
  1667         -// #if(WINVER >= 0x0500)
  1668         -enum : uint { WM_IME_REQUEST = 0x0288 }
  1669         -// #endif /* WINVER >= 0x0500 */
  1670         -// #if(WINVER >= 0x0400)
  1671         -enum : uint { WM_IME_KEYDOWN = 0x0290 }
  1672         -enum : uint { WM_IME_KEYUP = 0x0291 }
  1673         -// #endif /* WINVER >= 0x0400 */
  1674         -
  1675         -// #if((_WIN32_WINNT >= 0x0400) || (WINVER >= 0x0500))
  1676         -enum : uint { WM_MOUSEHOVER = 0x02A1 }
  1677         -enum : uint { WM_MOUSELEAVE = 0x02A3 }
  1678         -// #endif
  1679         -// #if(WINVER >= 0x0500)
  1680         -enum : uint { WM_NCMOUSEHOVER = 0x02A0 }
  1681         -enum : uint { WM_NCMOUSELEAVE = 0x02A2 }
  1682         -// #endif /* WINVER >= 0x0500 */
  1683         -
  1684         -// #if(_WIN32_WINNT >= 0x0501)
  1685         -enum : uint { WM_WTSSESSION_CHANGE = 0x02B1 }
  1686         -
  1687         -enum : uint { WM_TABLET_FIRST = 0x02c0 }
  1688         -enum : uint { WM_TABLET_LAST = 0x02df }
  1689         -// #endif /* _WIN32_WINNT >= 0x0501 */
  1690         -
  1691         -enum : uint { WM_CUT = 0x0300 }
  1692         -enum : uint { WM_COPY = 0x0301 }
  1693         -enum : uint { WM_PASTE = 0x0302 }
  1694         -enum : uint { WM_CLEAR = 0x0303 }
  1695         -enum : uint { WM_UNDO = 0x0304 }
  1696         -enum : uint { WM_RENDERFORMAT = 0x0305 }
  1697         -enum : uint { WM_RENDERALLFORMATS = 0x0306 }
  1698         -enum : uint { WM_DESTROYCLIPBOARD = 0x0307 }
  1699         -enum : uint { WM_DRAWCLIPBOARD = 0x0308 }
  1700         -enum : uint { WM_PAINTCLIPBOARD = 0x0309 }
  1701         -enum : uint { WM_VSCROLLCLIPBOARD = 0x030A }
  1702         -enum : uint { WM_SIZECLIPBOARD = 0x030B }
  1703         -enum : uint { WM_ASKCBFORMATNAME = 0x030C }
  1704         -enum : uint { WM_CHANGECBCHAIN = 0x030D }
  1705         -enum : uint { WM_HSCROLLCLIPBOARD = 0x030E }
  1706         -enum : uint { WM_QUERYNEWPALETTE = 0x030F }
  1707         -enum : uint { WM_PALETTEISCHANGING = 0x0310 }
  1708         -enum : uint { WM_PALETTECHANGED = 0x0311 }
  1709         -enum : uint { WM_HOTKEY = 0x0312 }
  1710         -
  1711         -// #if(WINVER >= 0x0400)
  1712         -enum : uint { WM_PRINT = 0x0317 }
  1713         -enum : uint { WM_PRINTCLIENT = 0x0318 }
  1714         -// #endif /* WINVER >= 0x0400 */
  1715         -
  1716         -// #if(_WIN32_WINNT >= 0x0500)
  1717         -enum : uint { WM_APPCOMMAND = 0x0319 }
  1718         -// #endif /* _WIN32_WINNT >= 0x0500 */
  1719         -
  1720         -// #if(_WIN32_WINNT >= 0x0501)
  1721         -enum : uint { WM_THEMECHANGED = 0x031A }
  1722         -// #endif /* _WIN32_WINNT >= 0x0501 */
  1723         -
  1724         -// #if(WINVER >= 0x0400)
  1725         -
  1726         -enum : uint { WM_HANDHELDFIRST = 0x0358 }
  1727         -enum : uint { WM_HANDHELDLAST = 0x035F }
  1728         -
  1729         -enum : uint { WM_AFXFIRST = 0x0360 }
  1730         -enum : uint { WM_AFXLAST = 0x037F }
  1731         -// #endif /* WINVER >= 0x0400 */
  1732         -
  1733         -enum : uint { WM_PENWINFIRST = 0x0380 }
  1734         -enum : uint { WM_PENWINLAST = 0x038F }
  1735         -
  1736         -// #if(WINVER >= 0x0400)
  1737         -enum : uint { WM_APP = 0x8000 }
  1738         -// #endif /* WINVER >= 0x0400 */
  1739         -
  1740         -enum : uint { WM_USER = 0x0400 }
  1741         -
  1742         -// #if(WINVER >= 0x0400)
  1743         -
  1744         -enum : uint { WMSZ_LEFT = 1 }
  1745         -enum : uint { WMSZ_RIGHT = 2 }
  1746         -enum : uint { WMSZ_TOP = 3 }
  1747         -enum : uint { WMSZ_TOPLEFT = 4 }
  1748         -enum : uint { WMSZ_TOPRIGHT = 5 }
  1749         -enum : uint { WMSZ_BOTTOM = 6 }
  1750         -enum : uint { WMSZ_BOTTOMLEFT = 7 }
  1751         -enum : uint { WMSZ_BOTTOMRIGHT = 8 }
  1752         -// #endif /* WINVER >= 0x0400 */
  1753         -
  1754         -// #ifndef NONCMESSAGES
  1755         -
  1756         -enum { HTERROR = -2 }
  1757         -enum { HTTRANSPARENT = -1 }
  1758         -enum : uint { HTNOWHERE = 0 }
  1759         -enum : uint { HTCLIENT = 1 }
  1760         -enum : uint { HTCAPTION = 2 }
  1761         -enum : uint { HTSYSMENU = 3 }
  1762         -enum : uint { HTGROWBOX = 4 }
  1763         -alias HTGROWBOX HTSIZE;
  1764         -enum : uint { HTMENU = 5 }
  1765         -enum : uint { HTHSCROLL = 6 }
  1766         -enum : uint { HTVSCROLL = 7 }
  1767         -enum : uint { HTMINBUTTON = 8 }
  1768         -enum : uint { HTMAXBUTTON = 9 }
  1769         -enum : uint { HTLEFT = 10 }
  1770         -enum : uint { HTRIGHT = 11 }
  1771         -enum : uint { HTTOP = 12 }
  1772         -enum : uint { HTTOPLEFT = 13 }
  1773         -enum : uint { HTTOPRIGHT = 14 }
  1774         -enum : uint { HTBOTTOM = 15 }
  1775         -enum : uint { HTBOTTOMLEFT = 16 }
  1776         -enum : uint { HTBOTTOMRIGHT = 17 }
  1777         -enum : uint { HTBORDER = 18 }
  1778         -alias HTMINBUTTON HTREDUCE;
  1779         -alias HTMAXBUTTON HTZOOM;
  1780         -alias HTLEFT HTSIZEFIRST;
  1781         -alias HTBOTTOMRIGHT HTSIZELAST;
  1782         -// #if(WINVER >= 0x0400)
  1783         -enum : uint { HTOBJECT = 19 }
  1784         -enum : uint { HTCLOSE = 20 }
  1785         -enum : uint { HTHELP = 21 }
  1786         -// #endif /* WINVER >= 0x0400 */
  1787         -
  1788         -enum : uint { SMTO_NORMAL = 0x0000 }
  1789         -enum : uint { SMTO_BLOCK = 0x0001 }
  1790         -enum : uint { SMTO_ABORTIFHUNG = 0x0002 }
  1791         -// #if(WINVER >= 0x0500)
  1792         -enum : uint { SMTO_NOTIMEOUTIFNOTHUNG = 0x0008 }
  1793         -// #endif /* WINVER >= 0x0500 */
  1794         -// #endif /* !NONCMESSAGES */
  1795         -
  1796         -enum : uint { MA_ACTIVATE = 1 }
  1797         -enum : uint { MA_ACTIVATEANDEAT = 2 }
  1798         -enum : uint { MA_NOACTIVATE = 3 }
  1799         -enum : uint { MA_NOACTIVATEANDEAT = 4 }
  1800         -
  1801         -enum : uint { ICON_SMALL = 0 }
  1802         -enum : uint { ICON_BIG = 1 }
  1803         -// #if(_WIN32_WINNT >= 0x0501)
  1804         -enum : uint { ICON_SMALL2 = 2 }
  1805         -// #endif /* _WIN32_WINNT >= 0x0501 */
  1806         -
  1807         -extern(Windows) export UINT RegisterWindowMessageA(
  1808         -  LPCSTR lpString);
  1809         -extern(Windows) export UINT RegisterWindowMessageW(
  1810         -  LPCWSTR lpString);
  1811         -// #ifdef UNICODE
  1812         -alias RegisterWindowMessageW RegisterWindowMessage;
  1813         -// #else
  1814         -// #...
  1815         -// #endif // !UNICODE
  1816         -
  1817         -enum : uint { SIZE_RESTORED = 0 }
  1818         -enum : uint { SIZE_MINIMIZED = 1 }
  1819         -enum : uint { SIZE_MAXIMIZED = 2 }
  1820         -enum : uint { SIZE_MAXSHOW = 3 }
  1821         -enum : uint { SIZE_MAXHIDE = 4 }
  1822         -
  1823         -alias SIZE_RESTORED SIZENORMAL;
  1824         -alias SIZE_MINIMIZED SIZEICONIC;
  1825         -alias SIZE_MAXIMIZED SIZEFULLSCREEN;
  1826         -alias SIZE_MAXSHOW SIZEZOOMSHOW;
  1827         -alias SIZE_MAXHIDE SIZEZOOMHIDE;
  1828         -
  1829         -struct tagWINDOWPOS {
  1830         -  HWND hwnd;
  1831         -  HWND hwndInsertAfter;
  1832         -  int x;
  1833         -  int y;
  1834         -  int cx;
  1835         -  int cy;
  1836         -  UINT flags;
  1837         -}
  1838         -alias tagWINDOWPOS WINDOWPOS;
  1839         -alias tagWINDOWPOS* LPWINDOWPOS;
  1840         -alias tagWINDOWPOS* PWINDOWPOS;
  1841         -
  1842         -struct tagNCCALCSIZE_PARAMS {
  1843         -  RECT rgrc[3];
  1844         -  PWINDOWPOS lppos;
  1845         -}
  1846         -alias tagNCCALCSIZE_PARAMS NCCALCSIZE_PARAMS;
  1847         -alias tagNCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS;
  1848         -
  1849         -enum : uint { WVR_ALIGNTOP = 0x0010 }
  1850         -enum : uint { WVR_ALIGNLEFT = 0x0020 }
  1851         -enum : uint { WVR_ALIGNBOTTOM = 0x0040 }
  1852         -enum : uint { WVR_ALIGNRIGHT = 0x0080 }
  1853         -enum : uint { WVR_HREDRAW = 0x0100 }
  1854         -enum : uint { WVR_VREDRAW = 0x0200 }
  1855         -enum : uint { WVR_REDRAW = WVR_HREDRAW | WVR_VREDRAW }
  1856         -enum : uint { WVR_VALIDRECTS = 0x0400 }
  1857         -
  1858         -// #ifndef NOKEYSTATES
  1859         -
  1860         -enum : uint { MK_LBUTTON = 0x0001 }
  1861         -enum : uint { MK_RBUTTON = 0x0002 }
  1862         -enum : uint { MK_SHIFT = 0x0004 }
  1863         -enum : uint { MK_CONTROL = 0x0008 }
  1864         -enum : uint { MK_MBUTTON = 0x0010 }
  1865         -// #if(_WIN32_WINNT >= 0x0500)
  1866         -enum : uint { MK_XBUTTON1 = 0x0020 }
  1867         -enum : uint { MK_XBUTTON2 = 0x0040 }
  1868         -// #endif /* _WIN32_WINNT >= 0x0500 */
  1869         -
  1870         -// #endif /* !NOKEYSTATES */
  1871         -
  1872         -// #if(_WIN32_WINNT >= 0x0400)
  1873         -// #ifndef NOTRACKMOUSEEVENT
  1874         -
  1875         -enum : uint { TME_HOVER = 0x00000001 }
  1876         -enum : uint { TME_LEAVE = 0x00000002 }
  1877         -// #if(WINVER >= 0x0500)
  1878         -enum : uint { TME_NONCLIENT = 0x00000010 }
  1879         -// #endif /* WINVER >= 0x0500 */
  1880         -enum : uint { TME_QUERY = 0x40000000 }
  1881         -enum : uint { TME_CANCEL = 0x80000000 }
  1882         -
  1883         -enum : uint { HOVER_DEFAULT = 0xFFFFFFFF }
  1884         -// #endif /* _WIN32_WINNT >= 0x0400 */
  1885         -
  1886         -// #if(_WIN32_WINNT >= 0x0400)
  1887         -struct tagTRACKMOUSEEVENT {
  1888         -  DWORD cbSize;
  1889         -  DWORD dwFlags;
  1890         -  HWND hwndTrack;
  1891         -  DWORD dwHoverTime;
  1892         -}
  1893         -alias tagTRACKMOUSEEVENT TRACKMOUSEEVENT;
  1894         -alias tagTRACKMOUSEEVENT* LPTRACKMOUSEEVENT;
  1895         -
  1896         -extern(Windows) export BOOL TrackMouseEvent(
  1897         -  LPTRACKMOUSEEVENT lpEventTrack);
  1898         -// #endif /* _WIN32_WINNT >= 0x0400 */
  1899         -
  1900         -// #if(_WIN32_WINNT >= 0x0400)
  1901         -
  1902         -// #endif /* !NOTRACKMOUSEEVENT */
  1903         -// #endif /* _WIN32_WINNT >= 0x0400 */
  1904         -
  1905         -// #endif /* !NOWINMESSAGES */
  1906         -
  1907         -// #ifndef NOWINSTYLES
  1908         -
  1909         -enum : uint { WS_OVERLAPPED = 0x00000000 }
  1910         -enum : uint { WS_POPUP = 0x80000000 }
  1911         -enum : uint { WS_CHILD = 0x40000000 }
  1912         -enum : uint { WS_MINIMIZE = 0x20000000 }
  1913         -enum : uint { WS_VISIBLE = 0x10000000 }
  1914         -enum : uint { WS_DISABLED = 0x08000000 }
  1915         -enum : uint { WS_CLIPSIBLINGS = 0x04000000 }
  1916         -enum : uint { WS_CLIPCHILDREN = 0x02000000 }
  1917         -enum : uint { WS_MAXIMIZE = 0x01000000 }
  1918         -enum : uint { WS_CAPTION = 0x00C00000 }
  1919         -enum : uint { WS_BORDER = 0x00800000 }
  1920         -enum : uint { WS_DLGFRAME = 0x00400000 }
  1921         -enum : uint { WS_VSCROLL = 0x00200000 }
  1922         -enum : uint { WS_HSCROLL = 0x00100000 }
  1923         -enum : uint { WS_SYSMENU = 0x00080000 }
  1924         -enum : uint { WS_THICKFRAME = 0x00040000 }
  1925         -enum : uint { WS_GROUP = 0x00020000 }
  1926         -enum : uint { WS_TABSTOP = 0x00010000 }
  1927         -
  1928         -enum : uint { WS_MINIMIZEBOX = 0x00020000 }
  1929         -enum : uint { WS_MAXIMIZEBOX = 0x00010000 }
  1930         -
  1931         -alias WS_OVERLAPPED WS_TILED;
  1932         -alias WS_MINIMIZE WS_ICONIC;
  1933         -alias WS_THICKFRAME WS_SIZEBOX;
  1934         -// #define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
  1935         -
  1936         -enum : uint { WS_OVERLAPPEDWINDOW = WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX }
  1937         -
  1938         -enum : uint { WS_POPUPWINDOW = WS_POPUP | WS_BORDER | WS_SYSMENU }
  1939         -
  1940         -enum : uint { WS_CHILDWINDOW = WS_CHILD }
  1941         -
  1942         -enum : uint { WS_EX_DLGMODALFRAME = 0x00000001 }
  1943         -enum : uint { WS_EX_NOPARENTNOTIFY = 0x00000004 }
  1944         -enum : uint { WS_EX_TOPMOST = 0x00000008 }
  1945         -enum : uint { WS_EX_ACCEPTFILES = 0x00000010 }
  1946         -enum : uint { WS_EX_TRANSPARENT = 0x00000020 }
  1947         -// #if(WINVER >= 0x0400)
  1948         -enum : uint { WS_EX_MDICHILD = 0x00000040 }
  1949         -enum : uint { WS_EX_TOOLWINDOW = 0x00000080 }
  1950         -enum : uint { WS_EX_WINDOWEDGE = 0x00000100 }
  1951         -enum : uint { WS_EX_CLIENTEDGE = 0x00000200 }
  1952         -enum : uint { WS_EX_CONTEXTHELP = 0x00000400 }
  1953         -
  1954         -// #endif /* WINVER >= 0x0400 */
  1955         -// #if(WINVER >= 0x0400)
  1956         -
  1957         -enum : uint { WS_EX_RIGHT = 0x00001000 }
  1958         -enum : uint { WS_EX_LEFT = 0x00000000 }
  1959         -enum : uint { WS_EX_RTLREADING = 0x00002000 }
  1960         -enum : uint { WS_EX_LTRREADING = 0x00000000 }
  1961         -enum : uint { WS_EX_LEFTSCROLLBAR = 0x00004000 }
  1962         -enum : uint { WS_EX_RIGHTSCROLLBAR = 0x00000000 }
  1963         -
  1964         -enum : uint { WS_EX_CONTROLPARENT = 0x00010000 }
  1965         -enum : uint { WS_EX_STATICEDGE = 0x00020000 }
  1966         -enum : uint { WS_EX_APPWINDOW = 0x00040000 }
  1967         -
  1968         -enum : uint { WS_EX_OVERLAPPEDWINDOW = WS_EX_WINDOWEDGE | WS_EX_CLIENTEDGE }
  1969         -enum : uint { WS_EX_PALETTEWINDOW = WS_EX_WINDOWEDGE | WS_EX_TOOLWINDOW | WS_EX_TOPMOST }
  1970         -
  1971         -// #endif /* WINVER >= 0x0400 */
  1972         -
  1973         -// #if(_WIN32_WINNT >= 0x0500)
  1974         -enum : uint { WS_EX_LAYERED = 0x00080000 }
  1975         -
  1976         -// #endif /* _WIN32_WINNT >= 0x0500 */
  1977         -
  1978         -// #if(WINVER >= 0x0500)
  1979         -enum : uint { WS_EX_NOINHERITLAYOUT = 0x00100000 }
  1980         -enum : uint { WS_EX_LAYOUTRTL = 0x00400000 }
  1981         -// #endif /* WINVER >= 0x0500 */
  1982         -
  1983         -// #if(_WIN32_WINNT >= 0x0501)
  1984         -enum : uint { WS_EX_COMPOSITED = 0x02000000 }
  1985         -// #endif /* _WIN32_WINNT >= 0x0501 */
  1986         -// #if(_WIN32_WINNT >= 0x0500)
  1987         -enum : uint { WS_EX_NOACTIVATE = 0x08000000 }
  1988         -// #endif /* _WIN32_WINNT >= 0x0500 */
  1989         -
  1990         -enum : uint { CS_VREDRAW = 0x0001 }
  1991         -enum : uint { CS_HREDRAW = 0x0002 }
  1992         -enum : uint { CS_DBLCLKS = 0x0008 }
  1993         -enum : uint { CS_OWNDC = 0x0020 }
  1994         -enum : uint { CS_CLASSDC = 0x0040 }
  1995         -enum : uint { CS_PARENTDC = 0x0080 }
  1996         -enum : uint { CS_NOCLOSE = 0x0200 }
  1997         -enum : uint { CS_SAVEBITS = 0x0800 }
  1998         -enum : uint { CS_BYTEALIGNCLIENT = 0x1000 }
  1999         -enum : uint { CS_BYTEALIGNWINDOW = 0x2000 }
  2000         -enum : uint { CS_GLOBALCLASS = 0x4000 }
  2001         -
  2002         -enum : uint { CS_IME = 0x00010000 }
  2003         -// #if(_WIN32_WINNT >= 0x0501)
  2004         -enum : uint { CS_DROPSHADOW = 0x00020000 }
  2005         -// #endif /* _WIN32_WINNT >= 0x0501 */
  2006         -
  2007         -// #endif /* !NOWINSTYLES */
  2008         -// #if(WINVER >= 0x0400)
  2009         -
  2010         -enum : uint { PRF_CHECKVISIBLE = 0x00000001 }
  2011         -enum : uint { PRF_NONCLIENT = 0x00000002 }
  2012         -enum : uint { PRF_CLIENT = 0x00000004 }
  2013         -enum : uint { PRF_ERASEBKGND = 0x00000008 }
  2014         -enum : uint { PRF_CHILDREN = 0x00000010 }
  2015         -enum : uint { PRF_OWNED = 0x00000020 }
  2016         -
  2017         -enum : uint { BDR_RAISEDOUTER = 0x0001 }
  2018         -enum : uint { BDR_SUNKENOUTER = 0x0002 }
  2019         -enum : uint { BDR_RAISEDINNER = 0x0004 }
  2020         -enum : uint { BDR_SUNKENINNER = 0x0008 }
  2021         -
  2022         -enum : uint { BDR_OUTER = BDR_RAISEDOUTER | BDR_SUNKENOUTER }
  2023         -enum : uint { BDR_INNER = BDR_RAISEDINNER | BDR_SUNKENINNER }
  2024         -enum : uint { BDR_RAISED = BDR_RAISEDOUTER | BDR_RAISEDINNER }
  2025         -enum : uint { BDR_SUNKEN = BDR_SUNKENOUTER | BDR_SUNKENINNER }
  2026         -
  2027         -enum : uint { EDGE_RAISED = BDR_RAISEDOUTER | BDR_RAISEDINNER }
  2028         -enum : uint { EDGE_SUNKEN = BDR_SUNKENOUTER | BDR_SUNKENINNER }
  2029         -enum : uint { EDGE_ETCHED = BDR_SUNKENOUTER | BDR_RAISEDINNER }
  2030         -enum : uint { EDGE_BUMP = BDR_RAISEDOUTER | BDR_SUNKENINNER }
  2031         -
  2032         -enum : uint { BF_LEFT = 0x0001 }
  2033         -enum : uint { BF_TOP = 0x0002 }
  2034         -enum : uint { BF_RIGHT = 0x0004 }
  2035         -enum : uint { BF_BOTTOM = 0x0008 }
  2036         -
  2037         -enum : uint { BF_TOPLEFT = BF_TOP | BF_LEFT }
  2038         -enum : uint { BF_TOPRIGHT = BF_TOP | BF_RIGHT }
  2039         -enum : uint { BF_BOTTOMLEFT = BF_BOTTOM | BF_LEFT }
  2040         -enum : uint { BF_BOTTOMRIGHT = BF_BOTTOM | BF_RIGHT }
  2041         -enum : uint { BF_RECT = BF_LEFT | BF_TOP | BF_RIGHT | BF_BOTTOM }
  2042         -
  2043         -enum : uint { BF_DIAGONAL = 0x0010 }
  2044         -
  2045         -enum : uint { BF_DIAGONAL_ENDTOPRIGHT = BF_DIAGONAL | BF_TOP | BF_RIGHT }
  2046         -enum : uint { BF_DIAGONAL_ENDTOPLEFT = BF_DIAGONAL | BF_TOP | BF_LEFT }
  2047         -enum : uint { BF_DIAGONAL_ENDBOTTOMLEFT = BF_DIAGONAL | BF_BOTTOM | BF_LEFT }
  2048         -enum : uint { BF_DIAGONAL_ENDBOTTOMRIGHT = BF_DIAGONAL | BF_BOTTOM | BF_RIGHT }
  2049         -
  2050         -enum : uint { BF_MIDDLE = 0x0800 }
  2051         -enum : uint { BF_SOFT = 0x1000 }
  2052         -enum : uint { BF_ADJUST = 0x2000 }
  2053         -enum : uint { BF_FLAT = 0x4000 }
  2054         -enum : uint { BF_MONO = 0x8000 }
  2055         -
  2056         -extern(Windows) export BOOL DrawEdge(
  2057         -  HDC hdc,
  2058         -  LPRECT qrc,
  2059         -  UINT edge,
  2060         -  UINT grfFlags);
  2061         -
  2062         -enum : uint { DFC_CAPTION = 1 }
  2063         -enum : uint { DFC_MENU = 2 }
  2064         -enum : uint { DFC_SCROLL = 3 }
  2065         -enum : uint { DFC_BUTTON = 4 }
  2066         -// #if(WINVER >= 0x0500)
  2067         -enum : uint { DFC_POPUPMENU = 5 }
  2068         -// #endif /* WINVER >= 0x0500 */
  2069         -
  2070         -enum : uint { DFCS_CAPTIONCLOSE = 0x0000 }
  2071         -enum : uint { DFCS_CAPTIONMIN = 0x0001 }
  2072         -enum : uint { DFCS_CAPTIONMAX = 0x0002 }
  2073         -enum : uint { DFCS_CAPTIONRESTORE = 0x0003 }
  2074         -enum : uint { DFCS_CAPTIONHELP = 0x0004 }
  2075         -
  2076         -enum : uint { DFCS_MENUARROW = 0x0000 }
  2077         -enum : uint { DFCS_MENUCHECK = 0x0001 }
  2078         -enum : uint { DFCS_MENUBULLET = 0x0002 }
  2079         -enum : uint { DFCS_MENUARROWRIGHT = 0x0004 }
  2080         -enum : uint { DFCS_SCROLLUP = 0x0000 }
  2081         -enum : uint { DFCS_SCROLLDOWN = 0x0001 }
  2082         -enum : uint { DFCS_SCROLLLEFT = 0x0002 }
  2083         -enum : uint { DFCS_SCROLLRIGHT = 0x0003 }
  2084         -enum : uint { DFCS_SCROLLCOMBOBOX = 0x0005 }
  2085         -enum : uint { DFCS_SCROLLSIZEGRIP = 0x0008 }
  2086         -enum : uint { DFCS_SCROLLSIZEGRIPRIGHT = 0x0010 }
  2087         -
  2088         -enum : uint { DFCS_BUTTONCHECK = 0x0000 }
  2089         -enum : uint { DFCS_BUTTONRADIOIMAGE = 0x0001 }
  2090         -enum : uint { DFCS_BUTTONRADIOMASK = 0x0002 }
  2091         -enum : uint { DFCS_BUTTONRADIO = 0x0004 }
  2092         -enum : uint { DFCS_BUTTON3STATE = 0x0008 }
  2093         -enum : uint { DFCS_BUTTONPUSH = 0x0010 }
  2094         -
  2095         -enum : uint { DFCS_INACTIVE = 0x0100 }
  2096         -enum : uint { DFCS_PUSHED = 0x0200 }
  2097         -enum : uint { DFCS_CHECKED = 0x0400 }
  2098         -
  2099         -// #if(WINVER >= 0x0500)
  2100         -enum : uint { DFCS_TRANSPARENT = 0x0800 }
  2101         -enum : uint { DFCS_HOT = 0x1000 }
  2102         -// #endif /* WINVER >= 0x0500 */
  2103         -
  2104         -enum : uint { DFCS_ADJUSTRECT = 0x2000 }
  2105         -enum : uint { DFCS_FLAT = 0x4000 }
  2106         -enum : uint { DFCS_MONO = 0x8000 }
  2107         -
  2108         -extern(Windows) export BOOL DrawFrameControl(
  2109         -  HDC,
  2110         -  LPRECT,
  2111         -  UINT,
  2112         -  UINT);
  2113         -
  2114         -enum : uint { DC_ACTIVE = 0x0001 }
  2115         -enum : uint { DC_SMALLCAP = 0x0002 }
  2116         -enum : uint { DC_ICON = 0x0004 }
  2117         -enum : uint { DC_TEXT = 0x0008 }
  2118         -enum : uint { DC_INBUTTON = 0x0010 }
  2119         -// #if(WINVER >= 0x0500)
  2120         -enum : uint { DC_GRADIENT = 0x0020 }
  2121         -// #endif /* WINVER >= 0x0500 */
  2122         -// #if(_WIN32_WINNT >= 0x0501)
  2123         -enum : uint { DC_BUTTONS = 0x1000 }
  2124         -// #endif /* _WIN32_WINNT >= 0x0501 */
  2125         -
  2126         -extern(Windows) export BOOL DrawCaption(HWND, HDC, RECT *, UINT);
  2127         -
  2128         -enum : uint { IDANI_OPEN = 1 }
  2129         -enum : uint { IDANI_CAPTION = 3 }
  2130         -
  2131         -extern(Windows) export BOOL DrawAnimatedRects(
  2132         -  HWND hwnd,
  2133         -  int idAni,
  2134         -  RECT * lprcFrom,
  2135         -  RECT * lprcTo);
  2136         -
  2137         -// #endif /* WINVER >= 0x0400 */
  2138         -
  2139         -// #ifndef NOCLIPBOARD
  2140         -
  2141         -enum : uint { CF_TEXT = 1 }
  2142         -enum : uint { CF_BITMAP = 2 }
  2143         -enum : uint { CF_METAFILEPICT = 3 }
  2144         -enum : uint { CF_SYLK = 4 }
  2145         -enum : uint { CF_DIF = 5 }
  2146         -enum : uint { CF_TIFF = 6 }
  2147         -enum : uint { CF_OEMTEXT = 7 }
  2148         -enum : uint { CF_DIB = 8 }
  2149         -enum : uint { CF_PALETTE = 9 }
  2150         -enum : uint { CF_PENDATA = 10 }
  2151         -enum : uint { CF_RIFF = 11 }
  2152         -enum : uint { CF_WAVE = 12 }
  2153         -enum : uint { CF_UNICODETEXT = 13 }
  2154         -enum : uint { CF_ENHMETAFILE = 14 }
  2155         -// #if(WINVER >= 0x0400)
  2156         -enum : uint { CF_HDROP = 15 }
  2157         -enum : uint { CF_LOCALE = 16 }
  2158         -// #endif /* WINVER >= 0x0400 */
  2159         -// #if(WINVER >= 0x0500)
  2160         -enum : uint { CF_DIBV5 = 17 }
  2161         -// #endif /* WINVER >= 0x0500 */
  2162         -
  2163         -// #if(WINVER >= 0x0500)
  2164         -enum : uint { CF_MAX = 18 }
  2165         -// #elif(WINVER >= 0x0400)
  2166         -// #...
  2167         -// #else
  2168         -// #...
  2169         -// #endif
  2170         -
  2171         -enum : uint { CF_OWNERDISPLAY = 0x0080 }
  2172         -enum : uint { CF_DSPTEXT = 0x0081 }
  2173         -enum : uint { CF_DSPBITMAP = 0x0082 }
  2174         -enum : uint { CF_DSPMETAFILEPICT = 0x0083 }
  2175         -enum : uint { CF_DSPENHMETAFILE = 0x008E }
  2176         -
  2177         -enum : uint { CF_PRIVATEFIRST = 0x0200 }
  2178         -enum : uint { CF_PRIVATELAST = 0x02FF }
  2179         -
  2180         -enum : uint { CF_GDIOBJFIRST = 0x0300 }
  2181         -enum : uint { CF_GDIOBJLAST = 0x03FF }
  2182         -
  2183         -// #endif /* !NOCLIPBOARD */
  2184         -
  2185         -alias TRUE FVIRTKEY;
  2186         -enum : uint { FNOINVERT = 0x02 }
  2187         -enum : uint { FSHIFT = 0x04 }
  2188         -enum : uint { FCONTROL = 0x08 }
  2189         -enum : uint { FALT = 0x10 }
  2190         -
  2191         -struct tagACCEL {
  2192         -// #ifndef _MAC
  2193         -  BYTE fVirt;
  2194         -  WORD key;
  2195         -  WORD cmd;
  2196         -// #else
  2197         -// ...
  2198         -// #endif
  2199         -}
  2200         -alias tagACCEL ACCEL;
  2201         -alias tagACCEL* LPACCEL;
  2202         -
  2203         -struct tagPAINTSTRUCT {
  2204         -  HDC hdc;
  2205         -  BOOL fErase;
  2206         -  RECT rcPaint;
  2207         -  BOOL fRestore;
  2208         -  BOOL fIncUpdate;
  2209         -  BYTE rgbReserved[32];
  2210         -}
  2211         -alias tagPAINTSTRUCT PAINTSTRUCT;
  2212         -alias tagPAINTSTRUCT* PPAINTSTRUCT;
  2213         -alias tagPAINTSTRUCT* NPPAINTSTRUCT;
  2214         -alias tagPAINTSTRUCT* LPPAINTSTRUCT;
  2215         -
  2216         -struct tagCREATESTRUCTA {
  2217         -  LPVOID lpCreateParams;
  2218         -  HINSTANCE hInstance;
  2219         -  HMENU hMenu;
  2220         -  HWND hwndParent;
  2221         -  int cy;
  2222         -  int cx;
  2223         -  int y;
  2224         -  int x;
  2225         -  LONG style;
  2226         -  LPCSTR lpszName;
  2227         -  LPCSTR lpszClass;
  2228         -  DWORD dwExStyle;
  2229         -}
  2230         -alias tagCREATESTRUCTA CREATESTRUCTA;
  2231         -alias tagCREATESTRUCTA* LPCREATESTRUCTA;
  2232         -
  2233         -struct tagCREATESTRUCTW {
  2234         -  LPVOID lpCreateParams;
  2235         -  HINSTANCE hInstance;
  2236         -  HMENU hMenu;
  2237         -  HWND hwndParent;
  2238         -  int cy;
  2239         -  int cx;
  2240         -  int y;
  2241         -  int x;
  2242         -  LONG style;
  2243         -  LPCWSTR lpszName;
  2244         -  LPCWSTR lpszClass;
  2245         -  DWORD dwExStyle;
  2246         -}
  2247         -alias tagCREATESTRUCTW CREATESTRUCTW;
  2248         -alias tagCREATESTRUCTW* LPCREATESTRUCTW;
  2249         -
  2250         -// #ifdef UNICODE
  2251         -alias CREATESTRUCTW CREATESTRUCT;
  2252         -alias LPCREATESTRUCTW LPCREATESTRUCT;
  2253         -// #else
  2254         -// ...
  2255         -// #endif // UNICODE
  2256         -
  2257         -struct tagWINDOWPLACEMENT {
  2258         -  UINT length;
  2259         -  UINT flags;
  2260         -  UINT showCmd;
  2261         -  POINT ptMinPosition;
  2262         -  POINT ptMaxPosition;
  2263         -  RECT rcNormalPosition;
  2264         -// #ifdef _MAC
  2265         -// ...
  2266         -// #endif
  2267         -}
  2268         -alias tagWINDOWPLACEMENT WINDOWPLACEMENT;
  2269         -
  2270         -alias WINDOWPLACEMENT* PWINDOWPLACEMENT;
  2271         -alias WINDOWPLACEMENT* LPWINDOWPLACEMENT;
  2272         -
  2273         -enum : uint { WPF_SETMINPOSITION = 0x0001 }
  2274         -enum : uint { WPF_RESTORETOMAXIMIZED = 0x0002 }
  2275         -// #if(_WIN32_WINNT >= 0x0500)
  2276         -enum : uint { WPF_ASYNCWINDOWPLACEMENT = 0x0004 }
  2277         -// #endif /* _WIN32_WINNT >= 0x0500 */
  2278         -
  2279         -// #if(WINVER >= 0x0400)
  2280         -struct tagNMHDR {
  2281         -  HWND hwndFrom;
  2282         -  UINT_PTR idFrom;
  2283         -  UINT code;
  2284         -}
  2285         -alias tagNMHDR NMHDR;
  2286         -
         2604  +alias HANDLE HDEVNOTIFY;
         2605  +
         2606  +struct ACCEL {
         2607  + BYTE fVirt;
         2608  + WORD key;
         2609  + WORD cmd;
         2610  +}
         2611  +alias ACCEL* LPACCEL;
         2612  +
         2613  +struct ACCESSTIMEOUT {
         2614  + UINT  cbSize = ACCESSTIMEOUT.sizeof;
         2615  + DWORD dwFlags;
         2616  + DWORD iTimeOutMSec;
         2617  +}
         2618  +alias ACCESSTIMEOUT* LPACCESSTIMEOUT;
         2619  +
         2620  +struct ANIMATIONINFO {
         2621  + UINT cbSize = ANIMATIONINFO.sizeof;
         2622  + int  iMinAnimate;
         2623  +}
         2624  +alias ANIMATIONINFO* LPANIMATIONINFO;
         2625  +
         2626  +struct CREATESTRUCTA {
         2627  + LPVOID    lpCreateParams;
         2628  + HINSTANCE hInstance;
         2629  + HMENU     hMenu;
         2630  + HWND      hwndParent;
         2631  + int       cy;
         2632  + int       cx;
         2633  + int       y;
         2634  + int       x;
         2635  + LONG      style;
         2636  + LPCSTR    lpszName;
         2637  + LPCSTR    lpszClass;
         2638  + DWORD     dwExStyle;
         2639  +}
         2640  +alias CREATESTRUCTA* LPCREATESTRUCTA;
         2641  +
         2642  +struct CREATESTRUCTW {
         2643  + LPVOID    lpCreateParams;
         2644  + HINSTANCE hInstance;
         2645  + HMENU     hMenu;
         2646  + HWND      hwndParent;
         2647  + int       cy;
         2648  + int       cx;
         2649  + int       y;
         2650  + int       x;
         2651  + LONG      style;
         2652  + LPCWSTR   lpszName;
         2653  + LPCWSTR   lpszClass;
         2654  + DWORD     dwExStyle;
         2655  +}
         2656  +alias CREATESTRUCTW* LPCREATESTRUCTW;
         2657  +
         2658  +struct CBT_CREATEWNDA {
         2659  + LPCREATESTRUCTA lpcs;
         2660  + HWND            hwndInsertAfter;
         2661  +}
         2662  +alias CBT_CREATEWNDA* LPCBT_CREATEWNDA;
         2663  +
         2664  +struct CBT_CREATEWNDW {
         2665  + LPCREATESTRUCTW lpcs;
         2666  + HWND            hwndInsertAfter;
         2667  +}
         2668  +alias CBT_CREATEWNDW* LPCBT_CREATEWNDW;
         2669  +
         2670  +struct CBTACTIVATESTRUCT {
         2671  + BOOL fMouse;
         2672  + HWND hWndActive;
         2673  +}
         2674  +alias CBTACTIVATESTRUCT* LPCBTACTIVATESTRUCT;
         2675  +
         2676  +struct CLIENTCREATESTRUCT {
         2677  + HANDLE hWindowMenu;
         2678  + UINT   idFirstChild;
         2679  +}
         2680  +alias CLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT;
         2681  +
         2682  +struct COMPAREITEMSTRUCT {
         2683  + UINT  CtlType;
         2684  + UINT  CtlID;
         2685  + HWND  hwndItem;
         2686  + UINT  itemID1;
         2687  + DWORD itemData1;
         2688  + UINT  itemID2;
         2689  + DWORD itemData2;
         2690  + DWORD dwLocaleId;
         2691  +}
         2692  +alias COMPAREITEMSTRUCT* LPCOMPAREITEMSTRUCT;
         2693  +
         2694  +struct COPYDATASTRUCT {
         2695  + DWORD dwData;
         2696  + DWORD cbData;
         2697  + PVOID lpData;
         2698  +}
         2699  +alias COPYDATASTRUCT* PCOPYDATASTRUCT;
         2700  +
         2701  +struct CURSORSHAPE {
         2702  + int xHotSpot;
         2703  + int yHotSpot;
         2704  + int cx;
         2705  + int cy;
         2706  + int cbWidth;
         2707  + BYTE Planes;
         2708  + BYTE BitsPixel;
         2709  +}
         2710  +alias CURSORSHAPE* LPCURSORSHAPE;
         2711  +
         2712  +struct CWPRETSTRUCT {
         2713  + LRESULT lResult;
         2714  + LPARAM lParam;
         2715  + WPARAM wParam;
         2716  + DWORD message;
         2717  + HWND hwnd;
         2718  +}
         2719  +
         2720  +struct CWPSTRUCT {
         2721  + LPARAM lParam;
         2722  + WPARAM wParam;
         2723  + UINT message;
         2724  + HWND hwnd;
         2725  +}
         2726  +alias CWPSTRUCT* PCWPSTRUCT;
         2727  +
         2728  +struct DEBUGHOOKINFO {
         2729  + DWORD idThread;
         2730  + DWORD idThreadInstaller;
         2731  + LPARAM lParam;
         2732  + WPARAM wParam;
         2733  + int code;
         2734  +}
         2735  +alias DEBUGHOOKINFO* PDEBUGHOOKINFO, LPDEBUGHOOKINFO;
         2736  +
         2737  +struct DELETEITEMSTRUCT {
         2738  + UINT CtlType;
         2739  + UINT CtlID;
         2740  + UINT itemID;
         2741  + HWND hwndItem;
         2742  + UINT itemData;
         2743  +}
         2744  +alias DELETEITEMSTRUCT* PDELETEITEMSTRUCT, LPDELETEITEMSTRUCT;
         2745  +
         2746  +align(2):
         2747  +struct DLGITEMTEMPLATE {
         2748  + DWORD style;
         2749  + DWORD dwExtendedStyle;
         2750  + short x;
         2751  + short y;
         2752  + short cx;
         2753  + short cy;
         2754  + WORD id;
         2755  +}
         2756  +alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATE;
         2757  +
         2758  +struct DLGTEMPLATE {
         2759  + DWORD style;
         2760  + DWORD dwExtendedStyle;
         2761  + WORD  cdit;
         2762  + short x;
         2763  + short y;
         2764  + short cx;
         2765  + short cy;
         2766  +}
         2767  +alias DLGTEMPLATE*       LPDLGTEMPLATE, LPDLGTEMPLATEA, LPDLGTEMPLATEW;
         2768  +alias CPtr!(DLGTEMPLATE) LPCDLGTEMPLATE;
         2769  +
         2770  +align:
         2771  +
         2772  +struct DRAWITEMSTRUCT {
         2773  + UINT  CtlType;
         2774  + UINT  CtlID;
         2775  + UINT  itemID;
         2776  + UINT  itemAction;
         2777  + UINT  itemState;
         2778  + HWND  hwndItem;
         2779  + HDC   hDC;
         2780  + RECT  rcItem;
         2781  + DWORD itemData;
         2782  +}
         2783  +alias DRAWITEMSTRUCT* LPDRAWITEMSTRUCT, PDRAWITEMSTRUCT;
         2784  +
         2785  +struct DRAWTEXTPARAMS {
         2786  + UINT cbSize = DRAWTEXTPARAMS.sizeof;
         2787  + int  iTabLength;
         2788  + int  iLeftMargin;
         2789  + int  iRightMargin;
         2790  + UINT uiLengthDrawn;
         2791  +}
         2792  +alias DRAWTEXTPARAMS* LPDRAWTEXTPARAMS;
         2793  +
         2794  +struct PAINTSTRUCT {
         2795  + HDC      hdc;
         2796  + BOOL     fErase;
         2797  + RECT     rcPaint;
         2798  + BOOL     fRestore;
         2799  + BOOL     fIncUpdate;
         2800  + BYTE[32] rgbReserved;
         2801  +}
         2802  +alias PAINTSTRUCT* LPPAINTSTRUCT;
         2803  +
         2804  +struct MSG {
         2805  + HWND   hwnd;
         2806  + UINT   message;
         2807  + WPARAM wParam;
         2808  + LPARAM lParam;
         2809  + DWORD  time;
         2810  + POINT  pt;
         2811  +}
         2812  +alias MSG* LPMSG, PMSG;
         2813  +
         2814  +struct ICONINFO {
         2815  + BOOL    fIcon;
         2816  + DWORD   xHotspot;
         2817  + DWORD   yHotspot;
         2818  + HBITMAP hbmMask;
         2819  + HBITMAP hbmColor;
         2820  +}
         2821  +alias ICONINFO* PICONINFO;
         2822  +
         2823  +struct NMHDR {
         2824  + HWND hwndFrom;
         2825  + UINT idFrom;
         2826  + UINT code;
         2827  +}
  2287   2828   alias NMHDR* LPNMHDR;
  2288   2829   
  2289         -struct tagSTYLESTRUCT {
  2290         -  DWORD styleOld;
  2291         -  DWORD styleNew;
  2292         -}
  2293         -alias tagSTYLESTRUCT STYLESTRUCT;
  2294         -alias tagSTYLESTRUCT* LPSTYLESTRUCT;
  2295         -
  2296         -// #endif /* WINVER >= 0x0400 */
  2297         -
  2298         -enum : uint { ODT_MENU = 1 }
  2299         -enum : uint { ODT_LISTBOX = 2 }
  2300         -enum : uint { ODT_COMBOBOX = 3 }
  2301         -enum : uint { ODT_BUTTON = 4 }
  2302         -// #if(WINVER >= 0x0400)
  2303         -enum : uint { ODT_STATIC = 5 }
  2304         -// #endif /* WINVER >= 0x0400 */
  2305         -
  2306         -enum : uint { ODA_DRAWENTIRE = 0x0001 }
  2307         -enum : uint { ODA_SELECT = 0x0002 }
  2308         -enum : uint { ODA_FOCUS = 0x0004 }
  2309         -
  2310         -enum : uint { ODS_SELECTED = 0x0001 }
  2311         -enum : uint { ODS_GRAYED = 0x0002 }
  2312         -enum : uint { ODS_DISABLED = 0x0004 }
  2313         -enum : uint { ODS_CHECKED = 0x0008 }
  2314         -enum : uint { ODS_FOCUS = 0x0010 }
  2315         -// #if(WINVER >= 0x0400)
  2316         -enum : uint { ODS_DEFAULT = 0x0020 }
  2317         -enum : uint { ODS_COMBOBOXEDIT = 0x1000 }
  2318         -// #endif /* WINVER >= 0x0400 */
  2319         -// #if(WINVER >= 0x0500)
  2320         -enum : uint { ODS_HOTLIGHT = 0x0040 }
  2321         -enum : uint { ODS_INACTIVE = 0x0080 }
  2322         -// #if(_WIN32_WINNT >= 0x0500)
  2323         -enum : uint { ODS_NOACCEL = 0x0100 }
  2324         -enum : uint { ODS_NOFOCUSRECT = 0x0200 }
  2325         -// #endif /* _WIN32_WINNT >= 0x0500 */
  2326         -// #endif /* WINVER >= 0x0500 */
  2327         -
  2328         -struct tagMEASUREITEMSTRUCT {
  2329         -  UINT CtlType;
  2330         -  UINT CtlID;
  2331         -  UINT itemID;
  2332         -  UINT itemWidth;
  2333         -  UINT itemHeight;
  2334         -  ULONG_PTR itemData;
  2335         -}
  2336         -alias tagMEASUREITEMSTRUCT MEASUREITEMSTRUCT;
  2337         -alias tagMEASUREITEMSTRUCT* PMEASUREITEMSTRUCT;
  2338         -alias tagMEASUREITEMSTRUCT* LPMEASUREITEMSTRUCT;
  2339         -
  2340         -struct tagDRAWITEMSTRUCT {
  2341         -  UINT CtlType;
  2342         -  UINT CtlID;
  2343         -  UINT itemID;
  2344         -  UINT itemAction;
  2345         -  UINT itemState;
  2346         -  HWND hwndItem;
  2347         -  HDC hDC;
  2348         -  RECT rcItem;
  2349         -  ULONG_PTR itemData;
  2350         -}
  2351         -alias tagDRAWITEMSTRUCT DRAWITEMSTRUCT;
  2352         -alias tagDRAWITEMSTRUCT* PDRAWITEMSTRUCT;
  2353         -alias tagDRAWITEMSTRUCT* LPDRAWITEMSTRUCT;
  2354         -
  2355         -struct tagDELETEITEMSTRUCT {
  2356         -  UINT CtlType;
  2357         -  UINT CtlID;
  2358         -  UINT itemID;
  2359         -  HWND hwndItem;
  2360         -  ULONG_PTR itemData;
  2361         -}
  2362         -alias tagDELETEITEMSTRUCT DELETEITEMSTRUCT;
  2363         -alias tagDELETEITEMSTRUCT* PDELETEITEMSTRUCT;
  2364         -alias tagDELETEITEMSTRUCT* LPDELETEITEMSTRUCT;
  2365         -
  2366         -struct tagCOMPAREITEMSTRUCT {
  2367         -  UINT CtlType;
  2368         -  UINT CtlID;
  2369         -  HWND hwndItem;
  2370         -  UINT itemID1;
  2371         -  ULONG_PTR itemData1;
  2372         -  UINT itemID2;
  2373         -  ULONG_PTR itemData2;
  2374         -  DWORD dwLocaleId;
  2375         -}
  2376         -alias tagCOMPAREITEMSTRUCT COMPAREITEMSTRUCT;
  2377         -alias tagCOMPAREITEMSTRUCT* PCOMPAREITEMSTRUCT;
  2378         -alias tagCOMPAREITEMSTRUCT* LPCOMPAREITEMSTRUCT;
  2379         -
  2380         -// #ifndef NOMSG
  2381         -
  2382         -extern(Windows) export BOOL GetMessageA(
  2383         -  LPMSG lpMsg,
  2384         -  HWND hWnd,
  2385         -  UINT wMsgFilterMin,
  2386         -  UINT wMsgFilterMax);
  2387         -extern(Windows) export BOOL GetMessageW(
  2388         -  LPMSG lpMsg,
  2389         -  HWND hWnd,
  2390         -  UINT wMsgFilterMin,
  2391         -  UINT wMsgFilterMax);
  2392         -// #ifdef UNICODE
  2393         -alias GetMessageW GetMessage;
  2394         -// #else
  2395         -// #...
  2396         -// #endif // !UNICODE
  2397         -
  2398         -extern(Windows) export BOOL TranslateMessage(
  2399         -  MSG *lpMsg);
  2400         -
  2401         -extern(Windows) export LRESULT DispatchMessageA(
  2402         -  MSG *lpMsg);
  2403         -extern(Windows) export LRESULT DispatchMessageW(
  2404         -  MSG *lpMsg);
  2405         -// #ifdef UNICODE
  2406         -alias DispatchMessageW DispatchMessage;
  2407         -// #else
  2408         -// #...
  2409         -// #endif // !UNICODE
  2410         -
  2411         -extern(Windows) export BOOL SetMessageQueue(
  2412         -  int cMessagesMax);
  2413         -
  2414         -extern(Windows) export BOOL PeekMessageA(
  2415         -  LPMSG lpMsg,
  2416         -  HWND hWnd,
  2417         -  UINT wMsgFilterMin,
  2418         -  UINT wMsgFilterMax,
  2419         -  UINT wRemoveMsg);
  2420         -extern(Windows) export BOOL PeekMessageW(
  2421         -  LPMSG lpMsg,
  2422         -  HWND hWnd,
  2423         -  UINT wMsgFilterMin,
  2424         -  UINT wMsgFilterMax,
  2425         -  UINT wRemoveMsg);
  2426         -// #ifdef UNICODE
  2427         -alias PeekMessageW PeekMessage;
  2428         -// #else
  2429         -// #...
  2430         -// #endif // !UNICODE
  2431         -
  2432         -enum : uint { PM_NOREMOVE = 0x0000 }
  2433         -enum : uint { PM_REMOVE = 0x0001 }
  2434         -enum : uint { PM_NOYIELD = 0x0002 }
  2435         -// #if(WINVER >= 0x0500)
  2436         -enum : uint { PM_QS_INPUT = QS_INPUT << 16 }
  2437         -enum : uint { PM_QS_POSTMESSAGE = (QS_POSTMESSAGE | QS_HOTKEY | QS_TIMER) << 16 }
  2438         -enum : uint { PM_QS_PAINT = QS_PAINT << 16 }
  2439         -enum : uint { PM_QS_SENDMESSAGE = QS_SENDMESSAGE << 16 }
  2440         -// #endif /* WINVER >= 0x0500 */
  2441         -
  2442         -// #endif /* !NOMSG */
  2443         -
  2444         -extern(Windows) export BOOL RegisterHotKey(
  2445         -  HWND hWnd,
  2446         -  int id,
  2447         -  UINT fsModifiers,
  2448         -  UINT vk);
  2449         -
  2450         -extern(Windows) export BOOL UnregisterHotKey(
  2451         -  HWND hWnd,
  2452         -  int id);
  2453         -
  2454         -enum : uint { MOD_ALT = 0x0001 }
  2455         -enum : uint { MOD_CONTROL = 0x0002 }
  2456         -enum : uint { MOD_SHIFT = 0x0004 }
  2457         -enum : uint { MOD_WIN = 0x0008 }
  2458         -
  2459         -enum { IDHOT_SNAPWINDOW = -1 }
  2460         -enum { IDHOT_SNAPDESKTOP = -2 }
  2461         -
  2462         -// #ifdef WIN_INTERNAL
  2463         -//     #ifndef LSTRING
  2464         -// #...
  2465         -//     #endif /* LSTRING */
  2466         -//     #ifndef LFILEIO
  2467         -// #...
  2468         -//     #endif /* LFILEIO */
  2469         -// #endif /* WIN_INTERNAL */
  2470         -
  2471         -// #if(WINVER >= 0x0400)
  2472         -
  2473         -enum : uint { ENDSESSION_LOGOFF = 0x80000000 }
  2474         -// #endif /* WINVER >= 0x0400 */
  2475         -
  2476         -enum : uint { EWX_LOGOFF = 0 }
  2477         -enum : uint { EWX_SHUTDOWN = 0x00000001 }
  2478         -enum : uint { EWX_REBOOT = 0x00000002 }
  2479         -enum : uint { EWX_FORCE = 0x00000004 }
  2480         -enum : uint { EWX_POWEROFF = 0x00000008 }
  2481         -// #if(_WIN32_WINNT >= 0x0500)
  2482         -enum : uint { EWX_FORCEIFHUNG = 0x00000010 }
  2483         -// #endif /* _WIN32_WINNT >= 0x0500 */
  2484         -
  2485         -BOOL ExitWindows(DWORD dwReserved, UINT Code){ return ExitWindowsEx(EWX_LOGOFF, 0xFFFFFFFF); }
  2486         -
  2487         -extern(Windows) export BOOL ExitWindowsEx(
  2488         -  UINT uFlags,
  2489         -  DWORD dwReserved);
  2490         -
  2491         -extern(Windows) export BOOL SwapMouseButton(
  2492         -  BOOL fSwap);
  2493         -
  2494         -extern(Windows) export DWORD GetMessagePos();
  2495         -
  2496         -extern(Windows) export LONG GetMessageTime();
  2497         -
  2498         -extern(Windows) export LPARAM GetMessageExtraInfo();
  2499         -
  2500         -// #if(WINVER >= 0x0400)
  2501         -extern(Windows) export LPARAM SetMessageExtraInfo(
  2502         -  LPARAM lParam);
  2503         -// #endif /* WINVER >= 0x0400 */
  2504         -
  2505         -extern(Windows) export LRESULT SendMessageA(
  2506         -  HWND hWnd,
  2507         -  UINT Msg,
  2508         -  WPARAM wParam,
  2509         -  LPARAM lParam);
  2510         -extern(Windows) export LRESULT SendMessageW(
  2511         -  HWND hWnd,
  2512         -  UINT Msg,
  2513         -  WPARAM wParam,
  2514         -  LPARAM lParam);
  2515         -// #ifdef UNICODE
  2516         -alias SendMessageW SendMessage;
  2517         -// #else
  2518         -// #...
  2519         -// #endif // !UNICODE
  2520         -
  2521         -extern(Windows) export LRESULT SendMessageTimeoutA(
  2522         -  HWND hWnd,
  2523         -  UINT Msg,
  2524         -  WPARAM wParam,
  2525         -  LPARAM lParam,
  2526         -  UINT fuFlags,
  2527         -  UINT uTimeout,
  2528         -  PDWORD_PTR lpdwResult);
  2529         -extern(Windows) export LRESULT SendMessageTimeoutW(
  2530         -  HWND hWnd,
  2531         -  UINT Msg,
  2532         -  WPARAM wParam,
  2533         -  LPARAM lParam,
  2534         -  UINT fuFlags,
  2535         -  UINT uTimeout,
  2536         -  PDWORD_PTR lpdwResult);
  2537         -// #ifdef UNICODE
  2538         -alias SendMessageTimeoutW SendMessageTimeout;
  2539         -// #else
  2540         -// #...
  2541         -// #endif // !UNICODE
  2542         -
  2543         -extern(Windows) export BOOL SendNotifyMessageA(
  2544         -  HWND hWnd,
  2545         -  UINT Msg,
  2546         -  WPARAM wParam,
  2547         -  LPARAM lParam);
  2548         -extern(Windows) export BOOL SendNotifyMessageW(
  2549         -  HWND hWnd,
  2550         -  UINT Msg,
  2551         -  WPARAM wParam,
  2552         -  LPARAM lParam);
  2553         -// #ifdef UNICODE
  2554         -alias SendNotifyMessageW SendNotifyMessage;
  2555         -// #else
  2556         -// #...
  2557         -// #endif // !UNICODE
  2558         -
  2559         -extern(Windows) export BOOL SendMessageCallbackA(
  2560         -  HWND hWnd,
  2561         -  UINT Msg,
  2562         -  WPARAM wParam,
  2563         -  LPARAM lParam,
  2564         -  SENDASYNCPROC lpResultCallBack,
  2565         -  ULONG_PTR dwData);
  2566         -extern(Windows) export BOOL SendMessageCallbackW(
  2567         -  HWND hWnd,
  2568         -  UINT Msg,
  2569         -  WPARAM wParam,
  2570         -  LPARAM lParam,
  2571         -  SENDASYNCPROC lpResultCallBack,
  2572         -  ULONG_PTR dwData);
  2573         -// #ifdef UNICODE
  2574         -alias SendMessageCallbackW SendMessageCallback;
  2575         -// #else
  2576         -// #...
  2577         -// #endif // !UNICODE
  2578         -
  2579         -// #if(_WIN32_WINNT >= 0x0501)
  2580         -struct _0 {
  2581         -  UINT cbSize;
  2582         -  HDESK hdesk;
  2583         -  HWND hwnd;
  2584         -  LUID luid;
  2585         -}
  2586         -alias _0 BSMINFO;
  2587         -alias _0* PBSMINFO;
  2588         -
  2589         -extern(Windows) export int BroadcastSystemMessageExA(
  2590         -  DWORD,
  2591         -  LPDWORD,
  2592         -  UINT,
  2593         -  WPARAM,
  2594         -  LPARAM,
  2595         -  PBSMINFO);
  2596         -extern(Windows) export int BroadcastSystemMessageExW(
  2597         -  DWORD,
  2598         -  LPDWORD,
  2599         -  UINT,
  2600         -  WPARAM,
  2601         -  LPARAM,
  2602         -  PBSMINFO);
  2603         -// #ifdef UNICODE
  2604         -alias BroadcastSystemMessageExW BroadcastSystemMessageEx;
  2605         -// #else
  2606         -// #...
  2607         -// #endif // !UNICODE
  2608         -// #endif /* _WIN32_WINNT >= 0x0501 */
  2609         -
  2610         -// #if(WINVER >= 0x0400)
  2611         -
  2612         -// #if defined(_WIN32_WINNT)
  2613         -extern(Windows) export int BroadcastSystemMessageA(
  2614         -  DWORD,
  2615         -  LPDWORD,
  2616         -  UINT,
  2617         -  WPARAM,
  2618         -  LPARAM);
  2619         -extern(Windows) export int BroadcastSystemMessageW(
  2620         -  DWORD,
  2621         -  LPDWORD,
  2622         -  UINT,
  2623         -  WPARAM,
  2624         -  LPARAM);
  2625         -// #ifdef UNICODE
  2626         -alias BroadcastSystemMessageW BroadcastSystemMessage;
  2627         -// #else
  2628         -// #...
  2629         -// #endif // !UNICODE
  2630         -// #elif defined(_WIN32_WINDOWS)
  2631         -
  2632         -// ...
  2633         -
  2634         -// #endif
  2635         -
  2636         -enum : uint { BSM_ALLCOMPONENTS = 0x00000000 }
  2637         -enum : uint { BSM_VXDS = 0x00000001 }
  2638         -enum : uint { BSM_NETDRIVER = 0x00000002 }
  2639         -enum : uint { BSM_INSTALLABLEDRIVERS = 0x00000004 }
  2640         -enum : uint { BSM_APPLICATIONS = 0x00000008 }
  2641         -enum : uint { BSM_ALLDESKTOPS = 0x00000010 }
  2642         -
  2643         -enum : uint { BSF_QUERY = 0x00000001 }
  2644         -enum : uint { BSF_IGNORECURRENTTASK = 0x00000002 }
  2645         -enum : uint { BSF_FLUSHDISK = 0x00000004 }
  2646         -enum : uint { BSF_NOHANG = 0x00000008 }
  2647         -enum : uint { BSF_POSTMESSAGE = 0x00000010 }
  2648         -enum : uint { BSF_FORCEIFHUNG = 0x00000020 }
  2649         -enum : uint { BSF_NOTIMEOUTIFNOTHUNG = 0x00000040 }
  2650         -// #if(_WIN32_WINNT >= 0x0500)
  2651         -enum : uint { BSF_ALLOWSFW = 0x00000080 }
  2652         -enum : uint { BSF_SENDNOTIFYMESSAGE = 0x00000100 }
  2653         -// #endif /* _WIN32_WINNT >= 0x0500 */
  2654         -// #if(_WIN32_WINNT >= 0x0501)
  2655         -enum : uint { BSF_RETURNHDESK = 0x00000200 }
  2656         -enum : uint { BSF_LUID = 0x00000400 }
  2657         -// #endif /* _WIN32_WINNT >= 0x0501 */
  2658         -
  2659         -enum : uint { BROADCAST_QUERY_DENY = 0x424D5144 }
  2660         -// #endif /* WINVER >= 0x0400 */
  2661         -
  2662         -// #if(WINVER >= 0x0500)
  2663         -alias PVOID HDEVNOTIFY;
  2664         -alias HDEVNOTIFY* PHDEVNOTIFY;
  2665         -
  2666         -enum : uint { DEVICE_NOTIFY_WINDOW_HANDLE = 0x00000000 }
  2667         -enum : uint { DEVICE_NOTIFY_SERVICE_HANDLE = 0x00000001 }
  2668         -// #if(_WIN32_WINNT >= 0x0501)
  2669         -enum : uint { DEVICE_NOTIFY_ALL_INTERFACE_CLASSES = 0x00000004 }
  2670         -// #endif /* _WIN32_WINNT >= 0x0501 */
  2671         -
  2672         -extern(Windows) export HDEVNOTIFY RegisterDeviceNotificationA(
  2673         -  HANDLE hRecipient,
  2674         -  LPVOID NotificationFilter,
  2675         -  DWORD Flags);
  2676         -extern(Windows) export HDEVNOTIFY RegisterDeviceNotificationW(
  2677         -  HANDLE hRecipient,
  2678         -  LPVOID NotificationFilter,
  2679         -  DWORD Flags);
  2680         -// #ifdef UNICODE
  2681         -alias RegisterDeviceNotificationW RegisterDeviceNotification;
  2682         -// #else
  2683         -// #...
  2684         -// #endif // !UNICODE
  2685         -
  2686         -extern(Windows) export BOOL UnregisterDeviceNotification(
  2687         -  HDEVNOTIFY Handle);
  2688         -// #endif /* WINVER >= 0x0500 */
  2689         -
  2690         -extern(Windows) export BOOL PostMessageA(
  2691         -  HWND hWnd,
  2692         -  UINT Msg,
  2693         -  WPARAM wParam,
  2694         -  LPARAM lParam);
  2695         -extern(Windows) export BOOL PostMessageW(
  2696         -  HWND hWnd,
  2697         -  UINT Msg,
  2698         -  WPARAM wParam,
  2699         -  LPARAM lParam);
  2700         -// #ifdef UNICODE
  2701         -alias PostMessageW PostMessage;
  2702         -// #else
  2703         -// #...
  2704         -// #endif // !UNICODE
  2705         -
  2706         -extern(Windows) export BOOL PostThreadMessageA(
  2707         -  DWORD idThread,
  2708         -  UINT Msg,
  2709         -  WPARAM wParam,
  2710         -  LPARAM lParam);
  2711         -extern(Windows) export BOOL PostThreadMessageW(
  2712         -  DWORD idThread,
  2713         -  UINT Msg,
  2714         -  WPARAM wParam,
  2715         -  LPARAM lParam);
  2716         -// #ifdef UNICODE
  2717         -alias PostThreadMessageW PostThreadMessage;
  2718         -// #else
  2719         -// #...
  2720         -// #endif // !UNICODE
  2721         -
  2722         -alias PostThreadMessageA PostAppMessageA;
  2723         -alias PostThreadMessageW PostAppMessageW;
  2724         -// #ifdef UNICODE
  2725         -alias PostAppMessageW PostAppMessage;
  2726         -// #else
  2727         -// #...
  2728         -// #endif // !UNICODE
  2729         -
  2730         -const HWND HWND_BROADCAST = cast(HWND)0xffff;
  2731         -
  2732         -// #if(WINVER >= 0x0500)
  2733         -const HWND HWND_MESSAGE = cast(HWND)-3;
  2734         -// #endif /* WINVER >= 0x0500 */
  2735         -
  2736         -extern(Windows) export BOOL AttachThreadInput(
  2737         -  DWORD idAttach,
  2738         -  DWORD idAttachTo,
  2739         -  BOOL fAttach);
  2740         -
  2741         -extern(Windows) export BOOL ReplyMessage(
  2742         -  LRESULT lResult);
  2743         -
  2744         -extern(Windows) export BOOL WaitMessage();
  2745         -
  2746         -extern(Windows) export DWORD WaitForInputIdle(
  2747         -  HANDLE hProcess,
  2748         -  DWORD dwMilliseconds);
  2749         -
  2750         -extern(Windows) export LRESULT DefWindowProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  2751         -extern(Windows) export LRESULT DefWindowProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  2752         -// #ifdef UNICODE
  2753         -alias DefWindowProcW DefWindowProc;
  2754         -// #else
  2755         -// #...
  2756         -// #endif // !UNICODE
  2757         -
  2758         -extern(Windows) export VOID PostQuitMessage(
  2759         -  int nExitCode);
  2760         -
  2761         -// #ifdef STRICT
  2762         -
  2763         -extern(Windows) export LRESULT CallWindowProcA(
  2764         -  WNDPROC lpPrevWndFunc,
  2765         -  HWND hWnd,
  2766         -  UINT Msg,
  2767         -  WPARAM wParam,
  2768         -  LPARAM lParam);
  2769         -extern(Windows) export LRESULT CallWindowProcW(
  2770         -  WNDPROC lpPrevWndFunc,
  2771         -  HWND hWnd,
  2772         -  UINT Msg,
  2773         -  WPARAM wParam,
  2774         -  LPARAM lParam);
  2775         -// #ifdef UNICODE
  2776         -alias CallWindowProcW CallWindowProc;
  2777         -// #else
  2778         -// #...
  2779         -// #endif // !UNICODE
  2780         -
  2781         -// #else /* !STRICT */
  2782         -
  2783         -// ...
  2784         -// #ifdef UNICODE
  2785         -// #...
  2786         -// #else
  2787         -// #...
  2788         -// #endif // !UNICODE
  2789         -
  2790         -// #endif /* !STRICT */
  2791         -
  2792         -extern(Windows) export BOOL InSendMessage();
  2793         -
  2794         -// #if(WINVER >= 0x0500)
  2795         -extern(Windows) export DWORD InSendMessageEx(
  2796         -  LPVOID lpReserved);
  2797         -
  2798         -enum : uint { ISMEX_NOSEND = 0x00000000 }
  2799         -enum : uint { ISMEX_SEND = 0x00000001 }
  2800         -enum : uint { ISMEX_NOTIFY = 0x00000002 }
  2801         -enum : uint { ISMEX_CALLBACK = 0x00000004 }
  2802         -enum : uint { ISMEX_REPLIED = 0x00000008 }
  2803         -// #endif /* WINVER >= 0x0500 */
  2804         -
  2805         -extern(Windows) export UINT GetDoubleClickTime();
  2806         -
  2807         -extern(Windows) export BOOL SetDoubleClickTime(
  2808         -  UINT);
  2809         -
  2810         -extern(Windows) export ATOM RegisterClassA(
  2811         -  WNDCLASSA *lpWndClass);
  2812         -extern(Windows) export ATOM RegisterClassW(
  2813         -  WNDCLASSW *lpWndClass);
  2814         -// #ifdef UNICODE
  2815         -alias RegisterClassW RegisterClass;
  2816         -// #else
  2817         -// #...
  2818         -// #endif // !UNICODE
  2819         -
  2820         -extern(Windows) export BOOL UnregisterClassA(
  2821         -  LPCSTR lpClassName,
  2822         -  HINSTANCE hInstance);
  2823         -extern(Windows) export BOOL UnregisterClassW(
  2824         -  LPCWSTR lpClassName,
  2825         -  HINSTANCE hInstance);
  2826         -// #ifdef UNICODE
  2827         -alias UnregisterClassW UnregisterClass;
  2828         -// #else
  2829         -// #...
  2830         -// #endif // !UNICODE
  2831         -
  2832         -extern(Windows) export BOOL GetClassInfoA(
  2833         -  HINSTANCE hInstance,
  2834         -  LPCSTR lpClassName,
  2835         -  LPWNDCLASSA lpWndClass);
  2836         -extern(Windows) export BOOL GetClassInfoW(
  2837         -  HINSTANCE hInstance,
  2838         -  LPCWSTR lpClassName,
  2839         -  LPWNDCLASSW lpWndClass);
  2840         -// #ifdef UNICODE
  2841         -alias GetClassInfoW GetClassInfo;
  2842         -// #else
  2843         -// #...
  2844         -// #endif // !UNICODE
  2845         -
  2846         -// #if(WINVER >= 0x0400)
  2847         -extern(Windows) export ATOM RegisterClassExA(
  2848         -  WNDCLASSEXA *);
  2849         -extern(Windows) export ATOM RegisterClassExW(
  2850         -  WNDCLASSEXW *);
  2851         -// #ifdef UNICODE
  2852         -alias RegisterClassExW RegisterClassEx;
  2853         -// #else
  2854         -// #...
  2855         -// #endif // !UNICODE
  2856         -
  2857         -extern(Windows) export BOOL GetClassInfoExA(
  2858         -  HINSTANCE,
  2859         -  LPCSTR,
  2860         -  LPWNDCLASSEXA);
  2861         -extern(Windows) export BOOL GetClassInfoExW(
  2862         -  HINSTANCE,
  2863         -  LPCWSTR,
  2864         -  LPWNDCLASSEXW);
  2865         -// #ifdef UNICODE
  2866         -alias GetClassInfoExW GetClassInfoEx;
  2867         -// #else
  2868         -// #...
  2869         -// #endif // !UNICODE
  2870         -
  2871         -// #endif /* WINVER >= 0x0400 */
  2872         -
  2873         -enum { CW_USEDEFAULT = int.min }
  2874         -
  2875         -const HWND HWND_DESKTOP = cast(HWND)0;
  2876         -
  2877         -// #if(_WIN32_WINNT >= 0x0501)
  2878         -extern(Windows) alias BOOLEAN function(LPCWSTR) PREGISTERCLASSNAMEW;
  2879         -// #endif /* _WIN32_WINNT >= 0x0501 */
  2880         -
  2881         -extern(Windows) export HWND CreateWindowExA(
  2882         -  DWORD dwExStyle,
  2883         -  LPCSTR lpClassName,
  2884         -  LPCSTR lpWindowName,
  2885         -  DWORD dwStyle,
  2886         -  int X,
  2887         -  int Y,
  2888         -  int nWidth,
  2889         -  int nHeight,
  2890         -  HWND hWndParent,
  2891         -  HMENU hMenu,
  2892         -  HINSTANCE hInstance,
  2893         -  LPVOID lpParam);
  2894         -extern(Windows) export HWND CreateWindowExW(
  2895         -  DWORD dwExStyle,
  2896         -  LPCWSTR lpClassName,
  2897         -  LPCWSTR lpWindowName,
  2898         -  DWORD dwStyle,
  2899         -  int X,
  2900         -  int Y,
  2901         -  int nWidth,
  2902         -  int nHeight,
  2903         -  HWND hWndParent,
  2904         -  HMENU hMenu,
  2905         -  HINSTANCE hInstance,
  2906         -  LPVOID lpParam);
  2907         -// #ifdef UNICODE
  2908         -alias CreateWindowExW CreateWindowEx;
  2909         -// #else
  2910         -// #...
  2911         -// #endif // !UNICODE
  2912         -
  2913         -HWND CreateWindowA(LPCSTR lpClassName, LPCSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam){ return CreateWindowExA(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); }
  2914         -HWND CreateWindowW(LPCWSTR lpClassName, LPCWSTR lpWindowName, DWORD dwStyle, int x, int y, int nWidth, int nHeight, HWND hWndParent, HMENU hMenu, HINSTANCE hInstance, LPVOID lpParam){ return CreateWindowExW(0L, lpClassName, lpWindowName, dwStyle, x, y, nWidth, nHeight, hWndParent, hMenu, hInstance, lpParam); }
  2915         -// #ifdef UNICODE
  2916         -alias CreateWindowW CreateWindow;
  2917         -// #else
  2918         -// #...
  2919         -// #endif // !UNICODE
  2920         -
  2921         -extern(Windows) export BOOL IsWindow(
  2922         -  HWND hWnd);
  2923         -
  2924         -extern(Windows) export BOOL IsMenu(
  2925         -  HMENU hMenu);
  2926         -
  2927         -extern(Windows) export BOOL IsChild(
  2928         -  HWND hWndParent,
  2929         -  HWND hWnd);
  2930         -
  2931         -extern(Windows) export BOOL DestroyWindow(
  2932         -  HWND hWnd);
  2933         -
  2934         -extern(Windows) export BOOL ShowWindow(
  2935         -  HWND hWnd,
  2936         -  int nCmdShow);
  2937         -
  2938         -// #if(WINVER >= 0x0500)
  2939         -extern(Windows) export BOOL AnimateWindow(
  2940         -  HWND hWnd,
  2941         -  DWORD dwTime,
  2942         -  DWORD dwFlags);
  2943         -// #endif /* WINVER >= 0x0500 */
  2944         -
  2945         -// #if(_WIN32_WINNT >= 0x0500)
  2946         -// #if defined(_WINGDI_) && !defined (NOGDI)
  2947         -
  2948         -// ...
  2949         -// #endif
  2950         -
  2951         -// #if(_WIN32_WINNT >= 0x0501)
  2952         -extern(Windows) export BOOL GetLayeredWindowAttributes(
  2953         -  HWND hwnd,
  2954         -  COLORREF *pcrKey,
  2955         -  BYTE *pbAlpha,
  2956         -  DWORD *pdwFlags);
  2957         -
  2958         -enum : uint { PW_CLIENTONLY = 0x00000001 }
  2959         -
  2960         -extern(Windows) export BOOL PrintWindow(
  2961         -  HWND hwnd,
  2962         -  HDC hdcBlt,
  2963         -  UINT nFlags);
  2964         -
  2965         -// #endif /* _WIN32_WINNT >= 0x0501 */
  2966         -
  2967         -extern(Windows) export BOOL SetLayeredWindowAttributes(
  2968         -  HWND hwnd,
  2969         -  COLORREF crKey,
  2970         -  BYTE bAlpha,
  2971         -  DWORD dwFlags);
  2972         -
  2973         -enum : uint { LWA_COLORKEY = 0x00000001 }
  2974         -enum : uint { LWA_ALPHA = 0x00000002 }
  2975         -
  2976         -enum : uint { ULW_COLORKEY = 0x00000001 }
  2977         -enum : uint { ULW_ALPHA = 0x00000002 }
  2978         -enum : uint { ULW_OPAQUE = 0x00000004 }
  2979         -
  2980         -// #endif /* _WIN32_WINNT >= 0x0500 */
  2981         -
  2982         -// #if(WINVER >= 0x0400)
  2983         -extern(Windows) export BOOL ShowWindowAsync(
  2984         -  HWND hWnd,
  2985         -  int nCmdShow);
  2986         -// #endif /* WINVER >= 0x0400 */
  2987         -
  2988         -extern(Windows) export BOOL FlashWindow(
  2989         -  HWND hWnd,
  2990         -  BOOL bInvert);
  2991         -
  2992         -// #if(WINVER >= 0x0500)
  2993         -struct _1 {
  2994         -  UINT cbSize;
  2995         -  HWND hwnd;
  2996         -  DWORD dwFlags;
  2997         -  UINT uCount;
  2998         -  DWORD dwTimeout;
  2999         -}
  3000         -alias _1 FLASHWINFO;
  3001         -alias _1* PFLASHWINFO;
  3002         -
  3003         -extern(Windows) export BOOL FlashWindowEx(
  3004         -  PFLASHWINFO pfwi);
  3005         -
  3006         -enum : uint { FLASHW_STOP = 0 }
  3007         -enum : uint { FLASHW_CAPTION = 0x00000001 }
  3008         -enum : uint { FLASHW_TRAY = 0x00000002 }
  3009         -enum : uint { FLASHW_ALL = FLASHW_CAPTION | FLASHW_TRAY }
  3010         -enum : uint { FLASHW_TIMER = 0x00000004 }
  3011         -enum : uint { FLASHW_TIMERNOFG = 0x0000000C }
  3012         -
  3013         -// #endif /* WINVER >= 0x0500 */
  3014         -
  3015         -extern(Windows) export BOOL ShowOwnedPopups(
  3016         -  HWND hWnd,
  3017         -  BOOL fShow);
  3018         -
  3019         -extern(Windows) export BOOL OpenIcon(
  3020         -  HWND hWnd);
  3021         -
  3022         -extern(Windows) export BOOL CloseWindow(
  3023         -  HWND hWnd);
  3024         -
  3025         -extern(Windows) export BOOL MoveWindow(
  3026         -  HWND hWnd,
  3027         -  int X,
  3028         -  int Y,
  3029         -  int nWidth,
  3030         -  int nHeight,
  3031         -  BOOL bRepaint);
  3032         -
  3033         -extern(Windows) export BOOL SetWindowPos(
  3034         -  HWND hWnd,
  3035         -  HWND hWndInsertAfter,
  3036         -  int X,
  3037         -  int Y,
  3038         -  int cx,
  3039         -  int cy,
  3040         -  UINT uFlags);
  3041         -
  3042         -extern(Windows) export BOOL GetWindowPlacement(
  3043         -  HWND hWnd,
  3044         -  WINDOWPLACEMENT *lpwndpl);
  3045         -
  3046         -extern(Windows) export BOOL SetWindowPlacement(
  3047         -  HWND hWnd,
  3048         -  WINDOWPLACEMENT *lpwndpl);
  3049         -
  3050         -// #ifndef NODEFERWINDOWPOS
  3051         -
  3052         -extern(Windows) export HDWP BeginDeferWindowPos(
  3053         -  int nNumWindows);
  3054         -
  3055         -extern(Windows) export HDWP DeferWindowPos(
  3056         -  HDWP hWinPosInfo,
  3057         -  HWND hWnd,
  3058         -  HWND hWndInsertAfter,
  3059         -  int x,
  3060         -  int y,
  3061         -  int cx,
  3062         -  int cy,
  3063         -  UINT uFlags);
  3064         -
  3065         -extern(Windows) export BOOL EndDeferWindowPos(
  3066         -  HDWP hWinPosInfo);
  3067         -
  3068         -// #endif /* !NODEFERWINDOWPOS */
  3069         -
  3070         -extern(Windows) export BOOL IsWindowVisible(
  3071         -  HWND hWnd);
  3072         -
  3073         -extern(Windows) export BOOL IsIconic(
  3074         -  HWND hWnd);
  3075         -
  3076         -extern(Windows) export BOOL AnyPopup();
  3077         -
  3078         -extern(Windows) export BOOL BringWindowToTop(
  3079         -  HWND hWnd);
  3080         -
  3081         -extern(Windows) export BOOL IsZoomed(
  3082         -  HWND hWnd);
  3083         -
  3084         -enum : uint { SWP_NOSIZE = 0x0001 }
  3085         -enum : uint { SWP_NOMOVE = 0x0002 }
  3086         -enum : uint { SWP_NOZORDER = 0x0004 }
  3087         -enum : uint { SWP_NOREDRAW = 0x0008 }
  3088         -enum : uint { SWP_NOACTIVATE = 0x0010 }
  3089         -enum : uint { SWP_FRAMECHANGED = 0x0020 }
  3090         -enum : uint { SWP_SHOWWINDOW = 0x0040 }
  3091         -enum : uint { SWP_HIDEWINDOW = 0x0080 }
  3092         -enum : uint { SWP_NOCOPYBITS = 0x0100 }
  3093         -enum : uint { SWP_NOOWNERZORDER = 0x0200 }
  3094         -enum : uint { SWP_NOSENDCHANGING = 0x0400 }
  3095         -
  3096         -alias SWP_FRAMECHANGED SWP_DRAWFRAME;
  3097         -alias SWP_NOOWNERZORDER SWP_NOREPOSITION;
  3098         -
  3099         -// #if(WINVER >= 0x0400)
  3100         -enum : uint { SWP_DEFERERASE = 0x2000 }
  3101         -enum : uint { SWP_ASYNCWINDOWPOS = 0x4000 }
  3102         -// #endif /* WINVER >= 0x0400 */
  3103         -
  3104         -const HWND HWND_TOP = cast(HWND)0;
  3105         -const HWND HWND_BOTTOM = cast(HWND)1;
  3106         -const HWND HWND_TOPMOST = cast(HWND)-1;
  3107         -const HWND HWND_NOTOPMOST = cast(HWND)-2;
  3108         -
  3109         -// #ifndef NOCTLMGR
  3110         -
  3111         -align(2):
  3112         -
  3113         -struct _2 {
  3114         -  DWORD style;
  3115         -  DWORD dwExtendedStyle;
  3116         -  WORD cdit;
  3117         -  short x;
  3118         -  short y;
  3119         -  short cx;
  3120         -  short cy;
  3121         -}
  3122         -alias _2 DLGTEMPLATE;
  3123         -
  3124         -alias DLGTEMPLATE* LPDLGTEMPLATEA;
  3125         -alias DLGTEMPLATE* LPDLGTEMPLATEW;
  3126         -// #ifdef UNICODE
  3127         -alias LPDLGTEMPLATEW LPDLGTEMPLATE;
  3128         -// #else
  3129         -// ...
  3130         -// #endif // UNICODE
  3131         -alias DLGTEMPLATE* LPCDLGTEMPLATEA;
  3132         -alias DLGTEMPLATE* LPCDLGTEMPLATEW;
  3133         -// #ifdef UNICODE
  3134         -alias LPCDLGTEMPLATEW LPCDLGTEMPLATE;
  3135         -// #else
  3136         -// ...
  3137         -// #endif // UNICODE
  3138         -
  3139         -struct _3 {
  3140         -  DWORD style;
  3141         -  DWORD dwExtendedStyle;
  3142         -  short x;
  3143         -  short y;
  3144         -  short cx;
  3145         -  short cy;
  3146         -  WORD id;
  3147         -}
  3148         -alias _3 DLGITEMTEMPLATE;
  3149         -
  3150         -alias DLGITEMTEMPLATE* PDLGITEMTEMPLATEA;
  3151         -alias DLGITEMTEMPLATE* PDLGITEMTEMPLATEW;
  3152         -// #ifdef UNICODE
  3153         -alias PDLGITEMTEMPLATEW PDLGITEMTEMPLATE;
  3154         -// #else
  3155         -// ...
  3156         -// #endif // UNICODE
  3157         -alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATEA;
  3158         -alias DLGITEMTEMPLATE* LPDLGITEMTEMPLATEW;
  3159         -// #ifdef UNICODE
  3160         -alias LPDLGITEMTEMPLATEW LPDLGITEMTEMPLATE;
  3161         -// #else
  3162         -// ...
  3163         -// #endif // UNICODE
  3164         -
  3165         -align:
  3166         -
  3167         -extern(Windows) export HWND CreateDialogParamA(
  3168         -  HINSTANCE hInstance,
  3169         -  LPCSTR lpTemplateName,
  3170         -  HWND hWndParent,
  3171         -  DLGPROC lpDialogFunc,
  3172         -  LPARAM dwInitParam);
  3173         -extern(Windows) export HWND CreateDialogParamW(
  3174         -  HINSTANCE hInstance,
  3175         -  LPCWSTR lpTemplateName,
  3176         -  HWND hWndParent,
  3177         -  DLGPROC lpDialogFunc,
  3178         -  LPARAM dwInitParam);
  3179         -// #ifdef UNICODE
  3180         -alias CreateDialogParamW CreateDialogParam;
  3181         -// #else
  3182         -// #...
  3183         -// #endif // !UNICODE
  3184         -
  3185         -extern(Windows) export HWND CreateDialogIndirectParamA(
  3186         -  HINSTANCE hInstance,
  3187         -  LPCDLGTEMPLATEA lpTemplate,
  3188         -  HWND hWndParent,
  3189         -  DLGPROC lpDialogFunc,
  3190         -  LPARAM dwInitParam);
  3191         -extern(Windows) export HWND CreateDialogIndirectParamW(
  3192         -  HINSTANCE hInstance,
  3193         -  LPCDLGTEMPLATEW lpTemplate,
  3194         -  HWND hWndParent,
  3195         -  DLGPROC lpDialogFunc,
  3196         -  LPARAM dwInitParam);
  3197         -// #ifdef UNICODE
  3198         -alias CreateDialogIndirectParamW CreateDialogIndirectParam;
  3199         -// #else
  3200         -// #...
  3201         -// #endif // !UNICODE
  3202         -
  3203         -HWND CreateDialogA(HINSTANCE hInstance, LPCSTR lpName, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogParamA(hInstance, lpName, hWndParent, lpDialogFunc, 0L); }
  3204         -HWND CreateDialogW(HINSTANCE hInstance, LPCWSTR lpName, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogParamW(hInstance, lpName, hWndParent, lpDialogFunc, 0L); }
  3205         -// #ifdef UNICODE
  3206         -alias CreateDialogW CreateDialog;
  3207         -// #else
  3208         -// #...
  3209         -// #endif // !UNICODE
  3210         -
  3211         -HWND CreateDialogIndirectA(HINSTANCE hInstance, LPCDLGTEMPLATE lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L); }
  3212         -HWND CreateDialogIndirectW(HINSTANCE hInstance, LPCDLGTEMPLATE lpTemplate, HWND hWndParent, DLGPROC lpDialogFunc){ return CreateDialogIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L); }
  3213         -// #ifdef UNICODE
  3214         -alias CreateDialogIndirectW CreateDialogIndirect;
  3215         -// #else
  3216         -// #...
  3217         -// #endif // !UNICODE
  3218         -
  3219         -extern(Windows) export INT_PTR DialogBoxParamA(
  3220         -  HINSTANCE hInstance,
  3221         -  LPCSTR lpTemplateName,
  3222         -  HWND hWndParent,
  3223         -  DLGPROC lpDialogFunc,
  3224         -  LPARAM dwInitParam);
  3225         -extern(Windows) export INT_PTR DialogBoxParamW(
  3226         -  HINSTANCE hInstance,
  3227         -  LPCWSTR lpTemplateName,
  3228         -  HWND hWndParent,
  3229         -  DLGPROC lpDialogFunc,
  3230         -  LPARAM dwInitParam);
  3231         -// #ifdef UNICODE
  3232         -alias DialogBoxParamW DialogBoxParam;
  3233         -// #else
  3234         -// #...
  3235         -// #endif // !UNICODE
  3236         -
  3237         -extern(Windows) export INT_PTR DialogBoxIndirectParamA(
  3238         -  HINSTANCE hInstance,
  3239         -  LPCDLGTEMPLATEA hDialogTemplate,
  3240         -  HWND hWndParent,
  3241         -  DLGPROC lpDialogFunc,
  3242         -  LPARAM dwInitParam);
  3243         -extern(Windows) export INT_PTR DialogBoxIndirectParamW(
  3244         -  HINSTANCE hInstance,
  3245         -  LPCDLGTEMPLATEW hDialogTemplate,
  3246         -  HWND hWndParent,
  3247         -  DLGPROC lpDialogFunc,
  3248         -  LPARAM dwInitParam);
  3249         -// #ifdef UNICODE
  3250         -alias DialogBoxIndirectParamW DialogBoxIndirectParam;
  3251         -// #else
  3252         -// #...
  3253         -// #endif // !UNICODE
  3254         -
  3255         -// #define DialogBoxA(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  3256         -// #define DialogBoxW(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  3257         -// #ifdef UNICODE
  3258         -// #define DialogBox DialogBoxW
  3259         -// #else
  3260         -// #...
  3261         -// #endif // !UNICODE
  3262         -
  3263         -// #define DialogBoxIndirectA(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxIndirectParamA(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  3264         -// #define DialogBoxIndirectW(hInstance, lpTemplate, hWndParent, lpDialogFunc) DialogBoxIndirectParamW(hInstance, lpTemplate, hWndParent, lpDialogFunc, 0L)
  3265         -// #ifdef UNICODE
  3266         -// #define DialogBoxIndirect DialogBoxIndirectW
  3267         -// #else
  3268         -// #...
  3269         -// #endif // !UNICODE
  3270         -
  3271         -extern(Windows) export BOOL EndDialog(
  3272         -  HWND hDlg,
  3273         -  INT_PTR nResult);
  3274         -
  3275         -extern(Windows) export HWND GetDlgItem(
  3276         -  HWND hDlg,
  3277         -  int nIDDlgItem);
  3278         -
  3279         -extern(Windows) export BOOL SetDlgItemInt(
  3280         -  HWND hDlg,
  3281         -  int nIDDlgItem,
  3282         -  UINT uValue,
  3283         -  BOOL bSigned);
  3284         -
  3285         -extern(Windows) export UINT GetDlgItemInt(
  3286         -  HWND hDlg,
  3287         -  int nIDDlgItem,
  3288         -  BOOL *lpTranslated,
  3289         -  BOOL bSigned);
  3290         -
  3291         -extern(Windows) export BOOL SetDlgItemTextA(
  3292         -  HWND hDlg,
  3293         -  int nIDDlgItem,
  3294         -  LPCSTR lpString);
  3295         -extern(Windows) export BOOL SetDlgItemTextW(
  3296         -  HWND hDlg,
  3297         -  int nIDDlgItem,
  3298         -  LPCWSTR lpString);
  3299         -// #ifdef UNICODE
  3300         -alias SetDlgItemTextW SetDlgItemText;
  3301         -// #else
  3302         -// #...
  3303         -// #endif // !UNICODE
  3304         -
  3305         -extern(Windows) export UINT GetDlgItemTextA(
  3306         -  HWND hDlg,
  3307         -  int nIDDlgItem,
  3308         -  LPSTR lpString,
  3309         -  int nMaxCount);
  3310         -extern(Windows) export UINT GetDlgItemTextW(
  3311         -  HWND hDlg,
  3312         -  int nIDDlgItem,
  3313         -  LPWSTR lpString,
  3314         -  int nMaxCount);
  3315         -// #ifdef UNICODE
  3316         -alias GetDlgItemTextW GetDlgItemText;
  3317         -// #else
  3318         -// #...
  3319         -// #endif // !UNICODE
  3320         -
  3321         -extern(Windows) export BOOL CheckDlgButton(
  3322         -  HWND hDlg,
  3323         -  int nIDButton,
  3324         -  UINT uCheck);
  3325         -
  3326         -extern(Windows) export BOOL CheckRadioButton(
  3327         -  HWND hDlg,
  3328         -  int nIDFirstButton,
  3329         -  int nIDLastButton,
  3330         -  int nIDCheckButton);
  3331         -
  3332         -extern(Windows) export UINT IsDlgButtonChecked(
  3333         -  HWND hDlg,
  3334         -  int nIDButton);
  3335         -
  3336         -extern(Windows) export LRESULT SendDlgItemMessageA(
  3337         -  HWND hDlg,
  3338         -  int nIDDlgItem,
  3339         -  UINT Msg,
  3340         -  WPARAM wParam,
  3341         -  LPARAM lParam);
  3342         -extern(Windows) export LRESULT SendDlgItemMessageW(
  3343         -  HWND hDlg,
  3344         -  int nIDDlgItem,
  3345         -  UINT Msg,
  3346         -  WPARAM wParam,
  3347         -  LPARAM lParam);
  3348         -// #ifdef UNICODE
  3349         -alias SendDlgItemMessageW SendDlgItemMessage;
  3350         -// #else
  3351         -// #...
  3352         -// #endif // !UNICODE
  3353         -
  3354         -extern(Windows) export HWND GetNextDlgGroupItem(
  3355         -  HWND hDlg,
  3356         -  HWND hCtl,
  3357         -  BOOL bPrevious);
  3358         -
  3359         -extern(Windows) export HWND GetNextDlgTabItem(
  3360         -  HWND hDlg,
  3361         -  HWND hCtl,
  3362         -  BOOL bPrevious);
  3363         -
  3364         -extern(Windows) export int GetDlgCtrlID(
  3365         -  HWND hWnd);
  3366         -
  3367         -extern(Windows) export int GetDialogBaseUnits();
  3368         -
  3369         -extern(Windows) export LRESULT DefDlgProcA(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
  3370         -extern(Windows) export LRESULT DefDlgProcW(HWND hDlg, UINT Msg, WPARAM wParam, LPARAM lParam);
  3371         -// #ifdef UNICODE
  3372         -alias DefDlgProcW DefDlgProc;
  3373         -// #else
  3374         -// #...
  3375         -// #endif // !UNICODE
  3376         -
  3377         -// #ifndef _MAC
  3378         -enum : uint { DLGWINDOWEXTRA = 30 }
  3379         -// #else
  3380         -// #...
  3381         -// #endif
  3382         -
  3383         -// #endif /* !NOCTLMGR */
  3384         -
  3385         -// #ifndef NOMSG
  3386         -
  3387         -extern(Windows) export BOOL CallMsgFilterA(
  3388         -  LPMSG lpMsg,
  3389         -  int nCode);
  3390         -extern(Windows) export BOOL CallMsgFilterW(
  3391         -  LPMSG lpMsg,
  3392         -  int nCode);
  3393         -// #ifdef UNICODE
  3394         -alias CallMsgFilterW CallMsgFilter;
  3395         -// #else
  3396         -// #...
  3397         -// #endif // !UNICODE
  3398         -
  3399         -// #endif /* !NOMSG */
  3400         -
  3401         -// #ifndef NOCLIPBOARD
  3402         -
  3403         -extern(Windows) export BOOL OpenClipboard(
  3404         -  HWND hWndNewOwner);
  3405         -
  3406         -extern(Windows) export BOOL CloseClipboard();
  3407         -
  3408         -// #if(WINVER >= 0x0500)
  3409         -
  3410         -extern(Windows) export DWORD GetClipboardSequenceNumber();
  3411         -
  3412         -// #endif /* WINVER >= 0x0500 */
  3413         -
  3414         -extern(Windows) export HWND GetClipboardOwner();
  3415         -
  3416         -extern(Windows) export HWND SetClipboardViewer(
  3417         -  HWND hWndNewViewer);
  3418         -
  3419         -extern(Windows) export HWND GetClipboardViewer();
  3420         -
  3421         -extern(Windows) export BOOL ChangeClipboardChain(
  3422         -  HWND hWndRemove,
  3423         -  HWND hWndNewNext);
  3424         -
  3425         -extern(Windows) export HANDLE SetClipboardData(
  3426         -  UINT uFormat,
  3427         -  HANDLE hMem);
  3428         -
  3429         -extern(Windows) export HANDLE GetClipboardData(
  3430         -  UINT uFormat);
  3431         -
  3432         -extern(Windows) export UINT RegisterClipboardFormatA(
  3433         -  LPCSTR lpszFormat);
  3434         -extern(Windows) export UINT RegisterClipboardFormatW(
  3435         -  LPCWSTR lpszFormat);
  3436         -// #ifdef UNICODE
  3437         -alias RegisterClipboardFormatW RegisterClipboardFormat;
  3438         -// #else
  3439         -// #...
  3440         -// #endif // !UNICODE
  3441         -
  3442         -extern(Windows) export int CountClipboardFormats();
  3443         -
  3444         -extern(Windows) export UINT EnumClipboardFormats(
  3445         -  UINT format);
  3446         -
  3447         -extern(Windows) export int GetClipboardFormatNameA(
  3448         -  UINT format,
  3449         -  LPSTR lpszFormatName,
  3450         -  int cchMaxCount);
  3451         -extern(Windows) export int GetClipboardFormatNameW(
  3452         -  UINT format,
  3453         -  LPWSTR lpszFormatName,
  3454         -  int cchMaxCount);
  3455         -// #ifdef UNICODE
  3456         -alias GetClipboardFormatNameW GetClipboardFormatName;
  3457         -// #else
  3458         -// #...
  3459         -// #endif // !UNICODE
  3460         -
  3461         -extern(Windows) export BOOL EmptyClipboard();
  3462         -
  3463         -extern(Windows) export BOOL IsClipboardFormatAvailable(
  3464         -  UINT format);
  3465         -
  3466         -extern(Windows) export int GetPriorityClipboardFormat(
  3467         -  UINT *paFormatPriorityList,
  3468         -  int cFormats);
  3469         -
  3470         -extern(Windows) export HWND GetOpenClipboardWindow();
  3471         -
  3472         -// #endif /* !NOCLIPBOARD */
  3473         -
  3474         -extern(Windows) export BOOL CharToOemA(
  3475         -  LPCSTR lpszSrc,
  3476         -  LPSTR lpszDst);
  3477         -extern(Windows) export BOOL CharToOemW(
  3478         -  LPCWSTR lpszSrc,
  3479         -  LPSTR lpszDst);
  3480         -// #ifdef UNICODE
  3481         -alias CharToOemW CharToOem;
  3482         -// #else
  3483         -// #...
  3484         -// #endif // !UNICODE
  3485         -
  3486         -extern(Windows) export BOOL OemToCharA(
  3487         -  LPCSTR lpszSrc,
  3488         -  LPSTR lpszDst);
  3489         -extern(Windows) export BOOL OemToCharW(
  3490         -  LPCSTR lpszSrc,
  3491         -  LPWSTR lpszDst);
  3492         -// #ifdef UNICODE
  3493         -alias OemToCharW OemToChar;
  3494         -// #else
  3495         -// #...
  3496         -// #endif // !UNICODE
  3497         -
  3498         -extern(Windows) export BOOL CharToOemBuffA(
  3499         -  LPCSTR lpszSrc,
  3500         -  LPSTR lpszDst,
  3501         -  DWORD cchDstLength);
  3502         -extern(Windows) export BOOL CharToOemBuffW(
  3503         -  LPCWSTR lpszSrc,
  3504         -  LPSTR lpszDst,
  3505         -  DWORD cchDstLength);
  3506         -// #ifdef UNICODE
  3507         -alias CharToOemBuffW CharToOemBuff;
  3508         -// #else
  3509         -// #...
  3510         -// #endif // !UNICODE
  3511         -
  3512         -extern(Windows) export BOOL OemToCharBuffA(
  3513         -  LPCSTR lpszSrc,
  3514         -  LPSTR lpszDst,
  3515         -  DWORD cchDstLength);
  3516         -extern(Windows) export BOOL OemToCharBuffW(
  3517         -  LPCSTR lpszSrc,
  3518         -  LPWSTR lpszDst,
  3519         -  DWORD cchDstLength);
  3520         -// #ifdef UNICODE
  3521         -alias OemToCharBuffW OemToCharBuff;
  3522         -// #else
  3523         -// #...
  3524         -// #endif // !UNICODE
  3525         -
  3526         -extern(Windows) export LPSTR CharUpperA(
  3527         -  LPSTR lpsz);
  3528         -extern(Windows) export LPWSTR CharUpperW(
  3529         -  LPWSTR lpsz);
  3530         -// #ifdef UNICODE
  3531         -alias CharUpperW CharUpper;
  3532         -// #else
  3533         -// #...
  3534         -// #endif // !UNICODE
  3535         -
  3536         -extern(Windows) export DWORD CharUpperBuffA(
  3537         -  LPSTR lpsz,
  3538         -  DWORD cchLength);
  3539         -extern(Windows) export DWORD CharUpperBuffW(
  3540         -  LPWSTR lpsz,
  3541         -  DWORD cchLength);
  3542         -// #ifdef UNICODE
  3543         -alias CharUpperBuffW CharUpperBuff;
  3544         -// #else
  3545         -// #...
  3546         -// #endif // !UNICODE
  3547         -
  3548         -extern(Windows) export LPSTR CharLowerA(
  3549         -  LPSTR lpsz);
  3550         -extern(Windows) export LPWSTR CharLowerW(
  3551         -  LPWSTR lpsz);
  3552         -// #ifdef UNICODE
  3553         -alias CharLowerW CharLower;
  3554         -// #else
  3555         -// #...
  3556         -// #endif // !UNICODE
  3557         -
  3558         -extern(Windows) export DWORD CharLowerBuffA(
  3559         -  LPSTR lpsz,
  3560         -  DWORD cchLength);
  3561         -extern(Windows) export DWORD CharLowerBuffW(
  3562         -  LPWSTR lpsz,
  3563         -  DWORD cchLength);
  3564         -// #ifdef UNICODE
  3565         -alias CharLowerBuffW CharLowerBuff;
  3566         -// #else
  3567         -// #...
  3568         -// #endif // !UNICODE
  3569         -
  3570         -extern(Windows) export LPSTR CharNextA(
  3571         -  LPCSTR lpsz);
  3572         -extern(Windows) export LPWSTR CharNextW(
  3573         -  LPCWSTR lpsz);
  3574         -// #ifdef UNICODE
  3575         -alias CharNextW CharNext;
  3576         -// #else
  3577         -// #...
  3578         -// #endif // !UNICODE
  3579         -
  3580         -extern(Windows) export LPSTR CharPrevA(
  3581         -  LPCSTR lpszStart,
  3582         -  LPCSTR lpszCurrent);
  3583         -extern(Windows) export LPWSTR CharPrevW(
  3584         -  LPCWSTR lpszStart,
  3585         -  LPCWSTR lpszCurrent);
  3586         -// #ifdef UNICODE
  3587         -alias CharPrevW CharPrev;
  3588         -// #else
  3589         -// #...
  3590         -// #endif // !UNICODE
  3591         -
  3592         -// #if(WINVER >= 0x0400)
  3593         -extern(Windows) export LPSTR CharNextExA(
  3594         -  WORD CodePage,
  3595         -  LPCSTR lpCurrentChar,
  3596         -  DWORD dwFlags);
  3597         -
  3598         -extern(Windows) export LPSTR CharPrevExA(
  3599         -  WORD CodePage,
  3600         -  LPCSTR lpStart,
  3601         -  LPCSTR lpCurrentChar,
  3602         -  DWORD dwFlags);
  3603         -// #endif /* WINVER >= 0x0400 */
         2830  +struct WNDCLASSA {
         2831  + UINT      style;
         2832  + WNDPROC   lpfnWndProc;
         2833  + int       cbClsExtra;
         2834  + int       cbWndExtra;
         2835  + HINSTANCE hInstance;
         2836  + HICON     hIcon;
         2837  + HCURSOR   hCursor;
         2838  + HBRUSH    hbrBackground;
         2839  + LPCSTR    lpszMenuName;
         2840  + LPCSTR    lpszClassName;
         2841  +}
         2842  +alias WNDCLASSA* LPWNDCLASSA, PWNDCLASSA;
         2843  +
         2844  +struct WNDCLASSW {
         2845  + UINT      style;
         2846  + WNDPROC   lpfnWndProc;
         2847  + int       cbClsExtra;
         2848  + int       cbWndExtra;
         2849  + HINSTANCE hInstance;
         2850  + HICON     hIcon;
         2851  + HCURSOR   hCursor;
         2852  + HBRUSH    hbrBackground;
         2853  + LPCWSTR   lpszMenuName;
         2854  + LPCWSTR   lpszClassName;
         2855  +}
         2856  +alias WNDCLASSW* LPWNDCLASSW, PWNDCLASSW;
         2857  +
         2858  +struct WNDCLASSEXA {
         2859  + UINT      cbSize = WNDCLASSEXA.sizeof;
         2860  + UINT      style;
         2861  + WNDPROC   lpfnWndProc;
         2862  + int       cbClsExtra;
         2863  + int       cbWndExtra;
         2864  + HINSTANCE hInstance;
         2865  + HICON     hIcon;
         2866  + HCURSOR   hCursor;
         2867  + HBRUSH    hbrBackground;
         2868  + LPCSTR    lpszMenuName;
         2869  + LPCSTR    lpszClassName;
         2870  + HICON     hIconSm;
         2871  +}
         2872  +alias WNDCLASSEXA* LPWNDCLASSEXA, PWNDCLASSEXA;
         2873  +
         2874  +struct WNDCLASSEXW {
         2875  + UINT      cbSize = WNDCLASSEXW.sizeof;
         2876  + UINT      style;
         2877  + WNDPROC   lpfnWndProc;
         2878  + int       cbClsExtra;
         2879  + int       cbWndExtra;
         2880  + HINSTANCE hInstance;
         2881  + HICON     hIcon;
         2882  + HCURSOR   hCursor;
         2883  + HBRUSH    hbrBackground;
         2884  + LPCWSTR   lpszMenuName;
         2885  + LPCWSTR   lpszClassName;
         2886  + HICON     hIconSm;
         2887  +}
         2888  +alias WNDCLASSEXW* LPWNDCLASSEXW, PWNDCLASSEXW;
         2889  +
         2890  +struct MENUITEMINFOA {
         2891  + UINT    cbSize = MENUITEMINFOA.sizeof;
         2892  + UINT    fMask;
         2893  + UINT    fType;
         2894  + UINT    fState;
         2895  + UINT    wID;
         2896  + HMENU   hSubMenu;
         2897  + HBITMAP hbmpChecked;
         2898  + HBITMAP hbmpUnchecked;
         2899  + DWORD   dwItemData;
         2900  + LPSTR   dwTypeData;
         2901  + UINT    cch;
         2902  + static if (_WIN32_WINNT >= 0x500) {
         2903  +  HBITMAP hbmpItem;
         2904  + }
         2905  +}
         2906  +alias MENUITEMINFOA*       LPMENUITEMINFOA;
         2907  +alias CPtr!(MENUITEMINFOA) LPCMENUITEMINFOA;
         2908  +
         2909  +struct MENUITEMINFOW {
         2910  + UINT    cbSize = MENUITEMINFOW.sizeof;
         2911  + UINT    fMask;
         2912  + UINT    fType;
         2913  + UINT    fState;
         2914  + UINT    wID;
         2915  + HMENU   hSubMenu;
         2916  + HBITMAP hbmpChecked;
         2917  + HBITMAP hbmpUnchecked;
         2918  + DWORD   dwItemData;
         2919  + LPWSTR  dwTypeData;
         2920  + UINT    cch;
         2921  + static if (_WIN32_WINNT >= 0x500) {
         2922  +  HBITMAP hbmpItem;
         2923  + }
         2924  +}
         2925  +alias MENUITEMINFOW*       LPMENUITEMINFOW;
         2926  +alias CPtr!(MENUITEMINFOW) LPCMENUITEMINFOW;
         2927  +
         2928  +struct SCROLLINFO {
         2929  + UINT cbSize = this.sizeof;
         2930  + UINT fMask;
         2931  + int nMin;
         2932  + int nMax;
         2933  + UINT nPage;
         2934  + int nPos;
         2935  + int nTrackPos;
         2936  +}
         2937  +alias SCROLLINFO*       LPSCROLLINFO;
         2938  +alias CPtr!(SCROLLINFO) LPCSCROLLINFO;
         2939  +
         2940  +struct WINDOWPLACEMENT {
         2941  + UINT length;
         2942  + UINT flags;
         2943  + UINT showCmd;
         2944  + POINT ptMinPosition;
         2945  + POINT ptMaxPosition;
         2946  + RECT rcNormalPosition;
         2947  +}
         2948  +alias WINDOWPLACEMENT* LPWINDOWPLACEMENT, PWINDOWPLACEMENT;
         2949  +
         2950  +struct MENUITEMTEMPLATEHEADER {
         2951  + WORD versionNumber;
         2952  + WORD offset;
         2953  +}
         2954  +
         2955  +struct MENUITEMTEMPLATE {
         2956  + WORD mtOption;
         2957  + WORD mtID;
         2958  + WCHAR mtString[1];
         2959  +}
         2960  +
         2961  +alias void MENUTEMPLATE, MENUTEMPLATEA, MENUTEMPLATEW;
         2962  +
         2963  +alias MENUTEMPLATE* LPMENUTEMPLATEA, LPMENUTEMPLATEW, LPMENUTEMPLATE;
         2964  +
         2965  +struct HELPINFO {
         2966  + UINT cbSize = this.sizeof;
         2967  + int iContextType;
         2968  + int iCtrlId;
         2969  + HANDLE hItemHandle;
         2970  + DWORD dwContextId;
         2971  + POINT MousePos;
         2972  +}
         2973  +alias HELPINFO* LPHELPINFO;
         2974  +
         2975  +struct MSGBOXPARAMSA {
         2976  + UINT cbSize = this.sizeof;
         2977  + HWND hwndOwner;
         2978  + HINSTANCE hInstance;
         2979  + LPCSTR lpszText;
         2980  + LPCSTR lpszCaption;
         2981  + DWORD dwStyle;
         2982  + LPCSTR lpszIcon;
         2983  + DWORD dwContextHelpId;
         2984  + MSGBOXCALLBACK lpfnMsgBoxCallback;
         2985  + DWORD dwLanguageId;
         2986  +}
         2987  +alias MSGBOXPARAMSA* PMSGBOXPARAMSA, LPMSGBOXPARAMSA;
         2988  +
         2989  +struct MSGBOXPARAMSW {
         2990  + UINT cbSize = this.sizeof;
         2991  + HWND hwndOwner;
         2992  + HINSTANCE hInstance;
         2993  + LPCWSTR lpszText;
         2994  + LPCWSTR lpszCaption;
         2995  + DWORD dwStyle;
         2996  + LPCWSTR lpszIcon;
         2997  + DWORD dwContextHelpId;
         2998  + MSGBOXCALLBACK lpfnMsgBoxCallback;
         2999  + DWORD dwLanguageId;
         3000  +}
         3001  +alias MSGBOXPARAMSW* PMSGBOXPARAMSW, LPMSGBOXPARAMSW;
         3002  +
         3003  +struct USEROBJECTFLAGS {
         3004  + BOOL fInherit;
         3005  + BOOL fReserved;
         3006  + DWORD dwFlags;
         3007  +}
         3008  +
         3009  +struct FILTERKEYS {
         3010  + UINT cbSize = this.sizeof;
         3011  + DWORD dwFlags;
         3012  + DWORD iWaitMSec;
         3013  + DWORD iDelayMSec;
         3014  + DWORD iRepeatMSec;
         3015  + DWORD iBounceMSec;
         3016  +}
         3017  +
         3018  +struct HIGHCONTRASTA {
         3019  + UINT cbSize = this.sizeof;
         3020  + DWORD dwFlags;
         3021  + LPSTR lpszDefaultScheme;
         3022  +}
         3023  +alias HIGHCONTRASTA* LPHIGHCONTRASTA;
         3024  +
         3025  +struct HIGHCONTRASTW {
         3026  + UINT cbSize = this.sizeof;
         3027  + DWORD dwFlags;
         3028  + LPWSTR lpszDefaultScheme;
         3029  +}
         3030  +alias HIGHCONTRASTW* LPHIGHCONTRASTW;
         3031  +
         3032  +struct ICONMETRICSA {
         3033  + UINT cbSize = this.sizeof;
         3034  + int iHorzSpacing;
         3035  + int iVertSpacing;
         3036  + int iTitleWrap;
         3037  + LOGFONTA lfFont;
         3038  +}
         3039  +alias ICONMETRICSA* LPICONMETRICSA;
         3040  +
         3041  +struct ICONMETRICSW {
         3042  + UINT cbSize = this.sizeof;
         3043  + int iHorzSpacing;
         3044  + int iVertSpacing;
         3045  + int iTitleWrap;
         3046  + LOGFONTW lfFont;
         3047  +}
         3048  +alias ICONMETRICSW* LPICONMETRICSW;
         3049  +
         3050  +struct MINIMIZEDMETRICS {
         3051  + UINT cbSize = this.sizeof;
         3052  + int iWidth;
         3053  + int iHorzGap;
         3054  + int iVertGap;
         3055  + int iArrange;
         3056  +}
         3057  +alias MINIMIZEDMETRICS* LPMINIMIZEDMETRICS;
         3058  +
         3059  +struct MOUSEKEYS {
         3060  + UINT cbSize = this.sizeof;
         3061  + DWORD dwFlags;
         3062  + DWORD iMaxSpeed;
         3063  + DWORD iTimeToMaxSpeed;
         3064  + DWORD iCtrlSpeed;
         3065  + DWORD dwReserved1;
         3066  + DWORD dwReserved2;
         3067  +}
         3068  +alias MOUSEKEYS* LPMOUSEKEYS;
         3069  +
         3070  +struct NONCLIENTMETRICSA {
         3071  + UINT cbSize = this.sizeof;
         3072  + int iBorderWidth;
         3073  + int iScrollWidth;
         3074  + int iScrollHeight;
         3075  + int iCaptionWidth;
         3076  + int iCaptionHeight;
         3077  + LOGFONTA lfCaptionFont;
         3078  + int iSmCaptionWidth;
         3079  + int iSmCaptionHeight;
         3080  + LOGFONTA lfSmCaptionFont;
         3081  + int iMenuWidth;
         3082  + int iMenuHeight;
         3083  + LOGFONTA lfMenuFont;
         3084  + LOGFONTA lfStatusFont;
         3085  + LOGFONTA lfMessageFont;
         3086  +}
         3087  +alias NONCLIENTMETRICSA* LPNONCLIENTMETRICSA;
         3088  +
         3089  +struct NONCLIENTMETRICSW {
         3090  + UINT cbSize = this.sizeof;
         3091  + int iBorderWidth;
         3092  + int iScrollWidth;
         3093  + int iScrollHeight;
         3094  + int iCaptionWidth;
         3095  + int iCaptionHeight;
         3096  + LOGFONTW lfCaptionFont;
         3097  + int iSmCaptionWidth;
         3098  + int iSmCaptionHeight;
         3099  + LOGFONTW lfSmCaptionFont;
         3100  + int iMenuWidth;
         3101  + int iMenuHeight;
         3102  + LOGFONTW lfMenuFont;
         3103  + LOGFONTW lfStatusFont;
         3104  + LOGFONTW lfMessageFont;
         3105  +}
         3106  +alias NONCLIENTMETRICSW* LPNONCLIENTMETRICSW;
         3107  +
         3108  +struct SERIALKEYSA {
         3109  + UINT cbSize = this.sizeof;
         3110  + DWORD dwFlags;
         3111  + LPSTR lpszActivePort;
         3112  + LPSTR lpszPort;
         3113  + UINT iBaudRate;
         3114  + UINT iPortState;
         3115  + UINT iActive;
         3116  +}
         3117  +alias SERIALKEYSA* LPSERIALKEYSA;
         3118  +
         3119  +struct SERIALKEYSW {
         3120  + UINT cbSize = this.sizeof;
         3121  + DWORD dwFlags;
         3122  + LPWSTR lpszActivePort;
         3123  + LPWSTR lpszPort;
         3124  + UINT iBaudRate;
         3125  + UINT iPortState;
         3126  + UINT iActive;
         3127  +}
         3128  +alias SERIALKEYSW* LPSERIALKEYSW;
         3129  +
         3130  +struct SOUNDSENTRYA {
         3131  + UINT cbSize = this.sizeof;
         3132  + DWORD dwFlags;
         3133  + DWORD iFSTextEffect;
         3134  + DWORD iFSTextEffectMSec;
         3135  + DWORD iFSTextEffectColorBits;
         3136  + DWORD iFSGrafEffect;
         3137  + DWORD iFSGrafEffectMSec;
         3138  + DWORD iFSGrafEffectColor;
         3139  + DWORD iWindowsEffect;
         3140  + DWORD iWindowsEffectMSec;
         3141  + LPSTR lpszWindowsEffectDLL;
         3142  + DWORD iWindowsEffectOrdinal;
         3143  +}
         3144  +alias SOUNDSENTRYA* LPSOUNDSENTRYA;
         3145  +
         3146  +struct SOUNDSENTRYW {
         3147  + UINT cbSize = this.sizeof;
         3148  + DWORD dwFlags;
         3149  + DWORD iFSTextEffect;
         3150  + DWORD iFSTextEffectMSec;
         3151  + DWORD iFSTextEffectColorBits;
         3152  + DWORD iFSGrafEffect;
         3153  + DWORD iFSGrafEffectMSec;
         3154  + DWORD iFSGrafEffectColor;
         3155  + DWORD iWindowsEffect;
         3156  + DWORD iWindowsEffectMSec;
         3157  + LPWSTR lpszWindowsEffectDLL;
         3158  + DWORD iWindowsEffectOrdinal;
         3159  +}
         3160  +alias SOUNDSENTRYW* LPSOUNDSENTRYW;
         3161  +
         3162  +struct STICKYKEYS {
         3163  + DWORD cbSize = this.sizeof;
         3164  + DWORD dwFlags;
         3165  +}
         3166  +alias STICKYKEYS* LPSTICKYKEYS;
         3167  +
         3168  +struct TOGGLEKEYS {
         3169  + DWORD cbSize = this.sizeof;
         3170  + DWORD dwFlags;
         3171  +}
         3172  +
         3173  +struct MOUSEHOOKSTRUCT {
         3174  + POINT pt;
         3175  + HWND hwnd;
         3176  + UINT wHitTestCode;
         3177  + DWORD dwExtraInfo;
         3178  +}
         3179  +alias MOUSEHOOKSTRUCT* LPMOUSEHOOKSTRUCT, PMOUSEHOOKSTRUCT;
         3180  +
         3181  +struct TRACKMOUSEEVENT {
         3182  + DWORD cbSize = this.sizeof;
         3183  + DWORD dwFlags;
         3184  + HWND  hwndTrack;
         3185  + DWORD dwHoverTime;
         3186  +}
         3187  +alias TRACKMOUSEEVENT* LPTRACKMOUSEEVENT;
         3188  +
         3189  +struct TPMPARAMS {
         3190  + UINT cbSize = this.sizeof;
         3191  + RECT rcExclude;
         3192  +}
         3193  +alias TPMPARAMS* LPTPMPARAMS;
         3194  +
         3195  +struct EVENTMSG {
         3196  + UINT message;
         3197  + UINT paramL;
         3198  + UINT paramH;
         3199  + DWORD time;
         3200  + HWND hwnd;
         3201  +}
         3202  +alias EVENTMSG* PEVENTMSGMSG, LPEVENTMSGMSG, PEVENTMSG, LPEVENTMSG;
         3203  +
         3204  +struct WINDOWPOS {
         3205  + HWND hwnd;
         3206  + HWND hwndInsertAfter;
         3207  + int x;
         3208  + int y;
         3209  + int cx;
         3210  + int cy;
         3211  + UINT flags;
         3212  +}
         3213  +alias WINDOWPOS* PWINDOWPOS, LPWINDOWPOS;
         3214  +
         3215  +struct NCCALCSIZE_PARAMS {
         3216  + RECT rgrc[3];
         3217  + PWINDOWPOS lppos;
         3218  +}
         3219  +alias NCCALCSIZE_PARAMS* LPNCCALCSIZE_PARAMS;
         3220  +
         3221  +struct MDICREATESTRUCTA {
         3222  + LPCSTR szClass;
         3223  + LPCSTR szTitle;
         3224  + HANDLE hOwner;
         3225  + int x;
         3226  + int y;
         3227  + int cx;
         3228  + int cy;
         3229  + DWORD style;
         3230  + LPARAM lParam;
         3231  +}
         3232  +alias MDICREATESTRUCTA* LPMDICREATESTRUCTA;
         3233  +
         3234  +struct MDICREATESTRUCTW {
         3235  + LPCWSTR szClass;
         3236  + LPCWSTR szTitle;
         3237  + HANDLE hOwner;
         3238  + int x;
         3239  + int y;
         3240  + int cx;
         3241  + int cy;
         3242  + DWORD style;
         3243  + LPARAM lParam;
         3244  +}
         3245  +alias MDICREATESTRUCTW* LPMDICREATESTRUCTW;
         3246  +
         3247  +struct MINMAXINFO {
         3248  + POINT ptReserved;
         3249  + POINT ptMaxSize;
         3250  + POINT ptMaxPosition;
         3251  + POINT ptMinTrackSize;
         3252  + POINT ptMaxTrackSize;
         3253  +}
         3254  +alias MINMAXINFO* PMINMAXINFO, LPMINMAXINFO;
         3255  +
         3256  +struct MDINEXTMENU {
         3257  + HMENU hmenuIn;
         3258  + HMENU hmenuNext;
         3259  + HWND hwndNext;
         3260  +}
         3261  +alias MDINEXTMENU* PMDINEXTMENU, LPMDINEXTMENU;
         3262  +
         3263  +struct MEASUREITEMSTRUCT {
         3264  + UINT CtlType;
         3265  + UINT CtlID;
         3266  + UINT itemID;
         3267  + UINT itemWidth;
         3268  + UINT itemHeight;
         3269  + DWORD itemData;
         3270  +}
         3271  +alias MEASUREITEMSTRUCT* PMEASUREITEMSTRUCT, LPMEASUREITEMSTRUCT;
         3272  +
         3273  +struct DROPSTRUCT {
         3274  + HWND hwndSource;
         3275  + HWND hwndSink;
         3276  + DWORD wFmt;
         3277  + DWORD dwData;
         3278  + POINT ptDrop;
         3279  + DWORD dwControlData;
         3280  +}
         3281  +alias DROPSTRUCT* PDROPSTRUCT, LPDROPSTRUCT;
         3282  +
         3283  +alias DWORD HELPPOLY;
         3284  +
         3285  +struct MULTIKEYHELPA {
         3286  + DWORD mkSize;
         3287  + CHAR mkKeylist;
         3288  + CHAR szKeyphrase[1];
         3289  +}
         3290  +alias MULTIKEYHELPA* PMULTIKEYHELPA, LPMULTIKEYHELPA;
         3291  +
         3292  +struct MULTIKEYHELPW {
         3293  + DWORD mkSize;
         3294  + WCHAR mkKeylist;
         3295  + WCHAR szKeyphrase[1];
         3296  +}
         3297  +alias MULTIKEYHELPW* PMULTIKEYHELPW, LPMULTIKEYHELPW;
         3298  +
         3299  +struct HELPWININFOA {
         3300  + int wStructSize;
         3301  + int x;
         3302  + int y;
         3303  + int dx;
         3304  + int dy;
         3305  + int wMax;
         3306  + CHAR rgchMember[2];
         3307  +}
         3308  +alias HELPWININFOA* PHELPWININFOA, LPHELPWININFOA;
         3309  +
         3310  +struct HELPWININFOW {
         3311  + int wStructSize;
         3312  + int x;
         3313  + int y;
         3314  + int dx;
         3315  + int dy;
         3316  + int wMax;
         3317  + WCHAR rgchMember[2];
         3318  +}
         3319  +alias HELPWININFOW* PHELPWININFOW, LPHELPWININFOW;
         3320  +
         3321  +struct STYLESTRUCT {
         3322  + DWORD styleOld;
         3323  + DWORD styleNew;
         3324  +}
         3325  +alias STYLESTRUCT* LPSTYLESTRUCT;
         3326  +
         3327  +struct ALTTABINFO {
         3328  + DWORD cbSize = this.sizeof;
         3329  + int   cItems;
         3330  + int   cColumns;
         3331  + int   cRows;
         3332  + int   iColFocus;
         3333  + int   iRowFocus;
         3334  + int   cxItem;
         3335  + int   cyItem;
         3336  + POINT ptStart;
         3337  +}
         3338  +alias ALTTABINFO* PALTTABINFO, LPALTTABINFO;
         3339  +
         3340  +struct COMBOBOXINFO {
         3341  + DWORD cbSize = this.sizeof;
         3342  + RECT rcItem;
         3343  + RECT rcButton;
         3344  + DWORD stateButton;
         3345  + HWND hwndCombo;
         3346  + HWND hwndItem;
         3347  + HWND hwndList;
         3348  +}
         3349  +alias COMBOBOXINFO* PCOMBOBOXINFO, LPCOMBOBOXINFO;
         3350  +
         3351  +struct CURSORINFO {
         3352  + DWORD cbSize = this.sizeof;
         3353  + DWORD flags;
         3354  + HCURSOR hCursor;
         3355  + POINT ptScreenPos;
         3356  +}
         3357  +alias CURSORINFO* PCURSORINFO, LPCURSORINFO;
         3358  +
         3359  +struct MENUBARINFO {
         3360  + DWORD cbSize = this.sizeof;
         3361  + RECT  rcBar;
         3362  + HMENU hMenu;
         3363  + HWND  hwndMenu;
         3364  + byte bf_; // Simulated bitfield
         3365  +// BOOL  fBarFocused:1;
         3366  +// BOOL  fFocused:1;
         3367  + bool fBarFocused() { return (bf_ & 1) == 1; }
         3368  + bool fFocused() { return (bf_ & 2) == 2; }
         3369  + void fBarFocused(bool b) { bf_ = cast(byte)((bf_ & 0xFE) | b); }
         3370  + void fFocused(bool b) { bf_ = cast(byte)(b ? (bf_ | 2) : bf_ & 0xFD); }
         3371  +}
         3372  +alias MENUBARINFO* PMENUBARINFO;
         3373  +
         3374  +struct MENUINFO {
         3375  + DWORD cbSize = this.sizeof;
         3376  + DWORD fMask;
         3377  + DWORD dwStyle;
         3378  + UINT cyMax;
         3379  + HBRUSH  hbrBack;
         3380  + DWORD   dwContextHelpID;
         3381  + ULONG_PTR dwMenuData;
         3382  +}
         3383  +alias MENUINFO*       LPMENUINFO;
         3384  +alias CPtr!(MENUINFO) LPCMENUINFO;
         3385  +
         3386  +
         3387  +const CCHILDREN_SCROLLBAR=5;
         3388  +
         3389  +struct SCROLLBARINFO {
         3390  + DWORD cbSize = this.sizeof;
         3391  + RECT  rcScrollBar;
         3392  + int   dxyLineButton;
         3393  + int   xyThumbTop;
         3394  + int   xyThumbBottom;
         3395  + int   reserved;
         3396  + DWORD rgstate[CCHILDREN_SCROLLBAR+1];
         3397  +}
         3398  +alias SCROLLBARINFO* PSCROLLBARINFO, LPSCROLLBARINFO;
         3399  +
         3400  +const CCHILDREN_TITLEBAR=5;
         3401  +
         3402  +struct TITLEBARINFO {
         3403  + DWORD cbSize = TITLEBARINFO.sizeof;
         3404  + RECT  rcTitleBar;
         3405  + DWORD[CCHILDREN_TITLEBAR+1] rgstate;
         3406  +}
         3407  +alias TITLEBARINFO* PTITLEBARINFO, LPTITLEBARINFO;
         3408  +
         3409  +struct WINDOWINFO {
         3410  + DWORD cbSize = WINDOWINFO.sizeof;
         3411  + RECT  rcWindow;
         3412  + RECT  rcClient;
         3413  + DWORD dwStyle;
         3414  + DWORD dwExStyle;
         3415  + DWORD dwWindowStatus;
         3416  + UINT  cxWindowBorders;
         3417  + UINT  cyWindowBorders;
         3418  + ATOM  atomWindowType;
         3419  + WORD  wCreatorVersion;
         3420  +}
         3421  +alias WINDOWINFO* PWINDOWINFO, LPWINDOWINFO;
         3422  +
         3423  +struct LASTINPUTINFO {
         3424  + UINT cbSize = this.sizeof;
         3425  + DWORD dwTime;
         3426  +}
         3427  +alias LASTINPUTINFO* PLASTINPUTINFO;
         3428  +
         3429  +struct MONITORINFO {
         3430  + DWORD cbSize = this.sizeof;
         3431  + RECT rcMonitor;
         3432  + RECT rcWork;
         3433  + DWORD dwFlags;
         3434  +}
         3435  +alias MONITORINFO* LPMONITORINFO;
         3436  +
         3437  +const CCHDEVICENAME=32;
         3438  +
         3439  +struct MONITORINFOEXA {
         3440  + DWORD cbSize = MONITORINFOEXA.sizeof;
         3441  + RECT  rcMonitor;
         3442  + RECT  rcWork;
         3443  + DWORD dwFlags;
         3444  + CHAR[CCHDEVICENAME] szDevice;
         3445  +}
         3446  +alias MONITORINFOEXA* LPMONITORINFOEXA;
         3447  +
         3448  +struct MONITORINFOEXW {
         3449  + DWORD cbSize = MONITORINFOEXW.sizeof;
         3450  + RECT  rcMonitor;
         3451  + RECT  rcWork;
         3452  + DWORD dwFlags;
         3453  + WCHAR[CCHDEVICENAME] szDevice;
         3454  +}
         3455  +alias MONITORINFOEXW* LPMONITORINFOEXW;
         3456  +
         3457  +struct KBDLLHOOKSTRUCT {
         3458  + DWORD vkCode;
         3459  + DWORD scanCode;
         3460  + DWORD flags;
         3461  + DWORD time;
         3462  + DWORD dwExtraInfo;
         3463  +}
         3464  +alias KBDLLHOOKSTRUCT* LPKBDLLHOOKSTRUCT, PKBDLLHOOKSTRUCT;
         3465  +
         3466  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
         3467  +
         3468  +struct FLASHWINFO {
         3469  + UINT  cbSize = this.sizeof;
         3470  + HWND  hwnd;
         3471  + DWORD dwFlags;
         3472  + UINT  uCount;
         3473  + DWORD dwTimeout;
         3474  +}
         3475  +alias FLASHWINFO* PFLASHWINFO;
         3476  +
         3477  +}
         3478  +
         3479  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) {
         3480  +
         3481  +struct MOUSEMOVEPOINT {
         3482  + int x;
         3483  + int y;
         3484  + DWORD time;
         3485  + ULONG_PTR dwExtraInfo;
         3486  +}
         3487  +alias MOUSEMOVEPOINT* PMOUSEMOVEPOINT, LPMOUSEMOVEPOINT;
         3488  +}
         3489  +
         3490  +static if (_WIN32_WINNT >= 0x403) {
         3491  +struct MOUSEINPUT {
         3492  + LONG dx;
         3493  + LONG dy;
         3494  + DWORD mouseData;
         3495  + DWORD dwFlags;
         3496  + DWORD time;
         3497  + ULONG_PTR dwExtraInfo;
         3498  +}
         3499  +alias MOUSEINPUT* PMOUSEINPUT;
         3500  +
         3501  +struct KEYBDINPUT {
         3502  + WORD wVk;
         3503  + WORD wScan;
         3504  + DWORD dwFlags;
         3505  + DWORD time;
         3506  + ULONG_PTR dwExtraInfo;
         3507  +}
         3508  +alias KEYBDINPUT* PKEYBDINPUT;
         3509  +
         3510  +struct HARDWAREINPUT {
         3511  + DWORD uMsg;
         3512  + WORD wParamL;
         3513  + WORD wParamH;
         3514  +}
         3515  +alias HARDWAREINPUT* PHARDWAREINPUT;
         3516  +
         3517  +struct INPUT {
         3518  + DWORD type;
         3519  + union {
         3520  +  MOUSEINPUT mi;
         3521  +  KEYBDINPUT ki;
         3522  +  HARDWAREINPUT hi;
         3523  + }
         3524  +}
         3525  +alias INPUT* PINPUT, LPINPUT;
         3526  +}// (_WIN32_WINNT >= 0x403)
         3527  +
         3528  +static if (WINVER >= 0x500) {
         3529  +struct GUITHREADINFO {
         3530  + DWORD cbSize = this.sizeof;
         3531  + DWORD flags;
         3532  + HWND hwndActive;
         3533  + HWND hwndFocus;
         3534  + HWND hwndCapture;
         3535  + HWND hwndMenuOwner;
         3536  + HWND hwndMoveSize;
         3537  + HWND hwndCaret;
         3538  + RECT rcCaret;
         3539  +}
         3540  +alias GUITHREADINFO* PGUITHREADINFO, LPGUITHREADINFO;
         3541  +extern (Windows) {
         3542  +alias void function (HWINEVENTHOOK, DWORD, HWND, LONG, LONG, DWORD, DWORD) WINEVENTPROC;
         3543  +}
         3544  +
         3545  +}// (WINVER >= 0x500)
         3546  +
         3547  +static if (_WIN32_WINNT >= 0x501) {
         3548  +struct BSMINFO {
         3549  + UINT  cbSize = this.sizeof;
         3550  + HDESK hdesk;
         3551  + HWND  hwnd;
         3552  + LUID  luid;
         3553  +}
         3554  +alias BSMINFO* PBSMINFO;
         3555  +
         3556  +alias HANDLE HRAWINPUT;
         3557  +
         3558  +struct RAWINPUTHEADER {
         3559  + DWORD dwType;
         3560  + DWORD dwSize;
         3561  + HANDLE hDevice;
         3562  + WPARAM wParam;
         3563  +}
         3564  +alias RAWINPUTHEADER* PRAWINPUTHEADER;
         3565  +
         3566  +struct RAWMOUSE {
         3567  + USHORT usFlags;
         3568  + union {
         3569  +  ULONG ulButtons;
         3570  +  struct {
         3571  +   USHORT usButtonFlags;
         3572  +   USHORT usButtonData;
         3573  +  }
         3574  + }
         3575  + ULONG ulRawButtons;
         3576  + LONG lLastX;
         3577  + LONG lLastY;
         3578  + ULONG ulExtraInformation;
         3579  +}
         3580  +alias RAWMOUSE* PRAWMOUSE, LPRAWMOUSE;
         3581  +
         3582  +struct RAWKEYBOARD {
         3583  + USHORT MakeCode;
         3584  + USHORT Flags;
         3585  + USHORT Reserved;
         3586  + USHORT VKey;
         3587  + UINT Message;
         3588  + ULONG ExtraInformation;
         3589  +}
         3590  +alias RAWKEYBOARD* PRAWKEYBOARD, LPRAWKEYBOARD;
         3591  +
         3592  +struct RAWHID {
         3593  + DWORD dwSizeHid;
         3594  + DWORD dwCount;
         3595  + BYTE bRawData;
         3596  +}
         3597  +alias RAWHID* PRAWHID, LPRAWHID;
         3598  +
         3599  +struct RAWINPUT {
         3600  + RAWINPUTHEADER header;
         3601  + union _data {
         3602  +  RAWMOUSE    mouse;
         3603  +  RAWKEYBOARD keyboard;
         3604  +  RAWHID      hid;
         3605  + }
         3606  + _data data;
         3607  +}
         3608  +alias RAWINPUT* PRAWINPUT, LPRAWINPUT;
         3609  +
         3610  +struct RAWINPUTDEVICE {
         3611  + USHORT usUsagePage;
         3612  + USHORT usUsage;
         3613  + DWORD dwFlags;
         3614  + HWND hwndTarget;
         3615  +}
         3616  +alias RAWINPUTDEVICE*       PRAWINPUTDEVICE, LPRAWINPUTDEVICE;
         3617  +alias CPtr!(RAWINPUTDEVICE) PCRAWINPUTDEVICE;
         3618  +
         3619  +struct RAWINPUTDEVICELIST {
         3620  + HANDLE hDevice;
         3621  + DWORD dwType;
         3622  +}
         3623  +alias RAWINPUTDEVICELIST* PRAWINPUTDEVICELIST;
         3624  +
         3625  +struct RID_DEVICE_INFO_MOUSE {
         3626  + DWORD dwId;
         3627  + DWORD dwNumberOfButtons;
         3628  + DWORD dwSampleRate;
         3629  + BOOL  fHasHorizontalWheel;
         3630  +}
         3631  +
         3632  +struct RID_DEVICE_INFO_KEYBOARD {
         3633  + DWORD dwType;
         3634  + DWORD dwSubType;
         3635  + DWORD dwKeyboardMode;
         3636  + DWORD dwNumberOfFunctionKeys;
         3637  + DWORD dwNumberOfIndicators;
         3638  + DWORD dwNumberOfKeysTotal;
         3639  +}
         3640  +
         3641  +struct RID_DEVICE_INFO_HID {
         3642  + DWORD dwVendorId;
         3643  + DWORD dwProductId;
         3644  + DWORD dwVersionNumber;
         3645  + USHORT usUsagePage;
         3646  + USHORT usUsage;
         3647  +}
         3648  +
         3649  +struct RID_DEVICE_INFO {
         3650  + DWORD cbSize = this.sizeof;
         3651  + DWORD dwType;
         3652  + union {
         3653  +  RID_DEVICE_INFO_MOUSE mouse;
         3654  +  RID_DEVICE_INFO_KEYBOARD keyboard;
         3655  +  RID_DEVICE_INFO_HID hid;
         3656  + }
         3657  +}
         3658  +}// (_WIN32_WINNT >= 0x501)
         3659  +
         3660  +struct MSLLHOOKSTRUCT {
         3661  + POINT pt;
         3662  + DWORD mouseData;
         3663  + DWORD flags;
         3664  + DWORD time;
         3665  + ULONG_PTR dwExtraInfo;
         3666  +}
         3667  +alias MSLLHOOKSTRUCT* PMSLLHOOKSTRUCT;
  3604   3668   
  3605   3669   alias CharToOemA AnsiToOem;
  3606   3670   alias OemToCharA OemToAnsi;
  3607   3671   alias CharToOemBuffA AnsiToOemBuff;
  3608   3672   alias OemToCharBuffA OemToAnsiBuff;
  3609   3673   alias CharUpperA AnsiUpper;
  3610   3674   alias CharUpperBuffA AnsiUpperBuff;
  3611   3675   alias CharLowerA AnsiLower;
  3612   3676   alias CharLowerBuffA AnsiLowerBuff;
  3613   3677   alias CharNextA AnsiNext;
  3614   3678   alias CharPrevA AnsiPrev;
  3615   3679   
  3616         -// #ifndef  NOLANGUAGE
  3617         -
  3618         -extern(Windows) export BOOL IsCharAlphaA(
  3619         -  CHAR ch);
  3620         -extern(Windows) export BOOL IsCharAlphaW(
  3621         -  WCHAR ch);
  3622         -// #ifdef UNICODE
  3623         -alias IsCharAlphaW IsCharAlpha;
  3624         -// #else
  3625         -// #...
  3626         -// #endif // !UNICODE
  3627         -
  3628         -extern(Windows) export BOOL IsCharAlphaNumericA(
  3629         -  CHAR ch);
  3630         -extern(Windows) export BOOL IsCharAlphaNumericW(
  3631         -  WCHAR ch);
  3632         -// #ifdef UNICODE
  3633         -alias IsCharAlphaNumericW IsCharAlphaNumeric;
  3634         -// #else
  3635         -// #...
  3636         -// #endif // !UNICODE
  3637         -
  3638         -extern(Windows) export BOOL IsCharUpperA(
  3639         -  CHAR ch);
  3640         -extern(Windows) export BOOL IsCharUpperW(
  3641         -  WCHAR ch);
  3642         -// #ifdef UNICODE
  3643         -alias IsCharUpperW IsCharUpper;
  3644         -// #else
  3645         -// #...
  3646         -// #endif // !UNICODE
  3647         -
  3648         -extern(Windows) export BOOL IsCharLowerA(
  3649         -  CHAR ch);
  3650         -extern(Windows) export BOOL IsCharLowerW(
  3651         -  WCHAR ch);
  3652         -// #ifdef UNICODE
  3653         -alias IsCharLowerW IsCharLower;
  3654         -// #else
  3655         -// #...
  3656         -// #endif // !UNICODE
  3657         -
  3658         -// #endif  /* !NOLANGUAGE */
  3659         -
  3660         -extern(Windows) export HWND SetFocus(
  3661         -  HWND hWnd);
  3662         -
  3663         -extern(Windows) export HWND GetActiveWindow();
  3664         -
  3665         -extern(Windows) export HWND GetFocus();
  3666         -
  3667         -extern(Windows) export UINT GetKBCodePage();
  3668         -
  3669         -extern(Windows) export SHORT GetKeyState(
  3670         -  int nVirtKey);
  3671         -
  3672         -extern(Windows) export SHORT GetAsyncKeyState(
  3673         -  int vKey);
  3674         -
  3675         -extern(Windows) export BOOL GetKeyboardState(
  3676         -  PBYTE lpKeyState);
  3677         -
  3678         -extern(Windows) export BOOL SetKeyboardState(
  3679         -  LPBYTE lpKeyState);
  3680         -
  3681         -extern(Windows) export int GetKeyNameTextA(
  3682         -  LONG lParam,
  3683         -  LPSTR lpString,
  3684         -  int nSize);
  3685         -extern(Windows) export int GetKeyNameTextW(
  3686         -  LONG lParam,
  3687         -  LPWSTR lpString,
  3688         -  int nSize);
  3689         -// #ifdef UNICODE
  3690         -alias GetKeyNameTextW GetKeyNameText;
  3691         -// #else
  3692         -// #...
  3693         -// #endif // !UNICODE
  3694         -
  3695         -extern(Windows) export int GetKeyboardType(
  3696         -  int nTypeFlag);
  3697         -
  3698         -extern(Windows) export int ToAscii(
  3699         -  UINT uVirtKey,
  3700         -  UINT uScanCode,
  3701         -  BYTE *lpKeyState,
  3702         -  LPWORD lpChar,
  3703         -  UINT uFlags);
         3680  +alias MAKELONG MAKEWPARAM;
         3681  +alias MAKELONG MAKELPARAM;
         3682  +alias MAKELONG MAKELRESULT;
         3683  +
         3684  +//MACRO #define POINTSTOPOINT(p, ps) { (p).x=LOWORD(*(DWORD* )&ps); (p).y=HIWORD(*(DWORD* )&ps); }
         3685  +//MACRO #define POINTTOPOINTS(p) ((POINTS)MAKELONG((p).x, (p).y))
         3686  +
         3687  +extern (Windows) {
         3688  +
         3689  +HKL ActivateKeyboardLayout(HKL, UINT);
         3690  +BOOL AdjustWindowRect(LPRECT, DWORD, BOOL);
         3691  +BOOL AdjustWindowRectEx(LPRECT, DWORD, BOOL, DWORD);
         3692  +BOOL AnyPopup();
         3693  +BOOL AppendMenuA(HMENU, UINT, UINT_PTR, LPCSTR);
         3694  +BOOL AppendMenuW(HMENU, UINT, UINT_PTR, LPCWSTR);
         3695  +UINT ArrangeIconicWindows(HWND);
         3696  +BOOL AttachThreadInput(DWORD, DWORD, BOOL);
         3697  +HDWP BeginDeferWindowPos(int);
         3698  +HDC BeginPaint(HWND, LPPAINTSTRUCT);
         3699  +BOOL BringWindowToTop(HWND);
         3700  +BOOL CallMsgFilterA(LPMSG, INT);
         3701  +BOOL CallMsgFilterW(LPMSG, INT);
         3702  +LRESULT CallNextHookEx(HHOOK, int, WPARAM, LPARAM);
         3703  +LRESULT CallWindowProcA(WNDPROC, HWND, UINT, WPARAM, LPARAM);
         3704  +LRESULT CallWindowProcW(WNDPROC, HWND, UINT, WPARAM, LPARAM);
         3705  +WORD CascadeWindows(HWND, UINT, LPCRECT, UINT, CPtr!(HWND));
         3706  +BOOL ChangeClipboardChain(HWND, HWND);
         3707  +
         3708  +LONG ChangeDisplaySettingsA(PDEVMODEA, DWORD);
         3709  +LONG ChangeDisplaySettingsW(PDEVMODEW, DWORD);
         3710  +LONG ChangeDisplaySettingsExA(LPCSTR, LPDEVMODEA, HWND, DWORD, LPVOID);
         3711  +LONG ChangeDisplaySettingsExW(LPCWSTR, LPDEVMODEW, HWND, DWORD, LPVOID);
         3712  +
         3713  +BOOL ChangeMenuA(HMENU, UINT, LPCSTR, UINT, UINT);
         3714  +BOOL ChangeMenuW(HMENU, UINT, LPCWSTR, UINT, UINT);
         3715  +LPSTR CharLowerA(LPSTR);
         3716  +LPWSTR CharLowerW(LPWSTR);
         3717  +DWORD CharLowerBuffA(LPSTR, DWORD);
         3718  +DWORD CharLowerBuffW(LPWSTR, DWORD);
         3719  +LPSTR CharNextA(LPCSTR);
         3720  +LPWSTR CharNextW(LPCWSTR);
         3721  +LPSTR CharNextExA(WORD, LPCSTR, DWORD);
         3722  +LPWSTR CharNextExW(WORD, LPCWSTR, DWORD);
         3723  +LPSTR CharPrevA(LPCSTR, LPCSTR);
         3724  +LPWSTR CharPrevW(LPCWSTR, LPCWSTR);
         3725  +LPSTR CharPrevExA(WORD, LPCSTR, LPCSTR, DWORD);
         3726  +LPWSTR CharPrevExW(WORD, LPCWSTR, LPCWSTR, DWORD);
         3727  +BOOL CharToOemA(LPCSTR, LPSTR);
         3728  +BOOL CharToOemW(LPCWSTR, LPSTR);
         3729  +BOOL CharToOemBuffA(LPCSTR, LPSTR, DWORD);
         3730  +BOOL CharToOemBuffW(LPCWSTR, LPSTR, DWORD);
         3731  +LPSTR CharUpperA(LPSTR);
         3732  +LPWSTR CharUpperW(LPWSTR);
         3733  +DWORD CharUpperBuffA(LPSTR, DWORD);
         3734  +DWORD CharUpperBuffW(LPWSTR, DWORD);
         3735  +BOOL CheckDlgButton(HWND, int, UINT);
         3736  +DWORD CheckMenuItem(HMENU, UINT, UINT);
         3737  +BOOL CheckMenuRadioItem(HMENU, UINT, UINT, UINT, UINT);
         3738  +BOOL CheckRadioButton(HWND, int, int, int);
         3739  +HWND ChildWindowFromPoint(HWND, POINT);
         3740  +HWND ChildWindowFromPointEx(HWND, POINT, UINT);
         3741  +BOOL ClientToScreen(HWND, LPPOINT);
         3742  +BOOL ClipCursor(LPCRECT);
         3743  +BOOL CloseClipboard();
         3744  +BOOL CloseDesktop(HDESK);
         3745  +BOOL CloseWindow(HWND);
         3746  +BOOL CloseWindowStation(HWINSTA);
         3747  +int CopyAcceleratorTableA(HACCEL, LPACCEL, int);
         3748  +int CopyAcceleratorTableW(HACCEL, LPACCEL, int);
         3749  +
         3750  +HICON CopyIcon(HICON);
         3751  +HANDLE CopyImage(HANDLE, UINT, int, int, UINT);
         3752  +BOOL CopyRect(LPRECT, LPCRECT);
         3753  +int CountClipboardFormats();
         3754  +HACCEL CreateAcceleratorTableA(LPACCEL, int);
         3755  +HACCEL CreateAcceleratorTableW(LPACCEL, int);
         3756  +BOOL CreateCaret(HWND, HBITMAP, int, int);
         3757  +HCURSOR CreateCursor(HINSTANCE, int, int, int, int, PCVOID, PCVOID);
         3758  +
         3759  +HDESK CreateDesktopA(LPCSTR, LPCSTR, LPDEVMODEA, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES);
         3760  +HDESK CreateDesktopW(LPCWSTR, LPCWSTR, LPDEVMODEW, DWORD, ACCESS_MASK, LPSECURITY_ATTRIBUTES);
         3761  +
         3762  +HWND CreateDialogParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM);
         3763  +HWND CreateDialogParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM);
         3764  +HWND CreateDialogIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
         3765  +HWND CreateDialogIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
         3766  +
         3767  +HICON CreateIcon(HINSTANCE, int, int, BYTE, BYTE, CPtr!(BYTE), BYTE*);
         3768  +HICON CreateIconFromResource(PBYTE, DWORD, BOOL, DWORD);
         3769  +HICON CreateIconFromResourceEx(PBYTE, DWORD, BOOL, DWORD, int, int, UINT);
         3770  +HICON CreateIconIndirect(PICONINFO);
         3771  +HWND CreateMDIWindowA(LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM);
         3772  +HWND CreateMDIWindowW(LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HINSTANCE, LPARAM);
         3773  +HMENU CreateMenu();
         3774  +HMENU CreatePopupMenu();
         3775  +
         3776  +HWND CreateWindowExA(DWORD, LPCSTR, LPCSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID);
         3777  +HWND CreateWindowExW(DWORD, LPCWSTR, LPCWSTR, DWORD, int, int, int, int, HWND, HMENU, HINSTANCE, LPVOID);
         3778  +
         3779  +HWINSTA CreateWindowStationA(LPSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
         3780  +HWINSTA CreateWindowStationW(LPWSTR, DWORD, DWORD, LPSECURITY_ATTRIBUTES);
         3781  +LRESULT DefDlgProcA(HWND, UINT, WPARAM, LPARAM);
         3782  +LRESULT DefDlgProcW(HWND, UINT, WPARAM, LPARAM);
         3783  +HDWP DeferWindowPos(HDWP, HWND, HWND, int, int, int, int, UINT);
         3784  +LRESULT DefFrameProcA(HWND, HWND, UINT, WPARAM, LPARAM);
         3785  +LRESULT DefFrameProcW(HWND, HWND, UINT, WPARAM, LPARAM);
         3786  +
         3787  +LRESULT DefMDIChildProcA(HWND, UINT, WPARAM, LPARAM);
         3788  +LRESULT DefMDIChildProcW(HWND, UINT, WPARAM, LPARAM);
         3789  +LRESULT DefWindowProcA(HWND, UINT, WPARAM, LPARAM);
         3790  +LRESULT DefWindowProcW(HWND, UINT, WPARAM, LPARAM);
         3791  +BOOL DeleteMenu(HMENU, UINT, UINT);
         3792  +BOOL DeregisterShellHookWindow(HWND);
         3793  +BOOL DestroyAcceleratorTable(HACCEL);
         3794  +BOOL DestroyCaret();
         3795  +BOOL DestroyCursor(HCURSOR);
         3796  +BOOL DestroyIcon(HICON);
         3797  +BOOL DestroyMenu(HMENU);
         3798  +BOOL DestroyWindow(HWND);
         3799  +
         3800  +int DialogBoxParamA(HINSTANCE, LPCSTR, HWND, DLGPROC, LPARAM);
         3801  +int DialogBoxParamW(HINSTANCE, LPCWSTR, HWND, DLGPROC, LPARAM);
         3802  +int DialogBoxIndirectParamA(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
         3803  +int DialogBoxIndirectParamW(HINSTANCE, LPCDLGTEMPLATE, HWND, DLGPROC, LPARAM);
         3804  +
         3805  +} // extern (Windows)
         3806  +
         3807  +HCURSOR CopyCursor(HCURSOR c)
         3808  +{
         3809  + return cast(HCURSOR)CopyIcon(cast(HICON)c);
         3810  +}
         3811  +
         3812  +HWND CreateDialogA(HINSTANCE h, LPCSTR n, HWND w, DLGPROC f)
         3813  +{
         3814  + return CreateDialogParamA(h, n, w, f, 0);
         3815  +}
         3816  +
         3817  +HWND CreateDialogW(HINSTANCE h, LPCWSTR n, HWND w, DLGPROC f)
         3818  +{
         3819  + return CreateDialogParamW(h, n, w, f, 0);
         3820  +}
         3821  +
         3822  +HWND CreateDialogIndirectA(HINSTANCE h, LPCDLGTEMPLATE t, HWND w , DLGPROC f)
         3823  +{
         3824  + return CreateDialogIndirectParamA(h, t, w, f, 0);
         3825  +}
         3826  +
         3827  +HWND CreateDialogIndirectW(HINSTANCE h, LPCDLGTEMPLATE t, HWND w , DLGPROC f)
         3828  +{
         3829  + return CreateDialogIndirectParamW(h, t, w, f, 0);
         3830  +}
         3831  +
         3832  +
         3833  +HWND CreateWindowA(LPCSTR a, LPCSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k)
         3834  +{
         3835  + return CreateWindowExA(0, a, b, c, d, e, f, g, h, i, j, k);
         3836  +}
         3837  +
         3838  +HWND CreateWindowW(LPCWSTR a, LPCWSTR b, DWORD c, int d, int e, int f, int g, HWND h, HMENU i, HINSTANCE j, LPVOID k)
         3839  +{
         3840  + return CreateWindowExW(0, a, b, c, d, e, f, g, h, i, j, k);
         3841  +}
         3842  +
         3843  +int DialogBoxA(HINSTANCE i, LPCSTR t, HWND p, DLGPROC f)
         3844  +{
         3845  + return DialogBoxParamA(i, t, p, f, 0);
         3846  +}
         3847  +
         3848  +int DialogBoxW(HINSTANCE i, LPCWSTR t, HWND p, DLGPROC f)
         3849  +{
         3850  + return DialogBoxParamW(i, t, p, f, 0);
         3851  +}
         3852  +
         3853  +int DialogBoxIndirectA(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f)
         3854  +{
         3855  + return DialogBoxIndirectParamA(i, t, p, f, 0);
         3856  +}
         3857  +
         3858  +int DialogBoxIndirectW(HINSTANCE i, LPCDLGTEMPLATE t, HWND p, DLGPROC f)
         3859  +{
         3860  + return DialogBoxIndirectParamW(i, t, p, f, 0);
         3861  +}
         3862  +
         3863  +BOOL ExitWindows(UINT r, DWORD c)
         3864  +{
         3865  + return ExitWindowsEx(EWX_LOGOFF, 0);
         3866  +}
         3867  +alias GetWindow GetNextWindow;
         3868  +
         3869  +extern (Windows):
         3870  +LONG DispatchMessageA( CPtr!(MSG));
         3871  +LONG DispatchMessageW( CPtr!(MSG));
         3872  +int DlgDirListA(HWND, LPSTR, int, int, UINT);
         3873  +int DlgDirListW(HWND, LPWSTR, int, int, UINT);
         3874  +int DlgDirListComboBoxA(HWND, LPSTR, int, int, UINT);
         3875  +int DlgDirListComboBoxW(HWND, LPWSTR, int, int, UINT);
         3876  +BOOL DlgDirSelectComboBoxExA(HWND, LPSTR, int, int);
         3877  +BOOL DlgDirSelectComboBoxExW(HWND, LPWSTR, int, int);
         3878  +BOOL DlgDirSelectExA(HWND, LPSTR, int, int);
         3879  +BOOL DlgDirSelectExW(HWND, LPWSTR, int, int);
         3880  +BOOL DragDetect(HWND, POINT);
         3881  +DWORD DragObject(HWND, HWND, UINT, DWORD, HCURSOR);
         3882  +BOOL DrawAnimatedRects(HWND, int, LPCRECT, LPCRECT);
         3883  +BOOL DrawCaption(HWND, HDC, LPCRECT, UINT);
         3884  +BOOL DrawEdge(HDC, LPRECT, UINT, UINT);
         3885  +BOOL DrawFocusRect(HDC, LPCRECT);
         3886  +BOOL DrawFrameControl(HDC, LPRECT, UINT, UINT);
         3887  +BOOL DrawIcon(HDC, int, int, HICON);
         3888  +BOOL DrawIconEx(HDC, int, int, HICON, int, int, UINT, HBRUSH, UINT);
         3889  +BOOL DrawMenuBar(HWND);
         3890  +BOOL DrawStateA(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
         3891  +BOOL DrawStateW(HDC, HBRUSH, DRAWSTATEPROC, LPARAM, WPARAM, int, int, int, int, UINT);
         3892  +int DrawTextA(HDC, LPCSTR, int, LPRECT, UINT);
         3893  +int DrawTextW(HDC, LPCWSTR, int, LPRECT, UINT);
         3894  +int DrawTextExA(HDC, LPSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
         3895  +int DrawTextExW(HDC, LPWSTR, int, LPRECT, UINT, LPDRAWTEXTPARAMS);
         3896  +BOOL EmptyClipboard();
         3897  +BOOL EnableMenuItem(HMENU, UINT, UINT);
         3898  +BOOL EnableScrollBar(HWND, UINT, UINT);
         3899  +BOOL EnableWindow(HWND, BOOL);
         3900  +BOOL EndDeferWindowPos(HDWP);
         3901  +BOOL EndDialog(HWND, int);
         3902  +BOOL EndMenu();
         3903  +BOOL EndPaint(HWND, CPtr!(PAINTSTRUCT));
         3904  +BOOL EnumChildWindows(HWND, ENUMWINDOWSPROC, LPARAM);
         3905  +UINT EnumClipboardFormats(UINT);
         3906  +BOOL EnumDesktopsA(HWINSTA, DESKTOPENUMPROCA, LPARAM);
         3907  +BOOL EnumDesktopsW(HWINSTA, DESKTOPENUMPROCW, LPARAM);
         3908  +BOOL EnumDesktopWindows(HDESK, ENUMWINDOWSPROC, LPARAM);
         3909  +BOOL EnumDisplaySettingsA(LPCSTR, DWORD, PDEVMODEA);
         3910  +BOOL EnumDisplaySettingsW(LPCWSTR, DWORD, PDEVMODEW);
         3911  +
         3912  +BOOL EnumDisplayDevicesA(LPCSTR, DWORD, PDISPLAY_DEVICEA, DWORD);
         3913  +BOOL EnumDisplayDevicesW(LPCWSTR, DWORD, PDISPLAY_DEVICEW, DWORD);
         3914  +
         3915  +int EnumPropsA(HWND, PROPENUMPROCA);
         3916  +int EnumPropsW(HWND, PROPENUMPROCW);
         3917  +int EnumPropsExA(HWND, PROPENUMPROCEXA, LPARAM);
         3918  +int EnumPropsExW(HWND, PROPENUMPROCEXW, LPARAM);
         3919  +
         3920  +BOOL EnumThreadWindows(DWORD, WNDENUMPROC, LPARAM);
         3921  +BOOL EnumWindows(WNDENUMPROC, LPARAM);
         3922  +BOOL EnumWindowStationsA(WINSTAENUMPROCA, LPARAM);
         3923  +BOOL EnumWindowStationsW(WINSTAENUMPROCW, LPARAM);
         3924  +BOOL EqualRect(LPCRECT, LPCRECT);
         3925  +
         3926  +BOOL ExitWindowsEx(UINT, DWORD);
         3927  +HWND FindWindowA(LPCSTR, LPCSTR);
         3928  +HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR);
         3929  +HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR);
         3930  +HWND FindWindowW(LPCWSTR, LPCWSTR);
         3931  +BOOL FlashWindow(HWND, BOOL);
         3932  +
         3933  +int FrameRect(HDC, LPCRECT, HBRUSH);
         3934  +BOOL FrameRgn(HDC, HRGN, HBRUSH, int, int);
         3935  +HWND GetActiveWindow();
         3936  +HWND GetAncestor(HWND, UINT);
         3937  +SHORT GetAsyncKeyState(int);
         3938  +HWND GetCapture();
         3939  +UINT GetCaretBlinkTime();
         3940  +BOOL GetCaretPos(LPPOINT);
         3941  +BOOL GetClassInfoA(HINSTANCE, LPCSTR, LPWNDCLASSA);
         3942  +BOOL GetClassInfoExA(HINSTANCE, LPCSTR, LPWNDCLASSEXA);
         3943  +BOOL GetClassInfoW(HINSTANCE, LPCWSTR, LPWNDCLASSW);
         3944  +BOOL GetClassInfoExW(HINSTANCE, LPCWSTR, LPWNDCLASSEXW);
         3945  +DWORD GetClassLongA(HWND, int);
         3946  +DWORD GetClassLongW(HWND, int);
         3947  +int GetClassNameA(HWND, LPSTR, int);
         3948  +int GetClassNameW(HWND, LPWSTR, int);
         3949  +WORD GetClassWord(HWND, int);
         3950  +BOOL GetClientRect(HWND, LPRECT);
         3951  +HANDLE GetClipboardData(UINT);
         3952  +int GetClipboardFormatNameA(UINT, LPSTR, int);
         3953  +int GetClipboardFormatNameW(UINT, LPWSTR, int);
         3954  +HWND GetClipboardOwner();
         3955  +HWND GetClipboardViewer();
         3956  +BOOL GetClipCursor(LPRECT);
         3957  +BOOL GetCursorPos(LPPOINT);
         3958  +HDC GetDC(HWND);
         3959  +HDC GetDCEx(HWND, HRGN, DWORD);
         3960  +HWND GetDesktopWindow();
         3961  +int GetDialogBaseUnits();
         3962  +int GetDlgCtrlID(HWND);
         3963  +HWND GetDlgItem(HWND, int);
         3964  +UINT GetDlgItemInt(HWND, int, PBOOL, BOOL);
         3965  +UINT GetDlgItemTextA(HWND, int, LPSTR, int);
         3966  +UINT GetDlgItemTextW(HWND, int, LPWSTR, int);
         3967  +UINT GetDoubleClickTime();
         3968  +HWND GetFocus();
         3969  +HWND GetForegroundWindow();
         3970  +
         3971  +BOOL GetIconInfo(HICON, PICONINFO);
         3972  +BOOL GetInputState();
         3973  +UINT GetKBCodePage();
         3974  +HKL GetKeyboardLayout(DWORD);
         3975  +UINT GetKeyboardLayoutList(int, HKL*);
         3976  +BOOL GetKeyboardLayoutNameA(LPSTR);
         3977  +BOOL GetKeyboardLayoutNameW(LPWSTR);
         3978  +BOOL GetKeyboardState(PBYTE);
         3979  +int GetKeyboardType(int);
         3980  +int GetKeyNameTextA(LONG, LPSTR, int);
         3981  +int GetKeyNameTextW(LONG, LPWSTR, int);
         3982  +SHORT GetKeyState(int);
         3983  +HWND GetLastActivePopup(HWND);
         3984  +HMENU GetMenu(HWND);
         3985  +LONG GetMenuCheckMarkDimensions();
         3986  +DWORD GetMenuContextHelpId(HMENU);
         3987  +UINT GetMenuDefaultItem(HMENU, UINT, UINT);
         3988  +int GetMenuItemCount(HMENU);
         3989  +UINT GetMenuItemID(HMENU, int);
         3990  +BOOL GetMenuItemInfoA(HMENU, UINT, BOOL, LPMENUITEMINFOA);
         3991  +BOOL GetMenuItemInfoW(HMENU, UINT, BOOL, LPMENUITEMINFOW);
         3992  +BOOL GetMenuItemRect(HWND, HMENU, UINT, LPRECT);
         3993  +UINT GetMenuState(HMENU, UINT, UINT);
         3994  +int GetMenuStringA(HMENU, UINT, LPSTR, int, UINT);
         3995  +int GetMenuStringW(HMENU, UINT, LPWSTR, int, UINT);
         3996  +BOOL GetMessageA(LPMSG, HWND, UINT, UINT);
         3997  +BOOL GetMessageW(LPMSG, HWND, UINT, UINT);
         3998  +LONG GetMessageExtraInfo();
         3999  +DWORD GetMessagePos();
         4000  +LONG GetMessageTime();
         4001  +
         4002  +HWND GetNextDlgGroupItem(HWND, HWND, BOOL);
         4003  +HWND GetNextDlgTabItem(HWND, HWND, BOOL);
         4004  +
         4005  +HWND GetOpenClipboardWindow();
         4006  +HWND GetParent(HWND);
         4007  +int GetPriorityClipboardFormat(UINT*, int);
         4008  +HANDLE GetPropA(HWND, LPCSTR);
         4009  +HANDLE GetPropW(HWND, LPCWSTR);
         4010  +
         4011  +DWORD GetQueueStatus(UINT);
         4012  +BOOL GetScrollInfo(HWND, int, LPSCROLLINFO);
         4013  +int GetScrollPos(HWND, int);
         4014  +BOOL GetScrollRange(HWND, int, LPINT, LPINT);
         4015  +
         4016  +HMENU GetSubMenu(HMENU, int);
         4017  +DWORD GetSysColor(int);
         4018  +HBRUSH GetSysColorBrush(int);
         4019  +
         4020  +HMENU GetSystemMenu(HWND, BOOL);
         4021  +int GetSystemMetrics(int);
         4022  +DWORD GetTabbedTextExtentA(HDC, LPCSTR, int, int, LPINT);
         4023  +DWORD GetTabbedTextExtentW(HDC, LPCWSTR, int, int, LPINT);
         4024  +LONG GetWindowLongA(HWND, int);
         4025  +LONG GetWindowLongW(HWND, int);
         4026  +
         4027  +HDESK GetThreadDesktop(DWORD);
         4028  +HWND GetTopWindow(HWND);
         4029  +BOOL GetUpdateRect(HWND, LPRECT, BOOL);
         4030  +int GetUpdateRgn(HWND, HRGN, BOOL);
         4031  +BOOL GetUserObjectInformationA(HANDLE, int, PVOID, DWORD, PDWORD);
         4032  +BOOL GetUserObjectInformationW(HANDLE, int, PVOID, DWORD, PDWORD);
         4033  +BOOL GetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR, DWORD, PDWORD);
         4034  +HWND GetWindow(HWND, UINT);
         4035  +DWORD GetWindowContextHelpId(HWND);
         4036  +HDC GetWindowDC(HWND);
         4037  +BOOL GetWindowPlacement(HWND, WINDOWPLACEMENT*);
         4038  +BOOL GetWindowRect(HWND, LPRECT);
         4039  +int GetWindowRgn(HWND, HRGN);
         4040  +int GetWindowTextA(HWND, LPSTR, int);
         4041  +int GetWindowTextLengthA(HWND);
         4042  +int GetWindowTextLengthW(HWND);
         4043  +int GetWindowTextW(HWND, LPWSTR, int);
         4044  +WORD GetWindowWord(HWND, int);
         4045  +BOOL GetAltTabInfoA(HWND, int, PALTTABINFO, LPSTR, UINT);
         4046  +BOOL GetAltTabInfoW(HWND, int, PALTTABINFO, LPWSTR, UINT);
         4047  +BOOL GetComboBoxInfo(HWND, PCOMBOBOXINFO);
         4048  +BOOL GetCursorInfo(PCURSORINFO);
         4049  +BOOL GetLastInputInfo(PLASTINPUTINFO);
         4050  +DWORD GetListBoxInfo(HWND);
         4051  +BOOL GetMenuBarInfo(HWND, LONG, LONG, PMENUBARINFO);
         4052  +BOOL GetMenuInfo(HMENU, LPMENUINFO);
         4053  +BOOL GetScrollBarInfo(HWND, LONG, PSCROLLBARINFO);
         4054  +BOOL GetTitleBarInfo(HWND, PTITLEBARINFO);
         4055  +BOOL GetWindowInfo(HWND, PWINDOWINFO);
         4056  +UINT GetWindowModuleFileNameA(HWND, LPSTR, UINT);
         4057  +UINT GetWindowModuleFileNameW(HWND, LPWSTR, UINT);
         4058  +BOOL GrayStringA(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int);
         4059  +BOOL GrayStringW(HDC, HBRUSH, GRAYSTRINGPROC, LPARAM, int, int, int, int, int);
         4060  +BOOL HideCaret(HWND);
         4061  +BOOL HiliteMenuItem(HWND, HMENU, UINT, UINT);
         4062  +BOOL InflateRect(LPRECT, int, int);
         4063  +BOOL InSendMessage();
         4064  +BOOL InsertMenuA(HMENU, UINT, UINT, UINT, LPCSTR);
         4065  +BOOL InsertMenuW(HMENU, UINT, UINT, UINT, LPCWSTR);
         4066  +BOOL InsertMenuItemA(HMENU, UINT, BOOL, LPCMENUITEMINFOA);
         4067  +BOOL InsertMenuItemW(HMENU, UINT, BOOL, LPCMENUITEMINFOW);
         4068  +INT InternalGetWindowText(HWND, LPWSTR, INT);
         4069  +BOOL IntersectRect(LPRECT, LPCRECT, LPCRECT);
         4070  +BOOL InvalidateRect(HWND, LPCRECT, BOOL);
         4071  +BOOL InvalidateRgn(HWND, HRGN, BOOL);
         4072  +BOOL InvertRect(HDC, LPCRECT);
         4073  +BOOL IsCharAlphaA(CHAR ch);
         4074  +BOOL IsCharAlphaNumericA(CHAR);
         4075  +BOOL IsCharAlphaNumericW(WCHAR);
         4076  +BOOL IsCharAlphaW(WCHAR);
         4077  +BOOL IsCharLowerA(CHAR);
         4078  +BOOL IsCharLowerW(WCHAR);
         4079  +BOOL IsCharUpperA(CHAR);
         4080  +BOOL IsCharUpperW(WCHAR);
         4081  +BOOL IsChild(HWND, HWND);
         4082  +BOOL IsClipboardFormatAvailable(UINT);
         4083  +BOOL IsDialogMessageA(HWND, LPMSG);
         4084  +BOOL IsDialogMessageW(HWND, LPMSG);
         4085  +UINT IsDlgButtonChecked(HWND, int);
         4086  +BOOL IsIconic(HWND);
         4087  +BOOL IsMenu(HMENU);
         4088  +BOOL IsRectEmpty(LPCRECT);
         4089  +BOOL IsWindow(HWND);
         4090  +BOOL IsWindowEnabled(HWND);
         4091  +BOOL IsWindowUnicode(HWND);
         4092  +BOOL IsWindowVisible(HWND);
         4093  +BOOL IsZoomed(HWND);
         4094  +void keybd_event(BYTE, BYTE, DWORD, DWORD);
         4095  +BOOL KillTimer(HWND, UINT);
         4096  +HACCEL LoadAcceleratorsA(HINSTANCE, LPCSTR);
         4097  +HACCEL LoadAcceleratorsW(HINSTANCE, LPCWSTR);
         4098  +HBITMAP LoadBitmapA(HINSTANCE, LPCSTR);
         4099  +HBITMAP LoadBitmapW(HINSTANCE, LPCWSTR);
         4100  +HCURSOR LoadCursorA(HINSTANCE, LPCSTR);
         4101  +HCURSOR LoadCursorFromFileA(LPCSTR);
         4102  +HCURSOR LoadCursorFromFileW(LPCWSTR);
         4103  +HCURSOR LoadCursorW(HINSTANCE, LPCWSTR);
         4104  +HICON LoadIconA(HINSTANCE, LPCSTR);
         4105  +HICON LoadIconW(HINSTANCE, LPCWSTR);
         4106  +HANDLE LoadImageA(HINSTANCE, LPCSTR, UINT, int, int, UINT);
         4107  +HANDLE LoadImageW(HINSTANCE, LPCWSTR, UINT, int, int, UINT);
         4108  +HKL LoadKeyboardLayoutA(LPCSTR, UINT);
         4109  +HKL LoadKeyboardLayoutW(LPCWSTR, UINT);
         4110  +HMENU LoadMenuA(HINSTANCE, LPCSTR);
         4111  +HMENU LoadMenuIndirectA( CPtr!(MENUTEMPLATE));
         4112  +HMENU LoadMenuIndirectW( CPtr!(MENUTEMPLATE));
         4113  +HMENU LoadMenuW(HINSTANCE, LPCWSTR);
         4114  +int LoadStringA(HINSTANCE, UINT, LPSTR, int);
         4115  +int LoadStringW(HINSTANCE, UINT, LPWSTR, int);
         4116  +BOOL LockWindowUpdate(HWND);
         4117  +int LookupIconIdFromDirectory(PBYTE, BOOL);
         4118  +int LookupIconIdFromDirectoryEx(PBYTE, BOOL, int, int, UINT);
         4119  +BOOL MapDialogRect(HWND, LPRECT);
         4120  +UINT MapVirtualKeyA(UINT, UINT);
         4121  +UINT MapVirtualKeyExA(UINT, UINT, HKL);
         4122  +UINT MapVirtualKeyExW(UINT, UINT, HKL);
         4123  +UINT MapVirtualKeyW(UINT, UINT);
         4124  +int MapWindowPoints(HWND, HWND, LPPOINT, UINT);
         4125  +int MenuItemFromPoint(HWND, HMENU, POINT);
         4126  +BOOL MessageBeep(UINT);
         4127  +int MessageBoxA(HWND, LPCSTR, LPCSTR, UINT);
         4128  +int MessageBoxW(HWND, LPCWSTR, LPCWSTR, UINT);
         4129  +int MessageBoxExA(HWND, LPCSTR, LPCSTR, UINT, WORD);
         4130  +int MessageBoxExW(HWND, LPCWSTR, LPCWSTR, UINT, WORD);
         4131  +int MessageBoxIndirectA(CPtr!(MSGBOXPARAMSA));
         4132  +int MessageBoxIndirectW(CPtr!(MSGBOXPARAMSW));
         4133  +BOOL ModifyMenuA(HMENU, UINT, UINT, UINT, LPCSTR);
         4134  +BOOL ModifyMenuW(HMENU, UINT, UINT, UINT, LPCWSTR);
         4135  +void mouse_event(DWORD, DWORD, DWORD, DWORD, ULONG_PTR);
         4136  +BOOL MoveWindow(HWND, int, int, int, int, BOOL);
         4137  +DWORD MsgWaitForMultipleObjects(DWORD, CPtr!(HANDLE), BOOL, DWORD, DWORD);
         4138  +DWORD MsgWaitForMultipleObjectsEx(DWORD, CPtr!(HANDLE), DWORD, DWORD, DWORD);
         4139  +DWORD OemKeyScan(WORD);
         4140  +BOOL OemToCharA(LPCSTR, LPSTR);
         4141  +BOOL OemToCharBuffA(LPCSTR, LPSTR, DWORD);
         4142  +BOOL OemToCharBuffW(LPCSTR, LPWSTR, DWORD);
         4143  +BOOL OemToCharW(LPCSTR, LPWSTR);
         4144  +BOOL OffsetRect(LPRECT, int, int);
         4145  +BOOL OpenClipboard(HWND);
         4146  +HDESK OpenDesktopA(LPSTR, DWORD, BOOL, DWORD);
         4147  +HDESK OpenDesktopW(LPWSTR, DWORD, BOOL, DWORD);
         4148  +BOOL OpenIcon(HWND);
         4149  +HDESK OpenInputDesktop(DWORD, BOOL, DWORD);
         4150  +HWINSTA OpenWindowStationA(LPSTR, BOOL, DWORD);
         4151  +HWINSTA OpenWindowStationW(LPWSTR, BOOL, DWORD);
         4152  +BOOL PaintDesktop(HDC);
         4153  +BOOL PeekMessageA(LPMSG, HWND, UINT, UINT, UINT);
         4154  +BOOL PeekMessageW(LPMSG, HWND, UINT, UINT, UINT);
         4155  +BOOL PostMessageA(HWND, UINT, WPARAM, LPARAM);
         4156  +BOOL PostMessageW(HWND, UINT, WPARAM, LPARAM);
         4157  +void PostQuitMessage(int);
         4158  +BOOL PostThreadMessageA(DWORD, UINT, WPARAM, LPARAM);
         4159  +BOOL PostThreadMessageW(DWORD, UINT, WPARAM, LPARAM);
         4160  +BOOL PtInRect(LPCRECT, POINT);
         4161  +HWND RealChildWindowFromPoint(HWND, POINT);
         4162  +UINT RealGetWindowClassA(HWND, LPSTR, UINT);
         4163  +UINT RealGetWindowClassW(HWND, LPWSTR, UINT);
         4164  +BOOL RedrawWindow(HWND, LPCRECT, HRGN, UINT);
         4165  +ATOM RegisterClassA(CPtr!(WNDCLASSA));
         4166  +ATOM RegisterClassW(CPtr!(WNDCLASSW));
         4167  +ATOM RegisterClassExA(CPtr!(WNDCLASSEXA));
         4168  +ATOM RegisterClassExW(CPtr!(WNDCLASSEXW));
         4169  +UINT RegisterClipboardFormatA(LPCSTR);
         4170  +UINT RegisterClipboardFormatW(LPCWSTR);
         4171  +BOOL RegisterHotKey(HWND, int, UINT, UINT);
         4172  +UINT RegisterWindowMessageA(LPCSTR);
         4173  +UINT RegisterWindowMessageW(LPCWSTR);
         4174  +BOOL ReleaseCapture();
         4175  +int ReleaseDC(HWND, HDC);
         4176  +BOOL RemoveMenu(HMENU, UINT, UINT);
         4177  +HANDLE RemovePropA(HWND, LPCSTR);
         4178  +HANDLE RemovePropW(HWND, LPCWSTR);
         4179  +BOOL ReplyMessage(LRESULT);
         4180  +BOOL ScreenToClient(HWND, LPPOINT);
         4181  +BOOL ScrollDC(HDC, int, int, LPCRECT, LPCRECT, HRGN, LPRECT);
         4182  +BOOL ScrollWindow(HWND, int, int, LPCRECT, LPCRECT);
         4183  +int ScrollWindowEx(HWND, int, int, LPCRECT, LPCRECT, HRGN, LPRECT, UINT);
         4184  +LONG SendDlgItemMessageA(HWND, int, UINT, WPARAM, LPARAM);
         4185  +LONG SendDlgItemMessageW(HWND, int, UINT, WPARAM, LPARAM);
         4186  +LRESULT SendMessageA(HWND, UINT, WPARAM, LPARAM);
         4187  +BOOL SendMessageCallbackA(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, DWORD);
         4188  +BOOL SendMessageCallbackW(HWND, UINT, WPARAM, LPARAM, SENDASYNCPROC, DWORD);
         4189  +LRESULT SendMessageTimeoutA(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD);
         4190  +LRESULT SendMessageTimeoutW(HWND, UINT, WPARAM, LPARAM, UINT, UINT, PDWORD);
         4191  +LRESULT SendMessageW(HWND, UINT, WPARAM, LPARAM);
         4192  +BOOL SendNotifyMessageA(HWND, UINT, WPARAM, LPARAM);
         4193  +BOOL SendNotifyMessageW(HWND, UINT, WPARAM, LPARAM);
         4194  +HWND SetActiveWindow(HWND);
         4195  +HWND SetCapture(HWND hWnd);
         4196  +BOOL SetCaretBlinkTime(UINT);
         4197  +BOOL SetCaretPos(int, int);
         4198  +DWORD SetClassLongA(HWND, int, LONG);
         4199  +DWORD SetClassLongW(HWND, int, LONG);
         4200  +WORD SetClassWord(HWND, int, WORD);
         4201  +HANDLE SetClipboardData(UINT, HANDLE);
         4202  +HWND SetClipboardViewer(HWND);
         4203  +HCURSOR SetCursor(HCURSOR);
         4204  +BOOL SetCursorPos(int, int);
         4205  +void SetDebugErrorLevel(DWORD);
         4206  +BOOL SetDlgItemInt(HWND, int, UINT, BOOL);
         4207  +BOOL SetDlgItemTextA(HWND, int, LPCSTR);
         4208  +BOOL SetDlgItemTextW(HWND, int, LPCWSTR);
         4209  +BOOL SetDoubleClickTime(UINT);
         4210  +HWND SetFocus(HWND);
         4211  +BOOL SetForegroundWindow(HWND);
         4212  +BOOL SetKeyboardState(PBYTE);
         4213  +BOOL SetMenu(HWND, HMENU);
         4214  +BOOL SetMenuContextHelpId(HMENU, DWORD);
         4215  +BOOL SetMenuDefaultItem(HMENU, UINT, UINT);
         4216  +BOOL SetMenuInfo(HMENU, LPCMENUINFO);
         4217  +BOOL SetMenuItemBitmaps(HMENU, UINT, UINT, HBITMAP, HBITMAP);
         4218  +BOOL SetMenuItemInfoA(HMENU, UINT, BOOL, LPCMENUITEMINFOA);
         4219  +BOOL SetMenuItemInfoW( HMENU, UINT, BOOL, LPCMENUITEMINFOW);
         4220  +LPARAM SetMessageExtraInfo(LPARAM);
         4221  +BOOL SetMessageQueue(int);
         4222  +HWND SetParent(HWND, HWND);
         4223  +BOOL SetProcessWindowStation(HWINSTA);
         4224  +BOOL SetPropA(HWND, LPCSTR, HANDLE);
         4225  +BOOL SetPropW(HWND, LPCWSTR, HANDLE);
         4226  +BOOL SetRect(LPRECT, int, int, int, int);
         4227  +BOOL SetRectEmpty(LPRECT);
         4228  +int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL);
         4229  +int SetScrollPos(HWND, int, int, BOOL);
         4230  +BOOL SetScrollRange(HWND, int, int, int, BOOL);
         4231  +BOOL SetSysColors(int, CPtr!(INT) , CPtr!(COLORREF) );
         4232  +BOOL SetSystemCursor(HCURSOR, DWORD);
         4233  +BOOL SetThreadDesktop(HDESK);
         4234  +UINT SetTimer(HWND, UINT, UINT, TIMERPROC);
         4235  +BOOL SetUserObjectInformationA(HANDLE, int, PVOID, DWORD);
         4236  +BOOL SetUserObjectInformationW(HANDLE, int, PVOID, DWORD);
         4237  +BOOL SetUserObjectSecurity(HANDLE, PSECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
         4238  +BOOL SetWindowContextHelpId(HWND, DWORD);
         4239  +LONG SetWindowLongA(HWND, int, LONG);
         4240  +LONG SetWindowLongW(HWND, int, LONG);
         4241  +BOOL SetWindowPlacement(HWND hWnd, CPtr!(WINDOWPLACEMENT));
         4242  +BOOL SetWindowPos(HWND, HWND, int, int, int, int, UINT);
         4243  +int SetWindowRgn(HWND, HRGN, BOOL);
         4244  +HHOOK SetWindowsHookA(int, HOOKPROC);
         4245  +HHOOK SetWindowsHookW(int, HOOKPROC);
         4246  +HHOOK SetWindowsHookExA(int, HOOKPROC, HINSTANCE, DWORD);
         4247  +HHOOK SetWindowsHookExW(int, HOOKPROC, HINSTANCE, DWORD);
         4248  +BOOL SetWindowTextA(HWND, LPCSTR);
         4249  +BOOL SetWindowTextW(HWND, LPCWSTR);
         4250  +WORD SetWindowWord(HWND, int, WORD);
         4251  +BOOL ShowCaret(HWND);
         4252  +int ShowCursor(BOOL);
         4253  +BOOL ShowOwnedPopups(HWND, BOOL);
         4254  +BOOL ShowScrollBar(HWND, int, BOOL);
         4255  +BOOL ShowWindow(HWND, int);
         4256  +BOOL ShowWindowAsync(HWND, int);
         4257  +BOOL SubtractRect(LPRECT, LPCRECT, LPCRECT);
         4258  +BOOL SwapMouseButton(BOOL);
         4259  +BOOL SwitchDesktop(HDESK);
         4260  +BOOL SystemParametersInfoA(UINT, UINT, PVOID, UINT);
         4261  +BOOL SystemParametersInfoW(UINT, UINT, PVOID, UINT);
         4262  +LONG TabbedTextOutA(HDC, int, int, LPCSTR, int, int, LPINT, int);
         4263  +LONG TabbedTextOutW(HDC, int, int, LPCWSTR, int, int, LPINT, int);
         4264  +WORD TileWindows(HWND, UINT, LPCRECT, UINT, CPtr!(HWND) );
         4265  +int ToAscii(UINT, UINT, PBYTE, LPWORD, UINT);
         4266  +int ToAsciiEx(UINT, UINT, PBYTE, LPWORD, UINT, HKL);
         4267  +int ToUnicode(UINT, UINT, PBYTE, LPWSTR, int, UINT);
         4268  +int ToUnicodeEx(UINT, UINT, PBYTE, LPWSTR, int, UINT, HKL);
         4269  +BOOL TrackMouseEvent(LPTRACKMOUSEEVENT);
         4270  +BOOL TrackPopupMenu(HMENU, UINT, int, int, int, HWND, LPCRECT);
         4271  +BOOL TrackPopupMenuEx(HMENU, UINT, int, int, HWND, LPTPMPARAMS);
         4272  +int TranslateAcceleratorA(HWND, HACCEL, LPMSG);
         4273  +int TranslateAcceleratorW(HWND, HACCEL, LPMSG);
         4274  +BOOL TranslateMDISysAccel(HWND, LPMSG);
         4275  +BOOL TranslateMessage( CPtr!(MSG));
         4276  +BOOL UnhookWindowsHook(int, HOOKPROC);
         4277  +BOOL UnhookWindowsHookEx(HHOOK);
         4278  +BOOL UnionRect(LPRECT, LPCRECT, LPCRECT);
         4279  +BOOL UnloadKeyboardLayout(HKL);
         4280  +BOOL UnregisterClassA(LPCSTR, HINSTANCE);
         4281  +BOOL UnregisterClassW(LPCWSTR, HINSTANCE);
         4282  +BOOL UnregisterHotKey(HWND, int);
         4283  +BOOL UpdateWindow(HWND);
         4284  +BOOL ValidateRect(HWND, LPCRECT);
         4285  +BOOL ValidateRgn(HWND, HRGN);
         4286  +SHORT VkKeyScanA(CHAR);
         4287  +SHORT VkKeyScanExA(CHAR, HKL);
         4288  +SHORT VkKeyScanExW(WCHAR, HKL);
         4289  +SHORT VkKeyScanW(WCHAR);
         4290  +DWORD WaitForInputIdle(HANDLE, DWORD);
         4291  +BOOL WaitMessage();
         4292  +HWND WindowFromDC(HDC hDC);
         4293  +HWND WindowFromPoint(POINT);
         4294  +UINT WinExec(LPCSTR, UINT);
         4295  +BOOL WinHelpA(HWND, LPCSTR, UINT, DWORD);
         4296  +BOOL WinHelpW(HWND, LPCWSTR, UINT, DWORD);
         4297  +
         4298  +extern (C) {
         4299  + int wsprintfA(LPSTR, LPCSTR, ...);
         4300  + int wsprintfW(LPWSTR, LPCWSTR, ...);
         4301  +}
         4302  +
         4303  +
         4304  +// These shouldn't be necessary for D.
         4305  +alias char* va_list_;
         4306  +int wvsprintfA(LPSTR, LPCSTR, va_list_ arglist);
         4307  +int wvsprintfW(LPWSTR, LPCWSTR, va_list_ arglist);
         4308  +
         4309  +
         4310  +static if (_WIN32_WINDOWS == 0x400) {
         4311  +// On Win95, there's only one version.
         4312  +int BroadcastSystemMessage(DWORD, LPDWORD, UINT, WPARAM, LPARAM);
         4313  +}
         4314  +static if (_WIN32_WINNT >= 0x400) {
         4315  +int BroadcastSystemMessageA(DWORD, LPDWORD, UINT, WPARAM, LPARAM);
         4316  +int BroadcastSystemMessageW(DWORD, LPDWORD, UINT, WPARAM, LPARAM);
         4317  +}
         4318  +static if (_WIN32_WINNT >= 0x501) {
         4319  +int BroadcastSystemMessageExA(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO);
         4320  +int BroadcastSystemMessageExW(DWORD, LPDWORD, UINT, WPARAM, LPARAM, PBSMINFO);
         4321  +}
         4322  +
         4323  +static if (_WIN32_WINNT >= 0x403) {
         4324  +UINT SendInput(UINT, LPINPUT, int);
         4325  +}
         4326  +static if (_WIN32_WINNT >= 0x500) {
         4327  +BOOL AnimateWindow(HWND, DWORD, DWORD);
         4328  +BOOL EndTask(HWND, BOOL, BOOL);
         4329  +DWORD GetGuiResources(HANDLE, DWORD);
         4330  +HWND GetShellWindow();
         4331  +BOOL GetProcessDefaultLayout(DWORD*);
         4332  +BOOL IsHungAppWindow(HWND);
         4333  +BOOL LockWorkStation();
         4334  +HDEVNOTIFY RegisterDeviceNotificationA(HANDLE, LPVOID, DWORD);
         4335  +HDEVNOTIFY RegisterDeviceNotificationW(HANDLE, LPVOID, DWORD);
         4336  +BOOL SetProcessDefaultLayout(DWORD);
         4337  +void SwitchToThisWindow(HWND, BOOL);
         4338  +BOOL SetLayeredWindowAttributes(HWND, COLORREF, BYTE, DWORD);
         4339  +BOOL UpdateLayeredWindow(HWND, HDC, POINT*, SIZE*, HDC, POINT*, COLORREF, BLENDFUNCTION*, DWORD);
         4340  +BOOL UserHandleGrantAccess(HANDLE, HANDLE, BOOL);
         4341  +}
         4342  +static if (_WIN32_WINNT >= 0x501) {
         4343  +UINT GetRawInputBuffer(PRAWINPUT, PUINT, UINT);
         4344  +UINT GetRawInputData(HRAWINPUT, UINT, LPVOID, PUINT, UINT);
         4345  +UINT GetRawInputDeviceInfoA(HANDLE, UINT, LPVOID, PUINT);
         4346  +UINT GetRawInputDeviceInfoW(HANDLE, UINT, LPVOID, PUINT);
         4347  +UINT GetRawInputDeviceList(PRAWINPUTDEVICELIST, PUINT, UINT);
         4348  +UINT GetRegisteredRawInputDevices(PRAWINPUTDEVICE, PUINT, UINT);
         4349  +LRESULT DefRawInputProc(PRAWINPUT*, INT, UINT);
         4350  +BOOL RegisterRawInputDevices(PCRAWINPUTDEVICE, UINT, UINT);
         4351  +
         4352  +BOOL IsGUIThread(BOOL);
         4353  +BOOL IsWinEventHookInstalled(DWORD);
         4354  +BOOL PrintWindow(HWND, HDC, UINT);
         4355  +BOOL GetLayeredWindowAttributes(HWND, COLORREF*, BYTE*, DWORD*);
         4356  +}
         4357  +static if (WINVER >= 0x410) {
         4358  + BOOL EnumDisplayMonitors(HDC, LPCRECT, MONITORENUMPROC, LPARAM);
         4359  + BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFO);
         4360  + BOOL GetMonitorInfoA(HMONITOR, LPMONITORINFOEXA);
         4361  + BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFO);
         4362  + BOOL GetMonitorInfoW(HMONITOR, LPMONITORINFOEXW);
         4363  + HMONITOR MonitorFromPoint(POINT, DWORD);
         4364  + HMONITOR MonitorFromRect(LPCRECT, DWORD);
         4365  + HMONITOR MonitorFromWindow(HWND, DWORD);
         4366  +}
         4367  +static if (WINVER >= 0x500) {
         4368  +BOOL GetGUIThreadInfo(DWORD, LPGUITHREADINFO);
         4369  +void NotifyWinEvent(DWORD, HWND, LONG, LONG);
         4370  +HWINEVENTHOOK SetWinEventHook(UINT, UINT, HMODULE, WINEVENTPROC, DWORD, DWORD, UINT);
         4371  +BOOL UnhookWinEvent(HWINEVENTHOOK);
         4372  +BOOL UnregisterDeviceNotification(HANDLE);
         4373  +}
         4374  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
         4375  +BOOL EnumDisplaySettingsExA(LPCSTR, DWORD, LPDEVMODEA, DWORD);
         4376  +BOOL EnumDisplaySettingsExW(LPCWSTR, DWORD, LPDEVMODEW, DWORD);
         4377  +BOOL FlashWindowEx(PFLASHWINFO);
         4378  +DWORD GetClipboardSequenceNumber();
         4379  +DWORD InSendMessageEx(LPVOID);
         4380  +}
         4381  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x490)) {
         4382  +BOOL AllowSetForegroundWindow(DWORD);
         4383  +BOOL LockSetForegroundWindow(UINT);
         4384  +int GetMouseMovePointsEx(UINT, LPMOUSEMOVEPOINT, LPMOUSEMOVEPOINT, int, DWORD);
         4385  +}
         4386  +
         4387  +version (Win64) {
         4388  +LONG_PTR GetWindowLongPtrA(HWND, int);
         4389  +LONG_PTR GetWindowLongPtrW(HWND, int);
         4390  +LONG_PTR SetWindowLongPtrA(HWND, int, LONG_PTR);
         4391  +LONG_PTR SetWindowLongPtrW(HWND, int, LONG_PTR);
         4392  +} else {
         4393  +alias GetWindowLongA GetWindowLongPtrA;
         4394  +alias GetWindowLongW GetWindowLongPtrW;
         4395  +alias SetWindowLongA SetWindowLongPtrA;
         4396  +alias SetWindowLongW SetWindowLongPtrW;
         4397  +}
         4398  +
  3704   4399   
  3705         -// #if(WINVER >= 0x0400)
  3706         -extern(Windows) export int ToAsciiEx(
  3707         -  UINT uVirtKey,
  3708         -  UINT uScanCode,
  3709         -  BYTE *lpKeyState,
  3710         -  LPWORD lpChar,
  3711         -  UINT uFlags,
  3712         -  HKL dwhkl);
  3713         -// #endif /* WINVER >= 0x0400 */
  3714         -
  3715         -extern(Windows) export int ToUnicode(
  3716         -  UINT wVirtKey,
  3717         -  UINT wScanCode,
  3718         -  BYTE *lpKeyState,
  3719         -  LPWSTR pwszBuff,
  3720         -  int cchBuff,
  3721         -  UINT wFlags);
  3722         -
  3723         -extern(Windows) export DWORD OemKeyScan(
  3724         -  WORD wOemChar);
  3725         -
  3726         -extern(Windows) export SHORT VkKeyScanA(
  3727         -  CHAR ch);
  3728         -extern(Windows) export SHORT VkKeyScanW(
  3729         -  WCHAR ch);
  3730         -// #ifdef UNICODE
  3731         -alias VkKeyScanW VkKeyScan;
  3732         -// #else
  3733         -// #...
  3734         -// #endif // !UNICODE
  3735         -
  3736         -// #if(WINVER >= 0x0400)
  3737         -extern(Windows) export SHORT VkKeyScanExA(
  3738         -  CHAR ch,
  3739         -  HKL dwhkl);
  3740         -extern(Windows) export SHORT VkKeyScanExW(
  3741         -  WCHAR ch,
  3742         -  HKL dwhkl);
  3743         -// #ifdef UNICODE
  3744         -alias VkKeyScanExW VkKeyScanEx;
  3745         -// #else
  3746         -// #...
  3747         -// #endif // !UNICODE
  3748         -// #endif /* WINVER >= 0x0400 */
  3749         -enum : uint { KEYEVENTF_EXTENDEDKEY = 0x0001 }
  3750         -enum : uint { KEYEVENTF_KEYUP = 0x0002 }
  3751         -// #if(_WIN32_WINNT >= 0x0500)
  3752         -enum : uint { KEYEVENTF_UNICODE = 0x0004 }
  3753         -enum : uint { KEYEVENTF_SCANCODE = 0x0008 }
  3754         -// #endif /* _WIN32_WINNT >= 0x0500 */
         4400  +// -----
         4401  +// Aliases for Unicode or Ansi
         4402  +version(Unicode) {
  3755   4403   
  3756         -extern(Windows) export VOID keybd_event(
  3757         -  BYTE bVk,
  3758         -  BYTE bScan,
  3759         -  DWORD dwFlags,
  3760         -  ULONG_PTR dwExtraInfo);
  3761         -
  3762         -enum : uint { MOUSEEVENTF_MOVE = 0x0001 }
  3763         -enum : uint { MOUSEEVENTF_LEFTDOWN = 0x0002 }
  3764         -enum : uint { MOUSEEVENTF_LEFTUP = 0x0004 }
  3765         -enum : uint { MOUSEEVENTF_RIGHTDOWN = 0x0008 }
  3766         -enum : uint { MOUSEEVENTF_RIGHTUP = 0x0010 }
  3767         -enum : uint { MOUSEEVENTF_MIDDLEDOWN = 0x0020 }
  3768         -enum : uint { MOUSEEVENTF_MIDDLEUP = 0x0040 }
  3769         -enum : uint { MOUSEEVENTF_XDOWN = 0x0080 }
  3770         -enum : uint { MOUSEEVENTF_XUP = 0x0100 }
  3771         -enum : uint { MOUSEEVENTF_WHEEL = 0x0800 }
  3772         -enum : uint { MOUSEEVENTF_VIRTUALDESK = 0x4000 }
  3773         -enum : uint { MOUSEEVENTF_ABSOLUTE = 0x8000 }
  3774         -
  3775         -extern(Windows) export VOID mouse_event(
  3776         -  DWORD dwFlags,
  3777         -  DWORD dx,
  3778         -  DWORD dy,
  3779         -  DWORD dwData,
  3780         -  ULONG_PTR dwExtraInfo);
  3781         -
  3782         -// #if (_WIN32_WINNT > 0x0400)
  3783         -
  3784         -struct tagMOUSEINPUT {
  3785         -  LONG dx;
  3786         -  LONG dy;
  3787         -  DWORD mouseData;
  3788         -  DWORD dwFlags;
  3789         -  DWORD time;
  3790         -  ULONG_PTR dwExtraInfo;
  3791         -}
  3792         -alias tagMOUSEINPUT MOUSEINPUT;
  3793         -alias tagMOUSEINPUT* PMOUSEINPUT;
  3794         -alias tagMOUSEINPUT* LPMOUSEINPUT;
  3795         -
  3796         -struct tagKEYBDINPUT {
  3797         -  WORD wVk;
  3798         -  WORD wScan;
  3799         -  DWORD dwFlags;
  3800         -  DWORD time;
  3801         -  ULONG_PTR dwExtraInfo;
  3802         -}
  3803         -alias tagKEYBDINPUT KEYBDINPUT;
  3804         -alias tagKEYBDINPUT* PKEYBDINPUT;
  3805         -alias tagKEYBDINPUT* LPKEYBDINPUT;
  3806         -
  3807         -struct tagHARDWAREINPUT {
  3808         -  DWORD uMsg;
  3809         -  WORD wParamL;
  3810         -  WORD wParamH;
  3811         -}
  3812         -alias tagHARDWAREINPUT HARDWAREINPUT;
  3813         -alias tagHARDWAREINPUT* PHARDWAREINPUT;
  3814         -alias tagHARDWAREINPUT* LPHARDWAREINPUT;
  3815         -
  3816         -enum : uint { INPUT_MOUSE = 0 }
  3817         -enum : uint { INPUT_KEYBOARD = 1 }
  3818         -enum : uint { INPUT_HARDWARE = 2 }
  3819         -
  3820         -struct tagINPUT {
  3821         -  DWORD type;
  3822         -union {
  3823         -  MOUSEINPUT mi;
  3824         -  KEYBDINPUT ki;
  3825         -  HARDWAREINPUT hi;
  3826         -}
  3827         -
  3828         -}
  3829         -alias tagINPUT INPUT;
  3830         -alias tagINPUT* PINPUT;
  3831         -alias tagINPUT* LPINPUT;
  3832         -
  3833         -extern(Windows) export UINT SendInput(
  3834         -  UINT cInputs, // number of input in the array
  3835         -  LPINPUT pInputs, // array of inputs
  3836         -  int cbSize);
  3837         -
  3838         -// #endif // (_WIN32_WINNT > 0x0400)
  3839         -
  3840         -// #if(_WIN32_WINNT >= 0x0500)
  3841         -struct tagLASTINPUTINFO {
  3842         -  UINT cbSize;
  3843         -  DWORD dwTime;
  3844         -}
  3845         -alias tagLASTINPUTINFO LASTINPUTINFO;
  3846         -alias tagLASTINPUTINFO* PLASTINPUTINFO;
  3847         -
  3848         -extern(Windows) export BOOL GetLastInputInfo(
  3849         -  PLASTINPUTINFO plii);
  3850         -// #endif /* _WIN32_WINNT >= 0x0500 */
  3851         -
  3852         -extern(Windows) export UINT MapVirtualKeyA(
  3853         -  UINT uCode,
  3854         -  UINT uMapType);
  3855         -extern(Windows) export UINT MapVirtualKeyW(
  3856         -  UINT uCode,
  3857         -  UINT uMapType);
  3858         -// #ifdef UNICODE
  3859         -alias MapVirtualKeyW MapVirtualKey;
  3860         -// #else
  3861         -// #...
  3862         -// #endif // !UNICODE
  3863         -
  3864         -// #if(WINVER >= 0x0400)
  3865         -extern(Windows) export UINT MapVirtualKeyExA(
  3866         -  UINT uCode,
  3867         -  UINT uMapType,
  3868         -  HKL dwhkl);
  3869         -extern(Windows) export UINT MapVirtualKeyExW(
  3870         -  UINT uCode,
  3871         -  UINT uMapType,
  3872         -  HKL dwhkl);
  3873         -// #ifdef UNICODE
  3874         -alias MapVirtualKeyExW MapVirtualKeyEx;
  3875         -// #else
  3876         -// #...
  3877         -// #endif // !UNICODE
  3878         -// #endif /* WINVER >= 0x0400 */
         4404  +alias EDITWORDBREAKPROCW EDITWORDBREAKPROC;
         4405  +alias PROPENUMPROCW PROPENUMPROC;
         4406  +alias PROPENUMPROCEXW PROPENUMPROCEX;
         4407  +alias DESKTOPENUMPROCW DESKTOPENUMPROC;
         4408  +alias WINSTAENUMPROCW WINSTAENUMPROC;
         4409  +alias MAKEINTRESOURCEW MAKEINTRESOURCE;
  3879   4410   
  3880         -extern(Windows) export BOOL GetInputState();
  3881         -
  3882         -extern(Windows) export DWORD GetQueueStatus(
  3883         -  UINT flags);
  3884         -
  3885         -extern(Windows) export HWND GetCapture();
  3886         -
  3887         -extern(Windows) export HWND SetCapture(
  3888         -  HWND hWnd);
  3889         -
  3890         -extern(Windows) export BOOL ReleaseCapture();
  3891         -
  3892         -extern(Windows) export DWORD MsgWaitForMultipleObjects(
  3893         -  DWORD nCount,
  3894         -  HANDLE *pHandles,
  3895         -  BOOL fWaitAll,
  3896         -  DWORD dwMilliseconds,
  3897         -  DWORD dwWakeMask);
  3898         -
  3899         -extern(Windows) export DWORD MsgWaitForMultipleObjectsEx(
  3900         -  DWORD nCount,
  3901         -  HANDLE *pHandles,
  3902         -  DWORD dwMilliseconds,
  3903         -  DWORD dwWakeMask,
  3904         -  DWORD dwFlags);
  3905         -
  3906         -enum : uint { MWMO_WAITALL = 0x0001 }
  3907         -enum : uint { MWMO_ALERTABLE = 0x0002 }
  3908         -enum : uint { MWMO_INPUTAVAILABLE = 0x0004 }
  3909         -
  3910         -enum : uint { QS_KEY = 0x0001 }
  3911         -enum : uint { QS_MOUSEMOVE = 0x0002 }
  3912         -enum : uint { QS_MOUSEBUTTON = 0x0004 }
  3913         -// #define QS_POSTMESSAGE 0x0008
  3914         -// #define QS_TIMER 0x0010
  3915         -// #define QS_PAINT 0x0020
  3916         -// #define QS_SENDMESSAGE 0x0040
  3917         -// #define QS_HOTKEY 0x0080
  3918         -enum : uint { QS_ALLPOSTMESSAGE = 0x0100 }
  3919         -// #if(_WIN32_WINNT >= 0x0501)
  3920         -enum : uint { QS_RAWINPUT = 0x0400 }
  3921         -// #endif /* _WIN32_WINNT >= 0x0501 */
  3922         -
  3923         -enum : uint { QS_MOUSE = QS_MOUSEMOVE | QS_MOUSEBUTTON }
  3924         -
  3925         -// #if (_WIN32_WINNT >= 0x0501)
  3926         -// #define QS_INPUT (QS_MOUSE | QS_KEY | QS_RAWINPUT)
  3927         -// #else
  3928         -// #...
  3929         -// ...
  3930         -// #endif // (_WIN32_WINNT >= 0x0501)
  3931         -
  3932         -enum : uint { QS_ALLEVENTS = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY }
  3933         -
  3934         -enum : uint { QS_ALLINPUT = QS_INPUT | QS_POSTMESSAGE | QS_TIMER | QS_PAINT | QS_HOTKEY | QS_SENDMESSAGE }
  3935         -
  3936         -extern(Windows) export UINT_PTR SetTimer(
  3937         -  HWND hWnd,
  3938         -  UINT_PTR nIDEvent,
  3939         -  UINT uElapse,
  3940         -  TIMERPROC lpTimerFunc);
  3941         -
  3942         -extern(Windows) export BOOL KillTimer(
  3943         -  HWND hWnd,
  3944         -  UINT_PTR uIDEvent);
  3945         -
  3946         -extern(Windows) export BOOL IsWindowUnicode(
  3947         -  HWND hWnd);
  3948         -
  3949         -extern(Windows) export BOOL EnableWindow(
  3950         -  HWND hWnd,
  3951         -  BOOL bEnable);
  3952         -
  3953         -extern(Windows) export BOOL IsWindowEnabled(
  3954         -  HWND hWnd);
  3955         -
  3956         -extern(Windows) export HACCEL LoadAcceleratorsA(
  3957         -  HINSTANCE hInstance,
  3958         -  LPCSTR lpTableName);
  3959         -extern(Windows) export HACCEL LoadAcceleratorsW(
  3960         -  HINSTANCE hInstance,
  3961         -  LPCWSTR lpTableName);
  3962         -// #ifdef UNICODE
  3963         -alias LoadAcceleratorsW LoadAccelerators;
  3964         -// #else
  3965         -// #...
  3966         -// #endif // !UNICODE
  3967         -
  3968         -extern(Windows) export HACCEL CreateAcceleratorTableA(
  3969         -  LPACCEL, int);
  3970         -extern(Windows) export HACCEL CreateAcceleratorTableW(
  3971         -  LPACCEL, int);
  3972         -// #ifdef UNICODE
  3973         -alias CreateAcceleratorTableW CreateAcceleratorTable;
  3974         -// #else
  3975         -// #...
  3976         -// #endif // !UNICODE
  3977         -
  3978         -extern(Windows) export BOOL DestroyAcceleratorTable(
  3979         -  HACCEL hAccel);
  3980         -
  3981         -extern(Windows) export int CopyAcceleratorTableA(
  3982         -  HACCEL hAccelSrc,
  3983         -  LPACCEL lpAccelDst,
  3984         -  int cAccelEntries);
  3985         -extern(Windows) export int CopyAcceleratorTableW(
  3986         -  HACCEL hAccelSrc,
  3987         -  LPACCEL lpAccelDst,
  3988         -  int cAccelEntries);
  3989         -// #ifdef UNICODE
  3990         -alias CopyAcceleratorTableW CopyAcceleratorTable;
  3991         -// #else
  3992         -// #...
  3993         -// #endif // !UNICODE
  3994         -
  3995         -// #ifndef NOMSG
  3996         -
  3997         -extern(Windows) export int TranslateAcceleratorA(
  3998         -  HWND hWnd,
  3999         -  HACCEL hAccTable,
  4000         -  LPMSG lpMsg);
  4001         -extern(Windows) export int TranslateAcceleratorW(
  4002         -  HWND hWnd,
  4003         -  HACCEL hAccTable,
  4004         -  LPMSG lpMsg);
  4005         -// #ifdef UNICODE
  4006         -alias TranslateAcceleratorW TranslateAccelerator;
  4007         -// #else
  4008         -// #...
  4009         -// #endif // !UNICODE
  4010         -
  4011         -// #endif /* !NOMSG */
  4012         -
  4013         -// #ifndef NOSYSMETRICS
  4014         -
  4015         -enum : uint { SM_CXSCREEN = 0 }
  4016         -enum : uint { SM_CYSCREEN = 1 }
  4017         -enum : uint { SM_CXVSCROLL = 2 }
  4018         -enum : uint { SM_CYHSCROLL = 3 }
  4019         -enum : uint { SM_CYCAPTION = 4 }
  4020         -enum : uint { SM_CXBORDER = 5 }
  4021         -enum : uint { SM_CYBORDER = 6 }
  4022         -enum : uint { SM_CXDLGFRAME = 7 }
  4023         -enum : uint { SM_CYDLGFRAME = 8 }
  4024         -enum : uint { SM_CYVTHUMB = 9 }
  4025         -enum : uint { SM_CXHTHUMB = 10 }
  4026         -enum : uint { SM_CXICON = 11 }
  4027         -enum : uint { SM_CYICON = 12 }
  4028         -enum : uint { SM_CXCURSOR = 13 }
  4029         -enum : uint { SM_CYCURSOR = 14 }
  4030         -enum : uint { SM_CYMENU = 15 }
  4031         -enum : uint { SM_CXFULLSCREEN = 16 }
  4032         -enum : uint { SM_CYFULLSCREEN = 17 }
  4033         -enum : uint { SM_CYKANJIWINDOW = 18 }
  4034         -enum : uint { SM_MOUSEPRESENT = 19 }
  4035         -enum : uint { SM_CYVSCROLL = 20 }
  4036         -enum : uint { SM_CXHSCROLL = 21 }
  4037         -enum : uint { SM_DEBUG = 22 }
  4038         -enum : uint { SM_SWAPBUTTON = 23 }
  4039         -enum : uint { SM_RESERVED1 = 24 }
  4040         -enum : uint { SM_RESERVED2 = 25 }
  4041         -enum : uint { SM_RESERVED3 = 26 }
  4042         -enum : uint { SM_RESERVED4 = 27 }
  4043         -enum : uint { SM_CXMIN = 28 }
  4044         -enum : uint { SM_CYMIN = 29 }
  4045         -enum : uint { SM_CXSIZE = 30 }
  4046         -enum : uint { SM_CYSIZE = 31 }
  4047         -enum : uint { SM_CXFRAME = 32 }
  4048         -enum : uint { SM_CYFRAME = 33 }
  4049         -enum : uint { SM_CXMINTRACK = 34 }
  4050         -enum : uint { SM_CYMINTRACK = 35 }
  4051         -enum : uint { SM_CXDOUBLECLK = 36 }
  4052         -enum : uint { SM_CYDOUBLECLK = 37 }
  4053         -enum : uint { SM_CXICONSPACING = 38 }
  4054         -enum : uint { SM_CYICONSPACING = 39 }
  4055         -enum : uint { SM_MENUDROPALIGNMENT = 40 }
  4056         -enum : uint { SM_PENWINDOWS = 41 }
  4057         -enum : uint { SM_DBCSENABLED = 42 }
  4058         -enum : uint { SM_CMOUSEBUTTONS = 43 }
  4059         -
  4060         -// #if(WINVER >= 0x0400)
  4061         -alias SM_CXDLGFRAME SM_CXFIXEDFRAME;
  4062         -alias SM_CYDLGFRAME SM_CYFIXEDFRAME;
  4063         -alias SM_CXFRAME SM_CXSIZEFRAME;
  4064         -alias SM_CYFRAME SM_CYSIZEFRAME;
  4065         -
  4066         -enum : uint { SM_SECURE = 44 }
  4067         -enum : uint { SM_CXEDGE = 45 }
  4068         -enum : uint { SM_CYEDGE = 46 }
  4069         -enum : uint { SM_CXMINSPACING = 47 }
  4070         -enum : uint { SM_CYMINSPACING = 48 }
  4071         -enum : uint { SM_CXSMICON = 49 }
  4072         -enum : uint { SM_CYSMICON = 50 }
  4073         -enum : uint { SM_CYSMCAPTION = 51 }
  4074         -enum : uint { SM_CXSMSIZE = 52 }
  4075         -enum : uint { SM_CYSMSIZE = 53 }
  4076         -enum : uint { SM_CXMENUSIZE = 54 }
  4077         -enum : uint { SM_CYMENUSIZE = 55 }
  4078         -enum : uint { SM_ARRANGE = 56 }
  4079         -enum : uint { SM_CXMINIMIZED = 57 }
  4080         -enum : uint { SM_CYMINIMIZED = 58 }
  4081         -enum : uint { SM_CXMAXTRACK = 59 }
  4082         -enum : uint { SM_CYMAXTRACK = 60 }
  4083         -enum : uint { SM_CXMAXIMIZED = 61 }
  4084         -enum : uint { SM_CYMAXIMIZED = 62 }
  4085         -enum : uint { SM_NETWORK = 63 }
  4086         -enum : uint { SM_CLEANBOOT = 67 }
  4087         -enum : uint { SM_CXDRAG = 68 }
  4088         -enum : uint { SM_CYDRAG = 69 }
  4089         -// #endif /* WINVER >= 0x0400 */
  4090         -enum : uint { SM_SHOWSOUNDS = 70 }
  4091         -// #if(WINVER >= 0x0400)
  4092         -enum : uint { SM_CXMENUCHECK = 71 }
  4093         -enum : uint { SM_CYMENUCHECK = 72 }
  4094         -enum : uint { SM_SLOWMACHINE = 73 }
  4095         -enum : uint { SM_MIDEASTENABLED = 74 }
  4096         -// #endif /* WINVER >= 0x0400 */
         4411  +alias WNDCLASSW WNDCLASS;
         4412  +alias WNDCLASSEXW WNDCLASSEX;
         4413  +alias MENUITEMINFOW MENUITEMINFO;
         4414  +alias LPCMENUITEMINFOW LPCMENUITEMINFO;
         4415  +alias MSGBOXPARAMSW MSGBOXPARAMS;
         4416  +alias HIGHCONTRASTW HIGHCONTRAST;
         4417  +alias SERIALKEYSW SERIALKEYS;
         4418  +alias SOUNDSENTRYW SOUNDSENTRY;
         4419  +alias CREATESTRUCTW CREATESTRUCT;
         4420  +alias CBT_CREATEWNDW CBT_CREATEWND;
         4421  +alias MDICREATESTRUCTW MDICREATESTRUCT;
         4422  +alias MULTIKEYHELPW MULTIKEYHELP;
         4423  +alias MONITORINFOEXW MONITORINFOEX;
         4424  +alias ICONMETRICSW ICONMETRICS;
         4425  +alias NONCLIENTMETRICSW NONCLIENTMETRICS;
  4097   4426   
  4098         -// #if (WINVER >= 0x0500) || (_WIN32_WINNT >= 0x0400)
  4099         -enum : uint { SM_MOUSEWHEELPRESENT = 75 }
  4100         -// #endif
  4101         -// #if(WINVER >= 0x0500)
  4102         -enum : uint { SM_XVIRTUALSCREEN = 76 }
  4103         -enum : uint { SM_YVIRTUALSCREEN = 77 }
  4104         -enum : uint { SM_CXVIRTUALSCREEN = 78 }
  4105         -enum : uint { SM_CYVIRTUALSCREEN = 79 }
  4106         -enum : uint { SM_CMONITORS = 80 }
  4107         -enum : uint { SM_SAMEDISPLAYFORMAT = 81 }
  4108         -// #endif /* WINVER >= 0x0500 */
  4109         -// #if(_WIN32_WINNT >= 0x0500)
  4110         -enum : uint { SM_IMMENABLED = 82 }
  4111         -// #endif /* _WIN32_WINNT >= 0x0500 */
  4112         -// #if(_WIN32_WINNT >= 0x0501)
  4113         -enum : uint { SM_CXFOCUSBORDER = 83 }
  4114         -enum : uint { SM_CYFOCUSBORDER = 84 }
  4115         -// #endif /* _WIN32_WINNT >= 0x0501 */
  4116         -
  4117         -// #if (WINVER < 0x0500) && (!defined(_WIN32_WINNT) || (_WIN32_WINNT < 0x0400))
  4118         -// #...
  4119         -// #else
  4120         -enum : uint { SM_CMETRICS = 86 }
  4121         -// #endif
  4122         -
  4123         -// #if(WINVER >= 0x0500)
  4124         -enum : uint { SM_REMOTESESSION = 0x1000 }
  4125         -
  4126         -// #if(_WIN32_WINNT >= 0x0501)
  4127         -enum : uint { SM_SHUTTINGDOWN = 0x2000 }
  4128         -// #endif /* _WIN32_WINNT >= 0x0501 */
  4129         -
  4130         -// #endif /* WINVER >= 0x0500 */
  4131         -
  4132         -extern(Windows) export int GetSystemMetrics(
  4133         -  int nIndex);
  4134         -
  4135         -// #endif /* !NOSYSMETRICS */
  4136         -
  4137         -// #ifndef NOMENUS
  4138         -
  4139         -extern(Windows) export HMENU LoadMenuA(
  4140         -  HINSTANCE hInstance,
  4141         -  LPCSTR lpMenuName);
  4142         -extern(Windows) export HMENU LoadMenuW(
  4143         -  HINSTANCE hInstance,
  4144         -  LPCWSTR lpMenuName);
  4145         -// #ifdef UNICODE
  4146         -alias LoadMenuW LoadMenu;
  4147         -// #else
  4148         -// #...
  4149         -// #endif // !UNICODE
  4150         -
  4151         -extern(Windows) export HMENU LoadMenuIndirectA(
  4152         -  MENUTEMPLATEA *lpMenuTemplate);
  4153         -extern(Windows) export HMENU LoadMenuIndirectW(
  4154         -  MENUTEMPLATEW *lpMenuTemplate);
  4155         -// #ifdef UNICODE
  4156         -alias LoadMenuIndirectW LoadMenuIndirect;
  4157         -// #else
  4158         -// #...
  4159         -// #endif // !UNICODE
  4160         -
  4161         -extern(Windows) export HMENU GetMenu(
  4162         -  HWND hWnd);
  4163         -
  4164         -extern(Windows) export BOOL SetMenu(
  4165         -  HWND hWnd,
  4166         -  HMENU hMenu);
  4167         -
  4168         -extern(Windows) export BOOL ChangeMenuA(
  4169         -  HMENU hMenu,
  4170         -  UINT cmd,
  4171         -  LPCSTR lpszNewItem,
  4172         -  UINT cmdInsert,
  4173         -  UINT flags);
  4174         -extern(Windows) export BOOL ChangeMenuW(
  4175         -  HMENU hMenu,
  4176         -  UINT cmd,
  4177         -  LPCWSTR lpszNewItem,
  4178         -  UINT cmdInsert,
  4179         -  UINT flags);
  4180         -// #ifdef UNICODE
         4427  +alias AppendMenuW AppendMenu;
         4428  +alias BroadcastSystemMessageW BroadcastSystemMessage;
         4429  +static if (_WIN32_WINNT >= 0x501) {
         4430  +alias BroadcastSystemMessageExW BroadcastSystemMessageEx;
         4431  +}
         4432  +alias CallMsgFilterW CallMsgFilter;
         4433  +alias CallWindowProcW CallWindowProc;
  4181   4434   alias ChangeMenuW ChangeMenu;
  4182         -// #else
  4183         -// #...
  4184         -// #endif // !UNICODE
  4185         -
  4186         -extern(Windows) export BOOL HiliteMenuItem(
  4187         -  HWND hWnd,
  4188         -  HMENU hMenu,
  4189         -  UINT uIDHiliteItem,
  4190         -  UINT uHilite);
  4191         -
  4192         -extern(Windows) export int GetMenuStringA(
  4193         -  HMENU hMenu,
  4194         -  UINT uIDItem,
  4195         -  LPSTR lpString,
  4196         -  int nMaxCount,
  4197         -  UINT uFlag);
  4198         -extern(Windows) export int GetMenuStringW(
  4199         -  HMENU hMenu,
  4200         -  UINT uIDItem,
  4201         -  LPWSTR lpString,
  4202         -  int nMaxCount,
  4203         -  UINT uFlag);
  4204         -// #ifdef UNICODE
         4435  +alias CharLowerW CharLower;
         4436  +alias CharLowerBuffW CharLowerBuff;
         4437  +alias CharNextW CharNext;
         4438  +alias CharNextExW CharNextEx;
         4439  +alias CharPrevW CharPrev;
         4440  +alias CharPrevExW CharPrevEx;
         4441  +alias CharToOemW CharToOem;
         4442  +alias CharToOemBuffW CharToOemBuff;
         4443  +alias CharUpperW CharUpper;
         4444  +alias CharUpperBuffW CharUpperBuff;
         4445  +alias CopyAcceleratorTableW CopyAcceleratorTable;
         4446  +alias CreateAcceleratorTableW CreateAcceleratorTable;
         4447  +alias CreateDialogW CreateDialog;
         4448  +alias CreateDialogIndirectW CreateDialogIndirect;
         4449  +alias CreateDialogIndirectParamW CreateDialogIndirectParam;
         4450  +alias CreateDialogParamW CreateDialogParam;
         4451  +alias CreateMDIWindowW CreateMDIWindow;
         4452  +alias CreateWindowW CreateWindow;
         4453  +alias CreateWindowExW CreateWindowEx;
         4454  +alias CreateWindowStationW CreateWindowStation;
         4455  +alias DefDlgProcW DefDlgProc;
         4456  +alias DefFrameProcW DefFrameProc;
         4457  +alias DefMDIChildProcW DefMDIChildProc;
         4458  +alias DefWindowProcW DefWindowProc;
         4459  +alias DialogBoxW DialogBox;
         4460  +alias DialogBoxIndirectW DialogBoxIndirect;
         4461  +alias DialogBoxIndirectParamW DialogBoxIndirectParam;
         4462  +alias DialogBoxParamW DialogBoxParam;
         4463  +alias DispatchMessageW DispatchMessage;
         4464  +alias DlgDirListW DlgDirList;
         4465  +alias DlgDirListComboBoxW DlgDirListComboBox;
         4466  +alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx;
         4467  +alias DlgDirSelectExW DlgDirSelectEx;
         4468  +alias DrawStateW DrawState;
         4469  +alias DrawTextW DrawText;
         4470  +alias DrawTextExW DrawTextEx;
         4471  +alias EnumDesktopsW EnumDesktops;
         4472  +alias EnumPropsW EnumProps;
         4473  +alias EnumPropsExW EnumPropsEx;
         4474  +alias EnumWindowStationsW EnumWindowStations;
         4475  +alias FindWindowW FindWindow;
         4476  +alias FindWindowExW FindWindowEx;
         4477  +alias GetClassInfoW GetClassInfo;
         4478  +alias GetClassInfoExW GetClassInfoEx;
         4479  +alias GetClassLongW GetClassLong;
         4480  +alias GetClassNameW GetClassName;
         4481  +alias GetClipboardFormatNameW GetClipboardFormatName;
         4482  +alias GetDlgItemTextW GetDlgItemText;
         4483  +alias GetKeyboardLayoutNameW GetKeyboardLayoutName;
         4484  +alias GetKeyNameTextW GetKeyNameText;
         4485  +alias GetMenuItemInfoW GetMenuItemInfo;
  4205   4486   alias GetMenuStringW GetMenuString;
  4206         -// #else
  4207         -// #...
  4208         -// #endif // !UNICODE
  4209         -
  4210         -extern(Windows) export UINT GetMenuState(
  4211         -  HMENU hMenu,
  4212         -  UINT uId,
  4213         -  UINT uFlags);
  4214         -
  4215         -extern(Windows) export BOOL DrawMenuBar(
  4216         -  HWND hWnd);
  4217         -
  4218         -// #if(_WIN32_WINNT >= 0x0501)
  4219         -enum : uint { PMB_ACTIVE = 0x00000001 }
  4220         -
  4221         -// #endif /* _WIN32_WINNT >= 0x0501 */
  4222         -
  4223         -extern(Windows) export HMENU GetSystemMenu(
  4224         -  HWND hWnd,
  4225         -  BOOL bRevert);
  4226         -
  4227         -extern(Windows) export HMENU CreateMenu();
  4228         -
  4229         -extern(Windows) export HMENU CreatePopupMenu();
  4230         -
  4231         -extern(Windows) export BOOL DestroyMenu(
  4232         -  HMENU hMenu);
  4233         -
  4234         -extern(Windows) export DWORD CheckMenuItem(
  4235         -  HMENU hMenu,
  4236         -  UINT uIDCheckItem,
  4237         -  UINT uCheck);
  4238         -
  4239         -extern(Windows) export BOOL EnableMenuItem(
  4240         -  HMENU hMenu,
  4241         -  UINT uIDEnableItem,
  4242         -  UINT uEnable);
  4243         -
  4244         -extern(Windows) export HMENU GetSubMenu(
  4245         -  HMENU hMenu,
  4246         -  int nPos);
  4247         -
  4248         -extern(Windows) export UINT GetMenuItemID(
  4249         -  HMENU hMenu,
  4250         -  int nPos);
  4251         -
  4252         -extern(Windows) export int GetMenuItemCount(
  4253         -  HMENU hMenu);
  4254         -
  4255         -extern(Windows) export BOOL InsertMenuA(
  4256         -  HMENU hMenu,
  4257         -  UINT uPosition,
  4258         -  UINT uFlags,
  4259         -  UINT_PTR uIDNewItem,
  4260         -  LPCSTR lpNewItem);
  4261         -extern(Windows) export BOOL InsertMenuW(
  4262         -  HMENU hMenu,
  4263         -  UINT uPosition,
  4264         -  UINT uFlags,
  4265         -  UINT_PTR uIDNewItem,
  4266         -  LPCWSTR lpNewItem);
  4267         -// #ifdef UNICODE
  4268         -alias InsertMenuW InsertMenu;
  4269         -// #else
  4270         -// #...
  4271         -// #endif // !UNICODE
  4272         -
  4273         -extern(Windows) export BOOL AppendMenuA(
  4274         -  HMENU hMenu,
  4275         -  UINT uFlags,
  4276         -  UINT_PTR uIDNewItem,
  4277         -  LPCSTR lpNewItem);
  4278         -extern(Windows) export BOOL AppendMenuW(
  4279         -  HMENU hMenu,
  4280         -  UINT uFlags,
  4281         -  UINT_PTR uIDNewItem,
  4282         -  LPCWSTR lpNewItem);
  4283         -// #ifdef UNICODE
  4284         -alias AppendMenuW AppendMenu;
  4285         -// #else
  4286         -// #...
  4287         -// #endif // !UNICODE
  4288         -
  4289         -extern(Windows) export BOOL ModifyMenuA(
  4290         -  HMENU hMnu,
  4291         -  UINT uPosition,
  4292         -  UINT uFlags,
  4293         -  UINT_PTR uIDNewItem,
  4294         -  LPCSTR lpNewItem);
  4295         -extern(Windows) export BOOL ModifyMenuW(
  4296         -  HMENU hMnu,
  4297         -  UINT uPosition,
  4298         -  UINT uFlags,
  4299         -  UINT_PTR uIDNewItem,
  4300         -  LPCWSTR lpNewItem);
  4301         -// #ifdef UNICODE
  4302         -alias ModifyMenuW ModifyMenu;
  4303         -// #else
  4304         -// #...
  4305         -// #endif // !UNICODE
  4306         -
  4307         -extern(Windows) export BOOL RemoveMenu(
  4308         -  HMENU hMenu,
  4309         -  UINT uPosition,
  4310         -  UINT uFlags);
  4311         -
  4312         -extern(Windows) export BOOL DeleteMenu(
  4313         -  HMENU hMenu,
  4314         -  UINT uPosition,
  4315         -  UINT uFlags);
  4316         -
  4317         -extern(Windows) export BOOL SetMenuItemBitmaps(
  4318         -  HMENU hMenu,
  4319         -  UINT uPosition,
  4320         -  UINT uFlags,
  4321         -  HBITMAP hBitmapUnchecked,
  4322         -  HBITMAP hBitmapChecked);
  4323         -
  4324         -extern(Windows) export LONG GetMenuCheckMarkDimensions();
  4325         -
  4326         -extern(Windows) export BOOL TrackPopupMenu(
  4327         -  HMENU hMenu,
  4328         -  UINT uFlags,
  4329         -  int x,
  4330         -  int y,
  4331         -  int nReserved,
  4332         -  HWND hWnd,
  4333         -  RECT *prcRect);
  4334         -
  4335         -// #if(WINVER >= 0x0400)
  4336         -
  4337         -enum : uint { MNC_IGNORE = 0 }
  4338         -enum : uint { MNC_CLOSE = 1 }
  4339         -enum : uint { MNC_EXECUTE = 2 }
  4340         -enum : uint { MNC_SELECT = 3 }
  4341         -
  4342         -struct tagTPMPARAMS {
  4343         -  UINT cbSize;
  4344         -  RECT rcExclude;
         4487  +alias GetMessageW GetMessage;
         4488  +static if (WINVER >=0x410) {
         4489  +alias GetMonitorInfoW GetMonitorInfo;
         4490  +}
         4491  +alias GetPropW GetProp;
         4492  +static if (_WIN32_WINNT >= 0x501) {
         4493  +alias GetRawInputDeviceInfoW GetRawInputDeviceInfo;
  4345   4494   }
  4346         -alias tagTPMPARAMS TPMPARAMS;
  4347         -
  4348         -alias TPMPARAMS* LPTPMPARAMS;
  4349         -
  4350         -extern(Windows) export BOOL TrackPopupMenuEx(
  4351         -  HMENU,
  4352         -  UINT,
  4353         -  int,
  4354         -  int,
  4355         -  HWND,
  4356         -  LPTPMPARAMS);
  4357         -// #endif /* WINVER >= 0x0400 */
  4358         -
  4359         -// #if(WINVER >= 0x0500)
  4360         -
  4361         -enum : uint { MNS_NOCHECK = 0x80000000 }
  4362         -enum : uint { MNS_MODELESS = 0x40000000 }
  4363         -enum : uint { MNS_DRAGDROP = 0x20000000 }
  4364         -enum : uint { MNS_AUTODISMISS = 0x10000000 }
  4365         -enum : uint { MNS_NOTIFYBYPOS = 0x08000000 }
  4366         -enum : uint { MNS_CHECKORBMP = 0x04000000 }
  4367         -
  4368         -enum : uint { MIM_MAXHEIGHT = 0x00000001 }
  4369         -enum : uint { MIM_BACKGROUND = 0x00000002 }
  4370         -enum : uint { MIM_HELPID = 0x00000004 }
  4371         -enum : uint { MIM_MENUDATA = 0x00000008 }
  4372         -enum : uint { MIM_STYLE = 0x00000010 }
  4373         -enum : uint { MIM_APPLYTOSUBMENUS = 0x80000000 }
  4374         -
  4375         -struct tagMENUINFO {
  4376         -  DWORD cbSize;
  4377         -  DWORD fMask;
  4378         -  DWORD dwStyle;
  4379         -  UINT cyMax;
  4380         -  HBRUSH hbrBack;
  4381         -  DWORD dwContextHelpID;
  4382         -  ULONG_PTR dwMenuData;
  4383         -}
  4384         -alias tagMENUINFO MENUINFO;
  4385         -alias tagMENUINFO* LPMENUINFO;
  4386         -
  4387         -alias MENUINFO* LPCMENUINFO;
  4388         -
  4389         -extern(Windows) export BOOL GetMenuInfo(
  4390         -  HMENU,
  4391         -  LPMENUINFO);
  4392         -
  4393         -extern(Windows) export BOOL SetMenuInfo(
  4394         -  HMENU,
  4395         -  LPCMENUINFO);
  4396         -
  4397         -extern(Windows) export BOOL EndMenu();
  4398         -
  4399         -enum : uint { MND_CONTINUE = 0 }
  4400         -enum : uint { MND_ENDMENU = 1 }
  4401         -
  4402         -struct tagMENUGETOBJECTINFO {
  4403         -  DWORD dwFlags;
  4404         -  UINT uPos;
  4405         -  HMENU hmenu;
  4406         -  PVOID riid;
  4407         -  PVOID pvObj;
  4408         -}
  4409         -alias tagMENUGETOBJECTINFO MENUGETOBJECTINFO;
  4410         -alias tagMENUGETOBJECTINFO* PMENUGETOBJECTINFO;
  4411         -
  4412         -enum : uint { MNGOF_TOPGAP = 0x00000001 }
  4413         -enum : uint { MNGOF_BOTTOMGAP = 0x00000002 }
  4414         -
  4415         -enum : uint { MNGO_NOINTERFACE = 0x00000000 }
  4416         -enum : uint { MNGO_NOERROR = 0x00000001 }
  4417         -// #endif /* WINVER >= 0x0500 */
  4418         -
  4419         -// #if(WINVER >= 0x0400)
  4420         -enum : uint { MIIM_STATE = 0x00000001 }
  4421         -enum : uint { MIIM_ID = 0x00000002 }
  4422         -enum : uint { MIIM_SUBMENU = 0x00000004 }
  4423         -enum : uint { MIIM_CHECKMARKS = 0x00000008 }
  4424         -enum : uint { MIIM_TYPE = 0x00000010 }
  4425         -enum : uint { MIIM_DATA = 0x00000020 }
  4426         -// #endif /* WINVER >= 0x0400 */
  4427         -
  4428         -// #if(WINVER >= 0x0500)
  4429         -enum : uint { MIIM_STRING = 0x00000040 }
  4430         -enum : uint { MIIM_BITMAP = 0x00000080 }
  4431         -enum : uint { MIIM_FTYPE = 0x00000100 }
  4432         -
  4433         -const HBITMAP HBMMENU_CALLBACK = cast(HBITMAP)-1;
  4434         -const HBITMAP HBMMENU_SYSTEM = cast(HBITMAP)1;
  4435         -const HBITMAP HBMMENU_MBAR_RESTORE = cast(HBITMAP)2;
  4436         -const HBITMAP HBMMENU_MBAR_MINIMIZE = cast(HBITMAP)3;
  4437         -const HBITMAP HBMMENU_MBAR_CLOSE = cast(HBITMAP)5;
  4438         -const HBITMAP HBMMENU_MBAR_CLOSE_D = cast(HBITMAP)6;
  4439         -const HBITMAP HBMMENU_MBAR_MINIMIZE_D = cast(HBITMAP)7;
  4440         -const HBITMAP HBMMENU_POPUP_CLOSE = cast(HBITMAP)8;
  4441         -const HBITMAP HBMMENU_POPUP_RESTORE = cast(HBITMAP)9;
  4442         -const HBITMAP HBMMENU_POPUP_MAXIMIZE = cast(HBITMAP)10;
  4443         -const HBITMAP HBMMENU_POPUP_MINIMIZE = cast(HBITMAP)11;
  4444         -// #endif /* WINVER >= 0x0500 */
  4445         -
  4446         -// #if(WINVER >= 0x0400)
  4447         -struct tagMENUITEMINFOA {
  4448         -  UINT cbSize;
  4449         -  UINT fMask;
  4450         -  UINT fType;
  4451         -  UINT fState;
  4452         -  UINT wID;
  4453         -  HMENU hSubMenu;
  4454         -  HBITMAP hbmpChecked;
  4455         -  HBITMAP hbmpUnchecked;
  4456         -  ULONG_PTR dwItemData;
  4457         -  LPSTR dwTypeData;
  4458         -  UINT cch;
  4459         -// #if(WINVER >= 0x0500)
  4460         -  HBITMAP hbmpItem;
  4461         -// #endif /* WINVER >= 0x0500 */
  4462         -}
  4463         -alias tagMENUITEMINFOA MENUITEMINFOA;
  4464         -alias tagMENUITEMINFOA* LPMENUITEMINFOA;
  4465         -
  4466         -struct tagMENUITEMINFOW {
  4467         -  UINT cbSize;
  4468         -  UINT fMask;
  4469         -  UINT fType;
  4470         -  UINT fState;
  4471         -  UINT wID;
  4472         -  HMENU hSubMenu;
  4473         -  HBITMAP hbmpChecked;
  4474         -  HBITMAP hbmpUnchecked;
  4475         -  ULONG_PTR dwItemData;
  4476         -  LPWSTR dwTypeData;
  4477         -  UINT cch;
  4478         -// #if(WINVER >= 0x0500)
  4479         -  HBITMAP hbmpItem;
  4480         -// #endif /* WINVER >= 0x0500 */
  4481         -}
  4482         -alias tagMENUITEMINFOW MENUITEMINFOW;
  4483         -alias tagMENUITEMINFOW* LPMENUITEMINFOW;
  4484         -
  4485         -// #ifdef UNICODE
  4486         -alias MENUITEMINFOW MENUITEMINFO;
  4487         -alias LPMENUITEMINFOW LPMENUITEMINFO;
  4488         -// #else
  4489         -// ...
  4490         -// #endif // UNICODE
  4491         -alias MENUITEMINFOA* LPCMENUITEMINFOA;
  4492         -alias MENUITEMINFOW* LPCMENUITEMINFOW;
  4493         -// #ifdef UNICODE
  4494         -alias LPCMENUITEMINFOW LPCMENUITEMINFO;
  4495         -// #else
  4496         -// ...
  4497         -// #endif // UNICODE
  4498         -
  4499         -extern(Windows) export BOOL InsertMenuItemA(
  4500         -  HMENU,
  4501         -  UINT,
  4502         -  BOOL,
  4503         -  LPCMENUITEMINFOA);
  4504         -extern(Windows) export BOOL InsertMenuItemW(
  4505         -  HMENU,
  4506         -  UINT,
  4507         -  BOOL,
  4508         -  LPCMENUITEMINFOW);
  4509         -// #ifdef UNICODE
         4495  +alias GetTabbedTextExtentW GetTabbedTextExtent;
         4496  +alias GetUserObjectInformationW GetUserObjectInformation;
         4497  +alias GetWindowLongW GetWindowLong;
         4498  +alias GetWindowLongPtrW GetWindowLongPtr;
         4499  +alias GetWindowTextW GetWindowText;
         4500  +alias GetWindowTextLengthW GetWindowTextLength;
         4501  +alias GetAltTabInfoW GetAltTabInfo;
         4502  +alias GetWindowModuleFileNameW GetWindowModuleFileName;
         4503  +alias GrayStringW GrayString;
         4504  +alias InsertMenuW InsertMenu;
  4510   4505   alias InsertMenuItemW InsertMenuItem;
  4511         -// #else
  4512         -// #...
  4513         -// #endif // !UNICODE
  4514         -
  4515         -extern(Windows) export BOOL GetMenuItemInfoA(
  4516         -  HMENU,
  4517         -  UINT,
  4518         -  BOOL,
  4519         -  LPMENUITEMINFOA);
  4520         -extern(Windows) export BOOL GetMenuItemInfoW(
  4521         -  HMENU,
  4522         -  UINT,
  4523         -  BOOL,
  4524         -  LPMENUITEMINFOW);
  4525         -// #ifdef UNICODE
  4526         -alias GetMenuItemInfoW GetMenuItemInfo;
  4527         -// #else
  4528         -// #...
  4529         -// #endif // !UNICODE
  4530         -
  4531         -extern(Windows) export BOOL SetMenuItemInfoA(
  4532         -  HMENU,
  4533         -  UINT,
  4534         -  BOOL,
  4535         -  LPCMENUITEMINFOA);
  4536         -extern(Windows) export BOOL SetMenuItemInfoW(
  4537         -  HMENU,
  4538         -  UINT,
  4539         -  BOOL,
  4540         -  LPCMENUITEMINFOW);
  4541         -// #ifdef UNICODE
         4506  +alias IsCharAlphaW IsCharAlpha;
         4507  +alias IsCharAlphaNumericW IsCharAlphaNumeric;
         4508  +alias IsCharLowerW IsCharLower;
         4509  +alias IsCharUpperW IsCharUpper;
         4510  +alias IsDialogMessageW IsDialogMessage;
         4511  +alias LoadAcceleratorsW LoadAccelerators;
         4512  +alias LoadBitmapW LoadBitmap;
         4513  +alias LoadCursorW LoadCursor;
         4514  +alias LoadCursorFromFileW LoadCursorFromFile;
         4515  +alias LoadIconW LoadIcon;
         4516  +alias LoadImageW LoadImage;
         4517  +alias LoadKeyboardLayoutW LoadKeyboardLayout;
         4518  +alias LoadMenuW LoadMenu;
         4519  +alias LoadMenuIndirectW LoadMenuIndirect;
         4520  +alias LoadStringW LoadString;
         4521  +alias MapVirtualKeyW MapVirtualKey;
         4522  +alias MapVirtualKeyExW MapVirtualKeyEx;
         4523  +alias MessageBoxW MessageBox;
         4524  +alias MessageBoxExW MessageBoxEx;
         4525  +alias MessageBoxIndirectW MessageBoxIndirect;
         4526  +alias ModifyMenuW ModifyMenu;
         4527  +alias OemToCharW OemToChar;
         4528  +alias OemToCharBuffW OemToCharBuff;
         4529  +alias OpenDesktopW OpenDesktop;
         4530  +alias OpenWindowStationW OpenWindowStation;
         4531  +alias PeekMessageW PeekMessage;
         4532  +alias PostMessageW PostMessage;
         4533  +alias PostThreadMessageW PostThreadMessage;
         4534  +alias RealGetWindowClassW RealGetWindowClass;
         4535  +alias RegisterClassW RegisterClass;
         4536  +alias RegisterClassExW RegisterClassEx;
         4537  +alias RegisterClipboardFormatW RegisterClipboardFormat;
         4538  +static if (WINVER >= 0x500) {
         4539  +alias RegisterDeviceNotificationW RegisterDeviceNotification;
         4540  +}
         4541  +alias RegisterWindowMessageW RegisterWindowMessage;
         4542  +alias RemovePropW RemoveProp;
         4543  +alias SendDlgItemMessageW SendDlgItemMessage;
         4544  +alias SendMessageW SendMessage;
         4545  +alias SendMessageCallbackW SendMessageCallback;
         4546  +alias SendMessageTimeoutW SendMessageTimeout;
         4547  +alias SendNotifyMessageW SendNotifyMessage;
         4548  +alias SetClassLongW SetClassLong;
         4549  +alias SetDlgItemTextW SetDlgItemText;
  4542   4550   alias SetMenuItemInfoW SetMenuItemInfo;
  4543         -// #else
  4544         -// #...
  4545         -// #endif // !UNICODE
  4546         -
  4547         -enum : uint { GMDI_USEDISABLED = 0x0001 }
  4548         -enum : uint { GMDI_GOINTOPOPUPS = 0x0002 }
         4551  +alias SetPropW SetProp;
         4552  +alias SetUserObjectInformationW SetUserObjectInformation;
         4553  +alias SetWindowLongW SetWindowLong;
         4554  +alias SetWindowLongPtrW SetWindowLongPtr;
         4555  +alias SetWindowsHookW SetWindowsHook;
         4556  +alias SetWindowsHookExW SetWindowsHookEx;
         4557  +alias SetWindowTextW SetWindowText;
         4558  +alias SystemParametersInfoW SystemParametersInfo;
         4559  +alias TabbedTextOutW TabbedTextOut;
         4560  +alias TranslateAcceleratorW TranslateAccelerator;
         4561  +alias UnregisterClassW UnregisterClass;
         4562  +alias VkKeyScanW VkKeyScan;
         4563  +alias VkKeyScanExW VkKeyScanEx;
         4564  +alias WinHelpW WinHelp;
         4565  +alias wsprintfW wsprintf;
         4566  +alias wvsprintfW wvsprintf;
  4549   4567   
  4550         -extern(Windows) export UINT GetMenuDefaultItem(HMENU hMenu, UINT fByPos, UINT gmdiFlags);
  4551         -extern(Windows) export BOOL SetMenuDefaultItem(HMENU hMenu, UINT uItem, UINT fByPos);
  4552         -
  4553         -extern(Windows) export BOOL GetMenuItemRect(HWND hWnd, HMENU hMenu, UINT uItem, LPRECT lprcItem);
  4554         -extern(Windows) export int MenuItemFromPoint(HWND hWnd, HMENU hMenu, POINT ptScreen);
  4555         -// #endif /* WINVER >= 0x0400 */
         4568  +alias ChangeDisplaySettingsW ChangeDisplaySettings;
         4569  +alias ChangeDisplaySettingsExW ChangeDisplaySettingsEx;
         4570  +alias CreateDesktopW CreateDesktop;
         4571  +alias EnumDisplaySettingsW EnumDisplaySettings;
         4572  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
         4573  +alias EnumDisplaySettingsExW EnumDisplaySettingsEx;
         4574  +}
         4575  +alias EnumDisplayDevicesW EnumDisplayDevices;
  4556   4576   
  4557         -enum : uint { TPM_LEFTBUTTON = 0x0000 }
  4558         -enum : uint { TPM_RIGHTBUTTON = 0x0002 }
  4559         -enum : uint { TPM_LEFTALIGN = 0x0000 }
  4560         -enum : uint { TPM_CENTERALIGN = 0x0004 }
  4561         -enum : uint { TPM_RIGHTALIGN = 0x0008 }
  4562         -// #if(WINVER >= 0x0400)
  4563         -enum : uint { TPM_TOPALIGN = 0x0000 }
  4564         -enum : uint { TPM_VCENTERALIGN = 0x0010 }
  4565         -enum : uint { TPM_BOTTOMALIGN = 0x0020 }
         4577  +} else { // ANSI
  4566   4578   
  4567         -enum : uint { TPM_HORIZONTAL = 0x0000 }
  4568         -enum : uint { TPM_VERTICAL = 0x0040 }
  4569         -enum : uint { TPM_NONOTIFY = 0x0080 }
  4570         -enum : uint { TPM_RETURNCMD = 0x0100 }
  4571         -// #endif /* WINVER >= 0x0400 */
  4572         -// #if(WINVER >= 0x0500)
  4573         -enum : uint { TPM_RECURSE = 0x0001 }
  4574         -enum : uint { TPM_HORPOSANIMATION = 0x0400 }
  4575         -enum : uint { TPM_HORNEGANIMATION = 0x0800 }
  4576         -enum : uint { TPM_VERPOSANIMATION = 0x1000 }
  4577         -enum : uint { TPM_VERNEGANIMATION = 0x2000 }
  4578         -// #if(_WIN32_WINNT >= 0x0500)
  4579         -enum : uint { TPM_NOANIMATION = 0x4000 }
  4580         -// #endif /* _WIN32_WINNT >= 0x0500 */
  4581         -// #if(_WIN32_WINNT >= 0x0501)
  4582         -enum : uint { TPM_LAYOUTRTL = 0x8000 }
  4583         -// #endif /* _WIN32_WINNT >= 0x0501 */
  4584         -// #endif /* WINVER >= 0x0500 */
         4579  +alias EDITWORDBREAKPROCA EDITWORDBREAKPROC;
         4580  +alias PROPENUMPROCA PROPENUMPROC;
         4581  +alias PROPENUMPROCEXA PROPENUMPROCEX;
         4582  +alias DESKTOPENUMPROCA DESKTOPENUMPROC;
         4583  +alias WINSTAENUMPROCA WINSTAENUMPROC;
         4584  +alias MAKEINTRESOURCEA MAKEINTRESOURCE;
  4585   4585   
  4586         -// #endif /* !NOMENUS */
  4587         -
  4588         -// #if(WINVER >= 0x0400)
  4589         -
  4590         -struct tagDROPSTRUCT {
  4591         -  HWND hwndSource;
  4592         -  HWND hwndSink;
  4593         -  DWORD wFmt;
  4594         -  ULONG_PTR dwData;
  4595         -  POINT ptDrop;
  4596         -  DWORD dwControlData;
  4597         -}
  4598         -alias tagDROPSTRUCT DROPSTRUCT;
  4599         -alias tagDROPSTRUCT* PDROPSTRUCT;
  4600         -alias tagDROPSTRUCT* LPDROPSTRUCT;
  4601         -
  4602         -enum : uint { DOF_EXECUTABLE = 0x8001 }
  4603         -enum : uint { DOF_DOCUMENT = 0x8002 }
  4604         -enum : uint { DOF_DIRECTORY = 0x8003 }
  4605         -enum : uint { DOF_MULTIPLE = 0x8004 }
  4606         -enum : uint { DOF_PROGMAN = 0x0001 }
  4607         -enum : uint { DOF_SHELLDATA = 0x0002 }
         4586  +alias WNDCLASSA WNDCLASS;
         4587  +alias WNDCLASSEXA WNDCLASSEX;
         4588  +alias MENUITEMINFOA MENUITEMINFO;
         4589  +alias LPCMENUITEMINFOA LPCMENUITEMINFO;
         4590  +alias MSGBOXPARAMSA MSGBOXPARAMS;
         4591  +alias HIGHCONTRASTA HIGHCONTRAST;
         4592  +alias SERIALKEYSA SERIALKEYS;
         4593  +alias SOUNDSENTRYA SOUNDSENTRY;
         4594  +alias CREATESTRUCTA CREATESTRUCT;
         4595  +alias CBT_CREATEWNDA CBT_CREATEWND;
         4596  +alias MDICREATESTRUCTA MDICREATESTRUCT;
         4597  +alias MULTIKEYHELPA MULTIKEYHELP;
         4598  +alias MONITORINFOEXA MONITORINFOEX;
         4599  +alias ICONMETRICSA ICONMETRICS;
         4600  +alias NONCLIENTMETRICSA NONCLIENTMETRICS;
  4608   4601   
  4609         -enum : uint { DO_DROPFILE = 0x454C4946 }
  4610         -enum : uint { DO_PRINTFILE = 0x544E5250 }
  4611         -
  4612         -extern(Windows) export DWORD DragObject(
  4613         -  HWND,
  4614         -  HWND,
  4615         -  UINT,
  4616         -  ULONG_PTR,
  4617         -  HCURSOR);
  4618         -
  4619         -extern(Windows) export BOOL DragDetect(
  4620         -  HWND,
  4621         -  POINT);
  4622         -// #endif /* WINVER >= 0x0400 */
  4623         -
  4624         -extern(Windows) export BOOL DrawIcon(
  4625         -  HDC hDC,
  4626         -  int X,
  4627         -  int Y,
  4628         -  HICON hIcon);
  4629         -
  4630         -// #ifndef NODRAWTEXT
  4631         -
  4632         -enum : uint { DT_TOP = 0x00000000 }
  4633         -enum : uint { DT_LEFT = 0x00000000 }
  4634         -enum : uint { DT_CENTER = 0x00000001 }
  4635         -enum : uint { DT_RIGHT = 0x00000002 }
  4636         -enum : uint { DT_VCENTER = 0x00000004 }
  4637         -enum : uint { DT_BOTTOM = 0x00000008 }
  4638         -enum : uint { DT_WORDBREAK = 0x00000010 }
  4639         -enum : uint { DT_SINGLELINE = 0x00000020 }
  4640         -enum : uint { DT_EXPANDTABS = 0x00000040 }
  4641         -enum : uint { DT_TABSTOP = 0x00000080 }
  4642         -enum : uint { DT_NOCLIP = 0x00000100 }
  4643         -enum : uint { DT_EXTERNALLEADING = 0x00000200 }
  4644         -enum : uint { DT_CALCRECT = 0x00000400 }
  4645         -enum : uint { DT_NOPREFIX = 0x00000800 }
  4646         -enum : uint { DT_INTERNAL = 0x00001000 }
  4647         -
  4648         -// #if(WINVER >= 0x0400)
  4649         -enum : uint { DT_EDITCONTROL = 0x00002000 }
  4650         -enum : uint { DT_PATH_ELLIPSIS = 0x00004000 }
  4651         -enum : uint { DT_END_ELLIPSIS = 0x00008000 }
  4652         -enum : uint { DT_MODIFYSTRING = 0x00010000 }
  4653         -enum : uint { DT_RTLREADING = 0x00020000 }
  4654         -enum : uint { DT_WORD_ELLIPSIS = 0x00040000 }
  4655         -// #if(WINVER >= 0x0500)
  4656         -enum : uint { DT_NOFULLWIDTHCHARBREAK = 0x00080000 }
  4657         -// #if(_WIN32_WINNT >= 0x0500)
  4658         -enum : uint { DT_HIDEPREFIX = 0x00100000 }
  4659         -enum : uint { DT_PREFIXONLY = 0x00200000 }
  4660         -// #endif /* _WIN32_WINNT >= 0x0500 */
  4661         -// #endif /* WINVER >= 0x0500 */
  4662         -
  4663         -struct tagDRAWTEXTPARAMS {
  4664         -  UINT cbSize;
  4665         -  int iTabLength;
  4666         -  int iLeftMargin;
  4667         -  int iRightMargin;
  4668         -  UINT uiLengthDrawn;
         4602  +alias AppendMenuA AppendMenu;
         4603  +alias BroadcastSystemMessageA BroadcastSystemMessage;
         4604  +static if (_WIN32_WINNT >= 0x501) {
         4605  +alias BroadcastSystemMessageExA BroadcastSystemMessageEx;
         4606  +}
         4607  +alias CallMsgFilterA CallMsgFilter;
         4608  +alias CallWindowProcA CallWindowProc;
         4609  +alias ChangeMenuA ChangeMenu;
         4610  +alias CharLowerA CharLower;
         4611  +alias CharLowerBuffA CharLowerBuff;
         4612  +alias CharNextA CharNext;
         4613  +alias CharNextExA CharNextEx;
         4614  +alias CharPrevA CharPrev;
         4615  +alias CharPrevExA CharPrevEx;
         4616  +alias CharToOemA CharToOem;
         4617  +alias CharToOemBuffA CharToOemBuff;
         4618  +alias CharUpperA CharUpper;
         4619  +alias CharUpperBuffA CharUpperBuff;
         4620  +alias CopyAcceleratorTableA CopyAcceleratorTable;
         4621  +alias CreateAcceleratorTableA CreateAcceleratorTable;
         4622  +alias CreateDialogA CreateDialog;
         4623  +alias CreateDialogIndirectA CreateDialogIndirect;
         4624  +alias CreateDialogIndirectParamA CreateDialogIndirectParam;
         4625  +alias CreateDialogParamA CreateDialogParam;
         4626  +alias CreateMDIWindowA CreateMDIWindow;
         4627  +alias CreateWindowA CreateWindow;
         4628  +alias CreateWindowExA CreateWindowEx;
         4629  +alias CreateWindowStationA CreateWindowStation;
         4630  +alias DefDlgProcA DefDlgProc;
         4631  +alias DefFrameProcA DefFrameProc;
         4632  +alias DefMDIChildProcA DefMDIChildProc;
         4633  +alias DefWindowProcA DefWindowProc;
         4634  +alias DialogBoxA DialogBox;
         4635  +alias DialogBoxIndirectA DialogBoxIndirect;
         4636  +alias DialogBoxIndirectParamA DialogBoxIndirectParam;
         4637  +alias DialogBoxParamA DialogBoxParam;
         4638  +alias DispatchMessageA DispatchMessage;
         4639  +alias DlgDirListA DlgDirList;
         4640  +alias DlgDirListComboBoxA DlgDirListComboBox;
         4641  +alias DlgDirSelectComboBoxExA DlgDirSelectComboBoxEx;
         4642  +alias DlgDirSelectExA DlgDirSelectEx;
         4643  +alias DrawStateA DrawState;
         4644  +alias DrawTextA DrawText;
         4645  +alias DrawTextExA DrawTextEx;
         4646  +alias EnumDesktopsA EnumDesktops;
         4647  +alias EnumPropsA EnumProps;
         4648  +alias EnumPropsExA EnumPropsEx;
         4649  +alias EnumWindowStationsA EnumWindowStations;
         4650  +alias FindWindowA FindWindow;
         4651  +alias FindWindowExA FindWindowEx;
         4652  +alias GetClassInfoA GetClassInfo;
         4653  +alias GetClassInfoExA GetClassInfoEx;
         4654  +alias GetClassLongA GetClassLong;
         4655  +alias GetClassNameA GetClassName;
         4656  +alias GetClipboardFormatNameA GetClipboardFormatName;
         4657  +alias GetDlgItemTextA GetDlgItemText;
         4658  +alias GetKeyboardLayoutNameA GetKeyboardLayoutName;
         4659  +alias GetKeyNameTextA GetKeyNameText;
         4660  +alias GetMenuItemInfoA GetMenuItemInfo;
         4661  +alias GetMenuStringA GetMenuString;
         4662  +alias GetMessageA GetMessage;
         4663  +static if (WINVER >=0x410) {
         4664  +alias GetMonitorInfoA GetMonitorInfo;
         4665  +}
         4666  +alias GetPropA GetProp;
         4667  +static if (_WIN32_WINNT >= 0x501) {
         4668  +alias GetRawInputDeviceInfoA GetRawInputDeviceInfo;
         4669  +}
         4670  +alias GetTabbedTextExtentA GetTabbedTextExtent;
         4671  +alias GetUserObjectInformationA GetUserObjectInformation;
         4672  +alias GetWindowLongA GetWindowLong;
         4673  +alias GetWindowLongPtrA GetWindowLongPtr;
         4674  +alias GetWindowTextA GetWindowText;
         4675  +alias GetWindowTextLengthA GetWindowTextLength;
         4676  +alias GetAltTabInfoA GetAltTabInfo;
         4677  +alias GetWindowModuleFileNameA GetWindowModuleFileName;
         4678  +alias GrayStringA GrayString;
         4679  +alias InsertMenuA InsertMenu;
         4680  +alias InsertMenuItemA InsertMenuItem;
         4681  +alias IsCharAlphaA IsCharAlpha;
         4682  +alias IsCharAlphaNumericA IsCharAlphaNumeric;
         4683  +alias IsCharLowerA IsCharLower;
         4684  +alias IsCharUpperA IsCharUpper;
         4685  +alias IsDialogMessageA IsDialogMessage;
         4686  +alias LoadAcceleratorsA LoadAccelerators;
         4687  +alias LoadBitmapA LoadBitmap;
         4688  +alias LoadCursorA LoadCursor;
         4689  +alias LoadIconA LoadIcon;
         4690  +alias LoadCursorFromFileA LoadCursorFromFile;
         4691  +alias LoadImageA LoadImage;
         4692  +alias LoadKeyboardLayoutA LoadKeyboardLayout;
         4693  +alias LoadMenuA LoadMenu;
         4694  +alias LoadMenuIndirectA LoadMenuIndirect;
         4695  +alias LoadStringA LoadString;
         4696  +alias MapVirtualKeyA MapVirtualKey;
         4697  +alias MapVirtualKeyExA MapVirtualKeyEx;
         4698  +alias MessageBoxA MessageBox;
         4699  +alias MessageBoxExA MessageBoxEx;
         4700  +alias MessageBoxIndirectA MessageBoxIndirect;
         4701  +alias ModifyMenuA ModifyMenu;
         4702  +alias OemToCharA OemToChar;
         4703  +alias OemToCharBuffA OemToCharBuff;
         4704  +alias OpenDesktopA OpenDesktop;
         4705  +alias OpenWindowStationA OpenWindowStation;
         4706  +alias PeekMessageA PeekMessage;
         4707  +alias PostMessageA PostMessage;
         4708  +alias PostThreadMessageA PostThreadMessage;
         4709  +alias RealGetWindowClassA RealGetWindowClass;
         4710  +alias RegisterClassA RegisterClass;
         4711  +alias RegisterClassExA RegisterClassEx;
         4712  +alias RegisterClipboardFormatA RegisterClipboardFormat;
         4713  +static if (WINVER >= 0x500) {
         4714  +alias RegisterDeviceNotificationA RegisterDeviceNotification;
  4669   4715   }
  4670         -alias tagDRAWTEXTPARAMS DRAWTEXTPARAMS;
  4671         -alias tagDRAWTEXTPARAMS* LPDRAWTEXTPARAMS;
  4672         -
  4673         -// #endif /* WINVER >= 0x0400 */
  4674         -
  4675         -extern(Windows) export int DrawTextA(
  4676         -  HDC hDC,
  4677         -  LPCSTR lpString,
  4678         -  int nCount,
  4679         -  LPRECT lpRect,
  4680         -  UINT uFormat);
  4681         -extern(Windows) export int DrawTextW(
  4682         -  HDC hDC,
  4683         -  LPCWSTR lpString,
  4684         -  int nCount,
  4685         -  LPRECT lpRect,
  4686         -  UINT uFormat);
  4687         -// #ifdef UNICODE
  4688         -alias DrawTextW DrawText;
  4689         -// #else
  4690         -// #...
  4691         -// #endif // !UNICODE
  4692         -
  4693         -// #if(WINVER >= 0x0400)
  4694         -extern(Windows) export int DrawTextExA(
  4695         -  HDC,
  4696         -  LPSTR,
  4697         -  int,
  4698         -  LPRECT,
  4699         -  UINT,
  4700         -  LPDRAWTEXTPARAMS);
  4701         -extern(Windows) export int DrawTextExW(
  4702         -  HDC,
  4703         -  LPWSTR,
  4704         -  int,
  4705         -  LPRECT,
  4706         -  UINT,
  4707         -  LPDRAWTEXTPARAMS);
  4708         -// #ifdef UNICODE
  4709         -alias DrawTextExW DrawTextEx;
  4710         -// #else
  4711         -// #...
  4712         -// #endif // !UNICODE
  4713         -// #endif /* WINVER >= 0x0400 */
  4714         -
  4715         -// #endif /* !NODRAWTEXT */
         4716  +alias RegisterWindowMessageA RegisterWindowMessage;
         4717  +alias RemovePropA RemoveProp;
         4718  +alias SendDlgItemMessageA SendDlgItemMessage;
         4719  +alias SendMessageA SendMessage;
         4720  +alias SendMessageCallbackA SendMessageCallback;
         4721  +alias SendMessageTimeoutA SendMessageTimeout;
         4722  +alias SendNotifyMessageA SendNotifyMessage;
         4723  +alias SetClassLongA SetClassLong;
         4724  +alias SetDlgItemTextA SetDlgItemText;
         4725  +alias SetMenuItemInfoA SetMenuItemInfo;
         4726  +alias SetPropA SetProp;
         4727  +alias SetUserObjectInformationA SetUserObjectInformation;
         4728  +alias SetWindowLongA SetWindowLong;
         4729  +alias SetWindowLongPtrA SetWindowLongPtr;
         4730  +alias SetWindowsHookA SetWindowsHook;
         4731  +alias SetWindowsHookExA SetWindowsHookEx;
         4732  +alias SetWindowTextA SetWindowText;
         4733  +alias SystemParametersInfoA SystemParametersInfo;
         4734  +alias TabbedTextOutA TabbedTextOut;
         4735  +alias TranslateAcceleratorA TranslateAccelerator;
         4736  +alias UnregisterClassA UnregisterClass;
         4737  +alias VkKeyScanA VkKeyScan;
         4738  +alias VkKeyScanExA VkKeyScanEx;
         4739  +alias WinHelpA WinHelp;
         4740  +alias wsprintfA wsprintf;
         4741  +alias wvsprintfA wvsprintf;
  4716   4742   
  4717         -extern(Windows) export BOOL GrayStringA(
  4718         -  HDC hDC,
  4719         -  HBRUSH hBrush,
  4720         -  GRAYSTRINGPROC lpOutputFunc,
  4721         -  LPARAM lpData,
  4722         -  int nCount,
  4723         -  int X,
  4724         -  int Y,
  4725         -  int nWidth,
  4726         -  int nHeight);
  4727         -extern(Windows) export BOOL GrayStringW(
  4728         -  HDC hDC,
  4729         -  HBRUSH hBrush,
  4730         -  GRAYSTRINGPROC lpOutputFunc,
  4731         -  LPARAM lpData,
  4732         -  int nCount,
  4733         -  int X,
  4734         -  int Y,
  4735         -  int nWidth,
  4736         -  int nHeight);
  4737         -// #ifdef UNICODE
  4738         -alias GrayStringW GrayString;
  4739         -// #else
  4740         -// #...
  4741         -// #endif // !UNICODE
  4742         -
  4743         -// #if(WINVER >= 0x0400)
  4744         -
  4745         -enum : uint { DST_COMPLEX = 0x0000 }
  4746         -enum : uint { DST_TEXT = 0x0001 }
  4747         -enum : uint { DST_PREFIXTEXT = 0x0002 }
  4748         -enum : uint { DST_ICON = 0x0003 }
  4749         -enum : uint { DST_BITMAP = 0x0004 }
  4750         -
  4751         -enum : uint { DSS_NORMAL = 0x0000 }
  4752         -enum : uint { DSS_UNION = 0x0010 }
  4753         -enum : uint { DSS_DISABLED = 0x0020 }
  4754         -enum : uint { DSS_MONO = 0x0080 }
  4755         -// #if(_WIN32_WINNT >= 0x0500)
  4756         -enum : uint { DSS_HIDEPREFIX = 0x0200 }
  4757         -enum : uint { DSS_PREFIXONLY = 0x0400 }
  4758         -// #endif /* _WIN32_WINNT >= 0x0500 */
  4759         -enum : uint { DSS_RIGHT = 0x8000 }
         4743  +alias ChangeDisplaySettingsA ChangeDisplaySettings;
         4744  +alias ChangeDisplaySettingsExA ChangeDisplaySettingsEx;
         4745  +alias CreateDesktopA CreateDesktop;
         4746  +alias EnumDisplaySettingsA EnumDisplaySettings;
         4747  +static if ((_WIN32_WINNT >= 0x500) || (_WIN32_WINDOWS >= 0x410)) {
         4748  + alias EnumDisplaySettingsExA EnumDisplaySettingsEx;
         4749  +}
         4750  + alias EnumDisplayDevicesA EnumDisplayDevices;
         4751  +}
         4752  +
  4760   4753   
  4761         -extern(Windows) export BOOL DrawStateA(
  4762         -  HDC,
  4763         -  HBRUSH,
  4764         -  DRAWSTATEPROC,
  4765         -  LPARAM,
  4766         -  WPARAM,
  4767         -  int,
  4768         -  int,
  4769         -  int,
  4770         -  int,
  4771         -  UINT);
  4772         -extern(Windows) export BOOL DrawStateW(
  4773         -  HDC,
  4774         -  HBRUSH,
  4775         -  DRAWSTATEPROC,
  4776         -  LPARAM,
  4777         -  WPARAM,
  4778         -  int,
  4779         -  int,
  4780         -  int,
  4781         -  int,
  4782         -  UINT);
  4783         -// #ifdef UNICODE
  4784         -alias DrawStateW DrawState;
  4785         -// #else
  4786         -// #...
  4787         -// #endif // !UNICODE
  4788         -// #endif /* WINVER >= 0x0400 */
  4789         -
  4790         -extern(Windows) export LONG TabbedTextOutA(
  4791         -  HDC hDC,
  4792         -  int X,
  4793         -  int Y,
  4794         -  LPCSTR lpString,
  4795         -  int nCount,
  4796         -  int nTabPositions,
  4797         -  INT *lpnTabStopPositions,
  4798         -  int nTabOrigin);
  4799         -extern(Windows) export LONG TabbedTextOutW(
  4800         -  HDC hDC,
  4801         -  int X,
  4802         -  int Y,
  4803         -  LPCWSTR lpString,
  4804         -  int nCount,
  4805         -  int nTabPositions,
  4806         -  INT *lpnTabStopPositions,
  4807         -  int nTabOrigin);
  4808         -// #ifdef UNICODE
  4809         -alias TabbedTextOutW TabbedTextOut;
  4810         -// #else
  4811         -// #...
  4812         -// #endif // !UNICODE
  4813         -
  4814         -extern(Windows) export DWORD GetTabbedTextExtentA(
  4815         -  HDC hDC,
  4816         -  LPCSTR lpString,
  4817         -  int nCount,
  4818         -  int nTabPositions,
  4819         -  INT *lpnTabStopPositions);
  4820         -extern(Windows) export DWORD GetTabbedTextExtentW(
  4821         -  HDC hDC,
  4822         -  LPCWSTR lpString,
  4823         -  int nCount,
  4824         -  int nTabPositions,
  4825         -  INT *lpnTabStopPositions);
  4826         -// #ifdef UNICODE
  4827         -alias GetTabbedTextExtentW GetTabbedTextExtent;
  4828         -// #else
  4829         -// #...
  4830         -// #endif // !UNICODE
  4831         -
  4832         -extern(Windows) export BOOL UpdateWindow(
  4833         -  HWND hWnd);
  4834         -
  4835         -extern(Windows) export HWND SetActiveWindow(
  4836         -  HWND hWnd);
  4837         -
  4838         -extern(Windows) export HWND GetForegroundWindow();
  4839         -
  4840         -// #if(WINVER >= 0x0400)
  4841         -extern(Windows) export BOOL PaintDesktop(
  4842         -  HDC hdc);
  4843         -
  4844         -// #endif /* WINVER >= 0x0400 */
  4845         -
  4846         -extern(Windows) export BOOL SetForegroundWindow(
  4847         -  HWND hWnd);
  4848         -
  4849         -// #if(_WIN32_WINNT >= 0x0500)
  4850         -extern(Windows) export BOOL AllowSetForegroundWindow(
  4851         -  DWORD dwProcessId);
  4852         -
  4853         -enum : DWORD { ASFW_ANY = cast(DWORD)-1 }
  4854         -
  4855         -extern(Windows) export BOOL LockSetForegroundWindow(
  4856         -  UINT uLockCode);
  4857         -
  4858         -enum : uint { LSFW_LOCK = 1 }
  4859         -enum : uint { LSFW_UNLOCK = 2 }
  4860         -
  4861         -// #endif /* _WIN32_WINNT >= 0x0500 */
  4862         -
  4863         -extern(Windows) export HWND WindowFromDC(
  4864         -  HDC hDC);
  4865         -
  4866         -extern(Windows) export HDC GetDC(
  4867         -  HWND hWnd);
  4868         -
  4869         -extern(Windows) export HDC GetDCEx(
  4870         -  HWND hWnd,
  4871         -  HRGN hrgnClip,
  4872         -  DWORD flags);
  4873         -
  4874         -enum : uint { DCX_WINDOW = 0x00000001 }
  4875         -enum : uint { DCX_CACHE = 0x00000002 }
  4876         -enum : uint { DCX_NORESETATTRS = 0x00000004 }
  4877         -enum : uint { DCX_CLIPCHILDREN = 0x00000008 }
  4878         -enum : uint { DCX_CLIPSIBLINGS = 0x00000010 }
  4879         -enum : uint { DCX_PARENTCLIP = 0x00000020 }
  4880         -enum : uint { DCX_EXCLUDERGN = 0x00000040 }
  4881         -enum : uint { DCX_INTERSECTRGN = 0x00000080 }
  4882         -enum : uint { DCX_EXCLUDEUPDATE = 0x00000100 }
  4883         -enum : uint { DCX_INTERSECTUPDATE = 0x00000200 }
  4884         -enum : uint { DCX_LOCKWINDOWUPDATE = 0x00000400 }
  4885         -
  4886         -enum : uint { DCX_VALIDATE = 0x00200000 }
  4887         -
  4888         -extern(Windows) export HDC GetWindowDC(
  4889         -  HWND hWnd);
  4890         -
  4891         -extern(Windows) export int ReleaseDC(
  4892         -  HWND hWnd,
  4893         -  HDC hDC);
  4894         -
  4895         -extern(Windows) export HDC BeginPaint(
  4896         -  HWND hWnd,
  4897         -  LPPAINTSTRUCT lpPaint);
  4898         -
  4899         -extern(Windows) export BOOL EndPaint(
  4900         -  HWND hWnd,
  4901         -  PAINTSTRUCT *lpPaint);
  4902         -
  4903         -extern(Windows) export BOOL GetUpdateRect(
  4904         -  HWND hWnd,
  4905         -  LPRECT lpRect,
  4906         -  BOOL bErase);
  4907         -
  4908         -extern(Windows) export int GetUpdateRgn(
  4909         -  HWND hWnd,
  4910         -  HRGN hRgn,
  4911         -  BOOL bErase);
  4912         -
  4913         -extern(Windows) export int SetWindowRgn(
  4914         -  HWND hWnd,
  4915         -  HRGN hRgn,
  4916         -  BOOL bRedraw);
  4917         -
  4918         -extern(Windows) export int GetWindowRgn(
  4919         -  HWND hWnd,
  4920         -  HRGN hRgn);
  4921         -
  4922         -// #if(_WIN32_WINNT >= 0x0501)
  4923         -
  4924         -extern(Windows) export int GetWindowRgnBox(
  4925         -  HWND hWnd,
  4926         -  LPRECT lprc);
  4927         -
  4928         -// #endif /* _WIN32_WINNT >= 0x0501 */
  4929         -
  4930         -extern(Windows) export int ExcludeUpdateRgn(
  4931         -  HDC hDC,
  4932         -  HWND hWnd);
  4933         -
  4934         -extern(Windows) export BOOL InvalidateRect(
  4935         -  HWND hWnd,
  4936         -  RECT *lpRect,
  4937         -  BOOL bErase);
  4938         -
  4939         -extern(Windows) export BOOL ValidateRect(
  4940         -  HWND hWnd,
  4941         -  RECT *lpRect);
  4942         -
  4943         -extern(Windows) export BOOL InvalidateRgn(
  4944         -  HWND hWnd,
  4945         -  HRGN hRgn,
  4946         -  BOOL bErase);
  4947         -
  4948         -extern(Windows) export BOOL ValidateRgn(
  4949         -  HWND hWnd,
  4950         -  HRGN hRgn);
  4951         -
  4952         -extern(Windows) export BOOL RedrawWindow(
  4953         -  HWND hWnd,
  4954         -  RECT *lprcUpdate,
  4955         -  HRGN hrgnUpdate,
  4956         -  UINT flags);
  4957         -
  4958         -enum : uint { RDW_INVALIDATE = 0x0001 }
  4959         -enum : uint { RDW_INTERNALPAINT = 0x0002 }
  4960         -enum : uint { RDW_ERASE = 0x0004 }
  4961         -
  4962         -enum : uint { RDW_VALIDATE = 0x0008 }
  4963         -enum : uint { RDW_NOINTERNALPAINT = 0x0010 }
  4964         -enum : uint { RDW_NOERASE = 0x0020 }
  4965         -
  4966         -enum : uint { RDW_NOCHILDREN = 0x0040 }
  4967         -enum : uint { RDW_ALLCHILDREN = 0x0080 }
  4968         -
  4969         -enum : uint { RDW_UPDATENOW = 0x0100 }
  4970         -enum : uint { RDW_ERASENOW = 0x0200 }
  4971         -
  4972         -enum : uint { RDW_FRAME = 0x0400 }
  4973         -enum : uint { RDW_NOFRAME = 0x0800 }
  4974         -
  4975         -extern(Windows) export BOOL LockWindowUpdate(
  4976         -  HWND hWndLock);
  4977         -
  4978         -extern(Windows) export BOOL ScrollWindow(
  4979         -  HWND hWnd,
  4980         -  int XAmount,
  4981         -  int YAmount,
  4982         -  RECT *lpRect,
  4983         -  RECT *lpClipRect);
  4984         -
  4985         -extern(Windows) export BOOL ScrollDC(
  4986         -  HDC hDC,
  4987         -  int dx,
  4988         -  int dy,
  4989         -  RECT *lprcScroll,
  4990         -  RECT *lprcClip,
  4991         -  HRGN hrgnUpdate,
  4992         -  LPRECT lprcUpdate);
  4993         -
  4994         -extern(Windows) export int ScrollWindowEx(
  4995         -  HWND hWnd,
  4996         -  int dx,
  4997         -  int dy,
  4998         -  RECT *prcScroll,
  4999         -  RECT *prcClip,
  5000         -  HRGN hrgnUpdate,
  5001         -  LPRECT prcUpdate,
  5002         -  UINT flags);
  5003         -
  5004         -enum : uint { SW_SCROLLCHILDREN = 0x0001 }
  5005         -enum : uint { SW_INVALIDATE = 0x0002 }
  5006         -enum : uint { SW_ERASE = 0x0004 }
  5007         -// #if(WINVER >= 0x0500)
  5008         -enum : uint { SW_SMOOTHSCROLL = 0x0010 }
  5009         -// #endif /* WINVER >= 0x0500 */
  5010         -
  5011         -// #ifndef NOSCROLL
  5012         -
  5013         -extern(Windows) export int SetScrollPos(
  5014         -  HWND hWnd,
  5015         -  int nBar,
  5016         -  int nPos,
  5017         -  BOOL bRedraw);
  5018         -
  5019         -extern(Windows) export int GetScrollPos(
  5020         -  HWND hWnd,
  5021         -  int nBar);
  5022         -
  5023         -extern(Windows) export BOOL SetScrollRange(
  5024         -  HWND hWnd,
  5025         -  int nBar,
  5026         -  int nMinPos,
  5027         -  int nMaxPos,
  5028         -  BOOL bRedraw);
  5029         -
  5030         -extern(Windows) export BOOL GetScrollRange(
  5031         -  HWND hWnd,
  5032         -  int nBar,
  5033         -  LPINT lpMinPos,
  5034         -  LPINT lpMaxPos);
  5035         -
  5036         -extern(Windows) export BOOL ShowScrollBar(
  5037         -  HWND hWnd,
  5038         -  int wBar,
  5039         -  BOOL bShow);
  5040         -
  5041         -extern(Windows) export BOOL EnableScrollBar(
  5042         -  HWND hWnd,
  5043         -  UINT wSBflags,
  5044         -  UINT wArrows);
  5045         -
  5046         -enum : uint { ESB_ENABLE_BOTH = 0x0000 }
  5047         -enum : uint { ESB_DISABLE_BOTH = 0x0003 }
  5048         -
  5049         -enum : uint { ESB_DISABLE_LEFT = 0x0001 }
  5050         -enum : uint { ESB_DISABLE_RIGHT = 0x0002 }
  5051         -
  5052         -enum : uint { ESB_DISABLE_UP = 0x0001 }
  5053         -enum : uint { ESB_DISABLE_DOWN = 0x0002 }
  5054         -
  5055         -alias ESB_DISABLE_LEFT ESB_DISABLE_LTUP;
  5056         -alias ESB_DISABLE_RIGHT ESB_DISABLE_RTDN;
  5057         -
  5058         -// #endif  /* !NOSCROLL */
  5059         -
  5060         -extern(Windows) export BOOL SetPropA(
  5061         -  HWND hWnd,
  5062         -  LPCSTR lpString,
  5063         -  HANDLE hData);
  5064         -extern(Windows) export BOOL SetPropW(
  5065         -  HWND hWnd,
  5066         -  LPCWSTR lpString,
  5067         -  HANDLE hData);
  5068         -// #ifdef UNICODE
  5069         -alias SetPropW SetProp;
  5070         -// #else
  5071         -// #...
  5072         -// #endif // !UNICODE
  5073         -
  5074         -extern(Windows) export HANDLE GetPropA(
  5075         -  HWND hWnd,
  5076         -  LPCSTR lpString);
  5077         -extern(Windows) export HANDLE GetPropW(
  5078         -  HWND hWnd,
  5079         -  LPCWSTR lpString);
  5080         -// #ifdef UNICODE
  5081         -alias GetPropW GetProp;
  5082         -// #else
  5083         -// #...
  5084         -// #endif // !UNICODE
  5085         -
  5086         -extern(Windows) export HANDLE RemovePropA(
  5087         -  HWND hWnd,
  5088         -  LPCSTR lpString);
  5089         -extern(Windows) export HANDLE RemovePropW(
  5090         -  HWND hWnd,
  5091         -  LPCWSTR lpString);
  5092         -// #ifdef UNICODE
  5093         -alias RemovePropW RemoveProp;
  5094         -// #else
  5095         -// #...
  5096         -// #endif // !UNICODE
  5097         -
  5098         -extern(Windows) export int EnumPropsExA(
  5099         -  HWND hWnd,
  5100         -  PROPENUMPROCEXA lpEnumFunc,
  5101         -  LPARAM lParam);
  5102         -extern(Windows) export int EnumPropsExW(
  5103         -  HWND hWnd,
  5104         -  PROPENUMPROCEXW lpEnumFunc,
  5105         -  LPARAM lParam);
  5106         -// #ifdef UNICODE
  5107         -alias EnumPropsExW EnumPropsEx;
  5108         -// #else
  5109         -// #...
  5110         -// #endif // !UNICODE
  5111         -
  5112         -extern(Windows) export int EnumPropsA(
  5113         -  HWND hWnd,
  5114         -  PROPENUMPROCA lpEnumFunc);
  5115         -extern(Windows) export int EnumPropsW(
  5116         -  HWND hWnd,
  5117         -  PROPENUMPROCW lpEnumFunc);
  5118         -// #ifdef UNICODE
  5119         -alias EnumPropsW EnumProps;
  5120         -// #else
  5121         -// #...
  5122         -// #endif // !UNICODE
  5123         -
  5124         -extern(Windows) export BOOL SetWindowTextA(
  5125         -  HWND hWnd,
  5126         -  LPCSTR lpString);
  5127         -extern(Windows) export BOOL SetWindowTextW(
  5128         -  HWND hWnd,
  5129         -  LPCWSTR lpString);
  5130         -// #ifdef UNICODE
  5131         -alias SetWindowTextW SetWindowText;
  5132         -// #else
  5133         -// #...
  5134         -// #endif // !UNICODE
  5135         -
  5136         -extern(Windows) export int GetWindowTextA(
  5137         -  HWND hWnd,
  5138         -  LPSTR lpString,
  5139         -  int nMaxCount);
  5140         -extern(Windows) export int GetWindowTextW(
  5141         -  HWND hWnd,
  5142         -  LPWSTR lpString,
  5143         -  int nMaxCount);
  5144         -// #ifdef UNICODE
  5145         -alias GetWindowTextW GetWindowText;
  5146         -// #else
  5147         -// #...
  5148         -// #endif // !UNICODE
  5149         -
  5150         -extern(Windows) export int GetWindowTextLengthA(
  5151         -  HWND hWnd);
  5152         -extern(Windows) export int GetWindowTextLengthW(
  5153         -  HWND hWnd);
  5154         -// #ifdef UNICODE
  5155         -alias GetWindowTextLengthW GetWindowTextLength;
  5156         -// #else
  5157         -// #...
  5158         -// #endif // !UNICODE
  5159         -
  5160         -extern(Windows) export BOOL GetClientRect(
  5161         -  HWND hWnd,
  5162         -  LPRECT lpRect);
  5163         -
  5164         -extern(Windows) export BOOL GetWindowRect(
  5165         -  HWND hWnd,
  5166         -  LPRECT lpRect);
  5167         -
  5168         -extern(Windows) export BOOL AdjustWindowRect(
  5169         -  LPRECT lpRect,
  5170         -  DWORD dwStyle,
  5171         -  BOOL bMenu);
  5172         -
  5173         -extern(Windows) export BOOL AdjustWindowRectEx(
  5174         -  LPRECT lpRect,
  5175         -  DWORD dwStyle,
  5176         -  BOOL bMenu,
  5177         -  DWORD dwExStyle);
  5178         -
  5179         -// #if(WINVER >= 0x0400)
  5180         -enum : uint { HELPINFO_WINDOW = 0x0001 }
  5181         -enum : uint { HELPINFO_MENUITEM = 0x0002 }
  5182         -struct tagHELPINFO {
  5183         -  UINT cbSize;
  5184         -  int iContextType;
  5185         -  int iCtrlId;
  5186         -  HANDLE hItemHandle;
  5187         -  DWORD_PTR dwContextId;
  5188         -  POINT MousePos;
  5189         -}
  5190         -alias tagHELPINFO HELPINFO;
  5191         -alias tagHELPINFO* LPHELPINFO;
  5192         -
  5193         -extern(Windows) export BOOL SetWindowContextHelpId(
  5194         -  HWND,
  5195         -  DWORD);
  5196         -
  5197         -extern(Windows) export DWORD GetWindowContextHelpId(
  5198         -  HWND);
  5199         -
  5200         -extern(Windows) export BOOL SetMenuContextHelpId(
  5201         -  HMENU,
  5202         -  DWORD);
  5203         -
  5204         -extern(Windows) export DWORD GetMenuContextHelpId(
  5205         -  HMENU);
  5206         -
  5207         -// #endif /* WINVER >= 0x0400 */
  5208         -
  5209         -// #ifndef NOMB
  5210         -
  5211         -enum : uint { MB_OK = 0x00000000 }
  5212         -enum : uint { MB_OKCANCEL = 0x00000001 }
  5213         -enum : uint { MB_ABORTRETRYIGNORE = 0x00000002 }
  5214         -enum : uint { MB_YESNOCANCEL = 0x00000003 }
  5215         -enum : uint { MB_YESNO = 0x00000004 }
  5216         -enum : uint { MB_RETRYCANCEL = 0x00000005 }
  5217         -// #if(WINVER >= 0x0500)
  5218         -enum : uint { MB_CANCELTRYCONTINUE = 0x00000006 }
  5219         -// #endif /* WINVER >= 0x0500 */
  5220         -
  5221         -enum : uint { MB_ICONHAND = 0x00000010 }
  5222         -enum : uint { MB_ICONQUESTION = 0x00000020 }
  5223         -enum : uint { MB_ICONEXCLAMATION = 0x00000030 }
  5224         -enum : uint { MB_ICONASTERISK = 0x00000040 }
  5225         -
  5226         -// #if(WINVER >= 0x0400)
  5227         -enum : uint { MB_USERICON = 0x00000080 }
  5228         -alias MB_ICONEXCLAMATION MB_ICONWARNING;
  5229         -alias MB_ICONHAND MB_ICONERROR;
  5230         -// #endif /* WINVER >= 0x0400 */
  5231         -
  5232         -alias MB_ICONASTERISK MB_ICONINFORMATION;
  5233         -alias MB_ICONHAND MB_ICONSTOP;
  5234         -
  5235         -enum : uint { MB_DEFBUTTON1 = 0x00000000 }
  5236         -enum : uint { MB_DEFBUTTON2 = 0x00000100 }
  5237         -enum : uint { MB_DEFBUTTON3 = 0x00000200 }
  5238         -// #if(WINVER >= 0x0400)
  5239         -enum : uint { MB_DEFBUTTON4 = 0x00000300 }
  5240         -// #endif /* WINVER >= 0x0400 */
  5241         -
  5242         -enum : uint { MB_APPLMODAL = 0x00000000 }
  5243         -enum : uint { MB_SYSTEMMODAL = 0x00001000 }
  5244         -enum : uint { MB_TASKMODAL = 0x00002000 }
  5245         -// #if(WINVER >= 0x0400)
  5246         -enum : uint { MB_HELP = 0x00004000 }
  5247         -// #endif /* WINVER >= 0x0400 */
  5248         -
  5249         -enum : uint { MB_NOFOCUS = 0x00008000 }
  5250         -enum : uint { MB_SETFOREGROUND = 0x00010000 }
  5251         -enum : uint { MB_DEFAULT_DESKTOP_ONLY = 0x00020000 }
  5252         -
  5253         -// #if(WINVER >= 0x0400)
  5254         -enum : uint { MB_TOPMOST = 0x00040000 }
  5255         -enum : uint { MB_RIGHT = 0x00080000 }
  5256         -enum : uint { MB_RTLREADING = 0x00100000 }
  5257         -
  5258         -// #endif /* WINVER >= 0x0400 */
  5259         -
  5260         -// #ifdef _WIN32_WINNT
  5261         -// #if (_WIN32_WINNT >= 0x0400)
  5262         -enum : uint { MB_SERVICE_NOTIFICATION = 0x00200000 }
  5263         -// #else
  5264         -// #...
  5265         -// #endif
  5266         -enum : uint { MB_SERVICE_NOTIFICATION_NT3X = 0x00040000 }
  5267         -// #endif
  5268         -
  5269         -enum : uint { MB_TYPEMASK = 0x0000000F }
  5270         -enum : uint { MB_ICONMASK = 0x000000F0 }
  5271         -enum : uint { MB_DEFMASK = 0x00000F00 }
  5272         -enum : uint { MB_MODEMASK = 0x00003000 }
  5273         -enum : uint { MB_MISCMASK = 0x0000C000 }
  5274         -
  5275         -extern(Windows) export int MessageBoxA(
  5276         -  HWND hWnd,
  5277         -  LPCSTR lpText,
  5278         -  LPCSTR lpCaption,
  5279         -  UINT uType);
  5280         -extern(Windows) export int MessageBoxW(
  5281         -  HWND hWnd,
  5282         -  LPCWSTR lpText,
  5283         -  LPCWSTR lpCaption,
  5284         -  UINT uType);
  5285         -// #ifdef UNICODE
  5286         -alias MessageBoxW MessageBox;
  5287         -// #else
  5288         -// #...
  5289         -// #endif // !UNICODE
  5290         -
  5291         -extern(Windows) export int MessageBoxExA(
  5292         -  HWND hWnd,
  5293         -  LPCSTR lpText,
  5294         -  LPCSTR lpCaption,
  5295         -  UINT uType,
  5296         -  WORD wLanguageId);
  5297         -extern(Windows) export int MessageBoxExW(
  5298         -  HWND hWnd,
  5299         -  LPCWSTR lpText,
  5300         -  LPCWSTR lpCaption,
  5301         -  UINT uType,
  5302         -  WORD wLanguageId);
  5303         -// #ifdef UNICODE
  5304         -alias MessageBoxExW MessageBoxEx;
  5305         -// #else
  5306         -// #...
  5307         -// #endif // !UNICODE
  5308         -
  5309         -// #if(WINVER >= 0x0400)
  5310         -
  5311         -extern(Windows) alias void function(LPHELPINFO lpHelpInfo) MSGBOXCALLBACK;
  5312         -
  5313         -struct tagMSGBOXPARAMSA {
  5314         -  UINT cbSize;
  5315         -  HWND hwndOwner;
  5316         -  HINSTANCE hInstance;
  5317         -  LPCSTR lpszText;
  5318         -  LPCSTR lpszCaption;
  5319         -  DWORD dwStyle;
  5320         -  LPCSTR lpszIcon;
  5321         -  DWORD_PTR dwContextHelpId;
  5322         -  MSGBOXCALLBACK lpfnMsgBoxCallback;
  5323         -  DWORD dwLanguageId;
  5324         -}
  5325         -alias tagMSGBOXPARAMSA MSGBOXPARAMSA;
  5326         -alias tagMSGBOXPARAMSA* PMSGBOXPARAMSA;
  5327         -alias tagMSGBOXPARAMSA* LPMSGBOXPARAMSA;
  5328         -
  5329         -struct tagMSGBOXPARAMSW {
  5330         -  UINT cbSize;
  5331         -  HWND hwndOwner;
  5332         -  HINSTANCE hInstance;
  5333         -  LPCWSTR lpszText;
  5334         -  LPCWSTR lpszCaption;
  5335         -  DWORD dwStyle;
  5336         -  LPCWSTR lpszIcon;
  5337         -  DWORD_PTR dwContextHelpId;
  5338         -  MSGBOXCALLBACK lpfnMsgBoxCallback;
  5339         -  DWORD dwLanguageId;
  5340         -}
  5341         -alias tagMSGBOXPARAMSW MSGBOXPARAMSW;
  5342         -alias tagMSGBOXPARAMSW* PMSGBOXPARAMSW;
  5343         -alias tagMSGBOXPARAMSW* LPMSGBOXPARAMSW;
  5344         -
  5345         -// #ifdef UNICODE
  5346         -alias MSGBOXPARAMSW MSGBOXPARAMS;
  5347         -alias PMSGBOXPARAMSW PMSGBOXPARAMS;
  5348         -alias LPMSGBOXPARAMSW LPMSGBOXPARAMS;
  5349         -// #else
  5350         -// ...
  5351         -// #endif // UNICODE
  5352         -
  5353         -extern(Windows) export int MessageBoxIndirectA(
  5354         -  MSGBOXPARAMSA *);
  5355         -extern(Windows) export int MessageBoxIndirectW(
  5356         -  MSGBOXPARAMSW *);
  5357         -// #ifdef UNICODE
  5358         -alias MessageBoxIndirectW MessageBoxIndirect;
  5359         -// #else
  5360         -// #...
  5361         -// #endif // !UNICODE
  5362         -// #endif /* WINVER >= 0x0400 */
  5363         -
  5364         -extern(Windows) export BOOL MessageBeep(
  5365         -  UINT uType);
  5366         -
  5367         -// #endif /* !NOMB */
  5368         -
  5369         -extern(Windows) export int ShowCursor(
  5370         -  BOOL bShow);
  5371         -
  5372         -extern(Windows) export BOOL SetCursorPos(
  5373         -  int X,
  5374         -  int Y);
  5375         -
  5376         -extern(Windows) export HCURSOR SetCursor(
  5377         -  HCURSOR hCursor);
  5378         -
  5379         -extern(Windows) export BOOL GetCursorPos(
  5380         -  LPPOINT lpPoint);
  5381         -
  5382         -extern(Windows) export BOOL ClipCursor(
  5383         -  RECT *lpRect);
  5384         -
  5385         -extern(Windows) export BOOL GetClipCursor(
  5386         -  LPRECT lpRect);
  5387         -
  5388         -extern(Windows) export HCURSOR GetCursor();
  5389         -
  5390         -extern(Windows) export BOOL CreateCaret(
  5391         -  HWND hWnd,
  5392         -  HBITMAP hBitmap,
  5393         -  int nWidth,
  5394         -  int nHeight);
  5395         -
  5396         -extern(Windows) export UINT GetCaretBlinkTime();
  5397         -
  5398         -extern(Windows) export BOOL SetCaretBlinkTime(
  5399         -  UINT uMSeconds);
  5400         -
  5401         -extern(Windows) export BOOL DestroyCaret();
  5402         -
  5403         -extern(Windows) export BOOL HideCaret(
  5404         -  HWND hWnd);
  5405         -
  5406         -extern(Windows) export BOOL ShowCaret(
  5407         -  HWND hWnd);
  5408         -
  5409         -extern(Windows) export BOOL SetCaretPos(
  5410         -  int X,
  5411         -  int Y);
  5412         -
  5413         -extern(Windows) export BOOL GetCaretPos(
  5414         -  LPPOINT lpPoint);
  5415         -
  5416         -extern(Windows) export BOOL ClientToScreen(
  5417         -  HWND hWnd,
  5418         -  LPPOINT lpPoint);
  5419         -
  5420         -extern(Windows) export BOOL ScreenToClient(
  5421         -  HWND hWnd,
  5422         -  LPPOINT lpPoint);
  5423         -
  5424         -extern(Windows) export int MapWindowPoints(
  5425         -  HWND hWndFrom,
  5426         -  HWND hWndTo,
  5427         -  LPPOINT lpPoints,
  5428         -  UINT cPoints);
  5429         -
  5430         -extern(Windows) export HWND WindowFromPoint(
  5431         -  POINT Point);
  5432         -
  5433         -extern(Windows) export HWND ChildWindowFromPoint(
  5434         -  HWND hWndParent,
  5435         -  POINT Point);
  5436         -
  5437         -// #if(WINVER >= 0x0400)
  5438         -enum : uint { CWP_ALL = 0x0000 }
  5439         -enum : uint { CWP_SKIPINVISIBLE = 0x0001 }
  5440         -enum : uint { CWP_SKIPDISABLED = 0x0002 }
  5441         -enum : uint { CWP_SKIPTRANSPARENT = 0x0004 }
  5442         -
  5443         -extern(Windows) export HWND ChildWindowFromPointEx(HWND, POINT, UINT);
  5444         -// #endif /* WINVER >= 0x0400 */
  5445         -
  5446         -// #ifndef NOCOLOR
  5447         -
  5448         -enum : uint { CTLCOLOR_MSGBOX = 0 }
  5449         -enum : uint { CTLCOLOR_EDIT = 1 }
  5450         -enum : uint { CTLCOLOR_LISTBOX = 2 }
  5451         -enum : uint { CTLCOLOR_BTN = 3 }
  5452         -enum : uint { CTLCOLOR_DLG = 4 }
  5453         -enum : uint { CTLCOLOR_SCROLLBAR = 5 }
  5454         -enum : uint { CTLCOLOR_STATIC = 6 }
  5455         -enum : uint { CTLCOLOR_MAX = 7 }
  5456         -
  5457         -enum : uint { COLOR_SCROLLBAR = 0 }
  5458         -enum : uint { COLOR_BACKGROUND = 1 }
  5459         -enum : uint { COLOR_ACTIVECAPTION = 2 }
  5460         -enum : uint { COLOR_INACTIVECAPTION = 3 }
  5461         -enum : uint { COLOR_MENU = 4 }
  5462         -enum : uint { COLOR_WINDOW = 5 }
  5463         -enum : uint { COLOR_WINDOWFRAME = 6 }
  5464         -enum : uint { COLOR_MENUTEXT = 7 }
  5465         -enum : uint { COLOR_WINDOWTEXT = 8 }
  5466         -enum : uint { COLOR_CAPTIONTEXT = 9 }
  5467         -enum : uint { COLOR_ACTIVEBORDER = 10 }
  5468         -enum : uint { COLOR_INACTIVEBORDER = 11 }
  5469         -enum : uint { COLOR_APPWORKSPACE = 12 }
  5470         -enum : uint { COLOR_HIGHLIGHT = 13 }
  5471         -enum : uint { COLOR_HIGHLIGHTTEXT = 14 }
  5472         -enum : uint { COLOR_BTNFACE = 15 }
  5473         -enum : uint { COLOR_BTNSHADOW = 16 }
  5474         -enum : uint { COLOR_GRAYTEXT = 17 }
  5475         -enum : uint { COLOR_BTNTEXT = 18 }
  5476         -enum : uint { COLOR_INACTIVECAPTIONTEXT = 19 }
  5477         -enum : uint { COLOR_BTNHIGHLIGHT = 20 }
  5478         -
  5479         -// #if(WINVER >= 0x0400)
  5480         -enum : uint { COLOR_3DDKSHADOW = 21 }
  5481         -enum : uint { COLOR_3DLIGHT = 22 }
  5482         -enum : uint { COLOR_INFOTEXT = 23 }
  5483         -enum : uint { COLOR_INFOBK = 24 }
  5484         -// #endif /* WINVER >= 0x0400 */
  5485         -
  5486         -// #if(WINVER >= 0x0500)
  5487         -enum : uint { COLOR_HOTLIGHT = 26 }
  5488         -enum : uint { COLOR_GRADIENTACTIVECAPTION = 27 }
  5489         -enum : uint { COLOR_GRADIENTINACTIVECAPTION = 28 }
  5490         -// #if(WINVER >= 0x0501)
  5491         -enum : uint { COLOR_MENUHILIGHT = 29 }
  5492         -enum : uint { COLOR_MENUBAR = 30 }
  5493         -// #endif /* WINVER >= 0x0501 */
  5494         -// #endif /* WINVER >= 0x0500 */
  5495         -
  5496         -// #if(WINVER >= 0x0400)
  5497         -alias COLOR_BACKGROUND COLOR_DESKTOP;
  5498         -alias COLOR_BTNFACE COLOR_3DFACE;
  5499         -alias COLOR_BTNSHADOW COLOR_3DSHADOW;
  5500         -alias COLOR_BTNHIGHLIGHT COLOR_3DHIGHLIGHT;
  5501         -alias COLOR_BTNHIGHLIGHT COLOR_3DHILIGHT;
  5502         -alias COLOR_BTNHIGHLIGHT COLOR_BTNHILIGHT;
  5503         -// #endif /* WINVER >= 0x0400 */
  5504         -
  5505         -extern(Windows) export DWORD GetSysColor(
  5506         -  int nIndex);
  5507         -
  5508         -// #if(WINVER >= 0x0400)
  5509         -extern(Windows) export HBRUSH GetSysColorBrush(
  5510         -  int nIndex);
  5511         -
  5512         -// #endif /* WINVER >= 0x0400 */
  5513         -
  5514         -extern(Windows) export BOOL SetSysColors(
  5515         -  int cElements,
  5516         -  INT * lpaElements,
  5517         -  COLORREF * lpaRgbValues);
  5518         -
  5519         -// #endif /* !NOCOLOR */
  5520         -
  5521         -extern(Windows) export BOOL DrawFocusRect(
  5522         -  HDC hDC,
  5523         -  RECT * lprc);
  5524         -
  5525         -extern(Windows) export int FillRect(
  5526         -  HDC hDC,
  5527         -  RECT *lprc,
  5528         -  HBRUSH hbr);
  5529         -
  5530         -extern(Windows) export int FrameRect(
  5531         -  HDC hDC,
  5532         -  RECT *lprc,
  5533         -  HBRUSH hbr);
  5534         -
  5535         -extern(Windows) export BOOL InvertRect(
  5536         -  HDC hDC,
  5537         -  RECT *lprc);
  5538         -
  5539         -extern(Windows) export BOOL SetRect(
  5540         -  LPRECT lprc,
  5541         -  int xLeft,
  5542         -  int yTop,
  5543         -  int xRight,
  5544         -  int yBottom);
  5545         -
  5546         -extern(Windows) export BOOL SetRectEmpty(
  5547         -  LPRECT lprc);
  5548         -
  5549         -extern(Windows) export BOOL CopyRect(
  5550         -  LPRECT lprcDst,
  5551         -  RECT *lprcSrc);
  5552         -
  5553         -extern(Windows) export BOOL InflateRect(
  5554         -  LPRECT lprc,
  5555         -  int dx,
  5556         -  int dy);
  5557         -
  5558         -extern(Windows) export BOOL IntersectRect(
  5559         -  LPRECT lprcDst,
  5560         -  RECT *lprcSrc1,
  5561         -  RECT *lprcSrc2);
  5562         -
  5563         -extern(Windows) export BOOL UnionRect(
  5564         -  LPRECT lprcDst,
  5565         -  RECT *lprcSrc1,
  5566         -  RECT *lprcSrc2);
  5567         -
  5568         -extern(Windows) export BOOL SubtractRect(
  5569         -  LPRECT lprcDst,
  5570         -  RECT *lprcSrc1,
  5571         -  RECT *lprcSrc2);
  5572         -
  5573         -extern(Windows) export BOOL OffsetRect(
  5574         -  LPRECT lprc,
  5575         -  int dx,
  5576         -  int dy);
  5577         -
  5578         -extern(Windows) export BOOL IsRectEmpty(
  5579         -  RECT *lprc);
  5580         -
  5581         -extern(Windows) export BOOL EqualRect(
  5582         -  RECT *lprc1,
  5583         -  RECT *lprc2);
  5584         -
  5585         -extern(Windows) export BOOL PtInRect(
  5586         -  RECT *lprc,
  5587         -  POINT pt);
  5588         -
  5589         -// #ifndef NOWINOFFSETS
  5590         -
  5591         -extern(Windows) export WORD GetWindowWord(
  5592         -  HWND hWnd,
  5593         -  int nIndex);
  5594         -
  5595         -extern(Windows) export WORD SetWindowWord(
  5596         -  HWND hWnd,
  5597         -  int nIndex,
  5598         -  WORD wNewWord);
  5599         -
  5600         -extern(Windows) export LONG GetWindowLongA(
  5601         -  HWND hWnd,
  5602         -  int nIndex);
  5603         -extern(Windows) export LONG GetWindowLongW(
  5604         -  HWND hWnd,
  5605         -  int nIndex);
  5606         -// #ifdef UNICODE
  5607         -alias GetWindowLongW GetWindowLong;
  5608         -// #else
  5609         -// #...
  5610         -// #endif // !UNICODE
  5611         -
  5612         -extern(Windows) export LONG SetWindowLongA(
  5613         -  HWND hWnd,
  5614         -  int nIndex,
  5615         -  LONG dwNewLong);
  5616         -extern(Windows) export LONG SetWindowLongW(
  5617         -  HWND hWnd,
  5618         -  int nIndex,
  5619         -  LONG dwNewLong);
  5620         -// #ifdef UNICODE
  5621         -alias SetWindowLongW SetWindowLong;
  5622         -// #else
  5623         -// #...
  5624         -// #endif // !UNICODE
  5625         -
  5626         -// #ifdef _WIN64
  5627         -
  5628         -// ...
  5629         -// #ifdef UNICODE
  5630         -// #...
  5631         -// #else
  5632         -// #...
  5633         -// #endif // !UNICODE
  5634         -
  5635         -// ...
  5636         -// #ifdef UNICODE
  5637         -// #...
  5638         -// #else
  5639         -// #...
  5640         -// #endif // !UNICODE
  5641         -
  5642         -// #else  /* _WIN64 */
  5643         -
  5644         -alias GetWindowLongA GetWindowLongPtrA;
  5645         -alias GetWindowLongW GetWindowLongPtrW;
  5646         -// #ifdef UNICODE
  5647         -alias GetWindowLongPtrW GetWindowLongPtr;
  5648         -// #else
  5649         -// #...
  5650         -// #endif // !UNICODE
  5651         -
  5652         -alias SetWindowLongA SetWindowLongPtrA;
  5653         -alias SetWindowLongW SetWindowLongPtrW;
  5654         -// #ifdef UNICODE
  5655         -alias SetWindowLongPtrW SetWindowLongPtr;
  5656         -// #else
  5657         -// #...
  5658         -// #endif // !UNICODE
  5659         -
  5660         -// #endif /* _WIN64 */
  5661         -
  5662         -extern(Windows) export WORD GetClassWord(
  5663         -  HWND hWnd,
  5664         -  int nIndex);
  5665         -
  5666         -extern(Windows) export WORD SetClassWord(
  5667         -  HWND hWnd,
  5668         -  int nIndex,
  5669         -  WORD wNewWord);
  5670         -
  5671         -extern(Windows) export DWORD GetClassLongA(
  5672         -  HWND hWnd,
  5673         -  int nIndex);
  5674         -extern(Windows) export DWORD GetClassLongW(
  5675         -  HWND hWnd,
  5676         -  int nIndex);
  5677         -// #ifdef UNICODE
  5678         -alias GetClassLongW GetClassLong;
  5679         -// #else
  5680         -// #...
  5681         -// #endif // !UNICODE
  5682         -
  5683         -extern(Windows) export DWORD SetClassLongA(
  5684         -  HWND hWnd,
  5685         -  int nIndex,
  5686         -  LONG dwNewLong);
  5687         -extern(Windows) export DWORD SetClassLongW(
  5688         -  HWND hWnd,
  5689         -  int nIndex,
  5690         -  LONG dwNewLong);
  5691         -// #ifdef UNICODE
  5692         -alias SetClassLongW SetClassLong;
  5693         -// #else
  5694         -// #...
  5695         -// #endif // !UNICODE
  5696         -
  5697         -// #ifdef _WIN64
  5698         -
  5699         -// ...
  5700         -// #ifdef UNICODE
  5701         -// #...
  5702         -// #else
  5703         -// #...
  5704         -// #endif // !UNICODE
  5705         -
  5706         -// ...
  5707         -// #ifdef UNICODE
  5708         -// #...
  5709         -// #else
  5710         -// #...
  5711         -// #endif // !UNICODE
  5712         -
  5713         -// #else  /* _WIN64 */
  5714         -
  5715         -alias GetClassLongA GetClassLongPtrA;
  5716         -alias GetClassLongW GetClassLongPtrW;
  5717         -// #ifdef UNICODE
  5718         -alias GetClassLongPtrW GetClassLongPtr;
  5719         -// #else
  5720         -// #...
  5721         -// #endif // !UNICODE
  5722         -
  5723         -alias SetClassLongA SetClassLongPtrA;
  5724         -alias SetClassLongW SetClassLongPtrW;
  5725         -// #ifdef UNICODE
  5726         -alias SetClassLongPtrW SetClassLongPtr;
  5727         -// #else
  5728         -// #...
  5729         -// #endif // !UNICODE
  5730         -
  5731         -// #endif /* _WIN64 */
  5732         -
  5733         -// #endif /* !NOWINOFFSETS */
  5734         -
  5735         -// #if(WINVER >= 0x0500)
  5736         -extern(Windows) export BOOL GetProcessDefaultLayout(
  5737         -  DWORD *pdwDefaultLayout);
  5738         -
  5739         -extern(Windows) export BOOL SetProcessDefaultLayout(
  5740         -  DWORD dwDefaultLayout);
  5741         -// #endif /* WINVER >= 0x0500 */
  5742         -
  5743         -extern(Windows) export HWND GetDesktopWindow();
  5744         -
  5745         -extern(Windows) export HWND GetParent(
  5746         -  HWND hWnd);
  5747         -
  5748         -extern(Windows) export HWND SetParent(
  5749         -  HWND hWndChild,
  5750         -  HWND hWndNewParent);
  5751         -
  5752         -extern(Windows) export BOOL EnumChildWindows(
  5753         -  HWND hWndParent,
  5754         -  WNDENUMPROC lpEnumFunc,
  5755         -  LPARAM lParam);
  5756         -
  5757         -extern(Windows) export HWND FindWindowA(
  5758         -  LPCSTR lpClassName,
  5759         -  LPCSTR lpWindowName);
  5760         -extern(Windows) export HWND FindWindowW(
  5761         -  LPCWSTR lpClassName,
  5762         -  LPCWSTR lpWindowName);
  5763         -// #ifdef UNICODE
  5764         -alias FindWindowW FindWindow;
  5765         -// #else
  5766         -// #...
  5767         -// #endif // !UNICODE
  5768         -
  5769         -// #if(WINVER >= 0x0400)
  5770         -extern(Windows) export HWND FindWindowExA(HWND, HWND, LPCSTR, LPCSTR);
  5771         -extern(Windows) export HWND FindWindowExW(HWND, HWND, LPCWSTR, LPCWSTR);
  5772         -// #ifdef UNICODE
  5773         -alias FindWindowExW FindWindowEx;
  5774         -// #else
  5775         -// #...
  5776         -// #endif // !UNICODE
  5777         -
  5778         -// #endif /* WINVER >= 0x0400 */
  5779         -
  5780         -extern(Windows) export BOOL EnumWindows(
  5781         -  WNDENUMPROC lpEnumFunc,
  5782         -  LPARAM lParam);
  5783         -
  5784         -extern(Windows) export BOOL EnumThreadWindows(
  5785         -  DWORD dwThreadId,
  5786         -  WNDENUMPROC lpfn,
  5787         -  LPARAM lParam);
  5788         -
  5789         -// #define EnumTaskWindows(hTask, lpfn, lParam) EnumThreadWindows(HandleToUlong(hTask), lpfn, lParam)
  5790         -
  5791         -extern(Windows) export int GetClassNameA(
  5792         -  HWND hWnd,
  5793         -  LPSTR lpClassName,
  5794         -  int nMaxCount);
  5795         -extern(Windows) export int GetClassNameW(
  5796         -  HWND hWnd,
  5797         -  LPWSTR lpClassName,
  5798         -  int nMaxCount);
  5799         -// #ifdef UNICODE
  5800         -alias GetClassNameW GetClassName;
  5801         -// #else
  5802         -// #...
  5803         -// #endif // !UNICODE
  5804         -
  5805         -extern(Windows) export HWND GetTopWindow(
  5806         -  HWND hWnd);
  5807         -
  5808         -// #define GetNextWindow(hWnd, wCmd) GetWindow(hWnd, wCmd)
  5809         -// #define GetSysModalWindow() (NULL)
  5810         -// #define SetSysModalWindow(hWnd) (NULL)
  5811         -
  5812         -extern(Windows) export DWORD GetWindowThreadProcessId(
  5813         -  HWND hWnd,
  5814         -  LPDWORD lpdwProcessId);
  5815         -
  5816         -// #if(_WIN32_WINNT >= 0x0501)
  5817         -extern(Windows) export BOOL IsGUIThread(
  5818         -  BOOL bConvert);
  5819         -
  5820         -// #endif /* _WIN32_WINNT >= 0x0501 */
  5821         -
  5822         -// #define GetWindowTask(hWnd) ((HANDLE)(DWORD_PTR)GetWindowThreadProcessId(hWnd, NULL))
  5823         -
  5824         -extern(Windows) export HWND GetLastActivePopup(
  5825         -  HWND hWnd);
  5826         -
  5827         -enum : uint { GW_HWNDFIRST = 0 }
  5828         -enum : uint { GW_HWNDLAST = 1 }
  5829         -enum : uint { GW_HWNDNEXT = 2 }
  5830         -enum : uint { GW_HWNDPREV = 3 }
  5831         -enum : uint { GW_OWNER = 4 }
  5832         -enum : uint { GW_CHILD = 5 }
  5833         -// #if(WINVER <= 0x0400)
  5834         -// #...
  5835         -// #else
  5836         -enum : uint { GW_ENABLEDPOPUP = 6 }
  5837         -enum : uint { GW_MAX = 6 }
  5838         -// #endif
  5839         -
  5840         -extern(Windows) export HWND GetWindow(
  5841         -  HWND hWnd,
  5842         -  UINT uCmd);
  5843         -
  5844         -// #ifndef NOWH
  5845         -
  5846         -// #ifdef STRICT
  5847         -
  5848         -extern(Windows) export HHOOK SetWindowsHookA(
  5849         -  int nFilterType,
  5850         -  HOOKPROC pfnFilterProc);
  5851         -extern(Windows) export HHOOK SetWindowsHookW(
  5852         -  int nFilterType,
  5853         -  HOOKPROC pfnFilterProc);
  5854         -// #ifdef UNICODE
  5855         -alias SetWindowsHookW SetWindowsHook;
  5856         -// #else
  5857         -// #...
  5858         -// #endif // !UNICODE
  5859         -
  5860         -// #else /* !STRICT */
  5861         -
  5862         -// ...
  5863         -// #ifdef UNICODE
  5864         -// #...
  5865         -// #else
  5866         -// #...
  5867         -// #endif // !UNICODE
  5868         -
  5869         -// #endif /* !STRICT */
  5870         -
  5871         -extern(Windows) export BOOL UnhookWindowsHook(
  5872         -  int nCode,
  5873         -  HOOKPROC pfnFilterProc);
  5874         -
  5875         -extern(Windows) export HHOOK SetWindowsHookExA(
  5876         -  int idHook,
  5877         -  HOOKPROC lpfn,
  5878         -  HINSTANCE hmod,
  5879         -  DWORD dwThreadId);
  5880         -extern(Windows) export HHOOK SetWindowsHookExW(
  5881         -  int idHook,
  5882         -  HOOKPROC lpfn,
  5883         -  HINSTANCE hmod,
  5884         -  DWORD dwThreadId);
  5885         -// #ifdef UNICODE
  5886         -alias SetWindowsHookExW SetWindowsHookEx;
  5887         -// #else
  5888         -// #...
  5889         -// #endif // !UNICODE
  5890         -
  5891         -extern(Windows) export BOOL UnhookWindowsHookEx(
  5892         -  HHOOK hhk);
  5893         -
  5894         -extern(Windows) export LRESULT CallNextHookEx(
  5895         -  HHOOK hhk,
  5896         -  int nCode,
  5897         -  WPARAM wParam,
  5898         -  LPARAM lParam);
  5899         -
  5900         -// #ifdef STRICT
  5901         -// #define DefHookProc(nCode, wParam, lParam, phhk) CallNextHookEx(*phhk, nCode, wParam, lParam)
  5902         -// #else
  5903         -// #...
  5904         -// ...
  5905         -// #endif /* STRICT */
  5906         -// #endif /* !NOWH */
  5907         -
  5908         -// #ifndef NOMENUS
  5909         -
  5910         -enum : uint { MF_INSERT = 0x00000000 }
  5911         -enum : uint { MF_CHANGE = 0x00000080 }
  5912         -enum : uint { MF_APPEND = 0x00000100 }
  5913         -enum : uint { MF_DELETE = 0x00000200 }
  5914         -enum : uint { MF_REMOVE = 0x00001000 }
  5915         -
  5916         -enum : uint { MF_BYCOMMAND = 0x00000000 }
  5917         -enum : uint { MF_BYPOSITION = 0x00000400 }
  5918         -
  5919         -enum : uint { MF_SEPARATOR = 0x00000800 }
  5920         -
  5921         -enum : uint { MF_ENABLED = 0x00000000 }
  5922         -enum : uint { MF_GRAYED = 0x00000001 }
  5923         -enum : uint { MF_DISABLED = 0x00000002 }
  5924         -
  5925         -enum : uint { MF_UNCHECKED = 0x00000000 }
  5926         -enum : uint { MF_CHECKED = 0x00000008 }
  5927         -enum : uint { MF_USECHECKBITMAPS = 0x00000200 }
  5928         -
  5929         -enum : uint { MF_STRING = 0x00000000 }
  5930         -enum : uint { MF_BITMAP = 0x00000004 }
  5931         -enum : uint { MF_OWNERDRAW = 0x00000100 }
  5932         -
  5933         -enum : uint { MF_POPUP = 0x00000010 }
  5934         -enum : uint { MF_MENUBARBREAK = 0x00000020 }
  5935         -enum : uint { MF_MENUBREAK = 0x00000040 }
  5936         -
  5937         -enum : uint { MF_UNHILITE = 0x00000000 }
  5938         -enum : uint { MF_HILITE = 0x00000080 }
  5939         -
  5940         -// #if(WINVER >= 0x0400)
  5941         -enum : uint { MF_DEFAULT = 0x00001000 }
  5942         -// #endif /* WINVER >= 0x0400 */
  5943         -enum : uint { MF_SYSMENU = 0x00002000 }
  5944         -enum : uint { MF_HELP = 0x00004000 }
  5945         -// #if(WINVER >= 0x0400)
  5946         -enum : uint { MF_RIGHTJUSTIFY = 0x00004000 }
  5947         -// #endif /* WINVER >= 0x0400 */
  5948         -
  5949         -enum : uint { MF_MOUSESELECT = 0x00008000 }
  5950         -// #if(WINVER >= 0x0400)
  5951         -enum : uint { MF_END = 0x00000080 }
  5952         -// #endif /* WINVER >= 0x0400 */
  5953         -
  5954         -// #if(WINVER >= 0x0400)
  5955         -alias MF_STRING MFT_STRING;
  5956         -alias MF_BITMAP MFT_BITMAP;
  5957         -alias MF_MENUBARBREAK MFT_MENUBARBREAK;
  5958         -alias MF_MENUBREAK MFT_MENUBREAK;
  5959         -alias MF_OWNERDRAW MFT_OWNERDRAW;
  5960         -enum : uint { MFT_RADIOCHECK = 0x00000200 }
  5961         -alias MF_SEPARATOR MFT_SEPARATOR;
  5962         -enum : uint { MFT_RIGHTORDER = 0x00002000 }
  5963         -alias MF_RIGHTJUSTIFY MFT_RIGHTJUSTIFY;
  5964         -
  5965         -enum : uint { MFS_GRAYED = 0x00000003 }
  5966         -alias MFS_GRAYED MFS_DISABLED;
  5967         -alias MF_CHECKED MFS_CHECKED;
  5968         -alias MF_HILITE MFS_HILITE;
  5969         -alias MF_ENABLED MFS_ENABLED;
  5970         -alias MF_UNCHECKED MFS_UNCHECKED;
  5971         -alias MF_UNHILITE MFS_UNHILITE;
  5972         -alias MF_DEFAULT MFS_DEFAULT;
  5973         -// #endif /* WINVER >= 0x0400 */
  5974         -
  5975         -// #if(WINVER >= 0x0400)
  5976         -
  5977         -extern(Windows) export BOOL CheckMenuRadioItem(
  5978         -  HMENU,
  5979         -  UINT,
  5980         -  UINT,
  5981         -  UINT,
  5982         -  UINT);
  5983         -// #endif /* WINVER >= 0x0400 */
  5984         -
  5985         -struct _4 {
  5986         -  WORD versionNumber;
  5987         -  WORD offset;
  5988         -}
  5989         -alias _4 MENUITEMTEMPLATEHEADER;
  5990         -alias _4* PMENUITEMTEMPLATEHEADER;
  5991         -
  5992         -struct _5 {
  5993         -  WORD mtOption;
  5994         -  WORD mtID;
  5995         -  WCHAR mtString[1];
  5996         -}
  5997         -alias _5 MENUITEMTEMPLATE;
  5998         -alias _5* PMENUITEMTEMPLATE;
  5999         -
  6000         -// skip #define MF_END 0x00000080L
  6001         -
  6002         -// #endif /* !NOMENUS */
  6003         -
  6004         -// #ifndef NOSYSCOMMANDS
  6005         -
  6006         -enum : uint { SC_SIZE = 0xF000 }
  6007         -enum : uint { SC_MOVE = 0xF010 }
  6008         -enum : uint { SC_MINIMIZE = 0xF020 }
  6009         -enum : uint { SC_MAXIMIZE = 0xF030 }
  6010         -enum : uint { SC_NEXTWINDOW = 0xF040 }
  6011         -enum : uint { SC_PREVWINDOW = 0xF050 }
  6012         -enum : uint { SC_CLOSE = 0xF060 }
  6013         -enum : uint { SC_VSCROLL = 0xF070 }
  6014         -enum : uint { SC_HSCROLL = 0xF080 }
  6015         -enum : uint { SC_MOUSEMENU = 0xF090 }
  6016         -enum : uint { SC_KEYMENU = 0xF100 }
  6017         -enum : uint { SC_ARRANGE = 0xF110 }
  6018         -enum : uint { SC_RESTORE = 0xF120 }
  6019         -enum : uint { SC_TASKLIST = 0xF130 }
  6020         -enum : uint { SC_SCREENSAVE = 0xF140 }
  6021         -enum : uint { SC_HOTKEY = 0xF150 }
  6022         -// #if(WINVER >= 0x0400)
  6023         -enum : uint { SC_DEFAULT = 0xF160 }
  6024         -enum : uint { SC_MONITORPOWER = 0xF170 }
  6025         -enum : uint { SC_CONTEXTHELP = 0xF180 }
  6026         -enum : uint { SC_SEPARATOR = 0xF00F }
  6027         -// #endif /* WINVER >= 0x0400 */
  6028         -
  6029         -alias SC_MINIMIZE SC_ICON;
  6030         -alias SC_MAXIMIZE SC_ZOOM;
  6031         -
  6032         -// #endif /* !NOSYSCOMMANDS */
  6033         -
  6034         -extern(Windows) export HBITMAP LoadBitmapA(
  6035         -  HINSTANCE hInstance,
  6036         -  LPCSTR lpBitmapName);
  6037         -extern(Windows) export HBITMAP LoadBitmapW(
  6038         -  HINSTANCE hInstance,
  6039         -  LPCWSTR lpBitmapName);
  6040         -// #ifdef UNICODE
  6041         -alias LoadBitmapW LoadBitmap;
  6042         -// #else
  6043         -// #...
  6044         -// #endif // !UNICODE
  6045         -
  6046         -extern(Windows) export HCURSOR LoadCursorA(
  6047         -  HINSTANCE hInstance,
  6048         -  LPCSTR lpCursorName);
  6049         -extern(Windows) export HCURSOR LoadCursorW(
  6050         -  HINSTANCE hInstance,
  6051         -  LPCWSTR lpCursorName);
  6052         -// #ifdef UNICODE
  6053         -alias LoadCursorW LoadCursor;
  6054         -// #else
  6055         -// #...
  6056         -// #endif // !UNICODE
  6057         -
  6058         -extern(Windows) export HCURSOR LoadCursorFromFileA(
  6059         -  LPCSTR lpFileName);
  6060         -extern(Windows) export HCURSOR LoadCursorFromFileW(
  6061         -  LPCWSTR lpFileName);
  6062         -// #ifdef UNICODE
  6063         -alias LoadCursorFromFileW LoadCursorFromFile;
  6064         -// #else
  6065         -// #...
  6066         -// #endif // !UNICODE
  6067         -
  6068         -extern(Windows) export HCURSOR CreateCursor(
  6069         -  HINSTANCE hInst,
  6070         -  int xHotSpot,
  6071         -  int yHotSpot,
  6072         -  int nWidth,
  6073         -  int nHeight,
  6074         -  VOID *pvANDPlane,
  6075         -  VOID *pvXORPlane);
  6076         -
  6077         -extern(Windows) export BOOL DestroyCursor(
  6078         -  HCURSOR hCursor);
  6079         -
  6080         -// #ifndef _MAC
  6081         -alias CopyIcon CopyCursor;
  6082         -// #else
  6083         -// ...
  6084         -// #endif
  6085         -
  6086         -const LPTSTR IDC_ARROW = cast(LPTSTR)(32512);
  6087         -const LPTSTR IDC_IBEAM = cast(LPTSTR)(32513);
  6088         -const LPTSTR IDC_WAIT = cast(LPTSTR)(32514);
  6089         -const LPTSTR IDC_CROSS = cast(LPTSTR)(32515);
  6090         -const LPTSTR IDC_UPARROW = cast(LPTSTR)(32516);
  6091         -const LPTSTR IDC_SIZE = cast(LPTSTR)(32640);
  6092         -const LPTSTR IDC_ICON = cast(LPTSTR)(32641);
  6093         -const LPTSTR IDC_SIZENWSE = cast(LPTSTR)(32642);
  6094         -const LPTSTR IDC_SIZENESW = cast(LPTSTR)(32643);
  6095         -const LPTSTR IDC_SIZEWE = cast(LPTSTR)(32644);
  6096         -const LPTSTR IDC_SIZENS = cast(LPTSTR)(32645);
  6097         -const LPTSTR IDC_SIZEALL = cast(LPTSTR)(32646);
  6098         -const LPTSTR IDC_NO = cast(LPTSTR)(32648);
  6099         -// #if(WINVER >= 0x0500)
  6100         -const LPTSTR IDC_HAND = cast(LPTSTR)(32649);
  6101         -// #endif /* WINVER >= 0x0500 */
  6102         -const LPTSTR IDC_APPSTARTING = cast(LPTSTR)(32650);
  6103         -// #if(WINVER >= 0x0400)
  6104         -const LPTSTR IDC_HELP = cast(LPTSTR)(32651);
  6105         -// #endif /* WINVER >= 0x0400 */
  6106         -
  6107         -extern(Windows) export BOOL SetSystemCursor(
  6108         -  HCURSOR hcur,
  6109         -  DWORD id);
  6110         -
  6111         -struct _ICONINFO {
  6112         -  BOOL fIcon;
  6113         -  DWORD xHotspot;
  6114         -  DWORD yHotspot;
  6115         -  HBITMAP hbmMask;
  6116         -  HBITMAP hbmColor;
  6117         -}
  6118         -alias _ICONINFO ICONINFO;
  6119         -
  6120         -alias ICONINFO* PICONINFO;
  6121         -
  6122         -extern(Windows) export HICON LoadIconA(
  6123         -  HINSTANCE hInstance,
  6124         -  LPCSTR lpIconName);
  6125         -extern(Windows) export HICON LoadIconW(
  6126         -  HINSTANCE hInstance,
  6127         -  LPCWSTR lpIconName);
  6128         -// #ifdef UNICODE
  6129         -alias LoadIconW LoadIcon;
  6130         -// #else
  6131         -// #...
  6132         -// #endif // !UNICODE
  6133         -
  6134         -extern(Windows) export HICON CreateIcon(
  6135         -  HINSTANCE hInstance,
  6136         -  int nWidth,
  6137         -  int nHeight,
  6138         -  BYTE cPlanes,
  6139         -  BYTE cBitsPixel,
  6140         -  BYTE *lpbANDbits,
  6141         -  BYTE *lpbXORbits);
  6142         -
  6143         -extern(Windows) export BOOL DestroyIcon(
  6144         -  HICON hIcon);
  6145         -
  6146         -extern(Windows) export int LookupIconIdFromDirectory(
  6147         -  PBYTE presbits,
  6148         -  BOOL fIcon);
  6149         -
  6150         -// #if(WINVER >= 0x0400)
  6151         -extern(Windows) export int LookupIconIdFromDirectoryEx(
  6152         -  PBYTE presbits,
  6153         -  BOOL fIcon,
  6154         -  int cxDesired,
  6155         -  int cyDesired,
  6156         -  UINT Flags);
  6157         -// #endif /* WINVER >= 0x0400 */
  6158         -
  6159         -extern(Windows) export HICON CreateIconFromResource(
  6160         -  PBYTE presbits,
  6161         -  DWORD dwResSize,
  6162         -  BOOL fIcon,
  6163         -  DWORD dwVer);
  6164         -
  6165         -// #if(WINVER >= 0x0400)
  6166         -extern(Windows) export HICON CreateIconFromResourceEx(
  6167         -  PBYTE presbits,
  6168         -  DWORD dwResSize,
  6169         -  BOOL fIcon,
  6170         -  DWORD dwVer,
  6171         -  int cxDesired,
  6172         -  int cyDesired,
  6173         -  UINT Flags);
  6174         -
  6175         -struct tagCURSORSHAPE {
  6176         -  int xHotSpot;
  6177         -  int yHotSpot;
  6178         -  int cx;
  6179         -  int cy;
  6180         -  int cbWidth;
  6181         -  BYTE Planes;
  6182         -  BYTE BitsPixel;
  6183         -}
  6184         -alias tagCURSORSHAPE CURSORSHAPE;
  6185         -alias tagCURSORSHAPE* LPCURSORSHAPE;
  6186         -
  6187         -// #endif /* WINVER >= 0x0400 */
  6188         -
  6189         -enum : uint { IMAGE_BITMAP = 0 }
  6190         -enum : uint { IMAGE_ICON = 1 }
  6191         -enum : uint { IMAGE_CURSOR = 2 }
  6192         -// #if(WINVER >= 0x0400)
  6193         -enum : uint { IMAGE_ENHMETAFILE = 3 }
  6194         -
  6195         -enum : uint { LR_DEFAULTCOLOR = 0x0000 }
  6196         -enum : uint { LR_MONOCHROME = 0x0001 }
  6197         -enum : uint { LR_COLOR = 0x0002 }
  6198         -enum : uint { LR_COPYRETURNORG = 0x0004 }
  6199         -enum : uint { LR_COPYDELETEORG = 0x0008 }
  6200         -enum : uint { LR_LOADFROMFILE = 0x0010 }
  6201         -enum : uint { LR_LOADTRANSPARENT = 0x0020 }
  6202         -enum : uint { LR_DEFAULTSIZE = 0x0040 }
  6203         -enum : uint { LR_VGACOLOR = 0x0080 }
  6204         -enum : uint { LR_LOADMAP3DCOLORS = 0x1000 }
  6205         -enum : uint { LR_CREATEDIBSECTION = 0x2000 }
  6206         -enum : uint { LR_COPYFROMRESOURCE = 0x4000 }
  6207         -enum : uint { LR_SHARED = 0x8000 }
  6208         -
  6209         -extern(Windows) export HANDLE LoadImageA(
  6210         -  HINSTANCE,
  6211         -  LPCSTR,
  6212         -  UINT,
  6213         -  int,
  6214         -  int,
  6215         -  UINT);
  6216         -extern(Windows) export HANDLE LoadImageW(
  6217         -  HINSTANCE,
  6218         -  LPCWSTR,
  6219         -  UINT,
  6220         -  int,
  6221         -  int,
  6222         -  UINT);
  6223         -// #ifdef UNICODE
  6224         -alias LoadImageW LoadImage;
  6225         -// #else
  6226         -// #...
  6227         -// #endif // !UNICODE
  6228         -
  6229         -extern(Windows) export HANDLE CopyImage(
  6230         -  HANDLE,
  6231         -  UINT,
  6232         -  int,
  6233         -  int,
  6234         -  UINT);
  6235         -
  6236         -enum : uint { DI_MASK = 0x0001 }
  6237         -enum : uint { DI_IMAGE = 0x0002 }
  6238         -enum : uint { DI_NORMAL = 0x0003 }
  6239         -enum : uint { DI_COMPAT = 0x0004 }
  6240         -enum : uint { DI_DEFAULTSIZE = 0x0008 }
  6241         -// #if(_WIN32_WINNT >= 0x0501)
  6242         -enum : uint { DI_NOMIRROR = 0x0010 }
  6243         -// #endif /* _WIN32_WINNT >= 0x0501 */
  6244         -
  6245         -extern(Windows) export BOOL DrawIconEx(HDC hdc, int xLeft, int yTop,
  6246         -  HICON hIcon, int cxWidth, int cyWidth,
  6247         -  UINT istepIfAniCur, HBRUSH hbrFlickerFreeDraw, UINT diFlags);
  6248         -// #endif /* WINVER >= 0x0400 */
  6249         -
  6250         -extern(Windows) export HICON CreateIconIndirect(
  6251         -  PICONINFO piconinfo);
  6252         -
  6253         -extern(Windows) export HICON CopyIcon(
  6254         -  HICON hIcon);
  6255         -
  6256         -extern(Windows) export BOOL GetIconInfo(
  6257         -  HICON hIcon,
  6258         -  PICONINFO piconinfo);
  6259         -
  6260         -// #if(WINVER >= 0x0400)
  6261         -enum : uint { RES_ICON = 1 }
  6262         -enum : uint { RES_CURSOR = 2 }
  6263         -// #endif /* WINVER >= 0x0400 */
  6264         -
  6265         -// #ifdef OEMRESOURCE
  6266         -
  6267         -// #...
  6268         -// #...
  6269         -// #...
  6270         -// #...
  6271         -// #...
  6272         -// #...
  6273         -// #...
  6274         -// #...
  6275         -// #...
  6276         -// #...
  6277         -// #...
  6278         -// #...
  6279         -// #...
  6280         -// #...
  6281         -// #...
  6282         -// #...
  6283         -// #...
  6284         -// #...
  6285         -// #...
  6286         -// #...
  6287         -// #...
  6288         -
  6289         -// #...
  6290         -// #...
  6291         -// #...
  6292         -// #...
  6293         -// #...
  6294         -// #...
  6295         -// #...
  6296         -// #...
  6297         -// #...
  6298         -// #...
  6299         -// #...
  6300         -// #...
  6301         -// #...
  6302         -
  6303         -// #...
  6304         -// #...
  6305         -// #...
  6306         -// #...
  6307         -// #...
  6308         -// #...
  6309         -// #...
  6310         -// #...
  6311         -// #...
  6312         -// #...
  6313         -// #...
  6314         -// #...
  6315         -// #...
  6316         -// #...
  6317         -// #if(WINVER >= 0x0500)
  6318         -// #...
  6319         -// #endif /* WINVER >= 0x0500 */
  6320         -// #if(WINVER >= 0x0400)
  6321         -// #...
  6322         -// #endif /* WINVER >= 0x0400 */
  6323         -
  6324         -// #...
  6325         -// #...
  6326         -// #...
  6327         -// #...
  6328         -// #...
  6329         -// #if(WINVER >= 0x0400)
  6330         -// #...
  6331         -// #...
  6332         -// #...
  6333         -// #...
  6334         -// #endif /* WINVER >= 0x0400 */
  6335         -
  6336         -// #endif /* OEMRESOURCE */
  6337         -
  6338         -enum : uint { ORD_LANGDRIVER = 1 }
  6339         -
  6340         -// #ifndef NOICONS
  6341         -
  6342         -// #ifdef RC_INVOKED
  6343         -// #...
  6344         -// #...
  6345         -// #...
  6346         -// #...
  6347         -// #...
  6348         -// #if(WINVER >= 0x0400)
  6349         -// #...
  6350         -// #endif /* WINVER >= 0x0400 */
  6351         -// #else
  6352         -const LPTSTR IDI_APPLICATION = cast(LPTSTR)(32512);
  6353         -const LPTSTR IDI_HAND = cast(LPTSTR)(32513);
  6354         -const LPTSTR IDI_QUESTION = cast(LPTSTR)(32514);
  6355         -const LPTSTR IDI_EXCLAMATION = cast(LPTSTR)(32515);
  6356         -const LPTSTR IDI_ASTERISK = cast(LPTSTR)(32516);
  6357         -// #if(WINVER >= 0x0400)
  6358         -const LPTSTR IDI_WINLOGO = cast(LPTSTR)(32517);
  6359         -// #endif /* WINVER >= 0x0400 */
  6360         -// #endif /* RC_INVOKED */
  6361         -
  6362         -// #if(WINVER >= 0x0400)
  6363         -alias IDI_EXCLAMATION IDI_WARNING;
  6364         -alias IDI_HAND IDI_ERROR;
  6365         -alias IDI_ASTERISK IDI_INFORMATION;
  6366         -// #endif /* WINVER >= 0x0400 */
  6367         -
  6368         -// #endif /* !NOICONS */
  6369         -
  6370         -extern(Windows) export int LoadStringA(
  6371         -  HINSTANCE hInstance,
  6372         -  UINT uID,
  6373         -  LPSTR lpBuffer,
  6374         -  int nBufferMax);
  6375         -extern(Windows) export int LoadStringW(
  6376         -  HINSTANCE hInstance,
  6377         -  UINT uID,
  6378         -  LPWSTR lpBuffer,
  6379         -  int nBufferMax);
  6380         -// #ifdef UNICODE
  6381         -alias LoadStringW LoadString;
  6382         -// #else
  6383         -// #...
  6384         -// #endif // !UNICODE
  6385         -
  6386         -enum : uint { IDOK = 1 }
  6387         -enum : uint { IDCANCEL = 2 }
  6388         -enum : uint { IDABORT = 3 }
  6389         -enum : uint { IDRETRY = 4 }
  6390         -enum : uint { IDIGNORE = 5 }
  6391         -enum : uint { IDYES = 6 }
  6392         -enum : uint { IDNO = 7 }
  6393         -// #if(WINVER >= 0x0400)
  6394         -enum : uint { IDCLOSE = 8 }
  6395         -enum : uint { IDHELP = 9 }
  6396         -// #endif /* WINVER >= 0x0400 */
  6397         -
  6398         -// #if(WINVER >= 0x0500)
  6399         -enum : uint { IDTRYAGAIN = 10 }
  6400         -enum : uint { IDCONTINUE = 11 }
  6401         -// #endif /* WINVER >= 0x0500 */
  6402         -
  6403         -// #if(WINVER >= 0x0501)
  6404         -// #ifndef IDTIMEOUT
  6405         -enum : uint { IDTIMEOUT = 32000 }
  6406         -// #endif
  6407         -// #endif /* WINVER >= 0x0501 */
  6408         -
  6409         -// #ifndef NOCTLMGR
  6410         -
  6411         -// #ifndef NOWINSTYLES
  6412         -
  6413         -enum : uint { ES_LEFT = 0x0000 }
  6414         -enum : uint { ES_CENTER = 0x0001 }
  6415         -enum : uint { ES_RIGHT = 0x0002 }
  6416         -enum : uint { ES_MULTILINE = 0x0004 }
  6417         -enum : uint { ES_UPPERCASE = 0x0008 }
  6418         -enum : uint { ES_LOWERCASE = 0x0010 }
  6419         -enum : uint { ES_PASSWORD = 0x0020 }
  6420         -enum : uint { ES_AUTOVSCROLL = 0x0040 }
  6421         -enum : uint { ES_AUTOHSCROLL = 0x0080 }
  6422         -enum : uint { ES_NOHIDESEL = 0x0100 }
  6423         -enum : uint { ES_OEMCONVERT = 0x0400 }
  6424         -enum : uint { ES_READONLY = 0x0800 }
  6425         -enum : uint { ES_WANTRETURN = 0x1000 }
  6426         -// #if(WINVER >= 0x0400)
  6427         -enum : uint { ES_NUMBER = 0x2000 }
  6428         -// #endif /* WINVER >= 0x0400 */
  6429         -
  6430         -// #endif /* !NOWINSTYLES */
  6431         -
  6432         -enum : uint { EN_SETFOCUS = 0x0100 }
  6433         -enum : uint { EN_KILLFOCUS = 0x0200 }
  6434         -enum : uint { EN_CHANGE = 0x0300 }
  6435         -enum : uint { EN_UPDATE = 0x0400 }
  6436         -enum : uint { EN_ERRSPACE = 0x0500 }
  6437         -enum : uint { EN_MAXTEXT = 0x0501 }
  6438         -enum : uint { EN_HSCROLL = 0x0601 }
  6439         -enum : uint { EN_VSCROLL = 0x0602 }
  6440         -
  6441         -// #if(_WIN32_WINNT >= 0x0500)
  6442         -enum : uint { EN_ALIGN_LTR_EC = 0x0700 }
  6443         -enum : uint { EN_ALIGN_RTL_EC = 0x0701 }
  6444         -// #endif /* _WIN32_WINNT >= 0x0500 */
  6445         -
  6446         -// #if(WINVER >= 0x0400)
  6447         -
  6448         -enum : uint { EC_LEFTMARGIN = 0x0001 }
  6449         -enum : uint { EC_RIGHTMARGIN = 0x0002 }
  6450         -enum : uint { EC_USEFONTINFO = 0xffff }
  6451         -// #endif /* WINVER >= 0x0400 */
  6452         -
  6453         -// #if(WINVER >= 0x0500)
  6454         -
  6455         -enum : uint { EMSIS_COMPOSITIONSTRING = 0x0001 }
  6456         -
  6457         -enum : uint { EIMES_GETCOMPSTRATONCE = 0x0001 }
  6458         -enum : uint { EIMES_CANCELCOMPSTRINFOCUS = 0x0002 }
  6459         -enum : uint { EIMES_COMPLETECOMPSTRKILLFOCUS = 0x0004 }
  6460         -// #endif /* WINVER >= 0x0500 */
  6461         -
  6462         -// #ifndef NOWINMESSAGES
  6463         -
  6464         -enum : uint { EM_GETSEL = 0x00B0 }
  6465         -enum : uint { EM_SETSEL = 0x00B1 }
  6466         -enum : uint { EM_GETRECT = 0x00B2 }
  6467         -enum : uint { EM_SETRECT = 0x00B3 }
  6468         -enum : uint { EM_SETRECTNP = 0x00B4 }
  6469         -enum : uint { EM_SCROLL = 0x00B5 }
  6470         -enum : uint { EM_LINESCROLL = 0x00B6 }
  6471         -enum : uint { EM_SCROLLCARET = 0x00B7 }
  6472         -enum : uint { EM_GETMODIFY = 0x00B8 }
  6473         -enum : uint { EM_SETMODIFY = 0x00B9 }
  6474         -enum : uint { EM_GETLINECOUNT = 0x00BA }
  6475         -enum : uint { EM_LINEINDEX = 0x00BB }
  6476         -enum : uint { EM_SETHANDLE = 0x00BC }
  6477         -enum : uint { EM_GETHANDLE = 0x00BD }
  6478         -enum : uint { EM_GETTHUMB = 0x00BE }
  6479         -enum : uint { EM_LINELENGTH = 0x00C1 }
  6480         -enum : uint { EM_REPLACESEL = 0x00C2 }
  6481         -enum : uint { EM_GETLINE = 0x00C4 }
  6482         -enum : uint { EM_LIMITTEXT = 0x00C5 }
  6483         -enum : uint { EM_CANUNDO = 0x00C6 }
  6484         -enum : uint { EM_UNDO = 0x00C7 }
  6485         -enum : uint { EM_FMTLINES = 0x00C8 }
  6486         -enum : uint { EM_LINEFROMCHAR = 0x00C9 }
  6487         -enum : uint { EM_SETTABSTOPS = 0x00CB }
  6488         -enum : uint { EM_SETPASSWORDCHAR = 0x00CC }
  6489         -enum : uint { EM_EMPTYUNDOBUFFER = 0x00CD }
  6490         -enum : uint { EM_GETFIRSTVISIBLELINE = 0x00CE }
  6491         -enum : uint { EM_SETREADONLY = 0x00CF }
  6492         -enum : uint { EM_SETWORDBREAKPROC = 0x00D0 }
  6493         -enum : uint { EM_GETWORDBREAKPROC = 0x00D1 }
  6494         -enum : uint { EM_GETPASSWORDCHAR = 0x00D2 }
  6495         -// #if(WINVER >= 0x0400)
  6496         -enum : uint { EM_SETMARGINS = 0x00D3 }
  6497         -enum : uint { EM_GETMARGINS = 0x00D4 }
  6498         -alias EM_LIMITTEXT EM_SETLIMITTEXT;
  6499         -enum : uint { EM_GETLIMITTEXT = 0x00D5 }
  6500         -enum : uint { EM_POSFROMCHAR = 0x00D6 }
  6501         -enum : uint { EM_CHARFROMPOS = 0x00D7 }
  6502         -// #endif /* WINVER >= 0x0400 */
  6503         -
  6504         -// #if(WINVER >= 0x0500)
  6505         -enum : uint { EM_SETIMESTATUS = 0x00D8 }
  6506         -enum : uint { EM_GETIMESTATUS = 0x00D9 }
  6507         -// #endif /* WINVER >= 0x0500 */
  6508         -
  6509         -// #endif /* !NOWINMESSAGES */
  6510         -
  6511         -enum : uint { WB_LEFT = 0 }
  6512         -enum : uint { WB_RIGHT = 1 }
  6513         -enum : uint { WB_ISDELIMITER = 2 }
  6514         -
  6515         -enum : uint { BS_PUSHBUTTON = 0x00000000 }
  6516         -enum : uint { BS_DEFPUSHBUTTON = 0x00000001 }
  6517         -enum : uint { BS_CHECKBOX = 0x00000002 }
  6518         -enum : uint { BS_AUTOCHECKBOX = 0x00000003 }
  6519         -enum : uint { BS_RADIOBUTTON = 0x00000004 }
  6520         -enum : uint { BS_3STATE = 0x00000005 }
  6521         -enum : uint { BS_AUTO3STATE = 0x00000006 }
  6522         -enum : uint { BS_GROUPBOX = 0x00000007 }
  6523         -enum : uint { BS_USERBUTTON = 0x00000008 }
  6524         -enum : uint { BS_AUTORADIOBUTTON = 0x00000009 }
  6525         -enum : uint { BS_OWNERDRAW = 0x0000000B }
  6526         -enum : uint { BS_LEFTTEXT = 0x00000020 }
  6527         -// #if(WINVER >= 0x0400)
  6528         -enum : uint { BS_TEXT = 0x00000000 }
  6529         -enum : uint { BS_ICON = 0x00000040 }
  6530         -enum : uint { BS_BITMAP = 0x00000080 }
  6531         -enum : uint { BS_LEFT = 0x00000100 }
  6532         -enum : uint { BS_RIGHT = 0x00000200 }
  6533         -enum : uint { BS_CENTER = 0x00000300 }
  6534         -enum : uint { BS_TOP = 0x00000400 }
  6535         -enum : uint { BS_BOTTOM = 0x00000800 }
  6536         -enum : uint { BS_VCENTER = 0x00000C00 }
  6537         -enum : uint { BS_PUSHLIKE = 0x00001000 }
  6538         -enum : uint { BS_MULTILINE = 0x00002000 }
  6539         -enum : uint { BS_NOTIFY = 0x00004000 }
  6540         -enum : uint { BS_FLAT = 0x00008000 }
  6541         -alias BS_LEFTTEXT BS_RIGHTBUTTON;
  6542         -// #endif /* WINVER >= 0x0400 */
  6543         -
  6544         -enum : uint { BN_CLICKED = 0 }
  6545         -enum : uint { BN_PAINT = 1 }
  6546         -enum : uint { BN_HILITE = 2 }
  6547         -enum : uint { BN_UNHILITE = 3 }
  6548         -enum : uint { BN_DISABLE = 4 }
  6549         -enum : uint { BN_DOUBLECLICKED = 5 }
  6550         -// #if(WINVER >= 0x0400)
  6551         -alias BN_HILITE BN_PUSHED;
  6552         -alias BN_UNHILITE BN_UNPUSHED;
  6553         -alias BN_DOUBLECLICKED BN_DBLCLK;
  6554         -enum : uint { BN_SETFOCUS = 6 }
  6555         -enum : uint { BN_KILLFOCUS = 7 }
  6556         -// #endif /* WINVER >= 0x0400 */
  6557         -
  6558         -enum : uint { BM_GETCHECK = 0x00F0 }
  6559         -enum : uint { BM_SETCHECK = 0x00F1 }
  6560         -enum : uint { BM_GETSTATE = 0x00F2 }
  6561         -enum : uint { BM_SETSTATE = 0x00F3 }
  6562         -enum : uint { BM_SETSTYLE = 0x00F4 }
  6563         -// #if(WINVER >= 0x0400)
  6564         -enum : uint { BM_CLICK = 0x00F5 }
  6565         -enum : uint { BM_GETIMAGE = 0x00F6 }
  6566         -enum : uint { BM_SETIMAGE = 0x00F7 }
  6567         -
  6568         -enum : uint { BST_UNCHECKED = 0x0000 }
  6569         -enum : uint { BST_CHECKED = 0x0001 }
  6570         -enum : uint { BST_INDETERMINATE = 0x0002 }
  6571         -enum : uint { BST_PUSHED = 0x0004 }
  6572         -enum : uint { BST_FOCUS = 0x0008 }
  6573         -// #endif /* WINVER >= 0x0400 */
  6574         -
  6575         -enum : uint { SS_LEFT = 0x00000000 }
  6576         -enum : uint { SS_CENTER = 0x00000001 }
  6577         -enum : uint { SS_RIGHT = 0x00000002 }
  6578         -enum : uint { SS_ICON = 0x00000003 }
  6579         -enum : uint { SS_BLACKRECT = 0x00000004 }
  6580         -enum : uint { SS_GRAYRECT = 0x00000005 }
  6581         -enum : uint { SS_WHITERECT = 0x00000006 }
  6582         -enum : uint { SS_BLACKFRAME = 0x00000007 }
  6583         -enum : uint { SS_GRAYFRAME = 0x00000008 }
  6584         -enum : uint { SS_WHITEFRAME = 0x00000009 }
  6585         -enum : uint { SS_USERITEM = 0x0000000A }
  6586         -enum : uint { SS_SIMPLE = 0x0000000B }
  6587         -enum : uint { SS_LEFTNOWORDWRAP = 0x0000000C }
  6588         -// #if(WINVER >= 0x0400)
  6589         -enum : uint { SS_OWNERDRAW = 0x0000000D }
  6590         -enum : uint { SS_BITMAP = 0x0000000E }
  6591         -enum : uint { SS_ENHMETAFILE = 0x0000000F }
  6592         -enum : uint { SS_ETCHEDHORZ = 0x00000010 }
  6593         -enum : uint { SS_ETCHEDVERT = 0x00000011 }
  6594         -enum : uint { SS_ETCHEDFRAME = 0x00000012 }
  6595         -enum : uint { SS_TYPEMASK = 0x0000001F }
  6596         -// #endif /* WINVER >= 0x0400 */
  6597         -// #if(WINVER >= 0x0501)
  6598         -enum : uint { SS_REALSIZECONTROL = 0x00000040 }
  6599         -// #endif /* WINVER >= 0x0501 */
  6600         -enum : uint { SS_NOPREFIX = 0x00000080 }
  6601         -// #if(WINVER >= 0x0400)
  6602         -enum : uint { SS_NOTIFY = 0x00000100 }
  6603         -enum : uint { SS_CENTERIMAGE = 0x00000200 }
  6604         -enum : uint { SS_RIGHTJUST = 0x00000400 }
  6605         -enum : uint { SS_REALSIZEIMAGE = 0x00000800 }
  6606         -enum : uint { SS_SUNKEN = 0x00001000 }
  6607         -enum : uint { SS_ENDELLIPSIS = 0x00004000 }
  6608         -enum : uint { SS_PATHELLIPSIS = 0x00008000 }
  6609         -enum : uint { SS_WORDELLIPSIS = 0x0000C000 }
  6610         -enum : uint { SS_ELLIPSISMASK = 0x0000C000 }
  6611         -// #endif /* WINVER >= 0x0400 */
  6612         -
  6613         -// #ifndef NOWINMESSAGES
  6614         -
  6615         -enum : uint { STM_SETICON = 0x0170 }
  6616         -enum : uint { STM_GETICON = 0x0171 }
  6617         -// #if(WINVER >= 0x0400)
  6618         -enum : uint { STM_SETIMAGE = 0x0172 }
  6619         -enum : uint { STM_GETIMAGE = 0x0173 }
  6620         -enum : uint { STN_CLICKED = 0 }
  6621         -enum : uint { STN_DBLCLK = 1 }
  6622         -enum : uint { STN_ENABLE = 2 }
  6623         -enum : uint { STN_DISABLE = 3 }
  6624         -// #endif /* WINVER >= 0x0400 */
  6625         -enum : uint { STM_MSGMAX = 0x0174 }
  6626         -// #endif /* !NOWINMESSAGES */
  6627         -
  6628         -const ATOM WC_DIALOG = cast(ATOM)0x8002;
  6629         -
  6630         -enum : uint { DWL_MSGRESULT = 0 }
  6631         -enum : uint { DWL_DLGPROC = 4 }
  6632         -enum : uint { DWL_USER = 8 }
  6633         -
  6634         -// #ifdef _WIN64
  6635         -
  6636         -// #...
  6637         -// #...
  6638         -// #...
  6639         -
  6640         -// #endif /* _WIN64 */
  6641         -
  6642         -enum : uint { DWLP_MSGRESULT = 0 }
  6643         -enum : uint { DWLP_DLGPROC = DWLP_MSGRESULT + LRESULT.sizeof }
  6644         -enum : uint { DWLP_USER = DWLP_DLGPROC + DLGPROC.sizeof }
  6645         -
  6646         -// #ifndef NOMSG
  6647         -
  6648         -extern(Windows) export BOOL IsDialogMessageA(
  6649         -  HWND hDlg,
  6650         -  LPMSG lpMsg);
  6651         -extern(Windows) export BOOL IsDialogMessageW(
  6652         -  HWND hDlg,
  6653         -  LPMSG lpMsg);
  6654         -// #ifdef UNICODE
  6655         -alias IsDialogMessageW IsDialogMessage;
  6656         -// #else
  6657         -// #...
  6658         -// #endif // !UNICODE
  6659         -
  6660         -// #endif /* !NOMSG */
  6661         -
  6662         -extern(Windows) export BOOL MapDialogRect(
  6663         -  HWND hDlg,
  6664         -  LPRECT lpRect);
  6665         -
  6666         -extern(Windows) export int DlgDirListA(
  6667         -  HWND hDlg,
  6668         -  LPSTR lpPathSpec,
  6669         -  int nIDListBox,
  6670         -  int nIDStaticPath,
  6671         -  UINT uFileType);
  6672         -extern(Windows) export int DlgDirListW(
  6673         -  HWND hDlg,
  6674         -  LPWSTR lpPathSpec,
  6675         -  int nIDListBox,
  6676         -  int nIDStaticPath,
  6677         -  UINT uFileType);
  6678         -// #ifdef UNICODE
  6679         -alias DlgDirListW DlgDirList;
  6680         -// #else
  6681         -// #...
  6682         -// #endif // !UNICODE
  6683         -
  6684         -enum : uint { DDL_READWRITE = 0x0000 }
  6685         -enum : uint { DDL_READONLY = 0x0001 }
  6686         -enum : uint { DDL_HIDDEN = 0x0002 }
  6687         -enum : uint { DDL_SYSTEM = 0x0004 }
  6688         -enum : uint { DDL_DIRECTORY = 0x0010 }
  6689         -enum : uint { DDL_ARCHIVE = 0x0020 }
  6690         -
  6691         -enum : uint { DDL_POSTMSGS = 0x2000 }
  6692         -enum : uint { DDL_DRIVES = 0x4000 }
  6693         -enum : uint { DDL_EXCLUSIVE = 0x8000 }
  6694         -
  6695         -extern(Windows) export BOOL DlgDirSelectExA(
  6696         -  HWND hDlg,
  6697         -  LPSTR lpString,
  6698         -  int nCount,
  6699         -  int nIDListBox);
  6700         -extern(Windows) export BOOL DlgDirSelectExW(
  6701         -  HWND hDlg,
  6702         -  LPWSTR lpString,
  6703         -  int nCount,
  6704         -  int nIDListBox);
  6705         -// #ifdef UNICODE
  6706         -alias DlgDirSelectExW DlgDirSelectEx;
  6707         -// #else
  6708         -// #...
  6709         -// #endif // !UNICODE
  6710         -
  6711         -extern(Windows) export int DlgDirListComboBoxA(
  6712         -  HWND hDlg,
  6713         -  LPSTR lpPathSpec,
  6714         -  int nIDComboBox,
  6715         -  int nIDStaticPath,
  6716         -  UINT uFiletype);
  6717         -extern(Windows) export int DlgDirListComboBoxW(
  6718         -  HWND hDlg,
  6719         -  LPWSTR lpPathSpec,
  6720         -  int nIDComboBox,
  6721         -  int nIDStaticPath,
  6722         -  UINT uFiletype);
  6723         -// #ifdef UNICODE
  6724         -alias DlgDirListComboBoxW DlgDirListComboBox;
  6725         -// #else
  6726         -// #...
  6727         -// #endif // !UNICODE
  6728         -
  6729         -extern(Windows) export BOOL DlgDirSelectComboBoxExA(
  6730         -  HWND hDlg,
  6731         -  LPSTR lpString,
  6732         -  int nCount,
  6733         -  int nIDComboBox);
  6734         -extern(Windows) export BOOL DlgDirSelectComboBoxExW(
  6735         -  HWND hDlg,
  6736         -  LPWSTR lpString,
  6737         -  int nCount,
  6738         -  int nIDComboBox);
  6739         -// #ifdef UNICODE
  6740         -alias DlgDirSelectComboBoxExW DlgDirSelectComboBoxEx;
  6741         -// #else
  6742         -// #...
  6743         -// #endif // !UNICODE
  6744         -
  6745         -enum : uint { DS_ABSALIGN = 0x01 }
  6746         -enum : uint { DS_SYSMODAL = 0x02 }
  6747         -enum : uint { DS_LOCALEDIT = 0x20 }
  6748         -enum : uint { DS_SETFONT = 0x40 }
  6749         -enum : uint { DS_MODALFRAME = 0x80 }
  6750         -enum : uint { DS_NOIDLEMSG = 0x100 }
  6751         -enum : uint { DS_SETFOREGROUND = 0x200 }
  6752         -
  6753         -// #if(WINVER >= 0x0400)
  6754         -enum : uint { DS_3DLOOK = 0x0004 }
  6755         -enum : uint { DS_FIXEDSYS = 0x0008 }
  6756         -enum : uint { DS_NOFAILCREATE = 0x0010 }
  6757         -enum : uint { DS_CONTROL = 0x0400 }
  6758         -enum : uint { DS_CENTER = 0x0800 }
  6759         -enum : uint { DS_CENTERMOUSE = 0x1000 }
  6760         -enum : uint { DS_CONTEXTHELP = 0x2000 }
  6761         -
  6762         -enum : uint { DS_SHELLFONT = DS_SETFONT | DS_FIXEDSYS }
  6763         -// #endif /* WINVER >= 0x0400 */
  6764         -
  6765         -enum : uint { DM_GETDEFID = WM_USER+0 }
  6766         -enum : uint { DM_SETDEFID = WM_USER+1 }
  6767         -
  6768         -// #if(WINVER >= 0x0400)
  6769         -enum : uint { DM_REPOSITION = WM_USER+2 }
  6770         -// #endif /* WINVER >= 0x0400 */
  6771         -
  6772         -enum : uint { DC_HASDEFID = 0x534B }
  6773         -
  6774         -enum : uint { DLGC_WANTARROWS = 0x0001 }
  6775         -enum : uint { DLGC_WANTTAB = 0x0002 }
  6776         -enum : uint { DLGC_WANTALLKEYS = 0x0004 }
  6777         -enum : uint { DLGC_WANTMESSAGE = 0x0004 }
  6778         -enum : uint { DLGC_HASSETSEL = 0x0008 }
  6779         -enum : uint { DLGC_DEFPUSHBUTTON = 0x0010 }
  6780         -enum : uint { DLGC_UNDEFPUSHBUTTON = 0x0020 }
  6781         -enum : uint { DLGC_RADIOBUTTON = 0x0040 }
  6782         -enum : uint { DLGC_WANTCHARS = 0x0080 }
  6783         -enum : uint { DLGC_STATIC = 0x0100 }
  6784         -enum : uint { DLGC_BUTTON = 0x2000 }
  6785         -
  6786         -enum : uint { LB_CTLCODE = 0 }
  6787         -
  6788         -enum : uint { LB_OKAY = 0 }
  6789         -enum { LB_ERR = -1 }
  6790         -enum { LB_ERRSPACE = -2 }
  6791         -
  6792         -enum { LBN_ERRSPACE = -2 }
  6793         -enum : uint { LBN_SELCHANGE = 1 }
  6794         -enum : uint { LBN_DBLCLK = 2 }
  6795         -enum : uint { LBN_SELCANCEL = 3 }
  6796         -enum : uint { LBN_SETFOCUS = 4 }
  6797         -enum : uint { LBN_KILLFOCUS = 5 }
  6798         -
  6799         -// #ifndef NOWINMESSAGES
  6800         -
  6801         -enum : uint { LB_ADDSTRING = 0x0180 }
  6802         -enum : uint { LB_INSERTSTRING = 0x0181 }
  6803         -enum : uint { LB_DELETESTRING = 0x0182 }
  6804         -enum : uint { LB_SELITEMRANGEEX = 0x0183 }
  6805         -enum : uint { LB_RESETCONTENT = 0x0184 }
  6806         -enum : uint { LB_SETSEL = 0x0185 }
  6807         -enum : uint { LB_SETCURSEL = 0x0186 }
  6808         -enum : uint { LB_GETSEL = 0x0187 }
  6809         -enum : uint { LB_GETCURSEL = 0x0188 }
  6810         -enum : uint { LB_GETTEXT = 0x0189 }
  6811         -enum : uint { LB_GETTEXTLEN = 0x018A }
  6812         -enum : uint { LB_GETCOUNT = 0x018B }
  6813         -enum : uint { LB_SELECTSTRING = 0x018C }
  6814         -enum : uint { LB_DIR = 0x018D }
  6815         -enum : uint { LB_GETTOPINDEX = 0x018E }
  6816         -enum : uint { LB_FINDSTRING = 0x018F }
  6817         -enum : uint { LB_GETSELCOUNT = 0x0190 }
  6818         -enum : uint { LB_GETSELITEMS = 0x0191 }
  6819         -enum : uint { LB_SETTABSTOPS = 0x0192 }
  6820         -enum : uint { LB_GETHORIZONTALEXTENT = 0x0193 }
  6821         -enum : uint { LB_SETHORIZONTALEXTENT = 0x0194 }
  6822         -enum : uint { LB_SETCOLUMNWIDTH = 0x0195 }
  6823         -enum : uint { LB_ADDFILE = 0x0196 }
  6824         -enum : uint { LB_SETTOPINDEX = 0x0197 }
  6825         -enum : uint { LB_GETITEMRECT = 0x0198 }
  6826         -enum : uint { LB_GETITEMDATA = 0x0199 }
  6827         -enum : uint { LB_SETITEMDATA = 0x019A }
  6828         -enum : uint { LB_SELITEMRANGE = 0x019B }
  6829         -enum : uint { LB_SETANCHORINDEX = 0x019C }
  6830         -enum : uint { LB_GETANCHORINDEX = 0x019D }
  6831         -enum : uint { LB_SETCARETINDEX = 0x019E }
  6832         -enum : uint { LB_GETCARETINDEX = 0x019F }
  6833         -enum : uint { LB_SETITEMHEIGHT = 0x01A0 }
  6834         -enum : uint { LB_GETITEMHEIGHT = 0x01A1 }
  6835         -enum : uint { LB_FINDSTRINGEXACT = 0x01A2 }
  6836         -enum : uint { LB_SETLOCALE = 0x01A5 }
  6837         -enum : uint { LB_GETLOCALE = 0x01A6 }
  6838         -enum : uint { LB_SETCOUNT = 0x01A7 }
  6839         -// #if(WINVER >= 0x0400)
  6840         -enum : uint { LB_INITSTORAGE = 0x01A8 }
  6841         -enum : uint { LB_ITEMFROMPOINT = 0x01A9 }
  6842         -// #endif /* WINVER >= 0x0400 */
  6843         -// #if(_WIN32_WCE >= 0x0400)
  6844         -// #...
  6845         -// #endif
  6846         -
  6847         -// #if(_WIN32_WINNT >= 0x0501)
  6848         -enum : uint { LB_GETLISTBOXINFO = 0x01B2 }
  6849         -// #endif /* _WIN32_WINNT >= 0x0501 */
  6850         -
  6851         -// #if(_WIN32_WINNT >= 0x0501)
  6852         -enum : uint { LB_MSGMAX = 0x01B3 }
  6853         -// #elif(_WIN32_WCE >= 0x0400)
  6854         -// #...
  6855         -// #elif(WINVER >= 0x0400)
  6856         -// #...
  6857         -// #else
  6858         -// #...
  6859         -// #endif
  6860         -
  6861         -// #endif /* !NOWINMESSAGES */
  6862         -
  6863         -// #ifndef NOWINSTYLES
  6864         -
  6865         -enum : uint { LBS_NOTIFY = 0x0001 }
  6866         -enum : uint { LBS_SORT = 0x0002 }
  6867         -enum : uint { LBS_NOREDRAW = 0x0004 }
  6868         -enum : uint { LBS_MULTIPLESEL = 0x0008 }
  6869         -enum : uint { LBS_OWNERDRAWFIXED = 0x0010 }
  6870         -enum : uint { LBS_OWNERDRAWVARIABLE = 0x0020 }
  6871         -enum : uint { LBS_HASSTRINGS = 0x0040 }
  6872         -enum : uint { LBS_USETABSTOPS = 0x0080 }
  6873         -enum : uint { LBS_NOINTEGRALHEIGHT = 0x0100 }
  6874         -enum : uint { LBS_MULTICOLUMN = 0x0200 }
  6875         -enum : uint { LBS_WANTKEYBOARDINPUT = 0x0400 }
  6876         -enum : uint { LBS_EXTENDEDSEL = 0x0800 }
  6877         -enum : uint { LBS_DISABLENOSCROLL = 0x1000 }
  6878         -enum : uint { LBS_NODATA = 0x2000 }
  6879         -// #if(WINVER >= 0x0400)
  6880         -enum : uint { LBS_NOSEL = 0x4000 }
  6881         -// #endif /* WINVER >= 0x0400 */
  6882         -enum : uint { LBS_STANDARD = LBS_NOTIFY | LBS_SORT | WS_VSCROLL | WS_BORDER }
  6883         -
  6884         -// #endif /* !NOWINSTYLES */
  6885         -
  6886         -enum : uint { CB_OKAY = 0 }
  6887         -enum { CB_ERR = -1 }
  6888         -enum { CB_ERRSPACE = -2 }
  6889         -
  6890         -enum { CBN_ERRSPACE = -1 }
  6891         -enum : uint { CBN_SELCHANGE = 1 }
  6892         -enum : uint { CBN_DBLCLK = 2 }
  6893         -enum : uint { CBN_SETFOCUS = 3 }
  6894         -enum : uint { CBN_KILLFOCUS = 4 }
  6895         -enum : uint { CBN_EDITCHANGE = 5 }
  6896         -enum : uint { CBN_EDITUPDATE = 6 }
  6897         -enum : uint { CBN_DROPDOWN = 7 }
  6898         -enum : uint { CBN_CLOSEUP = 8 }
  6899         -enum : uint { CBN_SELENDOK = 9 }
  6900         -enum : uint { CBN_SELENDCANCEL = 10 }
  6901         -
  6902         -// #ifndef NOWINSTYLES
  6903         -
  6904         -enum : uint { CBS_SIMPLE = 0x0001 }
  6905         -enum : uint { CBS_DROPDOWN = 0x0002 }
  6906         -enum : uint { CBS_DROPDOWNLIST = 0x0003 }
  6907         -enum : uint { CBS_OWNERDRAWFIXED = 0x0010 }
  6908         -enum : uint { CBS_OWNERDRAWVARIABLE = 0x0020 }
  6909         -enum : uint { CBS_AUTOHSCROLL = 0x0040 }
  6910         -enum : uint { CBS_OEMCONVERT = 0x0080 }
  6911         -enum : uint { CBS_SORT = 0x0100 }
  6912         -enum : uint { CBS_HASSTRINGS = 0x0200 }
  6913         -enum : uint { CBS_NOINTEGRALHEIGHT = 0x0400 }
  6914         -enum : uint { CBS_DISABLENOSCROLL = 0x0800 }
  6915         -// #if(WINVER >= 0x0400)
  6916         -enum : uint { CBS_UPPERCASE = 0x2000 }
  6917         -enum : uint { CBS_LOWERCASE = 0x4000 }
  6918         -// #endif /* WINVER >= 0x0400 */
  6919         -
  6920         -// #endif  /* !NOWINSTYLES */
  6921         -
  6922         -// #ifndef NOWINMESSAGES
  6923         -enum : uint { CB_GETEDITSEL = 0x0140 }
  6924         -enum : uint { CB_LIMITTEXT = 0x0141 }
  6925         -enum : uint { CB_SETEDITSEL = 0x0142 }
  6926         -enum : uint { CB_ADDSTRING = 0x0143 }
  6927         -enum : uint { CB_DELETESTRING = 0x0144 }
  6928         -enum : uint { CB_DIR = 0x0145 }
  6929         -enum : uint { CB_GETCOUNT = 0x0146 }
  6930         -enum : uint { CB_GETCURSEL = 0x0147 }
  6931         -enum : uint { CB_GETLBTEXT = 0x0148 }
  6932         -enum : uint { CB_GETLBTEXTLEN = 0x0149 }
  6933         -enum : uint { CB_INSERTSTRING = 0x014A }
  6934         -enum : uint { CB_RESETCONTENT = 0x014B }
  6935         -enum : uint { CB_FINDSTRING = 0x014C }
  6936         -enum : uint { CB_SELECTSTRING = 0x014D }
  6937         -enum : uint { CB_SETCURSEL = 0x014E }
  6938         -enum : uint { CB_SHOWDROPDOWN = 0x014F }
  6939         -enum : uint { CB_GETITEMDATA = 0x0150 }
  6940         -enum : uint { CB_SETITEMDATA = 0x0151 }
  6941         -enum : uint { CB_GETDROPPEDCONTROLRECT = 0x0152 }
  6942         -enum : uint { CB_SETITEMHEIGHT = 0x0153 }
  6943         -enum : uint { CB_GETITEMHEIGHT = 0x0154 }
  6944         -enum : uint { CB_SETEXTENDEDUI = 0x0155 }
  6945         -enum : uint { CB_GETEXTENDEDUI = 0x0156 }
  6946         -enum : uint { CB_GETDROPPEDSTATE = 0x0157 }
  6947         -enum : uint { CB_FINDSTRINGEXACT = 0x0158 }
  6948         -enum : uint { CB_SETLOCALE = 0x0159 }
  6949         -enum : uint { CB_GETLOCALE = 0x015A }
  6950         -// #if(WINVER >= 0x0400)
  6951         -enum : uint { CB_GETTOPINDEX = 0x015b }
  6952         -enum : uint { CB_SETTOPINDEX = 0x015c }
  6953         -enum : uint { CB_GETHORIZONTALEXTENT = 0x015d }
  6954         -enum : uint { CB_SETHORIZONTALEXTENT = 0x015e }
  6955         -enum : uint { CB_GETDROPPEDWIDTH = 0x015f }
  6956         -enum : uint { CB_SETDROPPEDWIDTH = 0x0160 }
  6957         -enum : uint { CB_INITSTORAGE = 0x0161 }
  6958         -// #if(_WIN32_WCE >= 0x0400)
  6959         -// #...
  6960         -// #endif
  6961         -// #endif /* WINVER >= 0x0400 */
  6962         -
  6963         -// #if(_WIN32_WINNT >= 0x0501)
  6964         -enum : uint { CB_GETCOMBOBOXINFO = 0x0164 }
  6965         -// #endif /* _WIN32_WINNT >= 0x0501 */
  6966         -
  6967         -// #if(_WIN32_WINNT >= 0x0501)
  6968         -enum : uint { CB_MSGMAX = 0x0165 }
  6969         -// #elif(_WIN32_WCE >= 0x0400)
  6970         -// #...
  6971         -// #elif(WINVER >= 0x0400)
  6972         -// #...
  6973         -// #else
  6974         -// #...
  6975         -// #endif
  6976         -// #endif  /* !NOWINMESSAGES */
  6977         -
  6978         -// #ifndef NOWINSTYLES
  6979         -
  6980         -enum : uint { SBS_HORZ = 0x0000 }
  6981         -enum : uint { SBS_VERT = 0x0001 }
  6982         -enum : uint { SBS_TOPALIGN = 0x0002 }
  6983         -enum : uint { SBS_LEFTALIGN = 0x0002 }
  6984         -enum : uint { SBS_BOTTOMALIGN = 0x0004 }
  6985         -enum : uint { SBS_RIGHTALIGN = 0x0004 }
  6986         -enum : uint { SBS_SIZEBOXTOPLEFTALIGN = 0x0002 }
  6987         -enum : uint { SBS_SIZEBOXBOTTOMRIGHTALIGN = 0x0004 }
  6988         -enum : uint { SBS_SIZEBOX = 0x0008 }
  6989         -// #if(WINVER >= 0x0400)
  6990         -enum : uint { SBS_SIZEGRIP = 0x0010 }
  6991         -// #endif /* WINVER >= 0x0400 */
  6992         -
  6993         -// #endif /* !NOWINSTYLES */
  6994         -
  6995         -// #ifndef NOWINMESSAGES
  6996         -enum : uint { SBM_SETPOS = 0x00E0 }
  6997         -enum : uint { SBM_GETPOS = 0x00E1 }
  6998         -enum : uint { SBM_SETRANGE = 0x00E2 }
  6999         -enum : uint { SBM_SETRANGEREDRAW = 0x00E6 }
  7000         -enum : uint { SBM_GETRANGE = 0x00E3 }
  7001         -enum : uint { SBM_ENABLE_ARROWS = 0x00E4 }
  7002         -// #if(WINVER >= 0x0400)
  7003         -enum : uint { SBM_SETSCROLLINFO = 0x00E9 }
  7004         -enum : uint { SBM_GETSCROLLINFO = 0x00EA }
  7005         -// #endif /* WINVER >= 0x0400 */
  7006         -
  7007         -// #if(_WIN32_WINNT >= 0x0501)
  7008         -enum : uint { SBM_GETSCROLLBARINFO = 0x00EB }
  7009         -// #endif /* _WIN32_WINNT >= 0x0501 */
  7010         -
  7011         -// #if(WINVER >= 0x0400)
  7012         -enum : uint { SIF_RANGE = 0x0001 }
  7013         -enum : uint { SIF_PAGE = 0x0002 }
  7014         -enum : uint { SIF_POS = 0x0004 }
  7015         -enum : uint { SIF_DISABLENOSCROLL = 0x0008 }
  7016         -enum : uint { SIF_TRACKPOS = 0x0010 }
  7017         -enum : uint { SIF_ALL = SIF_RANGE | SIF_PAGE | SIF_POS | SIF_TRACKPOS }
  7018         -
  7019         -struct tagSCROLLINFO {
  7020         -  UINT cbSize;
  7021         -  UINT fMask;
  7022         -  int nMin;
  7023         -  int nMax;
  7024         -  UINT nPage;
  7025         -  int nPos;
  7026         -  int nTrackPos;
  7027         -}
  7028         -alias tagSCROLLINFO SCROLLINFO;
  7029         -alias tagSCROLLINFO* LPSCROLLINFO;
  7030         -
  7031         -alias SCROLLINFO* LPCSCROLLINFO;
  7032         -
  7033         -extern(Windows) export int SetScrollInfo(HWND, int, LPCSCROLLINFO, BOOL);
  7034         -extern(Windows) export BOOL GetScrollInfo(HWND, int, LPSCROLLINFO);
  7035         -
  7036         -// #endif /* WINVER >= 0x0400 */
  7037         -// #endif /* !NOWINMESSAGES */
  7038         -// #endif /* !NOCTLMGR */
  7039         -
  7040         -// #ifndef NOMDI
  7041         -
  7042         -enum : uint { MDIS_ALLCHILDSTYLES = 0x0001 }
  7043         -
  7044         -enum : uint { MDITILE_VERTICAL = 0x0000 }
  7045         -enum : uint { MDITILE_HORIZONTAL = 0x0001 }
  7046         -enum : uint { MDITILE_SKIPDISABLED = 0x0002 }
  7047         -// #if(_WIN32_WINNT >= 0x0500)
  7048         -enum : uint { MDITILE_ZORDER = 0x0004 }
  7049         -// #endif /* _WIN32_WINNT >= 0x0500 */
  7050         -
  7051         -struct tagMDICREATESTRUCTA {
  7052         -  LPCSTR szClass;
  7053         -  LPCSTR szTitle;
  7054         -  HANDLE hOwner;
  7055         -  int x;
  7056         -  int y;
  7057         -  int cx;
  7058         -  int cy;
  7059         -  DWORD style;
  7060         -  LPARAM lParam;
  7061         -}
  7062         -alias tagMDICREATESTRUCTA MDICREATESTRUCTA;
  7063         -alias tagMDICREATESTRUCTA* LPMDICREATESTRUCTA;
  7064         -
  7065         -struct tagMDICREATESTRUCTW {
  7066         -  LPCWSTR szClass;
  7067         -  LPCWSTR szTitle;
  7068         -  HANDLE hOwner;
  7069         -  int x;
  7070         -  int y;
  7071         -  int cx;
  7072         -  int cy;
  7073         -  DWORD style;
  7074         -  LPARAM lParam;
  7075         -}
  7076         -alias tagMDICREATESTRUCTW MDICREATESTRUCTW;
  7077         -alias tagMDICREATESTRUCTW* LPMDICREATESTRUCTW;
  7078         -
  7079         -// #ifdef UNICODE
  7080         -alias MDICREATESTRUCTW MDICREATESTRUCT;
  7081         -alias LPMDICREATESTRUCTW LPMDICREATESTRUCT;
  7082         -// #else
  7083         -// ...
  7084         -// #endif // UNICODE
  7085         -
  7086         -struct tagCLIENTCREATESTRUCT {
  7087         -  HANDLE hWindowMenu;
  7088         -  UINT idFirstChild;
  7089         -}
  7090         -alias tagCLIENTCREATESTRUCT CLIENTCREATESTRUCT;
  7091         -alias tagCLIENTCREATESTRUCT* LPCLIENTCREATESTRUCT;
  7092         -
  7093         -extern(Windows) export LRESULT DefFrameProcA(
  7094         -  HWND hWnd,
  7095         -  HWND hWndMDIClient,
  7096         -  UINT uMsg,
  7097         -  WPARAM wParam,
  7098         -  LPARAM lParam);
  7099         -extern(Windows) export LRESULT DefFrameProcW(
  7100         -  HWND hWnd,
  7101         -  HWND hWndMDIClient,
  7102         -  UINT uMsg,
  7103         -  WPARAM wParam,
  7104         -  LPARAM lParam);
  7105         -// #ifdef UNICODE
  7106         -alias DefFrameProcW DefFrameProc;
  7107         -// #else
  7108         -// #...
  7109         -// #endif // !UNICODE
  7110         -
  7111         -extern(Windows) export LRESULT DefMDIChildProcA(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  7112         -extern(Windows) export LRESULT DefMDIChildProcW(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
  7113         -// #ifdef UNICODE
  7114         -alias DefMDIChildProcW DefMDIChildProc;
  7115         -// #else
  7116         -// #...
  7117         -// #endif // !UNICODE
  7118         -
  7119         -// #ifndef NOMSG
  7120         -
  7121         -extern(Windows) export BOOL TranslateMDISysAccel(
  7122         -  HWND hWndClient,
  7123         -  LPMSG lpMsg);
  7124         -
  7125         -// #endif /* !NOMSG */
  7126         -
  7127         -extern(Windows) export UINT ArrangeIconicWindows(
  7128         -  HWND hWnd);
  7129         -
  7130         -extern(Windows) export HWND CreateMDIWindowA(
  7131         -  LPCSTR lpClassName,
  7132         -  LPCSTR lpWindowName,
  7133         -  DWORD dwStyle,
  7134         -  int X,
  7135         -  int Y,
  7136         -  int nWidth,
  7137         -  int nHeight,
  7138         -  HWND hWndParent,
  7139         -  HINSTANCE hInstance,
  7140         -  LPARAM lParam);
  7141         -extern(Windows) export HWND CreateMDIWindowW(
  7142         -  LPCWSTR lpClassName,
  7143         -  LPCWSTR lpWindowName,
  7144         -  DWORD dwStyle,
  7145         -  int X,
  7146         -  int Y,
  7147         -  int nWidth,
  7148         -  int nHeight,
  7149         -  HWND hWndParent,
  7150         -  HINSTANCE hInstance,
  7151         -  LPARAM lParam);
  7152         -// #ifdef UNICODE
  7153         -alias CreateMDIWindowW CreateMDIWindow;
  7154         -// #else
  7155         -// #...
  7156         -// #endif // !UNICODE
  7157         -
  7158         -// #if(WINVER >= 0x0400)
  7159         -extern(Windows) export WORD TileWindows(HWND hwndParent, UINT wHow, RECT * lpRect, UINT cKids, HWND * lpKids);
  7160         -extern(Windows) export WORD CascadeWindows(HWND hwndParent, UINT wHow, RECT * lpRect, UINT cKids, HWND * lpKids);
  7161         -// #endif /* WINVER >= 0x0400 */
  7162         -// #endif /* !NOMDI */
  7163         -
  7164         -// #endif /* !NOUSER */
  7165         -
  7166         -// #ifndef NOHELP
  7167         -
  7168         -alias DWORD HELPPOLY;
  7169         -struct tagMULTIKEYHELPA {
  7170         -// #ifndef _MAC
  7171         -  DWORD mkSize;
  7172         -// #else
  7173         -// ...
  7174         -// #endif
  7175         -  CHAR mkKeylist;
  7176         -  CHAR szKeyphrase[1];
  7177         -}
  7178         -alias tagMULTIKEYHELPA MULTIKEYHELPA;
  7179         -alias tagMULTIKEYHELPA* PMULTIKEYHELPA;
  7180         -alias tagMULTIKEYHELPA* LPMULTIKEYHELPA;
  7181         -
  7182         -struct tagMULTIKEYHELPW {
  7183         -// #ifndef _MAC
  7184         -  DWORD mkSize;
  7185         -// #else
  7186         -// ...
  7187         -// #endif
  7188         -  WCHAR mkKeylist;
  7189         -  WCHAR szKeyphrase[1];
  7190         -}
  7191         -alias tagMULTIKEYHELPW MULTIKEYHELPW;
  7192         -alias tagMULTIKEYHELPW* PMULTIKEYHELPW;
  7193         -alias tagMULTIKEYHELPW* LPMULTIKEYHELPW;
  7194         -
  7195         -// #ifdef UNICODE
  7196         -alias MULTIKEYHELPW MULTIKEYHELP;
  7197         -alias PMULTIKEYHELPW PMULTIKEYHELP;
  7198         -alias LPMULTIKEYHELPW LPMULTIKEYHELP;
  7199         -// #else
  7200         -// ...
  7201         -// #endif // UNICODE
  7202         -
  7203         -struct tagHELPWININFOA {
  7204         -  int wStructSize;
  7205         -  int x;
  7206         -  int y;
  7207         -  int dx;
  7208         -  int dy;
  7209         -  int wMax;
  7210         -  CHAR rgchMember[2];
  7211         -}
  7212         -alias tagHELPWININFOA HELPWININFOA;
  7213         -alias tagHELPWININFOA* PHELPWININFOA;
  7214         -alias tagHELPWININFOA* LPHELPWININFOA;
  7215         -
  7216         -struct tagHELPWININFOW {
  7217         -  int wStructSize;
  7218         -  int x;
  7219         -  int y;
  7220         -  int dx;
  7221         -  int dy;
  7222         -  int wMax;
  7223         -  WCHAR rgchMember[2];
  7224         -}
  7225         -alias tagHELPWININFOW HELPWININFOW;
  7226         -alias tagHELPWININFOW* PHELPWININFOW;
  7227         -alias tagHELPWININFOW* LPHELPWININFOW;
  7228         -
  7229         -// #ifdef UNICODE
  7230         -alias HELPWININFOW HELPWININFO;
  7231         -alias PHELPWININFOW PHELPWININFO;
  7232         -alias LPHELPWININFOW LPHELPWININFO;
  7233         -// #else
  7234         -// ...
  7235         -// #endif // UNICODE
  7236         -
  7237         -enum : uint { HELP_CONTEXT = 0x0001 }
  7238         -enum : uint { HELP_QUIT = 0x0002 }
  7239         -enum : uint { HELP_INDEX = 0x0003 }
  7240         -enum : uint { HELP_CONTENTS = 0x0003 }
  7241         -enum : uint { HELP_HELPONHELP = 0x0004 }
  7242         -enum : uint { HELP_SETINDEX = 0x0005 }
  7243         -enum : uint { HELP_SETCONTENTS = 0x0005 }
  7244         -enum : uint { HELP_CONTEXTPOPUP = 0x0008 }
  7245         -enum : uint { HELP_FORCEFILE = 0x0009 }
  7246         -enum : uint { HELP_KEY = 0x0101 }
  7247         -enum : uint { HELP_COMMAND = 0x0102 }
  7248         -enum : uint { HELP_PARTIALKEY = 0x0105 }
  7249         -enum : uint { HELP_MULTIKEY = 0x0201 }
  7250         -enum : uint { HELP_SETWINPOS = 0x0203 }
  7251         -// #if(WINVER >= 0x0400)
  7252         -enum : uint { HELP_CONTEXTMENU = 0x000a }
  7253         -enum : uint { HELP_FINDER = 0x000b }
  7254         -enum : uint { HELP_WM_HELP = 0x000c }
  7255         -enum : uint { HELP_SETPOPUP_POS = 0x000d }
  7256         -
  7257         -enum : uint { HELP_TCARD = 0x8000 }
  7258         -enum : uint { HELP_TCARD_DATA = 0x0010 }
  7259         -enum : uint { HELP_TCARD_OTHER_CALLER = 0x0011 }
  7260         -
  7261         -enum : uint { IDH_NO_HELP = 28440 }
  7262         -enum : uint { IDH_MISSING_CONTEXT = 28441 }
  7263         -enum : uint { IDH_GENERIC_HELP_BUTTON = 28442 }
  7264         -enum : uint { IDH_OK = 28443 }
  7265         -enum : uint { IDH_CANCEL = 28444 }
  7266         -enum : uint { IDH_HELP = 28445 }
  7267         -
  7268         -// #endif /* WINVER >= 0x0400 */
  7269         -
  7270         -extern(Windows) export BOOL WinHelpA(
  7271         -  HWND hWndMain,
  7272         -  LPCSTR lpszHelp,
  7273         -  UINT uCommand,
  7274         -  ULONG_PTR dwData);
  7275         -extern(Windows) export BOOL WinHelpW(
  7276         -  HWND hWndMain,
  7277         -  LPCWSTR lpszHelp,
  7278         -  UINT uCommand,
  7279         -  ULONG_PTR dwData);
  7280         -// #ifdef UNICODE
  7281         -alias WinHelpW WinHelp;
  7282         -// #else
  7283         -// #...
  7284         -// #endif // !UNICODE
  7285         -
  7286         -// #endif /* !NOHELP */
  7287         -
  7288         -// #if(WINVER >= 0x0500)
  7289         -
  7290         -enum : uint { GR_GDIOBJECTS = 0 }
  7291         -enum : uint { GR_USEROBJECTS = 1 }
  7292         -
  7293         -extern(Windows) export DWORD GetGuiResources(
  7294         -  HANDLE hProcess,
  7295         -  DWORD uiFlags);
  7296         -
  7297         -// #endif /* WINVER >= 0x0500 */
  7298         -
  7299         -// #ifndef NOSYSPARAMSINFO
  7300         -
  7301         -enum : uint { SPI_GETBEEP = 0x0001 }
  7302         -enum : uint { SPI_SETBEEP = 0x0002 }
  7303         -enum : uint { SPI_GETMOUSE = 0x0003 }
  7304         -enum : uint { SPI_SETMOUSE = 0x0004 }
  7305         -enum : uint { SPI_GETBORDER = 0x0005 }
  7306         -enum : uint { SPI_SETBORDER = 0x0006 }
  7307         -enum : uint { SPI_GETKEYBOARDSPEED = 0x000A }
  7308         -enum : uint { SPI_SETKEYBOARDSPEED = 0x000B }
  7309         -enum : uint { SPI_LANGDRIVER = 0x000C }
  7310         -enum : uint { SPI_ICONHORIZONTALSPACING = 0x000D }
  7311         -enum : uint { SPI_GETSCREENSAVETIMEOUT = 0x000E }
  7312         -enum : uint { SPI_SETSCREENSAVETIMEOUT = 0x000F }
  7313         -enum : uint { SPI_GETSCREENSAVEACTIVE = 0x0010 }
  7314         -enum : uint { SPI_SETSCREENSAVEACTIVE = 0x0011 }
  7315         -enum : uint { SPI_GETGRIDGRANULARITY = 0x0012 }
  7316         -enum : uint { SPI_SETGRIDGRANULARITY = 0x0013 }
  7317         -enum : uint { SPI_SETDESKWALLPAPER = 0x0014 }
  7318         -enum : uint { SPI_SETDESKPATTERN = 0x0015 }
  7319         -enum : uint { SPI_GETKEYBOARDDELAY = 0x0016 }
  7320         -enum : uint { SPI_SETKEYBOARDDELAY = 0x0017 }
  7321         -enum : uint { SPI_ICONVERTICALSPACING = 0x0018 }
  7322         -enum : uint { SPI_GETICONTITLEWRAP = 0x0019 }
  7323         -enum : uint { SPI_SETICONTITLEWRAP = 0x001A }
  7324         -enum : uint { SPI_GETMENUDROPALIGNMENT = 0x001B }
  7325         -enum : uint { SPI_SETMENUDROPALIGNMENT = 0x001C }
  7326         -enum : uint { SPI_SETDOUBLECLKWIDTH = 0x001D }
  7327         -enum : uint { SPI_SETDOUBLECLKHEIGHT = 0x001E }
  7328         -enum : uint { SPI_GETICONTITLELOGFONT = 0x001F }
  7329         -enum : uint { SPI_SETDOUBLECLICKTIME = 0x0020 }
  7330         -enum : uint { SPI_SETMOUSEBUTTONSWAP = 0x0021 }
  7331         -enum : uint { SPI_SETICONTITLELOGFONT = 0x0022 }
  7332         -enum : uint { SPI_GETFASTTASKSWITCH = 0x0023 }
  7333         -enum : uint { SPI_SETFASTTASKSWITCH = 0x0024 }
  7334         -// #if(WINVER >= 0x0400)
  7335         -enum : uint { SPI_SETDRAGFULLWINDOWS = 0x0025 }
  7336         -enum : uint { SPI_GETDRAGFULLWINDOWS = 0x0026 }
  7337         -enum : uint { SPI_GETNONCLIENTMETRICS = 0x0029 }
  7338         -enum : uint { SPI_SETNONCLIENTMETRICS = 0x002A }
  7339         -enum : uint { SPI_GETMINIMIZEDMETRICS = 0x002B }
  7340         -enum : uint { SPI_SETMINIMIZEDMETRICS = 0x002C }
  7341         -enum : uint { SPI_GETICONMETRICS = 0x002D }
  7342         -enum : uint { SPI_SETICONMETRICS = 0x002E }
  7343         -enum : uint { SPI_SETWORKAREA = 0x002F }
  7344         -enum : uint { SPI_GETWORKAREA = 0x0030 }
  7345         -enum : uint { SPI_SETPENWINDOWS = 0x0031 }
  7346         -
  7347         -enum : uint { SPI_GETHIGHCONTRAST = 0x0042 }
  7348         -enum : uint { SPI_SETHIGHCONTRAST = 0x0043 }
  7349         -enum : uint { SPI_GETKEYBOARDPREF = 0x0044 }
  7350         -enum : uint { SPI_SETKEYBOARDPREF = 0x0045 }
  7351         -enum : uint { SPI_GETSCREENREADER = 0x0046 }
  7352         -enum : uint { SPI_SETSCREENREADER = 0x0047 }
  7353         -enum : uint { SPI_GETANIMATION = 0x0048 }
  7354         -enum : uint { SPI_SETANIMATION = 0x0049 }
  7355         -enum : uint { SPI_GETFONTSMOOTHING = 0x004A }
  7356         -enum : uint { SPI_SETFONTSMOOTHING = 0x004B }
  7357         -enum : uint { SPI_SETDRAGWIDTH = 0x004C }
  7358         -enum : uint { SPI_SETDRAGHEIGHT = 0x004D }
  7359         -enum : uint { SPI_SETHANDHELD = 0x004E }
  7360         -enum : uint { SPI_GETLOWPOWERTIMEOUT = 0x004F }
  7361         -enum : uint { SPI_GETPOWEROFFTIMEOUT = 0x0050 }
  7362         -enum : uint { SPI_SETLOWPOWERTIMEOUT = 0x0051 }
  7363         -enum : uint { SPI_SETPOWEROFFTIMEOUT = 0x0052 }
  7364         -enum : uint { SPI_GETLOWPOWERACTIVE = 0x0053 }
  7365         -enum : uint { SPI_GETPOWEROFFACTIVE = 0x0054 }
  7366         -enum : uint { SPI_SETLOWPOWERACTIVE = 0x0055 }
  7367         -enum : uint { SPI_SETPOWEROFFACTIVE = 0x0056 }
  7368         -enum : uint { SPI_SETCURSORS = 0x0057 }
  7369         -enum : uint { SPI_SETICONS = 0x0058 }
  7370         -enum : uint { SPI_GETDEFAULTINPUTLANG = 0x0059 }
  7371         -enum : uint { SPI_SETDEFAULTINPUTLANG = 0x005A }
  7372         -enum : uint { SPI_SETLANGTOGGLE = 0x005B }
  7373         -enum : uint { SPI_GETWINDOWSEXTENSION = 0x005C }
  7374         -enum : uint { SPI_SETMOUSETRAILS = 0x005D }
  7375         -enum : uint { SPI_GETMOUSETRAILS = 0x005E }
  7376         -enum : uint { SPI_SETSCREENSAVERRUNNING = 0x0061 }
  7377         -alias SPI_SETSCREENSAVERRUNNING SPI_SCREENSAVERRUNNING;
  7378         -// #endif /* WINVER >= 0x0400 */
  7379         -enum : uint { SPI_GETFILTERKEYS = 0x0032 }
  7380         -enum : uint { SPI_SETFILTERKEYS = 0x0033 }
  7381         -enum : uint { SPI_GETTOGGLEKEYS = 0x0034 }
  7382         -enum : uint { SPI_SETTOGGLEKEYS = 0x0035 }
  7383         -enum : uint { SPI_GETMOUSEKEYS = 0x0036 }
  7384         -enum : uint { SPI_SETMOUSEKEYS = 0x0037 }
  7385         -enum : uint { SPI_GETSHOWSOUNDS = 0x0038 }
  7386         -enum : uint { SPI_SETSHOWSOUNDS = 0x0039 }
  7387         -enum : uint { SPI_GETSTICKYKEYS = 0x003A }
  7388         -enum : uint { SPI_SETSTICKYKEYS = 0x003B }
  7389         -enum : uint { SPI_GETACCESSTIMEOUT = 0x003C }
  7390         -enum : uint { SPI_SETACCESSTIMEOUT = 0x003D }
  7391         -// #if(WINVER >= 0x0400)
  7392         -enum : uint { SPI_GETSERIALKEYS = 0x003E }
  7393         -enum : uint { SPI_SETSERIALKEYS = 0x003F }
  7394         -// #endif /* WINVER >= 0x0400 */
  7395         -enum : uint { SPI_GETSOUNDSENTRY = 0x0040 }
  7396         -enum : uint { SPI_SETSOUNDSENTRY = 0x0041 }
  7397         -// #if(_WIN32_WINNT >= 0x0400)
  7398         -enum : uint { SPI_GETSNAPTODEFBUTTON = 0x005F }
  7399         -enum : uint { SPI_SETSNAPTODEFBUTTON = 0x0060 }
  7400         -// #endif /* _WIN32_WINNT >= 0x0400 */
  7401         -// #if (_WIN32_WINNT >= 0x0400) || (_WIN32_WINDOWS > 0x0400)
  7402         -enum : uint { SPI_GETMOUSEHOVERWIDTH = 0x0062 }
  7403         -enum : uint { SPI_SETMOUSEHOVERWIDTH = 0x0063 }
  7404         -enum : uint { SPI_GETMOUSEHOVERHEIGHT = 0x0064 }
  7405         -enum : uint { SPI_SETMOUSEHOVERHEIGHT = 0x0065 }
  7406         -enum : uint { SPI_GETMOUSEHOVERTIME = 0x0066 }
  7407         -enum : uint { SPI_SETMOUSEHOVERTIME = 0x0067 }
  7408         -enum : uint { SPI_GETWHEELSCROLLLINES = 0x0068 }
  7409         -enum : uint { SPI_SETWHEELSCROLLLINES = 0x0069 }
  7410         -enum : uint { SPI_GETMENUSHOWDELAY = 0x006A }
  7411         -enum : uint { SPI_SETMENUSHOWDELAY = 0x006B }
  7412         -
  7413         -enum : uint { SPI_GETSHOWIMEUI = 0x006E }
  7414         -enum : uint { SPI_SETSHOWIMEUI = 0x006F }
  7415         -// #endif
  7416         -
  7417         -// #if(WINVER >= 0x0500)
  7418         -enum : uint { SPI_GETMOUSESPEED = 0x0070 }
  7419         -enum : uint { SPI_SETMOUSESPEED = 0x0071 }
  7420         -enum : uint { SPI_GETSCREENSAVERRUNNING = 0x0072 }
  7421         -enum : uint { SPI_GETDESKWALLPAPER = 0x0073 }
  7422         -// #endif /* WINVER >= 0x0500 */
  7423         -
  7424         -// #if(WINVER >= 0x0500)
  7425         -enum : uint { SPI_GETACTIVEWINDOWTRACKING = 0x1000 }
  7426         -enum : uint { SPI_SETACTIVEWINDOWTRACKING = 0x1001 }
  7427         -enum : uint { SPI_GETMENUANIMATION = 0x1002 }
  7428         -enum : uint { SPI_SETMENUANIMATION = 0x1003 }
  7429         -enum : uint { SPI_GETCOMBOBOXANIMATION = 0x1004 }
  7430         -enum : uint { SPI_SETCOMBOBOXANIMATION = 0x1005 }
  7431         -enum : uint { SPI_GETLISTBOXSMOOTHSCROLLING = 0x1006 }
  7432         -enum : uint { SPI_SETLISTBOXSMOOTHSCROLLING = 0x1007 }
  7433         -enum : uint { SPI_GETGRADIENTCAPTIONS = 0x1008 }
  7434         -enum : uint { SPI_SETGRADIENTCAPTIONS = 0x1009 }
  7435         -enum : uint { SPI_GETKEYBOARDCUES = 0x100A }
  7436         -enum : uint { SPI_SETKEYBOARDCUES = 0x100B }
  7437         -alias SPI_GETKEYBOARDCUES SPI_GETMENUUNDERLINES;
  7438         -alias SPI_SETKEYBOARDCUES SPI_SETMENUUNDERLINES;
  7439         -enum : uint { SPI_GETACTIVEWNDTRKZORDER = 0x100C }
  7440         -enum : uint { SPI_SETACTIVEWNDTRKZORDER = 0x100D }
  7441         -enum : uint { SPI_GETHOTTRACKING = 0x100E }
  7442         -enum : uint { SPI_SETHOTTRACKING = 0x100F }
  7443         -enum : uint { SPI_GETMENUFADE = 0x1012 }
  7444         -enum : uint { SPI_SETMENUFADE = 0x1013 }
  7445         -enum : uint { SPI_GETSELECTIONFADE = 0x1014 }
  7446         -enum : uint { SPI_SETSELECTIONFADE = 0x1015 }
  7447         -enum : uint { SPI_GETTOOLTIPANIMATION = 0x1016 }
  7448         -enum : uint { SPI_SETTOOLTIPANIMATION = 0x1017 }
  7449         -enum : uint { SPI_GETTOOLTIPFADE = 0x1018 }
  7450         -enum : uint { SPI_SETTOOLTIPFADE = 0x1019 }
  7451         -enum : uint { SPI_GETCURSORSHADOW = 0x101A }
  7452         -enum : uint { SPI_SETCURSORSHADOW = 0x101B }
  7453         -// #if(_WIN32_WINNT >= 0x0501)
  7454         -enum : uint { SPI_GETMOUSESONAR = 0x101C }
  7455         -enum : uint { SPI_SETMOUSESONAR = 0x101D }
  7456         -enum : uint { SPI_GETMOUSECLICKLOCK = 0x101E }
  7457         -enum : uint { SPI_SETMOUSECLICKLOCK = 0x101F }
  7458         -enum : uint { SPI_GETMOUSEVANISH = 0x1020 }
  7459         -enum : uint { SPI_SETMOUSEVANISH = 0x1021 }
  7460         -enum : uint { SPI_GETFLATMENU = 0x1022 }
  7461         -enum : uint { SPI_SETFLATMENU = 0x1023 }
  7462         -enum : uint { SPI_GETDROPSHADOW = 0x1024 }
  7463         -enum : uint { SPI_SETDROPSHADOW = 0x1025 }
  7464         -// #endif /* _WIN32_WINNT >= 0x0501 */
  7465         -
  7466         -enum : uint { SPI_GETUIEFFECTS = 0x103E }
  7467         -enum : uint { SPI_SETUIEFFECTS = 0x103F }
  7468         -
  7469         -enum : uint { SPI_GETFOREGROUNDLOCKTIMEOUT = 0x2000 }
  7470         -enum : uint { SPI_SETFOREGROUNDLOCKTIMEOUT = 0x2001 }
  7471         -enum : uint { SPI_GETACTIVEWNDTRKTIMEOUT = 0x2002 }
  7472         -enum : uint { SPI_SETACTIVEWNDTRKTIMEOUT = 0x2003 }
  7473         -enum : uint { SPI_GETFOREGROUNDFLASHCOUNT = 0x2004 }
  7474         -enum : uint { SPI_SETFOREGROUNDFLASHCOUNT = 0x2005 }
  7475         -enum : uint { SPI_GETCARETWIDTH = 0x2006 }
  7476         -enum : uint { SPI_SETCARETWIDTH = 0x2007 }
  7477         -
  7478         -// #if(_WIN32_WINNT >= 0x0501)
  7479         -enum : uint { SPI_GETMOUSECLICKLOCKTIME = 0x2008 }
  7480         -enum : uint { SPI_SETMOUSECLICKLOCKTIME = 0x2009 }
  7481         -enum : uint { SPI_GETFONTSMOOTHINGTYPE = 0x200A }
  7482         -enum : uint { SPI_SETFONTSMOOTHINGTYPE = 0x200B }
  7483         -
  7484         -enum : uint { FE_FONTSMOOTHINGSTANDARD = 0x0001 }
  7485         -enum : uint { FE_FONTSMOOTHINGCLEARTYPE = 0x0002 }
  7486         -enum : uint { FE_FONTSMOOTHINGDOCKING = 0x8000 }
  7487         -
  7488         -enum : uint { SPI_GETFONTSMOOTHINGCONTRAST = 0x200C }
  7489         -enum : uint { SPI_SETFONTSMOOTHINGCONTRAST = 0x200D }
  7490         -
  7491         -enum : uint { SPI_GETFOCUSBORDERWIDTH = 0x200E }
  7492         -enum : uint { SPI_SETFOCUSBORDERWIDTH = 0x200F }
  7493         -enum : uint { SPI_GETFOCUSBORDERHEIGHT = 0x2010 }
  7494         -enum : uint { SPI_SETFOCUSBORDERHEIGHT = 0x2011 }
  7495         -// #endif /* _WIN32_WINNT >= 0x0501 */
  7496         -
  7497         -// #endif /* WINVER >= 0x0500 */
  7498         -
  7499         -enum : uint { SPIF_UPDATEINIFILE = 0x0001 }
  7500         -enum : uint { SPIF_SENDWININICHANGE = 0x0002 }
  7501         -alias SPIF_SENDWININICHANGE SPIF_SENDCHANGE;
  7502         -
  7503         -enum { METRICS_USEDEFAULT = -1 }
  7504         -// #ifdef _WINGDI_
  7505         -// #ifndef NOGDI
  7506         -// ...
  7507         -// #ifdef UNICODE
  7508         -// ...
  7509         -// #else
  7510         -// ...
  7511         -// #endif // UNICODE
  7512         -// #endif /* NOGDI */
  7513         -// #endif /* _WINGDI_ */
  7514         -
  7515         -enum : uint { ARW_BOTTOMLEFT = 0x0000 }
  7516         -enum : uint { ARW_BOTTOMRIGHT = 0x0001 }
  7517         -enum : uint { ARW_TOPLEFT = 0x0002 }
  7518         -enum : uint { ARW_TOPRIGHT = 0x0003 }
  7519         -enum : uint { ARW_STARTMASK = 0x0003 }
  7520         -enum : uint { ARW_STARTRIGHT = 0x0001 }
  7521         -enum : uint { ARW_STARTTOP = 0x0002 }
  7522         -
  7523         -enum : uint { ARW_LEFT = 0x0000 }
  7524         -enum : uint { ARW_RIGHT = 0x0000 }
  7525         -enum : uint { ARW_UP = 0x0004 }
  7526         -enum : uint { ARW_DOWN = 0x0004 }
  7527         -enum : uint { ARW_HIDE = 0x0008 }
  7528         -
  7529         -struct tagMINIMIZEDMETRICS {
  7530         -  UINT cbSize;
  7531         -  int iWidth;
  7532         -  int iHorzGap;
  7533         -  int iVertGap;
  7534         -  int iArrange;
  7535         -}
  7536         -alias tagMINIMIZEDMETRICS MINIMIZEDMETRICS;
  7537         -alias tagMINIMIZEDMETRICS* PMINIMIZEDMETRICS;
  7538         -alias tagMINIMIZEDMETRICS* LPMINIMIZEDMETRICS;
  7539         -
  7540         -// #ifdef _WINGDI_
  7541         -// #ifndef NOGDI
  7542         -// ...
  7543         -// #ifdef UNICODE
  7544         -// ...
  7545         -// #else
  7546         -// ...
  7547         -// #endif // UNICODE
  7548         -// #endif /* NOGDI */
  7549         -// #endif /* _WINGDI_ */
  7550         -
  7551         -struct tagANIMATIONINFO {
  7552         -  UINT cbSize;
  7553         -  int iMinAnimate;
  7554         -}
  7555         -alias tagANIMATIONINFO ANIMATIONINFO;
  7556         -alias tagANIMATIONINFO* LPANIMATIONINFO;
  7557         -
  7558         -struct tagSERIALKEYSA {
  7559         -  UINT cbSize;
  7560         -  DWORD dwFlags;
  7561         -  LPSTR lpszActivePort;
  7562         -  LPSTR lpszPort;
  7563         -  UINT iBaudRate;
  7564         -  UINT iPortState;
  7565         -  UINT iActive;
  7566         -}
  7567         -alias tagSERIALKEYSA SERIALKEYSA;
  7568         -alias tagSERIALKEYSA* LPSERIALKEYSA;
  7569         -
  7570         -struct tagSERIALKEYSW {
  7571         -  UINT cbSize;
  7572         -  DWORD dwFlags;
  7573         -  LPWSTR lpszActivePort;
  7574         -  LPWSTR lpszPort;
  7575         -  UINT iBaudRate;
  7576         -  UINT iPortState;
  7577         -  UINT iActive;
  7578         -}
  7579         -alias tagSERIALKEYSW SERIALKEYSW;
  7580         -alias tagSERIALKEYSW* LPSERIALKEYSW;
  7581         -
  7582         -// #ifdef UNICODE
  7583         -alias SERIALKEYSW SERIALKEYS;
  7584         -alias LPSERIALKEYSW LPSERIALKEYS;
  7585         -// #else
  7586         -// ...
  7587         -// #endif // UNICODE
  7588         -
  7589         -enum : uint { SERKF_SERIALKEYSON = 0x00000001 }
  7590         -enum : uint { SERKF_AVAILABLE = 0x00000002 }
  7591         -enum : uint { SERKF_INDICATOR = 0x00000004 }
  7592         -
  7593         -struct tagHIGHCONTRASTA {
  7594         -  UINT cbSize;
  7595         -  DWORD dwFlags;
  7596         -  LPSTR lpszDefaultScheme;
  7597         -}
  7598         -alias tagHIGHCONTRASTA HIGHCONTRASTA;
  7599         -alias tagHIGHCONTRASTA* LPHIGHCONTRASTA;
  7600         -
  7601         -struct tagHIGHCONTRASTW {
  7602         -  UINT cbSize;
  7603         -  DWORD dwFlags;
  7604         -  LPWSTR lpszDefaultScheme;
  7605         -}
  7606         -alias tagHIGHCONTRASTW HIGHCONTRASTW;
  7607         -alias tagHIGHCONTRASTW* LPHIGHCONTRASTW;
  7608         -
  7609         -// #ifdef UNICODE
  7610         -alias HIGHCONTRASTW HIGHCONTRAST;
  7611         -alias LPHIGHCONTRASTW LPHIGHCONTRAST;
  7612         -// #else
  7613         -// ...
  7614         -// #endif // UNICODE
  7615         -
  7616         -enum : uint { HCF_HIGHCONTRASTON = 0x00000001 }
  7617         -enum : uint { HCF_AVAILABLE = 0x00000002 }
  7618         -enum : uint { HCF_HOTKEYACTIVE = 0x00000004 }
  7619         -enum : uint { HCF_CONFIRMHOTKEY = 0x00000008 }
  7620         -enum : uint { HCF_HOTKEYSOUND = 0x00000010 }
  7621         -enum : uint { HCF_INDICATOR = 0x00000020 }
  7622         -enum : uint { HCF_HOTKEYAVAILABLE = 0x00000040 }
  7623         -
  7624         -enum : uint { CDS_UPDATEREGISTRY = 0x00000001 }
  7625         -enum : uint { CDS_TEST = 0x00000002 }
  7626         -enum : uint { CDS_FULLSCREEN = 0x00000004 }
  7627         -enum : uint { CDS_GLOBAL = 0x00000008 }
  7628         -enum : uint { CDS_SET_PRIMARY = 0x00000010 }
  7629         -enum : uint { CDS_VIDEOPARAMETERS = 0x00000020 }
  7630         -enum : uint { CDS_RESET = 0x40000000 }
  7631         -enum : uint { CDS_NORESET = 0x10000000 }
  7632         -
  7633         -// #include <tvout.h>
  7634         -
  7635         -enum : uint { DISP_CHANGE_SUCCESSFUL = 0 }
  7636         -enum : uint { DISP_CHANGE_RESTART = 1 }
  7637         -enum { DISP_CHANGE_FAILED = -1 }
  7638         -enum { DISP_CHANGE_BADMODE = -2 }
  7639         -enum { DISP_CHANGE_NOTUPDATED = -3 }
  7640         -enum { DISP_CHANGE_BADFLAGS = -4 }
  7641         -enum { DISP_CHANGE_BADPARAM = -5 }
  7642         -// #if(_WIN32_WINNT >= 0x0501)
  7643         -enum { DISP_CHANGE_BADDUALVIEW = -6 }
  7644         -// #endif /* _WIN32_WINNT >= 0x0501 */
  7645         -
  7646         -// #ifdef _WINGDI_
  7647         -// #ifndef NOGDI
  7648         -
  7649         -// ...
  7650         -// #ifdef UNICODE
  7651         -// #...
  7652         -// #else
  7653         -// #...
  7654         -// #endif // !UNICODE
  7655         -
  7656         -// ...
  7657         -// #ifdef UNICODE
  7658         -// #...
  7659         -// #else
  7660         -// #...
  7661         -// #endif // !UNICODE
  7662         -
  7663         -// #...
  7664         -// #...
  7665         -
  7666         -// ...
  7667         -// #ifdef UNICODE
  7668         -// #...
  7669         -// #else
  7670         -// #...
  7671         -// #endif // !UNICODE
  7672         -
  7673         -// #if(WINVER >= 0x0500)
  7674         -
  7675         -// ...
  7676         -// #ifdef UNICODE
  7677         -// #...
  7678         -// #else
  7679         -// #...
  7680         -// #endif // !UNICODE
  7681         -
  7682         -// #...
  7683         -
  7684         -// ...
  7685         -// #ifdef UNICODE
  7686         -// #...
  7687         -// #else
  7688         -// #...
  7689         -// #endif // !UNICODE
  7690         -// #endif /* WINVER >= 0x0500 */
  7691         -
  7692         -// #endif /* NOGDI */
  7693         -// #endif /* _WINGDI_ */
  7694         -
  7695         -extern(Windows) export BOOL SystemParametersInfoA(
  7696         -  UINT uiAction,
  7697         -  UINT uiParam,
  7698         -  PVOID pvParam,
  7699         -  UINT fWinIni);
  7700         -extern(Windows) export BOOL SystemParametersInfoW(
  7701         -  UINT uiAction,
  7702         -  UINT uiParam,
  7703         -  PVOID pvParam,
  7704         -  UINT fWinIni);
  7705         -// #ifdef UNICODE
  7706         -alias SystemParametersInfoW SystemParametersInfo;
  7707         -// #else
  7708         -// #...
  7709         -// #endif // !UNICODE
  7710         -
  7711         -// #endif  /* !NOSYSPARAMSINFO  */
  7712         -
  7713         -struct tagFILTERKEYS {
  7714         -  UINT cbSize;
  7715         -  DWORD dwFlags;
  7716         -  DWORD iWaitMSec;
  7717         -  DWORD iDelayMSec;
  7718         -  DWORD iRepeatMSec;
  7719         -  DWORD iBounceMSec;
  7720         -}
  7721         -alias tagFILTERKEYS FILTERKEYS;
  7722         -alias tagFILTERKEYS* LPFILTERKEYS;
  7723         -
  7724         -enum : uint { FKF_FILTERKEYSON = 0x00000001 }
  7725         -enum : uint { FKF_AVAILABLE = 0x00000002 }
  7726         -enum : uint { FKF_HOTKEYACTIVE = 0x00000004 }
  7727         -enum : uint { FKF_CONFIRMHOTKEY = 0x00000008 }
  7728         -enum : uint { FKF_HOTKEYSOUND = 0x00000010 }
  7729         -enum : uint { FKF_INDICATOR = 0x00000020 }
  7730         -enum : uint { FKF_CLICKON = 0x00000040 }
  7731         -
  7732         -struct tagSTICKYKEYS {
  7733         -  UINT cbSize;
  7734         -  DWORD dwFlags;
  7735         -}
  7736         -alias tagSTICKYKEYS STICKYKEYS;
  7737         -alias tagSTICKYKEYS* LPSTICKYKEYS;
  7738         -
  7739         -enum : uint { SKF_STICKYKEYSON = 0x00000001 }
  7740         -enum : uint { SKF_AVAILABLE = 0x00000002 }
  7741         -enum : uint { SKF_HOTKEYACTIVE = 0x00000004 }
  7742         -enum : uint { SKF_CONFIRMHOTKEY = 0x00000008 }
  7743         -enum : uint { SKF_HOTKEYSOUND = 0x00000010 }
  7744         -enum : uint { SKF_INDICATOR = 0x00000020 }
  7745         -enum : uint { SKF_AUDIBLEFEEDBACK = 0x00000040 }
  7746         -enum : uint { SKF_TRISTATE = 0x00000080 }
  7747         -enum : uint { SKF_TWOKEYSOFF = 0x00000100 }
  7748         -// #if(_WIN32_WINNT >= 0x0500)
  7749         -enum : uint { SKF_LALTLATCHED = 0x10000000 }
  7750         -enum : uint { SKF_LCTLLATCHED = 0x04000000 }
  7751         -enum : uint { SKF_LSHIFTLATCHED = 0x01000000 }
  7752         -enum : uint { SKF_RALTLATCHED = 0x20000000 }
  7753         -enum : uint { SKF_RCTLLATCHED = 0x08000000 }
  7754         -enum : uint { SKF_RSHIFTLATCHED = 0x02000000 }
  7755         -enum : uint { SKF_LWINLATCHED = 0x40000000 }
  7756         -enum : uint { SKF_RWINLATCHED = 0x80000000 }
  7757         -enum : uint { SKF_LALTLOCKED = 0x00100000 }
  7758         -enum : uint { SKF_LCTLLOCKED = 0x00040000 }
  7759         -enum : uint { SKF_LSHIFTLOCKED = 0x00010000 }
  7760         -enum : uint { SKF_RALTLOCKED = 0x00200000 }
  7761         -enum : uint { SKF_RCTLLOCKED = 0x00080000 }
  7762         -enum : uint { SKF_RSHIFTLOCKED = 0x00020000 }
  7763         -enum : uint { SKF_LWINLOCKED = 0x00400000 }
  7764         -enum : uint { SKF_RWINLOCKED = 0x00800000 }
  7765         -// #endif /* _WIN32_WINNT >= 0x0500 */
  7766         -
  7767         -struct tagMOUSEKEYS {
  7768         -  UINT cbSize;
  7769         -  DWORD dwFlags;
  7770         -  DWORD iMaxSpeed;
  7771         -  DWORD iTimeToMaxSpeed;
  7772         -  DWORD iCtrlSpeed;
  7773         -  DWORD dwReserved1;
  7774         -  DWORD dwReserved2;
  7775         -}
  7776         -alias tagMOUSEKEYS MOUSEKEYS;
  7777         -alias tagMOUSEKEYS* LPMOUSEKEYS;
  7778         -
  7779         -enum : uint { MKF_MOUSEKEYSON = 0x00000001 }
  7780         -enum : uint { MKF_AVAILABLE = 0x00000002 }
  7781         -enum : uint { MKF_HOTKEYACTIVE = 0x00000004 }
  7782         -enum : uint { MKF_CONFIRMHOTKEY = 0x00000008 }
  7783         -enum : uint { MKF_HOTKEYSOUND = 0x00000010 }
  7784         -enum : uint { MKF_INDICATOR = 0x00000020 }
  7785         -enum : uint { MKF_MODIFIERS = 0x00000040 }
  7786         -enum : uint { MKF_REPLACENUMBERS = 0x00000080 }
  7787         -// #if(_WIN32_WINNT >= 0x0500)
  7788         -enum : uint { MKF_LEFTBUTTONSEL = 0x10000000 }
  7789         -enum : uint { MKF_RIGHTBUTTONSEL = 0x20000000 }
  7790         -enum : uint { MKF_LEFTBUTTONDOWN = 0x01000000 }
  7791         -enum : uint { MKF_RIGHTBUTTONDOWN = 0x02000000 }
  7792         -enum : uint { MKF_MOUSEMODE = 0x80000000 }
  7793         -// #endif /* _WIN32_WINNT >= 0x0500 */
  7794         -
  7795         -struct tagACCESSTIMEOUT {
  7796         -  UINT cbSize;
  7797         -  DWORD dwFlags;
  7798         -  DWORD iTimeOutMSec;
  7799         -}
  7800         -alias tagACCESSTIMEOUT ACCESSTIMEOUT;
  7801         -alias tagACCESSTIMEOUT* LPACCESSTIMEOUT;
  7802         -
  7803         -enum : uint { ATF_TIMEOUTON = 0x00000001 }
  7804         -enum : uint { ATF_ONOFFFEEDBACK = 0x00000002 }
  7805         -
  7806         -enum : uint { SSGF_NONE = 0 }
  7807         -enum : uint { SSGF_DISPLAY = 3 }
  7808         -
  7809         -enum : uint { SSTF_NONE = 0 }
  7810         -enum : uint { SSTF_CHARS = 1 }
  7811         -enum : uint { SSTF_BORDER = 2 }
  7812         -enum : uint { SSTF_DISPLAY = 3 }
  7813         -
  7814         -enum : uint { SSWF_NONE = 0 }
  7815         -enum : uint { SSWF_TITLE = 1 }
  7816         -enum : uint { SSWF_WINDOW = 2 }
  7817         -enum : uint { SSWF_DISPLAY = 3 }
  7818         -enum : uint { SSWF_CUSTOM = 4 }
  7819         -
  7820         -struct tagSOUNDSENTRYA {
  7821         -  UINT cbSize;
  7822         -  DWORD dwFlags;
  7823         -  DWORD iFSTextEffect;
  7824         -  DWORD iFSTextEffectMSec;
  7825         -  DWORD iFSTextEffectColorBits;
  7826         -  DWORD iFSGrafEffect;
  7827         -  DWORD iFSGrafEffectMSec;
  7828         -  DWORD iFSGrafEffectColor;
  7829         -  DWORD iWindowsEffect;
  7830         -  DWORD iWindowsEffectMSec;
  7831         -  LPSTR lpszWindowsEffectDLL;
  7832         -  DWORD iWindowsEffectOrdinal;
  7833         -}
  7834         -alias tagSOUNDSENTRYA SOUNDSENTRYA;
  7835         -alias tagSOUNDSENTRYA* LPSOUNDSENTRYA;
  7836         -
  7837         -struct tagSOUNDSENTRYW {
  7838         -  UINT cbSize;
  7839         -  DWORD dwFlags;
  7840         -  DWORD iFSTextEffect;
  7841         -  DWORD iFSTextEffectMSec;
  7842         -  DWORD iFSTextEffectColorBits;
  7843         -  DWORD iFSGrafEffect;
  7844         -  DWORD iFSGrafEffectMSec;
  7845         -  DWORD iFSGrafEffectColor;
  7846         -  DWORD iWindowsEffect;
  7847         -  DWORD iWindowsEffectMSec;
  7848         -  LPWSTR lpszWindowsEffectDLL;
  7849         -  DWORD iWindowsEffectOrdinal;
  7850         -}
  7851         -alias tagSOUNDSENTRYW SOUNDSENTRYW;
  7852         -alias tagSOUNDSENTRYW* LPSOUNDSENTRYW;
  7853         -
  7854         -// #ifdef UNICODE
  7855         -alias SOUNDSENTRYW SOUNDSENTRY;
  7856         -alias LPSOUNDSENTRYW LPSOUNDSENTRY;
  7857         -// #else
  7858         -// ...
  7859         -// #endif // UNICODE
  7860         -
  7861         -enum : uint { SSF_SOUNDSENTRYON = 0x00000001 }
  7862         -enum : uint { SSF_AVAILABLE = 0x00000002 }
  7863         -enum : uint { SSF_INDICATOR = 0x00000004 }
  7864         -
  7865         -struct tagTOGGLEKEYS {
  7866         -  UINT cbSize;
  7867         -  DWORD dwFlags;
  7868         -}
  7869         -alias tagTOGGLEKEYS TOGGLEKEYS;
  7870         -alias tagTOGGLEKEYS* LPTOGGLEKEYS;
  7871         -
  7872         -enum : uint { TKF_TOGGLEKEYSON = 0x00000001 }
  7873         -enum : uint { TKF_AVAILABLE = 0x00000002 }
  7874         -enum : uint { TKF_HOTKEYACTIVE = 0x00000004 }
  7875         -enum : uint { TKF_CONFIRMHOTKEY = 0x00000008 }
  7876         -enum : uint { TKF_HOTKEYSOUND = 0x00000010 }
  7877         -enum : uint { TKF_INDICATOR = 0x00000020 }
  7878         -
  7879         -extern(Windows) export VOID SetDebugErrorLevel(
  7880         -  DWORD dwLevel);
  7881         -
  7882         -enum : uint { SLE_ERROR = 0x00000001 }
  7883         -enum : uint { SLE_MINORERROR = 0x00000002 }
  7884         -enum : uint { SLE_WARNING = 0x00000003 }
  7885         -
  7886         -extern(Windows) export VOID SetLastErrorEx(
  7887         -  DWORD dwErrCode,
  7888         -  DWORD dwType);
  7889         -
  7890         -// #if(WINVER >= 0x0500)
  7891         -
  7892         -enum : uint { MONITOR_DEFAULTTONULL = 0x00000000 }
  7893         -enum : uint { MONITOR_DEFAULTTOPRIMARY = 0x00000001 }
  7894         -enum : uint { MONITOR_DEFAULTTONEAREST = 0x00000002 }
  7895         -
  7896         -extern(Windows) export HMONITOR MonitorFromPoint(
  7897         -  POINT pt,
  7898         -  DWORD dwFlags);
  7899         -
  7900         -extern(Windows) export HMONITOR MonitorFromRect(
  7901         -  LPCRECT lprc,
  7902         -  DWORD dwFlags);
  7903         -
  7904         -extern(Windows) export HMONITOR MonitorFromWindow(HWND hwnd, DWORD dwFlags);
  7905         -
  7906         -enum : uint { MONITORINFOF_PRIMARY = 0x00000001 }
  7907         -
  7908         -// #ifndef CCHDEVICENAME
  7909         -// #...
  7910         -// #endif
  7911         -
  7912         -struct tagMONITORINFO {
  7913         -  DWORD cbSize;
  7914         -  RECT rcMonitor;
  7915         -  RECT rcWork;
  7916         -  DWORD dwFlags;
  7917         -}
  7918         -alias tagMONITORINFO MONITORINFO;
  7919         -alias tagMONITORINFO* LPMONITORINFO;
  7920         -
  7921         -// #ifdef __cplusplus
  7922         -struct tagMONITORINFOEXA {
  7923         -  DWORD   cbSize;
  7924         -  RECT    rcMonitor;
  7925         -  RECT    rcWork;
  7926         -  DWORD   dwFlags;
  7927         -  CHAR szDevice[CCHDEVICENAME];
  7928         -}
  7929         -alias tagMONITORINFOEXA MONITORINFOEXA;
  7930         -alias tagMONITORINFOEXA* LPMONITORINFOEXA;
  7931         -
  7932         -struct tagMONITORINFOEXW {
  7933         -  DWORD   cbSize;
  7934         -  RECT    rcMonitor;
  7935         -  RECT    rcWork;
  7936         -  DWORD   dwFlags;
  7937         -  WCHAR szDevice[CCHDEVICENAME];
  7938         -}
  7939         -alias tagMONITORINFOEXW MONITORINFOEXW;
  7940         -alias tagMONITORINFOEXW* LPMONITORINFOEXW;
  7941         -
  7942         -// #ifdef UNICODE
  7943         -alias MONITORINFOEXW MONITORINFOEX;
  7944         -alias LPMONITORINFOEXW LPMONITORINFOEX;
  7945         -// #else
  7946         -// ...
  7947         -// #endif // UNICODE
  7948         -// #else // ndef __cplusplus
  7949         -// ...
  7950         -// #ifdef UNICODE
  7951         -// ...
  7952         -// #else
  7953         -// ...
  7954         -// #endif // UNICODE
  7955         -// #endif
  7956         -
  7957         -extern(Windows) export BOOL GetMonitorInfoA(HMONITOR hMonitor, LPMONITORINFO lpmi);
  7958         -extern(Windows) export BOOL GetMonitorInfoW(HMONITOR hMonitor, LPMONITORINFO lpmi);
  7959         -// #ifdef UNICODE
  7960         -alias GetMonitorInfoW GetMonitorInfo;
  7961         -// #else
  7962         -// #...
  7963         -// #endif // !UNICODE
  7964         -
  7965         -extern(Windows) alias BOOL function(HMONITOR, HDC, LPRECT, LPARAM) MONITORENUMPROC;
  7966         -
  7967         -extern(Windows) export BOOL EnumDisplayMonitors(
  7968         -  HDC hdc,
  7969         -  LPCRECT lprcClip,
  7970         -  MONITORENUMPROC lpfnEnum,
  7971         -  LPARAM dwData);
  7972         -
  7973         -// #ifndef NOWINABLE
  7974         -
  7975         -extern(Windows) export VOID NotifyWinEvent(
  7976         -  DWORD event,
  7977         -  HWND hwnd,
  7978         -  LONG idObject,
  7979         -  LONG idChild);
  7980         -
  7981         -extern(Windows) alias VOID function( HWINEVENTHOOK hWinEventHook, DWORD event, HWND hwnd, LONG idObject, LONG idChild, DWORD idEventThread, DWORD dwmsEventTime) WINEVENTPROC;
  7982         -
  7983         -extern(Windows) export HWINEVENTHOOK SetWinEventHook(
  7984         -  DWORD eventMin,
  7985         -  DWORD eventMax,
  7986         -  HMODULE hmodWinEventProc,
  7987         -  WINEVENTPROC pfnWinEventProc,
  7988         -  DWORD idProcess,
  7989         -  DWORD idThread,
  7990         -  DWORD dwFlags);
  7991         -
  7992         -// #if(_WIN32_WINNT >= 0x0501)
  7993         -extern(Windows) export BOOL IsWinEventHookInstalled(
  7994         -  DWORD event);
  7995         -// #endif /* _WIN32_WINNT >= 0x0501 */
  7996         -
  7997         -enum : uint { WINEVENT_OUTOFCONTEXT = 0x0000 }
  7998         -enum : uint { WINEVENT_SKIPOWNTHREAD = 0x0001 }
  7999         -enum : uint { WINEVENT_SKIPOWNPROCESS = 0x0002 }
  8000         -enum : uint { WINEVENT_INCONTEXT = 0x0004 }
  8001         -
  8002         -extern(Windows) export BOOL UnhookWinEvent(
  8003         -  HWINEVENTHOOK hWinEventHook);
  8004         -
  8005         -enum : uint { CHILDID_SELF = 0 }
  8006         -enum : uint { INDEXID_OBJECT = 0 }
  8007         -enum : uint { INDEXID_CONTAINER = 0 }
  8008         -
  8009         -enum : uint { OBJID_WINDOW = cast(LONG)0x00000000 }
  8010         -enum : uint { OBJID_SYSMENU = cast(LONG)0xFFFFFFFF }
  8011         -enum : uint { OBJID_TITLEBAR = cast(LONG)0xFFFFFFFE }
  8012         -enum : uint { OBJID_MENU = cast(LONG)0xFFFFFFFD }
  8013         -enum : uint { OBJID_CLIENT = cast(LONG)0xFFFFFFFC }
  8014         -enum : uint { OBJID_VSCROLL = cast(LONG)0xFFFFFFFB }
  8015         -enum : uint { OBJID_HSCROLL = cast(LONG)0xFFFFFFFA }
  8016         -enum : uint { OBJID_SIZEGRIP = cast(LONG)0xFFFFFFF9 }
  8017         -enum : uint { OBJID_CARET = cast(LONG)0xFFFFFFF8 }
  8018         -enum : uint { OBJID_CURSOR = cast(LONG)0xFFFFFFF7 }
  8019         -enum : uint { OBJID_ALERT = cast(LONG)0xFFFFFFF6 }
  8020         -enum : uint { OBJID_SOUND = cast(LONG)0xFFFFFFF5 }
  8021         -enum : uint { OBJID_QUERYCLASSNAMEIDX = cast(LONG)0xFFFFFFF4 }
  8022         -enum : uint { OBJID_NATIVEOM = cast(LONG)0xFFFFFFF0 }
  8023         -
  8024         -enum : uint { EVENT_MIN = 0x00000001 }
  8025         -enum : uint { EVENT_MAX = 0x7FFFFFFF }
  8026         -
  8027         -enum : uint { EVENT_SYSTEM_SOUND = 0x0001 }
  8028         -
  8029         -enum : uint { EVENT_SYSTEM_ALERT = 0x0002 }
  8030         -
  8031         -enum : uint { EVENT_SYSTEM_FOREGROUND = 0x0003 }
  8032         -
  8033         -enum : uint { EVENT_SYSTEM_MENUSTART = 0x0004 }
  8034         -enum : uint { EVENT_SYSTEM_MENUEND = 0x0005 }
  8035         -
  8036         -enum : uint { EVENT_SYSTEM_MENUPOPUPSTART = 0x0006 }
  8037         -enum : uint { EVENT_SYSTEM_MENUPOPUPEND = 0x0007 }
  8038         -
  8039         -enum : uint { EVENT_SYSTEM_CAPTURESTART = 0x0008 }
  8040         -enum : uint { EVENT_SYSTEM_CAPTUREEND = 0x0009 }
  8041         -
  8042         -enum : uint { EVENT_SYSTEM_MOVESIZESTART = 0x000A }
  8043         -enum : uint { EVENT_SYSTEM_MOVESIZEEND = 0x000B }
  8044         -
  8045         -enum : uint { EVENT_SYSTEM_CONTEXTHELPSTART = 0x000C }
  8046         -enum : uint { EVENT_SYSTEM_CONTEXTHELPEND = 0x000D }
  8047         -
  8048         -enum : uint { EVENT_SYSTEM_DRAGDROPSTART = 0x000E }
  8049         -enum : uint { EVENT_SYSTEM_DRAGDROPEND = 0x000F }
  8050         -
  8051         -enum : uint { EVENT_SYSTEM_DIALOGSTART = 0x0010 }
  8052         -enum : uint { EVENT_SYSTEM_DIALOGEND = 0x0011 }
  8053         -
  8054         -enum : uint { EVENT_SYSTEM_SCROLLINGSTART = 0x0012 }
  8055         -enum : uint { EVENT_SYSTEM_SCROLLINGEND = 0x0013 }
  8056         -
  8057         -enum : uint { EVENT_SYSTEM_SWITCHSTART = 0x0014 }
  8058         -enum : uint { EVENT_SYSTEM_SWITCHEND = 0x0015 }
  8059         -
  8060         -enum : uint { EVENT_SYSTEM_MINIMIZESTART = 0x0016 }
  8061         -enum : uint { EVENT_SYSTEM_MINIMIZEEND = 0x0017 }
  8062         -
  8063         -// #if(_WIN32_WINNT >= 0x0501)
  8064         -enum : uint { EVENT_CONSOLE_CARET = 0x4001 }
  8065         -enum : uint { EVENT_CONSOLE_UPDATE_REGION = 0x4002 }
  8066         -enum : uint { EVENT_CONSOLE_UPDATE_SIMPLE = 0x4003 }
  8067         -enum : uint { EVENT_CONSOLE_UPDATE_SCROLL = 0x4004 }
  8068         -enum : uint { EVENT_CONSOLE_LAYOUT = 0x4005 }
  8069         -enum : uint { EVENT_CONSOLE_START_APPLICATION = 0x4006 }
  8070         -enum : uint { EVENT_CONSOLE_END_APPLICATION = 0x4007 }
  8071         -
  8072         -enum : uint { CONSOLE_APPLICATION_16BIT = 0x0001 }
  8073         -
  8074         -enum : uint { CONSOLE_CARET_SELECTION = 0x0001 }
  8075         -enum : uint { CONSOLE_CARET_VISIBLE = 0x0002 }
  8076         -// #endif /* _WIN32_WINNT >= 0x0501 */
  8077         -
  8078         -enum : uint { EVENT_OBJECT_CREATE = 0x8000 }
  8079         -enum : uint { EVENT_OBJECT_DESTROY = 0x8001 }
  8080         -enum : uint { EVENT_OBJECT_SHOW = 0x8002 }
  8081         -enum : uint { EVENT_OBJECT_HIDE = 0x8003 }
  8082         -enum : uint { EVENT_OBJECT_REORDER = 0x8004 }
  8083         -
  8084         -enum : uint { EVENT_OBJECT_FOCUS = 0x8005 }
  8085         -enum : uint { EVENT_OBJECT_SELECTION = 0x8006 }
  8086         -enum : uint { EVENT_OBJECT_SELECTIONADD = 0x8007 }
  8087         -enum : uint { EVENT_OBJECT_SELECTIONREMOVE = 0x8008 }
  8088         -enum : uint { EVENT_OBJECT_SELECTIONWITHIN = 0x8009 }
  8089         -
  8090         -enum : uint { EVENT_OBJECT_STATECHANGE = 0x800A }
  8091         -
  8092         -enum : uint { EVENT_OBJECT_LOCATIONCHANGE = 0x800B }
  8093         -
  8094         -enum : uint { EVENT_OBJECT_NAMECHANGE = 0x800C }
  8095         -enum : uint { EVENT_OBJECT_DESCRIPTIONCHANGE = 0x800D }
  8096         -enum : uint { EVENT_OBJECT_VALUECHANGE = 0x800E }
  8097         -enum : uint { EVENT_OBJECT_PARENTCHANGE = 0x800F }
  8098         -enum : uint { EVENT_OBJECT_HELPCHANGE = 0x8010 }
  8099         -enum : uint { EVENT_OBJECT_DEFACTIONCHANGE = 0x8011 }
  8100         -enum : uint { EVENT_OBJECT_ACCELERATORCHANGE = 0x8012 }
  8101         -
  8102         -enum : uint { SOUND_SYSTEM_STARTUP = 1 }
  8103         -enum : uint { SOUND_SYSTEM_SHUTDOWN = 2 }
  8104         -enum : uint { SOUND_SYSTEM_BEEP = 3 }
  8105         -enum : uint { SOUND_SYSTEM_ERROR = 4 }
  8106         -enum : uint { SOUND_SYSTEM_QUESTION = 5 }
  8107         -enum : uint { SOUND_SYSTEM_WARNING = 6 }
  8108         -enum : uint { SOUND_SYSTEM_INFORMATION = 7 }
  8109         -enum : uint { SOUND_SYSTEM_MAXIMIZE = 8 }
  8110         -enum : uint { SOUND_SYSTEM_MINIMIZE = 9 }
  8111         -enum : uint { SOUND_SYSTEM_RESTOREUP = 10 }
  8112         -enum : uint { SOUND_SYSTEM_RESTOREDOWN = 11 }
  8113         -enum : uint { SOUND_SYSTEM_APPSTART = 12 }
  8114         -enum : uint { SOUND_SYSTEM_FAULT = 13 }
  8115         -enum : uint { SOUND_SYSTEM_APPEND = 14 }
  8116         -enum : uint { SOUND_SYSTEM_MENUCOMMAND = 15 }
  8117         -enum : uint { SOUND_SYSTEM_MENUPOPUP = 16 }
  8118         -enum : uint { CSOUND_SYSTEM = 16 }
  8119         -
  8120         -enum : uint { ALERT_SYSTEM_INFORMATIONAL = 1 }
  8121         -enum : uint { ALERT_SYSTEM_WARNING = 2 }
  8122         -enum : uint { ALERT_SYSTEM_ERROR = 3 }
  8123         -enum : uint { ALERT_SYSTEM_QUERY = 4 }
  8124         -enum : uint { ALERT_SYSTEM_CRITICAL = 5 }
  8125         -enum : uint { CALERT_SYSTEM = 6 }
  8126         -
  8127         -struct tagGUITHREADINFO {
  8128         -  DWORD cbSize;
  8129         -  DWORD flags;
  8130         -  HWND hwndActive;
  8131         -  HWND hwndFocus;
  8132         -  HWND hwndCapture;
  8133         -  HWND hwndMenuOwner;
  8134         -  HWND hwndMoveSize;
  8135         -  HWND hwndCaret;
  8136         -  RECT rcCaret;
  8137         -}
  8138         -alias tagGUITHREADINFO GUITHREADINFO;
  8139         -alias tagGUITHREADINFO* PGUITHREADINFO;
  8140         -alias tagGUITHREADINFO* LPGUITHREADINFO;
  8141         -
  8142         -enum : uint { GUI_CARETBLINKING = 0x00000001 }
  8143         -enum : uint { GUI_INMOVESIZE = 0x00000002 }
  8144         -enum : uint { GUI_INMENUMODE = 0x00000004 }
  8145         -enum : uint { GUI_SYSTEMMENUMODE = 0x00000008 }
  8146         -enum : uint { GUI_POPUPMENUMODE = 0x00000010 }
  8147         -// #if(_WIN32_WINNT >= 0x0501)
  8148         -enum : uint { GUI_16BITTASK = 0x00000020 }
  8149         -// #endif /* _WIN32_WINNT >= 0x0501 */
  8150         -
  8151         -extern(Windows) export BOOL GetGUIThreadInfo(
  8152         -  DWORD idThread,
  8153         -  PGUITHREADINFO pgui);
  8154         -
  8155         -extern(Windows) export UINT GetWindowModuleFileNameA(
  8156         -  HWND hwnd,
  8157         -  LPSTR pszFileName,
  8158         -  UINT cchFileNameMax);
  8159         -extern(Windows) export UINT GetWindowModuleFileNameW(
  8160         -  HWND hwnd,
  8161         -  LPWSTR pszFileName,
  8162         -  UINT cchFileNameMax);
  8163         -// #ifdef UNICODE
  8164         -alias GetWindowModuleFileNameW GetWindowModuleFileName;
  8165         -// #else
  8166         -// #...
  8167         -// #endif // !UNICODE
  8168         -
  8169         -// #ifndef NO_STATE_FLAGS
  8170         -enum : uint { STATE_SYSTEM_UNAVAILABLE = 0x00000001 }
  8171         -enum : uint { STATE_SYSTEM_SELECTED = 0x00000002 }
  8172         -enum : uint { STATE_SYSTEM_FOCUSED = 0x00000004 }
  8173         -enum : uint { STATE_SYSTEM_PRESSED = 0x00000008 }
  8174         -enum : uint { STATE_SYSTEM_CHECKED = 0x00000010 }
  8175         -enum : uint { STATE_SYSTEM_MIXED = 0x00000020 }
  8176         -alias STATE_SYSTEM_MIXED STATE_SYSTEM_INDETERMINATE;
  8177         -enum : uint { STATE_SYSTEM_READONLY = 0x00000040 }
  8178         -enum : uint { STATE_SYSTEM_HOTTRACKED = 0x00000080 }
  8179         -enum : uint { STATE_SYSTEM_DEFAULT = 0x00000100 }
  8180         -enum : uint { STATE_SYSTEM_EXPANDED = 0x00000200 }
  8181         -enum : uint { STATE_SYSTEM_COLLAPSED = 0x00000400 }
  8182         -enum : uint { STATE_SYSTEM_BUSY = 0x00000800 }
  8183         -enum : uint { STATE_SYSTEM_FLOATING = 0x00001000 }
  8184         -enum : uint { STATE_SYSTEM_MARQUEED = 0x00002000 }
  8185         -enum : uint { STATE_SYSTEM_ANIMATED = 0x00004000 }
  8186         -enum : uint { STATE_SYSTEM_INVISIBLE = 0x00008000 }
  8187         -enum : uint { STATE_SYSTEM_OFFSCREEN = 0x00010000 }
  8188         -enum : uint { STATE_SYSTEM_SIZEABLE = 0x00020000 }
  8189         -enum : uint { STATE_SYSTEM_MOVEABLE = 0x00040000 }
  8190         -enum : uint { STATE_SYSTEM_SELFVOICING = 0x00080000 }
  8191         -enum : uint { STATE_SYSTEM_FOCUSABLE = 0x00100000 }
  8192         -enum : uint { STATE_SYSTEM_SELECTABLE = 0x00200000 }
  8193         -enum : uint { STATE_SYSTEM_LINKED = 0x00400000 }
  8194         -enum : uint { STATE_SYSTEM_TRAVERSED = 0x00800000 }
  8195         -enum : uint { STATE_SYSTEM_MULTISELECTABLE = 0x01000000 }
  8196         -enum : uint { STATE_SYSTEM_EXTSELECTABLE = 0x02000000 }
  8197         -enum : uint { STATE_SYSTEM_ALERT_LOW = 0x04000000 }
  8198         -enum : uint { STATE_SYSTEM_ALERT_MEDIUM = 0x08000000 }
  8199         -enum : uint { STATE_SYSTEM_ALERT_HIGH = 0x10000000 }
  8200         -enum : uint { STATE_SYSTEM_PROTECTED = 0x20000000 }
  8201         -enum : uint { STATE_SYSTEM_VALID = 0x3FFFFFFF }
  8202         -// #endif
  8203         -
  8204         -enum : uint { CCHILDREN_TITLEBAR = 5 }
  8205         -enum : uint { CCHILDREN_SCROLLBAR = 5 }
  8206         -
  8207         -struct tagCURSORINFO {
  8208         -  DWORD cbSize;
  8209         -  DWORD flags;
  8210         -  HCURSOR hCursor;
  8211         -  POINT ptScreenPos;
  8212         -}
  8213         -alias tagCURSORINFO CURSORINFO;
  8214         -alias tagCURSORINFO* PCURSORINFO;
  8215         -alias tagCURSORINFO* LPCURSORINFO;
  8216         -
  8217         -enum : uint { CURSOR_SHOWING = 0x00000001 }
  8218         -
  8219         -extern(Windows) export BOOL GetCursorInfo(
  8220         -  PCURSORINFO pci
  8221         -);
  8222         -
  8223         -struct tagWINDOWINFO {
  8224         -  DWORD cbSize;
  8225         -  RECT rcWindow;
  8226         -  RECT rcClient;
  8227         -  DWORD dwStyle;
  8228         -  DWORD dwExStyle;
  8229         -  DWORD dwWindowStatus;
  8230         -  UINT cxWindowBorders;
  8231         -  UINT cyWindowBorders;
  8232         -  ATOM atomWindowType;
  8233         -  WORD wCreatorVersion;
  8234         -}
  8235         -alias tagWINDOWINFO WINDOWINFO;
  8236         -alias tagWINDOWINFO* PWINDOWINFO;
  8237         -alias tagWINDOWINFO* LPWINDOWINFO;
  8238         -
  8239         -enum : uint { WS_ACTIVECAPTION = 0x0001 }
  8240         -
  8241         -extern(Windows) export BOOL GetWindowInfo(
  8242         -  HWND hwnd,
  8243         -  PWINDOWINFO pwi
  8244         -);
  8245         -
  8246         -struct tagTITLEBARINFO {
  8247         -  DWORD cbSize;
  8248         -  RECT rcTitleBar;
  8249         -  DWORD rgstate[CCHILDREN_TITLEBAR+1];
  8250         -}
  8251         -alias tagTITLEBARINFO TITLEBARINFO;
  8252         -alias tagTITLEBARINFO* PTITLEBARINFO;
  8253         -alias tagTITLEBARINFO* LPTITLEBARINFO;
  8254         -
  8255         -extern(Windows) export BOOL GetTitleBarInfo(
  8256         -  HWND hwnd,
  8257         -  PTITLEBARINFO pti
  8258         -);
  8259         -
  8260         -struct tagMENUBARINFO {
  8261         -  DWORD cbSize;
  8262         -  RECT rcBar;
  8263         -  HMENU hMenu;
  8264         -  HWND hwndMenu;
  8265         -// BOOL  fBarFocused:1;
  8266         -// BOOL  fFocused:1;
  8267         -}
  8268         -alias tagMENUBARINFO MENUBARINFO;
  8269         -alias tagMENUBARINFO* PMENUBARINFO;
  8270         -alias tagMENUBARINFO* LPMENUBARINFO;
  8271         -
  8272         -extern(Windows) export BOOL GetMenuBarInfo(
  8273         -  HWND hwnd,
  8274         -  LONG idObject,
  8275         -  LONG idItem,
  8276         -  PMENUBARINFO pmbi
  8277         -);
  8278         -
  8279         -struct tagSCROLLBARINFO {
  8280         -  DWORD cbSize;
  8281         -  RECT rcScrollBar;
  8282         -  int dxyLineButton;
  8283         -  int xyThumbTop;
  8284         -  int xyThumbBottom;
  8285         -  int reserved;
  8286         -  DWORD rgstate[CCHILDREN_SCROLLBAR+1];
  8287         -}
  8288         -alias tagSCROLLBARINFO SCROLLBARINFO;
  8289         -alias tagSCROLLBARINFO* PSCROLLBARINFO;
  8290         -alias tagSCROLLBARINFO* LPSCROLLBARINFO;
  8291         -
  8292         -extern(Windows) export BOOL GetScrollBarInfo(
  8293         -  HWND hwnd,
  8294         -  LONG idObject,
  8295         -  PSCROLLBARINFO psbi
  8296         -);
  8297         -
  8298         -struct tagCOMBOBOXINFO {
  8299         -  DWORD cbSize;
  8300         -  RECT rcItem;
  8301         -  RECT rcButton;
  8302         -  DWORD stateButton;
  8303         -  HWND hwndCombo;
  8304         -  HWND hwndItem;
  8305         -  HWND hwndList;
  8306         -}
  8307         -alias tagCOMBOBOXINFO COMBOBOXINFO;
  8308         -alias tagCOMBOBOXINFO* PCOMBOBOXINFO;
  8309         -alias tagCOMBOBOXINFO* LPCOMBOBOXINFO;
  8310         -
  8311         -extern(Windows) export BOOL GetComboBoxInfo(
  8312         -  HWND hwndCombo,
  8313         -  PCOMBOBOXINFO pcbi
  8314         -);
  8315         -
  8316         -enum : uint { GA_PARENT = 1 }
  8317         -enum : uint { GA_ROOT = 2 }
  8318         -enum : uint { GA_ROOTOWNER = 3 }
  8319         -
  8320         -extern(Windows) export HWND GetAncestor(
  8321         -  HWND hwnd,
  8322         -  UINT gaFlags
  8323         -);
  8324         -
  8325         -extern(Windows) export HWND RealChildWindowFromPoint(
  8326         -  HWND hwndParent,
  8327         -  POINT ptParentClientCoords
  8328         -);
  8329         -
  8330         -extern(Windows) export UINT RealGetWindowClassA(
  8331         -  HWND hwnd,
  8332         -  LPSTR pszType,
  8333         -  UINT cchType
  8334         -);
  8335         -
  8336         -extern(Windows) export UINT RealGetWindowClassW(
  8337         -  HWND hwnd,
  8338         -  LPWSTR pszType,
  8339         -  UINT cchType
  8340         -);
  8341         -// #ifdef UNICODE
  8342         -alias RealGetWindowClassW RealGetWindowClass;
  8343         -// #else
  8344         -// #...
  8345         -// #endif // !UNICODE
  8346         -
  8347         -struct tagALTTABINFO {
  8348         -  DWORD cbSize;
  8349         -  int cItems;
  8350         -  int cColumns;
  8351         -  int cRows;
  8352         -  int iColFocus;
  8353         -  int iRowFocus;
  8354         -  int cxItem;
  8355         -  int cyItem;
  8356         -  POINT ptStart;
  8357         -}
  8358         -alias tagALTTABINFO ALTTABINFO;
  8359         -alias tagALTTABINFO* PALTTABINFO;
  8360         -alias tagALTTABINFO* LPALTTABINFO;
  8361         -
  8362         -extern(Windows) export BOOL GetAltTabInfoA(
  8363         -  HWND hwnd,
  8364         -  int iItem,
  8365         -  PALTTABINFO pati,
  8366         -  LPSTR pszItemText,
  8367         -  UINT cchItemText
  8368         -);
  8369         -extern(Windows) export BOOL GetAltTabInfoW(
  8370         -  HWND hwnd,
  8371         -  int iItem,
  8372         -  PALTTABINFO pati,
  8373         -  LPWSTR pszItemText,
  8374         -  UINT cchItemText
  8375         -);
  8376         -// #ifdef UNICODE
  8377         -alias GetAltTabInfoW GetAltTabInfo;
  8378         -// #else
  8379         -// #...
  8380         -// #endif // !UNICODE
  8381         -
  8382         -extern(Windows) export DWORD GetListBoxInfo(
  8383         -  HWND hwnd
  8384         -);
  8385         -
  8386         -// #endif /* NOWINABLE */
  8387         -// #endif /* WINVER >= 0x0500 */
  8388         -
  8389         -// #if(_WIN32_WINNT >= 0x0500)
  8390         -extern(Windows) export BOOL LockWorkStation();
  8391         -// #endif /* _WIN32_WINNT >= 0x0500 */
  8392         -
  8393         -// #if(_WIN32_WINNT >= 0x0500)
  8394         -
  8395         -extern(Windows) export BOOL UserHandleGrantAccess(
  8396         -  HANDLE hUserHandle,
  8397         -  HANDLE hJob,
  8398         -  BOOL bGrant);
  8399         -
  8400         -// #endif /* _WIN32_WINNT >= 0x0500 */
  8401         -
  8402         -// #if(_WIN32_WINNT >= 0x0501)
  8403         -
  8404         -alias void* HRAWINPUT;
  8405         -
  8406         -// #define GET_RAWINPUT_CODE_WPARAM(wParam) ((wParam) & 0xff)
  8407         -
  8408         -enum : uint { RIM_INPUT = 0 }
  8409         -
  8410         -enum : uint { RIM_INPUTSINK = 1 }
  8411         -
  8412         -struct tagRAWINPUTHEADER {
  8413         -  DWORD dwType;
  8414         -  DWORD dwSize;
  8415         -  HANDLE hDevice;
  8416         -  WPARAM wParam;
  8417         -}
  8418         -alias tagRAWINPUTHEADER RAWINPUTHEADER;
  8419         -alias tagRAWINPUTHEADER* PRAWINPUTHEADER;
  8420         -alias tagRAWINPUTHEADER* LPRAWINPUTHEADER;
  8421         -
  8422         -enum : uint { RIM_TYPEMOUSE = 0 }
  8423         -enum : uint { RIM_TYPEKEYBOARD = 1 }
  8424         -enum : uint { RIM_TYPEHID = 2 }
  8425         -
  8426         -struct tagRAWMOUSE {
  8427         -
  8428         -  USHORT usFlags;
  8429         -union {
  8430         -  ULONG ulButtons;
  8431         -struct {
  8432         -  USHORT usButtonFlags;
  8433         -  USHORT usButtonData;
  8434         -}
  8435         -
  8436         -}
  8437         -
  8438         -  ULONG ulRawButtons;
  8439         -  LONG lLastX;
  8440         -  LONG lLastY;
  8441         -  ULONG ulExtraInformation;
  8442         -}
  8443         -alias tagRAWMOUSE RAWMOUSE;
  8444         -alias tagRAWMOUSE* PRAWMOUSE;
  8445         -alias tagRAWMOUSE* LPRAWMOUSE;
  8446         -
  8447         -enum : uint { RI_MOUSE_LEFT_BUTTON_DOWN = 0x0001 }
  8448         -enum : uint { RI_MOUSE_LEFT_BUTTON_UP = 0x0002 }
  8449         -enum : uint { RI_MOUSE_RIGHT_BUTTON_DOWN = 0x0004 }
  8450         -enum : uint { RI_MOUSE_RIGHT_BUTTON_UP = 0x0008 }
  8451         -enum : uint { RI_MOUSE_MIDDLE_BUTTON_DOWN = 0x0010 }
  8452         -enum : uint { RI_MOUSE_MIDDLE_BUTTON_UP = 0x0020 }
  8453         -
  8454         -alias RI_MOUSE_LEFT_BUTTON_DOWN RI_MOUSE_BUTTON_1_DOWN;
  8455         -alias RI_MOUSE_LEFT_BUTTON_UP RI_MOUSE_BUTTON_1_UP;
  8456         -alias RI_MOUSE_RIGHT_BUTTON_DOWN RI_MOUSE_BUTTON_2_DOWN;
  8457         -alias RI_MOUSE_RIGHT_BUTTON_UP RI_MOUSE_BUTTON_2_UP;
  8458         -alias RI_MOUSE_MIDDLE_BUTTON_DOWN RI_MOUSE_BUTTON_3_DOWN;
  8459         -alias RI_MOUSE_MIDDLE_BUTTON_UP RI_MOUSE_BUTTON_3_UP;
  8460         -
  8461         -enum : uint { RI_MOUSE_BUTTON_4_DOWN = 0x0040 }
  8462         -enum : uint { RI_MOUSE_BUTTON_4_UP = 0x0080 }
  8463         -enum : uint { RI_MOUSE_BUTTON_5_DOWN = 0x0100 }
  8464         -enum : uint { RI_MOUSE_BUTTON_5_UP = 0x0200 }
  8465         -
  8466         -enum : uint { RI_MOUSE_WHEEL = 0x0400 }
  8467         -
  8468         -enum : uint { MOUSE_MOVE_RELATIVE = 0 }
  8469         -enum : uint { MOUSE_MOVE_ABSOLUTE = 1 }
  8470         -enum : uint { MOUSE_VIRTUAL_DESKTOP = 0x02 }
  8471         -enum : uint { MOUSE_ATTRIBUTES_CHANGED = 0x04 }
  8472         -
  8473         -struct tagRAWKEYBOARD {
  8474         -
  8475         -  USHORT MakeCode;
  8476         -  USHORT Flags;
  8477         -  USHORT Reserved;
  8478         -  USHORT VKey;
  8479         -  UINT Message;
  8480         -  ULONG ExtraInformation;
  8481         -}
  8482         -alias tagRAWKEYBOARD RAWKEYBOARD;
  8483         -alias tagRAWKEYBOARD* PRAWKEYBOARD;
  8484         -alias tagRAWKEYBOARD* LPRAWKEYBOARD;
  8485         -
  8486         -enum : uint { KEYBOARD_OVERRUN_MAKE_CODE = 0xFF }
  8487         -
  8488         -enum : uint { RI_KEY_MAKE = 0 }
  8489         -enum : uint { RI_KEY_BREAK = 1 }
  8490         -enum : uint { RI_KEY_E0 = 2 }
  8491         -enum : uint { RI_KEY_E1 = 4 }
  8492         -enum : uint { RI_KEY_TERMSRV_SET_LED = 8 }
  8493         -enum : uint { RI_KEY_TERMSRV_SHADOW = 0x10 }
  8494         -
  8495         -struct tagRAWHID {
  8496         -  DWORD dwSizeHid;
  8497         -  DWORD dwCount;
  8498         -  BYTE bRawData[1];
  8499         -}
  8500         -alias tagRAWHID RAWHID;
  8501         -alias tagRAWHID* PRAWHID;
  8502         -alias tagRAWHID* LPRAWHID;
  8503         -
  8504         -struct tagRAWINPUT {
  8505         -  RAWINPUTHEADER header;
  8506         -union {
  8507         -  RAWMOUSE mouse;
  8508         -  RAWKEYBOARD keyboard;
  8509         -  RAWHID hid;
  8510         -}
  8511         -
  8512         -}
  8513         -alias tagRAWINPUT RAWINPUT;
  8514         -alias tagRAWINPUT* PRAWINPUT;
  8515         -alias tagRAWINPUT* LPRAWINPUT;
  8516         -
  8517         -// #ifdef _WIN64
  8518         -// #...
  8519         -// #else   // _WIN64
  8520         -uint RAWINPUT_ALIGN(uint x){ return ((x + DWORD.sizeof - 1) & ~(DWORD.sizeof - 1)); }
  8521         -// #endif  // _WIN64
  8522         -
  8523         -// #define NEXTRAWINPUTBLOCK(ptr) ((PRAWINPUT)RAWINPUT_ALIGN((ULONG_PTR)((PBYTE)(ptr) + (ptr)->header.dwSize)))
  8524         -
  8525         -enum : uint { RID_INPUT = 0x10000003 }
  8526         -enum : uint { RID_HEADER = 0x10000005 }
  8527         -
  8528         -extern(Windows) export UINT GetRawInputData(
  8529         -  HRAWINPUT hRawInput,
  8530         -  UINT uiCommand,
  8531         -  LPVOID pData,
  8532         -  PUINT pcbSize,
  8533         -  UINT cbSizeHeader);
  8534         -
  8535         -enum : uint { RIDI_PREPARSEDDATA = 0x20000005 }
  8536         -enum : uint { RIDI_DEVICENAME = 0x20000007 }
  8537         -enum : uint { RIDI_DEVICEINFO = 0x2000000b }
  8538         -
  8539         -struct tagRID_DEVICE_INFO_MOUSE {
  8540         -  DWORD dwId;
  8541         -  DWORD dwNumberOfButtons;
  8542         -  DWORD dwSampleRate;
  8543         -}
  8544         -alias tagRID_DEVICE_INFO_MOUSE RID_DEVICE_INFO_MOUSE;
  8545         -alias tagRID_DEVICE_INFO_MOUSE* PRID_DEVICE_INFO_MOUSE;
  8546         -
  8547         -struct tagRID_DEVICE_INFO_KEYBOARD {
  8548         -  DWORD dwType;
  8549         -  DWORD dwSubType;
  8550         -  DWORD dwKeyboardMode;
  8551         -  DWORD dwNumberOfFunctionKeys;
  8552         -  DWORD dwNumberOfIndicators;
  8553         -  DWORD dwNumberOfKeysTotal;
  8554         -}
  8555         -alias tagRID_DEVICE_INFO_KEYBOARD RID_DEVICE_INFO_KEYBOARD;
  8556         -alias tagRID_DEVICE_INFO_KEYBOARD* PRID_DEVICE_INFO_KEYBOARD;
  8557         -
  8558         -struct tagRID_DEVICE_INFO_HID {
  8559         -  DWORD dwVendorId;
  8560         -  DWORD dwProductId;
  8561         -  DWORD dwVersionNumber;
  8562         -  USHORT usUsagePage;
  8563         -  USHORT usUsage;
  8564         -}
  8565         -alias tagRID_DEVICE_INFO_HID RID_DEVICE_INFO_HID;
  8566         -alias tagRID_DEVICE_INFO_HID* PRID_DEVICE_INFO_HID;
  8567         -
  8568         -struct tagRID_DEVICE_INFO {
  8569         -  DWORD cbSize;
  8570         -  DWORD dwType;
  8571         -union {
  8572         -  RID_DEVICE_INFO_MOUSE mouse;
  8573         -  RID_DEVICE_INFO_KEYBOARD keyboard;
  8574         -  RID_DEVICE_INFO_HID hid;
  8575         -}
  8576         -
  8577         -}
  8578         -alias tagRID_DEVICE_INFO RID_DEVICE_INFO;
  8579         -alias tagRID_DEVICE_INFO* PRID_DEVICE_INFO;
  8580         -alias tagRID_DEVICE_INFO* LPRID_DEVICE_INFO;
  8581         -
  8582         -extern(Windows) export UINT GetRawInputDeviceInfoA(
  8583         -  HANDLE hDevice,
  8584         -  UINT uiCommand,
  8585         -  LPVOID pData,
  8586         -  PUINT pcbSize);
  8587         -extern(Windows) export UINT GetRawInputDeviceInfoW(
  8588         -  HANDLE hDevice,
  8589         -  UINT uiCommand,
  8590         -  LPVOID pData,
  8591         -  PUINT pcbSize);
  8592         -// #ifdef UNICODE
  8593         -alias GetRawInputDeviceInfoW GetRawInputDeviceInfo;
  8594         -// #else
  8595         -// #...
  8596         -// #endif // !UNICODE
  8597         -
  8598         -extern(Windows) export UINT GetRawInputBuffer(
  8599         -  PRAWINPUT pData,
  8600         -  PUINT pcbSize,
  8601         -  UINT cbSizeHeader);
  8602         -
  8603         -struct tagRAWINPUTDEVICE {
  8604         -  USHORT usUsagePage;
  8605         -  USHORT usUsage;
  8606         -  DWORD dwFlags;
  8607         -  HWND hwndTarget;
  8608         -}
  8609         -alias tagRAWINPUTDEVICE RAWINPUTDEVICE;
  8610         -alias tagRAWINPUTDEVICE* PRAWINPUTDEVICE;
  8611         -alias tagRAWINPUTDEVICE* LPRAWINPUTDEVICE;
  8612         -
  8613         -alias RAWINPUTDEVICE* PCRAWINPUTDEVICE;
  8614         -
  8615         -enum : uint { RIDEV_REMOVE = 0x00000001 }
  8616         -enum : uint { RIDEV_EXCLUDE = 0x00000010 }
  8617         -enum : uint { RIDEV_PAGEONLY = 0x00000020 }
  8618         -enum : uint { RIDEV_NOLEGACY = 0x00000030 }
  8619         -enum : uint { RIDEV_CAPTUREMOUSE = 0x00000200 }
  8620         -enum : uint { RIDEV_NOHOTKEYS = 0x00000200 }
  8621         -enum : uint { RIDEV_EXMODEMASK = 0x000000F0 }
  8622         -
  8623         -// #define RIDEV_EXMODE(mode) ((mode) & RIDEV_EXMODEMASK)
  8624         -
  8625         -extern(Windows) export BOOL RegisterRawInputDevices(
  8626         -  PCRAWINPUTDEVICE pRawInputDevices,
  8627         -  UINT uiNumDevices,
  8628         -  UINT cbSize);
  8629         -
  8630         -extern(Windows) export UINT GetRegisteredRawInputDevices(
  8631         -  PRAWINPUTDEVICE pRawInputDevices,
  8632         -  PUINT puiNumDevices,
  8633         -  UINT cbSize);
  8634         -
  8635         -struct tagRAWINPUTDEVICELIST {
  8636         -  HANDLE hDevice;
  8637         -  DWORD dwType;
  8638         -}
  8639         -alias tagRAWINPUTDEVICELIST RAWINPUTDEVICELIST;
  8640         -alias tagRAWINPUTDEVICELIST* PRAWINPUTDEVICELIST;
  8641         -
  8642         -extern(Windows) export UINT GetRawInputDeviceList(
  8643         -  PRAWINPUTDEVICELIST pRawInputDeviceList,
  8644         -  PUINT puiNumDevices,
  8645         -  UINT cbSize);
  8646         -
  8647         -extern(Windows) export LRESULT DefRawInputProc(
  8648         -  PRAWINPUT* paRawInput,
  8649         -  INT nInput,
  8650         -  UINT cbSizeHeader);
  8651         -
  8652         -// #endif /* _WIN32_WINNT >= 0x0501 */
  8653         -
  8654         -// #if !defined(RC_INVOKED) /* RC complains about long symbols in #ifs */
  8655         -// #if ISOLATION_AWARE_ENABLED
  8656         -// #...
  8657         -// #endif /* ISOLATION_AWARE_ENABLED */
  8658         -// #endif /* RC */
  8659         -
  8660         -// #ifdef __cplusplus
  8661         -// }
  8662         -// #endif  /* __cplusplus */
  8663         -
  8664         -// #endif /* !_WINUSER_ */
  8665         -
         4754  +alias WNDCLASS* LPWNDCLASS, PWNDCLASS;
         4755  +alias WNDCLASSEX* LPWNDCLASSEX, PWNDCLASSEX;
         4756  +alias MENUITEMINFO* LPMENUITEMINFO;
         4757  +alias MSGBOXPARAMS* PMSGBOXPARAMS, LPMSGBOXPARAMS;
         4758  +alias HIGHCONTRAST* LPHIGHCONTRAST;
         4759  +alias SERIALKEYS* LPSERIALKEYS;
         4760  +alias SOUNDSENTRY* LPSOUNDSENTRY;
         4761  +alias CREATESTRUCT* LPCREATESTRUCT;
         4762  +alias CBT_CREATEWND* LPCBT_CREATEWND;
         4763  +alias MDICREATESTRUCT* LPMDICREATESTRUCT;
         4764  +alias MULTIKEYHELP* PMULTIKEYHELP, LPMULTIKEYHELP;
         4765  +alias MONITORINFOEX* LPMONITORINFOEX;
         4766  +alias ICONMETRICS* LPICONMETRICS;
         4767  +alias NONCLIENTMETRICS* LPNONCLIENTMETRICS;