Artifact Content

Not logged in

Artifact 6afac56366fd64c2ae0650d72c0ec4d2bb0d33b0


     1  module win32.ansi.winnls;
     2  
     3  // Translated from Microsoft Platform SDK August 2001 Edition
     4  // by Y.Tomino (demoonlit@inter7.jp)
     5  
     6  import win32.ansi.winbase;
     7  
     8  // #ifndef _WINNLS_
     9  // #define _WINNLS_
    10  
    11  // #ifdef __cplusplus
    12  // extern "C" {
    13  // #endif
    14  
    15  // #ifndef NONLS
    16  
    17  // #ifdef _MAC
    18  // #...
    19  // #endif
    20  
    21  enum : uint { MAX_LEADBYTES = 12 }
    22  enum : uint { MAX_DEFAULTCHAR = 2 }
    23  
    24  enum : uint { MB_PRECOMPOSED = 0x00000001 }
    25  enum : uint { MB_COMPOSITE = 0x00000002 }
    26  enum : uint { MB_USEGLYPHCHARS = 0x00000004 }
    27  enum : uint { MB_ERR_INVALID_CHARS = 0x00000008 }
    28  
    29  enum : uint { WC_COMPOSITECHECK = 0x00000200 }
    30  enum : uint { WC_DISCARDNS = 0x00000010 }
    31  enum : uint { WC_SEPCHARS = 0x00000020 }
    32  enum : uint { WC_DEFAULTCHAR = 0x00000040 }
    33  
    34  // #if(WINVER >= 0x0500)
    35  enum : uint { WC_NO_BEST_FIT_CHARS = 0x00000400 }
    36  // #endif /* WINVER >= 0x0500 */
    37  
    38  enum : uint { CT_CTYPE1 = 0x00000001 }
    39  enum : uint { CT_CTYPE2 = 0x00000002 }
    40  enum : uint { CT_CTYPE3 = 0x00000004 }
    41  
    42  enum : uint { C1_UPPER = 0x0001 }
    43  enum : uint { C1_LOWER = 0x0002 }
    44  enum : uint { C1_DIGIT = 0x0004 }
    45  enum : uint { C1_SPACE = 0x0008 }
    46  enum : uint { C1_PUNCT = 0x0010 }
    47  enum : uint { C1_CNTRL = 0x0020 }
    48  enum : uint { C1_BLANK = 0x0040 }
    49  enum : uint { C1_XDIGIT = 0x0080 }
    50  enum : uint { C1_ALPHA = 0x0100 }
    51  enum : uint { C1_DEFINED = 0x0200 }
    52  
    53  enum : uint { C2_LEFTTORIGHT = 0x0001 }
    54  enum : uint { C2_RIGHTTOLEFT = 0x0002 }
    55  
    56  enum : uint { C2_EUROPENUMBER = 0x0003 }
    57  enum : uint { C2_EUROPESEPARATOR = 0x0004 }
    58  enum : uint { C2_EUROPETERMINATOR = 0x0005 }
    59  enum : uint { C2_ARABICNUMBER = 0x0006 }
    60  enum : uint { C2_COMMONSEPARATOR = 0x0007 }
    61  
    62  enum : uint { C2_BLOCKSEPARATOR = 0x0008 }
    63  enum : uint { C2_SEGMENTSEPARATOR = 0x0009 }
    64  enum : uint { C2_WHITESPACE = 0x000A }
    65  enum : uint { C2_OTHERNEUTRAL = 0x000B }
    66  
    67  enum : uint { C2_NOTAPPLICABLE = 0x0000 }
    68  
    69  enum : uint { C3_NONSPACING = 0x0001 }
    70  enum : uint { C3_DIACRITIC = 0x0002 }
    71  enum : uint { C3_VOWELMARK = 0x0004 }
    72  enum : uint { C3_SYMBOL = 0x0008 }
    73  
    74  enum : uint { C3_KATAKANA = 0x0010 }
    75  enum : uint { C3_HIRAGANA = 0x0020 }
    76  enum : uint { C3_HALFWIDTH = 0x0040 }
    77  enum : uint { C3_FULLWIDTH = 0x0080 }
    78  enum : uint { C3_IDEOGRAPH = 0x0100 }
    79  enum : uint { C3_KASHIDA = 0x0200 }
    80  enum : uint { C3_LEXICAL = 0x0400 }
    81  
    82  enum : uint { C3_ALPHA = 0x8000 }
    83  
    84  enum : uint { C3_NOTAPPLICABLE = 0x0000 }
    85  
    86  enum : uint { NORM_IGNORECASE = 0x00000001 }
    87  enum : uint { NORM_IGNORENONSPACE = 0x00000002 }
    88  enum : uint { NORM_IGNORESYMBOLS = 0x00000004 }
    89  
    90  enum : uint { NORM_IGNOREKANATYPE = 0x00010000 }
    91  enum : uint { NORM_IGNOREWIDTH = 0x00020000 }
    92  
    93  enum : uint { MAP_FOLDCZONE = 0x00000010 }
    94  enum : uint { MAP_PRECOMPOSED = 0x00000020 }
    95  enum : uint { MAP_COMPOSITE = 0x00000040 }
    96  enum : uint { MAP_FOLDDIGITS = 0x00000080 }
    97  
    98  // #if(WINVER >= 0x0500)
    99  enum : uint { MAP_EXPAND_LIGATURES = 0x00002000 }
   100  // #endif /* WINVER >= 0x0500 */
   101  
   102  enum : uint { LCMAP_LOWERCASE = 0x00000100 }
   103  enum : uint { LCMAP_UPPERCASE = 0x00000200 }
   104  enum : uint { LCMAP_SORTKEY = 0x00000400 }
   105  enum : uint { LCMAP_BYTEREV = 0x00000800 }
   106  
   107  enum : uint { LCMAP_HIRAGANA = 0x00100000 }
   108  enum : uint { LCMAP_KATAKANA = 0x00200000 }
   109  enum : uint { LCMAP_HALFWIDTH = 0x00400000 }
   110  enum : uint { LCMAP_FULLWIDTH = 0x00800000 }
   111  
   112  enum : uint { LCMAP_LINGUISTIC_CASING = 0x01000000 }
   113  
   114  enum : uint { LCMAP_SIMPLIFIED_CHINESE = 0x02000000 }
   115  enum : uint { LCMAP_TRADITIONAL_CHINESE = 0x04000000 }
   116  
   117  enum : uint { LGRPID_INSTALLED = 0x00000001 }
   118  enum : uint { LGRPID_SUPPORTED = 0x00000002 }
   119  
   120  enum : uint { LCID_INSTALLED = 0x00000001 }
   121  enum : uint { LCID_SUPPORTED = 0x00000002 }
   122  enum : uint { LCID_ALTERNATE_SORTS = 0x00000004 }
   123  
   124  enum : uint { CP_INSTALLED = 0x00000001 }
   125  enum : uint { CP_SUPPORTED = 0x00000002 }
   126  
   127  enum : uint { SORT_STRINGSORT = 0x00001000 }
   128  
   129  enum : uint { CSTR_LESS_THAN = 1 }
   130  enum : uint { CSTR_EQUAL = 2 }
   131  enum : uint { CSTR_GREATER_THAN = 3 }
   132  
   133  enum : uint { CP_ACP = 0 }
   134  enum : uint { CP_OEMCP = 1 }
   135  enum : uint { CP_MACCP = 2 }
   136  enum : uint { CP_THREAD_ACP = 3 }
   137  enum : uint { CP_SYMBOL = 42 }
   138  
   139  enum : uint { CP_UTF7 = 65000 }
   140  enum : uint { CP_UTF8 = 65001 }
   141  
   142  enum : uint { CTRY_DEFAULT = 0 }
   143  
   144  enum : uint { CTRY_ALBANIA = 355 }
   145  enum : uint { CTRY_ALGERIA = 213 }
   146  enum : uint { CTRY_ARGENTINA = 54 }
   147  enum : uint { CTRY_ARMENIA = 374 }
   148  enum : uint { CTRY_AUSTRALIA = 61 }
   149  enum : uint { CTRY_AUSTRIA = 43 }
   150  enum : uint { CTRY_AZERBAIJAN = 994 }
   151  enum : uint { CTRY_BAHRAIN = 973 }
   152  enum : uint { CTRY_BELARUS = 375 }
   153  enum : uint { CTRY_BELGIUM = 32 }
   154  enum : uint { CTRY_BELIZE = 501 }
   155  enum : uint { CTRY_BOLIVIA = 591 }
   156  enum : uint { CTRY_BRAZIL = 55 }
   157  enum : uint { CTRY_BRUNEI_DARUSSALAM = 673 }
   158  enum : uint { CTRY_BULGARIA = 359 }
   159  enum : uint { CTRY_CANADA = 2 }
   160  enum : uint { CTRY_CARIBBEAN = 1 }
   161  enum : uint { CTRY_CHILE = 56 }
   162  enum : uint { CTRY_COLOMBIA = 57 }
   163  enum : uint { CTRY_COSTA_RICA = 506 }
   164  enum : uint { CTRY_CROATIA = 385 }
   165  enum : uint { CTRY_CZECH = 420 }
   166  enum : uint { CTRY_DENMARK = 45 }
   167  enum : uint { CTRY_DOMINICAN_REPUBLIC = 1 }
   168  enum : uint { CTRY_ECUADOR = 593 }
   169  enum : uint { CTRY_EGYPT = 20 }
   170  enum : uint { CTRY_EL_SALVADOR = 503 }
   171  enum : uint { CTRY_ESTONIA = 372 }
   172  enum : uint { CTRY_FAEROE_ISLANDS = 298 }
   173  enum : uint { CTRY_FINLAND = 358 }
   174  enum : uint { CTRY_FRANCE = 33 }
   175  enum : uint { CTRY_GEORGIA = 995 }
   176  enum : uint { CTRY_GERMANY = 49 }
   177  enum : uint { CTRY_GREECE = 30 }
   178  enum : uint { CTRY_GUATEMALA = 502 }
   179  enum : uint { CTRY_HONDURAS = 504 }
   180  enum : uint { CTRY_HONG_KONG = 852 }
   181  enum : uint { CTRY_HUNGARY = 36 }
   182  enum : uint { CTRY_ICELAND = 354 }
   183  enum : uint { CTRY_INDIA = 91 }
   184  enum : uint { CTRY_INDONESIA = 62 }
   185  enum : uint { CTRY_IRAN = 981 }
   186  enum : uint { CTRY_IRAQ = 964 }
   187  enum : uint { CTRY_IRELAND = 353 }
   188  enum : uint { CTRY_ISRAEL = 972 }
   189  enum : uint { CTRY_ITALY = 39 }
   190  enum : uint { CTRY_JAMAICA = 1 }
   191  enum : uint { CTRY_JAPAN = 81 }
   192  enum : uint { CTRY_JORDAN = 962 }
   193  enum : uint { CTRY_KAZAKSTAN = 7 }
   194  enum : uint { CTRY_KENYA = 254 }
   195  enum : uint { CTRY_KUWAIT = 965 }
   196  enum : uint { CTRY_KYRGYZSTAN = 996 }
   197  enum : uint { CTRY_LATVIA = 371 }
   198  enum : uint { CTRY_LEBANON = 961 }
   199  enum : uint { CTRY_LIBYA = 218 }
   200  enum : uint { CTRY_LIECHTENSTEIN = 41 }
   201  enum : uint { CTRY_LITHUANIA = 370 }
   202  enum : uint { CTRY_LUXEMBOURG = 352 }
   203  enum : uint { CTRY_MACAU = 853 }
   204  enum : uint { CTRY_MACEDONIA = 389 }
   205  enum : uint { CTRY_MALAYSIA = 60 }
   206  enum : uint { CTRY_MALDIVES = 960 }
   207  enum : uint { CTRY_MEXICO = 52 }
   208  enum : uint { CTRY_MONACO = 33 }
   209  enum : uint { CTRY_MONGOLIA = 976 }
   210  enum : uint { CTRY_MOROCCO = 212 }
   211  enum : uint { CTRY_NETHERLANDS = 31 }
   212  enum : uint { CTRY_NEW_ZEALAND = 64 }
   213  enum : uint { CTRY_NICARAGUA = 505 }
   214  enum : uint { CTRY_NORWAY = 47 }
   215  enum : uint { CTRY_OMAN = 968 }
   216  enum : uint { CTRY_PAKISTAN = 92 }
   217  enum : uint { CTRY_PANAMA = 507 }
   218  enum : uint { CTRY_PARAGUAY = 595 }
   219  enum : uint { CTRY_PERU = 51 }
   220  enum : uint { CTRY_PHILIPPINES = 63 }
   221  enum : uint { CTRY_POLAND = 48 }
   222  enum : uint { CTRY_PORTUGAL = 351 }
   223  enum : uint { CTRY_PRCHINA = 86 }
   224  enum : uint { CTRY_PUERTO_RICO = 1 }
   225  enum : uint { CTRY_QATAR = 974 }
   226  enum : uint { CTRY_ROMANIA = 40 }
   227  enum : uint { CTRY_RUSSIA = 7 }
   228  enum : uint { CTRY_SAUDI_ARABIA = 966 }
   229  enum : uint { CTRY_SERBIA = 381 }
   230  enum : uint { CTRY_SINGAPORE = 65 }
   231  enum : uint { CTRY_SLOVAK = 421 }
   232  enum : uint { CTRY_SLOVENIA = 386 }
   233  enum : uint { CTRY_SOUTH_AFRICA = 27 }
   234  enum : uint { CTRY_SOUTH_KOREA = 82 }
   235  enum : uint { CTRY_SPAIN = 34 }
   236  enum : uint { CTRY_SWEDEN = 46 }
   237  enum : uint { CTRY_SWITZERLAND = 41 }
   238  enum : uint { CTRY_SYRIA = 963 }
   239  enum : uint { CTRY_TAIWAN = 886 }
   240  enum : uint { CTRY_TATARSTAN = 7 }
   241  enum : uint { CTRY_THAILAND = 66 }
   242  enum : uint { CTRY_TRINIDAD_Y_TOBAGO = 1 }
   243  enum : uint { CTRY_TUNISIA = 216 }
   244  enum : uint { CTRY_TURKEY = 90 }
   245  enum : uint { CTRY_UAE = 971 }
   246  enum : uint { CTRY_UKRAINE = 380 }
   247  enum : uint { CTRY_UNITED_KINGDOM = 44 }
   248  enum : uint { CTRY_UNITED_STATES = 1 }
   249  enum : uint { CTRY_URUGUAY = 598 }
   250  enum : uint { CTRY_UZBEKISTAN = 7 }
   251  enum : uint { CTRY_VENEZUELA = 58 }
   252  enum : uint { CTRY_VIET_NAM = 84 }
   253  enum : uint { CTRY_YEMEN = 967 }
   254  enum : uint { CTRY_ZIMBABWE = 263 }
   255  
   256  enum : uint { LOCALE_NOUSEROVERRIDE = 0x80000000 }
   257  enum : uint { LOCALE_USE_CP_ACP = 0x40000000 }
   258  
   259  // #if(WINVER >= 0x0400)
   260  enum : uint { LOCALE_RETURN_NUMBER = 0x20000000 }
   261  // #endif /* WINVER >= 0x0400 */
   262  
   263  enum : uint { LOCALE_ILANGUAGE = 0x00000001 }
   264  enum : uint { LOCALE_SLANGUAGE = 0x00000002 }
   265  enum : uint { LOCALE_SENGLANGUAGE = 0x00001001 }
   266  enum : uint { LOCALE_SABBREVLANGNAME = 0x00000003 }
   267  enum : uint { LOCALE_SNATIVELANGNAME = 0x00000004 }
   268  
   269  enum : uint { LOCALE_ICOUNTRY = 0x00000005 }
   270  enum : uint { LOCALE_SCOUNTRY = 0x00000006 }
   271  enum : uint { LOCALE_SENGCOUNTRY = 0x00001002 }
   272  enum : uint { LOCALE_SABBREVCTRYNAME = 0x00000007 }
   273  enum : uint { LOCALE_SNATIVECTRYNAME = 0x00000008 }
   274  
   275  enum : uint { LOCALE_IDEFAULTLANGUAGE = 0x00000009 }
   276  enum : uint { LOCALE_IDEFAULTCOUNTRY = 0x0000000A }
   277  enum : uint { LOCALE_IDEFAULTCODEPAGE = 0x0000000B }
   278  enum : uint { LOCALE_IDEFAULTANSICODEPAGE = 0x00001004 }
   279  enum : uint { LOCALE_IDEFAULTMACCODEPAGE = 0x00001011 }
   280  
   281  enum : uint { LOCALE_SLIST = 0x0000000C }
   282  enum : uint { LOCALE_IMEASURE = 0x0000000D }
   283  
   284  enum : uint { LOCALE_SDECIMAL = 0x0000000E }
   285  enum : uint { LOCALE_STHOUSAND = 0x0000000F }
   286  enum : uint { LOCALE_SGROUPING = 0x00000010 }
   287  enum : uint { LOCALE_IDIGITS = 0x00000011 }
   288  enum : uint { LOCALE_ILZERO = 0x00000012 }
   289  enum : uint { LOCALE_INEGNUMBER = 0x00001010 }
   290  enum : uint { LOCALE_SNATIVEDIGITS = 0x00000013 }
   291  
   292  enum : uint { LOCALE_SCURRENCY = 0x00000014 }
   293  enum : uint { LOCALE_SINTLSYMBOL = 0x00000015 }
   294  enum : uint { LOCALE_SMONDECIMALSEP = 0x00000016 }
   295  enum : uint { LOCALE_SMONTHOUSANDSEP = 0x00000017 }
   296  enum : uint { LOCALE_SMONGROUPING = 0x00000018 }
   297  enum : uint { LOCALE_ICURRDIGITS = 0x00000019 }
   298  enum : uint { LOCALE_IINTLCURRDIGITS = 0x0000001A }
   299  enum : uint { LOCALE_ICURRENCY = 0x0000001B }
   300  enum : uint { LOCALE_INEGCURR = 0x0000001C }
   301  
   302  enum : uint { LOCALE_SDATE = 0x0000001D }
   303  enum : uint { LOCALE_STIME = 0x0000001E }
   304  enum : uint { LOCALE_SSHORTDATE = 0x0000001F }
   305  enum : uint { LOCALE_SLONGDATE = 0x00000020 }
   306  enum : uint { LOCALE_STIMEFORMAT = 0x00001003 }
   307  enum : uint { LOCALE_IDATE = 0x00000021 }
   308  enum : uint { LOCALE_ILDATE = 0x00000022 }
   309  enum : uint { LOCALE_ITIME = 0x00000023 }
   310  enum : uint { LOCALE_ITIMEMARKPOSN = 0x00001005 }
   311  enum : uint { LOCALE_ICENTURY = 0x00000024 }
   312  enum : uint { LOCALE_ITLZERO = 0x00000025 }
   313  enum : uint { LOCALE_IDAYLZERO = 0x00000026 }
   314  enum : uint { LOCALE_IMONLZERO = 0x00000027 }
   315  enum : uint { LOCALE_S1159 = 0x00000028 }
   316  enum : uint { LOCALE_S2359 = 0x00000029 }
   317  
   318  enum : uint { LOCALE_ICALENDARTYPE = 0x00001009 }
   319  enum : uint { LOCALE_IOPTIONALCALENDAR = 0x0000100B }
   320  enum : uint { LOCALE_IFIRSTDAYOFWEEK = 0x0000100C }
   321  enum : uint { LOCALE_IFIRSTWEEKOFYEAR = 0x0000100D }
   322  
   323  enum : uint { LOCALE_SDAYNAME1 = 0x0000002A }
   324  enum : uint { LOCALE_SDAYNAME2 = 0x0000002B }
   325  enum : uint { LOCALE_SDAYNAME3 = 0x0000002C }
   326  enum : uint { LOCALE_SDAYNAME4 = 0x0000002D }
   327  enum : uint { LOCALE_SDAYNAME5 = 0x0000002E }
   328  enum : uint { LOCALE_SDAYNAME6 = 0x0000002F }
   329  enum : uint { LOCALE_SDAYNAME7 = 0x00000030 }
   330  enum : uint { LOCALE_SABBREVDAYNAME1 = 0x00000031 }
   331  enum : uint { LOCALE_SABBREVDAYNAME2 = 0x00000032 }
   332  enum : uint { LOCALE_SABBREVDAYNAME3 = 0x00000033 }
   333  enum : uint { LOCALE_SABBREVDAYNAME4 = 0x00000034 }
   334  enum : uint { LOCALE_SABBREVDAYNAME5 = 0x00000035 }
   335  enum : uint { LOCALE_SABBREVDAYNAME6 = 0x00000036 }
   336  enum : uint { LOCALE_SABBREVDAYNAME7 = 0x00000037 }
   337  enum : uint { LOCALE_SMONTHNAME1 = 0x00000038 }
   338  enum : uint { LOCALE_SMONTHNAME2 = 0x00000039 }
   339  enum : uint { LOCALE_SMONTHNAME3 = 0x0000003A }
   340  enum : uint { LOCALE_SMONTHNAME4 = 0x0000003B }
   341  enum : uint { LOCALE_SMONTHNAME5 = 0x0000003C }
   342  enum : uint { LOCALE_SMONTHNAME6 = 0x0000003D }
   343  enum : uint { LOCALE_SMONTHNAME7 = 0x0000003E }
   344  enum : uint { LOCALE_SMONTHNAME8 = 0x0000003F }
   345  enum : uint { LOCALE_SMONTHNAME9 = 0x00000040 }
   346  enum : uint { LOCALE_SMONTHNAME10 = 0x00000041 }
   347  enum : uint { LOCALE_SMONTHNAME11 = 0x00000042 }
   348  enum : uint { LOCALE_SMONTHNAME12 = 0x00000043 }
   349  enum : uint { LOCALE_SMONTHNAME13 = 0x0000100E }
   350  enum : uint { LOCALE_SABBREVMONTHNAME1 = 0x00000044 }
   351  enum : uint { LOCALE_SABBREVMONTHNAME2 = 0x00000045 }
   352  enum : uint { LOCALE_SABBREVMONTHNAME3 = 0x00000046 }
   353  enum : uint { LOCALE_SABBREVMONTHNAME4 = 0x00000047 }
   354  enum : uint { LOCALE_SABBREVMONTHNAME5 = 0x00000048 }
   355  enum : uint { LOCALE_SABBREVMONTHNAME6 = 0x00000049 }
   356  enum : uint { LOCALE_SABBREVMONTHNAME7 = 0x0000004A }
   357  enum : uint { LOCALE_SABBREVMONTHNAME8 = 0x0000004B }
   358  enum : uint { LOCALE_SABBREVMONTHNAME9 = 0x0000004C }
   359  enum : uint { LOCALE_SABBREVMONTHNAME10 = 0x0000004D }
   360  enum : uint { LOCALE_SABBREVMONTHNAME11 = 0x0000004E }
   361  enum : uint { LOCALE_SABBREVMONTHNAME12 = 0x0000004F }
   362  enum : uint { LOCALE_SABBREVMONTHNAME13 = 0x0000100F }
   363  
   364  enum : uint { LOCALE_SPOSITIVESIGN = 0x00000050 }
   365  enum : uint { LOCALE_SNEGATIVESIGN = 0x00000051 }
   366  enum : uint { LOCALE_IPOSSIGNPOSN = 0x00000052 }
   367  enum : uint { LOCALE_INEGSIGNPOSN = 0x00000053 }
   368  enum : uint { LOCALE_IPOSSYMPRECEDES = 0x00000054 }
   369  enum : uint { LOCALE_IPOSSEPBYSPACE = 0x00000055 }
   370  enum : uint { LOCALE_INEGSYMPRECEDES = 0x00000056 }
   371  enum : uint { LOCALE_INEGSEPBYSPACE = 0x00000057 }
   372  
   373  // #if(WINVER >= 0x0400)
   374  enum : uint { LOCALE_FONTSIGNATURE = 0x00000058 }
   375  enum : uint { LOCALE_SISO639LANGNAME = 0x00000059 }
   376  enum : uint { LOCALE_SISO3166CTRYNAME = 0x0000005A }
   377  // #endif /* WINVER >= 0x0400 */
   378  
   379  // #if(WINVER >= 0x0500)
   380  enum : uint { LOCALE_IDEFAULTEBCDICCODEPAGE = 0x00001012 }
   381  enum : uint { LOCALE_IPAPERSIZE = 0x0000100A }
   382  enum : uint { LOCALE_SENGCURRNAME = 0x00001007 }
   383  enum : uint { LOCALE_SNATIVECURRNAME = 0x00001008 }
   384  enum : uint { LOCALE_SYEARMONTH = 0x00001006 }
   385  enum : uint { LOCALE_SSORTNAME = 0x00001013 }
   386  enum : uint { LOCALE_IDIGITSUBSTITUTION = 0x00001014 }
   387  
   388  // #endif /* WINVER >= 0x0500 */
   389  
   390  enum : uint { TIME_NOMINUTESORSECONDS = 0x00000001 }
   391  enum : uint { TIME_NOSECONDS = 0x00000002 }
   392  enum : uint { TIME_NOTIMEMARKER = 0x00000004 }
   393  enum : uint { TIME_FORCE24HOURFORMAT = 0x00000008 }
   394  
   395  enum : uint { DATE_SHORTDATE = 0x00000001 }
   396  enum : uint { DATE_LONGDATE = 0x00000002 }
   397  enum : uint { DATE_USE_ALT_CALENDAR = 0x00000004 }
   398  
   399  // #if(WINVER >= 0x0500)
   400  enum : uint { DATE_YEARMONTH = 0x00000008 }
   401  enum : uint { DATE_LTRREADING = 0x00000010 }
   402  enum : uint { DATE_RTLREADING = 0x00000020 }
   403  // #endif /* WINVER >= 0x0500 */
   404  
   405  // #if(WINVER >= 0x0500)
   406  alias LOCALE_NOUSEROVERRIDE CAL_NOUSEROVERRIDE;
   407  alias LOCALE_USE_CP_ACP CAL_USE_CP_ACP;
   408  alias LOCALE_RETURN_NUMBER CAL_RETURN_NUMBER;
   409  // #endif /* WINVER >= 0x0500 */
   410  
   411  enum : uint { CAL_ICALINTVALUE = 0x00000001 }
   412  enum : uint { CAL_SCALNAME = 0x00000002 }
   413  enum : uint { CAL_IYEAROFFSETRANGE = 0x00000003 }
   414  enum : uint { CAL_SERASTRING = 0x00000004 }
   415  enum : uint { CAL_SSHORTDATE = 0x00000005 }
   416  enum : uint { CAL_SLONGDATE = 0x00000006 }
   417  enum : uint { CAL_SDAYNAME1 = 0x00000007 }
   418  enum : uint { CAL_SDAYNAME2 = 0x00000008 }
   419  enum : uint { CAL_SDAYNAME3 = 0x00000009 }
   420  enum : uint { CAL_SDAYNAME4 = 0x0000000a }
   421  enum : uint { CAL_SDAYNAME5 = 0x0000000b }
   422  enum : uint { CAL_SDAYNAME6 = 0x0000000c }
   423  enum : uint { CAL_SDAYNAME7 = 0x0000000d }
   424  enum : uint { CAL_SABBREVDAYNAME1 = 0x0000000e }
   425  enum : uint { CAL_SABBREVDAYNAME2 = 0x0000000f }
   426  enum : uint { CAL_SABBREVDAYNAME3 = 0x00000010 }
   427  enum : uint { CAL_SABBREVDAYNAME4 = 0x00000011 }
   428  enum : uint { CAL_SABBREVDAYNAME5 = 0x00000012 }
   429  enum : uint { CAL_SABBREVDAYNAME6 = 0x00000013 }
   430  enum : uint { CAL_SABBREVDAYNAME7 = 0x00000014 }
   431  enum : uint { CAL_SMONTHNAME1 = 0x00000015 }
   432  enum : uint { CAL_SMONTHNAME2 = 0x00000016 }
   433  enum : uint { CAL_SMONTHNAME3 = 0x00000017 }
   434  enum : uint { CAL_SMONTHNAME4 = 0x00000018 }
   435  enum : uint { CAL_SMONTHNAME5 = 0x00000019 }
   436  enum : uint { CAL_SMONTHNAME6 = 0x0000001a }
   437  enum : uint { CAL_SMONTHNAME7 = 0x0000001b }
   438  enum : uint { CAL_SMONTHNAME8 = 0x0000001c }
   439  enum : uint { CAL_SMONTHNAME9 = 0x0000001d }
   440  enum : uint { CAL_SMONTHNAME10 = 0x0000001e }
   441  enum : uint { CAL_SMONTHNAME11 = 0x0000001f }
   442  enum : uint { CAL_SMONTHNAME12 = 0x00000020 }
   443  enum : uint { CAL_SMONTHNAME13 = 0x00000021 }
   444  enum : uint { CAL_SABBREVMONTHNAME1 = 0x00000022 }
   445  enum : uint { CAL_SABBREVMONTHNAME2 = 0x00000023 }
   446  enum : uint { CAL_SABBREVMONTHNAME3 = 0x00000024 }
   447  enum : uint { CAL_SABBREVMONTHNAME4 = 0x00000025 }
   448  enum : uint { CAL_SABBREVMONTHNAME5 = 0x00000026 }
   449  enum : uint { CAL_SABBREVMONTHNAME6 = 0x00000027 }
   450  enum : uint { CAL_SABBREVMONTHNAME7 = 0x00000028 }
   451  enum : uint { CAL_SABBREVMONTHNAME8 = 0x00000029 }
   452  enum : uint { CAL_SABBREVMONTHNAME9 = 0x0000002a }
   453  enum : uint { CAL_SABBREVMONTHNAME10 = 0x0000002b }
   454  enum : uint { CAL_SABBREVMONTHNAME11 = 0x0000002c }
   455  enum : uint { CAL_SABBREVMONTHNAME12 = 0x0000002d }
   456  enum : uint { CAL_SABBREVMONTHNAME13 = 0x0000002e }
   457  
   458  // #if(WINVER >= 0x0500)
   459  enum : uint { CAL_SYEARMONTH = 0x0000002f }
   460  enum : uint { CAL_ITWODIGITYEARMAX = 0x00000030 }
   461  // #endif /* WINVER >= 0x0500 */
   462  
   463  enum : uint { ENUM_ALL_CALENDARS = 0xffffffff }
   464  
   465  enum : uint { CAL_GREGORIAN = 1 }
   466  enum : uint { CAL_GREGORIAN_US = 2 }
   467  enum : uint { CAL_JAPAN = 3 }
   468  enum : uint { CAL_TAIWAN = 4 }
   469  enum : uint { CAL_KOREA = 5 }
   470  enum : uint { CAL_HIJRI = 6 }
   471  enum : uint { CAL_THAI = 7 }
   472  enum : uint { CAL_HEBREW = 8 }
   473  enum : uint { CAL_GREGORIAN_ME_FRENCH = 9 }
   474  enum : uint { CAL_GREGORIAN_ARABIC = 10 }
   475  enum : uint { CAL_GREGORIAN_XLIT_ENGLISH = 11 }
   476  enum : uint { CAL_GREGORIAN_XLIT_FRENCH = 12 }
   477  
   478  enum : uint { LGRPID_WESTERN_EUROPE = 0x0001 }
   479  enum : uint { LGRPID_CENTRAL_EUROPE = 0x0002 }
   480  enum : uint { LGRPID_BALTIC = 0x0003 }
   481  enum : uint { LGRPID_GREEK = 0x0004 }
   482  enum : uint { LGRPID_CYRILLIC = 0x0005 }
   483  enum : uint { LGRPID_TURKISH = 0x0006 }
   484  enum : uint { LGRPID_JAPANESE = 0x0007 }
   485  enum : uint { LGRPID_KOREAN = 0x0008 }
   486  enum : uint { LGRPID_TRADITIONAL_CHINESE = 0x0009 }
   487  enum : uint { LGRPID_SIMPLIFIED_CHINESE = 0x000a }
   488  enum : uint { LGRPID_THAI = 0x000b }
   489  enum : uint { LGRPID_HEBREW = 0x000c }
   490  enum : uint { LGRPID_ARABIC = 0x000d }
   491  enum : uint { LGRPID_VIETNAMESE = 0x000e }
   492  enum : uint { LGRPID_INDIC = 0x000f }
   493  enum : uint { LGRPID_GEORGIAN = 0x0010 }
   494  enum : uint { LGRPID_ARMENIAN = 0x0011 }
   495  
   496  alias DWORD LGRPID;
   497  
   498  alias DWORD LCTYPE;
   499  
   500  alias DWORD CALTYPE;
   501  
   502  alias DWORD CALID;
   503  
   504  struct _cpinfo {
   505    UINT MaxCharSize;
   506    BYTE DefaultChar[MAX_DEFAULTCHAR];
   507    BYTE LeadByte[MAX_LEADBYTES];
   508  }
   509  alias _cpinfo CPINFO;
   510  alias _cpinfo* LPCPINFO;
   511  
   512  struct _cpinfoexA {
   513    UINT MaxCharSize;
   514    BYTE DefaultChar[MAX_DEFAULTCHAR];
   515    BYTE LeadByte[MAX_LEADBYTES];
   516    WCHAR UnicodeDefaultChar;
   517    UINT CodePage;
   518    CHAR CodePageName[MAX_PATH];
   519  }
   520  alias _cpinfoexA CPINFOEXA;
   521  alias _cpinfoexA* LPCPINFOEXA;
   522  
   523  struct _cpinfoexW {
   524    UINT MaxCharSize;
   525    BYTE DefaultChar[MAX_DEFAULTCHAR];
   526    BYTE LeadByte[MAX_LEADBYTES];
   527    WCHAR UnicodeDefaultChar;
   528    UINT CodePage;
   529    WCHAR CodePageName[MAX_PATH];
   530  }
   531  alias _cpinfoexW CPINFOEXW;
   532  alias _cpinfoexW* LPCPINFOEXW;
   533  
   534  // #ifdef UNICODE
   535  // ...
   536  // #else
   537  alias CPINFOEXA CPINFOEX;
   538  alias LPCPINFOEXA LPCPINFOEX;
   539  // #endif // UNICODE
   540  
   541  struct _numberfmtA {
   542    UINT NumDigits;
   543    UINT LeadingZero;
   544    UINT Grouping;
   545    LPSTR lpDecimalSep;
   546    LPSTR lpThousandSep;
   547    UINT NegativeOrder;
   548  }
   549  alias _numberfmtA NUMBERFMTA;
   550  alias _numberfmtA* LPNUMBERFMTA;
   551  
   552  struct _numberfmtW {
   553    UINT NumDigits;
   554    UINT LeadingZero;
   555    UINT Grouping;
   556    LPWSTR lpDecimalSep;
   557    LPWSTR lpThousandSep;
   558    UINT NegativeOrder;
   559  }
   560  alias _numberfmtW NUMBERFMTW;
   561  alias _numberfmtW* LPNUMBERFMTW;
   562  
   563  // #ifdef UNICODE
   564  // ...
   565  // #else
   566  alias NUMBERFMTA NUMBERFMT;
   567  alias LPNUMBERFMTA LPNUMBERFMT;
   568  // #endif // UNICODE
   569  
   570  struct _currencyfmtA {
   571    UINT NumDigits;
   572    UINT LeadingZero;
   573    UINT Grouping;
   574    LPSTR lpDecimalSep;
   575    LPSTR lpThousandSep;
   576    UINT NegativeOrder;
   577    UINT PositiveOrder;
   578    LPSTR lpCurrencySymbol;
   579  }
   580  alias _currencyfmtA CURRENCYFMTA;
   581  alias _currencyfmtA* LPCURRENCYFMTA;
   582  
   583  struct _currencyfmtW {
   584    UINT NumDigits;
   585    UINT LeadingZero;
   586    UINT Grouping;
   587    LPWSTR lpDecimalSep;
   588    LPWSTR lpThousandSep;
   589    UINT NegativeOrder;
   590    UINT PositiveOrder;
   591    LPWSTR lpCurrencySymbol;
   592  }
   593  alias _currencyfmtW CURRENCYFMTW;
   594  alias _currencyfmtW* LPCURRENCYFMTW;
   595  
   596  // #ifdef UNICODE
   597  // ...
   598  // #else
   599  alias CURRENCYFMTA CURRENCYFMT;
   600  alias LPCURRENCYFMTA LPCURRENCYFMT;
   601  // #endif // UNICODE
   602  
   603  alias LONG GEOID;
   604  alias DWORD GEOTYPE;
   605  alias DWORD GEOCLASS;
   606  
   607  enum { GEOID_NOT_AVAILABLE = -1 }
   608  
   609  enum SYSGEOTYPE {
   610    GEO_NATION = 0x0001,
   611    GEO_LATITUDE = 0x0002,
   612    GEO_LONGITUDE = 0x0003,
   613    GEO_ISO2 = 0x0004,
   614    GEO_ISO3 = 0x0005,
   615    GEO_RFC1766 = 0x0006,
   616    GEO_LCID = 0x0007,
   617    GEO_FRIENDLYNAME = 0x0008,
   618    GEO_OFFICIALNAME = 0x0009,
   619    GEO_TIMEZONES = 0x000A,
   620    GEO_OFFICIALLANGUAGES = 0x000B,
   621  }
   622  
   623  enum SYSGEOCLASS {
   624    GEOCLASS_NATION = 16,
   625    GEOCLASS_REGION = 14,
   626  }
   627  
   628  // #ifdef STRICT
   629  
   630  // ...
   631  
   632  // ...
   633  
   634  // #else // !STRICT
   635  
   636  alias FARPROC LANGUAGEGROUP_ENUMPROCA;
   637  alias FARPROC LANGGROUPLOCALE_ENUMPROCA;
   638  alias FARPROC UILANGUAGE_ENUMPROCA;
   639  alias FARPROC LOCALE_ENUMPROCA;
   640  alias FARPROC CODEPAGE_ENUMPROCA;
   641  alias FARPROC DATEFMT_ENUMPROCA;
   642  alias FARPROC DATEFMT_ENUMPROCEXA;
   643  alias FARPROC TIMEFMT_ENUMPROCA;
   644  alias FARPROC CALINFO_ENUMPROCA;
   645  alias FARPROC CALINFO_ENUMPROCEXA;
   646  alias FARPROC GEO_ENUMPROC;
   647  
   648  alias FARPROC LANGUAGEGROUP_ENUMPROCW;
   649  alias FARPROC LANGGROUPLOCALE_ENUMPROCW;
   650  alias FARPROC UILANGUAGE_ENUMPROCW;
   651  alias FARPROC LOCALE_ENUMPROCW;
   652  alias FARPROC CODEPAGE_ENUMPROCW;
   653  alias FARPROC DATEFMT_ENUMPROCW;
   654  alias FARPROC DATEFMT_ENUMPROCEXW;
   655  alias FARPROC TIMEFMT_ENUMPROCW;
   656  alias FARPROC CALINFO_ENUMPROCW;
   657  alias FARPROC CALINFO_ENUMPROCEXW;
   658  
   659  // #endif // !STRICT
   660  
   661  // #ifdef UNICODE
   662  
   663  // #...
   664  // #...
   665  // #...
   666  // #...
   667  // #...
   668  // #...
   669  // #...
   670  // #...
   671  // #...
   672  // #...
   673  
   674  // #else
   675  
   676  alias LANGUAGEGROUP_ENUMPROCA LANGUAGEGROUP_ENUMPROC;
   677  alias LANGGROUPLOCALE_ENUMPROCA LANGGROUPLOCALE_ENUMPROC;
   678  alias UILANGUAGE_ENUMPROCA UILANGUAGE_ENUMPROC;
   679  alias LOCALE_ENUMPROCA LOCALE_ENUMPROC;
   680  alias CODEPAGE_ENUMPROCA CODEPAGE_ENUMPROC;
   681  alias DATEFMT_ENUMPROCA DATEFMT_ENUMPROC;
   682  alias DATEFMT_ENUMPROCEXA DATEFMT_ENUMPROCEX;
   683  alias TIMEFMT_ENUMPROCA TIMEFMT_ENUMPROC;
   684  alias CALINFO_ENUMPROCA CALINFO_ENUMPROC;
   685  alias CALINFO_ENUMPROCEXA CALINFO_ENUMPROCEX;
   686  
   687  // #endif // !UNICODE
   688  
   689  extern(Windows) export BOOL IsValidCodePage(
   690    UINT CodePage);
   691  
   692  extern(Windows) export UINT GetACP();
   693  
   694  extern(Windows) export UINT GetOEMCP();
   695  
   696  extern(Windows) export BOOL GetCPInfo(
   697    UINT CodePage,
   698    LPCPINFO lpCPInfo);
   699  
   700  extern(Windows) export BOOL GetCPInfoExA(
   701    UINT CodePage,
   702    DWORD dwFlags,
   703    LPCPINFOEXA lpCPInfoEx);
   704  extern(Windows) export BOOL GetCPInfoExW(
   705    UINT CodePage,
   706    DWORD dwFlags,
   707    LPCPINFOEXW lpCPInfoEx);
   708  // #ifdef UNICODE
   709  // #...
   710  // #else
   711  alias GetCPInfoExA GetCPInfoEx;
   712  // #endif // !UNICODE
   713  
   714  extern(Windows) export BOOL IsDBCSLeadByte(
   715    BYTE TestChar);
   716  
   717  extern(Windows) export BOOL IsDBCSLeadByteEx(
   718    UINT CodePage,
   719    BYTE TestChar);
   720  
   721  extern(Windows) export int MultiByteToWideChar(
   722    UINT CodePage,
   723    DWORD dwFlags,
   724    LPCSTR lpMultiByteStr,
   725    int cbMultiByte,
   726    LPWSTR lpWideCharStr,
   727    int cchWideChar);
   728  
   729  extern(Windows) export int WideCharToMultiByte(
   730    UINT CodePage,
   731    DWORD dwFlags,
   732    LPCWSTR lpWideCharStr,
   733    int cchWideChar,
   734    LPSTR lpMultiByteStr,
   735    int cbMultiByte,
   736    LPCSTR lpDefaultChar,
   737    LPBOOL lpUsedDefaultChar);
   738  
   739  extern(Windows) export int CompareStringA(
   740    LCID Locale,
   741    DWORD dwCmpFlags,
   742    LPCSTR lpString1,
   743    int cchCount1,
   744    LPCSTR lpString2,
   745    int cchCount2);
   746  extern(Windows) export int CompareStringW(
   747    LCID Locale,
   748    DWORD dwCmpFlags,
   749    LPCWSTR lpString1,
   750    int cchCount1,
   751    LPCWSTR lpString2,
   752    int cchCount2);
   753  // #ifdef UNICODE
   754  // #...
   755  // #else
   756  alias CompareStringA CompareString;
   757  // #endif // !UNICODE
   758  
   759  extern(Windows) export int LCMapStringA(
   760    LCID Locale,
   761    DWORD dwMapFlags,
   762    LPCSTR lpSrcStr,
   763    int cchSrc,
   764    LPSTR lpDestStr,
   765    int cchDest);
   766  extern(Windows) export int LCMapStringW(
   767    LCID Locale,
   768    DWORD dwMapFlags,
   769    LPCWSTR lpSrcStr,
   770    int cchSrc,
   771    LPWSTR lpDestStr,
   772    int cchDest);
   773  // #ifdef UNICODE
   774  // #...
   775  // #else
   776  alias LCMapStringA LCMapString;
   777  // #endif // !UNICODE
   778  
   779  extern(Windows) export int GetLocaleInfoA(
   780    LCID Locale,
   781    LCTYPE LCType,
   782    LPSTR lpLCData,
   783    int cchData);
   784  extern(Windows) export int GetLocaleInfoW(
   785    LCID Locale,
   786    LCTYPE LCType,
   787    LPWSTR lpLCData,
   788    int cchData);
   789  // #ifdef UNICODE
   790  // #...
   791  // #else
   792  alias GetLocaleInfoA GetLocaleInfo;
   793  // #endif // !UNICODE
   794  
   795  extern(Windows) export BOOL SetLocaleInfoA(
   796    LCID Locale,
   797    LCTYPE LCType,
   798    LPCSTR lpLCData);
   799  extern(Windows) export BOOL SetLocaleInfoW(
   800    LCID Locale,
   801    LCTYPE LCType,
   802    LPCWSTR lpLCData);
   803  // #ifdef UNICODE
   804  // #...
   805  // #else
   806  alias SetLocaleInfoA SetLocaleInfo;
   807  // #endif // !UNICODE
   808  
   809  // #if (WINVER >= 0x040A)
   810  extern(Windows) export int GetCalendarInfoA(
   811    LCID Locale,
   812    CALID Calendar,
   813    CALTYPE CalType,
   814    LPSTR lpCalData,
   815    int cchData,
   816    LPDWORD lpValue);
   817  extern(Windows) export int GetCalendarInfoW(
   818    LCID Locale,
   819    CALID Calendar,
   820    CALTYPE CalType,
   821    LPWSTR lpCalData,
   822    int cchData,
   823    LPDWORD lpValue);
   824  // #ifdef UNICODE
   825  // #...
   826  // #else
   827  alias GetCalendarInfoA GetCalendarInfo;
   828  // #endif // !UNICODE
   829  
   830  extern(Windows) export BOOL SetCalendarInfoA(
   831    LCID Locale,
   832    CALID Calendar,
   833    CALTYPE CalType,
   834    LPCSTR lpCalData);
   835  extern(Windows) export BOOL SetCalendarInfoW(
   836    LCID Locale,
   837    CALID Calendar,
   838    CALTYPE CalType,
   839    LPCWSTR lpCalData);
   840  // #ifdef UNICODE
   841  // #...
   842  // #else
   843  alias SetCalendarInfoA SetCalendarInfo;
   844  // #endif // !UNICODE
   845  // #endif
   846  
   847  extern(Windows) export int GetTimeFormatA(
   848    LCID Locale,
   849    DWORD dwFlags,
   850    SYSTEMTIME *lpTime,
   851    LPCSTR lpFormat,
   852    LPSTR lpTimeStr,
   853    int cchTime);
   854  extern(Windows) export int GetTimeFormatW(
   855    LCID Locale,
   856    DWORD dwFlags,
   857    SYSTEMTIME *lpTime,
   858    LPCWSTR lpFormat,
   859    LPWSTR lpTimeStr,
   860    int cchTime);
   861  // #ifdef UNICODE
   862  // #...
   863  // #else
   864  alias GetTimeFormatA GetTimeFormat;
   865  // #endif // !UNICODE
   866  
   867  extern(Windows) export int GetDateFormatA(
   868    LCID Locale,
   869    DWORD dwFlags,
   870    SYSTEMTIME *lpDate,
   871    LPCSTR lpFormat,
   872    LPSTR lpDateStr,
   873    int cchDate);
   874  extern(Windows) export int GetDateFormatW(
   875    LCID Locale,
   876    DWORD dwFlags,
   877    SYSTEMTIME *lpDate,
   878    LPCWSTR lpFormat,
   879    LPWSTR lpDateStr,
   880    int cchDate);
   881  // #ifdef UNICODE
   882  // #...
   883  // #else
   884  alias GetDateFormatA GetDateFormat;
   885  // #endif // !UNICODE
   886  
   887  extern(Windows) export int GetNumberFormatA(
   888    LCID Locale,
   889    DWORD dwFlags,
   890    LPCSTR lpValue,
   891    NUMBERFMTA *lpFormat,
   892    LPSTR lpNumberStr,
   893    int cchNumber);
   894  extern(Windows) export int GetNumberFormatW(
   895    LCID Locale,
   896    DWORD dwFlags,
   897    LPCWSTR lpValue,
   898    NUMBERFMTW *lpFormat,
   899    LPWSTR lpNumberStr,
   900    int cchNumber);
   901  // #ifdef UNICODE
   902  // #...
   903  // #else
   904  alias GetNumberFormatA GetNumberFormat;
   905  // #endif // !UNICODE
   906  
   907  extern(Windows) export int GetCurrencyFormatA(
   908    LCID Locale,
   909    DWORD dwFlags,
   910    LPCSTR lpValue,
   911    CURRENCYFMTA *lpFormat,
   912    LPSTR lpCurrencyStr,
   913    int cchCurrency);
   914  extern(Windows) export int GetCurrencyFormatW(
   915    LCID Locale,
   916    DWORD dwFlags,
   917    LPCWSTR lpValue,
   918    CURRENCYFMTW *lpFormat,
   919    LPWSTR lpCurrencyStr,
   920    int cchCurrency);
   921  // #ifdef UNICODE
   922  // #...
   923  // #else
   924  alias GetCurrencyFormatA GetCurrencyFormat;
   925  // #endif // !UNICODE
   926  
   927  extern(Windows) export BOOL EnumCalendarInfoA(
   928    CALINFO_ENUMPROCA lpCalInfoEnumProc,
   929    LCID Locale,
   930    CALID Calendar,
   931    CALTYPE CalType);
   932  extern(Windows) export BOOL EnumCalendarInfoW(
   933    CALINFO_ENUMPROCW lpCalInfoEnumProc,
   934    LCID Locale,
   935    CALID Calendar,
   936    CALTYPE CalType);
   937  // #ifdef UNICODE
   938  // #...
   939  // #else
   940  alias EnumCalendarInfoA EnumCalendarInfo;
   941  // #endif // !UNICODE
   942  
   943  // #if(WINVER >= 0x0500)
   944  extern(Windows) export BOOL EnumCalendarInfoExA(
   945    CALINFO_ENUMPROCEXA lpCalInfoEnumProcEx,
   946    LCID Locale,
   947    CALID Calendar,
   948    CALTYPE CalType);
   949  extern(Windows) export BOOL EnumCalendarInfoExW(
   950    CALINFO_ENUMPROCEXW lpCalInfoEnumProcEx,
   951    LCID Locale,
   952    CALID Calendar,
   953    CALTYPE CalType);
   954  // #ifdef UNICODE
   955  // #...
   956  // #else
   957  alias EnumCalendarInfoExA EnumCalendarInfoEx;
   958  // #endif // !UNICODE
   959  // #endif /* WINVER >= 0x0500 */
   960  
   961  extern(Windows) export BOOL EnumTimeFormatsA(
   962    TIMEFMT_ENUMPROCA lpTimeFmtEnumProc,
   963    LCID Locale,
   964    DWORD dwFlags);
   965  extern(Windows) export BOOL EnumTimeFormatsW(
   966    TIMEFMT_ENUMPROCW lpTimeFmtEnumProc,
   967    LCID Locale,
   968    DWORD dwFlags);
   969  // #ifdef UNICODE
   970  // #...
   971  // #else
   972  alias EnumTimeFormatsA EnumTimeFormats;
   973  // #endif // !UNICODE
   974  
   975  extern(Windows) export BOOL EnumDateFormatsA(
   976    DATEFMT_ENUMPROCA lpDateFmtEnumProc,
   977    LCID Locale,
   978    DWORD dwFlags);
   979  extern(Windows) export BOOL EnumDateFormatsW(
   980    DATEFMT_ENUMPROCW lpDateFmtEnumProc,
   981    LCID Locale,
   982    DWORD dwFlags);
   983  // #ifdef UNICODE
   984  // #...
   985  // #else
   986  alias EnumDateFormatsA EnumDateFormats;
   987  // #endif // !UNICODE
   988  
   989  // #if(WINVER >= 0x0500)
   990  extern(Windows) export BOOL EnumDateFormatsExA(
   991    DATEFMT_ENUMPROCEXA lpDateFmtEnumProcEx,
   992    LCID Locale,
   993    DWORD dwFlags);
   994  extern(Windows) export BOOL EnumDateFormatsExW(
   995    DATEFMT_ENUMPROCEXW lpDateFmtEnumProcEx,
   996    LCID Locale,
   997    DWORD dwFlags);
   998  // #ifdef UNICODE
   999  // #...
  1000  // #else
  1001  alias EnumDateFormatsExA EnumDateFormatsEx;
  1002  // #endif // !UNICODE
  1003  // #endif /* WINVER >= 0x0500 */
  1004  
  1005  // #if(WINVER >= 0x0500)
  1006  extern(Windows) export BOOL IsValidLanguageGroup(
  1007    LGRPID LanguageGroup,
  1008    DWORD dwFlags);
  1009  // #endif /* WINVER >= 0x0500 */
  1010  
  1011  extern(Windows) export BOOL IsValidLocale(
  1012    LCID Locale,
  1013    DWORD dwFlags);
  1014  
  1015  extern(Windows) export int GetGeoInfoA(
  1016    GEOID Location,
  1017    GEOTYPE GeoType,
  1018    LPSTR lpGeoData,
  1019    int cchData,
  1020    LANGID LangId);
  1021  extern(Windows) export int GetGeoInfoW(
  1022    GEOID Location,
  1023    GEOTYPE GeoType,
  1024    LPWSTR lpGeoData,
  1025    int cchData,
  1026    LANGID LangId);
  1027  // #ifdef UNICODE
  1028  // #...
  1029  // #else
  1030  alias GetGeoInfoA GetGeoInfo;
  1031  // #endif // !UNICODE
  1032  
  1033  extern(Windows) export BOOL EnumSystemGeoID(
  1034    GEOCLASS GeoClass,
  1035    GEOID ParentGeoId,
  1036    GEO_ENUMPROC lpGeoEnumProc);
  1037  
  1038  extern(Windows) export GEOID GetUserGeoID(
  1039    GEOCLASS GeoClass);
  1040  
  1041  extern(Windows) export BOOL SetUserGeoID(
  1042    GEOID GeoId);
  1043  
  1044  extern(Windows) export LCID ConvertDefaultLocale(
  1045    LCID Locale);
  1046  
  1047  extern(Windows) export LCID GetThreadLocale();
  1048  
  1049  extern(Windows) export BOOL SetThreadLocale(
  1050    LCID Locale
  1051    );
  1052  
  1053  // #if(WINVER >= 0x0500)
  1054  extern(Windows) export LANGID GetSystemDefaultUILanguage();
  1055  
  1056  extern(Windows) export LANGID GetUserDefaultUILanguage();
  1057  // #endif /* WINVER >= 0x0500 */
  1058  
  1059  extern(Windows) export LANGID GetSystemDefaultLangID();
  1060  
  1061  extern(Windows) export LANGID GetUserDefaultLangID();
  1062  
  1063  extern(Windows) export LCID GetSystemDefaultLCID();
  1064  
  1065  extern(Windows) export LCID GetUserDefaultLCID();
  1066  
  1067  extern(Windows) export BOOL GetStringTypeExA(
  1068    LCID Locale,
  1069    DWORD dwInfoType,
  1070    LPCSTR lpSrcStr,
  1071    int cchSrc,
  1072    LPWORD lpCharType);
  1073  extern(Windows) export BOOL GetStringTypeExW(
  1074    LCID Locale,
  1075    DWORD dwInfoType,
  1076    LPCWSTR lpSrcStr,
  1077    int cchSrc,
  1078    LPWORD lpCharType);
  1079  // #ifdef UNICODE
  1080  // #...
  1081  // #else
  1082  alias GetStringTypeExA GetStringTypeEx;
  1083  // #endif // !UNICODE
  1084  
  1085  extern(Windows) export BOOL GetStringTypeA(
  1086    LCID Locale,
  1087    DWORD dwInfoType,
  1088    LPCSTR lpSrcStr,
  1089    int cchSrc,
  1090    LPWORD lpCharType);
  1091  
  1092  extern(Windows) export BOOL GetStringTypeW(
  1093    DWORD dwInfoType,
  1094    LPCWSTR lpSrcStr,
  1095    int cchSrc,
  1096    LPWORD lpCharType);
  1097  
  1098  extern(Windows) export int FoldStringA(
  1099    DWORD dwMapFlags,
  1100    LPCSTR lpSrcStr,
  1101    int cchSrc,
  1102    LPSTR lpDestStr,
  1103    int cchDest);
  1104  extern(Windows) export int FoldStringW(
  1105    DWORD dwMapFlags,
  1106    LPCWSTR lpSrcStr,
  1107    int cchSrc,
  1108    LPWSTR lpDestStr,
  1109    int cchDest);
  1110  // #ifdef UNICODE
  1111  // #...
  1112  // #else
  1113  alias FoldStringA FoldString;
  1114  // #endif // !UNICODE
  1115  
  1116  // #if(WINVER >= 0x0500)
  1117  extern(Windows) export BOOL EnumSystemLanguageGroupsA(
  1118    LANGUAGEGROUP_ENUMPROCA lpLanguageGroupEnumProc,
  1119    DWORD dwFlags,
  1120    LONG_PTR lParam);
  1121  extern(Windows) export BOOL EnumSystemLanguageGroupsW(
  1122    LANGUAGEGROUP_ENUMPROCW lpLanguageGroupEnumProc,
  1123    DWORD dwFlags,
  1124    LONG_PTR lParam);
  1125  // #ifdef UNICODE
  1126  // #...
  1127  // #else
  1128  alias EnumSystemLanguageGroupsA EnumSystemLanguageGroups;
  1129  // #endif // !UNICODE
  1130  
  1131  extern(Windows) export BOOL EnumLanguageGroupLocalesA(
  1132    LANGGROUPLOCALE_ENUMPROCA lpLangGroupLocaleEnumProc,
  1133    LGRPID LanguageGroup,
  1134    DWORD dwFlags,
  1135    LONG_PTR lParam);
  1136  extern(Windows) export BOOL EnumLanguageGroupLocalesW(
  1137    LANGGROUPLOCALE_ENUMPROCW lpLangGroupLocaleEnumProc,
  1138    LGRPID LanguageGroup,
  1139    DWORD dwFlags,
  1140    LONG_PTR lParam);
  1141  // #ifdef UNICODE
  1142  // #...
  1143  // #else
  1144  alias EnumLanguageGroupLocalesA EnumLanguageGroupLocales;
  1145  // #endif // !UNICODE
  1146  
  1147  extern(Windows) export BOOL EnumUILanguagesA(
  1148    UILANGUAGE_ENUMPROCA lpUILanguageEnumProc,
  1149    DWORD dwFlags,
  1150    LONG_PTR lParam);
  1151  extern(Windows) export BOOL EnumUILanguagesW(
  1152    UILANGUAGE_ENUMPROCW lpUILanguageEnumProc,
  1153    DWORD dwFlags,
  1154    LONG_PTR lParam);
  1155  // #ifdef UNICODE
  1156  // #...
  1157  // #else
  1158  alias EnumUILanguagesA EnumUILanguages;
  1159  // #endif // !UNICODE
  1160  // #endif /* WINVER >= 0x0500 */
  1161  
  1162  extern(Windows) export BOOL EnumSystemLocalesA(
  1163    LOCALE_ENUMPROCA lpLocaleEnumProc,
  1164    DWORD dwFlags);
  1165  extern(Windows) export BOOL EnumSystemLocalesW(
  1166    LOCALE_ENUMPROCW lpLocaleEnumProc,
  1167    DWORD dwFlags);
  1168  // #ifdef UNICODE
  1169  // #...
  1170  // #else
  1171  alias EnumSystemLocalesA EnumSystemLocales;
  1172  // #endif // !UNICODE
  1173  
  1174  extern(Windows) export BOOL EnumSystemCodePagesA(
  1175    CODEPAGE_ENUMPROCA lpCodePageEnumProc,
  1176    DWORD dwFlags);
  1177  extern(Windows) export BOOL EnumSystemCodePagesW(
  1178    CODEPAGE_ENUMPROCW lpCodePageEnumProc,
  1179    DWORD dwFlags);
  1180  // #ifdef UNICODE
  1181  // #...
  1182  // #else
  1183  alias EnumSystemCodePagesA EnumSystemCodePages;
  1184  // #endif // !UNICODE
  1185  
  1186  // #endif // NONLS
  1187  
  1188  // #ifdef __cplusplus
  1189  // }
  1190  // #endif
  1191  
  1192  // #endif // _WINNLS_