#define LOCALE_SABBREVMONTHNAME13 0x100F
#define LOCALE_SPOSITIVESIGN 80
#define LOCALE_SNEGATIVESIGN 81
-#define LOCALE_SSCRIPTS 108
+#define LOCALE_SSCRIPTS 108 // FIXME
#define LOCALE_IPOSSIGNPOSN 82
#define LOCALE_INEGSIGNPOSN 83
#define LOCALE_IPOSSYMPRECEDES 84
#define LOCALE_IPOSSEPBYSPACE 85
#define LOCALE_INEGSYMPRECEDES 86
#define LOCALE_INEGSEPBYSPACE 87
-#if (WINVER >= 0x0400)
#define LOCALE_FONTSIGNATURE 88
#define LOCALE_SISO639LANGNAME 89
#define LOCALE_SISO3166CTRYNAME 90
-#define LOCALE_SNAME 92
-#endif
+#define LOCALE_SNAME 92 // FIXME
+
#if (WINVER >= 0x0600)
+#define LOCALE_SNAME 92
+#define LOCALE_SDURATION 93
+#define LOCALE_SKEYBOARDSTOINSTALL 94
+#define LOCALE_SSHORTESTDAYNAME1 96
+#define LOCALE_SSHORTESTDAYNAME2 97
+#define LOCALE_SSHORTESTDAYNAME3 98
+#define LOCALE_SSHORTESTDAYNAME4 99
+#define LOCALE_SSHORTESTDAYNAME5 100
+#define LOCALE_SSHORTESTDAYNAME6 101
+#define LOCALE_SSHORTESTDAYNAME7 102
+#define LOCALE_SISO639LANGNAME2 103
+#define LOCALE_SISO3166CTRYNAME2 104
+#define LOCALE_SNAN 105
+#define LOCALE_SPOSINFINITY 106
+#define LOCALE_SNEGINFINITY 107
#define LOCALE_SSCRIPTS 108
-#endif
-#define LOCALE_SYSTEM_DEFAULT 0x800
-#define LOCALE_USER_DEFAULT 0x400
+#define LOCALE_SPARENT 109
+#define LOCALE_SCONSOLEFALLBACKNAME 110
+#endif /* (WINVER >= 0x0600) */
+//#if (WINVER >= _WIN32_WINNT_WIN7)
#define LOCALE_IREADINGLAYOUT 0x0070
#define LOCALE_INEUTRAL 0x0071
+#define LOCALE_INEGATIVEPERCENT 0x0074
+#define LOCALE_IPOSITIVEPERCENT 0x0075
+#define LOCALE_SPERCENT 0x0076
+#define LOCALE_SPERMILLE 0x0077
+#define LOCALE_SMONTHDAY 0x0078
+#define LOCALE_SSHORTTIME 0x0079
+#define LOCALE_SOPENTYPELANGUAGETAG 0x007a
+#define LOCALE_SSORTLOCALE 0x007b
+//#endif /* (WINVER >= _WIN32_WINNT_WIN7) */
-#if defined(__GNUC__)
-# define LOCALE_NAME_INVARIANT (const WCHAR []){ 0 }
-#elif defined(_MSC_VER)
-# define LOCALE_NAME_INVARIANT L""
-#else
-static const WCHAR LOCALE_NAME_INVARIANT[] = { 0 };
-#endif
-
-#if defined(__GNUC__)
-# define LOCALE_NAME_SYSTEM_DEFAULT (const WCHAR []){'!','s','y','s','-','d','e','f','a','u','l','t','-','l','o','c','a','l','e',0}
-#elif defined(_MSC_VER)
-# define LOCALE_NAME_SYSTEM_DEFAULT L"!sys-default-locale"
-#else
-static const WCHAR LOCALE_NAME_SYSTEM_DEFAULT[] = {'!','s','y','s','-','d','e','f','a','u','l','t','-','l','o','c','a','l','e',0};
-#endif
-
+#if (WINVER >= 0x0600)
#define LOCALE_NAME_USER_DEFAULT NULL
+#define LOCALE_NAME_INVARIANT L""
+#define LOCALE_NAME_SYSTEM_DEFAULT L"!sys-default-locale"
+#endif
#define LOCALE_IDEFAULTUNIXCODEPAGE 0x1030 /* Wine extension */
#define NORM_IGNORENONSPACE 2
#define NORM_IGNORESYMBOLS 4
#define NORM_IGNOREWIDTH 131072
+#define LINGUISTIC_IGNORECASE 0x00000010
+#define NORM_LINGUISTIC_CASING 0x08000000
#define SORT_STRINGSORT 4096
#define LCMAP_LOWERCASE 0x00000100
#define LCMAP_UPPERCASE 0x00000200
#define C3_LEXICAL 1024
#define C3_ALPHA 32768
#define C3_NOTAPPLICABLE 0
+#define C3_HIGHSURROGATE 0x0800
+#define C3_LOWSURROGATE 0x1000
#define TIME_NOMINUTESORSECONDS 1
#define TIME_NOSECONDS 2
#define TIME_NOTIMEMARKER 4
#define VS_ALLOW_LATIN 0x1
#define GSS_ALLOW_INHERITED_COMMON 0x1
#endif
-#ifndef _BASETSD_H
+#ifndef _BASETSD_H_
typedef long LONG_PTR;
#endif
+#if (WINVER >= 0x0600)
+#define MUI_FULL_LANGUAGE 0x01
+#define MUI_LANGUAGE_ID 0x04
+#define MUI_LANGUAGE_NAME 0x08
+#define MUI_MACHINE_LANGUAGE_SETTINGS 0x400
+#endif /* (WINVER >= 0x0600) */
+
#ifndef RC_INVOKED
typedef DWORD LCTYPE;
typedef DWORD CALTYPE;
typedef DWORD GEOID;
typedef DWORD GEOTYPE;
typedef DWORD GEOCLASS;
+typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXEX)(LPWSTR, CALID, LPWSTR, LPARAM);
+typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXEX)(LPWSTR, CALID, LPARAM);
+typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCEX)(LPWSTR, LPARAM);
typedef BOOL (CALLBACK *CALINFO_ENUMPROCA)(LPSTR);
typedef BOOL (CALLBACK *CALINFO_ENUMPROCW)(LPWSTR);
typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXA)(LPSTR, CALID);
GEOCLASS_NATION = 16,
GEOCLASS_REGION = 14
};
-enum SYSGEOTYPE {
- GEO_NATION = 0x0001,
- GEO_LATITUDE = 0x0002,
- GEO_LONGITUDE = 0x0003,
- GEO_ISO2 = 0x0004,
- GEO_ISO3 = 0x0005,
- GEO_RFC1766 = 0x0006,
- GEO_LCID = 0x0007,
- GEO_FRIENDLYNAME = 0x0008,
- GEO_OFFICIALNAME = 0x0009,
- GEO_TIMEZONES = 0x000a,
- GEO_OFFICIALLANGUAGES = 0x000b
+
+/* Geographic Information types */
+enum SYSGEOTYPE
+{
+ GEO_NATION = 1,
+ GEO_LATITUDE,
+ GEO_LONGITUDE,
+ GEO_ISO2,
+ GEO_ISO3,
+ GEO_RFC1766,
+ GEO_LCID,
+ GEO_FRIENDLYNAME,
+ GEO_OFFICIALNAME,
+ GEO_TIMEZONES,
+ GEO_OFFICIALLANGUAGES,
+ GEO_ISO_UN_NUMBER,
+ GEO_PARENT,
+ GEO_DIALINGCODE,
+ GEO_CURRENCYCODE,
+ GEO_CURRENCYSYMBOL
};
typedef struct _cpinfo {
LANGID WINAPI GetUserDefaultLangID(void);
LCID WINAPI GetUserDefaultLCID(void);
GEOID WINAPI GetUserGeoID(_In_ GEOCLASS);
+
+#if (WINVER >= 0x0600)
+
+int
+WINAPI
+IdnToAscii(
+ _In_ DWORD dwFlags,
+ _In_reads_(cchUnicodeChar) LPCWSTR lpUnicodeCharStr,
+ _In_ int cchUnicodeChar,
+ _Out_writes_opt_(cchASCIIChar) LPWSTR lpASCIICharStr,
+ _In_ int cchASCIIChar);
+
+int
+WINAPI
+IdnToUnicode(
+ _In_ DWORD dwFlags,
+ _In_reads_(cchASCIIChar) LPCWSTR lpASCIICharStr,
+ _In_ int cchASCIIChar,
+ _Out_writes_opt_(cchUnicodeChar) LPWSTR lpUnicodeCharStr,
+ _In_ int cchUnicodeChar);
+
+#endif /* WINVER >= 0x0600 */
+
BOOL WINAPI IsDBCSLeadByte(_In_ BYTE);
BOOL WINAPI IsDBCSLeadByteEx(_In_ UINT, _In_ BYTE);