Hex Artifact Content

Not logged in

Artifact 7ac912f533a7599689d9463000c71064fa6fcc0c:


0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  /***************
0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0a 2a 20 20 20 20 20  ********\.*     
0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0060: 20 20 20 20 20 20 20 20 20 20 20 77 69 6e 6e 6c             winnl
0070: 73 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20  s.d             
0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0090: 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20    *.*           
00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00d0: 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20              *.* 
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50        Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20  I header module 
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20        *.*       
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  *.*             
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66      Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77  rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20  s headers       
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20            *.*   
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01d0: 20 20 20 20 20 20 20 20 62 79 20 53 74 65 77 61          by Stewa
01e0: 72 74 20 47 6f 72 64 6f 6e 20 20 20 20 20 20 20  rt Gordon       
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20      *.*         
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a                *.
0250: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  *               
0260: 20 20 20 20 20 20 20 20 50 6c 61 63 65 64 20 69          Placed i
0270: 6e 74 6f 20 70 75 62 6c 69 63 20 64 6f 6d 61 69  nto public domai
0280: 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  n               
0290: 20 20 20 20 20 20 20 20 2a 0a 5c 2a 2a 2a 2a 2a          *.\*****
02a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02e0: 2a 2a 2f 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32  **/.module win32
02f0: 2e 77 69 6e 6e 6c 73 3b 0a 70 72 61 67 6d 61 28  .winnls;.pragma(
0300: 6c 69 62 2c 20 22 6b 65 72 6e 65 6c 33 32 2e 6c  lib, "kernel32.l
0310: 69 62 22 29 3b 0a 0a 70 72 69 76 61 74 65 20 69  ib");..private i
0320: 6d 70 6f 72 74 20 77 69 6e 33 32 2e 62 61 73 65  mport win32.base
0330: 74 73 64 2c 20 77 69 6e 33 32 2e 77 33 32 61 70  tsd, win32.w32ap
0340: 69 2c 20 77 69 6e 33 32 2e 77 69 6e 62 61 73 65  i, win32.winbase
0350: 2c 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 3b 0a  , win32.windef;.
0360: 0a 61 6c 69 61 73 20 44 57 4f 52 44 20 4c 43 54  .alias DWORD LCT
0370: 59 50 45 2c 20 43 41 4c 54 59 50 45 2c 20 43 41  YPE, CALTYPE, CA
0380: 4c 49 44 2c 20 4c 47 52 50 49 44 2c 20 47 45 4f  LID, LGRPID, GEO
0390: 49 44 2c 20 47 45 4f 54 59 50 45 2c 20 47 45 4f  ID, GEOTYPE, GEO
03a0: 43 4c 41 53 53 3b 0a 0a 63 6f 6e 73 74 20 73 69  CLASS;..const si
03b0: 7a 65 5f 74 0a 09 4d 41 58 5f 44 45 46 41 55 4c  ze_t..MAX_DEFAUL
03c0: 54 43 48 41 52 20 3d 20 20 32 2c 0a 09 4d 41 58  TCHAR =  2,..MAX
03d0: 5f 4c 45 41 44 42 59 54 45 53 20 20 20 3d 20 31  _LEADBYTES   = 1
03e0: 32 3b 0a 0a 63 6f 6e 73 74 20 4c 43 54 59 50 45  2;..const LCTYPE
03f0: 0a 09 4c 4f 43 41 4c 45 5f 55 53 45 5f 43 50 5f  ..LOCALE_USE_CP_
0400: 41 43 50 20 20 20 20 3d 20 30 78 34 30 30 30 30  ACP    = 0x40000
0410: 30 30 30 2c 0a 09 4c 4f 43 41 4c 45 5f 52 45 54  000,..LOCALE_RET
0420: 55 52 4e 5f 4e 55 4d 42 45 52 20 3d 20 30 78 32  URN_NUMBER = 0x2
0430: 30 30 30 30 30 30 30 3b 0a 0a 65 6e 75 6d 20 3a  0000000;..enum :
0440: 20 4c 43 54 59 50 45 20 7b 0a 09 4c 4f 43 41 4c   LCTYPE {..LOCAL
0450: 45 5f 49 4c 41 4e 47 55 41 47 45 20 3d 20 31 2c  E_ILANGUAGE = 1,
0460: 0a 09 4c 4f 43 41 4c 45 5f 53 4c 41 4e 47 55 41  ..LOCALE_SLANGUA
0470: 47 45 2c 0a 09 4c 4f 43 41 4c 45 5f 53 41 42 42  GE,..LOCALE_SABB
0480: 52 45 56 4c 41 4e 47 4e 41 4d 45 2c 0a 09 4c 4f  REVLANGNAME,..LO
0490: 43 41 4c 45 5f 53 4e 41 54 49 56 45 4c 41 4e 47  CALE_SNATIVELANG
04a0: 4e 41 4d 45 2c 0a 09 4c 4f 43 41 4c 45 5f 49 43  NAME,..LOCALE_IC
04b0: 4f 55 4e 54 52 59 2c 0a 09 4c 4f 43 41 4c 45 5f  OUNTRY,..LOCALE_
04c0: 53 43 4f 55 4e 54 52 59 2c 0a 09 4c 4f 43 41 4c  SCOUNTRY,..LOCAL
04d0: 45 5f 53 41 42 42 52 45 56 43 54 52 59 4e 41 4d  E_SABBREVCTRYNAM
04e0: 45 2c 0a 09 4c 4f 43 41 4c 45 5f 53 4e 41 54 49  E,..LOCALE_SNATI
04f0: 56 45 43 54 52 59 4e 41 4d 45 2c 0a 09 4c 4f 43  VECTRYNAME,..LOC
0500: 41 4c 45 5f 49 44 45 46 41 55 4c 54 4c 41 4e 47  ALE_IDEFAULTLANG
0510: 55 41 47 45 2c 0a 09 4c 4f 43 41 4c 45 5f 49 44  UAGE,..LOCALE_ID
0520: 45 46 41 55 4c 54 43 4f 55 4e 54 52 59 2c 0a 09  EFAULTCOUNTRY,..
0530: 4c 4f 43 41 4c 45 5f 49 44 45 46 41 55 4c 54 43  LOCALE_IDEFAULTC
0540: 4f 44 45 50 41 47 45 2c 0a 09 4c 4f 43 41 4c 45  ODEPAGE,..LOCALE
0550: 5f 53 4c 49 53 54 2c 0a 09 4c 4f 43 41 4c 45 5f  _SLIST,..LOCALE_
0560: 49 4d 45 41 53 55 52 45 2c 0a 09 4c 4f 43 41 4c  IMEASURE,..LOCAL
0570: 45 5f 53 44 45 43 49 4d 41 4c 2c 0a 09 4c 4f 43  E_SDECIMAL,..LOC
0580: 41 4c 45 5f 53 54 48 4f 55 53 41 4e 44 2c 0a 09  ALE_STHOUSAND,..
0590: 4c 4f 43 41 4c 45 5f 53 47 52 4f 55 50 49 4e 47  LOCALE_SGROUPING
05a0: 2c 0a 09 4c 4f 43 41 4c 45 5f 49 44 49 47 49 54  ,..LOCALE_IDIGIT
05b0: 53 2c 0a 09 4c 4f 43 41 4c 45 5f 49 4c 5a 45 52  S,..LOCALE_ILZER
05c0: 4f 2c 0a 09 4c 4f 43 41 4c 45 5f 53 4e 41 54 49  O,..LOCALE_SNATI
05d0: 56 45 44 49 47 49 54 53 2c 0a 09 4c 4f 43 41 4c  VEDIGITS,..LOCAL
05e0: 45 5f 53 43 55 52 52 45 4e 43 59 2c 0a 09 4c 4f  E_SCURRENCY,..LO
05f0: 43 41 4c 45 5f 53 49 4e 54 4c 53 59 4d 42 4f 4c  CALE_SINTLSYMBOL
0600: 2c 0a 09 4c 4f 43 41 4c 45 5f 53 4d 4f 4e 44 45  ,..LOCALE_SMONDE
0610: 43 49 4d 41 4c 53 45 50 2c 0a 09 4c 4f 43 41 4c  CIMALSEP,..LOCAL
0620: 45 5f 53 4d 4f 4e 54 48 4f 55 53 41 4e 44 53 45  E_SMONTHOUSANDSE
0630: 50 2c 0a 09 4c 4f 43 41 4c 45 5f 53 4d 4f 4e 47  P,..LOCALE_SMONG
0640: 52 4f 55 50 49 4e 47 2c 0a 09 4c 4f 43 41 4c 45  ROUPING,..LOCALE
0650: 5f 49 43 55 52 52 44 49 47 49 54 53 2c 0a 09 4c  _ICURRDIGITS,..L
0660: 4f 43 41 4c 45 5f 49 49 4e 54 4c 43 55 52 52 44  OCALE_IINTLCURRD
0670: 49 47 49 54 53 2c 0a 09 4c 4f 43 41 4c 45 5f 49  IGITS,..LOCALE_I
0680: 43 55 52 52 45 4e 43 59 2c 0a 09 4c 4f 43 41 4c  CURRENCY,..LOCAL
0690: 45 5f 49 4e 45 47 43 55 52 52 2c 0a 09 4c 4f 43  E_INEGCURR,..LOC
06a0: 41 4c 45 5f 53 44 41 54 45 2c 0a 09 4c 4f 43 41  ALE_SDATE,..LOCA
06b0: 4c 45 5f 53 54 49 4d 45 2c 0a 09 4c 4f 43 41 4c  LE_STIME,..LOCAL
06c0: 45 5f 53 53 48 4f 52 54 44 41 54 45 2c 0a 09 4c  E_SSHORTDATE,..L
06d0: 4f 43 41 4c 45 5f 53 4c 4f 4e 47 44 41 54 45 2c  OCALE_SLONGDATE,
06e0: 0a 09 4c 4f 43 41 4c 45 5f 49 44 41 54 45 2c 0a  ..LOCALE_IDATE,.
06f0: 09 4c 4f 43 41 4c 45 5f 49 4c 44 41 54 45 2c 0a  .LOCALE_ILDATE,.
0700: 09 4c 4f 43 41 4c 45 5f 49 54 49 4d 45 2c 0a 09  .LOCALE_ITIME,..
0710: 4c 4f 43 41 4c 45 5f 49 43 45 4e 54 55 52 59 2c  LOCALE_ICENTURY,
0720: 0a 09 4c 4f 43 41 4c 45 5f 49 54 4c 5a 45 52 4f  ..LOCALE_ITLZERO
0730: 2c 0a 09 4c 4f 43 41 4c 45 5f 49 44 41 59 4c 5a  ,..LOCALE_IDAYLZ
0740: 45 52 4f 2c 0a 09 4c 4f 43 41 4c 45 5f 49 4d 4f  ERO,..LOCALE_IMO
0750: 4e 4c 5a 45 52 4f 2c 0a 09 4c 4f 43 41 4c 45 5f  NLZERO,..LOCALE_
0760: 53 31 31 35 39 2c 0a 09 4c 4f 43 41 4c 45 5f 53  S1159,..LOCALE_S
0770: 32 33 35 39 2c 0a 09 4c 4f 43 41 4c 45 5f 53 44  2359,..LOCALE_SD
0780: 41 59 4e 41 4d 45 31 2c 0a 09 4c 4f 43 41 4c 45  AYNAME1,..LOCALE
0790: 5f 53 44 41 59 4e 41 4d 45 32 2c 0a 09 4c 4f 43  _SDAYNAME2,..LOC
07a0: 41 4c 45 5f 53 44 41 59 4e 41 4d 45 33 2c 0a 09  ALE_SDAYNAME3,..
07b0: 4c 4f 43 41 4c 45 5f 53 44 41 59 4e 41 4d 45 34  LOCALE_SDAYNAME4
07c0: 2c 0a 09 4c 4f 43 41 4c 45 5f 53 44 41 59 4e 41  ,..LOCALE_SDAYNA
07d0: 4d 45 35 2c 0a 09 4c 4f 43 41 4c 45 5f 53 44 41  ME5,..LOCALE_SDA
07e0: 59 4e 41 4d 45 36 2c 0a 09 4c 4f 43 41 4c 45 5f  YNAME6,..LOCALE_
07f0: 53 44 41 59 4e 41 4d 45 37 2c 0a 09 4c 4f 43 41  SDAYNAME7,..LOCA
0800: 4c 45 5f 53 41 42 42 52 45 56 44 41 59 4e 41 4d  LE_SABBREVDAYNAM
0810: 45 31 2c 0a 09 4c 4f 43 41 4c 45 5f 53 41 42 42  E1,..LOCALE_SABB
0820: 52 45 56 44 41 59 4e 41 4d 45 32 2c 0a 09 4c 4f  REVDAYNAME2,..LO
0830: 43 41 4c 45 5f 53 41 42 42 52 45 56 44 41 59 4e  CALE_SABBREVDAYN
0840: 41 4d 45 33 2c 0a 09 4c 4f 43 41 4c 45 5f 53 41  AME3,..LOCALE_SA
0850: 42 42 52 45 56 44 41 59 4e 41 4d 45 34 2c 0a 09  BBREVDAYNAME4,..
0860: 4c 4f 43 41 4c 45 5f 53 41 42 42 52 45 56 44 41  LOCALE_SABBREVDA
0870: 59 4e 41 4d 45 35 2c 0a 09 4c 4f 43 41 4c 45 5f  YNAME5,..LOCALE_
0880: 53 41 42 42 52 45 56 44 41 59 4e 41 4d 45 36 2c  SABBREVDAYNAME6,
0890: 0a 09 4c 4f 43 41 4c 45 5f 53 41 42 42 52 45 56  ..LOCALE_SABBREV
08a0: 44 41 59 4e 41 4d 45 37 2c 0a 09 4c 4f 43 41 4c  DAYNAME7,..LOCAL
08b0: 45 5f 53 4d 4f 4e 54 48 4e 41 4d 45 31 2c 0a 09  E_SMONTHNAME1,..
08c0: 4c 4f 43 41 4c 45 5f 53 4d 4f 4e 54 48 4e 41 4d  LOCALE_SMONTHNAM
08d0: 45 32 2c 0a 09 4c 4f 43 41 4c 45 5f 53 4d 4f 4e  E2,..LOCALE_SMON
08e0: 54 48 4e 41 4d 45 33 2c 0a 09 4c 4f 43 41 4c 45  THNAME3,..LOCALE
08f0: 5f 53 4d 4f 4e 54 48 4e 41 4d 45 34 2c 0a 09 4c  _SMONTHNAME4,..L
0900: 4f 43 41 4c 45 5f 53 4d 4f 4e 54 48 4e 41 4d 45  OCALE_SMONTHNAME
0910: 35 2c 0a 09 4c 4f 43 41 4c 45 5f 53 4d 4f 4e 54  5,..LOCALE_SMONT
0920: 48 4e 41 4d 45 36 2c 0a 09 4c 4f 43 41 4c 45 5f  HNAME6,..LOCALE_
0930: 53 4d 4f 4e 54 48 4e 41 4d 45 37 2c 0a 09 4c 4f  SMONTHNAME7,..LO
0940: 43 41 4c 45 5f 53 4d 4f 4e 54 48 4e 41 4d 45 38  CALE_SMONTHNAME8
0950: 2c 0a 09 4c 4f 43 41 4c 45 5f 53 4d 4f 4e 54 48  ,..LOCALE_SMONTH
0960: 4e 41 4d 45 39 2c 0a 09 4c 4f 43 41 4c 45 5f 53  NAME9,..LOCALE_S
0970: 4d 4f 4e 54 48 4e 41 4d 45 31 30 2c 0a 09 4c 4f  MONTHNAME10,..LO
0980: 43 41 4c 45 5f 53 4d 4f 4e 54 48 4e 41 4d 45 31  CALE_SMONTHNAME1
0990: 31 2c 0a 09 4c 4f 43 41 4c 45 5f 53 4d 4f 4e 54  1,..LOCALE_SMONT
09a0: 48 4e 41 4d 45 31 32 2c 0a 09 4c 4f 43 41 4c 45  HNAME12,..LOCALE
09b0: 5f 53 41 42 42 52 45 56 4d 4f 4e 54 48 4e 41 4d  _SABBREVMONTHNAM
09c0: 45 31 2c 0a 09 4c 4f 43 41 4c 45 5f 53 41 42 42  E1,..LOCALE_SABB
09d0: 52 45 56 4d 4f 4e 54 48 4e 41 4d 45 32 2c 0a 09  REVMONTHNAME2,..
09e0: 4c 4f 43 41 4c 45 5f 53 41 42 42 52 45 56 4d 4f  LOCALE_SABBREVMO
09f0: 4e 54 48 4e 41 4d 45 33 2c 0a 09 4c 4f 43 41 4c  NTHNAME3,..LOCAL
0a00: 45 5f 53 41 42 42 52 45 56 4d 4f 4e 54 48 4e 41  E_SABBREVMONTHNA
0a10: 4d 45 34 2c 0a 09 4c 4f 43 41 4c 45 5f 53 41 42  ME4,..LOCALE_SAB
0a20: 42 52 45 56 4d 4f 4e 54 48 4e 41 4d 45 35 2c 0a  BREVMONTHNAME5,.
0a30: 09 4c 4f 43 41 4c 45 5f 53 41 42 42 52 45 56 4d  .LOCALE_SABBREVM
0a40: 4f 4e 54 48 4e 41 4d 45 36 2c 0a 09 4c 4f 43 41  ONTHNAME6,..LOCA
0a50: 4c 45 5f 53 41 42 42 52 45 56 4d 4f 4e 54 48 4e  LE_SABBREVMONTHN
0a60: 41 4d 45 37 2c 0a 09 4c 4f 43 41 4c 45 5f 53 41  AME7,..LOCALE_SA
0a70: 42 42 52 45 56 4d 4f 4e 54 48 4e 41 4d 45 38 2c  BBREVMONTHNAME8,
0a80: 0a 09 4c 4f 43 41 4c 45 5f 53 41 42 42 52 45 56  ..LOCALE_SABBREV
0a90: 4d 4f 4e 54 48 4e 41 4d 45 39 2c 0a 09 4c 4f 43  MONTHNAME9,..LOC
0aa0: 41 4c 45 5f 53 41 42 42 52 45 56 4d 4f 4e 54 48  ALE_SABBREVMONTH
0ab0: 4e 41 4d 45 31 30 2c 0a 09 4c 4f 43 41 4c 45 5f  NAME10,..LOCALE_
0ac0: 53 41 42 42 52 45 56 4d 4f 4e 54 48 4e 41 4d 45  SABBREVMONTHNAME
0ad0: 31 31 2c 0a 09 4c 4f 43 41 4c 45 5f 53 41 42 42  11,..LOCALE_SABB
0ae0: 52 45 56 4d 4f 4e 54 48 4e 41 4d 45 31 32 2c 0a  REVMONTHNAME12,.
0af0: 09 4c 4f 43 41 4c 45 5f 53 50 4f 53 49 54 49 56  .LOCALE_SPOSITIV
0b00: 45 53 49 47 4e 2c 0a 09 4c 4f 43 41 4c 45 5f 53  ESIGN,..LOCALE_S
0b10: 4e 45 47 41 54 49 56 45 53 49 47 4e 2c 0a 09 4c  NEGATIVESIGN,..L
0b20: 4f 43 41 4c 45 5f 49 50 4f 53 53 49 47 4e 50 4f  OCALE_IPOSSIGNPO
0b30: 53 4e 2c 0a 09 4c 4f 43 41 4c 45 5f 49 4e 45 47  SN,..LOCALE_INEG
0b40: 53 49 47 4e 50 4f 53 4e 2c 0a 09 4c 4f 43 41 4c  SIGNPOSN,..LOCAL
0b50: 45 5f 49 50 4f 53 53 59 4d 50 52 45 43 45 44 45  E_IPOSSYMPRECEDE
0b60: 53 2c 0a 09 4c 4f 43 41 4c 45 5f 49 50 4f 53 53  S,..LOCALE_IPOSS
0b70: 45 50 42 59 53 50 41 43 45 2c 0a 09 4c 4f 43 41  EPBYSPACE,..LOCA
0b80: 4c 45 5f 49 4e 45 47 53 59 4d 50 52 45 43 45 44  LE_INEGSYMPRECED
0b90: 45 53 2c 0a 09 4c 4f 43 41 4c 45 5f 49 4e 45 47  ES,..LOCALE_INEG
0ba0: 53 45 50 42 59 53 50 41 43 45 2c 0a 09 4c 4f 43  SEPBYSPACE,..LOC
0bb0: 41 4c 45 5f 46 4f 4e 54 53 49 47 4e 41 54 55 52  ALE_FONTSIGNATUR
0bc0: 45 2c 0a 09 4c 4f 43 41 4c 45 5f 53 49 53 4f 36  E,..LOCALE_SISO6
0bd0: 33 39 4c 41 4e 47 4e 41 4d 45 2c 0a 09 4c 4f 43  39LANGNAME,..LOC
0be0: 41 4c 45 5f 53 49 53 4f 33 31 36 36 43 54 52 59  ALE_SISO3166CTRY
0bf0: 4e 41 4d 45 2c 20 2f 2f 20 3d 20 39 30 0a 09 4c  NAME, // = 90..L
0c00: 4f 43 41 4c 45 5f 53 45 4e 47 4c 41 4e 47 55 41  OCALE_SENGLANGUA
0c10: 47 45 20 20 20 20 20 20 20 20 20 3d 20 30 78 31  GE         = 0x1
0c20: 30 30 31 2c 0a 09 4c 4f 43 41 4c 45 5f 53 45 4e  001,..LOCALE_SEN
0c30: 47 43 4f 55 4e 54 52 59 20 20 20 20 20 20 20 20  GCOUNTRY        
0c40: 20 20 3d 20 30 78 31 30 30 32 2c 0a 09 4c 4f 43    = 0x1002,..LOC
0c50: 41 4c 45 5f 49 44 45 46 41 55 4c 54 41 4e 53 49  ALE_IDEFAULTANSI
0c60: 43 4f 44 45 50 41 47 45 20 3d 20 30 78 31 30 30  CODEPAGE = 0x100
0c70: 34 2c 0a 09 4c 4f 43 41 4c 45 5f 49 4e 45 47 4e  4,..LOCALE_INEGN
0c80: 55 4d 42 45 52 20 20 20 20 20 20 20 20 20 20 20  UMBER           
0c90: 3d 20 30 78 31 30 31 30 2c 0a 09 4c 4f 43 41 4c  = 0x1010,..LOCAL
0ca0: 45 5f 53 54 49 4d 45 46 4f 52 4d 41 54 20 20 20  E_STIMEFORMAT   
0cb0: 20 20 20 20 20 20 20 3d 20 30 78 31 30 30 33 2c         = 0x1003,
0cc0: 0a 09 4c 4f 43 41 4c 45 5f 49 54 49 4d 45 4d 41  ..LOCALE_ITIMEMA
0cd0: 52 4b 50 4f 53 4e 20 20 20 20 20 20 20 20 3d 20  RKPOSN        = 
0ce0: 30 78 31 30 30 35 2c 0a 09 4c 4f 43 41 4c 45 5f  0x1005,..LOCALE_
0cf0: 49 43 41 4c 45 4e 44 41 52 54 59 50 45 20 20 20  ICALENDARTYPE   
0d00: 20 20 20 20 20 3d 20 30 78 31 30 30 39 2c 0a 09       = 0x1009,..
0d10: 4c 4f 43 41 4c 45 5f 49 4f 50 54 49 4f 4e 41 4c  LOCALE_IOPTIONAL
0d20: 43 41 4c 45 4e 44 41 52 20 20 20 20 3d 20 30 78  CALENDAR    = 0x
0d30: 31 30 30 42 2c 0a 09 4c 4f 43 41 4c 45 5f 49 46  100B,..LOCALE_IF
0d40: 49 52 53 54 44 41 59 4f 46 57 45 45 4b 20 20 20  IRSTDAYOFWEEK   
0d50: 20 20 20 3d 20 30 78 31 30 30 43 2c 0a 09 4c 4f     = 0x100C,..LO
0d60: 43 41 4c 45 5f 49 46 49 52 53 54 57 45 45 4b 4f  CALE_IFIRSTWEEKO
0d70: 46 59 45 41 52 20 20 20 20 20 3d 20 30 78 31 30  FYEAR     = 0x10
0d80: 30 44 2c 0a 09 4c 4f 43 41 4c 45 5f 53 4d 4f 4e  0D,..LOCALE_SMON
0d90: 54 48 4e 41 4d 45 31 33 20 20 20 20 20 20 20 20  THNAME13        
0da0: 20 3d 20 30 78 31 30 30 45 2c 0a 09 4c 4f 43 41   = 0x100E,..LOCA
0db0: 4c 45 5f 53 41 42 42 52 45 56 4d 4f 4e 54 48 4e  LE_SABBREVMONTHN
0dc0: 41 4d 45 31 33 20 20 20 3d 20 30 78 31 30 30 46  AME13   = 0x100F
0dd0: 0a 7d 0a 0a 65 6e 75 6d 20 3a 20 4c 43 49 44 20  .}..enum : LCID 
0de0: 7b 0a 09 4c 4f 43 41 4c 45 5f 55 53 45 52 5f 44  {..LOCALE_USER_D
0df0: 45 46 41 55 4c 54 20 20 20 3d 20 30 78 34 30 30  EFAULT   = 0x400
0e00: 2c 0a 09 4c 4f 43 41 4c 45 5f 53 59 53 54 45 4d  ,..LOCALE_SYSTEM
0e10: 5f 44 45 46 41 55 4c 54 20 3d 20 30 78 38 30 30  _DEFAULT = 0x800
0e20: 0a 7d 0a 0a 63 6f 6e 73 74 20 44 57 4f 52 44 0a  .}..const DWORD.
0e30: 09 4e 4f 52 4d 5f 49 47 4e 4f 52 45 43 41 53 45  .NORM_IGNORECASE
0e40: 20 20 20 20 20 3d 20 20 20 20 20 20 20 31 2c 0a       =       1,.
0e50: 09 4e 4f 52 4d 5f 49 47 4e 4f 52 45 4e 4f 4e 53  .NORM_IGNORENONS
0e60: 50 41 43 45 20 3d 20 20 20 20 20 20 20 32 2c 0a  PACE =       2,.
0e70: 09 4e 4f 52 4d 5f 49 47 4e 4f 52 45 53 59 4d 42  .NORM_IGNORESYMB
0e80: 4f 4c 53 20 20 3d 20 20 20 20 20 20 20 34 2c 0a  OLS  =       4,.
0e90: 09 53 4f 52 54 5f 53 54 52 49 4e 47 53 4f 52 54  .SORT_STRINGSORT
0ea0: 20 20 20 20 20 3d 20 30 78 30 31 30 30 30 2c 0a       = 0x01000,.
0eb0: 09 4e 4f 52 4d 5f 49 47 4e 4f 52 45 4b 41 4e 41  .NORM_IGNOREKANA
0ec0: 54 59 50 45 20 3d 20 30 78 31 30 30 30 30 2c 0a  TYPE = 0x10000,.
0ed0: 09 4e 4f 52 4d 5f 49 47 4e 4f 52 45 57 49 44 54  .NORM_IGNOREWIDT
0ee0: 48 20 20 20 20 3d 20 30 78 32 30 30 30 30 3b 0a  H    = 0x20000;.
0ef0: 0a 63 6f 6e 73 74 20 44 57 4f 52 44 0a 09 4c 43  .const DWORD..LC
0f00: 4d 41 50 5f 4c 4f 57 45 52 43 41 53 45 20 20 20  MAP_LOWERCASE   
0f10: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 30          = 0x0000
0f20: 30 31 30 30 2c 0a 09 4c 43 4d 41 50 5f 55 50 50  0100,..LCMAP_UPP
0f30: 45 52 43 41 53 45 20 20 20 20 20 20 20 20 20 20  ERCASE          
0f40: 20 3d 20 30 78 30 30 30 30 30 32 30 30 2c 0a 09   = 0x00000200,..
0f50: 4c 43 4d 41 50 5f 53 4f 52 54 4b 45 59 20 20 20  LCMAP_SORTKEY   
0f60: 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 30 30            = 0x00
0f70: 30 30 30 34 30 30 2c 0a 09 4c 43 4d 41 50 5f 42  000400,..LCMAP_B
0f80: 59 54 45 52 45 56 20 20 20 20 20 20 20 20 20 20  YTEREV          
0f90: 20 20 20 3d 20 30 78 30 30 30 30 30 38 30 30 2c     = 0x00000800,
0fa0: 0a 09 4c 43 4d 41 50 5f 48 49 52 41 47 41 4e 41  ..LCMAP_HIRAGANA
0fb0: 20 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78              = 0x
0fc0: 30 30 31 30 30 30 30 30 2c 0a 09 4c 43 4d 41 50  00100000,..LCMAP
0fd0: 5f 4b 41 54 41 4b 41 4e 41 20 20 20 20 20 20 20  _KATAKANA       
0fe0: 20 20 20 20 20 3d 20 30 78 30 30 32 30 30 30 30       = 0x0020000
0ff0: 30 2c 0a 09 4c 43 4d 41 50 5f 48 41 4c 46 57 49  0,..LCMAP_HALFWI
1000: 44 54 48 20 20 20 20 20 20 20 20 20 20 20 3d 20  DTH           = 
1010: 30 78 30 30 34 30 30 30 30 30 2c 0a 09 4c 43 4d  0x00400000,..LCM
1020: 41 50 5f 46 55 4c 4c 57 49 44 54 48 20 20 20 20  AP_FULLWIDTH    
1030: 20 20 20 20 20 20 20 3d 20 30 78 30 30 38 30 30         = 0x00800
1040: 30 30 30 2c 0a 09 4c 43 4d 41 50 5f 4c 49 4e 47  000,..LCMAP_LING
1050: 55 49 53 54 49 43 5f 43 41 53 49 4e 47 20 20 20  UISTIC_CASING   
1060: 3d 20 30 78 30 31 30 30 30 30 30 30 2c 0a 09 4c  = 0x01000000,..L
1070: 43 4d 41 50 5f 53 49 4d 50 4c 49 46 49 45 44 5f  CMAP_SIMPLIFIED_
1080: 43 48 49 4e 45 53 45 20 20 3d 20 30 78 30 32 30  CHINESE  = 0x020
1090: 30 30 30 30 30 2c 0a 09 4c 43 4d 41 50 5f 54 52  00000,..LCMAP_TR
10a0: 41 44 49 54 49 4f 4e 41 4c 5f 43 48 49 4e 45 53  ADITIONAL_CHINES
10b0: 45 20 3d 20 30 78 30 34 30 30 30 30 30 30 3b 0a  E = 0x04000000;.
10c0: 0a 63 6f 6e 73 74 20 43 41 4c 49 44 20 45 4e 55  .const CALID ENU
10d0: 4d 5f 41 4c 4c 5f 43 41 4c 45 4e 44 41 52 53 20  M_ALL_CALENDARS 
10e0: 3d 20 2d 31 3b 0a 0a 63 6f 6e 73 74 20 44 57 4f  = -1;..const DWO
10f0: 52 44 0a 09 44 41 54 45 5f 53 48 4f 52 54 44 41  RD..DATE_SHORTDA
1100: 54 45 20 20 20 20 20 20 20 20 3d 20 20 20 20 20  TE        =     
1110: 20 20 20 20 20 31 2c 0a 09 44 41 54 45 5f 4c 4f       1,..DATE_LO
1120: 4e 47 44 41 54 45 20 20 20 20 20 20 20 20 20 3d  NGDATE         =
1130: 20 20 20 20 20 20 20 20 20 20 32 2c 0a 09 44 41            2,..DA
1140: 54 45 5f 55 53 45 5f 41 4c 54 5f 43 41 4c 45 4e  TE_USE_ALT_CALEN
1150: 44 41 52 20 3d 20 20 20 20 20 20 20 20 20 20 34  DAR =          4
1160: 2c 0a 09 4c 4f 43 41 4c 45 5f 4e 4f 55 53 45 52  ,..LOCALE_NOUSER
1170: 4f 56 45 52 52 49 44 45 20 3d 20 30 78 38 30 30  OVERRIDE = 0x800
1180: 30 30 30 30 30 3b 0a 0a 65 6e 75 6d 20 3a 20 44  00000;..enum : D
1190: 57 4f 52 44 20 7b 0a 09 43 50 5f 49 4e 53 54 41  WORD {..CP_INSTA
11a0: 4c 4c 45 44 20 3d 20 31 2c 0a 09 43 50 5f 53 55  LLED = 1,..CP_SU
11b0: 50 50 4f 52 54 45 44 0a 7d 0a 0a 65 6e 75 6d 20  PPORTED.}..enum 
11c0: 3a 20 44 57 4f 52 44 20 7b 0a 09 4c 43 49 44 5f  : DWORD {..LCID_
11d0: 49 4e 53 54 41 4c 4c 45 44 20 20 20 20 20 20 20  INSTALLED       
11e0: 3d 20 31 2c 0a 09 4c 43 49 44 5f 53 55 50 50 4f  = 1,..LCID_SUPPO
11f0: 52 54 45 44 20 20 20 20 20 20 20 3d 20 32 2c 0a  RTED       = 2,.
1200: 09 4c 43 49 44 5f 41 4c 54 45 52 4e 41 54 45 5f  .LCID_ALTERNATE_
1210: 53 4f 52 54 53 20 3d 20 34 0a 7d 0a 0a 63 6f 6e  SORTS = 4.}..con
1220: 73 74 20 44 57 4f 52 44 0a 09 4d 41 50 5f 46 4f  st DWORD..MAP_FO
1230: 4c 44 43 5a 4f 4e 45 20 20 20 3d 20 20 31 36 2c  LDCZONE   =  16,
1240: 0a 09 4d 41 50 5f 50 52 45 43 4f 4d 50 4f 53 45  ..MAP_PRECOMPOSE
1250: 44 20 3d 20 20 33 32 2c 0a 09 4d 41 50 5f 43 4f  D =  32,..MAP_CO
1260: 4d 50 4f 53 49 54 45 20 20 20 3d 20 20 36 34 2c  MPOSITE   =  64,
1270: 0a 09 4d 41 50 5f 46 4f 4c 44 44 49 47 49 54 53  ..MAP_FOLDDIGITS
1280: 20 20 3d 20 31 32 38 3b 0a 0a 65 6e 75 6d 20 3a    = 128;..enum :
1290: 20 55 49 4e 54 20 7b 0a 09 43 50 5f 41 43 50 2c   UINT {..CP_ACP,
12a0: 0a 09 43 50 5f 4f 45 4d 43 50 2c 0a 09 43 50 5f  ..CP_OEMCP,..CP_
12b0: 4d 41 43 43 50 2c 0a 09 43 50 5f 54 48 52 45 41  MACCP,..CP_THREA
12c0: 44 5f 41 43 50 2c 20 2f 2f 20 3d 20 20 20 20 20  D_ACP, // =     
12d0: 33 0a 09 43 50 5f 53 59 4d 42 4f 4c 20 20 20 20  3..CP_SYMBOL    
12e0: 20 20 20 20 20 3d 20 20 20 20 34 32 2c 0a 09 43       =    42,..C
12f0: 50 5f 55 54 46 37 20 20 20 20 20 20 20 20 20 20  P_UTF7          
1300: 20 3d 20 36 35 30 30 30 2c 0a 09 43 50 5f 55 54   = 65000,..CP_UT
1310: 46 38 20 20 20 20 20 20 20 20 20 20 20 3d 20 36  F8           = 6
1320: 35 30 30 31 0a 7d 0a 0a 65 6e 75 6d 20 3a 20 44  5001.}..enum : D
1330: 57 4f 52 44 20 7b 0a 09 43 54 5f 43 54 59 50 45  WORD {..CT_CTYPE
1340: 31 20 3d 20 31 2c 0a 09 43 54 5f 43 54 59 50 45  1 = 1,..CT_CTYPE
1350: 32 20 3d 20 32 2c 0a 09 43 54 5f 43 54 59 50 45  2 = 2,..CT_CTYPE
1360: 33 20 3d 20 34 0a 7d 0a 0a 63 6f 6e 73 74 20 57  3 = 4.}..const W
1370: 4f 52 44 0a 09 43 31 5f 55 50 50 45 52 20 20 3d  ORD..C1_UPPER  =
1380: 20 20 20 31 2c 0a 09 43 31 5f 4c 4f 57 45 52 20     1,..C1_LOWER 
1390: 20 3d 20 20 20 32 2c 0a 09 43 31 5f 44 49 47 49   =   2,..C1_DIGI
13a0: 54 20 20 3d 20 20 20 34 2c 0a 09 43 31 5f 53 50  T  =   4,..C1_SP
13b0: 41 43 45 20 20 3d 20 20 20 38 2c 0a 09 43 31 5f  ACE  =   8,..C1_
13c0: 50 55 4e 43 54 20 20 3d 20 20 31 36 2c 0a 09 43  PUNCT  =  16,..C
13d0: 31 5f 43 4e 54 52 4c 20 20 3d 20 20 33 32 2c 0a  1_CNTRL  =  32,.
13e0: 09 43 31 5f 42 4c 41 4e 4b 20 20 3d 20 20 36 34  .C1_BLANK  =  64
13f0: 2c 0a 09 43 31 5f 58 44 49 47 49 54 20 3d 20 31  ,..C1_XDIGIT = 1
1400: 32 38 2c 0a 09 43 31 5f 41 4c 50 48 41 20 20 3d  28,..C1_ALPHA  =
1410: 20 32 35 36 3b 0a 0a 65 6e 75 6d 20 3a 20 57 4f   256;..enum : WO
1420: 52 44 20 7b 0a 09 43 32 5f 4e 4f 54 41 50 50 4c  RD {..C2_NOTAPPL
1430: 49 43 41 42 4c 45 2c 0a 09 43 32 5f 4c 45 46 54  ICABLE,..C2_LEFT
1440: 54 4f 52 49 47 48 54 2c 0a 09 43 32 5f 52 49 47  TORIGHT,..C2_RIG
1450: 48 54 54 4f 4c 45 46 54 2c 0a 09 43 32 5f 45 55  HTTOLEFT,..C2_EU
1460: 52 4f 50 45 4e 55 4d 42 45 52 2c 0a 09 43 32 5f  ROPENUMBER,..C2_
1470: 45 55 52 4f 50 45 53 45 50 41 52 41 54 4f 52 2c  EUROPESEPARATOR,
1480: 0a 09 43 32 5f 45 55 52 4f 50 45 54 45 52 4d 49  ..C2_EUROPETERMI
1490: 4e 41 54 4f 52 2c 0a 09 43 32 5f 41 52 41 42 49  NATOR,..C2_ARABI
14a0: 43 4e 55 4d 42 45 52 2c 0a 09 43 32 5f 43 4f 4d  CNUMBER,..C2_COM
14b0: 4d 4f 4e 53 45 50 41 52 41 54 4f 52 2c 0a 09 43  MONSEPARATOR,..C
14c0: 32 5f 42 4c 4f 43 4b 53 45 50 41 52 41 54 4f 52  2_BLOCKSEPARATOR
14d0: 2c 0a 09 43 32 5f 53 45 47 4d 45 4e 54 53 45 50  ,..C2_SEGMENTSEP
14e0: 41 52 41 54 4f 52 2c 0a 09 43 32 5f 57 48 49 54  ARATOR,..C2_WHIT
14f0: 45 53 50 41 43 45 2c 0a 09 43 32 5f 4f 54 48 45  ESPACE,..C2_OTHE
1500: 52 4e 45 55 54 52 41 4c 20 20 2f 2f 20 3d 20 31  RNEUTRAL  // = 1
1510: 31 0a 7d 0a 0a 63 6f 6e 73 74 20 57 4f 52 44 0a  1.}..const WORD.
1520: 09 43 33 5f 4e 4f 54 41 50 50 4c 49 43 41 42 4c  .C3_NOTAPPLICABL
1530: 45 20 3d 20 20 20 20 20 20 30 2c 0a 09 43 33 5f  E =      0,..C3_
1540: 4e 4f 4e 53 50 41 43 49 4e 47 20 20 20 20 3d 20  NONSPACING    = 
1550: 20 20 20 20 20 31 2c 0a 09 43 33 5f 44 49 41 43       1,..C3_DIAC
1560: 52 49 54 49 43 20 20 20 20 20 3d 20 20 20 20 20  RITIC     =     
1570: 20 32 2c 0a 09 43 33 5f 56 4f 57 45 4c 4d 41 52   2,..C3_VOWELMAR
1580: 4b 20 20 20 20 20 3d 20 20 20 20 20 20 34 2c 0a  K     =      4,.
1590: 09 43 33 5f 53 59 4d 42 4f 4c 20 20 20 20 20 20  .C3_SYMBOL      
15a0: 20 20 3d 20 20 20 20 20 20 38 2c 0a 09 43 33 5f    =      8,..C3_
15b0: 4b 41 54 41 4b 41 4e 41 20 20 20 20 20 20 3d 20  KATAKANA      = 
15c0: 30 78 30 30 31 30 2c 0a 09 43 33 5f 48 49 52 41  0x0010,..C3_HIRA
15d0: 47 41 4e 41 20 20 20 20 20 20 3d 20 30 78 30 30  GANA      = 0x00
15e0: 32 30 2c 0a 09 43 33 5f 48 41 4c 46 57 49 44 54  20,..C3_HALFWIDT
15f0: 48 20 20 20 20 20 3d 20 30 78 30 30 34 30 2c 0a  H     = 0x0040,.
1600: 09 43 33 5f 46 55 4c 4c 57 49 44 54 48 20 20 20  .C3_FULLWIDTH   
1610: 20 20 3d 20 30 78 30 30 38 30 2c 0a 09 43 33 5f    = 0x0080,..C3_
1620: 49 44 45 4f 47 52 41 50 48 20 20 20 20 20 3d 20  IDEOGRAPH     = 
1630: 30 78 30 31 30 30 2c 0a 09 43 33 5f 4b 41 53 48  0x0100,..C3_KASH
1640: 49 44 41 20 20 20 20 20 20 20 3d 20 30 78 30 32  IDA       = 0x02
1650: 30 30 2c 0a 09 43 33 5f 4c 45 58 49 43 41 4c 20  00,..C3_LEXICAL 
1660: 20 20 20 20 20 20 3d 20 30 78 30 34 30 30 2c 0a        = 0x0400,.
1670: 09 43 33 5f 41 4c 50 48 41 20 20 20 20 20 20 20  .C3_ALPHA       
1680: 20 20 3d 20 30 78 38 30 30 30 3b 0a 0a 63 6f 6e    = 0x8000;..con
1690: 73 74 20 44 57 4f 52 44 0a 09 54 49 4d 45 5f 4e  st DWORD..TIME_N
16a0: 4f 4d 49 4e 55 54 45 53 4f 52 53 45 43 4f 4e 44  OMINUTESORSECOND
16b0: 53 20 3d 20 31 2c 0a 09 54 49 4d 45 5f 4e 4f 53  S = 1,..TIME_NOS
16c0: 45 43 4f 4e 44 53 20 20 20 20 20 20 20 20 20 20  ECONDS          
16d0: 3d 20 32 2c 0a 09 54 49 4d 45 5f 4e 4f 54 49 4d  = 2,..TIME_NOTIM
16e0: 45 4d 41 52 4b 45 52 20 20 20 20 20 20 20 3d 20  EMARKER       = 
16f0: 34 2c 0a 09 54 49 4d 45 5f 46 4f 52 43 45 32 34  4,..TIME_FORCE24
1700: 48 4f 55 52 46 4f 52 4d 41 54 20 20 3d 20 38 3b  HOURFORMAT  = 8;
1710: 0a 0a 63 6f 6e 73 74 20 44 57 4f 52 44 0a 09 4d  ..const DWORD..M
1720: 42 5f 50 52 45 43 4f 4d 50 4f 53 45 44 20 20 20  B_PRECOMPOSED   
1730: 20 20 20 20 3d 20 31 2c 0a 09 4d 42 5f 43 4f 4d      = 1,..MB_COM
1740: 50 4f 53 49 54 45 20 20 20 20 20 20 20 20 20 3d  POSITE         =
1750: 20 32 2c 0a 09 4d 42 5f 55 53 45 47 4c 59 50 48   2,..MB_USEGLYPH
1760: 43 48 41 52 53 20 20 20 20 20 3d 20 34 2c 0a 09  CHARS     = 4,..
1770: 4d 42 5f 45 52 52 5f 49 4e 56 41 4c 49 44 5f 43  MB_ERR_INVALID_C
1780: 48 41 52 53 20 3d 20 38 3b 0a 0a 63 6f 6e 73 74  HARS = 8;..const
1790: 20 44 57 4f 52 44 0a 09 57 43 5f 44 49 53 43 41   DWORD..WC_DISCA
17a0: 52 44 4e 53 20 20 20 20 20 20 3d 20 20 31 36 2c  RDNS      =  16,
17b0: 0a 09 57 43 5f 53 45 50 43 48 41 52 53 20 20 20  ..WC_SEPCHARS   
17c0: 20 20 20 20 3d 20 20 33 32 2c 0a 09 57 43 5f 44      =  32,..WC_D
17d0: 45 46 41 55 4c 54 43 48 41 52 20 20 20 20 3d 20  EFAULTCHAR    = 
17e0: 20 36 34 2c 0a 09 57 43 5f 43 4f 4d 50 4f 53 49   64,..WC_COMPOSI
17f0: 54 45 43 48 45 43 4b 20 3d 20 35 31 32 3b 0a 0a  TECHECK = 512;..
1800: 65 6e 75 6d 20 3a 20 4c 4f 4e 47 20 7b 0a 09 43  enum : LONG {..C
1810: 54 52 59 5f 44 45 46 41 55 4c 54 20 20 20 20 20  TRY_DEFAULT     
1820: 20 20 20 20 20 20 20 3d 20 20 20 30 2c 0a 09 43         =   0,..C
1830: 54 52 59 5f 44 4f 4d 49 4e 49 43 41 4e 5f 52 45  TRY_DOMINICAN_RE
1840: 50 55 42 4c 49 43 20 3d 20 20 20 31 2c 0a 09 43  PUBLIC =   1,..C
1850: 54 52 59 5f 50 55 45 52 54 4f 5f 52 49 43 4f 20  TRY_PUERTO_RICO 
1860: 20 20 20 20 20 20 20 3d 20 20 20 31 2c 0a 09 43         =   1,..C
1870: 54 52 59 5f 43 41 52 49 42 42 45 41 4e 20 20 20  TRY_CARIBBEAN   
1880: 20 20 20 20 20 20 20 3d 20 20 20 31 2c 0a 09 43         =   1,..C
1890: 54 52 59 5f 4a 41 4d 41 49 43 41 20 20 20 20 20  TRY_JAMAICA     
18a0: 20 20 20 20 20 20 20 3d 20 20 20 31 2c 0a 09 43         =   1,..C
18b0: 54 52 59 5f 55 4e 49 54 45 44 5f 53 54 41 54 45  TRY_UNITED_STATE
18c0: 53 20 20 20 20 20 20 3d 20 20 20 31 2c 0a 09 43  S      =   1,..C
18d0: 54 52 59 5f 54 52 49 4e 49 44 41 44 5f 59 5f 54  TRY_TRINIDAD_Y_T
18e0: 4f 42 41 47 4f 20 20 3d 20 20 20 31 2c 0a 09 43  OBAGO  =   1,..C
18f0: 54 52 59 5f 43 41 4e 41 44 41 20 20 20 20 20 20  TRY_CANADA      
1900: 20 20 20 20 20 20 20 3d 20 20 20 32 2c 0a 09 43         =   2,..C
1910: 54 52 59 5f 52 55 53 53 49 41 20 20 20 20 20 20  TRY_RUSSIA      
1920: 20 20 20 20 20 20 20 3d 20 20 20 37 2c 0a 09 43         =   7,..C
1930: 54 52 59 5f 55 5a 42 45 4b 49 53 54 41 4e 20 20  TRY_UZBEKISTAN  
1940: 20 20 20 20 20 20 20 3d 20 20 20 37 2c 0a 09 43         =   7,..C
1950: 54 52 59 5f 4b 41 5a 41 4b 53 54 41 4e 20 20 20  TRY_KAZAKSTAN   
1960: 20 20 20 20 20 20 20 3d 20 20 20 37 2c 0a 09 43         =   7,..C
1970: 54 52 59 5f 54 41 54 41 52 53 54 41 4e 20 20 20  TRY_TATARSTAN   
1980: 20 20 20 20 20 20 20 3d 20 20 20 37 2c 0a 09 43         =   7,..C
1990: 54 52 59 5f 45 47 59 50 54 20 20 20 20 20 20 20  TRY_EGYPT       
19a0: 20 20 20 20 20 20 20 3d 20 20 32 30 2c 0a 09 43         =  20,..C
19b0: 54 52 59 5f 53 4f 55 54 48 5f 41 46 52 49 43 41  TRY_SOUTH_AFRICA
19c0: 20 20 20 20 20 20 20 3d 20 20 32 37 2c 0a 09 43         =  27,..C
19d0: 54 52 59 5f 47 52 45 45 43 45 20 20 20 20 20 20  TRY_GREECE      
19e0: 20 20 20 20 20 20 20 3d 20 20 33 30 2c 0a 09 43         =  30,..C
19f0: 54 52 59 5f 4e 45 54 48 45 52 4c 41 4e 44 53 20  TRY_NETHERLANDS 
1a00: 20 20 20 20 20 20 20 3d 20 20 33 31 2c 0a 09 43         =  31,..C
1a10: 54 52 59 5f 42 45 4c 47 49 55 4d 20 20 20 20 20  TRY_BELGIUM     
1a20: 20 20 20 20 20 20 20 3d 20 20 33 32 2c 0a 09 43         =  32,..C
1a30: 54 52 59 5f 46 52 41 4e 43 45 20 20 20 20 20 20  TRY_FRANCE      
1a40: 20 20 20 20 20 20 20 3d 20 20 33 33 2c 0a 09 43         =  33,..C
1a50: 54 52 59 5f 4d 4f 4e 41 43 4f 20 20 20 20 20 20  TRY_MONACO      
1a60: 20 20 20 20 20 20 20 3d 20 20 33 33 2c 0a 09 43         =  33,..C
1a70: 54 52 59 5f 53 50 41 49 4e 20 20 20 20 20 20 20  TRY_SPAIN       
1a80: 20 20 20 20 20 20 20 3d 20 20 33 34 2c 0a 09 43         =  34,..C
1a90: 54 52 59 5f 48 55 4e 47 41 52 59 20 20 20 20 20  TRY_HUNGARY     
1aa0: 20 20 20 20 20 20 20 3d 20 20 33 36 2c 0a 09 43         =  36,..C
1ab0: 54 52 59 5f 49 54 41 4c 59 20 20 20 20 20 20 20  TRY_ITALY       
1ac0: 20 20 20 20 20 20 20 3d 20 20 33 39 2c 0a 09 43         =  39,..C
1ad0: 54 52 59 5f 52 4f 4d 41 4e 49 41 20 20 20 20 20  TRY_ROMANIA     
1ae0: 20 20 20 20 20 20 20 3d 20 20 34 30 2c 0a 09 43         =  40,..C
1af0: 54 52 59 5f 53 57 49 54 5a 45 52 4c 41 4e 44 20  TRY_SWITZERLAND 
1b00: 20 20 20 20 20 20 20 3d 20 20 34 31 2c 0a 09 43         =  41,..C
1b10: 54 52 59 5f 4c 49 45 43 48 54 45 4e 53 54 45 49  TRY_LIECHTENSTEI
1b20: 4e 20 20 20 20 20 20 3d 20 20 34 31 2c 0a 09 43  N      =  41,..C
1b30: 54 52 59 5f 41 55 53 54 52 49 41 20 20 20 20 20  TRY_AUSTRIA     
1b40: 20 20 20 20 20 20 20 3d 20 20 34 33 2c 0a 09 43         =  43,..C
1b50: 54 52 59 5f 55 4e 49 54 45 44 5f 4b 49 4e 47 44  TRY_UNITED_KINGD
1b60: 4f 4d 20 20 20 20 20 3d 20 20 34 34 2c 0a 09 43  OM     =  44,..C
1b70: 54 52 59 5f 44 45 4e 4d 41 52 4b 20 20 20 20 20  TRY_DENMARK     
1b80: 20 20 20 20 20 20 20 3d 20 20 34 35 2c 0a 09 43         =  45,..C
1b90: 54 52 59 5f 53 57 45 44 45 4e 20 20 20 20 20 20  TRY_SWEDEN      
1ba0: 20 20 20 20 20 20 20 3d 20 20 34 36 2c 0a 09 43         =  46,..C
1bb0: 54 52 59 5f 4e 4f 52 57 41 59 20 20 20 20 20 20  TRY_NORWAY      
1bc0: 20 20 20 20 20 20 20 3d 20 20 34 37 2c 0a 09 43         =  47,..C
1bd0: 54 52 59 5f 50 4f 4c 41 4e 44 20 20 20 20 20 20  TRY_POLAND      
1be0: 20 20 20 20 20 20 20 3d 20 20 34 38 2c 0a 09 43         =  48,..C
1bf0: 54 52 59 5f 47 45 52 4d 41 4e 59 20 20 20 20 20  TRY_GERMANY     
1c00: 20 20 20 20 20 20 20 3d 20 20 34 39 2c 0a 09 43         =  49,..C
1c10: 54 52 59 5f 50 45 52 55 20 20 20 20 20 20 20 20  TRY_PERU        
1c20: 20 20 20 20 20 20 20 3d 20 20 35 31 2c 0a 09 43         =  51,..C
1c30: 54 52 59 5f 4d 45 58 49 43 4f 20 20 20 20 20 20  TRY_MEXICO      
1c40: 20 20 20 20 20 20 20 3d 20 20 35 32 2c 0a 09 43         =  52,..C
1c50: 54 52 59 5f 41 52 47 45 4e 54 49 4e 41 20 20 20  TRY_ARGENTINA   
1c60: 20 20 20 20 20 20 20 3d 20 20 35 34 2c 0a 09 43         =  54,..C
1c70: 54 52 59 5f 42 52 41 5a 49 4c 20 20 20 20 20 20  TRY_BRAZIL      
1c80: 20 20 20 20 20 20 20 3d 20 20 35 35 2c 0a 09 43         =  55,..C
1c90: 54 52 59 5f 43 48 49 4c 45 20 20 20 20 20 20 20  TRY_CHILE       
1ca0: 20 20 20 20 20 20 20 3d 20 20 35 36 2c 0a 09 43         =  56,..C
1cb0: 54 52 59 5f 43 4f 4c 4f 4d 42 49 41 20 20 20 20  TRY_COLOMBIA    
1cc0: 20 20 20 20 20 20 20 3d 20 20 35 37 2c 0a 09 43         =  57,..C
1cd0: 54 52 59 5f 56 45 4e 45 5a 55 45 4c 41 20 20 20  TRY_VENEZUELA   
1ce0: 20 20 20 20 20 20 20 3d 20 20 35 38 2c 0a 09 43         =  58,..C
1cf0: 54 52 59 5f 4d 41 4c 41 59 53 49 41 20 20 20 20  TRY_MALAYSIA    
1d00: 20 20 20 20 20 20 20 3d 20 20 36 30 2c 0a 09 43         =  60,..C
1d10: 54 52 59 5f 41 55 53 54 52 41 4c 49 41 20 20 20  TRY_AUSTRALIA   
1d20: 20 20 20 20 20 20 20 3d 20 20 36 31 2c 0a 09 43         =  61,..C
1d30: 54 52 59 5f 49 4e 44 4f 4e 45 53 49 41 20 20 20  TRY_INDONESIA   
1d40: 20 20 20 20 20 20 20 3d 20 20 36 32 2c 0a 09 43         =  62,..C
1d50: 54 52 59 5f 50 48 49 4c 49 50 50 49 4e 45 53 20  TRY_PHILIPPINES 
1d60: 20 20 20 20 20 20 20 3d 20 20 36 33 2c 0a 09 43         =  63,..C
1d70: 54 52 59 5f 4e 45 57 5f 5a 45 41 4c 41 4e 44 20  TRY_NEW_ZEALAND 
1d80: 20 20 20 20 20 20 20 3d 20 20 36 34 2c 0a 09 43         =  64,..C
1d90: 54 52 59 5f 53 49 4e 47 41 50 4f 52 45 20 20 20  TRY_SINGAPORE   
1da0: 20 20 20 20 20 20 20 3d 20 20 36 35 2c 0a 09 43         =  65,..C
1db0: 54 52 59 5f 54 48 41 49 4c 41 4e 44 20 20 20 20  TRY_THAILAND    
1dc0: 20 20 20 20 20 20 20 3d 20 20 36 36 2c 0a 09 43         =  66,..C
1dd0: 54 52 59 5f 4a 41 50 41 4e 20 20 20 20 20 20 20  TRY_JAPAN       
1de0: 20 20 20 20 20 20 20 3d 20 20 38 31 2c 0a 09 43         =  81,..C
1df0: 54 52 59 5f 53 4f 55 54 48 5f 4b 4f 52 45 41 20  TRY_SOUTH_KOREA 
1e00: 20 20 20 20 20 20 20 3d 20 20 38 32 2c 0a 09 43         =  82,..C
1e10: 54 52 59 5f 56 49 45 54 5f 4e 41 4d 20 20 20 20  TRY_VIET_NAM    
1e20: 20 20 20 20 20 20 20 3d 20 20 38 34 2c 0a 09 43         =  84,..C
1e30: 54 52 59 5f 50 52 43 48 49 4e 41 20 20 20 20 20  TRY_PRCHINA     
1e40: 20 20 20 20 20 20 20 3d 20 20 38 36 2c 0a 09 43         =  86,..C
1e50: 54 52 59 5f 54 55 52 4b 45 59 20 20 20 20 20 20  TRY_TURKEY      
1e60: 20 20 20 20 20 20 20 3d 20 20 39 30 2c 0a 09 43         =  90,..C
1e70: 54 52 59 5f 49 4e 44 49 41 20 20 20 20 20 20 20  TRY_INDIA       
1e80: 20 20 20 20 20 20 20 3d 20 20 39 31 2c 0a 09 43         =  91,..C
1e90: 54 52 59 5f 50 41 4b 49 53 54 41 4e 20 20 20 20  TRY_PAKISTAN    
1ea0: 20 20 20 20 20 20 20 3d 20 20 39 32 2c 0a 09 43         =  92,..C
1eb0: 54 52 59 5f 4d 4f 52 4f 43 43 4f 20 20 20 20 20  TRY_MOROCCO     
1ec0: 20 20 20 20 20 20 20 3d 20 32 31 32 2c 0a 09 43         = 212,..C
1ed0: 54 52 59 5f 41 4c 47 45 52 49 41 20 20 20 20 20  TRY_ALGERIA     
1ee0: 20 20 20 20 20 20 20 3d 20 32 31 33 2c 0a 09 43         = 213,..C
1ef0: 54 52 59 5f 54 55 4e 49 53 49 41 20 20 20 20 20  TRY_TUNISIA     
1f00: 20 20 20 20 20 20 20 3d 20 32 31 36 2c 0a 09 43         = 216,..C
1f10: 54 52 59 5f 4c 49 42 59 41 20 20 20 20 20 20 20  TRY_LIBYA       
1f20: 20 20 20 20 20 20 20 3d 20 32 31 38 2c 0a 09 43         = 218,..C
1f30: 54 52 59 5f 4b 45 4e 59 41 20 20 20 20 20 20 20  TRY_KENYA       
1f40: 20 20 20 20 20 20 20 3d 20 32 35 34 2c 0a 09 43         = 254,..C
1f50: 54 52 59 5f 5a 49 4d 42 41 42 57 45 20 20 20 20  TRY_ZIMBABWE    
1f60: 20 20 20 20 20 20 20 3d 20 32 36 33 2c 0a 09 43         = 263,..C
1f70: 54 52 59 5f 46 41 45 52 4f 45 5f 49 53 4c 41 4e  TRY_FAEROE_ISLAN
1f80: 44 53 20 20 20 20 20 3d 20 32 39 38 2c 0a 09 43  DS     = 298,..C
1f90: 54 52 59 5f 50 4f 52 54 55 47 41 4c 20 20 20 20  TRY_PORTUGAL    
1fa0: 20 20 20 20 20 20 20 3d 20 33 35 31 2c 0a 09 43         = 351,..C
1fb0: 54 52 59 5f 4c 55 58 45 4d 42 4f 55 52 47 20 20  TRY_LUXEMBOURG  
1fc0: 20 20 20 20 20 20 20 3d 20 33 35 32 2c 0a 09 43         = 352,..C
1fd0: 54 52 59 5f 49 52 45 4c 41 4e 44 20 20 20 20 20  TRY_IRELAND     
1fe0: 20 20 20 20 20 20 20 3d 20 33 35 33 2c 0a 09 43         = 353,..C
1ff0: 54 52 59 5f 49 43 45 4c 41 4e 44 20 20 20 20 20  TRY_ICELAND     
2000: 20 20 20 20 20 20 20 3d 20 33 35 34 2c 0a 09 43         = 354,..C
2010: 54 52 59 5f 41 4c 42 41 4e 49 41 20 20 20 20 20  TRY_ALBANIA     
2020: 20 20 20 20 20 20 20 3d 20 33 35 35 2c 0a 09 43         = 355,..C
2030: 54 52 59 5f 46 49 4e 4c 41 4e 44 20 20 20 20 20  TRY_FINLAND     
2040: 20 20 20 20 20 20 20 3d 20 33 35 38 2c 0a 09 43         = 358,..C
2050: 54 52 59 5f 42 55 4c 47 41 52 49 41 20 20 20 20  TRY_BULGARIA    
2060: 20 20 20 20 20 20 20 3d 20 33 35 39 2c 0a 09 43         = 359,..C
2070: 54 52 59 5f 4c 49 54 48 55 41 4e 49 41 20 20 20  TRY_LITHUANIA   
2080: 20 20 20 20 20 20 20 3d 20 33 37 30 2c 0a 09 43         = 370,..C
2090: 54 52 59 5f 4c 41 54 56 49 41 20 20 20 20 20 20  TRY_LATVIA      
20a0: 20 20 20 20 20 20 20 3d 20 33 37 31 2c 0a 09 43         = 371,..C
20b0: 54 52 59 5f 45 53 54 4f 4e 49 41 20 20 20 20 20  TRY_ESTONIA     
20c0: 20 20 20 20 20 20 20 3d 20 33 37 32 2c 0a 09 43         = 372,..C
20d0: 54 52 59 5f 41 52 4d 45 4e 49 41 20 20 20 20 20  TRY_ARMENIA     
20e0: 20 20 20 20 20 20 20 3d 20 33 37 34 2c 0a 09 43         = 374,..C
20f0: 54 52 59 5f 42 45 4c 41 52 55 53 20 20 20 20 20  TRY_BELARUS     
2100: 20 20 20 20 20 20 20 3d 20 33 37 35 2c 0a 09 43         = 375,..C
2110: 54 52 59 5f 55 4b 52 41 49 4e 45 20 20 20 20 20  TRY_UKRAINE     
2120: 20 20 20 20 20 20 20 3d 20 33 38 30 2c 0a 09 43         = 380,..C
2130: 54 52 59 5f 53 45 52 42 49 41 20 20 20 20 20 20  TRY_SERBIA      
2140: 20 20 20 20 20 20 20 3d 20 33 38 31 2c 0a 09 43         = 381,..C
2150: 54 52 59 5f 43 52 4f 41 54 49 41 20 20 20 20 20  TRY_CROATIA     
2160: 20 20 20 20 20 20 20 3d 20 33 38 35 2c 0a 09 43         = 385,..C
2170: 54 52 59 5f 53 4c 4f 56 45 4e 49 41 20 20 20 20  TRY_SLOVENIA    
2180: 20 20 20 20 20 20 20 3d 20 33 38 36 2c 0a 09 43         = 386,..C
2190: 54 52 59 5f 4d 41 43 45 44 4f 4e 49 41 20 20 20  TRY_MACEDONIA   
21a0: 20 20 20 20 20 20 20 3d 20 33 38 39 2c 0a 09 43         = 389,..C
21b0: 54 52 59 5f 43 5a 45 43 48 20 20 20 20 20 20 20  TRY_CZECH       
21c0: 20 20 20 20 20 20 20 3d 20 34 32 30 2c 0a 09 43         = 420,..C
21d0: 54 52 59 5f 53 4c 4f 56 41 4b 20 20 20 20 20 20  TRY_SLOVAK      
21e0: 20 20 20 20 20 20 20 3d 20 34 32 31 2c 0a 09 43         = 421,..C
21f0: 54 52 59 5f 42 45 4c 49 5a 45 20 20 20 20 20 20  TRY_BELIZE      
2200: 20 20 20 20 20 20 20 3d 20 35 30 31 2c 0a 09 43         = 501,..C
2210: 54 52 59 5f 47 55 41 54 45 4d 41 4c 41 20 20 20  TRY_GUATEMALA   
2220: 20 20 20 20 20 20 20 3d 20 35 30 32 2c 0a 09 43         = 502,..C
2230: 54 52 59 5f 45 4c 5f 53 41 4c 56 41 44 4f 52 20  TRY_EL_SALVADOR 
2240: 20 20 20 20 20 20 20 3d 20 35 30 33 2c 0a 09 43         = 503,..C
2250: 54 52 59 5f 48 4f 4e 44 55 52 41 53 20 20 20 20  TRY_HONDURAS    
2260: 20 20 20 20 20 20 20 3d 20 35 30 34 2c 0a 09 43         = 504,..C
2270: 54 52 59 5f 4e 49 43 41 52 41 47 55 41 20 20 20  TRY_NICARAGUA   
2280: 20 20 20 20 20 20 20 3d 20 35 30 35 2c 0a 09 43         = 505,..C
2290: 54 52 59 5f 43 4f 53 54 41 5f 52 49 43 41 20 20  TRY_COSTA_RICA  
22a0: 20 20 20 20 20 20 20 3d 20 35 30 36 2c 0a 09 43         = 506,..C
22b0: 54 52 59 5f 50 41 4e 41 4d 41 20 20 20 20 20 20  TRY_PANAMA      
22c0: 20 20 20 20 20 20 20 3d 20 35 30 37 2c 0a 09 43         = 507,..C
22d0: 54 52 59 5f 42 4f 4c 49 56 49 41 20 20 20 20 20  TRY_BOLIVIA     
22e0: 20 20 20 20 20 20 20 3d 20 35 39 31 2c 0a 09 43         = 591,..C
22f0: 54 52 59 5f 45 43 55 41 44 4f 52 20 20 20 20 20  TRY_ECUADOR     
2300: 20 20 20 20 20 20 20 3d 20 35 39 33 2c 0a 09 43         = 593,..C
2310: 54 52 59 5f 50 41 52 41 47 55 41 59 20 20 20 20  TRY_PARAGUAY    
2320: 20 20 20 20 20 20 20 3d 20 35 39 35 2c 0a 09 43         = 595,..C
2330: 54 52 59 5f 55 52 55 47 55 41 59 20 20 20 20 20  TRY_URUGUAY     
2340: 20 20 20 20 20 20 20 3d 20 35 39 38 2c 0a 09 43         = 598,..C
2350: 54 52 59 5f 42 52 55 4e 45 49 5f 44 41 52 55 53  TRY_BRUNEI_DARUS
2360: 53 41 4c 41 4d 20 20 3d 20 36 37 33 2c 0a 09 43  SALAM  = 673,..C
2370: 54 52 59 5f 48 4f 4e 47 5f 4b 4f 4e 47 20 20 20  TRY_HONG_KONG   
2380: 20 20 20 20 20 20 20 3d 20 38 35 32 2c 0a 09 43         = 852,..C
2390: 54 52 59 5f 4d 41 43 41 55 20 20 20 20 20 20 20  TRY_MACAU       
23a0: 20 20 20 20 20 20 20 3d 20 38 35 33 2c 0a 09 43         = 853,..C
23b0: 54 52 59 5f 54 41 49 57 41 4e 20 20 20 20 20 20  TRY_TAIWAN      
23c0: 20 20 20 20 20 20 20 3d 20 38 38 36 2c 0a 09 43         = 886,..C
23d0: 54 52 59 5f 4d 41 4c 44 49 56 45 53 20 20 20 20  TRY_MALDIVES    
23e0: 20 20 20 20 20 20 20 3d 20 39 36 30 2c 0a 09 43         = 960,..C
23f0: 54 52 59 5f 4c 45 42 41 4e 4f 4e 20 20 20 20 20  TRY_LEBANON     
2400: 20 20 20 20 20 20 20 3d 20 39 36 31 2c 0a 09 43         = 961,..C
2410: 54 52 59 5f 4a 4f 52 44 41 4e 20 20 20 20 20 20  TRY_JORDAN      
2420: 20 20 20 20 20 20 20 3d 20 39 36 32 2c 0a 09 43         = 962,..C
2430: 54 52 59 5f 53 59 52 49 41 20 20 20 20 20 20 20  TRY_SYRIA       
2440: 20 20 20 20 20 20 20 3d 20 39 36 33 2c 0a 09 43         = 963,..C
2450: 54 52 59 5f 49 52 41 51 20 20 20 20 20 20 20 20  TRY_IRAQ        
2460: 20 20 20 20 20 20 20 3d 20 39 36 34 2c 0a 09 43         = 964,..C
2470: 54 52 59 5f 4b 55 57 41 49 54 20 20 20 20 20 20  TRY_KUWAIT      
2480: 20 20 20 20 20 20 20 3d 20 39 36 35 2c 0a 09 43         = 965,..C
2490: 54 52 59 5f 53 41 55 44 49 5f 41 52 41 42 49 41  TRY_SAUDI_ARABIA
24a0: 20 20 20 20 20 20 20 3d 20 39 36 36 2c 0a 09 43         = 966,..C
24b0: 54 52 59 5f 59 45 4d 45 4e 20 20 20 20 20 20 20  TRY_YEMEN       
24c0: 20 20 20 20 20 20 20 3d 20 39 36 37 2c 0a 09 43         = 967,..C
24d0: 54 52 59 5f 4f 4d 41 4e 20 20 20 20 20 20 20 20  TRY_OMAN        
24e0: 20 20 20 20 20 20 20 3d 20 39 36 38 2c 0a 09 43         = 968,..C
24f0: 54 52 59 5f 55 41 45 20 20 20 20 20 20 20 20 20  TRY_UAE         
2500: 20 20 20 20 20 20 20 3d 20 39 37 31 2c 0a 09 43         = 971,..C
2510: 54 52 59 5f 49 53 52 41 45 4c 20 20 20 20 20 20  TRY_ISRAEL      
2520: 20 20 20 20 20 20 20 3d 20 39 37 32 2c 0a 09 43         = 972,..C
2530: 54 52 59 5f 42 41 48 52 41 49 4e 20 20 20 20 20  TRY_BAHRAIN     
2540: 20 20 20 20 20 20 20 3d 20 39 37 33 2c 0a 09 43         = 973,..C
2550: 54 52 59 5f 51 41 54 41 52 20 20 20 20 20 20 20  TRY_QATAR       
2560: 20 20 20 20 20 20 20 3d 20 39 37 34 2c 0a 09 43         = 974,..C
2570: 54 52 59 5f 4d 4f 4e 47 4f 4c 49 41 20 20 20 20  TRY_MONGOLIA    
2580: 20 20 20 20 20 20 20 3d 20 39 37 36 2c 0a 09 43         = 976,..C
2590: 54 52 59 5f 49 52 41 4e 20 20 20 20 20 20 20 20  TRY_IRAN        
25a0: 20 20 20 20 20 20 20 3d 20 39 38 31 2c 0a 09 43         = 981,..C
25b0: 54 52 59 5f 41 5a 45 52 42 41 49 4a 41 4e 20 20  TRY_AZERBAIJAN  
25c0: 20 20 20 20 20 20 20 3d 20 39 39 34 2c 0a 09 43         = 994,..C
25d0: 54 52 59 5f 47 45 4f 52 47 49 41 20 20 20 20 20  TRY_GEORGIA     
25e0: 20 20 20 20 20 20 20 3d 20 39 39 35 2c 0a 09 43         = 995,..C
25f0: 54 52 59 5f 4b 59 52 47 59 5a 53 54 41 4e 20 20  TRY_KYRGYZSTAN  
2600: 20 20 20 20 20 20 20 3d 20 39 39 36 0a 7d 0a 0a         = 996.}..
2610: 65 6e 75 6d 20 3a 20 43 41 4c 54 59 50 45 20 7b  enum : CALTYPE {
2620: 0a 09 43 41 4c 5f 49 43 41 4c 49 4e 54 56 41 4c  ..CAL_ICALINTVAL
2630: 55 45 20 20 20 20 20 20 20 20 20 20 3d 20 31 2c  UE          = 1,
2640: 0a 09 43 41 4c 5f 53 43 41 4c 4e 41 4d 45 2c 0a  ..CAL_SCALNAME,.
2650: 09 43 41 4c 5f 49 59 45 41 52 4f 46 46 53 45 54  .CAL_IYEAROFFSET
2660: 52 41 4e 47 45 2c 0a 09 43 41 4c 5f 53 45 52 41  RANGE,..CAL_SERA
2670: 53 54 52 49 4e 47 2c 0a 09 43 41 4c 5f 53 53 48  STRING,..CAL_SSH
2680: 4f 52 54 44 41 54 45 2c 0a 09 43 41 4c 5f 53 4c  ORTDATE,..CAL_SL
2690: 4f 4e 47 44 41 54 45 2c 0a 09 43 41 4c 5f 53 44  ONGDATE,..CAL_SD
26a0: 41 59 4e 41 4d 45 31 2c 0a 09 43 41 4c 5f 53 44  AYNAME1,..CAL_SD
26b0: 41 59 4e 41 4d 45 32 2c 0a 09 43 41 4c 5f 53 44  AYNAME2,..CAL_SD
26c0: 41 59 4e 41 4d 45 33 2c 0a 09 43 41 4c 5f 53 44  AYNAME3,..CAL_SD
26d0: 41 59 4e 41 4d 45 34 2c 0a 09 43 41 4c 5f 53 44  AYNAME4,..CAL_SD
26e0: 41 59 4e 41 4d 45 35 2c 0a 09 43 41 4c 5f 53 44  AYNAME5,..CAL_SD
26f0: 41 59 4e 41 4d 45 36 2c 0a 09 43 41 4c 5f 53 44  AYNAME6,..CAL_SD
2700: 41 59 4e 41 4d 45 37 2c 0a 09 43 41 4c 5f 53 41  AYNAME7,..CAL_SA
2710: 42 42 52 45 56 44 41 59 4e 41 4d 45 31 2c 0a 09  BBREVDAYNAME1,..
2720: 43 41 4c 5f 53 41 42 42 52 45 56 44 41 59 4e 41  CAL_SABBREVDAYNA
2730: 4d 45 32 2c 0a 09 43 41 4c 5f 53 41 42 42 52 45  ME2,..CAL_SABBRE
2740: 56 44 41 59 4e 41 4d 45 33 2c 0a 09 43 41 4c 5f  VDAYNAME3,..CAL_
2750: 53 41 42 42 52 45 56 44 41 59 4e 41 4d 45 34 2c  SABBREVDAYNAME4,
2760: 0a 09 43 41 4c 5f 53 41 42 42 52 45 56 44 41 59  ..CAL_SABBREVDAY
2770: 4e 41 4d 45 35 2c 0a 09 43 41 4c 5f 53 41 42 42  NAME5,..CAL_SABB
2780: 52 45 56 44 41 59 4e 41 4d 45 36 2c 0a 09 43 41  REVDAYNAME6,..CA
2790: 4c 5f 53 41 42 42 52 45 56 44 41 59 4e 41 4d 45  L_SABBREVDAYNAME
27a0: 37 2c 0a 09 43 41 4c 5f 53 4d 4f 4e 54 48 4e 41  7,..CAL_SMONTHNA
27b0: 4d 45 31 2c 0a 09 43 41 4c 5f 53 4d 4f 4e 54 48  ME1,..CAL_SMONTH
27c0: 4e 41 4d 45 32 2c 0a 09 43 41 4c 5f 53 4d 4f 4e  NAME2,..CAL_SMON
27d0: 54 48 4e 41 4d 45 33 2c 0a 09 43 41 4c 5f 53 4d  THNAME3,..CAL_SM
27e0: 4f 4e 54 48 4e 41 4d 45 34 2c 0a 09 43 41 4c 5f  ONTHNAME4,..CAL_
27f0: 53 4d 4f 4e 54 48 4e 41 4d 45 35 2c 0a 09 43 41  SMONTHNAME5,..CA
2800: 4c 5f 53 4d 4f 4e 54 48 4e 41 4d 45 36 2c 0a 09  L_SMONTHNAME6,..
2810: 43 41 4c 5f 53 4d 4f 4e 54 48 4e 41 4d 45 37 2c  CAL_SMONTHNAME7,
2820: 0a 09 43 41 4c 5f 53 4d 4f 4e 54 48 4e 41 4d 45  ..CAL_SMONTHNAME
2830: 38 2c 0a 09 43 41 4c 5f 53 4d 4f 4e 54 48 4e 41  8,..CAL_SMONTHNA
2840: 4d 45 39 2c 0a 09 43 41 4c 5f 53 4d 4f 4e 54 48  ME9,..CAL_SMONTH
2850: 4e 41 4d 45 31 30 2c 0a 09 43 41 4c 5f 53 4d 4f  NAME10,..CAL_SMO
2860: 4e 54 48 4e 41 4d 45 31 31 2c 0a 09 43 41 4c 5f  NTHNAME11,..CAL_
2870: 53 4d 4f 4e 54 48 4e 41 4d 45 31 32 2c 0a 09 43  SMONTHNAME12,..C
2880: 41 4c 5f 53 4d 4f 4e 54 48 4e 41 4d 45 31 33 2c  AL_SMONTHNAME13,
2890: 0a 09 43 41 4c 5f 53 41 42 42 52 45 56 4d 4f 4e  ..CAL_SABBREVMON
28a0: 54 48 4e 41 4d 45 31 2c 0a 09 43 41 4c 5f 53 41  THNAME1,..CAL_SA
28b0: 42 42 52 45 56 4d 4f 4e 54 48 4e 41 4d 45 32 2c  BBREVMONTHNAME2,
28c0: 0a 09 43 41 4c 5f 53 41 42 42 52 45 56 4d 4f 4e  ..CAL_SABBREVMON
28d0: 54 48 4e 41 4d 45 33 2c 0a 09 43 41 4c 5f 53 41  THNAME3,..CAL_SA
28e0: 42 42 52 45 56 4d 4f 4e 54 48 4e 41 4d 45 34 2c  BBREVMONTHNAME4,
28f0: 0a 09 43 41 4c 5f 53 41 42 42 52 45 56 4d 4f 4e  ..CAL_SABBREVMON
2900: 54 48 4e 41 4d 45 35 2c 0a 09 43 41 4c 5f 53 41  THNAME5,..CAL_SA
2910: 42 42 52 45 56 4d 4f 4e 54 48 4e 41 4d 45 36 2c  BBREVMONTHNAME6,
2920: 0a 09 43 41 4c 5f 53 41 42 42 52 45 56 4d 4f 4e  ..CAL_SABBREVMON
2930: 54 48 4e 41 4d 45 37 2c 0a 09 43 41 4c 5f 53 41  THNAME7,..CAL_SA
2940: 42 42 52 45 56 4d 4f 4e 54 48 4e 41 4d 45 38 2c  BBREVMONTHNAME8,
2950: 0a 09 43 41 4c 5f 53 41 42 42 52 45 56 4d 4f 4e  ..CAL_SABBREVMON
2960: 54 48 4e 41 4d 45 39 2c 0a 09 43 41 4c 5f 53 41  THNAME9,..CAL_SA
2970: 42 42 52 45 56 4d 4f 4e 54 48 4e 41 4d 45 31 30  BBREVMONTHNAME10
2980: 2c 0a 09 43 41 4c 5f 53 41 42 42 52 45 56 4d 4f  ,..CAL_SABBREVMO
2990: 4e 54 48 4e 41 4d 45 31 31 2c 0a 09 43 41 4c 5f  NTHNAME11,..CAL_
29a0: 53 41 42 42 52 45 56 4d 4f 4e 54 48 4e 41 4d 45  SABBREVMONTHNAME
29b0: 31 32 2c 0a 09 43 41 4c 5f 53 41 42 42 52 45 56  12,..CAL_SABBREV
29c0: 4d 4f 4e 54 48 4e 41 4d 45 31 33 20 2f 2f 20 3d  MONTHNAME13 // =
29d0: 20 34 36 0a 7d 0a 0a 0a 65 6e 75 6d 20 3a 20 43   46.}...enum : C
29e0: 41 4c 54 59 50 45 20 7b 0a 09 43 41 4c 5f 47 52  ALTYPE {..CAL_GR
29f0: 45 47 4f 52 49 41 4e 20 20 20 20 20 20 20 20 20  EGORIAN         
2a00: 20 20 20 20 20 20 20 3d 20 20 31 2c 0a 09 43 41         =  1,..CA
2a10: 4c 5f 47 52 45 47 4f 52 49 41 4e 5f 55 53 2c 0a  L_GREGORIAN_US,.
2a20: 09 43 41 4c 5f 4a 41 50 41 4e 2c 0a 09 43 41 4c  .CAL_JAPAN,..CAL
2a30: 5f 54 41 49 57 41 4e 2c 0a 09 43 41 4c 5f 4b 4f  _TAIWAN,..CAL_KO
2a40: 52 45 41 2c 0a 09 43 41 4c 5f 48 49 4a 52 49 2c  REA,..CAL_HIJRI,
2a50: 0a 09 43 41 4c 5f 54 48 41 49 2c 0a 09 43 41 4c  ..CAL_THAI,..CAL
2a60: 5f 48 45 42 52 45 57 2c 0a 09 43 41 4c 5f 47 52  _HEBREW,..CAL_GR
2a70: 45 47 4f 52 49 41 4e 5f 4d 45 5f 46 52 45 4e 43  EGORIAN_ME_FRENC
2a80: 48 2c 0a 09 43 41 4c 5f 47 52 45 47 4f 52 49 41  H,..CAL_GREGORIA
2a90: 4e 5f 41 52 41 42 49 43 2c 0a 09 43 41 4c 5f 47  N_ARABIC,..CAL_G
2aa0: 52 45 47 4f 52 49 41 4e 5f 58 4c 49 54 5f 45 4e  REGORIAN_XLIT_EN
2ab0: 47 4c 49 53 48 2c 0a 09 43 41 4c 5f 47 52 45 47  GLISH,..CAL_GREG
2ac0: 4f 52 49 41 4e 5f 58 4c 49 54 5f 46 52 45 4e 43  ORIAN_XLIT_FRENC
2ad0: 48 20 2f 2f 20 3d 20 31 32 0a 7d 0a 0a 65 6e 75  H // = 12.}..enu
2ae0: 6d 20 3a 20 69 6e 74 20 7b 0a 09 43 53 54 52 5f  m : int {..CSTR_
2af0: 4c 45 53 53 5f 54 48 41 4e 20 20 20 20 3d 20 31  LESS_THAN    = 1
2b00: 2c 0a 09 43 53 54 52 5f 45 51 55 41 4c 2c 0a 09  ,..CSTR_EQUAL,..
2b10: 43 53 54 52 5f 47 52 45 41 54 45 52 5f 54 48 41  CSTR_GREATER_THA
2b20: 4e 0a 7d 0a 0a 65 6e 75 6d 20 3a 20 44 57 4f 52  N.}..enum : DWOR
2b30: 44 20 7b 0a 09 4c 47 52 50 49 44 5f 49 4e 53 54  D {..LGRPID_INST
2b40: 41 4c 4c 45 44 20 3d 20 31 2c 0a 09 4c 47 52 50  ALLED = 1,..LGRP
2b50: 49 44 5f 53 55 50 50 4f 52 54 45 44 0a 7d 0a 0a  ID_SUPPORTED.}..
2b60: 65 6e 75 6d 20 3a 20 4c 47 52 50 49 44 20 7b 0a  enum : LGRPID {.
2b70: 09 4c 47 52 50 49 44 5f 57 45 53 54 45 52 4e 5f  .LGRPID_WESTERN_
2b80: 45 55 52 4f 50 45 20 3d 20 31 2c 0a 09 4c 47 52  EUROPE = 1,..LGR
2b90: 50 49 44 5f 43 45 4e 54 52 41 4c 5f 45 55 52 4f  PID_CENTRAL_EURO
2ba0: 50 45 2c 0a 09 4c 47 52 50 49 44 5f 42 41 4c 54  PE,..LGRPID_BALT
2bb0: 49 43 2c 0a 09 4c 47 52 50 49 44 5f 47 52 45 45  IC,..LGRPID_GREE
2bc0: 4b 2c 0a 09 4c 47 52 50 49 44 5f 43 59 52 49 4c  K,..LGRPID_CYRIL
2bd0: 4c 49 43 2c 0a 09 4c 47 52 50 49 44 5f 54 55 52  LIC,..LGRPID_TUR
2be0: 4b 49 53 48 2c 0a 09 4c 47 52 50 49 44 5f 4a 41  KISH,..LGRPID_JA
2bf0: 50 41 4e 45 53 45 2c 0a 09 4c 47 52 50 49 44 5f  PANESE,..LGRPID_
2c00: 4b 4f 52 45 41 4e 2c 0a 09 4c 47 52 50 49 44 5f  KOREAN,..LGRPID_
2c10: 54 52 41 44 49 54 49 4f 4e 41 4c 5f 43 48 49 4e  TRADITIONAL_CHIN
2c20: 45 53 45 2c 0a 09 4c 47 52 50 49 44 5f 53 49 4d  ESE,..LGRPID_SIM
2c30: 50 4c 49 46 49 45 44 5f 43 48 49 4e 45 53 45 2c  PLIFIED_CHINESE,
2c40: 0a 09 4c 47 52 50 49 44 5f 54 48 41 49 2c 0a 09  ..LGRPID_THAI,..
2c50: 4c 47 52 50 49 44 5f 48 45 42 52 45 57 2c 0a 09  LGRPID_HEBREW,..
2c60: 4c 47 52 50 49 44 5f 41 52 41 42 49 43 2c 0a 09  LGRPID_ARABIC,..
2c70: 4c 47 52 50 49 44 5f 56 49 45 54 4e 41 4d 45 53  LGRPID_VIETNAMES
2c80: 45 2c 0a 09 4c 47 52 50 49 44 5f 49 4e 44 49 43  E,..LGRPID_INDIC
2c90: 2c 0a 09 4c 47 52 50 49 44 5f 47 45 4f 52 47 49  ,..LGRPID_GEORGI
2ca0: 41 4e 2c 0a 09 4c 47 52 50 49 44 5f 41 52 4d 45  AN,..LGRPID_ARME
2cb0: 4e 49 41 4e 20 2f 2f 20 3d 20 31 37 0a 7d 0a 0a  NIAN // = 17.}..
2cc0: 73 74 61 74 69 63 20 69 66 20 28 57 49 4e 56 45  static if (WINVE
2cd0: 52 20 3e 3d 20 30 78 35 30 30 29 20 7b 0a 09 65  R >= 0x500) {..e
2ce0: 6e 75 6d 20 3a 20 4c 43 54 59 50 45 20 7b 0a 09  num : LCTYPE {..
2cf0: 09 4c 4f 43 41 4c 45 5f 53 59 45 41 52 4d 4f 4e  .LOCALE_SYEARMON
2d00: 54 48 20 20 20 20 20 20 20 20 20 20 20 20 20 3d  TH             =
2d10: 20 30 78 31 30 30 36 2c 0a 09 09 4c 4f 43 41 4c   0x1006,...LOCAL
2d20: 45 5f 53 45 4e 47 43 55 52 52 4e 41 4d 45 20 20  E_SENGCURRNAME  
2d30: 20 20 20 20 20 20 20 20 20 3d 20 30 78 31 30 30           = 0x100
2d40: 37 2c 0a 09 09 4c 4f 43 41 4c 45 5f 53 4e 41 54  7,...LOCALE_SNAT
2d50: 49 56 45 43 55 52 52 4e 41 4d 45 20 20 20 20 20  IVECURRNAME     
2d60: 20 20 20 3d 20 30 78 31 30 30 38 2c 0a 09 09 4c     = 0x1008,...L
2d70: 4f 43 41 4c 45 5f 49 44 45 46 41 55 4c 54 45 42  OCALE_IDEFAULTEB
2d80: 43 44 49 43 43 4f 44 45 50 41 47 45 20 3d 20 30  CDICCODEPAGE = 0
2d90: 78 31 30 31 32 2c 0a 09 09 4c 4f 43 41 4c 45 5f  x1012,...LOCALE_
2da0: 53 53 4f 52 54 4e 41 4d 45 20 20 20 20 20 20 20  SSORTNAME       
2db0: 20 20 20 20 20 20 20 3d 20 30 78 31 30 31 33 2c         = 0x1013,
2dc0: 0a 09 09 4c 4f 43 41 4c 45 5f 49 44 49 47 49 54  ...LOCALE_IDIGIT
2dd0: 53 55 42 53 54 49 54 55 54 49 4f 4e 20 20 20 20  SUBSTITUTION    
2de0: 20 3d 20 30 78 31 30 31 34 2c 0a 09 09 4c 4f 43   = 0x1014,...LOC
2df0: 41 4c 45 5f 49 50 41 50 45 52 53 49 5a 45 20 20  ALE_IPAPERSIZE  
2e00: 20 20 20 20 20 20 20 20 20 20 20 3d 20 30 78 31             = 0x1
2e10: 30 30 41 0a 09 7d 0a 0a 09 63 6f 6e 73 74 20 44  00A..}...const D
2e20: 57 4f 52 44 0a 09 09 44 41 54 45 5f 59 45 41 52  WORD...DATE_YEAR
2e30: 4d 4f 4e 54 48 20 20 3d 20 20 38 2c 0a 09 09 44  MONTH  =  8,...D
2e40: 41 54 45 5f 4c 54 52 52 45 41 44 49 4e 47 20 3d  ATE_LTRREADING =
2e50: 20 31 36 2c 0a 09 09 44 41 54 45 5f 52 54 4c 52   16,...DATE_RTLR
2e60: 45 41 44 49 4e 47 20 3d 20 33 32 3b 0a 0a 09 63  EADING = 32;...c
2e70: 6f 6e 73 74 20 44 57 4f 52 44 20 4d 41 50 5f 45  onst DWORD MAP_E
2e80: 58 50 41 4e 44 5f 4c 49 47 41 54 55 52 45 53 20  XPAND_LIGATURES 
2e90: 3d 20 30 78 32 30 30 30 3b 0a 09 63 6f 6e 73 74  = 0x2000;..const
2ea0: 20 44 57 4f 52 44 20 57 43 5f 4e 4f 5f 42 45 53   DWORD WC_NO_BES
2eb0: 54 5f 46 49 54 5f 43 48 41 52 53 20 3d 20 31 30  T_FIT_CHARS = 10
2ec0: 32 34 3b 0a 0a 09 65 6e 75 6d 20 3a 20 43 41 4c  24;...enum : CAL
2ed0: 54 59 50 45 20 7b 0a 09 09 43 41 4c 5f 53 59 45  TYPE {...CAL_SYE
2ee0: 41 52 4d 4f 4e 54 48 20 20 20 20 20 20 20 3d 20  ARMONTH       = 
2ef0: 34 37 2c 0a 09 09 43 41 4c 5f 49 54 57 4f 44 49  47,...CAL_ITWODI
2f00: 47 49 54 59 45 41 52 4d 41 58 20 3d 20 34 38 2c  GITYEARMAX = 48,
2f10: 0a 09 09 43 41 4c 5f 4e 4f 55 53 45 52 4f 56 45  ...CAL_NOUSEROVE
2f20: 52 52 49 44 45 20 20 20 3d 20 4c 4f 43 41 4c 45  RRIDE   = LOCALE
2f30: 5f 4e 4f 55 53 45 52 4f 56 45 52 52 49 44 45 2c  _NOUSEROVERRIDE,
2f40: 0a 09 09 43 41 4c 5f 52 45 54 55 52 4e 5f 4e 55  ...CAL_RETURN_NU
2f50: 4d 42 45 52 20 20 20 20 3d 20 4c 4f 43 41 4c 45  MBER    = LOCALE
2f60: 5f 52 45 54 55 52 4e 5f 4e 55 4d 42 45 52 2c 0a  _RETURN_NUMBER,.
2f70: 09 09 43 41 4c 5f 55 53 45 5f 43 50 5f 41 43 50  ..CAL_USE_CP_ACP
2f80: 20 20 20 20 20 20 20 3d 20 4c 4f 43 41 4c 45 5f         = LOCALE_
2f90: 55 53 45 5f 43 50 5f 41 43 50 0a 09 7d 0a 7d 20  USE_CP_ACP..}.} 
2fa0: 2f 2f 20 28 57 49 4e 56 45 52 20 3e 3d 20 30 78  // (WINVER >= 0x
2fb0: 35 30 30 29 0a 0a 65 78 74 65 72 6e 20 28 57 69  500)..extern (Wi
2fc0: 6e 64 6f 77 73 29 20 7b 0a 09 61 6c 69 61 73 20  ndows) {..alias 
2fd0: 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50  BOOL function(LP
2fe0: 53 54 52 29 20 43 41 4c 49 4e 46 4f 5f 45 4e 55  STR) CALINFO_ENU
2ff0: 4d 50 52 4f 43 41 3b 0a 09 61 6c 69 61 73 20 42  MPROCA;..alias B
3000: 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 57  OOL function(LPW
3010: 53 54 52 29 20 43 41 4c 49 4e 46 4f 5f 45 4e 55  STR) CALINFO_ENU
3020: 4d 50 52 4f 43 57 3b 0a 09 61 6c 69 61 73 20 42  MPROCW;..alias B
3030: 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 53  OOL function(LPS
3040: 54 52 2c 20 43 41 4c 49 44 29 20 43 41 4c 49 4e  TR, CALID) CALIN
3050: 46 4f 5f 45 4e 55 4d 50 52 4f 43 45 58 41 3b 0a  FO_ENUMPROCEXA;.
3060: 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63  .alias BOOL func
3070: 74 69 6f 6e 28 4c 50 57 53 54 52 2c 20 43 41 4c  tion(LPWSTR, CAL
3080: 49 44 29 20 43 41 4c 49 4e 46 4f 5f 45 4e 55 4d  ID) CALINFO_ENUM
3090: 50 52 4f 43 45 58 57 3b 0a 09 61 6c 69 61 73 20  PROCEXW;..alias 
30a0: 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 47  BOOL function(LG
30b0: 52 50 49 44 2c 20 4c 50 53 54 52 2c 20 4c 50 53  RPID, LPSTR, LPS
30c0: 54 52 2c 20 44 57 4f 52 44 2c 20 4c 4f 4e 47 5f  TR, DWORD, LONG_
30d0: 50 54 52 29 0a 09 20 20 4c 41 4e 47 55 41 47 45  PTR)..  LANGUAGE
30e0: 47 52 4f 55 50 5f 45 4e 55 4d 50 52 4f 43 41 3b  GROUP_ENUMPROCA;
30f0: 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e  ..alias BOOL fun
3100: 63 74 69 6f 6e 28 4c 47 52 50 49 44 2c 20 4c 50  ction(LGRPID, LP
3110: 57 53 54 52 2c 20 4c 50 57 53 54 52 2c 20 44 57  WSTR, LPWSTR, DW
3120: 4f 52 44 2c 20 4c 4f 4e 47 5f 50 54 52 29 0a 09  ORD, LONG_PTR)..
3130: 20 20 4c 41 4e 47 55 41 47 45 47 52 4f 55 50 5f    LANGUAGEGROUP_
3140: 45 4e 55 4d 50 52 4f 43 57 3b 0a 09 61 6c 69 61  ENUMPROCW;..alia
3150: 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28  s BOOL function(
3160: 4c 47 52 50 49 44 2c 20 4c 43 49 44 2c 20 4c 50  LGRPID, LCID, LP
3170: 53 54 52 2c 20 4c 4f 4e 47 5f 50 54 52 29 0a 09  STR, LONG_PTR)..
3180: 20 20 4c 41 4e 47 47 52 4f 55 50 4c 4f 43 41 4c    LANGGROUPLOCAL
3190: 45 5f 45 4e 55 4d 50 52 4f 43 41 3b 0a 09 61 6c  E_ENUMPROCA;..al
31a0: 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f  ias BOOL functio
31b0: 6e 28 4c 47 52 50 49 44 2c 20 4c 43 49 44 2c 20  n(LGRPID, LCID, 
31c0: 4c 50 57 53 54 52 2c 20 4c 4f 4e 47 5f 50 54 52  LPWSTR, LONG_PTR
31d0: 29 0a 09 20 20 4c 41 4e 47 47 52 4f 55 50 4c 4f  )..  LANGGROUPLO
31e0: 43 41 4c 45 5f 45 4e 55 4d 50 52 4f 43 57 3b 0a  CALE_ENUMPROCW;.
31f0: 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63  .alias BOOL func
3200: 74 69 6f 6e 28 4c 50 57 53 54 52 2c 20 4c 4f 4e  tion(LPWSTR, LON
3210: 47 5f 50 54 52 29 20 55 49 4c 41 4e 47 55 41 47  G_PTR) UILANGUAG
3220: 45 5f 45 4e 55 4d 50 52 4f 43 57 3b 0a 09 61 6c  E_ENUMPROCW;..al
3230: 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f  ias BOOL functio
3240: 6e 28 4c 50 53 54 52 2c 20 4c 4f 4e 47 5f 50 54  n(LPSTR, LONG_PT
3250: 52 29 20 55 49 4c 41 4e 47 55 41 47 45 5f 45 4e  R) UILANGUAGE_EN
3260: 55 4d 50 52 4f 43 41 3b 0a 09 61 6c 69 61 73 20  UMPROCA;..alias 
3270: 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50  BOOL function(LP
3280: 53 54 52 29 20 4c 4f 43 41 4c 45 5f 45 4e 55 4d  STR) LOCALE_ENUM
3290: 50 52 4f 43 41 3b 0a 09 61 6c 69 61 73 20 42 4f  PROCA;..alias BO
32a0: 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 57 53  OL function(LPWS
32b0: 54 52 29 20 4c 4f 43 41 4c 45 5f 45 4e 55 4d 50  TR) LOCALE_ENUMP
32c0: 52 4f 43 57 3b 0a 09 61 6c 69 61 73 20 42 4f 4f  ROCW;..alias BOO
32d0: 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 53 54 52  L function(LPSTR
32e0: 29 20 43 4f 44 45 50 41 47 45 5f 45 4e 55 4d 50  ) CODEPAGE_ENUMP
32f0: 52 4f 43 41 3b 0a 09 61 6c 69 61 73 20 42 4f 4f  ROCA;..alias BOO
3300: 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 57 53 54  L function(LPWST
3310: 52 29 20 43 4f 44 45 50 41 47 45 5f 45 4e 55 4d  R) CODEPAGE_ENUM
3320: 50 52 4f 43 57 3b 0a 09 61 6c 69 61 73 20 42 4f  PROCW;..alias BO
3330: 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 53 54  OL function(LPST
3340: 52 29 20 44 41 54 45 46 4d 54 5f 45 4e 55 4d 50  R) DATEFMT_ENUMP
3350: 52 4f 43 41 3b 0a 09 61 6c 69 61 73 20 42 4f 4f  ROCA;..alias BOO
3360: 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 57 53 54  L function(LPWST
3370: 52 29 20 44 41 54 45 46 4d 54 5f 45 4e 55 4d 50  R) DATEFMT_ENUMP
3380: 52 4f 43 57 3b 0a 09 61 6c 69 61 73 20 42 4f 4f  ROCW;..alias BOO
3390: 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 53 54 52  L function(LPSTR
33a0: 2c 20 43 41 4c 49 44 29 20 44 41 54 45 46 4d 54  , CALID) DATEFMT
33b0: 5f 45 4e 55 4d 50 52 4f 43 45 58 41 3b 0a 09 61  _ENUMPROCEXA;..a
33c0: 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69  lias BOOL functi
33d0: 6f 6e 28 4c 50 57 53 54 52 2c 20 43 41 4c 49 44  on(LPWSTR, CALID
33e0: 29 20 44 41 54 45 46 4d 54 5f 45 4e 55 4d 50 52  ) DATEFMT_ENUMPR
33f0: 4f 43 45 58 57 3b 0a 09 61 6c 69 61 73 20 42 4f  OCEXW;..alias BO
3400: 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 53 54  OL function(LPST
3410: 52 29 20 54 49 4d 45 46 4d 54 5f 45 4e 55 4d 50  R) TIMEFMT_ENUMP
3420: 52 4f 43 41 3b 0a 09 61 6c 69 61 73 20 42 4f 4f  ROCA;..alias BOO
3430: 4c 20 66 75 6e 63 74 69 6f 6e 28 4c 50 57 53 54  L function(LPWST
3440: 52 29 20 54 49 4d 45 46 4d 54 5f 45 4e 55 4d 50  R) TIMEFMT_ENUMP
3450: 52 4f 43 57 3b 0a 09 61 6c 69 61 73 20 42 4f 4f  ROCW;..alias BOO
3460: 4c 20 66 75 6e 63 74 69 6f 6e 28 47 45 4f 49 44  L function(GEOID
3470: 29 20 47 45 4f 5f 45 4e 55 4d 50 52 4f 43 3b 0a  ) GEO_ENUMPROC;.
3480: 7d 0a 0a 65 6e 75 6d 20 4e 4c 53 5f 46 55 4e 43  }..enum NLS_FUNC
3490: 54 49 4f 4e 20 7b 0a 09 43 4f 4d 50 41 52 45 5f  TION {..COMPARE_
34a0: 53 54 52 49 4e 47 20 3d 20 30 78 30 30 30 31 0a  STRING = 0x0001.
34b0: 7d 0a 0a 65 6e 75 6d 20 53 59 53 47 45 4f 43 4c  }..enum SYSGEOCL
34c0: 41 53 53 20 7b 0a 09 47 45 4f 43 4c 41 53 53 5f  ASS {..GEOCLASS_
34d0: 4e 41 54 49 4f 4e 20 3d 20 31 36 2c 0a 09 47 45  NATION = 16,..GE
34e0: 4f 43 4c 41 53 53 5f 52 45 47 49 4f 4e 20 3d 20  OCLASS_REGION = 
34f0: 31 34 0a 7d 0a 0a 65 6e 75 6d 20 53 59 53 47 45  14.}..enum SYSGE
3500: 4f 54 59 50 45 20 7b 0a 09 47 45 4f 5f 4e 41 54  OTYPE {..GEO_NAT
3510: 49 4f 4e 20 20 20 20 20 20 20 20 20 20 20 20 3d  ION            =
3520: 20 30 78 30 30 30 31 2c 0a 09 47 45 4f 5f 4c 41   0x0001,..GEO_LA
3530: 54 49 54 55 44 45 20 20 20 20 20 20 20 20 20 20  TITUDE          
3540: 3d 20 30 78 30 30 30 32 2c 0a 09 47 45 4f 5f 4c  = 0x0002,..GEO_L
3550: 4f 4e 47 49 54 55 44 45 20 20 20 20 20 20 20 20  ONGITUDE        
3560: 20 3d 20 30 78 30 30 30 33 2c 0a 09 47 45 4f 5f   = 0x0003,..GEO_
3570: 49 53 4f 32 20 20 20 20 20 20 20 20 20 20 20 20  ISO2            
3580: 20 20 3d 20 30 78 30 30 30 34 2c 0a 09 47 45 4f    = 0x0004,..GEO
3590: 5f 49 53 4f 33 20 20 20 20 20 20 20 20 20 20 20  _ISO3           
35a0: 20 20 20 3d 20 30 78 30 30 30 35 2c 0a 09 47 45     = 0x0005,..GE
35b0: 4f 5f 52 46 43 31 37 36 36 20 20 20 20 20 20 20  O_RFC1766       
35c0: 20 20 20 20 3d 20 30 78 30 30 30 36 2c 0a 09 47      = 0x0006,..G
35d0: 45 4f 5f 4c 43 49 44 20 20 20 20 20 20 20 20 20  EO_LCID         
35e0: 20 20 20 20 20 3d 20 30 78 30 30 30 37 2c 0a 09       = 0x0007,..
35f0: 47 45 4f 5f 46 52 49 45 4e 44 4c 59 4e 41 4d 45  GEO_FRIENDLYNAME
3600: 20 20 20 20 20 20 3d 20 30 78 30 30 30 38 2c 0a        = 0x0008,.
3610: 09 47 45 4f 5f 4f 46 46 49 43 49 41 4c 4e 41 4d  .GEO_OFFICIALNAM
3620: 45 20 20 20 20 20 20 3d 20 30 78 30 30 30 39 2c  E      = 0x0009,
3630: 0a 09 47 45 4f 5f 54 49 4d 45 5a 4f 4e 45 53 20  ..GEO_TIMEZONES 
3640: 20 20 20 20 20 20 20 20 3d 20 30 78 30 30 30 61          = 0x000a
3650: 2c 0a 09 47 45 4f 5f 4f 46 46 49 43 49 41 4c 4c  ,..GEO_OFFICIALL
3660: 41 4e 47 55 41 47 45 53 20 3d 20 30 78 30 30 30  ANGUAGES = 0x000
3670: 61 0a 7d 0a 0a 73 74 72 75 63 74 20 43 50 49 4e  a.}..struct CPIN
3680: 46 4f 20 7b 0a 09 55 49 4e 54 20 20 20 20 20 20  FO {..UINT      
3690: 20 20 20 20 20 20 20 20 20 20 20 20 4d 61 78 43              MaxC
36a0: 68 61 72 53 69 7a 65 3b 0a 09 42 59 54 45 5b 4d  harSize;..BYTE[M
36b0: 41 58 5f 44 45 46 41 55 4c 54 43 48 41 52 5d 20  AX_DEFAULTCHAR] 
36c0: 44 65 66 61 75 6c 74 43 68 61 72 3b 0a 09 42 59  DefaultChar;..BY
36d0: 54 45 5b 4d 41 58 5f 4c 45 41 44 42 59 54 45 53  TE[MAX_LEADBYTES
36e0: 5d 20 20 20 4c 65 61 64 42 79 74 65 3b 0a 7d 0a  ]   LeadByte;.}.
36f0: 61 6c 69 61 73 20 43 50 49 4e 46 4f 2a 20 4c 50  alias CPINFO* LP
3700: 43 50 49 4e 46 4f 3b 0a 0a 73 74 72 75 63 74 20  CPINFO;..struct 
3710: 43 50 49 4e 46 4f 45 58 41 20 7b 0a 09 55 49 4e  CPINFOEXA {..UIN
3720: 54 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  T               
3730: 20 20 20 4d 61 78 43 68 61 72 53 69 7a 65 3b 0a     MaxCharSize;.
3740: 09 42 59 54 45 5b 4d 41 58 5f 44 45 46 41 55 4c  .BYTE[MAX_DEFAUL
3750: 54 43 48 41 52 5d 20 44 65 66 61 75 6c 74 43 68  TCHAR] DefaultCh
3760: 61 72 3b 0a 09 42 59 54 45 5b 4d 41 58 5f 4c 45  ar;..BYTE[MAX_LE
3770: 41 44 42 59 54 45 53 5d 20 20 20 4c 65 61 64 42  ADBYTES]   LeadB
3780: 79 74 65 3b 0a 09 57 43 48 41 52 20 20 20 20 20  yte;..WCHAR     
3790: 20 20 20 20 20 20 20 20 20 20 20 20 55 6e 69 63              Unic
37a0: 6f 64 65 44 65 66 61 75 6c 74 43 68 61 72 3b 0a  odeDefaultChar;.
37b0: 09 55 49 4e 54 20 20 20 20 20 20 20 20 20 20 20  .UINT           
37c0: 20 20 20 20 20 20 20 43 6f 64 65 50 61 67 65 3b         CodePage;
37d0: 0a 09 43 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d  ..CHAR[MAX_PATH]
37e0: 20 20 20 20 20 20 20 20 43 6f 64 65 50 61 67 65          CodePage
37f0: 4e 61 6d 65 3b 0a 7d 0a 61 6c 69 61 73 20 43 50  Name;.}.alias CP
3800: 49 4e 46 4f 45 58 41 2a 20 4c 50 43 50 49 4e 46  INFOEXA* LPCPINF
3810: 4f 45 58 41 3b 0a 0a 73 74 72 75 63 74 20 43 50  OEXA;..struct CP
3820: 49 4e 46 4f 45 58 57 20 7b 0a 09 55 49 4e 54 20  INFOEXW {..UINT 
3830: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
3840: 20 4d 61 78 43 68 61 72 53 69 7a 65 3b 0a 09 42   MaxCharSize;..B
3850: 59 54 45 5b 4d 41 58 5f 44 45 46 41 55 4c 54 43  YTE[MAX_DEFAULTC
3860: 48 41 52 5d 20 44 65 66 61 75 6c 74 43 68 61 72  HAR] DefaultChar
3870: 3b 0a 09 42 59 54 45 5b 4d 41 58 5f 4c 45 41 44  ;..BYTE[MAX_LEAD
3880: 42 59 54 45 53 5d 20 20 20 4c 65 61 64 42 79 74  BYTES]   LeadByt
3890: 65 3b 0a 09 57 43 48 41 52 20 20 20 20 20 20 20  e;..WCHAR       
38a0: 20 20 20 20 20 20 20 20 20 20 55 6e 69 63 6f 64            Unicod
38b0: 65 44 65 66 61 75 6c 74 43 68 61 72 3b 0a 09 55  eDefaultChar;..U
38c0: 49 4e 54 20 20 20 20 20 20 20 20 20 20 20 20 20  INT             
38d0: 20 20 20 20 20 43 6f 64 65 50 61 67 65 3b 0a 09       CodePage;..
38e0: 57 43 48 41 52 5b 4d 41 58 5f 50 41 54 48 5d 20  WCHAR[MAX_PATH] 
38f0: 20 20 20 20 20 20 43 6f 64 65 50 61 67 65 4e 61        CodePageNa
3900: 6d 65 3b 0a 7d 0a 61 6c 69 61 73 20 43 50 49 4e  me;.}.alias CPIN
3910: 46 4f 45 58 57 2a 20 4c 50 43 50 49 4e 46 4f 45  FOEXW* LPCPINFOE
3920: 58 57 3b 0a 0a 73 74 72 75 63 74 20 43 55 52 52  XW;..struct CURR
3930: 45 4e 43 59 46 4d 54 41 20 7b 0a 09 55 49 4e 54  ENCYFMTA {..UINT
3940: 20 20 4e 75 6d 44 69 67 69 74 73 3b 0a 09 55 49    NumDigits;..UI
3950: 4e 54 20 20 4c 65 61 64 69 6e 67 5a 65 72 6f 3b  NT  LeadingZero;
3960: 0a 09 55 49 4e 54 20 20 47 72 6f 75 70 69 6e 67  ..UINT  Grouping
3970: 3b 0a 09 4c 50 53 54 52 20 6c 70 44 65 63 69 6d  ;..LPSTR lpDecim
3980: 61 6c 53 65 70 3b 0a 09 4c 50 53 54 52 20 6c 70  alSep;..LPSTR lp
3990: 54 68 6f 75 73 61 6e 64 53 65 70 3b 0a 09 55 49  ThousandSep;..UI
39a0: 4e 54 20 20 4e 65 67 61 74 69 76 65 4f 72 64 65  NT  NegativeOrde
39b0: 72 3b 0a 09 55 49 4e 54 20 20 50 6f 73 69 74 69  r;..UINT  Positi
39c0: 76 65 4f 72 64 65 72 3b 0a 09 4c 50 53 54 52 20  veOrder;..LPSTR 
39d0: 6c 70 43 75 72 72 65 6e 63 79 53 79 6d 62 6f 6c  lpCurrencySymbol
39e0: 3b 0a 7d 0a 61 6c 69 61 73 20 43 55 52 52 45 4e  ;.}.alias CURREN
39f0: 43 59 46 4d 54 41 2a 20 4c 50 43 55 52 52 45 4e  CYFMTA* LPCURREN
3a00: 43 59 46 4d 54 41 3b 0a 0a 73 74 72 75 63 74 20  CYFMTA;..struct 
3a10: 43 55 52 52 45 4e 43 59 46 4d 54 57 20 7b 0a 09  CURRENCYFMTW {..
3a20: 55 49 4e 54 20 20 20 4e 75 6d 44 69 67 69 74 73  UINT   NumDigits
3a30: 3b 0a 09 55 49 4e 54 20 20 20 4c 65 61 64 69 6e  ;..UINT   Leadin
3a40: 67 5a 65 72 6f 3b 0a 09 55 49 4e 54 20 20 20 47  gZero;..UINT   G
3a50: 72 6f 75 70 69 6e 67 3b 0a 09 4c 50 57 53 54 52  rouping;..LPWSTR
3a60: 20 6c 70 44 65 63 69 6d 61 6c 53 65 70 3b 0a 09   lpDecimalSep;..
3a70: 4c 50 57 53 54 52 20 6c 70 54 68 6f 75 73 61 6e  LPWSTR lpThousan
3a80: 64 53 65 70 3b 0a 09 55 49 4e 54 20 20 20 4e 65  dSep;..UINT   Ne
3a90: 67 61 74 69 76 65 4f 72 64 65 72 3b 0a 09 55 49  gativeOrder;..UI
3aa0: 4e 54 20 20 20 50 6f 73 69 74 69 76 65 4f 72 64  NT   PositiveOrd
3ab0: 65 72 3b 0a 09 4c 50 57 53 54 52 20 6c 70 43 75  er;..LPWSTR lpCu
3ac0: 72 72 65 6e 63 79 53 79 6d 62 6f 6c 3b 0a 7d 0a  rrencySymbol;.}.
3ad0: 61 6c 69 61 73 20 43 55 52 52 45 4e 43 59 46 4d  alias CURRENCYFM
3ae0: 54 57 2a 20 4c 50 43 55 52 52 45 4e 43 59 46 4d  TW* LPCURRENCYFM
3af0: 54 57 3b 0a 0a 73 74 72 75 63 74 20 4e 4c 53 56  TW;..struct NLSV
3b00: 45 52 53 49 4f 4e 49 4e 46 4f 20 7b 0a 09 44 57  ERSIONINFO {..DW
3b10: 4f 52 44 20 64 77 4e 4c 53 56 65 72 73 69 6f 6e  ORD dwNLSVersion
3b20: 49 6e 66 6f 53 69 7a 65 3b 0a 09 44 57 4f 52 44  InfoSize;..DWORD
3b30: 20 64 77 4e 4c 53 56 65 72 73 69 6f 6e 3b 0a 09   dwNLSVersion;..
3b40: 44 57 4f 52 44 20 64 77 44 65 66 69 6e 65 64 56  DWORD dwDefinedV
3b50: 65 72 73 69 6f 6e 3b 0a 7d 0a 61 6c 69 61 73 20  ersion;.}.alias 
3b60: 4e 4c 53 56 45 52 53 49 4f 4e 49 4e 46 4f 2a 20  NLSVERSIONINFO* 
3b70: 4c 50 4e 4c 53 56 45 52 53 49 4f 4e 49 4e 46 4f  LPNLSVERSIONINFO
3b80: 3b 0a 0a 73 74 72 75 63 74 20 4e 55 4d 42 45 52  ;..struct NUMBER
3b90: 46 4d 54 41 20 7b 0a 09 55 49 4e 54 20 20 4e 75  FMTA {..UINT  Nu
3ba0: 6d 44 69 67 69 74 73 3b 0a 09 55 49 4e 54 20 20  mDigits;..UINT  
3bb0: 4c 65 61 64 69 6e 67 5a 65 72 6f 3b 0a 09 55 49  LeadingZero;..UI
3bc0: 4e 54 20 20 47 72 6f 75 70 69 6e 67 3b 0a 09 4c  NT  Grouping;..L
3bd0: 50 53 54 52 20 6c 70 44 65 63 69 6d 61 6c 53 65  PSTR lpDecimalSe
3be0: 70 3b 0a 09 4c 50 53 54 52 20 6c 70 54 68 6f 75  p;..LPSTR lpThou
3bf0: 73 61 6e 64 53 65 70 3b 0a 09 55 49 4e 54 20 20  sandSep;..UINT  
3c00: 4e 65 67 61 74 69 76 65 4f 72 64 65 72 3b 0a 7d  NegativeOrder;.}
3c10: 0a 61 6c 69 61 73 20 4e 55 4d 42 45 52 46 4d 54  .alias NUMBERFMT
3c20: 41 2a 20 4c 50 4e 55 4d 42 45 52 46 4d 54 41 3b  A* LPNUMBERFMTA;
3c30: 0a 0a 73 74 72 75 63 74 20 4e 55 4d 42 45 52 46  ..struct NUMBERF
3c40: 4d 54 57 20 7b 0a 09 55 49 4e 54 20 20 20 4e 75  MTW {..UINT   Nu
3c50: 6d 44 69 67 69 74 73 3b 0a 09 55 49 4e 54 20 20  mDigits;..UINT  
3c60: 20 4c 65 61 64 69 6e 67 5a 65 72 6f 3b 0a 09 55   LeadingZero;..U
3c70: 49 4e 54 20 20 20 47 72 6f 75 70 69 6e 67 3b 0a  INT   Grouping;.
3c80: 09 4c 50 57 53 54 52 20 6c 70 44 65 63 69 6d 61  .LPWSTR lpDecima
3c90: 6c 53 65 70 3b 0a 09 4c 50 57 53 54 52 20 6c 70  lSep;..LPWSTR lp
3ca0: 54 68 6f 75 73 61 6e 64 53 65 70 3b 0a 09 55 49  ThousandSep;..UI
3cb0: 4e 54 20 20 20 4e 65 67 61 74 69 76 65 4f 72 64  NT   NegativeOrd
3cc0: 65 72 3b 0a 7d 0a 61 6c 69 61 73 20 4e 55 4d 42  er;.}.alias NUMB
3cd0: 45 52 46 4d 54 57 2a 20 4c 50 4e 55 4d 42 45 52  ERFMTW* LPNUMBER
3ce0: 46 4d 54 57 3b 0a 0a 65 78 74 65 72 6e 20 28 57  FMTW;..extern (W
3cf0: 69 6e 64 6f 77 73 29 20 7b 0a 09 69 6e 74 20 43  indows) {..int C
3d00: 6f 6d 70 61 72 65 53 74 72 69 6e 67 41 28 4c 43  ompareStringA(LC
3d10: 49 44 2c 20 44 57 4f 52 44 2c 20 4c 50 43 53 54  ID, DWORD, LPCST
3d20: 52 2c 20 69 6e 74 2c 20 4c 50 43 53 54 52 2c 20  R, int, LPCSTR, 
3d30: 69 6e 74 29 3b 0a 09 69 6e 74 20 43 6f 6d 70 61  int);..int Compa
3d40: 72 65 53 74 72 69 6e 67 57 28 4c 43 49 44 2c 20  reStringW(LCID, 
3d50: 44 57 4f 52 44 2c 20 4c 50 43 57 53 54 52 2c 20  DWORD, LPCWSTR, 
3d60: 69 6e 74 2c 20 4c 50 43 57 53 54 52 2c 20 69 6e  int, LPCWSTR, in
3d70: 74 29 3b 0a 09 4c 43 49 44 20 43 6f 6e 76 65 72  t);..LCID Conver
3d80: 74 44 65 66 61 75 6c 74 4c 6f 63 61 6c 65 28 4c  tDefaultLocale(L
3d90: 43 49 44 29 3b 0a 09 42 4f 4f 4c 20 45 6e 75 6d  CID);..BOOL Enum
3da0: 43 61 6c 65 6e 64 61 72 49 6e 66 6f 41 28 43 41  CalendarInfoA(CA
3db0: 4c 49 4e 46 4f 5f 45 4e 55 4d 50 52 4f 43 41 2c  LINFO_ENUMPROCA,
3dc0: 20 4c 43 49 44 2c 20 43 41 4c 49 44 2c 20 43 41   LCID, CALID, CA
3dd0: 4c 54 59 50 45 29 3b 0a 09 42 4f 4f 4c 20 45 6e  LTYPE);..BOOL En
3de0: 75 6d 43 61 6c 65 6e 64 61 72 49 6e 66 6f 57 28  umCalendarInfoW(
3df0: 43 41 4c 49 4e 46 4f 5f 45 4e 55 4d 50 52 4f 43  CALINFO_ENUMPROC
3e00: 57 2c 20 4c 43 49 44 2c 20 43 41 4c 49 44 2c 20  W, LCID, CALID, 
3e10: 43 41 4c 54 59 50 45 29 3b 0a 09 42 4f 4f 4c 20  CALTYPE);..BOOL 
3e20: 45 6e 75 6d 44 61 74 65 46 6f 72 6d 61 74 73 41  EnumDateFormatsA
3e30: 28 44 41 54 45 46 4d 54 5f 45 4e 55 4d 50 52 4f  (DATEFMT_ENUMPRO
3e40: 43 41 2c 20 4c 43 49 44 2c 20 44 57 4f 52 44 29  CA, LCID, DWORD)
3e50: 3b 0a 09 42 4f 4f 4c 20 45 6e 75 6d 44 61 74 65  ;..BOOL EnumDate
3e60: 46 6f 72 6d 61 74 73 57 28 44 41 54 45 46 4d 54  FormatsW(DATEFMT
3e70: 5f 45 4e 55 4d 50 52 4f 43 57 2c 20 4c 43 49 44  _ENUMPROCW, LCID
3e80: 2c 20 44 57 4f 52 44 29 3b 0a 09 42 4f 4f 4c 20  , DWORD);..BOOL 
3e90: 45 6e 75 6d 53 79 73 74 65 6d 43 6f 64 65 50 61  EnumSystemCodePa
3ea0: 67 65 73 41 28 43 4f 44 45 50 41 47 45 5f 45 4e  gesA(CODEPAGE_EN
3eb0: 55 4d 50 52 4f 43 41 2c 20 44 57 4f 52 44 29 3b  UMPROCA, DWORD);
3ec0: 0a 09 42 4f 4f 4c 20 45 6e 75 6d 53 79 73 74 65  ..BOOL EnumSyste
3ed0: 6d 43 6f 64 65 50 61 67 65 73 57 28 43 4f 44 45  mCodePagesW(CODE
3ee0: 50 41 47 45 5f 45 4e 55 4d 50 52 4f 43 57 2c 20  PAGE_ENUMPROCW, 
3ef0: 44 57 4f 52 44 29 3b 0a 09 42 4f 4f 4c 20 45 6e  DWORD);..BOOL En
3f00: 75 6d 53 79 73 74 65 6d 47 65 6f 49 44 28 47 45  umSystemGeoID(GE
3f10: 4f 43 4c 41 53 53 2c 20 47 45 4f 49 44 2c 20 47  OCLASS, GEOID, G
3f20: 45 4f 5f 45 4e 55 4d 50 52 4f 43 29 3b 0a 09 42  EO_ENUMPROC);..B
3f30: 4f 4f 4c 20 45 6e 75 6d 53 79 73 74 65 6d 4c 6f  OOL EnumSystemLo
3f40: 63 61 6c 65 73 41 28 4c 4f 43 41 4c 45 5f 45 4e  calesA(LOCALE_EN
3f50: 55 4d 50 52 4f 43 41 2c 20 44 57 4f 52 44 29 3b  UMPROCA, DWORD);
3f60: 0a 09 42 4f 4f 4c 20 45 6e 75 6d 53 79 73 74 65  ..BOOL EnumSyste
3f70: 6d 4c 6f 63 61 6c 65 73 57 28 4c 4f 43 41 4c 45  mLocalesW(LOCALE
3f80: 5f 45 4e 55 4d 50 52 4f 43 57 2c 20 44 57 4f 52  _ENUMPROCW, DWOR
3f90: 44 29 3b 0a 09 42 4f 4f 4c 20 45 6e 75 6d 54 69  D);..BOOL EnumTi
3fa0: 6d 65 46 6f 72 6d 61 74 73 41 28 54 49 4d 45 46  meFormatsA(TIMEF
3fb0: 4d 54 5f 45 4e 55 4d 50 52 4f 43 41 2c 20 4c 43  MT_ENUMPROCA, LC
3fc0: 49 44 2c 20 44 57 4f 52 44 29 3b 0a 09 42 4f 4f  ID, DWORD);..BOO
3fd0: 4c 20 45 6e 75 6d 54 69 6d 65 46 6f 72 6d 61 74  L EnumTimeFormat
3fe0: 73 57 28 54 49 4d 45 46 4d 54 5f 45 4e 55 4d 50  sW(TIMEFMT_ENUMP
3ff0: 52 4f 43 57 2c 20 4c 43 49 44 2c 20 44 57 4f 52  ROCW, LCID, DWOR
4000: 44 29 3b 0a 09 69 6e 74 20 46 6f 6c 64 53 74 72  D);..int FoldStr
4010: 69 6e 67 41 28 44 57 4f 52 44 2c 20 4c 50 43 53  ingA(DWORD, LPCS
4020: 54 52 2c 20 69 6e 74 2c 20 4c 50 53 54 52 2c 20  TR, int, LPSTR, 
4030: 69 6e 74 29 3b 0a 09 69 6e 74 20 46 6f 6c 64 53  int);..int FoldS
4040: 74 72 69 6e 67 57 28 44 57 4f 52 44 2c 20 4c 50  tringW(DWORD, LP
4050: 43 57 53 54 52 2c 20 69 6e 74 2c 20 4c 50 57 53  CWSTR, int, LPWS
4060: 54 52 2c 20 69 6e 74 29 3b 0a 09 55 49 4e 54 20  TR, int);..UINT 
4070: 47 65 74 41 43 50 28 29 3b 0a 09 69 6e 74 20 47  GetACP();..int G
4080: 65 74 43 61 6c 65 6e 64 61 72 49 6e 66 6f 41 28  etCalendarInfoA(
4090: 4c 43 49 44 2c 20 43 41 4c 49 44 2c 20 43 41 4c  LCID, CALID, CAL
40a0: 54 59 50 45 2c 20 4c 50 53 54 52 2c 20 69 6e 74  TYPE, LPSTR, int
40b0: 2c 20 4c 50 44 57 4f 52 44 29 3b 0a 09 69 6e 74  , LPDWORD);..int
40c0: 20 47 65 74 43 61 6c 65 6e 64 61 72 49 6e 66 6f   GetCalendarInfo
40d0: 57 28 4c 43 49 44 2c 20 43 41 4c 49 44 2c 20 43  W(LCID, CALID, C
40e0: 41 4c 54 59 50 45 2c 20 4c 50 57 53 54 52 2c 20  ALTYPE, LPWSTR, 
40f0: 69 6e 74 2c 20 4c 50 44 57 4f 52 44 29 3b 0a 09  int, LPDWORD);..
4100: 42 4f 4f 4c 20 47 65 74 43 50 49 6e 66 6f 28 55  BOOL GetCPInfo(U
4110: 49 4e 54 2c 20 4c 50 43 50 49 4e 46 4f 29 3b 0a  INT, LPCPINFO);.
4120: 09 42 4f 4f 4c 20 47 65 74 43 50 49 6e 66 6f 45  .BOOL GetCPInfoE
4130: 78 41 28 55 49 4e 54 2c 20 44 57 4f 52 44 2c 20  xA(UINT, DWORD, 
4140: 4c 50 43 50 49 4e 46 4f 45 58 41 29 3b 0a 09 42  LPCPINFOEXA);..B
4150: 4f 4f 4c 20 47 65 74 43 50 49 6e 66 6f 45 78 57  OOL GetCPInfoExW
4160: 28 55 49 4e 54 2c 20 44 57 4f 52 44 2c 20 4c 50  (UINT, DWORD, LP
4170: 43 50 49 4e 46 4f 45 58 57 29 3b 0a 09 69 6e 74  CPINFOEXW);..int
4180: 20 47 65 74 43 75 72 72 65 6e 63 79 46 6f 72 6d   GetCurrencyForm
4190: 61 74 41 28 4c 43 49 44 2c 20 44 57 4f 52 44 2c  atA(LCID, DWORD,
41a0: 20 4c 50 43 53 54 52 2c 20 20 43 50 74 72 21 28   LPCSTR,  CPtr!(
41b0: 43 55 52 52 45 4e 43 59 46 4d 54 41 29 2c 20 4c  CURRENCYFMTA), L
41c0: 50 53 54 52 2c 20 69 6e 74 29 3b 0a 09 69 6e 74  PSTR, int);..int
41d0: 20 47 65 74 43 75 72 72 65 6e 63 79 46 6f 72 6d   GetCurrencyForm
41e0: 61 74 57 28 4c 43 49 44 2c 20 44 57 4f 52 44 2c  atW(LCID, DWORD,
41f0: 20 4c 50 43 57 53 54 52 2c 20 20 43 50 74 72 21   LPCWSTR,  CPtr!
4200: 28 43 55 52 52 45 4e 43 59 46 4d 54 57 29 2c 20  (CURRENCYFMTW), 
4210: 4c 50 57 53 54 52 2c 0a 09 20 20 69 6e 74 29 3b  LPWSTR,..  int);
4220: 0a 09 69 6e 74 20 47 65 74 44 61 74 65 46 6f 72  ..int GetDateFor
4230: 6d 61 74 41 28 4c 43 49 44 2c 20 44 57 4f 52 44  matA(LCID, DWORD
4240: 2c 20 20 43 50 74 72 21 28 53 59 53 54 45 4d 54  ,  CPtr!(SYSTEMT
4250: 49 4d 45 29 2c 20 4c 50 43 53 54 52 2c 20 4c 50  IME), LPCSTR, LP
4260: 53 54 52 2c 20 69 6e 74 29 3b 0a 09 69 6e 74 20  STR, int);..int 
4270: 47 65 74 44 61 74 65 46 6f 72 6d 61 74 57 28 4c  GetDateFormatW(L
4280: 43 49 44 2c 20 44 57 4f 52 44 2c 20 20 43 50 74  CID, DWORD,  CPt
4290: 72 21 28 53 59 53 54 45 4d 54 49 4d 45 29 2c 20  r!(SYSTEMTIME), 
42a0: 4c 50 43 57 53 54 52 2c 20 4c 50 57 53 54 52 2c  LPCWSTR, LPWSTR,
42b0: 20 69 6e 74 29 3b 0a 09 69 6e 74 20 47 65 74 47   int);..int GetG
42c0: 65 6f 49 6e 66 6f 41 28 47 45 4f 49 44 2c 20 47  eoInfoA(GEOID, G
42d0: 45 4f 54 59 50 45 2c 20 4c 50 53 54 52 2c 20 69  EOTYPE, LPSTR, i
42e0: 6e 74 2c 20 4c 41 4e 47 49 44 29 3b 0a 09 69 6e  nt, LANGID);..in
42f0: 74 20 47 65 74 47 65 6f 49 6e 66 6f 57 28 47 45  t GetGeoInfoW(GE
4300: 4f 49 44 2c 20 47 45 4f 54 59 50 45 2c 20 4c 50  OID, GEOTYPE, LP
4310: 57 53 54 52 2c 20 69 6e 74 2c 20 4c 41 4e 47 49  WSTR, int, LANGI
4320: 44 29 3b 0a 09 69 6e 74 20 47 65 74 4c 6f 63 61  D);..int GetLoca
4330: 6c 65 49 6e 66 6f 41 28 4c 43 49 44 2c 20 4c 43  leInfoA(LCID, LC
4340: 54 59 50 45 2c 20 4c 50 53 54 52 2c 20 69 6e 74  TYPE, LPSTR, int
4350: 29 3b 0a 09 69 6e 74 20 47 65 74 4c 6f 63 61 6c  );..int GetLocal
4360: 65 49 6e 66 6f 57 28 4c 43 49 44 2c 20 4c 43 54  eInfoW(LCID, LCT
4370: 59 50 45 2c 20 4c 50 57 53 54 52 2c 20 69 6e 74  YPE, LPWSTR, int
4380: 29 3b 0a 09 42 4f 4f 4c 20 47 65 74 4e 4c 53 56  );..BOOL GetNLSV
4390: 65 72 73 69 6f 6e 28 4e 4c 53 5f 46 55 4e 43 54  ersion(NLS_FUNCT
43a0: 49 4f 4e 2c 20 4c 43 49 44 2c 20 4c 50 4e 4c 53  ION, LCID, LPNLS
43b0: 56 45 52 53 49 4f 4e 49 4e 46 4f 29 3b 0a 09 69  VERSIONINFO);..i
43c0: 6e 74 20 47 65 74 4e 75 6d 62 65 72 46 6f 72 6d  nt GetNumberForm
43d0: 61 74 41 28 4c 43 49 44 2c 20 44 57 4f 52 44 2c  atA(LCID, DWORD,
43e0: 20 4c 50 43 53 54 52 2c 20 20 43 50 74 72 21 28   LPCSTR,  CPtr!(
43f0: 4e 55 4d 42 45 52 46 4d 54 41 29 2c 20 4c 50 53  NUMBERFMTA), LPS
4400: 54 52 2c 20 69 6e 74 29 3b 0a 09 69 6e 74 20 47  TR, int);..int G
4410: 65 74 4e 75 6d 62 65 72 46 6f 72 6d 61 74 57 28  etNumberFormatW(
4420: 4c 43 49 44 2c 20 44 57 4f 52 44 2c 20 4c 50 43  LCID, DWORD, LPC
4430: 57 53 54 52 2c 20 20 43 50 74 72 21 28 4e 55 4d  WSTR,  CPtr!(NUM
4440: 42 45 52 46 4d 54 57 29 2c 20 4c 50 57 53 54 52  BERFMTW), LPWSTR
4450: 2c 20 69 6e 74 29 3b 0a 09 55 49 4e 54 20 47 65  , int);..UINT Ge
4460: 74 4f 45 4d 43 50 28 29 3b 0a 09 42 4f 4f 4c 20  tOEMCP();..BOOL 
4470: 47 65 74 53 74 72 69 6e 67 54 79 70 65 41 28 4c  GetStringTypeA(L
4480: 43 49 44 2c 20 44 57 4f 52 44 2c 20 4c 50 43 53  CID, DWORD, LPCS
4490: 54 52 2c 20 69 6e 74 2c 20 4c 50 57 4f 52 44 29  TR, int, LPWORD)
44a0: 3b 0a 09 42 4f 4f 4c 20 47 65 74 53 74 72 69 6e  ;..BOOL GetStrin
44b0: 67 54 79 70 65 57 28 44 57 4f 52 44 2c 20 4c 50  gTypeW(DWORD, LP
44c0: 43 57 53 54 52 2c 20 69 6e 74 2c 20 4c 50 57 4f  CWSTR, int, LPWO
44d0: 52 44 29 3b 0a 09 42 4f 4f 4c 20 47 65 74 53 74  RD);..BOOL GetSt
44e0: 72 69 6e 67 54 79 70 65 45 78 41 28 4c 43 49 44  ringTypeExA(LCID
44f0: 2c 20 44 57 4f 52 44 2c 20 4c 50 43 53 54 52 2c  , DWORD, LPCSTR,
4500: 20 69 6e 74 2c 20 4c 50 57 4f 52 44 29 3b 0a 09   int, LPWORD);..
4510: 42 4f 4f 4c 20 47 65 74 53 74 72 69 6e 67 54 79  BOOL GetStringTy
4520: 70 65 45 78 57 28 4c 43 49 44 2c 20 44 57 4f 52  peExW(LCID, DWOR
4530: 44 2c 20 4c 50 43 57 53 54 52 2c 20 69 6e 74 2c  D, LPCWSTR, int,
4540: 20 4c 50 57 4f 52 44 29 3b 0a 09 4c 41 4e 47 49   LPWORD);..LANGI
4550: 44 20 47 65 74 53 79 73 74 65 6d 44 65 66 61 75  D GetSystemDefau
4560: 6c 74 4c 61 6e 67 49 44 28 29 3b 0a 09 4c 43 49  ltLangID();..LCI
4570: 44 20 47 65 74 53 79 73 74 65 6d 44 65 66 61 75  D GetSystemDefau
4580: 6c 74 4c 43 49 44 28 29 3b 0a 09 4c 43 49 44 20  ltLCID();..LCID 
4590: 47 65 74 54 68 72 65 61 64 4c 6f 63 61 6c 65 28  GetThreadLocale(
45a0: 29 3b 0a 09 69 6e 74 20 47 65 74 54 69 6d 65 46  );..int GetTimeF
45b0: 6f 72 6d 61 74 41 28 4c 43 49 44 2c 20 44 57 4f  ormatA(LCID, DWO
45c0: 52 44 2c 20 20 43 50 74 72 21 28 53 59 53 54 45  RD,  CPtr!(SYSTE
45d0: 4d 54 49 4d 45 29 2c 20 4c 50 43 53 54 52 2c 20  MTIME), LPCSTR, 
45e0: 4c 50 53 54 52 2c 20 69 6e 74 29 3b 0a 09 69 6e  LPSTR, int);..in
45f0: 74 20 47 65 74 54 69 6d 65 46 6f 72 6d 61 74 57  t GetTimeFormatW
4600: 28 4c 43 49 44 2c 20 44 57 4f 52 44 2c 20 20 43  (LCID, DWORD,  C
4610: 50 74 72 21 28 53 59 53 54 45 4d 54 49 4d 45 29  Ptr!(SYSTEMTIME)
4620: 2c 20 4c 50 43 57 53 54 52 2c 20 4c 50 57 53 54  , LPCWSTR, LPWST
4630: 52 2c 20 69 6e 74 29 3b 0a 09 4c 41 4e 47 49 44  R, int);..LANGID
4640: 20 47 65 74 55 73 65 72 44 65 66 61 75 6c 74 4c   GetUserDefaultL
4650: 61 6e 67 49 44 28 29 3b 0a 09 4c 43 49 44 20 47  angID();..LCID G
4660: 65 74 55 73 65 72 44 65 66 61 75 6c 74 4c 43 49  etUserDefaultLCI
4670: 44 28 29 3b 0a 09 47 45 4f 49 44 20 47 65 74 55  D();..GEOID GetU
4680: 73 65 72 47 65 6f 49 44 28 47 45 4f 43 4c 41 53  serGeoID(GEOCLAS
4690: 53 29 3b 0a 09 42 4f 4f 4c 20 49 73 44 42 43 53  S);..BOOL IsDBCS
46a0: 4c 65 61 64 42 79 74 65 28 42 59 54 45 29 3b 0a  LeadByte(BYTE);.
46b0: 09 42 4f 4f 4c 20 49 73 44 42 43 53 4c 65 61 64  .BOOL IsDBCSLead
46c0: 42 79 74 65 45 78 28 55 49 4e 54 2c 20 42 59 54  ByteEx(UINT, BYT
46d0: 45 29 3b 0a 09 42 4f 4f 4c 20 49 73 4e 4c 53 44  E);..BOOL IsNLSD
46e0: 65 66 69 6e 65 64 53 74 72 69 6e 67 28 4e 4c 53  efinedString(NLS
46f0: 5f 46 55 4e 43 54 49 4f 4e 2c 20 44 57 4f 52 44  _FUNCTION, DWORD
4700: 2c 20 4c 50 4e 4c 53 56 45 52 53 49 4f 4e 49 4e  , LPNLSVERSIONIN
4710: 46 4f 2c 20 4c 50 43 57 53 54 52 2c 0a 09 20 20  FO, LPCWSTR,..  
4720: 69 6e 74 29 3b 0a 09 42 4f 4f 4c 20 49 73 56 61  int);..BOOL IsVa
4730: 6c 69 64 43 6f 64 65 50 61 67 65 28 55 49 4e 54  lidCodePage(UINT
4740: 29 3b 0a 09 42 4f 4f 4c 20 49 73 56 61 6c 69 64  );..BOOL IsValid
4750: 4c 6f 63 61 6c 65 28 4c 43 49 44 2c 20 44 57 4f  Locale(LCID, DWO
4760: 52 44 29 3b 0a 09 69 6e 74 20 4c 43 4d 61 70 53  RD);..int LCMapS
4770: 74 72 69 6e 67 41 28 4c 43 49 44 2c 20 44 57 4f  tringA(LCID, DWO
4780: 52 44 2c 20 4c 50 43 53 54 52 2c 20 69 6e 74 2c  RD, LPCSTR, int,
4790: 20 4c 50 53 54 52 2c 20 69 6e 74 29 3b 0a 09 69   LPSTR, int);..i
47a0: 6e 74 20 4c 43 4d 61 70 53 74 72 69 6e 67 57 28  nt LCMapStringW(
47b0: 4c 43 49 44 2c 20 44 57 4f 52 44 2c 20 4c 50 43  LCID, DWORD, LPC
47c0: 57 53 54 52 2c 20 69 6e 74 2c 20 4c 50 57 53 54  WSTR, int, LPWST
47d0: 52 2c 20 69 6e 74 29 3b 0a 09 69 6e 74 20 4d 75  R, int);..int Mu
47e0: 6c 74 69 42 79 74 65 54 6f 57 69 64 65 43 68 61  ltiByteToWideCha
47f0: 72 28 55 49 4e 54 2c 20 44 57 4f 52 44 2c 20 4c  r(UINT, DWORD, L
4800: 50 43 53 54 52 2c 20 69 6e 74 2c 20 4c 50 57 53  PCSTR, int, LPWS
4810: 54 52 2c 20 69 6e 74 29 3b 0a 09 69 6e 74 20 53  TR, int);..int S
4820: 65 74 43 61 6c 65 6e 64 61 72 49 6e 66 6f 41 28  etCalendarInfoA(
4830: 4c 43 49 44 2c 20 43 41 4c 49 44 2c 20 43 41 4c  LCID, CALID, CAL
4840: 54 59 50 45 2c 20 4c 50 43 53 54 52 29 3b 0a 09  TYPE, LPCSTR);..
4850: 69 6e 74 20 53 65 74 43 61 6c 65 6e 64 61 72 49  int SetCalendarI
4860: 6e 66 6f 57 28 4c 43 49 44 2c 20 43 41 4c 49 44  nfoW(LCID, CALID
4870: 2c 20 43 41 4c 54 59 50 45 2c 20 4c 50 43 57 53  , CALTYPE, LPCWS
4880: 54 52 29 3b 0a 09 42 4f 4f 4c 20 53 65 74 4c 6f  TR);..BOOL SetLo
4890: 63 61 6c 65 49 6e 66 6f 41 28 4c 43 49 44 2c 20  caleInfoA(LCID, 
48a0: 4c 43 54 59 50 45 2c 20 4c 50 43 53 54 52 29 3b  LCTYPE, LPCSTR);
48b0: 0a 09 42 4f 4f 4c 20 53 65 74 4c 6f 63 61 6c 65  ..BOOL SetLocale
48c0: 49 6e 66 6f 57 28 4c 43 49 44 2c 20 4c 43 54 59  InfoW(LCID, LCTY
48d0: 50 45 2c 20 4c 50 43 57 53 54 52 29 3b 0a 09 42  PE, LPCWSTR);..B
48e0: 4f 4f 4c 20 53 65 74 54 68 72 65 61 64 4c 6f 63  OOL SetThreadLoc
48f0: 61 6c 65 28 4c 43 49 44 29 3b 0a 09 42 4f 4f 4c  ale(LCID);..BOOL
4900: 20 53 65 74 55 73 65 72 47 65 6f 49 44 28 47 45   SetUserGeoID(GE
4910: 4f 49 44 29 3b 0a 09 69 6e 74 20 57 69 64 65 43  OID);..int WideC
4920: 68 61 72 54 6f 4d 75 6c 74 69 42 79 74 65 28 55  harToMultiByte(U
4930: 49 4e 54 2c 20 44 57 4f 52 44 2c 20 4c 50 43 57  INT, DWORD, LPCW
4940: 53 54 52 2c 20 69 6e 74 2c 20 4c 50 53 54 52 2c  STR, int, LPSTR,
4950: 20 69 6e 74 2c 20 4c 50 43 53 54 52 2c 0a 09 20   int, LPCSTR,.. 
4960: 20 4c 50 42 4f 4f 4c 29 3b 0a 0a 09 73 74 61 74   LPBOOL);...stat
4970: 69 63 20 69 66 20 28 57 49 4e 56 45 52 20 3e 3d  ic if (WINVER >=
4980: 20 30 78 34 31 30 29 20 7b 0a 09 09 42 4f 4f 4c   0x410) {...BOOL
4990: 20 45 6e 75 6d 43 61 6c 65 6e 64 61 72 49 6e 66   EnumCalendarInf
49a0: 6f 45 78 41 28 43 41 4c 49 4e 46 4f 5f 45 4e 55  oExA(CALINFO_ENU
49b0: 4d 50 52 4f 43 45 58 41 2c 20 4c 43 49 44 2c 20  MPROCEXA, LCID, 
49c0: 43 41 4c 49 44 2c 20 43 41 4c 54 59 50 45 29 3b  CALID, CALTYPE);
49d0: 0a 09 09 42 4f 4f 4c 20 45 6e 75 6d 43 61 6c 65  ...BOOL EnumCale
49e0: 6e 64 61 72 49 6e 66 6f 45 78 57 28 43 41 4c 49  ndarInfoExW(CALI
49f0: 4e 46 4f 5f 45 4e 55 4d 50 52 4f 43 45 58 57 2c  NFO_ENUMPROCEXW,
4a00: 20 4c 43 49 44 2c 20 43 41 4c 49 44 2c 20 43 41   LCID, CALID, CA
4a10: 4c 54 59 50 45 29 3b 0a 09 09 42 4f 4f 4c 20 45  LTYPE);...BOOL E
4a20: 6e 75 6d 44 61 74 65 46 6f 72 6d 61 74 73 45 78  numDateFormatsEx
4a30: 41 28 44 41 54 45 46 4d 54 5f 45 4e 55 4d 50 52  A(DATEFMT_ENUMPR
4a40: 4f 43 45 58 41 2c 20 4c 43 49 44 2c 20 44 57 4f  OCEXA, LCID, DWO
4a50: 52 44 29 3b 0a 09 09 42 4f 4f 4c 20 45 6e 75 6d  RD);...BOOL Enum
4a60: 44 61 74 65 46 6f 72 6d 61 74 73 45 78 57 28 44  DateFormatsExW(D
4a70: 41 54 45 46 4d 54 5f 45 4e 55 4d 50 52 4f 43 45  ATEFMT_ENUMPROCE
4a80: 58 57 2c 20 4c 43 49 44 2c 20 44 57 4f 52 44 29  XW, LCID, DWORD)
4a90: 3b 0a 09 09 42 4f 4f 4c 20 49 73 56 61 6c 69 64  ;...BOOL IsValid
4aa0: 4c 61 6e 67 75 61 67 65 47 72 6f 75 70 28 4c 47  LanguageGroup(LG
4ab0: 52 50 49 44 2c 20 44 57 4f 52 44 29 3b 0a 09 7d  RPID, DWORD);..}
4ac0: 0a 0a 09 73 74 61 74 69 63 20 69 66 20 28 57 49  ...static if (WI
4ad0: 4e 56 45 52 20 3e 3d 20 30 78 35 30 30 29 20 7b  NVER >= 0x500) {
4ae0: 0a 09 09 4c 41 4e 47 49 44 20 47 65 74 53 79 73  ...LANGID GetSys
4af0: 74 65 6d 44 65 66 61 75 6c 74 55 49 4c 61 6e 67  temDefaultUILang
4b00: 75 61 67 65 28 29 3b 0a 09 09 4c 41 4e 47 49 44  uage();...LANGID
4b10: 20 47 65 74 55 73 65 72 44 65 66 61 75 6c 74 55   GetUserDefaultU
4b20: 49 4c 61 6e 67 75 61 67 65 28 29 3b 0a 0a 09 09  ILanguage();....
4b30: 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e 33  static if (_WIN3
4b40: 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 29 20 7b 0a  2_WINNT_ONLY) {.
4b50: 09 09 09 42 4f 4f 4c 20 45 6e 75 6d 53 79 73 74  ...BOOL EnumSyst
4b60: 65 6d 4c 61 6e 67 75 61 67 65 47 72 6f 75 70 73  emLanguageGroups
4b70: 41 28 4c 41 4e 47 55 41 47 45 47 52 4f 55 50 5f  A(LANGUAGEGROUP_
4b80: 45 4e 55 4d 50 52 4f 43 41 2c 20 44 57 4f 52 44  ENUMPROCA, DWORD
4b90: 2c 0a 09 09 09 20 20 4c 4f 4e 47 5f 50 54 52 29  ,....  LONG_PTR)
4ba0: 3b 0a 09 09 09 42 4f 4f 4c 20 45 6e 75 6d 53 79  ;....BOOL EnumSy
4bb0: 73 74 65 6d 4c 61 6e 67 75 61 67 65 47 72 6f 75  stemLanguageGrou
4bc0: 70 73 57 28 4c 41 4e 47 55 41 47 45 47 52 4f 55  psW(LANGUAGEGROU
4bd0: 50 5f 45 4e 55 4d 50 52 4f 43 57 2c 20 44 57 4f  P_ENUMPROCW, DWO
4be0: 52 44 2c 0a 09 09 09 20 20 4c 4f 4e 47 5f 50 54  RD,....  LONG_PT
4bf0: 52 29 3b 0a 09 09 09 42 4f 4f 4c 20 45 6e 75 6d  R);....BOOL Enum
4c00: 4c 61 6e 67 75 61 67 65 47 72 6f 75 70 4c 6f 63  LanguageGroupLoc
4c10: 61 6c 65 73 41 28 4c 41 4e 47 47 52 4f 55 50 4c  alesA(LANGGROUPL
4c20: 4f 43 41 4c 45 5f 45 4e 55 4d 50 52 4f 43 41 2c  OCALE_ENUMPROCA,
4c30: 20 4c 47 52 50 49 44 2c 0a 09 09 09 20 20 44 57   LGRPID,....  DW
4c40: 4f 52 44 2c 20 4c 4f 4e 47 5f 50 54 52 29 3b 0a  ORD, LONG_PTR);.
4c50: 09 09 09 42 4f 4f 4c 20 45 6e 75 6d 4c 61 6e 67  ...BOOL EnumLang
4c60: 75 61 67 65 47 72 6f 75 70 4c 6f 63 61 6c 65 73  uageGroupLocales
4c70: 57 28 4c 41 4e 47 47 52 4f 55 50 4c 4f 43 41 4c  W(LANGGROUPLOCAL
4c80: 45 5f 45 4e 55 4d 50 52 4f 43 57 2c 20 4c 47 52  E_ENUMPROCW, LGR
4c90: 50 49 44 2c 0a 09 09 09 20 20 44 57 4f 52 44 2c  PID,....  DWORD,
4ca0: 20 4c 4f 4e 47 5f 50 54 52 29 3b 0a 09 09 09 42   LONG_PTR);....B
4cb0: 4f 4f 4c 20 45 6e 75 6d 55 49 4c 61 6e 67 75 61  OOL EnumUILangua
4cc0: 67 65 73 41 28 55 49 4c 41 4e 47 55 41 47 45 5f  gesA(UILANGUAGE_
4cd0: 45 4e 55 4d 50 52 4f 43 41 2c 20 44 57 4f 52 44  ENUMPROCA, DWORD
4ce0: 2c 20 4c 4f 4e 47 5f 50 54 52 29 3b 0a 09 09 09  , LONG_PTR);....
4cf0: 42 4f 4f 4c 20 45 6e 75 6d 55 49 4c 61 6e 67 75  BOOL EnumUILangu
4d00: 61 67 65 73 57 28 55 49 4c 41 4e 47 55 41 47 45  agesW(UILANGUAGE
4d10: 5f 45 4e 55 4d 50 52 4f 43 57 2c 20 44 57 4f 52  _ENUMPROCW, DWOR
4d20: 44 2c 20 4c 4f 4e 47 5f 50 54 52 29 3b 0a 09 09  D, LONG_PTR);...
4d30: 7d 0a 09 7d 0a 7d 0a 0a 76 65 72 73 69 6f 6e 20  }..}.}..version 
4d40: 28 55 6e 69 63 6f 64 65 29 20 7b 0a 09 61 6c 69  (Unicode) {..ali
4d50: 61 73 20 43 41 4c 49 4e 46 4f 5f 45 4e 55 4d 50  as CALINFO_ENUMP
4d60: 52 4f 43 57 20 43 41 4c 49 4e 46 4f 5f 45 4e 55  ROCW CALINFO_ENU
4d70: 4d 50 52 4f 43 3b 0a 09 61 6c 69 61 73 20 43 41  MPROC;..alias CA
4d80: 4c 49 4e 46 4f 5f 45 4e 55 4d 50 52 4f 43 45 58  LINFO_ENUMPROCEX
4d90: 57 20 43 41 4c 49 4e 46 4f 5f 45 4e 55 4d 50 52  W CALINFO_ENUMPR
4da0: 4f 43 45 58 3b 0a 09 61 6c 69 61 73 20 4c 4f 43  OCEX;..alias LOC
4db0: 41 4c 45 5f 45 4e 55 4d 50 52 4f 43 57 20 4c 4f  ALE_ENUMPROCW LO
4dc0: 43 41 4c 45 5f 45 4e 55 4d 50 52 4f 43 3b 0a 09  CALE_ENUMPROC;..
4dd0: 61 6c 69 61 73 20 43 4f 44 45 50 41 47 45 5f 45  alias CODEPAGE_E
4de0: 4e 55 4d 50 52 4f 43 57 20 43 4f 44 45 50 41 47  NUMPROCW CODEPAG
4df0: 45 5f 45 4e 55 4d 50 52 4f 43 3b 0a 09 61 6c 69  E_ENUMPROC;..ali
4e00: 61 73 20 44 41 54 45 46 4d 54 5f 45 4e 55 4d 50  as DATEFMT_ENUMP
4e10: 52 4f 43 57 20 44 41 54 45 46 4d 54 5f 45 4e 55  ROCW DATEFMT_ENU
4e20: 4d 50 52 4f 43 3b 0a 09 61 6c 69 61 73 20 44 41  MPROC;..alias DA
4e30: 54 45 46 4d 54 5f 45 4e 55 4d 50 52 4f 43 45 58  TEFMT_ENUMPROCEX
4e40: 57 20 44 41 54 45 46 4d 54 5f 45 4e 55 4d 50 52  W DATEFMT_ENUMPR
4e50: 4f 43 45 58 3b 0a 09 61 6c 69 61 73 20 54 49 4d  OCEX;..alias TIM
4e60: 45 46 4d 54 5f 45 4e 55 4d 50 52 4f 43 57 20 54  EFMT_ENUMPROCW T
4e70: 49 4d 45 46 4d 54 5f 45 4e 55 4d 50 52 4f 43 3b  IMEFMT_ENUMPROC;
4e80: 0a 09 61 6c 69 61 73 20 4c 41 4e 47 55 41 47 45  ..alias LANGUAGE
4e90: 47 52 4f 55 50 5f 45 4e 55 4d 50 52 4f 43 57 20  GROUP_ENUMPROCW 
4ea0: 4c 41 4e 47 55 41 47 45 47 52 4f 55 50 5f 45 4e  LANGUAGEGROUP_EN
4eb0: 55 4d 50 52 4f 43 3b 0a 09 61 6c 69 61 73 20 4c  UMPROC;..alias L
4ec0: 41 4e 47 47 52 4f 55 50 4c 4f 43 41 4c 45 5f 45  ANGGROUPLOCALE_E
4ed0: 4e 55 4d 50 52 4f 43 57 20 4c 41 4e 47 47 52 4f  NUMPROCW LANGGRO
4ee0: 55 50 4c 4f 43 41 4c 45 5f 45 4e 55 4d 50 52 4f  UPLOCALE_ENUMPRO
4ef0: 43 3b 0a 09 61 6c 69 61 73 20 55 49 4c 41 4e 47  C;..alias UILANG
4f00: 55 41 47 45 5f 45 4e 55 4d 50 52 4f 43 57 20 55  UAGE_ENUMPROCW U
4f10: 49 4c 41 4e 47 55 41 47 45 5f 45 4e 55 4d 50 52  ILANGUAGE_ENUMPR
4f20: 4f 43 3b 0a 09 61 6c 69 61 73 20 43 50 49 4e 46  OC;..alias CPINF
4f30: 4f 45 58 57 20 43 50 49 4e 46 4f 45 58 3b 0a 09  OEXW CPINFOEX;..
4f40: 61 6c 69 61 73 20 4c 50 43 50 49 4e 46 4f 45 58  alias LPCPINFOEX
4f50: 57 20 4c 50 43 50 49 4e 46 4f 45 58 3b 0a 09 61  W LPCPINFOEX;..a
4f60: 6c 69 61 73 20 43 55 52 52 45 4e 43 59 46 4d 54  lias CURRENCYFMT
4f70: 57 20 43 55 52 52 45 4e 43 59 46 4d 54 3b 0a 09  W CURRENCYFMT;..
4f80: 61 6c 69 61 73 20 4c 50 43 55 52 52 45 4e 43 59  alias LPCURRENCY
4f90: 46 4d 54 57 20 4c 50 43 55 52 52 45 4e 43 59 46  FMTW LPCURRENCYF
4fa0: 4d 54 3b 0a 09 61 6c 69 61 73 20 4e 55 4d 42 45  MT;..alias NUMBE
4fb0: 52 46 4d 54 57 20 4e 55 4d 42 45 52 46 4d 54 3b  RFMTW NUMBERFMT;
4fc0: 0a 09 61 6c 69 61 73 20 4c 50 4e 55 4d 42 45 52  ..alias LPNUMBER
4fd0: 46 4d 54 57 20 4c 50 4e 55 4d 42 45 52 46 4d 54  FMTW LPNUMBERFMT
4fe0: 3b 0a 09 61 6c 69 61 73 20 43 6f 6d 70 61 72 65  ;..alias Compare
4ff0: 53 74 72 69 6e 67 57 20 43 6f 6d 70 61 72 65 53  StringW CompareS
5000: 74 72 69 6e 67 3b 0a 09 61 6c 69 61 73 20 45 6e  tring;..alias En
5010: 75 6d 43 61 6c 65 6e 64 61 72 49 6e 66 6f 57 20  umCalendarInfoW 
5020: 45 6e 75 6d 43 61 6c 65 6e 64 61 72 49 6e 66 6f  EnumCalendarInfo
5030: 3b 0a 09 61 6c 69 61 73 20 45 6e 75 6d 53 79 73  ;..alias EnumSys
5040: 74 65 6d 43 6f 64 65 50 61 67 65 73 57 20 45 6e  temCodePagesW En
5050: 75 6d 53 79 73 74 65 6d 43 6f 64 65 50 61 67 65  umSystemCodePage
5060: 73 3b 0a 09 61 6c 69 61 73 20 45 6e 75 6d 53 79  s;..alias EnumSy
5070: 73 74 65 6d 4c 6f 63 61 6c 65 73 57 20 45 6e 75  stemLocalesW Enu
5080: 6d 53 79 73 74 65 6d 4c 6f 63 61 6c 65 73 3b 0a  mSystemLocales;.
5090: 09 61 6c 69 61 73 20 45 6e 75 6d 54 69 6d 65 46  .alias EnumTimeF
50a0: 6f 72 6d 61 74 73 57 20 45 6e 75 6d 54 69 6d 65  ormatsW EnumTime
50b0: 46 6f 72 6d 61 74 73 3b 0a 09 61 6c 69 61 73 20  Formats;..alias 
50c0: 46 6f 6c 64 53 74 72 69 6e 67 57 20 46 6f 6c 64  FoldStringW Fold
50d0: 53 74 72 69 6e 67 3b 0a 09 61 6c 69 61 73 20 47  String;..alias G
50e0: 65 74 43 61 6c 65 6e 64 61 72 49 6e 66 6f 57 20  etCalendarInfoW 
50f0: 47 65 74 43 61 6c 65 6e 64 61 72 49 6e 66 6f 3b  GetCalendarInfo;
5100: 0a 09 61 6c 69 61 73 20 47 65 74 43 50 49 6e 66  ..alias GetCPInf
5110: 6f 45 78 57 20 47 65 74 43 50 49 6e 66 6f 45 78  oExW GetCPInfoEx
5120: 3b 0a 09 61 6c 69 61 73 20 47 65 74 43 75 72 72  ;..alias GetCurr
5130: 65 6e 63 79 46 6f 72 6d 61 74 57 20 47 65 74 43  encyFormatW GetC
5140: 75 72 72 65 6e 63 79 46 6f 72 6d 61 74 3b 0a 09  urrencyFormat;..
5150: 61 6c 69 61 73 20 47 65 74 44 61 74 65 46 6f 72  alias GetDateFor
5160: 6d 61 74 57 20 47 65 74 44 61 74 65 46 6f 72 6d  matW GetDateForm
5170: 61 74 3b 0a 09 61 6c 69 61 73 20 47 65 74 47 65  at;..alias GetGe
5180: 6f 49 6e 66 6f 57 20 47 65 74 47 65 6f 49 6e 66  oInfoW GetGeoInf
5190: 6f 3b 0a 09 61 6c 69 61 73 20 47 65 74 4c 6f 63  o;..alias GetLoc
51a0: 61 6c 65 49 6e 66 6f 57 20 47 65 74 4c 6f 63 61  aleInfoW GetLoca
51b0: 6c 65 49 6e 66 6f 3b 0a 09 61 6c 69 61 73 20 47  leInfo;..alias G
51c0: 65 74 4e 75 6d 62 65 72 46 6f 72 6d 61 74 57 20  etNumberFormatW 
51d0: 47 65 74 4e 75 6d 62 65 72 46 6f 72 6d 61 74 3b  GetNumberFormat;
51e0: 0a 09 61 6c 69 61 73 20 47 65 74 53 74 72 69 6e  ..alias GetStrin
51f0: 67 54 79 70 65 45 78 57 20 47 65 74 53 74 72 69  gTypeExW GetStri
5200: 6e 67 54 79 70 65 45 78 3b 0a 09 61 6c 69 61 73  ngTypeEx;..alias
5210: 20 47 65 74 54 69 6d 65 46 6f 72 6d 61 74 57 20   GetTimeFormatW 
5220: 47 65 74 54 69 6d 65 46 6f 72 6d 61 74 3b 0a 09  GetTimeFormat;..
5230: 61 6c 69 61 73 20 4c 43 4d 61 70 53 74 72 69 6e  alias LCMapStrin
5240: 67 57 20 4c 43 4d 61 70 53 74 72 69 6e 67 3b 0a  gW LCMapString;.
5250: 09 61 6c 69 61 73 20 53 65 74 43 61 6c 65 6e 64  .alias SetCalend
5260: 61 72 49 6e 66 6f 57 20 53 65 74 43 61 6c 65 6e  arInfoW SetCalen
5270: 64 61 72 49 6e 66 6f 3b 0a 09 61 6c 69 61 73 20  darInfo;..alias 
5280: 53 65 74 4c 6f 63 61 6c 65 49 6e 66 6f 57 20 53  SetLocaleInfoW S
5290: 65 74 4c 6f 63 61 6c 65 49 6e 66 6f 3b 0a 0a 09  etLocaleInfo;...
52a0: 73 74 61 74 69 63 20 69 66 20 28 57 49 4e 56 45  static if (WINVE
52b0: 52 20 3e 3d 20 30 78 34 31 30 29 20 7b 0a 09 09  R >= 0x410) {...
52c0: 61 6c 69 61 73 20 45 6e 75 6d 43 61 6c 65 6e 64  alias EnumCalend
52d0: 61 72 49 6e 66 6f 45 78 57 20 45 6e 75 6d 43 61  arInfoExW EnumCa
52e0: 6c 65 6e 64 61 72 49 6e 66 6f 45 78 3b 0a 09 09  lendarInfoEx;...
52f0: 61 6c 69 61 73 20 45 6e 75 6d 44 61 74 65 46 6f  alias EnumDateFo
5300: 72 6d 61 74 73 45 78 57 20 45 6e 75 6d 44 61 74  rmatsExW EnumDat
5310: 65 46 6f 72 6d 61 74 73 45 78 3b 0a 09 7d 0a 0a  eFormatsEx;..}..
5320: 09 73 74 61 74 69 63 20 69 66 20 28 5f 57 49 4e  .static if (_WIN
5330: 33 32 5f 57 49 4e 4e 54 5f 4f 4e 4c 59 20 26 26  32_WINNT_ONLY &&
5340: 20 57 49 4e 56 45 52 20 3e 3d 20 30 78 35 30 30   WINVER >= 0x500
5350: 29 20 7b 0a 09 09 61 6c 69 61 73 20 45 6e 75 6d  ) {...alias Enum
5360: 53 79 73 74 65 6d 4c 61 6e 67 75 61 67 65 47 72  SystemLanguageGr
5370: 6f 75 70 73 57 20 45 6e 75 6d 53 79 73 74 65 6d  oupsW EnumSystem
5380: 4c 61 6e 67 75 61 67 65 47 72 6f 75 70 73 3b 0a  LanguageGroups;.
5390: 09 09 61 6c 69 61 73 20 45 6e 75 6d 4c 61 6e 67  ..alias EnumLang
53a0: 75 61 67 65 47 72 6f 75 70 4c 6f 63 61 6c 65 73  uageGroupLocales
53b0: 57 20 45 6e 75 6d 4c 61 6e 67 75 61 67 65 47 72  W EnumLanguageGr
53c0: 6f 75 70 4c 6f 63 61 6c 65 73 3b 0a 09 09 61 6c  oupLocales;...al
53d0: 69 61 73 20 45 6e 75 6d 55 49 4c 61 6e 67 75 61  ias EnumUILangua
53e0: 67 65 73 57 20 45 6e 75 6d 55 49 4c 61 6e 67 75  gesW EnumUILangu
53f0: 61 67 65 73 3b 0a 09 7d 0a 0a 7d 20 65 6c 73 65  ages;..}..} else
5400: 20 7b 0a 09 61 6c 69 61 73 20 43 41 4c 49 4e 46   {..alias CALINF
5410: 4f 5f 45 4e 55 4d 50 52 4f 43 41 20 43 41 4c 49  O_ENUMPROCA CALI
5420: 4e 46 4f 5f 45 4e 55 4d 50 52 4f 43 3b 0a 09 61  NFO_ENUMPROC;..a
5430: 6c 69 61 73 20 43 41 4c 49 4e 46 4f 5f 45 4e 55  lias CALINFO_ENU
5440: 4d 50 52 4f 43 45 58 41 20 43 41 4c 49 4e 46 4f  MPROCEXA CALINFO
5450: 5f 45 4e 55 4d 50 52 4f 43 45 58 3b 0a 09 61 6c  _ENUMPROCEX;..al
5460: 69 61 73 20 4c 4f 43 41 4c 45 5f 45 4e 55 4d 50  ias LOCALE_ENUMP
5470: 52 4f 43 41 20 4c 4f 43 41 4c 45 5f 45 4e 55 4d  ROCA LOCALE_ENUM
5480: 50 52 4f 43 3b 0a 09 61 6c 69 61 73 20 43 4f 44  PROC;..alias COD
5490: 45 50 41 47 45 5f 45 4e 55 4d 50 52 4f 43 41 20  EPAGE_ENUMPROCA 
54a0: 43 4f 44 45 50 41 47 45 5f 45 4e 55 4d 50 52 4f  CODEPAGE_ENUMPRO
54b0: 43 3b 0a 09 61 6c 69 61 73 20 44 41 54 45 46 4d  C;..alias DATEFM
54c0: 54 5f 45 4e 55 4d 50 52 4f 43 41 20 44 41 54 45  T_ENUMPROCA DATE
54d0: 46 4d 54 5f 45 4e 55 4d 50 52 4f 43 3b 0a 09 61  FMT_ENUMPROC;..a
54e0: 6c 69 61 73 20 44 41 54 45 46 4d 54 5f 45 4e 55  lias DATEFMT_ENU
54f0: 4d 50 52 4f 43 45 58 41 20 44 41 54 45 46 4d 54  MPROCEXA DATEFMT
5500: 5f 45 4e 55 4d 50 52 4f 43 45 58 3b 0a 09 61 6c  _ENUMPROCEX;..al
5510: 69 61 73 20 54 49 4d 45 46 4d 54 5f 45 4e 55 4d  ias TIMEFMT_ENUM
5520: 50 52 4f 43 41 20 54 49 4d 45 46 4d 54 5f 45 4e  PROCA TIMEFMT_EN
5530: 55 4d 50 52 4f 43 3b 0a 09 61 6c 69 61 73 20 4c  UMPROC;..alias L
5540: 41 4e 47 55 41 47 45 47 52 4f 55 50 5f 45 4e 55  ANGUAGEGROUP_ENU
5550: 4d 50 52 4f 43 41 20 4c 41 4e 47 55 41 47 45 47  MPROCA LANGUAGEG
5560: 52 4f 55 50 5f 45 4e 55 4d 50 52 4f 43 3b 0a 09  ROUP_ENUMPROC;..
5570: 61 6c 69 61 73 20 4c 41 4e 47 47 52 4f 55 50 4c  alias LANGGROUPL
5580: 4f 43 41 4c 45 5f 45 4e 55 4d 50 52 4f 43 41 20  OCALE_ENUMPROCA 
5590: 4c 41 4e 47 47 52 4f 55 50 4c 4f 43 41 4c 45 5f  LANGGROUPLOCALE_
55a0: 45 4e 55 4d 50 52 4f 43 3b 0a 09 61 6c 69 61 73  ENUMPROC;..alias
55b0: 20 55 49 4c 41 4e 47 55 41 47 45 5f 45 4e 55 4d   UILANGUAGE_ENUM
55c0: 50 52 4f 43 41 20 55 49 4c 41 4e 47 55 41 47 45  PROCA UILANGUAGE
55d0: 5f 45 4e 55 4d 50 52 4f 43 3b 0a 09 61 6c 69 61  _ENUMPROC;..alia
55e0: 73 20 43 50 49 4e 46 4f 45 58 41 20 43 50 49 4e  s CPINFOEXA CPIN
55f0: 46 4f 45 58 3b 0a 09 61 6c 69 61 73 20 4c 50 43  FOEX;..alias LPC
5600: 50 49 4e 46 4f 45 58 41 20 4c 50 43 50 49 4e 46  PINFOEXA LPCPINF
5610: 4f 45 58 3b 0a 09 61 6c 69 61 73 20 43 55 52 52  OEX;..alias CURR
5620: 45 4e 43 59 46 4d 54 41 20 43 55 52 52 45 4e 43  ENCYFMTA CURRENC
5630: 59 46 4d 54 3b 0a 09 61 6c 69 61 73 20 4c 50 43  YFMT;..alias LPC
5640: 55 52 52 45 4e 43 59 46 4d 54 41 20 4c 50 43 55  URRENCYFMTA LPCU
5650: 52 52 45 4e 43 59 46 4d 54 3b 0a 09 61 6c 69 61  RRENCYFMT;..alia
5660: 73 20 4e 55 4d 42 45 52 46 4d 54 41 20 4e 55 4d  s NUMBERFMTA NUM
5670: 42 45 52 46 4d 54 3b 0a 09 61 6c 69 61 73 20 4c  BERFMT;..alias L
5680: 50 4e 55 4d 42 45 52 46 4d 54 41 20 4c 50 4e 55  PNUMBERFMTA LPNU
5690: 4d 42 45 52 46 4d 54 3b 0a 09 61 6c 69 61 73 20  MBERFMT;..alias 
56a0: 43 6f 6d 70 61 72 65 53 74 72 69 6e 67 41 20 43  CompareStringA C
56b0: 6f 6d 70 61 72 65 53 74 72 69 6e 67 3b 0a 09 61  ompareString;..a
56c0: 6c 69 61 73 20 45 6e 75 6d 43 61 6c 65 6e 64 61  lias EnumCalenda
56d0: 72 49 6e 66 6f 41 20 45 6e 75 6d 43 61 6c 65 6e  rInfoA EnumCalen
56e0: 64 61 72 49 6e 66 6f 3b 0a 09 61 6c 69 61 73 20  darInfo;..alias 
56f0: 45 6e 75 6d 53 79 73 74 65 6d 43 6f 64 65 50 61  EnumSystemCodePa
5700: 67 65 73 41 20 45 6e 75 6d 53 79 73 74 65 6d 43  gesA EnumSystemC
5710: 6f 64 65 50 61 67 65 73 3b 0a 09 61 6c 69 61 73  odePages;..alias
5720: 20 45 6e 75 6d 53 79 73 74 65 6d 4c 6f 63 61 6c   EnumSystemLocal
5730: 65 73 41 20 45 6e 75 6d 53 79 73 74 65 6d 4c 6f  esA EnumSystemLo
5740: 63 61 6c 65 73 3b 0a 09 61 6c 69 61 73 20 45 6e  cales;..alias En
5750: 75 6d 54 69 6d 65 46 6f 72 6d 61 74 73 41 20 45  umTimeFormatsA E
5760: 6e 75 6d 54 69 6d 65 46 6f 72 6d 61 74 73 3b 0a  numTimeFormats;.
5770: 09 61 6c 69 61 73 20 46 6f 6c 64 53 74 72 69 6e  .alias FoldStrin
5780: 67 41 20 46 6f 6c 64 53 74 72 69 6e 67 3b 0a 09  gA FoldString;..
5790: 61 6c 69 61 73 20 47 65 74 43 61 6c 65 6e 64 61  alias GetCalenda
57a0: 72 49 6e 66 6f 41 20 47 65 74 43 61 6c 65 6e 64  rInfoA GetCalend
57b0: 61 72 49 6e 66 6f 3b 0a 09 61 6c 69 61 73 20 47  arInfo;..alias G
57c0: 65 74 43 50 49 6e 66 6f 45 78 41 20 47 65 74 43  etCPInfoExA GetC
57d0: 50 49 6e 66 6f 45 78 3b 0a 09 61 6c 69 61 73 20  PInfoEx;..alias 
57e0: 47 65 74 43 75 72 72 65 6e 63 79 46 6f 72 6d 61  GetCurrencyForma
57f0: 74 41 20 47 65 74 43 75 72 72 65 6e 63 79 46 6f  tA GetCurrencyFo
5800: 72 6d 61 74 3b 0a 09 61 6c 69 61 73 20 47 65 74  rmat;..alias Get
5810: 44 61 74 65 46 6f 72 6d 61 74 41 20 47 65 74 44  DateFormatA GetD
5820: 61 74 65 46 6f 72 6d 61 74 3b 0a 09 61 6c 69 61  ateFormat;..alia
5830: 73 20 47 65 74 47 65 6f 49 6e 66 6f 41 20 47 65  s GetGeoInfoA Ge
5840: 74 47 65 6f 49 6e 66 6f 3b 0a 09 61 6c 69 61 73  tGeoInfo;..alias
5850: 20 47 65 74 4c 6f 63 61 6c 65 49 6e 66 6f 41 20   GetLocaleInfoA 
5860: 47 65 74 4c 6f 63 61 6c 65 49 6e 66 6f 3b 0a 09  GetLocaleInfo;..
5870: 61 6c 69 61 73 20 47 65 74 4e 75 6d 62 65 72 46  alias GetNumberF
5880: 6f 72 6d 61 74 41 20 47 65 74 4e 75 6d 62 65 72  ormatA GetNumber
5890: 46 6f 72 6d 61 74 3b 0a 09 61 6c 69 61 73 20 47  Format;..alias G
58a0: 65 74 53 74 72 69 6e 67 54 79 70 65 45 78 41 20  etStringTypeExA 
58b0: 47 65 74 53 74 72 69 6e 67 54 79 70 65 45 78 3b  GetStringTypeEx;
58c0: 0a 09 61 6c 69 61 73 20 47 65 74 54 69 6d 65 46  ..alias GetTimeF
58d0: 6f 72 6d 61 74 41 20 47 65 74 54 69 6d 65 46 6f  ormatA GetTimeFo
58e0: 72 6d 61 74 3b 0a 09 61 6c 69 61 73 20 4c 43 4d  rmat;..alias LCM
58f0: 61 70 53 74 72 69 6e 67 41 20 4c 43 4d 61 70 53  apStringA LCMapS
5900: 74 72 69 6e 67 3b 0a 09 61 6c 69 61 73 20 53 65  tring;..alias Se
5910: 74 43 61 6c 65 6e 64 61 72 49 6e 66 6f 41 20 53  tCalendarInfoA S
5920: 65 74 43 61 6c 65 6e 64 61 72 49 6e 66 6f 3b 0a  etCalendarInfo;.
5930: 09 61 6c 69 61 73 20 53 65 74 4c 6f 63 61 6c 65  .alias SetLocale
5940: 49 6e 66 6f 41 20 53 65 74 4c 6f 63 61 6c 65 49  InfoA SetLocaleI
5950: 6e 66 6f 3b 0a 0a 09 73 74 61 74 69 63 20 69 66  nfo;...static if
5960: 20 28 57 49 4e 56 45 52 20 3e 3d 20 30 78 34 31   (WINVER >= 0x41
5970: 30 29 20 7b 0a 09 09 61 6c 69 61 73 20 45 6e 75  0) {...alias Enu
5980: 6d 43 61 6c 65 6e 64 61 72 49 6e 66 6f 45 78 41  mCalendarInfoExA
5990: 20 45 6e 75 6d 43 61 6c 65 6e 64 61 72 49 6e 66   EnumCalendarInf
59a0: 6f 45 78 3b 0a 09 09 61 6c 69 61 73 20 45 6e 75  oEx;...alias Enu
59b0: 6d 44 61 74 65 46 6f 72 6d 61 74 73 45 78 41 20  mDateFormatsExA 
59c0: 45 6e 75 6d 44 61 74 65 46 6f 72 6d 61 74 73 45  EnumDateFormatsE
59d0: 78 3b 0a 09 7d 0a 0a 09 73 74 61 74 69 63 20 69  x;..}...static i
59e0: 66 20 28 5f 57 49 4e 33 32 5f 57 49 4e 4e 54 5f  f (_WIN32_WINNT_
59f0: 4f 4e 4c 59 20 26 26 20 57 49 4e 56 45 52 20 3e  ONLY && WINVER >
5a00: 3d 20 30 78 35 30 30 29 20 7b 0a 09 09 61 6c 69  = 0x500) {...ali
5a10: 61 73 20 45 6e 75 6d 53 79 73 74 65 6d 4c 61 6e  as EnumSystemLan
5a20: 67 75 61 67 65 47 72 6f 75 70 73 41 20 45 6e 75  guageGroupsA Enu
5a30: 6d 53 79 73 74 65 6d 4c 61 6e 67 75 61 67 65 47  mSystemLanguageG
5a40: 72 6f 75 70 73 3b 0a 09 09 61 6c 69 61 73 20 45  roups;...alias E
5a50: 6e 75 6d 4c 61 6e 67 75 61 67 65 47 72 6f 75 70  numLanguageGroup
5a60: 4c 6f 63 61 6c 65 73 41 20 45 6e 75 6d 4c 61 6e  LocalesA EnumLan
5a70: 67 75 61 67 65 47 72 6f 75 70 4c 6f 63 61 6c 65  guageGroupLocale
5a80: 73 3b 0a 09 09 61 6c 69 61 73 20 45 6e 75 6d 55  s;...alias EnumU
5a90: 49 4c 61 6e 67 75 61 67 65 73 41 20 45 6e 75 6d  ILanguagesA Enum
5aa0: 55 49 4c 61 6e 67 75 61 67 65 73 3b 0a 09 7d 0a  UILanguages;..}.
5ab0: 7d 0a                                            }.