Re: commctrl.h (+ other headers) patch

"Filip Navara" <xnavara-VIXq6x/[email protected]> Sat, 23 Aug 2003 13:25:59 +0200
Newsgroups gmane.comp.gnu.mingw.patches
Message-ID <004001c36969$554b8100$754ab13e@hornet>
It took me a good hour to revisit the patch and fix all mine _WIN32_IE
detections. I also tried to avoid the reordering, it was caused by my
attemps to guess some values. The attachment contains my diff against the
CVS and also my updated (with push/poppack) Video For Windows header. Next
time I will double-check my patches before submit.

Sorry
FiN

----- Original Message ----- 
From: "Danny Smith" <[email protected]>
To: <[email protected]>
Sent: Saturday, August 23, 2003 7:17 AM
Subject: Re: [MinGW-patches] commctrl.h (+ other headers) patch


>
> ----- Original Message -----
> From: "Filip Navara"
>
> > I tried compiling comctl32.dll from Wine with w32api and this patch is
> the
> > result of my work. Hope, it will get the way into w32api 2.4 :)
> >
> > FiN <xnavara-VIXq6x/[email protected]>
> >
> > REFERENCES:
> > Mostly MSDN and sometimes guessing & testing. If you want URLs for
> online
> > MSDN I can create and post it, but it would involve lot of work :(
> >
> > CHANGLOG (Also in attachment):
> >
> > 2003-08-22  Filip Navara  <xnavara-VIXq6x/[email protected]>
> >  * include/commctrl.h (ILCF_MOVE, ILCF_SWAP, ILS_GLOW, ILS_SHADOW,
> >  ILS_SATURATE, ILS_ALPHA, ILD_NORMAL, ILD_BLEND, ILD_IMAGE, ILD_ROP,
> >     ILD_OVERLAYMASK, ILD_PRESERVEALPHA, ILD_SCALE, ILD_DPISCALE,
> > HDS_HOTTRACK,
> >     HDS_DRAGDROP, HDS_FULLDRAG, HDS_FILTERBAR, SBN_FIRST, SBN_LAST,
> >     HDM_SETIMAGELIST, HDM_GETIMAGELIST, HDM_CREATEDRAGIMAGE,
> > HDM_SETHOTDIVIDER,
> >     HDM_GETUNICODEFORMAT, HDM_SETUNICODEFORMAT, HICF_OTHER,
> HICF_MOUSE,
> >     HICF_ARROWKEYS, HICF_ACCELERATOR, HICF_DUPACCEL, HICF_ENTERING,
> >     HICF_LEAVING, HICF_RESELECT, HICF_LMOUSE, HICF_TOGGLEDROPDOWN,
> >     TBSTATE_MARKED, TBSTYLE_EX_MIXEDBUTTONS,
> TBSTYLE_EX_HIDECLIPPEDBUTTONS,
> >     TBSTYLE_EX_DOUBLEBUFFER, TBCDRF_NOEDGES, TBCDRF_HILITEHOTTRACK,
> >     TBCDRF_NOOFFSET, TBCDRF_NOMARK, TBCDRF_NOETCHEDEFFECT,
> > IDB_HIST_SMALL_COLOR,
> >     IDB_HIST_LARGE_COLOR, TB_ISBUTTONHIGHLIGHTED, TB_REPLACEBITMAP,
> >     TB_SETINDENT, TB_SETIMAGELIST, TB_GETIMAGELIST, TB_LOADIMAGES,
> > TB_GETRECT,
> >     TB_SETHOTIMAGELIST, TB_GETHOTIMAGELIST, TB_SETDISABLEDIMAGELIST,
> >     TB_GETDISABLEDIMAGELIST, TB_SETSTYLE, TB_GETSTYLE,
> TB_GETBUTTONSIZE,
> >     TB_SETBUTTONWIDTH, TB_SETMAXTEXTROWS, TB_GETTEXTROWS,
> TB_GETOBJECT,
> >     TB_GETBUTTONINFOW, TB_GETBUTTONINFOA, TB_SETBUTTONINFOA,
> > TB_INSERTBUTTONW,
> >     TB_ADDBUTTONSW, TB_HITTEST, TB_GETHOTITEM, TB_SETHOTITEM,
> >     TB_SETANCHORHIGHLIGHT, TB_GETANCHORHIGHLIGHT, TB_MAPACCELERATORA,
> >     TB_GETINSERTMARK, TB_SETINSERTMARK, TB_INSERTMARKHITTEST,
> TB_MOVEBUTTON,
> >     TB_GETMAXSIZE, TB_SETEXTENDEDSTYLE, TB_GETEXTENDEDSTYLE,
> TB_GETPADDING,
> >     TB_SETPADDING, TB_SETINSERTMARKCOLOR, TB_GETINSERTMARKCOLOR,
> >     TB_MAPACCELERATORW, TB_SETCOLORSCHEME, TB_GETCOLORSCHEME,
> >     TB_SETUNICODEFORMAT, TB_GETUNICODEFORMAT, TBN_DROPDOWN,
> > TBN_HOTITEMCHANGE,
> >     TBN_DRAGOUT, TBN_DELETINGBUTTON, TBN_GETDISPINFOA,
> TBN_GETDISPINFOW,
> >     TBN_GETINFOTIPA, TBN_GETINFOTIPW, TBN_RESTORE, TBN_SAVE,
> > TBN_INITCUSTOMIZE,
> >     TBNRF_HIDEHELP, TBNRF_ENDCUSTOMIZE, TBNF_IMAGE, TBNF_TEXT,
> > TBNF_DI_SETITEM,
> >     TTM_TRACKACTIVATE, TTM_TRACKPOSITION, TTM_SETTIPBKCOLOR,
> > TTM_GETBUBBLESIZE,
> >     TTM_ADJUSTRECT, TTM_SETTITLEA, TTM_SETTITLEW, UDM_SETPOS32,
> > UDM_GETPOS32,
> >     UDM_SETUNICODEFORMAT, UDM_GETUNICODEFORMAT, SBN_SIMPLEMODECHANGE,
> >     TBS_DOWNISLEFT, TBTS_TOP, TBTS_LEFT, TBTS_BOTTOM, TBTS_RIGHT,
> TBCD_TICS,
> >     TBCD_THUMB, TBCD_CHANNEL, TTF_TRACK, TTF_ABSOLUTE,
> TTF_TRANSPARENT,
> >     TTF_PARSELINKS, TTF_DI_SETITEM, TBDDRET_DEFAULT,
> TBDDRET_NODEFAULT,
> >     TBDDRET_TREATPRESSED, TBIMHT_AFTER, TBIMHT_BACKGROUND,
> I_INDENTCALLBACK,
> >  I_IMAGENONE, CDIS_MARKED, CDIS_INDETERMINATE, CDIS_SHOWKEYBOARDCUES,
> >     CDDS_SUBITEM, LVIF_INDENT, LVIF_NORECOMPUTE, LVIF_GROUPID,
> LVIF_COLUMNS,
> >     LV_MAX_WORKAREAS, LVM_SETWORKAREAS, LVM_GETWORKAREAS,
> >     LVM_GETNUMBEROFWORKAREAS, LVM_GETSELECTIONMARK,
> LVM_SETSELECTIONMARK,
> >     LVM_SETHOVERTIME, LVM_GETHOVERTIME, LVM_SETTOOLTIPS,
> LVM_GETTOOLTIPS,
> >     LVN_GETINFOTIPA, LVN_GETINFOTIPW, LVGIT_UNFOLDED,
> TVM_GETITEMSTATE,
> >     TVM_SETLINECOLOR, TVM_GETLINECOLOR, TVM_SETUNICODEFORMAT,
> >     TVM_GETUNICODEFORMAT, TVE_EXPANDPARTIAL, TVGN_LASTVISIBLE,
> > TVN_GETINFOTIPA,
> >     TVN_GETINFOTIPW, TVN_SINGLEEXPAND, TVNRET_DEFAULT, TVNRET_SKIPOLD,
> >     TVNRET_SKIPNEW, TCIF_STATE, NM_TOOLTIPSCREATED, CCM_FIRST,
> CCM_LAST,
> >     CCM_SETVERSION, CCM_GETVERSION, CCM_SETNOTIFYWINDOW,
> CCM_SETWINDOWTHEME,
> >     CCM_DPISCALE, MCM_GETMAXTODAYWIDTH, MCHT_TITLE, MCHT_CALENDAR,
> >     MCHT_TODAYLINK, MCHT_NEXT, MCHT_PREV, MCHT_NOWHERE, MCHT_TITLEBK,
> >     MCHT_TITLEMONTH, MCHT_TITLEYEAR, MCHT_TITLEBTNNEXT,
> MCHT_TITLEBTNPREV,
> >     MCHT_CALENDARBK, MCHT_CALENDARDATE, MCHT_CALENDARDATENEXT,
> >     MCHT_CALENDARDATEPREV, MCHT_CALENDARDAY, MCHT_CALENDARWEEKNUM,
> PGS_VERT,
> >     PGS_HORZ, PGS_AUTOSCROLL, PGS_DRAGNDROP, PGF_INVISIBLE,
> PGF_NORMAL,
> >     PGF_GRAYED, PGF_DEPRESSED, PGF_HOT, PGB_TOPORLEFT,
> PGB_BOTTOMORRIGHT,
> >     PGF_SCROLLUP, PGF_SCROLLDOWN, PGF_SCROLLLEFT, PGF_SCROLLRIGHT,
> > PGK_SHIFT,
> >     PGK_CONTROL, PGK_MENU, PGF_CALCWIDTH, PGF_CALCHEIGHT, PGM_FIRST,
> >     PGM_SETCHILD, PGM_RECALCSIZE, PGM_FORWARDMOUSE, PGM_SETBKCOLOR,
> >     PGM_GETBKCOLOR, PGM_SETBORDER, PGM_GETBORDER, PGM_SETPOS,
> PGM_GETPOS,
> >     PGM_SETBUTTONSIZE, PGM_GETBUTTONSIZE, PGM_GETBUTTONSTATE,
> > PGM_GETDROPTARGET,
> >     PGN_FIRST, PGN_LAST, PGN_SCROLL, PGN_CALCSIZE,
> TTTOOLINFOA_V1_SIZE,
> >     TTTOOLINFOA_V2_SIZE, TTTOOLINFOA_V3_SIZE, TreeView_GetItemState,
> >     ListView_SetWorkAreas, ListView_GetWorkAreas,
> > ListView_GetNumberOfWorkAreas,
> >     ListView_SetHoverTime, ListView_GetHoverTime,
> ListView_GetSelectionMark,
> >     ListView_SetSelectionMark, ListView_SetToolTips,
> ListView_GetToolTips,
> >     TreeView_SetInsertMark, TreeView_SetUnicodeFormat,
> >     TreeView_GetUnicodeFormat, TB_GETBUTTONINFO, TB_SETBUTTONINFO,
> >     TB_INSERTBUTTON, TB_ADDBUTTONS, TB_MAPACCELERATOR,
> TBN_GETDISPINFO,
> >     NMTBDISPINFO, LPNMTBDISPINFO, LVN_GETINFOTIP, NMLVGETINFOTIP,
> >     LPNMLVGETINFOTIP, TCITEM, LPTCITEM, TB_GETBUTTONINFO,
> TB_SETBUTTONINFO,
> >     TB_INSERTBUTTON, TB_ADDBUTTONS, TB_MAPACCELERATOR,
> TBN_GETDISPINFO,
> >     NMTBDISPINFO, LPNMTBDISPINFO, LVN_GETINFOTIP, NMLVGETINFOTIP,
> >     LPNMLVGETINFOTIP, TCITEM, LPTCITEM): Defined.
> >  * include/commctrl.h (IPN_FIRST, IPN_LAST, TB_ADDBUTTONS,
> TB_INSERTBUTTON,
> >  TBS_TOOLTIPS, TBS_REVERSED, INFOTIPSIZE, HDF_JUSTIFYMASK,
> ODT_LISTVIEW,
> >  CCSIZEOF_STRUCT): Fixed definitions.
> >  * include/commctrl.h (LVITEMW, _TC_ITEMA, _TC_ITEMW, TCITEM,
> >  IMAGELISTDRAWPARAMS): Fixed structures.
> >  * include/commctrl.h (HIMAGELIST, HTREEITEM): Converted to pointers.
> >  * include/commctrl.h (NMLVKEYDOWN, LPNMLVKEYDOWN, NMPGCALCSIZE,
> >  LPNMPGCALCSIZE, NMPGSCROLL, LPNMPGSCROLL, NMSELCHANGE, LPNMSELCHANGE,
> >     NMTBHOTITEM, LPNMTBHOTITEM, NMTBDISPINFOA, LPNMTBDISPINFOA,
> > NMTBDISPINFOW,
> >     LPNMTBDISPINFOW, NMMOUSE, LPNMMOUSE, NMDATETIMECHANGE,
> > LPNMDATETIMECHANGE,
> >     NMTOOLTIPSCREATED, LPNMTOOLTIPSCREATED, TBINSERTMARK,
> LPTBINSERTMARK,
> >     LPHDHITTESTINFO, NMLVGETINFOTIPA, LPNMLVGETINFOTIPA,
> NMLVGETINFOTIPW,
> >     LPNMLVGETINFOTIPW, NMTBCUSTOMDRAW, LPNMTBCUSTOMDRAW, TTTOOLINFOA,
> >     LPTTTOOLINFOA, TTTOOLINFOW, LPTTTOOLINFOW, LPTTHITTESTINFOA,
> >     LPTTHITTESTINFOW, LPLVFINDINFOA, LPLVFINDINFOW, LPLVHITTESTINFO,
> > TCITEMA,
> >     LPTCITEMA, TCITEMW, LPTCITEMW, LPTTHITTESTINFO): Declared.
> >
>
>
> The patch against commcrtl.h did not apply cleanly to CVS version (1st
> hunk failed).
> Can you make patch against CVS, please.
>
> Also, for the nonce, please use numeric constants for the _WIN32_IE
> guards.  I'm not sure if your
> _WIN32_IE >= _IE5
> really means
> _WIN32_IE >= 0x0500
> or
> _WIN32_IE >= 0x0501
>
> Finally, please try to keep patches easier to review (and thus easier to
> approve) by _not_ reordering  statements when reordering is not
> necessary.  If you think rearrangement is a good idea in its own right,
> do that as a separate patch with separate justification.
>
> Thanks
>
> Danny
>
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: VM Ware
> With VMware you can run multiple operating systems on a single machine.
> WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines
> at the same time. Free trial click
here:http://www.vmware.com/wl/offer/358/0
> _______________________________________________
> MinGW-patches mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/mingw-patches
>
patch2.diff (application/octet-stream, 33.9 KB)
Index: src/winsup/w32api/include/commctrl.h
===================================================================
RCS file: /cvs/src/src/winsup/w32api/include/commctrl.h,v
retrieving revision 1.38
diff -u -r1.38 commctrl.h
--- src/winsup/w32api/include/commctrl.h	18 Aug 2003 09:43:24 -0000	1.38
+++ src/winsup/w32api/include/commctrl.h	23 Aug 2003 11:20:30 -0000
@@ -215,6 +215,13 @@
 #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
@@ -223,9 +230,23 @@
 #define ILD_MASK 16
 #define ILD_NORMAL 0
 #define ILD_TRANSPARENT 1
+#define ILD_IMAGE 0x20
+#define ILD_ROP 0x40
+#define ILD_OVERLAYMASK 0xF00
+#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 > 0x300)
+#define HDS_HOTTRACK	4
+#define HDS_DRAGDROP	0x40
+#define HDS_FULLDRAG	0x80
+#endif /* _WIN32_IE > 0x300 */
+#if (_WIN32_IE > 0x500)
+#define HDS_FILTERBAR	0x100
+#endif /* _WIN32_IE > 0x500 */
 #define NM_FIRST	0
 #define NM_LAST	((UINT)-99)
 #define LVN_FIRST	((UINT)-100)
@@ -257,8 +278,12 @@
 #define CBEN_LAST	((UINT)-830)
 #endif /* _WIN32_IE */
 #if (_WIN32_IE >= 0x0400)
-#define IPN_FIRST	(-860)
-#define IPN_LAST	(-879)
+#define IPN_FIRST	((UINT)-860)
+#define IPN_LAST	((UINT)-879)
+#define SBN_FIRST	((UINT)-880U)
+#define SBN_LAST	((UINT)-899U)
+#define PGN_FIRST	((UINT)-900U)
+#define PGN_LAST	((UINT)-950U)
 #define IPN_FIELDCHANGED	(IPN_FIRST-0)
 #endif /* _WIN32_IE >= 0x0400 */
 #define HDI_WIDTH	1
@@ -289,7 +314,7 @@
 #define HDF_LEFT	0
 #define HDF_RIGHT	1
 #define HDF_CENTER	2
-#define HDF_JUSTIFYMASK3
+#define HDF_JUSTIFYMASK	3
 #define HDF_RTLREADING	4
 #define HDF_OWNERDRAW	0x8000
 #define HDF_STRING	0x4000
@@ -309,9 +334,17 @@
 #define HDM_LAYOUT	(HDM_FIRST+5)
 #if (_WIN32_IE >= 0x0300)
 #define HDM_GETITEMRECT (HDM_FIRST+7)
+#define HDM_SETIMAGELIST	(HDM_FIRST+8)
+#define HDM_GETIMAGELIST	(HDM_FIRST+9)
 #define HDM_ORDERTOINDEX	(HDM_FIRST+15)
+#define HDM_CREATEDRAGIMAGE	(HDM_FIRST+16)
 #define HDM_GETORDERARRAY	(HDM_FIRST+17)
 #define HDM_SETORDERARRAY	(HDM_FIRST+18)
+#define HDM_SETHOTDIVIDER	(HDM_FIRST+19)
+#endif
+#if (_WIN32_IE >= 0x0400)
+#define HDM_GETUNICODEFORMAT	CCM_GETUNICODEFORMAT
+#define HDM_SETUNICODEFORMAT	CCM_SETUNICODEFORMAT
 #endif
 #define HHT_NOWHERE	1
 #define HHT_ONHEADER	2
@@ -344,12 +377,28 @@
 #define HDN_GETDISPINFOA (HDN_FIRST-9)
 #define HDN_GETDISPINFOW (HDN_FIRST-29)
 #endif
+#if (_WIN32_IE >= 0x0400)
+#define HICF_OTHER 0x00
+#define HICF_MOUSE 0x01
+#define HICF_ARROWKEYS 0x02
+#define HICF_ACCELERATOR 0x04
+#define HICF_DUPACCEL 0x08
+#define HICF_ENTERING 0x10
+#define HICF_LEAVING 0x20
+#define HICF_RESELECT 0x40
+#define HICF_LMOUSE 0x80
+#define HICF_TOGGLEDROPDOWN 0x100
+#endif /* _WIN32_IE >= 0x0400 */
 #define IPM_CLEARADDRESS	(WM_USER+100)
 #define IPM_SETADDRESS	(WM_USER+101)
 #define IPM_GETADDRESS	(WM_USER+102)
 #define IPM_SETRANGE	(WM_USER+103)
 #define IPM_SETFOCUS	(WM_USER+104)
 #define IPM_ISBLANK	(WM_USER+105)
+#if (_WIN32_IE >= 0x0500)
+#define I_INDENTCALLBACK (-1)
+#define I_IMAGENONE (-2)
+#endif
 #define CMB_MASKED 2
 #define TBSTATE_CHECKED	1
 #define TBSTATE_PRESSED	2
@@ -357,6 +406,9 @@
 #define TBSTATE_HIDDEN	8
 #define TBSTATE_INDETERMINATE	16
 #define TBSTATE_WRAP	32
+#if (_WIN32_IE >= 0x0400)
+#define TBSTATE_MARKED	0x80
+#endif
 #define TBSTYLE_BUTTON	0
 #define TBSTYLE_SEP	1
 #define TBSTYLE_CHECK	2
@@ -382,11 +434,29 @@
 #define TBSTYLE_TRANSPARENT	0x8000
 #define TBSTYLE_EX_DRAWDDARROWS	0x00000001
 #endif /* _WIN32_IE >= 0x0400 */
+#if (_WIN32_IE >= 0x0501)
+#define TBSTYLE_EX_MIXEDBUTTONS 8
+#define TBSTYLE_EX_HIDECLIPPEDBUTTONS 16
+#endif /* _WIN32_IE >= 0x0501 */
+#if (_WIN32_WINNT >= _WXP)
+#define TBSTYLE_EX_DOUBLEBUFFER	0x80
+#endif /* _WIN32_WINNT >= _WXP */
 #define HINST_COMMCTRL	((HINSTANCE)-1)
+#if (_WIN32_IE >= _IE4)
+#define TBCDRF_NOEDGES	0x10000
+#define TBCDRF_HILITEHOTTRACK	0x20000
+#define TBCDRF_NOOFFSET	0x40000
+#define TBCDRF_NOMARK	0x80000
+#define TBCDRF_NOETCHEDEFFECT	0x100000
+#endif /* _WIN32_IE >= _IE4 */
 #define IDB_STD_SMALL_COLOR	0
 #define IDB_STD_LARGE_COLOR	1
 #define IDB_VIEW_SMALL_COLOR	4
 #define IDB_VIEW_LARGE_COLOR	5
+#if (_WIN32_IE >= 0x0300)
+#define IDB_HIST_SMALL_COLOR	8
+#define IDB_HIST_LARGE_COLOR	9
+#endif
 #define STD_CUT	0
 #define STD_COPY	1
 #define STD_PASTE	2
@@ -424,11 +494,19 @@
 #define TB_ISBUTTONPRESSED	(WM_USER+11)
 #define TB_ISBUTTONHIDDEN	(WM_USER+12)
 #define TB_ISBUTTONINDETERMINATE	(WM_USER+13)
+#if (_WIN32_IE >= 0x0400)
+#define TB_ISBUTTONHIGHLIGHTED	(WM_USER+14)
+#endif
 #define TB_SETSTATE	(WM_USER+17)
 #define TB_GETSTATE	(WM_USER+18)
 #define TB_ADDBITMAP	(WM_USER+19)
+#if (_WIN32_IE >= 0x0400)
+#define TB_ADDBUTTONSA	(WM_USER+20)
+#define TB_INSERTBUTTONA	(WM_USER+21)
+#else
 #define TB_ADDBUTTONS	(WM_USER+20)
 #define TB_INSERTBUTTON	(WM_USER+21)
+#endif
 #define TB_DELETEBUTTON	(WM_USER+22)
 #define TB_GETBUTTON	(WM_USER+23)
 #define TB_BUTTONCOUNT	(WM_USER+24)
@@ -457,15 +535,59 @@
 #define TB_REPLACEBITMAP	(WM_USER+46)
 #define TB_GETBUTTONSIZE	(WM_USER+58)
 #define TB_SETBUTTONWIDTH	(WM_USER+59)
+#if (_WIN32_IE >= 0x0300)
+#define TB_SETINDENT	(WM_USER+47)
+#define TB_SETIMAGELIST	(WM_USER+48)
+#define TB_GETIMAGELIST	(WM_USER+49)
+#define TB_LOADIMAGES	(WM_USER+50)
+#define TB_GETRECT	(WM_USER+51)
+#define TB_SETHOTIMAGELIST	(WM_USER+52)
+#define TB_GETHOTIMAGELIST	(WM_USER+53)
+#define TB_SETDISABLEDIMAGELIST (WM_USER+54)
+#define TB_GETDISABLEDIMAGELIST	(WM_USER+55)
+#define TB_SETSTYLE	(WM_USER+56)
+#define TB_GETSTYLE	(WM_USER+57)
+#define TB_GETBUTTONSIZE	(WM_USER+58)
+#define TB_SETBUTTONWIDTH	(WM_USER+59)
+#define TB_SETMAXTEXTROWS	(WM_USER+60)
+#define TB_GETTEXTROWS	(WM_USER+61)
+#endif
 #if _WIN32_IE >= 0x400
-#define TB_SETBUTTONINFO	(WM_USER+66)
+#define TB_GETOBJECT	(WM_USER+62)
+#define TB_GETBUTTONINFOW	(WM_USER+63)
+#define TB_SETBUTTONINFOW	(WM_USER+64)
+#define TB_GETBUTTONINFOA	(WM_USER+65)
+#define TB_SETBUTTONINFOA	(WM_USER+66)
+#define TB_INSERTBUTTONW	(WM_USER+67)
+#define TB_ADDBUTTONSW	(WM_USER+68)
+#define TB_HITTEST	(WM_USER+69)
 #define TB_SETEXTENDEDSTYLE	(WM_USER+84)
 #define TB_GETEXTENDEDSTYLE	(WM_USER+85)
 #define TB_SETDRAWTEXTFLAGS	(WM_USER+70)
+#define TB_GETHOTITEM	(WM_USER+71)
+#define TB_SETHOTITEM	(WM_USER+72)
+#define TB_SETANCHORHIGHLIGHT	(WM_USER+73)
+#define TB_GETANCHORHIGHLIGHT	(WM_USER+74)
+#define TB_MAPACCELERATORA	(WM_USER+78)
+#define TB_GETINSERTMARK	(WM_USER+79)
+#define TB_SETINSERTMARK	(WM_USER+80)
+#define TB_INSERTMARKHITTEST	(WM_USER+81)
+#define TB_MOVEBUTTON		(WM_USER+82)
+#define TB_GETMAXSIZE		(WM_USER+83)
+#define TB_SETEXTENDEDSTYLE	(WM_USER+84)
+#define TB_GETEXTENDEDSTYLE	(WM_USER+85)
+#define TB_GETPADDING		(WM_USER+86)
+#define TB_SETPADDING		(WM_USER+87)
+#define TB_SETINSERTMARKCOLOR	(WM_USER+88)
+#define TB_GETINSERTMARKCOLOR	(WM_USER+89)
+#define TB_MAPACCELERATORW	(WM_USER+90)
+#define TB_SETCOLORSCHEME	CCM_SETCOLORSCHEME
+#define TB_GETCOLORSCHEME	CCM_GETCOLORSCHEME
+#define TB_SETUNICODEFORMAT	CCM_SETUNICODEFORMAT
+#define TB_GETUNICODEFORMAT	CCM_GETUNICODEFORMAT
 #endif
 #define TBBF_LARGE 1
 #define TBN_GETBUTTONINFOA	(TBN_FIRST-0)
-#define TBN_GETBUTTONINFOW	(TBN_FIRST-20)
 #define TBN_BEGINDRAG	(TBN_FIRST-1)
 #define TBN_ENDDRAG	(TBN_FIRST-2)
 #define TBN_BEGINADJUST	(TBN_FIRST-3)
@@ -475,6 +597,29 @@
 #define TBN_QUERYDELETE	(TBN_FIRST-7)
 #define TBN_TOOLBARCHANGE	(TBN_FIRST-8)
 #define TBN_CUSTHELP	(TBN_FIRST-9)
+#if (_WIN32_IE >= 0x0300)
+#define TBN_DROPDOWN	(TBN_FIRST-10)
+#endif
+#if (_WIN32_IE >= 0x0400)
+#define TBN_HOTITEMCHANGE	(TBN_FIRST-13)
+#define TBN_DRAGOUT	(TBN_FIRST-14)
+#define TBN_DELETINGBUTTON	(TBN_FIRST-15)
+#define TBN_GETDISPINFOA	(TBN_FIRST-16)
+#define TBN_GETDISPINFOW	(TBN_FIRST-17)
+#define TBN_GETINFOTIPA	(TBN_FIRST-18)
+#define TBN_GETINFOTIPW	(TBN_FIRST-19)
+#define TBN_GETBUTTONINFOW	(TBN_FIRST-20)
+#endif
+#if (_WIN32_IE >= 0x0500)
+#define TBN_RESTORE	(TBN_FIRST-21)
+#define TBN_SAVE	(TBN_FIRST-22)
+#define TBN_INITCUSTOMIZE	(TBN_FIRST-23)
+#define TBNRF_HIDEHELP	1
+#define TBNRF_ENDCUSTOMIZE	2
+#define TBNF_IMAGE	1
+#define TBNF_TEXT	2
+#define TBNF_DI_SETITEM	0x10000000
+#endif /* _WIN32_IE >= 0x0500 */
 #define TTS_ALWAYSTIP	1
 #define TTS_NOPREFIX	2
 #if( _WIN32_IE >= 0x0500 )
@@ -487,6 +632,25 @@
 #define TTF_CENTERTIP	2
 #define TTF_RTLREADING	4
 #define TTF_SUBCLASS	16
+#if (_WIN32_IE >= 0x0300)
+#define TTF_TRACK 0x0020
+#define TTF_ABSOLUTE 0x0080
+#define TTF_TRANSPARENT 0x0100
+#if (_WIN32_IE >= 0x0501)
+#define TTF_PARSELINKS 0x1000
+#endif
+#define TTF_DI_SETITEM 0x8000
+#define TBCD_TICS 1
+#define TBCD_THUMB 2
+#define TBCD_CHANNEL 3
+#endif /* _WIN32_IE >= 0x0300 */
+#if (_WIN32_IE >= 0x0400)
+#define TBDDRET_DEFAULT 0
+#define TBDDRET_NODEFAULT 1
+#define TBDDRET_TREATPRESSED 2
+#define TBIMHT_AFTER 1
+#define TBIMHT_BACKGROUND 2
+#endif
 #define TTDT_AUTOMATIC	0
 #define TTDT_RESHOW	1
 #define TTDT_AUTOPOP	2
@@ -510,7 +674,7 @@
 #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_GETTOOLCOUNT	(WM_USER+13)
 #define TTM_ENUMTOOLSA	(WM_USER+14)
 #define TTM_ENUMTOOLSW	(WM_USER+58)
 #define TTM_GETCURRENTTOOLA	(WM_USER+15)
@@ -532,6 +696,10 @@
 #endif /* _WIN32_IE */
 #if (_WIN32_IE >= 0x0400)			/* IE4.0 ??? */
 #define TTM_UPDATE		    (WM_USER+29)
+#define TTM_GETBUBBLESIZE	(WM_USER+30)
+#define TTM_ADJUSTRECT	(WM_USER+31)
+#define TTM_SETTITLEA	(WM_USER+32)
+#define TTM_SETTITLEW	(WM_USER+33)
 #endif
 #define TTN_GETDISPINFOA    (TTN_FIRST - 0)
 #define TTN_GETDISPINFOW    (TTN_FIRST - 10)
@@ -563,6 +731,16 @@
 #define UDM_GETACCEL	(WM_USER+108)
 #define UDM_SETBASE	(WM_USER+109)
 #define UDM_GETBASE	(WM_USER+110)
+#if (_WIN32_IE >= 0x0400)
+#define UDM_SETRANGE32	(WM_USER+111)
+#define UDM_GETRANGE32	(WM_USER+112)
+#define UDM_SETPOS32	(WM_USER+113)
+#define UDM_GETPOS32	(WM_USER+114)
+#endif
+#if (_WIN32_IE >= 0x0500)
+#define UDM_SETUNICODEFORMAT	CCM_SETUNICODEFORMAT
+#define UDM_GETUNICODEFORMAT	CCM_GETUNICODEFORMAT
+#endif
 #define SB_SETTEXTA	(WM_USER+1)
 #define SB_SETTEXTW	(WM_USER+11)
 #define SB_GETTEXTA	(WM_USER+2)
@@ -581,6 +759,7 @@
 #define SBT_RTLREADING	1024
 #if( _WIN32_IE >= 0x0400 )
 #define SBT_TOOLTIPS	0x0800
+#define SBN_SIMPLEMODECHANGE	(SBN_FIRST)
 #endif /* _WIN32_IE >= 0x0400 */
 #define TBS_AUTOTICKS	1
 #define TBS_VERT	2
@@ -594,8 +773,19 @@
 #define TBS_ENABLESELRANGE	32
 #define TBS_FIXEDLENGTH	64
 #define TBS_NOTHUMB	128
-#define TBS_TOOLTIPS    0x0100
-#define TBS_REVERSED    0x0200
+#if (_WIN32_IE >= 0x0300)
+#define TBS_TOOLTIPS 0x100
+#define TBTS_TOP 0
+#define TBTS_LEFT 1
+#define TBTS_BOTTOM 2
+#define TBTS_RIGHT 3
+#endif
+#if (_WIN32_IE >= 0x0500)
+#define TBS_REVERSED 0x200
+#endif
+#if (_WIN32_IE >= 0x0501)
+#define TBS_DOWNISLEFT 0x0400
+#endif
 #if _WIN32_IE >= 0x400
 #define TBIF_BYINDEX -2147483648
 #define TBIF_COMMAND 32
@@ -703,8 +893,7 @@
 #define HDS_DRAGDROP	0x0040
 #define HDS_FULLDRAG	0x0080
 #define HDS_FILTERBAR	0x0100
-/* FIXME: missing CDIS_INDETERMINATE,CDIS_MARKED,
- CDDS_SUBITEM, CDRF_NOTIFYSUBITEMDRAW */
+/* FIXME: missing CDRF_NOTIFYSUBITEMDRAW */
 #define CDIS_CHECKED 8
 #define CDIS_DEFAULT 32
 #define CDIS_DISABLED 4
@@ -712,6 +901,11 @@
 #define CDIS_GRAYED 2
 #define CDIS_HOT 64
 #define CDIS_SELECTED 1
+#define CDIS_MARKED 128
+#define CDIS_INDETERMINATE 256
+#if (_WIN32_WINNT >= _WXP)
+#define CDIS_SHOWKEYBOARDCUES 512
+#endif
 #define CDDS_POSTERASE 4
 #define CDDS_POSTPAINT 2
 #define CDDS_PREERASE 3
@@ -721,6 +915,9 @@
 #define CDDS_ITEMPOSTPAINT 65538
 #define CDDS_ITEMPREERASE 65539
 #define CDDS_ITEMPREPAINT 65537
+#if (_WIN32_IE >= 0x0400)
+#define CDDS_SUBITEM 0x20000
+#endif
 #define CDRF_DODEFAULT 0
 #define CDRF_NOTIFYITEMDRAW 32
 #define CDRF_NOTIFYITEMERASE 128
@@ -777,6 +974,14 @@
 #define LVIF_IMAGE	2
 #define LVIF_PARAM	4
 #define LVIF_STATE	8
+#if (_WIN32_IE >= 0x0300)
+#define LVIF_INDENT 16
+#define LVIF_NORECOMPUTE 2048
+#endif
+#if (_WIN32_WINNT >= _WXP)
+#define LVIF_GROUPID 128
+#define LVIF_COLUMNS 256
+#endif
 #define LVIS_FOCUSED	1
 #define LVIS_SELECTED	2
 #define LVIS_CUT	4
@@ -801,7 +1006,17 @@
 #define LVM_SETBKIMAGEW	(LVM_FIRST + 138)
 #define LVM_GETBKIMAGEA	(LVM_FIRST + 69)
 #define LVM_GETBKIMAGEW	(LVM_FIRST + 139)
-#endif /* _WIN32_IE >=0x0400 */
+#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)
+#endif /* _WIN32_IE >= 0x0400 */
 #define LVNI_ALL	0
 #define LVNI_FOCUSED	1
 #define LVNI_SELECTED	2
@@ -935,9 +1150,12 @@
 #define LVN_SETDISPINFOW	(LVN_FIRST-78)
 #define LVN_KEYDOWN	(LVN_FIRST-55)
 #if (_WIN32_IE >= 0x0400)
+#define LVN_GETINFOTIPA	(LVN_FIRST-57)
+#define LVN_GETINFOTIPW	(LVN_FIRST-58)
 #define LVKF_ALT	0x0001
 #define LVKF_CONTROL	0x0002
 #define LVKF_SHIFT	0x0004
+#define LVGIT_UNFOLDED  1
 #endif
 #define TVS_HASBUTTONS	1
 #define TVS_HASLINES	2
@@ -1032,11 +1250,21 @@
 #define TVM_SETITEMHEIGHT (TV_FIRST+27)
 #define TVM_SETSCROLLTIME (TV_FIRST+33)
 #define TVM_SETTEXTCOLOR (TV_FIRST+30)
+#define TVM_SETUNICODEFORMAT CCM_SETUNICODEFORMAT
+#define TVM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
+#endif
+#if (_WIN32_IE >= 0x0500)
+#define TVM_GETITEMSTATE (TV_FIRST+39)
+#define TVM_SETLINECOLOR (TV_FIRST+40)
+#define TVM_GETLINECOLOR (TV_FIRST+41)
 #endif
 #define TVE_COLLAPSE	1
 #define TVE_EXPAND	2
 #define TVE_TOGGLE	3
 #define TVE_COLLAPSERESET	0x8000
+#if (_WIN32_IE >= 0x0300)
+#define TVE_EXPANDPARTIAL	0x4000
+#endif
 #define TVC_UNKNOWN	0
 #define TVC_BYMOUSE	1
 #define TVC_BYKEYBOARD	2
@@ -1050,6 +1278,9 @@
 #define TVGN_PREVIOUSVISIBLE	7
 #define TVGN_DROPHILITE	8
 #define TVGN_CARET	9
+#if (_WIN32_IE >= 0x0400)
+#define TVGN_LASTVISIBLE	10
+#endif
 #define TVN_SELCHANGINGA	(TVN_FIRST-1)
 #define TVN_SELCHANGINGW	(TVN_FIRST-50)
 #define TVN_SELCHANGEDA	(TVN_FIRST-2)
@@ -1073,6 +1304,14 @@
 #define TVN_ENDLABELEDITA	(TVN_FIRST-11)
 #define TVN_ENDLABELEDITW	(TVN_FIRST-60)
 #define TVN_KEYDOWN	(TVN_FIRST-12)
+#if (_WIN32_IE >= 0x0400)
+#define TVN_GETINFOTIPA	(TVN_FIRST-13)
+#define TVN_GETINFOTIPW	(TVN_FIRST-14)
+#define TVN_SINGLEEXPAND	(TVN_FIRST-15)
+#define TVNRET_DEFAULT 0
+#define TVNRET_SKIPOLD 1
+#define TVNRET_SKIPNEW 2
+#endif /* _WIN32_IE >= 0x0400 */
 #define TVIF_DI_SETITEM	0x1000
 #define TVHT_NOWHERE	1
 #define TVHT_ONITEMICON	2
@@ -1120,6 +1359,9 @@
 #define TCIF_IMAGE	2
 #define TCIF_RTLREADING	4
 #define TCIF_PARAM	8
+#if (_WIN32_IE >= 0x0400)
+#define TCIF_STATE	16
+#endif
 #define TCM_FIRST	0x1300
 #define TCM_GETIMAGELIST	(TCM_FIRST+2)
 #define TCM_SETIMAGELIST	(TCM_FIRST+3)
@@ -1174,13 +1416,23 @@
 #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 >= _WXP)
+#define CCM_SETWINDOWTHEME 0x200b
+#define CCM_DPISCALE 0x200c
+#endif 
 #define ICC_LISTVIEW_CLASSES 1
 #define ICC_TREEVIEW_CLASSES 2
 #define ICC_BAR_CLASSES	4
@@ -1197,7 +1449,7 @@
 #define ICC_INTERNET_CLASSES 2048
 #define ICC_PAGESCROLLER_CLASS 4096
 #define ICC_NATIVEFNTCTL_CLASS 8192
-#define INFOTIPSIZE
+#define INFOTIPSIZE 1024
 #endif /* _WIN32_IE */
 #define GDTR_MIN 1
 #define GDTR_MAX 2
@@ -1267,12 +1519,13 @@
 #define MCM_SETRANGE 0x1012
 #define MCM_GETMONTHDELTA 0x1013
 #define MCM_SETMONTHDELTA 0x1014
+#define MCM_GETMAXTODAYWIDTH 0x1015
 #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
+#define ODT_LISTVIEW 102
 #define SB_SETBKCOLOR	0x2001
 #if (_WIN32_IE >= 0x0300)
 #define SB_ISSIMPLE 1038
@@ -1283,6 +1536,25 @@
 #define MCSC_MONTHBK 4
 #define MCSC_TRAILINGTEXT 5
 #endif
+#if (_WIN32_IE >= 0x0400)
+#define MCHT_TITLE 0x10000
+#define MCHT_CALENDAR 0x20000
+#define MCHT_TODAYLINK 0x30000
+#define MCHT_NEXT 0x1000000
+#define MCHT_PREV 0x2000000
+#define MCHT_NOWHERE 0x00
+#define MCHT_TITLEBK (MCHT_TITLE)
+#define MCHT_TITLEMONTH (MCHT_TITLE | 0x0001)
+#define MCHT_TITLEYEAR (MCHT_TITLE | 0x0002)
+#define MCHT_TITLEBTNNEXT (MCHT_TITLE | MCHT_NEXT | 0x0003)
+#define MCHT_TITLEBTNPREV (MCHT_TITLE | MCHT_PREV | 0x0003)
+#define MCHT_CALENDARBK (MCHT_CALENDAR)
+#define MCHT_CALENDARDATE (MCHT_CALENDAR | 0x0001)
+#define MCHT_CALENDARDATENEXT (MCHT_CALENDARDATE | MCHT_NEXT)
+#define MCHT_CALENDARDATEPREV (MCHT_CALENDARDATE | MCHT_PREV)
+#define MCHT_CALENDARDAY (MCHT_CALENDAR | 0x0002)
+#define MCHT_CALENDARWEEKNUM (MCHT_CALENDAR | 0x0003)
+#endif /* _WIN32_IE >= 0x0400 */
 #define RBS_TOOLTIPS 256
 #define RBS_VARHEIGHT 512
 #define RBS_BANDBORDERS 1024
@@ -1340,6 +1612,44 @@
 #define SB_GETICON	1044
 #define SB_SETUNICODEFORMAT	0x2005
 #define SB_GETUNICODEFORMAT	0x2006
+#define PGS_VERT 0
+#define PGS_HORZ 1
+#define PGS_AUTOSCROLL 2
+#define PGS_DRAGNDROP 4
+#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 PGN_FIRST (0U-900U)
+#define PGN_LAST (0U-950U)
+#define PGN_SCROLL (PGN_FIRST-1)
+#define PGN_CALCSIZE (PGN_FIRST-2)
 #define RBS_REGISTERDROP 4096
 #define RBS_AUTOSIZE 8192
 #define RBS_VERTICALGRIPPER 16384
@@ -1473,7 +1783,76 @@
 	int iField;
 	int iValue;
 } NMIPADDRESS, *LPNMIPADDRESS;
-#endif /*_WIN32_IE >= 0x0400*/
+typedef struct tagLVKEYDOWN {
+	NMHDR hdr;
+	WORD wVKey;
+	UINT flags;
+} NMLVKEYDOWN, *LPNMLVKEYDOWN;
+typedef struct {
+	NMHDR hdr;
+	DWORD dwFlag;
+	int iWidth;
+	int iHeight;
+} NMPGCALCSIZE, *LPNMPGCALCSIZE;
+typedef struct {
+	NMHDR hdr;
+	BOOL fwKeys;
+	RECT rcParent;
+	int iDir;
+	int iXpos;
+	int iYpos;
+	int iScroll;
+} NMPGSCROLL, *LPNMPGSCROLL;
+typedef struct tagNMSELCHANGE {
+	NMHDR nmhdr;
+	SYSTEMTIME stSelStart;
+	SYSTEMTIME stSelEnd;
+} NMSELCHANGE, *LPNMSELCHANGE;
+typedef struct tagNMTBHOTITEM {
+	NMHDR hdr;
+	int idOld;
+	int idNew;
+	DWORD dwFlags;
+} NMTBHOTITEM, *LPNMTBHOTITEM;
+typedef struct {
+	NMHDR hdr;
+	DWORD dwMask;
+	int idCommand;
+	DWORD_PTR lParam;
+	int iImage;
+	LPSTR pszText;
+	int cchText;
+} NMTBDISPINFOA, *LPNMTBDISPINFOA;
+typedef struct {
+	NMHDR hdr;
+	DWORD dwMask;
+	int idCommand;
+	DWORD_PTR lParam;
+	int iImage;
+	LPWSTR pszText;
+	int cchText;
+} NMTBDISPINFOW, *LPNMTBDISPINFOW;
+typedef struct tagNMMOUSE {
+	NMHDR hdr;
+	DWORD_PTR dwItemSpec;
+	DWORD_PTR dwItemData;
+	POINT pt;
+	LPARAM dwHitInfo;
+} NMMOUSE, *LPNMMOUSE;
+#endif /*_WIN32_IE >= 0x0400 */
+#if (_WIN32_IE >= 0x0401)
+typedef struct tagNMTOOLTIPSCREATED
+{
+	NMHDR hdr;
+	HWND hwndToolTips;
+} NMTOOLTIPSCREATED, *LPNMTOOLTIPSCREATED;
+#endif
+typedef struct tagNMDATETIMECHANGE
+{
+	NMHDR nmhdr;
+	DWORD dwFlags;
+	SYSTEMTIME st;
+} NMDATETIMECHANGE, *LPNMDATETIMECHANGE;
 typedef struct {
 	NMHDR hdr;
 	BOOL fChanged;
@@ -1532,6 +1911,10 @@
 	LPWSTR pszText;
 	int cchText;
 } TBBUTTONINFOW, *LPTBBUTTONINFOW;
+typedef struct {
+	int iButton;
+	DWORD dwFlags;
+} TBINSERTMARK, *LPTBINSERTMARK;
 typedef struct tagLVBKIMAGEA {
 	ULONG ulFlags;              
 	HBITMAP hbm;
@@ -1567,8 +1950,8 @@
 	int Unused1;
 	int Unused2;
 	RECT rcImage;
-} IMAGEINFO;
-DECLARE_HANDLE(HIMAGELIST);
+} IMAGEINFO, *LPIMAGEINFO;
+typedef struct _IMAGELIST *HIMAGELIST;
 typedef struct _HDITEMA {
 	UINT mask;
 	int cxy;
@@ -1616,7 +1999,7 @@
 	POINT pt;
 	UINT flags;
 	int iItem;
-} HD_HITTESTINFO;
+} HD_HITTESTINFO, *LPHDHITTESTINFO;
 typedef struct _HD_NOTIFYA {
 	NMHDR hdr;
 	int iItem;
@@ -1688,6 +2071,28 @@
     int          iSubItem;
 #endif
 } NMLVCUSTOMDRAW, *LPNMLVCUSTOMDRAW;
+#if (_WIN32_IE >= 0x0400)
+typedef struct tagNMLVGETINFOTIPA
+{
+	NMHDR hdr;
+	DWORD dwFlags;
+	LPSTR pszText;
+	int cchTextMax;
+	int iItem;
+	int iSubItem;
+	LPARAM lParam;
+} NMLVGETINFOTIPA, *LPNMLVGETINFOTIPA;
+typedef struct tagNMLVGETINFOTIPW
+{
+	NMHDR hdr;
+	DWORD dwFlags;
+	LPWSTR pszText;
+	int cchTextMax;
+	int iItem;
+	int iSubItem;
+	LPARAM lParam;
+} NMLVGETINFOTIPW, *LPNMLVGETINFOTIPW;
+#endif /* _WIN32_IE >= 0x0400 */
 typedef struct tagNMTVCUSTOMDRAW {
     NMCUSTOMDRAW nmcd;
     COLORREF     clrText;
@@ -1697,6 +2102,24 @@
 #endif
 } NMTVCUSTOMDRAW, *LPNMTVCUSTOMDRAW;
 #if (_WIN32_IE >= 0x400)
+typedef struct _NMTBCUSTOMDRAW {
+	NMCUSTOMDRAW nmcd;
+	HBRUSH hbrMonoDither;
+	HBRUSH hbrLines;
+	HPEN hpenLines;
+	COLORREF clrText;
+	COLORREF clrMark;
+	COLORREF clrTextHighlight;
+	COLORREF clrBtnFace;
+	COLORREF clrBtnHighlight;
+	COLORREF clrHighlightHotTrack;
+	RECT rcText;
+	int nStringBkMode;
+	int nHLStringBkMode;
+#if (_WIN32_WINNT >= _WXP)
+	int iListGap;
+#endif
+} NMTBCUSTOMDRAW, * LPNMTBCUSTOMDRAW;
 typedef struct tagNMITEMACTIVATE {
 	NMHDR hdr;
 	int iItem;
@@ -1765,7 +2188,10 @@
 #if (_WIN32_IE >= 0x0300)
 	LPARAM lParam;
 #endif
-} TOOLINFOA,*PTOOLINFOA,*LPTOOLINFOA;
+} TOOLINFOA,TTTOOLINFOA,*LPTTTOOLINFOA,*PTOOLINFOA,*LPTOOLINFOA;
+#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;
@@ -1777,17 +2203,20 @@
 #if (_WIN32_IE >= 0x0300)
 	LPARAM lParam;
 #endif
-} TOOLINFOW,*PTOOLINFOW,*LPTOOLINFOW;
+} TOOLINFOW,TTTOOLINFOW,*LPTTTOOLINFOW,*PTOOLINFOW,*LPTOOLINFOW;
+#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,*LPHITTESTINFOA;
+} TTHITTESTINFOA,*LPHITTESTINFOA,*LPTTHITTESTINFOA;
 typedef struct _TT_HITTESTINFOW {
 	HWND hwnd;
 	POINT pt;
 	TOOLINFOW ti;
-} TTHITTESTINFOW,*LPHITTESTINFOW;
+} TTHITTESTINFOW,*LPHITTESTINFOW,*LPTTHITTESTINFOW;
 typedef struct tagNMTTDISPINFOA {
 	NMHDR hdr;
 	LPSTR lpszText;
@@ -1853,6 +2282,11 @@
 #if (_WIN32_IE >= 0x0300)
 	int iIndent;
 #endif
+#if (_WIN32_WINNT >= _WXP)
+	int iGroupId;
+	UINT cColumns;
+	PUINT puColumns;
+#endif
 } LVITEMW, FAR *LPLVITEMW;
 #define _LV_ITEMW _LVITEMW
 #define LV_ITEMW LVITEMW
@@ -1862,7 +2296,7 @@
 	LPARAM lParam;
 	POINT pt;
 	UINT vkDirection;
-} LVFINDINFOA, FAR* LPFINDINFOA;
+} LVFINDINFOA, FAR* LPFINDINFOA, FAR* LPLVFINDINFOA;
 #define _LV_FINDINFOA tagLVFINDINFOA
 #define LV_FINDINFOA LVFINDINFOA
 typedef struct tagLVFINDINFOW {
@@ -1871,7 +2305,7 @@
 	LPARAM lParam;
 	POINT pt;
 	UINT vkDirection;
-} LVFINDINFOW, FAR* LPFINDINFOW;
+} LVFINDINFOW, FAR* LPFINDINFOW, FAR* LPLVFINDINFOW;
 #define _LV_FINDINFOW tagLVFINDINFOW
 #define LV_FINDINFOW LVFINDINFOW
 typedef struct _LVHITTESTINFO {
@@ -1881,7 +2315,7 @@
 #if (_WIN32_IE >= 0x0300)
 	int iSubItem;
 #endif
-} LVHITTESTINFO;
+} LVHITTESTINFO, FAR *LPLVHITTESTINFO;
 #define _LV_HITTESTINFO _LVHITTESTINFO
 #define LV_HITTESTINFO LVHITTESTINFO
 typedef struct _LVCOLUMNA {
@@ -1950,7 +2384,7 @@
 	int iTo;
 } NMLVCACHEHINT, *PNMLVCACHEHINT;
 #define NM_CACHEHINT NMLVCACHEHINT
-DECLARE_HANDLE(HTREEITEM);
+typedef struct _TREEITEM *HTREEITEM;
 typedef struct tagTVITEMA {
 	UINT mask;
 	HTREEITEM hItem;
@@ -2111,22 +2545,32 @@
 } TC_ITEMHEADERW;
 typedef struct _TC_ITEMA {
 	UINT mask;
-	UINT lpReserved1;
-	UINT lpReserved2;
+#if (_WIN32_IE >= 0x0300)
+	DWORD dwState;
+	DWORD dwStateMask;
+#else
+ 	UINT lpReserved1;
+ 	UINT lpReserved2;
+#endif
 	LPSTR pszText;
 	int cchTextMax;
 	int iImage;
 	LPARAM lParam;
-} TC_ITEMA;
+} TC_ITEMA, TCITEMA, *LPTCITEMA;
 typedef struct _TC_ITEMW {
 	UINT mask;
-	UINT lpReserved1;
-	UINT lpReserved2;
+#if (_WIN32_IE >= 0x0300)
+	DWORD dwState;
+	DWORD dwStateMask;
+#else
+ 	UINT lpReserved1;
+ 	UINT lpReserved2;
+#endif
 	LPWSTR pszText;
 	int cchTextMax;
 	int iImage;
 	LPARAM lParam;
-} TC_ITEMW;
+} TC_ITEMW, TCITEMW, *LPTCITEMW;
 typedef struct _TC_HITTESTINFO {
 	POINT pt;
 	UINT flags;
@@ -2151,24 +2595,6 @@
 	COLORREF clrBtnHighlight;
 	COLORREF clrBtnShadow;
 } COLORSCHEME,*LPCOLORSCHEME;
-typedef struct tagTCITEM {
-	UINT mask;
-#if (_WIN32_IE >= 0x0300)
-	DWORD dwState;
-	DWORD dwStateMask;
-#else
-	UINT lpReserved1;
-	UINT lpReserved2;
-#endif
-#ifdef UNICODE
-	LPWSTR pszText;
-#else
-	LPSTR pszText;
-#endif
-	int cchTextMax;
-	int iImage;
-	LPARAM lParam;
-} TCITEM,*LPTCITEM;
 typedef struct tagMCHITTESTINFO {
 	UINT cbSize;
 	POINT pt;
@@ -2261,6 +2687,11 @@
 	COLORREF rgbFg;
 	UINT fStyle;
 	DWORD dwRop;
+#if (_WIN32_WINNT >= _WXP)
+	DWORD fState;
+	DWORD Frame;
+	COLORREF crEffect;
+#endif
 } IMAGELISTDRAWPARAMS,*LPIMAGELISTDRAWPARAMS;
 #endif /* (_WIN32_IE >= 0x0300) */
 #if (_WIN32_IE >= 0x0400)
@@ -2306,7 +2737,7 @@
 #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(n,m) (((int)((PBYTE)(&((s*)0)->m)-((PBYTE)((s*)0))))+sizeof(((s*)0)->m))
+#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)
@@ -2576,6 +3007,15 @@
 #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 *)(pnWorkAreas))
+#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 TabCtrl_HighlightItem(hwnd, i, fHighlight) SNDMSG((hwnd), TCM_HIGHLIGHTITEM, (WPARAM)i, (LPARAM)MAKELONG (fHighlight, 0))
 #define TabCtrl_SetExtendedStyle(hwnd, dw) SNDMSG((hwnd), TCM_SETEXTENDEDSTYLE, 0, dw)
 #define TabCtrl_GetExtendedStyle(hwnd) SNDMSG((hwnd), TCM_GETEXTENDEDSTYLE, 0, 0)
@@ -2591,12 +3031,18 @@
 #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)
+#endif
+#if (_WIN32_IE >= 0x0500)
+#define TreeView_GetItemState(w,i,m) (UINT)SNDMSG((w),TVM_GETITEMSTATE,(WPARAM)(i),(LPARAM)(m))
 #endif
 
 #ifdef UNICODE
 typedef HDITEMW HDITEM;
 typedef TOOLINFOW TOOLINFO,*PTOOLINFO,*LPTOOLINFO;
-typedef TTHITTESTINFOW TTHITTESTINFO,*LPHITTESTINFO;
+typedef TTHITTESTINFOW TTHITTESTINFO,*LPHITTESTINFO,*LPTTHITTESTINFO;
 typedef TOOLTIPTEXTW TOOLTIPTEXT,*LPTOOLTIPTEXT;
 typedef NMTTDISPINFOW NMTTDISPINFO, *LPNMTTDISPINFO;
 typedef TV_ITEMW TV_ITEM,*LPTV_ITEM;
@@ -2653,8 +3099,16 @@
 #define TB_ADDSTRING TB_ADDSTRINGW
 #define TBN_GETBUTTONINFO TBN_GETBUTTONINFOW
 #if _WIN32_IE >= 0x400
+#define TB_GETBUTTONINFO TB_GETBUTTONINFOW
+#define TB_SETBUTTONINFO TB_SETBUTTONINFOW
+#define TB_INSERTBUTTON TB_INSERTBUTTONW
+#define TB_ADDBUTTONS TB_ADDBUTTONSW
+#define TB_MAPACCELERATOR TB_MAPACCELERATORW
 #define TBBUTTONINFO TBBUTTONINFOW
 #define LPTBBUTTONINFO LPTBBUTTONINFOW
+#define TBN_GETDISPINFO TBN_GETDISPINFOW
+#define NMTBDISPINFO NMTBDISPINFOW
+#define LPNMTBDISPINFO LPNMTBDISPINFOW
 #endif
 #define TBNOTIFY TBNOTIFYW
 #define LPTBNOTIFY LPTBNOTIFYW
@@ -2704,6 +3158,9 @@
 #define LVN_ENDLABELEDIT LVN_ENDLABELEDITW
 #define LVN_GETDISPINFO LVN_GETDISPINFOW
 #define LVN_SETDISPINFO LVN_SETDISPINFOW
+#define LVN_GETINFOTIP LVN_GETINFOTIPW
+#define NMLVGETINFOTIP NMLVGETINFOTIPW
+#define LPNMLVGETINFOTIP LPNMLVGETINFOTIPW
 #define LV_DISPINFO LV_DISPINFOW
 #define NMLVDISPINFO NMLVDISPINFOW
 #define TVM_INSERTITEM TVM_INSERTITEMW
@@ -2727,6 +3184,8 @@
 #define TVN_ENDLABELEDIT TVN_ENDLABELEDITW
 #define TC_ITEMHEADER TC_ITEMHEADERW
 #define TC_ITEM TC_ITEMW
+#define TCITEM TC_ITEMW
+#define LPTCITEM LPTCITEMW
 #define TCM_GETITEM TCM_GETITEMW
 #define TCM_SETITEM TCM_SETITEMW
 #define TCM_INSERTITEM TCM_INSERTITEMW
@@ -2746,7 +3205,7 @@
 #else /* UNICODE */
 typedef HDITEMA HDITEM;
 typedef TOOLINFOA TOOLINFO,*PTOOLINFO,*LPTOOLINFO;
-typedef TTHITTESTINFOA TTHITTESTINFO,*LPHITTESTINFO;
+typedef TTHITTESTINFOA TTHITTESTINFO,*LPHITTESTINFO,*LPTTHITTESTINFO;
 typedef TOOLTIPTEXTA TOOLTIPTEXT,*LPTOOLTIPTEXT;
 typedef NMTTDISPINFOA NMTTDISPINFO, *LPNMTTDISPINFO;
 typedef TV_ITEMA TV_ITEM,*LPTV_ITEM;
@@ -2771,6 +3230,11 @@
 #define LPNMCBEENDEDIT	LPNMCBEENDEDITA
 #define PNMCBEENDEDIT	PNMCBEENDEDITA
 #if _WIN32_IE >= 0x0400
+#define TB_GETBUTTONINFO TB_GETBUTTONINFOA
+#define TB_SETBUTTONINFO TB_SETBUTTONINFOA
+#define TB_INSERTBUTTON TB_INSERTBUTTONA
+#define TB_ADDBUTTONS TB_ADDBUTTONSA
+#define TB_MAPACCELERATOR TB_MAPACCELERATORA
 #define NMCOMBOBOXEX	NMCOMBOBOXEXA
 #define PNMCOMBOBOXEX	PNMCOMBOBOXEXA
 #define CBEN_DRAGBEGIN	CBEN_DRAGBEGINA
@@ -2778,6 +3242,9 @@
 #define NMCBEDRAGBEGIN	NMCBEDRAGBEGINA
 #define LPNMCBEDRAGBEGIN	LPNMCBEDRAGBEGINA
 #define PNMCBEDRAGBEGIN	PNMCBEDRAGBEGINA
+#define TBN_GETDISPINFO TBN_GETDISPINFOA
+#define NMTBDISPINFO NMTBDISPINFOA
+#define LPNMTBDISPINFO LPNMTBDISPINFOA
 #endif /* _WIN32_IE >= 0x0400 */
 #define SB_GETTEXT	SB_GETTEXTA
 #define SB_SETTEXT	SB_SETTEXTA
@@ -2854,6 +3321,9 @@
 #define LVN_ENDLABELEDIT LVN_ENDLABELEDITA
 #define LVN_GETDISPINFO LVN_GETDISPINFOA
 #define LVN_SETDISPINFO LVN_SETDISPINFOA
+#define LVN_GETINFOTIP LVN_GETINFOTIPA
+#define NMLVGETINFOTIP NMLVGETINFOTIPA
+#define LPNMLVGETINFOTIP LPNMLVGETINFOTIPA
 #define LV_DISPINFO LV_DISPINFOA
 #define NMLVDISPINFO NMLVDISPINFOA
 #define TVM_INSERTITEM TVM_INSERTITEMA
@@ -2877,6 +3347,8 @@
 #define TVN_ENDLABELEDIT TVN_ENDLABELEDITA
 #define TC_ITEMHEADER TC_ITEMHEADERA
 #define TC_ITEM TC_ITEMA
+#define TCITEM TC_ITEMA
+#define LPTCITEM LPTCITEMA
 #define TCM_GETITEM TCM_GETITEMA
 #define TCM_SETITEM TCM_SETITEMA
 #define TCM_INSERTITEM TCM_INSERTITEMA
Index: src/winsup/w32api/include/prsht.h
===================================================================
RCS file: /cvs/src/src/winsup/w32api/include/prsht.h,v
retrieving revision 1.5
diff -u -r1.5 prsht.h
--- src/winsup/w32api/include/prsht.h	13 May 2003 10:53:13 -0000	1.5
+++ src/winsup/w32api/include/prsht.h	23 Aug 2003 11:20:31 -0000
@@ -31,6 +31,7 @@
 #define PSH_USEHICON	2
 #define PSH_USEICONID	4
 #define PSH_PROPSHEETPAGE	8
+#define PSH_WIZARDHASFINISH	16
 #define PSH_WIZARD	32
 #define PSH_USEPSTARTPAGE	64
 #define PSH_NOAPPLYNOW	128
@@ -40,7 +41,6 @@
 #define PSH_RTLREADING	2048
 #define PSH_WIZARDCONTEXTHELP	4096
 #if (_WIN32_IE >= 0x0400)
-#define PSH_WIZARD97	8192
 #define PSH_WATERMARK	32768
 #define PSH_USEHBMWATERMARK	65536
 #define PSH_USEHPLWATERMARK	131072
@@ -48,6 +48,14 @@
 #define PSH_HEADER	524288
 #define PSH_USEHBMHEADER	1048576
 #define PSH_USEPAGELANG	2097152
+#endif
+#if (_WIN32_IE < 0x0500)
+#define PSH_WIZARD97	0x2000
+#endif
+#if (_WIN32_IE >= 0x0500)
+#define PSH_WIZARD97	0x1000000
+#define PSH_WIZARD_LITE	0x400000
+#define PSH_NOCONTEXTHELP	0x2000000
 #endif
 #define PSCB_INITIALIZED	1
 #define PSCB_PRECREATE	2
Index: src/winsup/w32api/include/winuser.h
===================================================================
RCS file: /cvs/src/src/winsup/w32api/include/winuser.h,v
retrieving revision 1.46
diff -u -r1.46 winuser.h
--- src/winsup/w32api/include/winuser.h	18 Aug 2003 09:43:24 -0000	1.46
+++ src/winsup/w32api/include/winuser.h	23 Aug 2003 11:20:41 -0000
@@ -446,6 +446,10 @@
 #define DFCS_ADJUSTRECT	0x2000
 #define DFCS_FLAT	0x4000
 #define DFCS_MONO	0x8000
+#if (WINVER >= _W2K)
+#define DFCS_TRANSPARENT	0x800
+#define DFCS_HOT	0x1000
+#endif /* WINVER >= _W2K */
 #define DST_COMPLEX	0
 #define DST_TEXT	1
 #define DST_PREFIXTEXT	2
@@ -2168,7 +2172,7 @@
 	short y;
 	short cx;
 	short cy;
-} DLGTEMPLATE,*LPDLGTEMPLATE;
+} DLGTEMPLATE,*LPDLGTEMPLATE,*LPDLGTEMPLATEA,*LPDLGTEMPLATEW;
 typedef const DLGTEMPLATE *LPCDLGTEMPLATE;
 #pragma pack(pop)
 typedef struct tagDRAWITEMSTRUCT {