root/trunk/win32/prsht.d

Revision 352, 11.2 kB (checked in by Yu Hozuki, 2 years ago)

Many argument types and return types were improved to const using CPtr template.
They follow the original headers.

Line 
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;
219 alias CPtr!(PROPSHEETPAGEA) LPCPROPSHEETPAGEA;
220
221 struct PROPSHEETPAGEW {
222     DWORD     dwSize = PROPSHEETPAGEW.sizeof;
223     DWORD     dwFlags;
224     HINSTANCE hInstance;
225     union {
226         LPCWSTR        pszTemplate;
227         LPCDLGTEMPLATE pResource;
228     }
229     union {
230         HICON   hIcon;
231         LPCWSTR pszIcon;
232     }
233     LPCWSTR   pszTitle;
234     DLGPROC   pfnDlgProc;
235     LPARAM    lParam;
236     LPFNPSPCALLBACKW pfnCallback;
237     UINT*     pcRefParent;
238     static if (_WIN32_IE >= 0x0400) {
239         LPCWSTR pszHeaderTitle;
240         LPCWSTR pszHeaderSubTitle;
241     }
242 }
243 alias PROPSHEETPAGEW*       LPPROPSHEETPAGEW;
244 alias CPtr!(PROPSHEETPAGEW) LPCPROPSHEETPAGEW;
245
246 alias HANDLE HPROPSHEETPAGE;
247
248 struct PROPSHEETHEADERA {
249     DWORD dwSize = PROPSHEETHEADERA.sizeof;
250     DWORD dwFlags;
251     HWND  hwndParent;
252     HINSTANCE hInstance;
253     union {
254         HICON   hIcon;
255         LPCSTR  pszIcon;
256     }
257     LPCSTR pszCaption;
258     UINT   nPages;
259     union {
260         UINT   nStartPage;
261         LPCSTR pStartPage;
262     }
263     union {
264         LPCPROPSHEETPAGEA ppsp;
265         HPROPSHEETPAGE*   phpage;
266     }
267     PFNPROPSHEETCALLBACK pfnCallback;
268     static if (_WIN32_IE >= 0x0400) {
269         union {
270             HBITMAP hbmWatermark;
271             LPCSTR  pszbmWatermark;
272         }
273         HPALETTE hplWatermark;
274         union {
275             HBITMAP hbmHeader;
276             LPCSTR  pszbmHeader;
277         }
278     }
279 }
280 alias PROPSHEETHEADERA*       LPPROPSHEETHEADERA;
281 alias CPtr!(PROPSHEETHEADERA) LPCPROPSHEETHEADERA;
282
283 struct PROPSHEETHEADERW {
284     DWORD     dwSize = PROPSHEETHEADERW.sizeof;
285     DWORD     dwFlags;
286     HWND      hwndParent;
287     HINSTANCE hInstance;
288     union {
289         HICON   hIcon;
290         LPCWSTR pszIcon;
291     }
292     LPCWSTR   pszCaption;
293     UINT      nPages;
294     union {
295         UINT    nStartPage;
296         LPCWSTR pStartPage;
297     }
298     union {
299         LPCPROPSHEETPAGEW ppsp;
300         HPROPSHEETPAGE*   phpage;
301     }
302     PFNPROPSHEETCALLBACK pfnCallback;
303     static if (_WIN32_IE >= 0x0400) {
304         union {
305             HBITMAP hbmWatermark;
306             LPCWSTR pszbmWatermark;
307         }
308         HPALETTE hplWatermark;
309         union {
310             HBITMAP hbmHeader;
311             LPCWSTR pszbmHeader;
312         }
313     }
314 }
315 alias PROPSHEETHEADERW*       LPPROPSHEETHEADERW;
316 alias CPtr!(PROPSHEETHEADERW) LPCPROPSHEETHEADERW;
317
318 alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE;
319 alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM)
320   LPFNADDPROPSHEETPAGES;
321
322 struct PSHNOTIFY {
323     NMHDR  hdr;
324     LPARAM lParam;
325 }
326 alias PSHNOTIFY* LPPSHNOTIFY;
327
328 extern (Windows) {
329     HPROPSHEETPAGE CreatePropertySheetPageA(LPCPROPSHEETPAGEA);
330     HPROPSHEETPAGE CreatePropertySheetPageW(LPCPROPSHEETPAGEW);
331     BOOL DestroyPropertySheetPage(HPROPSHEETPAGE);
332     int PropertySheetA(LPCPROPSHEETHEADERA);
333     int PropertySheetW(LPCPROPSHEETHEADERW);
334 }
335
336 version (Unicode) {
337     alias LPFNPSPCALLBACKW         LPFNPSPCALLBACK;
338     alias PROPSHEETPAGEW           PROPSHEETPAGE;
339     alias LPPROPSHEETPAGEW         LPPROPSHEETPAGE;
340     alias LPCPROPSHEETPAGEW        LPCPROPSHEETPAGE;
341     alias PROPSHEETHEADERW         PROPSHEETHEADER;
342     alias LPPROPSHEETHEADERW       LPPROPSHEETHEADER;
343     alias LPCPROPSHEETHEADERW      LPCPROPSHEETHEADER;
344     alias PSM_SETTITLEW            PSM_SETTITLE;
345     alias PSM_SETFINISHTEXTW       PSM_SETFINISHTEXT;
346     alias CreatePropertySheetPageW CreatePropertySheetPage;
347     alias PropertySheetW           PropertySheet;
348 } else {
349     alias LPFNPSPCALLBACKA         LPFNPSPCALLBACK;
350     alias PROPSHEETPAGEA           PROPSHEETPAGE;
351     alias LPPROPSHEETPAGEA         LPPROPSHEETPAGE;
352     alias LPCPROPSHEETPAGEA        LPCPROPSHEETPAGE;
353     alias PROPSHEETHEADERA         PROPSHEETHEADER;
354     alias LPPROPSHEETHEADERA       LPPROPSHEETHEADER;
355     alias LPCPROPSHEETHEADERA      LPCPROPSHEETHEADER;
356     alias PSM_SETTITLEA            PSM_SETTITLE;
357     alias PSM_SETFINISHTEXTA       PSM_SETFINISHTEXT;
358     alias CreatePropertySheetPageA CreatePropertySheetPage;
359     alias PropertySheetA           PropertySheet;
360 }
361
362 BOOL PropSheet_SetCurSel(HWND hPropSheetDlg, HPROPSHEETPAGE hpage,
363       HPROPSHEETPAGE index) {
364     return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSEL,
365       cast(WPARAM) index, cast(LPARAM) hpage);
366 }
367
368 VOID PropSheet_RemovePage(HWND hPropSheetDlg, int index, HPROPSHEETPAGE hpage) {
369     SendMessage(hPropSheetDlg, PSM_REMOVEPAGE, index, cast(LPARAM) hpage);
370 }
371
372 BOOL PropSheet_AddPage(HWND hPropSheetDlg, HPROPSHEETPAGE hpage) {
373         return cast(BOOL) SendMessage(hPropSheetDlg, PSM_ADDPAGE,
374           0, cast(LPARAM) hpage);
375 }
376
377 VOID PropSheet_Changed(HWND hPropSheetDlg, HWND hwndPage) {
378     SendMessage(hPropSheetDlg, PSM_CHANGED, cast(WPARAM) hwndPage, 0);
379 }
380
381 VOID PropSheet_RestartWindows(HWND hPropSheetDlg) {
382     SendMessage(hPropSheetDlg, PSM_RESTARTWINDOWS, 0, 0);
383 }
384
385 VOID PropSheet_RebootSystem(HWND hPropSheetDlg) {
386     SendMessage(hPropSheetDlg, PSM_REBOOTSYSTEM, 0, 0);
387 }
388
389 VOID PropSheet_CancelToClose(HWND hPropSheetDlg) {
390     SendMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0);
391 }
392
393 int PropSheet_QuerySiblings(HWND hPropSheetDlg, WPARAM param1, LPARAM param2) {
394     return SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, param1, param2);
395 }
396
397 VOID PropSheet_UnChanged(HWND hPropSheetDlg, HWND hwndPage) {
398     SendMessage(hPropSheetDlg, PSM_UNCHANGED, cast(WPARAM) hwndPage, 0);
399 }
400
401 BOOL PropSheet_Apply(HWND hPropSheetDlg) {
402     return cast(BOOL) SendMessage(hPropSheetDlg, PSM_APPLY, 0, 0);
403 }
404
405 VOID PropSheet_SetTitle(HWND hPropSheetDlg, DWORD wStyle, LPTSTR lpszText) {
406     SendMessage(hPropSheetDlg, PSM_SETTITLE, wStyle, cast(LPARAM) lpszText);
407 }
408
409 VOID PropSheet_SetWizButtons(HWND hPropSheetDlg, DWORD dwFlags) {
410     PostMessage(hPropSheetDlg, PSM_SETWIZBUTTONS, 0, cast(LPARAM) dwFlags);
411 }
412
413 BOOL PropSheet_PressButton(HWND hPropSheetDlg, int iButton) {
414     return cast(BOOL) SendMessage(hPropSheetDlg, PSM_PRESSBUTTON, iButton, 0);
415 }
416
417 BOOL PropSheet_SetCurSelByID(HWND hPropSheetDlg, int id) {
418     return cast(BOOL) SendMessage(hPropSheetDlg, PSM_SETCURSELID, 0, id);
419 }
420
421 VOID PropSheet_SetFinishText(HWND hPropSheetDlg, LPTSTR lpszText) {
422     SendMessage(hPropSheetDlg, PSM_SETFINISHTEXT, 0, cast(LPARAM) lpszText);
423 }
424
425 HWND PropSheet_GetTabControl(HWND hPropSheetDlg) {
426     return cast(HWND) SendMessage(hPropSheetDlg, PSM_GETTABCONTROL, 0, 0);
427 }
428
429 BOOL PropSheet_IsDialogMessage(HWND hDlg, LPMSG pMsg) {
430     return cast(BOOL) SendMessage(hDlg, PSM_ISDIALOGMESSAGE,
431       0, cast(LPARAM) pMsg);
432 }
433
434 HWND PropSheet_GetCurrentPageHwnd(HWND hDlg) {
435     return cast(HWND) SendMessage(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0);
436 }
437
438 BOOL PropSheet_InsertPage(HWND hPropSheetDlg, WPARAM wInsertAfter,
439       HPROPSHEETPAGE hpage) {
440     return cast(BOOL) SendMessage(hPropSheetDlg, PSM_INSERTPAGE,
441       wInsertAfter, cast(LPARAM) hpage);
442 }
Note: See TracBrowser for help on using the browser.