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