Files
harbour-core/contrib/gtwvg/wvtwin.ch
Viktor Szakats 9f16c2bf8e 2017-08-13 18:27 UTC Viktor Szakats (vszakats users.noreply.github.com)
* *
    * update copyright headers with new FSF postal address
    * COPYING.txt -> LICENSE.txt (rest of repo to be synced)
2017-08-13 18:38:59 +00:00

2906 lines
147 KiB
Plaintext

/*
* Header file for the WVT*Classes
*
* Copyright 2004-2011 Pritpal Bedi <bedipritpal@hotmail.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; see the file LICENSE.txt. If not, write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA (or visit https://www.gnu.org/licenses/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
#ifndef _WVGWIN_CH
#define _WVGWIN_CH
//
// GTWVT Specific
//
#xtranslate MAKELONG( <nLow>, <nHigh> ) => ( ( <nLow> ) + ( <nHigh> ) * 65536 )
#xtranslate MAKELPARAM( <nLow>, <nHigh> ) => ( ( <nLow> ) + ( <nHigh> ) * 65536 )
#define MAX_PATH 256
/*
* Wvt_DrawButton() constants
*/
#define WVT_BTN_FORMAT_RAISED 0 // Default
#define WVT_BTN_FORMAT_RECESSED 1
#define WVT_BTN_FORMAT_FLAT 2
#define WVT_BTN_FORMAT_OUTLINED 3
#define WVT_BTN_IMAGE_TOP 0 // Default
#define WVT_BTN_IMAGE_LEFT 1
#define WVT_BTN_IMAGE_BOTTOM 2
#define WVT_BTN_IMAGE_RIGHT 3
/*
* Wvt_DrawLine( nTop, nLeft, nBottom, nRight, nOrient, nFormat,;
* nAlign, nStyle, nThick, nColor )
*/
/* nOrient */
#define WVT_LINE_HORZ 0 // Default
#define WVT_LINE_VERT 1
// nFormat
#define WVT_LINE_RAISED 0 // Default
#define WVT_LINE_RECESSED 1
#define WVT_LINE_PLAIN 2
// nAlign
#define WVT_LINE_CENTER 0 // Default
#define WVT_LINE_TOP 1
#define WVT_LINE_BOTTOM 2
#define WVT_LINE_LEFT 3
#define WVT_LINE_RIGHT 4
// nStyle
#define WVT_LINE_SOLID 0 // Default
#define WVT_LINE_DASH 1
#define WVT_LINE_DOT 2
#define WVT_LINE_DASHDOT 3
#define WVT_LINE_DASHDOTDOT 4
//
// Standard Mouse Pointer Shape Constants
//
#define WVT_IDC_ARROW 1
#define WVT_IDC_IBEAM 2
#define WVT_IDC_WAIT 3
#define WVT_IDC_CROSS 4
#define WVT_IDC_UPARROW 5
#define WVT_IDC_SIZE 6
#define WVT_IDC_ICON 7
#define WVT_IDC_SIZENWSE 8
#define WVT_IDC_SIZENESW 9
#define WVT_IDC_SIZEWE 10
#define WVT_IDC_SIZENS 11
#define WVT_IDC_SIZEALL 12
#define WVT_IDC_NO 13
#define WVT_IDC_HAND 14
#define WVT_IDC_APPSTARTING 15
#define WVT_IDC_HELP 16
/*-*/
#define WVT_BLOCK_IMAGE 1
#define WVT_BLOCK_BOX 2
#define WVT_BLOCK_LABEL 3
#define WVT_BLOCK_GRID_V 4
#define WVT_BLOCK_GRID_H 5
#define WVT_BLOCK_BUTTON 6
#define WVT_BLOCK_GETS 7
#define WVT_BLOCK_LINE 8
#define WVT_BLOCK_STATUSBAR 9
#define WVT_BLOCK_TOOLBAR 10
#define WVT_BLOCK_STATIC 11
/*-*/
#define DLG_OBJ_BROWSE 1
#define DLG_OBJ_PICTURE 2
#define DLG_OBJ_LINE 3
#define DLG_OBJ_RECT 4
#define DLG_OBJ_GETS 5
#define DLG_OBJ_BUTTON 6
#define DLG_OBJ_STATUSBAR 7
#define DLG_OBJ_PANEL 8
#define DLG_OBJ_LABEL 9
#define DLG_OBJ_STATIC 10
#define DLG_OBJ_TOOLBAR 11
#define DLG_OBJ_IMAGE 12
#define DLG_OBJ_PUSHBUTTON 13
#define DLG_OBJ_CONSOLE 14
#define DLG_OBJ_SCROLLBAR 15
#define DLG_OBJ_BANNER 16
#define DLG_OBJ_TEXTBOX 17
#define DLG_OBJ_PROGRESSBAR 18
/*-*/
#define TLB_BUTTON_TYPE_IMAGE 0
#define TLB_BUTTON_TYPE_SEPARATOR 1
#define TLB_BUTTON_TYPE_TEXT 2
/*-*/
#define WVT_STATIC_LINE 1
#define WVT_STATIC_BOXRAISED 2
#define WVT_STATIC_BOXRECESSED 3
#define WVT_STATIC_BOXGROUP 4
#define WVT_STATIC_BOXGROUPRAISED 5
#define WVT_STATIC_RECTANGLE 6
#define WVT_STATIC_ROUNDRECT 7
#define WVT_STATIC_FOCUSRECT 8
#define WVT_STATIC_OUTLINE 9
#define WVT_STATIC_ELLIPSE 10
#define WVT_STATIC_SHADEDRECT 11
#define WVT_SCROLLBAR_VERT 1
#define WVT_SCROLLBAR_HORZ 2
#define WVT_SCROLLBUTTON_TOP 1
#define WVT_SCROLLBUTTON_LEFT 2
#define WVT_SCROLLBUTTON_BOTTOM 3
#define WVT_SCROLLBUTTON_RIGHT 4
#define WVT_SCROLL_THUMB 5
//
// wvtmenu defines . Peter Rees
//
#define WVT_MENU_TYPE 1
#define WVT_MENU_IDENTIFIER 2
#define WVT_MENU_CAPTION 3
#define WVT_MENU_ACTION 4
#define WVT_MENU_MENUOBJ 4
/*-*/
#ifndef RGB
#define RGB( nR, nG, nB ) ( nR + ( nG * 256 ) + ( nB * 256 * 256 ) )
#endif
//
// Windows Specific
//
#define LVM_FIRST 0x1000 // ListView messages
#define TV_FIRST 0x1100 // TreeView messages
#define TVN_FIRST (0-400)
#define HDM_FIRST 0x1200 // Header messages
#define TCM_FIRST 0x1300 // Tab control messages
#define CCM_FIRST 0x2000
#define CCM_LAST ( CCM_FIRST + 0x200 )
#define CCM_SETBKCOLOR 8193
#define CCM_SETCOLORSCHEME 8194
#define CCM_GETCOLORSCHEME 8195
#define CCM_GETDROPTARGET 8196
#define CCM_SETUNICODEFORMAT 8197
#define CCM_GETUNICODEFORMAT 8198
#define CCM_SETVERSION 0x2007
#define CCM_GETVERSION 0x2008
#define CCM_SETNOTIFYWINDOW 0x2009
#define CCM_SETWINDOWTHEME 0x200b
#define CCM_DPISCALE 0x200c
//
// Menu Manipulation Constants
//
#define MF_INSERT 0
#define MF_CHANGE 128
#define MF_APPEND 256
#define MF_DELETE 512
#define MF_REMOVE 4096
#define MF_BYCOMMAND 0
#define MF_BYPOSITION 1024
#define MF_SEPARATOR 2048
#define MF_ENABLED 0
#define MF_GRAYED 1
#define MF_DISABLED 2
#define MF_UNCHECKED 0
#define MF_CHECKED 8
#define MF_USECHECKBITMAPS 512
#define MF_STRING 0
#define MF_BITMAP 4
#define MF_OWNERDRAW 256
#define MF_POPUP 16
#define MF_MENUBARBREAK 32
#define MF_MENUBREAK 64
#define MF_UNHILITE 0
#define MF_HILITE 128
/*-*/
#define TPM_LEFTBUTTON 0x0000
#define TPM_RIGHTBUTTON 0x0002
#define TPM_LEFTALIGN 0x0000
#define TPM_CENTERALIGN 0x0004
#define TPM_RIGHTALIGN 0x0008
#define TPM_TOPALIGN 0x0000
#define TPM_VCENTERALIGN 0x0010
#define TPM_BOTTOMALIGN 0x0020
#define TPM_HORIZONTAL 0x0000 /* Horz alignment matters more */
#define TPM_VERTICAL 0x0040 /* Vert alignment matters more */
#define TPM_NONOTIFY 0x0080 /* Don't send any notification msgs */
#define TPM_RETURNCMD 0x0100
/*
* ShowWindow() Commands
*/
#define SW_HIDE 0
#define SW_SHOWNORMAL 1
#define SW_NORMAL 1
#define SW_SHOWMINIMIZED 2
#define SW_SHOWMAXIMIZED 3
#define SW_MAXIMIZE 3
#define SW_SHOWNOACTIVATE 4
#define SW_SHOW 5
#define SW_MINIMIZE 6
#define SW_SHOWMINNOACTIVE 7
#define SW_SHOWNA 8
#define SW_RESTORE 9
#define SW_SHOWDEFAULT 10
#define SW_FORCEMINIMIZE 11
#define SW_MAX 11
/*
* Window Messages
*/
#define WM_USER 1024
#define WM_CREATE 1
#define WM_DESTROY 2
#define WM_MOVE 3
#define WM_SIZE 5
#define WM_ACTIVATE 6
#define WM_SETFOCUS 7
#define WM_KILLFOCUS 8
#define WM_ENABLE 10
#define WM_SETREDRAW 11
#define WM_SETTEXT 12
#define WM_GETTEXT 13
#define WM_GETTEXTLENGTH 14
#define WM_PAINT 15
#define WM_CLOSE 16 // 0x0010
#define WM_QUIT 18 // 0x0012
#define WM_ERASEBKGND 20 // 0x0014
#define WM_SYSCOLORCHANGE 21 // 0x0015
#define WM_SHOWWINDOW 24 // 0x0018
#define WM_WININICHANGE 26 // 0x001A
#define WM_DEVMODECHANGE 27 // 0x001B
#define WM_ACTIVATEAPP 28 // 0x001C
#define WM_FONTCHANGE 29 // 0x001D
#define WM_TIMECHANGE 30 // 0x001E
#define WM_CANCELMODE 31 // 0x001F
#define WM_SETCURSOR 32 // 0x0020
#define WM_MOUSEACTIVATE 33 // 0x0021
#define WM_CHILDACTIVATE 34 // 0x0022
#define WM_QUEUESYNC 35 // 0x0023
#define WM_GETMINMAXINFO 36
#define WM_PAINTICON 38
#define WM_ICONERASEBKGND 39
#define WM_NEXTDLGCTL 40
#define WM_SPOOLERSTATUS 42
#define WM_DRAWITEM 43 // 0x002B
#define WM_MEASUREITEM 44
#define WM_DELETEITEM 45
#define WM_VKEYTOITEM 46
#define WM_CHARTOITEM 47
#define WM_SETFONT 48
#define WM_GETFONT 49
#define WM_SETHOTKEY 50
#define WM_GETHOTKEY 51
#define WM_QUERYDRAGICON 55
#define WM_COMPAREITEM 57
#define WM_GETOBJECT 61
#define WM_COMPACTING 65 // 0x0041
#define WM_COMMNOTIFY 68 // 0x0044 /* no longer suported */
#define WM_WINDOWPOSCHANGING 70 // 0x0046
#define WM_WINDOWPOSCHANGED 71 // 0x0047
#define WM_POWER 72
#define WM_NOTIFY 78 // 0x004E
#define WM_INPUTLANGCHANGEREQUEST 79 // 0x0050
#define WM_INPUTLANGCHANGE 80 // 0x0051
#define WM_TCARD 81 // 0x0052
#define WM_HELP 82 // 0x0053
#define WM_USERCHANGED 83 // 0x0054
#define WM_NOTIFYFORMAT 84 // 0x0055
#define WM_CONTEXTMENU 123 // 0x007B
#define WM_STYLECHANGING 124 // 0x007C
#define WM_STYLECHANGED 125 // 0x007D
#define WM_DISPLAYCHANGE 126 // 0x007E
#define WM_GETICON 127 // 0x007F
#define WM_SETICON 128 // 0x0080
#define WM_NCCREATE 129
#define WM_NCDESTROY 130
#define WM_NCCALCSIZE 131
#define WM_NCHITTEST 132
#define WM_NCPAINT 133
#define WM_NCACTIVATE 134
#define WM_GETDLGCODE 135
#define WM_NCMOUSEMOVE 160
#define WM_NCLBUTTONDOWN 161
#define WM_NCLBUTTONUP 162
#define WM_NCLBUTTONDBLCLK 163
#define WM_NCRBUTTONDOWN 164
#define WM_NCRBUTTONUP 165
#define WM_NCRBUTTONDBLCLK 166
#define WM_NCMBUTTONDOWN 167
#define WM_NCMBUTTONUP 168
#define WM_NCMBUTTONDBLCLK 169
#define WM_KEYDOWN 256 // 0x0100
#define WM_KEYUP 257 // 0x0101
#define WM_KEYFIRST 256
#define WM_CHAR 258
#define WM_DEADCHAR 259
#define WM_SYSKEYDOWN 260
#define WM_SYSKEYUP 261
#define WM_SYSCHAR 262
#define WM_SYSDEADCHAR 263
#define WM_KEYLAST 264
#define WM_INITDIALOG 272
#define WM_COMMAND 273
#define WM_SYSCOMMAND 274
#define WM_TIMER 275
#define WM_HSCROLL 276
#define WM_VSCROLL 277
#define WM_INITMENUPOPUP 279
#define WM_MENUSELECT 287
#define WM_MENUCOMMAND 294
#define WM_CTLCOLORMSGBOX 306
#define WM_CTLCOLOREDIT 307
#define WM_CTLCOLORLISTBOX 308
#define WM_CTLCOLORBTN 309
#define WM_CTLCOLORDLG 310
#define WM_CTLCOLORSCROLLBAR 311
#define WM_CTLCOLORSTATIC 312
#define WM_MOUSEFIRST 512
#define WM_MOUSEMOVE 512
#define WM_LBUTTONDOWN 513
#define WM_LBUTTONUP 514
#define WM_LBUTTONDBLCLK 515
#define WM_RBUTTONDOWN 516
#define WM_RBUTTONUP 517
#define WM_RBUTTONDBLCLK 518
#define WM_MBUTTONDOWN 519
#define WM_MBUTTONUP 520
#define WM_MBUTTONDBLCLK 521
#define WM_MOUSEWHEEL 522
#define WM_XBUTTONDOWN 523
#define WM_XBUTTONUP 524
#define WM_XBUTTONDBLCLK 525
#define WM_MOUSEHOVER 0x2A1
#define WM_MOUSELEAVE 0x2A3
#define WM_PARENTNOTIFY 528
#define WM_ENTERMENULOOP 529
#define WM_EXITMENULOOP 530
#define WM_NEXTMENU 531
#define WM_SIZING 532
#define WM_CAPTURECHANGED 533
#define WM_MOVING 534
#define WM_POWERBROADCAST 536
#define WM_MDICREATE 544
#define WM_MDIDESTROY 545
#define WM_MDIACTIVATE 546
#define WM_MDIRESTORE 547
#define WM_MDINEXT 548
#define WM_MDIMAXIMIZE 549
#define WM_MDITILE 550
#define WM_MDICASCADE 551
#define WM_MDIICONARRANGE 552
#define WM_MDIGETACTIVE 553
#define WM_MDISETMENU 560
#define WM_ENTERSIZEMOVE 561
#define WM_EXITSIZEMOVE 562
#define WM_DROPFILES 563
#define WM_MDIREFRESHMENU 564
#define WM_CUT 768
#define WM_COPY 769
#define WM_PASTE 770
#define WM_CLEAR 771
#define WM_UNDO 772
#define WM_RENDERFORMAT 773
#define WM_RENDERALLFORMATS 774
#define WM_DESTROYCLIPBOARD 775
#define WM_DRAWCLIPBOARD 776
#define WM_PAINTCLIPBOARD 777
#define WM_VSCROLLCLIPBOARD 778
#define WM_SIZECLIPBOARD 779
#define WM_ASKCBFORMATNAME 780
#define WM_CHANGECBCHAIN 781
#define WM_HSCROLLCLIPBOARD 782
#define WM_QUERYNEWPALETTE 783
#define WM_PALETTEISCHANGING 784
#define WM_PALETTECHANGED 785
#define WM_HOTKEY 786
/*
* Window Styles
*/
#define WS_OVERLAPPED 0
#define WS_POPUP 2147483648 // 0x80000000L
#define WS_CHILD 1073741824 // 0x40000000L
#define WS_MINIMIZE 536870912 // 0x20000000L
#define WS_VISIBLE 268435456 // 0x10000000L
#define WS_DISABLED 134217728 // 0x08000000L
#define WS_BORDER 8388608 // 0x00800000L
#define WS_DLGFRAME 4194304 // 0x00400000L
#define WS_VSCROLL 2097152 // 0x00200000L
#define WS_HSCROLL 1048576 // 0x00100000L
#define WS_SYSMENU 524288 // 0x00080000L
#define WS_THICKFRAME 262144 // 0x00040000L
#define WS_GROUP 131072 // 0x00020000L
#define WS_TABSTOP 65536 // 0x00010000L
#define WS_CLIPSIBLINGS 67108864
#define WS_CLIPCHILDREN 33554432
#define WS_MAXIMIZE 16777216
#define WS_CAPTION 12582912 // WS_BORDER | WS_DLGFRAME
#define WS_MINIMIZEBOX 131072
#define WS_MAXIMIZEBOX 65536
#define WS_TILED WS_OVERLAPPED
#define WS_ICONIC WS_MINIMIZE
#define WS_SIZEBOX WS_THICKFRAME
#define WS_TILEDWINDOW WS_OVERLAPPEDWINDOW
#define WS_OVERLAPPEDWINDOW ( WS_OVERLAPPED + ;
WS_CAPTION + ;
WS_SYSMENU + ;
WS_THICKFRAME + ;
WS_MINIMIZEBOX + ;
WS_MAXIMIZEBOX )
/*
* Extended Window Styles
*/
#define WS_EX_DLGMODALFRAME 1 // 0x00000001L
#define WS_EX_NOPARENTNOTIFY 4 // 0x00000004L
#define WS_EX_TOPMOST 8 // 0x00000008L
#define WS_EX_ACCEPTFILES 16 // 0x00000010L
#define WS_EX_TRANSPARENT 32 // 0x00000020L
#define WS_EX_MDICHILD 64 // 0x00000040L
#define WS_EX_TOOLWINDOW 128 // 0x00000080L
#define WS_EX_WINDOWEDGE 256 // 0x00000100L
#define WS_EX_CLIENTEDGE 512 // 0x00000200L
#define WS_EX_CONTEXTHELP 1024 // 0x00000400L
#define WS_EX_RIGHT 4096 // 0x00001000L
#define WS_EX_LEFT 0 // 0x00000000L
#define WS_EX_RTLREADING 8192 // 0x00002000L
#define WS_EX_LTRREADING 0 // 0x00000000L
#define WS_EX_LEFTSCROLLBAR 16384 // 0x00004000L
#define WS_EX_RIGHTSCROLLBAR 0 // 0x00000000L
#define WS_EX_CONTROLPARENT 65536 // 0x00010000L
#define WS_EX_STATICEDGE 131072 // 0x00020000L
#define WS_EX_APPWINDOW 262144 // 0x00040000L
#define WS_EX_OVERLAPPEDWINDOW ( WS_EX_WINDOWEDGE + WS_EX_CLIENTEDGE )
#define WS_EX_PALETTEWINDOW ( WS_EX_WINDOWEDGE + WS_EX_TOOLWINDOW + WS_EX_TOPMOST )
#define WS_EX_LAYERED 524288 // 0x00080000
#define WS_EX_NOINHERITLAYOUT 1048576 // 0x00100000L // Disable inheritence of mirroring by children
#define WS_EX_LAYOUTRTL 4194304 // 0x00400000L // Right to left mirroring
#define WS_EX_NOACTIVATE 134217728 // 0x08000000L
/*-*/
#define SC_SIZE 61440 // 0xF000
#define SC_MOVE 61456 // 0xF010
#define SC_MINIMIZE 61472 // 0xF020
#define SC_MAXIMIZE 61488 // 0xF030
#define SC_NEXTWINDOW 61504 // 0xF040
#define SC_PREVWINDOW 61520 // 0xF050
#define SC_CLOSE 61536 // 0xF060
#define SC_VSCROLL 61552 // 0xF070
#define SC_HSCROLL 61568 // 0xF080
#define SC_MOUSEMENU 61584 // 0xF090
#define SC_KEYMENU 61696 // 0xF100
#define SC_ARRANGE 61712 // 0xF110
#define SC_RESTORE 61728 // 0xF120
#define SC_TASKLIST 61744 // 0xF130
#define SC_SCREENSAVE 61760 // 0xF140
#define SC_HOTKEY 61776 // 0xF150
#define SC_DEFAULT 61792 // 0xF160
#define SC_MONITORPOWER 61808 // 0xF170
#define SC_CONTEXTHELP 61824 // 0xF180
#define SC_SEPARATOR 61455 // 0xF00F
/*
* Dialog styles
*/
#define DS_ABSALIGN 1 // 0x01
#define DS_SYSMODAL 2 // 0x02
#define DS_3DLOOK 4 // 0x04
#define DS_FIXEDSYS 8 // 0x08
#define DS_NOFAILCREATE 16 // 0x10
#define DS_LOCALEDIT 32 // 0x20
#define DS_SETFONT 64 // 0x40
#define DS_MODALFRAME 128 // 0x80
#define DS_NOIDLEMSG 256 // 0x100
#define DS_CONTROL 1024 // 0x400
#define DS_CENTER 2048 // 0x800
#define DS_CENTERMOUSE 4096 // 0x1000
#define DS_CONTEXTHELP 8192 // 0x2000
/*
* Dialog Box Command IDs
*/
#define IDOK 1
#define IDCANCEL 2
#define IDABORT 3
#define IDRETRY 4
#define IDIGNORE 5
#define IDYES 6
#define IDNO 7
#define IDTRYAGAIN 10 // WINVER >= 0x0500
#define IDCONTINUE 11 // WINVER >= 0x0500
/*
* Button Control Styles
*/
#define BS_PUSHBUTTON 0 // 0x00000000L
#define BS_DEFPUSHBUTTON 1 // 0x00000001L
#define BS_CHECKBOX 2 // 0x00000002L
#define BS_AUTOCHECKBOX 3 // 0x00000003L
#define BS_RADIOBUTTON 4 // 0x00000004L
#define BS_3STATE 5 // 0x00000005L
#define BS_AUTO3STATE 6 // 0x00000006L
#define BS_GROUPBOX 7 // 0x00000007L
#define BS_USERBUTTON 8 // 0x00000008L
#define BS_AUTORADIOBUTTON 9 // 0x00000009L
#define BS_OWNERDRAW 11 // 0x0000000BL
#define BS_LEFTTEXT 32 // 0x00000020L
#define BS_TEXT 0 // 0x00000000L
#define BS_ICON 64 // 0x00000040L
#define BS_BITMAP 128 // 0x00000080L
#define BS_LEFT 256 // 0x00000100L
#define BS_RIGHT 512 // 0x00000200L
#define BS_CENTER 768 // 0x00000300L
#define BS_TOP 1024 // 0x00000400L
#define BS_BOTTOM 2048 // 0x00000800L
#define BS_VCENTER 3072 // 0x00000C00L
#define BS_PUSHLIKE 4096 // 0x00001000L
#define BS_MULTILINE 8192 // 0x00002000L
#define BS_NOTIFY 16384 // 0x00004000L
#define BS_FLAT 32768 // 0x00008000L
#define BS_RIGHTBUTTON BS_LEFTTEXT
/*
* User Button Notification Codes
*/
#define BN_CLICKED 0
#define BN_PAINT 1
#define BN_HILITE 2
#define BN_UNHILITE 3
#define BN_DISABLE 4
#define BN_DOUBLECLICKED 5
#define BN_PUSHED BN_HILITE
#define BN_UNPUSHED BN_UNHILITE
#define BN_DBLCLK BN_DOUBLECLICKED
#define BN_SETFOCUS 6
#define BN_KILLFOCUS 7
/*
* Button Control Messages
*/
#define BM_GETCHECK 240
#define BM_SETCHECK 241
#define BM_GETSTATE 242
#define BM_SETSTATE 243
#define BM_SETSTYLE 244
#define BM_CLICK 245
#define BM_GETIMAGE 246
#define BM_SETIMAGE 247
#define BST_UNCHECKED 0
#define BST_CHECKED 1
#define BST_INDETERMINATE 2
#define BST_PUSHED 4
#define BST_FOCUS 8
/*
* Edit Control Styles
*/
#define ES_LEFT 0
#define ES_CENTER 1
#define ES_RIGHT 2
#define ES_MULTILINE 4
#define ES_UPPERCASE 8
#define ES_LOWERCASE 16
#define ES_PASSWORD 32
#define ES_AUTOVSCROLL 64
#define ES_AUTOHSCROLL 128
#define ES_NOHIDESEL 256
#define ES_OEMCONVERT 1024
#define ES_READONLY 2048
#define ES_WANTRETURN 4096
#define ES_NUMBER 8192
/*
* Edit Control Notification Codes
*/
#define EN_SETFOCUS 256 // 0x0100
#define EN_KILLFOCUS 512 // 0x0200
#define EN_CHANGE 768 // 0x0300
#define EN_UPDATE 1024 // 0x0400
#define EN_ERRSPACE 1280 // 0x0500
#define EN_MAXTEXT 1281 // 0x0501
#define EN_HSCROLL 1537 // 0x0601
#define EN_VSCROLL 1538 // 0x0602
/*
* Edit Control Messages
*/
#define EM_GETSEL 176
#define EM_SETSEL 177
#define EM_GETRECT 178
#define EM_SETRECT 179
#define EM_SETRECTNP 180
#define EM_SCROLL 181
#define EM_LINESCROLL 182
#define EM_SCROLLCARET 183
#define EM_GETMODIFY 184
#define EM_SETMODIFY 185
#define EM_GETLINECOUNT 186
#define EM_LINEINDEX 187
#define EM_SETHANDLE 188
#define EM_GETHANDLE 189
#define EM_GETTHUMB 190
#define EM_LINELENGTH 193
#define EM_REPLACESEL 194
#define EM_GETLINE 196
#define EM_LIMITTEXT 197
#define EM_CANUNDO 198
#define EM_UNDO 199
#define EM_FMTLINES 200
#define EM_LINEFROMCHAR 201
#define EM_SETTABSTOPS 203
#define EM_SETPASSWORDCHAR 204
#define EM_EMPTYUNDOBUFFER 205
#define EM_GETFIRSTVISIBLELINE 206
#define EM_SETREADONLY 207
#define EM_SETWORDBREAKPROC 208
#define EM_GETWORDBREAKPROC 209
#define EM_GETPASSWORDCHAR 210
#define EM_SETMARGINS 211
#define EM_GETMARGINS 212
#define EM_SETLIMITTEXT EM_LIMITTEXT
#define EM_GETLIMITTEXT 213
#define EM_POSFROMCHAR 214
#define EM_CHARFROMPOS 215
/*
* Combo Box styles
*/
#define CBS_SIMPLE 1 // 0x0001L
#define CBS_DROPDOWN 2 // 0x0002L
#define CBS_DROPDOWNLIST 3 // 0x0003L
#define CBS_OWNERDRAWFIXED 16 // 0x0010L
#define CBS_OWNERDRAWVARIABLE 32 // 0x0020L
#define CBS_AUTOHSCROLL 64 // 0x0040L
#define CBS_OEMCONVERT 128 // 0x0080L
#define CBS_SORT 256 // 0x0100L
#define CBS_HASSTRINGS 512 // 0x0200L
#define CBS_NOINTEGRALHEIGHT 1024 // 0x0400L
#define CBS_DISABLENOSCROLL 2048 // 0x0800L
#define CBS_UPPERCASE 8192 // 0x2000L
#define CBS_LOWERCASE 16384 // 0x4000L
/*
* Combo Box Notification Codes
*/
#define CBN_ERRSPACE -1
#define CBN_SELCHANGE 1
#define CBN_DBLCLK 2
#define CBN_SETFOCUS 3
#define CBN_KILLFOCUS 4
#define CBN_EDITCHANGE 5
#define CBN_EDITUPDATE 6
#define CBN_DROPDOWN 7
#define CBN_CLOSEUP 8
#define CBN_SELENDOK 9
#define CBN_SELENDCANCEL 10
/*
* Combo Box messages
*/
#define CB_GETEDITSEL 320
#define CB_LIMITTEXT 321
#define CB_SETEDITSEL 322
#define CB_ADDSTRING 323
#define CB_DELETESTRING 324
#define CB_DIR 325
#define CB_GETCOUNT 326
#define CB_GETCURSEL 327
#define CB_GETLBTEXT 328
#define CB_GETLBTEXTLEN 329
#define CB_INSERTSTRING 330
#define CB_RESETCONTENT 331
#define CB_FINDSTRING 332
#define CB_SELECTSTRING 333
#define CB_SETCURSEL 334
#define CB_SHOWDROPDOWN 335
#define CB_GETITEMDATA 336
#define CB_SETITEMDATA 337
#define CB_GETDROPPEDCONTROLRECT 338
#define CB_SETITEMHEIGHT 339
#define CB_GETITEMHEIGHT 340
#define CB_SETEXTENDEDUI 341
#define CB_GETEXTENDEDUI 342
#define CB_GETDROPPEDSTATE 343
#define CB_FINDSTRINGEXACT 344
#define CB_SETLOCALE 345
#define CB_GETLOCALE 346
#define CB_GETTOPINDEX 347
#define CB_SETTOPINDEX 348
#define CB_GETHORIZONTALEXTENT 349
#define CB_SETHORIZONTALEXTENT 350
#define CB_GETDROPPEDWIDTH 351
#define CB_SETDROPPEDWIDTH 352
#define CB_INITSTORAGE 353
#define CB_MULTIPLEADDSTRING 0x0163
#define CB_GETCOMBOBOXINFO 0x0164
#define CB_MSGMAX 0x0165
/*
* Combo Box return Values
*/
#define CB_OKAY 0
#define CB_ERR -1
#define CB_ERRSPACE -2
/*
* Static Control Constants
*/
#define SS_LEFT 0 // 0x00000000L
#define SS_CENTER 1 // 0x00000001L
#define SS_RIGHT 2 // 0x00000002L
#define SS_ICON 3 // 0x00000003L
#define SS_BLACKRECT 4 // 0x00000004L
#define SS_GRAYRECT 5 // 0x00000005L
#define SS_WHITERECT 6 // 0x00000006L
#define SS_BLACKFRAME 7 // 0x00000007L
#define SS_GRAYFRAME 8 // 0x00000008L
#define SS_WHITEFRAME 9 // 0x00000009L
#define SS_USERITEM 10 // 0x0000000AL
#define SS_SIMPLE 11 // 0x0000000BL
#define SS_LEFTNOWORDWRAP 12 // 0x0000000CL
#define SS_OWNERDRAW 13 // 0x0000000DL
#define SS_BITMAP 14 // 0x0000000EL
#define SS_ENHMETAFILE 15 // 0x0000000FL
#define SS_ETCHEDHORZ 16 // 0x00000010L
#define SS_ETCHEDVERT 17 // 0x00000011L
#define SS_ETCHEDFRAME 18 // 0x00000012L
#define SS_TYPEMASK 31 // 0x0000001FL
#define SS_NOPREFIX 128 // Don't do "&" character translation
#define SS_NOTIFY 256 // 0x00000100L
#define SS_CENTERIMAGE 512 // 0x00000200L
#define SS_RIGHTJUST 1024 // 0x00000400L
#define SS_REALSIZEIMAGE 2048 // 0x00000800L
#define SS_SUNKEN 4096 // 0x00001000L
#define SS_ENDELLIPSIS 16384
#define SS_PATHELLIPSIS 32768
#define SS_WORDELLIPSIS 49152
#define SS_ELLIPSISMASK 49152
/*
* Static Control Mesages
*/
#define STM_SETICON 368
#define STM_GETICON 369
#define STM_SETIMAGE 370
#define STM_GETIMAGE 371
#define STN_CLICKED 0
#define STN_DBLCLK 1
#define STN_ENABLE 2
#define STN_DISABLE 3
/*
* Listbox messages
*/
#define LB_ADDSTRING 384
#define LB_INSERTSTRING 385
#define LB_DELETESTRING 386
#define LB_SELITEMRANGEEX 387
#define LB_RESETCONTENT 388
#define LB_SETSEL 389
#define LB_SETCURSEL 390
#define LB_GETSEL 391
#define LB_GETCURSEL 392
#define LB_GETTEXT 393
#define LB_GETTEXTLEN 394
#define LB_GETCOUNT 395
#define LB_SELECTSTRING 396
#define LB_DIR 397
#define LB_GETTOPINDEX 398
#define LB_FINDSTRING 399
#define LB_GETSELCOUNT 400
#define LB_GETSELITEMS 401
#define LB_SETTABSTOPS 402
#define LB_GETHORIZONTALEXTENT 403
#define LB_SETHORIZONTALEXTENT 404
#define LB_SETCOLUMNWIDTH 405
#define LB_ADDFILE 406
#define LB_SETTOPINDEX 407
#define LB_GETITEMRECT 408
#define LB_GETITEMDATA 409
#define LB_SETITEMDATA 410
#define LB_SELITEMRANGE 411
#define LB_SETANCHORINDEX 412
#define LB_GETANCHORINDEX 413
#define LB_SETCARETINDEX 414
#define LB_GETCARETINDEX 415
#define LB_SETITEMHEIGHT 416
#define LB_GETITEMHEIGHT 417
#define LB_FINDSTRINGEXACT 418
#define LB_SETLOCALE 421
#define LB_GETLOCALE 422
#define LB_SETCOUNT 423
#define LB_INITSTORAGE 424
#define LB_ITEMFROMPOINT 425
/*
* Listbox Styles
*/
#define LBS_NOTIFY 1
#define LBS_SORT 2
#define LBS_NOREDRAW 4
#define LBS_MULTIPLESEL 8
#define LBS_OWNERDRAWFIXED 16
#define LBS_OWNERDRAWVARIABLE 32
#define LBS_HASSTRINGS 64
#define LBS_USETABSTOPS 128
#define LBS_NOINTEGRALHEIGHT 256
#define LBS_MULTICOLUMN 512
#define LBS_WANTKEYBOARDINPUT 1024
#define LBS_EXTENDEDSEL 2048
#define LBS_DISABLENOSCROLL 4096
#define LBS_NODATA 8192
#define LBS_NOSEL 16384
#define LBS_STANDARD ( LBS_NOTIFY + LBS_SORT + WS_VSCROLL + WS_BORDER )
/*
* Listbox Notification Codes
*/
#define LBN_ERRSPACE -2
#define LBN_SELCHANGE 1
#define LBN_DBLCLK 2
#define LBN_SELCANCEL 3
#define LBN_SETFOCUS 4
#define LBN_KILLFOCUS 5
/*
* MessageBox() Flags
*/
#define MB_OK 0
#define MB_OKCANCEL 1
#define MB_ABORTRETRYIGNORE 2
#define MB_YESNOCANCEL 3
#define MB_YESNO 4
#define MB_RETRYCANCEL 5
#define MB_CANCELTRYCONTINUE 6
#define MB_ICONHAND 16
#define MB_ICONQUESTION 32
#define MB_ICONEXCLAMATION 48
#define MB_ICONASTERISK 64
#define MB_USERICON 128
#define MB_ICONWARNING MB_ICONEXCLAMATION
#define MB_ICONERROR MB_ICONHAND
#define MB_ICONINFORMATION MB_ICONASTERISK
#define MB_ICONSTOP MB_ICONHAND
#define MB_DEFBUTTON1 0
#define MB_DEFBUTTON2 256
#define MB_DEFBUTTON3 512
#define MB_DEFBUTTON4 768
#define MB_APPLMODAL 0
#define MB_SYSTEMMODAL 4096
#define MB_TASKMODAL 8192
#define MB_HELP 16384 // Help Button
#define MB_NOFOCUS 32768
#define MB_SETFOREGROUND 65536
#define MB_DEFAULT_DESKTOP_ONLY 131072
#define MB_TOPMOST 262144
#define MB_RIGHT 524288
#define MB_RTLREADING 1048576
#define MB_TYPEMASK 15
#define MB_ICONMASK 240
#define MB_DEFMASK 3840
#define MB_MODEMASK 12288
#define MB_MISCMASK 49152
/*
* Stock Logical Objects
*/
#define WHITE_BRUSH 0
#define LTGRAY_BRUSH 1
#define GRAY_BRUSH 2
#define DKGRAY_BRUSH 3
#define BLACK_BRUSH 4
#define NULL_BRUSH 5
#define HOLLOW_BRUSH NULL_BRUSH
#define WHITE_PEN 6
#define BLACK_PEN 7
#define NULL_PEN 8
#define OEM_FIXED_FONT 10
#define ANSI_FIXED_FONT 11
#define ANSI_VAR_FONT 12
#define SYSTEM_FONT 13
#define DEVICE_DEFAULT_FONT 14
#define DEFAULT_PALETTE 15
#define SYSTEM_FIXED_FONT 16
#define DEFAULT_GUI_FONT 17
/*
* WM_SETICON / WM_GETICON Type Codes
*/
#define ICON_SMALL 0
#define ICON_BIG 1
/*-*/
#define IMAGE_BITMAP 0
#define IMAGE_ICON 1
#define IMAGE_CURSOR 2
#define IMAGE_ENHMETAFILE 3
/*
* DrawText() Format Flags
*/
#define DT_TOP 0
#define DT_LEFT 0
#define DT_CENTER 1
#define DT_RIGHT 2
#define DT_VCENTER 4
#define DT_BOTTOM 8
#define DT_WORDBREAK 16
#define DT_SINGLELINE 32
#define DT_EXPANDTABS 64
#define DT_TABSTOP 128
#define DT_NOCLIP 256
#define DT_EXTERNALLEADING 512
#define DT_CALCRECT 1024
#define DT_NOPREFIX 2048
#define DT_INTERNAL 4096
#define DT_EDITCONTROL 8192
#define DT_PATH_ELLIPSIS 16384
#define DT_END_ELLIPSIS 32768
#define DT_MODIFYSTRING 65536
#define DT_RTLREADING 131072
#define DT_WORD_ELLIPSIS 262144
#define DT_NOFULLWIDTHCHARBREAK 524288
#define DT_HIDEPREFIX 1048576
#define DT_PREFIXONLY 2097152
/*
* Brush Styles
*/
#define BS_SOLID 0
#define BS_NULL 1
#define BS_HOLLOW BS_NULL
#define BS_HATCHED 2
#define BS_PATTERN 3
#define BS_INDEXED 4
#define BS_DIBPATTERN 5
#define BS_DIBPATTERNPT 6
#define BS_PATTERN8X8 7
#define BS_DIBPATTERN8X8 8
#define BS_MONOPATTERN 9
// Hatch Styles
#define HS_HORIZONTAL 0 // -----
#define HS_VERTICAL 1 // |||||
#define HS_FDIAGONAL 2 // \\\\\
#define HS_BDIAGONAL 3 // /////
#define HS_CROSS 4 // +++++
#define HS_DIAGCROSS 5 // xxxxx
// Pen Styles
#define PS_SOLID 0
#define PS_DASH 1 // -------
#define PS_DOT 2 // .......
#define PS_DASHDOT 3 // _._._._
#define PS_DASHDOTDOT 4 // _.._.._
#define PS_NULL 5
#define PS_INSIDEFRAME 6
#define PS_USERSTYLE 7
#define PS_ALTERNATE 8
#define PS_STYLE_MASK 15
#define PS_ENDCAP_ROUND 0
#define PS_ENDCAP_SQUARE 256
#define PS_ENDCAP_FLAT 512
#define PS_ENDCAP_MASK 3840
#define PS_JOIN_ROUND 0
#define PS_JOIN_BEVEL 4096
#define PS_JOIN_MITER 8192
#define PS_JOIN_MASK 61440
#define PS_COSMETIC 0
#define PS_GEOMETRIC 65536
#define PS_TYPE_MASK 983040
// font weight values
#define FW_DONTCARE 0
#define FW_THIN 100
#define FW_EXTRALIGHT 200
#define FW_ULTRALIGHT 200
#define FW_LIGHT 300
#define FW_NORMAL 400
#define FW_REGULAR 400
#define FW_MEDIUM 500
#define FW_SEMIBOLD 600
#define FW_DEMIBOLD 600
#define FW_BOLD 700
#define FW_EXTRABOLD 800
#define FW_ULTRABOLD 800
#define FW_HEAVY 900
#define FW_BLACK 900
// font quality values
#define DEFAULT_QUALITY 0
#define DRAFT_QUALITY 1
#define PROOF_QUALITY 2
#define NONANTIALIASED_QUALITY 3 // (WINVER >= 0x0400)
#define ANTIALIASED_QUALITY 4 // (WINVER >= 0x0400)
#define ANSI_CHARSET 0
#define DEFAULT_CHARSET 1
#define SYMBOL_CHARSET 2
#define SHIFTJIS_CHARSET 128
#define HANGEUL_CHARSET 129
#define HANGUL_CHARSET 129
#define GB2312_CHARSET 134
#define CHINESEBIG5_CHARSET 136
#define OEM_CHARSET 255
#define JOHAB_CHARSET 130
#define HEBREW_CHARSET 177
#define ARABIC_CHARSET 178
#define GREEK_CHARSET 161
#define TURKISH_CHARSET 162
#define VIETNAMESE_CHARSET 163
#define THAI_CHARSET 222
#define EASTEUROPE_CHARSET 238
#define RUSSIAN_CHARSET 204
#define MAC_CHARSET 77
#define BALTIC_CHARSET 186
#define BOLD_FONTTYPE 256 // 0x0100
#define ITALIC_FONTTYPE 512 // 0x0200
#define REGULAR_FONTTYPE 1024 // 0x0400
#define SCREEN_FONTTYPE 8192 // 0x2000
#define PRINTER_FONTTYPE 16384 // 0x4000
#define SIMULATED_FONTTYPE 32768 // 0x8000
// flags (CHOOSECOLOR structure)
#define CC_RGBINIT 1 // 0x00000001
#define CC_FULLOPEN 2 // 0x00000002
#define CC_PREVENTFULLOPEN 4 // 0x00000004
#define CC_SHOWHELP 8 // 0x00000008
#define CC_ENABLEHOOK 16 // 0x00000010
#define CC_ENABLETEMPLATE 32 // 0x00000020
#define CC_ENABLETEMPLATEHANDLE 64 // 0x00000040
#define CC_SOLIDCOLOR 128 // 0x00000080 // WINVER >= 0x0400
#define CC_ANYCOLOR 256 // 0x00000100 // WINVER >= 0x0400
/*
* Window field offsets for GetWindowLong()
*/
#define GWL_WNDPROC -4
#define GWL_HINSTANCE -6
#define GWL_HWNDPARENT -8
#define GWL_STYLE -16
#define GWL_EXSTYLE -20
#define GWL_USERDATA -21
#define GWL_ID -12
#define DWL_MSGRESULT 0
#define DWL_DLGPROC 4
#define DWL_USER 8
/*
* Virtual Key Codes
*/
#define VK_LBUTTON 1
#define VK_RBUTTON 2
#define VK_CANCEL 3
#define VK_MBUTTON 4
#define VK_BACK 8
#define VK_TAB 9
#define VK_CLEAR 12
#define VK_RETURN 13
#define VK_SHIFT 16
#define VK_CONTROL 17
#define VK_MENU 18
#define VK_PAUSE 19
#define VK_CAPITAL 20
#define VK_ESCAPE 27
#define VK_SPACE 32
#define VK_PRIOR 33
#define VK_NEXT 34
#define VK_END 35
#define VK_HOME 36
#define VK_LEFT 37
#define VK_UP 38
#define VK_RIGHT 39
#define VK_DOWN 40
#define VK_SELECT 41
#define VK_PRINT 42
#define VK_EXECUTE 43
#define VK_SNAPSHOT 44
#define VK_INSERT 45
#define VK_DELETE 46
#define VK_HELP 47
#define VK_NUMPAD0 96
#define VK_NUMPAD1 97
#define VK_NUMPAD2 98
#define VK_NUMPAD3 99
#define VK_NUMPAD4 100
#define VK_NUMPAD5 101
#define VK_NUMPAD6 102
#define VK_NUMPAD7 103
#define VK_NUMPAD8 104
#define VK_NUMPAD9 105
#define VK_MULTIPLY 106
#define VK_ADD 107
#define VK_SEPARATOR 108
#define VK_SUBTRACT 109
#define VK_DECIMAL 110
#define VK_DIVIDE 111
#define VK_F1 112
#define VK_F2 113
#define VK_F3 114
#define VK_F4 115
#define VK_F5 116
#define VK_F6 117
#define VK_F7 118
#define VK_F8 119
#define VK_F9 120
#define VK_F10 121
#define VK_F11 122
#define VK_F12 123
#define VK_F13 124
#define VK_F14 125
#define VK_F15 126
#define VK_F16 127
#define VK_F17 128
#define VK_F18 129
#define VK_F19 130
#define VK_F20 131
#define VK_F21 132
#define VK_F22 133
#define VK_F23 134
#define VK_F24 135
#define VK_NUMLOCK 144
#define VK_SCROLL 145
/*
* File Open/Save Dialog Constants
*/
#define OFN_READONLY 1
#define OFN_OVERWRITEPROMPT 2
#define OFN_HIDEREADONLY 4
#define OFN_NOCHANGEDIR 8
#define OFN_SHOWHELP 16
#define OFN_ENABLEHOOK 32
#define OFN_ENABLETEMPLATE 64
#define OFN_ENABLETEMPLATEHANDLE 128
#define OFN_NOVALIDATE 256
#define OFN_ALLOWMULTISELECT 512
#define OFN_EXTENSIONDIFFERENT 1024
#define OFN_PATHMUSTEXIST 2048
#define OFN_FILEMUSTEXIST 4096
#define OFN_CREATEPROMPT 8192
#define OFN_SHAREAWARE 16384
#define OFN_NOREADONLYRETURN 32768
#define OFN_NOTESTFILECREATE 65536
#define OFN_NONETWORKBUTTON 131072
#define OFN_NOLONGNAMES 262144 // force no long names for 4.x modules
#define OFN_EXPLORER 524288 // new look commdlg
#define OFN_NODEREFERENCELINKS 1048576
#define OFN_LONGNAMES 2097152 // force long names for 3.x modules
#define OFN_ENABLEINCLUDENOTIFY 4194304 // send include message to callback
#define OFN_ENABLESIZING 8388608
#define OFN_DONTADDTORECENT 33554432
#define OFN_FORCESHOWHIDDEN 268435456 // Show All files including System and hidden files
/* Common Control Constants */
#define CCS_TOP 1
#define CCS_NOMOVEY 2
#define CCS_BOTTOM 3
#define CCS_NORESIZE 4
#define CCS_NOPARENTALIGN 8
#define CCS_ADJUSTABLE 32
#define CCS_NODIVIDER 64
#define CCS_VERT 128
#define CCS_LEFT ( CCS_VERT + CCS_TOP )
#define CCS_RIGHT ( CCS_VERT + CCS_BOTTOM )
#define CCS_NOMOVEX ( CCS_VERT + CCS_NOMOVEY )
#define TOOLBARCLASSNAME "ToolbarWindow32"
#define STATUSCLASSNAME "msctls_statusbar32"
/* Toolbar messages */
#define TB_ADDBITMAP ( WM_USER + 19 )
#define TB_SAVERESTOREA ( WM_USER + 26 )
#define TB_SAVERESTOREW ( WM_USER + 76 )
#define TB_CUSTOMIZE ( WM_USER + 27 )
#define TB_ADDSTRINGA ( WM_USER + 28 )
#define TB_ADDSTRINGW ( WM_USER + 77 )
#define TB_GETITEMRECT ( WM_USER + 29 )
#define TB_BUTTONSTRUCTSIZE ( WM_USER + 30 )
#define TB_SETBUTTONSIZE ( WM_USER + 31 )
#define TB_SETBITMAPSIZE ( WM_USER + 32 )
#define TB_AUTOSIZE ( WM_USER + 33 )
#define TB_GETTOOLTIPS ( WM_USER + 35 )
#define TB_SETTOOLTIPS ( WM_USER + 36 )
#define TB_SETPARENT ( WM_USER + 37 )
#define TB_SETROWS ( WM_USER + 39 )
#define TB_GETROWS ( WM_USER + 40 )
#define TB_GETBITMAPFLAGS ( WM_USER + 41 )
#define TB_SETCMDID ( WM_USER + 42 )
#define TB_CHANGEBITMAP ( WM_USER + 43 )
#define TB_GETBITMAP ( WM_USER + 44 )
#define TB_GETBUTTONTEXTA ( WM_USER + 45 )
#define TB_GETBUTTONTEXTW ( WM_USER + 75 )
#define TB_REPLACEBITMAP ( WM_USER + 46 )
#define TB_SETINDENT ( WM_USER + 47 )
#define TB_SETIMAGELIST ( WM_USER + 48 )
#define TB_GETIMAGELIST ( WM_USER + 49 )
#define TB_LOADIMAGES ( WM_USER + 50 )
#define TB_GETRECT ( WM_USER + 51 ) // wParam is the Cmd instead of index
#define TB_SETHOTIMAGELIST ( WM_USER + 52 )
#define TB_GETHOTIMAGELIST ( WM_USER + 53 )
#define TB_SETDISABLEDIMAGELIST ( WM_USER + 54 )
#define TB_GETDISABLEDIMAGELIST ( WM_USER + 55 )
#define TB_SETSTYLE ( WM_USER + 56 )
#define TB_GETSTYLE ( WM_USER + 57 )
#define TB_GETBUTTONSIZE ( WM_USER + 58 )
#define TB_SETBUTTONWIDTH ( WM_USER + 59 )
#define TB_SETMAXTEXTROWS ( WM_USER + 60 )
#define TB_GETTEXTROWS ( WM_USER + 61 )
#define TB_GETBUTTONTEXT TB_GETBUTTONTEXTW
#define TB_SAVERESTORE TB_SAVERESTOREW
#define TB_ADDSTRING TB_ADDSTRINGW
#define TB_GETOBJECT ( WM_USER + 62 ) // wParam == IID, lParam void **ppv
#define TB_GETHOTITEM ( WM_USER + 71 )
#define TB_SETHOTITEM ( WM_USER + 72 ) // wParam == iHotItem
#define TB_SETANCHORHIGHLIGHT ( WM_USER + 73 ) // wParam == TRUE/FALSE
#define TB_GETANCHORHIGHLIGHT ( WM_USER + 74 )
#define TB_MAPACCELERATORA ( WM_USER + 78 ) // wParam == ch, lParam int * pidBtn
#define TB_GETINSERTMARK ( WM_USER + 79 ) // lParam == LPTBINSERTMARK
#define TB_SETINSERTMARK ( WM_USER + 80 ) // lParam == LPTBINSERTMARK
#define TB_INSERTMARKHITTEST ( WM_USER + 81 ) // wParam == LPPOINT lParam == LPTBINSERTMARK
#define TB_MOVEBUTTON ( WM_USER + 82 )
#define TB_GETMAXSIZE ( WM_USER + 83 ) // lParam == LPSIZE
#define TB_SETEXTENDEDSTYLE ( WM_USER + 84 ) // For TBSTYLE_EX_*
#define TB_GETEXTENDEDSTYLE ( WM_USER + 85 ) // For TBSTYLE_EX_*
#define TB_GETPADDING ( WM_USER + 86 )
#define TB_SETPADDING ( WM_USER + 87 )
#define TB_SETINSERTMARKCOLOR ( WM_USER + 88 )
#define TB_GETINSERTMARKCOLOR ( WM_USER + 89 )
#define TB_SETCOLORSCHEME CCM_SETCOLORSCHEME // lParam is color scheme
#define TB_GETCOLORSCHEME CCM_GETCOLORSCHEME // fills in COLORSCHEME pointed to by lParam
#define TB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define TB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define TB_MAPACCELERATORW ( WM_USER + 90 ) // wParam == ch, lParam int * pidBtn
#define TB_MAPACCELERATOR TB_MAPACCELERATORW
#define TBIMHT_AFTER 1 // TRUE = insert After iButton, otherwise before
#define TBIMHT_BACKGROUND 2 // TRUE iff missed buttons completely
#define TBBF_LARGE 1
#define TBIF_IMAGE 1
#define TBIF_TEXT 2
#define TBIF_STATE 4
#define TBIF_STYLE 8
#define TBIF_LPARAM 16
#define TBIF_COMMAND 32
#define TBIF_SIZE 64
#define TBIF_BYINDEX 2147483648 // this specifies that the wparam in Get/SetButtonInfo is an index, not id
#define TBBUTTONINFO TBBUTTONINFOW
#define LPTBBUTTONINFO LPTBBUTTONINFOW
#define TB_GETBUTTONINFOW ( WM_USER + 63 )
#define TB_SETBUTTONINFOW ( WM_USER + 64 )
#define TB_GETBUTTONINFOA ( WM_USER + 65 )
#define TB_SETBUTTONINFOA ( WM_USER + 66 )
#define TB_GETBUTTONINFO TB_GETBUTTONINFOW
#define TB_SETBUTTONINFO TB_SETBUTTONINFOW
#define TB_INSERTBUTTONW ( WM_USER + 67 )
#define TB_ADDBUTTONSW ( WM_USER + 68 )
#define TB_ADDBUTTONSA ( WM_USER + 20 )
#define TB_HITTEST ( WM_USER + 69 )
#define TB_INSERTBUTTON TB_INSERTBUTTONW
#define TB_ADDBUTTONS TB_ADDBUTTONSW
#define TB_SETDRAWTEXTFLAGS ( WM_USER + 70 )
#define TB_GETSTRING ( WM_USER + 92 )
#define TBN_FIRST -700
#define TBN_GETBUTTONINFOA ( TBN_FIRST - 0 )
#define TBN_BEGINDRAG ( TBN_FIRST - 1 )
#define TBN_ENDDRAG ( TBN_FIRST - 2 )
#define TBN_BEGINADJUST ( TBN_FIRST - 3 )
#define TBN_ENDADJUST ( TBN_FIRST - 4 )
#define TBN_RESET ( TBN_FIRST - 5 )
#define TBN_QUERYINSERT ( TBN_FIRST - 6 )
#define TBN_QUERYDELETE ( TBN_FIRST - 7 )
#define TBN_TOOLBARCHANGE ( TBN_FIRST - 8 )
#define TBN_CUSTHELP ( TBN_FIRST - 9 )
#define TBN_DROPDOWN ( TBN_FIRST - 10 )
#define TBN_GETOBJECT ( TBN_FIRST - 12 )
#define TBN_HOTITEMCHANGE ( TBN_FIRST - 13 )
#define TBN_DRAGOUT ( TBN_FIRST - 14 )
#define TBN_DELETINGBUTTON ( TBN_FIRST - 15 )
#define TBN_GETDISPINFOA ( TBN_FIRST - 16 )
#define TBN_GETDISPINFOW ( TBN_FIRST - 17 )
#define TBN_GETINFOTIPA ( TBN_FIRST - 18 )
#define TBN_GETINFOTIPW ( TBN_FIRST - 19 )
#define TBN_GETBUTTONINFOW ( TBN_FIRST - 20 )
#define TBN_RESTORE ( TBN_FIRST - 21 )
#define TBN_SAVE ( TBN_FIRST - 22 )
#define TBN_INITCUSTOMIZE ( TBN_FIRST - 23 )
/* Toolbar Control Constants */
#define TBSTATE_CHECKED 1
#define TBSTATE_PRESSED 2
#define TBSTATE_ENABLED 4
#define TBSTATE_HIDDEN 8
#define TBSTATE_INDETERMINATE 16
#define TBSTATE_WRAP 32
#define TBSTATE_ELLIPSES 64
#define TBSTATE_MARKED 128
#define TBSTYLE_BUTTON 0
#define TBSTYLE_SEP 1
#define TBSTYLE_CHECK 2
#define TBSTYLE_GROUP 4
#define TBSTYLE_CHECKGROUP ( TBSTYLE_GROUP + TBSTYLE_CHECK )
#define TBSTYLE_DROPDOWN 8
#define TBSTYLE_AUTOSIZE 16
#define TBSTYLE_NOPREFIX 32
#define TBSTYLE_TOOLTIPS 256
#define TBSTYLE_WRAPABLE 512
#define TBSTYLE_ALTDRAG 1024
#define TBSTYLE_FLAT 2048
#define TBSTYLE_LIST 4096
#define TBSTYLE_CUSTOMERASE 8192
#define TBSTYLE_REGISTERDROP 16384
#define TBSTYLE_TRANSPARENT 32768
#define BTNS_BUTTON TBSTYLE_BUTTON
#define BTNS_SEP TBSTYLE_SEP
#define BTNS_CHECK TBSTYLE_CHECK
#define BTNS_GROUP TBSTYLE_GROUP
#define BTNS_CHECKGROUP TBSTYLE_CHECKGROUP
#define BTNS_DROPDOWN TBSTYLE_DROPDOWN
#define BTNS_AUTOSIZE TBSTYLE_AUTOSIZE
#define BTNS_NOPREFIX TBSTYLE_NOPREFIX
#define BTNS_SHOWTEXT 64 // ignored unless TBSTYLE_EX_MIXEDBUTTONS is set
#define BTNS_WHOLEDROPDOWN 128 // draw drop-down arrow, but without split arrow section
#define TBSTYLE_EX_DRAWDDARROWS 1
#define TBSTYLE_EX_MIXEDBUTTONS 8
#define TBSTYLE_EX_HIDECLIPPEDBUTTONS 16 // don't show partially obscured buttons
#define TBSTYLE_EX_DOUBLEBUFFER 0x00000080
#define NM_FIRST ( 0 - 0 ) // generic to all controls
#define NM_LAST ( 0 - 99 )
#define NM_OUTOFMEMORY ( NM_FIRST - 1 )
#define NM_CLICK ( NM_FIRST - 2 ) // uses NMCLICK struct
#define NM_DBLCLK ( NM_FIRST - 3 )
#define NM_RETURN ( NM_FIRST - 4 )
#define NM_RCLICK ( NM_FIRST - 5 ) // uses NMCLICK struct
#define NM_RDBLCLK ( NM_FIRST - 6 )
#define NM_SETFOCUS ( NM_FIRST - 7 )
#define NM_KILLFOCUS ( NM_FIRST - 8 )
#define NM_CUSTOMDRAW ( NM_FIRST - 12 )
#define NM_HOVER ( NM_FIRST - 13 )
#define NM_NCHITTEST ( NM_FIRST - 14 ) // uses NMMOUSE struct
#define NM_KEYDOWN ( NM_FIRST - 15 ) // uses NMKEY struct
#define NM_RELEASEDCAPTURE ( NM_FIRST - 16 )
#define NM_SETCURSOR ( NM_FIRST - 17 ) // uses NMMOUSE struct
#define NM_CHAR ( NM_FIRST - 18 ) // uses NMCHAR struct
#define NM_TOOLTIPSCREATED ( NM_FIRST - 19 ) // notify of when the tooltips window is create
#define NM_LDOWN ( NM_FIRST - 20 )
#define NM_RDOWN ( NM_FIRST - 21 )
#define SBARS_SIZEGRIP 256
#define SBARS_TOOLTIPS 2048
/*-*/
#define WM_CHOOSEFONT_GETLOGFONT ( WM_USER + 1 )
#define WM_CHOOSEFONT_SETLOGFONT ( WM_USER + 101 )
#define WM_CHOOSEFONT_SETFLAGS ( WM_USER + 102 )
//
// SCROLLBARS
//
#define SB_HORZ 0
#define SB_VERT 1
#define SB_CTL 2
#define SB_BOTH 3
#define SB_LINELEFT 0
#define SB_LINERIGHT 1
#define SB_PAGELEFT 2
#define SB_PAGERIGHT 3
#define SB_LEFT 6
#define SB_RIGHT 7
//
#define SB_LINEUP 0
#define SB_LINEDOWN 1
#define SB_PAGEUP 2
#define SB_PAGEDOWN 3
#define SB_TOP 6
#define SB_BOTTOM 7
//
#define SB_THUMBPOSITION 4
#define SB_THUMBTRACK 5
#define SB_ENDSCROLL 8
#define SBS_BOTTOMALIGN 4
#define SBS_HORZ 0
#define SBS_LEFTALIGN 2
#define SBS_RIGHTALIGN 4
#define SBS_SIZEBOX 8
#define SBS_SIZEBOXBOTTOMRIGHTALIGN 4
#define SBS_SIZEBOXTOPLEFTALIGN 2
#define SBS_SIZEGRIP 16
#define SBS_TOPALIGN 2
#define SBS_VERT 1
#define SB_SETTEXTA ( WM_USER + 1 )
#define SB_SETTEXTW ( WM_USER + 11 )
#define SB_GETTEXTA ( WM_USER + 2 )
#define SB_GETTEXTW ( WM_USER + 13 )
#define SB_GETTEXTLENGTHA ( WM_USER + 3 )
#define SB_GETTEXTLENGTHW ( WM_USER + 12 )
#define SB_GETTEXT SB_GETTEXTW
#define SB_SETTEXT SB_SETTEXTW
#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHW
#define SB_SETTIPTEXT SB_SETTIPTEXTW
#define SB_GETTIPTEXT SB_GETTIPTEXTW
#define SB_SETPARTS ( WM_USER + 4 )
#define SB_GETPARTS ( WM_USER + 6 )
#define SB_GETBORDERS ( WM_USER + 7 )
#define SB_SETMINHEIGHT ( WM_USER + 8 )
#define SB_SIMPLE ( WM_USER + 9 )
#define SB_GETRECT ( WM_USER + 10 )
#define SB_ISSIMPLE ( WM_USER + 14 )
#define SB_SETICON ( WM_USER + 15 )
#define SB_SETTIPTEXTA ( WM_USER + 16 )
#define SB_SETTIPTEXTW ( WM_USER + 17 )
#define SB_GETTIPTEXTA ( WM_USER + 18 )
#define SB_GETTIPTEXTW ( WM_USER + 19 )
#define SB_GETICON ( WM_USER + 20 )
#define SB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define SB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define SBT_OWNERDRAW 0x1000
#define SBT_NOBORDERS 0x0100
#define SBT_POPOUT 0x0200
#define SBT_RTLREADING 0x0400
#define SBT_NOTABPARSING 0x0800
#define SB_SETBKCOLOR CCM_SETBKCOLOR // lParam = bkColor
#define SBN_SIMPLEMODECHANGE ( SBN_FIRST - 0 )
#define SB_SIMPLEID 0x00ff
/*-*/
#define ILC_COLOR 0
#define ILC_COLOR4 4
#define ILC_COLOR8 8
#define ILC_COLOR16 16
#define ILC_COLOR24 24
#define ILC_COLOR32 32
#define ILC_COLORDDB 254
#define ILC_MASK 1
#define ILC_PALETTE 2048
//
// Tab Pages
//
#define TCS_SCROLLOPPOSITE 0x0001 // assumes multiline tab
#define TCS_BOTTOM 0x0002
#define TCS_RIGHT 0x0002
#define TCS_MULTISELECT 0x0004 // allow multi-select in button mode
#define TCS_FLATBUTTONS 0x0008
#define TCS_FORCEICONLEFT 0x0010
#define TCS_FORCELABELLEFT 0x0020
#define TCS_HOTTRACK 0x0040
#define TCS_VERTICAL 0x0080
#define TCS_TABS 0x0000
#define TCS_BUTTONS 0x0100
#define TCS_SINGLELINE 0x0000
#define TCS_MULTILINE 0x0200
#define TCS_RIGHTJUSTIFY 0x0000
#define TCS_FIXEDWIDTH 0x0400
#define TCS_RAGGEDRIGHT 0x0800
#define TCS_FOCUSONBUTTONDOWN 0x1000
#define TCS_OWNERDRAWFIXED 0x2000
#define TCS_TOOLTIPS 0x4000
#define TCS_FOCUSNEVER 0x8000
//
// Tree View Constants
//
#define WC_TREEVIEWA "SysTreeView32"
#define WC_TREEVIEWW L"SysTreeView32"
#define WC_TREEVIEW WC_TREEVIEWW
#define TVS_HASBUTTONS 1
#define TVS_HASLINES 2
#define TVS_LINESATROOT 4
#define TVS_EDITLABELS 8
#define TVS_DISABLEDRAGDROP 16
#define TVS_SHOWSELALWAYS 32
#define TVS_RTLREADING 64
#define TVS_NOTOOLTIPS 128
#define TVS_CHECKBOXES 256
#define TVS_TRACKSELECT 512
#define TVS_SINGLEEXPAND 1024
#define TVS_INFOTIP 2048
#define TVS_FULLROWSELECT 4096
#define TVS_NOSCROLL 8192
#define TVS_NONEVENHEIGHT 16384
#define TVS_NOHSCROLL 32768 // TVS_NOSCROLL overrides this
#define TVIF_TEXT 1
#define TVIF_IMAGE 2
#define TVIF_PARAM 4
#define TVIF_STATE 8
#define TVIF_HANDLE 16
#define TVIF_SELECTEDIMAGE 32
#define TVIF_CHILDREN 64
#define TVIF_INTEGRAL 128
#define TVIS_SELECTED 2
#define TVIS_CUT 4
#define TVIS_DROPHILITED 8
#define TVIS_BOLD 16
#define TVIS_EXPANDED 32
#define TVIS_EXPANDEDONCE 64
#define TVIS_EXPANDPARTIAL 128
#define TVIS_OVERLAYMASK 3840
#define TVIS_STATEIMAGEMASK 61440
#define TVIS_USERMASK 61440
#define I_CHILDRENCALLBACK -1
#define LPTV_ITEMW LPTVITEMW
#define LPTV_ITEMA LPTVITEMA
#define TV_ITEMW TVITEMW
#define TV_ITEMA TVITEMA
#define LPTV_ITEM LPTVITEM
#define TV_ITEM TVITEM
#define TVITEM TVITEMW
#define LPTVITEM LPTVITEMW
#define TVI_ROOT -0x10000
#define TVI_FIRST -0x0FFFF
#define TVI_LAST -0x0FFFE
#define TVI_SORT -0x0FFFD
#define LPTV_INSERTSTRUCTA LPTVINSERTSTRUCTA
#define LPTV_INSERTSTRUCTW LPTVINSERTSTRUCTW
#define TV_INSERTSTRUCTA TVINSERTSTRUCTA
#define TV_INSERTSTRUCTW TVINSERTSTRUCTW
#define TV_INSERTSTRUCT TVINSERTSTRUCT
#define LPTV_INSERTSTRUCT LPTVINSERTSTRUCT
#define TVM_INSERTITEMA ( TV_FIRST + 0 )
#define TVM_INSERTITEMW ( TV_FIRST + 50 )
#define TVM_INSERTITEM TVM_INSERTITEMW
#define TVM_DELETEITEM ( TV_FIRST + 1 )
#define TVM_EXPAND ( TV_FIRST + 2 )
#define TVE_COLLAPSE 1
#define TVE_EXPAND 2
#define TVE_TOGGLE 3
#define TVE_EXPANDPARTIAL 16384
#define TVE_COLLAPSERESET 32768
#define TVM_GETITEMRECT ( TV_FIRST + 4 )
#define TVM_GETCOUNT ( TV_FIRST + 5 )
#define TVM_GETINDENT ( TV_FIRST + 6 )
#define TVM_SETINDENT ( TV_FIRST + 7 )
#define TVM_GETIMAGELIST ( TV_FIRST + 8 )
#define TVSIL_NORMAL 0
#define TVSIL_STATE 2
#define TVM_SETIMAGELIST ( TV_FIRST + 9 )
#define TVM_GETNEXTITEM ( TV_FIRST + 10 )
#define TVGN_ROOT 0
#define TVGN_NEXT 1
#define TVGN_PREVIOUS 2
#define TVGN_PARENT 3
#define TVGN_CHILD 4
#define TVGN_FIRSTVISIBLE 5
#define TVGN_NEXTVISIBLE 6
#define TVGN_PREVIOUSVISIBLE 7
#define TVGN_DROPHILITE 8
#define TVGN_CARET 9
#define TVGN_LASTVISIBLE 10
#define TVM_SELECTITEM ( TV_FIRST + 11 )
#define TVM_GETITEMA ( TV_FIRST + 12 )
#define TVM_GETITEMW ( TV_FIRST + 62 )
#define TVM_GETITEM TVM_GETITEMW
#define TVM_SETITEMA ( TV_FIRST + 13 )
#define TVM_SETITEMW ( TV_FIRST + 63 )
#define TVM_SETITEM TVM_SETITEMW
#define TVM_EDITLABELA ( TV_FIRST + 14 )
#define TVM_EDITLABELW ( TV_FIRST + 65 )
#define TVM_EDITLABEL TVM_EDITLABELW
#define TVM_GETEDITCONTROL ( TV_FIRST + 15 )
#define TVM_GETVISIBLECOUNT ( TV_FIRST + 16 )
#define TVM_HITTEST ( TV_FIRST + 17 )
#define LPTV_HITTESTINFO LPTVHITTESTINFO
#define TV_HITTESTINFO TVHITTESTINFO
#define TVHT_NOWHERE 1
#define TVHT_ONITEMICON 2
#define TVHT_ONITEMLABEL 4
#define TVHT_ONITEM ( TVHT_ONITEMICON + TVHT_ONITEMLABEL + TVHT_ONITEMSTATEICON )
#define TVHT_ONITEMINDENT 8
#define TVHT_ONITEMBUTTON 16
#define TVHT_ONITEMRIGHT 32
#define TVHT_ONITEMSTATEICON 64
#define TVHT_ABOVE 256
#define TVHT_BELOW 512
#define TVHT_TORIGHT 1024
#define TVHT_TOLEFT 2048
#define TVM_CREATEDRAGIMAGE ( TV_FIRST + 18 )
#define TVM_SORTCHILDREN ( TV_FIRST + 19 )
#define TVM_ENSUREVISIBLE ( TV_FIRST + 20 )
#define TVM_SORTCHILDRENCB ( TV_FIRST + 21 )
#define TVM_ENDEDITLABELNOW ( TV_FIRST + 22 )
#define TVM_GETISEARCHSTRINGA ( TV_FIRST + 23 )
#define TVM_GETISEARCHSTRINGW ( TV_FIRST + 64 )
#define TVM_GETISEARCHSTRING TVM_GETISEARCHSTRINGW
#define TVM_SETTOOLTIPS ( TV_FIRST + 24 )
#define TVM_GETTOOLTIPS ( TV_FIRST + 25 )
#define TVM_SETINSERTMARK ( TV_FIRST + 26 )
#define TVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define TVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define TVM_SETITEMHEIGHT ( TV_FIRST + 27 )
#define TVM_GETITEMHEIGHT ( TV_FIRST + 28 )
#define TVM_SETBKCOLOR ( TV_FIRST + 29 )
#define TVM_SETTEXTCOLOR ( TV_FIRST + 30 )
#define TVM_GETBKCOLOR ( TV_FIRST + 31 )
#define TVM_GETTEXTCOLOR ( TV_FIRST + 32 )
#define TVM_SETSCROLLTIME ( TV_FIRST + 33 )
#define TVM_GETSCROLLTIME ( TV_FIRST + 34 )
#define TVM_SETINSERTMARKCOLOR ( TV_FIRST + 37 )
#define TVM_GETINSERTMARKCOLOR ( TV_FIRST + 38 )
#define TVM_GETITEMSTATE ( TV_FIRST + 39 )
#define TVM_SETLINECOLOR ( TV_FIRST + 40 )
#define TVM_GETLINECOLOR ( TV_FIRST + 41 )
#define LPTV_SORTCB LPTVSORTCB
#define TV_SORTCB TVSORTCB
#define LPNM_TREEVIEWA LPNMTREEVIEWA
#define LPNM_TREEVIEWW LPNMTREEVIEWW
#define NM_TREEVIEWW NMTREEVIEWW
#define NM_TREEVIEWA NMTREEVIEWA
#define LPNM_TREEVIEW LPNMTREEVIEW
#define NM_TREEVIEW NMTREEVIEW
#define NMTREEVIEW NMTREEVIEWW
#define LPNMTREEVIEW LPNMTREEVIEWW
#define TVN_SELCHANGINGA ( TVN_FIRST - 1 )
#define TVN_SELCHANGINGW ( TVN_FIRST - 50 )
#define TVN_SELCHANGEDA ( TVN_FIRST - 2 )
#define TVN_SELCHANGEDW ( TVN_FIRST - 51 )
#define TVC_UNKNOWN 0
#define TVC_BYMOUSE 1
#define TVC_BYKEYBOARD 2
#define TVN_GETDISPINFOA ( TVN_FIRST - 3 )
#define TVN_GETDISPINFOW ( TVN_FIRST - 52 )
#define TVN_SETDISPINFOA ( TVN_FIRST - 4 )
#define TVN_SETDISPINFOW ( TVN_FIRST - 53 )
#define TVIF_DI_SETITEM 4096
#define TV_DISPINFOA NMTVDISPINFOA
#define TV_DISPINFOW NMTVDISPINFOW
#define TV_DISPINFO NMTVDISPINFO
#define NMTVDISPINFO NMTVDISPINFOW
#define LPNMTVDISPINFO LPNMTVDISPINFOW
#define TVN_ITEMEXPANDINGA ( TVN_FIRST - 5 )
#define TVN_ITEMEXPANDINGW ( TVN_FIRST - 54 )
#define TVN_ITEMEXPANDEDA ( TVN_FIRST - 6 )
#define TVN_ITEMEXPANDEDW ( TVN_FIRST - 55 )
#define TVN_BEGINDRAGA ( TVN_FIRST - 7 )
#define TVN_BEGINDRAGW ( TVN_FIRST - 56 )
#define TVN_BEGINRDRAGA ( TVN_FIRST - 8 )
#define TVN_BEGINRDRAGW ( TVN_FIRST - 57 )
#define TVN_DELETEITEMA ( TVN_FIRST - 9 )
#define TVN_DELETEITEMW ( TVN_FIRST - 58 )
#define TVN_BEGINLABELEDITA ( TVN_FIRST - 10 )
#define TVN_BEGINLABELEDITW ( TVN_FIRST - 59 )
#define TVN_ENDLABELEDITA ( TVN_FIRST - 11 )
#define TVN_ENDLABELEDITW ( TVN_FIRST - 60 )
#define TVN_KEYDOWN ( TVN_FIRST - 12 )
#define TVN_GETINFOTIPA ( TVN_FIRST - 13 )
#define TVN_GETINFOTIPW ( TVN_FIRST - 14 )
#define TVN_SINGLEEXPAND ( TVN_FIRST - 15 )
#define TVNRET_DEFAULT 0
#define TVNRET_SKIPOLD 1
#define TVNRET_SKIPNEW 2
#define TV_KEYDOWN NMTVKEYDOWN
#define TVN_SELCHANGING TVN_SELCHANGINGW
#define TVN_SELCHANGED TVN_SELCHANGEDW
#define TVN_GETDISPINFO TVN_GETDISPINFOW
#define TVN_SETDISPINFO TVN_SETDISPINFOW
#define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGW
#define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDW
#define TVN_BEGINDRAG TVN_BEGINDRAGW
#define TVN_BEGINRDRAG TVN_BEGINRDRAGW
#define TVN_DELETEITEM TVN_DELETEITEMW
#define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITW
#define TVN_ENDLABELEDIT TVN_ENDLABELEDITW
#define TVN_GETINFOTIP TVN_GETINFOTIPW
#define NMTVGETINFOTIP NMTVGETINFOTIPW
#define LPNMTVGETINFOTIP LPNMTVGETINFOTIPW
#define TVCDRF_NOIMAGES 65536
/*-*/
#define R2_BLACK 1 /* 0 */
#define R2_NOTMERGEPEN 2 /* DPon */
#define R2_MASKNOTPEN 3 /* DPna */
#define R2_NOTCOPYPEN 4 /* PN */
#define R2_MASKPENNOT 5 /* PDna */
#define R2_NOT 6 /* Dn */
#define R2_XORPEN 7 /* DPx */
#define R2_NOTMASKPEN 8 /* DPan */
#define R2_MASKPEN 9 /* DPa */
#define R2_NOTXORPEN 10 /* DPxn */
#define R2_NOP 11 /* D */
#define R2_MERGENOTPEN 12 /* DPno */
#define R2_COPYPEN 13 /* P */
#define R2_MERGEPENNOT 14 /* PDno */
#define R2_MERGEPEN 15 /* DPo */
#define R2_WHITE 16 /* 1 */
#define R2_LAST 16
#define TOOLTIPS_CLASS "tooltips_class32"
#define TTS_ALWAYSTIP 0x01
#define TTS_NOPREFIX 0x02
#define TTS_NOANIMATE 0x10
#define TTS_NOFADE 0x20
#define TTS_BALLOON 0x40
#define TTF_IDISHWND 0x0001
#define TTF_CENTERTIP 0x0002
#define TTF_RTLREADING 0x0004
#define TTF_SUBCLASS 0x0010
#define TTF_TRACK 0x0020
#define TTF_ABSOLUTE 0x0080
#define TTF_TRANSPARENT 0x0100
#define TTF_DI_SETITEM 0x8000 // valid only on the TTN_NEEDTEXT callback
#define TTDT_AUTOMATIC 0
#define TTDT_RESHOW 1
#define TTDT_AUTOPOP 2
#define TTDT_INITIAL 3
#define TTI_NONE 0
#define TTI_INFO 1
#define TTI_WARNING 2
#define TTI_ERROR 3
#define TTM_ACTIVATE ( WM_USER + 1 )
#define TTM_SETDELAYTIME ( WM_USER + 3 )
#define TTM_ADDTOOLA ( WM_USER + 4 )
#define TTM_ADDTOOLW ( WM_USER + 50 )
#define TTM_DELTOOLA ( WM_USER + 5 )
#define TTM_DELTOOLW ( WM_USER + 51 )
#define TTM_NEWTOOLRECTA ( WM_USER + 6 )
#define TTM_NEWTOOLRECTW ( WM_USER + 52 )
#define TTM_RELAYEVENT ( WM_USER + 7 )
#define TTM_GETTOOLINFOA ( WM_USER + 8 )
#define TTM_GETTOOLINFOW ( WM_USER + 53 )
#define TTM_SETTOOLINFOA ( WM_USER + 9 )
#define TTM_SETTOOLINFOW ( WM_USER + 54 )
#define TTM_HITTESTA ( WM_USER + 10 )
#define TTM_HITTESTW ( WM_USER + 55 )
#define TTM_GETTEXTA ( WM_USER + 11 )
#define TTM_GETTEXTW ( WM_USER + 56 )
#define TTM_UPDATETIPTEXTA ( WM_USER + 12 )
#define TTM_UPDATETIPTEXTW ( WM_USER + 57 )
#define TTM_GETTOOLCOUNT ( WM_USER + 13 )
#define TTM_ENUMTOOLSA ( WM_USER + 14 )
#define TTM_ENUMTOOLSW ( WM_USER + 58 )
#define TTM_GETCURRENTTOOLA ( WM_USER + 15 )
#define TTM_GETCURRENTTOOLW ( WM_USER + 59 )
#define TTM_WINDOWFROMPOINT ( WM_USER + 16 )
#define TTM_TRACKACTIVATE ( WM_USER + 17 ) // wParam = TRUE/FALSE start end lparam = LPTOOLINFO
#define TTM_TRACKPOSITION ( WM_USER + 18 ) // lParam = dwPos
#define TTM_SETTIPBKCOLOR ( WM_USER + 19 )
#define TTM_SETTIPTEXTCOLOR ( WM_USER + 20 )
#define TTM_GETDELAYTIME ( WM_USER + 21 )
#define TTM_GETTIPBKCOLOR ( WM_USER + 22 )
#define TTM_GETTIPTEXTCOLOR ( WM_USER + 23 )
#define TTM_SETMAXTIPWIDTH ( WM_USER + 24 )
#define TTM_GETMAXTIPWIDTH ( WM_USER + 25 )
#define TTM_SETMARGIN ( WM_USER + 26 ) // lParam = lprc
#define TTM_GETMARGIN ( WM_USER + 27 ) // lParam = lprc
#define TTM_POP ( WM_USER + 28 )
#define TTM_UPDATE ( WM_USER + 29 )
#define TTM_GETBUBBLESIZE ( WM_USER + 30 )
#define TTM_ADJUSTRECT ( WM_USER + 31 )
#define TTM_SETTITLEA ( WM_USER + 32 ) // wParam = TTI_*, lParam = char* szTitle
#define TTM_SETTITLEW ( WM_USER + 33 ) // wParam = TTI_*, lParam = wchar* szTitle
#define TTM_ADDTOOL TTM_ADDTOOLW
#define TTM_DELTOOL TTM_DELTOOLW
#define TTM_NEWTOOLRECT TTM_NEWTOOLRECTW
#define TTM_GETTOOLINFO TTM_GETTOOLINFOW
#define TTM_SETTOOLINFO TTM_SETTOOLINFOW
#define TTM_HITTEST TTM_HITTESTW
#define TTM_GETTEXT TTM_GETTEXTW
#define TTM_UPDATETIPTEXT TTM_UPDATETIPTEXTW
#define TTM_ENUMTOOLS TTM_ENUMTOOLSW
#define TTM_GETCURRENTTOOL TTM_GETCURRENTTOOLW
#define TTM_SETTITLE TTM_SETTITLEW
#define CW_USEDEFAULT 0x80000000
#define HWND_TOP 0
#define HWND_BOTTOM 1
#define HWND_TOPMOST -1
#define HWND_NOTOPMOST -2
#define SWP_NOSIZE 0x0001
#define SWP_NOMOVE 0x0002
#define SWP_NOZORDER 0x0004
#define SWP_NOREDRAW 0x0008
#define SWP_NOACTIVATE 0x0010
#define SWP_FRAMECHANGED 0x0020 /* The frame changed: send WM_NCCALCSIZE */
#define SWP_SHOWWINDOW 0x0040
#define SWP_HIDEWINDOW 0x0080
#define SWP_NOCOPYBITS 0x0100
#define SWP_NOOWNERZORDER 0x0200 /* Don't do owner Z ordering */
#define SWP_NOSENDCHANGING 0x0400 /* Don't send WM_WINDOWPOSCHANGING */
/*-*/
#define PBM_SETRANGE ( WM_USER + 1 )
#define PBM_SETPOS ( WM_USER + 2 )
#define PBM_DELTAPOS ( WM_USER + 3 )
#define PBM_SETSTEP ( WM_USER + 4 )
#define PBM_STEPIT ( WM_USER + 5 )
#define PBM_SETRANGE32 1030
#define PBM_GETRANGE 1031
#define PBM_GETPOS 1032
#define PBM_SETBARCOLOR 1033
#define PBM_SETBKCOLOR CCM_SETBKCOLOR
#define PBS_SMOOTH 1
#define PBS_VERTICAL 4
#define DRIVERVERSION 0 // Device driver version
#define TECHNOLOGY 2 // Device classification
#define HORZSIZE 4 // Horizontal size in millimeters
#define VERTSIZE 6 // Vertical size in millimeters
#define HORZRES 8 // Horizontal width in pixels
#define VERTRES 10 // Vertical height in pixels
#define BITSPIXEL 12 // Number of bits per pixel
#define PLANES 14 // Number of planes
#define NUMBRUSHES 16 // Number of brushes the device has
#define NUMPENS 18 // Number of pens the device has
#define NUMMARKERS 20 // Number of markers the device has
#define NUMFONTS 22 // Number of fonts the device has
#define NUMCOLORS 24 // Number of colors the device supports
#define PDEVICESIZE 26 // Size required for device descriptor
#define CURVECAPS 28 // Curve capabilities
#define LINECAPS 30 // Line capabilities
#define POLYGONALCAPS 32 // Polygonal capabilities
#define TEXTCAPS 34 // Text capabilities
#define CLIPCAPS 36 // Clipping capabilities
#define RASTERCAPS 38 // Bitblt capabilities
#define ASPECTX 40 // Length of the X leg
#define ASPECTY 42 // Length of the Y leg
#define ASPECTXY 44 // Length of the hypotenuse
#define LOGPIXELSX 88 // Logical pixels/inch in X
#define LOGPIXELSY 90 // Logical pixels/inch in Y
#define SIZEPALETTE 104 // Number of entries in physical palette
#define NUMRESERVED 106 // Number of reserved entries in palette
#define COLORRES 108 // Actual color resolution
#define OUT_DEFAULT_PRECIS 0
#define OUT_STRING_PRECIS 1
#define OUT_CHARACTER_PRECIS 2
#define OUT_STROKE_PRECIS 3
#define OUT_TT_PRECIS 4
#define OUT_DEVICE_PRECIS 5
#define OUT_RASTER_PRECIS 6
#define OUT_TT_ONLY_PRECIS 7
#define OUT_OUTLINE_PRECIS 8
#define OUT_SCREEN_OUTLINE_PRECIS 9
#define OUT_PS_ONLY_PRECIS 10
#define CLIP_DEFAULT_PRECIS 0
#define CLIP_CHARACTER_PRECIS 1
#define CLIP_STROKE_PRECIS 2
#define CLIP_MASK 15
#define DEFAULT_PITCH 0
#define FIXED_PITCH 1
#define VARIABLE_PITCH 2
#define MONO_FONT 8
#define MM_TEXT 1
#define MM_LOMETRIC 2
#define MM_HIMETRIC 3
#define MM_LOENGLISH 4
#define MM_HIENGLISH 5
#define MM_TWIPS 6
#define MM_ISOTROPIC 7
#define MM_ANISOTROPIC 8
#define MM_MIN MM_TEXT
#define MM_MAX MM_ANISOTROPIC
#define MM_MAX_FIXEDSCALE MM_TWIPS
#define TRANSPARENT 1
#define OPAQUE 2
#define BKMODE_LAST 2
#define TA_NOUPDATECP 0
#define TA_UPDATECP 1
#define TA_LEFT 0
#define TA_RIGHT 2
#define TA_CENTER 6
#define TA_TOP 0
#define TA_BOTTOM 8
#define TA_BASELINE 24
#define TA_RTLREADING 256
#define TA_MASK (TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING)
#define VTA_BASELINE TA_BASELINE
#define VTA_LEFT TA_BOTTOM
#define VTA_RIGHT TA_TOP
#define VTA_CENTER TA_CENTER
#define VTA_BOTTOM TA_RIGHT
#define VTA_TOP TA_LEFT
#define ETO_OPAQUE 2
#define ETO_CLIPPED 4
#define ETO_GLYPH_INDEX 16
#define ETO_RTLREADING 128
#define ETO_NUMERICSLOCAL 1024
#define ETO_NUMERICSLATIN 2048
#define ETO_IGNORELANGUAGE 4096
#define ETO_PDY 8192
#define ASPECT_FILTERING 1
#define LR_DEFAULTCOLOR 0
#define LR_MONOCHROME 1
#define LR_COLOR 2
#define LR_COPYRETURNORG 4
#define LR_COPYDELETEORG 8
#define LR_LOADFROMFILE 16
#define LR_LOADTRANSPARENT 32
#define LR_DEFAULTSIZE 64
#define LR_VGACOLOR 128
#define LR_LOADMAP3DCOLORS 4096
#define LR_CREATEDIBSECTION 8192
#define LR_COPYFROMRESOURCE 16384
#define LR_SHARED 32768
#define CTLCOLOR_MSGBOX 0
#define CTLCOLOR_EDIT 1
#define CTLCOLOR_LISTBOX 2
#define CTLCOLOR_BTN 3
#define CTLCOLOR_DLG 4
#define CTLCOLOR_SCROLLBAR 5
#define CTLCOLOR_STATIC 6
#define CTLCOLOR_MAX 7
#define COLOR_SCROLLBAR 0
#define COLOR_BACKGROUND 1
#define COLOR_ACTIVECAPTION 2
#define COLOR_INACTIVECAPTION 3
#define COLOR_MENU 4
#define COLOR_WINDOW 5
#define COLOR_WINDOWFRAME 6
#define COLOR_MENUTEXT 7
#define COLOR_WINDOWTEXT 8
#define COLOR_CAPTIONTEXT 9
#define COLOR_ACTIVEBORDER 10
#define COLOR_INACTIVEBORDER 11
#define COLOR_APPWORKSPACE 12
#define COLOR_HIGHLIGHT 13
#define COLOR_HIGHLIGHTTEXT 14
#define COLOR_BTNFACE 15
#define COLOR_BTNSHADOW 16
#define COLOR_GRAYTEXT 17
#define COLOR_BTNTEXT 18
#define COLOR_INACTIVECAPTIONTEXT 19
#define COLOR_BTNHIGHLIGHT 20
#define COLOR_3DDKSHADOW 21
#define COLOR_3DLIGHT 22
#define COLOR_INFOTEXT 23
#define COLOR_INFOBK 24
#define COLOR_HOTLIGHT 26
#define COLOR_GRADIENTACTIVECAPTION 27
#define COLOR_GRADIENTINACTIVECAPTION 28
#define COLOR_DESKTOP COLOR_BACKGROUND
#define COLOR_3DFACE COLOR_BTNFACE
#define COLOR_3DSHADOW COLOR_BTNSHADOW
#define COLOR_3DHIGHLIGHT COLOR_BTNHIGHLIGHT
#define COLOR_3DHILIGHT COLOR_BTNHIGHLIGHT
#define COLOR_BTNHILIGHT COLOR_BTNHIGHLIGHT
#define RBS_TOOLTIPS 256
#define RBS_VARHEIGHT 512
#define RBS_BANDBORDERS 1024
#define RBS_FIXEDORDER 2048
#define RBS_REGISTERDROP 4096
#define RBS_AUTOSIZE 8192
#define RBS_VERTICALGRIPPER 16384 // this always has the vertical gripper (default for horizontal mode)
#define RBS_DBLCLKTOGGLE 32768
#define RBBS_BREAK 1 // break to new line
#define RBBS_FIXEDSIZE 2 // band can't be sized
#define RBBS_CHILDEDGE 4 // edge around top & bottom of child window
#define RBBS_HIDDEN 8 // don't show
#define RBBS_NOVERT 16 // don't show when vertical
#define RBBS_FIXEDBMP 32 // bitmap doesn't move during band resize
#define RBBS_VARIABLEHEIGHT 64 // allow autosizing of this child vertically
#define RBBS_GRIPPERALWAYS 128 // always show the gripper
#define RBBS_NOGRIPPER 256 // never show the gripper
#define RBBS_USECHEVRON 512 // display drop-down button for this band if it's sized smaller than ideal width
#define RBBS_HIDETITLE 1024 // keep band title hidden
#define RBBIM_STYLE 1
#define RBBIM_COLORS 2
#define RBBIM_TEXT 4
#define RBBIM_IMAGE 8
#define RBBIM_CHILD 16
#define RBBIM_CHILDSIZE 32
#define RBBIM_SIZE 64
#define RBBIM_BACKGROUND 128
#define RBBIM_ID 256
#define RBBIM_IDEALSIZE 512
#define RBBIM_LPARAM 1024
#define RBBIM_HEADERSIZE 2048 // control the size of the header
#define DMRES_DRAFT (-1)
#define DMRES_LOW (-2)
#define DMRES_MEDIUM (-3)
#define DMRES_HIGH (-4)
#define DMCOLOR_MONOCHROME 1
#define DMCOLOR_COLOR 2
#define DMDUP_SIMPLEX 1
#define DMDUP_VERTICAL 2
#define DMDUP_HORIZONTAL 3
#define DMTT_BITMAP 1 // print TT fonts as graphics
#define DMTT_DOWNLOAD 2 // download TT fonts as soft fonts
#define DMTT_SUBDEV 3 // substitute device fonts for TT fonts
#define DMTT_DOWNLOAD_OUTLINE 4 // download TT fonts as outline soft fonts
#define DMCOLLATE_FALSE 0
#define DMCOLLATE_TRUE 1
#define DM_GRAYSCALE 0x00000001 /* This flag is no longer valid */
#define DM_INTERLACED 0x00000002 /* This flag is no longer valid */
#define DMDISPLAYFLAGS_TEXTMODE 4
#define DMNUP_SYSTEM 1
#define DMNUP_ONEUP 2
#define DMICMMETHOD_NONE 1 // ICM disabled
#define DMICMMETHOD_SYSTEM 2 // ICM handled by system
#define DMICMMETHOD_DRIVER 3 // ICM handled by driver
#define DMICMMETHOD_DEVICE 4 // ICM handled by device
#define DMICMMETHOD_USER 256 // Device-specific methods start here
#define DMICM_SATURATE 1 // Maximize color saturation
#define DMICM_CONTRAST 2 // Maximize color contrast
#define DMICM_COLORIMETRIC 3 // Use specific color metric
#define DMICM_ABS_COLORIMETRIC 4 // Use specific color metric
#define DMICM_USER 256 // Device-specific intents start here
#define PHYSICALWIDTH 110 // Physical Width in device units
#define PHYSICALHEIGHT 111 // Physical Height in device units
#define PHYSICALOFFSETX 112 // Physical Printable Area x margin
#define PHYSICALOFFSETY 113 // Physical Printable Area y margin
#define SCALINGFACTORX 114 // Scaling factor x
#define SCALINGFACTORY 115 // Scaling factor y
#define SRCCOPY 13369376 // dest = source
#define SRCPAINT 15597702 // dest = source OR dest
#define SRCAND 8913094 // dest = source AND dest
#define SRCINVERT 6684742 // dest = source XOR dest
#define SRCERASE 4457256 // dest = source AND (NOT dest )
#define NOTSRCCOPY 3342344 // dest = (NOT source)
#define NOTSRCERASE 1114278 // dest = (NOT src) AND (NOT dest)
#define MERGECOPY 12583114 // dest = (source AND pattern)
#define MERGEPAINT 12255782 // dest = (NOT source) OR dest
#define PATCOPY 15728673 // dest = pattern
#define PATPAINT 16452105 // dest = DPSnoo
#define PATINVERT 5898313 // dest = pattern XOR dest
#define DSTINVERT 5570569 // dest = (NOT dest)
#define BLACKNESS 66 // dest = BLACK
#define WHITENESS 16711778 // dest = WHITE
#define NOMIRRORBITMAP 2147483648 // Do not Mirror the bitmap in this call
#define CAPTUREBLT 1073741824 // Include layered windows
#define GDI_ERROR ( 4294967295)
#define HGDI_ERROR ( 4294967295)
#define CS_VREDRAW 1
#define CS_HREDRAW 2
#define CS_DBLCLKS 8
#define CS_OWNDC 32
#define CS_CLASSDC 64
#define CS_PARENTDC 128
#define CS_NOCLOSE 512
#define CS_SAVEBITS 2048
#define CS_BYTEALIGNCLIENT 4096
#define CS_BYTEALIGNWINDOW 8192
#define CS_GLOBALCLASS 16384
#define CF_TEXT 1
#define CF_BITMAP 2
#define CF_METAFILEPICT 3
#define CF_SYLK 4
#define CF_DIF 5
#define CF_TIFF 6
#define CF_OEMTEXT 7
#define CF_DIB 8
#define CF_PALETTE 9
#define CF_PENDATA 10
#define CF_RIFF 11
#define CF_WAVE 12
#define CF_UNICODETEXT 13
#define CF_ENHMETAFILE 14
#define IDC_ARROW 32512
#define IDC_IBEAM 32513
#define IDC_WAIT 32514
#define IDC_CROSS 32515
#define IDC_UPARROW 32516
#define IDC_SIZENWSE 32642
#define IDC_SIZENESW 32643
#define IDC_SIZEWE 32644
#define IDC_SIZENS 32645
#define IDC_SIZEALL 32646
#define IDC_NO 32648
#define IDC_HAND 32649
#define IDC_APPSTARTING 32650
#define IDC_HELP 32651
#define ICC_LISTVIEW_CLASSES 1 // listview, header
#define ICC_TREEVIEW_CLASSES 2 // treeview, tooltips
#define ICC_BAR_CLASSES 4 // toolbar, statusbar, trackbar, tooltips
#define ICC_TAB_CLASSES 8 // tab, tooltips
#define ICC_UPDOWN_CLASS 16 // updown
#define ICC_PROGRESS_CLASS 32 // progress
#define ICC_HOTKEY_CLASS 64 // hotkey
#define ICC_ANIMATE_CLASS 128 // animate
#define ICC_WIN95_CLASSES 255
#define ICC_DATE_CLASSES 256 // month picker, date picker, time picker, updown
#define ICC_USEREX_CLASSES 512 // comboex
#define ICC_COOL_CLASSES 1024 // rebar (coolbar) control
#define ICC_INTERNET_CLASSES 2048
#define ICC_PAGESCROLLER_CLASS 4096 // page scroller
#define ICC_NATIVEFNTCTL_CLASS 8192 // native font control
#define HINST_COMMCTRL ((HINSTANCE)-1)
#define IDB_STD_SMALL_COLOR 0
#define IDB_STD_LARGE_COLOR 1
#define IDB_VIEW_SMALL_COLOR 4
#define IDB_VIEW_LARGE_COLOR 5
#define IDB_HIST_SMALL_COLOR 8
#define IDB_HIST_LARGE_COLOR 9
#define TB_ENABLEBUTTON (WM_USER + 1)
#define TB_CHECKBUTTON (WM_USER + 2)
#define TB_PRESSBUTTON (WM_USER + 3)
#define TB_HIDEBUTTON (WM_USER + 4)
#define TB_INDETERMINATE (WM_USER + 5)
#define TB_MARKBUTTON (WM_USER + 6)
#define TB_ISBUTTONENABLED (WM_USER + 9)
#define TB_ISBUTTONCHECKED (WM_USER + 10)
#define TB_ISBUTTONPRESSED (WM_USER + 11)
#define TB_ISBUTTONHIDDEN (WM_USER + 12)
#define TB_ISBUTTONINDETERMINATE (WM_USER + 13)
#define TB_ISBUTTONHIGHLIGHTED (WM_USER + 14)
#define TB_SETSTATE (WM_USER + 17)
#define TB_GETSTATE (WM_USER + 18)
#define REBARCLASSNAME "ReBarWindow32"
#define RBIM_IMAGELIST 1
#ifdef UNICODE
#define REBARBANDINFO REBARBANDINFOW
#define LPREBARBANDINFO LPREBARBANDINFOW
#define LPCREBARBANDINFO LPCREBARBANDINFOW
#define REBARBANDINFO_V3_SIZE REBARBANDINFOW_V3_SIZE
#else
#define REBARBANDINFO REBARBANDINFOA
#define LPREBARBANDINFO LPREBARBANDINFOA
#define LPCREBARBANDINFO LPCREBARBANDINFOA
#define REBARBANDINFO_V3_SIZE REBARBANDINFOA_V3_SIZE
#endif
#ifdef UNICODE
#define RB_INSERTBAND RB_INSERTBANDW
#define RB_SETBANDINFO RB_SETBANDINFOW
#else
#define RB_INSERTBAND RB_INSERTBANDA
#define RB_SETBANDINFO RB_SETBANDINFOA
#endif
#define RB_INSERTBANDA (WM_USER + 1)
#define RB_DELETEBAND (WM_USER + 2)
#define RB_GETBARINFO (WM_USER + 3)
#define RB_SETBARINFO (WM_USER + 4)
#define RB_SETBANDINFOA (WM_USER + 6)
#define RB_SETPARENT (WM_USER + 7)
#define RB_HITTEST (WM_USER + 8)
#define RB_GETRECT (WM_USER + 9)
#define RB_INSERTBANDW (WM_USER + 10)
#define RB_SETBANDINFOW (WM_USER + 11)
#define RB_GETBANDCOUNT (WM_USER + 12)
#define RB_GETROWCOUNT (WM_USER + 13)
#define RB_GETROWHEIGHT (WM_USER + 14)
#define RB_IDTOINDEX (WM_USER + 16) // wParam == id
#define RB_GETTOOLTIPS (WM_USER + 17)
#define RB_SETTOOLTIPS (WM_USER + 18)
#define RB_SETBKCOLOR (WM_USER + 19) // sets the default BK color
#define RB_GETBKCOLOR (WM_USER + 20) // defaults to CLR_NONE
#define RB_SETTEXTCOLOR (WM_USER + 21)
#define RB_GETTEXTCOLOR (WM_USER + 22) // defaults to 0x00000000
#define RB_SIZETORECT (WM_USER + 23) // resize the rebar/break bands and such to this rect (lparam)
#define TCN_FIRST (0-550) // tab control
#define TCN_LAST (0-580)
#define TCN_SELCHANGE (TCN_FIRST - 1)
#define TCN_SELCHANGING (TCN_FIRST - 2)
#define TCN_GETOBJECT (TCN_FIRST - 3)
#define TCN_FOCUSCHANGE (TCN_FIRST - 4)
#define GW_HWNDFIRST 0
#define GW_HWNDLAST 1
#define GW_HWNDNEXT 2
#define GW_HWNDPREV 3
#define GW_OWNER 4
#define GW_CHILD 5
#define GW_MAX 5
#define SPI_GETBEEP 1
#define SPI_SETBEEP 2
#define SPI_GETMOUSE 3
#define SPI_SETMOUSE 4
#define SPI_GETBORDER 5
#define SPI_SETBORDER 6
#define SPI_GETKEYBOARDSPEED 10
#define SPI_SETKEYBOARDSPEED 11
#define SPI_LANGDRIVER 12
#define SPI_ICONHORIZONTALSPACING 13
#define SPI_GETSCREENSAVETIMEOUT 14
#define SPI_SETSCREENSAVETIMEOUT 15
#define SPI_GETSCREENSAVEACTIVE 16
#define SPI_SETSCREENSAVEACTIVE 17
#define SPI_GETGRIDGRANULARITY 18
#define SPI_SETGRIDGRANULARITY 19
#define SPI_SETDESKWALLPAPER 20
#define SPI_SETDESKPATTERN 21
#define SPI_GETKEYBOARDDELAY 22
#define SPI_SETKEYBOARDDELAY 23
#define SPI_ICONVERTICALSPACING 24
#define SPI_GETICONTITLEWRAP 25
#define SPI_SETICONTITLEWRAP 26
#define SPI_GETMENUDROPALIGNMENT 27
#define SPI_SETMENUDROPALIGNMENT 28
#define SPI_SETDOUBLECLKWIDTH 29
#define SPI_SETDOUBLECLKHEIGHT 30
#define SPI_GETICONTITLELOGFONT 31
#define SPI_SETDOUBLECLICKTIME 32
#define SPI_SETMOUSEBUTTONSWAP 33
#define SPI_SETICONTITLELOGFONT 34
#define SPI_GETFASTTASKSWITCH 35
#define SPI_SETFASTTASKSWITCH 36
#define SPI_SETDRAGFULLWINDOWS 37
#define SPI_GETDRAGFULLWINDOWS 38
#define SPI_GETNONCLIENTMETRICS 41
#define SPI_SETNONCLIENTMETRICS 42
#define SPI_GETMINIMIZEDMETRICS 43
#define SPI_SETMINIMIZEDMETRICS 44
#define SPI_GETICONMETRICS 45
#define SPI_SETICONMETRICS 46
#define SPI_SETWORKAREA 47
#define SPI_GETWORKAREA 48
#define SPI_SETPENWINDOWS 49
#define SPI_GETHIGHCONTRAST 66
#define SPI_SETHIGHCONTRAST 67
#define SPI_GETKEYBOARDPREF 68
#define SPI_SETKEYBOARDPREF 69
#define SPI_GETSCREENREADER 70
#define SPI_SETSCREENREADER 71
#define SPI_GETANIMATION 72
#define SPI_SETANIMATION 73
#define SPI_GETFONTSMOOTHING 74
#define SPI_SETFONTSMOOTHING 75
#define SPI_SETDRAGWIDTH 76
#define SPI_SETDRAGHEIGHT 77
#define SPI_SETHANDHELD 78
#define SPI_GETLOWPOWERTIMEOUT 79
#define SPI_GETPOWEROFFTIMEOUT 80
#define SPI_SETLOWPOWERTIMEOUT 81
#define SPI_SETPOWEROFFTIMEOUT 82
#define SPI_GETLOWPOWERACTIVE 83
#define SPI_GETPOWEROFFACTIVE 84
#define SPI_SETLOWPOWERACTIVE 85
#define SPI_SETPOWEROFFACTIVE 86
#define SPI_SETCURSORS 87
#define SPI_SETICONS 88
#define SPI_GETDEFAULTINPUTLANG 89
#define SPI_SETDEFAULTINPUTLANG 90
#define SPI_SETLANGTOGGLE 91
#define SPI_GETWINDOWSEXTENSION 92
#define SPI_SETMOUSETRAILS 93
#define SPI_GETMOUSETRAILS 94
#define SPI_SETSCREENSAVERRUNNING 97
#define SPI_SCREENSAVERRUNNING SPI_SETSCREENSAVERRUNNING
#define SPI_GETFILTERKEYS 50
#define SPI_SETFILTERKEYS 51
#define SPI_GETTOGGLEKEYS 52
#define SPI_SETTOGGLEKEYS 53
#define SPI_GETMOUSEKEYS 54
#define SPI_SETMOUSEKEYS 55
#define SPI_GETSHOWSOUNDS 56
#define SPI_SETSHOWSOUNDS 57
#define SPI_GETSTICKYKEYS 58
#define SPI_SETSTICKYKEYS 59
#define SPI_GETACCESSTIMEOUT 60
#define SPI_SETACCESSTIMEOUT 61
#define SPI_GETSERIALKEYS 62
#define SPI_SETSERIALKEYS 63
#define SPI_GETSOUNDSENTRY 64
#define SPI_SETSOUNDSENTRY 65
#define SPI_GETSNAPTODEFBUTTON 95
#define SPI_SETSNAPTODEFBUTTON 96
#define SPI_GETMOUSEHOVERWIDTH 98
#define SPI_SETMOUSEHOVERWIDTH 99
#define SPI_GETMOUSEHOVERHEIGHT 100
#define SPI_SETMOUSEHOVERHEIGHT 101
#define SPI_GETMOUSEHOVERTIME 102
#define SPI_SETMOUSEHOVERTIME 103
#define SPI_GETWHEELSCROLLLINES 104
#define SPI_SETWHEELSCROLLLINES 105
#define SPI_GETMENUSHOWDELAY 106
#define SPI_SETMENUSHOWDELAY 107
#define SPI_GETSHOWIMEUI 110
#define SPI_SETSHOWIMEUI 111
#define SPI_GETMOUSESPEED 112
#define SPI_SETMOUSESPEED 113
#define SPI_GETSCREENSAVERRUNNING 114
#define SPI_GETDESKWALLPAPER 115
#define SPI_GETACTIVEWINDOWTRACKING 4096
#define SPI_SETACTIVEWINDOWTRACKING 4097
#define SPI_GETMENUANIMATION 4098
#define SPI_SETMENUANIMATION 4099
#define SPI_GETCOMBOBOXANIMATION 4100
#define SPI_SETCOMBOBOXANIMATION 4101
#define SPI_GETLISTBOXSMOOTHSCROLLING 4102
#define SPI_SETLISTBOXSMOOTHSCROLLING 4103
#define SPI_GETGRADIENTCAPTIONS 4104
#define SPI_SETGRADIENTCAPTIONS 4105
#define SPI_GETKEYBOARDCUES 4106
#define SPI_SETKEYBOARDCUES 4107
#define SPI_GETMENUUNDERLINES SPI_GETKEYBOARDCUES
#define SPI_SETMENUUNDERLINES SPI_SETKEYBOARDCUES
#define SPI_GETACTIVEWNDTRKZORDER 4108
#define SPI_SETACTIVEWNDTRKZORDER 4109
#define SPI_GETHOTTRACKING 4110
#define SPI_SETHOTTRACKING 4111
#define SPI_GETMENUFADE 4114
#define SPI_SETMENUFADE 4115
#define SPI_GETSELECTIONFADE 4116
#define SPI_SETSELECTIONFADE 4117
#define SPI_GETTOOLTIPANIMATION 4118
#define SPI_SETTOOLTIPANIMATION 4119
#define SPI_GETTOOLTIPFADE 4120
#define SPI_SETTOOLTIPFADE 4121
#define SPI_GETCURSORSHADOW 4122
#define SPI_SETCURSORSHADOW 4123
#define SPI_GETUIEFFECTS 4158
#define SPI_SETUIEFFECTS 4159
#define SPI_GETFOREGROUNDLOCKTIMEOUT 8192
#define SPI_SETFOREGROUNDLOCKTIMEOUT 8193
#define SPI_GETACTIVEWNDTRKTIMEOUT 8194
#define SPI_SETACTIVEWNDTRKTIMEOUT 8195
#define SPI_GETFOREGROUNDFLASHCOUNT 8196
#define SPI_SETFOREGROUNDFLASHCOUNT 8197
#define SPI_GETCARETWIDTH 8198
#define SPI_SETCARETWIDTH 8199
#define SPIF_UPDATEINIFILE 1
#define SPIF_SENDWININICHANGE 2
#define SPIF_SENDCHANGE SPIF_SENDWININICHANGE
#define SM_CXSCREEN 0
#define SM_CYSCREEN 1
#define SM_CXVSCROLL 2
#define SM_CYHSCROLL 3
#define SM_CYCAPTION 4
#define SM_CXBORDER 5
#define SM_CYBORDER 6
#define SM_CXDLGFRAME 7
#define SM_CYDLGFRAME 8
#define SM_CYVTHUMB 9
#define SM_CXHTHUMB 10
#define SM_CXICON 11
#define SM_CYICON 12
#define SM_CXCURSOR 13
#define SM_CYCURSOR 14
#define SM_CYMENU 15
#define SM_CXFULLSCREEN 16
#define SM_CYFULLSCREEN 17
#define SM_CYKANJIWINDOW 18
#define SM_MOUSEPRESENT 19
#define SM_CYVSCROLL 20
#define SM_CXHSCROLL 21
#define SM_DEBUG 22
#define SM_SWAPBUTTON 23
#define SM_RESERVED1 24
#define SM_RESERVED2 25
#define SM_RESERVED3 26
#define SM_RESERVED4 27
#define SM_CXMIN 28
#define SM_CYMIN 29
#define SM_CXSIZE 30
#define SM_CYSIZE 31
#define SM_CXFRAME 32
#define SM_CYFRAME.c 33
#define SM_CXMINTRACK 34
#define SM_CYMINTRACK 35
#define WC_HEADER "SysHeader32"
#define HDS_HORZ 0
#define HDS_BUTTONS 2
#define HDS_HOTTRACK 4
#define HDS_HIDDEN 8
#define HDS_DRAGDROP 64
#define HDS_FULLDRAG 128
#define HDS_FILTERBAR 256
#define HDFT_ISSTRING 0 // HD_ITEM.pvFilter points to a HD_TEXTFILTER
#define HDFT_ISNUMBER 1 // HD_ITEM.pvFilter points to a INT
#define HDFT_HASNOVALUE 32768 // clear the filter, by setting this bit
#ifdef UNICODE
#define HD_TEXTFILTER HD_TEXTFILTERW
#define HDTEXTFILTER HD_TEXTFILTERW
#define LPHD_TEXTFILTER LPHD_TEXTFILTERW
#define LPHDTEXTFILTER LPHD_TEXTFILTERW
#else
#define HD_TEXTFILTER HD_TEXTFILTERA
#define HDTEXTFILTER HD_TEXTFILTERA
#define LPHD_TEXTFILTER LPHD_TEXTFILTERA
#define LPHDTEXTFILTER LPHD_TEXTFILTERA
#endif
#define HDI_WIDTH 1
#define HDI_HEIGHT HDI_WIDTH
#define HDI_TEXT 2
#define HDI_FORMAT 4
#define HDI_LPARAM 8
#define HDI_BITMAP 16
#define HDI_IMAGE 32
#define HDI_DI_SETITEM 64
#define HDI_ORDER 128
#define HDI_FILTER 256
#define HDF_LEFT 0
#define HDF_RIGHT 1
#define HDF_CENTER 2
#define HDF_JUSTIFYMASK 3
#define HDF_RTLREADING 4
#define HDF_OWNERDRAW 32768
#define HDF_STRING 16384
#define HDF_BITMAP 8192
#define HDF_BITMAP_ON_RIGHT 4096
#define HDF_IMAGE 2048
#define HDM_GETITEMCOUNT (HDM_FIRST + 0)
#define HDM_INSERTITEMA (HDM_FIRST + 1)
#define HDM_INSERTITEMW (HDM_FIRST + 10)
#ifdef UNICODE
#define HDM_INSERTITEM HDM_INSERTITEMW
#else
#define HDM_INSERTITEM HDM_INSERTITEMA
#endif
#define HDM_DELETEITEM (HDM_FIRST + 2)
#define HDM_GETITEMA (HDM_FIRST + 3)
#define HDM_GETITEMW (HDM_FIRST + 11)
#ifdef UNICODE
#define HDM_GETITEM HDM_GETITEMW
#else
#define HDM_GETITEM HDM_GETITEMA
#endif
#define HDM_SETITEMA (HDM_FIRST + 4)
#define HDM_SETITEMW (HDM_FIRST + 12)
#ifdef UNICODE
#define HDM_SETITEM HDM_SETITEMW
#else
#define HDM_SETITEM HDM_SETITEMA
#endif
#define HD_LAYOUT HDLAYOUT
#define HDM_LAYOUT (HDM_FIRST + 5)
#define HHT_NOWHERE 1
#define HHT_ONHEADER 2
#define HHT_ONDIVIDER 4
#define HHT_ONDIVOPEN 8
#define HHT_ONFILTER 16
#define HHT_ONFILTERBUTTON 32
#define HHT_ABOVE 256
#define HHT_BELOW 512
#define HHT_TORIGHT 1024
#define HHT_TOLEFT 2048
#define HD_HITTESTINFO HDHITTESTINFO
#define HDM_HITTEST (HDM_FIRST + 6)
#define HDM_GETITEMRECT (HDM_FIRST + 7)
#define HDM_SETIMAGELIST (HDM_FIRST + 8)
#define HDM_GETIMAGELIST (HDM_FIRST + 9)
#define HDM_ORDERTOINDEX (HDM_FIRST + 15)
#define HDM_CREATEDRAGIMAGE (HDM_FIRST + 16) // wparam = which item (by index)
#define HDM_GETORDERARRAY (HDM_FIRST + 17)
#define HDM_SETORDERARRAY (HDM_FIRST + 18)
#define HDM_SETHOTDIVIDER (HDM_FIRST + 19)
#define HDM_SETBITMAPMARGIN (HDM_FIRST + 20)
#define HDM_GETBITMAPMARGIN (HDM_FIRST + 21)
#define HDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define HDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define HDM_SETFILTERCHANGETIMEOUT (HDM_FIRST+22)
#define HDM_EDITFILTER (HDM_FIRST+23)
#define HDM_CLEARFILTER (HDM_FIRST+24)
#define HDN_ITEMCHANGINGA (HDN_FIRST-0)
#define HDN_ITEMCHANGINGW (HDN_FIRST-20)
#define HDN_ITEMCHANGEDA (HDN_FIRST-1)
#define HDN_ITEMCHANGEDW (HDN_FIRST-21)
#define HDN_ITEMCLICKA (HDN_FIRST-2)
#define HDN_ITEMCLICKW (HDN_FIRST-22)
#define HDN_ITEMDBLCLICKA (HDN_FIRST-3)
#define HDN_ITEMDBLCLICKW (HDN_FIRST-23)
#define HDN_DIVIDERDBLCLICKA (HDN_FIRST-5)
#define HDN_DIVIDERDBLCLICKW (HDN_FIRST-25)
#define HDN_BEGINTRACKA (HDN_FIRST-6)
#define HDN_BEGINTRACKW (HDN_FIRST-26)
#define HDN_ENDTRACKA (HDN_FIRST-7)
#define HDN_ENDTRACKW (HDN_FIRST-27)
#define HDN_TRACKA (HDN_FIRST-8)
#define HDN_TRACKW (HDN_FIRST-28)
#define HDN_GETDISPINFOA (HDN_FIRST-9)
#define HDN_GETDISPINFOW (HDN_FIRST-29)
#define HDN_BEGINDRAG (HDN_FIRST-10)
#define HDN_ENDDRAG (HDN_FIRST-11)
#define HDN_FILTERCHANGE (HDN_FIRST-12)
#define HDN_FILTERBTNCLICK (HDN_FIRST-13)
#ifdef UNICODE
#define HDN_ITEMCHANGING HDN_ITEMCHANGINGW
#define HDN_ITEMCHANGED HDN_ITEMCHANGEDW
#define HDN_ITEMCLICK HDN_ITEMCLICKW
#define HDN_ITEMDBLCLICK HDN_ITEMDBLCLICKW
#define HDN_DIVIDERDBLCLICK HDN_DIVIDERDBLCLICKW
#define HDN_BEGINTRACK HDN_BEGINTRACKW
#define HDN_ENDTRACK HDN_ENDTRACKW
#define HDN_TRACK HDN_TRACKW
#define HDN_GETDISPINFO HDN_GETDISPINFOW
#else
#define HDN_ITEMCHANGING HDN_ITEMCHANGINGA
#define HDN_ITEMCHANGED HDN_ITEMCHANGEDA
#define HDN_ITEMCLICK HDN_ITEMCLICKA
#define HDN_ITEMDBLCLICK HDN_ITEMDBLCLICKA
#define HDN_DIVIDERDBLCLICK HDN_DIVIDERDBLCLICKA
#define HDN_BEGINTRACK HDN_BEGINTRACKA
#define HDN_ENDTRACK HDN_ENDTRACKA
#define HDN_TRACK HDN_TRACKA
#define HDN_GETDISPINFO HDN_GETDISPINFOA
#endif
#define HD_NOTIFY NMHEADER
#ifdef UNICODE
#define NMHDDISPINFO NMHDDISPINFOW
#define LPNMHDDISPINFO LPNMHDDISPINFOW
#else
#define NMHDDISPINFO NMHDDISPINFOA
#define LPNMHDDISPINFO LPNMHDDISPINFOA
#endif
#define HDN_FIRST (0-300) // header
#define HDN_LAST (0-399)
#define DLGC_WANTARROWS 1 // Control wants arrow keys
#define DLGC_WANTTAB 2 // Control wants tab keys
#define DLGC_WANTALLKEYS 4 // Control wants all keys
#define DLGC_WANTMESSAGE 4 // Pass message to control
#define DLGC_HASSETSEL 8 // Understands EM_SETSEL message
#define DLGC_DEFPUSHBUTTON 16 // Default pushbutton
#define DLGC_UNDEFPUSHBUTTON 32 // Non-default pushbutton
#define DLGC_RADIOBUTTON 64 // Radio button
#define DLGC_WANTCHARS 128 // Want WM_CHAR messages
#define DLGC_STATIC 256 // Static item: don't include
#define DLGC_BUTTON 8192 // Button item: can be checked
#define RDW_INVALIDATE 1
#define RDW_INTERNALPAINT 2
#define RDW_ERASE 4
#define RDW_VALIDATE 8
#define RDW_NOINTERNALPAINT 16
#define RDW_NOERASE 32
#define RDW_NOCHILDREN 64
#define RDW_ALLCHILDREN 128
#define RDW_UPDATENOW 256
#define RDW_ERASENOW 512
#define RDW_FRAME 1024
#define RDW_NOFRAME 2048
#define CLR_NONE 4294967295
#define CLR_DEFAULT 4278190080
#define ILD_NORMAL 0
#define ILD_TRANSPARENT 1
#define ILD_MASK 16
#define ILD_IMAGE 32
#define ILD_ROP 64
#define ILD_BLEND25 2
#define ILD_BLEND50 4
#define ILD_OVERLAYMASK 3840
#define ILD_SELECTED ILD_BLEND50
#define ILD_FOCUS ILD_BLEND25
#define ILD_BLEND ILD_BLEND50
#define CLR_HILIGHT CLR_DEFAULT
#define SIF_RANGE 1
#define SIF_PAGE 2
#define SIF_POS 4
#define SIF_DISABLENOSCROLL 8
#define SIF_TRACKPOS 16
#define SIF_ALL (SIF_RANGE + SIF_PAGE + SIF_POS + SIF_TRACKPOS)
#define WH_MIN (-1)
#define WH_MSGFILTER (-1)
#define WH_JOURNALRECORD 0
#define WH_JOURNALPLAYBACK 1
#define WH_KEYBOARD 2
#define WH_GETMESSAGE 3
#define WH_CALLWNDPROC 4
#define WH_CBT 5
#define WH_SYSMSGFILTER 6
#define WH_MOUSE 7
#define WH_HARDWARE 8
#define WH_DEBUG 9
#define WH_SHELL 10
#define WH_FOREGROUNDIDLE 11
#define WH_CALLWNDPROCRET 12
#define WH_KEYBOARD_LL 13
#define WH_MOUSE_LL 14
#define WH_MAX 11
#define WH_MINHOOK WH_MIN
#define WH_MAXHOOK WH_MAX
#define HC_ACTION 0
#define HC_GETNEXT 1
#define HC_SKIP 2
#define HC_NOREMOVE 3
#define HC_NOREM HC_NOREMOVE
#define HC_SYSMODALON 4
#define HC_SYSMODALOFF 5
#define HCBT_MOVESIZE 0
#define HCBT_MINMAX 1
#define HCBT_QS 2
#define HCBT_CREATEWND 3
#define HCBT_DESTROYWND 4
#define HCBT_ACTIVATE 5
#define HCBT_CLICKSKIPPED 6
#define HCBT_KEYSKIPPED 7
#define HCBT_SYSCOMMAND 8
#define HCBT_SETFOCUS 9
#define SND_FILENAME (0x00020000)
#define SND_RESOURCE (0x00040004)
#define SND_PURGE 0x0040
#define SND_APPLICATION 0x0080
#define SND_SYNC 0x0000
#define SND_ASYNC 0x0001
#define SND_NODEFAULT 0x0002
#define SND_MEMORY 0x0004
#define SND_LOOP 0x0008
#define SND_NOSTOP 0x0010
#define SND_ALIAS_START 0
#define CCHDEVICENAME 32
#define CCHFORMNAME 32
#define LF_FACESIZE 32
#define LF_FULLFACESIZE 64
#endif