+#define WC_LISTVIEW __AW_SUFFIXED__( WC_LISTVIEW )
+#define WC_LISTVIEWW __AW_STRING_W__( WC_LISTVIEWA )
+#define WC_LISTVIEWA __AW_STRING_A__( "SysListView32" )
+
+#define WC_TABCONTROL __AW_SUFFIXED__( WC_TABCONTROL )
+#define WC_TABCONTROLW __AW_STRING_W__( WC_TABCONTROLA )
+#define WC_TABCONTROLA __AW_STRING_A__( "SysTabControl32" )
+
+#define WC_TREEVIEW __AW_SUFFIXED__( WC_TREEVIEW )
+#define WC_TREEVIEWW __AW_STRING_W__( WC_TREEVIEWA )
+#define WC_TREEVIEWA __AW_STRING_A__( "SysTreeView32" )
+
+#define WC_PAGESCROLLER __AW_SUFFIXED__( WC_PAGESCROLLER )
+#define WC_PAGESCROLLERW __AW_STRING_W__( WC_PAGESCROLLERA )
+#define WC_PAGESCROLLERA __AW_STRING_A__( "SysPager" )
+
+#define WC_NATIVEFONTCTL __AW_SUFFIXED__( WC_NATIVEFONTCTL )
+#define WC_NATIVEFONTCTLW __AW_STRING_W__( WC_NATIVEFONTCTLA )
+#define WC_NATIVEFONTCTLA __AW_STRING_A__( "NativeFontCtl" )
+
+#define WC_BUTTON __AW_SUFFIXED__( WC_BUTTON )
+#define WC_BUTTONW __AW_STRING_W__( WC_BUTTONA )
+#define WC_BUTTONA __AW_STRING_A__( "Button" )
+
+#define WC_STATIC __AW_SUFFIXED__( WC_STATIC )
+#define WC_STATICW __AW_STRING_W__( WC_STATICA )
+#define WC_STATICA __AW_STRING_A__( "Static" )
+
+#define WC_EDIT __AW_SUFFIXED__( WC_EDIT )
+#define WC_EDITW __AW_STRING_W__( WC_EDITA )
+#define WC_EDITA __AW_STRING_A__( "Edit" )
+
+#define WC_LISTBOX __AW_SUFFIXED__( WC_LISTBOX )
+#define WC_LISTBOXW __AW_STRING_W__( WC_LISTBOXA )
+#define WC_LISTBOXA __AW_STRING_A__( "ListBox" )
+
+#define WC_COMBOBOX __AW_SUFFIXED__( WC_COMBOBOX )
+#define WC_COMBOBOXW __AW_STRING_W__( WC_COMBOBOXA )
+#define WC_COMBOBOXA __AW_STRING_A__( "ComboBox" )
+
+#define WC_SCROLLBAR __AW_SUFFIXED__( WC_SCROLLBAR )
+#define WC_SCROLLBARW __AW_STRING_W__( WC_SCROLLBARA )
+#define WC_SCROLLBARA __AW_STRING_A__( "ScrollBar" )
+
+#define WC_LINK __AW_SUFFIXED__( WC_LINK )
+#define WC_LINKW __AW_STRING_W__( WC_LINKA )
+#define WC_LINKA __AW_STRING_A__( "SysLink" )
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+#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 >= _WIN32_IE_IE30
+
+#define CCS_VERT 128
+#define CCS_LEFT 129
+#define CCS_NOMOVEX 130
+#define CCS_RIGHT 131
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 > _WIN32_IE_IE30
+
+#define HDS_HOTTRACK 4
+#define HDS_DRAGDROP 0x0040
+#define HDS_FULLDRAG 0x0080
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#define HDS_FILTERBAR 0x0100
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE > _WIN32_IE_IE30 */
+
+#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
+/* FIXME: The following pair of manifest constants are also defined
+ * in <commdlg.h>; ensure that the definitions are consistent, then
+ * remove this conditional guard, so GCC can check that they remain
+ * that way.
+ */
+#define CDN_FIRST ((UINT)(-601))
+#define CDN_LAST ((UINT)(-699))
+
+#endif /* ! CDN_FIRST */
+
+#define TBN_FIRST ((UINT)(-700))
+#define TBN_LAST ((UINT)(-720))
+#define UDN_FIRST ((UINT)(-721))
+#define UDN_LAST ((UINT)(-740))
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+#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))
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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 >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE30
+
+#define HDI_IMAGE 32
+#define HDI_DI_SETITEM 64
+#define HDI_ORDER 128
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define CBES_EX_NOEDITIMAGE 0x00000001
+#define CBES_EX_NOEDITIMAGEINDENT 0x00000002
+#define CBES_EX_PATHWORDBREAKPROC 0x00000004
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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)
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#define HDI_FILTER 256
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE30
+
+#define HDF_BITMAP_ON_RIGHT 0x1000
+#define HDF_IMAGE 0x0800
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define HDM_GETITEMCOUNT (HDM_FIRST + 0)
+
+#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 >= _WIN32_IE_IE30
+
+#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)
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define HDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+#define HDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE30
+
+#define HDN_ENDDRAG (HDN_FIRST - 11)
+#define HDN_BEGINDRAG (HDN_FIRST - 10)
+#define HDN_GETDISPINFOA (HDN_FIRST - 9)
+#define HDN_GETDISPINFOW (HDN_FIRST - 29)
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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 >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE50
+
+#define I_INDENTCALLBACK (-1)
+#define I_IMAGENONE (-2)
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+#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 >= _WIN32_IE_IE30
+
+#define TBSTATE_ELLIPSES 0x40
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TBSTATE_MARKED 0x0080
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE30
+
+#define TBSTYLE_DROPDOWN 8
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TBSTYLE_AUTOSIZE 16
+#define TBSTYLE_NOPREFIX 32
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define TBSTYLE_TOOLTIPS 256
+#define TBSTYLE_WRAPABLE 512
+#define TBSTYLE_ALTDRAG 1024
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+#define TBSTYLE_FLAT 2048
+#define TBSTYLE_LIST 4096
+#define TBSTYLE_CUSTOMERASE 8192
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TBSTYLE_REGISTERDROP 0x4000
+#define TBSTYLE_TRANSPARENT 0x8000
+#define TBSTYLE_EX_DRAWDDARROWS 0x00000001
+
+#if _WIN32_IE >= _WIN32_IE_IE501
+
+#define TBSTYLE_EX_MIXEDBUTTONS 8
+#define TBSTYLE_EX_HIDECLIPPEDBUTTONS 16
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE501 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+#define TBSTYLE_EX_DOUBLEBUFFER 0x80
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#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
+
+#if _WIN32_IE >= _WIN32_IE_IE501
+
+#define BTNS_SHOWTEXT 0x0040
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE501 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TBCDRF_NOEDGES 0x10000
+#define TBCDRF_HILITEHOTTRACK 0x20000
+#define TBCDRF_NOOFFSET 0x40000
+#define TBCDRF_NOMARK 0x80000
+#define TBCDRF_NOETCHEDEFFECT 0x100000
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE30
+
+#define IDB_HIST_SMALL_COLOR 8
+#define IDB_HIST_LARGE_COLOR 9
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE40
+
+#define TB_MARKBUTTON (WM_USER + 6)
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE40
+
+#define TB_ISBUTTONHIGHLIGHTED (WM_USER + 14)
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define TB_SETSTATE (WM_USER + 17)
+#define TB_GETSTATE (WM_USER + 18)
+#define TB_ADDBITMAP (WM_USER + 19)
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TB_ADDBUTTONSA (WM_USER + 20)
+#define TB_INSERTBUTTONA (WM_USER + 21)
+
+#else /* _WIN32_IE < _WIN32_IE_IE40 */
+
+#define TB_ADDBUTTONS (WM_USER + 20)
+#define TB_INSERTBUTTON (WM_USER + 21)
+
+#endif /* _WIN32_IE < _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE30
+
+#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)
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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)
+
+#if 0 /* Duplicate definitions -- remove them */
+#define TB_SETEXTENDEDSTYLE (WM_USER + 84)
+#define TB_GETEXTENDEDSTYLE (WM_USER + 85)
+#endif
+
+#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 /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE30
+
+#define TBN_DROPDOWN (TBN_FIRST - 10)
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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)
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#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 >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define TTS_ALWAYSTIP 1
+#define TTS_NOPREFIX 2
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#define TTS_NOANIMATE 0x10
+#define TTS_NOFADE 0x20
+#define TTS_BALLOON 0x40
+#define TTS_CLOSE 0x80
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+#define TTF_IDISHWND 1
+#define TTF_CENTERTIP 2
+#define TTF_RTLREADING 4
+#define TTF_SUBCLASS 16
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+#define TTF_TRACK 0x0020
+#define TTF_ABSOLUTE 0x0080
+#define TTF_TRANSPARENT 0x0100
+
+#if _WIN32_IE >= _WIN32_IE_IE501
+
+#define TTF_PARSELINKS 0x1000
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE501 */
+
+#define TTF_DI_SETITEM 0x8000
+#define TBCD_TICS 1
+#define TBCD_THUMB 2
+#define TBCD_CHANNEL 3
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TBDDRET_DEFAULT 0
+#define TBDDRET_NODEFAULT 1
+#define TBDDRET_TREATPRESSED 2
+#define TBIMHT_AFTER 1
+#define TBIMHT_BACKGROUND 2
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE30
+
+#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)
+
+#if _WIN32_IE >= _WIN32_IE_IE40 /* 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 /* _WIN32_IE >= _WIN32_IE_IE40 -- IE4.0 ??? */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE30
+
+#define UDS_HOTTRACK 0x0100
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE40
+
+#define UDM_SETRANGE32 (WM_USER + 111)
+#define UDM_GETRANGE32 (WM_USER + 112)
+#define UDM_SETPOS32 (WM_USER + 113)
+#define UDM_GETPOS32 (WM_USER + 114)
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#define UDM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+#define UDM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE40
+
+#define SBT_TOOLTIPS 0x0800
+#define SBN_SIMPLEMODECHANGE (SBN_FIRST)
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE30
+
+#define TBS_TOOLTIPS 0x0100
+
+#define TBTS_TOP 0
+#define TBTS_LEFT 1
+#define TBTS_BOTTOM 2
+#define TBTS_RIGHT 3
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#define TBS_REVERSED 0x0200
+
+#if _WIN32_IE >= _WIN32_IE_IE501
+
+#define TBS_DOWNISLEFT 0x0400
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE501 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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 /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define TBM_GETPOS (WM_USER + 0)
+#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 >= _WIN32_IE_IE30
+
+#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 >= _WIN32_WINNT_WINXP
+
+#define CDIS_SHOWKEYBOARDCUES 512
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#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 >= _WIN32_IE_IE40
+
+#define CDDS_SUBITEM 0x20000
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define CDRF_DODEFAULT 0x00
+#define CDRF_NOTIFYITEMDRAW 0x20
+#define CDRF_NOTIFYSUBITEMDRAW 0x20
+#define CDRF_NOTIFYITEMERASE 0x80
+#define CDRF_NOTIFYPOSTERASE 0x40
+#define CDRF_NOTIFYPOSTPAINT 0x10
+#define CDRF_NEWFONT 0x02
+#define CDRF_SKIPDEFAULT 0x04
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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 >= _WIN32_IE_IE40 */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+#define LVBKIF_FLAG_TILEOFFSET 0x00000100
+#define LVBKIF_TYPE_WATERMARK 0x10000000
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#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 >= _WIN32_IE_IE40
+
+#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
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#define LVS_EX_LABELTIP 0x00004000
+#define LVS_EX_BORDERSELECT 0x00008000
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define LVSIL_NORMAL 0
+#define LVSIL_SMALL 1
+#define LVSIL_STATE 2
+
+#define LVM_GETBKCOLOR (LVM_FIRST + 0)
+#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 LVM_SORTITEMSEX (LVM_FIRST + 81)
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+#define LVM_SETSELECTEDCOLUMN (LVM_FIRST + 140)
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#define LVM_SETVIEW (LVM_FIRST + 142)
+#define LVM_GETVIEW (LVM_FIRST + 143)
+#define LVM_INSERTGROUP (LVM_FIRST + 145)
+#define LVM_SETGROUPINFO (LVM_FIRST + 147)
+#define LVM_GETGROUPINFO (LVM_FIRST + 149)
+#define LVM_REMOVEGROUP (LVM_FIRST + 150)
+#define LVM_MOVEGROUP (LVM_FIRST + 151)
+#define LVM_SETGROUPMETRICS (LVM_FIRST + 155)
+#define LVM_GETGROUPMETRICS (LVM_FIRST + 156)
+#define LVM_ENABLEGROUPVIEW (LVM_FIRST + 157)
+#define LVM_SORTGROUPS (LVM_FIRST + 158)
+#define LVM_INSERTGROUPSORTED (LVM_FIRST + 159)
+#define LVM_REMOVEALLGROUPS (LVM_FIRST + 160)
+#define LVM_HASGROUP (LVM_FIRST + 161)
+#define LVM_SETTILEVIEWINFO (LVM_FIRST + 162)
+#define LVM_GETTILEVIEWINFO (LVM_FIRST + 163)
+#define LVM_SETTILEINFO (LVM_FIRST + 164)
+#define LVM_GETTILEINFO (LVM_FIRST + 165)
+#define LVM_SETINSERTMARK (LVM_FIRST + 166)
+#define LVM_GETINSERTMARK (LVM_FIRST + 167)
+#define LVM_INSERTMARKHITTEST (LVM_FIRST + 168)
+#define LVM_GETINSERTMARKRECT (LVM_FIRST + 169)
+#define LVM_SETINSERTMARKCOLOR (LVM_FIRST + 170)
+#define LVM_GETINSERTMARKCOLOR (LVM_FIRST + 171)
+#define LVM_SETINFOTIP (LVM_FIRST + 173)
+#define LVM_GETSELECTEDCOLUMN (LVM_FIRST + 174)
+#define LVM_ISGROUPVIEWENABLED (LVM_FIRST + 175)
+#define LVM_GETOUTLINECOLOR (LVM_FIRST + 176)
+#define LVM_SETOUTLINECOLOR (LVM_FIRST + 177)
+#define LVM_CANCELEDITLABEL (LVM_FIRST + 179)
+#define LVM_MAPIDTOINDEX (LVM_FIRST + 181)
+
+#define LVIF_TEXT 1
+#define LVIF_IMAGE 2
+#define LVIF_PARAM 4
+#define LVIF_STATE 8
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+#define LVIF_INDENT 16
+#define LVIF_NORECOMPUTE 2048
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+#define LVIF_GROUPID 256
+#define LVIF_COLUMNS 512
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#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 >= _WIN32_IE_IE40
+
+#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 >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE30
+
+#define LVCF_IMAGE 16
+#define LVCF_ORDER 32
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define LVCFMT_LEFT 0
+#define LVCFMT_RIGHT 1
+#define LVCFMT_CENTER 2
+#define LVCFMT_JUSTIFYMASK 3
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+#define LVCFMT_BITMAP_ON_RIGHT 4096
+#define LVCFMT_COL_HAS_IMAGES 32768
+#define LVCFMT_IMAGE 2048
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE30
+
+#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 /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define LVN_ITEMCHANGING (LVN_FIRST - 0)
+#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 >= _WIN32_IE_IE40
+
+#define LVN_MARQUEEBEGIN (LVN_FIRST - 56)
+#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 /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE30
+
+#define TVS_CHECKBOXES 256
+#define TVS_NOTOOLTIPS 128
+#define TVS_RTLREADING 64
+#define TVS_TRACKSELECT 512
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TVS_FULLROWSELECT 4096
+#define TVS_INFOTIP 2048
+#define TVS_NONEVENHEIGHT 16384
+#define TVS_NOSCROLL 8192
+#define TVS_SINGLEEXPAND 1024
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#define TVS_NOHSCROLL 0x8000
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE40
+
+#define TVIF_INTEGRAL 0x0080
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#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 + 0)
+#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 >= _WIN32_IE_IE30
+
+#define TVM_GETTOOLTIPS (TV_FIRST + 25)
+#define TVM_SETTOOLTIPS (TV_FIRST + 24)
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#define TVM_GETITEMSTATE (TV_FIRST + 39)
+#define TVM_SETLINECOLOR (TV_FIRST + 40)
+#define TVM_GETLINECOLOR (TV_FIRST + 41)
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define TVE_COLLAPSE 1
+#define TVE_EXPAND 2
+#define TVE_TOGGLE 3
+
+#define TVE_COLLAPSERESET 0x8000
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+#define TVE_EXPANDPARTIAL 0x4000
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 >= _WIN32_IE_IE40
+
+#define TVGN_LASTVISIBLE 10
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE40
+
+#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 >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE30
+
+#define TCS_BOTTOM 2
+#define TCS_RIGHT 2
+#define TCS_VERTICAL 128
+
+#define TCS_SCROLLOPPOSITE 0x0001
+#define TCS_HOTTRACK 0x0040
+#define TCS_MULTISELECT 0x0004
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TCS_FLATBUTTONS 0x0008
+#define TCS_EX_FLATSEPARATORS 0x00000001
+#define TCS_EX_REGISTERDROP 0x00000002
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define TCIF_TEXT 1
+#define TCIF_IMAGE 2
+#define TCIF_RTLREADING 4
+#define TCIF_PARAM 8
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TCIF_STATE 16
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define TCIS_BUTTONPRESSED 1
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TCIS_HIGHLIGHTED 2
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#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 >=_WIN32_IE_IE40
+
+#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 >=_WIN32_IE_IE40 */
+
+#define TCN_KEYDOWN (TCN_FIRST - 0)
+#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 >= _WIN32_WINNT_WINXP
+
+#define CCM_SETWINDOWTHEME 0x200B
+#define CCM_DPISCALE 0x200C
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#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 >= _WIN32_IE_IE40
+
+#define ICC_INTERNET_CLASSES 2048
+#define ICC_PAGESCROLLER_CLASS 4096
+#define ICC_NATIVEFNTCTL_CLASS 8192
+#define INFOTIPSIZE 1024
+
+#endif /* _WIN32_IE */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+#define ICC_STANDARD_CLASSES 0x00004000
+#define ICC_LINK_CLASS 0x00008000
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#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 >= _WIN32_IE_IE50
+
+#define DTS_SHORTDATECENTURYFORMAT 0x000C
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+#define MCS_DAYSTATE 1
+#define MCS_MULTISELECT 2
+#define MCS_WEEKNUMBERS 4
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define MCS_NOTODAYCIRCLE 0x0008
+#define MCS_NOTODAY 0x0010
+
+#else /* _WIN32_IE < _WIN32_IE_IE40 */
+
+#define MCS_NOTODAY 0x0008
+
+#endif /* _WIN32_IE < _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE30
+
+#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
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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 >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#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 0x0001
+#define RBBS_FIXEDSIZE 0x0002
+#define RBBS_CHILDEDGE 0x0004
+#define RBBS_HIDDEN 0x0008
+#define RBBS_NOVERT 0x0010
+#define RBBS_FIXEDBMP 0x0020
+#define RBBS_VARIABLEHEIGHT 0x0040
+#define RBBS_GRIPPERALWAYS 0x0080
+#define RBBS_NOGRIPPER 0x0100
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#define RBBS_USECHEVRON 0x0200
+
+#if _WIN32_IE >= _WIN32_IE_IE501
+
+#define RBBS_HIDETITLE 0x0400
+#define RBBS_TOPALIGN 0x0800
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE501 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+#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 >= _WIN32_IE_IE30
+
+#define LVN_ODCACHEHINT (LVN_FIRST - 13)
+
+#define LVN_ODFINDITEM __AW_SUFFIXED__( LVN_ODFINDITEM )
+
+#define LVN_ODFINDITEMA (LVN_FIRST - 52)
+#define LVN_ODFINDITEMW (LVN_FIRST - 79)
+
+#define LVN_ITEMACTIVATE (LVN_FIRST - 14)
+#define LVN_ODSTATECHANGED (LVN_FIRST - 15)
+
+#endif /* _WIN32_IE */
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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 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
+
+#define SB_SETTIPTEXT __AW_SUFFIXED__( SB_SETTIPTEXT )
+#define SB_GETTIPTEXT __AW_SUFFIXED__( SB_GETTIPTEXT )
+#define RB_GETBANDINFO __AW_SUFFIXED__( RB_GETBANDINFO )
+
+#else /* _WIN32_IE < _WIN32_IE_IE40 */
+
+#define RB_GETBANDINFO (WM_USER + 5)
+
+#endif /* _WIN32_IE < _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE40
+
+#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 >= _WIN32_IE_IE40 */
+
+#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 >= _WIN32_IE_IE40
+
+#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 >= _WIN32_IE_IE40 */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+#define LIF_ITEMINDEX 0x00000001
+#define LIF_STATE 0x00000002
+#define LIF_ITEMID 0x00000004
+#define LIF_URL 0x00000008
+#define LIS_FOCUSED 0x00000001
+#define LIS_ENABLED 0x00000002
+#define LIS_VISITED 0x00000004
+
+#define LM_HITTEST (WM_USER + 768)
+#define LM_GETIDEALHEIGHT (WM_USER + 769)
+#define LM_SETITEM (WM_USER + 770)
+#define LM_GETITEM (WM_USER + 771)
+
+#define MAX_LINKID_TEXT 48
+#define L_MAX_URL_LENGTH 2084
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#ifndef RC_INVOKED
+
+typedef
+struct tagNMTCKEYDOWN
+{ NMHDR hdr;
+ WORD wVKey;
+ UINT flags;
+} NMTCKEYDOWN;
+
+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 >= _WIN32_IE_IE40
+
+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
+{ /* FIXME: What are correct alignment constraints? What is correct type
+ * for fwKeys field? See: https://sourceforge.net/p/mingw/bugs/2248/
+ */
+ 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 >= _WIN32_IE_IE40 */
+
+#if _WIN32_IE >= _WIN32_IE_IE401
+
+typedef
+struct tagNMTOOLTIPSCREATED
+{ NMHDR hdr;
+ HWND hwndToolTips;
+} NMTOOLTIPSCREATED, *LPNMTOOLTIPSCREATED;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE401 */
+
+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 >= _WIN32_IE_IE40
+
+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 >= _WIN32_IE_IE40 */
+
+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 >= _WIN32_IE_IE30
+
+ int iImage;
+ int iOrder;
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+ UINT type;
+ LPVOID pvFilter;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+} HDITEMA, * LPHDITEMA;
+
+typedef
+struct _HDITEMW
+{ UINT mask;
+ int cxy;
+ LPWSTR pszText;
+ HBITMAP hbm;
+ int cchTextMax;
+ int fmt;
+ LPARAM lParam;
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+ int iImage;
+ int iOrder;
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+ UINT type;
+ LPVOID pvFilter;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+} HDITEMW, *LPHDITEMW;
+
+/* for backward compatibility */
+#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 compatibility */
+
+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;
+
+#define NMHEADER __AW_SUFFIXED__( NMHEADER )
+#define LPNMHEADER __AW_SUFFIXED__( LPNMHEADER )
+
+/* 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 >= _WIN32_IE_IE40
+
+ int iSubItem;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+} NMLVCUSTOMDRAW, *LPNMLVCUSTOMDRAW;
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+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 >= _WIN32_IE_IE40 */
+
+typedef
+struct tagNMTVCUSTOMDRAW
+{ NMCUSTOMDRAW nmcd;
+ COLORREF clrText;
+ COLORREF clrTextBk;
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+ int iLevel;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+} NMTVCUSTOMDRAW, *LPNMTVCUSTOMDRAW;
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+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 >= _WIN32_WINNT_WINXP
+
+ int iListGap;
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+} 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 >= _WIN32_IE_IE40 */
+
+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 >= _WIN32_IE_IE50
+
+ RECT rcButton;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+} NMTOOLBARA, *LPNMTOOLBARA;
+
+#define TBNOTIFYA NMTOOLBARA
+#define LPTBNOTIFYA LPNMTOOLBARA
+
+typedef
+struct tagNMTOOLBARW
+{ NMHDR hdr;
+ int iItem;
+ TBBUTTON tbButton;
+ int cchText;
+ LPWSTR pszText;
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+ RECT rcButton;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+} 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 >= _WIN32_IE_IE30
+
+ LPARAM lParam;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+} 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 >= _WIN32_IE_IE30
+
+ LPARAM lParam;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+} 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 >= _WIN32_IE_IE30
+
+ LPARAM lParam;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+} 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 >= _WIN32_IE_IE30
+
+ LPARAM lParam;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+} 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 compatibility */
+#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 >= _WIN32_IE_IE30
+
+ int iIndent;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+ int iGroupId;
+ UINT cColumns;
+ PUINT puColumns;
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+} 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 >= _WIN32_IE_IE30
+
+ int iIndent;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+ int iGroupId;
+ UINT cColumns;
+ PUINT puColumns;
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+} 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 tagNMLVFINDITEMA
+{ NMHDR hdr;
+ int iStart;
+ LVFINDINFOA lvfi;
+} NMLVFINDITEMA, *PNMLVFINDITEMA, FAR *LPNMLVFINDITEMA;
+
+#define _NMLVFINDITEMA tagNMLVFINDITEMA
+
+typedef
+struct tagNMLVFINDITEMW
+{ NMHDR hdr;
+ int iStart;
+ LVFINDINFOW lvfi;
+} NMLVFINDITEMW, *PNMLVFINDITEMW, FAR *LPNMLVFINDITEMW;
+
+#define _NMLVFINDITEMW tagNMLVFINDITEMW
+
+typedef
+struct _LVHITTESTINFO
+{ POINT pt;
+ UINT flags;
+ int iItem;
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+ int iSubItem;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+} 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 >= _WIN32_IE_IE30
+
+ int iImage;
+ int iOrder;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+} 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 >= _WIN32_IE_IE30
+
+ int iImage;
+ int iOrder;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+} 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 compatibility */
+#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, *LPNMLVCACHEHINT;
+
+#define NM_CACHEHINT NMLVCACHEHINT
+#define PNM_CACHEHINT LPNMLVCACHEHINT
+#define LPNM_CACHEHINT LPNMLVCACHEHINT
+
+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 >= _WIN32_IE_IE40
+
+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 >= _WIN32_IE_IE40 */
+
+typedef
+struct tagTVINSERTSTRUCTA
+{ HTREEITEM hParent;
+ HTREEITEM hInsertAfter;
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+ _ANONYMOUS_UNION union
+ { TVITEMEXA itemex;
+ TV_ITEMA item;
+ } DUMMYUNIONNAME;
+
+#else /* _WIN32_IE < _WIN32_IE_IE40 */
+
+ TV_ITEMA item;
+
+#endif /* _WIN32_IE < _WIN32_IE_IE40 */
+
+} TVINSERTSTRUCTA, *LPTVINSERTSTRUCTA;
+
+#define _TV_INSERTSTRUCTA tagTVINSERTSTRUCTA
+#define TV_INSERTSTRUCTA TVINSERTSTRUCTA
+#define LPTV_INSERTSTRUCTA LPTVINSERTSTRUCTA
+
+typedef
+struct tagTVINSERTSTRUCTW
+{ HTREEITEM hParent;
+ HTREEITEM hInsertAfter;
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+ _ANONYMOUS_UNION union
+ { TVITEMEXW itemex;
+ TV_ITEMW item;
+ } DUMMYUNIONNAME;
+
+#else /* _WIN32_IE < _WIN32_IE_IE40 */
+
+ TV_ITEMW item;
+
+#endif /* _WIN32_IE < _WIN32_IE_IE40 */
+
+} 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 >= _WIN32_IE_IE40
+
+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 /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+typedef
+struct _TV_KEYDOWN
+{ NMHDR hdr;
+ WORD wVKey;
+ UINT flags;
+} TV_KEYDOWN;
+
+typedef
+struct tagTCITEMHEADERA
+{ UINT mask;
+ UINT lpReserved1;
+ UINT lpReserved2;
+ LPSTR pszText;
+ int cchTextMax;
+ int iImage;
+} TCITEMHEADERA, *LPTCITEMHEADERA;
+
+#define TC_ITEMHEADERA TCITEMHEADERA
+
+typedef
+struct tagTCITEMHEADERW
+{ UINT mask;
+ UINT lpReserved1;
+ UINT lpReserved2;
+ LPWSTR pszText;
+ int cchTextMax;
+ int iImage;
+} TCITEMHEADERW, *LPTCITEMHEADERW;
+
+#define TC_ITEMHEADERW TCITEMHEADERW
+
+typedef
+struct tagTCITEMA
+{ UINT mask;
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+ DWORD dwState;
+ DWORD dwStateMask;
+
+#else /* _WIN32_IE < _WIN32_IE_IE30 */
+
+ UINT lpReserved1;
+ UINT lpReserved2;
+
+#endif /* _WIN32_IE < _WIN32_IE_IE30 */
+
+ LPSTR pszText;
+ int cchTextMax;
+ int iImage;
+ LPARAM lParam;
+} TCITEMA, *LPTCITEMA;
+
+#define TC_ITEMA TCITEMA
+
+typedef
+struct tagTCITEMW
+{ UINT mask;
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+ DWORD dwState;
+ DWORD dwStateMask;
+
+#else /* _WIN32_IE < _WIN32_IE_IE30 */
+
+ UINT lpReserved1;
+ UINT lpReserved2;
+
+#endif /* _WIN32_IE < _WIN32_IE_IE30 */
+
+ 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 >= _WIN32_IE_IE30
+
+typedef
+struct tagINITCOMMONCONTROLSEX
+{ DWORD dwSize;
+ DWORD dwICC;
+} INITCOMMONCONTROLSEX, *LPINITCOMMONCONTROLSEX;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+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 >= _WIN32_IE_IE40
+
+ UINT cyChild;
+ UINT cyMaxChild;
+ UINT cyIntegral;
+ UINT cxIdeal;
+ LPARAM lParam;
+ UINT cxHeader;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+} 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 >= _WIN32_IE_IE40
+
+ UINT cyChild;
+ UINT cyMaxChild;
+ UINT cyIntegral;
+ UINT cxIdeal;
+ LPARAM lParam;
+ UINT cxHeader;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+} 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 >= _WIN32_IE_IE30
+
+typedef
+struct tagNMLVODSTATECHANGE
+{ NMHDR hdr;
+ int iFrom;
+ int iTo;
+ UINT uNewState;
+ UINT uOldState;
+} NMLVODSTATECHANGE, *LPNMLVODSTATECHANGE;
+
+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 >= _WIN32_WINNT_WINXP
+
+ DWORD fState;
+ DWORD Frame;
+ COLORREF crEffect;
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+} IMAGELISTDRAWPARAMS, *LPIMAGELISTDRAWPARAMS;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+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 >= _WIN32_IE_IE50
+
+typedef
+struct tagNMREBARCHEVRON
+{ NMHDR hdr;
+ UINT uBand;
+ UINT wID;
+ LPARAM lParam;
+ RECT rc;
+ LPARAM lParamNM;
+} NMREBARCHEVRON, *LPNMREBARCHEVRON;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+typedef
+struct _RB_HITTESTINFO
+{ POINT pt;
+ UINT flags;
+ int iBand;
+} RBHITTESTINFO, *LPRBHITTESTINFO;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+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 >= _WIN32_WINNT_WINXP
+
+typedef LRESULT (CALLBACK *SUBCLASSPROC)
+( HWND, UINT, WPARAM, LPARAM, UINT_PTR, DWORD_PTR );
+
+typedef
+struct tagLITEM
+{ UINT mask;
+ int iLink;
+ UINT state;
+ UINT stateMask;
+ WCHAR szID[MAX_LINKID_TEXT];
+ WCHAR szUrl[L_MAX_URL_LENGTH];
+} LITEM, *PLITEM;
+
+typedef
+struct tagLHITTESTINFO
+{ POINT pt;
+ LITEM item;
+} LHITTESTINFO, *PLHITTESTINFO;
+
+typedef
+struct tagNMLINK
+{ NMHDR hdr;
+ LITEM item;
+} NMLINK, *PNMLINK;
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#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)
+
+WINAPI HBITMAP CreateMappedBitmap (HINSTANCE, int, UINT, LPCOLORMAP, int);
+WINAPI HWND CreateStatusWindowA (LONG, LPCSTR, HWND, UINT);
+WINAPI HWND CreateStatusWindowW (LONG, LPCWSTR, HWND, UINT);
+
+WINAPI HWND CreateToolbarEx
+( HWND, DWORD, UINT, int, HINSTANCE, UINT, LPCTBBUTTON,
+ int, int, int, int, int, UINT
+);
+
+WINAPI HWND 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) \
+ )
+
+WINAPI void DrawInsert (HWND, HWND, int);
+WINAPI void DrawStatusTextA (HDC, LPRECT, LPCSTR, UINT);
+WINAPI void DrawStatusTextW (HDC, LPRECT, LPCWSTR, UINT);
+WINAPI void GetEffectiveClientRect (HWND, LPRECT, LPINT);
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+WINAPI LANGID GetMUILanguage (VOID);
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+#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 >= _WIN32_IE_IE30
+
+#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))
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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 /* _WIN32_IE >= _WIN32_IE_IE40 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+WINAPI HDSA DSA_Create (INT, INT);
+WINAPI BOOL DSA_Destroy (HDSA);
+WINAPI VOID DSA_DestroyCallback (HDSA, PFNDSAENUMCALLBACK, PVOID);
+WINAPI PVOID DSA_GetItemPtr (HDSA, INT);
+WINAPI INT DSA_InsertItem (HDSA, INT, PVOID);
+WINAPI HDPA DPA_Create (INT);
+WINAPI BOOL DPA_Destroy (HDPA);
+WINAPI PVOID DPA_DeletePtr (HDPA, INT);
+WINAPI BOOL DPA_DeleteAllPtrs (HDPA);
+WINAPI VOID DPA_EnumCallback (HDPA, PFNDPAENUMCALLBACK, PVOID);
+WINAPI VOID DPA_DestroyCallback (HDPA, PFNDPAENUMCALLBACK, PVOID);
+WINAPI BOOL DPA_SetPtr (HDPA, INT, PVOID);
+WINAPI INT DPA_InsertPtr (HDPA, INT, PVOID);
+WINAPI PVOID DPA_GetPtr (HDPA, INT_PTR);
+WINAPI BOOL DPA_Sort (HDPA, PFNDPACOMPARE, LPARAM);
+WINAPI INT DPA_Search (HDPA, PVOID, INT, PFNDPACOMPARE, LPARAM, UINT);
+WINAPI BOOL Str_SetPtrW (LPWSTR *, LPCWSTR);
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+WINAPI BOOL FlatSB_EnableScrollBar (HWND, INT, UINT);
+WINAPI BOOL FlatSB_ShowScrollBar (HWND, INT, BOOL);
+WINAPI BOOL FlatSB_GetScrollRange (HWND, INT, LPINT, LPINT);
+WINAPI BOOL FlatSB_GetScrollInfo (HWND, INT, LPSCROLLINFO);
+WINAPI INT FlatSB_GetScrollPos (HWND, INT);
+WINAPI BOOL FlatSB_GetScrollProp (HWND, INT, LPINT);
+
+#ifdef _WIN64
+
+WINAPI BOOL FlatSB_GetScrollPropPtr (HWND, INT, PINT_PTR);
+
+#else /* !_WIN64 */
+
+#define FlatSB_GetScrollPropPtr FlatSB_GetScrollProp
+
+#endif /* !_WIN64 */
+
+WINAPI INT FlatSB_SetScrollPos (HWND, INT, INT, BOOL);
+WINAPI INT FlatSB_SetScrollInfo (HWND, INT, LPSCROLLINFO, BOOL);
+WINAPI INT FlatSB_SetScrollRange (HWND, INT, INT, INT, BOOL);
+WINAPI BOOL FlatSB_SetScrollProp (HWND, UINT, INT_PTR, BOOL);
+
+#define FlatSB_SetScrollPropPtr FlatSB_SetScrollProp
+
+WINAPI BOOL InitializeFlatSB (HWND);
+WINAPI HRESULT UninitializeFlatSB (HWND);
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+WINAPI BOOL SetWindowSubclass (HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR);
+WINAPI BOOL GetWindowSubclass (HWND, SUBCLASSPROC, UINT_PTR, DWORD_PTR *);
+WINAPI BOOL RemoveWindowSubclass (HWND, SUBCLASSPROC, UINT_PTR);
+WINAPI LRESULT DefSubclassProc (HWND, UINT, WPARAM, LPARAM);
+
+WINAPI INT DrawShadowText
+( HDC, LPCWSTR, UINT, RECT *, DWORD, COLORREF, COLORREF, INT, INT );
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+WINAPI int ImageList_Add (HIMAGELIST, HBITMAP, HBITMAP);
+
+#define ImageList_AddIcon( l, i ) ImageList_ReplaceIcon((l), -1, (i))
+
+WINAPI int ImageList_AddMasked (HIMAGELIST, HBITMAP, COLORREF);
+WINAPI BOOL ImageList_BeginDrag (HIMAGELIST, int, int, int);
+WINAPI HIMAGELIST ImageList_Create (int, int, UINT, int, int);
+WINAPI BOOL ImageList_Destroy (HIMAGELIST);
+WINAPI BOOL ImageList_DragEnter (HWND, int, int);
+WINAPI BOOL ImageList_DragLeave (HWND);
+WINAPI BOOL ImageList_DragMove (int, int);
+WINAPI BOOL ImageList_DragShowNolock (BOOL);
+WINAPI BOOL ImageList_Draw (HIMAGELIST, int, HDC, int, int, UINT);
+
+WINAPI BOOL ImageList_DrawEx
+( HIMAGELIST, int, HDC, int, int, int, int, COLORREF, COLORREF, UINT );
+
+WINAPI void ImageList_EndDrag (VOID);
+
+#define ImageList_ExtractIcon( h, l, i ) ImageList_GetIcon((l), (i), 0)
+
+WINAPI COLORREF ImageList_GetBkColor (HIMAGELIST);
+WINAPI HIMAGELIST ImageList_GetDragImage (LPPOINT, LPPOINT);
+WINAPI HICON ImageList_GetIcon (HIMAGELIST, int, UINT);
+WINAPI BOOL ImageList_GetIconSize (HIMAGELIST, int *, int *);
+WINAPI int ImageList_GetImageCount (HIMAGELIST);
+WINAPI BOOL ImageList_GetImageInfo (HIMAGELIST, int, IMAGEINFO *);
+
+#define ImageList_LoadBitmap( h, l, x, G, M ) \
+ ImageList_LoadImage((h), (l), (x), (G), (M), IMAGE_BITMAP, 0)
+
+WINAPI HIMAGELIST ImageList_LoadImageA
+( HINSTANCE, LPCSTR, int, int, COLORREF, UINT, UINT );
+
+WINAPI HIMAGELIST ImageList_LoadImageW
+( HINSTANCE, LPCWSTR, int, int, COLORREF, UINT, UINT );
+
+WINAPI HIMAGELIST ImageList_Merge
+( HIMAGELIST, int, HIMAGELIST, int, int, int );
+
+WINAPI BOOL ImageList_Remove (HIMAGELIST, int);
+
+#define ImageList_RemoveAll( l ) ImageList_Remove((l), -1)
+
+WINAPI BOOL ImageList_Replace (HIMAGELIST, int, HBITMAP, HBITMAP);
+WINAPI int ImageList_ReplaceIcon (HIMAGELIST, int, HICON);
+WINAPI COLORREF ImageList_SetBkColor (HIMAGELIST, COLORREF);
+WINAPI BOOL ImageList_SetDragCursorImage (HIMAGELIST, int, int, int);
+WINAPI BOOL ImageList_SetIconSize (HIMAGELIST, int, int);
+WINAPI BOOL ImageList_SetOverlayImage (HIMAGELIST, int, int);
+
+#ifdef _OBJIDL_H
+
+WINAPI HIMAGELIST ImageList_Read (LPSTREAM);
+WINAPI BOOL ImageList_Write (HIMAGELIST, LPSTREAM);
+
+#endif /* _OBJIDL_H */
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+WINAPI HIMAGELIST ImageList_Duplicate (HIMAGELIST himl);
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+WINAPI void InitCommonControls (void);
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+WINAPI BOOL InitCommonControlsEx (LPINITCOMMONCONTROLSEX);
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+WINAPI VOID InitMUILanguage (LANGID);
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+WINAPI int 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 ) \
+ (UINT)(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, x, y ) \
+ (BOOL)(SNDMSG ((w), LVM_SCROLL, (x), (y)))
+
+#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_Update( w, i ) \
+ (BOOL)(SNDMSG ((w), LVM_UPDATE, (WPARAM)(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 ) \
+ (void)(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))) \
+ )
+#define ListView_CancelEditLabel( w ) \
+ (VOID)(SNDMSG((w), LVM_CANCELEDITLABEL, 0, 0))
+
+#define ListView_EnableGroupView( w, i ) \
+ (int)(SNDMSG ((w), LVM_ENABLEGROUPVIEW, (WPARAM)(i), 0))
+
+#define ListView_GetGroupInfo( w, i, p ) \
+ (int)(SNDMSG ((w), LVM_GETGROUPINFO, (WPARAM)(i), (LPARAM)(p)))
+
+#define ListView_GetGroupMetrics( w, p ) \
+ SNDMSG ((w), LVM_GETGROUPMETRICS, 0, (LPARAM)(p))
+
+#define ListView_GetInsertMark( w, p ) \
+ (BOOL)(SNDMSG ((w), LVM_GETINSERTMARK, 0, (LPARAM)(p)))
+
+#define ListView_GetInsertMarkColor( w ) \
+ (COLORREF)(SNDMSG ((w), LVM_GETINSERTMARKCOLOR, 0, 0))
+
+#define ListView_GetInsertMarkRect( w, p ) \
+ (int)(SNDMSG ((w), LVM_GETINSERTMARKRECT, 0, (LPARAM)(p)))
+
+#define ListView_GetOutlineColor( w ) \
+ (COLORREF)(SNDMSG ((w), LVM_GETOUTLINECOLOR, 0, 0))
+
+#define ListView_GetSelectedColumn( w ) \
+ (UINT)(SNDMSG ((w), LVM_GETSELECTEDCOLUMN, 0, 0))
+
+#define ListView_GetTileInfo( w, p ) \
+ SNDMSG ((w), LVM_GETTILEINFO, 0, (LPARAM)(p))
+
+#define ListView_GetTileViewInfo( w, p ) \
+ SNDMSG ((w), LVM_GETTILEVIEWINFO, 0, (LPARAM)(p))
+
+#define ListView_GetView( w ) \
+ (DWORD)(SNDMSG ((w), LVM_GETVIEW, 0, 0))
+
+#define ListView_HasGroup( w, i ) \
+ (BOOL)(SNDMSG ((w), LVM_HASGROUP, (WPARAM)(i), 0))
+
+#define ListView_InsertGroup( w, i, p ) \
+ (int)(SNDMSG ((w), LVM_INSERTGROUP, (WPARAM)(i), (LPARAM)(p)))
+
+#define ListView_InsertGroupSorted( w, p ) \
+ SNDMSG ((w), LVM_INSERTGROUPSORTED, (WPARAM)(p), 0)
+
+#define ListView_InsertMarkHitTest( w, p, t ) \
+ (BOOL)(SNDMSG ((w), LVM_INSERTMARKHITTEST, (WPARAM)(p), \
+ (LPARAM)(t)) \
+ )
+#define ListView_IsGroupViewEnabled( w ) \
+ (BOOL)(SNDMSG ((w), LVM_ISGROUPVIEWENABLED, 0, 0))
+
+#define ListView_MapIDToIndex( w, i ) \
+ (UINT)(SNDMSG ((w), LVM_MAPIDTOINDEX, (WPARAM)(i), 0))
+
+#define ListView_MoveGroup( w, i, t ) \
+ SNDMSG ((w), LVM_MOVEGROUP, (WPARAM)(i), (LPARAM)(t))
+
+#define ListView_RemoveAllGroups( w ) \
+ SNDMSG ((w), LVM_REMOVEALLGROUPS, 0, 0)
+
+#define ListView_RemoveGroup( w, i ) \
+ (int)(SNDMSG ((w), LVM_REMOVEGROUP, (WPARAM)(i), 0))
+
+#define ListView_SetGroupInfo( w, i, p ) \
+ (int)(SNDMSG ((w), LVM_SETGROUPINFO, (WPARAM)(i), (LPARAM)(p)))
+
+#define ListView_SetGroupMetrics( w, p ) \
+ SNDMSG ((w), LVM_SETGROUPMETRICS, 0, (LPARAM)(p))
+
+#define ListView_SetInfoTip( w, p ) \
+ (BOOL)(SNDMSG ((w), LVM_SETINFOTIP, 0, (LPARAM)(p)))
+
+#define ListView_SetInsertMark( w, p ) \
+ (BOOL)(SNDMSG ((w), LVM_SETINSERTMARK, 0, (LPARAM)(p)))
+
+#define ListView_SetInsertMarkColor( w, c ) \
+ (COLORREF)SNDMSG((w), LVM_SETINSERTMARKCOLOR, 0, (LPARAM)(c))
+
+#define ListView_SetOutlineColor( w, c ) \
+ (COLORREF)(SNDMSG ((w), LVM_SETOUTLINECOLOR, 0, (LPARAM)(c)))
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+#define ListView_SetSelectedColumn( w, i ) \
+ SNDMSG ((w), LVM_SETSELECTEDCOLUMN, (WPARAM)(i), 0)
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+#define ListView_SetTileInfo( w, p ) \
+ (BOOL)(SNDMSG ((w), LVM_SETTILEINFO, 0, (LPARAM)(p)))
+
+#define ListView_SetTileViewInfo( w, p ) \
+ (BOOL)(SNDMSG ((w), LVM_SETTILEVIEWINFO, 0, (LPARAM)(p)))
+
+#define ListView_SetView( w, i ) \
+ (int)(SNDMSG ((w), LVM_SETVIEW, (WPARAM)(i), 0))
+
+#define ListView_SortGroups( w, c, p ) \
+ (int)(SNDMSG ((w), LVM_SORTGROUPS, (WPARAM)(c), (LPARAM)(p)))
+
+#define ListView_SortItemsEx( w, c, p ) \
+ (BOOL)(SNDMSG((w), LVM_SORTITEMSEX, (WPARAM)(p), (LPARAM)(c)))
+
+#if _WIN32_WINNT >= _WIN32_WINNT_WINXP
+
+#define ComboBox_SetMinVisible( w, i ) \
+ (BOOL)(SNDMSG ((w), CB_SETMINVISIBLE, (WPARAM)(i), 0))
+
+#define ComboBox_GetMinVisible( w ) \
+ (INT)(SNDMSG ((w), CB_GETMINVISIBLE, 0, 0))
+
+#endif /* _WIN32_WINNT >= _WIN32_WINNT_WINXP */
+
+WINAPI BOOL MakeDragList (HWND);
+WINAPI void 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)))
+
+WINAPI BOOL 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))
+
+WINAPI BOOL _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 >= _WIN32_IE_IE30
+
+#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 ) \
+ (void)(SNDMSG ((w), LVM_SETITEMCOUNT, (WPARAM)(i), (LPARAM)(f)))
+
+WINAPI WINBOOL ImageList_SetImageCount (HIMAGELIST, UINT);
+WINAPI WINBOOL ImageList_Copy (HIMAGELIST, int, HIMAGELIST, int, UINT);
+WINAPI WINBOOL 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 /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#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( w, i, fHighlight ) \
+ SNDMSG ((w), TCM_HIGHLIGHTITEM, (WPARAM)i, \
+ (LPARAM)(MAKELONG ((fHighlight), 0)) \
+ )
+#define TabCtrl_SetExtendedStyle( w, dw ) \
+ SNDMSG ((w), TCM_SETEXTENDEDSTYLE, 0, (dw))
+
+#define TabCtrl_GetExtendedStyle( w ) \
+ SNDMSG ((w), TCM_GETEXTENDEDSTYLE, 0, 0)
+
+#define TabCtrl_SetUnicodeFormat( w, u ) \
+ SNDMSG ((w), TCM_SETUNICODEFORMAT, (WPARAM)(u), 0)
+
+#define TabCtrl_GetUnicodeFormat( w ) \
+ SNDMSG ((w), 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 /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#if _WIN32_IE >= _WIN32_IE_IE50
+
+#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.hItem = (i); _tvi.stateMask = (m); _tvi.state = (d); \
+ SNDMSG ((w), TVM_SETITEM, 0, (LPARAM)((TVITEM *)(&_tvi))); \
+}
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+
+/* Variant type definitions, dependent of the state of the UNICODE macro.
+ * FIXME: Consider relocating these, placing each immediately below, and
+ * adjacent to, the invariants to which they refer.
+ */
+typedef __AW_ALIAS__( HDITEM );
+typedef __AW_ALIAS__( TOOLINFO ), *PTOOLINFO, *LPTOOLINFO;
+typedef __AW_ALIAS__( TTHITTESTINFO ), *LPHITTESTINFO, *LPTTHITTESTINFO;
+typedef __AW_ALIAS__( TOOLTIPTEXT ), *LPTOOLTIPTEXT;
+typedef __AW_ALIAS__( NMTTDISPINFO ), *LPNMTTDISPINFO;
+typedef __AW_ALIAS__( TV_ITEM ), *LPTV_ITEM;
+typedef __AW_ALIAS__( TVITEM ), *LPTVITEM;
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+typedef __AW_ALIAS__( TVITEMEX ), *LPTVITEMEX;
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+typedef __AW_ALIAS__( TV_INSERTSTRUCT ), *LPTV_INSERTSTRUCT;
+typedef __AW_ALIAS__( TVINSERTSTRUCT ), *LPTVINSERTSTRUCT;
+typedef __AW_ALIAS__( NM_TREEVIEW ), *LPNM_TREEVIEW;
+typedef __AW_ALIAS__( NMTREEVIEW ), *LPNMTREEVIEW;
+typedef __AW_ALIAS__( NMHDDISPINFO ), *LPNMHDDISPINFO;
+
+/* Variant constant aliases, dependent of the state of the UNICODE macro.
+ * FIXME: Consider relocating these, placing each adjacent to the invariant
+ * manifest constants to which they refer.
+ */
+#define ACM_OPEN __AW_SUFFIXED__( ACM_OPEN )
+#define COMBOBOXEXITEM __AW_SUFFIXED__( COMBOBOXEXITEM )
+#define PCOMBOBOXEXITEM __AW_SUFFIXED__( PCOMBOBOXEXITEM )
+#define PCCOMBOBOXEXITEM __AW_SUFFIXED__( PCCOMBOBOXEXITEM )
+#define CBEM_INSERTITEM __AW_SUFFIXED__( CBEM_INSERTITEM )
+#define CBEM_SETITEM __AW_SUFFIXED__( CBEM_SETITEM )
+#define CBEM_GETITEM __AW_SUFFIXED__( CBEM_GETITEM )
+#define CBEN_ENDEDIT __AW_SUFFIXED__( CBEN_ENDEDIT )
+#define NMCBEENDEDIT __AW_SUFFIXED__( NMCBEENDEDIT )
+#define LPNMCBEENDEDIT __AW_SUFFIXED__( LPNMCBEENDEDIT )
+#define PNMCBEENDEDIT __AW_SUFFIXED__( PNMCBEENDEDIT )
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define NMCOMBOBOXEX __AW_SUFFIXED__( NMCOMBOBOXEX )
+#define PNMCOMBOBOXEX __AW_SUFFIXED__( PNMCOMBOBOXEX )
+#define CBEN_GETDISPINFO __AW_SUFFIXED__( CBEN_GETDISPINFO )
+#define CBEN_DRAGBEGIN __AW_SUFFIXED__( CBEN_DRAGBEGIN )
+#define NMCBEDRAGBEGIN __AW_SUFFIXED__( NMCBEDRAGBEGIN )
+#define LPNMCBEDRAGBEGIN __AW_SUFFIXED__( LPNMCBEDRAGBEGIN )
+#define PNMCBEDRAGBEGIN __AW_SUFFIXED__( PNMCBEDRAGBEGIN )
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define SB_GETTEXT __AW_SUFFIXED__( SB_GETTEXT )
+#define SB_SETTEXT __AW_SUFFIXED__( SB_SETTEXT )
+#define SB_GETTEXTLENGTH __AW_SUFFIXED__( SB_GETTEXTLENGTH )
+#define HDM_INSERTITEM __AW_SUFFIXED__( HDM_INSERTITEM )
+#define HDM_GETITEM __AW_SUFFIXED__( HDM_GETITEM )
+#define HDM_SETITEM __AW_SUFFIXED__( HDM_SETITEM )
+#define HDN_ITEMCHANGING __AW_SUFFIXED__( HDN_ITEMCHANGING )
+#define HDN_ITEMCHANGED __AW_SUFFIXED__( HDN_ITEMCHANGED )
+#define HDN_ITEMCLICK __AW_SUFFIXED__( HDN_ITEMCLICK )
+#define HDN_ITEMDBLCLICK __AW_SUFFIXED__( HDN_ITEMDBLCLICK )
+#define HDN_DIVIDERDBLCLICK __AW_SUFFIXED__( HDN_DIVIDERDBLCLICK )
+#define HDN_BEGINTRACK __AW_SUFFIXED__( HDN_BEGINTRACK )
+#define HDN_ENDTRACK __AW_SUFFIXED__( HDN_ENDTRACK )
+#define HDN_TRACK __AW_SUFFIXED__( HDN_TRACK )
+
+#if _WIN32_IE >= _WIN32_IE_IE30
+
+#define HDN_GETDISPINFO __AW_SUFFIXED__( HDN_GETDISPINFO )
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE30 */
+
+#define HD_NOTIFY __AW_SUFFIXED__( HD_NOTIFY )
+#define TBSAVEPARAMS __AW_SUFFIXED__( TBSAVEPARAMS )
+#define TB_GETBUTTONTEXT __AW_SUFFIXED__( TB_GETBUTTONTEXT )
+#define TB_SAVERESTORE __AW_SUFFIXED__( TB_SAVERESTORE )
+#define TB_ADDSTRING __AW_SUFFIXED__( TB_ADDSTRING )
+#define TBN_GETBUTTONINFO __AW_SUFFIXED__( TBN_GETBUTTONINFO )
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define TB_GETBUTTONINFO __AW_SUFFIXED__( TB_GETBUTTONINFO )
+#define TB_SETBUTTONINFO __AW_SUFFIXED__( TB_SETBUTTONINFO )
+#define TB_INSERTBUTTON __AW_SUFFIXED__( TB_INSERTBUTTON )
+#define TB_ADDBUTTONS __AW_SUFFIXED__( TB_ADDBUTTONS )
+#define TB_MAPACCELERATOR __AW_SUFFIXED__( TB_MAPACCELERATOR )
+#define TB_GETSTRING __AW_SUFFIXED__( TB_GETSTRING )
+#define TBBUTTONINFO __AW_SUFFIXED__( TBBUTTONINFO )
+#define LPTBBUTTONINFO __AW_SUFFIXED__( LPTBBUTTONINFO )
+#define TBN_GETDISPINFO __AW_SUFFIXED__( TBN_GETDISPINFO )
+#define NMTBDISPINFO __AW_SUFFIXED__( NMTBDISPINFO )
+#define LPNMTBDISPINFO __AW_SUFFIXED__( LPNMTBDISPINFO )
+#define NMTBGETINFOTIP __AW_SUFFIXED__( NMTBGETINFOTIP )
+#define LPNMTBGETINFOTIP __AW_SUFFIXED__( LPNMTBGETINFOTIP )
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define TBNOTIFY __AW_SUFFIXED__( TBNOTIFY )
+#define LPTBNOTIFY __AW_SUFFIXED__( LPTBNOTIFY )
+#define NMTOOLBAR __AW_SUFFIXED__( NMTOOLBAR )
+#define LPNMTOOLBAR __AW_SUFFIXED__( LPNMTOOLBAR )
+#define TTM_ADDTOOL __AW_SUFFIXED__( TTM_ADDTOOL )
+#define TTM_DELTOOL __AW_SUFFIXED__( TTM_DELTOOL )
+#define TTM_NEWTOOLRECT __AW_SUFFIXED__( TTM_NEWTOOLRECT )
+#define TTM_GETTOOLINFO __AW_SUFFIXED__( TTM_GETTOOLINFO )
+#define TTM_SETTOOLINFO __AW_SUFFIXED__( TTM_SETTOOLINFO )
+#define TTM_HITTEST __AW_SUFFIXED__( TTM_HITTEST )
+#define TTM_GETTEXT __AW_SUFFIXED__( TTM_GETTEXT )
+#define TTM_UPDATETIPTEXT __AW_SUFFIXED__( TTM_UPDATETIPTEXT )
+#define TTM_ENUMTOOLS __AW_SUFFIXED__( TTM_ENUMTOOLS )
+#define TTM_GETCURRENTTOOL __AW_SUFFIXED__( TTM_GETCURRENTTOOL )
+#define TTN_NEEDTEXT __AW_SUFFIXED__( TTN_NEEDTEXT )
+#define TTN_GETDISPINFO __AW_SUFFIXED__( TTN_GETDISPINFO )
+#define SB_GETTEXT __AW_SUFFIXED__( SB_GETTEXT )
+#define SB_SETTEXT __AW_SUFFIXED__( SB_SETTEXT )
+#define SB_GETTEXTLENGTH __AW_SUFFIXED__( SB_GETTEXTLENGTH )
+#define LV_ITEM __AW_SUFFIXED__( LV_ITEM )
+#define LVITEM __AW_SUFFIXED__( LVITEM )
+#define LPSTR_TEXTCALLBACK __AW_SUFFIXED__( LPSTR_TEXTCALLBACK )
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define LVBKIMAGE __AW_SUFFIXED__( LVBKIMAGE )
+#define LPLVBKIMAGE __AW_SUFFIXED__( LPLVBKIMAGE )
+#define LVM_SETBKIMAGE __AW_SUFFIXED__( LVM_SETBKIMAGE )
+#define LVM_GETBKIMAGE __AW_SUFFIXED__( LVM_GETBKIMAGE )
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define LVM_GETITEM __AW_SUFFIXED__( LVM_GETITEM )
+#define LVM_SETITEM __AW_SUFFIXED__( LVM_SETITEM )
+#define LVM_INSERTITEM __AW_SUFFIXED__( LVM_INSERTITEM )
+#define LV_FINDINFO __AW_SUFFIXED__( LV_FINDINFO )
+#define LVFINDINFO __AW_SUFFIXED__( LVFINDINFO )
+#define LPFINDINFO __AW_SUFFIXED__( LPFINDINFO )
+#define NMLVFINDITEM __AW_SUFFIXED__( NMLVFINDITEM )
+#define PNMLVFINDITEM __AW_SUFFIXED__( PNMLVFINDITEM )
+#define LPNMLVFINDITEM __AW_SUFFIXED__( LPNMLVFINDITEM )
+#define LVM_FINDITEM __AW_SUFFIXED__( LVM_FINDITEM )
+#define LVM_GETSTRINGWIDTH __AW_SUFFIXED__( LVM_GETSTRINGWIDTH )
+#define LVM_EDITLABEL __AW_SUFFIXED__( LVM_EDITLABEL )
+#define LV_COLUMN __AW_SUFFIXED__( LV_COLUMN )
+#define LVCOLUMN __AW_SUFFIXED__( LVCOLUMN )
+#define LVM_GETCOLUMN __AW_SUFFIXED__( LVM_GETCOLUMN )
+#define LVM_SETCOLUMN __AW_SUFFIXED__( LVM_SETCOLUMN )
+#define LVM_INSERTCOLUMN __AW_SUFFIXED__( LVM_INSERTCOLUMN )
+#define LVM_GETITEMTEXT __AW_SUFFIXED__( LVM_GETITEMTEXT )
+#define LVM_SETITEMTEXT __AW_SUFFIXED__( LVM_SETITEMTEXT )
+#define LVM_GETISEARCHSTRING __AW_SUFFIXED__( LVM_GETISEARCHSTRING )
+#define LVN_BEGINLABELEDIT __AW_SUFFIXED__( LVN_BEGINLABELEDIT )
+#define LVN_ENDLABELEDIT __AW_SUFFIXED__( LVN_ENDLABELEDIT )
+#define LVN_GETDISPINFO __AW_SUFFIXED__( LVN_GETDISPINFO )
+#define LVN_SETDISPINFO __AW_SUFFIXED__( LVN_SETDISPINFO )
+#define LVN_GETINFOTIP __AW_SUFFIXED__( LVN_GETINFOTIP )
+#define NMLVGETINFOTIP __AW_SUFFIXED__( NMLVGETINFOTIP )
+#define LPNMLVGETINFOTIP __AW_SUFFIXED__( LPNMLVGETINFOTIP )
+#define LV_DISPINFO __AW_SUFFIXED__( LV_DISPINFO )
+#define NMLVDISPINFO __AW_SUFFIXED__( NMLVDISPINFO )
+#define LPNMLVDISPINFO __AW_SUFFIXED__( LPNMLVDISPINFO )
+#define TVM_INSERTITEM __AW_SUFFIXED__( TVM_INSERTITEM )
+#define TVM_GETITEM __AW_SUFFIXED__( TVM_GETITEM )
+#define TVM_SETITEM __AW_SUFFIXED__( TVM_SETITEM )
+#define TVM_EDITLABEL __AW_SUFFIXED__( TVM_EDITLABEL )
+#define TVM_GETISEARCHSTRING __AW_SUFFIXED__( TVM_GETISEARCHSTRING )
+#define TV_DISPINFO __AW_SUFFIXED__( NMTVDISPINFO )
+#define NMTVDISPINFO __AW_SUFFIXED__( NMTVDISPINFO )
+#define LPNMTVDISPINFO __AW_SUFFIXED__( LPNMTVDISPINFO )
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define NMTVGETINFOTIP __AW_SUFFIXED__( NMTVGETINFOTIP )
+#define LPNMTVGETINFOTIP __AW_SUFFIXED__( LPNMTVGETINFOTIP )
+#define TVN_GETINFOTIP __AW_SUFFIXED__( TVN_GETINFOTIP )
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define TVN_SELCHANGING __AW_SUFFIXED__( TVN_SELCHANGING )
+#define TVN_SELCHANGED __AW_SUFFIXED__( TVN_SELCHANGED )
+#define TVN_GETDISPINFO __AW_SUFFIXED__( TVN_GETDISPINFO )
+#define TVN_SETDISPINFO __AW_SUFFIXED__( TVN_SETDISPINFO )
+#define TVN_ITEMEXPANDING __AW_SUFFIXED__( TVN_ITEMEXPANDING )
+#define TVN_ITEMEXPANDED __AW_SUFFIXED__( TVN_ITEMEXPANDED )
+#define TVN_BEGINDRAG __AW_SUFFIXED__( TVN_BEGINDRAG )
+#define TVN_BEGINRDRAG __AW_SUFFIXED__( TVN_BEGINRDRAG )
+#define TVN_DELETEITEM __AW_SUFFIXED__( TVN_DELETEITEM )
+#define TVN_BEGINLABELEDIT __AW_SUFFIXED__( TVN_BEGINLABELEDIT )
+#define TVN_ENDLABELEDIT __AW_SUFFIXED__( TVN_ENDLABELEDIT )
+#define TC_ITEMHEADER __AW_SUFFIXED__( TC_ITEMHEADER )
+#define TCITEMHEADER __AW_SUFFIXED__( TCITEMHEADER )
+#define LPTCITEMHEADER __AW_SUFFIXED__( LPTCITEMHEADER )
+#define TC_ITEM __AW_SUFFIXED__( TC_ITEM )
+#define TCITEM __AW_SUFFIXED__( TCITEM )
+#define LPTCITEM __AW_SUFFIXED__( LPTCITEM )
+#define TCM_GETITEM __AW_SUFFIXED__( TCM_GETITEM )
+#define TCM_SETITEM __AW_SUFFIXED__( TCM_SETITEM )
+#define TCM_INSERTITEM __AW_SUFFIXED__( TCM_INSERTITEM )
+#define CreateStatusWindow __AW_SUFFIXED__( CreateStatusWindow )
+#define DrawStatusText __AW_SUFFIXED__( DrawStatusText )
+#define ImageList_LoadImage __AW_SUFFIXED__( ImageList_LoadImage )
+#define DTM_SETFORMAT __AW_SUFFIXED__( DTM_SETFORMAT )
+#define DTN_USERSTRING __AW_SUFFIXED__( DTN_USERSTRING )
+#define DTN_WMKEYDOWN __AW_SUFFIXED__( DTN_WMKEYDOWN )
+#define DTN_FORMAT __AW_SUFFIXED__( DTN_FORMAT )
+#define DTN_FORMATQUERY __AW_SUFFIXED__( DTN_FORMATQUERY )
+
+typedef __AW_ALIAS__( REBARBANDINFO ), *LPREBARBANDINFO;
+
+#ifdef UNICODE
+/* Ideally, we would like to use one-line __AW_SUFFIXED__ style semantics
+ * for each UNICODE variant name, but in this case, it likely isn't worth
+ * defining a custom macro, to generate just this one anomalously formed
+ * UNICODE variant manifest constant name mapping.
+ */
+#define REBARBANDINFO_V3_SIZE REBARBANDINFOW_V3_SIZE
+
+#else /* ! UNICODE */
+
+#define REBARBANDINFO_V3_SIZE REBARBANDINFOA_V3_SIZE
+
+#endif /* ! UNICODE */
+
+#define LPCREBARBANDINFO __AW_SUFFIXED__( LPCREBARBANDINFO )
+#define RB_INSERTBAND __AW_SUFFIXED__( RB_INSERTBAND )
+#define RB_SETBANDINFO __AW_SUFFIXED__( RB_SETBANDINFO )
+
+#endif /* ! RC_INVOKED */
+
+#ifdef _WIN32_WCE /* these are PPC only */
+
+WINAPI COMMCTRLAPI HWND CommandBar_Create (HINSTANCE, HWND, int);
+WINAPI COMMCTRLAPI BOOL CommandBar_Show (HWND, BOOL);
+
+WINAPI COMMCTRLAPI int CommandBar_AddBitmap
+( HWND, HINSTANCE, int, int, int, int );
+
+WINAPI COMMCTRLAPI HWND CommandBar_InsertComboBox
+( HWND, HINSTANCE, int, UINT, WORD, WORD );
+
+WINAPI COMMCTRLAPI BOOL CommandBar_InsertMenubar
+( HWND, HINSTANCE, WORD, WORD );
+
+WINAPI COMMCTRLAPI BOOL CommandBar_InsertMenubarEx
+( HWND, HINSTANCE, LPTSTR, WORD );
+
+WINAPI COMMCTRLAPI BOOL CommandBar_DrawMenuBar (HWND, WORD);
+WINAPI COMMCTRLAPI HMENU CommandBar_GetMenu (HWND, WORD);
+WINAPI COMMCTRLAPI BOOL CommandBar_AddAdornments (HWND, DWORD, DWORD);
+WINAPI COMMCTRLAPI int CommandBar_Height (HWND hwndCB);
+
+/* These two are not in the DLL */
+#define CommandBar_InsertButton( hwnd, i, lptbbutton ) \
+ SendMessage ((hwnd), TB_INSERTBUTTON, (i), (lptbbutton))
+
+#define CommandBar_Destroy( hwnd ) \
+ DestroyWindow (hwnd)
+
+#endif /* _WIN32_WCE */
+
+_END_C_DECLS
+
+#endif /* !_COMMCTRL_H: $RCSfile$: end of file */