winnls.h 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164
  1. /**
  2. * This file is part of the mingw-w64 runtime package.
  3. * No warranty is given; refer to the file DISCLAIMER within this package.
  4. */
  5. #ifndef _WINNLS_
  6. #define _WINNLS_
  7. #include <winapifamily.h>
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11. #ifndef NOAPISET
  12. #include <datetimeapi.h>
  13. #include <libloaderapi.h>
  14. #endif
  15. #ifndef NONLS
  16. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  17. #ifndef _NORMALIZE_
  18. #define WINNORMALIZEAPI DECLSPEC_IMPORT
  19. #else
  20. #define WINNORMALIZEAPI
  21. #endif
  22. #define MAX_LEADBYTES 12
  23. #define MAX_DEFAULTCHAR 2
  24. #define HIGH_SURROGATE_START 0xd800
  25. #define HIGH_SURROGATE_END 0xdbff
  26. #define LOW_SURROGATE_START 0xdc00
  27. #define LOW_SURROGATE_END 0xdfff
  28. #define MB_PRECOMPOSED 0x00000001
  29. #define MB_COMPOSITE 0x00000002
  30. #define MB_USEGLYPHCHARS 0x00000004
  31. #define MB_ERR_INVALID_CHARS 0x00000008
  32. #define WC_DISCARDNS 0x00000010
  33. #define WC_SEPCHARS 0x00000020
  34. #define WC_DEFAULTCHAR 0x00000040
  35. #if WINVER >= 0x0600
  36. #define WC_ERR_INVALID_CHARS 0x00000080
  37. #endif
  38. #define WC_COMPOSITECHECK 0x00000200
  39. #define WC_NO_BEST_FIT_CHARS 0x00000400
  40. #define CT_CTYPE1 0x00000001
  41. #define CT_CTYPE2 0x00000002
  42. #define CT_CTYPE3 0x00000004
  43. #define C1_UPPER 0x0001
  44. #define C1_LOWER 0x0002
  45. #define C1_DIGIT 0x0004
  46. #define C1_SPACE 0x0008
  47. #define C1_PUNCT 0x0010
  48. #define C1_CNTRL 0x0020
  49. #define C1_BLANK 0x0040
  50. #define C1_XDIGIT 0x0080
  51. #define C1_ALPHA 0x0100
  52. #define C1_DEFINED 0x0200
  53. #define C2_LEFTTORIGHT 0x0001
  54. #define C2_RIGHTTOLEFT 0x0002
  55. #define C2_EUROPENUMBER 0x0003
  56. #define C2_EUROPESEPARATOR 0x0004
  57. #define C2_EUROPETERMINATOR 0x0005
  58. #define C2_ARABICNUMBER 0x0006
  59. #define C2_COMMONSEPARATOR 0x0007
  60. #define C2_BLOCKSEPARATOR 0x0008
  61. #define C2_SEGMENTSEPARATOR 0x0009
  62. #define C2_WHITESPACE 0x000a
  63. #define C2_OTHERNEUTRAL 0x000b
  64. #define C2_NOTAPPLICABLE 0x0000
  65. #define C3_NONSPACING 0x0001
  66. #define C3_DIACRITIC 0x0002
  67. #define C3_VOWELMARK 0x0004
  68. #define C3_SYMBOL 0x0008
  69. #define C3_KATAKANA 0x0010
  70. #define C3_HIRAGANA 0x0020
  71. #define C3_HALFWIDTH 0x0040
  72. #define C3_FULLWIDTH 0x0080
  73. #define C3_IDEOGRAPH 0x0100
  74. #define C3_KASHIDA 0x0200
  75. #define C3_LEXICAL 0x0400
  76. #define C3_HIGHSURROGATE 0x0800
  77. #define C3_LOWSURROGATE 0x1000
  78. #define C3_ALPHA 0x8000
  79. #define C3_NOTAPPLICABLE 0x0000
  80. #define NORM_IGNORECASE 0x00000001
  81. #define NORM_IGNORENONSPACE 0x00000002
  82. #define NORM_IGNORESYMBOLS 0x00000004
  83. #define LINGUISTIC_IGNORECASE 0x00000010
  84. #define LINGUISTIC_IGNOREDIACRITIC 0x00000020
  85. #define NORM_IGNOREKANATYPE 0x00010000
  86. #define NORM_IGNOREWIDTH 0x00020000
  87. #define NORM_LINGUISTIC_CASING 0x08000000
  88. #define MAP_FOLDCZONE 0x00000010
  89. #define MAP_PRECOMPOSED 0x00000020
  90. #define MAP_COMPOSITE 0x00000040
  91. #define MAP_FOLDDIGITS 0x00000080
  92. #define MAP_EXPAND_LIGATURES 0x00002000
  93. #define LCMAP_LOWERCASE 0x00000100
  94. #define LCMAP_UPPERCASE 0x00000200
  95. #if WINVER >= 0x0601
  96. #define LCMAP_TITLECASE 0x00000300
  97. #endif
  98. #define LCMAP_SORTKEY 0x00000400
  99. #define LCMAP_BYTEREV 0x00000800
  100. #define LCMAP_HIRAGANA 0x00100000
  101. #define LCMAP_KATAKANA 0x00200000
  102. #define LCMAP_HALFWIDTH 0x00400000
  103. #define LCMAP_FULLWIDTH 0x00800000
  104. #define LCMAP_LINGUISTIC_CASING 0x01000000
  105. #define LCMAP_SIMPLIFIED_CHINESE 0x02000000
  106. #define LCMAP_TRADITIONAL_CHINESE 0x04000000
  107. #if WINVER >= 0x0602
  108. #define LCMAP_SORTHANDLE 0x20000000
  109. #define LCMAP_HASH 0x00040000
  110. #endif
  111. #define FIND_STARTSWITH 0x00100000
  112. #define FIND_ENDSWITH 0x00200000
  113. #define FIND_FROMSTART 0x00400000
  114. #define FIND_FROMEND 0x00800000
  115. #define LGRPID_INSTALLED 0x00000001
  116. #define LGRPID_SUPPORTED 0x00000002
  117. #define LCID_INSTALLED 0x00000001
  118. #define LCID_SUPPORTED 0x00000002
  119. #define LCID_ALTERNATE_SORTS 0x00000004
  120. #if WINVER >= 0x0600
  121. #define LOCALE_ALL 0
  122. #define LOCALE_WINDOWS 0x00000001
  123. #define LOCALE_SUPPLEMENTAL 0x00000002
  124. #define LOCALE_ALTERNATE_SORTS 0x00000004
  125. #define LOCALE_REPLACEMENT 0x00000008
  126. #endif
  127. #if WINVER >= 0x0601
  128. #define LOCALE_NEUTRALDATA 0x00000010
  129. #define LOCALE_SPECIFICDATA 0x00000020
  130. #endif
  131. #define CP_INSTALLED 0x00000001
  132. #define CP_SUPPORTED 0x00000002
  133. #define SORT_STRINGSORT 0x00001000
  134. #if WINVER >= 0x0601
  135. #define SORT_DIGITSASNUMBERS 0x00000008
  136. #endif
  137. #define CSTR_LESS_THAN 1
  138. #define CSTR_EQUAL 2
  139. #define CSTR_GREATER_THAN 3
  140. #define CP_ACP 0
  141. #define CP_OEMCP 1
  142. #define CP_MACCP 2
  143. #define CP_THREAD_ACP 3
  144. #define CP_SYMBOL 42
  145. #define CP_UTF7 65000
  146. #define CP_UTF8 65001
  147. #define CTRY_DEFAULT 0
  148. #define CTRY_ALBANIA 355
  149. #define CTRY_ALGERIA 213
  150. #define CTRY_ARGENTINA 54
  151. #define CTRY_ARMENIA 374
  152. #define CTRY_AUSTRALIA 61
  153. #define CTRY_AUSTRIA 43
  154. #define CTRY_AZERBAIJAN 994
  155. #define CTRY_BAHRAIN 973
  156. #define CTRY_BELARUS 375
  157. #define CTRY_BELGIUM 32
  158. #define CTRY_BELIZE 501
  159. #define CTRY_BOLIVIA 591
  160. #define CTRY_BRAZIL 55
  161. #define CTRY_BRUNEI_DARUSSALAM 673
  162. #define CTRY_BULGARIA 359
  163. #define CTRY_CANADA 2
  164. #define CTRY_CARIBBEAN 1
  165. #define CTRY_CHILE 56
  166. #define CTRY_COLOMBIA 57
  167. #define CTRY_COSTA_RICA 506
  168. #define CTRY_CROATIA 385
  169. #define CTRY_CZECH 420
  170. #define CTRY_DENMARK 45
  171. #define CTRY_DOMINICAN_REPUBLIC 1
  172. #define CTRY_ECUADOR 593
  173. #define CTRY_EGYPT 20
  174. #define CTRY_EL_SALVADOR 503
  175. #define CTRY_ESTONIA 372
  176. #define CTRY_FAEROE_ISLANDS 298
  177. #define CTRY_FINLAND 358
  178. #define CTRY_FRANCE 33
  179. #define CTRY_GEORGIA 995
  180. #define CTRY_GERMANY 49
  181. #define CTRY_GREECE 30
  182. #define CTRY_GUATEMALA 502
  183. #define CTRY_HONDURAS 504
  184. #define CTRY_HONG_KONG 852
  185. #define CTRY_HUNGARY 36
  186. #define CTRY_ICELAND 354
  187. #define CTRY_INDIA 91
  188. #define CTRY_INDONESIA 62
  189. #define CTRY_IRAN 981
  190. #define CTRY_IRAQ 964
  191. #define CTRY_IRELAND 353
  192. #define CTRY_ISRAEL 972
  193. #define CTRY_ITALY 39
  194. #define CTRY_JAMAICA 1
  195. #define CTRY_JAPAN 81
  196. #define CTRY_JORDAN 962
  197. #define CTRY_KAZAKSTAN 7
  198. #define CTRY_KENYA 254
  199. #define CTRY_KUWAIT 965
  200. #define CTRY_KYRGYZSTAN 996
  201. #define CTRY_LATVIA 371
  202. #define CTRY_LEBANON 961
  203. #define CTRY_LIBYA 218
  204. #define CTRY_LIECHTENSTEIN 41
  205. #define CTRY_LITHUANIA 370
  206. #define CTRY_LUXEMBOURG 352
  207. #define CTRY_MACAU 853
  208. #define CTRY_MACEDONIA 389
  209. #define CTRY_MALAYSIA 60
  210. #define CTRY_MALDIVES 960
  211. #define CTRY_MEXICO 52
  212. #define CTRY_MONACO 33
  213. #define CTRY_MONGOLIA 976
  214. #define CTRY_MOROCCO 212
  215. #define CTRY_NETHERLANDS 31
  216. #define CTRY_NEW_ZEALAND 64
  217. #define CTRY_NICARAGUA 505
  218. #define CTRY_NORWAY 47
  219. #define CTRY_OMAN 968
  220. #define CTRY_PAKISTAN 92
  221. #define CTRY_PANAMA 507
  222. #define CTRY_PARAGUAY 595
  223. #define CTRY_PERU 51
  224. #define CTRY_PHILIPPINES 63
  225. #define CTRY_POLAND 48
  226. #define CTRY_PORTUGAL 351
  227. #define CTRY_PRCHINA 86
  228. #define CTRY_PUERTO_RICO 1
  229. #define CTRY_QATAR 974
  230. #define CTRY_ROMANIA 40
  231. #define CTRY_RUSSIA 7
  232. #define CTRY_SAUDI_ARABIA 966
  233. #define CTRY_SERBIA 381
  234. #define CTRY_SINGAPORE 65
  235. #define CTRY_SLOVAK 421
  236. #define CTRY_SLOVENIA 386
  237. #define CTRY_SOUTH_AFRICA 27
  238. #define CTRY_SOUTH_KOREA 82
  239. #define CTRY_SPAIN 34
  240. #define CTRY_SWEDEN 46
  241. #define CTRY_SWITZERLAND 41
  242. #define CTRY_SYRIA 963
  243. #define CTRY_TAIWAN 886
  244. #define CTRY_TATARSTAN 7
  245. #define CTRY_THAILAND 66
  246. #define CTRY_TRINIDAD_Y_TOBAGO 1
  247. #define CTRY_TUNISIA 216
  248. #define CTRY_TURKEY 90
  249. #define CTRY_UAE 971
  250. #define CTRY_UKRAINE 380
  251. #define CTRY_UNITED_KINGDOM 44
  252. #define CTRY_UNITED_STATES 1
  253. #define CTRY_URUGUAY 598
  254. #define CTRY_UZBEKISTAN 7
  255. #define CTRY_VENEZUELA 58
  256. #define CTRY_VIET_NAM 84
  257. #define CTRY_YEMEN 967
  258. #define CTRY_ZIMBABWE 263
  259. #define LOCALE_SLOCALIZEDDISPLAYNAME 0x00000002
  260. #if WINVER >= 0x0601
  261. #define LOCALE_ALLOW_NEUTRAL_NAMES 0x08000000
  262. #define LOCALE_RETURN_GENITIVE_NAMES 0x10000000
  263. #endif
  264. #define LOCALE_RETURN_NUMBER 0x20000000
  265. #define LOCALE_USE_CP_ACP 0x40000000
  266. #define LOCALE_NOUSEROVERRIDE 0x80000000
  267. #if WINVER >= 0x0601
  268. #define LOCALE_SENGLISHDISPLAYNAME 0x00000072
  269. #define LOCALE_SNATIVEDISPLAYNAME 0x00000073
  270. #endif
  271. #if WINVER >= 0x0600
  272. #define LOCALE_SLOCALIZEDLANGUAGENAME 0x0000006f
  273. #endif
  274. #define LOCALE_SENGLISHLANGUAGENAME 0x00001001
  275. #define LOCALE_SNATIVELANGUAGENAME 0x00000004
  276. #define LOCALE_SLOCALIZEDCOUNTRYNAME 0x00000006
  277. #define LOCALE_SENGLISHCOUNTRYNAME 0x00001002
  278. #define LOCALE_SNATIVECOUNTRYNAME 0x00000008
  279. #define LOCALE_SLANGUAGE 0x00000002
  280. #if WINVER >= 0x0600
  281. #define LOCALE_SLANGDISPLAYNAME 0x0000006f
  282. #endif
  283. #define LOCALE_SENGLANGUAGE 0x00001001
  284. #define LOCALE_SNATIVELANGNAME 0x00000004
  285. #define LOCALE_SCOUNTRY 0x00000006
  286. #define LOCALE_SENGCOUNTRY 0x00001002
  287. #define LOCALE_SNATIVECTRYNAME 0x00000008
  288. #define LOCALE_ILANGUAGE 0x00000001
  289. #define LOCALE_SABBREVLANGNAME 0x00000003
  290. #define LOCALE_ICOUNTRY 0x00000005
  291. #define LOCALE_SABBREVCTRYNAME 0x00000007
  292. #define LOCALE_IGEOID 0x0000005b
  293. #define LOCALE_IDEFAULTLANGUAGE 0x00000009
  294. #define LOCALE_IDEFAULTCOUNTRY 0x0000000a
  295. #define LOCALE_IDEFAULTCODEPAGE 0x0000000b
  296. #define LOCALE_IDEFAULTANSICODEPAGE 0x00001004
  297. #define LOCALE_IDEFAULTMACCODEPAGE 0x00001011
  298. #define LOCALE_IDIALINGCODE 0x00000005
  299. #define LOCALE_SLIST 0x0000000c
  300. #define LOCALE_IMEASURE 0x0000000d
  301. #define LOCALE_SDECIMAL 0x0000000e
  302. #define LOCALE_STHOUSAND 0x0000000f
  303. #define LOCALE_SGROUPING 0x00000010
  304. #define LOCALE_IDIGITS 0x00000011
  305. #define LOCALE_ILZERO 0x00000012
  306. #define LOCALE_INEGNUMBER 0x00001010
  307. #define LOCALE_SNATIVEDIGITS 0x00000013
  308. #define LOCALE_SCURRENCY 0x00000014
  309. #define LOCALE_SINTLSYMBOL 0x00000015
  310. #define LOCALE_SMONDECIMALSEP 0x00000016
  311. #define LOCALE_SMONTHOUSANDSEP 0x00000017
  312. #define LOCALE_SMONGROUPING 0x00000018
  313. #define LOCALE_ICURRDIGITS 0x00000019
  314. #define LOCALE_IINTLCURRDIGITS 0x0000001a
  315. #define LOCALE_ICURRENCY 0x0000001b
  316. #define LOCALE_INEGCURR 0x0000001c
  317. #define LOCALE_SDATE 0x0000001d
  318. #define LOCALE_STIME 0x0000001e
  319. #define LOCALE_SSHORTDATE 0x0000001f
  320. #define LOCALE_SLONGDATE 0x00000020
  321. #define LOCALE_STIMEFORMAT 0x00001003
  322. #define LOCALE_SAM 0x00000028
  323. #define LOCALE_SPM 0x00000029
  324. #define LOCALE_IDATE 0x00000021
  325. #define LOCALE_ILDATE 0x00000022
  326. #define LOCALE_ITIME 0x00000023
  327. #define LOCALE_ITIMEMARKPOSN 0x00001005
  328. #define LOCALE_ICENTURY 0x00000024
  329. #define LOCALE_ITLZERO 0x00000025
  330. #define LOCALE_IDAYLZERO 0x00000026
  331. #define LOCALE_IMONLZERO 0x00000027
  332. #define LOCALE_S1159 0x00000028
  333. #define LOCALE_S2359 0x00000029
  334. #define LOCALE_ICALENDARTYPE 0x00001009
  335. #define LOCALE_IOPTIONALCALENDAR 0x0000100b
  336. #define LOCALE_IFIRSTDAYOFWEEK 0x0000100c
  337. #define LOCALE_IFIRSTWEEKOFYEAR 0x0000100d
  338. #define LOCALE_SDAYNAME1 0x0000002a
  339. #define LOCALE_SDAYNAME2 0x0000002b
  340. #define LOCALE_SDAYNAME3 0x0000002c
  341. #define LOCALE_SDAYNAME4 0x0000002d
  342. #define LOCALE_SDAYNAME5 0x0000002e
  343. #define LOCALE_SDAYNAME6 0x0000002f
  344. #define LOCALE_SDAYNAME7 0x00000030
  345. #define LOCALE_SABBREVDAYNAME1 0x00000031
  346. #define LOCALE_SABBREVDAYNAME2 0x00000032
  347. #define LOCALE_SABBREVDAYNAME3 0x00000033
  348. #define LOCALE_SABBREVDAYNAME4 0x00000034
  349. #define LOCALE_SABBREVDAYNAME5 0x00000035
  350. #define LOCALE_SABBREVDAYNAME6 0x00000036
  351. #define LOCALE_SABBREVDAYNAME7 0x00000037
  352. #define LOCALE_SMONTHNAME1 0x00000038
  353. #define LOCALE_SMONTHNAME2 0x00000039
  354. #define LOCALE_SMONTHNAME3 0x0000003a
  355. #define LOCALE_SMONTHNAME4 0x0000003b
  356. #define LOCALE_SMONTHNAME5 0x0000003c
  357. #define LOCALE_SMONTHNAME6 0x0000003d
  358. #define LOCALE_SMONTHNAME7 0x0000003e
  359. #define LOCALE_SMONTHNAME8 0x0000003f
  360. #define LOCALE_SMONTHNAME9 0x00000040
  361. #define LOCALE_SMONTHNAME10 0x00000041
  362. #define LOCALE_SMONTHNAME11 0x00000042
  363. #define LOCALE_SMONTHNAME12 0x00000043
  364. #define LOCALE_SMONTHNAME13 0x0000100e
  365. #define LOCALE_SABBREVMONTHNAME1 0x00000044
  366. #define LOCALE_SABBREVMONTHNAME2 0x00000045
  367. #define LOCALE_SABBREVMONTHNAME3 0x00000046
  368. #define LOCALE_SABBREVMONTHNAME4 0x00000047
  369. #define LOCALE_SABBREVMONTHNAME5 0x00000048
  370. #define LOCALE_SABBREVMONTHNAME6 0x00000049
  371. #define LOCALE_SABBREVMONTHNAME7 0x0000004a
  372. #define LOCALE_SABBREVMONTHNAME8 0x0000004b
  373. #define LOCALE_SABBREVMONTHNAME9 0x0000004c
  374. #define LOCALE_SABBREVMONTHNAME10 0x0000004d
  375. #define LOCALE_SABBREVMONTHNAME11 0x0000004e
  376. #define LOCALE_SABBREVMONTHNAME12 0x0000004f
  377. #define LOCALE_SABBREVMONTHNAME13 0x0000100f
  378. #define LOCALE_SPOSITIVESIGN 0x00000050
  379. #define LOCALE_SNEGATIVESIGN 0x00000051
  380. #define LOCALE_IPOSSIGNPOSN 0x00000052
  381. #define LOCALE_INEGSIGNPOSN 0x00000053
  382. #define LOCALE_IPOSSYMPRECEDES 0x00000054
  383. #define LOCALE_IPOSSEPBYSPACE 0x00000055
  384. #define LOCALE_INEGSYMPRECEDES 0x00000056
  385. #define LOCALE_INEGSEPBYSPACE 0x00000057
  386. #define LOCALE_FONTSIGNATURE 0x00000058
  387. #define LOCALE_SISO639LANGNAME 0x00000059
  388. #define LOCALE_SISO3166CTRYNAME 0x0000005a
  389. #define LOCALE_IDEFAULTEBCDICCODEPAGE 0x00001012
  390. #define LOCALE_IPAPERSIZE 0x0000100a
  391. #define LOCALE_SENGCURRNAME 0x00001007
  392. #define LOCALE_SNATIVECURRNAME 0x00001008
  393. #define LOCALE_SYEARMONTH 0x00001006
  394. #define LOCALE_SSORTNAME 0x00001013
  395. #define LOCALE_IDIGITSUBSTITUTION 0x00001014
  396. #if WINVER >= 0x0600
  397. #define LOCALE_SNAME 0x0000005c
  398. #define LOCALE_SDURATION 0x0000005d
  399. #define LOCALE_SKEYBOARDSTOINSTALL 0x0000005e
  400. #define LOCALE_SSHORTESTDAYNAME1 0x00000060
  401. #define LOCALE_SSHORTESTDAYNAME2 0x00000061
  402. #define LOCALE_SSHORTESTDAYNAME3 0x00000062
  403. #define LOCALE_SSHORTESTDAYNAME4 0x00000063
  404. #define LOCALE_SSHORTESTDAYNAME5 0x00000064
  405. #define LOCALE_SSHORTESTDAYNAME6 0x00000065
  406. #define LOCALE_SSHORTESTDAYNAME7 0x00000066
  407. #define LOCALE_SISO639LANGNAME2 0x00000067
  408. #define LOCALE_SISO3166CTRYNAME2 0x00000068
  409. #define LOCALE_SNAN 0x00000069
  410. #define LOCALE_SPOSINFINITY 0x0000006a
  411. #define LOCALE_SNEGINFINITY 0x0000006b
  412. #define LOCALE_SSCRIPTS 0x0000006c
  413. #define LOCALE_SPARENT 0x0000006d
  414. #define LOCALE_SCONSOLEFALLBACKNAME 0x0000006e
  415. #endif
  416. #if WINVER >= 0x0601
  417. #define LOCALE_IREADINGLAYOUT 0x00000070
  418. #define LOCALE_INEUTRAL 0x00000071
  419. #define LOCALE_INEGATIVEPERCENT 0x00000074
  420. #define LOCALE_IPOSITIVEPERCENT 0x00000075
  421. #define LOCALE_SPERCENT 0x00000076
  422. #define LOCALE_SPERMILLE 0x00000077
  423. #define LOCALE_SMONTHDAY 0x00000078
  424. #define LOCALE_SSHORTTIME 0x00000079
  425. #define LOCALE_SOPENTYPELANGUAGETAG 0x0000007a
  426. #define LOCALE_SSORTLOCALE 0x0000007b
  427. #endif
  428. #if WINVER >= _WIN32_WINNT_WIN8
  429. #define LOCALE_SRELATIVELONGDATE 0x0000007c
  430. #endif
  431. #if WINVER >= _WIN32_WINNT_WIN10
  432. #define LOCALE_SSHORTESTAM 0x0000007e
  433. #define LOCALE_SSHORTESTPM 0x0000007f
  434. #endif
  435. #define TIME_NOMINUTESORSECONDS 0x00000001
  436. #define TIME_NOSECONDS 0x00000002
  437. #define TIME_NOTIMEMARKER 0x00000004
  438. #define TIME_FORCE24HOURFORMAT 0x00000008
  439. #define DATE_SHORTDATE 0x00000001
  440. #define DATE_LONGDATE 0x00000002
  441. #define DATE_USE_ALT_CALENDAR 0x00000004
  442. #define DATE_YEARMONTH 0x00000008
  443. #define DATE_LTRREADING 0x00000010
  444. #define DATE_RTLREADING 0x00000020
  445. #if WINVER >= 0x0601
  446. #define DATE_AUTOLAYOUT 0x00000040
  447. #endif
  448. #if WINVER >= _WIN32_WINNT_WINTHRESHOLD
  449. #define DATE_MONTHDAY 0x00000080
  450. #endif
  451. #define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
  452. #define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
  453. #define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
  454. #if WINVER >= 0x0601
  455. #define CAL_RETURN_GENITIVE_NAMES LOCALE_RETURN_GENITIVE_NAMES
  456. #endif
  457. #define CAL_ICALINTVALUE 0x00000001
  458. #define CAL_SCALNAME 0x00000002
  459. #define CAL_IYEAROFFSETRANGE 0x00000003
  460. #define CAL_SERASTRING 0x00000004
  461. #define CAL_SSHORTDATE 0x00000005
  462. #define CAL_SLONGDATE 0x00000006
  463. #define CAL_SDAYNAME1 0x00000007
  464. #define CAL_SDAYNAME2 0x00000008
  465. #define CAL_SDAYNAME3 0x00000009
  466. #define CAL_SDAYNAME4 0x0000000a
  467. #define CAL_SDAYNAME5 0x0000000b
  468. #define CAL_SDAYNAME6 0x0000000c
  469. #define CAL_SDAYNAME7 0x0000000d
  470. #define CAL_SABBREVDAYNAME1 0x0000000e
  471. #define CAL_SABBREVDAYNAME2 0x0000000f
  472. #define CAL_SABBREVDAYNAME3 0x00000010
  473. #define CAL_SABBREVDAYNAME4 0x00000011
  474. #define CAL_SABBREVDAYNAME5 0x00000012
  475. #define CAL_SABBREVDAYNAME6 0x00000013
  476. #define CAL_SABBREVDAYNAME7 0x00000014
  477. #define CAL_SMONTHNAME1 0x00000015
  478. #define CAL_SMONTHNAME2 0x00000016
  479. #define CAL_SMONTHNAME3 0x00000017
  480. #define CAL_SMONTHNAME4 0x00000018
  481. #define CAL_SMONTHNAME5 0x00000019
  482. #define CAL_SMONTHNAME6 0x0000001a
  483. #define CAL_SMONTHNAME7 0x0000001b
  484. #define CAL_SMONTHNAME8 0x0000001c
  485. #define CAL_SMONTHNAME9 0x0000001d
  486. #define CAL_SMONTHNAME10 0x0000001e
  487. #define CAL_SMONTHNAME11 0x0000001f
  488. #define CAL_SMONTHNAME12 0x00000020
  489. #define CAL_SMONTHNAME13 0x00000021
  490. #define CAL_SABBREVMONTHNAME1 0x00000022
  491. #define CAL_SABBREVMONTHNAME2 0x00000023
  492. #define CAL_SABBREVMONTHNAME3 0x00000024
  493. #define CAL_SABBREVMONTHNAME4 0x00000025
  494. #define CAL_SABBREVMONTHNAME5 0x00000026
  495. #define CAL_SABBREVMONTHNAME6 0x00000027
  496. #define CAL_SABBREVMONTHNAME7 0x00000028
  497. #define CAL_SABBREVMONTHNAME8 0x00000029
  498. #define CAL_SABBREVMONTHNAME9 0x0000002a
  499. #define CAL_SABBREVMONTHNAME10 0x0000002b
  500. #define CAL_SABBREVMONTHNAME11 0x0000002c
  501. #define CAL_SABBREVMONTHNAME12 0x0000002d
  502. #define CAL_SABBREVMONTHNAME13 0x0000002e
  503. #define CAL_SYEARMONTH 0x0000002f
  504. #define CAL_ITWODIGITYEARMAX 0x00000030
  505. #if WINVER >= 0x0600
  506. #define CAL_SSHORTESTDAYNAME1 0x00000031
  507. #define CAL_SSHORTESTDAYNAME2 0x00000032
  508. #define CAL_SSHORTESTDAYNAME3 0x00000033
  509. #define CAL_SSHORTESTDAYNAME4 0x00000034
  510. #define CAL_SSHORTESTDAYNAME5 0x00000035
  511. #define CAL_SSHORTESTDAYNAME6 0x00000036
  512. #define CAL_SSHORTESTDAYNAME7 0x00000037
  513. #endif
  514. #if WINVER >= 0x0601
  515. #define CAL_SMONTHDAY 0x00000038
  516. #define CAL_SABBREVERASTRING 0x00000039
  517. #endif
  518. #if WINVER >= _WIN32_WINNT_WIN8
  519. #define CAL_SRELATIVELONGDATE 0x0000003a
  520. #endif
  521. #if NTDDI_VERSION >= NTDDI_WIN10_RS2
  522. #define CAL_SENGLISHERANAME 0x0000003b
  523. #define CAL_SENGLISHABBREVERANAME 0x0000003c
  524. #endif
  525. #define CAL_SJAPANESEERAFIRSTYEAR 0x0000003d
  526. #define ENUM_ALL_CALENDARS 0xffffffff
  527. #define CAL_GREGORIAN 1
  528. #define CAL_GREGORIAN_US 2
  529. #define CAL_JAPAN 3
  530. #define CAL_TAIWAN 4
  531. #define CAL_KOREA 5
  532. #define CAL_HIJRI 6
  533. #define CAL_THAI 7
  534. #define CAL_HEBREW 8
  535. #define CAL_GREGORIAN_ME_FRENCH 9
  536. #define CAL_GREGORIAN_ARABIC 10
  537. #define CAL_GREGORIAN_XLIT_ENGLISH 11
  538. #define CAL_GREGORIAN_XLIT_FRENCH 12
  539. #define CAL_UMALQURA 23
  540. #define LGRPID_WESTERN_EUROPE 0x0001
  541. #define LGRPID_CENTRAL_EUROPE 0x0002
  542. #define LGRPID_BALTIC 0x0003
  543. #define LGRPID_GREEK 0x0004
  544. #define LGRPID_CYRILLIC 0x0005
  545. #define LGRPID_TURKIC 0x0006
  546. #define LGRPID_TURKISH 0x0006
  547. #define LGRPID_JAPANESE 0x0007
  548. #define LGRPID_KOREAN 0x0008
  549. #define LGRPID_TRADITIONAL_CHINESE 0x0009
  550. #define LGRPID_SIMPLIFIED_CHINESE 0x000a
  551. #define LGRPID_THAI 0x000b
  552. #define LGRPID_HEBREW 0x000c
  553. #define LGRPID_ARABIC 0x000d
  554. #define LGRPID_VIETNAMESE 0x000e
  555. #define LGRPID_INDIC 0x000f
  556. #define LGRPID_GEORGIAN 0x0010
  557. #define LGRPID_ARMENIAN 0x0011
  558. #if WINVER >= 0x0600
  559. #define MUI_LANGUAGE_ID 0x4
  560. #define MUI_LANGUAGE_NAME 0x8
  561. #define MUI_MERGE_SYSTEM_FALLBACK 0x10
  562. #define MUI_MERGE_USER_FALLBACK 0x20
  563. #define MUI_UI_FALLBACK MUI_MERGE_SYSTEM_FALLBACK | MUI_MERGE_USER_FALLBACK
  564. #define MUI_THREAD_LANGUAGES 0x40
  565. #define MUI_CONSOLE_FILTER 0x100
  566. #define MUI_COMPLEX_SCRIPT_FILTER 0x200
  567. #define MUI_RESET_FILTERS 0x001
  568. #define MUI_USER_PREFERRED_UI_LANGUAGES 0x10
  569. #define MUI_USE_INSTALLED_LANGUAGES 0x20
  570. #define MUI_USE_SEARCH_ALL_LANGUAGES 0x40
  571. #define MUI_LANG_NEUTRAL_PE_FILE 0x100
  572. #define MUI_NON_LANG_NEUTRAL_FILE 0x200
  573. #define MUI_MACHINE_LANGUAGE_SETTINGS 0x400
  574. #define MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL 0x001
  575. #define MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN 0x002
  576. #define MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI 0x004
  577. #define MUI_QUERY_TYPE 0x001
  578. #define MUI_QUERY_CHECKSUM 0x002
  579. #define MUI_QUERY_LANGUAGE_NAME 0x004
  580. #define MUI_QUERY_RESOURCE_TYPES 0x008
  581. #define MUI_FILEINFO_VERSION 0x001
  582. #define MUI_FULL_LANGUAGE 0x01
  583. #define MUI_PARTIAL_LANGUAGE 0x02
  584. #define MUI_LIP_LANGUAGE 0x04
  585. #define MUI_LANGUAGE_INSTALLED 0x20
  586. #define MUI_LANGUAGE_LICENSED 0x40
  587. #define MUI_CALLBACK_ALL_FLAGS MUI_CALLBACK_FLAG_UPGRADED_INSTALLATION
  588. #endif
  589. typedef DWORD LGRPID;
  590. typedef DWORD LCTYPE;
  591. typedef DWORD CALTYPE;
  592. typedef DWORD CALID;
  593. typedef struct _cpinfo {
  594. UINT MaxCharSize;
  595. BYTE DefaultChar[MAX_DEFAULTCHAR];
  596. BYTE LeadByte[MAX_LEADBYTES];
  597. } CPINFO,*LPCPINFO;
  598. typedef struct _cpinfoexA {
  599. UINT MaxCharSize;
  600. BYTE DefaultChar[MAX_DEFAULTCHAR];
  601. BYTE LeadByte[MAX_LEADBYTES];
  602. WCHAR UnicodeDefaultChar;
  603. UINT CodePage;
  604. CHAR CodePageName[MAX_PATH];
  605. } CPINFOEXA,*LPCPINFOEXA;
  606. typedef struct _cpinfoexW {
  607. UINT MaxCharSize;
  608. BYTE DefaultChar[MAX_DEFAULTCHAR];
  609. BYTE LeadByte[MAX_LEADBYTES];
  610. WCHAR UnicodeDefaultChar;
  611. UINT CodePage;
  612. WCHAR CodePageName[MAX_PATH];
  613. } CPINFOEXW,*LPCPINFOEXW;
  614. __MINGW_TYPEDEF_AW(CPINFOEX)
  615. __MINGW_TYPEDEF_AW(LPCPINFOEX)
  616. typedef struct _numberfmtA {
  617. UINT NumDigits;
  618. UINT LeadingZero;
  619. UINT Grouping;
  620. LPSTR lpDecimalSep;
  621. LPSTR lpThousandSep;
  622. UINT NegativeOrder;
  623. } NUMBERFMTA,*LPNUMBERFMTA;
  624. typedef struct _numberfmtW {
  625. UINT NumDigits;
  626. UINT LeadingZero;
  627. UINT Grouping;
  628. LPWSTR lpDecimalSep;
  629. LPWSTR lpThousandSep;
  630. UINT NegativeOrder;
  631. } NUMBERFMTW,*LPNUMBERFMTW;
  632. __MINGW_TYPEDEF_AW(NUMBERFMT)
  633. __MINGW_TYPEDEF_AW(LPNUMBERFMT)
  634. typedef struct _currencyfmtA {
  635. UINT NumDigits;
  636. UINT LeadingZero;
  637. UINT Grouping;
  638. LPSTR lpDecimalSep;
  639. LPSTR lpThousandSep;
  640. UINT NegativeOrder;
  641. UINT PositiveOrder;
  642. LPSTR lpCurrencySymbol;
  643. } CURRENCYFMTA,*LPCURRENCYFMTA;
  644. typedef struct _currencyfmtW {
  645. UINT NumDigits;
  646. UINT LeadingZero;
  647. UINT Grouping;
  648. LPWSTR lpDecimalSep;
  649. LPWSTR lpThousandSep;
  650. UINT NegativeOrder;
  651. UINT PositiveOrder;
  652. LPWSTR lpCurrencySymbol;
  653. } CURRENCYFMTW,*LPCURRENCYFMTW;
  654. __MINGW_TYPEDEF_AW(CURRENCYFMT)
  655. __MINGW_TYPEDEF_AW(LPCURRENCYFMT)
  656. enum SYSNLS_FUNCTION {
  657. COMPARE_STRING = 0x1
  658. };
  659. typedef DWORD NLS_FUNCTION;
  660. #if WINVER >= 0x0602
  661. typedef struct _nlsversioninfo {
  662. DWORD dwNLSVersionInfoSize;
  663. DWORD dwNLSVersion;
  664. DWORD dwDefinedVersion;
  665. DWORD dwEffectiveId;
  666. GUID guidCustomVersion;
  667. } NLSVERSIONINFO,*LPNLSVERSIONINFO;
  668. #else
  669. typedef struct _nlsversioninfo {
  670. DWORD dwNLSVersionInfoSize;
  671. DWORD dwNLSVersion;
  672. DWORD dwDefinedVersion;
  673. } NLSVERSIONINFO,*LPNLSVERSIONINFO;
  674. #endif
  675. typedef struct _nlsversioninfoex {
  676. DWORD dwNLSVersionInfoSize;
  677. DWORD dwNLSVersion;
  678. DWORD dwDefinedVersion;
  679. DWORD dwEffectiveId;
  680. GUID guidCustomVersion;
  681. } NLSVERSIONINFOEX,*LPNLSVERSIONINFOEX;
  682. typedef LONG GEOID;
  683. typedef DWORD GEOTYPE;
  684. typedef DWORD GEOCLASS;
  685. #define GEOID_NOT_AVAILABLE -1
  686. enum SYSGEOTYPE {
  687. GEO_NATION = 0x0001,
  688. GEO_LATITUDE = 0x0002,
  689. GEO_LONGITUDE = 0x0003,
  690. GEO_ISO2 = 0x0004,
  691. GEO_ISO3 = 0x0005,
  692. GEO_RFC1766 = 0x0006,
  693. GEO_LCID = 0x0007,
  694. GEO_FRIENDLYNAME= 0x0008,
  695. GEO_OFFICIALNAME= 0x0009,
  696. GEO_TIMEZONES = 0x000a,
  697. GEO_OFFICIALLANGUAGES = 0x000b,
  698. GEO_ISO_UN_NUMBER = 0x000c,
  699. GEO_PARENT = 0x000d,
  700. GEO_DIALINGCODE = 0x000e,
  701. GEO_CURRENCYCODE= 0x000f,
  702. GEO_CURRENCYSYMBOL= 0x0010,
  703. #if NTDDI_VERSION >= NTDDI_WIN10_RS3
  704. GEO_NAME = 0x0011,
  705. GEO_ID = 0x0012
  706. #endif
  707. };
  708. enum SYSGEOCLASS {
  709. GEOCLASS_NATION = 16,
  710. GEOCLASS_REGION = 14,
  711. GEOCLASS_ALL = 0
  712. };
  713. #if WINVER >= 0x0600
  714. typedef enum _NORM_FORM {
  715. NormalizationOther = 0,
  716. NormalizationC = 0x1,
  717. NormalizationD = 0x2,
  718. NormalizationKC = 0x5,
  719. NormalizationKD = 0x6
  720. } NORM_FORM;
  721. #define IDN_ALLOW_UNASSIGNED 0x01
  722. #define IDN_USE_STD3_ASCII_RULES 0x02
  723. #define IDN_EMAIL_ADDRESS 0x04
  724. #define IDN_RAW_PUNYCODE 0x08
  725. #define VS_ALLOW_LATIN 0x0001
  726. #define GSS_ALLOW_INHERITED_COMMON 0x0001
  727. #endif
  728. #ifdef STRICT
  729. typedef WINBOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA) (LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
  730. typedef WINBOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA) (LGRPID, LCID, LPSTR, LONG_PTR);
  731. typedef WINBOOL (CALLBACK *UILANGUAGE_ENUMPROCA) (LPSTR, LONG_PTR);
  732. typedef WINBOOL (CALLBACK *CODEPAGE_ENUMPROCA) (LPSTR);
  733. typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCA) (LPSTR);
  734. typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXA) (LPSTR, CALID);
  735. typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCA) (LPSTR);
  736. typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCA) (LPSTR);
  737. typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXA) (LPSTR, CALID);
  738. typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCA) (LPSTR);
  739. typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCW) (LPWSTR);
  740. typedef WINBOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW) (LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
  741. typedef WINBOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW) (LGRPID, LCID, LPWSTR, LONG_PTR);
  742. typedef WINBOOL (CALLBACK *UILANGUAGE_ENUMPROCW) (LPWSTR, LONG_PTR);
  743. typedef WINBOOL (CALLBACK *CODEPAGE_ENUMPROCW) (LPWSTR);
  744. typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCW) (LPWSTR);
  745. typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXW) (LPWSTR, CALID);
  746. typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCW) (LPWSTR);
  747. typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCW) (LPWSTR);
  748. typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXW) (LPWSTR, CALID);
  749. typedef WINBOOL (CALLBACK *GEO_ENUMPROC) (GEOID);
  750. #if NTDDI_VERSION >= NTDDI_WIN10_RS3
  751. typedef WINBOOL (CALLBACK *GEO_ENUMNAMEPROC) (PWSTR, LPARAM);
  752. #endif
  753. #else
  754. typedef FARPROC LANGUAGEGROUP_ENUMPROCA;
  755. typedef FARPROC LANGGROUPLOCALE_ENUMPROCA;
  756. typedef FARPROC UILANGUAGE_ENUMPROCA;
  757. typedef FARPROC CODEPAGE_ENUMPROCA;
  758. typedef FARPROC DATEFMT_ENUMPROCA;
  759. typedef FARPROC DATEFMT_ENUMPROCEXA;
  760. typedef FARPROC TIMEFMT_ENUMPROCA;
  761. typedef FARPROC CALINFO_ENUMPROCA;
  762. typedef FARPROC CALINFO_ENUMPROCEXA;
  763. typedef FARPROC GEO_ENUMPROC;
  764. typedef FARPROC LOCALE_ENUMPROCA;
  765. typedef FARPROC LOCALE_ENUMPROCW;
  766. typedef FARPROC LANGUAGEGROUP_ENUMPROCW;
  767. typedef FARPROC LANGGROUPLOCALE_ENUMPROCW;
  768. typedef FARPROC UILANGUAGE_ENUMPROCW;
  769. typedef FARPROC CODEPAGE_ENUMPROCW;
  770. typedef FARPROC DATEFMT_ENUMPROCW;
  771. typedef FARPROC DATEFMT_ENUMPROCEXW;
  772. typedef FARPROC TIMEFMT_ENUMPROCW;
  773. typedef FARPROC CALINFO_ENUMPROCW;
  774. typedef FARPROC CALINFO_ENUMPROCEXW;
  775. #if NTDDI_VERSION >= NTDDI_WIN10_RS3
  776. typedef FARPROC GEO_ENUMNAMEPROC;
  777. #endif
  778. #endif
  779. #ifdef UNICODE
  780. #define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCW
  781. #define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCW
  782. #define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCW
  783. #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
  784. #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
  785. #define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXW
  786. #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
  787. #define CALINFO_ENUMPROC CALINFO_ENUMPROCW
  788. #define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW
  789. #define LOCALE_ENUMPROC LOCALE_ENUMPROCW
  790. #else
  791. #define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCA
  792. #define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCA
  793. #define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCA
  794. #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
  795. #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
  796. #define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXA
  797. #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
  798. #define CALINFO_ENUMPROC CALINFO_ENUMPROCA
  799. #define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXA
  800. #define LOCALE_ENUMPROC LOCALE_ENUMPROCA
  801. #endif
  802. typedef struct _FILEMUIINFO {
  803. DWORD dwSize;
  804. DWORD dwVersion;
  805. DWORD dwFileType;
  806. BYTE pChecksum[16];
  807. BYTE pServiceChecksum[16];
  808. DWORD dwLanguageNameOffset;
  809. DWORD dwTypeIDMainSize;
  810. DWORD dwTypeIDMainOffset;
  811. DWORD dwTypeNameMainOffset;
  812. DWORD dwTypeIDMUISize;
  813. DWORD dwTypeIDMUIOffset;
  814. DWORD dwTypeNameMUIOffset;
  815. BYTE abBuffer[8];
  816. } FILEMUIINFO,*PFILEMUIINFO;
  817. #ifndef NOAPISET
  818. #include <stringapiset.h>
  819. #endif
  820. #define IS_HIGH_SURROGATE(wch) (((wch) >= HIGH_SURROGATE_START) && ((wch) <= HIGH_SURROGATE_END))
  821. #define IS_LOW_SURROGATE(wch) (((wch) >= LOW_SURROGATE_START) && ((wch) <= LOW_SURROGATE_END))
  822. #define IS_SURROGATE_PAIR(hs, ls) (IS_HIGH_SURROGATE (hs) && IS_LOW_SURROGATE (ls))
  823. #define FILEMUIINFO_GET_CULTURE(pInfo) ((LPWSTR) ((pInfo->dwLanguageNameOffset>0)? (ULONG_PTR)pInfo+pInfo->dwLanguageNameOffset:NULL))
  824. #define FILEMUIINFO_GET_MAIN_TYPEIDS(pInfo) ((DWORD *) ((pInfo->dwTypeIDMainOffset>0)? (ULONG_PTR)pInfo+pInfo->dwTypeIDMainOffset:NULL))
  825. #define FILEMUIINFO_GET_MAIN_TYPEID(pInfo, iType) (((iType<pInfo->dwTypeIDMainSize)&& (pInfo->dwTypeIDMainOffset>0))? *((DWORD *) ((ULONG_PTR)pInfo+pInfo->dwTypeIDMainOffset)+iType):0)
  826. #define FILEMUIINFO_GET_MAIN_TYPENAMES(pInfo) ((LPWSTR) ((pInfo->dwTypeNameMainOffset>0)? (ULONG_PTR)pInfo+pInfo->dwTypeNameMainOffset:NULL))
  827. #define FILEMUIINFO_GET_MUI_TYPEIDS(pInfo) ((DWORD *) ((pInfo->dwTypeIDMUIOffset>0)? (ULONG_PTR)pInfo+pInfo->dwTypeIDMUIOffset:NULL))
  828. #define FILEMUIINFO_GET_MUI_TYPEID(pInfo, iType) (((iType<pInfo->dwTypeIDMUISize)&& (pInfo->dwTypeIDMUIOffset>0))? *((DWORD *) ((ULONG_PTR)pInfo+pInfo->dwTypeIDMUIOffset)+iType):0)
  829. #define FILEMUIINFO_GET_MUI_TYPENAMES(pInfo) ((LPWSTR) ((pInfo->dwTypeNameMUIOffset>0)? (ULONG_PTR)pInfo+pInfo->dwTypeNameMUIOffset:NULL))
  830. WINBASEAPI WINBOOL WINAPI IsValidCodePage (UINT CodePage);
  831. #endif
  832. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  833. WINBASEAPI UINT WINAPI GetACP (void);
  834. WINBASEAPI WINBOOL WINAPI IsDBCSLeadByte (BYTE TestChar);
  835. WINBASEAPI WINBOOL WINAPI IsDBCSLeadByteEx (UINT CodePage, BYTE TestChar);
  836. WINBASEAPI WINBOOL WINAPI IsNLSDefinedString (NLS_FUNCTION Function, DWORD dwFlags, LPNLSVERSIONINFO lpVersionInformation, LPCWSTR lpString, INT cchStr);
  837. WINBASEAPI int WINAPI GetLocaleInfoW (LCID Locale, LCTYPE LCType, LPWSTR lpLCData, int cchData);
  838. WINBASEAPI int WINAPI GetLocaleInfoA (LCID Locale, LCTYPE LCType, LPSTR lpLCData, int cchData);
  839. #ifndef UNICODE
  840. #define GetLocaleInfo GetLocaleInfoA
  841. #else
  842. #define GetLocaleInfo GetLocaleInfoW
  843. #endif
  844. #endif
  845. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  846. WINBASEAPI UINT WINAPI GetOEMCP (void);
  847. WINBASEAPI int WINAPI CompareStringA (LCID Locale, DWORD dwCmpFlags, PCNZCH lpString1, int cchCount1, PCNZCH lpString2, int cchCount2);
  848. WINBASEAPI int WINAPI LCMapStringW (LCID Locale, DWORD dwMapFlags, LPCWSTR lpSrcStr, int cchSrc, LPWSTR lpDestStr, int cchDest);
  849. WINBASEAPI int WINAPI LCMapStringA (LCID Locale, DWORD dwMapFlags, LPCSTR lpSrcStr, int cchSrc, LPSTR lpDestStr, int cchDest);
  850. WINBASEAPI int WINAPI GetNumberFormatA (LCID Locale, DWORD dwFlags, LPCSTR lpValue, CONST NUMBERFMTA *lpFormat, LPSTR lpNumberStr, int cchNumber);
  851. WINBASEAPI int WINAPI GetNumberFormatW (LCID Locale, DWORD dwFlags, LPCWSTR lpValue, CONST NUMBERFMTW *lpFormat, LPWSTR lpNumberStr, int cchNumber);
  852. WINBASEAPI int WINAPI GetCurrencyFormatA (LCID Locale, DWORD dwFlags, LPCSTR lpValue, CONST CURRENCYFMTA *lpFormat, LPSTR lpCurrencyStr, int cchCurrency);
  853. WINBASEAPI int WINAPI GetCurrencyFormatW (LCID Locale, DWORD dwFlags, LPCWSTR lpValue, CONST CURRENCYFMTW *lpFormat, LPWSTR lpCurrencyStr, int cchCurrency);
  854. WINBASEAPI WINBOOL WINAPI EnumCalendarInfoA (CALINFO_ENUMPROCA lpCalInfoEnumProc, LCID Locale, CALID Calendar, CALTYPE CalType);
  855. WINBASEAPI WINBOOL WINAPI EnumCalendarInfoW (CALINFO_ENUMPROCW lpCalInfoEnumProc, LCID Locale, CALID Calendar, CALTYPE CalType);
  856. WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExA (CALINFO_ENUMPROCEXA lpCalInfoEnumProcEx, LCID Locale, CALID Calendar, CALTYPE CalType);
  857. WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExW (CALINFO_ENUMPROCEXW lpCalInfoEnumProcEx, LCID Locale, CALID Calendar, CALTYPE CalType);
  858. WINBASEAPI WINBOOL WINAPI EnumTimeFormatsA (TIMEFMT_ENUMPROCA lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
  859. WINBASEAPI WINBOOL WINAPI EnumTimeFormatsW (TIMEFMT_ENUMPROCW lpTimeFmtEnumProc, LCID Locale, DWORD dwFlags);
  860. WINBASEAPI WINBOOL WINAPI EnumDateFormatsA (DATEFMT_ENUMPROCA lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
  861. WINBASEAPI WINBOOL WINAPI EnumDateFormatsW (DATEFMT_ENUMPROCW lpDateFmtEnumProc, LCID Locale, DWORD dwFlags);
  862. WINBASEAPI WINBOOL WINAPI EnumDateFormatsExA (DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx, LCID Locale, DWORD dwFlags);
  863. WINBASEAPI WINBOOL WINAPI EnumDateFormatsExW (DATEFMT_ENUMPROCEXW lpDateFmtEnumProcEx, LCID Locale, DWORD dwFlags);
  864. WINBASEAPI WINBOOL WINAPI IsValidLanguageGroup (LGRPID LanguageGroup, DWORD dwFlags);
  865. WINBASEAPI WINBOOL WINAPI GetNLSVersion (NLS_FUNCTION Function, LCID Locale, LPNLSVERSIONINFO lpVersionInformation);
  866. WINBASEAPI WINBOOL WINAPI IsValidLocale (LCID Locale, DWORD dwFlags);
  867. WINBASEAPI WINBOOL WINAPI SetLocaleInfoA (LCID Locale, LCTYPE LCType, LPCSTR lpLCData);
  868. WINBASEAPI WINBOOL WINAPI SetLocaleInfoW (LCID Locale, LCTYPE LCType, LPCWSTR lpLCData);
  869. WINBASEAPI int WINAPI GetCalendarInfoA (LCID Locale, CALID Calendar, CALTYPE CalType, LPSTR lpCalData, int cchData, LPDWORD lpValue);
  870. WINBASEAPI int WINAPI GetCalendarInfoW (LCID Locale, CALID Calendar, CALTYPE CalType, LPWSTR lpCalData, int cchData, LPDWORD lpValue);
  871. WINBASEAPI WINBOOL WINAPI SetCalendarInfoA (LCID Locale, CALID Calendar, CALTYPE CalType, LPCSTR lpCalData);
  872. WINBASEAPI WINBOOL WINAPI SetCalendarInfoW (LCID Locale, CALID Calendar, CALTYPE CalType, LPCWSTR lpCalData);
  873. #if WINVER >= 0x0600
  874. WINBASEAPI int WINAPI GetDurationFormat (LCID Locale, DWORD dwFlags, CONST SYSTEMTIME *lpDuration, ULONGLONG ullDuration, LPCWSTR lpFormat, LPWSTR lpDurationStr, int cchDuration);
  875. WINBASEAPI int WINAPI FindNLSString (LCID Locale, DWORD dwFindNLSStringFlags, LPCWSTR lpStringSource, int cchSource, LPCWSTR lpStringValue, int cchValue, LPINT pcchFound);
  876. #endif
  877. #if WINVER >= 0x0601
  878. WINBASEAPI WINBOOL WINAPI LoadStringByReference (DWORD Flags, PCWSTR Language, PCWSTR SourceString, PWSTR Buffer, ULONG cchBuffer, PCWSTR Directory, PULONG pcchBufferOut);
  879. #endif
  880. #define SetLocaleInfo __MINGW_NAME_AW(SetLocaleInfo)
  881. #define GetCalendarInfo __MINGW_NAME_AW(GetCalendarInfo)
  882. #define SetCalendarInfo __MINGW_NAME_AW(SetCalendarInfo)
  883. #if WINVER >= 0x0601
  884. #define MUI_FORMAT_REG_COMPAT 0x0001
  885. #define MUI_FORMAT_INF_COMPAT 0x0002
  886. #define MUI_VERIFY_FILE_EXISTS 0x0004
  887. #define MUI_SKIP_STRING_CACHE 0x0008
  888. #define MUI_IMMUTABLE_LOOKUP 0x0010
  889. #endif
  890. #ifndef UNICODE
  891. #define CompareString CompareStringA
  892. #define LCMapString LCMapStringA
  893. #else
  894. #define LCMapString LCMapStringW
  895. #endif
  896. #define GetNumberFormat __MINGW_NAME_AW(GetNumberFormat)
  897. #define GetCurrencyFormat __MINGW_NAME_AW(GetCurrencyFormat)
  898. #define EnumCalendarInfo __MINGW_NAME_AW(EnumCalendarInfo)
  899. #define EnumCalendarInfoEx __MINGW_NAME_AW(EnumCalendarInfoEx)
  900. #define EnumTimeFormats __MINGW_NAME_AW(EnumTimeFormats)
  901. #define EnumDateFormats __MINGW_NAME_AW(EnumDateFormats)
  902. #define EnumDateFormatsEx __MINGW_NAME_AW(EnumDateFormatsEx)
  903. #endif
  904. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  905. WINBASEAPI int WINAPI GetGeoInfoA (GEOID Location, GEOTYPE GeoType, LPSTR lpGeoData, int cchData, LANGID LangId);
  906. WINBASEAPI int WINAPI GetGeoInfoW (GEOID Location, GEOTYPE GeoType, LPWSTR lpGeoData, int cchData, LANGID LangId);
  907. WINBASEAPI WINBOOL WINAPI EnumSystemGeoID (GEOCLASS GeoClass, GEOID ParentGeoId, GEO_ENUMPROC lpGeoEnumProc);
  908. WINBASEAPI GEOID WINAPI GetUserGeoID (GEOCLASS GeoClass);
  909. WINBASEAPI int WINAPI GetUserDefaultGeoName (LPWSTR geoName, int geoNameCount);
  910. WINBASEAPI WINBOOL WINAPI GetCPInfo (UINT CodePage, LPCPINFO lpCPInfo);
  911. WINBASEAPI WINBOOL WINAPI GetCPInfoExA (UINT CodePage, DWORD dwFlags, LPCPINFOEXA lpCPInfoEx);
  912. WINBASEAPI WINBOOL WINAPI GetCPInfoExW (UINT CodePage, DWORD dwFlags, LPCPINFOEXW lpCPInfoEx);
  913. #if WINVER >= 0x0600
  914. WINBASEAPI int WINAPI LCIDToLocaleName (LCID Locale, LPWSTR lpName, int cchName, DWORD dwFlags);
  915. WINBASEAPI LCID WINAPI LocaleNameToLCID (LPCWSTR lpName, DWORD dwFlags);
  916. #endif
  917. #if NTDDI_VERSION >= NTDDI_WIN10_RS3
  918. WINBASEAPI int WINAPI GetGeoInfoEx (PWSTR location, GEOTYPE geoType, PWSTR geoData, int geoDataCount);
  919. WINBASEAPI WINBOOL WINAPI SetUserGeoName (PWSTR geoName);
  920. #endif
  921. #define GetGeoInfo __MINGW_NAME_AW(GetGeoInfo)
  922. #define GetCPInfoEx __MINGW_NAME_AW(GetCPInfoEx)
  923. #endif
  924. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  925. WINBASEAPI WINBOOL WINAPI SetUserGeoID (GEOID GeoId);
  926. WINBASEAPI LCID WINAPI ConvertDefaultLocale (LCID Locale);
  927. WINBASEAPI LCID WINAPI GetThreadLocale (void);
  928. WINBASEAPI WINBOOL WINAPI SetThreadLocale (LCID Locale);
  929. WINBASEAPI LANGID WINAPI GetSystemDefaultUILanguage (void);
  930. WINBASEAPI LANGID WINAPI GetSystemDefaultLangID (void);
  931. WINBASEAPI LCID WINAPI GetSystemDefaultLCID (void);
  932. WINBASEAPI LCID WINAPI GetUserDefaultLCID (void);
  933. WINBASEAPI LANGID WINAPI SetThreadUILanguage (LANGID LangId);
  934. WINBASEAPI WINBOOL WINAPI GetStringTypeA (LCID Locale, DWORD dwInfoType, LPCSTR lpSrcStr, int cchSrc, LPWORD lpCharType);
  935. WINBASEAPI int WINAPI FoldStringA (DWORD dwMapFlags, LPCSTR lpSrcStr, int cchSrc, LPSTR lpDestStr, int cchDest);
  936. WINBASEAPI WINBOOL WINAPI EnumSystemLocalesA (LOCALE_ENUMPROCA lpLocaleEnumProc, DWORD dwFlags);
  937. WINBASEAPI WINBOOL WINAPI EnumSystemLocalesW (LOCALE_ENUMPROCW lpLocaleEnumProc, DWORD dwFlags);
  938. WINBASEAPI WINBOOL WINAPI EnumSystemLanguageGroupsA (LANGUAGEGROUP_ENUMPROCA lpLanguageGroupEnumProc, DWORD dwFlags, LONG_PTR lParam);
  939. WINBASEAPI WINBOOL WINAPI EnumSystemLanguageGroupsW (LANGUAGEGROUP_ENUMPROCW lpLanguageGroupEnumProc, DWORD dwFlags, LONG_PTR lParam);
  940. WINBASEAPI WINBOOL WINAPI EnumLanguageGroupLocalesA (LANGGROUPLOCALE_ENUMPROCA lpLangGroupLocaleEnumProc, LGRPID LanguageGroup, DWORD dwFlags, LONG_PTR lParam);
  941. WINBASEAPI WINBOOL WINAPI EnumLanguageGroupLocalesW (LANGGROUPLOCALE_ENUMPROCW lpLangGroupLocaleEnumProc, LGRPID LanguageGroup, DWORD dwFlags, LONG_PTR lParam);
  942. #if WINVER >= 0x0600
  943. WINBASEAPI LANGID WINAPI GetThreadUILanguage (void);
  944. WINBASEAPI WINBOOL WINAPI GetProcessPreferredUILanguages (DWORD dwFlags, PULONG pulNumLanguages, PZZWSTR pwszLanguagesBuffer, PULONG pcchLanguagesBuffer);
  945. WINBASEAPI WINBOOL WINAPI SetProcessPreferredUILanguages (DWORD dwFlags, PCZZWSTR pwszLanguagesBuffer, PULONG pulNumLanguages);
  946. WINBASEAPI WINBOOL WINAPI GetUserPreferredUILanguages (DWORD dwFlags, PULONG pulNumLanguages, PZZWSTR pwszLanguagesBuffer, PULONG pcchLanguagesBuffer);
  947. WINBASEAPI WINBOOL WINAPI GetSystemPreferredUILanguages (DWORD dwFlags, PULONG pulNumLanguages, PZZWSTR pwszLanguagesBuffer, PULONG pcchLanguagesBuffer);
  948. WINBASEAPI WINBOOL WINAPI GetThreadPreferredUILanguages (DWORD dwFlags, PULONG pulNumLanguages, PZZWSTR pwszLanguagesBuffer, PULONG pcchLanguagesBuffer);
  949. WINBASEAPI WINBOOL WINAPI SetThreadPreferredUILanguages (DWORD dwFlags, PCZZWSTR pwszLanguagesBuffer, PULONG pulNumLanguages);
  950. WINBASEAPI WINBOOL WINAPI GetFileMUIInfo (DWORD dwFlags, PCWSTR pcwszFilePath, PFILEMUIINFO pFileMUIInfo, DWORD *pcbFileMUIInfo);
  951. WINBASEAPI WINBOOL WINAPI GetFileMUIPath (DWORD dwFlags, PCWSTR pcwszFilePath, PWSTR pwszLanguage, PULONG pcchLanguage, PWSTR pwszFileMUIPath, PULONG pcchFileMUIPath, PULONGLONG pululEnumerator);
  952. WINBASEAPI WINBOOL WINAPI GetUILanguageInfo (DWORD dwFlags, PCZZWSTR pwmszLanguage, PZZWSTR pwszFallbackLanguages, PDWORD pcchFallbackLanguages, PDWORD pAttributes);
  953. WINBASEAPI WINBOOL WINAPI NotifyUILanguageChange (DWORD dwFlags, PCWSTR pcwstrNewLanguage, PCWSTR pcwstrPreviousLanguage, DWORD dwReserved, PDWORD pdwStatusRtrn);
  954. #endif
  955. #ifndef UNICODE
  956. #define FoldString FoldStringA
  957. #endif
  958. #define EnumSystemLocales __MINGW_NAME_AW(EnumSystemLocales)
  959. #define EnumSystemLanguageGroups __MINGW_NAME_AW(EnumSystemLanguageGroups)
  960. #define EnumLanguageGroupLocales __MINGW_NAME_AW(EnumLanguageGroupLocales)
  961. #define EnumUILanguages __MINGW_NAME_AW(EnumUILanguages)
  962. #if NTDDI_VERSION >= NTDDI_WIN10_RS3
  963. WINBASEAPI WINBOOL WINAPI EnumSystemGeoNames (GEOCLASS geoClass, GEO_ENUMNAMEPROC geoEnumProc, LPARAM data);
  964. #endif
  965. #if NTDDI_VERSION >= NTDDI_WIN10_VB
  966. DECLARE_HANDLE(HSAVEDUILANGUAGES);
  967. WINBASEAPI WINBOOL WINAPI SetThreadPreferredUILanguages2 (ULONG flags, PCZZWSTR languages, PULONG numLanguagesSet, HSAVEDUILANGUAGES *snapshot);
  968. WINBASEAPI void WINAPI RestoreThreadPreferredUILanguages (const HSAVEDUILANGUAGES snapshot);
  969. #endif /* NTDDI_WIN10_VB */
  970. #endif
  971. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_APP)
  972. WINBASEAPI WINBOOL WINAPI GetStringTypeExA (LCID Locale, DWORD dwInfoType, LPCSTR lpSrcStr, int cchSrc, LPWORD lpCharType);
  973. WINBASEAPI LANGID WINAPI GetUserDefaultUILanguage (void);
  974. WINBASEAPI WINBOOL WINAPI EnumUILanguagesA (UILANGUAGE_ENUMPROCA lpUILanguageEnumProc, DWORD dwFlags, LONG_PTR lParam);
  975. WINBASEAPI WINBOOL WINAPI EnumUILanguagesW (UILANGUAGE_ENUMPROCW lpUILanguageEnumProc, DWORD dwFlags, LONG_PTR lParam);
  976. WINBASEAPI WINBOOL WINAPI EnumSystemCodePagesA (CODEPAGE_ENUMPROCA lpCodePageEnumProc, DWORD dwFlags);
  977. WINBASEAPI WINBOOL WINAPI EnumSystemCodePagesW (CODEPAGE_ENUMPROCW lpCodePageEnumProc, DWORD dwFlags);
  978. WINBASEAPI LANGID WINAPI GetUserDefaultLangID (void);
  979. #ifndef UNICODE
  980. #define GetStringTypeEx GetStringTypeExA
  981. #endif
  982. #define EnumSystemCodePages __MINGW_NAME_AW(EnumSystemCodePages)
  983. #if WINVER >= 0x0600
  984. #define LOCALE_NAME_USER_DEFAULT NULL
  985. #define LOCALE_NAME_INVARIANT L""
  986. #define LOCALE_NAME_SYSTEM_DEFAULT L"!x-sys-default-locale"
  987. typedef WINBOOL (CALLBACK *CALINFO_ENUMPROCEXEX) (LPWSTR, CALID, LPWSTR, LPARAM);
  988. typedef WINBOOL (CALLBACK *DATEFMT_ENUMPROCEXEX) (LPWSTR, CALID, LPARAM);
  989. typedef WINBOOL (CALLBACK *TIMEFMT_ENUMPROCEX) (LPWSTR, LPARAM);
  990. typedef WINBOOL (CALLBACK *LOCALE_ENUMPROCEX) (LPWSTR, DWORD, LPARAM);
  991. WINNORMALIZEAPI int WINAPI NormalizeString (NORM_FORM NormForm, LPCWSTR lpSrcString, int cwSrcLength, LPWSTR lpDstString, int cwDstLength);
  992. WINNORMALIZEAPI WINBOOL WINAPI IsNormalizedString (NORM_FORM NormForm, LPCWSTR lpString, int cwLength);
  993. WINNORMALIZEAPI int WINAPI IdnToAscii (DWORD dwFlags, LPCWSTR lpUnicodeCharStr, int cchUnicodeChar, LPWSTR lpASCIICharStr, int cchASCIIChar);
  994. WINNORMALIZEAPI int WINAPI IdnToNameprepUnicode (DWORD dwFlags, LPCWSTR lpUnicodeCharStr, int cchUnicodeChar, LPWSTR lpNameprepCharStr, int cchNameprepChar);
  995. WINNORMALIZEAPI int WINAPI IdnToUnicode (DWORD dwFlags, LPCWSTR lpASCIICharStr, int cchASCIIChar, LPWSTR lpUnicodeCharStr, int cchUnicodeChar);
  996. WINBASEAPI WINBOOL WINAPI VerifyScripts (DWORD dwFlags, LPCWSTR lpLocaleScripts, int cchLocaleScripts, LPCWSTR lpTestScripts, int cchTestScripts);
  997. WINBASEAPI int WINAPI GetStringScripts (DWORD dwFlags, LPCWSTR lpString, int cchString, LPWSTR lpScripts, int cchScripts);
  998. WINBASEAPI int WINAPI GetLocaleInfoEx (LPCWSTR lpLocaleName, LCTYPE LCType, LPWSTR lpLCData, int cchData);
  999. WINBASEAPI int WINAPI GetCalendarInfoEx (LPCWSTR lpLocaleName, CALID Calendar, LPCWSTR lpReserved, CALTYPE CalType, LPWSTR lpCalData, int cchData, LPDWORD lpValue);
  1000. WINBASEAPI int WINAPI GetDurationFormatEx (LPCWSTR lpLocaleName, DWORD dwFlags, CONST SYSTEMTIME *lpDuration, ULONGLONG ullDuration, LPCWSTR lpFormat, LPWSTR lpDurationStr, int cchDuration);
  1001. WINBASEAPI int WINAPI GetNumberFormatEx (LPCWSTR lpLocaleName, DWORD dwFlags, LPCWSTR lpValue, CONST NUMBERFMTW *lpFormat, LPWSTR lpNumberStr, int cchNumber);
  1002. WINBASEAPI int WINAPI GetCurrencyFormatEx (LPCWSTR lpLocaleName, DWORD dwFlags, LPCWSTR lpValue, CONST CURRENCYFMTW *lpFormat, LPWSTR lpCurrencyStr, int cchCurrency);
  1003. WINBASEAPI int WINAPI GetUserDefaultLocaleName (LPWSTR lpLocaleName, int cchLocaleName);
  1004. WINBASEAPI int WINAPI GetSystemDefaultLocaleName (LPWSTR lpLocaleName, int cchLocaleName);
  1005. WINBASEAPI WINBOOL WINAPI GetNLSVersionEx (NLS_FUNCTION function, LPCWSTR lpLocaleName, LPNLSVERSIONINFOEX lpVersionInformation);
  1006. WINBASEAPI int WINAPI FindNLSStringEx (LPCWSTR lpLocaleName, DWORD dwFindNLSStringFlags, LPCWSTR lpStringSource, int cchSource, LPCWSTR lpStringValue, int cchValue, LPINT pcchFound, LPNLSVERSIONINFO lpVersionInformation, LPVOID lpReserved, LPARAM sortHandle);
  1007. WINBASEAPI int WINAPI LCMapStringEx (LPCWSTR lpLocaleName, DWORD dwMapFlags, LPCWSTR lpSrcStr, int cchSrc, LPWSTR lpDestStr, int cchDest, LPNLSVERSIONINFO lpVersionInformation, LPVOID lpReserved, LPARAM sortHandle);
  1008. WINBASEAPI WINBOOL WINAPI IsValidLocaleName (LPCWSTR lpLocaleName);
  1009. WINBASEAPI WINBOOL WINAPI EnumCalendarInfoExEx (CALINFO_ENUMPROCEXEX pCalInfoEnumProcExEx, LPCWSTR lpLocaleName, CALID Calendar, LPCWSTR lpReserved, CALTYPE CalType, LPARAM lParam);
  1010. WINBASEAPI WINBOOL WINAPI EnumDateFormatsExEx (DATEFMT_ENUMPROCEXEX lpDateFmtEnumProcExEx, LPCWSTR lpLocaleName, DWORD dwFlags, LPARAM lParam);
  1011. WINBASEAPI WINBOOL WINAPI EnumTimeFormatsEx (TIMEFMT_ENUMPROCEX lpTimeFmtEnumProcEx, LPCWSTR lpLocaleName, DWORD dwFlags, LPARAM lParam);
  1012. WINBASEAPI WINBOOL WINAPI EnumSystemLocalesEx (LOCALE_ENUMPROCEX lpLocaleEnumProcEx, DWORD dwFlags, LPARAM lParam, LPVOID lpReserved);
  1013. #endif
  1014. #if WINVER >= 0x0601
  1015. WINBASEAPI int WINAPI ResolveLocaleName (LPCWSTR lpNameToResolve, LPWSTR lpLocaleName, int cchLocaleName);
  1016. #endif
  1017. #if WINVER >= 0x0602
  1018. WINBASEAPI DWORD WINAPI IsValidNLSVersion (NLS_FUNCTION function, LPCWSTR lpLocaleName, LPNLSVERSIONINFOEX lpVersionInformation);
  1019. #endif
  1020. #endif
  1021. #endif
  1022. #ifdef __cplusplus
  1023. }
  1024. #endif
  1025. #endif