#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
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);