1 /**
2  * This file has no copyright assigned and is placed in the Public Domain.
3  * This file is part of the mingw-w64 runtime package.
4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5  */
6 #ifndef _PRSHT_H_
7 #define _PRSHT_H_
8 
9 #include <_mingw_unicode.h>
10 
11 #ifndef _WINRESRC_
12 #ifndef _WIN32_IE
13 #define _WIN32_IE 0x0501
14 #endif
15 #endif
16 
17 #ifndef WINCOMMCTRLAPI
18 #ifndef _COMCTL32_
19 #define WINCOMMCTRLAPI DECLSPEC_IMPORT
20 #else
21 #define WINCOMMCTRLAPI
22 #endif
23 #endif
24 
25 #ifndef CCSIZEOF_STRUCT
26 #define CCSIZEOF_STRUCT(structname,member) (((int)((LPBYTE)(&((structname*)0)->member) - ((LPBYTE)((structname*)0)))) + sizeof(((structname*)0)->member))
27 #endif
28 
29 #ifdef _WIN64
30 #include <pshpack8.h>
31 #else
32 #include <pshpack4.h>
33 #endif
34 
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38 
39 #ifndef SNDMSG
40 #ifdef __cplusplus
41 #define SNDMSG ::SendMessage
42 #else
43 #define SNDMSG SendMessage
44 #endif
45 #endif
46 
47 #define MAXPROPPAGES 100
48 
49   struct _PSP;
50   struct _PROPSHEETPAGEA;
51   struct _PROPSHEETPAGEW;
52 
53   typedef struct _PSP *HPROPSHEETPAGE;
54   typedef UINT (CALLBACK *LPFNPSPCALLBACKA)(HWND hwnd,UINT uMsg,struct _PROPSHEETPAGEA *ppsp);
55   typedef UINT (CALLBACK *LPFNPSPCALLBACKW)(HWND hwnd,UINT uMsg,struct _PROPSHEETPAGEW *ppsp);
56 
57 #define LPFNPSPCALLBACK __MINGW_NAME_AW(LPFNPSPCALLBACK)
58 
59 #define PSP_DEFAULT 0x00000000
60 #define PSP_DLGINDIRECT 0x00000001
61 #define PSP_USEHICON 0x00000002
62 #define PSP_USEICONID 0x00000004
63 #define PSP_USETITLE 0x00000008
64 #define PSP_RTLREADING 0x00000010
65 
66 #define PSP_HASHELP 0x00000020
67 #define PSP_USEREFPARENT 0x00000040
68 #define PSP_USECALLBACK 0x00000080
69 #define PSP_PREMATURE 0x00000400
70 
71 #define PSP_HIDEHEADER 0x00000800
72 #define PSP_USEHEADERTITLE 0x00001000
73 #define PSP_USEHEADERSUBTITLE 0x00002000
74 #define PSP_USEFUSIONCONTEXT 0x00004000
75 
76 #define PSPCB_ADDREF 0
77 #define PSPCB_RELEASE 1
78 #define PSPCB_CREATE 2
79 
80 #define PROPSHEETPAGEA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA,pcRefParent)
81 #define PROPSHEETPAGEW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW,pcRefParent)
82 
83 #define PROPSHEETPAGEA_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEA,pszHeaderSubTitle)
84 #define PROPSHEETPAGEW_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETPAGEW,pszHeaderSubTitle)
85 
86   typedef LPCDLGTEMPLATE PROPSHEETPAGE_RESOURCE;
87 
88 #define PROPSHEETPAGEA_V1_FIELDS				\
89   DWORD dwSize,dwFlags;						\
90   HINSTANCE hInstance;						\
91   __C89_NAMELESS union {					\
92     LPCSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource;	\
93   } DUMMYUNIONNAME;						\
94   __C89_NAMELESS union {					\
95     HICON hIcon; LPCSTR pszIcon;				\
96   } DUMMYUNIONNAME2;						\
97   LPCSTR pszTitle;						\
98   DLGPROC pfnDlgProc;						\
99   LPARAM lParam;						\
100   LPFNPSPCALLBACKA pfnCallback;					\
101   UINT *pcRefParent;
102 
103 #define PROPSHEETPAGEW_V1_FIELDS				\
104   DWORD dwSize, dwFlags;					\
105   HINSTANCE hInstance;						\
106   __C89_NAMELESS union {					\
107     LPCWSTR pszTemplate; PROPSHEETPAGE_RESOURCE pResource;	\
108   } DUMMYUNIONNAME;						\
109   __C89_NAMELESS union {					\
110     HICON hIcon; LPCWSTR pszIcon;				\
111   } DUMMYUNIONNAME2;						\
112   LPCWSTR pszTitle;						\
113   DLGPROC pfnDlgProc;						\
114   LPARAM lParam;						\
115   LPFNPSPCALLBACKW pfnCallback;					\
116   UINT *pcRefParent;
117 
118 #define _PROPSHEETPAGEA_V3 _PROPSHEETPAGEA
119 #define _PROPSHEETPAGEW_V3 _PROPSHEETPAGEW
120 
121   typedef struct _PROPSHEETPAGEA_V1 {
122     PROPSHEETPAGEA_V1_FIELDS
123   } PROPSHEETPAGEA_V1,*LPPROPSHEETPAGEA_V1;
124 
125   typedef const PROPSHEETPAGEA_V1 *LPCPROPSHEETPAGEA_V1;
126 
127   typedef struct _PROPSHEETPAGEA_V2 {
128     PROPSHEETPAGEA_V1_FIELDS
129 
130       LPCSTR pszHeaderTitle;
131     LPCSTR pszHeaderSubTitle;
132   } PROPSHEETPAGEA_V2,*LPPROPSHEETPAGEA_V2;
133 
134   typedef const PROPSHEETPAGEA_V2 *LPCPROPSHEETPAGEA_V2;
135 
136   typedef struct _PROPSHEETPAGEA_V3 {
137     PROPSHEETPAGEA_V1_FIELDS
138       LPCSTR pszHeaderTitle;
139     LPCSTR pszHeaderSubTitle;
140     HANDLE hActCtx;
141   } PROPSHEETPAGEA_V3,*LPPROPSHEETPAGEA_V3;
142 
143   typedef const PROPSHEETPAGEA_V3 *LPCPROPSHEETPAGEA_V3;
144 
145   typedef struct _PROPSHEETPAGEW_V1 {
146     PROPSHEETPAGEW_V1_FIELDS
147   } PROPSHEETPAGEW_V1,*LPPROPSHEETPAGEW_V1;
148 
149   typedef const PROPSHEETPAGEW_V1 *LPCPROPSHEETPAGEW_V1;
150 
151   typedef struct _PROPSHEETPAGEW_V2 {
152     PROPSHEETPAGEW_V1_FIELDS
153       LPCWSTR pszHeaderTitle;
154     LPCWSTR pszHeaderSubTitle;
155   } PROPSHEETPAGEW_V2,*LPPROPSHEETPAGEW_V2;
156 
157   typedef const PROPSHEETPAGEW_V2 *LPCPROPSHEETPAGEW_V2;
158 
159   typedef struct _PROPSHEETPAGEW_V3 {
160     PROPSHEETPAGEW_V1_FIELDS
161       LPCWSTR pszHeaderTitle;
162     LPCWSTR pszHeaderSubTitle;
163     HANDLE hActCtx;
164   } PROPSHEETPAGEW_V3,*LPPROPSHEETPAGEW_V3;
165 
166   typedef const PROPSHEETPAGEW_V3 *LPCPROPSHEETPAGEW_V3;
167   typedef PROPSHEETPAGEA_V3 PROPSHEETPAGEA_LATEST;
168   typedef PROPSHEETPAGEW_V3 PROPSHEETPAGEW_LATEST;
169   typedef LPPROPSHEETPAGEA_V3 LPPROPSHEETPAGEA_LATEST;
170   typedef LPPROPSHEETPAGEW_V3 LPPROPSHEETPAGEW_LATEST;
171   typedef LPCPROPSHEETPAGEA_V3 LPCPROPSHEETPAGEA_LATEST;
172   typedef LPCPROPSHEETPAGEW_V3 LPCPROPSHEETPAGEW_LATEST;
173 
174   typedef PROPSHEETPAGEA_V3 PROPSHEETPAGEA;
175   typedef PROPSHEETPAGEW_V3 PROPSHEETPAGEW;
176   typedef LPPROPSHEETPAGEA_V3 LPPROPSHEETPAGEA;
177   typedef LPPROPSHEETPAGEW_V3 LPPROPSHEETPAGEW;
178   typedef LPCPROPSHEETPAGEA_V3 LPCPROPSHEETPAGEA;
179   typedef LPCPROPSHEETPAGEW_V3 LPCPROPSHEETPAGEW;
180 
181 #define PROPSHEETPAGE __MINGW_NAME_AW(PROPSHEETPAGE)
182 #define LPPROPSHEETPAGE __MINGW_NAME_AW(LPPROPSHEETPAGE)
183 #define LPCPROPSHEETPAGE __MINGW_NAME_AW(LPCPROPSHEETPAGE)
184 
185 #define PROPSHEETPAGE_V1_SIZE __MINGW_NAME_AW_EXT(PROPSHEETPAGE,_V1_SIZE)
186 #define PROPSHEETPAGE_V2_SIZE __MINGW_NAME_AW_EXT(PROPSHEETPAGE,_V2_SIZE)
187 #define PROPSHEETPAGE_V1 __MINGW_NAME_AW_EXT(PROPSHEETPAGE,_V1)
188 #define LPPROPSHEETPAGE_V1 __MINGW_NAME_AW_EXT(LPPROPSHEETPAGE,_V1)
189 #define LPCPROPSHEETPAGE_V1 __MINGW_NAME_AW_EXT(LPCPROPSHEETPAGE,_V1)
190 #define PROPSHEETPAGE_V2 __MINGW_NAME_AW_EXT(PROPSHEETPAGE,_V2)
191 #define LPPROPSHEETPAGE_V2 __MINGW_NAME_AW_EXT(LPPROPSHEETPAGE,_V2)
192 #define LPCPROPSHEETPAGE_V2 __MINGW_NAME_AW_EXT(LPCPROPSHEETPAGE,_V2)
193 #define PROPSHEETPAGE_V3 __MINGW_NAME_AW_EXT(PROPSHEETPAGE,_V3)
194 #define LPPROPSHEETPAGE_V3 __MINGW_NAME_AW_EXT(LPPROPSHEETPAGE,_V3)
195 #define LPCPROPSHEETPAGE_V3 __MINGW_NAME_AW_EXT(LPCPROPSHEETPAGE,_V3)
196 #define PROPSHEETPAGE_LATEST __MINGW_NAME_AW_EXT(PROPSHEETPAGE,_LATEST)
197 #define LPPROPSHEETPAGE_LATEST __MINGW_NAME_AW_EXT(LPPROPSHEETPAGE,_LATEST)
198 #define LPCPROPSHEETPAGE_LATEST __MINGW_NAME_AW_EXT(LPCPROPSHEETPAGE,_LATEST)
199 
200 #define PSH_DEFAULT 0x00000000
201 #define PSH_PROPTITLE 0x00000001
202 #define PSH_USEHICON 0x00000002
203 #define PSH_USEICONID 0x00000004
204 #define PSH_PROPSHEETPAGE 0x00000008
205 #define PSH_WIZARDHASFINISH 0x00000010
206 #define PSH_WIZARD 0x00000020
207 #define PSH_USEPSTARTPAGE 0x00000040
208 #define PSH_NOAPPLYNOW 0x00000080
209 #define PSH_USECALLBACK 0x00000100
210 #define PSH_HASHELP 0x00000200
211 #define PSH_MODELESS 0x00000400
212 #define PSH_RTLREADING 0x00000800
213 #define PSH_WIZARDCONTEXTHELP 0x00001000
214 
215 #define PSH_WIZARD97 0x01000000
216 #define PSH_WATERMARK 0x00008000
217 #define PSH_USEHBMWATERMARK 0x00010000
218 #define PSH_USEHPLWATERMARK 0x00020000
219 #define PSH_STRETCHWATERMARK 0x00040000
220 #define PSH_HEADER 0x00080000
221 #define PSH_USEHBMHEADER 0x00100000
222 #define PSH_USEPAGELANG 0x00200000
223 
224 #define PSH_WIZARD_LITE 0x00400000
225 #define PSH_NOCONTEXTHELP 0x02000000
226 
227   typedef int (CALLBACK *PFNPROPSHEETCALLBACK)(HWND,UINT,LPARAM);
228 
229 #define PROPSHEETHEADERA_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA,pfnCallback)
230 #define PROPSHEETHEADERW_V1_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW,pfnCallback)
231 
232 #define PROPSHEETHEADERA_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERA,DUMMYUNION5_MEMBER(hbmHeader))
233 #define PROPSHEETHEADERW_V2_SIZE CCSIZEOF_STRUCT(PROPSHEETHEADERW,DUMMYUNION5_MEMBER(hbmHeader))
234 
235   typedef struct _PROPSHEETHEADERA {
236     DWORD dwSize;
237     DWORD dwFlags;
238     HWND hwndParent;
239     HINSTANCE hInstance;
240     __C89_NAMELESS union {
241       HICON hIcon;
242       LPCSTR pszIcon;
243     } DUMMYUNIONNAME;
244     LPCSTR pszCaption;
245     UINT nPages;
246     __C89_NAMELESS union {
247       UINT nStartPage;
248       LPCSTR pStartPage;
249     } DUMMYUNIONNAME2;
250     __C89_NAMELESS union {
251       LPCPROPSHEETPAGEA ppsp;
252       HPROPSHEETPAGE *phpage;
253     } DUMMYUNIONNAME3;
254     PFNPROPSHEETCALLBACK pfnCallback;
255     __C89_NAMELESS union {
256       HBITMAP hbmWatermark;
257       LPCSTR pszbmWatermark;
258     } DUMMYUNIONNAME4;
259     HPALETTE hplWatermark;
260     __C89_NAMELESS union {
261       HBITMAP hbmHeader;
262       LPCSTR pszbmHeader;
263     } DUMMYUNIONNAME5;
264   } PROPSHEETHEADERA,*LPPROPSHEETHEADERA;
265 
266   typedef const PROPSHEETHEADERA *LPCPROPSHEETHEADERA;
267 
268   typedef struct _PROPSHEETHEADERW {
269     DWORD dwSize;
270     DWORD dwFlags;
271     HWND hwndParent;
272     HINSTANCE hInstance;
273     __C89_NAMELESS union {
274       HICON hIcon;
275       LPCWSTR pszIcon;
276     } DUMMYUNIONNAME;
277     LPCWSTR pszCaption;
278     UINT nPages;
279     __C89_NAMELESS union {
280       UINT nStartPage;
281       LPCWSTR pStartPage;
282     } DUMMYUNIONNAME2;
283     __C89_NAMELESS union {
284       LPCPROPSHEETPAGEW ppsp;
285       HPROPSHEETPAGE *phpage;
286     } DUMMYUNIONNAME3;
287     PFNPROPSHEETCALLBACK pfnCallback;
288     __C89_NAMELESS union {
289       HBITMAP hbmWatermark;
290       LPCWSTR pszbmWatermark;
291     } DUMMYUNIONNAME4;
292     HPALETTE hplWatermark;
293     __C89_NAMELESS union {
294       HBITMAP hbmHeader;
295       LPCWSTR pszbmHeader;
296     } DUMMYUNIONNAME5;
297   } PROPSHEETHEADERW,*LPPROPSHEETHEADERW;
298 
299   typedef const PROPSHEETHEADERW *LPCPROPSHEETHEADERW;
300 
301 #define PROPSHEETHEADER __MINGW_NAME_AW(PROPSHEETHEADER)
302 #define LPPROPSHEETHEADER __MINGW_NAME_AW(LPPROPSHEETHEADER)
303 #define LPCPROPSHEETHEADER __MINGW_NAME_AW(LPCPROPSHEETHEADER)
304 
305 #define PROPSHEETHEADER_V1_SIZE __MINGW_NAME_AW_EXT(PROPSHEETHEADER,_V1_SIZE)
306 #define PROPSHEETHEADER_V2_SIZE __MINGW_NAME_AW_EXT(PROPSHEETHEADER,_V2_SIZE)
307 
308 #define PSCB_INITIALIZED 1
309 #define PSCB_PRECREATE 2
310 #define PSCB_BUTTONPRESSED 3
311 
312   WINCOMMCTRLAPI HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(LPCPROPSHEETPAGEA constPropSheetPagePointer);
313   WINCOMMCTRLAPI HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW constPropSheetPagePointer);
314   WINCOMMCTRLAPI WINBOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE);
315   WINCOMMCTRLAPI INT_PTR WINAPI PropertySheetA(LPCPROPSHEETHEADERA);
316   WINCOMMCTRLAPI INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW);
317 
318 #define CreatePropertySheetPage __MINGW_NAME_AW(CreatePropertySheetPage)
319 #define PropertySheet __MINGW_NAME_AW(PropertySheet)
320 
321   typedef WINBOOL (CALLBACK *LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE,LPARAM);
322   typedef WINBOOL (CALLBACK *LPFNADDPROPSHEETPAGES)(LPVOID,LPFNADDPROPSHEETPAGE,LPARAM);
323 
324   typedef struct _PSHNOTIFY {
325     NMHDR hdr;
326     LPARAM lParam;
327   } PSHNOTIFY,*LPPSHNOTIFY;
328 
329 #define PSN_FIRST (0U-200U)
330 #define PSN_LAST (0U-299U)
331 
332 #define PSN_SETACTIVE (PSN_FIRST-0)
333 #define PSN_KILLACTIVE (PSN_FIRST-1)
334 #define PSN_APPLY (PSN_FIRST-2)
335 #define PSN_RESET (PSN_FIRST-3)
336 #define PSN_HELP (PSN_FIRST-5)
337 #define PSN_WIZBACK (PSN_FIRST-6)
338 #define PSN_WIZNEXT (PSN_FIRST-7)
339 #define PSN_WIZFINISH (PSN_FIRST-8)
340 #define PSN_QUERYCANCEL (PSN_FIRST-9)
341 #define PSN_GETOBJECT (PSN_FIRST-10)
342 #define PSN_TRANSLATEACCELERATOR (PSN_FIRST-12)
343 #define PSN_QUERYINITIALFOCUS (PSN_FIRST-13)
344 
345 #define PSNRET_NOERROR 0
346 #define PSNRET_INVALID 1
347 #define PSNRET_INVALID_NOCHANGEPAGE 2
348 #define PSNRET_MESSAGEHANDLED 3
349 
350 #define PSM_SETCURSEL (WM_USER + 101)
351 #define PropSheet_SetCurSel(hDlg,hpage,index) SNDMSG(hDlg,PSM_SETCURSEL,(WPARAM)index,(LPARAM)hpage)
352 
353 #define PSM_REMOVEPAGE (WM_USER + 102)
354 #define PropSheet_RemovePage(hDlg,index,hpage) SNDMSG(hDlg,PSM_REMOVEPAGE,index,(LPARAM)hpage)
355 
356 #define PSM_ADDPAGE (WM_USER + 103)
357 #define PropSheet_AddPage(hDlg,hpage) SNDMSG(hDlg,PSM_ADDPAGE,0,(LPARAM)hpage)
358 
359 #define PSM_CHANGED (WM_USER + 104)
360 #define PropSheet_Changed(hDlg,hwnd) SNDMSG(hDlg,PSM_CHANGED,(WPARAM)hwnd,(LPARAM)0)
361 
362 #define PSM_RESTARTWINDOWS (WM_USER + 105)
363 #define PropSheet_RestartWindows(hDlg) SNDMSG(hDlg,PSM_RESTARTWINDOWS,(WPARAM)0,(LPARAM)0)
364 
365 #define PSM_REBOOTSYSTEM (WM_USER + 106)
366 #define PropSheet_RebootSystem(hDlg) SNDMSG(hDlg,PSM_REBOOTSYSTEM,(WPARAM)0,(LPARAM)0)
367 
368 #define PSM_CANCELTOCLOSE (WM_USER + 107)
369 #define PropSheet_CancelToClose(hDlg) PostMessage(hDlg,PSM_CANCELTOCLOSE,(WPARAM)0,(LPARAM)0)
370 
371 #define PSM_QUERYSIBLINGS (WM_USER + 108)
372 #define PropSheet_QuerySiblings(hDlg,wParam,lParam) SNDMSG(hDlg,PSM_QUERYSIBLINGS,wParam,lParam)
373 
374 #define PSM_UNCHANGED (WM_USER + 109)
375 #define PropSheet_UnChanged(hDlg,hwnd) SNDMSG(hDlg,PSM_UNCHANGED,(WPARAM)hwnd,(LPARAM)0)
376 
377 #define PSM_APPLY (WM_USER + 110)
378 #define PropSheet_Apply(hDlg) SNDMSG(hDlg,PSM_APPLY,(WPARAM)0,(LPARAM)0)
379 
380 #define PSM_SETTITLEA (WM_USER + 111)
381 #define PSM_SETTITLEW (WM_USER + 120)
382 
383 #define PSM_SETTITLE __MINGW_NAME_AW(PSM_SETTITLE)
384 
385 #define PropSheet_SetTitle(hDlg,wStyle,lpszText) SNDMSG(hDlg,PSM_SETTITLE,wStyle,(LPARAM)(LPCTSTR)(lpszText))
386 
387 #define PSM_SETWIZBUTTONS (WM_USER + 112)
388 #define PropSheet_SetWizButtons(hDlg,dwFlags) PostMessage(hDlg,PSM_SETWIZBUTTONS,(WPARAM)0,(LPARAM)dwFlags)
389 
390 #define PSWIZB_BACK 0x00000001
391 #define PSWIZB_NEXT 0x00000002
392 #define PSWIZB_FINISH 0x00000004
393 #define PSWIZB_DISABLEDFINISH 0x00000008
394 
395 #define PSM_PRESSBUTTON (WM_USER + 113)
396 #define PropSheet_PressButton(hDlg,iButton) PostMessage(hDlg,PSM_PRESSBUTTON,(WPARAM)iButton,(LPARAM)0)
397 
398 #define PSBTN_BACK 0
399 #define PSBTN_NEXT 1
400 #define PSBTN_FINISH 2
401 #define PSBTN_OK 3
402 #define PSBTN_APPLYNOW 4
403 #define PSBTN_CANCEL 5
404 #define PSBTN_HELP 6
405 #define PSBTN_MAX 6
406 
407 #define PSM_SETCURSELID (WM_USER + 114)
408 #define PropSheet_SetCurSelByID(hDlg,id) SNDMSG(hDlg,PSM_SETCURSELID,0,(LPARAM)id)
409 
410 #define PSM_SETFINISHTEXTA (WM_USER + 115)
411 #define PSM_SETFINISHTEXTW (WM_USER + 121)
412 
413 #define PSM_SETFINISHTEXT __MINGW_NAME_AW(PSM_SETFINISHTEXT)
414 
415 #define PropSheet_SetFinishText(hDlg,lpszText) SNDMSG(hDlg,PSM_SETFINISHTEXT,0,(LPARAM)lpszText)
416 
417 #define PSM_GETTABCONTROL (WM_USER + 116)
418 #define PropSheet_GetTabControl(hDlg) (HWND)SNDMSG(hDlg,PSM_GETTABCONTROL,0,0)
419 
420 #define PSM_ISDIALOGMESSAGE (WM_USER + 117)
421 #define PropSheet_IsDialogMessage(hDlg,pMsg) (WINBOOL)SNDMSG(hDlg,PSM_ISDIALOGMESSAGE,0,(LPARAM)pMsg)
422 
423 #define PSM_GETCURRENTPAGEHWND (WM_USER + 118)
424 #define PropSheet_GetCurrentPageHwnd(hDlg) (HWND)SNDMSG(hDlg,PSM_GETCURRENTPAGEHWND,(WPARAM)0,(LPARAM)0)
425 
426 #define PSM_INSERTPAGE (WM_USER + 119)
427 #define PropSheet_InsertPage(hDlg,index,hpage) SNDMSG(hDlg,PSM_INSERTPAGE,(WPARAM)(index),(LPARAM)(hpage))
428 
429 #define PSM_SETHEADERTITLEA (WM_USER + 125)
430 #define PSM_SETHEADERTITLEW (WM_USER + 126)
431 
432 #define PSM_SETHEADERTITLE __MINGW_NAME_AW(PSM_SETHEADERTITLE)
433 
434 #define PropSheet_SetHeaderTitle(hDlg,index,lpszText) SNDMSG(hDlg,PSM_SETHEADERTITLE,(WPARAM)(index),(LPARAM)(lpszText))
435 
436 #define PSM_SETHEADERSUBTITLEA (WM_USER + 127)
437 #define PSM_SETHEADERSUBTITLEW (WM_USER + 128)
438 
439 #define PSM_SETHEADERSUBTITLE __MINGW_NAME_AW(PSM_SETHEADERSUBTITLE)
440 
441 #define PropSheet_SetHeaderSubTitle(hDlg,index,lpszText) SNDMSG(hDlg,PSM_SETHEADERSUBTITLE,(WPARAM)(index),(LPARAM)(lpszText))
442 
443 #define PSM_HWNDTOINDEX (WM_USER + 129)
444 #define PropSheet_HwndToIndex(hDlg,hwnd) (int)SNDMSG(hDlg,PSM_HWNDTOINDEX,(WPARAM)(hwnd),0)
445 #define PSM_INDEXTOHWND (WM_USER + 130)
446 #define PropSheet_IndexToHwnd(hDlg,i) (HWND)SNDMSG(hDlg,PSM_INDEXTOHWND,(WPARAM)(i),0)
447 #define PSM_PAGETOINDEX (WM_USER + 131)
448 #define PropSheet_PageToIndex(hDlg,hpage) (int)SNDMSG(hDlg,PSM_PAGETOINDEX,0,(LPARAM)(hpage))
449 #define PSM_INDEXTOPAGE (WM_USER + 132)
450 #define PropSheet_IndexToPage(hDlg,i) (HPROPSHEETPAGE)SNDMSG(hDlg,PSM_INDEXTOPAGE,(WPARAM)(i),0)
451 #define PSM_IDTOINDEX (WM_USER + 133)
452 #define PropSheet_IdToIndex(hDlg,id) (int)SNDMSG(hDlg,PSM_IDTOINDEX,0,(LPARAM)(id))
453 #define PSM_INDEXTOID (WM_USER + 134)
454 #define PropSheet_IndexToId(hDlg,i) SNDMSG(hDlg,PSM_INDEXTOID,(WPARAM)(i),0)
455 #define PSM_GETRESULT (WM_USER + 135)
456 #define PropSheet_GetResult(hDlg) SNDMSG(hDlg,PSM_GETRESULT,0,0)
457 #define PSM_RECALCPAGESIZES (WM_USER + 136)
458 #define PropSheet_RecalcPageSizes(hDlg) SNDMSG(hDlg,PSM_RECALCPAGESIZES,0,0)
459 
460 #define ID_PSRESTARTWINDOWS 0x2
461 #define ID_PSREBOOTSYSTEM (ID_PSRESTARTWINDOWS | 0x1)
462 
463 #define WIZ_CXDLG 276
464 #define WIZ_CYDLG 140
465 
466 #define WIZ_CXBMP 80
467 
468 #define WIZ_BODYX 92
469 #define WIZ_BODYCX 184
470 
471 #define PROP_SM_CXDLG 212
472 #define PROP_SM_CYDLG 188
473 
474 #define PROP_MED_CXDLG 227
475 #define PROP_MED_CYDLG 215
476 
477 #define PROP_LG_CXDLG 252
478 #define PROP_LG_CYDLG 218
479 
480 #ifdef __cplusplus
481 }
482 #endif
483 
484 #include <poppack.h>
485 #endif
486