OSDN Git Service

Make <prsht.h> header effectively self-contained.
authorKeith Marshall <keith@users.osdn.me>
Fri, 16 Nov 2018 20:03:22 +0000 (20:03 +0000)
committerKeith Marshall <keith@users.osdn.me>
Fri, 16 Nov 2018 20:03:22 +0000 (20:03 +0000)
w32api/ChangeLog
w32api/include/prsht.h

index 0e3c6c8..d104aea 100644 (file)
@@ -1,3 +1,18 @@
+2018-11-16  Keith Marshall  <keith@users.osdn.me>
+
+       Make <prsht.h> header effectively self-contained.
+
+       * include/prsht.h: Tidy layout; assert copyright.
+       Include <winuser.h> to resolve inter-header dependencies.
+       Correctly parenthesize argument references in macro definitions.
+       (pragma GCC system_header): Remove redundant GCC version guard.
+       (_WIN32_WINNT, _WIN32_IE): Always use symbolic version comparisons.
+       (SNDMSG, POSTMSG) [ifndef]: Remove guard condition; it prevents GCC
+       from checking consistency of alternative definition sources.
+       (__AW_SUFFIXED__): Use it; it improves robustness of...
+       [UNICODE vs. ! UNICODE]: ...generic definitions.
+       (_BEGIN_C_DECLS, _END_C_DECLS): Use them.
+
 2018-10-29  Keith Marshall  <keith@users.osdn.me>
 
        Clean up <wincon.h>; consolidate its version dependencies.
index a7706ab..50c3f18 100644 (file)
+/*
+ * prsht.h
+ *
+ * Windows Property Sheet API definitions.
+ *
+ *
+ * $Id$
+ *
+ * Written by Anders Norlander  <anorland@hem2.passagen.se>
+ * Copyright (C) 1998, 1999, 2001-2004, 2010, 2018, MinGW.org Project.
+ *
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice, this permission notice, and the following
+ * disclaimer shall be included in all copies or substantial portions of
+ * the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OF OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ */
 #ifndef _PRSHT_H
-#define _PRSHT_H
-#if __GNUC__ >=3
 #pragma GCC system_header
-#endif
+#define _PRSHT_H
 
-#ifndef SNDMSG
-#ifdef __cplusplus
-#define SNDMSG ::SendMessage
-#else
-#define SNDMSG SendMessage
-#endif
-#endif /* ifndef SNDMSG */
+#include <winuser.h>
 
-#ifndef POSTMSG
 #ifdef __cplusplus
-#define POSTMSG ::PostMessage
-#else
-#define POSTMSG PostMessage
-#endif
-#endif /* ifndef POSTMSG */
+# define POSTMSG  ::PostMessage
+# define SNDMSG   ::SendMessage
+#else  /* !__cplusplus */
+# define POSTMSG    PostMessage
+# define SNDMSG     SendMessage
+#endif /* !__cplusplus */
 
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define MAXPROPPAGES   100
-#define PSP_DEFAULT    0
-#define PSP_DLGINDIRECT        1
-#define PSP_USEHICON   2
-#define PSP_USEICONID  4
-#define PSP_USETITLE   8
-#define PSP_RTLREADING 16
-#define PSP_HASHELP    32
-#define PSP_USEREFPARENT       64
-#define PSP_USECALLBACK        128
-#define PSP_PREMATURE  1024
-#if (_WIN32_IE >= 0x0400)
-#define PSP_HIDEHEADER 2048
-#define PSP_USEHEADERTITLE     4096
-#define PSP_USEHEADERSUBTITLE  8192
-#endif
-#define PSPCB_RELEASE  1
-#define PSPCB_CREATE   2
-#define PSH_DEFAULT    0
-#define PSH_PROPTITLE  1
-#define PSH_USEHICON   2
-#define PSH_USEICONID  4
-#define PSH_PROPSHEETPAGE      8
-#define PSH_WIZARDHASFINISH    16
-#define PSH_WIZARD     32
-#define PSH_USEPSTARTPAGE      64
-#define PSH_NOAPPLYNOW 128
-#define PSH_USECALLBACK        256
-#define PSH_HASHELP    512
-#define PSH_MODELESS   1024
-#define PSH_RTLREADING 2048
-#define PSH_WIZARDCONTEXTHELP  4096
-#if (_WIN32_IE >= 0x0400)
-#define PSH_WATERMARK  32768
-#define PSH_USEHBMWATERMARK    65536
-#define PSH_USEHPLWATERMARK    131072
-#define PSH_STRETCHWATERMARK   262144
-#define PSH_HEADER     524288
-#define PSH_USEHBMHEADER       1048576
-#define PSH_USEPAGELANG        2097152
-#if (_WIN32_IE < 0x0500)
-#define PSH_WIZARD97   0x00002000
-#else
-#define PSH_WIZARD97   0x01000000
-#endif
-#endif /* _WIN32_IE >= 0x0400 */
-#if (_WIN32_IE >= 0x0500)
-#define PSH_WIZARD_LITE        0x400000
-#define PSH_NOCONTEXTHELP      0x2000000
-#endif
-#define PSCB_INITIALIZED       1
-#define PSCB_PRECREATE 2
-#define PSM_GETTABCONTROL      1140
-#define PSM_GETCURRENTPAGEHWND 1142
-#define PSM_ISDIALOGMESSAGE    1141
-#define PSM_PRESSBUTTON        1137
-#define PSM_SETCURSELID        1138
-#define PSM_SETFINISHTEXTW     1145
-#define PSM_SETFINISHTEXTA     1139
-#define PSN_FIRST      (-200)
-#define PSN_LAST       (-299)
-#define PSN_APPLY      (-202)
-#define PSN_HELP       (-205)
-#define PSN_KILLACTIVE (-201)
-#define PSN_QUERYCANCEL        (-209)
-#define PSN_RESET      (-203)
-#define PSN_SETACTIVE  (-200)
-#define PSN_WIZBACK    (-206)
-#define PSN_WIZFINISH  (-208)
-#define PSN_WIZNEXT    (-207)
-#define PSNRET_NOERROR 0
-#define PSNRET_INVALID 1
-#define PSNRET_INVALID_NOCHANGEPAGE    2
-#define ID_PSRESTARTWINDOWS    2
-#define ID_PSREBOOTSYSTEM      3
-#define WIZ_CXDLG      276
-#define WIZ_CYDLG      140
-#define WIZ_CXBMP      80
-#define WIZ_BODYX      92
-#define WIZ_BODYCX     184
-#define PROP_SM_CXDLG  212
-#define PROP_SM_CYDLG  188
-#define PROP_MED_CXDLG 227
-#define PROP_MED_CYDLG 215
-#define PROP_LG_CXDLG  252
-#define PROP_LG_CYDLG  218
-#define PSBTN_MAX      6
-#define PSBTN_BACK     0
-#define PSBTN_NEXT     1
-#define PSBTN_FINISH   2
-#define PSBTN_OK       3
-#define PSBTN_APPLYNOW 4
-#define PSBTN_CANCEL   5
-#define PSBTN_HELP     6
-#define PSWIZB_BACK    1
-#define PSWIZB_NEXT    2
-#define PSWIZB_FINISH  4
-#define PSWIZB_DISABLEDFINISH  8
-#define PSM_SETWIZBUTTONS      (WM_USER+112)
-#define PSM_APPLY      (WM_USER+110)
-#define PSM_UNCHANGED  (WM_USER+109)
-#define PSM_QUERYSIBLINGS      (WM_USER+108)
-#define PSM_CANCELTOCLOSE      (WM_USER+107)
-#define PSM_REBOOTSYSTEM       (WM_USER+106)
-#define PSM_RESTARTWINDOWS     (WM_USER+105)
-#define PSM_CHANGED    (WM_USER+104)
-#define PSM_ADDPAGE    (WM_USER+103)
-#define PSM_REMOVEPAGE (WM_USER+102)
-#define PSM_SETCURSEL  (WM_USER+101)
-#define PSM_SETTITLEA  (WM_USER+111)
-#define PSM_SETTITLEW  (WM_USER+120)
+_BEGIN_C_DECLS
+
+#define MAXPROPPAGES                          100
+
+#define PSP_DEFAULT                             0
+#define PSP_DLGINDIRECT                         1
+#define PSP_USEHICON                            2
+#define PSP_USEICONID                           4
+#define PSP_USETITLE                            8
+#define PSP_RTLREADING                         16
+#define PSP_HASHELP                            32
+#define PSP_USEREFPARENT                       64
+#define PSP_USECALLBACK                       128
+#define PSP_PREMATURE                        1024
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define PSP_HIDEHEADER                       2048
+#define PSP_USEHEADERTITLE                   4096
+#define PSP_USEHEADERSUBTITLE                8192
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define PSPCB_RELEASE                           1
+#define PSPCB_CREATE                            2
+
+#define PSH_DEFAULT                             0
+#define PSH_PROPTITLE                           1
+#define PSH_USEHICON                            2
+#define PSH_USEICONID                           4
+#define PSH_PROPSHEETPAGE                       8
+#define PSH_WIZARDHASFINISH                    16
+#define PSH_WIZARD                             32
+#define PSH_USEPSTARTPAGE                      64
+#define PSH_NOAPPLYNOW                        128
+#define PSH_USECALLBACK                       256
+#define PSH_HASHELP                           512
+#define PSH_MODELESS                         1024
+#define PSH_RTLREADING                       2048
+#define PSH_WIZARDCONTEXTHELP                4096
+
+#if _WIN32_IE >= _WIN32_IE_IE40
+
+#define PSH_WATERMARK                       32768
+#define PSH_USEHBMWATERMARK                 65536
+#define PSH_USEHPLWATERMARK                131072
+#define PSH_STRETCHWATERMARK               262144
+#define PSH_HEADER                         524288
+#define PSH_USEHBMHEADER                  1048576
+#define PSH_USEPAGELANG                   2097152
+
+#if _WIN32_IE < _WIN32_IE_IE50
+/* First introduced with IE-4.0, this definition prevailed
+ * until the subsequent release of IE-5.0 ...
+ */
+#define PSH_WIZARD97                   0x00002000
+
+#else  /* _WIN32_IE >= _WIN32_IE_IE50 */
+/* ... when the applicable definition was changed, becoming
+ * the following for all IE versions from IE-5.0 onwards.
+ */
+#define PSH_WIZARD97                   0x01000000
+
+/* IE-5.0 also introduced the following related definitions.
+ */
+#define PSH_WIZARD_LITE                  0x400000
+#define PSH_NOCONTEXTHELP               0x2000000
+
+#endif /* _WIN32_IE >= _WIN32_IE_IE50 */
+#endif /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+#define PSCB_INITIALIZED                        1
+#define PSCB_PRECREATE                          2
+
+#define PSM_GETTABCONTROL                    1140
+#define PSM_GETCURRENTPAGEHWND               1142
+#define PSM_ISDIALOGMESSAGE                  1141
+#define PSM_PRESSBUTTON                      1137
+#define PSM_SETCURSELID                      1138
+
+#define PSM_SETFINISHTEXT  __AW_SUFFIXED__( PSM_SETFINISHTEXT )
+
+#define PSM_SETFINISHTEXTW                   1145
+#define PSM_SETFINISHTEXTA                   1139
+
+#define PSN_FIRST                           (-200)
+#define PSN_LAST                            (-299)
+#define PSN_APPLY                           (-202)
+#define PSN_HELP                            (-205)
+#define PSN_KILLACTIVE                      (-201)
+#define PSN_QUERYCANCEL                     (-209)
+#define PSN_RESET                           (-203)
+#define PSN_SETACTIVE                       (-200)
+#define PSN_WIZBACK                         (-206)
+#define PSN_WIZFINISH                       (-208)
+#define PSN_WIZNEXT                         (-207)
+
+#define PSNRET_NOERROR                          0
+#define PSNRET_INVALID                          1
+#define PSNRET_INVALID_NOCHANGEPAGE             2
+
+#define ID_PSRESTARTWINDOWS                     2
+#define ID_PSREBOOTSYSTEM                       3
+
+#define WIZ_CXDLG                             276
+#define WIZ_CYDLG                             140
+#define WIZ_CXBMP                              80
+#define WIZ_BODYX                              92
+#define WIZ_BODYCX                            184
+
+#define PROP_SM_CXDLG                         212
+#define PROP_SM_CYDLG                         188
+#define PROP_MED_CXDLG                        227
+#define PROP_MED_CYDLG                        215
+#define PROP_LG_CXDLG                         252
+#define PROP_LG_CYDLG                         218
+
+#define PSBTN_MAX                               6
+#define PSBTN_BACK                              0
+#define PSBTN_NEXT                              1
+#define PSBTN_FINISH                            2
+#define PSBTN_OK                                3
+#define PSBTN_APPLYNOW                          4
+#define PSBTN_CANCEL                            5
+#define PSBTN_HELP                              6
+
+#define PSWIZB_BACK                             1
+#define PSWIZB_NEXT                             2
+#define PSWIZB_FINISH                           4
+#define PSWIZB_DISABLEDFINISH                   8
+
+#define PSM_SETWIZBUTTONS          (WM_USER + 112)
+#define PSM_APPLY                  (WM_USER + 110)
+#define PSM_UNCHANGED              (WM_USER + 109)
+#define PSM_QUERYSIBLINGS          (WM_USER + 108)
+#define PSM_CANCELTOCLOSE          (WM_USER + 107)
+#define PSM_REBOOTSYSTEM           (WM_USER + 106)
+#define PSM_RESTARTWINDOWS         (WM_USER + 105)
+#define PSM_CHANGED                (WM_USER + 104)
+#define PSM_ADDPAGE                (WM_USER + 103)
+#define PSM_REMOVEPAGE             (WM_USER + 102)
+#define PSM_SETCURSEL              (WM_USER + 101)
+
+#define PSM_SETTITLE     __AW_SUFFIXED__( PSM_SETTITLE )
+
+#define PSM_SETTITLEA              (WM_USER + 111)
+#define PSM_SETTITLEW              (WM_USER + 120)
 
 #ifndef RC_INVOKED
 
-#pragma pack(push,8)
-typedef struct _PROPSHEETPAGEA {
-       DWORD   dwSize;
-       DWORD   dwFlags;
-       HINSTANCE       hInstance;
-       _ANONYMOUS_UNION union {
-               LPCSTR  pszTemplate;
-               LPCDLGTEMPLATE  pResource;
-       } DUMMYUNIONNAME;
-       _ANONYMOUS_UNION union {
-               HICON hIcon;
-               LPCSTR pszIcon;
-       } DUMMYUNIONNAME2;
-       LPCSTR  pszTitle;
-       DLGPROC pfnDlgProc;
-       LPARAM  lParam;
-       UINT(CALLBACK *pfnCallback)(HWND,UINT,struct _PROPSHEETPAGEA*);
-       UINT *pcRefParent;
-#if (_WIN32_IE >= 0x0400)
-       LPCSTR pszHeaderTitle;
-       LPCSTR pszHeaderSubTitle;
-#endif
-} PROPSHEETPAGEA,*LPPROPSHEETPAGEA;
+#pragma pack (push, 8)
+
+#define PROPSHEETPAGE    __AW_SUFFIXED__( PROPSHEETPAGE )
+#define LPPROPSHEETPAGE  __AW_SUFFIXED__( LPPROPSHEETPAGE )
+
+typedef
+struct _PROPSHEETPAGEA
+{ DWORD                 dwSize;
+  DWORD                 dwFlags;
+  HINSTANCE             hInstance;
+
+  _ANONYMOUS_UNION union
+  { LPCSTR                pszTemplate;
+    LPCDLGTEMPLATE        pResource;
+  }                     DUMMYUNIONNAME;
+
+  _ANONYMOUS_UNION union
+  { HICON                 hIcon;
+    LPCSTR                pszIcon;
+  }                     DUMMYUNIONNAME2;
+
+  LPCSTR                pszTitle;
+  DLGPROC               pfnDlgProc;
+  LPARAM                lParam;
+  UINT (CALLBACK       *pfnCallback) (HWND, UINT, struct _PROPSHEETPAGEA *);
+  UINT                 *pcRefParent;
+
+# if _WIN32_IE >= _WIN32_IE_IE40
+
+  LPCSTR                pszHeaderTitle;
+  LPCSTR                pszHeaderSubTitle;
+
+# endif        /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+} PROPSHEETPAGEA, *LPPROPSHEETPAGEA;
+
+#define LPCPROPSHEETPAGE  __AW_SUFFIXED__( LPCPROPSHEETPAGE )
+
 typedef const PROPSHEETPAGEA *LPCPROPSHEETPAGEA;
-typedef struct _PROPSHEETPAGEW {
-       DWORD   dwSize;
-       DWORD   dwFlags;
-       HINSTANCE       hInstance;
-       _ANONYMOUS_UNION union {
-               LPCWSTR pszTemplate;
-               LPCDLGTEMPLATE  pResource;
-       } DUMMYUNIONNAME;
-       _ANONYMOUS_UNION union {
-               HICON hIcon;
-               LPCWSTR pszIcon;
-       } DUMMYUNIONNAME2;
-       LPCWSTR pszTitle;
-       DLGPROC pfnDlgProc;
-       LPARAM  lParam;
-       UINT(CALLBACK *pfnCallback)(HWND,UINT,struct _PROPSHEETPAGEW*);
-       UINT *pcRefParent;
-#if (_WIN32_IE >= 0x0400)
-       LPCWSTR pszHeaderTitle;
-       LPCWSTR pszHeaderSubTitle;
-#endif
-} PROPSHEETPAGEW,*LPPROPSHEETPAGEW;
+
+typedef
+struct _PROPSHEETPAGEW
+{ DWORD                 dwSize;
+  DWORD                 dwFlags;
+  HINSTANCE             hInstance;
+
+  _ANONYMOUS_UNION union
+  { LPCWSTR               pszTemplate;
+    LPCDLGTEMPLATE        pResource;
+  }                     DUMMYUNIONNAME;
+
+  _ANONYMOUS_UNION union
+  { HICON                 hIcon;
+    LPCWSTR               pszIcon;
+  }                     DUMMYUNIONNAME2;
+
+  LPCWSTR               pszTitle;
+  DLGPROC               pfnDlgProc;
+  LPARAM                lParam;
+  UINT (CALLBACK       *pfnCallback) (HWND, UINT, struct _PROPSHEETPAGEW *);
+  UINT                 *pcRefParent;
+
+# if _WIN32_IE >= _WIN32_IE_IE40
+
+  LPCWSTR               pszHeaderTitle;
+  LPCWSTR               pszHeaderSubTitle;
+
+# endif        /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+} PROPSHEETPAGEW, *LPPROPSHEETPAGEW;
+
 typedef const PROPSHEETPAGEW *LPCPROPSHEETPAGEW;
-typedef UINT(CALLBACK *LPFNPSPCALLBACKA)(HWND,UINT,LPPROPSHEETPAGEA);
-typedef UINT(CALLBACK *LPFNPSPCALLBACKW)(HWND,UINT,LPPROPSHEETPAGEW);
-typedef int(CALLBACK *PFNPROPSHEETCALLBACK)(HWND,UINT,LPARAM);
-DECLARE_HANDLE(HPROPSHEETPAGE);
-typedef struct _PROPSHEETHEADERA {
-       DWORD   dwSize;
-       DWORD   dwFlags;
-       HWND    hwndParent;
-       HINSTANCE       hInstance;
-       _ANONYMOUS_UNION union {
-               HICON   hIcon;
-               LPCSTR  pszIcon;
-       }DUMMYUNIONNAME;
-       LPCSTR  pszCaption;
-       UINT    nPages;
-       _ANONYMOUS_UNION union {
-               UINT    nStartPage;
-               LPCSTR  pStartPage;
-       }DUMMYUNIONNAME2;
-       _ANONYMOUS_UNION union {
-               LPCPROPSHEETPAGEA ppsp;
-               HPROPSHEETPAGE *phpage;
-       }DUMMYUNIONNAME3;
-       PFNPROPSHEETCALLBACK pfnCallback;
-#if (_WIN32_IE >= 0x0400)
-       _ANONYMOUS_UNION union {
-               HBITMAP hbmWatermark;
-               LPCSTR pszbmWatermark;
-       } DUMMYUNIONNAME4;
-       HPALETTE hplWatermark;
-       _ANONYMOUS_UNION union {
-               HBITMAP hbmHeader;
-               LPCSTR pszbmHeader;
-       } DUMMYUNIONNAME5;
-#endif
-} PROPSHEETHEADERA,*LPPROPSHEETHEADERA;
+
+#define LPFNPSPCALLBACK  __AW_SUFFIXED__( LPFNPSPCALLBACK )
+
+typedef UINT (CALLBACK *LPFNPSPCALLBACKA) (HWND, UINT, LPPROPSHEETPAGEA);
+typedef UINT (CALLBACK *LPFNPSPCALLBACKW) (HWND, UINT, LPPROPSHEETPAGEW);
+
+typedef int (CALLBACK *PFNPROPSHEETCALLBACK) (HWND, UINT, LPARAM);
+
+DECLARE_HANDLE (HPROPSHEETPAGE);
+
+#define PROPSHEETHEADER    __AW_SUFFIXED__( PROPSHEETHEADER )
+#define LPPROPSHEETHEADER  __AW_SUFFIXED__( LPPROPSHEETHEADER )
+
+typedef
+struct _PROPSHEETHEADERA
+{ DWORD                 dwSize;
+  DWORD                 dwFlags;
+  HWND                  hwndParent;
+  HINSTANCE             hInstance;
+
+  _ANONYMOUS_UNION union
+  { HICON                 hIcon;
+    LPCSTR                pszIcon;
+  }                     DUMMYUNIONNAME;
+
+  LPCSTR                pszCaption;
+  UINT                  nPages;
+
+  _ANONYMOUS_UNION union
+  { UINT                  nStartPage;
+    LPCSTR                pStartPage;
+  }                     DUMMYUNIONNAME2;
+
+  _ANONYMOUS_UNION union
+  { LPCPROPSHEETPAGEA     ppsp;
+    HPROPSHEETPAGE       *phpage;
+  }                     DUMMYUNIONNAME3;
+
+  PFNPROPSHEETCALLBACK  pfnCallback;
+
+# if _WIN32_IE >= _WIN32_IE_IE40
+
+  _ANONYMOUS_UNION union
+  { HBITMAP               hbmWatermark;
+    LPCSTR                pszbmWatermark;
+  }                     DUMMYUNIONNAME4;
+
+  HPALETTE              hplWatermark;
+
+  _ANONYMOUS_UNION union
+  { HBITMAP               hbmHeader;
+    LPCSTR                pszbmHeader;
+  }                     DUMMYUNIONNAME5;
+
+# endif        /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+} PROPSHEETHEADERA, *LPPROPSHEETHEADERA;
+
+typedef
+struct _PROPSHEETHEADERW
+{ DWORD                 dwSize;
+  DWORD                 dwFlags;
+  HWND                  hwndParent;
+  HINSTANCE             hInstance;
+
+  _ANONYMOUS_UNION union
+  { HICON                 hIcon;
+    LPCWSTR               pszIcon;
+  }                     DUMMYUNIONNAME;
+
+  LPCWSTR               pszCaption;
+  UINT                  nPages;
+
+  _ANONYMOUS_UNION union
+  { UINT                  nStartPage;
+    LPCWSTR               pStartPage;
+  }                     DUMMYUNIONNAME2;
+
+  _ANONYMOUS_UNION union
+  { LPCPROPSHEETPAGEW     ppsp;
+    HPROPSHEETPAGE       *phpage;
+  }                     DUMMYUNIONNAME3;
+
+  PFNPROPSHEETCALLBACK  pfnCallback;
+
+# if _WIN32_IE >= _WIN32_IE_IE40
+
+  _ANONYMOUS_UNION union
+  { HBITMAP               hbmWatermark;
+    LPCWSTR               pszbmWatermark;
+  }                     DUMMYUNIONNAME4;
+
+  HPALETTE              hplWatermark;
+
+  _ANONYMOUS_UNION union
+  { HBITMAP               hbmHeader;
+    LPCWSTR               pszbmHeader;
+  }                     DUMMYUNIONNAME5;
+
+# endif        /* _WIN32_IE >= _WIN32_IE_IE40 */
+
+} PROPSHEETHEADERW, *LPPROPSHEETHEADERW;
+
+#define LPCPROPSHEETHEADER  __AW_SUFFIXED__( LPCPROPSHEETHEADER )
+
 typedef const PROPSHEETHEADERA *LPCPROPSHEETHEADERA;
-typedef struct _PROPSHEETHEADERW {
-       DWORD   dwSize;
-       DWORD   dwFlags;
-       HWND    hwndParent;
-       HINSTANCE       hInstance;
-       _ANONYMOUS_UNION union {
-               HICON   hIcon;
-               LPCWSTR pszIcon;
-       }DUMMYUNIONNAME;
-       LPCWSTR pszCaption;
-       UINT    nPages;
-       _ANONYMOUS_UNION union {
-               UINT    nStartPage;
-               LPCWSTR pStartPage;
-       }DUMMYUNIONNAME2;
-       _ANONYMOUS_UNION union {
-               LPCPROPSHEETPAGEW ppsp;
-               HPROPSHEETPAGE *phpage;
-       }DUMMYUNIONNAME3;
-       PFNPROPSHEETCALLBACK pfnCallback;
-#if (_WIN32_IE >= 0x0400)
-       _ANONYMOUS_UNION union {
-               HBITMAP hbmWatermark;
-               LPCWSTR pszbmWatermark;
-       } DUMMYUNIONNAME4;
-       HPALETTE hplWatermark;
-       _ANONYMOUS_UNION union {
-               HBITMAP hbmHeader;
-               LPCWSTR pszbmHeader;
-       } DUMMYUNIONNAME5;
-#endif
-} PROPSHEETHEADERW,*LPPROPSHEETHEADERW;
 typedef const PROPSHEETHEADERW *LPCPROPSHEETHEADERW;
-typedef BOOL(CALLBACK *LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE,LPARAM);
-typedef BOOL(CALLBACK *LPFNADDPROPSHEETPAGES)(LPVOID,LPFNADDPROPSHEETPAGE,LPARAM);
-typedef struct _PSHNOTIFY {
-       NMHDR hdr;
-       LPARAM lParam;
-} PSHNOTIFY,*LPPSHNOTIFY;
-
-#pragma pack(pop)
-
-HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(LPCPROPSHEETPAGEA);
-HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW);
-BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE);
-int WINAPI PropertySheetA(LPCPROPSHEETHEADERA);
-int WINAPI PropertySheetW(LPCPROPSHEETHEADERW);
-#define PropSheet_AddPage(d,p) SNDMSG(d,PSM_ADDPAGE,0,(LPARAM)p)
-#define PropSheet_Apply(d) SNDMSG(d,PSM_APPLY,0,0)
-#define PropSheet_CancelToClose(d) POSTMSG(d,PSM_CANCELTOCLOSE,0,0)
-#define PropSheet_Changed(d,w) SNDMSG(d,PSM_CHANGED,(WPARAM)w,0)
-#define PropSheet_GetCurrentPageHwnd(d) (HWND)SNDMSG(d,PSM_GETCURRENTPAGEHWND,0,0)
-#define PropSheet_GetTabControl(d) (HWND)SNDMSG(d,PSM_GETTABCONTROL,0,0)
-#define PropSheet_IsDialogMessage(d,m) (BOOL)SNDMSG(d,PSM_ISDIALOGMESSAGE,0,(LPARAM)m)
-#define PropSheet_PressButton(d,i) POSTMSG(d,PSM_PRESSBUTTON,i,0)
-#define PropSheet_QuerySiblings(d,w,l) SNDMSG(d,PSM_QUERYSIBLINGS,w,l)
-#define PropSheet_RebootSystem(d) SNDMSG(d,PSM_REBOOTSYSTEM,0,0)
-#define PropSheet_RemovePage(d,i,p) SNDMSG(d,PSM_REMOVEPAGE,i,(LPARAM)p)
-#define PropSheet_RestartWindows(d) SNDMSG(d,PSM_RESTARTWINDOWS,0,0)
-#define PropSheet_SetCurSel(d,p,i) SNDMSG(d,PSM_SETCURSEL,i,(LPARAM)p)
-#define PropSheet_SetCurSelByID(d,i) SNDMSG(d,PSM_SETCURSELID,0,i)
-#define PropSheet_SetFinishText(d,s) SNDMSG(d,PSM_SETFINISHTEXT,0,(LPARAM)s)
-#define PropSheet_SetTitle(d,w,s) SNDMSG(d,PSM_SETTITLE,w,(LPARAM)s)
-#define PropSheet_SetWizButtons(d,f) POSTMSG(d,PSM_SETWIZBUTTONS,0,(LPARAM)f)
-#define PropSheet_UnChanged(d,w) SNDMSG(d,PSM_UNCHANGED,(WPARAM)w,0)
-#endif
-
-#ifdef UNICODE
-#define LPFNPSPCALLBACK        LPFNPSPCALLBACKW
-#define PROPSHEETPAGE  PROPSHEETPAGEW
-#define LPPROPSHEETPAGE        LPPROPSHEETPAGEW
-#define LPCPROPSHEETPAGE       LPCPROPSHEETPAGEW
-#define PROPSHEETHEADER        PROPSHEETHEADERW
-#define LPPROPSHEETHEADER      LPPROPSHEETHEADERW
-#define LPCPROPSHEETHEADER     LPCPROPSHEETHEADERW
-#define PSM_SETTITLE PSM_SETTITLEW
-#define PSM_SETFINISHTEXT PSM_SETFINISHTEXTW
-#define CreatePropertySheetPage CreatePropertySheetPageW
-#define PropertySheet PropertySheetW
-#else
-#define LPFNPSPCALLBACK        LPFNPSPCALLBACKA
-#define PROPSHEETPAGE  PROPSHEETPAGEA
-#define LPPROPSHEETPAGE        LPPROPSHEETPAGEA
-#define LPCPROPSHEETPAGE       LPCPROPSHEETPAGEA
-#define PROPSHEETHEADER        PROPSHEETHEADERA
-#define LPPROPSHEETHEADER      LPPROPSHEETHEADERA
-#define LPCPROPSHEETHEADER     LPCPROPSHEETHEADERA
-#define PSM_SETTITLE PSM_SETTITLEA
-#define PSM_SETFINISHTEXT PSM_SETFINISHTEXTA
-#define CreatePropertySheetPage CreatePropertySheetPageA
-#define PropertySheet PropertySheetA
-#endif
-#ifdef __cplusplus
-}
-#endif
-#endif
+
+typedef BOOL (CALLBACK *LPFNADDPROPSHEETPAGE) (HPROPSHEETPAGE, LPARAM);
+
+typedef BOOL (CALLBACK *LPFNADDPROPSHEETPAGES)
+( LPVOID, LPFNADDPROPSHEETPAGE, LPARAM );
+
+typedef
+struct _PSHNOTIFY
+{ NMHDR                 hdr;
+  LPARAM                lParam;
+} PSHNOTIFY, *LPPSHNOTIFY;
+
+#pragma pack (pop)
+
+#define PropertySheet __AW_SUFFIXED__( PropertySheet )
+
+WINAPI int PropertySheetA (LPCPROPSHEETHEADERA);
+WINAPI int PropertySheetW (LPCPROPSHEETHEADERW);
+
+#define CreatePropertySheetPage __AW_SUFFIXED__( CreatePropertySheetPage )
+
+WINAPI HPROPSHEETPAGE CreatePropertySheetPageA (LPCPROPSHEETPAGEA);
+WINAPI HPROPSHEETPAGE CreatePropertySheetPageW (LPCPROPSHEETPAGEW);
+
+WINAPI BOOL DestroyPropertySheetPage (HPROPSHEETPAGE);
+
+#define PropSheet_AddPage( d, p )                                      \
+  SNDMSG ((d), PSM_ADDPAGE, 0, (LPARAM)(p))
+
+#define PropSheet_Apply( d )                                           \
+  SNDMSG ((d), PSM_APPLY, 0, 0)
+
+#define PropSheet_CancelToClose( d )                                   \
+  POSTMSG ((d), PSM_CANCELTOCLOSE, 0, 0)
+
+#define PropSheet_Changed( d, w )                                      \
+  SNDMSG ((d), PSM_CHANGED, (WPARAM)(w), 0)
+
+#define PropSheet_GetCurrentPageHwnd( d )                              \
+  (HWND)(SNDMSG ((d), PSM_GETCURRENTPAGEHWND, 0, 0))
+
+#define PropSheet_GetTabControl( d )                                   \
+  (HWND)(SNDMSG ((d), PSM_GETTABCONTROL, 0, 0))
+
+#define PropSheet_IsDialogMessage( d, m )                              \
+  (BOOL)(SNDMSG ((d), PSM_ISDIALOGMESSAGE, 0, (LPARAM)(m)))
+
+#define PropSheet_PressButton( d, i )                                  \
+  POSTMSG ((d), PSM_PRESSBUTTON, (i), 0)
+
+#define PropSheet_QuerySiblings( d, w, l )                             \
+  SNDMSG ((d), PSM_QUERYSIBLINGS, (w), (l))
+
+#define PropSheet_RebootSystem( d )                                    \
+  SNDMSG ((d), PSM_REBOOTSYSTEM, 0, 0)
+
+#define PropSheet_RemovePage( d, i, p )                                \
+  SNDMSG ((d), PSM_REMOVEPAGE, (i), (LPARAM)(p))
+
+#define PropSheet_RestartWindows( d )                                  \
+  SNDMSG ((d), PSM_RESTARTWINDOWS, 0, 0)
+
+#define PropSheet_SetCurSel( d, p, i )                                 \
+  SNDMSG ((d), PSM_SETCURSEL, (i), (LPARAM)(p))
+
+#define PropSheet_SetCurSelByID( d, i )                                \
+  SNDMSG ((d), PSM_SETCURSELID, 0, (i))
+
+#define PropSheet_SetFinishText( d, s )                                \
+  SNDMSG ((d), PSM_SETFINISHTEXT, 0, (LPARAM)(s))
+
+#define PropSheet_SetTitle( d, w, s )                                  \
+  SNDMSG ((d), PSM_SETTITLE, (w), (LPARAM)(s))
+
+#define PropSheet_SetWizButtons( d, f )                                \
+  POSTMSG ((d), PSM_SETWIZBUTTONS, 0, (LPARAM)(f))
+
+#define PropSheet_UnChanged( d, w )                                    \
+  SNDMSG ((d), PSM_UNCHANGED, (WPARAM)(w), 0)
+
+#endif /* ! RC_INVOKED */
+
+_END_C_DECLS
+
+#endif /* !_PRSHT_H: $RCSfile$: end of file */