newlib/winsup/w32api/include/commctrl.h

3578 lines
114 KiB
C

#ifndef _COMMCTRL_H
#define _COMMCTRL_H
#if __GNUC__ >= 3
#pragma GCC system_header
#endif
#include <prsht.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef _WIN32_IE
/* define _WIN32_IE if you really want it */
#if 0
#define _WIN32_IE 0x0300
#endif
#endif
#ifndef SNDMSG
#ifdef __cplusplus
#define SNDMSG ::SendMessage
#else
#define SNDMSG SendMessage
#endif
#endif /* ifndef SNDMSG */
#define DRAGLISTMSGSTRING TEXT("commctrl_DragListMsg")
#define HOTKEY_CLASSA "msctls_hotkey32"
#define HOTKEY_CLASSW L"msctls_hotkey32"
#define PROGRESS_CLASSA "msctls_progress32"
#define PROGRESS_CLASSW L"msctls_progress32"
#define STATUSCLASSNAMEA "msctls_statusbar32"
#define STATUSCLASSNAMEW L"msctls_statusbar32"
#define TOOLBARCLASSNAMEA "ToolbarWindow32"
#define TOOLBARCLASSNAMEW L"ToolbarWindow32"
#define TOOLTIPS_CLASSA "tooltips_class32"
#define TOOLTIPS_CLASSW L"tooltips_class32"
#define TRACKBAR_CLASSA "msctls_trackbar32"
#define TRACKBAR_CLASSW L"msctls_trackbar32"
#define UPDOWN_CLASSA "msctls_updown32"
#define UPDOWN_CLASSW L"msctls_updown32"
#define ANIMATE_CLASSA "SysAnimate32"
#define ANIMATE_CLASSW L"SysAnimate32"
#define DATETIMEPICK_CLASSW L"SysDateTimePick32"
#define DATETIMEPICK_CLASSA "SysDateTimePick32"
#define MONTHCAL_CLASSW L"SysMonthCal32"
#define MONTHCAL_CLASSA "SysMonthCal32"
#define REBARCLASSNAMEW L"ReBarWindow32"
#define REBARCLASSNAMEA "ReBarWindow32"
#define WC_COMBOBOXEXW L"ComboBoxEx32"
#define WC_COMBOBOXEXA "ComboBoxEx32"
#define WC_IPADDRESSW L"SysIPAddress32"
#define WC_IPADDRESSA "SysIPAddress32"
#define WC_LISTVIEWA "SysListView32"
#define WC_LISTVIEWW L"SysListView32"
#define WC_TABCONTROLA "SysTabControl32"
#define WC_TABCONTROLW L"SysTabControl32"
#define WC_TREEVIEWA ("SysTreeView32")
#define WC_TREEVIEWW L"SysTreeView32"
#define WC_HEADERA "SysHeader32"
#define WC_HEADERW L"SysHeader32"
#define WC_PAGESCROLLERW L"SysPager"
#define WC_PAGESCROLLERA "SysPager"
#define WC_NATIVEFONTCTLW L"NativeFontCtl"
#define WC_NATIVEFONTCTLA "NativeFontCtl"
#define WC_BUTTONA "Button"
#define WC_BUTTONW L"Button"
#define WC_STATICA "Static"
#define WC_STATICW L"Static"
#define WC_EDITA "Edit"
#define WC_EDITW L"Edit"
#define WC_LISTBOXA "ListBox"
#define WC_LISTBOXW L"ListBox"
#define WC_COMBOBOXA "ComboBox"
#define WC_COMBOBOXW L"ComboBox"
#define WC_SCROLLBARA "ScrollBar"
#define WC_SCROLLBARW L"ScrollBar"
#ifdef UNICODE
#define HOTKEY_CLASS HOTKEY_CLASSW
#define PROGRESS_CLASS PROGRESS_CLASSW
#define STATUSCLASSNAME STATUSCLASSNAMEW
#define TOOLBARCLASSNAME TOOLBARCLASSNAMEW
#define TOOLTIPS_CLASS TOOLTIPS_CLASSW
#define TRACKBAR_CLASS TRACKBAR_CLASSW
#define UPDOWN_CLASS UPDOWN_CLASSW
#define ANIMATE_CLASS ANIMATE_CLASSW
#define DATETIMEPICK_CLASS DATETIMEPICK_CLASSW
#define MONTHCAL_CLASS MONTHCAL_CLASSW
#define REBARCLASSNAME REBARCLASSNAMEW
#define WC_COMBOBOXEX WC_COMBOBOXEXW
#define WC_HEADER WC_HEADERW
#define WC_IPADDRESS WC_IPADDRESSW
#define WC_LISTVIEW WC_LISTVIEWW
#define WC_TABCONTROL WC_TABCONTROLW
#define WC_TREEVIEW WC_TREEVIEWW
#define WC_PAGESCROLLER WC_PAGESCROLLERW
#define WC_NATIVEFONTCTL WC_NATIVEFONTCTLW
#define WC_BUTTON WC_BUTTONW
#define WC_STATIC WC_STATICW
#define WC_EDIT WC_EDITW
#define WC_LISTBOX WC_LISTBOXW
#define WC_COMBOBOX WC_COMBOBOXW
#define WC_SCROLLBAR WC_SCROLLBARW
#else
#define ANIMATE_CLASS ANIMATE_CLASSA
#define HOTKEY_CLASS HOTKEY_CLASSA
#define PROGRESS_CLASS PROGRESS_CLASSA
#define STATUSCLASSNAME STATUSCLASSNAMEA
#define TOOLBARCLASSNAME TOOLBARCLASSNAMEA
#define TOOLTIPS_CLASS TOOLTIPS_CLASSA
#define TRACKBAR_CLASS TRACKBAR_CLASSA
#define UPDOWN_CLASS UPDOWN_CLASSA
#define DATETIMEPICK_CLASS DATETIMEPICK_CLASSA
#define MONTHCAL_CLASS MONTHCAL_CLASSA
#define REBARCLASSNAME REBARCLASSNAMEA
#define WC_COMBOBOXEX WC_COMBOBOXEXA
#define WC_HEADER WC_HEADERA
#define WC_IPADDRESS WC_IPADDRESSA
#define WC_LISTVIEW WC_LISTVIEWA
#define WC_TABCONTROL WC_TABCONTROLA
#define WC_TREEVIEW WC_TREEVIEWA
#define WC_PAGESCROLLER WC_PAGESCROLLERA
#define WC_NATIVEFONTCTL WC_NATIVEFONTCTLA
#define WC_BUTTON WC_BUTTONA
#define WC_STATIC WC_STATICA
#define WC_EDIT WC_EDITA
#define WC_LISTBOX WC_LISTBOXA
#define WC_COMBOBOX WC_COMBOBOXA
#define WC_SCROLLBAR WC_SCROLLBARA
#endif
#if (_WIN32_IE >= 0x0500)
#if (_WIN32_WINNT >= 0x0501)
#define COMCTL32_VERSION 6
#else
#define COMCTL32_VERSION 5
#endif
#endif
#define LVM_FIRST 0x1000
#define TV_FIRST 0x1100
#define HDM_FIRST 0x1200
#define ACM_OPENA (WM_USER+100)
#define ACM_PLAY (WM_USER+101)
#define ACM_STOP (WM_USER+102)
#define ACM_OPENW (WM_USER+103)
#define ACN_START 1
#define ACN_STOP 2
#define CBEIF_TEXT 0x00000001
#define CBEIF_IMAGE 0x00000002
#define CBEIF_SELECTEDIMAGE 0x00000004
#define CBEIF_OVERLAY 0x00000008
#define CBEIF_INDENT 0x00000010
#define CBEIF_LPARAM 0x00000020
#define CBEIF_DI_SETITEM 0x10000000
#define CBEN_INSERTITEM (CBEN_FIRST - 1)
#define CBEN_DELETEITEM (CBEN_FIRST - 2)
#define CBEN_BEGINEDIT (CBEN_FIRST - 4)
#define CBEN_ENDEDITA (CBEN_FIRST - 5)
#define CBEN_ENDEDITW (CBEN_FIRST - 6)
#define CBENF_KILLFOCUS 1
#define CBENF_RETURN 2
#define CBENF_ESCAPE 3
#define CBENF_DROPDOWN 4
#define CBEMAXSTRLEN 260
#define DL_BEGINDRAG 1157
#define DL_CANCELDRAG 1160
#define DL_DRAGGING 1158
#define DL_DROPPED 1159
#define DL_CURSORSET 0
#define DL_STOPCURSOR 1
#define DL_COPYCURSOR 2
#define DL_MOVECURSOR 3
#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
#if (_WIN32_IE >= 0x0300)
#define CCS_VERT 128
#define CCS_LEFT 129
#define CCS_NOMOVEX 130
#define CCS_RIGHT 131
#endif
#define ACS_CENTER 0x0001
#define ACS_TRANSPARENT 0x0002
#define ACS_AUTOPLAY 0x0004
#define ACS_TIMER 0x0008
#define PGS_VERT 0x00000000
#define PGS_HORZ 0x00000001
#define PGS_AUTOSCROLL 0x00000002
#define PGS_DRAGNDROP 0x00000004
#define CMB_MASKED 2
#define MINSYSCOMMAND SC_SIZE
#define SBT_OWNERDRAW 0x1000
#define SBT_NOBORDERS 256
#define SBT_POPOUT 512
#define SBT_RTLREADING 1024
#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_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 MSGF_COMMCTRL_BEGINDRAG 0x4200
#define MSGF_COMMCTRL_SIZEHEADER 0x4201
#define MSGF_COMMCTRL_DRAGSELECT 0x4202
#define MSGF_COMMCTRL_TOOLBARCUST 0x4203
#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
#define ILCF_MOVE 0
#define ILCF_SWAP 1
#define ILS_NORMAL 0
#define ILS_GLOW 1
#define ILS_SHADOW 2
#define ILS_SATURATE 4
#define ILS_ALPHA 8
#define ILD_BLEND25 2
#define ILD_BLEND50 4
#define ILD_SELECTED 4
#define ILD_BLEND 4
#define ILD_FOCUS 2
#define ILD_MASK 16
#define ILD_NORMAL 0
#define ILD_TRANSPARENT 1
#define ILD_IMAGE 0x0020
#define ILD_ROP 0x0040
#define ILD_OVERLAYMASK 0x0F00
#define ILD_PRESERVEALPHA 0x1000
#define ILD_SCALE 0x2000
#define ILD_DPISCALE 0x4000
#define HDS_HORZ 0
#define HDS_BUTTONS 2
#define HDS_HIDDEN 8
#if (_WIN32_IE > 0x0300)
#define HDS_HOTTRACK 4
#define HDS_DRAGDROP 0x0040
#define HDS_FULLDRAG 0x0080
#endif /* _WIN32_IE > 0x0300 */
#if (_WIN32_IE >= 0x0500)
#define HDS_FILTERBAR 0x0100
#endif /* _WIN32_IE >= 0x0500 */
#define NM_FIRST 0
#define NM_LAST ((UINT)-99)
#define LVN_FIRST ((UINT)-100)
#define LVN_LAST ((UINT)-199)
#define HDN_FIRST ((UINT)-300)
#define HDN_LAST ((UINT)-399)
#define TVN_FIRST ((UINT)-400)
#define TVN_LAST ((UINT)-499)
#define TTN_FIRST ((UINT)-520)
#define TTN_LAST ((UINT)-549)
#define TCN_FIRST ((UINT)-550)
#define TCN_LAST ((UINT)-580)
#ifndef CDN_FIRST
#define CDN_FIRST ((UINT)-601) /* also in commdlg.h */
#define CDN_LAST ((UINT)-699)
#endif
#define TBN_FIRST ((UINT)-700)
#define TBN_LAST ((UINT)-720)
#define UDN_FIRST ((UINT)-721)
#define UDN_LAST ((UINT)-740)
#if (_WIN32_IE >= 0x0300)
#define RBN_FIRST ((UINT)-831)
#define RBN_LAST ((UINT)-859)
#define MCN_FIRST ((UINT)-750)
#define MCN_LAST ((UINT)-759)
#define DTN_FIRST ((UINT)-760)
#define DTN_LAST ((UINT)-799)
#define CBEN_FIRST ((UINT)-800)
#define CBEN_LAST ((UINT)-830)
#endif /* _WIN32_IE */
#if (_WIN32_IE >= 0x0400)
#define IPN_FIRST ((UINT)-860)
#define IPN_LAST ((UINT)-879)
#define IPN_FIELDCHANGED (IPN_FIRST-0)
#define SBN_FIRST ((UINT)-880U)
#define SBN_LAST ((UINT)-899U)
#define PGN_FIRST ((UINT)-900U)
#define PGN_LAST ((UINT)-950U)
#define PGN_SCROLL (PGN_FIRST-1)
#define PGN_CALCSIZE (PGN_FIRST-2)
#endif /* _WIN32_IE >= 0x0400 */
#define HDI_WIDTH 1
#define HDI_HEIGHT 1
#define HDI_TEXT 2
#define HDI_FORMAT 4
#define HDI_LPARAM 8
#define HDI_BITMAP 16
#if (_WIN32_IE >= 0x0300)
#define HDI_IMAGE 32
#define HDI_DI_SETITEM 64
#define HDI_ORDER 128
#endif
#define CBES_EX_NOEDITIMAGE 0x00000001
#define CBES_EX_NOEDITIMAGEINDENT 0x00000002
#define CBES_EX_PATHWORDBREAKPROC 0x00000004
#if (_WIN32_IE >= 0x0400)
#define CBES_EX_NOSIZELIMIT 0x00000008
#define CBES_EX_CASESENSITIVE 0x00000010
#define CBEN_GETDISPINFOA (CBEN_FIRST - 0)
#define CBEN_GETDISPINFOW (CBEN_FIRST - 7)
#define CBEN_DRAGBEGINA (CBEN_FIRST - 8)
#define CBEN_DRAGBEGINW (CBEN_FIRST - 9)
#endif /* _WIN32_IE >= 0x0400 */
#if (_WIN32_IE >= 0x0500)
#define HDI_FILTER 256
#endif
#define HDF_LEFT 0
#define HDF_RIGHT 1
#define HDF_CENTER 2
#define HDF_JUSTIFYMASK 3
#define HDF_RTLREADING 4
#define HDF_OWNERDRAW 0x8000
#define HDF_STRING 0x4000
#define HDF_BITMAP 0x2000
#if (_WIN32_IE >= 0x0300)
#define HDF_BITMAP_ON_RIGHT 0x1000
#define HDF_IMAGE 0x0800
#endif
#define HDM_GETITEMCOUNT HDM_FIRST
#define HDM_INSERTITEMA (HDM_FIRST+1)
#define HDM_INSERTITEMW (HDM_FIRST+10)
#define HDM_DELETEITEM (HDM_FIRST+2)
#define HDM_GETITEMA (HDM_FIRST+3)
#define HDM_GETITEMW (HDM_FIRST+11)
#define HDM_SETITEMA (HDM_FIRST+4)
#define HDM_SETITEMW (HDM_FIRST+12)
#define HDM_LAYOUT (HDM_FIRST+5)
#if (_WIN32_IE >= 0x0300)
#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)
#define HDM_GETORDERARRAY (HDM_FIRST+17)
#define HDM_SETORDERARRAY (HDM_FIRST+18)
#define HDM_SETHOTDIVIDER (HDM_FIRST+19)
#endif
#if (_WIN32_IE >= 0x0400)
#define HDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define HDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#endif
#define HHT_NOWHERE 1
#define HHT_ONHEADER 2
#define HHT_ONDIVIDER 4
#define HHT_ONDIVOPEN 8
#define HHT_ABOVE 256
#define HHT_BELOW 512
#define HHT_TORIGHT 1024
#define HHT_TOLEFT 2048
#define HDM_HITTEST (HDM_FIRST+6)
#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)
#if _WIN32_IE >= 0x0300
#define HDN_ENDDRAG (HDN_FIRST-11)
#define HDN_BEGINDRAG (HDN_FIRST-10)
#define HDN_GETDISPINFOA (HDN_FIRST-9)
#define HDN_GETDISPINFOW (HDN_FIRST-29)
#endif
#if (_WIN32_IE >= 0x0400)
#define HICF_OTHER 0x00
#define HICF_MOUSE 0x01
#define HICF_ARROWKEYS 0x02
#define HICF_ACCELERATOR 0x04
#define HICF_DUPACCEL 0x08
#define HICF_ENTERING 0x10
#define HICF_LEAVING 0x20
#define HICF_RESELECT 0x40
#define HICF_LMOUSE 0x80
#define HICF_TOGGLEDROPDOWN 0x100
#endif /* _WIN32_IE >= 0x0400 */
#define IPM_CLEARADDRESS (WM_USER+100)
#define IPM_SETADDRESS (WM_USER+101)
#define IPM_GETADDRESS (WM_USER+102)
#define IPM_SETRANGE (WM_USER+103)
#define IPM_SETFOCUS (WM_USER+104)
#define IPM_ISBLANK (WM_USER+105)
#if (_WIN32_IE >= 0x0500)
#define I_INDENTCALLBACK (-1)
#define I_IMAGENONE (-2)
#endif
#define CMB_MASKED 2
#define TBSTATE_CHECKED 1
#define TBSTATE_PRESSED 2
#define TBSTATE_ENABLED 4
#define TBSTATE_HIDDEN 8
#define TBSTATE_INDETERMINATE 16
#define TBSTATE_WRAP 32
#if (_WIN32_IE >= 0x0300)
#define TBSTATE_ELLIPSES 0x40
#endif
#if (_WIN32_IE >= 0x0400)
#define TBSTATE_MARKED 0x0080
#endif
#define TBSTYLE_BUTTON 0
#define TBSTYLE_SEP 1
#define TBSTYLE_CHECK 2
#define TBSTYLE_GROUP 4
#define TBSTYLE_CHECKGROUP (TBSTYLE_GROUP|TBSTYLE_CHECK)
#if (_WIN32_IE >= 0x0300)
#define TBSTYLE_DROPDOWN 8
#endif
#if (_WIN32_IE >= 0x0400)
#define TBSTYLE_AUTOSIZE 16
#define TBSTYLE_NOPREFIX 32
#endif
#define TBSTYLE_TOOLTIPS 256
#define TBSTYLE_WRAPABLE 512
#define TBSTYLE_ALTDRAG 1024
#if (_WIN32_IE >= 0x0300)
#define TBSTYLE_FLAT 2048
#define TBSTYLE_LIST 4096
#define TBSTYLE_CUSTOMERASE 8192
#endif
#if (_WIN32_IE >= 0x0400)
#define TBSTYLE_REGISTERDROP 0x4000
#define TBSTYLE_TRANSPARENT 0x8000
#define TBSTYLE_EX_DRAWDDARROWS 0x00000001
#endif /* _WIN32_IE >= 0x0400 */
#if (_WIN32_IE >= 0x0501)
#define TBSTYLE_EX_MIXEDBUTTONS 8
#define TBSTYLE_EX_HIDECLIPPEDBUTTONS 16
#endif /* _WIN32_IE >= 0x0501 */
#if (_WIN32_WINNT >= 0x0501)
#define TBSTYLE_EX_DOUBLEBUFFER 0x80
#endif /* _WIN32_WINNT >= 0x0501 */
#if (_WIN32_IE >= 0x0500)
#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_WHOLEDROPDOWN 0x0080
#endif /* _WIN32_IE >= 0x0500 */
#if _WIN32_IE >= 0x0501
#define BTNS_SHOWTEXT 0x0040
#endif
#if (_WIN32_IE >= 0x0400)
#define TBCDRF_NOEDGES 0x10000
#define TBCDRF_HILITEHOTTRACK 0x20000
#define TBCDRF_NOOFFSET 0x40000
#define TBCDRF_NOMARK 0x80000
#define TBCDRF_NOETCHEDEFFECT 0x100000
#endif /* _WIN32_IE >= 0x0400 */
#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
#if (_WIN32_IE >= 0x0300)
#define IDB_HIST_SMALL_COLOR 8
#define IDB_HIST_LARGE_COLOR 9
#endif
#define STD_CUT 0
#define STD_COPY 1
#define STD_PASTE 2
#define STD_UNDO 3
#define STD_REDOW 4
#define STD_DELETE 5
#define STD_FILENEW 6
#define STD_FILEOPEN 7
#define STD_FILESAVE 8
#define STD_PRINTPRE 9
#define STD_PROPERTIES 10
#define STD_HELP 11
#define STD_FIND 12
#define STD_REPLACE 13
#define STD_PRINT 14
#define VIEW_LARGEICONS 0
#define VIEW_SMALLICONS 1
#define VIEW_LIST 2
#define VIEW_DETAILS 3
#define VIEW_SORTNAME 4
#define VIEW_SORTSIZE 5
#define VIEW_SORTDATE 6
#define VIEW_SORTTYPE 7
#define VIEW_PARENTFOLDER 8
#define VIEW_NETCONNECT 9
#define VIEW_NETDISCONNECT 10
#define VIEW_NEWFOLDER 11
#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)
#if (_WIN32_IE >= 0x0400)
#define TB_MARKBUTTON (WM_USER+6)
#endif
#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)
#if (_WIN32_IE >= 0x0400)
#define TB_ISBUTTONHIGHLIGHTED (WM_USER+14)
#endif
#define TB_SETSTATE (WM_USER+17)
#define TB_GETSTATE (WM_USER+18)
#define TB_ADDBITMAP (WM_USER+19)
#if (_WIN32_IE >= 0x0400)
#define TB_ADDBUTTONSA (WM_USER+20)
#define TB_INSERTBUTTONA (WM_USER+21)
#else
#define TB_ADDBUTTONS (WM_USER+20)
#define TB_INSERTBUTTON (WM_USER+21)
#endif
#define TB_DELETEBUTTON (WM_USER+22)
#define TB_GETBUTTON (WM_USER+23)
#define TB_BUTTONCOUNT (WM_USER+24)
#define TB_COMMANDTOINDEX (WM_USER+25)
#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_GETBUTTONSIZE (WM_USER+58)
#define TB_SETBUTTONWIDTH (WM_USER+59)
#if (_WIN32_IE >= 0x0300)
#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)
#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)
#endif
#if _WIN32_IE >= 0x400
#define TB_GETOBJECT (WM_USER+62)
#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_INSERTBUTTONW (WM_USER+67)
#define TB_ADDBUTTONSW (WM_USER+68)
#define TB_HITTEST (WM_USER+69)
#define TB_SETEXTENDEDSTYLE (WM_USER+84)
#define TB_GETEXTENDEDSTYLE (WM_USER+85)
#define TB_SETDRAWTEXTFLAGS (WM_USER+70)
#define TB_GETHOTITEM (WM_USER+71)
#define TB_SETHOTITEM (WM_USER+72)
#define TB_SETANCHORHIGHLIGHT (WM_USER+73)
#define TB_GETANCHORHIGHLIGHT (WM_USER+74)
#define TB_MAPACCELERATORA (WM_USER+78)
#define TB_GETINSERTMARK (WM_USER+79)
#define TB_SETINSERTMARK (WM_USER+80)
#define TB_INSERTMARKHITTEST (WM_USER+81)
#define TB_MOVEBUTTON (WM_USER+82)
#define TB_GETMAXSIZE (WM_USER+83)
#define TB_SETEXTENDEDSTYLE (WM_USER+84)
#define TB_GETEXTENDEDSTYLE (WM_USER+85)
#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_MAPACCELERATORW (WM_USER+90)
#define TB_GETSTRINGW (WM_USER+91)
#define TB_GETSTRINGA (WM_USER+92)
#define TB_SETCOLORSCHEME CCM_SETCOLORSCHEME
#define TB_GETCOLORSCHEME CCM_GETCOLORSCHEME
#define TB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define TB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#endif
#define TBBF_LARGE 1
#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)
#if (_WIN32_IE >= 0x0300)
#define TBN_DROPDOWN (TBN_FIRST-10)
#endif
#if (_WIN32_IE >= 0x0400)
#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)
#endif
#if (_WIN32_IE >= 0x0500)
#define TBN_RESTORE (TBN_FIRST-21)
#define TBN_SAVE (TBN_FIRST-22)
#define TBN_INITCUSTOMIZE (TBN_FIRST-23)
#define TBNRF_HIDEHELP 1
#define TBNRF_ENDCUSTOMIZE 2
#define TBNF_IMAGE 1
#define TBNF_TEXT 2
#define TBNF_DI_SETITEM 0x10000000
#endif /* _WIN32_IE >= 0x0500 */
#define TTS_ALWAYSTIP 1
#define TTS_NOPREFIX 2
#if( _WIN32_IE >= 0x0500 )
#define TTS_NOANIMATE 0x10
#define TTS_NOFADE 0x20
#define TTS_BALLOON 0x40
#define TTS_CLOSE 0x80
#endif /* _WIN32_IE >= 0x0500 */
#define TTF_IDISHWND 1
#define TTF_CENTERTIP 2
#define TTF_RTLREADING 4
#define TTF_SUBCLASS 16
#if (_WIN32_IE >= 0x0300)
#define TTF_TRACK 0x0020
#define TTF_ABSOLUTE 0x0080
#define TTF_TRANSPARENT 0x0100
#if (_WIN32_IE >= 0x0501)
#define TTF_PARSELINKS 0x1000
#endif
#define TTF_DI_SETITEM 0x8000
#define TBCD_TICS 1
#define TBCD_THUMB 2
#define TBCD_CHANNEL 3
#endif /* _WIN32_IE >= 0x0300 */
#if (_WIN32_IE >= 0x0400)
#define TBDDRET_DEFAULT 0
#define TBDDRET_NODEFAULT 1
#define TBDDRET_TREATPRESSED 2
#define TBIMHT_AFTER 1
#define TBIMHT_BACKGROUND 2
#endif
#define TTDT_AUTOMATIC 0
#define TTDT_RESHOW 1
#define TTDT_AUTOPOP 2
#define TTDT_INITIAL 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)
#if (_WIN32_IE >= 0x0300)
#define TTM_TRACKACTIVATE (WM_USER+17)
#define TTM_TRACKPOSITION (WM_USER+18)
#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)
#define TTM_GETMARGIN (WM_USER+27)
#define TTM_POP (WM_USER+28)
#endif /* _WIN32_IE */
#if (_WIN32_IE >= 0x0400) /* IE4.0 ??? */
#define TTM_UPDATE (WM_USER+29)
#define TTM_GETBUBBLESIZE (WM_USER+30)
#define TTM_ADJUSTRECT (WM_USER+31)
#define TTM_SETTITLEA (WM_USER+32)
#define TTM_SETTITLEW (WM_USER+33)
#endif
#define TTN_GETDISPINFOA (TTN_FIRST - 0)
#define TTN_GETDISPINFOW (TTN_FIRST - 10)
#define TTN_NEEDTEXTA TTN_GETDISPINFOA
#define TTN_NEEDTEXTW TTN_GETDISPINFOW
#define TTN_SHOW (TTN_FIRST-1)
#define TTN_POP (TTN_FIRST-2)
#define UD_MAXVAL 0x7fff
#define UD_MINVAL (-UD_MAXVAL)
#define UDN_DELTAPOS (UDN_FIRST-1)
#define UDS_WRAP 1
#define UDS_SETBUDDYINT 2
#define UDS_ALIGNRIGHT 4
#define UDS_ALIGNLEFT 8
#define UDS_AUTOBUDDY 16
#define UDS_ARROWKEYS 32
#define UDS_HORZ 64
#define UDS_NOTHOUSANDS 128
#if ( _WIN32_IE >= 0x0300 )
#define UDS_HOTTRACK 0x0100
#endif /* _WIN32_IE >= 0x0300 */
#define UDM_SETRANGE (WM_USER+101)
#define UDM_GETRANGE (WM_USER+102)
#define UDM_SETPOS (WM_USER+103)
#define UDM_GETPOS (WM_USER+104)
#define UDM_SETBUDDY (WM_USER+105)
#define UDM_GETBUDDY (WM_USER+106)
#define UDM_SETACCEL (WM_USER+107)
#define UDM_GETACCEL (WM_USER+108)
#define UDM_SETBASE (WM_USER+109)
#define UDM_GETBASE (WM_USER+110)
#if (_WIN32_IE >= 0x0400)
#define UDM_SETRANGE32 (WM_USER+111)
#define UDM_GETRANGE32 (WM_USER+112)
#define UDM_SETPOS32 (WM_USER+113)
#define UDM_GETPOS32 (WM_USER+114)
#endif
#if (_WIN32_IE >= 0x0500)
#define UDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define UDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#endif
#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_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 SBT_OWNERDRAW 0x1000
#define SBT_NOBORDERS 256
#define SBT_POPOUT 512
#define SBT_RTLREADING 1024
#if( _WIN32_IE >= 0x0400 )
#define SBT_TOOLTIPS 0x0800
#define SBN_SIMPLEMODECHANGE (SBN_FIRST)
#endif /* _WIN32_IE >= 0x0400 */
#define TBS_AUTOTICKS 1
#define TBS_VERT 2
#define TBS_HORZ 0
#define TBS_TOP 4
#define TBS_BOTTOM 0
#define TBS_LEFT 4
#define TBS_RIGHT 0
#define TBS_BOTH 8
#define TBS_NOTICKS 16
#define TBS_ENABLESELRANGE 32
#define TBS_FIXEDLENGTH 64
#define TBS_NOTHUMB 128
#if (_WIN32_IE >= 0x0300)
#define TBS_TOOLTIPS 0x0100
#define TBTS_TOP 0
#define TBTS_LEFT 1
#define TBTS_BOTTOM 2
#define TBTS_RIGHT 3
#endif
#if (_WIN32_IE >= 0x0500)
#define TBS_REVERSED 0x0200
#endif
#if (_WIN32_IE >= 0x0501)
#define TBS_DOWNISLEFT 0x0400
#endif
#if _WIN32_IE >= 0x400
#define TBIF_BYINDEX 0x80000000
#define TBIF_COMMAND 32
#define TBIF_IMAGE 1
#define TBIF_LPARAM 16
#define TBIF_SIZE 64
#define TBIF_STATE 4
#define TBIF_STYLE 8
#define TBIF_TEXT 2
#endif
#define TBM_GETPOS (WM_USER)
#define TBM_GETRANGEMIN (WM_USER+1)
#define TBM_GETRANGEMAX (WM_USER+2)
#define TBM_GETTIC (WM_USER+3)
#define TBM_SETTIC (WM_USER+4)
#define TBM_SETPOS (WM_USER+5)
#define TBM_SETRANGE (WM_USER+6)
#define TBM_SETRANGEMIN (WM_USER+7)
#define TBM_SETRANGEMAX (WM_USER+8)
#define TBM_CLEARTICS (WM_USER+9)
#define TBM_SETSEL (WM_USER+10)
#define TBM_SETSELSTART (WM_USER+11)
#define TBM_SETSELEND (WM_USER+12)
#define TBM_GETPTICS (WM_USER+14)
#define TBM_GETTICPOS (WM_USER+15)
#define TBM_GETNUMTICS (WM_USER+16)
#define TBM_GETSELSTART (WM_USER+17)
#define TBM_GETSELEND (WM_USER+18)
#define TBM_CLEARSEL (WM_USER+19)
#define TBM_SETTICFREQ (WM_USER+20)
#define TBM_SETPAGESIZE (WM_USER+21)
#define TBM_GETPAGESIZE (WM_USER+22)
#define TBM_SETLINESIZE (WM_USER+23)
#define TBM_GETLINESIZE (WM_USER+24)
#define TBM_GETTHUMBRECT (WM_USER+25)
#define TBM_GETCHANNELRECT (WM_USER+26)
#define TBM_SETTHUMBLENGTH (WM_USER+27)
#define TBM_GETTHUMBLENGTH (WM_USER+28)
#define TBM_SETTOOLTIPS (WM_USER+29)
#define TBM_GETTOOLTIPS (WM_USER+30)
#define TBM_SETTIPSIDE (WM_USER+31)
#define TBM_SETBUDDY (WM_USER+32)
#define TBM_GETBUDDY (WM_USER+33)
#define TBM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define TBM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define TB_LINEUP 0
#define TB_LINEDOWN 1
#define TB_PAGEUP 2
#define TB_PAGEDOWN 3
#define TB_THUMBPOSITION 4
#define TB_THUMBTRACK 5
#define TB_TOP 6
#define TB_BOTTOM 7
#define TB_ENDTRACK 8
#define HOTKEYF_SHIFT 1
#define HOTKEYF_CONTROL 2
#define HOTKEYF_ALT 4
#define HOTKEYF_EXT 8
#define HKCOMB_NONE 1
#define HKCOMB_S 2
#define HKCOMB_C 4
#define HKCOMB_A 8
#define HKCOMB_SC 16
#define HKCOMB_SA 32
#define HKCOMB_CA 64
#define HKCOMB_SCA 128
#define HKM_SETHOTKEY (WM_USER+1)
#define HKM_GETHOTKEY (WM_USER+2)
#define HKM_SETRULES (WM_USER+3)
#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 LVS_ICON 0
#define LVS_REPORT 1
#define LVS_SMALLICON 2
#define LVS_LIST 3
#define LVS_TYPEMASK 3
#define LVS_SINGLESEL 4
#define LVS_SHOWSELALWAYS 8
#define LVS_SORTASCENDING 16
#define LVS_SORTDESCENDING 32
#define LVS_SHAREIMAGELISTS 64
#define LVS_NOLABELWRAP 128
#define LVS_AUTOARRANGE 256
#define LVS_EDITLABELS 512
#define LVS_NOSCROLL 0x2000
#define LVS_TYPESTYLEMASK 0xfc00
#define LVS_ALIGNTOP 0
#define LVS_ALIGNLEFT 0x800
#define LVS_ALIGNMASK 0xc00
#define LVS_OWNERDRAWFIXED 0x400
#define LVS_NOCOLUMNHEADER 0x4000
#define LVS_NOSORTHEADER 0x8000
#if (_WIN32_IE >= 0x0300)
#define CDIS_CHECKED 8
#define CDIS_DEFAULT 32
#define CDIS_DISABLED 4
#define CDIS_FOCUS 16
#define CDIS_GRAYED 2
#define CDIS_HOT 64
#define CDIS_SELECTED 1
#define CDIS_MARKED 128
#define CDIS_INDETERMINATE 256
#if (_WIN32_WINNT >= 0x0501)
#define CDIS_SHOWKEYBOARDCUES 512
#endif
#define CDDS_POSTERASE 4
#define CDDS_POSTPAINT 2
#define CDDS_PREERASE 3
#define CDDS_PREPAINT 1
#define CDDS_ITEM 65536
#define CDDS_ITEMPOSTERASE 65540
#define CDDS_ITEMPOSTPAINT 65538
#define CDDS_ITEMPREERASE 65539
#define CDDS_ITEMPREPAINT 65537
#if (_WIN32_IE >= 0x0400)
#define CDDS_SUBITEM 0x20000
#endif
/* FIXME: missing CDRF_NOTIFYSUBITEMDRAW */
#define CDRF_DODEFAULT 0
#define CDRF_NOTIFYITEMDRAW 32
#define CDRF_NOTIFYITEMERASE 128
#define CDRF_NOTIFYPOSTERASE 64
#define CDRF_NOTIFYPOSTPAINT 16
#define CDRF_NEWFONT 2
#define CDRF_SKIPDEFAULT 4
#if (_WIN32_IE >= 0x0400)
#define LVBKIF_SOURCE_NONE 0x00000000
#define LVBKIF_SOURCE_HBITMAP 0x00000001
#define LVBKIF_SOURCE_URL 0x00000002
#define LVBKIF_SOURCE_MASK 0x00000003
#define LVBKIF_STYLE_NORMAL 0x00000000
#define LVBKIF_STYLE_TILE 0x00000010
#define LVBKIF_STYLE_MASK 0x00000010
#endif /* _WIN32_IE >=0x0400 */
#if (_WIN32_WINNT >= 0x501)
#define LVBKIF_FLAG_TILEOFFSET 0x00000100
#define LVBKIF_TYPE_WATERMARK 0x10000000
#endif /* _WIN32_WINNT >= 0x501 */
#define LVS_OWNERDATA 4096
#define LVS_EX_CHECKBOXES 4
#define LVS_EX_FULLROWSELECT 32
#define LVS_EX_GRIDLINES 1
#define LVS_EX_HEADERDRAGDROP 16
#define LVS_EX_ONECLICKACTIVATE 64
#define LVS_EX_SUBITEMIMAGES 2
#define LVS_EX_TRACKSELECT 8
#define LVS_EX_TWOCLICKACTIVATE 128
#define LVSICF_NOINVALIDATEALL 0x00000001
#define LVSICF_NOSCROLL 0x00000002
#if( _WIN32_IE >= 0x0400 )
#define LVS_EX_FLATSB 0x00000100
#define LVS_EX_REGIONAL 0x00000200
#define LVS_EX_INFOTIP 0x00000400
#define LVS_EX_UNDERLINEHOT 0x00000800
#define LVS_EX_UNDERLINECOLD 0x00001000
#define LVS_EX_MULTIWORKAREAS 0x00002000
#endif /* _WIN32_IE >=0x0400 */
#if( _WIN32_IE >= 0x0500 )
#define LVS_EX_LABELTIP 0x00004000
#define LVS_EX_BORDERSELECT 0x00008000
#endif /* _WIN32_IE >= 0x0500 */
#endif /* _WIN32_IE >= 0x0300 */
#define LVSIL_NORMAL 0
#define LVSIL_SMALL 1
#define LVSIL_STATE 2
#define LVM_GETBKCOLOR LVM_FIRST
#define LVM_SETBKCOLOR (LVM_FIRST+1)
#define LVM_GETIMAGELIST (LVM_FIRST+2)
#define LVM_SETIMAGELIST (LVM_FIRST+3)
#define LVM_GETITEMCOUNT (LVM_FIRST+4)
#define LVIF_TEXT 1
#define LVIF_IMAGE 2
#define LVIF_PARAM 4
#define LVIF_STATE 8
#if (_WIN32_IE >= 0x0300)
#define LVIF_INDENT 16
#define LVIF_NORECOMPUTE 2048
#endif
#if (_WIN32_WINNT >= 0x0501)
#define LVIF_GROUPID 128
#define LVIF_COLUMNS 256
#endif
#define LVIS_FOCUSED 1
#define LVIS_SELECTED 2
#define LVIS_CUT 4
#define LVIS_DROPHILITED 8
#define LVIS_OVERLAYMASK 0xF00
#define LVIS_STATEIMAGEMASK 0xF000
#define LPSTR_TEXTCALLBACKW ((LPWSTR)-1)
#define LPSTR_TEXTCALLBACKA ((LPSTR)-1)
#define I_IMAGECALLBACK (-1)
#define LVM_GETITEMA (LVM_FIRST+5)
#define LVM_GETITEMW (LVM_FIRST+75)
#define LVM_SETITEMA (LVM_FIRST+6)
#define LVM_SETITEMW (LVM_FIRST+76)
#define LVM_INSERTITEMA (LVM_FIRST+7)
#define LVM_INSERTITEMW (LVM_FIRST+77)
#define LVM_DELETEITEM (LVM_FIRST+8)
#define LVM_DELETEALLITEMS (LVM_FIRST+9)
#define LVM_GETCALLBACKMASK (LVM_FIRST+10)
#define LVM_SETCALLBACKMASK (LVM_FIRST+11)
#if( _WIN32_IE >= 0x0400 )
#define LVM_SETBKIMAGEA (LVM_FIRST + 68)
#define LVM_SETBKIMAGEW (LVM_FIRST + 138)
#define LVM_GETBKIMAGEA (LVM_FIRST + 69)
#define LVM_GETBKIMAGEW (LVM_FIRST + 139)
#define LV_MAX_WORKAREAS 16
#define LVM_SETWORKAREAS (LVM_FIRST+65)
#define LVM_GETWORKAREAS (LVM_FIRST+70)
#define LVM_GETNUMBEROFWORKAREAS (LVM_FIRST+73)
#define LVM_GETSELECTIONMARK (LVM_FIRST+66)
#define LVM_SETSELECTIONMARK (LVM_FIRST+67)
#define LVM_SETHOVERTIME (LVM_FIRST+71)
#define LVM_GETHOVERTIME (LVM_FIRST+72)
#define LVM_SETTOOLTIPS (LVM_FIRST+74)
#define LVM_GETTOOLTIPS (LVM_FIRST+78)
#define LVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define LVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#endif /* _WIN32_IE >= 0x0400 */
#define LVNI_ALL 0
#define LVNI_FOCUSED 1
#define LVNI_SELECTED 2
#define LVNI_CUT 4
#define LVNI_DROPHILITED 8
#define LVNI_ABOVE 256
#define LVNI_BELOW 512
#define LVNI_TOLEFT 1024
#define LVNI_TORIGHT 2048
#define LVM_GETNEXTITEM (LVM_FIRST+12)
#define LVFI_PARAM 1
#define LVFI_STRING 2
#define LVFI_PARTIAL 8
#define LVFI_WRAP 32
#define LVFI_NEARESTXY 64
#define LVIF_DI_SETITEM 0x1000
#define LVM_FINDITEMA (LVM_FIRST+13)
#define LVM_FINDITEMW (LVM_FIRST+83)
#define LVIR_BOUNDS 0
#define LVIR_ICON 1
#define LVIR_LABEL 2
#define LVIR_SELECTBOUNDS 3
#define LVM_GETITEMRECT (LVM_FIRST+14)
#define LVM_SETITEMPOSITION (LVM_FIRST+15)
#define LVM_GETITEMPOSITION (LVM_FIRST+16)
#define LVM_GETSTRINGWIDTHA (LVM_FIRST+17)
#define LVM_GETSTRINGWIDTHW (LVM_FIRST+87)
#define LVHT_NOWHERE 1
#define LVHT_ONITEMICON 2
#define LVHT_ONITEMLABEL 4
#define LVHT_ONITEMSTATEICON 8
#define LVHT_ONITEM (LVHT_ONITEMICON|LVHT_ONITEMLABEL|LVHT_ONITEMSTATEICON)
#define LVHT_ABOVE 8
#define LVHT_BELOW 16
#define LVHT_TORIGHT 32
#define LVHT_TOLEFT 64
#define LVM_HITTEST (LVM_FIRST+18)
#define LVM_ENSUREVISIBLE (LVM_FIRST+19)
#define LVM_SCROLL (LVM_FIRST+20)
#define LVM_REDRAWITEMS (LVM_FIRST+21)
#define LVA_DEFAULT 0
#define LVA_ALIGNLEFT 1
#define LVA_ALIGNTOP 2
#define LVA_SNAPTOGRID 5
#define LVM_ARRANGE (LVM_FIRST+22)
#define LVM_EDITLABELA (LVM_FIRST+23)
#define LVM_EDITLABELW (LVM_FIRST+118)
#define LVM_GETEDITCONTROL (LVM_FIRST+24)
#define LVCF_FMT 1
#define LVCF_WIDTH 2
#define LVCF_TEXT 4
#define LVCF_SUBITEM 8
#if (_WIN32_IE >= 0x0300)
#define LVCF_IMAGE 16
#define LVCF_ORDER 32
#endif
#define LVCFMT_LEFT 0
#define LVCFMT_RIGHT 1
#define LVCFMT_CENTER 2
#define LVCFMT_JUSTIFYMASK 3
#if (_WIN32_IE >= 0x0300)
#define LVCFMT_BITMAP_ON_RIGHT 4096
#define LVCFMT_COL_HAS_IMAGES 32768
#define LVCFMT_IMAGE 2048
#endif
#define LVM_GETCOLUMNA (LVM_FIRST+25)
#define LVM_GETCOLUMNW (LVM_FIRST+95)
#define LVM_SETCOLUMNA (LVM_FIRST+26)
#define LVM_SETCOLUMNW (LVM_FIRST+96)
#define LVM_INSERTCOLUMNA (LVM_FIRST+27)
#define LVM_INSERTCOLUMNW (LVM_FIRST+97)
#define LVM_DELETECOLUMN (LVM_FIRST+28)
#define LVM_GETCOLUMNWIDTH (LVM_FIRST+29)
#define LVSCW_AUTOSIZE (-1)
#define LVSCW_AUTOSIZE_USEHEADER (-2)
#define LVM_SETCOLUMNWIDTH (LVM_FIRST+30)
#define LVM_CREATEDRAGIMAGE (LVM_FIRST+33)
#define LVM_GETVIEWRECT (LVM_FIRST+34)
#define LVM_GETTEXTCOLOR (LVM_FIRST+35)
#define LVM_SETTEXTCOLOR (LVM_FIRST+36)
#define LVM_GETTEXTBKCOLOR (LVM_FIRST+37)
#define LVM_SETTEXTBKCOLOR (LVM_FIRST+38)
#define LVM_GETTOPINDEX (LVM_FIRST+39)
#define LVM_GETCOUNTPERPAGE (LVM_FIRST+40)
#define LVM_GETORIGIN (LVM_FIRST+41)
#define LVM_GETORIGIN (LVM_FIRST+41)
#define LVM_UPDATE (LVM_FIRST+42)
#define LVM_SETITEMSTATE (LVM_FIRST+43)
#define LVM_GETITEMSTATE (LVM_FIRST+44)
#define LVM_GETITEMTEXTA (LVM_FIRST+45)
#define LVM_GETITEMTEXTW (LVM_FIRST+115)
#define LVM_SETITEMTEXTA (LVM_FIRST+46)
#define LVM_SETITEMTEXTW (LVM_FIRST+116)
#define LVM_SETITEMCOUNT (LVM_FIRST+47)
#define LVM_SORTITEMS (LVM_FIRST+48)
#define LVM_SETITEMPOSITION32 (LVM_FIRST+49)
#define LVM_GETSELECTEDCOUNT (LVM_FIRST+50)
#define LVM_GETITEMSPACING (LVM_FIRST+51)
#define LVM_GETISEARCHSTRINGA (LVM_FIRST+52)
#define LVM_GETISEARCHSTRINGW (LVM_FIRST+117)
#if (_WIN32_IE >= 0x0300)
#define LVM_APPROXIMATEVIEWRECT (LVM_FIRST+64)
#define LVM_SETEXTENDEDLISTVIEWSTYLE (LVM_FIRST+54)
#define LVM_GETEXTENDEDLISTVIEWSTYLE (LVM_FIRST+55)
#define LVM_SETCOLUMNORDERARRAY (LVM_FIRST+58)
#define LVM_GETCOLUMNORDERARRAY (LVM_FIRST+59)
#define LVM_GETHEADER (LVM_FIRST+31)
#define LVM_GETHOTCURSOR (LVM_FIRST+63)
#define LVM_GETHOTITEM (LVM_FIRST+61)
#define LVM_GETSUBITEMRECT (LVM_FIRST+56)
#define LVM_SETHOTCURSOR (LVM_FIRST+62)
#define LVM_SETHOTITEM (LVM_FIRST+60)
#define LVM_SETICONSPACING (LVM_FIRST+53)
#define LVM_SUBITEMHITTEST (LVM_FIRST+57)
#endif
#define LVN_ITEMCHANGING LVN_FIRST
#define LVN_ITEMCHANGED (LVN_FIRST-1)
#define LVN_INSERTITEM (LVN_FIRST-2)
#define LVN_DELETEITEM (LVN_FIRST-3)
#define LVN_DELETEALLITEMS (LVN_FIRST-4)
#define LVN_BEGINLABELEDITA (LVN_FIRST-5)
#define LVN_BEGINLABELEDITW (LVN_FIRST-75)
#define LVN_ENDLABELEDITA (LVN_FIRST-6)
#define LVN_ENDLABELEDITW (LVN_FIRST-76)
#define LVN_COLUMNCLICK (LVN_FIRST-8)
#define LVN_BEGINDRAG (LVN_FIRST-9)
#define LVN_BEGINRDRAG (LVN_FIRST-11)
#define LVN_GETDISPINFOA (LVN_FIRST-50)
#define LVN_GETDISPINFOW (LVN_FIRST-77)
#define LVN_SETDISPINFOA (LVN_FIRST-51)
#define LVN_SETDISPINFOW (LVN_FIRST-78)
#define LVN_KEYDOWN (LVN_FIRST-55)
#if (_WIN32_IE >= 0x0400)
#define LVN_GETINFOTIPA (LVN_FIRST-57)
#define LVN_GETINFOTIPW (LVN_FIRST-58)
#define LVKF_ALT 0x0001
#define LVKF_CONTROL 0x0002
#define LVKF_SHIFT 0x0004
#define LVGIT_UNFOLDED 1
#endif
#define TVS_HASBUTTONS 1
#define TVS_HASLINES 2
#define TVS_LINESATROOT 4
#define TVS_EDITLABELS 8
#define TVS_DISABLEDRAGDROP 16
#define TVS_SHOWSELALWAYS 32
#if (_WIN32_IE >= 0x0300)
#define TVS_CHECKBOXES 256
#define TVS_NOTOOLTIPS 128
#define TVS_RTLREADING 64
#define TVS_TRACKSELECT 512
#endif
#if (_WIN32_IE >= 0x0400)
#define TVS_FULLROWSELECT 4096
#define TVS_INFOTIP 2048
#define TVS_NONEVENHEIGHT 16384
#define TVS_NOSCROLL 8192
#define TVS_SINGLEEXPAND 1024
#endif
#if( _WIN32_IE >= 0x0500 )
#define TVS_NOHSCROLL 0x8000
#endif /* _WIN32_IE >= 0x0500 */
#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
#if (_WIN32_IE >= 0x0400)
#define TVIF_INTEGRAL 0x0080
#endif /* _WIN32_IE >= 0x0400 */
#define TVIS_FOCUSED 1
#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_OVERLAYMASK 0xF00
#define TVIS_STATEIMAGEMASK 0xF000
#define TVIS_USERMASK 0xF000
#define I_CHILDRENCALLBACK (-1)
#define TVI_ROOT ((HTREEITEM)0xFFFF0000)
#define TVI_FIRST ((HTREEITEM)0xFFFF0001)
#define TVI_LAST ((HTREEITEM)0xFFFF0002)
#define TVI_SORT ((HTREEITEM)0xFFFF0003)
#define TVSIL_NORMAL 0
#define TVSIL_STATE 2
#define TVM_INSERTITEMA TV_FIRST
#define TVM_INSERTITEMW (TV_FIRST+50)
#define TVM_DELETEITEM (TV_FIRST+1)
#define TVM_EXPAND (TV_FIRST+2)
#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 TVM_SETIMAGELIST (TV_FIRST+9)
#define TVM_GETNEXTITEM (TV_FIRST+10)
#define TVM_SELECTITEM (TV_FIRST+11)
#define TVM_GETITEMA (TV_FIRST+12)
#define TVM_GETITEMW (TV_FIRST+62)
#define TVM_SETITEMA (TV_FIRST+13)
#define TVM_SETITEMW (TV_FIRST+63)
#define TVM_EDITLABELA (TV_FIRST+14)
#define TVM_EDITLABELW (TV_FIRST+65)
#define TVM_GETEDITCONTROL (TV_FIRST+15)
#define TVM_GETVISIBLECOUNT (TV_FIRST+16)
#define TVM_HITTEST (TV_FIRST+17)
#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)
#if (_WIN32_IE >= 0x0300)
#define TVM_GETTOOLTIPS (TV_FIRST+25)
#define TVM_SETTOOLTIPS (TV_FIRST+24)
#endif
#if (_WIN32_IE >= 0x0400)
#define TVM_GETBKCOLOR (TV_FIRST+31)
#define TVM_GETINSERTMARKCOLOR (TV_FIRST+38)
#define TVM_GETITEMHEIGHT (TV_FIRST+28)
#define TVM_GETSCROLLTIME (TV_FIRST+34)
#define TVM_GETTEXTCOLOR (TV_FIRST+32)
#define TVM_SETBKCOLOR (TV_FIRST+29)
#define TVM_SETINSERTMARK (TV_FIRST+26)
#define TVM_SETINSERTMARKCOLOR (TV_FIRST+37)
#define TVM_SETITEMHEIGHT (TV_FIRST+27)
#define TVM_SETSCROLLTIME (TV_FIRST+33)
#define TVM_SETTEXTCOLOR (TV_FIRST+30)
#define TVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define TVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#endif
#if (_WIN32_IE >= 0x0500)
#define TVM_GETITEMSTATE (TV_FIRST+39)
#define TVM_SETLINECOLOR (TV_FIRST+40)
#define TVM_GETLINECOLOR (TV_FIRST+41)
#endif
#define TVE_COLLAPSE 1
#define TVE_EXPAND 2
#define TVE_TOGGLE 3
#define TVE_COLLAPSERESET 0x8000
#if (_WIN32_IE >= 0x0300)
#define TVE_EXPANDPARTIAL 0x4000
#endif
#define TVC_UNKNOWN 0
#define TVC_BYMOUSE 1
#define TVC_BYKEYBOARD 2
#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
#if (_WIN32_IE >= 0x0400)
#define TVGN_LASTVISIBLE 10
#endif
#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 TVN_GETDISPINFOA (TVN_FIRST-3)
#define TVN_GETDISPINFOW (TVN_FIRST-52)
#define TVN_SETDISPINFOA (TVN_FIRST-4)
#define TVN_SETDISPINFOW (TVN_FIRST-53)
#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)
#if (_WIN32_IE >= 0x0400)
#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
#endif /* _WIN32_IE >= 0x0400 */
#define TVIF_DI_SETITEM 0x1000
#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 TCHT_NOWHERE 1
#define TCHT_ONITEMICON 2
#define TCHT_ONITEMLABEL 4
#define TCHT_ONITEM (TCHT_ONITEMICON|TCHT_ONITEMLABEL)
#define TCS_FORCEICONLEFT 16
#define TCS_FORCELABELLEFT 32
#define TCS_TABS 0
#define TCS_BUTTONS 256
#define TCS_SINGLELINE 0
#define TCS_MULTILINE 512
#define TCS_RIGHTJUSTIFY 0
#define TCS_FIXEDWIDTH 1024
#define TCS_RAGGEDRIGHT 2048
#define TCS_FOCUSONBUTTONDOWN 0x1000
#define TCS_OWNERDRAWFIXED 0x2000
#define TCS_TOOLTIPS 0x4000
#define TCS_FOCUSNEVER 0x8000
#if (_WIN32_IE >= 0x0300)
#define TCS_BOTTOM 2
#define TCS_RIGHT 2
#define TCS_VERTICAL 128
#define TCS_SCROLLOPPOSITE 0x0001
#define TCS_HOTTRACK 0x0040
#define TCS_MULTISELECT 0x0004
#endif
#if( _WIN32_IE >= 0x0400 )
#define TCS_FLATBUTTONS 0x0008
#define TCS_EX_FLATSEPARATORS 0x00000001
#define TCS_EX_REGISTERDROP 0x00000002
#endif /* _WIN32_IE >= 0x0400 */
#define TCIF_TEXT 1
#define TCIF_IMAGE 2
#define TCIF_RTLREADING 4
#define TCIF_PARAM 8
#if (_WIN32_IE >= 0x0400)
#define TCIF_STATE 16
#endif
#define TCIS_BUTTONPRESSED 1
#if (_WIN32_IE >= 0x0400)
#define TCIS_HIGHLIGHTED 2
#endif
#define TCM_FIRST 0x1300
#define TCM_GETIMAGELIST (TCM_FIRST+2)
#define TCM_SETIMAGELIST (TCM_FIRST+3)
#define TCM_GETITEMCOUNT (TCM_FIRST+4)
#define TCM_GETITEMA (TCM_FIRST+5)
#define TCM_GETITEMW (TCM_FIRST+60)
#define TCM_SETITEMA (TCM_FIRST+6)
#define TCM_SETITEMW (TCM_FIRST+61)
#define TCM_INSERTITEMA (TCM_FIRST+7)
#define TCM_INSERTITEMW (TCM_FIRST+62)
#define TCM_DELETEITEM (TCM_FIRST+8)
#define TCM_DELETEALLITEMS (TCM_FIRST+9)
#define TCM_GETITEMRECT (TCM_FIRST+10)
#define TCM_GETCURSEL (TCM_FIRST+11)
#define TCM_SETCURSEL (TCM_FIRST+12)
#define TCM_HITTEST (TCM_FIRST+13)
#define TCM_SETITEMEXTRA (TCM_FIRST+14)
#define TCM_ADJUSTRECT (TCM_FIRST+40)
#define TCM_SETITEMSIZE (TCM_FIRST+41)
#define TCM_REMOVEIMAGE (TCM_FIRST+42)
#define TCM_SETPADDING (TCM_FIRST+43)
#define TCM_GETROWCOUNT (TCM_FIRST+44)
#define TCM_GETTOOLTIPS (TCM_FIRST+45)
#define TCM_SETTOOLTIPS (TCM_FIRST+46)
#define TCM_GETCURFOCUS (TCM_FIRST+47)
#define TCM_SETCURFOCUS (TCM_FIRST+48)
#define TCM_SETMINTABWIDTH (TCM_FIRST + 49)
#define TCM_DESELECTALL (TCM_FIRST + 50)
#if (_WIN32_IE >=0x0400)
#define TCM_HIGHLIGHTITEM (TCM_FIRST + 51)
#define TCM_SETEXTENDEDSTYLE (TCM_FIRST + 52)
#define TCM_GETEXTENDEDSTYLE (TCM_FIRST + 53)
#define TCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define TCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#endif /* _WIN32_IE >=0x0400 */
#define TCN_KEYDOWN TCN_FIRST
#define TCN_SELCHANGE (TCN_FIRST-1)
#define TCN_SELCHANGING (TCN_FIRST-2)
#define NM_OUTOFMEMORY (NM_FIRST-1)
#define NM_CLICK (NM_FIRST-2)
#define NM_DBLCLK (NM_FIRST-3)
#define NM_RETURN (NM_FIRST-4)
#define NM_RCLICK (NM_FIRST-5)
#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)
#define NM_KEYDOWN (NM_FIRST-15)
#define NM_RELEASEDCAPTURE (NM_FIRST-16)
#define NM_SETCURSOR (NM_FIRST-17)
#define NM_CHAR (NM_FIRST-18)
#define NM_TOOLTIPSCREATED (NM_FIRST-19)
#define SBARS_SIZEGRIP 256
#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
#if (_WIN32_WINNT >= 0x0501)
#define CCM_SETWINDOWTHEME 0x200b
#define CCM_DPISCALE 0x200c
#endif
#define ICC_LISTVIEW_CLASSES 1
#define ICC_TREEVIEW_CLASSES 2
#define ICC_BAR_CLASSES 4
#define ICC_TAB_CLASSES 8
#define ICC_UPDOWN_CLASS 16
#define ICC_PROGRESS_CLASS 32
#define ICC_HOTKEY_CLASS 64
#define ICC_ANIMATE_CLASS 128
#define ICC_WIN95_CLASSES 255
#define ICC_DATE_CLASSES 256
#define ICC_USEREX_CLASSES 512
#define ICC_COOL_CLASSES 1024
#if (_WIN32_IE >= 0x0400)
#define ICC_INTERNET_CLASSES 2048
#define ICC_PAGESCROLLER_CLASS 4096
#define ICC_NATIVEFNTCTL_CLASS 8192
#define INFOTIPSIZE 1024
#endif /* _WIN32_IE */
#if (_WIN32_WINNT >= 0x501)
#define ICC_STANDARD_CLASSES 0x00004000
#define ICC_LINK_CLASS 0x00008000
#endif
#define GDTR_MIN 1
#define GDTR_MAX 2
#define GMR_VISIBLE 0
#define GMR_DAYSTATE 1
#define GDT_ERROR -1
#define GDT_VALID 0
#define GDT_NONE 1
#define DTS_UPDOWN 1
#define DTS_SHOWNONE 2
#define DTS_SHORTDATEFORMAT 0
#define DTS_LONGDATEFORMAT 4
#define DTS_TIMEFORMAT 9
#define DTS_APPCANPARSE 16
#define DTS_RIGHTALIGN 32
#if ( _WIN32_IE >= 0x500 )
#define DTS_SHORTDATECENTURYFORMAT 0x000C
#endif /* _WIN32_IE >= 0x500 */
#define MCS_DAYSTATE 1
#define MCS_MULTISELECT 2
#define MCS_WEEKNUMBERS 4
#if (_WIN32_IE >= 0x0400)
#define MCS_NOTODAYCIRCLE 0x0008
#define MCS_NOTODAY 0x0010
#else /* _WIN32_IE >= 0x0400 */
#define MCS_NOTODAY 0x0008
#endif /* _WIN32_IE >= 0x0400 */
#define DTM_GETSYSTEMTIME 0x1001
#define DTM_SETSYSTEMTIME 0x1002
#define DTM_GETRANGE 0x1003
#define DTM_SETRANGE 0x1004
#define DTM_SETFORMATA 0x1005
#define DTM_SETFORMATW 0x1050
#define DTM_SETMCCOLOR 0x1006
#define DTM_GETMCCOLOR 0x1007
#define DTM_GETMONTHCAL 0x1008
#define DTM_SETMCFONT 0x1009
#define DTM_GETMCFONT 0x100a
#define DTN_USERSTRINGA ((UINT)-758)
#define DTN_USERSTRINGW ((UINT)-745)
#define DTN_WMKEYDOWNA ((UINT)-757)
#define DTN_WMKEYDOWNW ((UINT)-744)
#define DTN_FORMATA ((UINT)-756)
#define DTN_FORMATW ((UINT)-743)
#define DTN_FORMATQUERYA ((UINT)-755)
#define DTN_FORMATQUERYW ((UINT)-742)
#define DTN_DROPDOWN ((UINT)-754)
#define DTN_CLOSEUP ((UINT)-753)
#define DTN_DATETIMECHANGE ((UINT)-759)
#define MCM_GETCURSEL 0x1001
#define MCM_SETCURSEL 0x1002
#define MCM_GETMAXSELCOUNT 0x1003
#define MCM_SETMAXSELCOUNT 0x1004
#define MCM_GETSELRANGE 0x1005
#define MCM_SETSELRANGE 0x1006
#define MCM_GETMONTHRANGE 0x1007
#define MCM_SETDAYSTATE 0x1008
#define MCM_GETMINREQRECT 0x1009
#define MCM_SETCOLOR 0x100a
#define MCM_GETCOLOR 0x100b
#define MCM_SETTODAY 0x100c
#define MCM_GETTODAY 0x100d
#define MCM_HITTEST 0x100e
#define MCM_SETFIRSTDAYOFWEEK 0x100f
#define MCM_GETFIRSTDAYOFWEEK 0x1010
#define MCM_GETRANGE 0x1011
#define MCM_SETRANGE 0x1012
#define MCM_GETMONTHDELTA 0x1013
#define MCM_SETMONTHDELTA 0x1014
#define MCM_GETMAXTODAYWIDTH 0x1015
#define MCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define MCM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define MCN_SELCHANGE ((UINT)-749)
#define MCN_GETDAYSTATE ((UINT)-747)
#define MCN_SELECT ((UINT)-746)
#define ODT_HEADER 100
#define ODT_TAB 101
#define ODT_LISTVIEW 102
#define SB_SETBKCOLOR 0x2001
#if (_WIN32_IE >= 0x0300)
#define SB_ISSIMPLE 1038
#define MCSC_BACKGROUND 0
#define MCSC_TEXT 1
#define MCSC_TITLEBK 2
#define MCSC_TITLETEXT 3
#define MCSC_MONTHBK 4
#define MCSC_TRAILINGTEXT 5
#endif
#if (_WIN32_IE >= 0x0400)
#define MCHT_TITLE 0x10000
#define MCHT_CALENDAR 0x20000
#define MCHT_TODAYLINK 0x30000
#define MCHT_NEXT 0x1000000
#define MCHT_PREV 0x2000000
#define MCHT_NOWHERE 0x00
#define MCHT_TITLEBK (MCHT_TITLE)
#define MCHT_TITLEMONTH (MCHT_TITLE | 0x0001)
#define MCHT_TITLEYEAR (MCHT_TITLE | 0x0002)
#define MCHT_TITLEBTNNEXT (MCHT_TITLE | MCHT_NEXT | 0x0003)
#define MCHT_TITLEBTNPREV (MCHT_TITLE | MCHT_PREV | 0x0003)
#define MCHT_CALENDARBK (MCHT_CALENDAR)
#define MCHT_CALENDARDATE (MCHT_CALENDAR | 0x0001)
#define MCHT_CALENDARDATENEXT (MCHT_CALENDARDATE | MCHT_NEXT)
#define MCHT_CALENDARDATEPREV (MCHT_CALENDARDATE | MCHT_PREV)
#define MCHT_CALENDARDAY (MCHT_CALENDAR | 0x0002)
#define MCHT_CALENDARWEEKNUM (MCHT_CALENDAR | 0x0003)
#endif /* _WIN32_IE >= 0x0400 */
#define RBS_TOOLTIPS 256
#define RBS_VARHEIGHT 512
#define RBS_BANDBORDERS 1024
#define RBS_FIXEDORDER 2048
#define RBIM_IMAGELIST 1
#define RB_SETCOLORSCHEME CCM_SETCOLORSCHEME
#define RB_GETCOLORSCHEME CCM_GETCOLORSCHEME
#define RBBS_BREAK 1
#define RBBS_FIXEDSIZE 2
#define RBBS_CHILDEDGE 4
#define RBBS_HIDDEN 8
#define RBBS_NOVERT 16
#define RBBS_FIXEDBMP 32
#if (_WIN32_IE >= 0x0501)
#define RBBS_HIDETITLE 0x400
#define RBBS_TOPALIGN 0x800
#endif /* _WIN32_IE >= 0x0501 */
#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 RB_INSERTBANDA (WM_USER+1)
#define RB_INSERTBANDW (WM_USER+10)
#define RB_DELETEBAND (WM_USER+2)
#define RB_GETBARINFO (WM_USER+3)
#define RB_SETBARINFO (WM_USER+4)
#define RB_GETBANDCOUNT (WM_USER+12)
#define RB_GETROWCOUNT (WM_USER+13)
#define RB_GETROWHEIGHT (WM_USER+14)
#define RB_SETBANDINFOA (WM_USER+6)
#define RB_SETBANDINFOW (WM_USER+11)
#define RB_SETPARENT (WM_USER+7)
#define RBN_HEIGHTCHANGE RBN_FIRST
#if (_WIN32_IE >= 0x0300)
#define LVN_ODCACHEHINT (LVN_FIRST-13)
#define LVN_ODFINDITEMA (LVN_FIRST-52)
#define LVN_ODFINDITEMW (LVN_FIRST-79)
#define LVN_ITEMACTIVATE (LVN_FIRST-14)
#define LVN_ODSTATECHANGED (LVN_FIRST-15)
#ifdef UNICODE
#define LVN_ODFINDITEM LVN_ODFINDITEMW
#else
#define LVN_ODFINDITEM LVN_ODFINDITEMA
#endif
#endif /* _WIN32_IE */
#if (_WIN32_IE >= 0x0400)
#define SB_SETICON 1039
#define SB_SETTIPTEXTA 1040
#define SB_SETTIPTEXTW 1041
#define SB_GETTIPTEXTA 1042
#define SB_GETTIPTEXTW 1043
#define SB_GETICON 1044
#define SB_SETUNICODEFORMAT 0x2005
#define SB_GETUNICODEFORMAT 0x2006
#define PGF_INVISIBLE 0
#define PGF_NORMAL 1
#define PGF_GRAYED 2
#define PGF_DEPRESSED 4
#define PGF_HOT 8
#define PGB_TOPORLEFT 0
#define PGB_BOTTOMORRIGHT 1
#define PGF_SCROLLUP 1
#define PGF_SCROLLDOWN 2
#define PGF_SCROLLLEFT 4
#define PGF_SCROLLRIGHT 8
#define PGK_SHIFT 1
#define PGK_CONTROL 2
#define PGK_MENU 4
#define PGF_CALCWIDTH 1
#define PGF_CALCHEIGHT 2
#define PGM_FIRST 0x1400
#define PGM_SETCHILD (PGM_FIRST+1)
#define PGM_RECALCSIZE (PGM_FIRST+2)
#define PGM_FORWARDMOUSE (PGM_FIRST+3)
#define PGM_SETBKCOLOR (PGM_FIRST+4)
#define PGM_GETBKCOLOR (PGM_FIRST+5)
#define PGM_SETBORDER (PGM_FIRST+6)
#define PGM_GETBORDER (PGM_FIRST+7)
#define PGM_SETPOS (PGM_FIRST+8)
#define PGM_GETPOS (PGM_FIRST+9)
#define PGM_SETBUTTONSIZE (PGM_FIRST+10)
#define PGM_GETBUTTONSIZE (PGM_FIRST+11)
#define PGM_GETBUTTONSTATE (PGM_FIRST+12)
#define PGM_GETDROPTARGET CCM_GETDROPTARGET
#define RBS_REGISTERDROP 4096
#define RBS_AUTOSIZE 8192
#define RBS_VERTICALGRIPPER 16384
#define RBS_DBLCLKTOGGLE 32768
#define RBBS_VARIABLEHEIGHT 64
#define RBBS_GRIPPERALWAYS 128
#define RBBS_NOGRIPPER 256
#define RBBIM_IDEALSIZE 512
#define RBBIM_LPARAM 1024
#define RBBIM_HEADERSIZE 2048
#define RB_HITTEST (WM_USER+8)
#define RB_GETRECT (WM_USER+9)
#define RB_IDTOINDEX (WM_USER+16)
#define RB_GETTOOLTIPS (WM_USER+17)
#define RB_SETTOOLTIPS (WM_USER+18)
#define RB_SETBKCOLOR (WM_USER+19)
#define RB_GETBKCOLOR (WM_USER+20)
#define RB_SETTEXTCOLOR (WM_USER+21)
#define RB_GETTEXTCOLOR (WM_USER+22)
#define RB_SIZETORECT (WM_USER+23)
#define RB_BEGINDRAG (WM_USER+24)
#define RB_ENDDRAG (WM_USER+25)
#define RB_DRAGMOVE (WM_USER+26)
#define RB_GETBARHEIGHT (WM_USER+27)
#define RB_GETBANDINFOW (WM_USER+28)
#define RB_GETBANDINFOA (WM_USER+29)
#define RB_MINIMIZEBAND (WM_USER+30)
#define RB_MAXIMIZEBAND (WM_USER+31)
#define RB_GETDROPTARGET CCM_GETDROPTARGET
#define RB_GETBANDBORDERS (WM_USER+34)
#define RB_SHOWBAND (WM_USER+35)
#define RB_SETPALETTE (WM_USER+37)
#define RB_GETPALETTE (WM_USER+38)
#define RB_MOVEBAND (WM_USER+39)
#define RB_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define RB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define RBN_GETOBJECT (RBN_FIRST-1)
#define RBN_LAYOUTCHANGED (RBN_FIRST-2)
#define RBN_AUTOSIZE (RBN_FIRST-3)
#define RBN_BEGINDRAG (RBN_FIRST-4)
#define RBN_ENDDRAG (RBN_FIRST-5)
#define RBN_DELETINGBAND (RBN_FIRST-6)
#define RBN_DELETEDBAND (RBN_FIRST-7)
#define RBN_CHILDSIZE (RBN_FIRST-8)
#define RBNM_ID 1
#define RBNM_STYLE 2
#define RBNM_LPARAM 4
#define RBHT_NOWHERE 1
#define RBHT_CAPTION 2
#define RBHT_CLIENT 3
#define RBHT_GRABBER 4
#ifdef UNICODE
#define SB_SETTIPTEXT SB_SETTIPTEXTW
#define SB_GETTIPTEXT SB_GETTIPTEXTW
#define RB_GETBANDINFO RB_GETBANDINFOW
#else
#define SB_SETTIPTEXT SB_SETTIPTEXTA
#define SB_GETTIPTEXT SB_GETTIPTEXTA
#define RB_GETBANDINFO RB_GETBANDINFOA
#endif
#else
#define RB_GETBANDINFO (WM_USER+5)
#endif /* _WIN32_IE >= 0x0400 */
#define CBEM_INSERTITEMA (WM_USER + 1)
#define CBEM_SETIMAGELIST (WM_USER + 2)
#define CBEM_GETIMAGELIST (WM_USER + 3)
#define CBEM_GETITEMA (WM_USER + 4)
#define CBEM_SETITEMA (WM_USER + 5)
#define CBEM_DELETEITEM CB_DELETESTRING
#define CBEM_GETCOMBOCONTROL (WM_USER + 6)
#define CBEM_GETEDITCONTROL (WM_USER + 7)
#define CBEM_SETEXSTYLE (WM_USER + 8)
#define CBEM_GETEXSTYLE (WM_USER + 9)
#if (_WIN32_IE >= 0x0400)
#define CBEM_SETEXTENDEDSTYLE (WM_USER + 14)
#define CBEM_GETEXTENDEDSTYLE (WM_USER + 9)
#define CBEM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
#define CBEM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#endif /* _WIN32_IE >= 0x0400 */
#define CBEM_HASEDITCHANGED (WM_USER + 10)
#define CBEM_INSERTITEMW (WM_USER + 11)
#define CBEM_SETITEMW (WM_USER + 12)
#define CBEM_GETITEMW (WM_USER + 13)
#define DA_LAST 0x7fffffff
#define DPA_APPEND 0x7fffffff
#define DPA_ERR -1
#define DSA_APPEND 0x7fffffff
#define DSA_ERR -1
#define DPAS_SORTED 1
#define DPAS_INSERTBEFORE 2
#define DPAS_INSERTAFTER 4
#if (_WIN32_IE >= 0x400)
#define WSB_PROP_CYVSCROLL 1
#define WSB_PROP_CXHSCROLL 2
#define WSB_PROP_CYHSCROLL 4
#define WSB_PROP_CXVSCROLL 8
#define WSB_PROP_CXHTHUMB 16
#define WSB_PROP_CYVTHUMB 32
#define WSB_PROP_VBKGCOLOR 64
#define WSB_PROP_HBKGCOLOR 128
#define WSB_PROP_VSTYLE 256
#define WSB_PROP_HSTYLE 512
#define WSB_PROP_WINSTYLE 1024
#define WSB_PROP_PALETTE 2048
#define WSB_PROP_MASK 0xfff
#define FSB_FLAT_MODE 2
#define FSB_ENCARTA_MODE 1
#define FSB_REGULAR_MODE 0
#endif /* _WIN32_IE >= 0x400 */
#ifndef RC_INVOKED
typedef struct tagCOMBOBOXEXITEMA{
UINT mask;
int iItem;
LPSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int iOverlay;
int iIndent;
LPARAM lParam;
} COMBOBOXEXITEMA, *PCOMBOBOXEXITEMA;
typedef COMBOBOXEXITEMA CONST *PCCOMBOEXITEMA;
typedef struct tagCOMBOBOXEXITEMW{
UINT mask;
int iItem;
LPWSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int iOverlay;
int iIndent;
LPARAM lParam;
} COMBOBOXEXITEMW, *PCOMBOBOXEXITEMW;
typedef COMBOBOXEXITEMW CONST *PCCOMBOEXITEMW;
#if (_WIN32_IE >= 0x0400)
typedef struct {
NMHDR hdr;
COMBOBOXEXITEMA ceItem;
} NMCOMBOBOXEXA, *PNMCOMBOBOXEXA;
typedef struct {
NMHDR hdr;
COMBOBOXEXITEMW ceItem;
} NMCOMBOBOXEXW, *PNMCOMBOBOXEXW;
typedef struct {
NMHDR hdr;
int iItemid;
WCHAR szText[CBEMAXSTRLEN];
}NMCBEDRAGBEGINW, *LPNMCBEDRAGBEGINW, *PNMCBEDRAGBEGINW;
typedef struct {
NMHDR hdr;
int iItemid;
char szText[CBEMAXSTRLEN];
}NMCBEDRAGBEGINA, *LPNMCBEDRAGBEGINA, *PNMCBEDRAGBEGINA;
typedef struct tagNMIPADDRESS{
NMHDR hdr;
int iField;
int iValue;
} NMIPADDRESS, *LPNMIPADDRESS;
typedef struct tagLVKEYDOWN {
NMHDR hdr;
WORD wVKey;
UINT flags;
} NMLVKEYDOWN, *LPNMLVKEYDOWN;
typedef struct {
NMHDR hdr;
DWORD dwFlag;
int iWidth;
int iHeight;
} NMPGCALCSIZE, *LPNMPGCALCSIZE;
typedef struct {
NMHDR hdr;
BOOL fwKeys;
RECT rcParent;
int iDir;
int iXpos;
int iYpos;
int iScroll;
} NMPGSCROLL, *LPNMPGSCROLL;
typedef struct tagNMSELCHANGE {
NMHDR nmhdr;
SYSTEMTIME stSelStart;
SYSTEMTIME stSelEnd;
} NMSELCHANGE, *LPNMSELCHANGE;
typedef struct tagNMTBHOTITEM {
NMHDR hdr;
int idOld;
int idNew;
DWORD dwFlags;
} NMTBHOTITEM, *LPNMTBHOTITEM;
typedef struct {
NMHDR hdr;
DWORD dwMask;
int idCommand;
DWORD_PTR lParam;
int iImage;
LPSTR pszText;
int cchText;
} NMTBDISPINFOA, *LPNMTBDISPINFOA;
typedef struct {
NMHDR hdr;
DWORD dwMask;
int idCommand;
DWORD_PTR lParam;
int iImage;
LPWSTR pszText;
int cchText;
} NMTBDISPINFOW, *LPNMTBDISPINFOW;
typedef struct tagNMTBGETINFOTIPA
{
NMHDR hdr;
LPSTR pszText;
int cchTextMax;
int iItem;
LPARAM lParam;
} NMTBGETINFOTIPA, *LPNMTBGETINFOTIPA;
typedef struct tagNMTBGETINFOTIPW
{
NMHDR hdr;
LPWSTR pszText;
int cchTextMax;
int iItem;
LPARAM lParam;
} NMTBGETINFOTIPW, *LPNMTBGETINFOTIPW;
typedef struct tagNMMOUSE {
NMHDR hdr;
DWORD_PTR dwItemSpec;
DWORD_PTR dwItemData;
POINT pt;
LPARAM dwHitInfo;
} NMMOUSE, *LPNMMOUSE;
#endif /*_WIN32_IE >= 0x0400 */
#if (_WIN32_IE >= 0x0401)
typedef struct tagNMTOOLTIPSCREATED
{
NMHDR hdr;
HWND hwndToolTips;
} NMTOOLTIPSCREATED, *LPNMTOOLTIPSCREATED;
#endif
typedef struct tagNMDATETIMECHANGE
{
NMHDR nmhdr;
DWORD dwFlags;
SYSTEMTIME st;
} NMDATETIMECHANGE, *LPNMDATETIMECHANGE;
typedef struct {
NMHDR hdr;
BOOL fChanged;
int iNewSelection;
WCHAR szText[CBEMAXSTRLEN];
int iWhy;
} NMCBEENDEDITW, *LPNMCBEENDEDITW, *PNMCBEENDEDITW;
typedef struct {
NMHDR hdr;
BOOL fChanged;
int iNewSelection;
char szText[CBEMAXSTRLEN];
int iWhy;
} NMCBEENDEDITA, *LPNMCBEENDEDITA,*PNMCBEENDEDITA;
typedef struct _COLORMAP {
COLORREF from;
COLORREF to;
} COLORMAP,*LPCOLORMAP;
typedef struct {
UINT uNotification;
HWND hWnd;
POINT ptCursor;
} DRAGLISTINFO,*LPDRAGLISTINFO;
typedef struct _TBBUTTON {
int iBitmap;
int idCommand;
BYTE fsState;
BYTE fsStyle;
BYTE bReserved[2];
DWORD dwData;
int iString;
} TBBUTTON,*PTBBUTTON,*LPTBBUTTON;
typedef const TBBUTTON *LPCTBBUTTON;
#if _WIN32_IE >= 0x400
typedef struct {
UINT cbSize;
DWORD dwMask;
int idCommand;
int iImage;
BYTE fsState;
BYTE fsStyle;
WORD cx;
DWORD lParam;
LPSTR pszText;
int cchText;
} TBBUTTONINFOA, *LPTBBUTTONINFOA;
typedef struct {
UINT cbSize;
DWORD dwMask;
int idCommand;
int iImage;
BYTE fsState;
BYTE fsStyle;
WORD cx;
DWORD lParam;
LPWSTR pszText;
int cchText;
} TBBUTTONINFOW, *LPTBBUTTONINFOW;
typedef struct {
int iButton;
DWORD dwFlags;
} TBINSERTMARK, *LPTBINSERTMARK;
typedef struct tagLVBKIMAGEA {
ULONG ulFlags;
HBITMAP hbm;
LPSTR pszImage;
UINT cchImageMax;
int xOffsetPercent;
int yOffsetPercent;
} LVBKIMAGEA, *LPLVBKIMAGEA;
typedef struct tagLVBKIMAGEW {
ULONG ulFlags;
HBITMAP hbm;
LPWSTR pszImage;
UINT cchImageMax;
int xOffsetPercent;
int yOffsetPercent;
} LVBKIMAGEW, *LPLVBKIMAGEW;
#endif /* _WIN32_IE >= 0x400 */
typedef struct {
NMHDR hdr;
int iItem;
TBBUTTON tbButton;
int cchText;
LPTSTR pszText;
} TBNOTIFY,*LPTBNOTIFY;
typedef struct {
HKEY hkr;
LPCTSTR pszSubKey;
LPCTSTR pszValueName;
} TBSAVEPARAMS;
typedef struct _IMAGEINFO {
HBITMAP hbmImage;
HBITMAP hbmMask;
int Unused1;
int Unused2;
RECT rcImage;
} IMAGEINFO, *LPIMAGEINFO;
typedef struct _IMAGELIST *HIMAGELIST;
typedef struct _HDITEMA {
UINT mask;
int cxy;
LPSTR pszText;
HBITMAP hbm;
int cchTextMax;
int fmt;
LPARAM lParam;
#if (_WIN32_IE >= 0x0300)
int iImage;
int iOrder;
#endif
#if (_WIN32_IE >= 0x0500)
UINT type;
LPVOID pvFilter;
#endif
} HDITEMA, * LPHDITEMA;
typedef struct _HDITEMW {
UINT mask;
int cxy;
LPWSTR pszText;
HBITMAP hbm;
int cchTextMax;
int fmt;
LPARAM lParam;
#if (_WIN32_IE >= 0x0300)
int iImage;
int iOrder;
#endif
#if (_WIN32_IE >= 0x0500)
UINT type;
LPVOID pvFilter;
#endif
} HDITEMW, * LPHDITEMW;
/* for backward compatability */
#define HD_ITEMA HDITEMA
#define HD_ITEMW HDITEMW
#define HD_ITEM HDITEM
typedef struct _HD_LAYOUT {
RECT *prc;
WINDOWPOS *pwpos;
} HDLAYOUT, *LPHDLAYOUT;
#define HD_LAYOUT HDLAYOUT /* backward compatability */
typedef struct _HD_HITTESTINFO {
POINT pt;
UINT flags;
int iItem;
} HD_HITTESTINFO, *LPHDHITTESTINFO;
typedef struct _HD_NOTIFYA {
NMHDR hdr;
int iItem;
int iButton;
HD_ITEMA *pitem;
} HD_NOTIFYA;
typedef struct _HD_NOTIFYW {
NMHDR hdr;
int iItem;
int iButton;
HD_ITEMW *pitem;
} HD_NOTIFYW;
/* FIXME: NMHEADER structure (base for all events of the comctl controls)
is the same as HD_NOTIFY depending on the value of _WIN32_IE macro.
I'm defining both for now. */
typedef struct _NMHEADERA {
NMHDR hdr;
int iItem;
int iButton;
HD_ITEMA* pitem;
} NMHEADERA, *LPNMHEADERA;
typedef struct _NMHEADERW {
NMHDR hdr;
int iItem;
int iButton;
HD_ITEMW* pitem;
} NMHEADERW, *LPNMHEADERW;
#ifdef UNICODE
#define NMHEADER NMHEADERW
#define LPNMHEADER LPNMHEADERW
#else
#define NMHEADER NMHEADERA
#define LPNMHEADER LPNMHEADERA
#endif
/* End FIXME. */
typedef struct tagNMHDDISPINFOA {
NMHDR hdr;
int iItem;
UINT mask;
LPSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
} NMHDDISPINFOA, *LPNMHDDISPINFOA;
typedef struct tagNMHDDISPINFOW {
NMHDR hdr;
int iItem;
UINT mask;
LPWSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
} NMHDDISPINFOW, *LPNMHDDISPINFOW;
typedef struct tagNMCUSTOMDRAWINFO {
NMHDR hdr;
DWORD dwDrawStage;
HDC hdc;
RECT rc;
DWORD dwItemSpec;
UINT uItemState;
LPARAM lItemlParam;
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;
typedef struct tagNMLVCUSTOMDRAW {
NMCUSTOMDRAW nmcd;
COLORREF clrText;
COLORREF clrTextBk;
#if _WIN32_IE >= 0x0400
int iSubItem;
#endif
} NMLVCUSTOMDRAW, *LPNMLVCUSTOMDRAW;
#if (_WIN32_IE >= 0x0400)
typedef struct tagNMLVGETINFOTIPA
{
NMHDR hdr;
DWORD dwFlags;
LPSTR pszText;
int cchTextMax;
int iItem;
int iSubItem;
LPARAM lParam;
} NMLVGETINFOTIPA, *LPNMLVGETINFOTIPA;
typedef struct tagNMLVGETINFOTIPW
{
NMHDR hdr;
DWORD dwFlags;
LPWSTR pszText;
int cchTextMax;
int iItem;
int iSubItem;
LPARAM lParam;
} NMLVGETINFOTIPW, *LPNMLVGETINFOTIPW;
#endif /* _WIN32_IE >= 0x0400 */
typedef struct tagNMTVCUSTOMDRAW {
NMCUSTOMDRAW nmcd;
COLORREF clrText;
COLORREF clrTextBk;
#if _WIN32_IE >= 0x0400
int iLevel;
#endif
} NMTVCUSTOMDRAW, *LPNMTVCUSTOMDRAW;
#if (_WIN32_IE >= 0x400)
typedef struct _NMTBCUSTOMDRAW {
NMCUSTOMDRAW nmcd;
HBRUSH hbrMonoDither;
HBRUSH hbrLines;
HPEN hpenLines;
COLORREF clrText;
COLORREF clrMark;
COLORREF clrTextHighlight;
COLORREF clrBtnFace;
COLORREF clrBtnHighlight;
COLORREF clrHighlightHotTrack;
RECT rcText;
int nStringBkMode;
int nHLStringBkMode;
#if (_WIN32_WINNT >= 0x0501)
int iListGap;
#endif
} NMTBCUSTOMDRAW, * LPNMTBCUSTOMDRAW;
typedef struct tagNMITEMACTIVATE {
NMHDR hdr;
int iItem;
int iSubItem;
UINT uNewState;
UINT uOldState;
UINT uChanged;
POINT ptAction;
LPARAM lParam;
UINT uKeyFlags;
} NMITEMACTIVATE, *LPNMITEMACTIVATE;
#endif /* _WIN32_IE >= 0x0400 */
typedef struct tagTBADDBITMAP {
HINSTANCE hInst;
UINT nID;
} TBADDBITMAP,*LPTBADDBITMAP;
typedef struct tagTBSAVEPARAMSA {
HKEY hkr;
LPCSTR pszSubKey;
LPCSTR pszValueName;
} TBSAVEPARAMSA;
typedef struct tagTBSAVEPARAMSW {
HKEY hkr;
LPCWSTR pszSubKey;
LPCWSTR pszValueName;
} TBSAVEPARAMSW;
typedef struct {
HINSTANCE hInstOld;
UINT nIDOld;
HINSTANCE hInstNew;
UINT nIDNew;
int nButtons;
} TBREPLACEBITMAP,*LPTBREPLACEBITMAP;
typedef struct tagNMTOOLBARA {
NMHDR hdr;
int iItem;
TBBUTTON tbButton;
int cchText;
LPSTR pszText;
#if (_WIN32_IE >= 0x500)
RECT rcButton;
#endif
} NMTOOLBARA, *LPNMTOOLBARA;
#define TBNOTIFYA NMTOOLBARA
#define LPTBNOTIFYA LPNMTOOLBARA
typedef struct tagNMTOOLBARW {
NMHDR hdr;
int iItem;
TBBUTTON tbButton;
int cchText;
LPWSTR pszText;
#if (_WIN32_IE >= 0x500)
RECT rcButton;
#endif
} NMTOOLBARW, *LPNMTOOLBARW;
#define TBNOTIFYW NMTOOLBARW
#define LPTBNOTIFYW LPNMTOOLBARW
typedef struct tagTOOLINFOA {
UINT cbSize;
UINT uFlags;
HWND hwnd;
UINT uId;
RECT rect;
HINSTANCE hinst;
LPSTR lpszText;
#if (_WIN32_IE >= 0x0300)
LPARAM lParam;
#endif
} TTTOOLINFOA,*LPTTTOOLINFOA,*PTOOLINFOA;
#define TOOLINFOA TTTOOLINFOA
#define LPTOOLINFOA LPTTTOOLINFOA
#define TTTOOLINFOA_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpszText)
#define TTTOOLINFOA_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lParam)
#define TTTOOLINFOA_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOA, lpReserved)
typedef struct tagTOOLINFOW {
UINT cbSize;
UINT uFlags;
HWND hwnd;
UINT uId;
RECT rect;
HINSTANCE hinst;
LPWSTR lpszText;
#if (_WIN32_IE >= 0x0300)
LPARAM lParam;
#endif
} TTTOOLINFOW,*LPTTTOOLINFOW,*PTOOLINFOW;
#define TOOLINFOW TTTOOLINFOW
#define LPTOOLINFOW LPTTTOOLINFOW
#define TTTOOLINFOW_V1_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpszText)
#define TTTOOLINFOW_V2_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lParam)
#define TTTOOLINFOW_V3_SIZE CCSIZEOF_STRUCT(TTTOOLINFOW, lpReserved)
typedef struct _TT_HITTESTINFOA {
HWND hwnd;
POINT pt;
TOOLINFOA ti;
} TTHITTESTINFOA,*LPTTHITTESTINFOA;
#define LPHITTESTINFOA LPTTHITTESTINFOA
typedef struct _TT_HITTESTINFOW {
HWND hwnd;
POINT pt;
TOOLINFOW ti;
} TTHITTESTINFOW,*LPTTHITTESTINFOW;
#define LPHITTESTINFOW LPTTHITTESTINFOW
typedef struct tagNMTTDISPINFOA {
NMHDR hdr;
LPSTR lpszText;
char szText[80];
HINSTANCE hinst;
UINT uFlags;
#if (_WIN32_IE >= 0x0300)
LPARAM lParam;
#endif
} NMTTDISPINFOA, *LPNMTTDISPINFOA;
#define TOOLTIPTEXTA NMTTDISPINFOA
#define LPTOOLTIPTEXTA LPNMTTDISPINFOA
typedef struct tagNMTTDISPINFOW {
NMHDR hdr;
LPWSTR lpszText;
WCHAR szText[80];
HINSTANCE hinst;
UINT uFlags;
#if (_WIN32_IE >= 0x0300)
LPARAM lParam;
#endif
} NMTTDISPINFOW, *LPNMTTDISPINFOW;
#define TOOLTIPTEXTW NMTTDISPINFOW
#define LPTOOLTIPTEXTW LPNMTTDISPINFOW
typedef struct _UDACCEL {
UINT nSec;
UINT nInc;
} UDACCEL,*LPUDACCEL;
typedef struct _NM_UPDOWN {
NMHDR hdr;
int iPos;
int iDelta;
} NMUPDOWN,*LPNMUPDOWN;
/* for backward compatability */
#define NM_UPDOWN NMUPDOWN
#define LPNM_UPDOWN LPNMUPDOWN
typedef struct _LVITEMA {
UINT mask;
int iItem;
int iSubItem;
UINT state;
UINT stateMask;
LPSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
#if (_WIN32_IE >= 0x0300)
int iIndent;
#endif
#if (_WIN32_WINNT >= 0x0501)
int iGroupId;
UINT cColumns;
PUINT puColumns;
#endif
} LVITEMA, FAR *LPLVITEMA;
#define _LV_ITEMA _LVITEMA
#define LV_ITEMA LVITEMA
typedef struct _LVITEMW {
UINT mask;
int iItem;
int iSubItem;
UINT state;
UINT stateMask;
LPWSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
#if (_WIN32_IE >= 0x0300)
int iIndent;
#endif
#if (_WIN32_WINNT >= 0x0501)
int iGroupId;
UINT cColumns;
PUINT puColumns;
#endif
} LVITEMW, FAR *LPLVITEMW;
#define _LV_ITEMW _LVITEMW
#define LV_ITEMW LVITEMW
typedef struct tagLVFINDINFOA {
UINT flags;
LPCSTR psz;
LPARAM lParam;
POINT pt;
UINT vkDirection;
} LVFINDINFOA, FAR* LPFINDINFOA;
#define _LV_FINDINFOA tagLVFINDINFOA
#define LV_FINDINFOA LVFINDINFOA
typedef struct tagLVFINDINFOW {
UINT flags;
LPCWSTR psz;
LPARAM lParam;
POINT pt;
UINT vkDirection;
} LVFINDINFOW, FAR* LPFINDINFOW;
#define _LV_FINDINFOW tagLVFINDINFOW
#define LV_FINDINFOW LVFINDINFOW
typedef struct _LVHITTESTINFO {
POINT pt;
UINT flags;
int iItem;
#if (_WIN32_IE >= 0x0300)
int iSubItem;
#endif
} LVHITTESTINFO, FAR *LPLVHITTESTINFO;
#define _LV_HITTESTINFO _LVHITTESTINFO
#define LV_HITTESTINFO LVHITTESTINFO
typedef struct _LVCOLUMNA {
UINT mask;
int fmt;
int cx;
LPSTR pszText;
int cchTextMax;
int iSubItem;
#if (_WIN32_IE >= 0x0300)
int iImage;
int iOrder;
#endif
} LVCOLUMNA, FAR *LPLVCOLUMNA;
#define _LV_COLUMNA _LVCOLUMNA
#define LV_COLUMNA LVCOLUMNA
typedef struct _LVCOLUMNW {
UINT mask;
int fmt;
int cx;
LPWSTR pszText;
int cchTextMax;
int iSubItem;
#if (_WIN32_IE >= 0x0300)
int iImage;
int iOrder;
#endif
} LVCOLUMNW, FAR *LPLVCOLUMNW;
#define _LV_COLUMNW _LVCOLUMNW
#define LV_COLUMNW LVCOLUMNW
typedef int(CALLBACK *PFNLVCOMPARE)(LPARAM,LPARAM,LPARAM);
typedef struct tagNMLISTVIEW {
NMHDR hdr;
int iItem;
int iSubItem;
UINT uNewState;
UINT uOldState;
UINT uChanged;
POINT ptAction;
LPARAM lParam;
} NMLISTVIEW, *LPNMLISTVIEW;
/* for backward compatability */
#define _NM_LISTVIEW tagNMLISTVIEW
#define NM_LISTVIEW NMLISTVIEW
#define LPNM_LISTVIEW LPNMLISTVIEW
typedef struct tagNMLVDISPINFOA {
NMHDR hdr;
LV_ITEMA item;
} NMLVDISPINFOA, FAR *LPNMLVDISPINFOA;
#define _LV_DISPINFOA tagNMLVDISPINFOA
#define LV_DISPINFOA NMLVDISPINFOA
typedef struct tagNMLVDISPINFOW {
NMHDR hdr;
LV_ITEMW item;
} NMLVDISPINFOW, FAR *LPNMLVDISPINFOW;
#define _LV_DISPINFOW tagNMLVDISPINFOW
#define LV_DISPINFOW NMLVDISPINFOW
typedef struct _LV_KEYDOWN {
NMHDR hdr;
WORD wVKey;
UINT flags;
} LV_KEYDOWN;
typedef struct tagNMLVCACHEHINT {
NMHDR hdr;
int iFrom;
int iTo;
} NMLVCACHEHINT, *PNMLVCACHEHINT;
#define NM_CACHEHINT NMLVCACHEHINT
typedef struct _TREEITEM *HTREEITEM;
typedef struct tagTVITEMA {
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;
} TVITEMA,*LPTVITEMA;
#define _TV_ITEMA tagTVITEMA
#define TV_ITEMA TVITEMA
#define LPTV_ITEMA LPTVITEMA
typedef struct tagTVITEMW {
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPWSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;
} TVITEMW,*LPTVITEMW;
#define _TV_ITEMW tagTVITEMW
#define TV_ITEMW TVITEMW
#define LPTV_ITEMW LPTVITEMW
#if (_WIN32_IE >= 0x0400)
typedef struct tagTVITEMEXA {
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;
int iIntegral;
} TVITEMEXA, *LPTVITEMEXA;
typedef struct tagTVITEMEXW {
UINT mask;
HTREEITEM hItem;
UINT state;
UINT stateMask;
LPWSTR pszText;
int cchTextMax;
int iImage;
int iSelectedImage;
int cChildren;
LPARAM lParam;
int iIntegral;
} TVITEMEXW, *LPTVITEMEXW;
#endif /* _WIN32_IE >= 0x0400 */
typedef struct tagTVINSERTSTRUCTA {
HTREEITEM hParent;
HTREEITEM hInsertAfter;
#if (_WIN32_IE >= 0x0400)
_ANONYMOUS_UNION union {
TVITEMEXA itemex;
TV_ITEMA item;
} DUMMYUNIONNAME;
#else
TV_ITEMA item;
#endif
} TVINSERTSTRUCTA,*LPTVINSERTSTRUCTA;
#define _TV_INSERTSTRUCTA tagTVINSERTSTRUCTA
#define TV_INSERTSTRUCTA TVINSERTSTRUCTA
#define LPTV_INSERTSTRUCTA LPTVINSERTSTRUCTA
typedef struct tagTVINSERTSTRUCTW {
HTREEITEM hParent;
HTREEITEM hInsertAfter;
#if (_WIN32_IE >= 0x0400)
_ANONYMOUS_UNION union {
TVITEMEXW itemex;
TV_ITEMW item;
} DUMMYUNIONNAME;
#else
TV_ITEMW item;
#endif
} TVINSERTSTRUCTW,*LPTVINSERTSTRUCTW;
#define _TV_INSERTSTRUCTW tagTVINSERTSTRUCTW
#define TV_INSERTSTRUCTW TVINSERTSTRUCTW
#define LPTV_INSERTSTRUCTW LPTVINSERTSTRUCTW
typedef struct tagTVHITTESTINFO {
POINT pt;
UINT flags;
HTREEITEM hItem;
} TVHITTESTINFO, *LPTVHITTESTINFO;
#define _TV_HITTESTINFO tagTVHITTESTINFO
#define TV_HITTESTINFO TVHITTESTINFO
#define LPTV_HITTESTINFO LPTVHITTESTINFO
typedef int(CALLBACK *PFNTVCOMPARE)(LPARAM,LPARAM,LPARAM);
typedef struct tagTVSORTCB {
HTREEITEM hParent;
PFNTVCOMPARE lpfnCompare;
LPARAM lParam;
} TVSORTCB,*LPTVSORTCB;
#define _TV_SORTCB tagTVSORTCB
#define TV_SORTCB TVSORTCB
#define LPTV_SORTCB LPTVSORTCB
typedef struct tagNMTREEVIEWA {
NMHDR hdr;
UINT action;
TV_ITEMA itemOld;
TV_ITEMA itemNew;
POINT ptDrag;
} NMTREEVIEWA,*LPNMTREEVIEWA;
#define _NM_TREEVIEWA tagNMTREEVIEWA
#define NM_TREEVIEWA NMTREEVIEWA
#define LPNM_TREEVIEWA LPNMTREEVIEWA
typedef struct tagNMTREEVIEWW {
NMHDR hdr;
UINT action;
TV_ITEMW itemOld;
TV_ITEMW itemNew;
POINT ptDrag;
} NMTREEVIEWW,*LPNMTREEVIEWW;
#define _NM_TREEVIEWW tagNMTREEVIEWW
#define NM_TREEVIEWW NMTREEVIEWW
#define LPNM_TREEVIEWW LPNMTREEVIEWW
typedef struct tagNMTVDISPINFOA {
NMHDR hdr;
TVITEMA item;
} NMTVDISPINFOA, *LPNMTVDISPINFOA;
#define _TV_DISPINFOA tagNMTVDISPINFOA
#define TV_DISPINFOA NMTVDISPINFOA
typedef struct tagNMTVDISPINFOW {
NMHDR hdr;
TVITEMW item;
} NMTVDISPINFOW, *LPNMTVDISPINFOW;
#define _TV_DISPINFOW tagNMTVDISPINFOW
#define TV_DISPINFOW NMTVDISPINFOW
#if (_WIN32_IE >= 0x0400)
typedef struct tagNMTVGETINFOTIPA {
NMHDR hdr;
LPSTR pszText;
int cchTextMax;
HTREEITEM hItem;
LPARAM lParam;
} NMTVGETINFOTIPA, *LPNMTVGETINFOTIPA;
typedef struct tagNMTVGETINFOTIPW {
NMHDR hdr;
LPWSTR pszText;
int cchTextMax;
HTREEITEM hItem;
LPARAM lParam;
} NMTVGETINFOTIPW, *LPNMTVGETINFOTIPW;
#endif
typedef struct _TV_KEYDOWN {
NMHDR hdr;
WORD wVKey;
UINT flags;
} TV_KEYDOWN;
typedef struct _TC_ITEMHEADERA {
UINT mask;
UINT lpReserved1;
UINT lpReserved2;
LPSTR pszText;
int cchTextMax;
int iImage;
} TC_ITEMHEADERA;
typedef struct _TC_ITEMHEADERW {
UINT mask;
UINT lpReserved1;
UINT lpReserved2;
LPWSTR pszText;
int cchTextMax;
int iImage;
} TC_ITEMHEADERW;
typedef struct tagTCITEMA {
UINT mask;
#if (_WIN32_IE >= 0x0300)
DWORD dwState;
DWORD dwStateMask;
#else
UINT lpReserved1;
UINT lpReserved2;
#endif
LPSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
} TCITEMA, *LPTCITEMA;
#define TC_ITEMA TCITEMA
typedef struct tagTCITEMW {
UINT mask;
#if (_WIN32_IE >= 0x0300)
DWORD dwState;
DWORD dwStateMask;
#else
UINT lpReserved1;
UINT lpReserved2;
#endif
LPWSTR pszText;
int cchTextMax;
int iImage;
LPARAM lParam;
} TCITEMW, *LPTCITEMW;
#define TC_ITEMW TCITEMW
typedef struct tagTCHITTESTINFO {
POINT pt;
UINT flags;
} TCHITTESTINFO, *LPTCHITTESTINFO;
#define TC_HITTESTINFO TCHITTESTINFO
#define LPTC_HITTESTINFO LPTCHITTESTINFO
typedef struct _TC_KEYDOWN {
NMHDR hdr;
WORD wVKey;
UINT flags;
} TC_KEYDOWN;
#if (_WIN32_IE >= 0x0300)
typedef struct tagINITCOMMONCONTROLSEX {
DWORD dwSize;
DWORD dwICC;
} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX;
#endif
typedef struct tagPBRANGE {
int iLow;
int iHigh;
} PBRANGE,*PPBRANGE;
typedef struct tagCOLORSCHEME {
DWORD dwSize;
COLORREF clrBtnHighlight;
COLORREF clrBtnShadow;
} COLORSCHEME,*LPCOLORSCHEME;
typedef struct tagMCHITTESTINFO {
UINT cbSize;
POINT pt;
UINT uHit;
SYSTEMTIME st;
}MCHITTESTINFO, *PMCHITTESTINFO;
typedef DWORD MONTHDAYSTATE;
typedef MONTHDAYSTATE *LPMONTHDAYSTATE;
typedef struct tagNMDAYSTATE {
NMHDR nmhdr;
SYSTEMTIME stStart;
int cDayState;
LPMONTHDAYSTATE prgDayState;
}NMDAYSTATE,*LPNMDAYSTATE;
typedef struct tagREBARINFO {
UINT cbSize;
UINT fMask;
HIMAGELIST himl;
} REBARINFO,*LPREBARINFO;
typedef struct tagREBARBANDINFOA {
UINT cbSize;
UINT fMask;
UINT fStyle;
COLORREF clrFore;
COLORREF clrBack;
LPSTR lpText;
UINT cch;
int iImage;
HWND hwndChild;
UINT cxMinChild;
UINT cyMinChild;
UINT cx;
HBITMAP hbmBack;
UINT wID;
#if (_WIN32_IE >= 0x0400)
UINT cyChild;
UINT cyMaxChild;
UINT cyIntegral;
UINT cxIdeal;
LPARAM lParam;
UINT cxHeader;
#endif
} REBARBANDINFOA,*LPREBARBANDINFOA;
typedef struct tagREBARBANDINFOW {
UINT cbSize;
UINT fMask;
UINT fStyle;
COLORREF clrFore;
COLORREF clrBack;
LPWSTR lpText;
UINT cch;
int iImage;
HWND hwndChild;
UINT cxMinChild;
UINT cyMinChild;
UINT cx;
HBITMAP hbmBack;
UINT wID;
#if (_WIN32_IE >= 0x0400)
UINT cyChild;
UINT cyMaxChild;
UINT cyIntegral;
UINT cxIdeal;
LPARAM lParam;
UINT cxHeader;
#endif
} REBARBANDINFOW,*LPREBARBANDINFOW;
typedef REBARBANDINFOA const *LPCREBARBANDINFOA;
typedef REBARBANDINFOW const *LPCREBARBANDINFOW;
#define REBARBANDINFOA_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOA,wID)
#define REBARBANDINFOW_V3_SIZE CCSIZEOF_STRUCT(REBARBANDINFOW, wID)
#if (_WIN32_IE >= 0x0300)
typedef struct tagIMAGELISTDRAWPARAMS {
DWORD cbSize;
HIMAGELIST himl;
int i;
HDC hdcDst;
int x;
int y;
int cx;
int cy;
int xBitmap;
int yBitmap;
COLORREF rgbBk;
COLORREF rgbFg;
UINT fStyle;
DWORD dwRop;
#if (_WIN32_WINNT >= 0x0501)
DWORD fState;
DWORD Frame;
COLORREF crEffect;
#endif
} IMAGELISTDRAWPARAMS,*LPIMAGELISTDRAWPARAMS;
#endif /* (_WIN32_IE >= 0x0300) */
#if (_WIN32_IE >= 0x0400)
typedef struct tagNMREBARCHILDSIZE {
NMHDR hdr;
UINT uBand;
UINT wID;
RECT rcChild;
RECT rcBand;
} NMREBARCHILDSIZE,*LPNMREBARCHILDSIZE;
typedef struct tagNMREBAR {
NMHDR hdr;
DWORD dwMask;
UINT uBand;
UINT fStyle;
UINT wID;
LPARAM lParam;
} NMREBAR,*LPNMREBAR;
typedef struct tagNMRBAUTOSIZE {
NMHDR hdr;
BOOL fChanged;
RECT rcTarget;
RECT rcActual;
} NMRBAUTOSIZE,*LPNMRBAUTOSIZE;
#if (_WIN32_IE >= 0x0500)
typedef struct tagNMREBARCHEVRON {
NMHDR hdr;
UINT uBand;
UINT wID;
LPARAM lParam;
RECT rc;
LPARAM lParamNM;
} NMREBARCHEVRON, *LPNMREBARCHEVRON;
#endif
typedef struct _RB_HITTESTINFO {
POINT pt;
UINT flags;
int iBand;
} RBHITTESTINFO,*LPRBHITTESTINFO;
#endif
typedef struct _DSA *HDSA;
typedef struct _DPA *HDPA;
typedef INT (CALLBACK *PFNDPAENUMCALLBACK)(PVOID,PVOID);
typedef INT (CALLBACK *PFNDSAENUMCALLBACK)(PVOID,PVOID);
typedef INT (CALLBACK *PFNDPACOMPARE)(PVOID,PVOID,LPARAM);
#if (_WIN32_WINNT >= 0x0501)
typedef LRESULT (CALLBACK *SUBCLASSPROC)(HWND,UINT,WPARAM,LPARAM,UINT_PTR,DWORD_PTR);
#endif /* _WIN32_WINNT >= 0x0501 */
#define INDEXTOOVERLAYMASK(i) ((i)<<8)
#define INDEXTOSTATEIMAGEMASK(i) ((i)<<12)
#define HANDLE_WM_NOTIFY(h,w,l,f) (f)((h),(int)(w),(NMHDR*)(l))
#define FORWARD_WM_NOTIFY(h,i,p,f) (LRESULT)(f)((h),WM_NOTIFY,(WPARAM)(int)(i),(LPARAM)(NMHDR*)(p))
#define CCSIZEOF_STRUCT(s,m) (((int)((PBYTE)(&((s*)0)->m)-((PBYTE)((s*)0))))+sizeof(((s*)0)->m))
#define MAKEIPADDRESS(b1,b2,b3,b4) ((LPARAM)(((DWORD)(b1)<<24)+((DWORD)(b2)<<16)+((DWORD)(b3)<<8)+((DWORD)(b4))))
#define MAKEIPRANGE(low,high) ((LPARAM)(WORD)(((BYTE)(high)<<8)+(BYTE)(low)))
#define FIRST_IPADDRESS(a) ((a>>24) & 0xff)
#define SECOND_IPADDRESS(a) ((a>>16) & 0xff)
#define THIRD_IPADDRESS(a) ((a>>8) & 0xff)
#define FOURTH_IPADDRESS(a) (a & 0xff)
#define Animate_Create(w,i,s,hI) CreateWindow(ANIMATE_CLASS,NULL,s,0,0,0,0,w,(HMENU)(i),hI,NULL)
#define Animate_Open(w,f) (BOOL)SNDMSG(w,ACM_OPEN,0,(LPARAM)f)
#define Animate_OpenEx(w,h,s) (BOOL)SNDMSG(w,ACM_OPEN,(WPARAM)h,(LPARAM)(LPTSTR)(s))
#define Animate_Play(w,f,t,r) (BOOL)SNDMSG(w,ACM_PLAY,(r),(LPARAM)MAKELONG(f,t))
#define Animate_Stop(w) (BOOL)SNDMSG(w,ACM_STOP,0,0)
#define Animate_Close(w) Animate_Open(w,NULL)
#define Animate_Seek(w,f) Animate_Play(w,f,f,1)
HBITMAP WINAPI CreateMappedBitmap(HINSTANCE,int,UINT,LPCOLORMAP,int);
HWND WINAPI CreateStatusWindowA(LONG,LPCSTR,HWND,UINT);
HWND WINAPI CreateStatusWindowW(LONG,LPCWSTR,HWND,UINT);
HWND WINAPI CreateToolbarEx(HWND,DWORD,UINT,int,HINSTANCE,UINT,LPCTBBUTTON,int,int,int,int,int,UINT);
HWND WINAPI CreateUpDownControl(DWORD,int,int,int,int,HWND,int,HINSTANCE,HWND,int,int,int);
#define DateTime_GetMonthCal(hwnd) SNDMSG(hwnd, DTM_GETMONTHCAL, 0, 0)
#define DateTime_GetMonthCalColor(hwnd, icolor) SNDMSG(hwnd, DTM_GETMONTHCAL, (WPARAM)icolor,0)
#define DateTime_GetMonthCalFont(hwnd) SNDMSG(hwnd,DTM_GETMCFONT,0,0)
#define DateTime_GetRange(hwnd,lpsystimearray) SNDMSG(hwnd,DTM_GETRANGE,0,(LPARAM)lpsystimearray)
#define DateTime_GetSystemtime(hwnd,lpsystime) SNDMSG(hwnd,DTM_GETSYSTEMTIME,0,(LPARAM)lpsystime)
#define DateTime_SetFormat(hwnd,lpszformat) SNDMSG(hwnd,DTM_SETFORMAT,0,(LPARAM)lpszformat)
#define DateTime_SetMonthCalColor(hwnd,icolor,clr) SNDMSG(hwnd,DTM_SETMCCOLOR,(WPARAM)icolor,(LPARAM)clr)
#define DateTime_SetMonthCalFont(hwnd,hfont,lparam) SNDMSG(hwnd,DTM_SETMCFONT,(WPARAM)hfont,(LPARAM)lparam)
#define DateTime_SetRange(hwnd,flags,lpsystimearray) SNDMSG(hwnd,DTM_SETRANGE,(WPARAM)flags,(LPARAM)lpsystimearray)
#define DateTime_SetSystemtime(hwnd,flag,lpsystime) SNDMSG(hwnd,DTM_SETSYSTEMTIME,(WPARAM)flag,(LPARAM)lpsystime)
void WINAPI DrawInsert(HWND,HWND,int);
void WINAPI DrawStatusTextA(HDC,LPRECT,LPCSTR,UINT);
void WINAPI DrawStatusTextW(HDC,LPRECT,LPCWSTR,UINT);
void WINAPI GetEffectiveClientRect(HWND,LPRECT,LPINT);
#define Header_GetItemCount(w) (int)SNDMSG((w),HDM_GETITEMCOUNT,0,0)
#define Header_InsertItem(w,i,phdi) (int)SNDMSG((w),HDM_INSERTITEM,(WPARAM)(int)(i),(LPARAM)(const HD_ITEM*)(phdi))
#define Header_DeleteItem(w,i) (BOOL)SNDMSG((w),HDM_DELETEITEM,(WPARAM)(int)(i),0)
#define Header_GetItem(w,i,phdi) (BOOL)SNDMSG((w),HDM_GETITEM,(WPARAM)(int)(i),(LPARAM)(HD_ITEM*)(phdi))
#define Header_SetItem(w,i,phdi) (BOOL)SNDMSG((w),HDM_SETITEM,(WPARAM)(int)(i),(LPARAM)(const HD_ITEM*)(phdi))
#define Header_Layout(w,l) (BOOL)SNDMSG((w),HDM_LAYOUT,0,(LPARAM)(HD_LAYOUT*)(l))
#if (_WIN32_IE >= 0x0300)
#define Header_OrderToIndex(w,o) (int)SNDMSG((w),HDM_ORDERTOINDEX,(WPARAM)(o),0)
#define Header_GetItemRect(w,i,r) (BOOL)SNDMSG((w),HDM_GETITEMRECT,(WPARAM)(i),(LPARAM)(r))
#define Header_GetOrderArray(w,l,a) (BOOL)SNDMSG((w),HDM_GETORDERARRAY,(WPARAM)(l),(LPARAM)(a))
#define Header_SetOrderArray(w,l,a) (BOOL)SNDMSG((w),HDM_SETORDERARRAY,(WPARAM)(l),(LPARAM)(a))
#define Header_CreateDragImage(w, i) (HIMAGELIST)SNDMSG((w), HDM_CREATEDRAGIMAGE, (WPARAM)i, 0)
#define Header_SetImageList(w,l) (HIMAGELIST)SNDMSG((w), HDM_SETIMAGELIST, 0, (LPARAM)l)
#define Header_GetImageList(w) (HIMAGELIST)SNDMSG((w),HDM_GETIMAGELIST,0,0)
#endif
#if (_WIN32_IE >= 0x0400)
#define Header_GetUnicodeFormat(w) (BOOL)SNDMSG((w),HDM_GETUNICODEFORMAT,0,0)
#define Header_SetUnicodeFormat(w,f) (BOOL)SNDMSG((w),HDM_SETUNICODEFORMAT,(WPARAM)(f),0)
#endif
HDSA WINAPI DSA_Create(INT,INT);
BOOL WINAPI DSA_Destroy(HDSA);
VOID WINAPI DSA_DestroyCallback(HDSA,PFNDSAENUMCALLBACK,PVOID);
PVOID WINAPI DSA_GetItemPtr(HDSA,INT);
INT WINAPI DSA_InsertItem(HDSA,INT,PVOID);
HDPA WINAPI DPA_Create(INT);
BOOL WINAPI DPA_Destroy(HDPA);
PVOID WINAPI DPA_DeletePtr(HDPA,INT);
BOOL WINAPI DPA_DeleteAllPtrs(HDPA);
VOID WINAPI DPA_EnumCallback(HDPA,PFNDPAENUMCALLBACK,PVOID);
VOID WINAPI DPA_DestroyCallback(HDPA,PFNDPAENUMCALLBACK,PVOID);
BOOL WINAPI DPA_SetPtr(HDPA,INT,PVOID);
INT WINAPI DPA_InsertPtr(HDPA,INT,PVOID);
PVOID WINAPI DPA_GetPtr(HDPA,INT_PTR);
BOOL WINAPI DPA_Sort(HDPA,PFNDPACOMPARE,LPARAM);
INT WINAPI DPA_Search(HDPA,PVOID,INT,PFNDPACOMPARE,LPARAM,UINT);
BOOL WINAPI Str_SetPtrW(LPWSTR*,LPCWSTR);
#if (_WIN32_IE >= 0x0400)
BOOL WINAPI FlatSB_EnableScrollBar(HWND,INT,UINT);
BOOL WINAPI FlatSB_ShowScrollBar(HWND,INT,BOOL);
BOOL WINAPI FlatSB_GetScrollRange(HWND,INT,LPINT,LPINT);
BOOL WINAPI FlatSB_GetScrollInfo(HWND,INT,LPSCROLLINFO);
INT WINAPI FlatSB_GetScrollPos(HWND,INT);
BOOL WINAPI FlatSB_GetScrollProp(HWND,INT,LPINT);
#ifdef _WIN64
BOOL WINAPI FlatSB_GetScrollPropPtr(HWND,INT,PINT_PTR);
#else
#define FlatSB_GetScrollPropPtr FlatSB_GetScrollProp
#endif
INT WINAPI FlatSB_SetScrollPos(HWND,INT,INT,BOOL);
INT WINAPI FlatSB_SetScrollInfo(HWND,INT,LPSCROLLINFO,BOOL);
INT WINAPI FlatSB_SetScrollRange(HWND,INT,INT,INT,BOOL);
BOOL WINAPI FlatSB_SetScrollProp(HWND,UINT,INT_PTR,BOOL);
#define FlatSB_SetScrollPropPtr FlatSB_SetScrollProp
BOOL WINAPI InitializeFlatSB(HWND);
HRESULT WINAPI UninitializeFlatSB(HWND);
#endif /* _WIN32_IE >= 0x0400 */
#if (_WIN32_WINNT >= 0x0501)
BOOL WINAPI SetWindowSubclass(HWND,SUBCLASSPROC,UINT_PTR,DWORD_PTR);
BOOL WINAPI GetWindowSubclass(HWND,SUBCLASSPROC,UINT_PTR,DWORD_PTR*);
BOOL WINAPI RemoveWindowSubclass(HWND,SUBCLASSPROC,UINT_PTR);
LRESULT WINAPI DefSubclassProc(HWND,UINT,WPARAM,LPARAM);
INT WINAPI DrawShadowText(HDC,LPCWSTR,UINT,RECT*,DWORD,COLORREF,COLORREF,INT,INT);
#endif /* _WIN32_WINNT >= 0x0501 */
int WINAPI ImageList_Add(HIMAGELIST,HBITMAP,HBITMAP);
#define ImageList_AddIcon(l,i) ImageList_ReplaceIcon(l,-1,i)
int WINAPI ImageList_AddMasked(HIMAGELIST,HBITMAP,COLORREF);
BOOL WINAPI ImageList_BeginDrag(HIMAGELIST,int,int,int);
HIMAGELIST WINAPI ImageList_Create(int,int,UINT,int,int);
BOOL WINAPI ImageList_Destroy(HIMAGELIST);
BOOL WINAPI ImageList_DragEnter(HWND,int,int);
BOOL WINAPI ImageList_DragLeave(HWND);
BOOL WINAPI ImageList_DragMove(int,int);
BOOL WINAPI ImageList_DragShowNolock(BOOL);
BOOL WINAPI ImageList_Draw(HIMAGELIST,int,HDC,int,int,UINT);
BOOL WINAPI ImageList_DrawEx(HIMAGELIST,int,HDC,int,int,int,int,COLORREF,COLORREF,UINT);
void WINAPI ImageList_EndDrag(VOID);
#define ImageList_ExtractIcon(h,l,i) ImageList_GetIcon(l,i,0)
COLORREF WINAPI ImageList_GetBkColor(HIMAGELIST);
HIMAGELIST WINAPI ImageList_GetDragImage(LPPOINT,LPPOINT);
HICON WINAPI ImageList_GetIcon(HIMAGELIST,int,UINT);
BOOL WINAPI ImageList_GetIconSize(HIMAGELIST,int*,int*);
int WINAPI ImageList_GetImageCount(HIMAGELIST);
BOOL WINAPI ImageList_GetImageInfo(HIMAGELIST,int,IMAGEINFO*);
#define ImageList_LoadBitmap(h,l,x,G,M) ImageList_LoadImage(h,l,x,G,M,IMAGE_BITMAP,0)
HIMAGELIST WINAPI ImageList_LoadImageA(HINSTANCE,LPCSTR,int,int,COLORREF,UINT,UINT);
HIMAGELIST WINAPI ImageList_LoadImageW(HINSTANCE,LPCWSTR,int,int,COLORREF,UINT,UINT);
HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST,int,HIMAGELIST,int,int,int);
BOOL WINAPI ImageList_Remove(HIMAGELIST,int);
#define ImageList_RemoveAll(l) ImageList_Remove(l,-1)
BOOL WINAPI ImageList_Replace(HIMAGELIST,int,HBITMAP,HBITMAP);
int WINAPI ImageList_ReplaceIcon(HIMAGELIST,int,HICON);
COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST,COLORREF);
BOOL WINAPI ImageList_SetDragCursorImage(HIMAGELIST,int,int,int);
BOOL WINAPI ImageList_SetIconSize(HIMAGELIST,int,int);
BOOL WINAPI ImageList_SetOverlayImage(HIMAGELIST,int,int);
#ifdef _OBJIDL_H
HIMAGELIST WINAPI ImageList_Read(LPSTREAM);
BOOL WINAPI ImageList_Write(HIMAGELIST,LPSTREAM);
#endif
#if (_WIN32_IE >= 0x0400)
HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST himl);
#endif
void WINAPI InitCommonControls(void);
#if (_WIN32_IE >= 0x0300)
BOOL WINAPI InitCommonControlsEx(LPINITCOMMONCONTROLSEX);
#endif
int WINAPI LBItemFromPt(HWND,POINT,BOOL);
#define ListView_GetBkColor(w) (COLORREF)SNDMSG((w),LVM_GETBKCOLOR,0,0)
#define ListView_GetImageList(w,i) (HIMAGELIST)SNDMSG((w),LVM_GETIMAGELIST,(i),0)
#define ListView_GetItemCount(w) (int)SNDMSG((w),LVM_GETITEMCOUNT,0,0)
#define ListView_GetItem(w,i) (BOOL)SNDMSG((w),LVM_GETITEM,0,(LPARAM)(i))
#define ListView_SetBkColor(w,c) (BOOL)SNDMSG((w),LVM_SETBKCOLOR,0,(LPARAM)c)
#define ListView_SetImageList(w,h,i) (HIMAGELIST)(UINT)SNDMSG((w),LVM_SETIMAGELIST,(i),(LPARAM)(h))
#define ListView_SetItem(w,i) (BOOL)SNDMSG((w),LVM_SETITEM,0,(LPARAM)(const LV_ITEM*)(i))
#define ListView_InsertItem(w,i) (int)SNDMSG((w),LVM_INSERTITEM,0,(LPARAM)(const LV_ITEM*)(i))
#define ListView_DeleteItem(w,i) (BOOL)SNDMSG((w),LVM_DELETEITEM,i,0)
#define ListView_DeleteAllItems(w) (BOOL)SNDMSG((w),LVM_DELETEALLITEMS,0,0)
#define ListView_GetCallbackMask(w) (BOOL)SNDMSG((w),LVM_GETCALLBACKMASK,0,0)
#define ListView_SetCallbackMask(w,m) (BOOL)SNDMSG((w),LVM_SETCALLBACKMASK,m,0)
#define ListView_GetNextItem(w,i,f) (int)SNDMSG((w),LVM_GETNEXTITEM,i,MAKELPARAM((f),0))
#define ListView_FindItem(w,i,p) (int)SNDMSG((w), LVM_FINDITEM,(WPARAM)i,(LPARAM)(const LV_FINDINFO*)(p))
#define ListView_GetItemRect(w,i,p,c) (BOOL)SNDMSG((w),LVM_GETITEMRECT,i,((p)?(((LPRECT)(p))->left=(c),(LPARAM)(LPRECT)(p)):0))
#define ListView_SetItemPosition(w,i,x,y) (BOOL)SNDMSG((w),LVM_SETITEMPOSITION,i,MAKELPARAM(x,y))
#define ListView_GetItemPosition(w,i,p) (BOOL)SNDMSG((w),LVM_GETITEMPOSITION,i,(LPARAM)p)
#define ListView_GetItemSpacing(w,f) (DWORD)SNDMSG((w),LVM_GETITEMSPACING,f,0)
#define ListView_GetStringWidth(w,s) (int)SNDMSG((w),LVM_GETSTRINGWIDTH,0,(LPARAM)s)
#define ListView_HitTest(w,p) (int)SNDMSG((w),LVM_HITTEST,0,(LPARAM)(LV_HITTESTINFO*)(p))
#define ListView_EnsureVisible(w,i,f) (BOOL)SNDMSG((w),LVM_ENSUREVISIBLE,i,MAKELPARAM((f),0))
#define ListView_Scroll(w,dx,dy) (BOOL)SNDMSG((w),LVM_SCROLL,dx,dy)
#define ListView_RedrawItems(w,f,l) (BOOL)SNDMSG((w),LVM_REDRAWITEMS,f,l)
#define ListView_Arrange(w,c) (BOOL)SNDMSG((w),LVM_ARRANGE,c,0)
#define ListView_EditLabel(w,i) (HWND)SNDMSG((w),LVM_EDITLABEL,i,0)
#define ListView_GetEditControl(w) (HWND)SNDMSG((w),LVM_GETEDITCONTROL,0,0)
#define ListView_GetColumn(w,i,p) (BOOL)SNDMSG((w),LVM_GETCOLUMN,i,(LPARAM)(LV_COLUMN*)(p))
#define ListView_SetColumn(w,i,p) (BOOL)SNDMSG((w),LVM_SETCOLUMN,i,(LPARAM)(const LV_COLUMN*)(p))
#define ListView_InsertColumn(w,i,p) (int)SNDMSG((w),LVM_INSERTCOLUMN,i,(LPARAM)(const LV_COLUMN*)(p))
#define ListView_DeleteColumn(w,i) (BOOL)SNDMSG((w),LVM_DELETECOLUMN,i,0)
#define ListView_GetColumnWidth(w,i) (int)SNDMSG((w),LVM_GETCOLUMNWIDTH,i,0)
#define ListView_SetColumnWidth(w,i,x) (BOOL)SNDMSG((w),LVM_SETCOLUMNWIDTH,i,MAKELPARAM((x),0))
#define ListView_CreateDragImage(w,i,p) (HIMAGELIST)SNDMSG((w),LVM_CREATEDRAGIMAGE,i,(LPARAM)(LPPOINT)(p))
#define ListView_GetViewRect(w,p) (BOOL)SNDMSG((w),LVM_GETVIEWRECT,0,(LPARAM)(LPRECT)(p))
#define ListView_GetTextColor(w) (COLORREF)SNDMSG((w),LVM_GETTEXTCOLOR,0,0)
#define ListView_SetTextColor(w,c) (BOOL)SNDMSG((w),LVM_SETTEXTCOLOR,0,(LPARAM)(COLORREF)(c))
#define ListView_GetTextBkColor(w) (COLORREF)SNDMSG((w),LVM_GETTEXTBKCOLOR,0,0)
#define ListView_SetTextBkColor(w,c) (BOOL)SNDMSG((w),LVM_SETTEXTBKCOLOR,0,(LPARAM)(COLORREF)(c))
#define ListView_GetTopIndex(w) (int)SNDMSG((w),LVM_GETTOPINDEX,0,0)
#define ListView_GetCountPerPage(w) (int)SNDMSG((w),LVM_GETCOUNTPERPAGE,0,0)
#define ListView_GetOrigin(w,p) (BOOL)SNDMSG((w),LVM_GETORIGIN,0,(LPARAM)(POINT*)(p))
#define ListView_GetOrigin(w,p) (BOOL)SNDMSG((w),LVM_GETORIGIN,0,(LPARAM)(POINT*)(p))
#define ListView_Update(w,i) (BOOL)SNDMSG((w),LVM_UPDATE,i,0)
#define ListView_SetItemState(w,i,d,m) \
{ \
LV_ITEM _lvi;\
_lvi.stateMask=m;\
_lvi.state=d;\
SNDMSG((w),LVM_SETITEMSTATE,i,(LPARAM)(LV_ITEM*)&_lvi);\
}
#define ListView_GetItemState(w,i,m) (UINT)SNDMSG((w),LVM_GETITEMSTATE,i,m)
#define ListView_GetItemText(w,i,iS,s,n) \
{ \
LV_ITEM _lvi;\
_lvi.iSubItem=iS;\
_lvi.cchTextMax=n;\
_lvi.pszText=s;\
SNDMSG((w),LVM_GETITEMTEXT,i,(LPARAM)(LV_ITEM*)&_lvi);\
}
#define ListView_SetItemText(w,i,iS,s) \
{ \
LV_ITEM _lvi;\
_lvi.iSubItem=iS;\
_lvi.pszText=s;\
SNDMSG((w),LVM_SETITEMTEXT,i,(LPARAM)(LV_ITEM*)&_lvi);\
}
#define ListView_SetItemCount(w,n) SNDMSG((w),LVM_SETITEMCOUNT,n,0)
#define ListView_SortItems(w,f,l) (BOOL)SNDMSG((w),LVM_SORTITEMS,l,(LPARAM)f)
#define ListView_SetItemPosition32(w,i,x,y) \
{ \
POINT p={x,y}; \
SNDMSG((w),LVM_SETITEMPOSITION32,i,(LPARAM)&p);\
}
#define ListView_GetSelectedCount(w) (UINT)SNDMSG((w),LVM_GETSELECTEDCOUNT,0,0)
#define ListView_GetCheckState(w,i) ((((UINT)(SNDMSG((w),LVM_GETITEMSTATE,(WPARAM)(i),LVIS_STATEIMAGEMASK)))>>12)-1)
#define ListView_SetCheckState(w,i,f) ListView_SetItemState(w,i,INDEXTOSTATEIMAGEMASK((f)+1),LVIS_STATEIMAGEMASK)
#define ListView_GetISearchString(w, lpsz) (BOOL)SNDMSG((w), LVM_GETISEARCHSTRING, 0, (LPARAM) (LPTSTR)(lpsz))
BOOL WINAPI MakeDragList(HWND);
void WINAPI MenuHelp(UINT,WPARAM,LPARAM,HMENU,HINSTANCE,HWND,PUINT);
#define MonthCal_GetColor(hwnd,icolor) SNDMSG(hwnd,MCM_GETCOLOR,(WPARAM)icolor,(LPARAM)0)
#define MonthCal_GetCurSel(hwnd,lpsystime) SNDMSG(hwnd,MCM_GETCURSEL,0,(LPARAM)lpsystime)
#define MonthCal_GetFirstDayOfWeek(hwnd) SNDMSG(hwnd,MCM_GETFIRSTDAYOFWEEK,0,0)
#define MonthCal_GetMaxSelCount(hwnd) SNDMSG(hwnd,MCM_GETMAXSELCOUNT,0,0)
#define MonthCal_GetMaxTodayWidth(hwnd) SNDMSG(hwnd,MCM_GETMAXTODAYWIDTH,0,0)
#define MonthCal_GetMinReqRect(hwnd,lpRectInfo) SNDMSG(hwnd,MCM_GETMINREQRECT,0,(LPARAM)lpRectInfo)
#define MonthCal_GetMonthDelta(hwnd) SNDMSG(hwnd,MCM_GETMONTHDELTA,0,0)
#define MonthCal_GetMonthRange(hwnd,flag,systimearray) SNDMSG(hwnd,MCM_GETMONTHRANGE,(WPARAM)flag,(LPARAM)systimearray)
#define MonthCal_GetRange(hwnd,systimearray) SNDMSG(hwnd,MCM_GETRANGE,0,(LPARAM)systimearray)
#define MonthCal_GetSelRange(hwnd,systimearray) SNDMSG(hwnd,MCM_GETSELRANGE,0,(LPARAM)systimearray)
#define MonthCal_GetToday(hwnd,systime) SNDMSG(hwnd,MCM_GETTODAY,0,(LPARAM)systime)
#define MonthCal_GetUnicodeFormat(hwnd) SNDMSG(hwnd,MCM_GETUNICODEFORMAT,0,0)
#define MonthCal_HitTest(hwnd,pmchittest) SNDMSG(hwnd,MCM_HITTEST,0,(LPARAM)pmchittest)
#define MonthCal_SetColor(hwnd,icolor,clr) SNDMSG(hwnd,MCM_SETCOLOR,(WPARAM)icolor,(LPARAM)clr)
#define MonthCal_SetCurSel(hwnd,lpsystime) SNDMSG(hwnd,MCM_SETCURSEL,0,(LPARAM)lpsystime)
#define MonthCal_SetDayState(hwnd,imonths,lpdatestatearray) SNDMSG(hwnd,MCM_SETDAYSTATE,(WPARAM)imonths,(LPARAM)lpdatestatearray)
#define MonthCal_SetFirstDayOfWeek(hwnd,iday) SNDMSG(hwnd,MCM_SETFIRSTDAYOFWEEK,0,(LPARAM)iday)
#define MonthCal_SetMaxSelCount(hwnd,imax) SNDMSG(hwnd,MCM_SETMAXSELCOUNT,(WPARAM)imax,0)
#define MonthCal_SetMonthDelta(hwnd,idelta) SNDMSG(hwnd,MCM_SETMONTHDELTA,(WPARAM)idelta,0)
#define MonthCal_SetSelRange(hwnd,systimearray) SNDMSG(hwnd,MCM_SETSELRANGE,0,(LPARAM)systimearray)
#define MonthCal_SetToday(hwnd,systime) SNDMSG(hwnd,MCM_SETTODAY,0,(LPARAM)systime)
#define MonthCal_SetUnicodeFormat(hwnd,unicode) SNDMSG(hwnd,MCM_SETUNICODEFORMAT,(WPARAM)unicode,0)
#define MonthCal_SetRange(w,f,st) (BOOL)SNDMSG((w),MCM_SETRANGE,(WPARAM)(f),(LPARAM)(st))
BOOL WINAPI ShowHideMenuCtl(HWND,UINT,PINT);
#define TabCtrl_GetItem(w,i,p) (BOOL)SNDMSG((w),TCM_GETITEM,i,(LPARAM)(TC_ITEM*)(p))
#define TabCtrl_SetItem(w,i,p) (BOOL)SNDMSG((w),TCM_SETITEM,i,(LPARAM)(TC_ITEM*)(p))
#define TabCtrl_InsertItem(w,i,p) (int)SNDMSG((w),TCM_INSERTITEM,i,(LPARAM)(const TC_ITEM*)(p))
#define TabCtrl_DeleteItem(w,i) (BOOL)SNDMSG((w),TCM_DELETEITEM,i,0)
#define TabCtrl_DeleteAllItems(w) (BOOL)SNDMSG((w),TCM_DELETEALLITEMS,0,0)
#define TabCtrl_GetItemRect(w,i,p) (BOOL)SNDMSG((w),TCM_GETITEMRECT,i,(LPARAM)(LPRECT)(p))
#define TabCtrl_GetCurSel(w) (int)SNDMSG((w),TCM_GETCURSEL,0,0)
#define TabCtrl_SetCurSel(w,i) (int)SNDMSG((w),TCM_SETCURSEL,i,0)
#define TabCtrl_HitTest(w,p) (int)SNDMSG((w),TCM_HITTEST,0,(LPARAM)(TC_HITTESTINFO*)(p))
#define TabCtrl_SetItemExtra(w,c) (BOOL)SNDMSG((w),TCM_SETITEMEXTRA,c,0)
#define TabCtrl_AdjustRect(w,b,p) (int)SNDMSG((w),TCM_ADJUSTRECT,b,(LPARAM)(LPRECT)p)
#define TabCtrl_SetItemSize(w,x,y) (DWORD)SNDMSG((w),TCM_SETITEMSIZE,0,MAKELPARAM(x,y))
#define TabCtrl_RemoveImage(w,i) (void)SNDMSG((w),TCM_REMOVEIMAGE,i,0)
#define TabCtrl_SetPadding(w,x,y) (void)SNDMSG((w),TCM_SETPADDING,0,MAKELPARAM(x,y))
#define TabCtrl_GetRowCount(w) (int)SNDMSG((w),TCM_GETROWCOUNT,0,0)
#define TabCtrl_GetToolTips(w) (HWND)SNDMSG((w),TCM_GETTOOLTIPS,0,0)
#define TabCtrl_SetToolTips(w,t) (void)SNDMSG((w),TCM_SETTOOLTIPS,(WPARAM)t,0)
#define TabCtrl_GetCurFocus(w) (int)SNDMSG((w),TCM_GETCURFOCUS,0,0)
#define TabCtrl_SetCurFocus(w,i) (void)SNDMSG((w),TCM_SETCURFOCUS,i,0)
#define TabCtrl_GetImageList(w) (HIMAGELIST)SNDMSG((w),TCM_GETIMAGELIST,0,0)
#define TabCtrl_SetImageList(w,h) (HIMAGELIST)SNDMSG((w),TCM_SETIMAGELIST,0,(LPARAM)(UINT)(h))
#define TabCtrl_GetItemCount(w) (int)SNDMSG((w),TCM_GETITEMCOUNT,0,0)
BOOL WINAPI _TrackMouseEvent(LPTRACKMOUSEEVENT);
#define TreeView_InsertItem(w,i) (HTREEITEM)SNDMSG((w),TVM_INSERTITEM,0,(LPARAM)(LPTV_INSERTSTRUCT)(i))
#define TreeView_DeleteItem(w,i) (BOOL)SNDMSG((w),TVM_DELETEITEM,0,(LPARAM)(HTREEITEM)(i))
#define TreeView_DeleteAllItems(w) (BOOL)SNDMSG((w),TVM_DELETEITEM,0,(LPARAM)TVI_ROOT)
#define TreeView_Expand(w,i,c) (BOOL)SNDMSG((w),TVM_EXPAND,c,(LPARAM)(HTREEITEM)(i))
#define TreeView_GetItemRect(w,i,p,c) (*(HTREEITEM*)p=(i),(BOOL)SNDMSG((w),TVM_GETITEMRECT,c,(LPARAM)(LPRECT)(p)))
#define TreeView_GetCount(w) (UINT)SNDMSG((w),TVM_GETCOUNT,0,0)
#define TreeView_GetIndent(w) (UINT)SNDMSG((w),TVM_GETINDENT,0,0)
#define TreeView_SetIndent(w,i) (BOOL)SNDMSG((w),TVM_SETINDENT,i,0)
#define TreeView_GetImageList(w,i) (HIMAGELIST)SNDMSG((w),TVM_GETIMAGELIST,i,0)
#define TreeView_SetImageList(w,h,i) (HIMAGELIST)SNDMSG((w),TVM_SETIMAGELIST,i,(LPARAM)(HIMAGELIST)(h))
#define TreeView_GetNextItem(w,i,c) (HTREEITEM)SNDMSG((w),TVM_GETNEXTITEM,c,(LPARAM)(HTREEITEM)(i))
#define TreeView_GetChild(w,i) TreeView_GetNextItem(w,i,TVGN_CHILD)
#define TreeView_GetNextSibling(w,i) TreeView_GetNextItem(w,i,TVGN_NEXT)
#define TreeView_GetPrevSibling(w,i) TreeView_GetNextItem(w,i,TVGN_PREVIOUS)
#define TreeView_GetParent(w,i) TreeView_GetNextItem(w,i,TVGN_PARENT)
#define TreeView_GetFirstVisible(w) TreeView_GetNextItem(w,NULL,TVGN_FIRSTVISIBLE)
#define TreeView_GetNextVisible(w,i) TreeView_GetNextItem(w,i,TVGN_NEXTVISIBLE)
#define TreeView_GetPrevVisible(w,i) TreeView_GetNextItem(w,i,TVGN_PREVIOUSVISIBLE)
#define TreeView_GetSelection(w) TreeView_GetNextItem(w,NULL,TVGN_CARET)
#define TreeView_GetDropHilight(w) TreeView_GetNextItem(w,NULL,TVGN_DROPHILITE)
#define TreeView_GetRoot(w) TreeView_GetNextItem(w,NULL,TVGN_ROOT)
#define TreeView_Select(w,i,c) (BOOL)SNDMSG((w),TVM_SELECTITEM,c,(LPARAM)(HTREEITEM)(i))
#define TreeView_SelectItem(w,i) TreeView_Select(w,i,TVGN_CARET)
#define TreeView_SelectDropTarget(w,i) TreeView_Select(w,i,TVGN_DROPHILITE)
#define TreeView_SelectSetFirstVisible(w,i) TreeView_Select(w,i,TVGN_FIRSTVISIBLE)
#define TreeView_GetItem(w,i) (BOOL)SNDMSG((w),TVM_GETITEM,0,(LPARAM)(TV_ITEM*)(i))
#define TreeView_SetItem(w,i) (BOOL)SNDMSG((w),TVM_SETITEM,0,(LPARAM)(const TV_ITEM*)(i))
#define TreeView_EditLabel(w,i) (HWND)SNDMSG((w),TVM_EDITLABEL,0,(LPARAM)(HTREEITEM)(i))
#define TreeView_GetEditControl(w) (HWND)SNDMSG((w),TVM_GETEDITCONTROL,0,0)
#define TreeView_GetVisibleCount(w) (UINT)SNDMSG((w),TVM_GETVISIBLECOUNT,0,0)
#define TreeView_HitTest(w,p) (HTREEITEM)SNDMSG((w),TVM_HITTEST,0,(LPARAM)(LPTV_HITTESTINFO)(p))
#define TreeView_CreateDragImage(w,i) (HIMAGELIST)SNDMSG((w),TVM_CREATEDRAGIMAGE,0,(LPARAM)(HTREEITEM)(i))
#define TreeView_SortChildren(w,i,r) (BOOL)SNDMSG((w),TVM_SORTCHILDREN,r,(LPARAM)(HTREEITEM)(i))
#define TreeView_EnsureVisible(w,i) (BOOL)SNDMSG((w),TVM_ENSUREVISIBLE,0,(LPARAM)(HTREEITEM)(i))
#define TreeView_SortChildrenCB(w,s,r) (BOOL)SNDMSG((w),TVM_SORTCHILDRENCB,r,(LPARAM)(LPTVSORTCB)(s))
#define TreeView_EndEditLabelNow(w,f) (BOOL)SNDMSG((w),TVM_ENDEDITLABELNOW,f,0)
#define TreeView_GetISearchString(w,s) (BOOL)SNDMSG((w),TVM_GETISEARCHSTRING,0,(LPARAM)s)
#if (_WIN32_IE >= 0x0300)
#define ListView_ApproximateViewRect(w,iw,ih,i) (DWORD)SNDMSG((w),LVM_APPROXIMATEVIEWRECT,(i),MAKELPARAM((iw),(ih)))
#define ListView_SetExtendedListViewStyle(w,s) (DWORD)SNDMSG((w),LVM_SETEXTENDEDLISTVIEWSTYLE,0,(s))
#define ListView_GetExtendedListViewStyle(w) (DWORD)SNDMSG((w),LVM_GETEXTENDEDLISTVIEWSTYLE,0,0)
#define ListView_SetColumnOrderArray(w,i,a) (BOOL)SNDMSG((w),LVM_SETCOLUMNORDERARRAY,(WPARAM)(i),(LPARAM)(LPINT)(a))
#define ListView_GetColumnOrderArray(w,i,a) (BOOL)SNDMSG((w),LVM_GETCOLUMNORDERARRAY,(WPARAM)(i),(LPARAM)(LPINT)(a))
#define ListView_GetHeader(w) (HWND)SNDMSG((w),LVM_GETHEADER,0,0)
#define ListView_GetHotCursor(w) (HCURSOR)SNDMSG((w),LVM_GETHOTCURSOR,0,0)
#define ListView_GetHotItem(w) (INT)SNDMSG((w),LVM_GETHOTITEM,0,0)
#define ListView_GetSubItemRect(w,i,is,c,p) (BOOL)SNDMSG((w),LVM_GETSUBITEMRECT,(WPARAM)(int)(i),((p)?(((LPRECT)(p))->left=(c),(((LPRECT)(p))->top=(is)),(LPARAM)(LPRECT)(p)):0))
#define ListView_SetHotCursor(w,c) (HCURSOR)SNDMSG((w),LVM_SETHOTCURSOR,0,(LPARAM)(c))
#define ListView_SetHotItem(w,i) (int)SNDMSG((w),LVM_SETHOTITEM,(WPARAM)(i),0)
#define ListView_SetIconSpacing(w,x,y) (DWORD)SNDMSG((w),LVM_SETICONSPACING,0,MAKELONG(x,y))
#define ListView_SubItemHitTest(w,p) (int)SNDMSG((w),LVM_SUBITEMHITTEST,0,(LPARAM)(LPLVHITTESTINFO)(p))
#define ListView_SetItemCountEx(w, i, f) SNDMSG((w), LVM_SETITEMCOUNT, (WPARAM)(i), (LPARAM)(f))
WINBOOL WINAPI ImageList_SetImageCount(HIMAGELIST,UINT);
WINBOOL WINAPI ImageList_Copy(HIMAGELIST,int,HIMAGELIST,int,UINT);
WINBOOL WINAPI ImageList_DrawIndirect(IMAGELISTDRAWPARAMS*);
#define TabCtrl_SetMinTabWidth(hwnd, x) SNDMSG((hwnd), TCM_SETMINTABWIDTH, 0, x)
#define TabCtrl_DeselectAll(hwnd, fExcludeFocus) SNDMSG((hwnd), TCM_DESELECTALL, fExcludeFocus, 0)
#define TreeView_GetToolTips(w) (HWND)SNDMSG((w),TVM_GETTOOLTIPS,0,0)
#define TreeView_SetToolTips(w,wt) (HWND)SNDMSG((w),TVM_SETTOOLTIPS,(WPARAM)(wt),0)
#endif
#if (_WIN32_IE >= 0x0400)
#define ListView_GetBkImage(h,plvbki) (BOOL)SNDMSG((h), LVM_GETBKIMAGE, 0, (LPARAM)(plvbki))
#define ListView_SetBkImage(h, plvbki) (BOOL)SNDMSG((h), LVM_SETBKIMAGE, 0, (LPARAM)(plvbki))
#define ListView_SetExtendedListViewStyleEx(w,m,s) (DWORD)SNDMSG((w),LVM_SETEXTENDEDLISTVIEWSTYLE,(m),(s))
#define ListView_SetWorkAreas(w,n,r) (BOOL)SNDMSG((w),LVM_SETWORKAREAS,(WPARAM)(n),(LPARAM)(RECT *)(r))
#define ListView_GetWorkAreas(w,n,r) (BOOL)SNDMSG((w),LVM_GETWORKAREAS,(WPARAM)(n),(LPARAM)(RECT *)(r))
#define ListView_GetNumberOfWorkAreas(w,n) (BOOL)SNDMSG((w),LVM_GETNUMBEROFWORKAREAS,0,(LPARAM)(UINT *)(n))
#define ListView_SetHoverTime(w,t) (DWORD)SNDMSG((w),LVM_SETHOVERTIME,0,(LPARAM)(t))
#define ListView_GetHoverTime(w) (DWORD)SNDMSG((w),LVM_GETHOVERTIME,0,0)
#define ListView_GetSelectionMark(w) (INT)SNDMSG((w),LVM_GETSELECTIONMARK,0,0)
#define ListView_SetSelectionMark(w,i) (INT)SNDMSG((w),LVM_SETSELECTIONMARK,0,(LPARAM)(i))
#define ListView_SetToolTips(w,n) (HWND)SNDMSG((w),LVM_SETTOOLTIPS,(WPARAM)(n),0)
#define ListView_GetToolTips(w) (HWND)SNDMSG((w),LVM_GETTOOLTIPS,0,0)
#define ListView_SetUnicodeFormat(w, f) (BOOL)SNDMSG((w), LVM_SETUNICODEFORMAT, (WPARAM)(f), 0)
#define ListView_GetUnicodeFormat(w) (BOOL)SNDMSG((w), LVM_GETUNICODEFORMAT, 0, 0)
#define TabCtrl_HighlightItem(hwnd, i, fHighlight) SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)i, (LPARAM)MAKELONG (fHighlight, 0))
#define TabCtrl_SetExtendedStyle(hwnd, dw) SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw)
#define TabCtrl_GetExtendedStyle(hwnd) SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0)
#define TabCtrl_SetUnicodeFormat(hwnd, fUnicode) SNDMSG((hwnd), TCM_SETUNICODEFORMAT, (WPARAM)(fUnicode), 0)
#define TabCtrl_GetUnicodeFormat(hwnd) SNDMSG((hwnd), TCM_GETUNICODEFORMAT, 0, 0)
#define TreeView_GetBkColor(w) (COLORREF)SNDMSG((w),TVM_GETBKCOLOR,0,0)
#define TreeView_GetInsertMarkColor(w) (COLORREF)SNDMSG((w),TVM_GETINSERTMARKCOLOR,0,0)
#define TreeView_GetItemHeight(w) (int)SNDMSG((w),TVM_GETITEMHEIGHT,0,0)
#define TreeView_GetScrollTime(w) (UINT)SNDMSG((w),TVM_GETSCROLLTIME,0,0)
#define TreeView_GetTextColor(w) (COLORREF)SNDMSG((w),TVM_GETTEXTCOLOR,0,0)
#define TreeView_SetBkColor(w,c) (COLORREF)SNDMSG((w),TVM_SETBKCOLOR,0,(LPARAM)(c))
#define TreeView_SetInsertMarkColor(w,c) (COLORREF)SNDMSG((w),TVM_SETINSERTMARKCOLOR,0,(LPARAM)(c))
#define TreeView_SetItemHeight(w,h) (int)SNDMSG((w),TVM_SETITEMHEIGHT,(WPARAM)(h),0)
#define TreeView_SetScrollTime(w,t) (UINT)SNDMSG((w),TVM_SETSCROLLTIME,(WPARAM)(UINT)(t),0)
#define TreeView_SetTextColor(w,c) (COLORREF)SNDMSG((w),TVM_SETTEXTCOLOR,0,(LPARAM)(c))
#define TreeView_SetInsertMark(w,i,a) (BOOL)SNDMSG((w),TVM_SETINSERTMARK,(WPARAM)(a),(LPARAM)(i))
#define TreeView_SetUnicodeFormat(w,u) (BOOL)SNDMSG((w),TVM_SETUNICODEFORMAT,(WPARAM)(u),0)
#define TreeView_GetUnicodeFormat(w) (BOOL)SNDMSG((w),TVM_GETUNICODEFORMAT,0,0)
#define TreeView_GetLastVisible(w) TreeView_GetNextItem(w,NULL,TVGN_LASTVISIBLE)
#endif
#if (_WIN32_IE >= 0x0500)
#define TreeView_GetItemState(w,i,m) (UINT)SNDMSG((w),TVM_GETITEMSTATE,(WPARAM)(i),(LPARAM)(m))
#define TreeView_SetItemState(w,i,d,m) \
{ \
TVITEM _tvi;\
_tvi.mask=TVIF_STATE;\
_tvi.stateMask=m;\
_tvi.state=d;\
SNDMSG((w),TVM_SETITEM,0,(LPARAM)(TVITEM*)&_tvi);\
}
#endif
#ifdef UNICODE
typedef HDITEMW HDITEM;
typedef TOOLINFOW TOOLINFO,*PTOOLINFO,*LPTOOLINFO;
typedef TTHITTESTINFOW TTHITTESTINFO,*LPHITTESTINFO,*LPTTHITTESTINFO;
typedef TOOLTIPTEXTW TOOLTIPTEXT,*LPTOOLTIPTEXT;
typedef NMTTDISPINFOW NMTTDISPINFO, *LPNMTTDISPINFO;
typedef TV_ITEMW TV_ITEM,*LPTV_ITEM;
typedef TVITEMW TVITEM,*LPTVITEM;
#if (_WIN32_IE >= 0x0400)
typedef TVITEMEXW TVITEMEX,*LPTVITEMEX;
#endif
typedef TV_INSERTSTRUCTW TV_INSERTSTRUCT,*LPTV_INSERTSTRUCT;
typedef TVINSERTSTRUCTW TVINSERTSTRUCT,*LPTVINSERTSTRUCT;
typedef NM_TREEVIEWW NM_TREEVIEW,*LPNM_TREEVIEW;
typedef NMTREEVIEWW NMTREEVIEW,*LPNMTREEVIEW;
typedef NMHDDISPINFOW NMHDDISPINFO, *LPNMHDDISPINFO;
#define ACM_OPEN ACM_OPENW
#define COMBOBOXEXITEM COMBOBOXEXITEMW
#define PCOMBOBOXEXITEM PCOMBOBOXEXITEMW
#define PCCOMBOBOXEXITEM PCCOMBOBOXEXITEMW
#define CBEM_INSERTITEM CBEM_INSERTITEMW
#define CBEM_SETITEM CBEM_SETITEMW
#define CBEM_GETITEM CBEM_GETITEMW
#define CBEN_ENDEDIT CBEN_ENDEDITW
#define NMCBEENDEDIT NMCBEENDEDITW
#define LPNMCBEENDEDIT LPNMCBEENDEDITW
#define PNMCBEENDEDIT PNMCBEENDEDITW
#if _WIN32_IE >= 0x0400
#define NMCOMBOBOXEX NMCOMBOBOXEXW
#define PNMCOMBOBOXEX PNMCOMBOBOXEXW
#define CBEN_GETDISPINFO CBEN_GETDISPINFOW
#define CBEN_DRAGBEGIN CBEN_DRAGBEGINW
#define NMCBEDRAGBEGIN NMCBEDRAGBEGINW
#define LPNMCBEDRAGBEGIN LPNMCBEDRAGBEGINW
#define PNMCBEDRAGBEGIN PNMCBEDRAGBEGINW
#endif /* _WIN32_IE >= 0x0400 */
#define SB_GETTEXT SB_GETTEXTW
#define SB_SETTEXT SB_SETTEXTW
#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHW
#define HDM_INSERTITEM HDM_INSERTITEMW
#define HDM_GETITEM HDM_GETITEMW
#define HDM_SETITEM HDM_SETITEMW
#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
#if (_WIN32_IE >= 0x0300)
#define HDN_GETDISPINFO HDN_GETDISPINFOW
#endif
#define HD_NOTIFY HD_NOTIFYW
#define TBSAVEPARAMS TBSAVEPARAMSW
#define TB_GETBUTTONTEXT TB_GETBUTTONTEXTW
#define TB_SAVERESTORE TB_SAVERESTOREW
#define TB_ADDSTRING TB_ADDSTRINGW
#define TBN_GETBUTTONINFO TBN_GETBUTTONINFOW
#if _WIN32_IE >= 0x400
#define TB_GETBUTTONINFO TB_GETBUTTONINFOW
#define TB_SETBUTTONINFO TB_SETBUTTONINFOW
#define TB_INSERTBUTTON TB_INSERTBUTTONW
#define TB_ADDBUTTONS TB_ADDBUTTONSW
#define TB_MAPACCELERATOR TB_MAPACCELERATORW
#define TB_GETSTRING TB_GETSTRINGW
#define TBBUTTONINFO TBBUTTONINFOW
#define LPTBBUTTONINFO LPTBBUTTONINFOW
#define TBN_GETDISPINFO TBN_GETDISPINFOW
#define NMTBDISPINFO NMTBDISPINFOW
#define LPNMTBDISPINFO LPNMTBDISPINFOW
#define NMTBGETINFOTIP NMTBGETINFOTIPW
#define LPNMTBGETINFOTIP LPNMTBGETINFOTIPW
#endif
#define TBNOTIFY TBNOTIFYW
#define LPTBNOTIFY LPTBNOTIFYW
#define NMTOOLBAR NMTOOLBARW
#define LPNMTOOLBAR LPNMTOOLBARW
#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 TTN_NEEDTEXT TTN_NEEDTEXTW
#define TTN_GETDISPINFO TTN_GETDISPINFOW
#define SB_GETTEXT SB_GETTEXTW
#define SB_SETTEXT SB_SETTEXTW
#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHW
#define LV_ITEM LV_ITEMW
#define LVITEM LVITEMW
#define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKW
#if _WIN32_IE >= 0x0400
#define LVBKIMAGE LVBKIMAGEW
#define LPLVBKIMAGE LPLVBKIMAGEW
#define LVM_SETBKIMAGE LVM_SETBKIMAGEW
#define LVM_GETBKIMAGE LVM_GETBKIMAGEW
#endif /* _WIN32_IE >= 0x400 */
#define LVM_GETITEM LVM_GETITEMW
#define LVM_SETITEM LVM_SETITEMW
#define LVM_INSERTITEM LVM_INSERTITEMW
#define LV_FINDINFO LV_FINDINFOW
#define LVFINDINFO LVFINDINFOW
#define LPFINDINFO LPFINDINFOW
#define LVM_FINDITEM LVM_FINDITEMW
#define LVM_GETSTRINGWIDTH LVM_GETSTRINGWIDTHW
#define LVM_EDITLABEL LVM_EDITLABELW
#define LV_COLUMN LV_COLUMNW
#define LVCOLUMN LVCOLUMNW
#define LVM_GETCOLUMN LVM_GETCOLUMNW
#define LVM_SETCOLUMN LVM_SETCOLUMNW
#define LVM_INSERTCOLUMN LVM_INSERTCOLUMNW
#define LVM_GETITEMTEXT LVM_GETITEMTEXTW
#define LVM_SETITEMTEXT LVM_SETITEMTEXTW
#define LVM_GETISEARCHSTRING LVM_GETISEARCHSTRINGW
#define LVN_BEGINLABELEDIT LVN_BEGINLABELEDITW
#define LVN_ENDLABELEDIT LVN_ENDLABELEDITW
#define LVN_GETDISPINFO LVN_GETDISPINFOW
#define LVN_SETDISPINFO LVN_SETDISPINFOW
#define LVN_GETINFOTIP LVN_GETINFOTIPW
#define NMLVGETINFOTIP NMLVGETINFOTIPW
#define LPNMLVGETINFOTIP LPNMLVGETINFOTIPW
#define LV_DISPINFO LV_DISPINFOW
#define NMLVDISPINFO NMLVDISPINFOW
#define LPNMLVDISPINFO LPNMLVDISPINFOW
#define TVM_INSERTITEM TVM_INSERTITEMW
#define TVM_GETITEM TVM_GETITEMW
#define TVM_SETITEM TVM_SETITEMW
#define TVM_EDITLABEL TVM_EDITLABELW
#define TVM_GETISEARCHSTRING TVM_GETISEARCHSTRINGW
#define TV_DISPINFO NMTVDISPINFOW
#define NMTVDISPINFO NMTVDISPINFOW
#define LPNMTVDISPINFO LPNMTVDISPINFOW
#if (_WIN32_IE >= 0x0400)
#define NMTVGETINFOTIP NMTVGETINFOTIPW
#define LPNMTVGETINFOTIP LPNMTVGETINFOTIPW
#define TVN_GETINFOTIP TVN_GETINFOTIPW
#endif
#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 TC_ITEMHEADER TC_ITEMHEADERW
#define TC_ITEM TC_ITEMW
#define TCITEM TCITEMW
#define LPTCITEM LPTCITEMW
#define TCM_GETITEM TCM_GETITEMW
#define TCM_SETITEM TCM_SETITEMW
#define TCM_INSERTITEM TCM_INSERTITEMW
#define CreateStatusWindow CreateStatusWindowW
#define DrawStatusText DrawStatusTextW
#define ImageList_LoadImage ImageList_LoadImageW
#define DTM_SETFORMAT DTM_SETFORMATW
#define DTN_USERSTRING DTN_USERSTRINGW
#define DTN_WMKEYDOWN DTN_WMKEYDOWNW
#define DTN_FORMAT DTN_FORMATW
#define DTN_FORMATQUERY DTN_FORMATQUERYW
typedef REBARBANDINFOW REBARBANDINFO,*LPREBARBANDINFO;
#define LPCREBARBANDINFO LPCREBARBANDINFOW
#define REBARBANDINFO_V3_SIZE REBARBANDINFOW_V3_SIZE
#define RB_INSERTBAND RB_INSERTBANDW
#define RB_SETBANDINFO RB_SETBANDINFOW
#else /* UNICODE */
typedef HDITEMA HDITEM;
typedef TOOLINFOA TOOLINFO,*PTOOLINFO,*LPTOOLINFO;
typedef TTHITTESTINFOA TTHITTESTINFO,*LPHITTESTINFO,*LPTTHITTESTINFO;
typedef TOOLTIPTEXTA TOOLTIPTEXT,*LPTOOLTIPTEXT;
typedef NMTTDISPINFOA NMTTDISPINFO, *LPNMTTDISPINFO;
typedef TV_ITEMA TV_ITEM,*LPTV_ITEM;
typedef TVITEMA TVITEM,*LPTVITEM;
#if (_WIN32_IE >= 0x0400)
typedef TVITEMEXA TVITEMEX,*LPTVITEMEX;
#endif
typedef TV_INSERTSTRUCTA TV_INSERTSTRUCT,*LPTV_INSERTSTRUCT;
typedef TVINSERTSTRUCTA TVINSERTSTRUCT,*LPTVINSERTSTRUCT;
typedef NM_TREEVIEWA NM_TREEVIEW,*LPNM_TREEVIEW;
typedef NMTREEVIEWA NMTREEVIEW,*LPNMTREEVIEW;
typedef NMHDDISPINFOW NMHDDISPINFO, *LPNMHDDISPINFO;
#define ACM_OPEN ACM_OPENA
#define COMBOBOXEXITEM COMBOBOXEXITEMA
#define PCOMBOBOXEXITEM PCOMBOBOXEXITEMA
#define PCCOMBOBOXEXITEM PCCOMBOBOXEXITEMA
#define CBEM_INSERTITEM CBEM_INSERTITEMA
#define CBEM_SETITEM CBEM_SETITEMA
#define CBEM_GETITEM CBEM_GETITEMA
#define CBEN_ENDEDIT CBEN_ENDEDITA
#define NMCBEENDEDIT NMCBEENDEDITA
#define LPNMCBEENDEDIT LPNMCBEENDEDITA
#define PNMCBEENDEDIT PNMCBEENDEDITA
#if _WIN32_IE >= 0x0400
#define TB_GETBUTTONINFO TB_GETBUTTONINFOA
#define TB_SETBUTTONINFO TB_SETBUTTONINFOA
#define TB_INSERTBUTTON TB_INSERTBUTTONA
#define TB_ADDBUTTONS TB_ADDBUTTONSA
#define TB_MAPACCELERATOR TB_MAPACCELERATORA
#define TB_GETSTRING TB_GETSTRINGA
#define NMCOMBOBOXEX NMCOMBOBOXEXA
#define PNMCOMBOBOXEX PNMCOMBOBOXEXA
#define CBEN_DRAGBEGIN CBEN_DRAGBEGINA
#define CBEN_GETDISPINFO CBEN_GETDISPINFOA
#define NMCBEDRAGBEGIN NMCBEDRAGBEGINA
#define LPNMCBEDRAGBEGIN LPNMCBEDRAGBEGINA
#define PNMCBEDRAGBEGIN PNMCBEDRAGBEGINA
#define TBN_GETDISPINFO TBN_GETDISPINFOA
#define NMTBDISPINFO NMTBDISPINFOA
#define LPNMTBDISPINFO LPNMTBDISPINFOA
#define NMTBGETINFOTIP NMTBGETINFOTIPA
#define LPNMTBGETINFOTIP LPNMTBGETINFOTIPA
#endif /* _WIN32_IE >= 0x0400 */
#define SB_GETTEXT SB_GETTEXTA
#define SB_SETTEXT SB_SETTEXTA
#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHA
#define HDM_INSERTITEM HDM_INSERTITEMA
#define HDM_GETITEM HDM_GETITEMA
#define HDM_SETITEM HDM_SETITEMA
#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
#if (_WIN32_IE >= 0x0300)
#define HDN_GETDISPINFO HDN_GETDISPINFOA
#endif
#define HD_NOTIFY HD_NOTIFYA
#define TBSAVEPARAMS TBSAVEPARAMSA
#define TB_GETBUTTONTEXT TB_GETBUTTONTEXTA
#define TB_SAVERESTORE TB_SAVERESTOREA
#define TB_ADDSTRING TB_ADDSTRINGA
#define TBN_GETBUTTONINFO TBN_GETBUTTONINFOA
#if _WIN32_IE >= 0x400
#define TBBUTTONINFO TBBUTTONINFOA
#define LPTBBUTTONINFO LPTBBUTTONINFOA
#endif
#define TBNOTIFY TBNOTIFYA
#define LPTBNOTIFY LPTBNOTIFYA
#define NMTOOLBAR NMTOOLBARA
#define LPNMTOOLBAR LPNMTOOLBARA
#define TTM_ADDTOOL TTM_ADDTOOLA
#define TTM_DELTOOL TTM_DELTOOLA
#define TTM_NEWTOOLRECT TTM_NEWTOOLRECTA
#define TTM_GETTOOLINFO TTM_GETTOOLINFOA
#define TTM_SETTOOLINFO TTM_SETTOOLINFOA
#define TTM_HITTEST TTM_HITTESTA
#define TTM_GETTEXT TTM_GETTEXTA
#define TTM_UPDATETIPTEXT TTM_UPDATETIPTEXTA
#define TTM_ENUMTOOLS TTM_ENUMTOOLSA
#define TTM_GETCURRENTTOOL TTM_GETCURRENTTOOLA
#define TTN_NEEDTEXT TTN_NEEDTEXTA
#define TTN_GETDISPINFO TTN_GETDISPINFOA
#define SB_GETTEXT SB_GETTEXTA
#define SB_SETTEXT SB_SETTEXTA
#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHA
#define LV_ITEM LV_ITEMA
#define LVITEM LVITEMA
#define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKA
#if _WIN32_IE >= 0x0400
#define LVBKIMAGE LVBKIMAGEA
#define LPLVBKIMAGE LPLVBKIMAGEA
#define LVM_SETBKIMAGE LVM_SETBKIMAGEA
#define LVM_GETBKIMAGE LVM_GETBKIMAGEA
#endif /* _WIN32_IE >= 0x0400 */
#define LVM_GETITEM LVM_GETITEMA
#define LVM_SETITEM LVM_SETITEMA
#define LVM_INSERTITEM LVM_INSERTITEMA
#define LV_FINDINFO LV_FINDINFOA
#define LVFINDINFO LVFINDINFOA
#define LPFINDINFO LPFINDINFOA
#define LVM_FINDITEM LVM_FINDITEMA
#define LVM_GETSTRINGWIDTH LVM_GETSTRINGWIDTHA
#define LVM_EDITLABEL LVM_EDITLABELA
#define LV_COLUMN LV_COLUMNA
#define LVCOLUMN LVCOLUMNA
#define LVM_GETCOLUMN LVM_GETCOLUMNA
#define LVM_SETCOLUMN LVM_SETCOLUMNA
#define LVM_INSERTCOLUMN LVM_INSERTCOLUMNA
#define LVM_GETITEMTEXT LVM_GETITEMTEXTA
#define LVM_SETITEMTEXT LVM_SETITEMTEXTA
#define LVM_GETISEARCHSTRING LVM_GETISEARCHSTRINGA
#define LVN_BEGINLABELEDIT LVN_BEGINLABELEDITA
#define LVN_ENDLABELEDIT LVN_ENDLABELEDITA
#define LVN_GETDISPINFO LVN_GETDISPINFOA
#define LVN_SETDISPINFO LVN_SETDISPINFOA
#define LVN_GETINFOTIP LVN_GETINFOTIPA
#define NMLVGETINFOTIP NMLVGETINFOTIPA
#define LPNMLVGETINFOTIP LPNMLVGETINFOTIPA
#define LV_DISPINFO LV_DISPINFOA
#define NMLVDISPINFO NMLVDISPINFOA
#define LPNMLVDISPINFO LPNMLVDISPINFOA
#define TVM_INSERTITEM TVM_INSERTITEMA
#define TVM_GETITEM TVM_GETITEMA
#define TVM_SETITEM TVM_SETITEMA
#define TVM_EDITLABEL TVM_EDITLABELA
#define TVM_GETISEARCHSTRING TVM_GETISEARCHSTRINGA
#define TV_DISPINFO NMTVDISPINFOA
#define NMTVDISPINFO NMTVDISPINFOA
#define LPNMTVDISPINFO LPNMTVDISPINFOA
#if (_WIN32_IE >= 0x0400)
#define NMTVGETINFOTIP NMTVGETINFOTIPA
#define LPNMTVGETINFOTIP LPNMTVGETINFOTIPA
#define TVN_GETINFOTIP TVN_GETINFOTIPA
#endif
#define TVN_SELCHANGING TVN_SELCHANGINGA
#define TVN_SELCHANGED TVN_SELCHANGEDA
#define TVN_GETDISPINFO TVN_GETDISPINFOA
#define TVN_SETDISPINFO TVN_SETDISPINFOA
#define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGA
#define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDA
#define TVN_BEGINDRAG TVN_BEGINDRAGA
#define TVN_BEGINRDRAG TVN_BEGINRDRAGA
#define TVN_DELETEITEM TVN_DELETEITEMA
#define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITA
#define TVN_ENDLABELEDIT TVN_ENDLABELEDITA
#define TC_ITEMHEADER TC_ITEMHEADERA
#define TC_ITEM TC_ITEMA
#define TCITEM TCITEMA
#define LPTCITEM LPTCITEMA
#define TCM_GETITEM TCM_GETITEMA
#define TCM_SETITEM TCM_SETITEMA
#define TCM_INSERTITEM TCM_INSERTITEMA
#define CreateStatusWindow CreateStatusWindowA
#define DrawStatusText DrawStatusTextA
#define ImageList_LoadImage ImageList_LoadImageA
#define DTM_SETFORMAT DTM_SETFORMATA
#define DTN_USERSTRING DTN_USERSTRINGA
#define DTN_WMKEYDOWN DTN_WMKEYDOWNA
#define DTN_FORMAT DTN_FORMATA
#define DTN_FORMATQUERY DTN_FORMATQUERYA
typedef REBARBANDINFOA REBARBANDINFO,*LPREBARBANDINFO;
#define LPCREBARBANDINFO LPCREBARBANDINFOA
#define REBARBANDINFO_V3_SIZE REBARBANDINFOA_V3_SIZE
#define RB_INSERTBAND RB_INSERTBANDA
#define RB_SETBANDINFO RB_SETBANDINFOA
#endif
#endif /* RC_INVOKED */
#ifdef __cplusplus
}
#endif
#endif