[ros-diffs] [akhaldi] 50883: [PSDK] - Improve commctrl.h [CRT] - Update _mingw_mac.h from mingw-w64 and add _mingw_unicode.h

akhaldi at svn.reactos.org akhaldi at svn.reactos.org
Wed Feb 23 21:26:19 UTC 2011


Author: akhaldi
Date: Wed Feb 23 21:26:18 2011
New Revision: 50883

URL: http://svn.reactos.org/svn/reactos?rev=50883&view=rev
Log:
[PSDK]
- Improve commctrl.h
[CRT]
- Update _mingw_mac.h from mingw-w64 and add _mingw_unicode.h

Added:
    trunk/reactos/include/crt/_mingw_unicode.h   (with props)
Modified:
    trunk/reactos/include/crt/_mingw_mac.h
    trunk/reactos/include/psdk/commctrl.h

Modified: trunk/reactos/include/crt/_mingw_mac.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/_mingw_mac.h?rev=50883&r1=50882&r2=50883&view=diff
==============================================================================
--- trunk/reactos/include/crt/_mingw_mac.h [iso-8859-1] (original)
+++ trunk/reactos/include/crt/_mingw_mac.h [iso-8859-1] Wed Feb 23 21:26:18 2011
@@ -116,19 +116,31 @@
 #define __WINT_TYPE__  unsigned short
 #endif
 
+#undef __MINGW_EXTENSION
 #if defined(__GNUC__) || defined(__GNUG__)
 #define __MINGW_EXTENSION	__extension__
 #else
 #define __MINGW_EXTENSION
 #endif
 
-#ifdef UNICODE
-# define __MINGW_NAME_AW(func) func##W
-#else
-# define __MINGW_NAME_AW(func) func##A
+/* Special case nameless struct/union.  */
+#ifndef __C89_NAMELESS
+#define __C89_NAMELESS __MINGW_EXTENSION
+
+#define __C89_NAMELESSSTRUCTNAME
+#define __C89_NAMELESSUNIONNAME
 #endif
-#define __MINGW_TYPEDEF_AW(type) \
-    typedef __MINGW_NAME_AW(type) type;
+
+#ifndef __GNU_EXTENSION
+#define __GNU_EXTENSION		__MINGW_EXTENSION
+#endif
+
+/* MinGW-w64 has some additional C99 printf/scanf feature support.
+   So we add some helper macros to ease recognition of them.  */
+#define __MINGW_HAVE_ANSI_C99_PRINTF 1
+#define __MINGW_HAVE_WIDE_C99_PRINTF 1
+#define __MINGW_HAVE_ANSI_C99_SCANF 1
+#define __MINGW_HAVE_WIDE_C99_SCANF 1
 
 #endif	/* _INC_CRTDEFS_MACRO */
 

Added: trunk/reactos/include/crt/_mingw_unicode.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/_mingw_unicode.h?rev=50883&view=auto
==============================================================================
--- trunk/reactos/include/crt/_mingw_unicode.h (added)
+++ trunk/reactos/include/crt/_mingw_unicode.h [iso-8859-1] Wed Feb 23 21:26:18 2011
@@ -1,0 +1,33 @@
+/**
+ * This file has no copyright assigned and is placed in the Public Domain.
+ * This file is part of the w64 mingw-runtime package.
+ * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+ */
+
+#if !defined(_INC_CRT_UNICODE_MACROS)
+/* _INC_CRT_UNICODE_MACROS defined based on UNICODE flag */
+
+#if defined(UNICODE)
+# define _INC_CRT_UNICODE_MACROS 1
+# define __MINGW_NAME_AW(func) func##W
+# define __MINGW_NAME_AW_EXT(func,ext) func##W##ext
+# define __MINGW_NAME_UAW(func) func##_W
+# define __MINGW_NAME_UAW_EXT(func,ext) func##_W_##ext
+# define __MINGW_STRING_AW(str) L##str	/* same as TEXT() from winnt.h */
+# define __MINGW_PROCNAMEEXT_AW "W"
+#else
+# define _INC_CRT_UNICODE_MACROS 2
+# define __MINGW_NAME_AW(func) func##A
+# define __MINGW_NAME_AW_EXT(func,ext) func##A##ext
+# define __MINGW_NAME_UAW(func) func##_A
+# define __MINGW_NAME_UAW_EXT(func,ext) func##_A_##ext
+# define __MINGW_STRING_AW(str) str	/* same as TEXT() from winnt.h */
+# define __MINGW_PROCNAMEEXT_AW "A"
+#endif
+
+#define __MINGW_TYPEDEF_AW(type)	\
+    typedef __MINGW_NAME_AW(type) type;
+#define __MINGW_TYPEDEF_UAW(type)	\
+    typedef __MINGW_NAME_UAW(type) type;
+
+#endif /* !defined(_INC_CRT_UNICODE_MACROS) */

Propchange: trunk/reactos/include/crt/_mingw_unicode.h
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/include/psdk/commctrl.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/psdk/commctrl.h?rev=50883&r1=50882&r2=50883&view=diff
==============================================================================
--- trunk/reactos/include/psdk/commctrl.h [iso-8859-1] (original)
+++ trunk/reactos/include/psdk/commctrl.h [iso-8859-1] Wed Feb 23 21:26:18 2011
@@ -5,6 +5,8 @@
  */
 #ifndef _INC_COMMCTRL
 #define _INC_COMMCTRL
+
+#include <_mingw_unicode.h>
 
 #ifndef _WINRESRC_
 #ifndef _WIN32_IE
@@ -336,6 +338,7 @@
   WINCOMMCTRLAPI COLORREF WINAPI ImageList_SetBkColor(HIMAGELIST himl,COLORREF clrBk);
   WINCOMMCTRLAPI COLORREF WINAPI ImageList_GetBkColor(HIMAGELIST himl);
   WINCOMMCTRLAPI WINBOOL WINAPI ImageList_SetOverlayImage(HIMAGELIST himl,int iImage,int iOverlay);
+  WINCOMMCTRLAPI HRESULT WINAPI HIMAGELIST_QueryInterface(HIMAGELIST,REFIID,void **);
 #define ImageList_AddIcon(himl,hicon) ImageList_ReplaceIcon(himl,-1,hicon)
 
 #define ILD_NORMAL 0x0
@@ -372,11 +375,7 @@
   WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_LoadImageA(HINSTANCE hi,LPCSTR lpbmp,int cx,int cGrow,COLORREF crMask,UINT uType,UINT uFlags);
   WINCOMMCTRLAPI HIMAGELIST WINAPI ImageList_LoadImageW(HINSTANCE hi,LPCWSTR lpbmp,int cx,int cGrow,COLORREF crMask,UINT uType,UINT uFlags);
 
-#ifdef UNICODE
-#define ImageList_LoadImage ImageList_LoadImageW
-#else
-#define ImageList_LoadImage ImageList_LoadImageA
-#endif
+#define ImageList_LoadImage __MINGW_NAME_AW(ImageList_LoadImage)
 
 #define ILCF_MOVE 0x0
 #define ILCF_SWAP 0x1
@@ -417,8 +416,6 @@
   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);
-
 #endif
 
 #ifndef NOHEADER
@@ -426,11 +423,7 @@
 #define WC_HEADERA "SysHeader32"
 #define WC_HEADERW L"SysHeader32"
 
-#ifdef UNICODE
-#define WC_HEADER WC_HEADERW
-#else
-#define WC_HEADER WC_HEADERA
-#endif
+#define WC_HEADER __MINGW_NAME_AW(WC_HEADER)
 
 #define HDS_HORZ 0x0
 #define HDS_BUTTONS 0x2
@@ -451,17 +444,10 @@
 
 #define HDFT_HASNOVALUE 0x8000
 
-#ifdef UNICODE
-#define HD_TEXTFILTER HD_TEXTFILTERW
-#define HDTEXTFILTER HD_TEXTFILTERW
-#define LPHD_TEXTFILTER LPHD_TEXTFILTERW
-#define LPHDTEXTFILTER LPHD_TEXTFILTERW
-#else
-#define HD_TEXTFILTER HD_TEXTFILTERA
-#define HDTEXTFILTER HD_TEXTFILTERA
-#define LPHD_TEXTFILTER LPHD_TEXTFILTERA
-#define LPHDTEXTFILTER LPHD_TEXTFILTERA
-#endif
+#define HD_TEXTFILTER __MINGW_NAME_AW(HD_TEXTFILTER)
+#define HDTEXTFILTER __MINGW_NAME_AW(HD_TEXTFILTER)
+#define LPHD_TEXTFILTER __MINGW_NAME_AW(LPHD_TEXTFILTER)
+#define LPHDTEXTFILTER __MINGW_NAME_AW(LPHD_TEXTFILTER)
 
   typedef struct _HD_TEXTFILTERA {
     LPSTR pszText;
@@ -508,15 +494,10 @@
     void *pvFilter;
   } HDITEMW,*LPHDITEMW;
 
-#ifdef UNICODE
-#define HDITEM HDITEMW
-#define LPHDITEM LPHDITEMW
-#define HDITEM_V1_SIZE HDITEMW_V1_SIZE
-#else
-#define HDITEM HDITEMA
-#define LPHDITEM LPHDITEMA
-#define HDITEM_V1_SIZE HDITEMA_V1_SIZE
-#endif
+#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
 #define HDI_HEIGHT HDI_WIDTH
@@ -555,11 +536,7 @@
 #define HDM_INSERTITEMA (HDM_FIRST+1)
 #define HDM_INSERTITEMW (HDM_FIRST+10)
 
-#ifdef UNICODE
-#define HDM_INSERTITEM HDM_INSERTITEMW
-#else
-#define HDM_INSERTITEM HDM_INSERTITEMA
-#endif
+#define HDM_INSERTITEM __MINGW_NAME_AW(HDM_INSERTITEM)
 
 #define Header_InsertItem(hwndHD,i,phdi) (int)SNDMSG((hwndHD),HDM_INSERTITEM,(WPARAM)(int)(i),(LPARAM)(const HD_ITEM *)(phdi))
 
@@ -569,22 +546,14 @@
 #define HDM_GETITEMA (HDM_FIRST+3)
 #define HDM_GETITEMW (HDM_FIRST+11)
 
-#ifdef UNICODE
-#define HDM_GETITEM HDM_GETITEMW
-#else
-#define HDM_GETITEM HDM_GETITEMA
-#endif
+#define HDM_GETITEM __MINGW_NAME_AW(HDM_GETITEM)
 
 #define Header_GetItem(hwndHD,i,phdi) (WINBOOL)SNDMSG((hwndHD),HDM_GETITEM,(WPARAM)(int)(i),(LPARAM)(HD_ITEM *)(phdi))
 
 #define HDM_SETITEMA (HDM_FIRST+4)
 #define HDM_SETITEMW (HDM_FIRST+12)
 
-#ifdef UNICODE
-#define HDM_SETITEM HDM_SETITEMW
-#else
-#define HDM_SETITEM HDM_SETITEMA
-#endif
+#define HDM_SETITEM __MINGW_NAME_AW(HDM_SETITEM)
 
 #define Header_SetItem(hwndHD,i,phdi) (WINBOOL)SNDMSG((hwndHD),HDM_SETITEM,(WPARAM)(int)(i),(LPARAM)(const HD_ITEM *)(phdi))
 
@@ -688,27 +657,15 @@
 #define HDN_FILTERCHANGE (HDN_FIRST-12)
 #define HDN_FILTERBTNCLICK (HDN_FIRST-13)
 
-#ifdef UNICODE
-#define HDN_ITEMCHANGING HDN_ITEMCHANGINGW
-#define HDN_ITEMCHANGED HDN_ITEMCHANGEDW
-#define HDN_ITEMCLICK HDN_ITEMCLICKW
-#define HDN_ITEMDBLCLICK HDN_ITEMDBLCLICKW
-#define HDN_DIVIDERDBLCLICK HDN_DIVIDERDBLCLICKW
-#define HDN_BEGINTRACK HDN_BEGINTRACKW
-#define HDN_ENDTRACK HDN_ENDTRACKW
-#define HDN_TRACK HDN_TRACKW
-#define HDN_GETDISPINFO HDN_GETDISPINFOW
-#else
-#define HDN_ITEMCHANGING HDN_ITEMCHANGINGA
-#define HDN_ITEMCHANGED HDN_ITEMCHANGEDA
-#define HDN_ITEMCLICK HDN_ITEMCLICKA
-#define HDN_ITEMDBLCLICK HDN_ITEMDBLCLICKA
-#define HDN_DIVIDERDBLCLICK HDN_DIVIDERDBLCLICKA
-#define HDN_BEGINTRACK HDN_BEGINTRACKA
-#define HDN_ENDTRACK HDN_ENDTRACKA
-#define HDN_TRACK HDN_TRACKA
-#define HDN_GETDISPINFO HDN_GETDISPINFOA
-#endif
+#define HDN_ITEMCHANGING __MINGW_NAME_AW(HDN_ITEMCHANGING)
+#define HDN_ITEMCHANGED __MINGW_NAME_AW(HDN_ITEMCHANGED)
+#define HDN_ITEMCLICK __MINGW_NAME_AW(HDN_ITEMCLICK)
+#define HDN_ITEMDBLCLICK __MINGW_NAME_AW(HDN_ITEMDBLCLICK)
+#define HDN_DIVIDERDBLCLICK __MINGW_NAME_AW(HDN_DIVIDERDBLCLICK)
+#define HDN_BEGINTRACK __MINGW_NAME_AW(HDN_BEGINTRACK)
+#define HDN_ENDTRACK __MINGW_NAME_AW(HDN_ENDTRACK)
+#define HDN_TRACK __MINGW_NAME_AW(HDN_TRACK)
+#define HDN_GETDISPINFO __MINGW_NAME_AW(HDN_GETDISPINFO)
 
 #define HD_NOTIFYA NMHEADERA
 #define HD_NOTIFYW NMHEADERW
@@ -728,13 +685,8 @@
     HDITEMW *pitem;
   } NMHEADERW,*LPNMHEADERW;
 
-#ifdef UNICODE
-#define NMHEADER NMHEADERW
-#define LPNMHEADER LPNMHEADERW
-#else
-#define NMHEADER NMHEADERA
-#define LPNMHEADER LPNMHEADERA
-#endif
+#define NMHEADER __MINGW_NAME_AW(NMHEADER)
+#define LPNMHEADER __MINGW_NAME_AW(LPNMHEADER)
 
   typedef struct tagNMHDDISPINFOW {
     NMHDR hdr;
@@ -756,13 +708,8 @@
     LPARAM lParam;
   } NMHDDISPINFOA,*LPNMHDDISPINFOA;
 
-#ifdef UNICODE
-#define NMHDDISPINFO NMHDDISPINFOW
-#define LPNMHDDISPINFO LPNMHDDISPINFOW
-#else
-#define NMHDDISPINFO NMHDDISPINFOA
-#define LPNMHDDISPINFO LPNMHDDISPINFOA
-#endif
+#define NMHDDISPINFO __MINGW_NAME_AW(NMHDDISPINFO)
+#define LPNMHDDISPINFO __MINGW_NAME_AW(LPNMHDDISPINFO)
 
   typedef struct tagNMHDFILTERBTNCLICK {
     NMHDR hdr;
@@ -776,11 +723,7 @@
 #define TOOLBARCLASSNAMEW L"ToolbarWindow32"
 #define TOOLBARCLASSNAMEA "ToolbarWindow32"
 
-#ifdef UNICODE
-#define TOOLBARCLASSNAME TOOLBARCLASSNAMEW
-#else
-#define TOOLBARCLASSNAME TOOLBARCLASSNAMEA
-#endif
+#define TOOLBARCLASSNAME __MINGW_NAME_AW(TOOLBARCLASSNAME)
 
   typedef struct _TBBUTTON {
     int iBitmap;
@@ -957,13 +900,8 @@
     LPCWSTR pszValueName;
   } TBSAVEPARAMSW,*LPTBSAVEPARAMW;
 
-#ifdef UNICODE
-#define TBSAVEPARAMS TBSAVEPARAMSW
-#define LPTBSAVEPARAMS LPTBSAVEPARAMSW
-#else
-#define TBSAVEPARAMS TBSAVEPARAMSA
-#define LPTBSAVEPARAMS LPTBSAVEPARAMSA
-#endif
+#define TBSAVEPARAMS __MINGW_NAME_AW(TBSAVEPARAMS)
+#define LPTBSAVEPARAMS __MINGW_NAME_AW(LPTBSAVEPARAMS)
 
 #define TB_SAVERESTOREA (WM_USER+26)
 #define TB_SAVERESTOREW (WM_USER+76)
@@ -1002,15 +940,10 @@
 #define TB_SETMAXTEXTROWS (WM_USER+60)
 #define TB_GETTEXTROWS (WM_USER+61)
 
-#ifdef UNICODE
-#define TB_GETBUTTONTEXT TB_GETBUTTONTEXTW
-#define TB_SAVERESTORE TB_SAVERESTOREW
-#define TB_ADDSTRING TB_ADDSTRINGW
-#else
-#define TB_GETBUTTONTEXT TB_GETBUTTONTEXTA
-#define TB_SAVERESTORE TB_SAVERESTOREA
-#define TB_ADDSTRING TB_ADDSTRINGA
-#endif
+#define TB_GETBUTTONTEXT __MINGW_NAME_AW(TB_GETBUTTONTEXT)
+#define TB_SAVERESTORE __MINGW_NAME_AW(TB_SAVERESTORE)
+#define TB_ADDSTRING __MINGW_NAME_AW(TB_ADDSTRING)
+
 #define TB_GETOBJECT (WM_USER+62)
 #define TB_GETHOTITEM (WM_USER+71)
 #define TB_SETHOTITEM (WM_USER+72)
@@ -1044,11 +977,8 @@
 #define TB_GETUNICODEFORMAT CCM_GETUNICODEFORMAT
 
 #define TB_MAPACCELERATORW (WM_USER+90)
-#ifdef UNICODE
-#define TB_MAPACCELERATOR TB_MAPACCELERATORW
-#else
-#define TB_MAPACCELERATOR TB_MAPACCELERATORA
-#endif
+
+#define TB_MAPACCELERATOR __MINGW_NAME_AW(TB_MAPACCELERATOR)
 
   typedef struct {
     HINSTANCE hInstOld;
@@ -1097,48 +1027,31 @@
     int cchText;
   } TBBUTTONINFOW,*LPTBBUTTONINFOW;
 
-#ifdef UNICODE
-#define TBBUTTONINFO TBBUTTONINFOW
-#define LPTBBUTTONINFO LPTBBUTTONINFOW
-#else
-#define TBBUTTONINFO TBBUTTONINFOA
-#define LPTBBUTTONINFO LPTBBUTTONINFOA
-#endif
+#define TBBUTTONINFO __MINGW_NAME_AW(TBBUTTONINFO)
+#define LPTBBUTTONINFO __MINGW_NAME_AW(LPTBBUTTONINFO)
 
 #define TB_GETBUTTONINFOW (WM_USER+63)
 #define TB_SETBUTTONINFOW (WM_USER+64)
 #define TB_GETBUTTONINFOA (WM_USER+65)
 #define TB_SETBUTTONINFOA (WM_USER+66)
-#ifdef UNICODE
-#define TB_GETBUTTONINFO TB_GETBUTTONINFOW
-#define TB_SETBUTTONINFO TB_SETBUTTONINFOW
-#else
-#define TB_GETBUTTONINFO TB_GETBUTTONINFOA
-#define TB_SETBUTTONINFO TB_SETBUTTONINFOA
-#endif
+
+#define TB_GETBUTTONINFO __MINGW_NAME_AW(TB_GETBUTTONINFO)
+#define TB_SETBUTTONINFO __MINGW_NAME_AW(TB_SETBUTTONINFO)
 
 #define TB_INSERTBUTTONW (WM_USER+67)
 #define TB_ADDBUTTONSW (WM_USER+68)
 
 #define TB_HITTEST (WM_USER+69)
 
-#ifdef UNICODE
-#define TB_INSERTBUTTON TB_INSERTBUTTONW
-#define TB_ADDBUTTONS TB_ADDBUTTONSW
-#else
-#define TB_INSERTBUTTON TB_INSERTBUTTONA
-#define TB_ADDBUTTONS TB_ADDBUTTONSA
-#endif
+#define TB_INSERTBUTTON __MINGW_NAME_AW(TB_INSERTBUTTON)
+#define TB_ADDBUTTONS __MINGW_NAME_AW(TB_ADDBUTTONS)
 
 #define TB_SETDRAWTEXTFLAGS (WM_USER+70)
 
 #define TB_GETSTRINGW (WM_USER+91)
 #define TB_GETSTRINGA (WM_USER+92)
-#ifdef UNICODE
-#define TB_GETSTRING TB_GETSTRINGW
-#else
-#define TB_GETSTRING TB_GETSTRINGA
-#endif
+
+#define TB_GETSTRING __MINGW_NAME_AW(TB_GETSTRING)
 
 #define TB_SETHOTITEM2 (WM_USER+94)
 #define TB_SETLISTGAP (WM_USER+96)
@@ -1251,15 +1164,9 @@
     LPARAM lParam;
   } NMTBGETINFOTIPW,*LPNMTBGETINFOTIPW;
 
-#ifdef UNICODE
-#define TBN_GETINFOTIP TBN_GETINFOTIPW
-#define NMTBGETINFOTIP NMTBGETINFOTIPW
-#define LPNMTBGETINFOTIP LPNMTBGETINFOTIPW
-#else
-#define TBN_GETINFOTIP TBN_GETINFOTIPA
-#define NMTBGETINFOTIP NMTBGETINFOTIPA
-#define LPNMTBGETINFOTIP LPNMTBGETINFOTIPA
-#endif
+#define TBN_GETINFOTIP __MINGW_NAME_AW(TBN_GETINFOTIP)
+#define NMTBGETINFOTIP __MINGW_NAME_AW(NMTBGETINFOTIP)
+#define LPNMTBGETINFOTIP __MINGW_NAME_AW(LPNMTBGETINFOTIP)
 
 #define TBNF_IMAGE 0x1
 #define TBNF_TEXT 0x2
@@ -1285,25 +1192,15 @@
     int cchText;
   } NMTBDISPINFOW,*LPNMTBDISPINFOW;
 
-#ifdef UNICODE
-#define TBN_GETDISPINFO TBN_GETDISPINFOW
-#define NMTBDISPINFO NMTBDISPINFOW
-#define LPNMTBDISPINFO LPNMTBDISPINFOW
-#else
-#define TBN_GETDISPINFO TBN_GETDISPINFOA
-#define NMTBDISPINFO NMTBDISPINFOA
-#define LPNMTBDISPINFO LPNMTBDISPINFOA
-#endif
+#define TBN_GETDISPINFO __MINGW_NAME_AW(TBN_GETDISPINFO)
+#define NMTBDISPINFO __MINGW_NAME_AW(NMTBDISPINFO)
+#define LPNMTBDISPINFO __MINGW_NAME_AW(LPNMTBDISPINFO)
 
 #define TBDDRET_DEFAULT 0
 #define TBDDRET_NODEFAULT 1
 #define TBDDRET_TREATPRESSED 2
 
-#ifdef UNICODE
-#define TBN_GETBUTTONINFO TBN_GETBUTTONINFOW
-#else
-#define TBN_GETBUTTONINFO TBN_GETBUTTONINFOA
-#endif
+#define TBN_GETBUTTONINFO __MINGW_NAME_AW(TBN_GETBUTTONINFO)
 
 #define TBNOTIFYA NMTOOLBARA
 #define TBNOTIFYW NMTOOLBARW
@@ -1331,13 +1228,9 @@
     RECT rcButton;
   } NMTOOLBARW,*LPNMTOOLBARW;
 
-#ifdef UNICODE
-#define NMTOOLBAR NMTOOLBARW
-#define LPNMTOOLBAR LPNMTOOLBARW
-#else
-#define NMTOOLBAR NMTOOLBARA
-#define LPNMTOOLBAR LPNMTOOLBARA
-#endif
+#define NMTOOLBAR __MINGW_NAME_AW(NMTOOLBAR)
+#define LPNMTOOLBAR __MINGW_NAME_AW(LPNMTOOLBAR)
+
 #endif
 
 #ifndef NOREBAR
@@ -1345,11 +1238,7 @@
 #define REBARCLASSNAMEW L"ReBarWindow32"
 #define REBARCLASSNAMEA "ReBarWindow32"
 
-#ifdef UNICODE
-#define REBARCLASSNAME REBARCLASSNAMEW
-#else
-#define REBARCLASSNAME REBARCLASSNAMEA
-#endif
+#define REBARCLASSNAME __MINGW_NAME_AW(REBARCLASSNAME)
 
 #define RBIM_IMAGELIST 0x1
 
@@ -1449,19 +1338,14 @@
     LPARAM lParam;
     UINT cxHeader;
   } REBARBANDINFOW,*LPREBARBANDINFOW;
+
   typedef REBARBANDINFOW CONST *LPCREBARBANDINFOW;
 
-#ifdef UNICODE
-#define REBARBANDINFO REBARBANDINFOW
-#define LPREBARBANDINFO LPREBARBANDINFOW
-#define LPCREBARBANDINFO LPCREBARBANDINFOW
-#define REBARBANDINFO_V3_SIZE REBARBANDINFOW_V3_SIZE
-#else
-#define REBARBANDINFO REBARBANDINFOA
-#define LPREBARBANDINFO LPREBARBANDINFOA
-#define LPCREBARBANDINFO LPCREBARBANDINFOA
-#define REBARBANDINFO_V3_SIZE REBARBANDINFOA_V3_SIZE
-#endif
+#define REBARBANDINFO __MINGW_NAME_AW(REBARBANDINFO)
+#define LPREBARBANDINFO __MINGW_NAME_AW(LPREBARBANDINFO)
+#define LPCREBARBANDINFO __MINGW_NAME_AW(LPCREBARBANDINFO)
+
+#define REBARBANDINFO_V3_SIZE __MINGW_NAME_AW_EXT(REBARBANDINFO,_V3_SIZE)
 
 #define RB_INSERTBANDA (WM_USER+1)
 #define RB_DELETEBAND (WM_USER+2)
@@ -1490,13 +1374,8 @@
 #define RB_SETCOLORSCHEME CCM_SETCOLORSCHEME
 #define RB_GETCOLORSCHEME CCM_GETCOLORSCHEME
 
-#ifdef UNICODE
-#define RB_INSERTBAND RB_INSERTBANDW
-#define RB_SETBANDINFO RB_SETBANDINFOW
-#else
-#define RB_INSERTBAND RB_INSERTBANDA
-#define RB_SETBANDINFO RB_SETBANDINFOA
-#endif
+#define RB_INSERTBAND __MINGW_NAME_AW(RB_INSERTBAND)
+#define RB_SETBANDINFO __MINGW_NAME_AW(RB_SETBANDINFO)
 
 #define RB_BEGINDRAG (WM_USER+24)
 #define RB_ENDDRAG (WM_USER+25)
@@ -1505,11 +1384,7 @@
 #define RB_GETBANDINFOW (WM_USER+28)
 #define RB_GETBANDINFOA (WM_USER+29)
 
-#ifdef UNICODE
-#define RB_GETBANDINFO RB_GETBANDINFOW
-#else
-#define RB_GETBANDINFO RB_GETBANDINFOA
-#endif
+#define RB_GETBANDINFO __MINGW_NAME_AW(RB_GETBANDINFO)
 
 #define RB_MINIMIZEBAND (WM_USER+30)
 #define RB_MAXIMIZEBAND (WM_USER+31)
@@ -1605,11 +1480,8 @@
 
 #define TOOLTIPS_CLASSW L"tooltips_class32"
 #define TOOLTIPS_CLASSA "tooltips_class32"
-#ifdef UNICODE
-#define TOOLTIPS_CLASS TOOLTIPS_CLASSW
-#else
-#define TOOLTIPS_CLASS TOOLTIPS_CLASSA
-#endif
+
+#define TOOLTIPS_CLASS __MINGW_NAME_AW(TOOLTIPS_CLASS)
 
 #define LPTOOLINFOA LPTTTOOLINFOA
 #define LPTOOLINFOW LPTTTOOLINFOW
@@ -1650,17 +1522,11 @@
     void *lpReserved;
   } TTTOOLINFOW,NEAR *PTOOLINFOW,*LPTTTOOLINFOW;
 
-#ifdef UNICODE
-#define TTTOOLINFO TTTOOLINFOW
-#define PTOOLINFO PTOOLINFOW
-#define LPTTTOOLINFO LPTTTOOLINFOW
-#define TTTOOLINFO_V1_SIZE TTTOOLINFOW_V1_SIZE
-#else
-#define PTOOLINFO PTOOLINFOA
-#define TTTOOLINFO TTTOOLINFOA
-#define LPTTTOOLINFO LPTTTOOLINFOA
-#define TTTOOLINFO_V1_SIZE TTTOOLINFOA_V1_SIZE
-#endif
+#define TTTOOLINFO __MINGW_NAME_AW(TTTOOLINFO)
+#define PTOOLINFO __MINGW_NAME_AW(PTOOLINFO)
+#define LPTTTOOLINFO __MINGW_NAME_AW(LPTTTOOLINFO)
+
+#define TTTOOLINFO_V1_SIZE __MINGW_NAME_AW_EXT(TTTOOLINFO,_V1_SIZE)
 
 #define TTS_ALWAYSTIP 0x1
 #define TTS_NOPREFIX 0x2
@@ -1744,31 +1610,18 @@
     WCHAR *pszTitle;
   } TTGETTITLE,*PTTGETTITLE;
 
-#ifdef UNICODE
-#define TTM_ADDTOOL TTM_ADDTOOLW
-#define TTM_DELTOOL TTM_DELTOOLW
-#define TTM_NEWTOOLRECT TTM_NEWTOOLRECTW
-#define TTM_GETTOOLINFO TTM_GETTOOLINFOW
-#define TTM_SETTOOLINFO TTM_SETTOOLINFOW
-#define TTM_HITTEST TTM_HITTESTW
-#define TTM_GETTEXT TTM_GETTEXTW
-#define TTM_UPDATETIPTEXT TTM_UPDATETIPTEXTW
-#define TTM_ENUMTOOLS TTM_ENUMTOOLSW
-#define TTM_GETCURRENTTOOL TTM_GETCURRENTTOOLW
-#define TTM_SETTITLE TTM_SETTITLEW
-#else
-#define TTM_ADDTOOL TTM_ADDTOOLA
-#define TTM_DELTOOL TTM_DELTOOLA
-#define TTM_NEWTOOLRECT TTM_NEWTOOLRECTA
-#define TTM_GETTOOLINFO TTM_GETTOOLINFOA
-#define TTM_SETTOOLINFO TTM_SETTOOLINFOA
-#define TTM_HITTEST TTM_HITTESTA
-#define TTM_GETTEXT TTM_GETTEXTA
-#define TTM_UPDATETIPTEXT TTM_UPDATETIPTEXTA
-#define TTM_ENUMTOOLS TTM_ENUMTOOLSA
-#define TTM_GETCURRENTTOOL TTM_GETCURRENTTOOLA
-#define TTM_SETTITLE TTM_SETTITLEA
-#endif
+#define TTM_ADDTOOL __MINGW_NAME_AW(TTM_ADDTOOL)
+#define TTM_DELTOOL __MINGW_NAME_AW(TTM_DELTOOL)
+#define TTM_NEWTOOLRECT __MINGW_NAME_AW(TTM_NEWTOOLRECT)
+#define TTM_GETTOOLINFO __MINGW_NAME_AW(TTM_GETTOOLINFO)
+#define TTM_SETTOOLINFO __MINGW_NAME_AW(TTM_SETTOOLINFO)
+#define TTM_HITTEST __MINGW_NAME_AW(TTM_HITTEST)
+#define TTM_GETTEXT __MINGW_NAME_AW(TTM_GETTEXT)
+#define TTM_UPDATETIPTEXT __MINGW_NAME_AW(TTM_UPDATETIPTEXT)
+#define TTM_ENUMTOOLS __MINGW_NAME_AW(TTM_ENUMTOOLS)
+#define TTM_GETCURRENTTOOL __MINGW_NAME_AW(TTM_GETCURRENTTOOL)
+#define TTM_SETTITLE __MINGW_NAME_AW(TTM_SETTITLE)
+
 #define TTM_SETWINDOWTHEME CCM_SETWINDOWTHEME
 
 #define LPHITTESTINFOW LPTTHITTESTINFOW
@@ -1787,13 +1640,8 @@
     TTTOOLINFOW ti;
   } TTHITTESTINFOW,*LPTTHITTESTINFOW;
 
-#ifdef UNICODE
-#define TTHITTESTINFO TTHITTESTINFOW
-#define LPTTHITTESTINFO LPTTHITTESTINFOW
-#else
-#define TTHITTESTINFO TTHITTESTINFOA
-#define LPTTHITTESTINFO LPTTHITTESTINFOA
-#endif
+#define TTHITTESTINFO __MINGW_NAME_AW(TTHITTESTINFO)
+#define LPTTHITTESTINFO __MINGW_NAME_AW(LPTTHITTESTINFO)
 
 #define TTN_GETDISPINFOA (TTN_FIRST - 0)
 #define TTN_GETDISPINFOW (TTN_FIRST - 10)
@@ -1801,11 +1649,7 @@
 #define TTN_POP (TTN_FIRST - 2)
 #define TTN_LINKCLICK (TTN_FIRST - 3)
 
-#ifdef UNICODE
-#define TTN_GETDISPINFO TTN_GETDISPINFOW
-#else
-#define TTN_GETDISPINFO TTN_GETDISPINFOA
-#endif
+#define TTN_GETDISPINFO __MINGW_NAME_AW(TTN_GETDISPINFO)
 
 #define TTN_NEEDTEXT TTN_GETDISPINFO
 #define TTN_NEEDTEXTA TTN_GETDISPINFOA
@@ -1840,15 +1684,11 @@
     LPARAM lParam;
   } NMTTDISPINFOW,*LPNMTTDISPINFOW;
 
-#ifdef UNICODE
-#define NMTTDISPINFO NMTTDISPINFOW
-#define LPNMTTDISPINFO LPNMTTDISPINFOW
-#define NMTTDISPINFO_V1_SIZE NMTTDISPINFOW_V1_SIZE
-#else
-#define NMTTDISPINFO NMTTDISPINFOA
-#define LPNMTTDISPINFO LPNMTTDISPINFOA
-#define NMTTDISPINFO_V1_SIZE NMTTDISPINFOA_V1_SIZE
-#endif
+
+#define NMTTDISPINFO __MINGW_NAME_AW(NMTTDISPINFO)
+#define LPNMTTDISPINFO __MINGW_NAME_AW(LPNMTTDISPINFO)
+
+#define NMTTDISPINFO_V1_SIZE __MINGW_NAME_AW_EXT(NMTTDISPINFO,_V1_SIZE)
 #endif
 
 #ifndef NOSTATUSBAR
@@ -1863,21 +1703,13 @@
   WINCOMMCTRLAPI HWND WINAPI CreateStatusWindowA(LONG style,LPCSTR lpszText,HWND hwndParent,UINT wID);
   WINCOMMCTRLAPI HWND WINAPI CreateStatusWindowW(LONG style,LPCWSTR lpszText,HWND hwndParent,UINT wID);
 
-#ifdef UNICODE
-#define CreateStatusWindow CreateStatusWindowW
-#define DrawStatusText DrawStatusTextW
-#else
-#define CreateStatusWindow CreateStatusWindowA
-#define DrawStatusText DrawStatusTextA
-#endif
+#define CreateStatusWindow __MINGW_NAME_AW(CreateStatusWindow)
+#define DrawStatusText __MINGW_NAME_AW(DrawStatusText)
 
 #define STATUSCLASSNAMEW L"msctls_statusbar32"
 #define STATUSCLASSNAMEA "msctls_statusbar32"
-#ifdef UNICODE
-#define STATUSCLASSNAME STATUSCLASSNAMEW
-#else
-#define STATUSCLASSNAME STATUSCLASSNAMEA
-#endif
+
+#define STATUSCLASSNAME __MINGW_NAME_AW(STATUSCLASSNAME)
 
 #define SB_SETTEXTA (WM_USER+1)
 #define SB_SETTEXTW (WM_USER+11)
@@ -1886,19 +1718,11 @@
 #define SB_GETTEXTLENGTHA (WM_USER+3)
 #define SB_GETTEXTLENGTHW (WM_USER+12)
 
-#ifdef UNICODE
-#define SB_GETTEXT SB_GETTEXTW
-#define SB_SETTEXT SB_SETTEXTW
-#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHW
-#define SB_SETTIPTEXT SB_SETTIPTEXTW
-#define SB_GETTIPTEXT SB_GETTIPTEXTW
-#else
-#define SB_GETTEXT SB_GETTEXTA
-#define SB_SETTEXT SB_SETTEXTA
-#define SB_GETTEXTLENGTH SB_GETTEXTLENGTHA
-#define SB_SETTIPTEXT SB_SETTIPTEXTA
-#define SB_GETTIPTEXT SB_GETTIPTEXTA
-#endif
+#define SB_GETTEXT __MINGW_NAME_AW(SB_GETTEXT)
+#define SB_SETTEXT __MINGW_NAME_AW(SB_SETTEXT)
+#define SB_GETTEXTLENGTH __MINGW_NAME_AW(SB_GETTEXTLENGTH)
+#define SB_SETTIPTEXT __MINGW_NAME_AW(SB_SETTIPTEXT)
+#define SB_GETTIPTEXT __MINGW_NAME_AW(SB_GETTIPTEXT)
 
 #define SB_SETPARTS (WM_USER+4)
 #define SB_GETPARTS (WM_USER+6)
@@ -1942,11 +1766,8 @@
 
 #define TRACKBAR_CLASSA "msctls_trackbar32"
 #define TRACKBAR_CLASSW L"msctls_trackbar32"
-#ifdef UNICODE
-#define TRACKBAR_CLASS TRACKBAR_CLASSW
-#else
-#define TRACKBAR_CLASS TRACKBAR_CLASSA
-#endif
+
+#define TRACKBAR_CLASS __MINGW_NAME_AW(TRACKBAR_CLASS)
 
 #define TBS_AUTOTICKS 0x1
 #define TBS_VERT 0x2
@@ -2051,11 +1872,8 @@
 
 #define UPDOWN_CLASSA "msctls_updown32"
 #define UPDOWN_CLASSW L"msctls_updown32"
-#ifdef UNICODE
-#define UPDOWN_CLASS UPDOWN_CLASSW
-#else
-#define UPDOWN_CLASS UPDOWN_CLASSA
-#endif
+
+#define UPDOWN_CLASS __MINGW_NAME_AW(UPDOWN_CLASS)
 
   typedef struct _UDACCEL {
     UINT nSec;
@@ -2110,11 +1928,8 @@
 
 #define PROGRESS_CLASSA "msctls_progress32"
 #define PROGRESS_CLASSW L"msctls_progress32"
-#ifdef UNICODE
-#define PROGRESS_CLASS PROGRESS_CLASSW
-#else
-#define PROGRESS_CLASS PROGRESS_CLASSA
-#endif
+
+#define PROGRESS_CLASS __MINGW_NAME_AW(PROGRESS_CLASS)
 
 #define PBS_SMOOTH 0x1
 #define PBS_VERTICAL 0x4
@@ -2173,11 +1988,8 @@
 
 #define HOTKEY_CLASSA "msctls_hotkey32"
 #define HOTKEY_CLASSW L"msctls_hotkey32"
-#ifdef UNICODE
-#define HOTKEY_CLASS HOTKEY_CLASSW
-#else
-#define HOTKEY_CLASS HOTKEY_CLASSA
-#endif
+
+#define HOTKEY_CLASS __MINGW_NAME_AW(HOTKEY_CLASS)
 #endif
 
 #define CCS_TOP 0x1L
@@ -2196,11 +2008,8 @@
 
 #define WC_LISTVIEWA "SysListView32"
 #define WC_LISTVIEWW L"SysListView32"
-#ifdef UNICODE
-#define WC_LISTVIEW WC_LISTVIEWW
-#else
-#define WC_LISTVIEW WC_LISTVIEWA
-#endif
+
+#define WC_LISTVIEW __MINGW_NAME_AW(WC_LISTVIEW)
 
 #define LVS_ICON 0x0
 #define LVS_REPORT 0x1
@@ -2239,9 +2048,9 @@
 #define LVM_GETIMAGELIST (LVM_FIRST+2)
 #define ListView_GetImageList(hwnd,iImageList) (HIMAGELIST)SNDMSG((hwnd),LVM_GETIMAGELIST,(WPARAM)(INT)(iImageList),0L)
 
-#define LVSIL_NORMAL 0
-#define LVSIL_SMALL 1
-#define LVSIL_STATE 2
+#define LVSIL_NORMAL            0
+#define LVSIL_SMALL             1
+#define LVSIL_STATE             2
 #define LVSIL_GROUPHEADER       3
 
 #define LVM_SETIMAGELIST (LVM_FIRST+3)
@@ -2316,23 +2125,15 @@
     PUINT puColumns;
   } LVITEMW,*LPLVITEMW;
 
-#ifdef UNICODE
-#define LVITEM LVITEMW
-#define LPLVITEM LPLVITEMW
-#define LVITEM_V1_SIZE LVITEMW_V1_SIZE
-#else
-#define LVITEM LVITEMA
-#define LPLVITEM LPLVITEMA
-#define LVITEM_V1_SIZE LVITEMA_V1_SIZE
-#endif
+#define LVITEM __MINGW_NAME_AW(LVITEM)
+#define LPLVITEM __MINGW_NAME_AW(LPLVITEM)
+
+#define LVITEM_V1_SIZE __MINGW_NAME_AW_EXT(LVITEM,_V1_SIZE)
 
 #define LPSTR_TEXTCALLBACKW ((LPWSTR)-1L)
 #define LPSTR_TEXTCALLBACKA ((LPSTR)-1L)
-#ifdef UNICODE
-#define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKW
-#else
-#define LPSTR_TEXTCALLBACK LPSTR_TEXTCALLBACKA
-#endif
+
+#define LPSTR_TEXTCALLBACK __MINGW_NAME_AW(LPSTR_TEXTCALLBACK)
 
 #define I_IMAGECALLBACK (-1)
 #define I_IMAGENONE (-2)
@@ -2340,31 +2141,23 @@
 
 #define LVM_GETITEMA (LVM_FIRST+5)
 #define LVM_GETITEMW (LVM_FIRST+75)
-#ifdef UNICODE
-#define LVM_GETITEM LVM_GETITEMW
-#else
-#define LVM_GETITEM LVM_GETITEMA
-#endif
+
+#define LVM_GETITEM __MINGW_NAME_AW(LVM_GETITEM)
 
 #define ListView_GetItem(hwnd,pitem) (WINBOOL)SNDMSG((hwnd),LVM_GETITEM,0,(LPARAM)(LV_ITEM *)(pitem))
 
 #define LVM_SETITEMA (LVM_FIRST+6)
 #define LVM_SETITEMW (LVM_FIRST+76)
-#ifdef UNICODE
-#define LVM_SETITEM LVM_SETITEMW
-#else
-#define LVM_SETITEM LVM_SETITEMA
-#endif
+
+#define LVM_SETITEM __MINGW_NAME_AW(LVM_SETITEM)
 
 #define ListView_SetItem(hwnd,pitem) (WINBOOL)SNDMSG((hwnd),LVM_SETITEM,0,(LPARAM)(const LV_ITEM *)(pitem))
 
 #define LVM_INSERTITEMA (LVM_FIRST+7)
 #define LVM_INSERTITEMW (LVM_FIRST+77)
-#ifdef UNICODE
-#define LVM_INSERTITEM LVM_INSERTITEMW
-#else
-#define LVM_INSERTITEM LVM_INSERTITEMA
-#endif
+
+#define LVM_INSERTITEM __MINGW_NAME_AW(LVM_INSERTITEM)
+
 #define ListView_InsertItem(hwnd,pitem) (int)SNDMSG((hwnd),LVM_INSERTITEM,0,(LPARAM)(const LV_ITEM *)(pitem))
 
 #define LVM_DELETEITEM (LVM_FIRST+8)
@@ -2393,12 +2186,12 @@
 #define LVM_GETNEXTITEM (LVM_FIRST+12)
 #define ListView_GetNextItem(hwnd,i,flags) (int)SNDMSG((hwnd),LVM_GETNEXTITEM,(WPARAM)(int)(i),MAKELPARAM((flags),0))
 
-#define LVFI_PARAM 0x1
-#define LVFI_STRING 0x2
-#define LVFI_SUBSTRING 0x4
-#define LVFI_PARTIAL 0x8
-#define LVFI_WRAP 0x20
-#define LVFI_NEARESTXY 0x40
+#define LVFI_PARAM              0x0001
+#define LVFI_STRING             0x0002
+#define LVFI_SUBSTRING          0x0004
+#define LVFI_PARTIAL            0x0008
+#define LVFI_WRAP               0x0020
+#define LVFI_NEARESTXY          0x0040
 
 #define LV_FINDINFOA LVFINDINFOA
 #define LV_FINDINFOW LVFINDINFOW
@@ -2420,19 +2213,12 @@
     UINT vkDirection;
   } LVFINDINFOW,*LPFINDINFOW;
 
-#ifdef UNICODE
-#define LVFINDINFO LVFINDINFOW
-#else
-#define LVFINDINFO LVFINDINFOA
-#endif
+#define LVFINDINFO __MINGW_NAME_AW(LVFINDINFO)
 
 #define LVM_FINDITEMA (LVM_FIRST+13)
 #define LVM_FINDITEMW (LVM_FIRST+83)
-#ifdef UNICODE
-#define LVM_FINDITEM LVM_FINDITEMW
-#else
-#define LVM_FINDITEM LVM_FINDITEMA
-#endif
+
+#define LVM_FINDITEM __MINGW_NAME_AW(LVM_FINDITEM)
 
 #define ListView_FindItem(hwnd,iStart,plvfi) (int)SNDMSG((hwnd),LVM_FINDITEM,(WPARAM)(int)(iStart),(LPARAM)(const LV_FINDINFO *)(plvfi))
 
@@ -2452,11 +2238,8 @@
 
 #define LVM_GETSTRINGWIDTHA (LVM_FIRST+17)
 #define LVM_GETSTRINGWIDTHW (LVM_FIRST+87)
-#ifdef UNICODE
-#define LVM_GETSTRINGWIDTH LVM_GETSTRINGWIDTHW
-#else
-#define LVM_GETSTRINGWIDTH LVM_GETSTRINGWIDTHA
-#endif
+
+#define LVM_GETSTRINGWIDTH __MINGW_NAME_AW(LVM_GETSTRINGWIDTH)
 
 #define ListView_GetStringWidth(hwndLV,psz) (int)SNDMSG((hwndLV),LVM_GETSTRINGWIDTH,0,(LPARAM)(LPCTSTR)(psz))
 
@@ -2504,11 +2287,8 @@
 
 #define LVM_EDITLABELA (LVM_FIRST+23)
 #define LVM_EDITLABELW (LVM_FIRST+118)
-#ifdef UNICODE
-#define LVM_EDITLABEL LVM_EDITLABELW
-#else
-#define LVM_EDITLABEL LVM_EDITLABELA
-#endif
+
+#define LVM_EDITLABEL __MINGW_NAME_AW(LVM_EDITLABEL)
 
 #define ListView_EditLabel(hwndLV,i) (HWND)SNDMSG((hwndLV),LVM_EDITLABEL,(WPARAM)(int)(i),0L)
 
@@ -2533,33 +2313,28 @@
     int iOrder;
   } LVCOLUMNA,*LPLVCOLUMNA;
 
- typedef struct tagLVCOLUMNW {
-   UINT mask;
-   int fmt;
-   int cx;
-   LPWSTR pszText;
-   int cchTextMax;
-   int iSubItem;
-  #if (_WIN32_IE >= 0x0300)
-   int iImage;
-   int iOrder;
-  #endif
-  #if (_WIN32_WINNT >= 0x0600)
-   int cxMin;
-   int cxDefault;
-   int cxIdeal;
-  #endif
+  typedef struct tagLVCOLUMNW {
+    UINT mask;
+    int fmt;
+    int cx;
+    LPWSTR pszText;
+    int cchTextMax;
+    int iSubItem;
+# if (_WIN32_IE >= 0x0300)
+    int iImage;
+    int iOrder;
+# endif
+# if (_WIN32_WINNT >= 0x0600)
+    int cxMin;
+    int cxDefault;
+    int cxIdeal;
+# endif
   } LVCOLUMNW,*LPLVCOLUMNW;
 
-#ifdef UNICODE
-#define LVCOLUMN LVCOLUMNW
-#define LPLVCOLUMN LPLVCOLUMNW
-#define LVCOLUMN_V1_SIZE LVCOLUMNW_V1_SIZE
-#else
-#define LVCOLUMN LVCOLUMNA
-#define LPLVCOLUMN LPLVCOLUMNA
-#define LVCOLUMN_V1_SIZE LVCOLUMNA_V1_SIZE
-#endif
+#define LVCOLUMN __MINGW_NAME_AW(LVCOLUMN)
+#define LPLVCOLUMN __MINGW_NAME_AW(LPLVCOLUMN)
+
+#define LVCOLUMN_V1_SIZE __MINGW_NAME_AW_EXT(LVCOLUMN,_V1_SIZE)
 
 #define LVCF_FMT 0x1
 #define LVCF_WIDTH 0x2
@@ -2594,31 +2369,22 @@
 
 #define LVM_GETCOLUMNA (LVM_FIRST+25)
 #define LVM_GETCOLUMNW (LVM_FIRST+95)
-#ifdef UNICODE
-#define LVM_GETCOLUMN LVM_GETCOLUMNW
-#else
-#define LVM_GETCOLUMN LVM_GETCOLUMNA
-#endif
+
+#define LVM_GETCOLUMN __MINGW_NAME_AW(LVM_GETCOLUMN)
 
 #define ListView_GetColumn(hwnd,iCol,pcol) (WINBOOL)SNDMSG((hwnd),LVM_GETCOLUMN,(WPARAM)(int)(iCol),(LPARAM)(LV_COLUMN *)(pcol))
 
 #define LVM_SETCOLUMNA (LVM_FIRST+26)
 #define LVM_SETCOLUMNW (LVM_FIRST+96)
-#ifdef UNICODE
-#define LVM_SETCOLUMN LVM_SETCOLUMNW
-#else
-#define LVM_SETCOLUMN LVM_SETCOLUMNA
-#endif
+
+#define LVM_SETCOLUMN __MINGW_NAME_AW(LVM_SETCOLUMN)
 
 #define ListView_SetColumn(hwnd,iCol,pcol) (WINBOOL)SNDMSG((hwnd),LVM_SETCOLUMN,(WPARAM)(int)(iCol),(LPARAM)(const LV_COLUMN *)(pcol))
 
 #define LVM_INSERTCOLUMNA (LVM_FIRST+27)
 #define LVM_INSERTCOLUMNW (LVM_FIRST+97)
-#ifdef UNICODE
-#define LVM_INSERTCOLUMN LVM_INSERTCOLUMNW
-#else
-#define LVM_INSERTCOLUMN LVM_INSERTCOLUMNA
-#endif
+
+#define LVM_INSERTCOLUMN __MINGW_NAME_AW(LVM_INSERTCOLUMN)
 
 #define ListView_InsertColumn(hwnd,iCol,pcol) (int)SNDMSG((hwnd),LVM_INSERTCOLUMN,(WPARAM)(int)(iCol),(LPARAM)(const LV_COLUMN *)(pcol))
 
@@ -2666,22 +2432,14 @@
 #define LVM_GETITEMTEXTA (LVM_FIRST+45)
 #define LVM_GETITEMTEXTW (LVM_FIRST+115)
 
-#ifdef UNICODE
-#define LVM_GETITEMTEXT LVM_GETITEMTEXTW
-#else
-#define LVM_GETITEMTEXT LVM_GETITEMTEXTA
-#endif
+#define LVM_GETITEMTEXT __MINGW_NAME_AW(LVM_GETITEMTEXT)
 
 #define ListView_GetItemText(hwndLV,i,iSubItem_,pszText_,cchTextMax_) { LV_ITEM _ms_lvi; _ms_lvi.iSubItem = iSubItem_; _ms_lvi.cchTextMax = cchTextMax_; _ms_lvi.pszText = pszText_; SNDMSG((hwndLV),LVM_GETITEMTEXT,(WPARAM)(i),(LPARAM)(LV_ITEM *)&_ms_lvi);}
 
 #define LVM_SETITEMTEXTA (LVM_FIRST+46)
 #define LVM_SETITEMTEXTW (LVM_FIRST+116)
 
-#ifdef UNICODE
-#define LVM_SETITEMTEXT LVM_SETITEMTEXTW
-#else
-#define LVM_SETITEMTEXT LVM_SETITEMTEXTA
-#endif
+#define LVM_SETITEMTEXT __MINGW_NAME_AW(LVM_SETITEMTEXT)
 
 #define ListView_SetItemText(hwndLV,i,iSubItem_,pszText_) { LV_ITEM _ms_lvi; _ms_lvi.iSubItem = iSubItem_; _ms_lvi.pszText = pszText_; SNDMSG((hwndLV),LVM_SETITEMTEXT,(WPARAM)(i),(LPARAM)(LV_ITEM *)&_ms_lvi);}
 
@@ -2709,11 +2467,7 @@
 #define LVM_GETISEARCHSTRINGA (LVM_FIRST+52)
 #define LVM_GETISEARCHSTRINGW (LVM_FIRST+117)
 
-#ifdef UNICODE
-#define LVM_GETISEARCHSTRING LVM_GETISEARCHSTRINGW
-#else
-#define LVM_GETISEARCHSTRING LVM_GETISEARCHSTRINGA
-#endif
+#define LVM_GETISEARCHSTRING __MINGW_NAME_AW(LVM_GETISEARCHSTRING)
 
 #define ListView_GetISearchString(hwndLV,lpsz) (WINBOOL)SNDMSG((hwndLV),LVM_GETISEARCHSTRING,0,(LPARAM)(LPTSTR)(lpsz))
 
@@ -3017,17 +2771,10 @@
 #define LVM_ISITEMVISIBLE (LVM_FIRST+182)
 #define ListView_IsItemVisible(hwnd,index) (UINT)SNDMSG((hwnd),LVM_ISITEMVISIBLE,(WPARAM)(index),(LPARAM)0)
 
-#ifdef UNICODE
-#define LVBKIMAGE LVBKIMAGEW
-#define LPLVBKIMAGE LPLVBKIMAGEW
-#define LVM_SETBKIMAGE LVM_SETBKIMAGEW
-#define LVM_GETBKIMAGE LVM_GETBKIMAGEW
-#else
-#define LVBKIMAGE LVBKIMAGEA
-#define LPLVBKIMAGE LPLVBKIMAGEA
-#define LVM_SETBKIMAGE LVM_SETBKIMAGEA
-#define LVM_GETBKIMAGE LVM_GETBKIMAGEA
-#endif
+#define LVBKIMAGE __MINGW_NAME_AW(LVBKIMAGE)
+#define LPLVBKIMAGE __MINGW_NAME_AW(LPLVBKIMAGE)
+#define LVM_SETBKIMAGE __MINGW_NAME_AW(LVM_SETBKIMAGE)
+#define LVM_GETBKIMAGE __MINGW_NAME_AW(LVM_GETBKIMAGE)
 
 #define ListView_SetBkImage(hwnd,plvbki) (WINBOOL)SNDMSG((hwnd),LVM_SETBKIMAGE,0,(LPARAM)(plvbki))
 #define ListView_GetBkImage(hwnd,plvbki) (WINBOOL)SNDMSG((hwnd),LVM_GETBKIMAGE,0,(LPARAM)(plvbki))
@@ -3115,19 +2862,11 @@
 #define LPNM_FINDITEMW LPNMLVFINDITEMW
 #define NM_FINDITEMW NMLVFINDITEMW
 
-#ifdef UNICODE
-#define PNM_FINDITEM PNM_FINDITEMW
-#define LPNM_FINDITEM LPNM_FINDITEMW
-#define NM_FINDITEM NM_FINDITEMW
-#define NMLVFINDITEM NMLVFINDITEMW
-#define LPNMLVFINDITEM LPNMLVFINDITEMW
-#else
-#define PNM_FINDITEM PNM_FINDITEMA
-#define LPNM_FINDITEM LPNM_FINDITEMA
-#define NM_FINDITEM NM_FINDITEMA
-#define NMLVFINDITEM NMLVFINDITEMA
-#define LPNMLVFINDITEM LPNMLVFINDITEMA
-#endif
+#define PNM_FINDITEM __MINGW_NAME_AW(PNM_FINDITEM)
+#define LPNM_FINDITEM __MINGW_NAME_AW(LPNM_FINDITEM)
+#define NM_FINDITEM __MINGW_NAME_AW(NM_FINDITEM)
+#define NMLVFINDITEM __MINGW_NAME_AW(NMLVFINDITEM)
+#define LPNMLVFINDITEM __MINGW_NAME_AW(LPNMLVFINDITEM)
 
   typedef struct tagNMLVODSTATECHANGE {
     NMHDR hdr;
@@ -3161,11 +2900,7 @@
 #define LVN_ITEMACTIVATE (LVN_FIRST-14)
 #define LVN_ODSTATECHANGED (LVN_FIRST-15)
 
-#ifdef UNICODE
-#define LVN_ODFINDITEM LVN_ODFINDITEMW
-#else
-#define LVN_ODFINDITEM LVN_ODFINDITEMA
-#endif
+#define LVN_ODFINDITEM __MINGW_NAME_AW(LVN_ODFINDITEM)
 
 #define LVN_HOTTRACK (LVN_FIRST-21)
 #define LVN_GETDISPINFOA (LVN_FIRST-50)
@@ -3173,17 +2908,10 @@
 #define LVN_SETDISPINFOA (LVN_FIRST-51)
 #define LVN_SETDISPINFOW (LVN_FIRST-78)
 
-#ifdef UNICODE
-#define LVN_BEGINLABELEDIT LVN_BEGINLABELEDITW
-#define LVN_ENDLABELEDIT LVN_ENDLABELEDITW
-#define LVN_GETDISPINFO LVN_GETDISPINFOW
-#define LVN_SETDISPINFO LVN_SETDISPINFOW
-#else
-#define LVN_BEGINLABELEDIT LVN_BEGINLABELEDITA
-#define LVN_ENDLABELEDIT LVN_ENDLABELEDITA
-#define LVN_GETDISPINFO LVN_GETDISPINFOA
-#define LVN_SETDISPINFO LVN_SETDISPINFOA
-#endif
+#define LVN_BEGINLABELEDIT __MINGW_NAME_AW(LVN_BEGINLABELEDIT)
+#define LVN_ENDLABELEDIT __MINGW_NAME_AW(LVN_ENDLABELEDIT)
+#define LVN_GETDISPINFO __MINGW_NAME_AW(LVN_GETDISPINFO)
+#define LVN_SETDISPINFO __MINGW_NAME_AW(LVN_SETDISPINFO)
 
 #define LVIF_DI_SETITEM 0x1000
 
@@ -3201,11 +2929,7 @@
     LVITEMW item;
   } NMLVDISPINFOW,*LPNMLVDISPINFOW;
 
-#ifdef UNICODE
-#define NMLVDISPINFO NMLVDISPINFOW
-#else
-#define NMLVDISPINFO NMLVDISPINFOA
-#endif
+#define NMLVDISPINFO __MINGW_NAME_AW(NMLVDISPINFO)
 
 #define LVN_KEYDOWN (LVN_FIRST-55)
 
@@ -3248,15 +2972,9 @@
 #define LVN_GETINFOTIPA (LVN_FIRST-57)
 #define LVN_GETINFOTIPW (LVN_FIRST-58)
 
-#ifdef UNICODE
-#define LVN_GETINFOTIP LVN_GETINFOTIPW
-#define NMLVGETINFOTIP NMLVGETINFOTIPW
-#define LPNMLVGETINFOTIP LPNMLVGETINFOTIPW
-#else
-#define LVN_GETINFOTIP LVN_GETINFOTIPA
-#define NMLVGETINFOTIP NMLVGETINFOTIPA
-#define LPNMLVGETINFOTIP LPNMLVGETINFOTIPA
-#endif
+#define LVN_GETINFOTIP __MINGW_NAME_AW(LVN_GETINFOTIP)
+#define NMLVGETINFOTIP __MINGW_NAME_AW(NMLVGETINFOTIP)
+#define LPNMLVGETINFOTIP __MINGW_NAME_AW(LPNMLVGETINFOTIP)
 
   typedef struct tagNMLVSCROLL {
     NMHDR hdr;
@@ -3272,11 +2990,8 @@
 
 #define WC_TREEVIEWA "SysTreeView32"
 #define WC_TREEVIEWW L"SysTreeView32"
-#ifdef UNICODE
-#define WC_TREEVIEW WC_TREEVIEWW
-#else
-#define WC_TREEVIEW WC_TREEVIEWA
-#endif
+
+#define WC_TREEVIEW __MINGW_NAME_AW(WC_TREEVIEW)
 
 #define TVS_HASBUTTONS 0x1
 #define TVS_HASLINES 0x2
@@ -3304,10 +3019,13 @@
 #define TVIF_HANDLE 0x10
 #define TVIF_SELECTEDIMAGE 0x20
 #define TVIF_CHILDREN 0x40
+#if(_WIN32_IE >= 0x0400)
 #define TVIF_INTEGRAL 0x80
-#define TVIF_STATEEX  0x100
+#endif
+#if(_WIN32_IE >= 0x0600)
+#define TVIF_STATEEX 0x100
 #define TVIF_EXPANDEDIMAGE 0x200
-#define TVIF_DI_SETITEM	0x1000
+#endif
 #define TVIS_SELECTED 0x2
 #define TVIS_CUT 0x4
 #define TVIS_DROPHILITED 0x8
@@ -3368,37 +3086,33 @@
     int iIntegral;
   } TVITEMEXA,*LPTVITEMEXA;
 
-typedef struct tagTVITEMEXW {
-      UINT mask;
-      HTREEITEM hItem;
-      UINT state;
-      UINT stateMask;
-      LPWSTR pszText;
-      INT cchTextMax;
-      INT iImage;
-      INT iSelectedImage;
-      INT cChildren;
-      LPARAM lParam;
-      INT iIntegral;
-      UINT uStateEx;        /* _WIN32_IE >= 0x600 */
-      HWND hwnd;            /* _WIN32_IE >= 0x600 */
-      INT iExpandedImage;   /* _WIN32_IE >= 0x600 */
-} TVITEMEXW, *LPTVITEMEXW;
-#ifdef UNICODE
-  typedef TVITEMEXW TVITEMEX;
-  typedef LPTVITEMEXW LPTVITEMEX;
-#else
-  typedef TVITEMEXA TVITEMEX;
-  typedef LPTVITEMEXA LPTVITEMEX;
-#endif
-
-#ifdef UNICODE
-#define TVITEM TVITEMW
-#define LPTVITEM LPTVITEMW
-#else
-#define TVITEM TVITEMA
-#define LPTVITEM LPTVITEMA
-#endif
+  typedef struct tagTVITEMEXW {
+    UINT mask;
+    HTREEITEM hItem;
+    UINT state;
+    UINT stateMask;
+    LPWSTR pszText;
+    int cchTextMax;
+    int iImage;
+    int iSelectedImage;
+    int cChildren;
+    LPARAM lParam;
+    int iIntegral;
+#if(_WIN32_IE >= 0x0600)
+    UINT uStateEx;
+    HWND hwnd;
+    int iExpandedImage;
+#endif
+#if(NTDDI_VERSION >= NTDDI_WIN7)
+    int iReserved;
+#endif
+  } TVITEMEXW, *LPTVITEMEXW;
+
+  __MINGW_TYPEDEF_AW(TVITEMEX)
+  __MINGW_TYPEDEF_AW(LPTVITEMEX)
+
+#define TVITEM __MINGW_NAME_AW(TVITEM)
+#define LPTVITEM __MINGW_NAME_AW(LPTVITEM)
 
 #define TVI_ROOT ((HTREEITEM)(ULONG_PTR)-0x10000)
 #define TVI_FIRST ((HTREEITEM)(ULONG_PTR)-0xffff)
@@ -3418,7 +3132,7 @@
   typedef struct tagTVINSERTSTRUCTA {
     HTREEITEM hParent;
     HTREEITEM hInsertAfter;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESS union {
       TVITEMEXA itemex;
       TV_ITEMA item;
     } DUMMYUNIONNAME;
@@ -3427,29 +3141,22 @@
   typedef struct tagTVINSERTSTRUCTW {
     HTREEITEM hParent;
     HTREEITEM hInsertAfter;
-    __MINGW_EXTENSION union {
+    __C89_NAMELESS union {
       TVITEMEXW itemex;
       TV_ITEMW item;
     } DUMMYUNIONNAME;
   } TVINSERTSTRUCTW,*LPTVINSERTSTRUCTW;
 
-#ifdef UNICODE
-#define TVINSERTSTRUCT TVINSERTSTRUCTW
-#define LPTVINSERTSTRUCT LPTVINSERTSTRUCTW
-#define TVINSERTSTRUCT_V1_SIZE TVINSERTSTRUCTW_V1_SIZE
-#else
-#define TVINSERTSTRUCT TVINSERTSTRUCTA
-#define LPTVINSERTSTRUCT LPTVINSERTSTRUCTA
-#define TVINSERTSTRUCT_V1_SIZE TVINSERTSTRUCTA_V1_SIZE
-#endif
+
+#define TVINSERTSTRUCT __MINGW_NAME_AW(TVINSERTSTRUCT)
+#define LPTVINSERTSTRUCT __MINGW_NAME_AW(LPTVINSERTSTRUCT)
+
+#define TVINSERTSTRUCT_V1_SIZE __MINGW_NAME_AW_EXT(TVINSERTSTRUCT,_V1_SIZE)
 
 #define TVM_INSERTITEMA (TV_FIRST+0)
 #define TVM_INSERTITEMW (TV_FIRST+50)
-#ifdef UNICODE
-#define TVM_INSERTITEM TVM_INSERTITEMW
-#else
-#define TVM_INSERTITEM TVM_INSERTITEMA
-#endif
+
+#define TVM_INSERTITEM __MINGW_NAME_AW(TVM_INSERTITEM)
 
 #define TreeView_InsertItem(hwnd,lpis) (HTREEITEM)SNDMSG((hwnd),TVM_INSERTITEM,0,(LPARAM)(LPTV_INSERTSTRUCT)(lpis))
 
@@ -3527,32 +3234,21 @@
 #define TVM_GETITEMA (TV_FIRST+12)
 #define TVM_GETITEMW (TV_FIRST+62)
 
-#ifdef UNICODE
-#define TVM_GETITEM TVM_GETITEMW
-#else
-#define TVM_GETITEM TVM_GETITEMA
-#endif
+#define TVM_GETITEM __MINGW_NAME_AW(TVM_GETITEM)
 
 #define TreeView_GetItem(hwnd,pitem) (WINBOOL)SNDMSG((hwnd),TVM_GETITEM,0,(LPARAM)(TV_ITEM *)(pitem))
 
 #define TVM_SETITEMA (TV_FIRST+13)
 #define TVM_SETITEMW (TV_FIRST+63)
 
-#ifdef UNICODE
-#define TVM_SETITEM TVM_SETITEMW
-#else
-#define TVM_SETITEM TVM_SETITEMA
-#endif
+#define TVM_SETITEM __MINGW_NAME_AW(TVM_SETITEM)
 
 #define TreeView_SetItem(hwnd,pitem) (WINBOOL)SNDMSG((hwnd),TVM_SETITEM,0,(LPARAM)(const TV_ITEM *)(pitem))
 
 #define TVM_EDITLABELA (TV_FIRST+14)
 #define TVM_EDITLABELW (TV_FIRST+65)
-#ifdef UNICODE
-#define TVM_EDITLABEL TVM_EDITLABELW
-#else
-#define TVM_EDITLABEL TVM_EDITLABELA
-#endif
+
+#define TVM_EDITLABEL __MINGW_NAME_AW(TVM_EDITLABEL)
 
 #define TreeView_EditLabel(hwnd,hitem) (HWND)SNDMSG((hwnd),TVM_EDITLABEL,0,(LPARAM)(HTREEITEM)(hitem))
 
@@ -3606,11 +3302,7 @@
 #define TVM_GETISEARCHSTRINGA (TV_FIRST+23)
 #define TVM_GETISEARCHSTRINGW (TV_FIRST+64)
 
-#ifdef UNICODE
-#define TVM_GETISEARCHSTRING TVM_GETISEARCHSTRINGW
-#else
-#define TVM_GETISEARCHSTRING TVM_GETISEARCHSTRINGA
-#endif
+#define TVM_GETISEARCHSTRING __MINGW_NAME_AW(TVM_GETISEARCHSTRING)
 
 #define TVM_SETTOOLTIPS (TV_FIRST+24)
 #define TreeView_SetToolTips(hwnd,hwndTT) (HWND)SNDMSG((hwnd),TVM_SETTOOLTIPS,(WPARAM)(hwndTT),0)
@@ -3696,13 +3388,8 @@
     POINT ptDrag;
   } NMTREEVIEWW,*LPNMTREEVIEWW;
 
-#ifdef UNICODE
-#define NMTREEVIEW NMTREEVIEWW
-#define LPNMTREEVIEW LPNMTREEVIEWW
-#else
-#define NMTREEVIEW NMTREEVIEWA
-#define LPNMTREEVIEW LPNMTREEVIEWA
-#endif
+#define NMTREEVIEW __MINGW_NAME_AW(NMTREEVIEW)
+#define LPNMTREEVIEW __MINGW_NAME_AW(LPNMTREEVIEW)
 
 #define TVN_SELCHANGINGA (TVN_FIRST-1)
 #define TVN_SELCHANGINGW (TVN_FIRST-50)
@@ -3734,13 +3421,8 @@
     TVITEMW item;
   } NMTVDISPINFOW,*LPNMTVDISPINFOW;
 
-#ifdef UNICODE
-#define NMTVDISPINFO NMTVDISPINFOW
-#define LPNMTVDISPINFO LPNMTVDISPINFOW
-#else
-#define NMTVDISPINFO NMTVDISPINFOA
-#define LPNMTVDISPINFO LPNMTVDISPINFOA
-#endif
+#define NMTVDISPINFO __MINGW_NAME_AW(NMTVDISPINFO)
+#define LPNMTVDISPINFO __MINGW_NAME_AW(LPNMTVDISPINFO)
 
 #if (_WIN32_IE >= 0x0600)
 
@@ -3754,13 +3436,8 @@
     TVITEMEXW item;
 } NMTVDISPINFOEXW, *LPNMTVDISPINFOEXW;
 
-#ifdef UNICODE
-#define NMTVDISPINFOEX   NMTVDISPINFOEXW
-#define LPNMTVDISPINFOEX LPNMTVDISPINFOEXW
-#else
-#define NMTVDISPINFOEX   NMTVDISPINFOEXA
-#define LPNMTVDISPINFOEX LPNMTVDISPINFOEXA
-#endif /* UNICODE */
+#define NMTVDISPINFOEX   __MINGW_NAME_AW(NMTVDISPINFOEX)
+#define LPNMTVDISPINFOEX __MINGW_NAME_AW(LPNMTVDISPINFOEX)
 
 #define TV_DISPINFOEXA NMTVDISPINFOEXA
 #define TV_DISPINFOEXW NMTVDISPINFOEXW
@@ -3803,31 +3480,17 @@
 
 #include <poppack.h>
 
-#ifdef UNICODE
-#define TVN_SELCHANGING TVN_SELCHANGINGW
-#define TVN_SELCHANGED TVN_SELCHANGEDW
-#define TVN_GETDISPINFO TVN_GETDISPINFOW
-#define TVN_SETDISPINFO TVN_SETDISPINFOW
-#define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGW
-#define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDW
-#define TVN_BEGINDRAG TVN_BEGINDRAGW
-#define TVN_BEGINRDRAG TVN_BEGINRDRAGW
-#define TVN_DELETEITEM TVN_DELETEITEMW
-#define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITW
-#define TVN_ENDLABELEDIT TVN_ENDLABELEDITW
-#else
-#define TVN_SELCHANGING TVN_SELCHANGINGA
-#define TVN_SELCHANGED TVN_SELCHANGEDA
-#define TVN_GETDISPINFO TVN_GETDISPINFOA
-#define TVN_SETDISPINFO TVN_SETDISPINFOA
-#define TVN_ITEMEXPANDING TVN_ITEMEXPANDINGA
-#define TVN_ITEMEXPANDED TVN_ITEMEXPANDEDA
-#define TVN_BEGINDRAG TVN_BEGINDRAGA
-#define TVN_BEGINRDRAG TVN_BEGINRDRAGA
-#define TVN_DELETEITEM TVN_DELETEITEMA
-#define TVN_BEGINLABELEDIT TVN_BEGINLABELEDITA
-#define TVN_ENDLABELEDIT TVN_ENDLABELEDITA
-#endif
+#define TVN_SELCHANGING __MINGW_NAME_AW(TVN_SELCHANGING)
+#define TVN_SELCHANGED __MINGW_NAME_AW(TVN_SELCHANGED)
+#define TVN_GETDISPINFO __MINGW_NAME_AW(TVN_GETDISPINFO)
+#define TVN_SETDISPINFO __MINGW_NAME_AW(TVN_SETDISPINFO)
+#define TVN_ITEMEXPANDING __MINGW_NAME_AW(TVN_ITEMEXPANDING)
+#define TVN_ITEMEXPANDED __MINGW_NAME_AW(TVN_ITEMEXPANDED)
+#define TVN_BEGINDRAG __MINGW_NAME_AW(TVN_BEGINDRAG)
+#define TVN_BEGINRDRAG __MINGW_NAME_AW(TVN_BEGINRDRAG)
+#define TVN_DELETEITEM __MINGW_NAME_AW(TVN_DELETEITEM)
+#define TVN_BEGINLABELEDIT __MINGW_NAME_AW(TVN_BEGINLABELEDIT)
+#define TVN_ENDLABELEDIT __MINGW_NAME_AW(TVN_ENDLABELEDIT)
 
 #define NMTVCUSTOMDRAW_V3_SIZE CCSIZEOF_STRUCT(NMTVCUSTOMDRAW,clrTextBk)
 
@@ -3854,15 +3517,9 @@
     LPARAM lParam;
   } NMTVGETINFOTIPW,*LPNMTVGETINFOTIPW;
 
-#ifdef UNICODE
-#define TVN_GETINFOTIP TVN_GETINFOTIPW
-#define NMTVGETINFOTIP NMTVGETINFOTIPW
-#define LPNMTVGETINFOTIP LPNMTVGETINFOTIPW
-#else
-#define TVN_GETINFOTIP TVN_GETINFOTIPA
-#define NMTVGETINFOTIP NMTVGETINFOTIPA
-#define LPNMTVGETINFOTIP LPNMTVGETINFOTIPA
-#endif
+#define TVN_GETINFOTIP __MINGW_NAME_AW(TVN_GETINFOTIP)
+#define NMTVGETINFOTIP __MINGW_NAME_AW(NMTVGETINFOTIP)
+#define LPNMTVGETINFOTIP __MINGW_NAME_AW(LPNMTVGETINFOTIP)
 
 #define TVCDRF_NOIMAGES 0x10000
 #endif
@@ -3872,11 +3529,7 @@
 #define WC_COMBOBOXEXW L"ComboBoxEx32"
 #define WC_COMBOBOXEXA "ComboBoxEx32"
 
-#ifdef UNICODE
-#define WC_COMBOBOXEX WC_COMBOBOXEXW
-#else
-#define WC_COMBOBOXEX WC_COMBOBOXEXA
-#endif
+#define WC_COMBOBOXEX __MINGW_NAME_AW(WC_COMBOBOXEX)
 
 #define CBEIF_TEXT 0x1
 #define CBEIF_IMAGE 0x2
@@ -3914,15 +3567,9 @@
   } COMBOBOXEXITEMW,*PCOMBOBOXEXITEMW;
   typedef COMBOBOXEXITEMW CONST *PCCOMBOEXITEMW;
 
-#ifdef UNICODE
-#define COMBOBOXEXITEM COMBOBOXEXITEMW
-#define PCOMBOBOXEXITEM PCOMBOBOXEXITEMW
-#define PCCOMBOBOXEXITEM PCCOMBOBOXEXITEMW
-#else
-#define COMBOBOXEXITEM COMBOBOXEXITEMA
-#define PCOMBOBOXEXITEM PCOMBOBOXEXITEMA
-#define PCCOMBOBOXEXITEM PCCOMBOBOXEXITEMA
-#endif
+#define COMBOBOXEXITEM __MINGW_NAME_AW(COMBOBOXEXITEM)
+#define PCOMBOBOXEXITEM __MINGW_NAME_AW(PCOMBOBOXEXITEM)
+#define PCCOMBOBOXEXITEM __MINGW_NAME_AW(PCCOMBOBOXEXITEM)
 
 #define CBEM_INSERTITEMA (WM_USER+1)
 #define CBEM_SETIMAGELIST (WM_USER+2)
@@ -3943,15 +3590,9 @@
 #define CBEM_SETITEMW (WM_USER+12)
 #define CBEM_GETITEMW (WM_USER+13)
 
-#ifdef UNICODE
-#define CBEM_INSERTITEM CBEM_INSERTITEMW
-#define CBEM_SETITEM CBEM_SETITEMW
-#define CBEM_GETITEM CBEM_GETITEMW
-#else
-#define CBEM_INSERTITEM CBEM_INSERTITEMA
-#define CBEM_SETITEM CBEM_SETITEMA
-#define CBEM_GETITEM CBEM_GETITEMA
-#endif
+#define CBEM_INSERTITEM __MINGW_NAME_AW(CBEM_INSERTITEM)
+#define CBEM_SETITEM __MINGW_NAME_AW(CBEM_SETITEM)
+#define CBEM_GETITEM __MINGW_NAME_AW(CBEM_GETITEM)
 
 #define CBEM_SETWINDOWTHEME CCM_SETWINDOWTHEME
 
@@ -3971,15 +3612,9 @@
     COMBOBOXEXITEMW ceItem;
   } NMCOMBOBOXEXW,*PNMCOMBOBOXEXW;
 
-#ifdef UNICODE
-#define NMCOMBOBOXEX NMCOMBOBOXEXW
-#define PNMCOMBOBOXEX PNMCOMBOBOXEXW
-#define CBEN_GETDISPINFO CBEN_GETDISPINFOW
-#else
-#define NMCOMBOBOXEX NMCOMBOBOXEXA
-#define PNMCOMBOBOXEX PNMCOMBOBOXEXA
-#define CBEN_GETDISPINFO CBEN_GETDISPINFOA
-#endif
+#define NMCOMBOBOXEX __MINGW_NAME_AW(NMCOMBOBOXEX)
+#define PNMCOMBOBOXEX __MINGW_NAME_AW(PNMCOMBOBOXEX)
+#define CBEN_GETDISPINFO __MINGW_NAME_AW(CBEN_GETDISPINFO)
 
 #define CBEN_GETDISPINFOA (CBEN_FIRST - 0)
 #define CBEN_INSERTITEM (CBEN_FIRST - 1)
@@ -3993,17 +3628,9 @@
 #define CBEN_DRAGBEGINA (CBEN_FIRST - 8)
 #define CBEN_DRAGBEGINW (CBEN_FIRST - 9)
 
-#ifdef UNICODE
-#define CBEN_DRAGBEGIN CBEN_DRAGBEGINW
-#else
-#define CBEN_DRAGBEGIN CBEN_DRAGBEGINA
-#endif
-
-#ifdef UNICODE
-#define CBEN_ENDEDIT CBEN_ENDEDITW
-#else
-#define CBEN_ENDEDIT CBEN_ENDEDITA
-#endif
+#define CBEN_DRAGBEGIN __MINGW_NAME_AW(CBEN_DRAGBEGIN)
+
+#define CBEN_ENDEDIT __MINGW_NAME_AW(CBEN_ENDEDIT)
 
 #define CBENF_KILLFOCUS 1
 #define CBENF_RETURN 2
@@ -4024,15 +3651,9 @@
     char szText[CBEMAXSTRLEN];
   }NMCBEDRAGBEGINA,*LPNMCBEDRAGBEGINA,*PNMCBEDRAGBEGINA;
 
-#ifdef UNICODE
-#define NMCBEDRAGBEGIN NMCBEDRAGBEGINW
-#define LPNMCBEDRAGBEGIN LPNMCBEDRAGBEGINW
-#define PNMCBEDRAGBEGIN PNMCBEDRAGBEGINW
-#else
-#define NMCBEDRAGBEGIN NMCBEDRAGBEGINA
-#define LPNMCBEDRAGBEGIN LPNMCBEDRAGBEGINA
-#define PNMCBEDRAGBEGIN PNMCBEDRAGBEGINA
-#endif
+#define NMCBEDRAGBEGIN __MINGW_NAME_AW(NMCBEDRAGBEGIN)
+#define LPNMCBEDRAGBEGIN __MINGW_NAME_AW(LPNMCBEDRAGBEGIN)
+#define PNMCBEDRAGBEGIN __MINGW_NAME_AW(PNMCBEDRAGBEGIN)
 
   typedef struct {
     NMHDR hdr;
@@ -4050,26 +3671,17 @@
     int iWhy;
   } NMCBEENDEDITA,*LPNMCBEENDEDITA,*PNMCBEENDEDITA;
 
-#ifdef UNICODE
-#define NMCBEENDEDIT NMCBEENDEDITW
-#define LPNMCBEENDEDIT LPNMCBEENDEDITW
-#define PNMCBEENDEDIT PNMCBEENDEDITW
-#else
-#define NMCBEENDEDIT NMCBEENDEDITA
-#define LPNMCBEENDEDIT LPNMCBEENDEDITA
-#define PNMCBEENDEDIT PNMCBEENDEDITA
-#endif
+#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"
-#ifdef UNICODE
-#define WC_TABCONTROL WC_TABCONTROLW
-#else
-#define WC_TABCONTROL WC_TABCONTROLA
-#endif
+#define WC_TABCONTROL __MINGW_NAME_AW(WC_TABCONTROL)
 
 #define TCS_SCROLLOPPOSITE 0x1
 #define TCS_BOTTOM 0x2
@@ -4135,13 +3747,8 @@
     int iImage;
   } TCITEMHEADERW,*LPTCITEMHEADERW;
 
-#ifdef UNICODE
-#define TCITEMHEADER TCITEMHEADERW
-#define LPTCITEMHEADER LPTCITEMHEADERW
-#else
-#define TCITEMHEADER TCITEMHEADERA
-#define LPTCITEMHEADER LPTCITEMHEADERA
-#endif
+#define TCITEMHEADER __MINGW_NAME_AW(TCITEMHEADER)
+#define LPTCITEMHEADER __MINGW_NAME_AW(LPTCITEMHEADER)
 
 #define TC_ITEMA TCITEMA
 #define TC_ITEMW TCITEMW
@@ -4167,44 +3774,27 @@
     LPARAM lParam;
   } TCITEMW,*LPTCITEMW;
 
-#ifdef UNICODE
-#define TCITEM TCITEMW
-#define LPTCITEM LPTCITEMW
-#else
-#define TCITEM TCITEMA
-#define LPTCITEM LPTCITEMA
-#endif
+#define TCITEM __MINGW_NAME_AW(TCITEM)
+#define LPTCITEM __MINGW_NAME_AW(LPTCITEM)
 
 #define TCM_GETITEMA (TCM_FIRST+5)
 #define TCM_GETITEMW (TCM_FIRST+60)
 
-#ifdef UNICODE
-#define TCM_GETITEM TCM_GETITEMW
-#else
-#define TCM_GETITEM TCM_GETITEMA
-#endif
+#define TCM_GETITEM __MINGW_NAME_AW(TCM_GETITEM)
 
 #define TabCtrl_GetItem(hwnd,iItem,pitem) (WINBOOL)SNDMSG((hwnd),TCM_GETITEM,(WPARAM)(int)(iItem),(LPARAM)(TC_ITEM *)(pitem))
 
 #define TCM_SETITEMA (TCM_FIRST+6)
 #define TCM_SETITEMW (TCM_FIRST+61)
 
-#ifdef UNICODE
-#define TCM_SETITEM TCM_SETITEMW
-#else
-#define TCM_SETITEM TCM_SETITEMA
-#endif
+#define TCM_SETITEM __MINGW_NAME_AW(TCM_SETITEM)
 
 #define TabCtrl_SetItem(hwnd,iItem,pitem) (WINBOOL)SNDMSG((hwnd),TCM_SETITEM,(WPARAM)(int)(iItem),(LPARAM)(TC_ITEM *)(pitem))
 
 #define TCM_INSERTITEMA (TCM_FIRST+7)
 #define TCM_INSERTITEMW (TCM_FIRST+62)
 
-#ifdef UNICODE
-#define TCM_INSERTITEM TCM_INSERTITEMW
-#else
-#define TCM_INSERTITEM TCM_INSERTITEMA
-#endif
+#define TCM_INSERTITEM __MINGW_NAME_AW(TCM_INSERTITEM)
 
 #define TabCtrl_InsertItem(hwnd,iItem,pitem) (int)SNDMSG((hwnd),TCM_INSERTITEM,(WPARAM)(int)(iItem),(LPARAM)(const TC_ITEM *)(pitem))
 
@@ -4297,11 +3887,8 @@
 
 #define ANIMATE_CLASSW L"SysAnimate32"
 #define ANIMATE_CLASSA "SysAnimate32"
-#ifdef UNICODE
-#define ANIMATE_CLASS ANIMATE_CLASSW
-#else
-#define ANIMATE_CLASS ANIMATE_CLASSA
-#endif
+
+#define ANIMATE_CLASS __MINGW_NAME_AW(ANIMATE_CLASS)
 
 #define ACS_CENTER 0x1
 #define ACS_TRANSPARENT 0x2
@@ -4310,11 +3897,8 @@
 
 #define ACM_OPENA (WM_USER+100)
 #define ACM_OPENW (WM_USER+103)
-#ifdef UNICODE
-#define ACM_OPEN ACM_OPENW
-#else
-#define ACM_OPEN ACM_OPENA
-#endif
+
+#define ACM_OPEN __MINGW_NAME_AW(ACM_OPEN)
 
 #define ACM_PLAY (WM_USER+101)
 #define ACM_STOP (WM_USER+102)
@@ -4335,11 +3919,8 @@
 #ifndef NOMONTHCAL
 #define MONTHCAL_CLASSW L"SysMonthCal32"
 #define MONTHCAL_CLASSA "SysMonthCal32"
-#ifdef UNICODE
-#define MONTHCAL_CLASS MONTHCAL_CLASSW
-#else
-#define MONTHCAL_CLASS MONTHCAL_CLASSA
-#endif
+
+#define MONTHCAL_CLASS __MINGW_NAME_AW(MONTHCAL_CLASS)
 
   typedef DWORD MONTHDAYSTATE,*LPMONTHDAYSTATE;
 
@@ -4382,13 +3963,18 @@
 #define MCM_HITTEST (MCM_FIRST+14)
 #define MonthCal_HitTest(hmc,pinfo) SNDMSG(hmc,MCM_HITTEST,0,(LPARAM)(PMCHITTESTINFO)(pinfo))
 
-  typedef struct {
-    UINT cbSize;
-    POINT pt;
-
-    UINT uHit;
-    SYSTEMTIME st;
-  } MCHITTESTINFO,*PMCHITTESTINFO;
+typedef struct {
+  UINT cbSize;
+  POINT pt;
+  UINT uHit;
+  SYSTEMTIME st;
+#if(NTDDI_VERSION >= NTDDI_VISTA)
+  RECT rc;
+  int iOffset;
+  int iRow;
+  int iCol;
+#endif
+} MCHITTESTINFO, *PMCHITTESTINFO;
 
 #define MCHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(MCHITTESTINFO, st)
 
@@ -4455,16 +4041,12 @@
 
 #define MCN_SELECT (MCN_FIRST+4)
 
-#define MCS_DAYSTATE         0x0001
-#define MCS_MULTISELECT      0x0002
-#define MCS_WEEKNUMBERS      0x0004
-#define MCS_NOTODAYCIRCLE    0x0008
-#define MCS_NOTODAY          0x0010
-#if (NTDDI_VERSION >= NTDDI_VISTA)
-#define MCS_NOTRAILINGDATES  0x0040
-#define MCS_SHORTDAYSOFWEEK  0x0080
-#define MCS_NOSELCHANGEONNAV 0x0100
-#endif
+#define MCS_DAYSTATE           0x0001
+#define MCS_MULTISELECT        0x0002
+#define MCS_WEEKNUMBERS        0x0004
+#define MCS_NOTODAYCIRCLE      0x0008
+#define MCS_NOTODAY            0x0010
+#define MCS_NOTRAILINGDATES    0x0040
 
 #define GMR_VISIBLE 0
 #define GMR_DAYSTATE 1
@@ -4473,11 +4055,9 @@
 #ifndef NODATETIMEPICK
 #define DATETIMEPICK_CLASSW L"SysDateTimePick32"
 #define DATETIMEPICK_CLASSA "SysDateTimePick32"
-#ifdef UNICODE
-#define DATETIMEPICK_CLASS DATETIMEPICK_CLASSW
-#else
-#define DATETIMEPICK_CLASS DATETIMEPICK_CLASSA
-#endif
+
+#define DATETIMEPICK_CLASS __MINGW_NAME_AW(DATETIMEPICK_CLASS)
+
 #define DTM_FIRST 0x1000
 
 #define DTM_GETSYSTEMTIME (DTM_FIRST+1)
@@ -4491,11 +4071,7 @@
 #define DTM_SETFORMATA (DTM_FIRST+5)
 #define DTM_SETFORMATW (DTM_FIRST+50)
 
-#ifdef UNICODE
-#define DTM_SETFORMAT DTM_SETFORMATW
-#else
-#define DTM_SETFORMAT DTM_SETFORMATA
-#endif
+#define DTM_SETFORMAT __MINGW_NAME_AW(DTM_SETFORMAT)
 
 #define DateTime_SetFormat(hdp,sz) (WINBOOL)SNDMSG(hdp,DTM_SETFORMAT,0,(LPARAM)(sz))
 
@@ -4542,15 +4118,9 @@
     DWORD dwFlags;
   } NMDATETIMESTRINGW,*LPNMDATETIMESTRINGW;
 
-#ifdef UNICODE
-#define DTN_USERSTRING DTN_USERSTRINGW
-#define NMDATETIMESTRING NMDATETIMESTRINGW
-#define LPNMDATETIMESTRING LPNMDATETIMESTRINGW
-#else
-#define DTN_USERSTRING DTN_USERSTRINGA
-#define NMDATETIMESTRING NMDATETIMESTRINGA
-#define LPNMDATETIMESTRING LPNMDATETIMESTRINGA
-#endif
+#define DTN_USERSTRING __MINGW_NAME_AW(DTN_USERSTRING)
+#define NMDATETIMESTRING __MINGW_NAME_AW(NMDATETIMESTRING)
+#define LPNMDATETIMESTRING __MINGW_NAME_AW(LPNMDATETIMESTRING)
 
 #define DTN_WMKEYDOWNA (DTN_FIRST+3)
 #define DTN_WMKEYDOWNW (DTN_FIRST+16)
@@ -4568,15 +4138,9 @@
     SYSTEMTIME st;
   } NMDATETIMEWMKEYDOWNW,*LPNMDATETIMEWMKEYDOWNW;
 
-#ifdef UNICODE
-#define DTN_WMKEYDOWN DTN_WMKEYDOWNW
-#define NMDATETIMEWMKEYDOWN NMDATETIMEWMKEYDOWNW
-#define LPNMDATETIMEWMKEYDOWN LPNMDATETIMEWMKEYDOWNW
-#else
-#define DTN_WMKEYDOWN DTN_WMKEYDOWNA
-#define NMDATETIMEWMKEYDOWN NMDATETIMEWMKEYDOWNA
-#define LPNMDATETIMEWMKEYDOWN LPNMDATETIMEWMKEYDOWNA
-#endif
+#define DTN_WMKEYDOWN __MINGW_NAME_AW(DTN_WMKEYDOWN)
+#define NMDATETIMEWMKEYDOWN __MINGW_NAME_AW(NMDATETIMEWMKEYDOWN)
+#define LPNMDATETIMEWMKEYDOWN __MINGW_NAME_AW(LPNMDATETIMEWMKEYDOWN)
 
 #define DTN_FORMATA (DTN_FIRST+4)
 #define DTN_FORMATW (DTN_FIRST+17)
@@ -4596,15 +4160,9 @@
     WCHAR szDisplay[64];
   } NMDATETIMEFORMATW,*LPNMDATETIMEFORMATW;
 
-#ifdef UNICODE
-#define DTN_FORMAT DTN_FORMATW
-#define NMDATETIMEFORMAT NMDATETIMEFORMATW
-#define LPNMDATETIMEFORMAT LPNMDATETIMEFORMATW
-#else
-#define DTN_FORMAT DTN_FORMATA
-#define NMDATETIMEFORMAT NMDATETIMEFORMATA
-#define LPNMDATETIMEFORMAT LPNMDATETIMEFORMATA
-#endif
+#define DTN_FORMAT __MINGW_NAME_AW(DTN_FORMAT)
+#define NMDATETIMEFORMAT __MINGW_NAME_AW(NMDATETIMEFORMAT)
+#define LPNMDATETIMEFORMAT __MINGW_NAME_AW(LPNMDATETIMEFORMAT)
 
 #define DTN_FORMATQUERYA (DTN_FIRST+5)
 #define DTN_FORMATQUERYW (DTN_FIRST+18)
@@ -4620,15 +4178,9 @@
     SIZE szMax;
   } NMDATETIMEFORMATQUERYW,*LPNMDATETIMEFORMATQUERYW;
 
-#ifdef UNICODE
-#define DTN_FORMATQUERY DTN_FORMATQUERYW
-#define NMDATETIMEFORMATQUERY NMDATETIMEFORMATQUERYW
-#define LPNMDATETIMEFORMATQUERY LPNMDATETIMEFORMATQUERYW
-#else
-#define DTN_FORMATQUERY DTN_FORMATQUERYA
-#define NMDATETIMEFORMATQUERY NMDATETIMEFORMATQUERYA
-#define LPNMDATETIMEFORMATQUERY LPNMDATETIMEFORMATQUERYA
-#endif
+#define DTN_FORMATQUERY __MINGW_NAME_AW(DTN_FORMATQUERY)
+#define NMDATETIMEFORMATQUERY __MINGW_NAME_AW(NMDATETIMEFORMATQUERY)
+#define LPNMDATETIMEFORMATQUERY __MINGW_NAME_AW(LPNMDATETIMEFORMATQUERY)
 
 #define DTN_DROPDOWN (DTN_FIRST+6)
 #define DTN_CLOSEUP (DTN_FIRST+7)
@@ -4651,11 +4203,7 @@
 #define WC_IPADDRESSW L"SysIPAddress32"
 #define WC_IPADDRESSA "SysIPAddress32"
 
-#ifdef UNICODE
-#define WC_IPADDRESS WC_IPADDRESSW
-#else
-#define WC_IPADDRESS WC_IPADDRESSA
-#endif
+#define WC_IPADDRESS __MINGW_NAME_AW(WC_IPADDRESS)
 
 #define IPN_FIELDCHANGED (IPN_FIRST - 0)
   typedef struct tagNMIPADDRESS {
@@ -4678,11 +4226,7 @@
 #define WC_PAGESCROLLERW L"SysPager"
 #define WC_PAGESCROLLERA "SysPager"
 
-#ifdef UNICODE
-#define WC_PAGESCROLLER WC_PAGESCROLLERW
-#else
-#define WC_PAGESCROLLER WC_PAGESCROLLERA
-#endif
+#define WC_PAGESCROLLER __MINGW_NAME_AW(WC_PAGESCROLLER)
 
 #define PGS_VERT 0x0
 #define PGS_HORZ 0x1
@@ -4790,11 +4334,7 @@
 #define WC_NATIVEFONTCTLW L"NativeFontCtl"
 #define WC_NATIVEFONTCTLA "NativeFontCtl"
 
-#ifdef UNICODE
-#define WC_NATIVEFONTCTL WC_NATIVEFONTCTLW
-#else
-#define WC_NATIVEFONTCTL WC_NATIVEFONTCTLA
-#endif
+#define WC_NATIVEFONTCTL __MINGW_NAME_AW(WC_NATIVEFONTCTL)
 
 #define NFS_EDIT 0x1
 #define NFS_STATIC 0x2
@@ -4807,11 +4347,8 @@
 #ifndef NOBUTTON
 #define WC_BUTTONA "Button"
 #define WC_BUTTONW L"Button"
-#ifdef UNICODE
-#define WC_BUTTON WC_BUTTONW
-#else
-#define WC_BUTTON WC_BUTTONA
-#endif
+
+#define WC_BUTTON __MINGW_NAME_AW(WC_BUTTON)
 
 #define BUTTON_IMAGELIST_ALIGN_LEFT 0
 #define BUTTON_IMAGELIST_ALIGN_RIGHT 1
@@ -4853,20 +4390,14 @@
 #ifndef NOSTATIC
 #define WC_STATICA "Static"
 #define WC_STATICW L"Static"
-#ifdef UNICODE
-#define WC_STATIC WC_STATICW
-#else
-#define WC_STATIC WC_STATICA
-#endif
+
+#define WC_STATIC __MINGW_NAME_AW(WC_STATIC)
 
 #ifndef NOEDIT
 #define WC_EDITA "Edit"
 #define WC_EDITW L"Edit"
-#ifdef UNICODE
-#define WC_EDIT WC_EDITW
-#else
-#define WC_EDIT WC_EDITA
-#endif
+
+#define WC_EDIT __MINGW_NAME_AW(WC_EDIT)
 
 #define EM_SETCUEBANNER (ECM_FIRST+1)
 #define Edit_SetCueBannerText(hwnd,lpcwText) (WINBOOL)SNDMSG((hwnd),EM_SETCUEBANNER,0,(LPARAM)(lpcwText))
@@ -4888,21 +4419,17 @@
 #ifndef NOLISTBOX
 #define WC_LISTBOXA "ListBox"
 #define WC_LISTBOXW L"ListBox"
-#ifdef UNICODE
-#define WC_LISTBOX WC_LISTBOXW
-#else
-#define WC_LISTBOX WC_LISTBOXA
-#endif
+
+#define WC_LISTBOX __MINGW_NAME_AW(WC_LISTBOX)
+
 #endif
 
 #ifndef NOCOMBOBOX
 #define WC_COMBOBOXA "ComboBox"
 #define WC_COMBOBOXW L"ComboBox"
-#ifdef UNICODE
-#define WC_COMBOBOX WC_COMBOBOXW
-#else
-#define WC_COMBOBOX WC_COMBOBOXA
-#endif
+
+#define WC_COMBOBOX __MINGW_NAME_AW(WC_COMBOBOX)
+
 #endif
 
 #define CB_SETMINVISIBLE (CBM_FIRST+1)
@@ -4914,11 +4441,9 @@
 #ifndef NOSCROLLBAR
 #define WC_SCROLLBARA "ScrollBar"
 #define WC_SCROLLBARW L"ScrollBar"
-#ifdef UNICODE
-#define WC_SCROLLBAR WC_SCROLLBARW
-#else
-#define WC_SCROLLBAR WC_SCROLLBARA
-#endif
+
+#define WC_SCROLLBAR __MINGW_NAME_AW(WC_SCROLLBAR)
+
 #endif
 
 #define INVALID_LINK_INDEX (-1)
@@ -5009,6 +4534,40 @@
 
   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);
+
+typedef struct _DPASTREAMINFO {
+  int iPos;
+  void *pvItem;
+} 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);
+
+  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    1
+#define DPAM_NORMAL    2
+#define DPAM_UNION     4
+#define DPAM_INTERSECT 8
+
+#define DPAMM_MERGE    1
+#define DPAMM_DELETE   2
+#define DPAMM_INSERT   3
 
 #ifndef NOTRACKMOUSEEVENT
 
@@ -5088,39 +4647,91 @@
   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);
 
-typedef struct _DPASTREAMINFO {
-  int iPos;
-  void *pvItem;
-} 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);
-
-  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 BOOL WINAPI DPA_Grow(HDPA pdpa, IN int cp);
-  WINCOMMCTRLAPI int WINAPI DPA_InsertPtr(HDPA hdpa, IN int i, void *p);
-  WINCOMMCTRLAPI PVOID WINAPI DPA_GetPtr(HDPA hdpa, INT_PTR i);
-  WINCOMMCTRLAPI BOOL WINAPI DPA_SetPtr(HDPA hdpa, IN 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    1
-#define DPAM_NORMAL    2
-#define DPAM_UNION     4
-#define DPAM_INTERSECT 8
-
-#define DPAMM_MERGE    1
-#define DPAMM_DELETE   2
-#define DPAMM_INSERT   3
+#ifndef NOTASKDIALOG
+
+#include <pshpack1.h>
+
+enum _TASKDIALOG_FLAGS
+{
+    TDF_ENABLE_HYPERLINKS           = 0x0001,
+    TDF_USE_HICON_MAIN              = 0x0002,
+    TDF_USE_HICON_FOOTER            = 0x0004,
+    TDF_ALLOW_DIALOG_CANCELLATION   = 0x0008,
+    TDF_USE_COMMAND_LINKS           = 0x0010,
+    TDF_USE_COMMAND_LINKS_NO_ICON   = 0x0020,
+    TDF_EXPAND_FOOTER_AREA          = 0x0040,
+    TDF_EXPANDED_BY_DEFAULT         = 0x0080,
+    TDF_VERIFICATION_FLAG_CHECKED   = 0x0100,
+    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
+};
+typedef int TASKDIALOG_FLAGS;
+
+enum _TASKDIALOG_COMMON_BUTTON_FLAGS
+{
+    TDCBF_OK_BUTTON     = 0x0001,
+    TDCBF_YES_BUTTON    = 0x0002,
+    TDCBF_NO_BUTTON     = 0x0004,
+    TDCBF_CANCEL_BUTTON = 0x0008,
+    TDCBF_RETRY_BUTTON  = 0x0010,
+    TDCBF_CLOSE_BUTTON  = 0x0020
+};
+typedef int TASKDIALOG_COMMON_BUTTON_FLAGS;
+
+typedef struct _TASKDIALOG_BUTTON
+{
+    int     nButtonID;
+    PCWSTR  pszButtonText;
+} TASKDIALOG_BUTTON;
+
+typedef HRESULT (CALLBACK *PFTASKDIALOGCALLBACK)(HWND, UINT, WPARAM, LPARAM, LONG_PTR);
+
+typedef struct _TASKDIALOGCONFIG
+{
+    UINT        cbSize;
+    HWND        hwndParent;
+    HINSTANCE   hInstance;
+    TASKDIALOG_FLAGS    dwFlags;
+    TASKDIALOG_COMMON_BUTTON_FLAGS  dwCommonButtons;
+    PCWSTR      pszWindowTitle;
+    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;
+    union
+    {
+        HICON   hFooterIcon;
+        PCWSTR  pszFooterIcon;
+    } DUMMYUNIONNAME2;
+    PCWSTR      pszFooter;
+    PFTASKDIALOGCALLBACK pfCallback;
+    LONG_PTR    lpCallbackData;
+    UINT        cxWidth;
+} TASKDIALOGCONFIG;
+
+HRESULT WINAPI TaskDialogIndirect(const TASKDIALOGCONFIG *, int *, int *, BOOL *);
+
+#include <poppack.h>
+
+#endif /* NOTASKDIALOG */
 
 #ifdef __cplusplus
 }




More information about the Ros-diffs mailing list