From dc13681f4620fbe7cc94e4f862bc44a43d7a8163 Mon Sep 17 00:00:00 2001 From: Keith Marshall Date: Fri, 16 Nov 2018 20:03:22 +0000 Subject: [PATCH] Make header effectively self-contained. --- w32api/ChangeLog | 15 + w32api/include/prsht.h | 754 +++++++++++++++++++++++++++++-------------------- 2 files changed, 462 insertions(+), 307 deletions(-) diff --git a/w32api/ChangeLog b/w32api/ChangeLog index 0e3c6c8..d104aea 100644 --- a/w32api/ChangeLog +++ b/w32api/ChangeLog @@ -1,3 +1,18 @@ +2018-11-16 Keith Marshall + + Make header effectively self-contained. + + * include/prsht.h: Tidy layout; assert copyright. + Include 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 Clean up ; consolidate its version dependencies. diff --git a/w32api/include/prsht.h b/w32api/include/prsht.h index a7706ab..50c3f18 100644 --- a/w32api/include/prsht.h +++ b/w32api/include/prsht.h @@ -1,320 +1,460 @@ +/* + * prsht.h + * + * Windows Property Sheet API definitions. + * + * + * $Id$ + * + * Written by Anders Norlander + * 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 -#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 */ -- 2.11.0