1
|
1 /***********************************************************************\
|
|
2 * prsht.d *
|
|
3 * *
|
|
4 * Windows API header module *
|
|
5 * *
|
|
6 * Translated from MinGW Windows headers *
|
|
7 * by Vladimir Vlasov *
|
|
8 * *
|
|
9 * Placed into public domain *
|
|
10 \***********************************************************************/
|
|
11 module win32.prsht;
|
|
12 pragma(lib, "comctl32.lib");
|
|
13
|
|
14 private import win32.w32api, win32.windef, win32.winuser;
|
|
15
|
|
16 const MAXPROPPAGES = 100;
|
|
17
|
|
18 enum {
|
|
19 PSP_DEFAULT = 0x00000000,
|
|
20 PSP_DLGINDIRECT = 0x00000001,
|
|
21 PSP_USEHICON = 0x00000002,
|
|
22 PSP_USEICONID = 0x00000004,
|
|
23 PSP_USETITLE = 0x00000008,
|
|
24 PSP_RTLREADING = 0x00000010,
|
|
25 PSP_HASHELP = 0x00000020,
|
|
26 PSP_USEREFPARENT = 0x00000040,
|
|
27 PSP_USECALLBACK = 0x00000080,
|
|
28 PSP_PREMATURE = 0x00000400
|
|
29 }
|
|
30
|
|
31 static if (_WIN32_IE >= 0x0400) {
|
|
32 enum {
|
|
33 PSP_HIDEHEADER = 0x00000800,
|
|
34 PSP_USEHEADERTITLE = 0x00001000,
|
|
35 PSP_USEHEADERSUBTITLE = 0x00002000
|
|
36 }
|
|
37 }
|
|
38
|
|
39 enum {
|
|
40 PSPCB_RELEASE = 1,
|
|
41 PSPCB_CREATE
|
|
42 }
|
|
43
|
|
44 enum {
|
|
45 PSH_DEFAULT = 0x00000000,
|
|
46 PSH_PROPTITLE = 0x00000001,
|
|
47 PSH_USEHICON = 0x00000002,
|
|
48 PSH_USEICONID = 0x00000004,
|
|
49 PSH_PROPSHEETPAGE = 0x00000008,
|
|
50 PSH_WIZARDHASFINISH = 0x00000010,
|
|
51 PSH_WIZARD = 0x00000020,
|
|
52 PSH_USEPSTARTPAGE = 0x00000040,
|
|
53 PSH_NOAPPLYNOW = 0x00000080,
|
|
54 PSH_USECALLBACK = 0x00000100,
|
|
55 PSH_HASHELP = 0x00000200,
|
|
56 PSH_MODELESS = 0x00000400,
|
|
57 PSH_RTLREADING = 0x00000800,
|
|
58 PSH_WIZARDCONTEXTHELP = 0x00001000
|
|
59 }
|
|
60
|
|
61 static if (_WIN32_IE >= 0x0400) {
|
|
62 enum {
|
|
63 PSH_WATERMARK = 0x00008000,
|
|
64 PSH_USEHBMWATERMARK = 0x00010000,
|
|
65 PSH_USEHPLWATERMARK = 0x00020000,
|
|
66 PSH_STRETCHWATERMARK = 0x00040000,
|
|
67 PSH_HEADER = 0x00080000,
|
|
68 PSH_USEHBMHEADER = 0x00100000,
|
|
69 PSH_USEPAGELANG = 0x00200000
|
|
70 }
|
|
71 static if (_WIN32_IE < 0x0500) {
|
|
72 enum {
|
|
73 PSH_WIZARD97 = 0x00002000
|
|
74 }
|
|
75 } else {
|
|
76 enum {
|
|
77 PSH_WIZARD97 = 0x01000000
|
|
78 }
|
|
79 }
|
|
80 }
|
|
81
|
|
82 static if (_WIN32_IE >= 0x0500) {
|
|
83 enum {
|
|
84 PSH_WIZARD_LITE = 0x00400000,
|
|
85 PSH_NOCONTEXTHELP = 0x02000000
|
|
86 }
|
|
87 }
|
|
88
|
|
89 enum {
|
|
90 PSCB_INITIALIZED = 1,
|
|
91 PSCB_PRECREATE
|
|
92 }
|
|
93
|
|
94 enum {
|
|
95 PSN_FIRST = (-200),
|
|
96 PSN_LAST = (-299),
|
|
97 PSN_SETACTIVE = (-200),
|
|
98 PSN_KILLACTIVE = (-201),
|
|
99 PSN_APPLY = (-202),
|
|
100 PSN_RESET = (-203),
|
|
101 PSN_HELP = (-205),
|
|
102 PSN_WIZBACK = (-206),
|
|
103 PSN_WIZNEXT = (-207),
|
|
104 PSN_WIZFINISH = (-208),
|
|
105 PSN_QUERYCANCEL = (-209)
|
|
106 }
|
|
107 static if (_WIN32_IE >= 0x0400) {
|
|
108 enum {
|
|
109 PSN_GETOBJECT = (-210)
|
|
110 }
|
|
111 }
|
|
112 static if (_WIN32_IE >= 0x0500) {
|
|
113 enum {
|
|
114 PSN_TRANSLATEACCELERATOR = (-212),
|
|
115 PSN_QUERYINITIALFOCUS = (-213)
|
|
116 }
|
|
117 }
|
|
118
|
|
119 enum {
|
|
120 PSNRET_NOERROR,
|
|
121 PSNRET_INVALID,
|
|
122 PSNRET_INVALID_NOCHANGEPAGE,
|
|
123 PSNRET_MESSAGEHANDLED
|
|
124 }
|
|
125
|
|
126 enum {
|
|
127 ID_PSRESTARTWINDOWS = 0x2,
|
|
128 ID_PSREBOOTSYSTEM = ID_PSRESTARTWINDOWS | 0x1
|
|
129 }
|
|
130
|
|
131 enum {
|
|
132 WIZ_CXDLG = 276,
|
|
133 WIZ_CYDLG = 140,
|
|
134 WIZ_CXBMP = 80,
|
|
135 WIZ_BODYX = 92,
|
|
136 WIZ_BODYCX = 184
|
|
137 }
|
|
138
|
|
139 enum {
|
|
140 PROP_SM_CXDLG = 212,
|
|
141 PROP_SM_CYDLG = 188,
|
|
142 PROP_MED_CXDLG = 227,
|
|
143 PROP_MED_CYDLG = 215,
|
|
144 PROP_LG_CXDLG = 252,
|
|
145 PROP_LG_CYDLG = 218
|
|
146 }
|
|
147
|
|
148 enum {
|
|
149 PSBTN_BACK,
|
|
150 PSBTN_NEXT,
|
|
151 PSBTN_FINISH,
|
|
152 PSBTN_OK,
|
|
153 PSBTN_APPLYNOW,
|
|
154 PSBTN_CANCEL,
|
|
155 PSBTN_HELP,
|
|
156 PSBTN_MAX = 6
|
|
157 }
|
|
158
|
|
159 enum {
|
|
160 PSWIZB_BACK = 1,
|
|
161 PSWIZB_NEXT = 2,
|
|
162 PSWIZB_FINISH = 4,
|
|
163 PSWIZB_DISABLEDFINISH = 8
|
|
164 }
|
|
165
|
|
166 enum {
|
|
167 PSM_SETCURSEL = WM_USER + 101,
|
|
168 PSM_REMOVEPAGE,
|
|
169 PSM_ADDPAGE,
|
|
170 PSM_CHANGED,
|
|
171 PSM_RESTARTWINDOWS,
|
|
172 PSM_REBOOTSYSTEM,
|
|
173 PSM_CANCELTOCLOSE,
|
|
174 PSM_QUERYSIBLINGS,
|
|
175 PSM_UNCHANGED,
|
|
176 PSM_APPLY,
|
|
177 PSM_SETTITLEA,
|
|
178 PSM_SETWIZBUTTONS,
|
|
179 PSM_PRESSBUTTON,
|
|
180 PSM_SETCURSELID,
|
|
181 PSM_SETFINISHTEXTA,
|
|
182 PSM_GETTABCONTROL,
|
|
183 PSM_ISDIALOGMESSAGE,
|
|
184 PSM_GETCURRENTPAGEHWND,
|
|
185 PSM_INSERTPAGE,
|
|
186 PSM_SETTITLEW,
|
|
187 PSM_SETFINISHTEXTW // = WM_USER + 121,
|
|
188 }
|
|
189
|
|
190 alias UINT function(HWND, UINT, LPPROPSHEETPAGEA) LPFNPSPCALLBACKA;
|
|
191 alias UINT function(HWND, UINT, LPPROPSHEETPAGEW) LPFNPSPCALLBACKW;
|
|
192 alias int function(HWND, UINT, LPARAM) PFNPROPSHEETCALLBACK;
|
|
193
|
|
194 align(4):
|
|
195
|
|
196 struct PROPSHEETPAGEA {
|
|
197 DWORD dwSize = PROPSHEETPAGEA.sizeof;
|
|
198 DWORD dwFlags;
|
|
199 HINSTANCE hInstance;
|
|
200 union {
|
|
201 LPCSTR pszTemplate;
|
|
202 LPCDLGTEMPLATE pResource;
|
|
203 }
|
|
204 union {
|
|
205 HICON hIcon;
|
|
206 LPCSTR pszIcon;
|
|
207 }
|
|
208 LPCSTR pszTitle;
|
|
209 DLGPROC pfnDlgProc;
|
|
210 LPARAM lParam;
|
|
211 LPFNPSPCALLBACKA pfnCallback;
|
|
212 UINT* pcRefParent;
|
|
213 static if (_WIN32_IE >= 0x0400) {
|
|
214 LPCSTR pszHeaderTitle;
|
|
215 LPCSTR pszHeaderSubTitle;
|
|
216 }
|
|
217 }
|
|
218 alias PROPSHEETPAGEA* LPPROPSHEETPAGEA, LPCPROPSHEETPAGEA;
|
|
219
|
|
220 struct PROPSHEETPAGEW {
|
|
221 DWORD dwSize = PROPSHEETPAGEW.sizeof;
|
|
222 DWORD dwFlags;
|
|
223 HINSTANCE hInstance;
|
|
224 union {
|
|
225 LPCWSTR pszTemplate;
|
|
226 LPCDLGTEMPLATE pResource;
|
|
227 }
|
|
228 union {
|
|
229 HICON hIcon;
|
|
230 LPCWSTR pszIcon;
|
|
231 }
|
|
232 LPCWSTR pszTitle;
|
|
233 DLGPROC pfnDlgProc;
|
|
234 LPARAM lParam;
|
|
235 LPFNPSPCALLBACKW pfnCallback;
|
|
236 UINT* pcRefParent;
|
|
237 static if (_WIN32_IE >= 0x0400) {
|
|
238 LPCWSTR pszHeaderTitle;
|
|
239 LPCWSTR pszHeaderSubTitle;
|
|
240 }
|
|
241 }
|
|
242 alias PROPSHEETPAGEW* LPPROPSHEETPAGEW, LPCPROPSHEETPAGEW;
|
|
243
|
|
244 alias HANDLE HPROPSHEETPAGE;
|
|
245
|
|
246 struct PROPSHEETHEADERA {
|
|
247 DWORD dwSize = PROPSHEETHEADERA.sizeof;
|
|
248 DWORD dwFlags;
|
|
249 HWND hwndParent;
|
|
250 HINSTANCE hInstance;
|
|
251 union {
|
|
252 HICON hIcon;
|
|
253 LPCSTR pszIcon;
|
|
254 }
|
|
255 LPCSTR pszCaption;
|
|
256 UINT nPages;
|
|
257 union {
|
|
258 UINT nStartPage;
|
|
259 LPCSTR pStartPage;
|
|
260 }
|
|
261 union {
|
|
262 LPCPROPSHEETPAGEA ppsp;
|
|
263 HPROPSHEETPAGE* phpage;
|
|
264 }
|
|
265 PFNPROPSHEETCALLBACK pfnCallback;
|
|
266 static if (_WIN32_IE >= 0x0400) {
|
|
267 union {
|
|
268 HBITMAP hbmWatermark;
|
|
269 LPCSTR pszbmWatermark;
|
|
270 }
|
|
271 HPALETTE hplWatermark;
|
|
272 union {
|
|
273 HBITMAP hbmHeader;
|
|
274 LPCSTR pszbmHeader;
|
|
275 }
|
|
276 }
|
|
277 }
|
|
278 alias PROPSHEETHEADERA* LPPROPSHEETHEADERA, LPCPROPSHEETHEADERA;
|
|
279
|
|
280 struct PROPSHEETHEADERW {
|
|
281 DWORD dwSize = PROPSHEETHEADERW.sizeof;
|
|
282 DWORD dwFlags;
|
|
283 HWND hwndParent;
|
|
284 HINSTANCE hInstance;
|
|
285 union {
|
|
286 HICON hIcon;
|
|
287 LPCWSTR pszIcon;
|
|
288 }
|
|
289 LPCWSTR pszCaption;
|
|
290 UINT nPages;
|
|
291 union {
|
|
292 UINT nStartPage;
|
|
293 LPCWSTR pStartPage;
|
|
294 }
|
|
295 union {
|
|
296 LPCPROPSHEETPAGEW ppsp;
|
|
297 HPROPSHEETPAGE* phpage;
|
|
298 }
|
|
299 PFNPROPSHEETCALLBACK pfnCallback;
|
|
300 static if (_WIN32_IE >= 0x0400) {
|
|
301 union {
|
|
302 HBITMAP hbmWatermark;
|
|
303 LPCWSTR pszbmWatermark;
|
|
304 }
|
|
305 HPALETTE hplWatermark;
|
|
306 union {
|
|
307 HBITMAP hbmHeader;
|
|
308 LPCWSTR pszbmHeader;
|
|
309 }
|
|
310 }
|
|
311 }
|
|
312 alias PROPSHEETHEADERW* LPPROPSHEETHEADERW, LPCPROPSHEETHEADERW;
|
|
313
|
|
314 alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE;
|
|
315 alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM)
|
|
316 LPFNADDPROPSHEETPAGES;
|
|
317
|
|
318 struct PSHNOTIFY {
|
|
319 NMHDR hdr;
|
|
320 LPARAM lParam;
|
|
321 }
|
|
322 alias PSHNOTIFY* LPPSHNOTIFY;
|
|
323
|
|
324 extern (Windows) {
|
|
325 HPROPSHEETPAGE CreatePropertySheetPageA(LPCPROPSHEETPAGEA);
|
|
326 HPROPSHEETPAGE CreatePropertySheetPageW(LPCPROPSHEETPAGEW);
|
|
327 BOOL DestroyPropertySheetPage(HPROPSHEETPAGE);
|
|
328 int PropertySheetA(LPCPROPSHEETHEADERA);
|
|
329 int PropertySheetW(LPCPROPSHEETHEADERW);
|
|
330 }
|
|
331
|
|
332 version (Unicode) {
|
|
333 alias LPFNPSPCALLBACKW LPFNPSPCALLBACK;
|
|
334 alias PROPSHEETPAGEW PROPSHEETPAGE;
|
|
335 alias LPPROPSHEETPAGEW LPPROPSHEETPAGE;
|
|
336 alias LPCPROPSHEETPAGEW LPCPROPSHEETPAGE;
|
|
337 alias PROPSHEETHEADERW PROPSHEETHEADER;
|
|
338 alias LPPROPSHEETHEADERW LPPROPSHEETHEADER;
|
|
339 alias LPCPROPSHEETHEADERW LPCPROPSHEETHEADER;
|
|
340 alias PSM_SETTITLEW PSM_SETTITLE;
|
|
341 alias PSM_SETFINISHTEXTW PSM_SETFINISHTEXT;
|
|
342 alias CreatePropertySheetPageW CreatePropertySheetPage;
|
|
343 alias PropertySheetW PropertySheet;
|
|
344 } else {
|
|
345 alias LPFNPSPCALLBACKA LPFNPSPCALLBACK;
|
|
346 alias PROPSHEETPAGEA PROPSHEETPAGE;
|
|
347 alias LPPROPSHEETPAGEA LPPROPSHEETPAGE;
|
|
348 alias LPCPROPSHEETPAGEA LPCPROPSHEETPAGE;
|
|
349 alias PROPSHEETHEADERA PROPSHEETHEADER;
|
|
350 alias LPPROPSHEETHEADERA LPPROPSHEETHEADER;
|
|
351 alias LPCPROPSHEETHEADERA LPCPROPSHEETHEADER;
|
|
352 alias PSM_SETTITLEA PSM_SETTITLE;
|
|
353 alias PSM_SETFINISHTEXTA PSM_SETFINISHTEXT;
|
|
354 alias CreatePropertySheetPageA CreatePropertySheetPage;
|
|
355 alias PropertySheetA PropertySheet;
|
|
356 }
|
|
357
|
|
358 BOOL PropSheet_SetCurSel(HWND hPropSheetDlg, HPROPSHEETPAGE hpage,
|
|
359 HPROPSHEETPAGE index) {
|
|
360 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSEL,
|
|
361 cast(WPARAM) index, cast(LPARAM) hpage);
|
|
362 }
|
|
363
|
|
364 VOID PropSheet_RemovePage(HWND hPropSheetDlg, int index, HPROPSHEETPAGE hpage) {
|
|
365 SendMessage(hPropSheetDlg, PSM_REMOVEPAGE, index, cast(LPARAM) hpage);
|
|
366 }
|
|
367
|
|
368 BOOL PropSheet_AddPage(HWND hPropSheetDlg, HPROPSHEETPAGE hpage) {
|
|
369 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_ADDPAGE,
|
|
370 0, cast(LPARAM) hpage);
|
|
371 }
|
|
372
|
|
373 VOID PropSheet_Changed(HWND hPropSheetDlg, HWND hwndPage) {
|
|
374 SendMessage(hPropSheetDlg, PSM_CHANGED, cast(WPARAM) hwndPage, 0);
|
|
375 }
|
|
376
|
|
377 VOID PropSheet_RestartWindows(HWND hPropSheetDlg) {
|
|
378 SendMessage(hPropSheetDlg, PSM_RESTARTWINDOWS, 0, 0);
|
|
379 }
|
|
380
|
|
381 VOID PropSheet_RebootSystem(HWND hPropSheetDlg) {
|
|
382 SendMessage(hPropSheetDlg, PSM_REBOOTSYSTEM, 0, 0);
|
|
383 }
|
|
384
|
|
385 VOID PropSheet_CancelToClose(HWND hPropSheetDlg) {
|
|
386 SendMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0);
|
|
387 }
|
|
388
|
|
389 int PropSheet_QuerySiblings(HWND hPropSheetDlg, WPARAM param1, LPARAM param2) {
|
|
390 return SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, param1, param2);
|
|
391 }
|
|
392
|
|
393 VOID PropSheet_UnChanged(HWND hPropSheetDlg, HWND hwndPage) {
|
|
394 SendMessage(hPropSheetDlg, PSM_UNCHANGED, cast(WPARAM) hwndPage, 0);
|
|
395 }
|
|
396
|
|
397 BOOL PropSheet_Apply(HWND hPropSheetDlg) {
|
|
398 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_APPLY, 0, 0);
|
|
399 }
|
|
400
|
|
401 VOID PropSheet_SetTitle(HWND hPropSheetDlg, DWORD wStyle, LPTSTR lpszText) {
|
|
402 SendMessage(hPropSheetDlg, PSM_SETTITLE, wStyle, cast(LPARAM) lpszText);
|
|
403 }
|
|
404
|
|
405 VOID PropSheet_SetWizButtons(HWND hPropSheetDlg, DWORD dwFlags) {
|
|
406 PostMessage(hPropSheetDlg, PSM_SETWIZBUTTONS, 0, cast(LPARAM) dwFlags);
|
|
407 }
|
|
408
|
|
409 BOOL PropSheet_PressButton(HWND hPropSheetDlg, int iButton) {
|
|
410 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_PRESSBUTTON, iButton, 0);
|
|
411 }
|
|
412
|
|
413 BOOL PropSheet_SetCurSelByID(HWND hPropSheetDlg, int id) {
|
|
414 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSELID, 0, id);
|
|
415 }
|
|
416
|
|
417 VOID PropSheet_SetFinishText(HWND hPropSheetDlg, LPTSTR lpszText) {
|
|
418 SendMessage(hPropSheetDlg, PSM_SETFINISHTEXT, 0, cast(LPARAM) lpszText);
|
|
419 }
|
|
420
|
|
421 HWND PropSheet_GetTabControl(HWND hPropSheetDlg) {
|
|
422 return cast(HWND) SendMessage(hPropSheetDlg, PSM_GETTABCONTROL, 0, 0);
|
|
423 }
|
|
424
|
|
425 BOOL PropSheet_IsDialogMessage(HWND hDlg, LPMSG pMsg) {
|
|
426 return cast(BOOL) SendMessage(hDlg, PSM_ISDIALOGMESSAGE,
|
|
427 0, cast(LPARAM) pMsg);
|
|
428 }
|
|
429
|
|
430 HWND PropSheet_GetCurrentPageHwnd(HWND hDlg) {
|
|
431 return cast(HWND) SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0);
|
|
432 }
|
|
433
|
|
434 BOOL PropSheet_InsertPage(HWND hPropSheetDlg, WPARAM wInsertAfter,
|
|
435 HPROPSHEETPAGE hpage) {
|
|
436 return cast(BOOL) SendMessage(hPropSheetDlg, PSM_INSERTPAGE,
|
|
437 wInsertAfter, cast(LPARAM) hpage);
|
|
438 }
|