This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/WATCOM/h/nt/winnls.h

1130 lines
48 KiB
C

/*
* winnls.h Win32 National Language Support (NLS) functions
*
* =========================================================================
*
* Open Watcom Project
*
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
*
* This file is automatically generated. Do not edit directly.
*
* =========================================================================
*/
#ifndef _WINNLS_
#define _WINNLS_
#ifndef _ENABLE_AUTODEPEND
#pragma read_only_file;
#endif
#ifdef __cplusplus
extern "C" {
#endif
/* Macro to specify normalization functions */
#define WINNORMALIZEAPI DECLSPEC_IMPORT
/* NLS primitive data types */
typedef DWORD LGRPID;
typedef DWORD LCTYPE;
typedef DWORD CALTYPE;
typedef DWORD CALID;
typedef DWORD NLS_FUNCTION;
typedef LONG GEOID;
typedef DWORD GEOTYPE;
typedef DWORD GEOCLASS;
/* Maximum lengths */
#define MAX_LEADBYTES 12
#define MAX_DEFAULTCHAR 2
/* Surrogate pair lengths */
#define HIGH_SURROGATE_START 0xD800
#define HIGH_SURROGATE_END 0xDBFF
#define LOW_SURROGATE_START 0xDC00
#define LOW_SURROGATE_END 0xDFFF
/* MultiByteToWideChar() flags */
#define MB_PRECOMPOSED 0x00000001L
#define MB_COMPOSITE 0x00000002L
#define MB_USEGLYPHCHARS 0x00000004L
#define MB_ERR_INVALID_CHARS 0x00000008L
/* WideCharToMultiByte() flags */
#define WC_DISCARDNS 0x00000010L
#define WC_SEPCHARS 0x00000020L
#define WC_DEFAULTCHAR 0x00000040L
#define WC_COMPOSITECHECK 0x00000200L
#if (WINVER >= 0x0500)
#define WC_NO_BEST_FIT_CHARS 0x00000400L
#endif
/* Character information types */
#define CT_CTYPE1 0x00000001L
#define CT_CTYPE2 0x00000002L
#define CT_CTYPE3 0x00000004L
/* Character information flags used with CT_CTYPE1 */
#define C1_UPPER 0x0001
#define C1_LOWER 0x0002
#define C1_DIGIT 0x0004
#define C1_SPACE 0x0008
#define C1_PUNCT 0x0010
#define C1_CNTRL 0x0020
#define C1_BLANK 0x0040
#define C1_XDIGIT 0x0080
#define C1_ALPHA 0x0100
#define C1_DEFINED 0x0200
/* Character information flags used with CT_CTYPE2 */
#define C2_LEFTTORIGHT 0x0001
#define C2_RIGHTTOLEFT 0x0002
#define C2_EUROPENUMBER 0x0003
#define C2_EUROPESEPARATOR 0x0004
#define C2_EUROPETERMINATOR 0x0005
#define C2_ARABICNUMBER 0x0006
#define C2_COMMONSEPARATOR 0x0007
#define C2_BLOCKSEPARATOR 0x0008
#define C2_SEGMENTSEPARATOR 0x0009
#define C2_WHITESPACE 0x000A
#define C2_OTHERNEUTRAL 0x000B
#define C2_NOTAPPLICABLE 0x0000
/* Character information flags used with CT_CTYPE3 */
#define C3_NONSPACING 0x0001
#define C3_DIACRITIC 0x0002
#define C3_VOWELMARK 0x0004
#define C3_SYMBOL 0x0008
#define C3_KATAKANA 0x0010
#define C3_HIRAGANA 0x0020
#define C3_HALFWIDTH 0x0040
#define C3_FULLWIDTH 0x0080
#define C3_IDEOGRAPH 0x0100
#define C3_KASHIDA 0x0200
#define C3_LEXICAL 0x0400
#define C3_HIGHSURROGATE 0x0800
#define C3_LOWSURROGATE 0x1000
#define C3_ALPHA 0x8000
#define C3_NOTAPPLICABLE 0x0000
/* CompareString() and LCMapString() flags */
#define NORM_IGNORECASE 0x00000001L
#define NORM_IGNORENONSPACE 0x00000002L
#define NORM_IGNORESYMBOLS 0x00000004L
#define LINGUISTIC_IGNORECASE 0x00000010L
#define LINGUISTIC_IGNOREDIACRITIC 0x00000020L
#define NORM_IGNOREKANATYPE 0x00010000L
#define NORM_IGNOREWIDTH 0x00020000L
#define NORM_LINGUISTIC_CASING 0x08000000L
/* FoldString() flags */
#define MAP_FOLDCZONE 0x00000010L
#define MAP_PRECOMPOSED 0x00000020L
#define MAP_COMPOSITE 0x00000040L
#define MAP_FOLDDIGITS 0x00000080L
#if (WINVER >= 0x0500)
#define MAP_EXPAND_LIGATURES 0x00002000L
#endif
/* LCMapString() flags */
#define LCMAP_LOWERCASE 0x00000100L
#define LCMAP_UPPERCASE 0x00000200L
#if (WINVER >= 0x0601)
#define LCMAP_TITLECASE 0x00000300L
#endif
#define LCMAP_SORTKEY 0x00000400L
#define LCMAP_BYTEREV 0x00000800L
#define LCMAP_HIRAGANA 0x00100000L
#define LCMAP_KATAKANA 0x00200000L
#define LCMAP_HALFWIDTH 0x00400000L
#define LCMAP_FULLWIDTH 0x00800000L
#define LCMAP_LINGUISTIC_CASING 0x01000000L
#define LCMAP_SIMPLIFIED_CHINESE 0x02000000L
#define LCMAP_TRADITIONAL_CHINESE 0x04000000L
/* FindNLSString() flags */
#define FIND_STARTSWITH 0x00100000L
#define FIND_ENDSWITH 0x00200000L
#define FIND_FROMSTART 0x00400000L
#define FIND_FROMEND 0x00800000L
/* EnumSystemLocalesEx() flags */
#if (WINVER >= 0x0600)
#define LOCALE_ALL 0x00000000L
#define LOCALE_WINDOWS 0x00000001L
#define LOCALE_SUPPLEMENTAL 0x00000002L
#define LOCALE_ALTERNATE_SORTS 0x00000004L
#define LOCALE_REPLACEMENT 0x00000008L
#endif
#if (WINVER >= 0x0601)
#define LOCALE_NEUTRALDATA 0x00000010L
#define LOCALE_SPECIFICDATA 0x00000020L
#endif
/* EnumSystemLanguageGroups() flags */
#define LGRPID_INSTALLED 0x00000001L
#define LGRPID_SUPPORTED 0x00000002L
/* EnumSystemLocales() flags */
#define LCID_INSTALLED 0x00000001L
#define LCID_SUPPORTED 0x00000002L
#define LCID_ALTERNATE_SORTS 0x00000004L
/* EnumSystemCodePages() flags */
#define CP_INSTALLED 0x00000001L
#define CP_SUPPORTED 0x00000002L
/* CompareString() flags */
#define SORT_STRINGSORT 0x00001000L
#if (WINVER >= 0x0601)
#define SORT_DIGITSASNUMBERS 0x00000008L
#endif
/* CompareString() return values */
#define CSTR_LESS_THAN 1
#define CSTR_EQUAL 2
#define CSTR_GREATER_THAN 3
/* Code page identifiers */
#define CP_ACP 0
#define CP_OEMCP 1
#define CP_MACCP 2
#define CP_THREAD_ACP 3
#define CP_SYMBOL 42
#define CP_UTF7 65000
#define CP_UTF8 65001
/* Country codes */
#define CTRY_DEFAULT 0
#define CTRY_ALBANIA 355
#define CTRY_ALGERIA 213
#define CTRY_ARGENTINA 54
#define CTRY_ARMENIA 374
#define CTRY_AUSTRALIA 61
#define CTRY_AUSTRIA 43
#define CTRY_AZERBAIJAN 994
#define CTRY_BAHRAIN 973
#define CTRY_BELARUS 375
#define CTRY_BELGIUM 32
#define CTRY_BELIZE 501
#define CTRY_BOLIVIA 591
#define CTRY_BRAZIL 55
#define CTRY_BRUNEI_DARUSSALAM 673
#define CTRY_BULGARIA 359
#define CTRY_CANADA 2
#define CTRY_CARIBBEAN 1
#define CTRY_CHILE 56
#define CTRY_COLOMBIA 57
#define CTRY_COSTA_RICA 506
#define CTRY_CROATIA 385
#define CTRY_CZECH 420
#define CTRY_DENMARK 45
#define CTRY_DOMINICAN_REPUBLIC 1
#define CTRY_ECUADOR 593
#define CTRY_EGYPT 20
#define CTRY_EL_SALVADOR 503
#define CTRY_ESTONIA 372
#define CTRY_FAEROE_ISLANDS 298
#define CTRY_FINLAND 358
#define CTRY_FRANCE 33
#define CTRY_GEORGIA 995
#define CTRY_GERMANY 49
#define CTRY_GREECE 30
#define CTRY_GUATEMALA 502
#define CTRY_HONDURAS 504
#define CTRY_HONG_KONG 852
#define CTRY_HUNGARY 36
#define CTRY_ICELAND 354
#define CTRY_INDIA 91
#define CTRY_INDONESIA 62
#define CTRY_IRAN 981
#define CTRY_IRAQ 964
#define CTRY_IRELAND 353
#define CTRY_ISRAEL 972
#define CTRY_ITALY 39
#define CTRY_JAMAICA 1
#define CTRY_JAPAN 81
#define CTRY_JORDAN 962
#define CTRY_KAZAKSTAN 7
#define CTRY_KENYA 254
#define CTRY_KUWAIT 965
#define CTRY_KYRGYZSTAN 996
#define CTRY_LATVIA 371
#define CTRY_LEBANON 961
#define CTRY_LIBYA 218
#define CTRY_LIECHTENSTEIN 41
#define CTRY_LITHUANIA 370
#define CTRY_LUXEMBOURG 352
#define CTRY_MACAU 853
#define CTRY_MACEDONIA 389
#define CTRY_MALAYSIA 60
#define CTRY_MALDIVES 960
#define CTRY_MEXICO 52
#define CTRY_MONACO 33
#define CTRY_MONGOLIA 976
#define CTRY_MOROCCO 212
#define CTRY_NETHERLANDS 31
#define CTRY_NEW_ZEALAND 64
#define CTRY_NICARAGUA 505
#define CTRY_NORWAY 47
#define CTRY_OMAN 968
#define CTRY_PAKISTAN 92
#define CTRY_PANAMA 507
#define CTRY_PARAGUAY 595
#define CTRY_PERU 51
#define CTRY_PHILIPPINES 63
#define CTRY_POLAND 48
#define CTRY_PORTUGAL 351
#define CTRY_PRCHINA 86
#define CTRY_PEURTO_RICO 1
#define CTRY_QATAR 974
#define CTRY_ROMANIA 40
#define CTRY_RUSSIA 7
#define CTRY_SAUDI_ARABIA 966
#define CTRY_SERBIA 381
#define CTRY_SINGAPORE 65
#define CTRY_SLOVAK 421
#define CTRY_SLOVENIA 386
#define CTRY_SOUTH_AFRICA 27
#define CTRY_SOUTH_KOREA 82
#define CTRY_SPAIN 34
#define CTRY_SWEDEN 46
#define CTRY_SWITZERLAND 41
#define CTRY_SYRIA 963
#define CTRY_TAIWAN 886
#define CTRY_TATARSTAN 7
#define CTRY_THAILAND 66
#define CTRY_TRINIDAD_Y_TOBAGO 1
#define CTRY_TUNISIA 216
#define CTRY_TURKEY 90
#define CTRY_UAE 971
#define CTRY_UKRAINE 380
#define CTRY_UNITED_KINGDOM 44
#define CTRY_UNITED_STATES 1
#define CTRY_URUGUAY 598
#define CTRY_UZBEKISTAN 7
#define CTRY_VENEZUELA 58
#define CTRY_VIET_NAM 84
#define CTRY_YEMEN 967
#define CTRY_ZIMBABWE 263
/* Locale information type flags */
#define LOCALE_NOUSEROVERRIDE 0x80000000L
#define LOCALE_USE_CP_ACP 0x40000000L
#if (WINVER >= 0x0400)
#define LOCALE_RETURN_NUMBER 0x20000000L
#endif
#if (WINVER >= 0x0601)
#define LOCALE_RETURN_GENITIVE_NAMES 0x10000000L
#define LOCALE_ALLOW_NEUTRAL_NAMES 0x08000000L
#endif
/* Locale information types */
#define LOCALE_ILANGUAGE 0x00000001L
#define LOCALE_SLANGUAGE 0x00000002L
#define LOCALE_SENGLANGUAGE 0x00001001L
#define LOCALE_SABBREVLANGNAME 0x00000003L
#define LOCALE_SNATIVELANGNAME 0x00000004L
#define LOCALE_ICOUNTRY 0x00000005L
#define LOCALE_SCOUNTRY 0x00000006L
#define LOCALE_SENGCOUNTRY 0x00001002L
#define LOCALE_SABBREVCTRYNAME 0x00000007L
#define LOCALE_SNATIVECTRYNAME 0x00000008L
#define LOCALE_IGEOID 0x0000005BL
#define LOCALE_IDEFAULTLANGUAGE 0x00000009L
#define LOCALE_IDEFAULTCOUNTRY 0x0000000AL
#define LOCALE_IDEFAULTCODEPAGE 0x0000000BL
#define LOCALE_IDEFAULTANSICODEPAGE 0x00001004L
#define LOCALE_IDEFAULTMACCODEPAGE 0x00001011L
#define LOCALE_SLIST 0x0000000CL
#define LOCALE_IMEASURE 0x0000000DL
#define LOCALE_SDECIMAL 0x0000000EL
#define LOCALE_STHOUSAND 0x0000000FL
#define LOCALE_SGROUPING 0x00000010L
#define LOCALE_IDIGITS 0x00000011L
#define LOCALE_ILZERO 0x00000012L
#define LOCALE_INEGNUMBER 0x00001010L
#define LOCALE_SNATIVEDIGITS 0x00000013L
#define LOCALE_SCURRENCY 0x00000014L
#define LOCALE_SINTLSYMBOL 0x00000015L
#define LOCALE_SMONDECIMALSEP 0x00000016L
#define LOCALE_SMONTHOUSANDSEP 0x00000017L
#define LOCALE_SMONGROUPING 0x00000018L
#define LOCALE_ICURRDIGITS 0x00000019L
#define LOCALE_IINTLCURRDIGITS 0x0000001AL
#define LOCALE_ICURRENCY 0x0000001BL
#define LOCALE_INEGCURR 0x0000001CL
#define LOCALE_SDATE 0x0000001DL
#define LOCALE_STIME 0x0000001EL
#define LOCALE_SSHORTDATE 0x0000001FL
#define LOCALE_SLONGDATE 0x00000020L
#define LOCALE_STIMEFORMAT 0x00001003L
#define LOCALE_IDATE 0x00000021L
#define LOCALE_ILDATE 0x00000022L
#define LOCALE_ITIME 0x00000023L
#define LOCALE_ITIMEMARKPOSN 0x00001005L
#define LOCALE_ICENTURY 0x00000024L
#define LOCALE_ITLZERO 0x00000025L
#define LOCALE_IDAYLZERO 0x00000026L
#define LOCALE_IMONLZERO 0x00000027L
#define LOCALE_S1159 0x00000028L
#define LOCALE_S2359 0x00000029L
#define LOCALE_ICALENDARTYPE 0x00001009L
#define LOCALE_IOPTIONALCALENDAR 0x0000100BL
#define LOCALE_IFIRSTDAYOFWEEK 0x0000100CL
#define LOCALE_IFIRSTWEEKOFYEAR 0x0000100DL
#define LOCALE_SDAYNAME1 0x0000002AL
#define LOCALE_SDAYNAME2 0x0000002BL
#define LOCALE_SDAYNAME3 0x0000002CL
#define LOCALE_SDAYNAME4 0x0000002DL
#define LOCALE_SDAYNAME5 0x0000002EL
#define LOCALE_SDAYNAME6 0x0000002FL
#define LOCALE_SDAYNAME7 0x00000030L
#define LOCALE_SABBREVDAYNAME1 0x00000031L
#define LOCALE_SABBREVDAYNAME2 0x00000032L
#define LOCALE_SABBREVDAYNAME3 0x00000033L
#define LOCALE_SABBREVDAYNAME4 0x00000034L
#define LOCALE_SABBREVDAYNAME5 0x00000035L
#define LOCALE_SABBREVDAYNAME6 0x00000036L
#define LOCALE_SABBREVDAYNAME7 0x00000037L
#define LOCALE_SMONTHNAME1 0x00000038L
#define LOCALE_SMONTHNAME2 0x00000039L
#define LOCALE_SMONTHNAME3 0x0000003AL
#define LOCALE_SMONTHNAME4 0x0000003BL
#define LOCALE_SMONTHNAME5 0x0000003CL
#define LOCALE_SMONTHNAME6 0x0000003DL
#define LOCALE_SMONTHNAME7 0x0000003EL
#define LOCALE_SMONTHNAME8 0x0000003FL
#define LOCALE_SMONTHNAME9 0x00000040L
#define LOCALE_SMONTHNAME10 0x00000041L
#define LOCALE_SMONTHNAME11 0x00000042L
#define LOCALE_SMONTHNAME12 0x00000043L
#define LOCALE_SMONTHNAME13 0x0000100EL
#define LOCALE_SABBREVMONTHNAME1 0x00000044L
#define LOCALE_SABBREVMONTHNAME2 0x00000045L
#define LOCALE_SABBREVMONTHNAME3 0x00000046L
#define LOCALE_SABBREVMONTHNAME4 0x00000047L
#define LOCALE_SABBREVMONTHNAME5 0x00000048L
#define LOCALE_SABBREVMONTHNAME6 0x00000049L
#define LOCALE_SABBREVMONTHNAME7 0x0000004AL
#define LOCALE_SABBREVMONTHNAME8 0x0000004BL
#define LOCALE_SABBREVMONTHNAME9 0x0000004CL
#define LOCALE_SABBREVMONTHNAME10 0x0000004DL
#define LOCALE_SABBREVMONTHNAME11 0x0000004EL
#define LOCALE_SABBREVMONTHNAME12 0x0000004FL
#define LOCALE_SABBREVMONTHNAME13 0x0000100FL
#define LOCALE_SPOSITIVESIGN 0x00000050L
#define LOCALE_SNEGATIVESIGN 0x00000051L
#define LOCALE_IPOSSIGNPOSN 0x00000052L
#define LOCALE_INEGSIGNPOSN 0x00000053L
#define LOCALE_IPOSSYMPRECEDES 0x00000054L
#define LOCALE_IPOSSEPBYSPACE 0x00000055L
#define LOCALE_INEGSYMPRECEDES 0x00000056L
#define LOCALE_INEGSEPBYSPACE 0x00000057L
#if (WINVER >= 0x0400)
#define LOCALE_FONTSIGNATURE 0x00000058L
#define LOCALE_SISO639LANGNAME 0x00000059L
#define LOCALE_SISO3166CTRYNAME 0x0000005AL
#endif
#if (WINVER >= 0x0500)
#define LOCALE_IDEFAULTEBCDICCODEPAGE 0x00001012L
#define LOCALE_IPAPERSIZE 0x0000100AL
#define LOCALE_SENGCURRNAME 0x00001007L
#define LOCALE_SNATIVECURRNAME 0x00001008L
#define LOCALE_SYEARMONTH 0x00001006L
#define LOCALE_SSORTNAME 0x00001013L
#define LOCALE_IDIGITSUBSTITUTION 0x00001014L
#endif
#if (WINVER >= 0x0600)
#define LOCALE_SNAME 0x0000005CL
#define LOCALE_SDURATION 0x0000005DL
#define LOCALE_SKEYBOARDSTOINSTALL 0x0000005EL
#define LOCALE_SSHORTESTDAYNAME1 0x00000060L
#define LOCALE_SSHORTESTDAYNAME2 0x00000061L
#define LOCALE_SSHORTESTDAYNAME3 0x00000062L
#define LOCALE_SSHORTESTDAYNAME4 0x00000063L
#define LOCALE_SSHORTESTDAYNAME5 0x00000064L
#define LOCALE_SSHORTESTDAYNAME6 0x00000065L
#define LOCALE_SSHORTESTDAYNAME7 0x00000066L
#define LOCALE_SISO639LANGNAME2 0x00000067L
#define LOCALE_SISO3166CTRYNAME2 0x00000068L
#define LOCALE_SNAN 0x00000069L
#define LOCALE_SPOSINFINITY 0x0000006AL
#define LOCALE_SNEGINFINITY 0x0000006BL
#define LOCALE_SSCRIPTS 0x0000006CL
#define LOCALE_SPARENT 0x0000006DL
#define LOCALE_SCONSOLEFALLBACKNAME 0x0000006EL
#define LOCALE_SLANGDISPLAYNAME 0x0000006FL
#endif
#if (WINVER >= 0x0700)
#define LOCALE_IREADINGLAYOUT 0x00000070L
#define LOCALE_INEUTRAL 0x00000071L
#define LOCALE_INEGATIVEPERCENT 0x00000074L
#define LOCALE_IPOSITIVEPERCENT 0x00000075L
#define LOCALE_SPERCENT 0x00000076L
#define LOCALE_SPERMILLE 0x00000077L
#define LOCALE_SMONTHDAY 0x00000078L
#define LOCALE_SSHORTTIME 0x00000079L
#define LOCALE_SOPENTYPELANGUAGETAG 0x0000007AL
#define LOCALE_SSORTLOCALE 0x0000007BL
#endif
/* New locale information types */
#define LOCALE_SLOCALIZEDDISPLAYNAME 0x00000002L
#if (WINVER >= 0x0601)
#define LOCALE_SENGLISHDISPLAYNAME 0x00000072L
#define LOCALE_SNATIVEDISPLAYNAME 0x00000073L
#endif
#if (WINVER >= 0x0600)
#define LOCALE_SLOCALIZEDLANGUAGENAME 0x0000006FL
#endif
#define LOCALE_SENGLISHLANGUAGENAME 0x00001001L
#define LOCALE_SNATIVELANGUAGENAME 0x00000004L
#define LOCALE_SLOCALIZEDCOUNTRYNAME 0x00000006L
#define LOCALE_SENGLISHCOUNTRYNAME 0x00001002L
#define LOCALE_SNATIVECOUNTRYNAME 0x00000008L
/* GetTimeFormat() flags */
#define TIME_NOMINUTESORSECONDS 0x00000001L
#define TIME_NOSECONDS 0x00000002L
#define TIME_NOTIMEMARKER 0x00000004L
#define TIME_FORCE24HOURFORMAT 0x00000008L
/* GetDateFormat() flags */
#define DATE_SHORTDATE 0x00000001L
#define DATE_LONGDATE 0x00000002L
#define DATE_USE_ALT_CALENDAR 0x00000004L
#if (WINVER >= 0x0500)
#define DATE_YEARMONTH 0x00000008L
#define DATE_LTRREADING 0x00000010L
#define DATE_RTLREADING 0x00000020L
#endif
#if (WINVER >= 0x0601)
#define DATE_AUTOLAYOUT 0x00000040L
#endif
/* Calendar information type flags */
#if (WINVER >= 0x0500)
#define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
#define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
#define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
#endif
#if (WINVER >= 0x0601)
#define CAL_RETURN_GENITIVE_NAMES LOCALE_RETURN_GENITIVE_NAMES
#endif
/* Calendar information types */
#define CAL_ICALINTVALUE 0x00000001L
#define CAL_SCALNAME 0x00000002L
#define CAL_IYEAROFFSETRANGE 0x00000003L
#define CAL_SERASTRING 0x00000004L
#define CAL_SSHORTDATE 0x00000005L
#define CAL_SLONGDATE 0x00000006L
#define CAL_SDAYNAME1 0x00000007L
#define CAL_SDAYNAME2 0x00000008L
#define CAL_SDAYNAME3 0x00000009L
#define CAL_SDAYNAME4 0x0000000AL
#define CAL_SDAYNAME5 0x0000000BL
#define CAL_SDAYNAME6 0x0000000CL
#define CAL_SDAYNAME7 0x0000000DL
#define CAL_SABBREVDAYNAME1 0x0000000EL
#define CAL_SABBREVDAYNAME2 0x0000000FL
#define CAL_SABBREVDAYNAME3 0x00000010L
#define CAL_SABBREVDAYNAME4 0x00000011L
#define CAL_SABBREVDAYNAME5 0x00000012L
#define CAL_SABBREVDAYNAME6 0x00000013L
#define CAL_SABBREVDAYNAME7 0x00000014L
#define CAL_SMONTHNAME1 0x00000015L
#define CAL_SMONTHNAME2 0x00000016L
#define CAL_SMONTHNAME3 0x00000017L
#define CAL_SMONTHNAME4 0x00000018L
#define CAL_SMONTHNAME5 0x00000019L
#define CAL_SMONTHNAME6 0x0000001AL
#define CAL_SMONTHNAME7 0x0000001BL
#define CAL_SMONTHNAME8 0x0000001CL
#define CAL_SMONTHNAME9 0x0000001DL
#define CAL_SMONTHNAME10 0x0000001EL
#define CAL_SMONTHNAME11 0x0000001FL
#define CAL_SMONTHNAME12 0x00000020L
#define CAL_SMONTHNAME13 0x00000021L
#define CAL_SABBREVMONTHNAME1 0x00000022L
#define CAL_SABBREVMONTHNAME2 0x00000023L
#define CAL_SABBREVMONTHNAME3 0x00000024L
#define CAL_SABBREVMONTHNAME4 0x00000025L
#define CAL_SABBREVMONTHNAME5 0x00000026L
#define CAL_SABBREVMONTHNAME6 0x00000027L
#define CAL_SABBREVMONTHNAME7 0x00000028L
#define CAL_SABBREVMONTHNAME8 0x00000029L
#define CAL_SABBREVMONTHNAME9 0x0000002AL
#define CAL_SABBREVMONTHNAME10 0x0000002BL
#define CAL_SABBREVMONTHNAME11 0x0000002CL
#define CAL_SABBREVMONTHNAME12 0x0000002DL
#define CAL_SABBREVMONTHNAME13 0x0000002EL
#if (WINVER >= 0x0500)
#define CAL_SYEARMONTH 0x0000002FL
#define CAL_ITWODIGITYEARMAX 0x00000030L
#endif
#if (WINVER >= 0x0600)
#define CAL_SSHORTESTDAYNAME1 0x00000031L
#define CAL_SSHORTESTDAYNAME2 0x00000032L
#define CAL_SSHORTESTDAYNAME3 0x00000033L
#define CAL_SSHORTESTDAYNAME4 0x00000034L
#define CAL_SSHORTESTDAYNAME5 0x00000035L
#define CAL_SSHORTESTDAYNAME6 0x00000036L
#define CAL_SSHORTESTDAYNAME7 0x00000037L
#endif
#if (WINVER >= 0x0601)
#define CAL_SMONTHDAY 0x00000038L
#define CAL_SABBREVERASTRING 0x00000039L
#endif
/* Special calendar identifier for EnumCalendarInfo() */
#define ENUM_ALL_CALENDARS 0xFFFFFFFFL
/* Calendar identifiers */
#define CAL_GREGORIAN 1L
#define CAL_GREGORIAN_US 2L
#define CAL_JAPAN 3L
#define CAL_TAIWAN 4L
#define CAL_KOREA 5L
#define CAL_HIJRI 6L
#define CAL_THAI 7L
#define CAL_HEBREW 8L
#define CAL_GREGORIAN_ME_FRENCH 9L
#define CAL_GREGORIAN_ARABIC 10L
#define CAL_GREGORIAN_XLIT_ENGLISH 11L
#define CAL_GREGORIAN_XLIT_FRENCH 12L
#define CAL_UMALQURA 23L
/* Language group identifiers */
#define LGRPID_WESTERN_EUROPE 0x00000001L
#define LGRPID_CENTRAL_EUROPE 0x00000002L
#define LGRPID_BALTIC 0x00000003L
#define LGRPID_GREEK 0x00000004L
#define LGRPID_CYRILLIC 0x00000005L
#define LGRPID_TURKIC 0x00000006L
#define LGRPID_TURKISH 0x00000006L
#define LGRPID_JAPANESE 0x00000007L
#define LGPRID_KOREAN 0x00000008L
#define LGRPID_TRADITIONAL_CHINESE 0x00000009L
#define LGRPID_SIMPLIFIED_CHINESE 0x0000000AL
#define LGRPID_THAI 0x0000000BL
#define LGRPID_HEBREW 0x0000000CL
#define LGRPID_ARABIC 0x0000000DL
#define LGRPID_VIETNAMESE 0x0000000EL
#define LGRPID_INDIC 0x0000000FL
#define LGRPID_GEORGIAN 0x00000010L
#define LGRPID_ARMENIAN 0x00000011L
/* Multilingual User Interface (MUI) flags */
#if (WINVER >= 0x0600)
#define MUI_LANGUAGE_ID 0x00000004L
#define MUI_LANGUAGE_NAME 0x00000008L
#define MUI_MERGE_SYSTEM_FALLBACK 0x00000010L
#define MUI_MERGE_USER_FALLBACK 0x00000020L
#define MUI_UI_FALLBACK \
(MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK)
#define MUI_THREAD_LANGUAGES 0x00000040L
#define MUI_CONSOLE_FILTER 0x00000100L
#define MUI_COMPLEX_SCRIPT_FILTER 0x00000200L
#define MUI_RESET_FILTERS 0x00000001L
#define MUI_USER_PREFERRED_UI_LANGUAGES 0x00000010L
#define MUI_USE_INSTALLED_LANGUAGES 0x00000020L
#define MUI_USE_SEARCH_ALL_LANGUAGES 0x00000040L
#define MUI_LANG_NEUTRAL_PE_FILE 0x00000100L
#define MUI_NON_LANG_NEUTRAL_FILE 0x00000200L
#define MUI_MACHINE_LANGUAGE_SETTINGS 0x00000400L
#define MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL 0x00000001L
#define MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN 0x00000002L
#define MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI 0x00000004L
#define MUI_QUERY_TYPE 0x00000001L
#define MUI_QUERY_CHECKSUM 0x00000002L
#define MUI_QUERY_LANGUAGE_NAME 0x00000004L
#define MUI_QUERY_RESOURCE_TYPES 0x00000008L
#define MUI_FILEINFO_VERSION 0x00000001L
#define MUI_FULL_LANGUAGE 0x00000001L
#define MUI_PARTIAL_LANGUAGE 0x00000002L
#define MUI_LIP_LANGUAGE 0x00000004L
#define MUI_LANGUAGE_INSTALLED 0x00000020L
#define MUI_LANGUAGE_LICENSED 0x00000040L
#endif
/* Special value returned by GetUserGeoID() */
#define GEOID_NOT_AVAILABLE (-1L)
/* International Domain Name flags */
#if (WINVER >= 0x0600)
#define IDN_ALLOW_UNASSIGNED 0x00000001L
#define IDN_USE_STD3_ASCII_RULES 0x00000002L
#endif
/* VerifyScripts() flags */
#if (WINVER >= 0x0600)
#define VS_ALLOW_LATIN 0x00000001L
#endif
/* GetScriptStrings() flags */
#if (WINVER >= 0x0600)
#define GSS_ALLOWED_INHERITED_COMMON 0x00000001L
#endif
/* Locale name special values */
#if (WINVER >= 0x0600)
#define LOCALE_NAME_USER_DEFAULT NULL
#define LOCALE_NAME_INVARIANT L""
#define LOCALE_NAME_SYSTEM_DEFAULT L"!sys-default-locale"
#endif
/* NLS functions */
enum SYSNLS_FUNCTION {
COMPARE_STRING = 0x00000001L
};
/* Geographical information types */
enum SYSGEOTYPE {
GEO_NATION = 0x00000001L,
GEO_LATITUDE = 0x00000002L,
GEO_LONGITUDE = 0x00000003L,
GEO_ISO2 = 0x00000004L,
GEO_ISO3 = 0x00000005L,
GEO_RFC1766 = 0x00000006L,
GEO_LCID = 0x00000007L,
GEO_FRIENDLYNAME = 0x00000008L,
GEO_OFFICIALNAME = 0x00000009L,
GEO_TIMEZONES = 0x0000000AL,
GEO_OFFICIALLANGUAGES = 0x0000000BL
};
/* Geographical location classes */
enum SYSGEOCLASS {
GEOCLASS_NATION = 16L,
GEOCLASS_REGION = 14L
};
/* Code page information */
typedef struct _cpinfo {
UINT MaxCharSize;
BYTE DefaultChar[MAX_DEFAULTCHAR];
BYTE LeadByte[MAX_LEADBYTES];
} CPINFO;
typedef CPINFO *LPCPINFO;
/* Code page information (extended version) */
typedef struct _cpinfoexA {
UINT MaxCharSize;
BYTE DefaultChar[MAX_DEFAULTCHAR];
BYTE LeadByte[MAX_LEADBYTES];
WCHAR UnicodeDefaultChar;
UINT CodePage;
CHAR CodePageName[MAX_PATH];
} CPINFOEXA;
typedef CPINFOEXA *LPCPINFOEXA;
typedef struct _cpinfoexW {
UINT MaxCharSize;
BYTE DefaultChar[MAX_DEFAULTCHAR];
BYTE LeadByte[MAX_LEADBYTES];
WCHAR UnicodeDefaultChar;
UINT CodePage;
WCHAR CodePageName[MAX_PATH];
} CPINFOEXW;
typedef CPINFOEXW *LPCPINFOEXW;
#ifdef UNICODE
typedef CPINFOEXW CPINFOEX;
typedef LPCPINFOEXW LPCPINFOEX;
#else
typedef CPINFOEXA CPINFOEX;
typedef LPCPINFOEXA LPCPINFOEX;
#endif
/* Number format information */
typedef struct _numberfmtA {
UINT NumDigits;
UINT LeadingZero;
UINT Grouping;
LPSTR lpDecimalSep;
LPSTR lpThousandSep;
UINT NegativeOrder;
} NUMBERFMTA;
typedef NUMBERFMTA *LPNUMBERFMTA;
typedef struct _numberfmtW {
UINT NumDigits;
UINT LeadingZero;
UINT Grouping;
LPWSTR lpDecimalSep;
LPWSTR lpThousandSep;
UINT NegativeOrder;
} NUMBERFMTW;
typedef NUMBERFMTW *LPNUMBERFMTW;
#ifdef UNICODE
typedef NUMBERFMTW NUMBERFMT;
typedef LPNUMBERFMTW LPNUMBERFMT;
#else
typedef NUMBERFMTA NUMBERFMT;
typedef LPNUMBERFMTA LPNUMBERFMT;
#endif
/* Currency format information */
typedef struct _currencyfmtA {
UINT NumDigits;
UINT LeadingZero;
UINT Grouping;
LPSTR lpDecimalSep;
LPSTR lpThousandSep;
UINT NegativeOrder;
UINT PositiveOrder;
LPSTR lpCurrencySymbol;
} CURRENCYFMTA;
typedef CURRENCYFMTA *LPCURRENCYFMTA;
typedef struct _currencyfmtW {
UINT NumDigits;
UINT LeadingZero;
UINT Grouping;
LPWSTR lpDecimalSep;
LPWSTR lpThousandSep;
UINT NegativeOrder;
UINT PositiveOrder;
LPWSTR lpCurrencySymbol;
} CURRENCYFMTW;
typedef CURRENCYFMTW *LPCURRENCYFMTW;
#ifdef UNICODE
typedef CURRENCYFMTW CURRENCYFMT;
typedef LPCURRENCYFMTW LPCURRENCYFMT;
#else
typedef CURRENCYFMTA CURRENCYFMT;
typedef LPCURRENCYFMTA LPCURRENCYFMT;
#endif
/* NLS version information */
typedef struct _nlsversioninfo {
DWORD dwNLSVersionInfoSize;
DWORD dwNLSVersion;
DWORD dwDefinedVersion;
} NLSVERSIONINFO;
typedef NLSVERSIONINFO *LPNLSVERSIONINFO;
/* NLS version information (extended version) */
typedef struct _nlsversioninfoex {
DWORD dwNLSVersionInfoSize;
DWORD dwNLSVersion;
DWORD dwDefinedVersion;
DWORD dwEffectiveId;
GUID guidCustomVersion;
} NLSVERSIONINFOEX;
typedef NLSVERSIONINFOEX *LPNLSVERSIONINFOEX;
/* Normalization forms */
#if (WINVER >= 0x0600)
typedef enum _NORM_FORM {
NormalizationOther = 0,
NormalizationC = 1,
NormalizationD = 2,
NormalizationKC = 5,
NormalizationKD = 6
} NORM_FORM;
#endif
/* MUI file information */
typedef struct _FILEMUIINFO {
DWORD dwSize;
DWORD dwVersion;
DWORD dwFileType;
BYTE pChecksum[16];
BYTE pServiceChecksum[16];
DWORD dwLanguageNameOffset;
DWORD dwTypeIDMainSize;
DWORD dwTypeIDMainOffset;
DWORD dwTypeNameMainOffset;
DWORD dwTypeIDMUISize;
DWORD dwTypeIDMUIOffset;
DWORD dwTypeNameMUIOffset;
BYTE abBuffer[8];
} FILEMUIINFO;
typedef FILEMUIINFO *PFILEMUIINFO;
/* Callback functions */
typedef BOOL (CALLBACK *CALINFO_ENUMPROCA)( LPSTR );
typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXA)( LPSTR, CALID );
typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXW)( LPWSTR, CALID );
typedef BOOL (CALLBACK *CALINFO_ENUMPROCW)( LPWSTR );
typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA)( LPSTR );
typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW)( LPWSTR );
typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA)( LPSTR );
typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXA)( LPSTR, CALID );
typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXW)( LPWSTR, CALID );
typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW)( LPWSTR );
typedef BOOL (CALLBACK *GEO_ENUMPROC)( GEOID );
typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA)( LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR );
typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW)( LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR );
typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA)( LGRPID, LCID, LPSTR, LONG_PTR );
typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW)( LGRPID, LCID, LPWSTR, LONG_PTR );
typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)( LPSTR );
typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)( LPWSTR );
typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA)( LPSTR );
typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW)( LPWSTR );
typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCA)( LPSTR, LONG_PTR );
typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCW)( LPWSTR, LONG_PTR );
#if (WINVER >= 0x0600)
typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXEX)( LPWSTR, CALID, LPWSTR, LPARAM );
typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXEX)( LPWSTR, CALID, LPARAM );
typedef BOOL (CALLBACK *LOCALE_ENUMPROCEX)( LPWSTR, WORD, LPARAM );
typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCEX)( LPWSTR, LPARAM );
#endif
#ifdef UNICODE
#define CALINFO_ENUMPROC CALINFO_ENUMPROCW
#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW
#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXW
#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCW
#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCW
#define LOCALE_ENUMPROC LOCALE_ENUMPROCW
#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCW
#else
#define CALINFO_ENUMPROC CALINFO_ENUMPROCA
#define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXA
#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
#define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXA
#define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCA
#define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCA
#define LOCALE_ENUMPROC LOCALE_ENUMPROCA
#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
#define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCA
#endif
/* Surrogate pair macros */
#define IS_HIGH_SURROGATE( x ) \
(((x) >= HIGH_SURROGATE_START) && ((x) <= HIGH_SURROGATE_END))
#define IS_LOW_SURROGATE( x ) \
(((x) >= LOW_SURROGATE_START) && ((x) <= LOW_SURROGATE_END))
#define IS_SURROGATE_PAIR( p1, p2 ) \
(IS_HIGH_SURROGATE( p1 ) && IS_LOW_SURROGATE( p2 ))
/* MUI file information macros */
#define FILEMUIINFO_GET_CULTURE( x ) \
((LPWSTR)(((x)->dwLanguageNameOffset > 0) ? \
(ULONG_PTR)(x) + (x)->dwLanguageNameOffset : NULL))
#define FILEMUIINFO_GET_MAIN_TYPEIDS( x ) \
((DWORD *)(((x)->dwTypeIDMainOffset > 0) ? \
(ULONG_PTR)(x) + (x)->dwTypeIDMainOffset : NULL))
#define FILEMUIINFO_GET_MAIN_TYPEID( p1, p2 ) \
((((p2) < (p1)->dwTypeIDMainSize) && ((p1)->dwTypeIDMainOffset > 0)) ? \
*((DWORD *)((ULONG_PTR)(p1) + (p1)->dwTypeIDMainOffset) + (p2)) : 0)
#define FILEMUIINFO_GET_MAIN_TYPENAMES( x ) \
((LPWSTR)(((x)->dwTypeNameMainOffset > 0) ? \
(ULONG_PTR)(x) + (x)->dwTypeNameMainOffset : NULL))
#define FILEMUIINFO_GET_MUI_TYPEIDS( x ) \
((DWORD *)(((x)->dwTypeIDMUIOffset > 0) ? \
(ULONG_PTR)(x) + (x)->dwTypeIDMUIOffset : NULL))
#define FILEMUIINFO_GET_MUI_TYPEID( p1, p2 ) \
((((p2) < (p1)->dwTypeIDMUISize) && ((p1)->dwTypeIDMUIOffset > 0)) ? \
*((DWORD *)((ULONG_PTR)(p1) + (p1)->dwTypeIDMUIOffset) + (p2)) : 0)
#define FILEMUIINFO_GET_MUI_TYPENAMES( x ) \
((LPWSTR)(((x)->dwTypeNameMUIOffset > 0) ? \
(ULONG_PTR)(x) + (x)->dwTypeNameMUIOffset : NULL))
/* Functions in KERNEL32.DLL */
WINBASEAPI int WINAPI CompareStringA( LCID, DWORD, PCNZCH, int, PCNZCH, int );
WINBASEAPI int WINAPI CompareStringW( LCID, DWORD, PCNZWCH, int, PCNZWCH, int );
WINBASEAPI LCID WINAPI ConvertDefaultLocale( LCID );
WINBASEAPI BOOL WINAPI EnumCalendarInfoA( CALINFO_ENUMPROCA, LCID, CALID, CALTYPE );
WINBASEAPI BOOL WINAPI EnumCalendarInfoW( CALINFO_ENUMPROCW, LCID, CALID, CALTYPE );
WINBASEAPI BOOL WINAPI EnumDateFormatsA( DATEFMT_ENUMPROCA, LCID, DWORD );
WINBASEAPI BOOL WINAPI EnumDateFormatsW( DATEFMT_ENUMPROCW, LCID, DWORD );
WINBASEAPI BOOL WINAPI EnumSystemCodePagesA( CODEPAGE_ENUMPROCA, DWORD );
WINBASEAPI BOOL WINAPI EnumSystemCodePagesW( CODEPAGE_ENUMPROCW, DWORD );
WINBASEAPI BOOL WINAPI EnumSystemGeoID( GEOCLASS, GEOID, GEO_ENUMPROC );
WINBASEAPI BOOL WINAPI EnumSystemLocalesA( LOCALE_ENUMPROCA, DWORD );
WINBASEAPI BOOL WINAPI EnumSystemLocalesW( LOCALE_ENUMPROCW, DWORD );
WINBASEAPI BOOL WINAPI EnumTimeFormatsA( TIMEFMT_ENUMPROCA, LCID, DWORD );
WINBASEAPI BOOL WINAPI EnumTimeFormatsW( TIMEFMT_ENUMPROCW, LCID, DWORD );
WINBASEAPI int WINAPI FoldStringA( DWORD, LPCSTR, int, LPSTR, int );
WINBASEAPI int WINAPI FoldStringW( DWORD, LPCWSTR, int, LPWSTR, int );
WINBASEAPI UINT WINAPI GetACP( void );
WINBASEAPI BOOL WINAPI GetCPInfo( UINT, LPCPINFO );
WINBASEAPI BOOL WINAPI GetCPInfoExA( UINT, DWORD, LPCPINFOEXA );
WINBASEAPI BOOL WINAPI GetCPInfoExW( UINT, DWORD, LPCPINFOEXW );
WINBASEAPI int WINAPI GetCurrencyFormatA( LCID, DWORD, LPCSTR, CONST CURRENCYFMTA *, LPSTR, int );
WINBASEAPI int WINAPI GetCurrencyFormatW( LCID, DWORD, LPCWSTR, CONST CURRENCYFMTW *, LPWSTR, int );
WINBASEAPI int WINAPI GetDateFormatA( LCID, DWORD, CONST SYSTEMTIME *, LPCSTR, LPSTR, int );
WINBASEAPI int WINAPI GetDateFormatW( LCID, DWORD, CONST SYSTEMTIME *, LPCWSTR, LPWSTR, int );
WINBASEAPI int WINAPI GetGeoInfoA( GEOID, GEOTYPE, LPSTR, int, LANGID );
WINBASEAPI int WINAPI GetGeoInfoW( GEOID, GEOTYPE, LPWSTR, int, LANGID );
WINBASEAPI int WINAPI GetLocaleInfoA( LCID, LCTYPE, LPSTR, int );
WINBASEAPI int WINAPI GetLocaleInfoW( LCID, LCTYPE, LPWSTR, int );
WINBASEAPI BOOL WINAPI GetNLSVersion( NLS_FUNCTION, LCID, LPNLSVERSIONINFO );
WINBASEAPI int WINAPI GetNumberFormatA( LCID, DWORD, LPCSTR, CONST NUMBERFMTA *, LPSTR, int );
WINBASEAPI int WINAPI GetNumberFormatW( LCID, DWORD, LPCWSTR, CONST NUMBERFMTW *, LPWSTR, int );
WINBASEAPI UINT WINAPI GetOEMCP( void );
WINBASEAPI BOOL WINAPI GetStringTypeA( LCID, DWORD, LPCSTR, int, LPWORD );
WINBASEAPI BOOL WINAPI GetStringTypeExA( LCID, DWORD, LPCSTR, int, LPWORD );
WINBASEAPI BOOL WINAPI GetStringTypeExW( LCID, DWORD, LPCWSTR, int, LPWORD );
WINBASEAPI BOOL WINAPI GetStringTypeW( DWORD, LPCWSTR, int, LPWORD );
WINBASEAPI LCID WINAPI GetSystemDefaultLCID( void );
WINBASEAPI LANGID WINAPI GetSystemDefaultLangID( void );
WINBASEAPI LCID WINAPI GetThreadLocale( void );
WINBASEAPI int WINAPI GetTimeFormatA( LCID, DWORD, CONST SYSTEMTIME *, LPCSTR, LPSTR, int );
WINBASEAPI int WINAPI GetTimeFormatW( LCID, DWORD, CONST SYSTEMTIME *, LPCWSTR, LPWSTR, int );
WINBASEAPI LCID WINAPI GetUserDefaultLCID( void );
WINBASEAPI LANGID WINAPI GetUserDefaultLangID( void );
WINBASEAPI GEOID WINAPI GetUserGeoID( GEOCLASS );
WINBASEAPI BOOL WINAPI IsDBCSLeadByte( BYTE );
WINBASEAPI BOOL WINAPI IsDBCSLeadByteEx( UINT, BYTE );
WINBASEAPI BOOL WINAPI IsNLSDefinedString( NLS_FUNCTION, DWORD, LPNLSVERSIONINFO, LPCWSTR, INT );
WINBASEAPI BOOL WINAPI IsValidCodePage( UINT );
WINBASEAPI BOOL WINAPI IsValidLocale( LCID, DWORD );
WINBASEAPI int WINAPI LCMapStringA( LCID, DWORD, LPCSTR, int, LPSTR, int );
WINBASEAPI int WINAPI LCMapStringW( LCID, DWORD, LPCWSTR, int, LPWSTR, int );
WINBASEAPI int WINAPI MultiByteToWideChar( UINT, DWORD, LPCSTR, int, LPWSTR, int );
WINBASEAPI BOOL WINAPI SetLocaleInfoA( LCID, LCTYPE, LPCSTR );
WINBASEAPI BOOL WINAPI SetLocaleInfoW( LCID, LCTYPE, LPCWSTR );
WINBASEAPI BOOL WINAPI SetThreadLocale( LCID );
WINBASEAPI LANGID WINAPI SetThreadUILanguage( LANGID );
WINBASEAPI BOOL WINAPI SetUserGeoID( GEOID );
WINBASEAPI int WINAPI WideCharToMultiByte( UINT, DWORD, LPCWSTR, int, LPSTR, int, LPCSTR, LPBOOL );
#if (WINVER >= 0x040A)
WINBASEAPI int WINAPI GetCalendarInfoA( LCID, CALID, CALTYPE, LPSTR, int, LPDWORD );
WINBASEAPI int WINAPI GetCalendarInfoW( LCID, CALID, CALTYPE, LPWSTR, int, LPDWORD );
WINBASEAPI BOOL WINAPI SetCalendarInfoA( LCID, CALID, CALTYPE, LPCSTR );
WINBASEAPI BOOL WINAPI SetCalendarInfoW( LCID, CALID, CALTYPE, LPCWSTR );
#endif
#if (WINVER >= 0x0500)
WINBASEAPI BOOL WINAPI EnumCalendarInfoExA( CALINFO_ENUMPROCEXA, LCID, CALID, CALTYPE );
WINBASEAPI BOOL WINAPI EnumCalendarInfoExW( CALINFO_ENUMPROCEXW, LCID, CALID, CALTYPE );
WINBASEAPI BOOL WINAPI EnumDateFormatsExA( DATEFMT_ENUMPROCEXA, LCID, DWORD );
WINBASEAPI BOOL WINAPI EnumDateFormatsExW( DATEFMT_ENUMPROCEXW, LCID, DWORD );
WINBASEAPI BOOL WINAPI EnumLanguageGroupLocalesA( LANGGROUPLOCALE_ENUMPROCA, LGRPID, DWORD, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumLanguageGroupLocalesW( LANGGROUPLOCALE_ENUMPROCW, LGRPID, DWORD, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumSystemLanguageGroupsA( LANGUAGEGROUP_ENUMPROCA, DWORD, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumSystemLanguageGroupsW( LANGUAGEGROUP_ENUMPROCW, DWORD, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumUILanguagesA( UILANGUAGE_ENUMPROCA, DWORD, LONG_PTR );
WINBASEAPI BOOL WINAPI EnumUILanguagesW( UILANGUAGE_ENUMPROCW, DWORD, LONG_PTR );
WINBASEAPI LANGID WINAPI GetSystemDefaultUILanguage( void );
WINBASEAPI LANGID WINAPI GetUserDefaultUILanguage( void );
WINBASEAPI BOOL WINAPI IsValidLanguageGroup( LGRPID, DWORD );
#endif
#if (WINVER >= 0x0600)
WINBASEAPI int WINAPI CompareStringEx( LPCWSTR, DWORD, LPCWSTR, int, LPCWSTR, int, LPNLSVERSIONINFO, LPVOID, LPARAM );
WINBASEAPI int WINAPI CompareStringOrdinal( LPCWSTR, int, LPCWSTR, int, BOOL );
WINBASEAPI BOOL WINAPI EnumCalendarInfoExEx( CALINFO_ENUMPROCEXEX, LPCWSTR, CALID, LPCWSTR, CALTYPE, LPARAM );
WINBASEAPI BOOL WINAPI EnumDateFormatsExEx( DATEFMT_ENUMPROCEXEX, LPCWSTR, DWORD, LPARAM );
WINBASEAPI BOOL WINAPI EnumSystemLocalesEx( LOCALE_ENUMPROCEX, DWORD, LPARAM, LPVOID );
WINBASEAPI BOOL WINAPI EnumTimeFormatsEx( TIMEFMT_ENUMPROCEX, LPCWSTR, DWORD, LPARAM );
WINBASEAPI int WINAPI FindNLSString( LCID, DWORD, LPCWSTR, int, LPCWSTR, int, LPINT );
WINBASEAPI int WINAPI FindNLSStringEx( LPCWSTR, DWORD, LPCWSTR, int, LPCWSTR, int, int, LPINT, LPNLSVERSIONINFO, LPVOID, LPARAM );
WINBASEAPI int WINAPI GetCalendarInfoEx( LPCWSTR, CALID, LPCWSTR, CALTYPE, LPWSTR, int, LPDWORD );
WINBASEAPI int WINAPI GetCurrencyFormatEx( LPCWSTR, DWORD, LPCWSTR, CONST CURRENCYFMTW *, LPWSTR, int );
WINBASEAPI int WINAPI GetDateFormatEx( LPCWSTR, DWORD, CONST SYSTEMTIME *, LPCWSTR, LPWSTR, int, LPCWSTR );
WINBASEAPI int WINAPI GetDurationFormat( LCID, DWORD, CONST SYSTEMTIME *, ULONGLONG, LPCWSTR, LPWSTR, int );
WINBASEAPI int WINAPI GetDurationFormatEx( LPCWSTR, DWORD, CONST SYSTEMTIME *, ULONGLONG, LPCWSTR, LPWSTR, int );
WINBASEAPI BOOL WINAPI GetFileMUIInfo( DWORD, PCWSTR, PFILEMUIINFO, DWORD * );
WINBASEAPI BOOL WINAPI GetFileMUIPath( DWORD, PCWSTR, PWSTR, PULONG, PWSTR, PULONG, PULONGLONG );
WINBASEAPI int WINAPI GetLocaleInfoEx( LPCWSTR, LCTYPE, LPWSTR, int );
WINBASEAPI BOOL WINAPI GetNLSVersionEx( NLS_FUNCTION, LPCWSTR, LPNLSVERSIONINFOEX );
WINBASEAPI int WINAPI GetNumberFormatEx( LPCWSTR, DWORD, LPCWSTR, CONST NUMBERFMTW *, LPWSTR, int );
WINBASEAPI BOOL WINAPI GetProcessPreferredUILanguages( DWORD, PULONG, PZZWSTR, PULONG );
WINBASEAPI int WINAPI GetStringScripts( DWORD, LPCWSTR, int, LPWSTR, int );
WINBASEAPI int WINAPI GetSystemDefaultLocaleName( LPWSTR, int );
WINBASEAPI BOOL WINAPI GetSystemPreferredUILanguages( DWORD, PULONG, PZZWSTR, PULONG );
WINBASEAPI BOOL WINAPI GetThreadPreferredUILanguages( DWORD, PULONG, PZZWSTR, PULONG );
WINBASEAPI LANGID WINAPI GetThreadUILanguage( void );
WINBASEAPI int WINAPI GetTimeFormatEx( LPCWSTR, DWORD, CONST SYSTEMTIME *, LPCWSTR, LPWSTR, int );
WINBASEAPI BOOL WINAPI GetUILanguageInfo( DWORD, PCZZWSTR, PZZWSTR, PDWORD, PDWORD );
WINBASEAPI int WINAPI GetUserDefaultLocaleName( LPWSTR, int );
WINBASEAPI BOOL WINAPI GetUserPreferredUILanguages( DWORD, PULONG, PZZWSTR, PULONG );
WINBASEAPI BOOL WINAPI IsValidLocaleName( LPCWSTR );
WINBASEAPI int WINAPI LCIDToLocaleName( LCID, LPWSTR, int, DWORD );
WINBASEAPI int WINAPI LCMapStringEx( LPCWSTR, DWORD, LPCWSTR, int, LPWSTR, int, LPNLSVERSIONINFO, LPVOID, LPARAM );
WINBASEAPI LCID WINAPI LocaleNameToLCID( LPCWSTR, DWORD );
WINBASEAPI BOOL WINAPI NotifyUILanguageChange( DWORD, PCWSTR, PCWSTR, DWORD, PDWORD );
WINBASEAPI BOOL WINAPI SetProcessPreferredUILanguages( DWORD, PCZZWSTR, PULONG );
WINBASEAPI BOOL WINAPI SetThreadPreferredUILanguages( DWORD, PCZZWSTR, PULONG );
WINBASEAPI BOOL WINAPI VerifyScripts( DWORD, LPCWSTR, int, LPCWSTR, int );
#endif
#if (WINVER >= 0x0601)
WINBASEAPI int WINAPI FindStringOrdinal( DWORD, LPCWSTR, int, LPCWSTR, int, BOOL );
WINBASEAPI int WINAPI ResolveLocaleName( LPCWSTR, LPWSTR, int );
#endif
/* Functions in NORMALIZ.DLL */
#if (WINVER >= 0x0600)
WINNORMALIZEAPI BOOL WINAPI IsNormalizedString( NORM_FORM, LPCWSTR, int );
WINNORMALIZEAPI int WINAPI NormalizeString( NORM_FORM, LPCWSTR, int, LPWSTR, int );
#endif
/* Map generic function names to the appropriate ANSI or Unicode version. */
#ifdef UNICODE
#define CompareString CompareStringW
#define EnumCalendarInfo EnumCalendarInfoW
#define EnumDateFormats EnumDateFormatsW
#define EnumSystemCodePages EnumSystemCodePagesW
#define EnumSystemLocales EnumSystemLocalesW
#define EnumTimeFormats EnumTimeFormatsW
#define FoldString FoldStringW
#define GetCPInfoEx GetCPInfoExW
#define GetCurrencyFormat GetCurrencyFormatW
#define GetDateFormat GetDateFormatW
#define GetGeoInfo GetGeoInfoW
#define GetLocaleInfo GetLocaleInfoW
#define GetNumberFormat GetNumberFormatW
/* GetStringTypeA() and GetStringTypeW() have different signatures, so the
* generic GetStringType() does not exist.
*/
#define GetStringTypeEx GetStringTypeExW
#define GetTimeFormat GetTimeFormatW
#define LCMapString LCMapStringW
#define SetLocaleInfo SetLocaleInfoW
#if (WINVER >= 0x040A)
#define GetCalendarInfo GetCalendarInfoW
#define SetCalendarInfo SetCalendarInfoW
#endif
#if (WINVER >= 0x0500)
#define EnumCalendarInfoEx EnumCalendarInfoExW
#define EnumDateFormatsEx EnumDateFormatsExW
#define EnumLanguageGroupLocales EnumLanguageGroupLocalesW
#define EnumSystemLanguageGroups EnumSystemLanguageGroupsW
#define EnumUILanguages EnumUILanguagesW
#endif
#else
#define CompareString CompareStringA
#define EnumCalendarInfo EnumCalendarInfoA
#define EnumDateFormats EnumDateFormatsA
#define EnumSystemCodePages EnumSystemCodePagesA
#define EnumSystemLocales EnumSystemLocalesA
#define EnumTimeFormats EnumTimeFormatsA
#define FoldString FoldStringA
#define GetCPInfoEx GetCPInfoExA
#define GetCurrencyFormat GetCurrencyFormatA
#define GetDateFormat GetDateFormatA
#define GetGeoInfo GetGeoInfoA
#define GetLocaleInfo GetLocaleInfoA
#define GetNumberFormat GetNumberFormatA
/* GetStringTypeA() and GetStringTypeW() have different signatures, so the
* generic GetStringType() does not exist.
*/
#define GetStringTypeEx GetStringTypeExA
#define GetTimeFormat GetTimeFormatA
#define LCMapString LCMapStringA
#define SetLocaleInfo SetLocaleInfoA
#if (WINVER >= 0x040A)
#define GetCalendarInfo GetCalendarInfoA
#define SetCalendarInfo SetCalendarInfoA
#endif
#if (WINVER >= 0x0500)
#define EnumCalendarInfoEx EnumCalendarInfoExA
#define EnumDateFormatsEx EnumDateFormatsExA
#define EnumLanguageGroupLocales EnumLanguageGroupLocalesA
#define EnumSystemLanguageGroups EnumSystemLanguageGroupsA
#define EnumUILanguages EnumUILanguagesA
#endif
#endif
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif /* _WINNLS_ */