Differences From Artifact [7ac912f533a75996]:
- File
src/win32/winnls.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 [36a7fbecd1a8b466]:
- File
src/win32/winnls.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 Stewart Gordon * 7 * by Stewart Gordon *
8 * * 8 * *
9 * Placed into public domain * 9 * Placed into public domain *
10 \***********************************************************************/ 10 \***********************************************************************/
11 module win32.winnls; 11 module win32.winnls;
12 pragma(lib, "kernel32.lib"); | 12 pragma(lib, "kernel32");
13 13
14 private import win32.basetsd, win32.w32api, win32.winbase, win32.windef; 14 private import win32.basetsd, win32.w32api, win32.winbase, win32.windef;
15 15
16 alias DWORD LCTYPE, CALTYPE, CALID, LGRPID, GEOID, GEOTYPE, GEOCLASS; 16 alias DWORD LCTYPE, CALTYPE, CALID, LGRPID, GEOID, GEOTYPE, GEOCLASS;
17 17
18 const size_t 18 const size_t
19 MAX_DEFAULTCHAR = 2, 19 MAX_DEFAULTCHAR = 2,
................................................................................................................................................................................
461 LGRPID_ARABIC, 461 LGRPID_ARABIC,
462 LGRPID_VIETNAMESE, 462 LGRPID_VIETNAMESE,
463 LGRPID_INDIC, 463 LGRPID_INDIC,
464 LGRPID_GEORGIAN, 464 LGRPID_GEORGIAN,
465 LGRPID_ARMENIAN // = 17 465 LGRPID_ARMENIAN // = 17
466 } 466 }
467 467
468 static if (WINVER >= 0x500) { | 468 static if (_WIN32_WINNT >= 0x500) {
469 enum : LCTYPE { 469 enum : LCTYPE {
470 LOCALE_SYEARMONTH = 0x1006, 470 LOCALE_SYEARMONTH = 0x1006,
471 LOCALE_SENGCURRNAME = 0x1007, 471 LOCALE_SENGCURRNAME = 0x1007,
472 LOCALE_SNATIVECURRNAME = 0x1008, 472 LOCALE_SNATIVECURRNAME = 0x1008,
473 LOCALE_IDEFAULTEBCDICCODEPAGE = 0x1012, 473 LOCALE_IDEFAULTEBCDICCODEPAGE = 0x1012,
474 LOCALE_SSORTNAME = 0x1013, 474 LOCALE_SSORTNAME = 0x1013,
475 LOCALE_IDIGITSUBSTITUTION = 0x1014, 475 LOCALE_IDIGITSUBSTITUTION = 0x1014,
................................................................................................................................................................................
487 enum : CALTYPE { 487 enum : CALTYPE {
488 CAL_SYEARMONTH = 47, 488 CAL_SYEARMONTH = 47,
489 CAL_ITWODIGITYEARMAX = 48, 489 CAL_ITWODIGITYEARMAX = 48,
490 CAL_NOUSEROVERRIDE = LOCALE_NOUSEROVERRIDE, 490 CAL_NOUSEROVERRIDE = LOCALE_NOUSEROVERRIDE,
491 CAL_RETURN_NUMBER = LOCALE_RETURN_NUMBER, 491 CAL_RETURN_NUMBER = LOCALE_RETURN_NUMBER,
492 CAL_USE_CP_ACP = LOCALE_USE_CP_ACP 492 CAL_USE_CP_ACP = LOCALE_USE_CP_ACP
493 } 493 }
494 } // (WINVER >= 0x500) | 494 } // (_WIN32_WINNT >= 0x500)
495 495
496 extern (Windows) { 496 extern (Windows) {
497 alias BOOL function(LPSTR) CALINFO_ENUMPROCA; 497 alias BOOL function(LPSTR) CALINFO_ENUMPROCA;
498 alias BOOL function(LPWSTR) CALINFO_ENUMPROCW; 498 alias BOOL function(LPWSTR) CALINFO_ENUMPROCW;
499 alias BOOL function(LPSTR, CALID) CALINFO_ENUMPROCEXA; 499 alias BOOL function(LPSTR, CALID) CALINFO_ENUMPROCEXA;
500 alias BOOL function(LPWSTR, CALID) CALINFO_ENUMPROCEXW; 500 alias BOOL function(LPWSTR, CALID) CALINFO_ENUMPROCEXW;
501 alias BOOL function(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR) 501 alias BOOL function(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR)
................................................................................................................................................................................
641 int FoldStringW(DWORD, LPCWSTR, int, LPWSTR, int); 641 int FoldStringW(DWORD, LPCWSTR, int, LPWSTR, int);
642 UINT GetACP(); 642 UINT GetACP();
643 int GetCalendarInfoA(LCID, CALID, CALTYPE, LPSTR, int, LPDWORD); 643 int GetCalendarInfoA(LCID, CALID, CALTYPE, LPSTR, int, LPDWORD);
644 int GetCalendarInfoW(LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD); 644 int GetCalendarInfoW(LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD);
645 BOOL GetCPInfo(UINT, LPCPINFO); 645 BOOL GetCPInfo(UINT, LPCPINFO);
646 BOOL GetCPInfoExA(UINT, DWORD, LPCPINFOEXA); 646 BOOL GetCPInfoExA(UINT, DWORD, LPCPINFOEXA);
647 BOOL GetCPInfoExW(UINT, DWORD, LPCPINFOEXW); 647 BOOL GetCPInfoExW(UINT, DWORD, LPCPINFOEXW);
648 int GetCurrencyFormatA(LCID, DWORD, LPCSTR, CPtr!(CURRENCYFMTA), LPSTR, | 648 int GetCurrencyFormatA(LCID, DWORD, LPCSTR, const(CURRENCYFMTA)*, LPSTR
649 int GetCurrencyFormatW(LCID, DWORD, LPCWSTR, CPtr!(CURRENCYFMTW), LPWST | 649 int GetCurrencyFormatW(LCID, DWORD, LPCWSTR, const(CURRENCYFMTW)*, LPWS
650 int); 650 int);
651 int GetDateFormatA(LCID, DWORD, CPtr!(SYSTEMTIME), LPCSTR, LPSTR, int); | 651 int GetDateFormatA(LCID, DWORD, const(SYSTEMTIME)*, LPCSTR, LPSTR, int)
652 int GetDateFormatW(LCID, DWORD, CPtr!(SYSTEMTIME), LPCWSTR, LPWSTR, int | 652 int GetDateFormatW(LCID, DWORD, const(SYSTEMTIME)*, LPCWSTR, LPWSTR, in
653 int GetGeoInfoA(GEOID, GEOTYPE, LPSTR, int, LANGID); 653 int GetGeoInfoA(GEOID, GEOTYPE, LPSTR, int, LANGID);
654 int GetGeoInfoW(GEOID, GEOTYPE, LPWSTR, int, LANGID); 654 int GetGeoInfoW(GEOID, GEOTYPE, LPWSTR, int, LANGID);
655 int GetLocaleInfoA(LCID, LCTYPE, LPSTR, int); 655 int GetLocaleInfoA(LCID, LCTYPE, LPSTR, int);
656 int GetLocaleInfoW(LCID, LCTYPE, LPWSTR, int); 656 int GetLocaleInfoW(LCID, LCTYPE, LPWSTR, int);
657 BOOL GetNLSVersion(NLS_FUNCTION, LCID, LPNLSVERSIONINFO); 657 BOOL GetNLSVersion(NLS_FUNCTION, LCID, LPNLSVERSIONINFO);
658 int GetNumberFormatA(LCID, DWORD, LPCSTR, CPtr!(NUMBERFMTA), LPSTR, int | 658 int GetNumberFormatA(LCID, DWORD, LPCSTR, const(NUMBERFMTA)*, LPSTR, in
659 int GetNumberFormatW(LCID, DWORD, LPCWSTR, CPtr!(NUMBERFMTW), LPWSTR, i | 659 int GetNumberFormatW(LCID, DWORD, LPCWSTR, const(NUMBERFMTW)*, LPWSTR,
660 UINT GetOEMCP(); 660 UINT GetOEMCP();
661 BOOL GetStringTypeA(LCID, DWORD, LPCSTR, int, LPWORD); 661 BOOL GetStringTypeA(LCID, DWORD, LPCSTR, int, LPWORD);
662 BOOL GetStringTypeW(DWORD, LPCWSTR, int, LPWORD); 662 BOOL GetStringTypeW(DWORD, LPCWSTR, int, LPWORD);
663 BOOL GetStringTypeExA(LCID, DWORD, LPCSTR, int, LPWORD); 663 BOOL GetStringTypeExA(LCID, DWORD, LPCSTR, int, LPWORD);
664 BOOL GetStringTypeExW(LCID, DWORD, LPCWSTR, int, LPWORD); 664 BOOL GetStringTypeExW(LCID, DWORD, LPCWSTR, int, LPWORD);
665 LANGID GetSystemDefaultLangID(); 665 LANGID GetSystemDefaultLangID();
666 LCID GetSystemDefaultLCID(); 666 LCID GetSystemDefaultLCID();
667 LCID GetThreadLocale(); 667 LCID GetThreadLocale();
668 int GetTimeFormatA(LCID, DWORD, CPtr!(SYSTEMTIME), LPCSTR, LPSTR, int); | 668 int GetTimeFormatA(LCID, DWORD, const(SYSTEMTIME)*, LPCSTR, LPSTR, int)
669 int GetTimeFormatW(LCID, DWORD, CPtr!(SYSTEMTIME), LPCWSTR, LPWSTR, int | 669 int GetTimeFormatW(LCID, DWORD, const(SYSTEMTIME)*, LPCWSTR, LPWSTR, in
670 LANGID GetUserDefaultLangID(); 670 LANGID GetUserDefaultLangID();
671 LCID GetUserDefaultLCID(); 671 LCID GetUserDefaultLCID();
672 GEOID GetUserGeoID(GEOCLASS); 672 GEOID GetUserGeoID(GEOCLASS);
673 BOOL IsDBCSLeadByte(BYTE); 673 BOOL IsDBCSLeadByte(BYTE);
674 BOOL IsDBCSLeadByteEx(UINT, BYTE); 674 BOOL IsDBCSLeadByteEx(UINT, BYTE);
675 BOOL IsNLSDefinedString(NLS_FUNCTION, DWORD, LPNLSVERSIONINFO, LPCWSTR, 675 BOOL IsNLSDefinedString(NLS_FUNCTION, DWORD, LPNLSVERSIONINFO, LPCWSTR,
676 int); 676 int);
................................................................................................................................................................................
684 BOOL SetLocaleInfoA(LCID, LCTYPE, LPCSTR); 684 BOOL SetLocaleInfoA(LCID, LCTYPE, LPCSTR);
685 BOOL SetLocaleInfoW(LCID, LCTYPE, LPCWSTR); 685 BOOL SetLocaleInfoW(LCID, LCTYPE, LPCWSTR);
686 BOOL SetThreadLocale(LCID); 686 BOOL SetThreadLocale(LCID);
687 BOOL SetUserGeoID(GEOID); 687 BOOL SetUserGeoID(GEOID);
688 int WideCharToMultiByte(UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR, 688 int WideCharToMultiByte(UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR,
689 LPBOOL); 689 LPBOOL);
690 690
691 static if (WINVER >= 0x410) { | 691 static if (_WIN32_WINNT >= 0x410) {
692 BOOL EnumCalendarInfoExA(CALINFO_ENUMPROCEXA, LCID, CALID, CALTY 692 BOOL EnumCalendarInfoExA(CALINFO_ENUMPROCEXA, LCID, CALID, CALTY
693 BOOL EnumCalendarInfoExW(CALINFO_ENUMPROCEXW, LCID, CALID, CALTY 693 BOOL EnumCalendarInfoExW(CALINFO_ENUMPROCEXW, LCID, CALID, CALTY
694 BOOL EnumDateFormatsExA(DATEFMT_ENUMPROCEXA, LCID, DWORD); 694 BOOL EnumDateFormatsExA(DATEFMT_ENUMPROCEXA, LCID, DWORD);
695 BOOL EnumDateFormatsExW(DATEFMT_ENUMPROCEXW, LCID, DWORD); 695 BOOL EnumDateFormatsExW(DATEFMT_ENUMPROCEXW, LCID, DWORD);
696 BOOL IsValidLanguageGroup(LGRPID, DWORD); 696 BOOL IsValidLanguageGroup(LGRPID, DWORD);
697 } 697 }
698 698
699 static if (WINVER >= 0x500) { | 699 static if (_WIN32_WINNT >= 0x500) {
700 LANGID GetSystemDefaultUILanguage(); 700 LANGID GetSystemDefaultUILanguage();
701 LANGID GetUserDefaultUILanguage(); 701 LANGID GetUserDefaultUILanguage();
702 702
703 static if (_WIN32_WINNT_ONLY) { <
704 BOOL EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA, | 703 BOOL EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA, DWORD,
705 LONG_PTR); | 704 LONG_PTR);
706 BOOL EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW, | 705 BOOL EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW, DWORD,
707 LONG_PTR); | 706 LONG_PTR);
708 BOOL EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA | 707 BOOL EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA, LGRPID
709 DWORD, LONG_PTR); | 708 DWORD, LONG_PTR);
710 BOOL EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW | 709 BOOL EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW, LGRPID
711 DWORD, LONG_PTR); | 710 DWORD, LONG_PTR);
712 BOOL EnumUILanguagesA(UILANGUAGE_ENUMPROCA, DWORD, LONG_ | 711 BOOL EnumUILanguagesA(UILANGUAGE_ENUMPROCA, DWORD, LONG_PTR);
713 BOOL EnumUILanguagesW(UILANGUAGE_ENUMPROCW, DWORD, LONG_ | 712 BOOL EnumUILanguagesW(UILANGUAGE_ENUMPROCW, DWORD, LONG_PTR);
714 } <
715 } 713 }
716 } 714 }
717 715
718 version (Unicode) { 716 version (Unicode) {
719 alias CALINFO_ENUMPROCW CALINFO_ENUMPROC; 717 alias CALINFO_ENUMPROCW CALINFO_ENUMPROC;
720 alias CALINFO_ENUMPROCEXW CALINFO_ENUMPROCEX; 718 alias CALINFO_ENUMPROCEXW CALINFO_ENUMPROCEX;
721 alias LOCALE_ENUMPROCW LOCALE_ENUMPROC; 719 alias LOCALE_ENUMPROCW LOCALE_ENUMPROC;
................................................................................................................................................................................
747 alias GetNumberFormatW GetNumberFormat; 745 alias GetNumberFormatW GetNumberFormat;
748 alias GetStringTypeExW GetStringTypeEx; 746 alias GetStringTypeExW GetStringTypeEx;
749 alias GetTimeFormatW GetTimeFormat; 747 alias GetTimeFormatW GetTimeFormat;
750 alias LCMapStringW LCMapString; 748 alias LCMapStringW LCMapString;
751 alias SetCalendarInfoW SetCalendarInfo; 749 alias SetCalendarInfoW SetCalendarInfo;
752 alias SetLocaleInfoW SetLocaleInfo; 750 alias SetLocaleInfoW SetLocaleInfo;
753 751
754 static if (WINVER >= 0x410) { | 752 static if (_WIN32_WINNT >= 0x410) {
755 alias EnumCalendarInfoExW EnumCalendarInfoEx; 753 alias EnumCalendarInfoExW EnumCalendarInfoEx;
756 alias EnumDateFormatsExW EnumDateFormatsEx; 754 alias EnumDateFormatsExW EnumDateFormatsEx;
757 } 755 }
758 756
759 static if (_WIN32_WINNT_ONLY && WINVER >= 0x500) { | 757 static if (_WIN32_WINNT >= 0x500) {
760 alias EnumSystemLanguageGroupsW EnumSystemLanguageGroups; 758 alias EnumSystemLanguageGroupsW EnumSystemLanguageGroups;
761 alias EnumLanguageGroupLocalesW EnumLanguageGroupLocales; 759 alias EnumLanguageGroupLocalesW EnumLanguageGroupLocales;
762 alias EnumUILanguagesW EnumUILanguages; 760 alias EnumUILanguagesW EnumUILanguages;
763 } 761 }
764 762
765 } else { 763 } else {
766 alias CALINFO_ENUMPROCA CALINFO_ENUMPROC; 764 alias CALINFO_ENUMPROCA CALINFO_ENUMPROC;
................................................................................................................................................................................
794 alias GetNumberFormatA GetNumberFormat; 792 alias GetNumberFormatA GetNumberFormat;
795 alias GetStringTypeExA GetStringTypeEx; 793 alias GetStringTypeExA GetStringTypeEx;
796 alias GetTimeFormatA GetTimeFormat; 794 alias GetTimeFormatA GetTimeFormat;
797 alias LCMapStringA LCMapString; 795 alias LCMapStringA LCMapString;
798 alias SetCalendarInfoA SetCalendarInfo; 796 alias SetCalendarInfoA SetCalendarInfo;
799 alias SetLocaleInfoA SetLocaleInfo; 797 alias SetLocaleInfoA SetLocaleInfo;
800 798
801 static if (WINVER >= 0x410) { | 799 static if (_WIN32_WINNT >= 0x410) {
802 alias EnumCalendarInfoExA EnumCalendarInfoEx; 800 alias EnumCalendarInfoExA EnumCalendarInfoEx;
803 alias EnumDateFormatsExA EnumDateFormatsEx; 801 alias EnumDateFormatsExA EnumDateFormatsEx;
804 } 802 }
805 803
806 static if (_WIN32_WINNT_ONLY && WINVER >= 0x500) { | 804 static if (_WIN32_WINNT >= 0x500) {
807 alias EnumSystemLanguageGroupsA EnumSystemLanguageGroups; 805 alias EnumSystemLanguageGroupsA EnumSystemLanguageGroups;
808 alias EnumLanguageGroupLocalesA EnumLanguageGroupLocales; 806 alias EnumLanguageGroupLocalesA EnumLanguageGroupLocales;
809 alias EnumUILanguagesA EnumUILanguages; 807 alias EnumUILanguagesA EnumUILanguages;
810 } 808 }
811 } 809 }