Differences From Artifact [11c80dc8e4f04de3]:
- File
src/win32/prsht.d
- 2015-04-21 10:46:55 - part of checkin [4e2933c620] on branch trunk - Rebased to the latest verson dmd 2.067. Not yet verified the outcome. (user: kinaba) [annotate]
To Artifact [d175d0f84ae40260]:
- File
src/win32/prsht.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
5 * * 5 * *
6 * Translated from MinGW Windows headers * 6 * Translated from MinGW Windows headers *
7 * by Vladimir Vlasov * 7 * by Vladimir Vlasov *
8 * * 8 * *
9 * Placed into public domain * 9 * Placed into public domain *
10 \***********************************************************************/ 10 \***********************************************************************/
11 module win32.prsht; 11 module win32.prsht;
12 pragma(lib, "comctl32.lib"); | 12 pragma(lib, "comctl32");
13 13
14 private import win32.w32api, win32.windef, win32.winuser; 14 private import win32.w32api, win32.windef, win32.winuser;
15 15
16 const MAXPROPPAGES = 100; 16 const MAXPROPPAGES = 100;
17 17
18 enum { 18 enum {
19 PSP_DEFAULT = 0x00000000, 19 PSP_DEFAULT = 0x00000000,
................................................................................................................................................................................
24 PSP_RTLREADING = 0x00000010, 24 PSP_RTLREADING = 0x00000010,
25 PSP_HASHELP = 0x00000020, 25 PSP_HASHELP = 0x00000020,
26 PSP_USEREFPARENT = 0x00000040, 26 PSP_USEREFPARENT = 0x00000040,
27 PSP_USECALLBACK = 0x00000080, 27 PSP_USECALLBACK = 0x00000080,
28 PSP_PREMATURE = 0x00000400 28 PSP_PREMATURE = 0x00000400
29 } 29 }
30 30
31 static if (_WIN32_IE >= 0x0400) { | 31 static if (_WIN32_IE >= 0x400) {
32 enum { 32 enum {
33 PSP_HIDEHEADER = 0x00000800, 33 PSP_HIDEHEADER = 0x00000800,
34 PSP_USEHEADERTITLE = 0x00001000, 34 PSP_USEHEADERTITLE = 0x00001000,
35 PSP_USEHEADERSUBTITLE = 0x00002000 35 PSP_USEHEADERSUBTITLE = 0x00002000
36 } 36 }
37 } 37 }
38 38
................................................................................................................................................................................
54 PSH_USECALLBACK = 0x00000100, 54 PSH_USECALLBACK = 0x00000100,
55 PSH_HASHELP = 0x00000200, 55 PSH_HASHELP = 0x00000200,
56 PSH_MODELESS = 0x00000400, 56 PSH_MODELESS = 0x00000400,
57 PSH_RTLREADING = 0x00000800, 57 PSH_RTLREADING = 0x00000800,
58 PSH_WIZARDCONTEXTHELP = 0x00001000 58 PSH_WIZARDCONTEXTHELP = 0x00001000
59 } 59 }
60 60
61 static if (_WIN32_IE >= 0x0400) { | 61 static if (_WIN32_IE >= 0x400) {
62 enum { 62 enum {
63 PSH_WATERMARK = 0x00008000, 63 PSH_WATERMARK = 0x00008000,
64 PSH_USEHBMWATERMARK = 0x00010000, 64 PSH_USEHBMWATERMARK = 0x00010000,
65 PSH_USEHPLWATERMARK = 0x00020000, 65 PSH_USEHPLWATERMARK = 0x00020000,
66 PSH_STRETCHWATERMARK = 0x00040000, 66 PSH_STRETCHWATERMARK = 0x00040000,
67 PSH_HEADER = 0x00080000, 67 PSH_HEADER = 0x00080000,
68 PSH_USEHBMHEADER = 0x00100000, 68 PSH_USEHBMHEADER = 0x00100000,
................................................................................................................................................................................
75 } else { 75 } else {
76 enum { 76 enum {
77 PSH_WIZARD97 = 0x01000000 77 PSH_WIZARD97 = 0x01000000
78 } 78 }
79 } 79 }
80 } 80 }
81 81
82 static if (_WIN32_IE >= 0x0500) { | 82 static if (_WIN32_IE >= 0x500) {
83 enum { 83 enum {
84 PSH_WIZARD_LITE = 0x00400000, 84 PSH_WIZARD_LITE = 0x00400000,
85 PSH_NOCONTEXTHELP = 0x02000000 85 PSH_NOCONTEXTHELP = 0x02000000
86 } 86 }
87 } 87 }
88 88
89 enum { 89 enum {
................................................................................................................................................................................
100 PSN_RESET = (-203), 100 PSN_RESET = (-203),
101 PSN_HELP = (-205), 101 PSN_HELP = (-205),
102 PSN_WIZBACK = (-206), 102 PSN_WIZBACK = (-206),
103 PSN_WIZNEXT = (-207), 103 PSN_WIZNEXT = (-207),
104 PSN_WIZFINISH = (-208), 104 PSN_WIZFINISH = (-208),
105 PSN_QUERYCANCEL = (-209) 105 PSN_QUERYCANCEL = (-209)
106 } 106 }
107 static if (_WIN32_IE >= 0x0400) { | 107 static if (_WIN32_IE >= 0x400) {
108 enum { 108 enum {
109 PSN_GETOBJECT = (-210) 109 PSN_GETOBJECT = (-210)
110 } 110 }
111 } 111 }
112 static if (_WIN32_IE >= 0x0500) { | 112 static if (_WIN32_IE >= 0x500) {
113 enum { 113 enum {
114 PSN_TRANSLATEACCELERATOR = (-212), 114 PSN_TRANSLATEACCELERATOR = (-212),
115 PSN_QUERYINITIALFOCUS = (-213) 115 PSN_QUERYINITIALFOCUS = (-213)
116 } 116 }
117 } 117 }
118 118
119 enum { 119 enum {
................................................................................................................................................................................
206 LPCSTR pszIcon; 206 LPCSTR pszIcon;
207 } 207 }
208 LPCSTR pszTitle; 208 LPCSTR pszTitle;
209 DLGPROC pfnDlgProc; 209 DLGPROC pfnDlgProc;
210 LPARAM lParam; 210 LPARAM lParam;
211 LPFNPSPCALLBACKA pfnCallback; 211 LPFNPSPCALLBACKA pfnCallback;
212 UINT* pcRefParent; 212 UINT* pcRefParent;
213 static if (_WIN32_IE >= 0x0400) { | 213 static if (_WIN32_IE >= 0x400) {
214 LPCSTR pszHeaderTitle; 214 LPCSTR pszHeaderTitle;
215 LPCSTR pszHeaderSubTitle; 215 LPCSTR pszHeaderSubTitle;
216 } 216 }
217 } 217 }
218 alias PROPSHEETPAGEA* LPPROPSHEETPAGEA; | 218 alias PROPSHEETPAGEA* LPPROPSHEETPAGEA;
219 alias CPtr!(PROPSHEETPAGEA) LPCPROPSHEETPAGEA; | 219 alias const(PROPSHEETPAGEA)* LPCPROPSHEETPAGEA;
220 220
221 struct PROPSHEETPAGEW { 221 struct PROPSHEETPAGEW {
222 DWORD dwSize = PROPSHEETPAGEW.sizeof; 222 DWORD dwSize = PROPSHEETPAGEW.sizeof;
223 DWORD dwFlags; 223 DWORD dwFlags;
224 HINSTANCE hInstance; 224 HINSTANCE hInstance;
225 union { 225 union {
226 LPCWSTR pszTemplate; 226 LPCWSTR pszTemplate;
................................................................................................................................................................................
231 LPCWSTR pszIcon; 231 LPCWSTR pszIcon;
232 } 232 }
233 LPCWSTR pszTitle; 233 LPCWSTR pszTitle;
234 DLGPROC pfnDlgProc; 234 DLGPROC pfnDlgProc;
235 LPARAM lParam; 235 LPARAM lParam;
236 LPFNPSPCALLBACKW pfnCallback; 236 LPFNPSPCALLBACKW pfnCallback;
237 UINT* pcRefParent; 237 UINT* pcRefParent;
238 static if (_WIN32_IE >= 0x0400) { | 238 static if (_WIN32_IE >= 0x400) {
239 LPCWSTR pszHeaderTitle; 239 LPCWSTR pszHeaderTitle;
240 LPCWSTR pszHeaderSubTitle; 240 LPCWSTR pszHeaderSubTitle;
241 } 241 }
242 } 242 }
243 alias PROPSHEETPAGEW* LPPROPSHEETPAGEW; | 243 alias PROPSHEETPAGEW* LPPROPSHEETPAGEW;
244 alias CPtr!(PROPSHEETPAGEW) LPCPROPSHEETPAGEW; | 244 alias const(PROPSHEETPAGEW)* LPCPROPSHEETPAGEW;
245 245
246 alias HANDLE HPROPSHEETPAGE; | 246 mixin DECLARE_HANDLE!("HPROPSHEETPAGE");
247 247
248 struct PROPSHEETHEADERA { 248 struct PROPSHEETHEADERA {
249 DWORD dwSize = PROPSHEETHEADERA.sizeof; 249 DWORD dwSize = PROPSHEETHEADERA.sizeof;
250 DWORD dwFlags; 250 DWORD dwFlags;
251 HWND hwndParent; 251 HWND hwndParent;
252 HINSTANCE hInstance; 252 HINSTANCE hInstance;
253 union { 253 union {
................................................................................................................................................................................
261 LPCSTR pStartPage; 261 LPCSTR pStartPage;
262 } 262 }
263 union { 263 union {
264 LPCPROPSHEETPAGEA ppsp; 264 LPCPROPSHEETPAGEA ppsp;
265 HPROPSHEETPAGE* phpage; 265 HPROPSHEETPAGE* phpage;
266 } 266 }
267 PFNPROPSHEETCALLBACK pfnCallback; 267 PFNPROPSHEETCALLBACK pfnCallback;
268 static if (_WIN32_IE >= 0x0400) { | 268 static if (_WIN32_IE >= 0x400) {
269 union { 269 union {
270 HBITMAP hbmWatermark; 270 HBITMAP hbmWatermark;
271 LPCSTR pszbmWatermark; 271 LPCSTR pszbmWatermark;
272 } 272 }
273 HPALETTE hplWatermark; 273 HPALETTE hplWatermark;
274 union { 274 union {
275 HBITMAP hbmHeader; 275 HBITMAP hbmHeader;
276 LPCSTR pszbmHeader; 276 LPCSTR pszbmHeader;
277 } 277 }
278 } 278 }
279 } 279 }
280 alias PROPSHEETHEADERA* LPPROPSHEETHEADERA; | 280 alias PROPSHEETHEADERA* LPPROPSHEETHEADERA;
281 alias CPtr!(PROPSHEETHEADERA) LPCPROPSHEETHEADERA; | 281 alias const(PROPSHEETHEADERA)* LPCPROPSHEETHEADERA;
282 282
283 struct PROPSHEETHEADERW { 283 struct PROPSHEETHEADERW {
284 DWORD dwSize = PROPSHEETHEADERW.sizeof; 284 DWORD dwSize = PROPSHEETHEADERW.sizeof;
285 DWORD dwFlags; 285 DWORD dwFlags;
286 HWND hwndParent; 286 HWND hwndParent;
287 HINSTANCE hInstance; 287 HINSTANCE hInstance;
288 union { 288 union {
................................................................................................................................................................................
296 LPCWSTR pStartPage; 296 LPCWSTR pStartPage;
297 } 297 }
298 union { 298 union {
299 LPCPROPSHEETPAGEW ppsp; 299 LPCPROPSHEETPAGEW ppsp;
300 HPROPSHEETPAGE* phpage; 300 HPROPSHEETPAGE* phpage;
301 } 301 }
302 PFNPROPSHEETCALLBACK pfnCallback; 302 PFNPROPSHEETCALLBACK pfnCallback;
303 static if (_WIN32_IE >= 0x0400) { | 303 static if (_WIN32_IE >= 0x400) {
304 union { 304 union {
305 HBITMAP hbmWatermark; 305 HBITMAP hbmWatermark;
306 LPCWSTR pszbmWatermark; 306 LPCWSTR pszbmWatermark;
307 } 307 }
308 HPALETTE hplWatermark; 308 HPALETTE hplWatermark;
309 union { 309 union {
310 HBITMAP hbmHeader; 310 HBITMAP hbmHeader;
311 LPCWSTR pszbmHeader; 311 LPCWSTR pszbmHeader;
312 } 312 }
313 } 313 }
314 } 314 }
315 alias PROPSHEETHEADERW* LPPROPSHEETHEADERW; | 315 alias PROPSHEETHEADERW* LPPROPSHEETHEADERW;
316 alias CPtr!(PROPSHEETHEADERW) LPCPROPSHEETHEADERW; | 316 alias const(PROPSHEETHEADERW)* LPCPROPSHEETHEADERW;
317 317
318 alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE; 318 alias BOOL function(HPROPSHEETPAGE, LPARAM) LPFNADDPROPSHEETPAGE;
319 alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM) 319 alias BOOL function(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM)
320 LPFNADDPROPSHEETPAGES; 320 LPFNADDPROPSHEETPAGES;
321 321
322 struct PSHNOTIFY { 322 struct PSHNOTIFY {
323 NMHDR hdr; 323 NMHDR hdr;
................................................................................................................................................................................
387 } 387 }
388 388
389 VOID PropSheet_CancelToClose(HWND hPropSheetDlg) { 389 VOID PropSheet_CancelToClose(HWND hPropSheetDlg) {
390 SendMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0); 390 SendMessage(hPropSheetDlg, PSM_CANCELTOCLOSE, 0, 0);
391 } 391 }
392 392
393 int PropSheet_QuerySiblings(HWND hPropSheetDlg, WPARAM param1, LPARAM param2) { 393 int PropSheet_QuerySiblings(HWND hPropSheetDlg, WPARAM param1, LPARAM param2) {
394 return SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, param1, param2); | 394 return cast(int) SendMessage(hPropSheetDlg, PSM_QUERYSIBLINGS, param1, p
395 } 395 }
396 396
397 VOID PropSheet_UnChanged(HWND hPropSheetDlg, HWND hwndPage) { 397 VOID PropSheet_UnChanged(HWND hPropSheetDlg, HWND hwndPage) {
398 SendMessage(hPropSheetDlg, PSM_UNCHANGED, cast(WPARAM) hwndPage, 0); 398 SendMessage(hPropSheetDlg, PSM_UNCHANGED, cast(WPARAM) hwndPage, 0);
399 } 399 }
400 400
401 BOOL PropSheet_Apply(HWND hPropSheetDlg) { 401 BOOL PropSheet_Apply(HWND hPropSheetDlg) {