Differences From Artifact [dce8014c88d4101f]:
- File
src/win32/commdlg.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 [969f3a046d040fe8]:
- File
src/win32/commdlg.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.
4 4 * Windows API header module *
5 5 * *
6 6 * Translated from MinGW API for MS-Windows 3.12 *
7 7 * *
8 8 * Placed into public domain *
9 9 \***********************************************************************/
10 10 module win32.commdlg;
11 -pragma(lib, "comdlg32.lib");
11 +pragma(lib, "comdlg32");
12 12
13 13 private import win32.w32api;
14 14 import win32.windef, win32.winuser;
15 15 import win32.wingdi; // for LPLOGFONTA
16 16
17 17 const TCHAR[]
18 18 LBSELCHSTRING = "commdlg_LBSelChangedNotify",
................................................................................
28 28 CDN_LAST = -699,
29 29 CDN_INITDONE = CDN_FIRST,
30 30 CDN_SELCHANGE = CDN_FIRST - 1,
31 31 CDN_FOLDERCHANGE = CDN_FIRST - 2,
32 32 CDN_SHAREVIOLATION = CDN_FIRST - 3,
33 33 CDN_HELP = CDN_FIRST - 4,
34 34 CDN_FILEOK = CDN_FIRST - 5,
35 - CDN_TYPECHANGE = CDN_FIRST - 6
35 + CDN_TYPECHANGE = CDN_FIRST - 6,
36 +}
37 +
38 +static if(_WIN32_WINNT >= 0x500)
39 +{
40 + enum : UINT {
41 + CDN_INCLUDEITEM = CDN_FIRST - 7,
42 + }
36 43 }
37 44
38 45 enum : UINT {
39 46 CDM_FIRST = WM_USER + 100,
40 47 CDM_LAST = WM_USER + 200,
41 48 CDM_GETSPEC = CDM_FIRST,
42 49 CDM_GETFILEPATH,
................................................................................
184 191 PD_USEDEVMODECOPIES = 0x040000,
185 192 PD_USEDEVMODECOPIESANDCOLLATE = 0x040000,
186 193 PD_DISABLEPRINTTOFILE = 0x080000,
187 194 PD_HIDEPRINTTOFILE = 0x100000,
188 195 PD_NONETWORKBUTTON = 0x200000
189 196 }
190 197
191 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
198 +static if (_WIN32_WINNT >= 0x500) {
192 199 enum : DWORD {
193 200 PD_CURRENTPAGE = 0x00400000,
194 201 PD_NOCURRENTPAGE = 0x00800000,
195 202 PD_EXCLUSIONFLAGS = 0x01000000,
196 203 PD_USELARGETEMPLATE = 0x10000000,
197 204 }
198 205
................................................................................
285 292 CommDlg_OpenSave_GetFilePathA, CommDlg_OpenSave_GetFilePathW;
286 293 alias CommDlg_OpenSave_GetFolderPath
287 294 CommDlg_OpenSave_GetFolderPathA, CommDlg_OpenSave_GetFolderPathW;
288 295 +/
289 296
290 297 // Callbacks.
291 298 extern(Windows) {
292 -alias UINT function (HWND, UINT, WPARAM, LPARAM)
299 +alias UINT_PTR function (HWND, UINT, WPARAM, LPARAM)
293 300 LPCCHOOKPROC, LPCFHOOKPROC, LPFRHOOKPROC, LPOFNHOOKPROC,
294 301 LPPAGEPAINTHOOK, LPPAGESETUPHOOK, LPSETUPHOOKPROC, LPPRINTHOOKPROC;
295 302 }
296 303
297 304 align (1):
298 305
299 306 struct CHOOSECOLORA {
................................................................................
418 425 WORD nFileOffset;
419 426 WORD nFileExtension;
420 427 LPCSTR lpstrDefExt;
421 428 DWORD lCustData;
422 429 LPOFNHOOKPROC lpfnHook;
423 430 LPCSTR lpTemplateName;
424 431
425 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) {
432 + static if (_WIN32_WINNT >= 0x500) {
426 433 void *pvReserved;
427 434 DWORD dwReserved;
428 435 DWORD FlagsEx;
429 436 }
430 437 }
431 438 alias OPENFILENAMEA* LPOPENFILENAMEA;
432 439
................................................................................
448 455 WORD nFileOffset;
449 456 WORD nFileExtension;
450 457 LPCWSTR lpstrDefExt;
451 458 DWORD lCustData;
452 459 LPOFNHOOKPROC lpfnHook;
453 460 LPCWSTR lpTemplateName;
454 461
455 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x0500) {
462 + static if (_WIN32_WINNT >= 0x500) {
456 463 void *pvReserved;
457 464 DWORD dwReserved;
458 465 DWORD FlagsEx;
459 466 }
460 467 }
461 468 alias OPENFILENAMEW* LPOPENFILENAMEW;
462 469
................................................................................
554 561 LPCWSTR lpPrintTemplateName;
555 562 LPCWSTR lpSetupTemplateName;
556 563 HANDLE hPrintTemplate;
557 564 HANDLE hSetupTemplate;
558 565 }
559 566 alias PRINTDLGW* LPPRINTDLGW;
560 567
561 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
568 +static if (_WIN32_WINNT >= 0x500) {
562 569 import win32.unknwn; // for LPUNKNOWN
563 570 import win32.prsht; // for HPROPSHEETPAGE
564 571
565 572 struct PRINTPAGERANGE {
566 573 DWORD nFromPage;
567 574 DWORD nToPage;
568 575 }
................................................................................
614 621 DWORD nPropertyPages;
615 622 HPROPSHEETPAGE* lphPropertyPages;
616 623 DWORD nStartPage;
617 624 DWORD dwResultAction;
618 625 }
619 626 alias PRINTDLGEXW* LPPRINTDLGEXW;
620 627
621 -} // _WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500
628 +} // _WIN32_WINNT >= 0x500
622 629
623 630 extern (Windows) {
624 631 BOOL ChooseColorA(LPCHOOSECOLORA);
625 632 BOOL ChooseColorW(LPCHOOSECOLORW);
626 633 BOOL ChooseFontA(LPCHOOSEFONTA);
627 634 BOOL ChooseFontW(LPCHOOSEFONTW);
628 635 DWORD CommDlgExtendedError();
................................................................................
637 644 BOOL PageSetupDlgA(LPPAGESETUPDLGA);
638 645 BOOL PageSetupDlgW(LPPAGESETUPDLGW);
639 646 BOOL PrintDlgA(LPPRINTDLGA);
640 647 BOOL PrintDlgW(LPPRINTDLGW);
641 648 HWND ReplaceTextA(LPFINDREPLACEA);
642 649 HWND ReplaceTextW(LPFINDREPLACEW);
643 650
644 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
651 + static if (_WIN32_WINNT >= 0x500) {
645 652 HRESULT PrintDlgExA(LPPRINTDLGEXA);
646 653 HRESULT PrintDlgExW(LPPRINTDLGEXW);
647 654 }
648 655 }
649 656
650 657 version (Unicode) {
651 658 alias CHOOSECOLORW CHOOSECOLOR;
................................................................................
662 669 alias GetFileTitleW GetFileTitle;
663 670 alias GetOpenFileNameW GetOpenFileName;
664 671 alias GetSaveFileNameW GetSaveFileName;
665 672 alias PageSetupDlgW PageSetupDlg;
666 673 alias PrintDlgW PrintDlg;
667 674 alias ReplaceTextW ReplaceText;
668 675
669 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
676 + static if (_WIN32_WINNT >= 0x500) {
670 677 alias PRINTDLGEXW PRINTDLGEX;
671 678 alias PrintDlgExW PrintDlgEx;
672 679 }
673 680
674 681 } else { // UNICODE
675 682
676 683 alias CHOOSECOLORA CHOOSECOLOR;
................................................................................
687 694 alias GetFileTitleA GetFileTitle;
688 695 alias GetOpenFileNameA GetOpenFileName;
689 696 alias GetSaveFileNameA GetSaveFileName;
690 697 alias PageSetupDlgA PageSetupDlg;
691 698 alias PrintDlgA PrintDlg;
692 699 alias ReplaceTextA ReplaceText;
693 700
694 - static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
701 + static if (_WIN32_WINNT >= 0x500) {
695 702 alias PRINTDLGEXA PRINTDLGEX;
696 703 alias PrintDlgExA PrintDlgEx;
697 704 }
698 705
699 706 } // UNICODE
700 707
701 708 alias CHOOSECOLOR* LPCHOOSECOLOR;
702 709 alias CHOOSEFONT* LPCHOOSEFONT;
703 710 alias FINDREPLACE* LPFINDREPLACE;
704 711 alias OPENFILENAME* LPOPENFILENAME;
705 712 alias OFNOTIFY* LPOFNOTIFY;
706 713 alias PAGESETUPDLG* LPPAGESETUPDLG;
707 714 alias PRINTDLG* LPPRINTDLG;
708 -static if (_WIN32_WINNT_ONLY && _WIN32_WINNT >= 0x500) {
715 +static if (_WIN32_WINNT >= 0x500) {
709 716 alias PRINTDLGEX* LPPRINTDLGEX;
710 717 }