@@ -25,11 +25,13 @@ extern "C" {
2525#define LOCALE_ILANGUAGE 1
2626#define LOCALE_SLANGUAGE 2
2727#define LOCALE_SENGLANGUAGE 0x1001
28+ #define LOCALE_SENGLISHLANGUAGENAME 0x1001
2829#define LOCALE_SABBREVLANGNAME 3
2930#define LOCALE_SNATIVELANGNAME 4
3031#define LOCALE_ICOUNTRY 5
3132#define LOCALE_SCOUNTRY 6
3233#define LOCALE_SENGCOUNTRY 0x1002
34+ #define LOCALE_SENGLISHCOUNTRYNAME 0x1002
3335#define LOCALE_SABBREVCTRYNAME 7
3436#define LOCALE_SNATIVECTRYNAME 8
3537#define LOCALE_IDEFAULTLANGUAGE 9
@@ -710,6 +712,18 @@ BOOL WINAPI EnumSystemCodePagesW(_In_ CODEPAGE_ENUMPROCW, _In_ DWORD);
710712BOOL WINAPI EnumSystemGeoID (_In_ GEOCLASS , _In_ GEOID , _In_ GEO_ENUMPROC );
711713BOOL WINAPI EnumSystemLocalesA (_In_ LOCALE_ENUMPROCA , _In_ DWORD );
712714BOOL WINAPI EnumSystemLocalesW (_In_ LOCALE_ENUMPROCW , _In_ DWORD );
715+
716+ typedef BOOL (CALLBACK * LOCALE_ENUMPROCEX )(LPWSTR , DWORD , LPARAM );
717+
718+ WINBASEAPI
719+ BOOL
720+ WINAPI
721+ EnumSystemLocalesEx (
722+ _In_ LOCALE_ENUMPROCEX lpLocaleEnumProcEx ,
723+ _In_ DWORD dwFlags ,
724+ _In_ LPARAM lParam ,
725+ _In_opt_ LPVOID lpReserved );
726+
713727BOOL WINAPI EnumTimeFormatsA (_In_ TIMEFMT_ENUMPROCA , _In_ LCID , _In_ DWORD );
714728BOOL WINAPI EnumTimeFormatsW (_In_ TIMEFMT_ENUMPROCW , _In_ LCID , _In_ DWORD );
715729
@@ -888,6 +902,14 @@ int WINAPI GetTimeFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
888902int WINAPI GetTimeFormatW (LCID ,DWORD ,const SYSTEMTIME * ,LPCWSTR ,LPWSTR ,int );
889903int WINAPI GetTimeFormatEx (LPCWSTR ,DWORD ,const SYSTEMTIME * ,LPCWSTR ,LPWSTR ,int );
890904LANGID WINAPI GetUserDefaultLangID (void );
905+
906+ WINBASEAPI
907+ int
908+ WINAPI
909+ GetUserDefaultLocaleName (
910+ _Out_writes_ (cchLocaleName ) LPWSTR lpLocaleName ,
911+ _In_ int cchLocaleName );
912+
891913LCID WINAPI GetUserDefaultLCID (void );
892914GEOID WINAPI GetUserGeoID (_In_ GEOCLASS );
893915
@@ -1006,7 +1028,11 @@ GetLocaleInfoEx(
10061028 _Out_writes_opt_ (cchData ) LPWSTR lpLCData ,
10071029 _In_ int cchData );
10081030
1009- BOOL WINAPI IsValidLocaleName (_In_ LPCWSTR lpLocaleName );
1031+ WINBASEAPI
1032+ BOOL
1033+ WINAPI
1034+ IsValidLocaleName (
1035+ _In_ LPCWSTR lpLocaleName );
10101036
10111037BOOL
10121038WINAPI
@@ -1106,11 +1132,41 @@ GetStringScripts(
11061132BOOL WINAPI SetProcessPreferredUILanguages (_In_ DWORD , _In_opt_ PCZZWSTR , _Out_opt_ PULONG );
11071133BOOL WINAPI SetThreadPreferredUILanguages (_In_ DWORD , _In_opt_ PCZZWSTR , _Out_opt_ PULONG );
11081134BOOL WINAPI VerifyScripts (_In_ DWORD , _In_ LPCWSTR , _In_ int , _In_ LPCWSTR , _In_ int );
1109- INT WINAPI LCMapStringEx (_In_ LPCWSTR , _In_ DWORD , _In_ LPCWSTR , _In_ INT , _Out_opt_ LPWSTR , _In_ INT , _In_ LPNLSVERSIONINFO , _In_ LPVOID , _In_ LPARAM );
1135+
1136+ #if (WINVER >= _WIN32_WINNT_WIN8 )
1137+ _When_ ((dwMapFlags & (LCMAP_SORTKEY | LCMAP_BYTEREV | LCMAP_HASH | LCMAP_SORTHANDLE )) != 0 , _At_ ((LPBYTE ) lpDestStr , _Out_writes_bytes_opt_ (cchDest )))
1138+ #else
1139+ _When_ ((dwMapFlags & (LCMAP_SORTKEY | LCMAP_BYTEREV )) != 0 , _At_ ((LPBYTE ) lpDestStr , _Out_writes_bytes_opt_ (cchDest )))
1140+ #endif
1141+ _When_ (cchSrc != -1 , _At_ ((WCHAR * ) lpSrcStr , _Out_writes_opt_ (cchSrc )))
1142+ _When_ (cchDest != -1 , _At_ ((WCHAR * ) lpDestStr , _Out_writes_opt_ (cchDest )))
1143+ WINBASEAPI
1144+ int
1145+ WINAPI
1146+ LCMapStringEx (
1147+ _In_opt_ LPCWSTR lpLocaleName ,
1148+ _In_ DWORD dwMapFlags ,
1149+ _In_reads_ (cchSrc ) LPCWSTR lpSrcStr ,
1150+ _In_ int cchSrc ,
1151+ _Out_writes_opt_ (cchDest ) LPWSTR lpDestStr ,
1152+ _In_ int cchDest ,
1153+ _In_opt_ LPNLSVERSIONINFO lpVersionInformation ,
1154+ _In_opt_ LPVOID lpReserved ,
1155+ _In_opt_ LPARAM sortHandle );
1156+
11101157LCID WINAPI LocaleNameToLCID (_In_ LPCWSTR , _In_ DWORD );
11111158
11121159#endif /* (WINVER >= 0x0600) */
11131160
1161+ WINBASEAPI
1162+ int
1163+ WINAPI
1164+ LCIDToLocaleName (
1165+ _In_ LCID Locale ,
1166+ _Out_writes_opt_ (cchName ) LPWSTR lpName ,
1167+ _In_ int cchName ,
1168+ _In_ DWORD dwFlags );
1169+
11141170#ifdef UNICODE
11151171#define CALINFO_ENUMPROC CALINFO_ENUMPROCW
11161172#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW
@@ -1207,4 +1263,9 @@ typedef LPNUMBERFMTA LPNUMBERFMT;
12071263#ifdef __cplusplus
12081264}
12091265#endif
1266+
1267+ #ifndef NOAPISET
1268+ #include <stringapiset.h>
1269+ #endif
1270+
12101271#endif
0 commit comments