comparison win32/prsht.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
comparison
equal deleted inserted replaced
0:586e4a649642 1:4a9dcbd9e54f
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 }