blob: d47cad33d3478402dfa1f8a3a1eb7a88e17f22e4 [file] [log] [blame]
Alexandre Julliard06664441999-02-11 16:22:12 +00001#ifndef _WINE_PRSHT_H
2#define _WINE_PRSHT_H
3
Marcus Meissner317af321999-02-17 13:51:06 +00004#include "winuser.h"
Alexandre Julliard06664441999-02-11 16:22:12 +00005
6#ifdef __cplusplus
7extern "C" {
8#endif
9
10
11/*
12 * Property sheet support (callback procs)
13 */
14
15
Alexandre Julliarda3960291999-02-26 11:11:13 +000016#define WC_PROPSHEETA "SysPropertySheet"
17#define WC_PROPSHEETW L"SysPropertySheet"
Alexandre Julliard06664441999-02-11 16:22:12 +000018#define WC_PROPSHEET WINELIB_NAME_AW(WC_PROPSHEET)
19
Alexandre Julliarda3960291999-02-26 11:11:13 +000020struct _PROPSHEETPAGEA; /** need to forward declare those structs **/
21struct _PROPSHEETPAGEW;
Alexandre Julliard06664441999-02-11 16:22:12 +000022struct _PSP;
23typedef struct _PSP *HPROPSHEETPAGE;
24
25
Alexandre Julliarda3960291999-02-26 11:11:13 +000026typedef UINT (CALLBACK *LPFNPSPCALLBACKA)(HWND, UINT, struct _PROPSHEETPAGEA*);
27typedef UINT (CALLBACK *LPFNPSPCALLBACKW)(HWND, UINT, struct _PROPSHEETPAGEW*);
28typedef INT (CALLBACK *PFNPROPSHEETCALLBACK)(HWND, UINT, LPARAM);
29typedef BOOL (CALLBACK *LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM);
30typedef BOOL (CALLBACK *LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM);
Alexandre Julliard06664441999-02-11 16:22:12 +000031
32/* c++ likes nameless unions whereas c doesnt */
33/* (used in property sheet structures) */
34#ifdef __cplusplus
35#define DUMMYUNIONNAME
36#define DUMMYUNIONNAME1
37#define DUMMYUNIONNAME2
38#define DUMMYUNIONNAME3
39#define DUMMYUNIONNAME4
40#define DUMMYUNIONNAME5
41#else
42#define DUMMYUNIONNAME u
43#define DUMMYUNIONNAME1 u1
44#define DUMMYUNIONNAME2 u2
45#define DUMMYUNIONNAME3 u3
46#define DUMMYUNIONNAME4 u4
47#define DUMMYUNIONNAME5 u5
48#endif
49
50/*
51 * Property sheet support (structures)
52 */
Alexandre Julliarda3960291999-02-26 11:11:13 +000053typedef struct _PROPSHEETPAGEA
Alexandre Julliard06664441999-02-11 16:22:12 +000054{
55 DWORD dwSize;
56 DWORD dwFlags;
Alexandre Julliarda3960291999-02-26 11:11:13 +000057 HINSTANCE hInstance;
Alexandre Julliard06664441999-02-11 16:22:12 +000058 union
59 {
60 LPCSTR pszTemplate;
Bertho Stultiensdbf9fba1999-03-13 17:09:13 +000061 LPCDLGTEMPLATEA pResource;
Alexandre Julliard06664441999-02-11 16:22:12 +000062 }DUMMYUNIONNAME1;
63 union
64 {
Alexandre Julliarda3960291999-02-26 11:11:13 +000065 HICON hIcon;
Alexandre Julliard06664441999-02-11 16:22:12 +000066 LPCSTR pszIcon;
67 }DUMMYUNIONNAME2;
68 LPCSTR pszTitle;
Alexandre Julliarda3960291999-02-26 11:11:13 +000069 DLGPROC pfnDlgProc;
Alexandre Julliard06664441999-02-11 16:22:12 +000070 LPARAM lParam;
Alexandre Julliarda3960291999-02-26 11:11:13 +000071 LPFNPSPCALLBACKA pfnCallback;
72 UINT* pcRefParent;
Alexandre Julliard06664441999-02-11 16:22:12 +000073 LPCWSTR pszHeaderTitle;
74 LPCWSTR pszHeaderSubTitle;
Alexandre Julliarda3960291999-02-26 11:11:13 +000075} PROPSHEETPAGEA, *LPPROPSHEETPAGEA;
Alexandre Julliard06664441999-02-11 16:22:12 +000076
Alexandre Julliarda3960291999-02-26 11:11:13 +000077typedef const PROPSHEETPAGEA *LPCPROPSHEETPAGEA;
Alexandre Julliard06664441999-02-11 16:22:12 +000078
Alexandre Julliarda3960291999-02-26 11:11:13 +000079typedef struct _PROPSHEETPAGEW
Alexandre Julliard06664441999-02-11 16:22:12 +000080{
81 DWORD dwSize;
82 DWORD dwFlags;
Alexandre Julliarda3960291999-02-26 11:11:13 +000083 HINSTANCE hInstance;
Alexandre Julliard06664441999-02-11 16:22:12 +000084 union
85 {
86 LPCWSTR pszTemplate;
Bertho Stultiensdbf9fba1999-03-13 17:09:13 +000087 LPCDLGTEMPLATEW pResource;
Alexandre Julliard06664441999-02-11 16:22:12 +000088 }DUMMYUNIONNAME1;
89 union
90 {
Alexandre Julliarda3960291999-02-26 11:11:13 +000091 HICON hIcon;
Alexandre Julliard06664441999-02-11 16:22:12 +000092 LPCWSTR pszIcon;
93 }DUMMYUNIONNAME2;
94 LPCWSTR pszTitle;
Alexandre Julliarda3960291999-02-26 11:11:13 +000095 DLGPROC pfnDlgProc;
Alexandre Julliard06664441999-02-11 16:22:12 +000096 LPARAM lParam;
Alexandre Julliarda3960291999-02-26 11:11:13 +000097 LPFNPSPCALLBACKW pfnCallback;
98 UINT* pcRefParent;
Alexandre Julliard06664441999-02-11 16:22:12 +000099 LPCWSTR pszHeaderTitle;
100 LPCWSTR pszHeaderSubTitle;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000101} PROPSHEETPAGEW, *LPPROPSHEETPAGEW;
Alexandre Julliard06664441999-02-11 16:22:12 +0000102
Alexandre Julliarda3960291999-02-26 11:11:13 +0000103typedef const PROPSHEETPAGEW *LPCPROPSHEETPAGEW;
Alexandre Julliard06664441999-02-11 16:22:12 +0000104
105
Alexandre Julliarda3960291999-02-26 11:11:13 +0000106typedef struct _PROPSHEETHEADERA
Alexandre Julliard06664441999-02-11 16:22:12 +0000107{
108 DWORD dwSize;
109 DWORD dwFlags;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000110 HWND hwndParent;
111 HINSTANCE hInstance;
Alexandre Julliard06664441999-02-11 16:22:12 +0000112 union
113 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000114 HICON hIcon;
Alexandre Julliard06664441999-02-11 16:22:12 +0000115 LPCSTR pszIcon;
116 }DUMMYUNIONNAME1;
117 LPCSTR pszCaption;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000118 UINT nPages;
Alexandre Julliard06664441999-02-11 16:22:12 +0000119 union
120 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000121 UINT nStartPage;
Alexandre Julliard06664441999-02-11 16:22:12 +0000122 LPCSTR pStartPage;
123 }DUMMYUNIONNAME2;
124 union
125 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000126 LPCPROPSHEETPAGEA ppsp;
Alexandre Julliard06664441999-02-11 16:22:12 +0000127 HPROPSHEETPAGE* phpage;
128 }DUMMYUNIONNAME3;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000129 PFNPROPSHEETCALLBACK pfnCallback;
Alexandre Julliard06664441999-02-11 16:22:12 +0000130 union
131 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000132 HBITMAP hbmWatermark;
Alexandre Julliard06664441999-02-11 16:22:12 +0000133 LPCSTR pszbmWatermark;
134 }DUMMYUNIONNAME4;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000135 HPALETTE hplWatermark;
Alexandre Julliard06664441999-02-11 16:22:12 +0000136 union
137 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000138 HBITMAP hbmHeader;
Alexandre Julliard06664441999-02-11 16:22:12 +0000139 LPCSTR pszbmHeader;
140 }DUMMYUNIONNAME5;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000141} PROPSHEETHEADERA, *LPPROPSHEETHEADERA;
Alexandre Julliard06664441999-02-11 16:22:12 +0000142
Alexandre Julliarda3960291999-02-26 11:11:13 +0000143typedef const PROPSHEETHEADERA *LPCPROPSHEETHEADERA;
Alexandre Julliard06664441999-02-11 16:22:12 +0000144
Alexandre Julliarda3960291999-02-26 11:11:13 +0000145typedef struct _PROPSHEETHEADERW
Alexandre Julliard06664441999-02-11 16:22:12 +0000146{
147 DWORD dwSize;
148 DWORD dwFlags;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000149 HWND hwndParent;
150 HINSTANCE hInstance;
Alexandre Julliard06664441999-02-11 16:22:12 +0000151 union
152 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000153 HICON hIcon;
Alexandre Julliard06664441999-02-11 16:22:12 +0000154 LPCSTR pszIcon;
155 }DUMMYUNIONNAME1;
156 LPCWSTR pszCaption;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000157 UINT nPages;
Alexandre Julliard06664441999-02-11 16:22:12 +0000158 union
159 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000160 UINT nStartPage;
Alexandre Julliard06664441999-02-11 16:22:12 +0000161 LPCWSTR pStartPage;
162 }DUMMYUNIONNAME2;
163 union
164 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000165 LPCPROPSHEETPAGEW ppsp;
Alexandre Julliard06664441999-02-11 16:22:12 +0000166 HPROPSHEETPAGE* phpage;
167 }DUMMYUNIONNAME3;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000168 PFNPROPSHEETCALLBACK pfnCallback;
Alexandre Julliard06664441999-02-11 16:22:12 +0000169 union
170 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000171 HBITMAP hbmWatermark;
Alexandre Julliard06664441999-02-11 16:22:12 +0000172 LPCWSTR pszbmWatermark;
173 }DUMMYUNIONNAME4;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000174 HPALETTE hplWatermark;
Alexandre Julliard06664441999-02-11 16:22:12 +0000175 union
176 {
Alexandre Julliarda3960291999-02-26 11:11:13 +0000177 HBITMAP hbmHeader;
Alexandre Julliard06664441999-02-11 16:22:12 +0000178 LPCWSTR pszbmHeader;
179 }DUMMYUNIONNAME5;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000180} PROPSHEETHEADERW, *LPPROPSHEETHEADERW;
Alexandre Julliard06664441999-02-11 16:22:12 +0000181
Alexandre Julliarda3960291999-02-26 11:11:13 +0000182typedef const PROPSHEETHEADERW *LPCPROPSHEETHEADERW;
Alexandre Julliard06664441999-02-11 16:22:12 +0000183
184
185/*
186 * Property sheet support (methods)
187 */
Alexandre Julliarda3960291999-02-26 11:11:13 +0000188INT WINAPI PropertySheetA(LPCPROPSHEETHEADERA);
189INT WINAPI PropertySheetW(LPCPROPSHEETHEADERW);
Alexandre Julliard06664441999-02-11 16:22:12 +0000190#define PropertySheet WINELIB_NAME_AW(PropertySheet)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000191HPROPSHEETPAGE WINAPI CreatePropertySheetPageA(LPCPROPSHEETPAGEA);
192HPROPSHEETPAGE WINAPI CreatePropertySheetPageW(LPCPROPSHEETPAGEW);
Alexandre Julliard06664441999-02-11 16:22:12 +0000193#define CreatePropertySheetPage WINELIB_NAME_AW(CreatePropertySheetPage)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000194BOOL WINAPI DestroyPropertySheetPage(HPROPSHEETPAGE hPropPage);
Alexandre Julliard06664441999-02-11 16:22:12 +0000195
196/*
197 * Property sheet support (UNICODE-WineLib)
198 */
199
200DECL_WINELIB_TYPE_AW(PROPSHEETPAGE)
201DECL_WINELIB_TYPE_AW(LPPROPSHEETPAGE)
202DECL_WINELIB_TYPE_AW(LPCPROPSHEETPAGE)
203DECL_WINELIB_TYPE_AW(PROPSHEETHEADER)
204DECL_WINELIB_TYPE_AW(LPPROPSHEETHEADER)
205DECL_WINELIB_TYPE_AW(LPCPROPSHEETHEADER)
206DECL_WINELIB_TYPE_AW(LPFNPSPCALLBACK)
Alexandre Julliard06664441999-02-11 16:22:12 +0000207
208
209/*
210 * Property sheet support (defines)
211 */
212#define PSP_DEFAULT 0x0000
213#define PSP_DLGINDIRECT 0x0001
214#define PSP_USEHICON 0x0002
215#define PSP_USEICONID 0x0004
216#define PSP_USETITLE 0x0008
217#define PSP_RTLREADING 0x0010
218
219#define PSP_HASHELP 0x0020
220#define PSP_USEREFPARENT 0x0040
221#define PSP_USECALLBACK 0x0080
222
223
224#define PSPCB_RELEASE 1
225#define PSPCB_CREATE 2
226
227#define PSH_DEFAULT 0x0000
228#define PSH_PROPTITLE 0x0001
229#define PSH_USEHICON 0x0002
230#define PSH_USEICONID 0x0004
231#define PSH_PROPSHEETPAGE 0x0008
232#define PSH_WIZARD 0x0020
233#define PSH_USEPSTARTPAGE 0x0040
234#define PSH_NOAPPLYNOW 0x0080
235#define PSH_USECALLBACK 0x0100
236#define PSH_HASHELP 0x0200
237#define PSH_MODELESS 0x0400
238#define PSH_RTLREADING 0x0800
239
240#define PSCB_INITIALIZED 1
241#define PSCB_PRECREATE 2
242
243#define PSN_FIRST (0U-200U)
244#define PSN_LAST (0U-299U)
245
246
247#define PSN_SETACTIVE (PSN_FIRST-0)
248#define PSN_KILLACTIVE (PSN_FIRST-1)
249/* #define PSN_VALIDATE (PSN_FIRST-1) */
250#define PSN_APPLY (PSN_FIRST-2)
251#define PSN_RESET (PSN_FIRST-3)
252/* #define PSN_CANCEL (PSN_FIRST-3) */
253#define PSN_HELP (PSN_FIRST-5)
254#define PSN_WIZBACK (PSN_FIRST-6)
255#define PSN_WIZNEXT (PSN_FIRST-7)
256#define PSN_WIZFINISH (PSN_FIRST-8)
257#define PSN_QUERYCANCEL (PSN_FIRST-9)
258
259#define PSNRET_NOERROR 0
260#define PSNRET_INVALID 1
261#define PSNRET_INVALID_NOCHANGEPAGE 2
262
263
264#define PSM_SETCURSEL (WM_USER + 101)
265#define PSM_REMOVEPAGE (WM_USER + 102)
266#define PSM_ADDPAGE (WM_USER + 103)
267#define PSM_CHANGED (WM_USER + 104)
268#define PSM_RESTARTWINDOWS (WM_USER + 105)
269#define PSM_REBOOTSYSTEM (WM_USER + 106)
270#define PSM_CANCELTOCLOSE (WM_USER + 107)
271#define PSM_QUERYSIBLINGS (WM_USER + 108)
272#define PSM_UNCHANGED (WM_USER + 109)
273#define PSM_APPLY (WM_USER + 110)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000274#define PSM_SETTITLEA (WM_USER + 111)
275#define PSM_SETTITLEW (WM_USER + 120)
Alexandre Julliard06664441999-02-11 16:22:12 +0000276#define PSM_SETTITLE WINELIB_NAME_AW(PSM_SETTITLE)
277#define PSM_SETWIZBUTTONS (WM_USER + 112)
278#define PSM_PRESSBUTTON (WM_USER + 113)
279#define PSM_SETCURSELID (WM_USER + 114)
Alexandre Julliarda3960291999-02-26 11:11:13 +0000280#define PSM_SETFINISHTEXTA (WM_USER + 115)
281#define PSM_SETFINISHTEXTW (WM_USER + 121)
Alexandre Julliard06664441999-02-11 16:22:12 +0000282#define PSM_SETFINISHTEXT WINELIB_NAME_AW(PSM_SETFINISHTEXT)
283#define PSM_GETTABCONTROL (WM_USER + 116)
284#define PSM_ISDIALOGMESSAGE (WM_USER + 117)
285#define PSM_GETCURRENTPAGEHWND (WM_USER + 118)
286
287#define PSWIZB_BACK 0x00000001
288#define PSWIZB_NEXT 0x00000002
289#define PSWIZB_FINISH 0x00000004
290#define PSWIZB_DISABLEDFINISH 0x00000008
291
292#define PSBTN_BACK 0
293#define PSBTN_NEXT 1
294#define PSBTN_FINISH 2
295#define PSBTN_OK 3
296#define PSBTN_APPLYNOW 4
297#define PSBTN_CANCEL 5
298#define PSBTN_HELP 6
299#define PSBTN_MAX 6
300
301#define ID_PSRESTARTWINDOWS 0x2
302#define ID_PSREBOOTSYSTEM (ID_PSRESTARTWINDOWS | 0x1)
303
304
305#define WIZ_CXDLG 276
306#define WIZ_CYDLG 140
307
308#define WIZ_CXBMP 80
309
310#define WIZ_BODYX 92
311#define WIZ_BODYCX 184
312
313#define PROP_SM_CXDLG 212
314#define PROP_SM_CYDLG 188
315
316#define PROP_MED_CXDLG 227
317#define PROP_MED_CYDLG 215
318
319#define PROP_LG_CXDLG 252
320#define PROP_LG_CYDLG 218
321
322/*
323 * Property sheet support (macros)
324 */
325
326#define PropSheet_SetCurSel(hDlg, hpage, index) \
Alexandre Julliarda3960291999-02-26 11:11:13 +0000327 SeandMessage32A(hDlg, PSM_SETCURSEL, (WPARAM)index, (LPARAM)hpage)
Alexandre Julliard06664441999-02-11 16:22:12 +0000328
329#define PropSheet_RemovePage(hDlg, index, hpage) \
330 SNDMSG(hDlg, PSM_REMOVEPAGE, index, (LPARAM)hpage)
331
332#define PropSheet_AddPage(hDlg, hpage) \
333 SNDMSG(hDlg, PSM_ADDPAGE, 0, (LPARAM)hpage)
334
335#define PropSheet_Changed(hDlg, hwnd) \
336 SNDMSG(hDlg, PSM_CHANGED, (WPARAM)hwnd, 0L)
337
338#define PropSheet_RestartWindows(hDlg) \
339 SNDMSG(hDlg, PSM_RESTARTWINDOWS, 0, 0L)
340
341#define PropSheet_RebootSystem(hDlg) \
342 SNDMSG(hDlg, PSM_REBOOTSYSTEM, 0, 0L)
343
344#define PropSheet_CancelToClose(hDlg) \
345 PostMessage(hDlg, PSM_CANCELTOCLOSE, 0, 0L)
346
347#define PropSheet_QuerySiblings(hDlg, wParam, lParam) \
348 SNDMSG(hDlg, PSM_QUERYSIBLINGS, wParam, lParam)
349
350#define PropSheet_UnChanged(hDlg, hwnd) \
351 SNDMSG(hDlg, PSM_UNCHANGED, (WPARAM)hwnd, 0L)
352
353#define PropSheet_Apply(hDlg) \
354 SNDMSG(hDlg, PSM_APPLY, 0, 0L)
355
356#define PropSheet_SetTitle(hDlg, wStyle, lpszText)\
357 SNDMSG(hDlg, PSM_SETTITLE, wStyle, (LPARAM)(LPCTSTR)lpszText)
358
359#define PropSheet_SetWizButtons(hDlg, dwFlags) \
360 PostMessage(hDlg, PSM_SETWIZBUTTONS, 0, (LPARAM)dwFlags)
361
362#define PropSheet_PressButton(hDlg, iButton) \
363 PostMessage(hDlg, PSM_PRESSBUTTON, (WPARAM)iButton, 0)
364
365#define PropSheet_SetCurSelByID(hDlg, id) \
366 SNDMSG(hDlg, PSM_SETCURSELID, 0, (LPARAM)id)
367
368#define PropSheet_SetFinishText(hDlg, lpszText) \
369 SNDMSG(hDlg, PSM_SETFINISHTEXT, 0, (LPARAM)lpszText)
370
371#define PropSheet_GetTabControl(hDlg) \
372 (HWND)SNDMSG(hDlg, PSM_GETTABCONTROL, 0, 0)
373
374#define PropSheet_IsDialogMessage(hDlg, pMsg) \
375 (BOOL)SNDMSG(hDlg, PSM_ISDIALOGMESSAGE, 0, (LPARAM)pMsg)
376
377#define PropSheet_GetCurrentPageHwnd(hDlg) \
378 (HWND)SNDMSG(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0L)
379
380
381#ifdef __cplusplus
382}
383#endif
384
385
386
387#endif /* _WINE_PRSHT_H */