home *** CD-ROM | disk | FTP | other *** search
/ Beginning C++ Through Gam…rogramming (2nd Edition) / BCGP2E.ISO / bloodshed / devcpp-4.9.9.2_setup.exe / winnls.h < prev    next >
C/C++ Source or Header  |  2005-01-29  |  24KB  |  714 lines

  1. #ifndef _WINNLS_H
  2. #define _WINNLS_H
  3. #if __GNUC__ >= 3
  4. #pragma GCC system_header
  5. #endif
  6.  
  7. #ifndef WINBASEAPI
  8. #ifdef __W32API_USE_DLLIMPORT__
  9. #define WINBASEAPI DECLSPEC_IMPORT
  10. #else
  11. #define WINBASEAPI
  12. #endif
  13. #endif
  14.  
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18.  
  19. #define MAX_LEADBYTES     12
  20. #define MAX_DEFAULTCHAR    2
  21. #define LOCALE_NOUSEROVERRIDE    0x80000000
  22. #define LOCALE_USE_CP_ACP    0x40000000
  23. #if (WINVER >= 0x0400)
  24. #define LOCALE_RETURN_NUMBER    0x20000000
  25. #endif
  26. #define LOCALE_ILANGUAGE    1
  27. #define LOCALE_SLANGUAGE    2
  28. #define LOCALE_SENGLANGUAGE    0x1001
  29. #define LOCALE_SABBREVLANGNAME    3
  30. #define LOCALE_SNATIVELANGNAME    4
  31. #define LOCALE_ICOUNTRY    5
  32. #define LOCALE_SCOUNTRY    6
  33. #define LOCALE_SENGCOUNTRY    0x1002
  34. #define LOCALE_SABBREVCTRYNAME    7
  35. #define LOCALE_SNATIVECTRYNAME    8
  36. #define LOCALE_IDEFAULTLANGUAGE    9
  37. #define LOCALE_IDEFAULTCOUNTRY    10
  38. #define LOCALE_IDEFAULTCODEPAGE    11
  39. #define LOCALE_IDEFAULTANSICODEPAGE 0x1004
  40. #define LOCALE_SLIST    12
  41. #define LOCALE_IMEASURE    13
  42. #define LOCALE_SDECIMAL    14
  43. #define LOCALE_STHOUSAND    15
  44. #define LOCALE_SGROUPING    16
  45. #define LOCALE_IDIGITS    17
  46. #define LOCALE_ILZERO    18
  47. #define LOCALE_INEGNUMBER    0x1010
  48. #define LOCALE_SNATIVEDIGITS    19
  49. #define LOCALE_SCURRENCY    20
  50. #define LOCALE_SINTLSYMBOL    21
  51. #define LOCALE_SMONDECIMALSEP    22
  52. #define LOCALE_SMONTHOUSANDSEP    23
  53. #define LOCALE_SMONGROUPING    24
  54. #define LOCALE_ICURRDIGITS    25
  55. #define LOCALE_IINTLCURRDIGITS    26
  56. #define LOCALE_ICURRENCY    27
  57. #define LOCALE_INEGCURR    28
  58. #define LOCALE_SDATE    29
  59. #define LOCALE_STIME    30
  60. #define LOCALE_SSHORTDATE    31
  61. #define LOCALE_SLONGDATE    32
  62. #define LOCALE_STIMEFORMAT    0x1003
  63. #define LOCALE_IDATE    33
  64. #define LOCALE_ILDATE    34
  65. #define LOCALE_ITIME    35
  66. #define LOCALE_ITIMEMARKPOSN    0x1005
  67. #define LOCALE_ICENTURY    36
  68. #define LOCALE_ITLZERO    37
  69. #define LOCALE_IDAYLZERO    38
  70. #define LOCALE_IMONLZERO    39
  71. #define LOCALE_S1159    40
  72. #define LOCALE_S2359    41
  73. #define LOCALE_ICALENDARTYPE    0x1009
  74. #define LOCALE_IOPTIONALCALENDAR    0x100B
  75. #define LOCALE_IFIRSTDAYOFWEEK    0x100C
  76. #define LOCALE_IFIRSTWEEKOFYEAR    0x100D
  77. #define LOCALE_SDAYNAME1    42
  78. #define LOCALE_SDAYNAME2    43
  79. #define LOCALE_SDAYNAME3    44
  80. #define LOCALE_SDAYNAME4    45
  81. #define LOCALE_SDAYNAME5    46
  82. #define LOCALE_SDAYNAME6    47
  83. #define LOCALE_SDAYNAME7    48
  84. #define LOCALE_SABBREVDAYNAME1    49
  85. #define LOCALE_SABBREVDAYNAME2    50
  86. #define LOCALE_SABBREVDAYNAME3    51
  87. #define LOCALE_SABBREVDAYNAME4    52
  88. #define LOCALE_SABBREVDAYNAME5    53
  89. #define LOCALE_SABBREVDAYNAME6    54
  90. #define LOCALE_SABBREVDAYNAME7    55
  91. #define LOCALE_SMONTHNAME1    56
  92. #define LOCALE_SMONTHNAME2    57
  93. #define LOCALE_SMONTHNAME3    58
  94. #define LOCALE_SMONTHNAME4    59
  95. #define LOCALE_SMONTHNAME5    60
  96. #define LOCALE_SMONTHNAME6    61
  97. #define LOCALE_SMONTHNAME7    62
  98. #define LOCALE_SMONTHNAME8    63
  99. #define LOCALE_SMONTHNAME9    64
  100. #define LOCALE_SMONTHNAME10    65
  101. #define LOCALE_SMONTHNAME11    66
  102. #define LOCALE_SMONTHNAME12    67
  103. #define LOCALE_SMONTHNAME13    0x100E
  104. #define LOCALE_SABBREVMONTHNAME1    68
  105. #define LOCALE_SABBREVMONTHNAME2    69
  106. #define LOCALE_SABBREVMONTHNAME3    70
  107. #define LOCALE_SABBREVMONTHNAME4    71
  108. #define LOCALE_SABBREVMONTHNAME5    72
  109. #define LOCALE_SABBREVMONTHNAME6    73
  110. #define LOCALE_SABBREVMONTHNAME7    74
  111. #define LOCALE_SABBREVMONTHNAME8    75
  112. #define LOCALE_SABBREVMONTHNAME9    76
  113. #define LOCALE_SABBREVMONTHNAME10    77
  114. #define LOCALE_SABBREVMONTHNAME11    78
  115. #define LOCALE_SABBREVMONTHNAME12    79
  116. #define LOCALE_SABBREVMONTHNAME13    0x100F
  117. #define LOCALE_SPOSITIVESIGN    80
  118. #define LOCALE_SNEGATIVESIGN    81
  119. #define LOCALE_IPOSSIGNPOSN    82
  120. #define LOCALE_INEGSIGNPOSN    83
  121. #define LOCALE_IPOSSYMPRECEDES    84
  122. #define LOCALE_IPOSSEPBYSPACE    85
  123. #define LOCALE_INEGSYMPRECEDES    86
  124. #define LOCALE_INEGSEPBYSPACE    87
  125. #define LOCALE_FONTSIGNATURE    88
  126. #define LOCALE_SISO639LANGNAME 89
  127. #define LOCALE_SISO3166CTRYNAME 90
  128. #define LOCALE_SYSTEM_DEFAULT    0x800
  129. #define LOCALE_USER_DEFAULT    0x400
  130. #define NORM_IGNORECASE    1
  131. #define NORM_IGNOREKANATYPE    65536
  132. #define NORM_IGNORENONSPACE    2
  133. #define NORM_IGNORESYMBOLS    4
  134. #define NORM_IGNOREWIDTH    131072
  135. #define SORT_STRINGSORT    4096
  136. #define LCMAP_LOWERCASE 0x00000100
  137. #define LCMAP_UPPERCASE 0x00000200
  138. #define LCMAP_SORTKEY 0x00000400
  139. #define LCMAP_BYTEREV 0x00000800
  140. #define LCMAP_HIRAGANA 0x00100000
  141. #define LCMAP_KATAKANA 0x00200000
  142. #define LCMAP_HALFWIDTH 0x00400000
  143. #define LCMAP_FULLWIDTH 0x00800000
  144. #define LCMAP_LINGUISTIC_CASING 0x01000000
  145. #define LCMAP_SIMPLIFIED_CHINESE 0x02000000
  146. #define LCMAP_TRADITIONAL_CHINESE 0x04000000
  147. #define ENUM_ALL_CALENDARS (-1)
  148. #define DATE_SHORTDATE 1
  149. #define DATE_LONGDATE 2
  150. #define DATE_USE_ALT_CALENDAR 4
  151. #define CP_INSTALLED 1
  152. #define CP_SUPPORTED 2
  153. #define LCID_INSTALLED 1
  154. #define LCID_SUPPORTED 2
  155. #define LCID_ALTERNATE_SORTS 4
  156. #define MAP_FOLDCZONE 16
  157. #define MAP_FOLDDIGITS 128
  158. #define MAP_PRECOMPOSED 32
  159. #define MAP_COMPOSITE 64
  160. #define CP_ACP 0
  161. #define CP_OEMCP 1
  162. #define CP_MACCP 2
  163. #define CP_THREAD_ACP 3
  164. #define CP_SYMBOL 42
  165. #define CP_UTF7 65000
  166. #define CP_UTF8 65001
  167. #define CT_CTYPE1 1
  168. #define CT_CTYPE2 2
  169. #define CT_CTYPE3 4
  170. #define C1_UPPER 1
  171. #define C1_LOWER 2
  172. #define C1_DIGIT 4
  173. #define C1_SPACE 8
  174. #define C1_PUNCT 16
  175. #define C1_CNTRL 32
  176. #define C1_BLANK 64
  177. #define C1_XDIGIT 128
  178. #define C1_ALPHA 256
  179. #define C2_LEFTTORIGHT 1
  180. #define C2_RIGHTTOLEFT 2
  181. #define C2_EUROPENUMBER 3
  182. #define C2_EUROPESEPARATOR 4
  183. #define C2_EUROPETERMINATOR 5
  184. #define C2_ARABICNUMBER 6
  185. #define C2_COMMONSEPARATOR 7
  186. #define C2_BLOCKSEPARATOR 8
  187. #define C2_SEGMENTSEPARATOR 9
  188. #define C2_WHITESPACE 10
  189. #define C2_OTHERNEUTRAL 11
  190. #define C2_NOTAPPLICABLE 0
  191. #define C3_NONSPACING 1
  192. #define C3_DIACRITIC 2
  193. #define C3_VOWELMARK 4
  194. #define C3_SYMBOL 8
  195. #define C3_KATAKANA 16
  196. #define C3_HIRAGANA 32
  197. #define C3_HALFWIDTH 64
  198. #define C3_FULLWIDTH 128
  199. #define C3_IDEOGRAPH 256
  200. #define C3_KASHIDA 512
  201. #define C3_LEXICAL 1024
  202. #define C3_ALPHA 32768
  203. #define C3_NOTAPPLICABLE 0
  204. #define TIME_NOMINUTESORSECONDS 1
  205. #define TIME_NOSECONDS 2
  206. #define TIME_NOTIMEMARKER 4
  207. #define TIME_FORCE24HOURFORMAT 8
  208. #define MB_PRECOMPOSED 1
  209. #define MB_COMPOSITE 2
  210. #define MB_ERR_INVALID_CHARS 8
  211. #define MB_USEGLYPHCHARS 4
  212. #define WC_COMPOSITECHECK 512
  213. #define WC_DISCARDNS 16
  214. #define WC_SEPCHARS 32
  215. #define WC_DEFAULTCHAR 64
  216. #define CTRY_DEFAULT 0
  217. #define CTRY_ALBANIA 355
  218. #define CTRY_ALGERIA 213
  219. #define CTRY_ARGENTINA 54
  220. #define CTRY_ARMENIA 374
  221. #define CTRY_AUSTRALIA 61
  222. #define CTRY_AUSTRIA 43
  223. #define CTRY_AZERBAIJAN 994
  224. #define CTRY_BAHRAIN 973
  225. #define CTRY_BELARUS 375
  226. #define CTRY_BELGIUM 32
  227. #define CTRY_BELIZE 501
  228. #define CTRY_BOLIVIA 591
  229. #define CTRY_BRAZIL 55
  230. #define CTRY_BRUNEI_DARUSSALAM 673
  231. #define CTRY_BULGARIA 359
  232. #define CTRY_CANADA 2
  233. #define CTRY_CARIBBEAN 1
  234. #define CTRY_CHILE 56
  235. #define CTRY_COLOMBIA 57
  236. #define CTRY_COSTA_RICA 506
  237. #define CTRY_CROATIA 385
  238. #define CTRY_CZECH 420
  239. #define CTRY_DENMARK 45
  240. #define CTRY_DOMINICAN_REPUBLIC 1
  241. #define CTRY_ECUADOR 593
  242. #define CTRY_EGYPT 20
  243. #define CTRY_EL_SALVADOR 503
  244. #define CTRY_ESTONIA 372
  245. #define CTRY_FAEROE_ISLANDS 298
  246. #define CTRY_FINLAND 358
  247. #define CTRY_FRANCE 33
  248. #define CTRY_GEORGIA 995
  249. #define CTRY_GERMANY 49
  250. #define CTRY_GREECE 30
  251. #define CTRY_GUATEMALA 502
  252. #define CTRY_HONDURAS 504
  253. #define CTRY_HONG_KONG 852
  254. #define CTRY_HUNGARY 36
  255. #define CTRY_ICELAND 354
  256. #define CTRY_INDIA 91
  257. #define CTRY_INDONESIA 62
  258. #define CTRY_IRAN 981
  259. #define CTRY_IRAQ 964
  260. #define CTRY_IRELAND 353
  261. #define CTRY_ISRAEL 972
  262. #define CTRY_ITALY 39
  263. #define CTRY_JAMAICA 1
  264. #define CTRY_JAPAN 81
  265. #define CTRY_JORDAN 962
  266. #define CTRY_KAZAKSTAN 7
  267. #define CTRY_KENYA 254
  268. #define CTRY_KUWAIT 965
  269. #define CTRY_KYRGYZSTAN 996
  270. #define CTRY_LATVIA 371
  271. #define CTRY_LEBANON 961
  272. #define CTRY_LIBYA 218
  273. #define CTRY_LIECHTENSTEIN 41
  274. #define CTRY_LITHUANIA 370
  275. #define CTRY_LUXEMBOURG 352
  276. #define CTRY_MACAU 853
  277. #define CTRY_MACEDONIA 389
  278. #define CTRY_MALAYSIA 60
  279. #define CTRY_MALDIVES 960
  280. #define CTRY_MEXICO 52
  281. #define CTRY_MONACO 33
  282. #define CTRY_MONGOLIA 976
  283. #define CTRY_MOROCCO 212
  284. #define CTRY_NETHERLANDS 31
  285. #define CTRY_NEW_ZEALAND 64
  286. #define CTRY_NICARAGUA 505
  287. #define CTRY_NORWAY 47
  288. #define CTRY_OMAN 968
  289. #define CTRY_PAKISTAN 92
  290. #define CTRY_PANAMA 507
  291. #define CTRY_PARAGUAY 595
  292. #define CTRY_PERU 51
  293. #define CTRY_PHILIPPINES 63
  294. #define CTRY_POLAND 48
  295. #define CTRY_PORTUGAL 351
  296. #define CTRY_PRCHINA 86
  297. #define CTRY_PUERTO_RICO 1
  298. #define CTRY_QATAR 974
  299. #define CTRY_ROMANIA 40
  300. #define CTRY_RUSSIA 7
  301. #define CTRY_SAUDI_ARABIA 966
  302. #define CTRY_SERBIA 381
  303. #define CTRY_SINGAPORE 65
  304. #define CTRY_SLOVAK 421
  305. #define CTRY_SLOVENIA 386
  306. #define CTRY_SOUTH_AFRICA 27
  307. #define CTRY_SOUTH_KOREA 82
  308. #define CTRY_SPAIN 34
  309. #define CTRY_SWEDEN 46
  310. #define CTRY_SWITZERLAND 41
  311. #define CTRY_SYRIA 963
  312. #define CTRY_TAIWAN 886
  313. #define CTRY_TATARSTAN 7
  314. #define CTRY_THAILAND 66
  315. #define CTRY_TRINIDAD_Y_TOBAGO 1
  316. #define CTRY_TUNISIA 216
  317. #define CTRY_TURKEY 90
  318. #define CTRY_UAE 971
  319. #define CTRY_UKRAINE 380
  320. #define CTRY_UNITED_KINGDOM 44
  321. #define CTRY_UNITED_STATES 1
  322. #define CTRY_URUGUAY 598
  323. #define CTRY_UZBEKISTAN 7
  324. #define CTRY_VENEZUELA 58
  325. #define CTRY_VIET_NAM 84
  326. #define CTRY_YEMEN 967
  327. #define CTRY_ZIMBABWE 263
  328. #define CAL_ICALINTVALUE 1
  329. #define CAL_SCALNAME 2
  330. #define CAL_IYEAROFFSETRANGE 3
  331. #define CAL_SERASTRING 4
  332. #define CAL_SSHORTDATE 5
  333. #define CAL_SLONGDATE 6
  334. #define CAL_SDAYNAME1 7
  335. #define CAL_SDAYNAME2 8
  336. #define CAL_SDAYNAME3 9
  337. #define CAL_SDAYNAME4 10
  338. #define CAL_SDAYNAME5 11
  339. #define CAL_SDAYNAME6 12
  340. #define CAL_SDAYNAME7 13
  341. #define CAL_SABBREVDAYNAME1 14
  342. #define CAL_SABBREVDAYNAME2 15
  343. #define CAL_SABBREVDAYNAME3 16
  344. #define CAL_SABBREVDAYNAME4 17
  345. #define CAL_SABBREVDAYNAME5 18
  346. #define CAL_SABBREVDAYNAME6 19
  347. #define CAL_SABBREVDAYNAME7 20
  348. #define CAL_SMONTHNAME1 21
  349. #define CAL_SMONTHNAME2 22
  350. #define CAL_SMONTHNAME3 23
  351. #define CAL_SMONTHNAME4 24
  352. #define CAL_SMONTHNAME5 25
  353. #define CAL_SMONTHNAME6 26
  354. #define CAL_SMONTHNAME7 27
  355. #define CAL_SMONTHNAME8 28
  356. #define CAL_SMONTHNAME9 29
  357. #define CAL_SMONTHNAME10 30
  358. #define CAL_SMONTHNAME11 31
  359. #define CAL_SMONTHNAME12 32
  360. #define CAL_SMONTHNAME13 33
  361. #define CAL_SABBREVMONTHNAME1 34
  362. #define CAL_SABBREVMONTHNAME2 35
  363. #define CAL_SABBREVMONTHNAME3 36
  364. #define CAL_SABBREVMONTHNAME4 37
  365. #define CAL_SABBREVMONTHNAME5 38
  366. #define CAL_SABBREVMONTHNAME6 39
  367. #define CAL_SABBREVMONTHNAME7 40
  368. #define CAL_SABBREVMONTHNAME8 41
  369. #define CAL_SABBREVMONTHNAME9 42
  370. #define CAL_SABBREVMONTHNAME10 43
  371. #define CAL_SABBREVMONTHNAME11 44
  372. #define CAL_SABBREVMONTHNAME12 45
  373. #define CAL_SABBREVMONTHNAME13 46
  374. #define CAL_GREGORIAN 1
  375. #define CAL_GREGORIAN_US 2
  376. #define CAL_JAPAN 3
  377. #define CAL_TAIWAN 4
  378. #define CAL_KOREA 5
  379. #define CAL_HIJRI 6
  380. #define CAL_THAI 7
  381. #define CAL_HEBREW 8
  382. #define CAL_GREGORIAN_ME_FRENCH 9
  383. #define CAL_GREGORIAN_ARABIC 10
  384. #define CAL_GREGORIAN_XLIT_ENGLISH 11
  385. #define CAL_GREGORIAN_XLIT_FRENCH 12
  386. #define CSTR_LESS_THAN 1
  387. #define CSTR_EQUAL 2
  388. #define CSTR_GREATER_THAN 3
  389. #define LGRPID_INSTALLED 1
  390. #define LGRPID_SUPPORTED 2
  391. #define LGRPID_WESTERN_EUROPE 1
  392. #define LGRPID_CENTRAL_EUROPE 2
  393. #define LGRPID_BALTIC 3
  394. #define LGRPID_GREEK 4
  395. #define LGRPID_CYRILLIC 5
  396. #define LGRPID_TURKISH 6
  397. #define LGRPID_JAPANESE 7
  398. #define LGRPID_KOREAN 8
  399. #define LGRPID_TRADITIONAL_CHINESE 9
  400. #define LGRPID_SIMPLIFIED_CHINESE 10
  401. #define LGRPID_THAI 11
  402. #define LGRPID_HEBREW 12
  403. #define LGRPID_ARABIC 13
  404. #define LGRPID_VIETNAMESE 14
  405. #define LGRPID_INDIC 15
  406. #define LGRPID_GEORGIAN 16
  407. #define LGRPID_ARMENIAN 17
  408.  
  409. #if (WINVER >= 0x0500)
  410. #define LOCALE_SYEARMONTH 0x1006
  411. #define LOCALE_SENGCURRNAME 0x1007
  412. #define LOCALE_SNATIVECURRNAME 0x1008
  413. #define LOCALE_IDEFAULTEBCDICCODEPAGE 0x1012
  414. #define LOCALE_SSORTNAME 0x1013
  415. #define LOCALE_IDIGITSUBSTITUTION 0x1014
  416. #define LOCALE_IPAPERSIZE 0x100A
  417. #define DATE_YEARMONTH 8
  418. #define DATE_LTRREADING 16
  419. #define DATE_RTLREADING 32
  420. #define MAP_EXPAND_LIGATURES   0x2000
  421. #define WC_NO_BEST_FIT_CHARS 1024
  422. #define CAL_SYEARMONTH 47
  423. #define CAL_ITWODIGITYEARMAX 48
  424. #define CAL_NOUSEROVERRIDE LOCALE_NOUSEROVERRIDE
  425. #define CAL_RETURN_NUMBER LOCALE_RETURN_NUMBER
  426. #define CAL_USE_CP_ACP LOCALE_USE_CP_ACP
  427. #endif /* (WINVER >= 0x0500) */
  428. #ifndef  _BASETSD_H
  429. typedef long LONG_PTR;
  430. #endif 
  431.  
  432. #ifndef RC_INVOKED
  433. typedef DWORD LCTYPE;
  434. typedef DWORD CALTYPE;
  435. typedef DWORD CALID;
  436. typedef DWORD LGRPID;
  437. typedef DWORD GEOID;
  438. typedef DWORD GEOTYPE;
  439. typedef DWORD GEOCLASS;
  440. typedef BOOL (CALLBACK *CALINFO_ENUMPROCA)(LPSTR);
  441. typedef BOOL (CALLBACK *CALINFO_ENUMPROCW)(LPWSTR);
  442. typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXA)(LPSTR, CALID);
  443. typedef BOOL (CALLBACK *CALINFO_ENUMPROCEXW)(LPWSTR, CALID);
  444. typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCA)(LGRPID, LPSTR, LPSTR, DWORD, LONG_PTR);
  445. typedef BOOL (CALLBACK *LANGUAGEGROUP_ENUMPROCW)(LGRPID, LPWSTR, LPWSTR, DWORD, LONG_PTR);
  446. typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCA)(LGRPID, LCID, LPSTR, LONG_PTR);
  447. typedef BOOL (CALLBACK *LANGGROUPLOCALE_ENUMPROCW)(LGRPID, LCID, LPWSTR, LONG_PTR);
  448. typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCW)(LPWSTR, LONG_PTR);
  449. typedef BOOL (CALLBACK *UILANGUAGE_ENUMPROCA)(LPSTR, LONG_PTR);
  450. typedef BOOL (CALLBACK *LOCALE_ENUMPROCA)(LPSTR);
  451. typedef BOOL (CALLBACK *LOCALE_ENUMPROCW)(LPWSTR);
  452. typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCA)(LPSTR);
  453. typedef BOOL (CALLBACK *CODEPAGE_ENUMPROCW)(LPWSTR);
  454. typedef BOOL (CALLBACK *DATEFMT_ENUMPROCA)(LPSTR);
  455. typedef BOOL (CALLBACK *DATEFMT_ENUMPROCW)(LPWSTR);
  456. typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXA)(LPSTR, CALID);
  457. typedef BOOL (CALLBACK *DATEFMT_ENUMPROCEXW)(LPWSTR, CALID);
  458. typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCA)(LPSTR);
  459. typedef BOOL (CALLBACK *TIMEFMT_ENUMPROCW)(LPWSTR);
  460. typedef BOOL (CALLBACK *GEO_ENUMPROC)(GEOID);
  461.  
  462. enum NLS_FUNCTION {
  463.     COMPARE_STRING = 0x0001
  464. };
  465. typedef enum NLS_FUNCTION NLS_FUNCTION;
  466. enum SYSGEOCLASS {
  467.     GEOCLASS_NATION = 16,
  468.     GEOCLASS_REGION = 14
  469. };
  470. enum SYSGEOTYPE {
  471.     GEO_NATION            = 0x0001,
  472.     GEO_LATITUDE          = 0x0002,
  473.     GEO_LONGITUDE         = 0x0003,
  474.     GEO_ISO2              = 0x0004,
  475.     GEO_ISO3              = 0x0005,
  476.     GEO_RFC1766           = 0x0006,
  477.     GEO_LCID              = 0x0007,
  478.     GEO_FRIENDLYNAME      = 0x0008,
  479.     GEO_OFFICIALNAME      = 0x0009,
  480.     GEO_TIMEZONES         = 0x000a,
  481.     GEO_OFFICIALLANGUAGES = 0x000a
  482. };
  483.  
  484. typedef struct _cpinfo {
  485.     UINT MaxCharSize;
  486.     BYTE DefaultChar[MAX_DEFAULTCHAR];
  487.     BYTE LeadByte[MAX_LEADBYTES];
  488. } CPINFO,*LPCPINFO;
  489. typedef struct _cpinfoexA {
  490.     UINT MaxCharSize;
  491.     BYTE DefaultChar[MAX_DEFAULTCHAR];
  492.     BYTE LeadByte[MAX_LEADBYTES];
  493.     WCHAR UnicodeDefaultChar;
  494.     UINT CodePage;
  495.     CHAR CodePageName[MAX_PATH];
  496. } CPINFOEXA,*LPCPINFOEXA;
  497. typedef struct _cpinfoexW {
  498.     UINT MaxCharSize;
  499.     BYTE DefaultChar[MAX_DEFAULTCHAR];
  500.     BYTE LeadByte[MAX_LEADBYTES];
  501.     WCHAR UnicodeDefaultChar;
  502.     UINT CodePage;
  503.     WCHAR CodePageName[MAX_PATH];
  504. } CPINFOEXW,*LPCPINFOEXW;
  505. typedef struct _currencyfmtA {
  506.     UINT NumDigits;
  507.     UINT LeadingZero;
  508.     UINT Grouping;
  509.     LPSTR lpDecimalSep;
  510.     LPSTR lpThousandSep;
  511.     UINT NegativeOrder;
  512.     UINT PositiveOrder;
  513.     LPSTR lpCurrencySymbol;
  514. } CURRENCYFMTA,*LPCURRENCYFMTA;
  515. typedef struct _currencyfmtW {
  516.     UINT NumDigits;
  517.     UINT LeadingZero;
  518.     UINT Grouping;
  519.     LPWSTR lpDecimalSep;
  520.     LPWSTR lpThousandSep;
  521.     UINT NegativeOrder;
  522.     UINT PositiveOrder;
  523.     LPWSTR lpCurrencySymbol;
  524. } CURRENCYFMTW,*LPCURRENCYFMTW;
  525. typedef struct nlsversioninfo { 
  526.     DWORD dwNLSVersionInfoSize; 
  527.     DWORD dwNLSVersion; 
  528.     DWORD dwDefinedVersion; 
  529. } NLSVERSIONINFO,*LPNLSVERSIONINFO; 
  530. typedef struct _numberfmtA {
  531.     UINT NumDigits;
  532.     UINT LeadingZero;
  533.     UINT Grouping;
  534.     LPSTR lpDecimalSep;
  535.     LPSTR lpThousandSep;
  536.     UINT NegativeOrder;
  537. } NUMBERFMTA,*LPNUMBERFMTA;
  538. typedef struct _numberfmtW {
  539.     UINT NumDigits;
  540.     UINT LeadingZero;
  541.     UINT Grouping;
  542.     LPWSTR lpDecimalSep;
  543.     LPWSTR lpThousandSep;
  544.     UINT NegativeOrder;
  545. } NUMBERFMTW,*LPNUMBERFMTW;
  546.  
  547. WINBASEAPI int WINAPI CompareStringA(LCID,DWORD,LPCSTR,int,LPCSTR,int);
  548. WINBASEAPI int WINAPI CompareStringW(LCID,DWORD,LPCWSTR,int,LPCWSTR,int);
  549. WINBASEAPI LCID WINAPI ConvertDefaultLocale(LCID);
  550. WINBASEAPI BOOL WINAPI EnumCalendarInfoA(CALINFO_ENUMPROCA,LCID,CALID,CALTYPE);
  551. WINBASEAPI BOOL WINAPI EnumCalendarInfoW(CALINFO_ENUMPROCW,LCID,CALID,CALTYPE);
  552. WINBASEAPI BOOL WINAPI EnumDateFormatsA(DATEFMT_ENUMPROCA,LCID,DWORD);
  553. WINBASEAPI BOOL WINAPI EnumDateFormatsW(DATEFMT_ENUMPROCW,LCID,DWORD);
  554. WINBASEAPI BOOL WINAPI EnumSystemCodePagesA(CODEPAGE_ENUMPROCA,DWORD);
  555. WINBASEAPI BOOL WINAPI EnumSystemCodePagesW(CODEPAGE_ENUMPROCW,DWORD);
  556. WINBASEAPI BOOL WINAPI EnumSystemGeoID(GEOCLASS,GEOID,GEO_ENUMPROC);
  557. WINBASEAPI BOOL WINAPI EnumSystemLocalesA(LOCALE_ENUMPROCA,DWORD);
  558. WINBASEAPI BOOL WINAPI EnumSystemLocalesW(LOCALE_ENUMPROCW,DWORD);
  559. WINBASEAPI BOOL WINAPI EnumTimeFormatsA(TIMEFMT_ENUMPROCA,LCID,DWORD);
  560. WINBASEAPI BOOL WINAPI EnumTimeFormatsW(TIMEFMT_ENUMPROCW,LCID,DWORD);
  561. WINBASEAPI int WINAPI FoldStringA(DWORD,LPCSTR,int,LPSTR,int);
  562. WINBASEAPI int WINAPI FoldStringW(DWORD,LPCWSTR,int,LPWSTR,int);
  563. WINBASEAPI UINT WINAPI GetACP(void);
  564. WINBASEAPI int WINAPI GetCalendarInfoA(LCID,CALID,CALTYPE,LPSTR,int,LPDWORD);
  565. WINBASEAPI int WINAPI GetCalendarInfoW(LCID,CALID,CALTYPE,LPWSTR,int,LPDWORD);
  566. WINBASEAPI BOOL WINAPI GetCPInfo(UINT,LPCPINFO);
  567. WINBASEAPI BOOL WINAPI GetCPInfoExA(UINT,DWORD,LPCPINFOEXA);
  568. WINBASEAPI BOOL WINAPI GetCPInfoExW(UINT,DWORD,LPCPINFOEXW);
  569. WINBASEAPI int WINAPI GetCurrencyFormatA(LCID,DWORD,LPCSTR,const CURRENCYFMTA*,LPSTR,int);
  570. WINBASEAPI int WINAPI GetCurrencyFormatW(LCID,DWORD,LPCWSTR,const CURRENCYFMTW*,LPWSTR,int);
  571. WINBASEAPI int WINAPI GetDateFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
  572. WINBASEAPI int WINAPI GetDateFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
  573. WINBASEAPI int WINAPI GetGeoInfoA(GEOID,GEOTYPE,LPSTR,int,LANGID);
  574. WINBASEAPI int WINAPI GetGeoInfoW(GEOID,GEOTYPE,LPWSTR,int,LANGID);
  575. WINBASEAPI int WINAPI GetLocaleInfoA(LCID,LCTYPE,LPSTR,int);
  576. WINBASEAPI int WINAPI GetLocaleInfoW(LCID,LCTYPE,LPWSTR,int);
  577. WINBASEAPI BOOL WINAPI GetNLSVersion(NLS_FUNCTION,LCID,LPNLSVERSIONINFO);
  578. WINBASEAPI int WINAPI GetNumberFormatA(LCID,DWORD,LPCSTR,const NUMBERFMTA*,LPSTR,int);
  579. WINBASEAPI int WINAPI GetNumberFormatW(LCID,DWORD,LPCWSTR,const NUMBERFMTW*,LPWSTR,int);
  580. WINBASEAPI UINT WINAPI GetOEMCP(void);
  581. WINBASEAPI BOOL WINAPI GetStringTypeA(LCID,DWORD,LPCSTR,int,LPWORD);
  582. WINBASEAPI BOOL WINAPI GetStringTypeW(DWORD,LPCWSTR,int,LPWORD);
  583. WINBASEAPI BOOL WINAPI GetStringTypeExA(LCID,DWORD,LPCSTR,int,LPWORD);
  584. WINBASEAPI BOOL WINAPI GetStringTypeExW(LCID,DWORD,LPCWSTR,int,LPWORD);
  585. WINBASEAPI LANGID WINAPI GetSystemDefaultLangID(void);
  586. WINBASEAPI LCID WINAPI GetSystemDefaultLCID(void);
  587. WINBASEAPI LCID WINAPI GetThreadLocale(void);
  588. WINBASEAPI int WINAPI GetTimeFormatA(LCID,DWORD,const SYSTEMTIME*,LPCSTR,LPSTR,int);
  589. WINBASEAPI int WINAPI GetTimeFormatW(LCID,DWORD,const SYSTEMTIME*,LPCWSTR,LPWSTR,int);
  590. WINBASEAPI LANGID WINAPI GetUserDefaultLangID(void);
  591. WINBASEAPI LCID WINAPI GetUserDefaultLCID(void);
  592. WINBASEAPI GEOID WINAPI GetUserGeoID(GEOCLASS);
  593. WINBASEAPI BOOL WINAPI IsDBCSLeadByte(BYTE);
  594. WINBASEAPI BOOL WINAPI IsDBCSLeadByteEx(UINT,BYTE);
  595. WINBASEAPI BOOL WINAPI IsNLSDefinedString(NLS_FUNCTION,DWORD,LPNLSVERSIONINFO,LPCWSTR,int);
  596. WINBASEAPI BOOL WINAPI IsValidCodePage(UINT);
  597. WINBASEAPI BOOL WINAPI IsValidLocale(LCID,DWORD);
  598. WINBASEAPI int WINAPI LCMapStringA(LCID,DWORD,LPCSTR,int,LPSTR,int);
  599. WINBASEAPI int WINAPI LCMapStringW(LCID,DWORD,LPCWSTR,int,LPWSTR,int);
  600. WINBASEAPI int WINAPI MultiByteToWideChar(UINT,DWORD,LPCSTR,int,LPWSTR,int);
  601. WINBASEAPI int WINAPI SetCalendarInfoA(LCID,CALID,CALTYPE,LPCSTR);
  602. WINBASEAPI int WINAPI SetCalendarInfoW(LCID,CALID,CALTYPE,LPCWSTR);
  603. WINBASEAPI BOOL WINAPI SetLocaleInfoA(LCID,LCTYPE,LPCSTR);
  604. WINBASEAPI BOOL WINAPI SetLocaleInfoW(LCID,LCTYPE,LPCWSTR);
  605. WINBASEAPI BOOL WINAPI SetThreadLocale(LCID);
  606. WINBASEAPI BOOL WINAPI SetUserGeoID(GEOID);
  607. WINBASEAPI int WINAPI WideCharToMultiByte(UINT,DWORD,LPCWSTR,int,LPSTR,int,LPCSTR,LPBOOL);
  608. #if (WINVER >= 0x0500)
  609. WINBASEAPI BOOL WINAPI EnumCalendarInfoExA(CALINFO_ENUMPROCEXA,LCID,CALID,CALTYPE);
  610. WINBASEAPI BOOL WINAPI EnumCalendarInfoExW(CALINFO_ENUMPROCEXW,LCID,CALID,CALTYPE);
  611. WINBASEAPI BOOL WINAPI EnumDateFormatsExA(DATEFMT_ENUMPROCEXA,LCID,DWORD);
  612. WINBASEAPI BOOL WINAPI EnumDateFormatsExW(DATEFMT_ENUMPROCEXW,LCID,DWORD);
  613. WINBASEAPI BOOL WINAPI EnumSystemLanguageGroupsA(LANGUAGEGROUP_ENUMPROCA,DWORD,LONG_PTR);
  614. WINBASEAPI BOOL WINAPI EnumSystemLanguageGroupsW(LANGUAGEGROUP_ENUMPROCW,DWORD,LONG_PTR);
  615. WINBASEAPI BOOL WINAPI EnumLanguageGroupLocalesA(LANGGROUPLOCALE_ENUMPROCA,LGRPID,DWORD,LONG_PTR);
  616. WINBASEAPI BOOL WINAPI EnumLanguageGroupLocalesW(LANGGROUPLOCALE_ENUMPROCW,LGRPID,DWORD,LONG_PTR);
  617. WINBASEAPI BOOL WINAPI EnumUILanguagesA(UILANGUAGE_ENUMPROCA,DWORD,LONG_PTR);
  618. WINBASEAPI BOOL WINAPI EnumUILanguagesW(UILANGUAGE_ENUMPROCW,DWORD,LONG_PTR);
  619. WINBASEAPI LANGID WINAPI GetSystemDefaultUILanguage(void);
  620. WINBASEAPI LANGID WINAPI GetUserDefaultUILanguage(void);
  621. WINBASEAPI BOOL WINAPI IsValidLanguageGroup(LGRPID,DWORD);
  622. #endif /* (WINVER >= 0x0500) */
  623.  
  624. #ifdef UNICODE
  625. #define CALINFO_ENUMPROC CALINFO_ENUMPROCW
  626. #define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXW
  627. #define LOCALE_ENUMPROC LOCALE_ENUMPROCW
  628. #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
  629. #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
  630. #define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXW
  631. #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
  632. #define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCW
  633. #define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCW
  634. #define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCW
  635. typedef CPINFOEXW CPINFOEX;
  636. typedef LPCPINFOEXW LPCPINFOEX;
  637. typedef CURRENCYFMTW CURRENCYFMT;
  638. typedef LPCURRENCYFMTW LPCURRENCYFMT;
  639. typedef NUMBERFMTW NUMBERFMT;
  640. typedef LPNUMBERFMTW LPNUMBERFMT;
  641. #define CompareString CompareStringW
  642. #define EnumCalendarInfo EnumCalendarInfoW
  643. #define EnumSystemCodePages EnumSystemCodePagesW
  644. #define EnumSystemLocales EnumSystemLocalesW
  645. #define EnumTimeFormats EnumTimeFormatsW
  646. #define FoldString FoldStringW
  647. #define GetCalendarInfo GetCalendarInfoW
  648. #define GetCPInfoEx GetCPInfoExW
  649. #define GetCurrencyFormat GetCurrencyFormatW
  650. #define GetDateFormat GetDateFormatW
  651. #define GetGeoInfo GetGeoInfoW
  652. #define GetLocaleInfo GetLocaleInfoW
  653. #define GetNumberFormat GetNumberFormatW
  654. #define GetStringTypeEx GetStringTypeExW
  655. #define GetTimeFormat GetTimeFormatW
  656. #define LCMapString LCMapStringW
  657. #define SetCalendarInfo  SetCalendarInfoW
  658. #define SetLocaleInfo SetLocaleInfoW
  659. #if (WINVER >= 0x0500)
  660. #define EnumCalendarInfoEx EnumCalendarInfoExW;
  661. #define EnumDateFormatsEx EnumDateFormatsExW;
  662. #define EnumSystemLanguageGroups EnumSystemLanguageGroupsW;
  663. #define EnumLanguageGroupLocales EnumLanguageGroupLocalesW;
  664. #define EnumUILanguages EnumUILanguagesW;
  665. #endif /* (WINVER >= 0x0500) */
  666. #else
  667. #define CALINFO_ENUMPROC CALINFO_ENUMPROCA
  668. #define CALINFO_ENUMPROCEX CALINFO_ENUMPROCEXA
  669. #define LOCALE_ENUMPROC LOCALE_ENUMPROCA
  670. #define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
  671. #define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
  672. #define DATEFMT_ENUMPROCEX DATEFMT_ENUMPROCEXA
  673. #define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
  674. #define LANGUAGEGROUP_ENUMPROC LANGUAGEGROUP_ENUMPROCA
  675. #define LANGGROUPLOCALE_ENUMPROC LANGGROUPLOCALE_ENUMPROCA
  676. #define UILANGUAGE_ENUMPROC UILANGUAGE_ENUMPROCA
  677. typedef CPINFOEXA CPINFOEX;
  678. typedef LPCPINFOEXA LPCPINFOEX;
  679. typedef CURRENCYFMTA CURRENCYFMT;
  680. typedef LPCURRENCYFMTA LPCURRENCYFMT;
  681. typedef NUMBERFMTA NUMBERFMT;
  682. typedef LPNUMBERFMTA LPNUMBERFMT;
  683. #define CompareString CompareStringA
  684. #define EnumCalendarInfo EnumCalendarInfoA
  685. #define EnumSystemCodePages EnumSystemCodePagesA
  686. #define EnumSystemLocales EnumSystemLocalesA
  687. #define EnumTimeFormats EnumTimeFormatsA
  688. #define FoldString FoldStringA
  689. #define GetCalendarInfo GetCalendarInfoA
  690. #define GetCPInfoEx GetCPInfoExA
  691. #define GetCurrencyFormat GetCurrencyFormatA
  692. #define GetDateFormat GetDateFormatA
  693. #define GetGeoInfo GetGeoInfoA
  694. #define GetLocaleInfo GetLocaleInfoA
  695. #define GetNumberFormat GetNumberFormatA
  696. #define GetStringTypeEx GetStringTypeExA
  697. #define GetTimeFormat GetTimeFormatA
  698. #define LCMapString LCMapStringA
  699. #define SetCalendarInfo SetCalendarInfoA
  700. #define SetLocaleInfo SetLocaleInfoA
  701. #if (WINVER >= 0x0500)
  702. #define EnumCalendarInfoEx EnumCalendarInfoExA;
  703. #define EnumDateFormatsEx EnumDateFormatsExA;
  704. #define EnumSystemLanguageGroups EnumSystemLanguageGroupsA;
  705. #define EnumLanguageGroupLocales EnumLanguageGroupLocalesA;
  706. #define EnumUILanguages EnumUILanguagesA;
  707. #endif /* (WINVER >= 0x0500) */
  708. #endif /* UNICODE */
  709. #endif /* RC_INVOKED */
  710. #ifdef __cplusplus
  711. }
  712. #endif
  713. #endif
  714.