blob: d6aada7adcdb53d806da9720ec7978bffeb596a4 [file] [log] [blame]
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00001/*
2 * Copyright (C) the Wine project
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
Jonathan Ernst360a3f92006-05-18 14:49:52 +020016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Alexandre Julliard0799c1a2002-03-09 23:29:33 +000017 */
18
Patrik Stridvall857eb391999-06-12 18:36:54 +000019#ifndef __WINE_PRSHT_H
20#define __WINE_PRSHT_H
Alexandre Julliard06664441999-02-11 16:22:12 +000021
Alexandre Julliard06664441999-02-11 16:22:12 +000022#ifdef __cplusplus
23extern "C" {
24#endif
25
26
27/*
28 * Property sheet support (callback procs)
29 */
30
31
Alexandre Julliarda3960291999-02-26 11:11:13 +000032#define WC_PROPSHEETA "SysPropertySheet"
Dmitry Timoshkova9c057f2002-09-16 19:29:36 +000033#if defined(__GNUC__)
34# define WC_PROPSHEETW (const WCHAR []){ 'S','y','s', \
35 'P','r','o','p','e','r','t','y','S','h','e','e','t',0 }
36#elif defined(_MSC_VER)
37# define WC_PROPSHEETW L"SysPropertySheet"
38#else
Jon Griffiths7a6bad82001-01-22 02:13:58 +000039static const WCHAR WC_PROPSHEETW[] = { 'S','y','s',
40 'P','r','o','p','e','r','t','y','S','h','e','e','t',0 };
Dmitry Timoshkova9c057f2002-09-16 19:29:36 +000041#endif
Alexandre Julliard06664441999-02-11 16:22:12 +000042#define WC_PROPSHEET WINELIB_NAME_AW(WC_PROPSHEET)
43
Alexandre Julliarda3960291999-02-26 11:11:13 +000044struct _PROPSHEETPAGEA; /** need to forward declare those structs **/
45struct _PROPSHEETPAGEW;
Alexandre Julliard06664441999-02-11 16:22:12 +000046struct _PSP;
47typedef struct _PSP *HPROPSHEETPAGE;
48
49
Patrik Stridvallf94462f2002-01-31 23:22:07 +000050typedef UINT (CALLBACK *LPFNPSPCALLBACKA)(HWND, UINT, struct _PROPSHEETPAGEA*);
51typedef UINT (CALLBACK *LPFNPSPCALLBACKW)(HWND, UINT, struct _PROPSHEETPAGEW*);
52typedef INT (CALLBACK *PFNPROPSHEETCALLBACK)(HWND, UINT, LPARAM);
53typedef BOOL (CALLBACK *LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM);
54typedef BOOL (CALLBACK *LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM);
Alexandre Julliard06664441999-02-11 16:22:12 +000055
Alexandre Julliard06664441999-02-11 16:22:12 +000056/*
57 * Property sheet support (structures)
58 */
Alexandre Julliarda3960291999-02-26 11:11:13 +000059typedef struct _PROPSHEETPAGEA
Alexandre Julliard06664441999-02-11 16:22:12 +000060{
61 DWORD dwSize;
62 DWORD dwFlags;
Alexandre Julliarda3960291999-02-26 11:11:13 +000063 HINSTANCE hInstance;
Vincent Béron9a624912002-05-31 23:06:46 +000064 union
Alexandre Julliard06664441999-02-11 16:22:12 +000065 {
66 LPCSTR pszTemplate;
Bertho Stultiensdbf9fba1999-03-13 17:09:13 +000067 LPCDLGTEMPLATEA pResource;
Peter Hunnisett565b0082000-09-19 02:43:00 +000068 }DUMMYUNIONNAME;
Alexandre Julliard06664441999-02-11 16:22:12 +000069 union
70 {
Alexandre Julliarda3960291999-02-26 11:11:13 +000071 HICON hIcon;
Alexandre Julliard06664441999-02-11 16:22:12 +000072 LPCSTR pszIcon;
73 }DUMMYUNIONNAME2;
74 LPCSTR pszTitle;
Alexandre Julliarda3960291999-02-26 11:11:13 +000075 DLGPROC pfnDlgProc;
Alexandre Julliard06664441999-02-11 16:22:12 +000076 LPARAM lParam;
Alexandre Julliarda3960291999-02-26 11:11:13 +000077 LPFNPSPCALLBACKA pfnCallback;
78 UINT* pcRefParent;
Francois Gougetd068b3f2000-10-13 17:10:24 +000079 LPCSTR pszHeaderTitle;
80 LPCSTR pszHeaderSubTitle;
Alexandre Julliarda3960291999-02-26 11:11:13 +000081} PROPSHEETPAGEA, *LPPROPSHEETPAGEA;
Alexandre Julliard06664441999-02-11 16:22:12 +000082
Alexandre Julliarda3960291999-02-26 11:11:13 +000083typedef const PROPSHEETPAGEA *LPCPROPSHEETPAGEA;
Alexandre Julliard06664441999-02-11 16:22:12 +000084
Alexandre Julliarda3960291999-02-26 11:11:13 +000085typedef struct _PROPSHEETPAGEW
Alexandre Julliard06664441999-02-11 16:22:12 +000086{
87 DWORD dwSize;
88 DWORD dwFlags;
Alexandre Julliarda3960291999-02-26 11:11:13 +000089 HINSTANCE hInstance;
Vincent Béron9a624912002-05-31 23:06:46 +000090 union
Alexandre Julliard06664441999-02-11 16:22:12 +000091 {
92 LPCWSTR pszTemplate;
Bertho Stultiensdbf9fba1999-03-13 17:09:13 +000093 LPCDLGTEMPLATEW pResource;
Peter Hunnisett565b0082000-09-19 02:43:00 +000094 }DUMMYUNIONNAME;
Alexandre Julliard06664441999-02-11 16:22:12 +000095 union
96 {
Alexandre Julliarda3960291999-02-26 11:11:13 +000097 HICON hIcon;
Alexandre Julliard06664441999-02-11 16:22:12 +000098 LPCWSTR pszIcon;
99 }DUMMYUNIONNAME2;
100 LPCWSTR pszTitle;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000101 DLGPROC pfnDlgProc;
Alexandre Julliard06664441999-02-11 16:22:12 +0000102 LPARAM lParam;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000103 LPFNPSPCALLBACKW pfnCallback;
104 UINT* pcRefParent;
Alexandre Julliard06664441999-02-11 16:22:12 +0000105 LPCWSTR pszHeaderTitle;
106 LPCWSTR pszHeaderSubTitle;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000107} PROPSHEETPAGEW, *LPPROPSHEETPAGEW;
Alexandre Julliard06664441999-02-11 16:22:12 +0000108
Alexandre Julliarda3960291999-02-26 11:11:13 +0000109typedef const PROPSHEETPAGEW *LPCPROPSHEETPAGEW;
Alexandre Julliard06664441999-02-11 16:22:12 +0000110
111
Alexandre Julliarda3960291999-02-26 11:11:13 +0000112typedef struct _PROPSHEETHEADERA
Alexandre Julliard06664441999-02-11 16:22:12 +0000113{
114 DWORD dwSize;
115 DWORD dwFlags;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000116 HWND hwndParent;
117 HINSTANCE hInstance;
Alexandre Julliard06664441999-02-11 16:22:12 +0000118 union
119 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000120 HICON hIcon;
Alexandre Julliard06664441999-02-11 16:22:12 +0000121 LPCSTR pszIcon;
Peter Hunnisett565b0082000-09-19 02:43:00 +0000122 }DUMMYUNIONNAME;
Alexandre Julliard06664441999-02-11 16:22:12 +0000123 LPCSTR pszCaption;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000124 UINT nPages;
Alexandre Julliard06664441999-02-11 16:22:12 +0000125 union
126 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000127 UINT nStartPage;
Alexandre Julliard06664441999-02-11 16:22:12 +0000128 LPCSTR pStartPage;
129 }DUMMYUNIONNAME2;
130 union
131 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000132 LPCPROPSHEETPAGEA ppsp;
Alexandre Julliard06664441999-02-11 16:22:12 +0000133 HPROPSHEETPAGE* phpage;
134 }DUMMYUNIONNAME3;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000135 PFNPROPSHEETCALLBACK pfnCallback;
Alexandre Julliard06664441999-02-11 16:22:12 +0000136 union
137 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000138 HBITMAP hbmWatermark;
Alexandre Julliard06664441999-02-11 16:22:12 +0000139 LPCSTR pszbmWatermark;
140 }DUMMYUNIONNAME4;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000141 HPALETTE hplWatermark;
Alexandre Julliard06664441999-02-11 16:22:12 +0000142 union
143 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000144 HBITMAP hbmHeader;
Alexandre Julliard06664441999-02-11 16:22:12 +0000145 LPCSTR pszbmHeader;
146 }DUMMYUNIONNAME5;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000147} PROPSHEETHEADERA, *LPPROPSHEETHEADERA;
Alexandre Julliard06664441999-02-11 16:22:12 +0000148
Alexandre Julliarda3960291999-02-26 11:11:13 +0000149typedef const PROPSHEETHEADERA *LPCPROPSHEETHEADERA;
Alexandre Julliard06664441999-02-11 16:22:12 +0000150
Alexandre Julliarda3960291999-02-26 11:11:13 +0000151typedef struct _PROPSHEETHEADERW
Alexandre Julliard06664441999-02-11 16:22:12 +0000152{
153 DWORD dwSize;
154 DWORD dwFlags;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000155 HWND hwndParent;
156 HINSTANCE hInstance;
Alexandre Julliard06664441999-02-11 16:22:12 +0000157 union
158 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000159 HICON hIcon;
Alexandre Julliardd3280852002-01-29 17:14:53 +0000160 LPCWSTR pszIcon;
161 }DUMMYUNIONNAME;
Alexandre Julliard06664441999-02-11 16:22:12 +0000162 LPCWSTR pszCaption;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000163 UINT nPages;
Alexandre Julliard06664441999-02-11 16:22:12 +0000164 union
165 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000166 UINT nStartPage;
Alexandre Julliard06664441999-02-11 16:22:12 +0000167 LPCWSTR pStartPage;
168 }DUMMYUNIONNAME2;
169 union
170 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000171 LPCPROPSHEETPAGEW ppsp;
Alexandre Julliard06664441999-02-11 16:22:12 +0000172 HPROPSHEETPAGE* phpage;
173 }DUMMYUNIONNAME3;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000174 PFNPROPSHEETCALLBACK pfnCallback;
Alexandre Julliard06664441999-02-11 16:22:12 +0000175 union
176 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000177 HBITMAP hbmWatermark;
Alexandre Julliard06664441999-02-11 16:22:12 +0000178 LPCWSTR pszbmWatermark;
179 }DUMMYUNIONNAME4;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000180 HPALETTE hplWatermark;
Alexandre Julliard06664441999-02-11 16:22:12 +0000181 union
182 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000183 HBITMAP hbmHeader;
Alexandre Julliard06664441999-02-11 16:22:12 +0000184 LPCWSTR pszbmHeader;
185 }DUMMYUNIONNAME5;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000186} PROPSHEETHEADERW, *LPPROPSHEETHEADERW;
Alexandre Julliard06664441999-02-11 16:22:12 +0000187
Alexandre Julliarda3960291999-02-26 11:11:13 +0000188typedef const PROPSHEETHEADERW *LPCPROPSHEETHEADERW;
Alexandre Julliard06664441999-02-11 16:22:12 +0000189
190
191/*
192 * Property sheet support (methods)
193 */
Frank Richter9e570912005-08-30 10:07:17 +0000194INT_PTR WINAPI PropertySheetA(LPCPROPSHEETHEADERA);
195INT_PTR WINAPI PropertySheetW(LPCPROPSHEETHEADERW);
Alexandre Julliard06664441999-02-11 16:22:12 +0000196#define PropertySheet WINELIB_NAME_AW(PropertySheet)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000197HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(LPCPROPSHEETPAGEA);
198HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW);
Alexandre Julliard06664441999-02-11 16:22:12 +0000199#define CreatePropertySheetPage WINELIB_NAME_AW(CreatePropertySheetPage)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000200BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE hPropPage);
Alexandre Julliard06664441999-02-11 16:22:12 +0000201
202/*
Francois Gougete550ebe2000-12-02 20:17:13 +0000203 * Property sheet support (UNICODE-Winelib)
Alexandre Julliard06664441999-02-11 16:22:12 +0000204 */
205
Vincent Béron9a624912002-05-31 23:06:46 +0000206DECL_WINELIB_TYPE_AW(PROPSHEETPAGE)
207DECL_WINELIB_TYPE_AW(LPPROPSHEETPAGE)
208DECL_WINELIB_TYPE_AW(LPCPROPSHEETPAGE)
209DECL_WINELIB_TYPE_AW(PROPSHEETHEADER)
210DECL_WINELIB_TYPE_AW(LPPROPSHEETHEADER)
211DECL_WINELIB_TYPE_AW(LPCPROPSHEETHEADER)
212DECL_WINELIB_TYPE_AW(LPFNPSPCALLBACK)
Alexandre Julliard06664441999-02-11 16:22:12 +0000213
214
215/*
216 * Property sheet support (defines)
217 */
218#define PSP_DEFAULT 0x0000
219#define PSP_DLGINDIRECT 0x0001
220#define PSP_USEHICON 0x0002
221#define PSP_USEICONID 0x0004
222#define PSP_USETITLE 0x0008
223#define PSP_RTLREADING 0x0010
224
225#define PSP_HASHELP 0x0020
226#define PSP_USEREFPARENT 0x0040
227#define PSP_USECALLBACK 0x0080
Alexandre Julliard08afc1a1999-11-28 21:01:47 +0000228#define PSP_PREMATURE 0x0400
Alexandre Julliard06664441999-02-11 16:22:12 +0000229
Alexandre Julliard08afc1a1999-11-28 21:01:47 +0000230#define PSP_HIDEHEADER 0x00000800
231#define PSP_USEHEADERTITLE 0x00001000
232#define PSP_USEHEADERSUBTITLE 0x00002000
Alexandre Julliard06664441999-02-11 16:22:12 +0000233
234#define PSPCB_RELEASE 1
235#define PSPCB_CREATE 2
236
237#define PSH_DEFAULT 0x0000
238#define PSH_PROPTITLE 0x0001
239#define PSH_USEHICON 0x0002
240#define PSH_USEICONID 0x0004
241#define PSH_PROPSHEETPAGE 0x0008
Alexandre Julliardd3280852002-01-29 17:14:53 +0000242#define PSH_WIZARDHASFINISH 0x0010
Alexandre Julliard06664441999-02-11 16:22:12 +0000243#define PSH_WIZARD 0x0020
244#define PSH_USEPSTARTPAGE 0x0040
245#define PSH_NOAPPLYNOW 0x0080
246#define PSH_USECALLBACK 0x0100
247#define PSH_HASHELP 0x0200
248#define PSH_MODELESS 0x0400
249#define PSH_RTLREADING 0x0800
Alexandre Julliard08afc1a1999-11-28 21:01:47 +0000250#define PSH_WIZARDCONTEXTHELP 0x00001000
Alexandre Julliard06664441999-02-11 16:22:12 +0000251
Francois Gouget3db00082002-12-06 23:19:54 +0000252#define PSH_WIZARD97_OLD 0x00002000 /* for IE < 5 */
Alexandre Julliard08afc1a1999-11-28 21:01:47 +0000253#define PSH_WATERMARK 0x00008000
254#define PSH_USEHBMWATERMARK 0x00010000
255#define PSH_USEHPLWATERMARK 0x00020000
256#define PSH_STRETCHWATERMARK 0x00040000
257#define PSH_HEADER 0x00080000
258#define PSH_USEHBMHEADER 0x00100000
259#define PSH_USEPAGELANG 0x00200000
Alexandre Julliardd3280852002-01-29 17:14:53 +0000260#define PSH_WIZARD_LITE 0x00400000
Francois Gouget3db00082002-12-06 23:19:54 +0000261#define PSH_WIZARD97_NEW 0x01000000 /* for IE >= 5 */
Alexandre Julliardd3280852002-01-29 17:14:53 +0000262#define PSH_NOCONTEXTHELP 0x02000000
Dimitrie O. Paun8b366812003-01-04 00:52:18 +0000263#ifndef __WINESRC__
Francois Gouget3db00082002-12-06 23:19:54 +0000264# if _WIN32_IE < 0x0500
265# define PSH_WIZARD97 PSH_WIZARD97_OLD
266# else
267# define PSH_WIZARD97 PSH_WIZARD97_NEW
268# endif
269#endif
Alexandre Julliardd3280852002-01-29 17:14:53 +0000270
Alexandre Julliard06664441999-02-11 16:22:12 +0000271#define PSCB_INITIALIZED 1
272#define PSCB_PRECREATE 2
273
Alexandre Julliard08afc1a1999-11-28 21:01:47 +0000274typedef struct _PSHNOTIFY
275{
276 NMHDR hdr;
277 LPARAM lParam;
278} PSHNOTIFY, *LPPSHNOTIFY;
Vincent Béron9a624912002-05-31 23:06:46 +0000279
Alexandre Julliard06664441999-02-11 16:22:12 +0000280#define PSN_FIRST (0U-200U)
281#define PSN_LAST (0U-299U)
282
283
284#define PSN_SETACTIVE (PSN_FIRST-0)
285#define PSN_KILLACTIVE (PSN_FIRST-1)
286/* #define PSN_VALIDATE (PSN_FIRST-1) */
287#define PSN_APPLY (PSN_FIRST-2)
288#define PSN_RESET (PSN_FIRST-3)
289/* #define PSN_CANCEL (PSN_FIRST-3) */
290#define PSN_HELP (PSN_FIRST-5)
291#define PSN_WIZBACK (PSN_FIRST-6)
292#define PSN_WIZNEXT (PSN_FIRST-7)
293#define PSN_WIZFINISH (PSN_FIRST-8)
294#define PSN_QUERYCANCEL (PSN_FIRST-9)
Francois Gougeta0e61ec2001-01-22 19:25:05 +0000295#define PSN_GETOBJECT (PSN_FIRST-10)
Mike McCormack65e48232004-08-16 20:00:26 +0000296#define PSN_TRANSLATEACCELERATOR (PSN_FIRST-12)
297#define PSN_QUERYINITIALFOCUS (PSN_FIRST-13)
Alexandre Julliard06664441999-02-11 16:22:12 +0000298
299#define PSNRET_NOERROR 0
300#define PSNRET_INVALID 1
301#define PSNRET_INVALID_NOCHANGEPAGE 2
Vincent Béron9a624912002-05-31 23:06:46 +0000302
Alexandre Julliard06664441999-02-11 16:22:12 +0000303
304#define PSM_SETCURSEL (WM_USER + 101)
305#define PSM_REMOVEPAGE (WM_USER + 102)
306#define PSM_ADDPAGE (WM_USER + 103)
307#define PSM_CHANGED (WM_USER + 104)
308#define PSM_RESTARTWINDOWS (WM_USER + 105)
309#define PSM_REBOOTSYSTEM (WM_USER + 106)
310#define PSM_CANCELTOCLOSE (WM_USER + 107)
311#define PSM_QUERYSIBLINGS (WM_USER + 108)
312#define PSM_UNCHANGED (WM_USER + 109)
313#define PSM_APPLY (WM_USER + 110)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000314#define PSM_SETTITLEA (WM_USER + 111)
315#define PSM_SETTITLEW (WM_USER + 120)
Alexandre Julliard06664441999-02-11 16:22:12 +0000316#define PSM_SETTITLE WINELIB_NAME_AW(PSM_SETTITLE)
317#define PSM_SETWIZBUTTONS (WM_USER + 112)
318#define PSM_PRESSBUTTON (WM_USER + 113)
319#define PSM_SETCURSELID (WM_USER + 114)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000320#define PSM_SETFINISHTEXTA (WM_USER + 115)
321#define PSM_SETFINISHTEXTW (WM_USER + 121)
Alexandre Julliard06664441999-02-11 16:22:12 +0000322#define PSM_SETFINISHTEXT WINELIB_NAME_AW(PSM_SETFINISHTEXT)
323#define PSM_GETTABCONTROL (WM_USER + 116)
324#define PSM_ISDIALOGMESSAGE (WM_USER + 117)
325#define PSM_GETCURRENTPAGEHWND (WM_USER + 118)
Robert Shearman02d15722004-07-12 20:43:36 +0000326#define PSM_INSERTPAGE (WM_USER + 119)
327#define PSM_SETHEADERTITLEA (WM_USER + 125)
328#define PSM_SETHEADERTITLEW (WM_USER + 126)
329#define PSM_SETHEADERTITLE WINELIB_NAME_AW(PSM_SETHEADERTITLE)
330#define PSM_SETHEADERSUBTITLEA (WM_USER + 127)
331#define PSM_SETHEADERSUBTITLEW (WM_USER + 128)
332#define PSM_SETHEADERSUBTITLE WINELIB_NAME_AW(PSM_SETHEADERSUBTITLE)
333#define PSM_HWNDTOINDEX (WM_USER + 129)
334#define PSM_INDEXTOHWND (WM_USER + 130)
335#define PSM_PAGETOINDEX (WM_USER + 131)
336#define PSM_INDEXTOPAGE (WM_USER + 132)
337#define PSM_IDTOINDEX (WM_USER + 133)
338#define PSM_INDEXTOID (WM_USER + 134)
339#define PSM_GETRESULT (WM_USER + 135)
340#define PSM_RECALCPAGESIZES (WM_USER + 136)
Alexandre Julliard06664441999-02-11 16:22:12 +0000341
342#define PSWIZB_BACK 0x00000001
343#define PSWIZB_NEXT 0x00000002
344#define PSWIZB_FINISH 0x00000004
345#define PSWIZB_DISABLEDFINISH 0x00000008
346
347#define PSBTN_BACK 0
348#define PSBTN_NEXT 1
349#define PSBTN_FINISH 2
350#define PSBTN_OK 3
351#define PSBTN_APPLYNOW 4
352#define PSBTN_CANCEL 5
353#define PSBTN_HELP 6
354#define PSBTN_MAX 6
355
356#define ID_PSRESTARTWINDOWS 0x2
357#define ID_PSREBOOTSYSTEM (ID_PSRESTARTWINDOWS | 0x1)
358
359
360#define WIZ_CXDLG 276
361#define WIZ_CYDLG 140
362
363#define WIZ_CXBMP 80
364
365#define WIZ_BODYX 92
366#define WIZ_BODYCX 184
367
368#define PROP_SM_CXDLG 212
369#define PROP_SM_CYDLG 188
370
371#define PROP_MED_CXDLG 227
372#define PROP_MED_CYDLG 215
373
374#define PROP_LG_CXDLG 252
375#define PROP_LG_CYDLG 218
376
377/*
378 * Property sheet support (macros)
379 */
380
381#define PropSheet_SetCurSel(hDlg, hpage, index) \
Francois Gouget3805ed51999-03-13 18:15:29 +0000382 SendMessageA(hDlg, PSM_SETCURSEL, (WPARAM)index, (LPARAM)hpage)
Vincent Béron9a624912002-05-31 23:06:46 +0000383
Alexandre Julliard06664441999-02-11 16:22:12 +0000384#define PropSheet_RemovePage(hDlg, index, hpage) \
385 SNDMSG(hDlg, PSM_REMOVEPAGE, index, (LPARAM)hpage)
Vincent Béron9a624912002-05-31 23:06:46 +0000386
Alexandre Julliard06664441999-02-11 16:22:12 +0000387#define PropSheet_AddPage(hDlg, hpage) \
388 SNDMSG(hDlg, PSM_ADDPAGE, 0, (LPARAM)hpage)
Vincent Béron9a624912002-05-31 23:06:46 +0000389
Alexandre Julliard06664441999-02-11 16:22:12 +0000390#define PropSheet_Changed(hDlg, hwnd) \
391 SNDMSG(hDlg, PSM_CHANGED, (WPARAM)hwnd, 0L)
Vincent Béron9a624912002-05-31 23:06:46 +0000392
Alexandre Julliard06664441999-02-11 16:22:12 +0000393#define PropSheet_RestartWindows(hDlg) \
394 SNDMSG(hDlg, PSM_RESTARTWINDOWS, 0, 0L)
Vincent Béron9a624912002-05-31 23:06:46 +0000395
Alexandre Julliard06664441999-02-11 16:22:12 +0000396#define PropSheet_RebootSystem(hDlg) \
397 SNDMSG(hDlg, PSM_REBOOTSYSTEM, 0, 0L)
Vincent Béron9a624912002-05-31 23:06:46 +0000398
Alexandre Julliard06664441999-02-11 16:22:12 +0000399#define PropSheet_CancelToClose(hDlg) \
400 PostMessage(hDlg, PSM_CANCELTOCLOSE, 0, 0L)
Vincent Béron9a624912002-05-31 23:06:46 +0000401
Alexandre Julliard06664441999-02-11 16:22:12 +0000402#define PropSheet_QuerySiblings(hDlg, wParam, lParam) \
403 SNDMSG(hDlg, PSM_QUERYSIBLINGS, wParam, lParam)
Vincent Béron9a624912002-05-31 23:06:46 +0000404
Alexandre Julliard06664441999-02-11 16:22:12 +0000405#define PropSheet_UnChanged(hDlg, hwnd) \
406 SNDMSG(hDlg, PSM_UNCHANGED, (WPARAM)hwnd, 0L)
Vincent Béron9a624912002-05-31 23:06:46 +0000407
Alexandre Julliard06664441999-02-11 16:22:12 +0000408#define PropSheet_Apply(hDlg) \
409 SNDMSG(hDlg, PSM_APPLY, 0, 0L)
Vincent Béron9a624912002-05-31 23:06:46 +0000410
Alexandre Julliard06664441999-02-11 16:22:12 +0000411#define PropSheet_SetTitle(hDlg, wStyle, lpszText)\
412 SNDMSG(hDlg, PSM_SETTITLE, wStyle, (LPARAM)(LPCTSTR)lpszText)
Vincent Béron9a624912002-05-31 23:06:46 +0000413
Alexandre Julliard06664441999-02-11 16:22:12 +0000414#define PropSheet_SetWizButtons(hDlg, dwFlags) \
415 PostMessage(hDlg, PSM_SETWIZBUTTONS, 0, (LPARAM)dwFlags)
Vincent Béron9a624912002-05-31 23:06:46 +0000416
Alexandre Julliard06664441999-02-11 16:22:12 +0000417#define PropSheet_PressButton(hDlg, iButton) \
418 PostMessage(hDlg, PSM_PRESSBUTTON, (WPARAM)iButton, 0)
Vincent Béron9a624912002-05-31 23:06:46 +0000419
Alexandre Julliard06664441999-02-11 16:22:12 +0000420#define PropSheet_SetCurSelByID(hDlg, id) \
421 SNDMSG(hDlg, PSM_SETCURSELID, 0, (LPARAM)id)
422
423#define PropSheet_SetFinishText(hDlg, lpszText) \
424 SNDMSG(hDlg, PSM_SETFINISHTEXT, 0, (LPARAM)lpszText)
Vincent Béron9a624912002-05-31 23:06:46 +0000425
Alexandre Julliard06664441999-02-11 16:22:12 +0000426#define PropSheet_GetTabControl(hDlg) \
427 (HWND)SNDMSG(hDlg, PSM_GETTABCONTROL, 0, 0)
Vincent Béron9a624912002-05-31 23:06:46 +0000428
Alexandre Julliard06664441999-02-11 16:22:12 +0000429#define PropSheet_IsDialogMessage(hDlg, pMsg) \
430 (BOOL)SNDMSG(hDlg, PSM_ISDIALOGMESSAGE, 0, (LPARAM)pMsg)
Vincent Béron9a624912002-05-31 23:06:46 +0000431
Alexandre Julliard06664441999-02-11 16:22:12 +0000432#define PropSheet_GetCurrentPageHwnd(hDlg) \
433 (HWND)SNDMSG(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0L)
Vincent Béron9a624912002-05-31 23:06:46 +0000434
Robert Shearman02d15722004-07-12 20:43:36 +0000435#define PropSheet_InsertPage(hDlg, index, hpage) \
436 SNDMSG(hDlg, PSM_INSERTPAGE, (WPARAM)(index), (LPARAM)(hpage))
437
438#define PropSheet_SetHeaderTitle(hDlg, index, lpszText) \
439 SNDMSG(hDlg, PSM_SETHEADERTITLE, (WPARAM)(index), (LPARAM)(lpszText))
440
441#define PropSheet_SetHeaderSubTitle(hDlg, index, lpszText) \
442 SNDMSG(hDlg, PSM_SETHEADERSUBTITLE, (WPARAM)(index), (LPARAM)(lpszText))
443
444#define PropSheet_HwndToIndex(hDlg, hwnd) \
445 (int)SNDMSG(hDlg, PSM_HWNDTOINDEX, (WPARAM)(hwnd), 0)
446
447#define PropSheet_IndexToHwnd(hDlg, i) \
448 (HWND)SNDMSG(hDlg, PSM_INDEXTOHWND, (WPARAM)(i), 0)
449
450#define PropSheet_PageToIndex(hDlg, hpage) \
451 (int)SNDMSG(hDlg, PSM_PAGETOINDEX, 0, (LPARAM)(hpage))
452
453#define PropSheet_IndexToPage(hDlg, i) \
454 (HPROPSHEETPAGE)SNDMSG(hDlg, PSM_INDEXTOPAGE, (WPARAM)(i), 0)
455
456#define PropSheet_IdToIndex(hDlg, id) \
457 (int)SNDMSG(hDlg, PSM_IDTOINDEX, 0, (LPARAM)(id))
458
459#define PropSheet_IndexToId(hDlg, i) \
460 SNDMSG(hDlg, PSM_INDEXTOID, (WPARAM)(i), 0)
461
462#define PropSheet_GetResult(hDlg) \
463 SNDMSG(hDlg, PSM_GETRESULT, 0, 0)
464
465#define PropSheet_RecalcPageSizes(hDlg) \
466 SNDMSG(hDlg, PSM_RECALCPAGESIZES, 0, 0)
Alexandre Julliard06664441999-02-11 16:22:12 +0000467
468#ifdef __cplusplus
469}
470#endif
471
Patrik Stridvall857eb391999-06-12 18:36:54 +0000472#endif /* __WINE_PRSHT_H */