Hi,
this patch adds Win7/8 specific API, and fixes if/endif hic-up ... yes
that file is gross.
I tried to minimize rewrite of the file. There is still some stuff at
doubtful places, but I think it is ok now for first round. I will for
sure need to go through this file again (or somebody else) to cleanup
remaining things.
Kai
From 31f3a215aea25dddae1c6b916d45fb4f590014c3 Mon Sep 17 00:00:00 2001
From: Kai Tietz <[email protected]>
Date: Mon, 1 Sep 2014 14:46:03 +0200
Subject: Add Win7/8 API, correct use of NTDDI_VERSION and WINVER, correct
if/endif hic-up, some minor nits
---
mingw-w64-headers/include/commctrl.h | 1159 +++++++++++++++++++++++++++++-----
1 files changed, 1010 insertions(+), 149 deletions(-)
diff --git a/mingw-w64-headers/include/commctrl.h
b/mingw-w64-headers/include/commctrl.h
index b821730..a841937 100644
--- a/mingw-w64-headers/include/commctrl.h
+++ b/mingw-w64-headers/include/commctrl.h
@@ -52,6 +52,7 @@ extern "C" {
DWORD dwSize;
DWORD dwICC;
} INITCOMMONCONTROLSEX,*LPINITCOMMONCONTROLSEX;
+
#define ICC_LISTVIEW_CLASSES 0x1
#define ICC_TREEVIEW_CLASSES 0x2
#define ICC_BAR_CLASSES 0x4
@@ -69,6 +70,7 @@ extern "C" {
#define ICC_NATIVEFNTCTL_CLASS 0x2000
#define ICC_STANDARD_CLASSES 0x4000
#define ICC_LINK_CLASS 0x8000
+
WINCOMMCTRLAPI WINBOOL WINAPI InitCommonControlsEx(const
INITCOMMONCONTROLSEX *);
#define ODT_HEADER 100
@@ -79,11 +81,11 @@ extern "C" {
#define TV_FIRST 0x1100
#define HDM_FIRST 0x1200
#define TCM_FIRST 0x1300
-
#define PGM_FIRST 0x1400
#define ECM_FIRST 0x1500
#define BCM_FIRST 0x1600
#define CBM_FIRST 0x1700
+
#define CCM_FIRST 0x2000
#define CCM_LAST (CCM_FIRST+0x200)
#define CCM_SETBKCOLOR (CCM_FIRST+1)
@@ -92,6 +94,13 @@ extern "C" {
#define CCM_GETDROPTARGET (CCM_FIRST+4)
#define CCM_SETUNICODEFORMAT (CCM_FIRST+5)
#define CCM_GETUNICODEFORMAT (CCM_FIRST+6)
+#define CCM_SETVERSION (CCM_FIRST+0x7)
+#define CCM_GETVERSION (CCM_FIRST+0x8)
+#define CCM_SETNOTIFYWINDOW (CCM_FIRST+0x9)
+#define CCM_SETWINDOWTHEME (CCM_FIRST+0xb)
+#define CCM_DPISCALE (CCM_FIRST+0xc)
+
+#define COMCTL32_VERSION 6
typedef struct tagCOLORSCHEME {
DWORD dwSize;
@@ -99,14 +108,6 @@ extern "C" {
COLORREF clrBtnShadow;
} COLORSCHEME,*LPCOLORSCHEME;
-#define COMCTL32_VERSION 6
-
-#define CCM_SETVERSION (CCM_FIRST+0x7)
-#define CCM_GETVERSION (CCM_FIRST+0x8)
-#define CCM_SETNOTIFYWINDOW (CCM_FIRST+0x9)
-#define CCM_SETWINDOWTHEME (CCM_FIRST+0xb)
-#define CCM_DPISCALE (CCM_FIRST+0xc)
-
#define INFOTIPSIZE 1024
#define HANDLE_WM_NOTIFY(hwnd,wParam,lParam,fn)
(fn)((hwnd),(int)(wParam),(NMHDR *)(lParam))
@@ -131,6 +132,11 @@ extern "C" {
#define NM_LDOWN (NM_FIRST-20)
#define NM_RDOWN (NM_FIRST-21)
#define NM_THEMECHANGED (NM_FIRST-22)
+#if NTDDI_VERSION >= 0x06000000
+#define NM_FONTCHANGED (NM_FIRST-23)
+#define NM_CUSTOMTEXT (NM_FIRST-24)
+#define NM_TVSTATEIMAGECHANGING (NM_FIRST-24)
+#endif
#ifndef CCSIZEOF_STRUCT
#define CCSIZEOF_STRUCT(structname,member)
(((int)((LPBYTE)(&((structname*)0)->member) -
((LPBYTE)((structname*)0))))+sizeof(((structname*)0)->member))
@@ -178,6 +184,18 @@ extern "C" {
DWORD dwItemNext;
} NMCHAR,*LPNMCHAR;
+#if _WIN32_IE >= 0x0600
+ typedef struct tagNMCUSTOMTEXT {
+ NMHDR hdr;
+ HDC hDC;
+ LPCWSTR lpString;
+ int nCount;
+ LPRECT lpRect;
+ UINT uFormat;
+ WINBOOL fLink;
+ } NMCUSTOMTEXT,*LPNMCUSTOMTEXT;
+#endif
+
#define NM_FIRST (0U- 0U)
#define NM_LAST (0U- 99U)
@@ -205,12 +223,16 @@ extern "C" {
#define TBN_LAST (0U-720U)
#define UDN_FIRST (0U-721)
-#define UDN_LAST (0U-740)
+#define UDN_LAST (0U-729U)
+#define DTN_FIRST (0U-740U)
+#define DTN_LAST (0U-745U)
+
+#define MCN_FIRST (0U-746U)
+#define MCN_LAST (0U-752U)
+
+#define DTN_FIRST2 (0U-753U)
+#define DTN_LAST2 (0U-799U)
-#define MCN_FIRST (0U-750U)
-#define MCN_LAST (0U-759U)
-#define DTN_FIRST (0U-760U)
-#define DTN_LAST (0U-799U)
#define CBEN_FIRST (0U-800U)
#define CBEN_LAST (0U-830U)
#define RBN_FIRST (0U-831U)
@@ -231,6 +253,11 @@ extern "C" {
#define BCN_FIRST (0U-1250U)
#define BCN_LAST (0U-1350U)
+#if NTDDI_VERSION >= 0x06000000
+#define TRBN_FIRST (0U-1501U)
+#define TRBN_LAST (0U-1519U)
+#endif
+
#define MSGF_COMMCTRL_BEGINDRAG 0x4200
#define MSGF_COMMCTRL_SIZEHEADER 0x4201
#define MSGF_COMMCTRL_DRAGSELECT 0x4202
@@ -268,6 +295,11 @@ extern "C" {
#define CDIS_MARKED 0x80
#define CDIS_INDETERMINATE 0x100
#define CDIS_SHOWKEYBOARDCUES 0x200
+#if NTDDI_VERSION >= 0x06000000
+#define CDIS_NEARHOT 0x0400
+#define CDIS_OTHERSIDEHOT 0x0800
+#define CDIS_DROPHILITED 0x1000
+#endif
typedef struct tagNMCUSTOMDRAWINFO {
NMHDR hdr;
@@ -284,10 +316,19 @@ extern "C" {
UINT uDrawFlags;
} NMTTCUSTOMDRAW,*LPNMTTCUSTOMDRAW;
+ typedef struct tagNMCUSTOMSPLITRECTINFO {
+ NMHDR hdr;
+ RECT rcClient;
+ RECT rcButton;
+ RECT rcSplit;
+ } NMCUSTOMSPLITRECTINFO,*LPNMCUSTOMSPLITRECTINFO;
+
+#define NM_GETCUSTOMSPLITRECT (BCN_FIRST + 0x0003)
+
#ifndef NOIMAGEAPIS
#define CLR_NONE __MSABI_LONG(0xffffffff)
-#define CLR_DEFAULT __MSABI_LONG(0xFF000000)
+#define CLR_DEFAULT __MSABI_LONG(0xff000000)
#ifndef HIMAGELIST
struct _IMAGELIST;
@@ -329,6 +370,10 @@ extern "C" {
#define ILC_PALETTE 0x800
#define ILC_MIRROR 0x2000
#define ILC_PERITEMMIRROR 0x8000
+#if NTDDI_VERSION >= 0x06000000
+#define ILC_ORIGINALSIZE 0x00010000
+#define ILC_HIGHQUALITYSCALE 0x00020000
+#endif
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Create(int cx,int cy,UINT
flags,int cInitial,int cGrow);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_Destroy(HIMAGELIST himl);
@@ -353,6 +398,9 @@ extern "C" {
#define ILD_PRESERVEALPHA 0x1000
#define ILD_SCALE 0x2000
#define ILD_DPISCALE 0x4000
+#if NTDDI_VERSION >= 0x06000000
+#define ILD_ASYNC 0x8000
+#endif
#define ILD_SELECTED ILD_BLEND50
#define ILD_FOCUS ILD_BLEND25
@@ -365,6 +413,13 @@ extern "C" {
#define ILS_SATURATE 0x4
#define ILS_ALPHA 0x8
+#if NTDDI_VERSION >= 0x06000000
+#define ILGT_NORMAL 0x0
+#define ILGT_ASYNC 0x1
+
+#define HBITMAP_CALLBACK ((HBITMAP)-1)
+#endif
+
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_Draw(HIMAGELIST himl,int i,HDC
hdcDst,int x,int y,UINT fStyle);
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_Replace(HIMAGELIST himl,int
i,HBITMAP hbmImage,HBITMAP hbmMask);
WINCOMMCTRLAPI int WINAPI ImageList_AddMasked(HIMAGELIST himl,HBITMAP
hbmImage,COLORREF crMask);
@@ -416,6 +471,16 @@ extern "C" {
WINCOMMCTRLAPI WINBOOL WINAPI ImageList_GetImageInfo(HIMAGELIST himl,int
i,IMAGEINFO *pImageInfo);
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Merge(HIMAGELIST himl1,int
i1,HIMAGELIST himl2,int i2,int dx,int dy);
WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_Duplicate(HIMAGELIST himl);
+
+ WINCOMMCTRLAPI HRESULT WINAPI HIMAGELIST_QueryInterface (HIMAGELIST himl,
REFIID riid, void **ppv);
+
+#ifdef __cplusplus
+ FORCEINLINE HIMAGELIST IImageListToHIMAGELIST (struct IImageList *il) {
+ return reinterpret_cast<HIMAGELIST> (il);
+ }
+#else
+#define IImageListToHIMAGELIST(IL) ((HIMAGELIST) (IL))
+#endif
#endif
#ifndef NOHEADER
@@ -441,6 +506,7 @@ extern "C" {
#define HDFT_ISSTRING 0x0
#define HDFT_ISNUMBER 0x1
+#define HDFT_ISDATE 0x2
#define HDFT_HASNOVALUE 0x8000
@@ -475,6 +541,9 @@ extern "C" {
int iOrder;
UINT type;
void *pvFilter;
+#if NTDDI_VERSION >= 0x06000000
+ UINT state;
+#endif
} HDITEMA,*LPHDITEMA;
#define HDITEMA_V1_SIZE CCSIZEOF_STRUCT(HDITEMA,lParam)
@@ -492,11 +561,13 @@ extern "C" {
int iOrder;
UINT type;
void *pvFilter;
+#if NTDDI_VERSION >= 0x06000000
+ UINT state;
+#endif
} HDITEMW,*LPHDITEMW;
#define HDITEM __MINGW_NAME_AW(HDITEM)
#define LPHDITEM __MINGW_NAME_AW(LPHDITEM)
-
#define HDITEM_V1_SIZE __MINGW_NAME_AW_EXT(HDITEM,_V1_SIZE)
#define HDI_WIDTH 0x1
@@ -509,6 +580,9 @@ extern "C" {
#define HDI_DI_SETITEM 0x40
#define HDI_ORDER 0x80
#define HDI_FILTER 0x100
+#if NTDDI_VERSION >= 0x06000000
+#define HDI_STATE 0x0200
+#endif
#define HDF_LEFT 0x0
#define HDF_RIGHT 0x1
@@ -523,11 +597,13 @@ extern "C" {
#define HDF_IMAGE 0x800
#define HDF_SORTUP 0x400
#define HDF_SORTDOWN 0x200
-#if (_WIN32_WINNT >= 0x0600)
+#if NTDDI_VERSION >= 0x06000000
#define HDF_CHECKBOX 0x40
#define HDF_CHECKED 0x80
#define HDF_FIXEDWIDTH 0x100
#define HDF_SPLITBUTTON 0x1000000
+
+#define HDIS_FOCUSED 0x1
#endif
#define HDM_GETITEMCOUNT (HDM_FIRST+0)
@@ -577,6 +653,11 @@ extern "C" {
#define HHT_BELOW 0x200
#define HHT_TORIGHT 0x400
#define HHT_TOLEFT 0x800
+#if NTDDI_VERSION >= 0x06000000
+#define HHT_ONITEMSTATEICON 0x1000
+#define HHT_ONDROPDOWN 0x2000
+#define HHT_ONOVERFLOW 0x4000
+#endif
#define HD_HITTESTINFO HDHITTESTINFO
@@ -586,6 +667,9 @@ extern "C" {
int iItem;
} HDHITTESTINFO,*LPHDHITTESTINFO;
+#define HDSIL_NORMAL 0
+#define HDSIL_STATE 1
+
#define HDM_HITTEST (HDM_FIRST+6)
#define HDM_GETITEMRECT (HDM_FIRST+7)
@@ -630,10 +714,28 @@ extern "C" {
#define HDM_EDITFILTER (HDM_FIRST+23)
#define Header_EditFilter(hwnd,i,fDiscardChanges)
(int)SNDMSG((hwnd),HDM_EDITFILTER,(WPARAM)(i),MAKELPARAM(fDiscardChanges,0))
+#if _WIN32_IE >= 0x0600
+#define HDM_TRANSLATEACCELERATOR CCM_TRANSLATEACCELERATOR
+#endif
+
#define HDM_CLEARFILTER (HDM_FIRST+24)
#define Header_ClearFilter(hwnd,i)
(int)SNDMSG((hwnd),HDM_CLEARFILTER,(WPARAM)(i),0)
#define Header_ClearAllFilters(hwnd)
(int)SNDMSG((hwnd),HDM_CLEARFILTER,(WPARAM)-1,0)
+#if NTDDI_VERSION >= 0x06000000
+#define HDM_GETITEMDROPDOWNRECT (HDM_FIRST+25)
+#define Header_GetItemDropDownRect(hwnd, iItem, lprc) (WINBOOL)SNDMSG ((hwnd),
HDM_GETITEMDROPDOWNRECT,(WPARAM) (iItem),(LPARAM) (lprc))
+
+#define HDM_GETOVERFLOWRECT (HDM_FIRST+26)
+#define Header_GetOverflowRect(hwnd, lprc) (WINBOOL)SNDMSG ((hwnd),
HDM_GETOVERFLOWRECT, 0,(LPARAM) (lprc))
+
+#define HDM_GETFOCUSEDITEM (HDM_FIRST+27)
+#define Header_GetFocusedItem(hwnd) (int)SNDMSG ((hwnd),
HDM_GETFOCUSEDITEM,(WPARAM) 0,(LPARAM) 0)
+
+#define HDM_SETFOCUSEDITEM (HDM_FIRST+28)
+#define Header_SetFocusedItem(hwnd, iItem) (WINBOOL)SNDMSG ((hwnd),
HDM_SETFOCUSEDITEM,(WPARAM) 0,(LPARAM) (iItem))
+#endif
+
#define HDN_ITEMCHANGINGA (HDN_FIRST-0)
#define HDN_ITEMCHANGINGW (HDN_FIRST-20)
#define HDN_ITEMCHANGEDA (HDN_FIRST-1)
@@ -656,6 +758,16 @@ extern "C" {
#define HDN_ENDDRAG (HDN_FIRST-11)
#define HDN_FILTERCHANGE (HDN_FIRST-12)
#define HDN_FILTERBTNCLICK (HDN_FIRST-13)
+#if _WIN32_IE >= 0x0600
+#define HDN_BEGINFILTEREDIT (HDN_FIRST-14)
+#define HDN_ENDFILTEREDIT (HDN_FIRST-15)
+#endif
+#if NTDDI_VERSION >= 0x06000000
+#define HDN_ITEMSTATEICONCLICK (HDN_FIRST-16)
+#define HDN_ITEMKEYDOWN (HDN_FIRST-17)
+#define HDN_DROPDOWN (HDN_FIRST-18)
+#define HDN_OVERFLOWCLICK (HDN_FIRST-19)
+#endif
#define HDN_ITEMCHANGING __MINGW_NAME_AW(HDN_ITEMCHANGING)
#define HDN_ITEMCHANGED __MINGW_NAME_AW(HDN_ITEMCHANGED)
@@ -787,6 +899,8 @@ extern "C" {
#define BTNS_SHOWTEXT 0x40
#define BTNS_WHOLEDROPDOWN 0x80
+#define TBSTYLE_EX_MULTICOLUMN 0x2
+#define TBSTYLE_EX_VERTICAL 0x4
#define TBSTYLE_EX_MIXEDBUTTONS 0x8
#define TBSTYLE_EX_HIDECLIPPEDBUTTONS 0x10
#define TBSTYLE_EX_DOUBLEBUFFER 0x80
@@ -816,6 +930,9 @@ extern "C" {
#define TBCDRF_BLENDICON 0x200000
#define TBCDRF_NOBACKGROUND 0x400000
+#if NTDDI_VERSION >= 0x06000000
+#define TBCDRF_USECDCOLORS 0x00800000
+#endif
#define TB_ENABLEBUTTON (WM_USER+1)
#define TB_CHECKBUTTON (WM_USER+2)
@@ -845,6 +962,12 @@ extern "C" {
#define IDB_VIEW_LARGE_COLOR 5
#define IDB_HIST_SMALL_COLOR 8
#define IDB_HIST_LARGE_COLOR 9
+#if NTDDI_VERSION >= 0x06000000
+#define IDB_HIST_NORMAL 12
+#define IDB_HIST_HOT 13
+#define IDB_HIST_DISABLED 14
+#define IDB_HIST_PRESSED 15
+#endif
#define STD_CUT 0
#define STD_COPY 1
@@ -1040,7 +1163,6 @@ extern "C" {
#define TB_INSERTBUTTONW (WM_USER+67)
#define TB_ADDBUTTONSW (WM_USER+68)
-
#define TB_HITTEST (WM_USER+69)
#define TB_INSERTBUTTON __MINGW_NAME_AW(TB_INSERTBUTTON)
@@ -1053,7 +1175,9 @@ extern "C" {
#define TB_GETSTRING __MINGW_NAME_AW(TB_GETSTRING)
+#define TB_SETBOUNDINGSIZE (WM_USER+93)
#define TB_SETHOTITEM2 (WM_USER+94)
+#define TB_HASACCELERATOR (WM_USER+95)
#define TB_SETLISTGAP (WM_USER+96)
#define TB_GETIMAGELISTCOUNT (WM_USER+98)
#define TB_GETIDEALSIZE (WM_USER+99)
@@ -1076,7 +1200,7 @@ extern "C" {
#define TB_GETMETRICS (WM_USER+101)
#define TB_SETMETRICS (WM_USER+102)
-#if (_WIN32_WINNT >= 0x600)
+#if NTDDI_VERSION >= 0x0600000
#define TB_GETITEMDROPDOWNRECT (WM_USER + 103)
#define TB_SETPRESSEDIMAGELIST (WM_USER + 104)
#define TB_GETPRESSEDIMAGELIST (WM_USER + 105)
@@ -1124,6 +1248,10 @@ extern "C" {
#define TBN_RESTORE (TBN_FIRST - 21)
#define TBN_SAVE (TBN_FIRST - 22)
#define TBN_INITCUSTOMIZE (TBN_FIRST - 23)
+
+#define TBNRF_HIDEHELP 0x1
+#define TBNRF_ENDCUSTOMIZE 0x2
+
#define TBN_WRAPHOTITEM (TBN_FIRST - 24)
#define TBN_DUPACCELERATOR (TBN_FIRST - 25)
#define TBN_WRAPACCELERATOR (TBN_FIRST - 26)
@@ -1291,6 +1419,10 @@ extern "C" {
#define RBBIM_IDEALSIZE 0x200
#define RBBIM_LPARAM 0x400
#define RBBIM_HEADERSIZE 0x800
+#if NTDDI_VERSION >= 0x06000000
+#define RBBIM_CHEVRONLOCATION 0x00001000
+#define RBBIM_CHEVRONSTATE 0x00002000
+#endif
typedef struct tagREBARBANDINFOA {
UINT cbSize;
@@ -1313,6 +1445,10 @@ extern "C" {
UINT cxIdeal;
LPARAM lParam;
UINT cxHeader;
+#if NTDDI_VERSION >= 0x06000000
+ RECT rcChevronLocation;
+ UINT uChevronState;
+#endif
} REBARBANDINFOA,*LPREBARBANDINFOA;
typedef REBARBANDINFOA CONST *LPCREBARBANDINFOA;
@@ -1342,6 +1478,10 @@ extern "C" {
UINT cxIdeal;
LPARAM lParam;
UINT cxHeader;
+#if NTDDI_VERSION >= 0x06000000
+ RECT rcChevronLocation;
+ UINT uChevronState;
+#endif
} REBARBANDINFOW,*LPREBARBANDINFOW;
typedef REBARBANDINFOW CONST *LPCREBARBANDINFOW;
@@ -1351,6 +1491,7 @@ extern "C" {
#define LPCREBARBANDINFO __MINGW_NAME_AW(LPCREBARBANDINFO)
#define REBARBANDINFO_V3_SIZE __MINGW_NAME_AW_EXT(REBARBANDINFO,_V3_SIZE)
+#define REBARBANDINFO_V6_SIZE __MINGW_NAME_AW_EXT(REBARBANDINFO,_V6_SIZE)
#define RB_INSERTBANDA (WM_USER+1)
#define RB_DELETEBAND (WM_USER+2)
@@ -1403,7 +1544,14 @@ extern "C" {
#define RB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define RB_GETBANDMARGINS (WM_USER+40)
#define RB_SETWINDOWTHEME CCM_SETWINDOWTHEME
+#if _WIN32_IE >= 0x0600
+#define RB_SETEXTENDEDSTYLE (WM_USER+41)
+#define RB_GETEXTENDEDSTYLE (WM_USER+42)
+#endif
#define RB_PUSHCHEVRON (WM_USER+43)
+#if NTDDI_VERSION >= 0x06000000
+#define RB_SETBANDWIDTH (WM_USER + 44)
+#endif
#define RBN_HEIGHTCHANGE (RBN_FIRST - 0)
#define RBN_GETOBJECT (RBN_FIRST - 1)
@@ -1415,6 +1563,9 @@ extern "C" {
#define RBN_DELETEDBAND (RBN_FIRST - 7)
#define RBN_CHILDSIZE (RBN_FIRST - 8)
#define RBN_CHEVRONPUSHED (RBN_FIRST - 10)
+#if _WIN32_IE >= 0x0600
+#define RBN_SPLITTERDRAG (RBN_FIRST - 11)
+#endif
#define RBN_MINMAX (RBN_FIRST - 21)
#define RBN_AUTOBREAK (RBN_FIRST - 22)
@@ -1455,6 +1606,13 @@ extern "C" {
LPARAM lParamNM;
} NMREBARCHEVRON,*LPNMREBARCHEVRON;
+#if _WIN32_IE >= 0x0600
+ typedef struct tagNMREBARSPLITTER {
+ NMHDR hdr;
+ RECT rcSizing;
+ } NMREBARSPLITTER,*LPNMREBARSPLITTER;
+#endif
+
#define RBAB_AUTOSIZE 0x1
#define RBAB_ADDBAND 0x2
@@ -1473,6 +1631,9 @@ extern "C" {
#define RBHT_CLIENT 0x3
#define RBHT_GRABBER 0x4
#define RBHT_CHEVRON 0x8
+#if _WIN32_IE >= 0x0600
+#define RBHT_SPLITTER 0x10
+#endif
typedef struct _RB_HITTESTINFO {
POINT pt;
@@ -1539,6 +1700,9 @@ extern "C" {
#define TTS_NOFADE 0x20
#define TTS_BALLOON 0x40
#define TTS_CLOSE 0x80
+#if NTDDI_VERSION >= 0x06000000
+#define TTS_USEVISUALSTYLE 0x100
+#endif
#define TTF_IDISHWND 0x1
#define TTF_CENTERTIP 0x2
@@ -1559,6 +1723,11 @@ extern "C" {
#define TTI_INFO 1
#define TTI_WARNING 2
#define TTI_ERROR 3
+#if NTDDI_VERSION >= 0x06000000
+#define TTI_INFO_LARGE 4
+#define TTI_WARNING_LARGE 5
+#define TTI_ERROR_LARGE 6
+#endif
#define TTM_ACTIVATE (WM_USER+1)
#define TTM_SETDELAYTIME (WM_USER+3)
@@ -1789,6 +1958,12 @@ extern "C" {
#define TBS_TOOLTIPS 0x100
#define TBS_REVERSED 0x200
#define TBS_DOWNISLEFT 0x400
+#if _WIN32_IE >= 0x0600
+#define TBS_NOTIFYBEFOREMOVE 0x800
+#endif
+#if NTDDI_VERSION >= 0x06000000
+#define TBS_TRANSPARENTBKGND 0x1000
+#endif
#define TBM_GETPOS (WM_USER)
#define TBM_GETRANGEMIN (WM_USER+1)
@@ -1845,6 +2020,16 @@ extern "C" {
#define TBCD_TICS 0x1
#define TBCD_THUMB 0x2
#define TBCD_CHANNEL 0x3
+
+#if NTDDI_VERSION >= 0x06000000
+#define TRBN_THUMBPOSCHANGING (TRBN_FIRST-1)
+
+ typedef struct tagTRBTHUMBPOSCHANGING {
+ NMHDR hdr;
+ DWORD dwPos;
+ int nReason;
+ } NMTRBTHUMBPOSCHANGING;
+#endif
#endif
#ifndef NODRAGLIST
@@ -1869,7 +2054,6 @@ extern "C" {
WINCOMMCTRLAPI WINBOOL WINAPI MakeDragList(HWND hLB);
WINCOMMCTRLAPI void WINAPI DrawInsert(HWND handParent,HWND hLB,int nItem);
-
WINCOMMCTRLAPI int WINAPI LBItemFromPt(HWND hLB,POINT pt,WINBOOL
bAutoScroll);
#endif
@@ -1957,13 +2141,15 @@ extern "C" {
#define PBS_MARQUEE 0x8
#define PBM_SETMARQUEE (WM_USER+10)
-#if (_WIN32_WINNT >= 0x0600)
+#if NTDDI_VERSION >= 0x06000000
#define PBM_GETSTEP (WM_USER+13)
#define PBM_GETBKCOLOR (WM_USER+14)
#define PBM_GETBARCOLOR (WM_USER+15)
#define PBM_SETSTATE (WM_USER+16)
#define PBM_GETSTATE (WM_USER+17)
+
#define PBS_SMOOTHREVERSE 0x10
+
#define PBST_NORMAL 1
#define PBST_ERROR 2
#define PBST_PAUSED 3
@@ -1971,7 +2157,6 @@ extern "C" {
#endif /* !NOPROGRESS */
-
#ifndef NOHOTKEY
#define HOTKEYF_SHIFT 0x1
@@ -2056,6 +2241,7 @@ extern "C" {
#define LVSIL_NORMAL 0
#define LVSIL_SMALL 1
#define LVSIL_STATE 2
+#define LVSIL_GROUPHEADER 3
#define LVM_SETIMAGELIST (LVM_FIRST+3)
#define ListView_SetImageList(hwnd,himl,iImageList)
(HIMAGELIST)SNDMSG((hwnd),LVM_SETIMAGELIST,(WPARAM)(iImageList),(LPARAM)(HIMAGELIST)(himl))
@@ -2071,6 +2257,9 @@ extern "C" {
#define LVIF_NORECOMPUTE 0x800
#define LVIF_GROUPID 0x100
#define LVIF_COLUMNS 0x200
+#if NTDDI_VERSION >= 0x06000000
+#define LVIF_COLFMT 0x10000
+#endif
#define LVIS_FOCUSED 0x1
#define LVIS_SELECTED 0x2
@@ -2096,6 +2285,12 @@ extern "C" {
#define LVITEMA_V1_SIZE CCSIZEOF_STRUCT(LVITEMA,lParam)
#define LVITEMW_V1_SIZE CCSIZEOF_STRUCT(LVITEMW,lParam)
+#if NTDDI_VERSION >= 0x06000000
+#define LVITEMA_V5_SIZE CCSIZEOF_STRUCT (LVITEMA, puColumns)
+#define LVITEMW_V5_SIZE CCSIZEOF_STRUCT (LVITEMW, puColumns)
+#define LVITEM_V5_SIZE __MINGW_NAME_AW_EXT(LVITEM,_V5_SIZE)
+#endif
+
typedef struct tagLVITEMA {
UINT mask;
int iItem;
@@ -2110,6 +2305,10 @@ extern "C" {
int iGroupId;
UINT cColumns;
PUINT puColumns;
+#if NTDDI_VERSION >= 0x06000000
+ int *piColFmt;
+ int iGroup;
+#endif
} LVITEMA,*LPLVITEMA;
typedef struct tagLVITEMW
@@ -2127,6 +2326,10 @@ extern "C" {
int iGroupId;
UINT cColumns;
PUINT puColumns;
+#if NTDDI_VERSION >= 0x06000000
+ int *piColFmt;
+ int iGroup;
+#endif
} LVITEMW,*LPLVITEMW;
#define LVITEM __MINGW_NAME_AW(LVITEM)
@@ -2181,11 +2384,16 @@ extern "C" {
#define LVNI_SELECTED 0x2
#define LVNI_CUT 0x4
#define LVNI_DROPHILITED 0x8
-
+#define LVNI_STATEMASK (LVNI_FOCUSED | LVNI_SELECTED | LVNI_CUT |
LVNI_DROPHILITED)
+#define LVNI_VISIBLEORDER 0x10
+#define LVNI_PREVIOUS 0x20
+#define LVNI_VISIBLEONLY 0x40
+#define LVNI_SAMEGROUPONLY 0x80
#define LVNI_ABOVE 0x100
#define LVNI_BELOW 0x200
#define LVNI_TOLEFT 0x400
#define LVNI_TORIGHT 0x800
+#define LVNI_DIRECTIONMASK (LVNI_ABOVE | LVNI_BELOW | LVNI_TOLEFT |
LVNI_TORIGHT)
#define LVM_GETNEXTITEM (LVM_FIRST+12)
#define ListView_GetNextItem(hwnd,i,flags)
(int)SNDMSG((hwnd),LVM_GETNEXTITEM,(WPARAM)(int)(i),MAKELPARAM((flags),0))
@@ -2257,6 +2465,15 @@ extern "C" {
#define LVHT_TORIGHT 0x20
#define LVHT_TOLEFT 0x40
+#define LVHT_EX_GROUP_HEADER 0x10000000
+#define LVHT_EX_GROUP_FOOTER 0x20000000
+#define LVHT_EX_GROUP_COLLAPSE 0x40000000
+#define LVHT_EX_GROUP_BACKGROUND 0x80000000
+#define LVHT_EX_GROUP_STATEICON 0x01000000
+#define LVHT_EX_GROUP_SUBSETLINK 0x02000000
+#define LVHT_EX_GROUP (LVHT_EX_GROUP_BACKGROUND | LVHT_EX_GROUP_COLLAPSE |
LVHT_EX_GROUP_FOOTER | LVHT_EX_GROUP_HEADER | LVHT_EX_GROUP_STATEICON |
LVHT_EX_GROUP_SUBSETLINK)
+#define LVHT_EX_ONCONTENTS 0x04000000
+
#define LV_HITTESTINFO LVHITTESTINFO
#define LVHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(LVHITTESTINFO,iItem)
@@ -2266,6 +2483,9 @@ extern "C" {
UINT flags;
int iItem;
int iSubItem;
+#if NTDDI_VERSION >= 0x06000000
+ int iGroup;
+#endif
} LVHITTESTINFO,*LPLVHITTESTINFO;
#define LVM_HITTEST (LVM_FIRST+18)
@@ -2314,6 +2534,11 @@ extern "C" {
int iSubItem;
int iImage;
int iOrder;
+#if NTDDI_VERSION >= 0x06000000
+ int cxMin;
+ int cxDefault;
+ int cxIdeal;
+#endif
} LVCOLUMNA,*LPLVCOLUMNA;
typedef struct tagLVCOLUMNW {
@@ -2325,7 +2550,7 @@ extern "C" {
int iSubItem;
int iImage;
int iOrder;
-# if (_WIN32_WINNT >= 0x0600)
+#if NTDDI_VERSION >= 0x06000000
int cxMin;
int cxDefault;
int cxIdeal;
@@ -2343,11 +2568,11 @@ extern "C" {
#define LVCF_SUBITEM 0x8
#define LVCF_IMAGE 0x10
#define LVCF_ORDER 0x20
-#if (_WIN32_WINNT >= 0x0600)
+#if NTDDI_VERSION >= 0x06000000
#define LVCF_MINWIDTH 0x40
#define LVCF_DEFAULTWIDTH 0x80
#define LVCF_IDEALWIDTH 0x100
-#endif /* (_WIN32_WINNT >= 0x0600) */
+#endif
#define LVCFMT_LEFT 0x0
#define LVCFMT_RIGHT 0x1
@@ -2356,7 +2581,7 @@ extern "C" {
#define LVCFMT_IMAGE 0x800
#define LVCFMT_BITMAP_ON_RIGHT 0x1000
#define LVCFMT_COL_HAS_IMAGES 0x8000
-#if (_WIN32_WINNT >= 0x0600)
+#if NTDDI_VERSION >= 0x06000000
#define LVCFMT_FIXED_WIDTH 0x100
#define LVCFMT_NO_DPI_SCALE 0x40000
#define LVCFMT_FIXED_RATIO 0x80000
@@ -2366,7 +2591,7 @@ extern "C" {
#define LVCFMT_NO_TITLE 0x800000
#define LVCFMT_SPLITBUTTON 0x1000000
#define LVCFMT_TILE_PLACEMENTMASK (LVCFMT_LINE_BREAK|LVCFMT_FILL)
-#endif /* (_WIN32_WINNT >= 0x0600) */
+#endif
#define LVM_GETCOLUMNA (LVM_FIRST+25)
#define LVM_GETCOLUMNW (LVM_FIRST+95)
@@ -2501,7 +2726,7 @@ extern "C" {
#define LVS_EX_SINGLEROW 0x40000
#define LVS_EX_SNAPTOGRID 0x80000
#define LVS_EX_SIMPLESELECT 0x100000
-#if _WIN32_WINNT >= 0x0600
+#if NTDDI_VERSION >= 0x06000000
#define LVS_EX_JUSTIFYCOLUMNS 0x200000
#define LVS_EX_TRANSPARENTBKGND 0x400000
#define LVS_EX_TRANSPARENTSHADOWTEXT 0x800000
@@ -2517,6 +2742,7 @@ extern "C" {
#define ListView_GetSubItemRect(hwnd,iItem,iSubItem,code,prc)
(WINBOOL)SNDMSG((hwnd),LVM_GETSUBITEMRECT,(WPARAM)(int)(iItem),((prc) ?
((((LPRECT)(prc))->top = iSubItem),(((LPRECT)(prc))->left =
code),(LPARAM)(prc)) : (LPARAM)(LPRECT)NULL))
#define LVM_SUBITEMHITTEST (LVM_FIRST+57)
#define ListView_SubItemHitTest(hwnd,plvhti)
(int)SNDMSG((hwnd),LVM_SUBITEMHITTEST,0,(LPARAM)(LPLVHITTESTINFO)(plvhti))
+#define ListView_SubItemHitTestEx(hwnd, plvhti) (int)SNDMSG ((hwnd),
LVM_SUBITEMHITTEST,(WPARAM)-1,(LPARAM) (LPLVHITTESTINFO) (plvhti))
#define LVM_SETCOLUMNORDERARRAY (LVM_FIRST+58)
#define ListView_SetColumnOrderArray(hwnd,iCount,pi)
(WINBOOL)SNDMSG((hwnd),LVM_SETCOLUMNORDERARRAY,(WPARAM)(iCount),(LPARAM)(LPINT)(pi))
#define LVM_GETCOLUMNORDERARRAY (LVM_FIRST+59)
@@ -2581,6 +2807,7 @@ extern "C" {
#define LVBKIF_STYLE_MASK 0x10
#define LVBKIF_FLAG_TILEOFFSET 0x100
#define LVBKIF_TYPE_WATERMARK 0x10000000
+#define LVBKIF_FLAG_ALPHABLEND 0x20000000
#define LVM_SETBKIMAGEA (LVM_FIRST+68)
#define LVM_SETBKIMAGEW (LVM_FIRST+138)
@@ -2607,10 +2834,27 @@ extern "C" {
#define LVGF_STATE 0x4
#define LVGF_ALIGN 0x8
#define LVGF_GROUPID 0x10
+#if NTDDI_VERSION >= 0x06000000
+#define LVGF_SUBTITLE 0x100
+#define LVGF_TASK 0x200
+#define LVGF_DESCRIPTIONTOP 0x400
+#define LVGF_DESCRIPTIONBOTTOM 0x800
+#define LVGF_TITLEIMAGE 0x1000
+#define LVGF_EXTENDEDIMAGE 0x2000
+#define LVGF_ITEMS 0x4000
+#define LVGF_SUBSET 0x00008000
+#define LVGF_SUBSETITEMS 0x10000
+#endif
#define LVGS_NORMAL 0x0
#define LVGS_COLLAPSED 0x1
#define LVGS_HIDDEN 0x2
+#define LVGS_NOHEADER 0x4
+#define LVGS_COLLAPSIBLE 0x8
+#define LVGS_FOCUSED 0x10
+#define LVGS_SELECTED 0x20
+#define LVGS_SUBSETED 0x40
+#define LVGS_SUBSETLINKFOCUSED 0x80
#define LVGA_HEADER_LEFT 0x1
#define LVGA_HEADER_CENTER 0x2
@@ -2630,6 +2874,24 @@ extern "C" {
UINT stateMask;
UINT state;
UINT uAlign;
+#if NTDDI_VERSION >= 0x06000000
+#define LVGROUP_V5_SIZE CCSIZEOF_STRUCT (LVGROUP, uAlign)
+
+ LPWSTR pszSubtitle;
+ UINT cchSubtitle;
+ LPWSTR pszTask;
+ UINT cchTask;
+ LPWSTR pszDescriptionTop;
+ UINT cchDescriptionTop;
+ LPWSTR pszDescriptionBottom;
+ UINT cchDescriptionBottom;
+ int iTitleImage;
+ int iExtendedImage;
+ int iFirstItem;
+ UINT cItems;
+ LPWSTR pszSubsetTitle;
+ UINT cchSubsetTitle;
+#endif
} LVGROUP,*PLVGROUP;
#define LVM_INSERTGROUP (LVM_FIRST+145)
@@ -2642,8 +2904,21 @@ extern "C" {
#define ListView_RemoveGroup(hwnd,iGroupId)
SNDMSG((hwnd),LVM_REMOVEGROUP,(WPARAM)iGroupId,0)
#define LVM_MOVEGROUP (LVM_FIRST+151)
#define ListView_MoveGroup(hwnd,iGroupId,toIndex)
SNDMSG((hwnd),LVM_MOVEGROUP,(WPARAM)iGroupId,(LPARAM)toIndex)
+#define LVM_GETGROUPCOUNT (LVM_FIRST + 152)
+#define ListView_GetGroupCount(hwnd) SNDMSG ((hwnd),
LVM_GETGROUPCOUNT,(WPARAM)0,(LPARAM)0)
+#define LVM_GETGROUPINFOBYINDEX (LVM_FIRST + 153)
+#define ListView_GetGroupInfoByIndex(hwnd, iIndex, pgrp) SNDMSG ((hwnd),
LVM_GETGROUPINFOBYINDEX,(WPARAM) (iIndex),(LPARAM) (pgrp))
#define LVM_MOVEITEMTOGROUP (LVM_FIRST+154)
#define ListView_MoveItemToGroup(hwnd,idItemFrom,idGroupTo)
SNDMSG((hwnd),LVM_MOVEITEMTOGROUP,(WPARAM)idItemFrom,(LPARAM)idGroupTo)
+
+#define LVGGR_GROUP 0
+#define LVGGR_HEADER 1
+#define LVGGR_LABEL 2
+#define LVGGR_SUBSETLINK 3
+
+#define LVM_GETGROUPRECT (LVM_FIRST+98)
+#define ListView_GetGroupRect(hwnd, iGroupId, type, prc) SNDMSG ((hwnd),
LVM_GETGROUPRECT,(WPARAM) (iGroupId),((prc) ? (((RECT *) (prc))->top =
(type)),(LPARAM) (RECT *) (prc) : (LPARAM) (RECT *)NULL))
+
#define LVGMF_NONE 0x0
#define LVGMF_BORDERSIZE 0x1
#define LVGMF_BORDERCOLOR 0x2
@@ -2654,8 +2929,7 @@ extern "C" {
UINT mask;
UINT Left;
UINT Top;
- UINT Right;
- UINT Bottom;
+ UINT Right; UINT Bottom;
COLORREF crLeft;
COLORREF crTop;
COLORREF crRight;
@@ -2689,10 +2963,19 @@ extern "C" {
#define LVM_HASGROUP (LVM_FIRST+161)
#define ListView_HasGroup(hwnd,dwGroupId)
SNDMSG((hwnd),LVM_HASGROUP,dwGroupId,0)
+#define ListView_SetGroupState(hwnd, dwGroupId, dwMask, dwState) { LVGROUP
_macro_lvg; _macro_lvg.cbSize = sizeof (_macro_lvg); _macro_lvg.mask =
LVGF_STATE; _macro_lvg.stateMask = dwMask; _macro_lvg.state = dwState; SNDMSG
((hwnd), LVM_SETGROUPINFO,(WPARAM) (dwGroupId),(LPARAM) (LVGROUP *)
&_macro_lvg); }
+#define LVM_GETGROUPSTATE (LVM_FIRST+92)
+#define ListView_GetGroupState(hwnd, dwGroupId, dwMask) (UINT) SNDMSG ((hwnd),
LVM_GETGROUPSTATE,(WPARAM) (dwGroupId),(LPARAM) (dwMask))
+#define LVM_GETFOCUSEDGROUP (LVM_FIRST+93)
+#define ListView_GetFocusedGroup(hwnd) SNDMSG ((hwnd), LVM_GETFOCUSEDGROUP, 0,
0)
+
#define LVTVIF_AUTOSIZE 0x0
#define LVTVIF_FIXEDWIDTH 0x1
#define LVTVIF_FIXEDHEIGHT 0x2
#define LVTVIF_FIXEDSIZE 0x3
+#if NTDDI_VERSION >= 0x06000000
+#define LVTVIF_EXTENDED 0x4
+#endif
#define LVTVIM_TILESIZE 0x1
#define LVTVIM_COLUMNS 0x2
@@ -2712,8 +2995,13 @@ extern "C" {
int iItem;
UINT cColumns;
PUINT puColumns;
+#if NTDDI_VERSION >= 0x06000000
+ int *piColFmt;
+#endif
} LVTILEINFO,*PLVTILEINFO;
+#define LVTILEINFO_V5_SIZE CCSIZEOF_STRUCT (LVTILEINFO, puColumns)
+
#define LVM_SETTILEVIEWINFO (LVM_FIRST+162)
#define ListView_SetTileViewInfo(hwnd,ptvi)
SNDMSG((hwnd),LVM_SETTILEVIEWINFO,0,(LPARAM)ptvi)
#define LVM_GETTILEVIEWINFO (LVM_FIRST+163)
@@ -2771,6 +3059,58 @@ extern "C" {
#define ListView_MapIDToIndex(hwnd,id)
(UINT)SNDMSG((hwnd),LVM_MAPIDTOINDEX,(WPARAM)id,(LPARAM)0)
#define LVM_ISITEMVISIBLE (LVM_FIRST+182)
#define ListView_IsItemVisible(hwnd,index)
(UINT)SNDMSG((hwnd),LVM_ISITEMVISIBLE,(WPARAM)(index),(LPARAM)0)
+#if NTDDI_VERSION >= 0x06000000
+#define ListView_SetGroupHeaderImageList(hwnd, himl) (HIMAGELIST)SNDMSG
((hwnd), LVM_SETIMAGELIST,(WPARAM)LVSIL_GROUPHEADER,(LPARAM) (HIMAGELIST)
(himl))
+#define ListView_GetGroupHeaderImageList(hwnd) (HIMAGELIST)SNDMSG ((hwnd),
LVM_GETIMAGELIST,(WPARAM)LVSIL_GROUPHEADER, __MSABI_LONG (0))
+#define LVM_GETEMPTYTEXT (LVM_FIRST + 204)
+#define ListView_GetEmptyText(hwnd, pszText, cchText) (WINBOOL)SNDMSG ((hwnd),
LVM_GETEMPTYTEXT,(WPARAM) (cchText),(LPARAM) (pszText))
+#define LVM_GETFOOTERRECT (LVM_FIRST + 205)
+#define ListView_GetFooterRect(hwnd, prc) (WINBOOL)SNDMSG ((hwnd),
LVM_GETFOOTERRECT,(WPARAM) (0),(LPARAM) (prc))
+
+#define LVFF_ITEMCOUNT 0x1
+
+ typedef struct tagLVFOOTERINFO {
+ UINT mask;
+ LPWSTR pszText;
+ int cchTextMax;
+ UINT cItems;
+ } LVFOOTERINFO,*LPLVFOOTERINFO;
+
+#define LVM_GETFOOTERINFO (LVM_FIRST+206)
+#define ListView_GetFooterInfo(hwnd, plvfi) (WINBOOL)SNDMSG ((hwnd),
LVM_GETFOOTERINFO,(WPARAM) (0),(LPARAM) (plvfi))
+#define LVM_GETFOOTERITEMRECT (LVM_FIRST+207)
+#define ListView_GetFooterItemRect(hwnd, iItem, prc) (WINBOOL)SNDMSG ((hwnd),
LVM_GETFOOTERITEMRECT,(WPARAM) (iItem),(LPARAM) (prc))
+
+#define LVFIF_TEXT 0x1
+#define LVFIF_STATE 0x2
+
+#define LVFIS_FOCUSED 0x1
+
+ typedef struct tagLVFOOTERITEM {
+ UINT mask;
+ int iItem;
+ LPWSTR pszText;
+ int cchTextMax;
+ UINT state;
+ UINT stateMask;
+ } LVFOOTERITEM,*LPLVFOOTERITEM;
+
+#define LVM_GETFOOTERITEM (LVM_FIRST+208)
+#define ListView_GetFooterItem(hwnd, iItem, pfi) (WINBOOL)SNDMSG ((hwnd),
LVM_GETFOOTERITEM,(WPARAM) (iItem),(LPARAM) (pfi))
+
+ typedef struct tagLVITEMINDEX {
+ int iItem;
+ int iGroup;
+ } LVITEMINDEX,*PLVITEMINDEX;
+
+#define LVM_GETITEMINDEXRECT (LVM_FIRST+209)
+#define ListView_GetItemIndexRect(hwnd, plvii, iSubItem, code, prc)
(WINBOOL)SNDMSG ((hwnd), LVM_GETITEMINDEXRECT,(WPARAM) (LVITEMINDEX *)
(plvii),((prc) ? ((((LPRECT) (prc))->top = (iSubItem)),(((LPRECT) (prc))->left
= (code)),(LPARAM) (prc)) : (LPARAM) (LPRECT)NULL))
+#define LVM_SETITEMINDEXSTATE (LVM_FIRST+210)
+#define ListView_SetItemIndexState(hwndLV, plvii, data, mask) { LV_ITEM
_macro_lvi; _macro_lvi.stateMask = (mask); _macro_lvi.state = (data); SNDMSG
((hwndLV),LVM_SETITEMINDEXSTATE,(WPARAM) (LVITEMINDEX *) (plvii),(LPARAM)
(LV_ITEM *) &_macro_lvi); }
+
+#define LVM_GETNEXTITEMINDEX (LVM_FIRST + 211)
+#define ListView_GetNextItemIndex(hwnd, plvii, flags) (WINBOOL)SNDMSG ((hwnd),
LVM_GETNEXTITEMINDEX,(WPARAM) (LVITEMINDEX *) (plvii), MAKELPARAM ((flags), 0))
+#endif
#define LVBKIMAGE __MINGW_NAME_AW(LVBKIMAGE)
#define LPLVBKIMAGE __MINGW_NAME_AW(LPLVBKIMAGE)
@@ -2829,6 +3169,7 @@ extern "C" {
#define LVCDI_ITEM 0x0
#define LVCDI_GROUP 0x1
+#define LVCDI_ITEMSLIST 0x2
#define LVCDRF_NOSELECT 0x10000
#define LVCDRF_NOGROUPFRAME 0x20000
@@ -2948,6 +3289,15 @@ extern "C" {
#define LVN_MARQUEEBEGIN (LVN_FIRST-56)
+#if NTDDI_VERSION >= 0x06000000
+ typedef struct tagNMLVLINK {
+ NMHDR hdr;
+ LITEM link;
+ int iItem;
+ int iSubItem;
+ } NMLVLINK,*PNMLVLINK;
+#endif
+
typedef struct tagNMLVGETINFOTIPA {
NMHDR hdr;
DWORD dwFlags;
@@ -2977,6 +3327,20 @@ extern "C" {
#define NMLVGETINFOTIP __MINGW_NAME_AW(NMLVGETINFOTIP)
#define LPNMLVGETINFOTIP __MINGW_NAME_AW(LPNMLVGETINFOTIP)
+#define LVNSCH_DEFAULT -1
+#define LVNSCH_ERROR -2
+#define LVNSCH_IGNORE -3
+
+#define LVN_INCREMENTALSEARCHA (LVN_FIRST-62)
+#define LVN_INCREMENTALSEARCHW (LVN_FIRST-63)
+
+#define LVN_INCREMENTALSEARCH __MINGW_NAME_AW(LVN_INCREMENTALSEARCH)
+
+#if NTDDI_VERSION >= 0x06000000
+#define LVN_COLUMNDROPDOWN (LVN_FIRST-64)
+#define LVN_COLUMNOVERFLOWCLICK (LVN_FIRST-66)
+#endif
+
typedef struct tagNMLVSCROLL {
NMHDR hdr;
int dx;
@@ -2985,6 +3349,19 @@ extern "C" {
#define LVN_BEGINSCROLL (LVN_FIRST-80)
#define LVN_ENDSCROLL (LVN_FIRST-81)
+#if NTDDI_VERSION >= 0x06000000
+#define LVN_LINKCLICK (LVN_FIRST-84)
+
+#define EMF_CENTERED 0x1
+
+ typedef struct tagNMLVEMPTYMARKUP {
+ NMHDR hdr;
+ DWORD dwFlags;
+ WCHAR szMarkup[L_MAX_URL_LENGTH];
+ } NMLVEMPTYMARKUP;
+
+#define LVN_GETEMPTYMARKUP (LVN_FIRST-87)
+#endif
#endif
#ifndef NOTREEVIEW
@@ -3011,6 +3388,20 @@ extern "C" {
#define TVS_NONEVENHEIGHT 0x4000
#define TVS_NOHSCROLL 0x8000
+#define TVS_EX_NOSINGLECOLLAPSE 0x1
+#if NTDDI_VERSION >= 0x06000000
+#define TVS_EX_MULTISELECT 0x2
+#define TVS_EX_DOUBLEBUFFER 0x4
+#define TVS_EX_NOINDENTSTATE 0x8
+#define TVS_EX_RICHTOOLTIP 0x10
+#define TVS_EX_AUTOHSCROLL 0x20
+#define TVS_EX_FADEINOUTEXPANDOS 0x40
+#define TVS_EX_PARTIALCHECKBOXES 0x80
+#define TVS_EX_EXCLUSIONCHECKBOXES 0x100
+#define TVS_EX_DIMMEDCHECKBOXES 0x200
+#define TVS_EX_DRAWIMAGEASYNC 0x400
+#endif
+
typedef struct _TREEITEM *HTREEITEM;
#define TVIF_TEXT 0x1
@@ -3021,6 +3412,11 @@ extern "C" {
#define TVIF_SELECTEDIMAGE 0x20
#define TVIF_CHILDREN 0x40
#define TVIF_INTEGRAL 0x80
+#if _WIN32_IE >= 0x0600
+#define TVIF_STATEEX 0x100
+#define TVIF_EXPANDEDIMAGE 0x200
+#endif
+
#define TVIS_SELECTED 0x2
#define TVIS_CUT 0x4
#define TVIS_DROPHILITED 0x8
@@ -3032,7 +3428,23 @@ extern "C" {
#define TVIS_STATEIMAGEMASK 0xF000
#define TVIS_USERMASK 0xF000
+#if _WIN32_IE >= 0x0600
+#define TVIS_EX_FLAT 0x1
+#if NTDDI_VERSION >= 0x06000000
+#define TVIS_EX_DISABLED 0x2
+#endif
+#define TVIS_EX_ALL 0x0002
+
+ typedef struct tagNMTVSTATEIMAGECHANGING {
+ NMHDR hdr;
+ HTREEITEM hti;
+ int iOldStateImageIndex;
+ int iNewStateImageIndex;
+ } NMTVSTATEIMAGECHANGING,*LPNMTVSTATEIMAGECHANGING;
+#endif
+
#define I_CHILDRENCALLBACK (-1)
+#define I_CHILDRENAUTO (-2)
#define LPTV_ITEMW LPTVITEMW
#define LPTV_ITEMA LPTVITEMA
@@ -3079,6 +3491,14 @@ extern "C" {
int cChildren;
LPARAM lParam;
int iIntegral;
+#if _WIN32_IE >= 0x0600
+ UINT uStateEx;
+ HWND hwnd;
+ int iExpandedImage;
+#endif
+#if NTDDI_VERSION >= 0x06010000
+ int iReserved;
+#endif
} TVITEMEXA,*LPTVITEMEXA;
typedef struct tagTVITEMEXW {
@@ -3093,6 +3513,14 @@ extern "C" {
int cChildren;
LPARAM lParam;
int iIntegral;
+#if _WIN32_IE >= 0x0600
+ UINT uStateEx;
+ HWND hwnd;
+ int iExpandedImage;
+#endif
+#if NTDDI_VERSION >= 0x06010000
+ int iReserved;
+#endif
} TVITEMEXW,*LPTVITEMEXW;
__MINGW_TYPEDEF_AW(TVITEMEX)
@@ -3196,6 +3624,9 @@ extern "C" {
#define TVGN_DROPHILITE 0x8
#define TVGN_CARET 0x9
#define TVGN_LASTVISIBLE 0xa
+#if _WIN32_IE >= 0x0600
+#define TVGN_NEXTSELECTED 0xb
+#endif
#define TVSI_NOSINGLEEXPAND 0x8000
@@ -3210,6 +3641,9 @@ extern "C" {
#define TreeView_GetDropHilight(hwnd)
TreeView_GetNextItem(hwnd,NULL,TVGN_DROPHILITE)
#define TreeView_GetRoot(hwnd) TreeView_GetNextItem(hwnd,NULL,TVGN_ROOT)
#define TreeView_GetLastVisible(hwnd)
TreeView_GetNextItem(hwnd,NULL,TVGN_LASTVISIBLE)
+#if _WIN32_IE >= 0x0600
+#define TreeView_GetNextSelected(hwnd, hitem) TreeView_GetNextItem (hwnd,
hitem, TVGN_NEXTSELECTED)
+#endif
#define TVM_SELECTITEM (TV_FIRST+11)
#define TreeView_Select(hwnd,hitem,code)
(WINBOOL)SNDMSG((hwnd),TVM_SELECTITEM,(WPARAM)(code),(LPARAM)(HTREEITEM)(hitem))
@@ -3320,6 +3754,12 @@ extern "C" {
#define TreeView_SetScrollTime(hwnd,uTime)
(UINT)SNDMSG((hwnd),TVM_SETSCROLLTIME,uTime,0)
#define TVM_GETSCROLLTIME (TV_FIRST+34)
#define TreeView_GetScrollTime(hwnd) (UINT)SNDMSG((hwnd),TVM_GETSCROLLTIME,0,0)
+#define TVM_SETBORDER (TV_FIRST+35)
+#define TreeView_SetBorder(hwnd, dwFlags, xBorder, yBorder) (int)SNDMSG
((hwnd), TVM_SETBORDER,(WPARAM) (dwFlags), MAKELPARAM (xBorder, yBorder))
+
+#define TVSBF_XBORDER 0x1
+#define TVSBF_YBORDER 0x2
+
#define TVM_SETINSERTMARKCOLOR (TV_FIRST+37)
#define TreeView_SetInsertMarkColor(hwnd,clr)
(COLORREF)SNDMSG((hwnd),TVM_SETINSERTMARKCOLOR,0,(LPARAM)(clr))
#define TVM_GETINSERTMARKCOLOR (TV_FIRST+38)
@@ -3341,6 +3781,39 @@ extern "C" {
#define TVM_MAPHTREEITEMTOACCID (TV_FIRST+43)
#define TreeView_MapHTREEITEMToAccID(hwnd,htreeitem)
(UINT)SNDMSG((hwnd),TVM_MAPHTREEITEMTOACCID,(WPARAM)htreeitem,0)
+#define TVM_SETEXTENDEDSTYLE (TV_FIRST+44)
+#define TreeView_SetExtendedStyle(hwnd, dw, mask) (DWORD)SNDMSG ((hwnd),
TVM_SETEXTENDEDSTYLE, mask, dw)
+
+#define TVM_GETEXTENDEDSTYLE (TV_FIRST+45)
+#define TreeView_GetExtendedStyle(hwnd) (DWORD)SNDMSG ((hwnd),
TVM_GETEXTENDEDSTYLE, 0, 0)
+
+#define TVM_SETHOT (TV_FIRST+58)
+#define TreeView_SetHot(hwnd, hitem) SNDMSG ((hwnd), TVM_SETHOT, 0,(LPARAM)
(hitem))
+
+#define TVM_SETAUTOSCROLLINFO (TV_FIRST+59)
+#define TreeView_SetAutoScrollInfo(hwnd, uPixPerSec, uUpdateTime) SNDMSG
((hwnd), TVM_SETAUTOSCROLLINFO,(WPARAM) (uPixPerSec),(LPARAM) (uUpdateTime))
+
+#if NTDDI_VERSION >= 0x06000000
+#define TVM_GETSELECTEDCOUNT (TV_FIRST+70)
+#define TreeView_GetSelectedCount(hwnd) (DWORD)SNDMSG ((hwnd),
TVM_GETSELECTEDCOUNT, 0, 0)
+
+#define TVM_SHOWINFOTIP (TV_FIRST+71)
+#define TreeView_ShowInfoTip(hwnd, hitem) (DWORD)SNDMSG ((hwnd),
TVM_SHOWINFOTIP, 0,(LPARAM) (hitem))
+
+ typedef enum _TVITEMPART {
+ TVGIPR_BUTTON = 0x0001,
+ } TVITEMPART;
+
+ typedef struct tagTVGETITEMPARTRECTINFO {
+ HTREEITEM hti;
+ RECT *prc;
+ TVITEMPART partID;
+ } TVGETITEMPARTRECTINFO;
+
+#define TVM_GETITEMPARTRECT (TV_FIRST+72)
+#define TreeView_GetItemPartRect(hwnd, hitem, prc, partid) {
TVGETITEMPARTRECTINFO info; info.hti = (hitem); info.prc = (prc); info.partID =
(partid); (WINBOOL)SNDMSG ((hwnd), TVM_GETITEMPARTRECT, 0,(LPARAM) &info); }
+#endif
+
typedef int (CALLBACK *PFNTVCOMPARE)(LPARAM lParam1,LPARAM lParam2,LPARAM
lParamSort);
#define LPTV_SORTCB LPTVSORTCB
@@ -3412,7 +3885,6 @@ extern "C" {
#define LPNMTVDISPINFO __MINGW_NAME_AW(LPNMTVDISPINFO)
#if (_WIN32_IE >= 0x0600)
-
typedef struct tagTVDISPINFOEXA {
NMHDR hdr;
TVITEMEXA item;
@@ -3429,7 +3901,6 @@ typedef struct tagTVDISPINFOEXW {
#define TV_DISPINFOEXA NMTVDISPINFOEXA
#define TV_DISPINFOEXW NMTVDISPINFOEXW
#define TV_DISPINFOEX NMTVDISPINFOEX
-
#endif /* (_WIN32_IE >= 0x0600) */
#define TVN_ITEMEXPANDINGA (TVN_FIRST-5)
@@ -3455,6 +3926,14 @@ typedef struct tagTVDISPINFOEXW {
#define TVNRET_SKIPOLD 1
#define TVNRET_SKIPNEW 2
+#if _WIN32_IE >= 0x0600
+#define TVN_ITEMCHANGINGA (TVN_FIRST-16)
+#define TVN_ITEMCHANGINGW (TVN_FIRST-17)
+#define TVN_ITEMCHANGEDA (TVN_FIRST-18)
+#define TVN_ITEMCHANGEDW (TVN_FIRST-19)
+#define TVN_ASYNCDRAW (TVN_FIRST-20)
+#endif
+
#define TV_KEYDOWN NMTVKEYDOWN
#include <pshpack1.h>
@@ -3509,6 +3988,30 @@ typedef struct tagTVDISPINFOEXW {
#define LPNMTVGETINFOTIP __MINGW_NAME_AW(LPNMTVGETINFOTIP)
#define TVCDRF_NOIMAGES 0x10000
+
+#if _WIN32_IE > 0x0600
+ typedef struct tagTVITEMCHANGE {
+ NMHDR hdr;
+ UINT uChanged;
+ HTREEITEM hItem;
+ UINT uStateNew;
+ UINT uStateOld;
+ LPARAM lParam;
+ } NMTVITEMCHANGE;
+
+ typedef struct tagNMTVASYNCDRAW {
+ NMHDR hdr;
+ IMAGELISTDRAWPARAMS *pimldp;
+ HRESULT hr;
+ HTREEITEM hItem;
+ LPARAM lParam;
+ DWORD dwRetFlags;
+ int iRetImageIndex;
+ } NMTVASYNCDRAW;
+
+#define TVN_ITEMCHANGING __MINGW_NAME_AW(TVN_ITEMCHANGING)
+#define TVN_ITEMCHANGED __MINGW_NAME_AW(TVN_ITEMCHANGED)
+#endif
#endif
#ifndef NOUSEREXCONTROLS
@@ -3588,6 +4091,9 @@ typedef struct tagTVDISPINFOEXW {
#define CBES_EX_PATHWORDBREAKPROC 0x4
#define CBES_EX_NOSIZELIMIT 0x8
#define CBES_EX_CASESENSITIVE 0x10
+#if NTDDI_VERSION >= 0x06000000
+#define CBES_EX_TEXTENDELLIPSIS 0x00000020
+#endif
typedef struct {
NMHDR hdr;
@@ -3661,11 +4167,9 @@ typedef struct tagTVDISPINFOEXW {
#define NMCBEENDEDIT __MINGW_NAME_AW(NMCBEENDEDIT)
#define LPNMCBEENDEDIT __MINGW_NAME_AW(LPNMCBEENDEDIT)
#define PNMCBEENDEDIT __MINGW_NAME_AW(PNMCBEENDEDIT)
-
#endif
#ifndef NOTABCONTROL
-
#define WC_TABCONTROLA "SysTabControl32"
#define WC_TABCONTROLW L"SysTabControl32"
#define WC_TABCONTROL __MINGW_NAME_AW(WC_TABCONTROL)
@@ -3871,7 +4375,6 @@ typedef struct tagTVDISPINFOEXW {
#endif
#ifndef NOANIMATE
-
#define ANIMATE_CLASSW L"SysAnimate32"
#define ANIMATE_CLASSA "SysAnimate32"
@@ -3889,6 +4392,7 @@ typedef struct tagTVDISPINFOEXW {
#define ACM_PLAY (WM_USER+101)
#define ACM_STOP (WM_USER+102)
+#define ACM_ISPLAYING (WM_USER+104)
#define ACN_START 1
#define ACN_STOP 2
@@ -3899,6 +4403,7 @@ typedef struct tagTVDISPINFOEXW {
#define Animate_OpenEx(hwnd,hInst,szName)
(WINBOOL)SNDMSG(hwnd,ACM_OPEN,(WPARAM)(hInst),(LPARAM)(LPTSTR)(szName))
#define Animate_Play(hwnd,from,to,rep)
(WINBOOL)SNDMSG(hwnd,ACM_PLAY,(WPARAM)(rep),(LPARAM)MAKELONG(from,to))
#define Animate_Stop(hwnd) (WINBOOL)SNDMSG(hwnd,ACM_STOP,0,0)
+#define Animate_IsPlaying(hwnd) (WINBOOL)SNDMSG (hwnd, ACM_ISPLAYING, 0, 0)
#define Animate_Close(hwnd) Animate_Open(hwnd,NULL)
#define Animate_Seek(hwnd,frame) Animate_Play(hwnd,frame,frame,1)
#endif
@@ -3953,15 +4458,24 @@ typedef struct tagTVDISPINFOEXW {
typedef struct {
UINT cbSize;
POINT pt;
-
UINT uHit;
SYSTEMTIME st;
+#if NTDDI_VERSION >= 0x06000000
+ RECT rc;
+ int iOffset;
+ int iRow;
+ int iCol;
+#endif
} MCHITTESTINFO,*PMCHITTESTINFO;
+#define MCHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT (MCHITTESTINFO, st)
+
#define MCHT_TITLE 0x10000
#define MCHT_CALENDAR 0x20000
#define MCHT_TODAYLINK 0x30000
-
+#if NTDDI_VERSION >= 0x06000000
+#define MCHT_CALENDARCONTROL 0x100000
+#endif
#define MCHT_NEXT 0x1000000
#define MCHT_PREV 0x2000000
@@ -3979,6 +4493,8 @@ typedef struct tagTVDISPINFOEXW {
#define MCHT_CALENDARDATEPREV (MCHT_CALENDARDATE | MCHT_PREV)
#define MCHT_CALENDARDAY (MCHT_CALENDAR | 0x2)
#define MCHT_CALENDARWEEKNUM (MCHT_CALENDAR | 0x3)
+#define MCHT_CALENDARDATEMIN (MCHT_CALENDAR | 0x4)
+#define MCHT_CALENDARDATEMAX (MCHT_CALENDAR | 0x5)
#define MCM_SETFIRSTDAYOFWEEK (MCM_FIRST+15)
#define MonthCal_SetFirstDayOfWeek(hmc,iDay)
SNDMSG(hmc,MCM_SETFIRSTDAYOFWEEK,0,iDay)
@@ -3999,19 +4515,75 @@ typedef struct tagTVDISPINFOEXW {
#define MCM_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
#define MonthCal_GetUnicodeFormat(hwnd)
(WINBOOL)SNDMSG((hwnd),MCM_GETUNICODEFORMAT,0,0)
+#if NTDDI_VERSION >= 0x06000000
+#define MCMV_MONTH 0
+#define MCMV_YEAR 1
+#define MCMV_DECADE 2
+#define MCMV_CENTURY 3
+#define MCMV_MAX MCMV_CENTURY
+
+#define MCM_GETCURRENTVIEW (MCM_FIRST+22)
+#define MonthCal_GetCurrentView(hmc) (DWORD)SNDMSG (hmc, MCM_GETCURRENTVIEW,
0, 0)
+#define MCM_GETCALENDARCOUNT (MCM_FIRST+23)
+#define MonthCal_GetCalendarCount(hmc) (DWORD)SNDMSG (hmc,
MCM_GETCALENDARCOUNT, 0, 0)
+
+#define MCGIP_CALENDARCONTROL 0
+#define MCGIP_NEXT 1
+#define MCGIP_PREV 2
+#define MCGIP_FOOTER 3
+#define MCGIP_CALENDAR 4
+#define MCGIP_CALENDARHEADER 5
+#define MCGIP_CALENDARBODY 6
+#define MCGIP_CALENDARROW 7
+#define MCGIP_CALENDARCELL 8
+
+#define MCGIF_DATE 01
+#define MCGIF_RECT 0x2
+#define MCGIF_NAME 0x4
+
+ typedef struct tagMCGRIDINFO {
+ UINT cbSize;
+ DWORD dwPart;
+ DWORD dwFlags;
+ int iCalendar;
+ int iRow;
+ int iCol;
+ WINBOOL bSelected;
+ SYSTEMTIME stStart;
+ SYSTEMTIME stEnd;
+ RECT rc;
+ PWSTR pszName;
+ size_t cchName;
+ } MCGRIDINFO,*PMCGRIDINFO;
+
+#define MCM_GETCALENDARGRIDINFO (MCM_FIRST+24)
+#define MonthCal_GetCalendarGridInfo(hmc, pmcGridInfo) (WINBOOL)SNDMSG (hmc,
MCM_GETCALENDARGRIDINFO, 0,(LPARAM) (PMCGRIDINFO) (pmcGridInfo))
+#define MCM_GETCALID (MCM_FIRST+27)
+#define MonthCal_GetCALID(hmc) (CALID)SNDMSG (hmc, MCM_GETCALID, 0, 0)
+#define MCM_SETCALID (MCM_FIRST+28)
+#define MonthCal_SetCALID(hmc, calid) SNDMSG (hmc, MCM_SETCALID,(WPARAM)
(calid), 0)
+#define MCM_SIZERECTTOMIN (MCM_FIRST+29)
+#define MonthCal_SizeRectToMin(hmc, prc) SNDMSG (hmc, MCM_SIZERECTTOMIN,
0,(LPARAM) (prc))
+#define MCM_SETCALENDARBORDER (MCM_FIRST+30)
+#define MonthCal_SetCalendarBorder(hmc, fset, xyborder) SNDMSG (hmc,
MCM_SETCALENDARBORDER,(WPARAM) (fset),(LPARAM) (xyborder))
+#define MCM_GETCALENDARBORDER (MCM_FIRST+31)
+#define MonthCal_GetCalendarBorder(hmc) (int)SNDMSG (hmc,
MCM_GETCALENDARBORDER, 0, 0)
+#define MCM_SETCURRENTVIEW (MCM_FIRST+32)
+#define MonthCal_SetCurrentView(hmc, dwNewView) (WINBOOL)SNDMSG (hmc,
MCM_SETCURRENTVIEW, 0,(LPARAM) (dwNewView))
+#endif
+
typedef struct tagNMSELCHANGE {
NMHDR nmhdr;
SYSTEMTIME stSelStart;
SYSTEMTIME stSelEnd;
} NMSELCHANGE,*LPNMSELCHANGE;
-#define MCN_SELCHANGE (MCN_FIRST+1)
+#define MCN_SELCHANGE (MCN_FIRST-3)
typedef struct tagNMDAYSTATE {
NMHDR nmhdr;
SYSTEMTIME stStart;
int cDayState;
-
LPMONTHDAYSTATE prgDayState;
} NMDAYSTATE,*LPNMDAYSTATE;
@@ -4019,13 +4591,26 @@ typedef struct tagTVDISPINFOEXW {
typedef NMSELCHANGE NMSELECT,*LPNMSELECT;
-#define MCN_SELECT (MCN_FIRST+4)
+#define MCN_SELECT (MCN_FIRST)
+
+ typedef struct tagNMVIEWCHANGE {
+ NMHDR nmhdr;
+ DWORD dwOldView;
+ DWORD dwNewView;
+ } NMVIEWCHANGE,*LPNMVIEWCHANGE;
+
+#define MCN_VIEWCHANGE (MCN_FIRST-4)
#define MCS_DAYSTATE 0x1
#define MCS_MULTISELECT 0x2
#define MCS_WEEKNUMBERS 0x4
#define MCS_NOTODAYCIRCLE 0x8
#define MCS_NOTODAY 0x10
+#if NTDDI_VERSION >= 0x06000000
+#define MCS_NOTRAILINGDATES 0x40
+#define MCS_SHORTDAYSOFWEEK 0x80
+#define MCS_NOSELCHANGEONNAV 0x100
+#endif
#define GMR_VISIBLE 0
#define GMR_DAYSTATE 1
@@ -4037,6 +4622,19 @@ typedef struct tagTVDISPINFOEXW {
#define DATETIMEPICK_CLASS __MINGW_NAME_AW(DATETIMEPICK_CLASS)
+#if NTDDI_VERSION >= 0x06000000
+ typedef struct tagDATETIMEPICKERINFO {
+ DWORD cbSize;
+ RECT rcCheck;
+ DWORD stateCheck;
+ RECT rcButton;
+ DWORD stateButton;
+ HWND hwndEdit;
+ HWND hwndUD;
+ HWND hwndDropDown;
+ } DATETIMEPICKERINFO,*LPDATETIMEPICKERINFO;
+#endif
+
#define DTM_FIRST 0x1000
#define DTM_GETSYSTEMTIME (DTM_FIRST+1)
@@ -4064,6 +4662,18 @@ typedef struct tagTVDISPINFOEXW {
#define DateTime_SetMonthCalFont(hdp,hfont,fRedraw)
SNDMSG(hdp,DTM_SETMCFONT,(WPARAM)(hfont),(LPARAM)(fRedraw))
#define DTM_GETMCFONT (DTM_FIRST+10)
#define DateTime_GetMonthCalFont(hdp) SNDMSG(hdp,DTM_GETMCFONT,0,0)
+#if NTDDI_VERSION >= 0x06000000
+#define DTM_SETMCSTYLE (DTM_FIRST+11)
+#define DateTime_SetMonthCalStyle(hdp, dwStyle) SNDMSG (hdp, DTM_SETMCSTYLE,
0,(LPARAM)dwStyle)
+#define DTM_GETMCSTYLE (DTM_FIRST+12)
+#define DateTime_GetMonthCalStyle(hdp) SNDMSG (hdp, DTM_GETMCSTYLE, 0, 0)
+#define DTM_CLOSEMONTHCAL (DTM_FIRST+13)
+#define DateTime_CloseMonthCal(hdp) SNDMSG (hdp, DTM_CLOSEMONTHCAL, 0, 0)
+#define DTM_GETDATETIMEPICKERINFO (DTM_FIRST+14)
+#define DateTime_GetDateTimePickerInfo(hdp, pdtpi) SNDMSG (hdp,
DTM_GETDATETIMEPICKERINFO, 0,(LPARAM) (pdtpi))
+#define DTM_GETIDEALSIZE (DTM_FIRST+15)
+#define DateTime_GetIdealSize(hdp, psize) (WINBOOL)SNDMSG ((hdp),
DTM_GETIDEALSIZE, 0,(LPARAM) (psize))
+#endif
#define DTS_UPDOWN 0x1
#define DTS_SHOWNONE 0x2
@@ -4074,15 +4684,17 @@ typedef struct tagTVDISPINFOEXW {
#define DTS_APPCANPARSE 0x10
#define DTS_RIGHTALIGN 0x20
-#define DTN_DATETIMECHANGE (DTN_FIRST+1)
+#define DTN_DATETIMECHANGE (DTN_FIRST2-6)
+
typedef struct tagNMDATETIMECHANGE {
NMHDR nmhdr;
DWORD dwFlags;
SYSTEMTIME st;
} NMDATETIMECHANGE,*LPNMDATETIMECHANGE;
-#define DTN_USERSTRINGA (DTN_FIRST+2)
-#define DTN_USERSTRINGW (DTN_FIRST+15)
+#define DTN_USERSTRINGA (DTN_FIRST2-5)
+#define DTN_USERSTRINGW (DTN_FIRST-5)
+
typedef struct tagNMDATETIMESTRINGA {
NMHDR nmhdr;
LPCSTR pszUserString;
@@ -4101,8 +4713,9 @@ typedef struct tagTVDISPINFOEXW {
#define NMDATETIMESTRING __MINGW_NAME_AW(NMDATETIMESTRING)
#define LPNMDATETIMESTRING __MINGW_NAME_AW(LPNMDATETIMESTRING)
-#define DTN_WMKEYDOWNA (DTN_FIRST+3)
-#define DTN_WMKEYDOWNW (DTN_FIRST+16)
+#define DTN_WMKEYDOWNA (DTN_FIRST2-4)
+#define DTN_WMKEYDOWNW (DTN_FIRST-4)
+
typedef struct tagNMDATETIMEWMKEYDOWNA {
NMHDR nmhdr;
int nVirtKey;
@@ -4121,8 +4734,9 @@ typedef struct tagTVDISPINFOEXW {
#define NMDATETIMEWMKEYDOWN __MINGW_NAME_AW(NMDATETIMEWMKEYDOWN)
#define LPNMDATETIMEWMKEYDOWN __MINGW_NAME_AW(LPNMDATETIMEWMKEYDOWN)
-#define DTN_FORMATA (DTN_FIRST+4)
-#define DTN_FORMATW (DTN_FIRST+17)
+#define DTN_FORMATA (DTN_FIRST2-3)
+#define DTN_FORMATW (DTN_FIRST-3)
+
typedef struct tagNMDATETIMEFORMATA {
NMHDR nmhdr;
LPCSTR pszFormat;
@@ -4143,8 +4757,9 @@ typedef struct tagTVDISPINFOEXW {
#define NMDATETIMEFORMAT __MINGW_NAME_AW(NMDATETIMEFORMAT)
#define LPNMDATETIMEFORMAT __MINGW_NAME_AW(LPNMDATETIMEFORMAT)
-#define DTN_FORMATQUERYA (DTN_FIRST+5)
-#define DTN_FORMATQUERYW (DTN_FIRST+18)
+#define DTN_FORMATQUERYA (DTN_FIRST2-2)
+#define DTN_FORMATQUERYW (DTN_FIRST-2)
+
typedef struct tagNMDATETIMEFORMATQUERYA {
NMHDR nmhdr;
LPCSTR pszFormat;
@@ -4161,8 +4776,8 @@ typedef struct tagTVDISPINFOEXW {
#define NMDATETIMEFORMATQUERY __MINGW_NAME_AW(NMDATETIMEFORMATQUERY)
#define LPNMDATETIMEFORMATQUERY __MINGW_NAME_AW(LPNMDATETIMEFORMATQUERY)
-#define DTN_DROPDOWN (DTN_FIRST+6)
-#define DTN_CLOSEUP (DTN_FIRST+7)
+#define DTN_DROPDOWN (DTN_FIRST2 - 1)
+#define DTN_CLOSEUP (DTN_FIRST2)
#define GDTR_MIN 0x1
#define GDTR_MAX 0x2
@@ -4170,6 +4785,7 @@ typedef struct tagTVDISPINFOEXW {
#define GDT_ERROR -1
#define GDT_VALID 0
#define GDT_NONE 1
+#endif
#ifndef NOIPADDRESS
#define IPM_CLEARADDRESS (WM_USER+100)
@@ -4260,6 +4876,9 @@ typedef struct tagTVDISPINFOEXW {
#define PGM_GETDROPTARGET CCM_GETDROPTARGET
#define Pager_GetDropTarget(hwnd,ppdt)
(void)SNDMSG((hwnd),PGM_GETDROPTARGET,0,(LPARAM)(ppdt))
+#define PGM_SETSCROLLINFO (PGM_FIRST+13)
+#define Pager_SetScrollInfo(hwnd, cTimeOut, cLinesPer, cPixelsPerLine) (void)
SNDMSG ((hwnd), PGM_SETSCROLLINFO, cTimeOut, MAKELONG (cLinesPer,
cPixelsPerLine))
+
#define PGN_SCROLL (PGN_FIRST-1)
#define PGF_SCROLLUP 1
@@ -4299,8 +4918,7 @@ typedef struct tagTVDISPINFOEXW {
#define PGN_HOTITEMCHANGE (PGN_FIRST-3)
- typedef struct tagNMPGHOTITEM
- {
+ typedef struct tagNMPGHOTITEM {
NMHDR hdr;
int idOld;
int idNew;
@@ -4355,29 +4973,6 @@ typedef struct tagTVDISPINFOEXW {
#define BCM_GETTEXTMARGIN (BCM_FIRST+0x5)
#define Button_GetTextMargin(hwnd,pmargin)
(WINBOOL)SNDMSG((hwnd),BCM_GETTEXTMARGIN,0,(LPARAM)(pmargin))
-#define BCM_SETNOTE (BCM_FIRST+0x9)
-#define Button_SetNote(hwnd, psz) \
- (WINBOOL)SNDMSG((hwnd), BCM_SETNOTE, 0, (LPARAM)(psz))
-#define BCM_GETNOTE (BCM_FIRST + 0xa)
-#define Button_GetNote(hwnd, psz, pcc) \
- (WINBOOL)SNDMSG((hwnd), BCM_GETNOTE, (WPARAM)pcc, (LPARAM)psz)
-#define BCM_GETNOTELENGTH (BCM_FIRST + 0xb)
-#define Button_GetNoteLength(hwnd) \
- (LRESULT)SNDMSG((hwnd), BCM_GETNOTELENGTH, 0, 0)
-#define BCM_SETSHIELD (BCM_FIRST + 0xc)
-#define Button_SetElevationRequiredState(hwnd, fRequired) \
- (LRESULT)SNDMSG((hwnd), BCM_SETSHIELD, 0, (LPARAM)fRequired)
-
-#define BCM_SETDROPDOWNSTATE (BCM_FIRST + 0x6)
-#define Button_SetDropDownState(hwnd, fDropDown) \
- (WINBOOL)SNDMSG((hwnd), BCM_SETDROPDOWNSTATE, (WPARAM)fDropDown, 0)
-#define BCM_SETSPLITINFO (BCM_FIRST + 0x7)
-#define Button_SetSplitInfo(hwnd,psi) \
- (WINBOOL)SNDMSG((hwnd), BCM_SETSPLITINFO, 0, (LPARAM)psi)
-#define BCM_GETSPLITINFO (BCM_FIRST + 0x8)
-#define Button_GetSplitInfo(hwnd,psi) \
- (WINBOOL)SNDMSG((hwnd), BCM_GETSPLITINFO, 0, (LPARAM)psi)
-
typedef struct tagNMBCHOTITEM {
NMHDR hdr;
DWORD dwFlags;
@@ -4385,38 +4980,59 @@ typedef struct tagTVDISPINFOEXW {
#define BCN_HOTITEMCHANGE (BCN_FIRST+0x1)
-#define BST_HOT 0x200
+#define BST_HOT 0x0200
+#if NTDDI_VERSION >= 0x06000000
+#define BST_DROPDOWNPUSHED 0x0400
-/* Vista and 6.0 version new Button control styles. */
-#define BS_SPLITBUTTON 0xc
-#define BS_DEFSPLITBUTTON 0xd
-#define BS_COMMANDLINK 0xe
-#define BS_DEFCOMMANDLINK 0xf
+#define BS_SPLITBUTTON __MSABI_LONG (0xc)
+#define BS_DEFSPLITBUTTON __MSABI_LONG (0xd)
+#define BS_COMMANDLINK __MSABI_LONG (0xe)
+#define BS_DEFCOMMANDLINK __MSABI_LONG (0xf)
-#define BST_DROPDOWNPUSHED 0x400
+#define BCSIF_GLYPH 0x0001
+#define BCSIF_IMAGE 0x0002
+#define BCSIF_STYLE 0x0004
+#define BCSIF_SIZE 0x0008
-#define BCSIF_GLYPH 0x1
-#define BCSIF_IMAGE 0x2
-#define BCSIF_STYLE 0x4
-#define BCSIF_SIZE 0x8
+#define BCSS_NOSPLIT 0x0001
+#define BCSS_STRETCH 0x0002
+#define BCSS_ALIGNLEFT 0x0004
+#define BCSS_IMAGE 0x0008
-#define BCSS_NOSPLIT 0x1
-#define BCSS_STRETCH 0x2
-#define BCSS_ALIGNLEFT 0x4
-#define BCSS_IMAGE 0x8
-
-#define BCN_DROPDOWN (BCN_FIRST + 0x2)
-
-#define BCCL_NOGLYPH (HIMAGELIST)((size_t) -1)
-
-typedef struct tagBUTTON_SPLITINFO
-{
+ typedef struct tagBUTTON_SPLITINFO {
UINT mask;
HIMAGELIST himlGlyph;
UINT uSplitStyle;
SIZE size;
} BUTTON_SPLITINFO, *PBUTTON_SPLITINFO;
+#define BCM_SETDROPDOWNSTATE (BCM_FIRST+0x6)
+#define Button_SetDropDownState(hwnd, fDropDown) (WINBOOL)SNDMSG ((hwnd),
BCM_SETDROPDOWNSTATE,(WPARAM) (fDropDown), 0)
+#define BCM_SETSPLITINFO (BCM_FIRST+0x7)
+#define Button_SetSplitInfo(hwnd, pInfo) (WINBOOL)SNDMSG ((hwnd),
BCM_SETSPLITINFO, 0,(LPARAM) (pInfo))
+#define BCM_GETSPLITINFO (BCM_FIRST+0x8)
+#define Button_GetSplitInfo(hwnd, pInfo) (WINBOOL)SNDMSG ((hwnd),
BCM_GETSPLITINFO, 0,(LPARAM) (pInfo))
+#define BCM_SETNOTE (BCM_FIRST+0x9)
+#define Button_SetNote(hwnd, psz) (WINBOOL)SNDMSG ((hwnd), BCM_SETNOTE,
0,(LPARAM) (psz))
+#define BCM_GETNOTE (BCM_FIRST+0xa)
+#define Button_GetNote(hwnd, psz, pcc) (WINBOOL)SNDMSG ((hwnd),
BCM_GETNOTE,(WPARAM)pcc,(LPARAM)psz)
+#define BCM_GETNOTELENGTH (BCM_FIRST+0xb)
+#define Button_GetNoteLength(hwnd) \
+ (LRESULT)SNDMSG((hwnd), BCM_GETNOTELENGTH, 0, 0)
+#if NTDDI_VERSION >= 0x06000000
+#define BCM_SETSHIELD (BCM_FIRST+0xc)
+#define Button_SetElevationRequiredState(hwnd, fRequired) (LRESULT)SNDMSG
((hwnd), BCM_SETSHIELD, 0,(LPARAM)fRequired)
+#endif
+
+#define BCCL_NOGLYPH (HIMAGELIST) (-1)
+
+ typedef struct tagNMBCDROPDOWN {
+ NMHDR hdr;
+ RECT rcButton;
+ } NMBCDROPDOWN,*LPNMBCDROPDOWN;
+
+#define BCN_DROPDOWN (BCN_FIRST + 0x0002)
+#endif
#endif
#ifndef NOSTATIC
@@ -4424,6 +5040,7 @@ typedef struct tagBUTTON_SPLITINFO
#define WC_STATICW L"Static"
#define WC_STATIC __MINGW_NAME_AW(WC_STATIC)
+#endif
#ifndef NOEDIT
#define WC_EDITA "Edit"
@@ -4446,6 +5063,17 @@ typedef struct tagBUTTON_SPLITINFO
#define Edit_ShowBalloonTip(hwnd,peditballoontip)
(WINBOOL)SNDMSG((hwnd),EM_SHOWBALLOONTIP,0,(LPARAM)(peditballoontip))
#define EM_HIDEBALLOONTIP (ECM_FIRST+4)
#define Edit_HideBalloonTip(hwnd) (WINBOOL)SNDMSG((hwnd),EM_HIDEBALLOONTIP,0,0)
+#if NTDDI_VERSION >= 0x06000000
+#define EM_SETHILITE (ECM_FIRST+5)
+#define Edit_SetHilite(hwndCtl, ichStart, ichEnd) ((void)SNDMSG ((hwndCtl),
EM_SETHILITE,(ichStart),(ichEnd)))
+#define EM_GETHILITE (ECM_FIRST+6)
+#define Edit_GetHilite(hwndCtl) ((DWORD)SNDMSG ((hwndCtl), EM_GETHILITE,
(WPARAM) 0, (LPARAM) 0))
+#endif
+#define EM_NOSETFOCUS (ECM_FIRST+7)
+#define Edit_NoSetFocus(hwndCtl) ((DWORD)SNDMSG ((hwndCtl), EM_NOSETFOCUS,
(WPARAM) 0, (LPARAM) 0))
+#define EM_TAKEFOCUS (ECM_FIRST+8)
+#define Edit_TakeFocus(hwndCtl) ((DWORD)SNDMSG ((hwndCtl), EM_TAKEFOCUS,
(WPARAM) 0, (LPARAM) 0))
+
#endif
#ifndef NOLISTBOX
@@ -4453,7 +5081,6 @@ typedef struct tagBUTTON_SPLITINFO
#define WC_LISTBOXW L"ListBox"
#define WC_LISTBOX __MINGW_NAME_AW(WC_LISTBOX)
-
#endif
#ifndef NOCOMBOBOX
@@ -4462,13 +5089,17 @@ typedef struct tagBUTTON_SPLITINFO
#define WC_COMBOBOX __MINGW_NAME_AW(WC_COMBOBOX)
-#endif
+#endif /* This endif is misplaced ... nevertheless it seems to be the same as
VS does. The Combobox defines are always defined. */
#define CB_SETMINVISIBLE (CBM_FIRST+1)
#define CB_GETMINVISIBLE (CBM_FIRST+2)
+#define CB_SETCUEBANNER (CBM_FIRST+3)
+#define CB_GETCUEBANNER (CBM_FIRST+4)
-#define ComboBox_SetMinVisible(hwnd,iMinVisible)
(WINBOOL)SNDMSG((hwnd),CB_SETMINVISIBLE,(WPARAM)iMinVisible,0)
+#define ComboBox_SetMinVisible(hwnd, iMinVisible) (WINBOOL)SNDMSG ((hwnd),
CB_SETMINVISIBLE,(WPARAM) (iMinVisible), 0)
#define ComboBox_GetMinVisible(hwnd) (int)SNDMSG((hwnd),CB_GETMINVISIBLE,0,0)
+#define ComboBox_SetCueBannerText(hwnd, lpcwText) (WINBOOL)SNDMSG ((hwnd),
CB_SETCUEBANNER, 0,(LPARAM) (lpcwText))
+#define ComboBox_GetCueBannerText(hwnd, lpwText, cchText) (WINBOOL)SNDMSG
((hwnd), CB_GETCUEBANNER,(WPARAM) (lpwText),(LPARAM) (cchText))
#ifndef NOSCROLLBAR
#define WC_SCROLLBARA "ScrollBar"
@@ -4486,6 +5117,12 @@ typedef struct tagBUTTON_SPLITINFO
#define LWS_TRANSPARENT 0x1
#define LWS_IGNORERETURN 0x2
+#if NTDDI_VERSION >= 0x06000000
+#define LWS_NOPREFIX 0x4
+#define LWS_USEVISUALSTYLE 0x8
+#define LWS_USECUSTOMTEXT 0x10
+#define LWS_RIGHT 0x20
+#endif
#define LIF_ITEMINDEX 0x1
#define LIF_STATE 0x2
@@ -4493,8 +5130,11 @@ typedef struct tagBUTTON_SPLITINFO
#define LIF_URL 0x8
#define LIS_FOCUSED 0x1
-#define LIS_ENABLED 0x2
-#define LIS_VISITED 0x4
+#define LIS_ENABLED 0x2#define LIS_VISITED 0x4
+#if NTDDI_VERSION >= 0x06000000
+#define LIS_HOTTRACK 0x8
+#define LIS_DEFAULTCOLORS 0x10
+#endif
typedef struct tagLITEM {
UINT mask;
@@ -4520,52 +5160,247 @@ typedef struct tagBUTTON_SPLITINFO
#define LM_SETITEM (WM_USER+0x302)
#define LM_GETITEM (WM_USER+0x303)
+#if NTDDI_VERSION >= 0x06000000
+#ifndef NOTASKDIALOG
+
+#include <pshpack1.h>
+
+ typedef HRESULT (CALLBACK *PFTASKDIALOGCALLBACK) (HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam, LONG_PTR lpRefData);
+
+ enum _TASKDIALOG_FLAGS {
+ TDF_ENABLE_HYPERLINKS = 0x1,
+ TDF_USE_HICON_MAIN = 0x2,
+ TDF_USE_HICON_FOOTER = 0x4,
+ TDF_ALLOW_DIALOG_CANCELLATION = 0x8,
+ TDF_USE_COMMAND_LINKS = 0x10,
+ TDF_USE_COMMAND_LINKS_NO_ICON = 0x20,
+ TDF_EXPAND_FOOTER_AREA = 0x40,
+ TDF_EXPANDED_BY_DEFAULT = 0x80,
+ TDF_VERIFICATION_FLAG_CHECKED = 0x100,
+ TDF_SHOW_PROGRESS_BAR = 0x0200,
+ TDF_SHOW_MARQUEE_PROGRESS_BAR = 0x0400,
+ TDF_CALLBACK_TIMER = 0x0800,
+ TDF_POSITION_RELATIVE_TO_WINDOW = 0x1000,
+ TDF_RTL_LAYOUT = 0x2000,
+ TDF_NO_DEFAULT_RADIO_BUTTON = 0x4000,
+ TDF_CAN_BE_MINIMIZED = 0x8000,
+#if NTDDI_VERSION >= 0x06020000
+ TDF_NO_SET_FOREGROUND = 0x10000,
+#endif
+ TDF_SIZE_TO_CONTENT = 0x1000000
+ };
+
+ typedef int TASKDIALOG_FLAGS;
+
+ typedef enum _TASKDIALOG_MESSAGES {
+ TDM_NAVIGATE_PAGE = WM_USER+101,
+ TDM_CLICK_BUTTON = WM_USER+102,
+ TDM_SET_MARQUEE_PROGRESS_BAR = WM_USER+103,
+ TDM_SET_PROGRESS_BAR_STATE = WM_USER+104,
+ TDM_SET_PROGRESS_BAR_RANGE = WM_USER+105,
+ TDM_SET_PROGRESS_BAR_POS = WM_USER+106,
+ TDM_SET_PROGRESS_BAR_MARQUEE = WM_USER+107,
+ TDM_SET_ELEMENT_TEXT = WM_USER+108,
+ TDM_CLICK_RADIO_BUTTON = WM_USER+110,
+ TDM_ENABLE_BUTTON = WM_USER+111,
+ TDM_ENABLE_RADIO_BUTTON = WM_USER+112,
+ TDM_CLICK_VERIFICATION = WM_USER+113,
+ TDM_UPDATE_ELEMENT_TEXT = WM_USER+114,
+ TDM_SET_BUTTON_ELEVATION_REQUIRED_STATE = WM_USER+115,
+ TDM_UPDATE_ICON = WM_USER+116
+ } TASKDIALOG_MESSAGES;
+
+ typedef enum _TASKDIALOG_NOTIFICATIONS {
+ TDN_CREATED = 0,
+ TDN_NAVIGATED = 1,
+ TDN_BUTTON_CLICKED = 2,
+ TDN_HYPERLINK_CLICKED = 3,
+ TDN_TIMER = 4,
+ TDN_DESTROYED = 5,
+ TDN_RADIO_BUTTON_CLICKED = 6,
+ TDN_DIALOG_CONSTRUCTED = 7,
+ TDN_VERIFICATION_CLICKED = 8,
+ TDN_HELP = 9,
+ TDN_EXPANDO_BUTTON_CLICKED = 10
+ } TASKDIALOG_NOTIFICATIONS;
+
+ typedef struct _TASKDIALOG_BUTTON {
+ int nButtonID;
+ PCWSTR pszButtonText;
+ } TASKDIALOG_BUTTON;
+
+ typedef enum _TASKDIALOG_ELEMENTS {
+ TDE_CONTENT,
+ TDE_EXPANDED_INFORMATION,
+ TDE_FOOTER,
+ TDE_MAIN_INSTRUCTION
+ } TASKDIALOG_ELEMENTS;
+
+ typedef enum _TASKDIALOG_ICON_ELEMENTS {
+ TDIE_ICON_MAIN,
+ TDIE_ICON_FOOTER
+ } TASKDIALOG_ICON_ELEMENTS;
+
+#define TD_WARNING_ICON MAKEINTRESOURCEW (-1)
+#define TD_ERROR_ICON MAKEINTRESOURCEW (-2)
+#define TD_INFORMATION_ICON MAKEINTRESOURCEW (-3)
+#define TD_SHIELD_ICON MAKEINTRESOURCEW (-4)
+
+ enum _TASKDIALOG_COMMON_BUTTON_FLAGS {
+ TDCBF_OK_BUTTON = 0x1,
+ TDCBF_YES_BUTTON = 0x2,
+ TDCBF_NO_BUTTON = 0x4,
+ TDCBF_CANCEL_BUTTON = 0x8,
+ TDCBF_RETRY_BUTTON = 0x10,
+ TDCBF_CLOSE_BUTTON = 0x20
+ };
+
+ typedef int TASKDIALOG_COMMON_BUTTON_FLAGS;
+
+ typedef struct _TASKDIALOGCONFIG {
+ UINT cbSize;
+ HWND hwndParent;
+ HINSTANCE hInstance;
+ TASKDIALOG_FLAGS dwFlags;
+ TASKDIALOG_COMMON_BUTTON_FLAGS dwCommonButtons;
+ PCWSTR pszWindowTitle;
+ __C89_NAMELESS union {
+ HICON hMainIcon;
+ PCWSTR pszMainIcon;
+ } DUMMYUNIONNAME;
+ PCWSTR pszMainInstruction;
+ PCWSTR pszContent;
+ UINT cButtons;
+ const TASKDIALOG_BUTTON *pButtons;
+ int nDefaultButton;
+ UINT cRadioButtons;
+ const TASKDIALOG_BUTTON *pRadioButtons;
+ int nDefaultRadioButton;
+ PCWSTR pszVerificationText;
+ PCWSTR pszExpandedInformation;
+ PCWSTR pszExpandedControlText;
+ PCWSTR pszCollapsedControlText;
+ __C89_NAMELESS union {
+ HICON hFooterIcon;
+ PCWSTR pszFooterIcon;
+ } DUMMYUNIONNAME2;
+ PCWSTR pszFooter;
+ PFTASKDIALOGCALLBACK pfCallback;
+ LONG_PTR lpCallbackData;
+ UINT cxWidth;
+ } TASKDIALOGCONFIG;
+
+ WINCOMMCTRLAPI HRESULT WINAPI TaskDialogIndirect (const TASKDIALOGCONFIG
*pTaskConfig, int *pnButton, int *pnRadioButton, WINBOOL
*pfVerificationFlagChecked);
+ WINCOMMCTRLAPI HRESULT WINAPI TaskDialog (HWND hwndOwner, HINSTANCE
hInstance, PCWSTR pszWindowTitle, PCWSTR pszMainInstruction, PCWSTR pszContent,
TASKDIALOG_COMMON_BUTTON_FLAGS dwCommonButtons, PCWSTR pszIcon, int *pnButton);
+
+#include <poppack.h>
+
+#endif
+#endif
+
#ifndef NOMUI
void WINAPI InitMUILanguage(LANGID uiLang);
LANGID WINAPI GetMUILanguage(void);
#endif
-#endif
-#define DA_LAST (0x7fffffff)
-#define DPA_APPEND (0x7fffffff)
-#define DPA_ERR (-1)
+#ifndef NO_COMMCTRL_DA
+#define __COMMCTRL_DA_DEFINED__
-#define DSA_APPEND (0x7fffffff)
-#define DSA_ERR (-1)
+#define DA_LAST (0x7fffffff)
+#define DA_ERR (-1) $
+ typedef int (CALLBACK *PFNDAENUMCALLBACK) (void *p, void *pData);
+ typedef int (CALLBACK *PFNDAENUMCALLBACKCONST) (const void *p, void *pData);
+ typedef int (CALLBACK *PFNDACOMPARE) (void *p1, void *p2, LPARAM lParam);
+ typedef int (CALLBACK *PFNDACOMPARECONST) (const void *p1, const void *p2,
LPARAM lParam);
+ struct _DSA;
typedef struct _DSA *HDSA;
- typedef int (CALLBACK *PFNDPAENUMCALLBACK)(void *p,void *pData);
- typedef int (CALLBACK *PFNDSAENUMCALLBACK)(void *p,void *pData);
-
WINCOMMCTRLAPI HDSA WINAPI DSA_Create(int cbItem,int cItemGrow);
WINCOMMCTRLAPI WINBOOL WINAPI DSA_Destroy(HDSA hdsa);
- WINCOMMCTRLAPI void WINAPI DSA_DestroyCallback(HDSA hdsa,PFNDSAENUMCALLBACK
pfnCB,void *pData);
+ WINCOMMCTRLAPI void WINAPI DSA_DestroyCallback (HDSA hdsa, PFNDAENUMCALLBACK
pfnCB, void *pData);
+#ifdef __cplusplus
+ extern "C++" __inline void DSA_DestroyCallback (HDSA hdsa,
PFNDAENUMCALLBACKCONST pfnCB, void *pData) {
+ DSA_DestroyCallback (hdsa,(PFNDAENUMCALLBACK)pfnCB, pData);
+ }
+#endif
+ WINCOMMCTRLAPI WINBOOL WINAPI DSA_DeleteItem (HDSA hdsa, int i);
+ WINCOMMCTRLAPI WINBOOL WINAPI DSA_DeleteAllItems (HDSA hdsa);
+ WINCOMMCTRLAPI void WINAPI DSA_EnumCallback (HDSA hdsa, PFNDAENUMCALLBACK
pfnCB, void *pData);
+#ifdef __cplusplus
+ extern "C++" __inline void DSA_EnumCallback (HDSA hdsa,
PFNDAENUMCALLBACKCONST pfnCB, void *pData) {
+ DSA_EnumCallback (hdsa,(PFNDAENUMCALLBACK)pfnCB, pData);
+ }
+#endif
+ WINCOMMCTRLAPI int WINAPI DSA_InsertItem (HDSA hdsa, int i, const void
*pitem);
WINCOMMCTRLAPI PVOID WINAPI DSA_GetItemPtr(HDSA hdsa,int i);
- WINCOMMCTRLAPI int WINAPI DSA_InsertItem(HDSA hdsa,int i,void *pitem);
+ WINCOMMCTRLAPI WINBOOL WINAPI DSA_GetItem (HDSA hdsa, int i, void *pitem);
+ WINCOMMCTRLAPI WINBOOL WINAPI DSA_SetItem (HDSA hdsa, int i, const void
*pitem);
- typedef struct _DPA *HDPA;
+#define DSA_GetItemCount(hdsa) (*(int *) (hdsa))
+#define DSA_AppendItem(hdsa, pitem) DSA_InsertItem (hdsa, DA_LAST, pitem)
+
+#if NTDDI_VERSION >= 0x06000000
+ WINCOMMCTRLAPI HDSA WINAPI DSA_Clone (HDSA hdsa);
+ WINCOMMCTRLAPI ULONGLONG WINAPI DSA_GetSize (HDSA hdsa);
+ WINCOMMCTRLAPI WINBOOL WINAPI DSA_Sort (HDSA pdsa, PFNDACOMPARE pfnCompare,
LP
+ARAM lParam);
+#ifdef __cplusplus
+ extern "C++" __inline WINBOOL DSA_Sort (HDSA hdsa, PFNDACOMPARECONST
pfnCompare, LPARAM lParam) {
+ return DSA_Sort (hdsa,(PFNDACOMPARE) (pfnCompare), lParam);
+ }
+#endif
+#endif
+#define DSA_APPEND DA_LAST
+#define DSA_ERR DA_ERR
+#define PFNDSAENUMCALLBACK PFNDAENUMCALLBACK
+#define PFNDSAENUMCALLBACKCONST PFNDAENUMCALLBACKCONST
+#define PFNDSACOMPARE PFNDACOMPARE
+#define PFNDSACOMPARECONST PFNDACOMPARECONST
+
+ struct _DPA;
+ typedef struct _DPA *HDPA;
WINCOMMCTRLAPI HDPA WINAPI DPA_Create(int cItemGrow);
+ WINCOMMCTRLAPI HDPA WINAPI DPA_CreateEx (int cpGrow, HANDLE hheap);
+ WINCOMMCTRLAPI HDPA WINAPI DPA_Clone (const HDPA hdpa, HDPA hdpaNew);
WINCOMMCTRLAPI WINBOOL WINAPI DPA_Destroy(HDPA hdpa);
+ WINCOMMCTRLAPI void WINAPI DPA_DestroyCallback (HDPA hdpa, PFNDAENUMCALLBACK
pfnCB, void *pData);
+#ifdef __cplusplus
+ extern "C++" __inline void DPA_DestroyCallback (HDPA hdpa,
PFNDAENUMCALLBACKCONST pfnCB, void *pData) {
+ DPA_DestroyCallback (hdpa,(PFNDAENUMCALLBACK)pfnCB, pData);
+ }
+#endif
WINCOMMCTRLAPI PVOID WINAPI DPA_DeletePtr(HDPA hdpa,int i);
WINCOMMCTRLAPI WINBOOL WINAPI DPA_DeleteAllPtrs(HDPA hdpa);
- WINCOMMCTRLAPI void WINAPI DPA_EnumCallback(HDPA hdpa,PFNDPAENUMCALLBACK
pfnCB,void *pData);
- WINCOMMCTRLAPI void WINAPI DPA_DestroyCallback(HDPA hdpa,PFNDPAENUMCALLBACK
pfnCB,void *pData);
- WINCOMMCTRLAPI WINBOOL WINAPI DPA_SetPtr(HDPA hdpa,int i,void *p);
+ WINCOMMCTRLAPI void WINAPI DPA_EnumCallback (HDPA hdpa, PFNDAENUMCALLBACK
pfnCB, void *pData);
+#ifdef __cplusplus
+ extern "C++" __inline void DPA_EnumCallback (HDPA hdpa,
PFNDAENUMCALLBACKCONST pfnCB, void *pData) {
+ DPA_EnumCallback (hdpa,(PFNDAENUMCALLBACK)pfnCB, pData);
+ }
+#endif
+ WINCOMMCTRLAPI WINBOOL WINAPI DPA_Grow (HDPA pdpa, int cp);
WINCOMMCTRLAPI int WINAPI DPA_InsertPtr(HDPA hdpa,int i,void *p);
+ WINCOMMCTRLAPI WINBOOL WINAPI DPA_SetPtr (HDPA hdpa, int i, void *p);
WINCOMMCTRLAPI PVOID WINAPI DPA_GetPtr(HDPA hdpa,INT_PTR i);
+ WINCOMMCTRLAPI int WINAPI DPA_GetPtrIndex (HDPA hdpa, const void *p);
- typedef int (CALLBACK *PFNDPACOMPARE)(void *p1,void *p2,LPARAM lParam);
-
- WINCOMMCTRLAPI WINBOOL WINAPI DPA_Sort(HDPA hdpa,PFNDPACOMPARE
pfnCompare,LPARAM lParam);
-
-#define DPAS_SORTED 0x1
-#define DPAS_INSERTBEFORE 0x2
-#define DPAS_INSERTAFTER 0x4
+#define DPA_GetPtrCount(hdpa) (*(int *) (hdpa))
+#define DPA_SetPtrCount(hdpa, cItems) (*(int *) (hdpa) = (cItems))
+#define DPA_FastDeleteLastPtr(hdpa) (-- *(int *) (hdpa))
+#define DPA_GetPtrPtr(hdpa) (*((void ***) ((BYTE *) (hdpa) + sizeof (void *))))
+#define DPA_FastGetPtr(hdpa, i) (DPA_GetPtrPtr (hdpa)[i])
+#define DPA_AppendPtr(hdpa, pitem) DPA_InsertPtr (hdpa, DA_LAST, pitem)
- WINCOMMCTRLAPI int WINAPI DPA_Search(HDPA hdpa,void *pFind,int
iStart,PFNDPACOMPARE pfnCompare,LPARAM lParam,UINT options);
- WINCOMMCTRLAPI WINBOOL WINAPI Str_SetPtrW(LPWSTR *ppsz,LPCWSTR psz);
+#if NTDDI_VERSION >= 0x06000000
+ WINCOMMCTRLAPI ULONGLONG WINAPI DPA_GetSize (HDPA hdpa);
+#endif
+ WINCOMMCTRLAPI WINBOOL WINAPI DPA_Sort (HDPA hdpa, PFNDACOMPARE pfnCompare,
LPARAM lParam);
+#ifdef __cplusplus
+ extern "C++" __inline WINBOOL DPA_Sort (HDPA hdpa, PFNDACOMPARECONST
pfnCompare, LPARAM lParam) {
+ return DPA_Sort (hdpa,(PFNDACOMPARE) (pfnCompare), lParam);
+ }
+#endif
typedef struct _DPASTREAMINFO {
int iPos;
@@ -4573,34 +5408,52 @@ typedef struct _DPASTREAMINFO {
} DPASTREAMINFO;
struct IStream;
-typedef HRESULT (CALLBACK *PFNDPASTREAM)(DPASTREAMINFO*, struct IStream*,
void*);
-typedef void* (CALLBACK *PFNDPAMERGE)(UINT, void*, void*, LPARAM);
-typedef const void* (CALLBACK *PFNDPAMERGECONST)(UINT, const void*, const
void*, LPARAM);
-
+ typedef HRESULT (CALLBACK *PFNDPASTREAM) (DPASTREAMINFO *pinfo, struct
IStream *pstream, void *pvInstData);
WINCOMMCTRLAPI HRESULT WINAPI DPA_LoadStream(HDPA * phdpa, PFNDPASTREAM pfn,
struct IStream * pstream, void *pvInstData);
WINCOMMCTRLAPI HRESULT WINAPI DPA_SaveStream(HDPA hdpa, PFNDPASTREAM pfn,
struct IStream * pstream, void *pvInstData);
- WINCOMMCTRLAPI WINBOOL WINAPI DPA_Grow(HDPA pdpa, int cp);
- WINCOMMCTRLAPI int WINAPI DPA_InsertPtr(HDPA hdpa, int i, void *p);
- WINCOMMCTRLAPI PVOID WINAPI DPA_GetPtr(HDPA hdpa, INT_PTR i);
- WINCOMMCTRLAPI WINBOOL WINAPI DPA_SetPtr(HDPA hdpa, int i, void *p);
- WINCOMMCTRLAPI int WINAPI DPA_GetPtrIndex(HDPA hdpa, const void *p);
-#define DPA_GetPtrCount(hdpa) (*(int *)(hdpa))
-#define DPA_SetPtrCount(hdpa, cItems) (*(int *)(hdpa) = (cItems))
-#define DPA_GetPtrPtr(hdpa) (*((void * **)((BYTE *)(hdpa) + sizeof(void *))))
-#define DPA_AppendPtr(hdpa, pitem) DPA_InsertPtr(hdpa, DA_LAST, pitem)
-#define DPA_FastDeleteLastPtr(hdpa) (--*(int *)(hdpa))
-#define DPA_FastGetPtr(hdpa, i) (DPA_GetPtrPtr(hdpa)[i])
+#define DPAM_SORTED 0x1
+#define DPAM_NORMAL 0x2
+#define DPAM_UNION 0x4
+#define DPAM_INTERSECT 0x8
-#define DPAM_SORTED 1
-#define DPAM_NORMAL 2
-#define DPAM_UNION 4
-#define DPAM_INTERSECT 8
+ typedef void *(CALLBACK *PFNDPAMERGE) (UINT uMsg, void *pvDest, void *pvSrc,
LPARAM lParam);
+ typedef const void *(CALLBACK *PFNDPAMERGECONST) (UINT uMsg, const void
*pvDest, const void *pvSrc, LPARAM lParam);
#define DPAMM_MERGE 1
#define DPAMM_DELETE 2
#define DPAMM_INSERT 3
+ WINCOMMCTRLAPI WINBOOL WINAPI DPA_Merge (HDPA hdpaDest, HDPA hdpaSrc, DWORD
dwFlags, PFNDACOMPARE pfnCompare, PFNDPAMERGE pfnMerge, LPARAM lParam);
+#ifdef __cplusplus
+ extern "C++" __inline WINBOOL DPA_Merge (HDPA hdpaDest, HDPA hdpaSrc, DWORD
dwFlags, PFNDACOMPARECONST pfnCompare, PFNDPAMERGECONST pfnMerge, LPARAM
lParam) {
+ return DPA_Merge (hdpaDest, hdpaSrc,
dwFlags,(PFNDACOMPARE)pfnCompare,(PFNDPAMERGE)pfnMerge, lParam);
+ }
+#endif
+
+#define DPAS_SORTED 0x1
+#define DPAS_INSERTBEFORE 0x2
+#define DPAS_INSERTAFTER 0x4
+
+ WINCOMMCTRLAPI int WINAPI DPA_Search (HDPA hdpa, void *pFind, int iStart,
PFNDACOMPARE pfnCompare, LPARAM lParam, UINT options);
+#ifdef __cplusplus
+ extern "C++" __inline int DPA_Search (HDPA hdpa, const void *pFind, int
iStart, PFNDACOMPARECONST pfnCompare, LPARAM lParam, UINT options) {
+ return DPA_Search (hdpa, const_cast<void *> (pFind),
iStart,(PFNDACOMPARE)pfnCompare, lParam, options);
+ }
+#endif
+
+#define DPA_SortedInsertPtr(hdpa, pFind, iStart, pfnCompare, lParam, options,
pitem) DPA_InsertPtr (hdpa, DPA_Search (hdpa, pFind, iStart, pfnCompare,
lParam,(DPAS_SORTED | (options))),(pitem))
+#define DPA_APPEND DA_LAST
+#define DPA_ERR DA_ERR
+
+#define PFNDPAENUMCALLBACK PFNDAENUMCALLBACK
+#define PFNDPAENUMCALLBACKCONST PFNDAENUMCALLBACKCONST
+#define PFNDPACOMPARE PFNDACOMPARE
+#define PFNDPACOMPARECONST PFNDACOMPARECONST
+#endif
+
+WINCOMMCTRLAPI WINBOOL WINAPI Str_SetPtrW (LPWSTR *ppsz, LPCWSTR psz);
+
#ifndef NOTRACKMOUSEEVENT
#ifndef WM_MOUSEHOVER
@@ -4609,7 +5462,6 @@ typedef const void* (CALLBACK *PFNDPAMERGECONST)(UINT,
const void*, const void*,
#endif
#ifndef TME_HOVER
-
#define TME_HOVER 0x1
#define TME_LEAVE 0x2
#define TME_NONCLIENT 0x10
@@ -4669,7 +5521,6 @@ typedef const void* (CALLBACK *PFNDPAMERGECONST)(UINT,
const void*, const void*,
WINCOMMCTRLAPI WINBOOL WINAPI InitializeFlatSB(HWND);
WINCOMMCTRLAPI HRESULT WINAPI UninitializeFlatSB(HWND);
#endif
-#endif
typedef LRESULT (CALLBACK *SUBCLASSPROC)(HWND hWnd,UINT uMsg,WPARAM
wParam,LPARAM lParam,UINT_PTR uIdSubclass,DWORD_PTR dwRefData);
@@ -4679,6 +5530,16 @@ typedef const void* (CALLBACK *PFNDPAMERGECONST)(UINT,
const void*, const void*,
LRESULT WINAPI DefSubclassProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM
lParam);
int WINAPI DrawShadowText(HDC hdc,LPCWSTR pszText,UINT cch,RECT *prc,DWORD
dwFlags,COLORREF crText,COLORREF crShadow,int ixOffset,int iyOffset);
+#if NTDDI_VERSION >= 0x06000000
+ enum _LI_METRIC {
+ LIM_SMALL,
+ LIM_LARGE,
+ };
+
+ WINCOMMCTRLAPI HRESULT WINAPI LoadIconMetric (HINSTANCE hinst, PCWSTR
pszName, int lims, HICON *phico);
+ WINCOMMCTRLAPI HRESULT WINAPI LoadIconWithScaleDown (HINSTANCE hinst, PCWSTR
pszName, int cx, int cy, HICON *phico);
+#endif
+
#ifdef __cplusplus
}
#endif
--
1.7.9
------------------------------------------------------------------------------
Slashdot TV.
Video for Nerds. Stuff that matters.
http://tv.slashdot.org/
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public