compile insert msWin_Locale_Equates
/*
   ** Copyright (C) 2012-2022 Revelation Software Inc. All Rights Reserved **
   
   This program is proprietary and is not to be used by or disclosed
   to others, nor is it to be copied without written permission from
   Revelation Technologies, Inc.
   
   Author  : Mr C
   Date    : 08 Feb 2017
   Purpose : Equates for the WinAPI GetLocaleInfo() function
              
              
   Comments
   ========
   
   Amended   Date        Reason
   =======   ====        ======

*/
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#ifndef _MSWIN_LOCALE_EQUATES_
#define _MSWIN_LOCALE_EQUATES_
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   declare function msWin_GetLocaleInfo, msWin_GetLocaleInfoEx
   
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   * // Language IDs
   equ LANG_NEUTRAL$                   to 0x00
   equ LANG_INVARIANT$                 to 0x7F
   
   equ SUBLANG_NEUTRAL$                to 0x00 ; * language neutral
   equ SUBLANG_DEFAULT$                to 0x01 ; * user default
   equ SUBLANG_SYS_DEFAULT$            to 0x02 ; * system default
   equ SUBLANG_CUSTOM_DEFAULT$         to 0x03 ; * default custom language/locale
   equ SUBLANG_CUSTOM_UNSPECIFIED$     to 0x04 ; * custom language/locale
   equ SUBLANG_UI_CUSTOM_DEFAULT$      to 0x05 ; * Default custom MUI language/locale
   
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   * // Sorting IDs
   equ SORT_DEFAULT$                   to 0x0  ; * sorting default
   equ SORT_INVARIANT_MATH$            to 0x1  ; * Invariant (Mathematical Symbols)

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   * // Locale IDs
   
   * // #define MAKELANGID(p, s)       ((((WORD  )(s)) << 10) | (WORD  )(p))
   * // 
   * // #define MAKELCID(lgid, srtid)  ((DWORD)((((DWORD)((WORD  )(srtid))) << 16) |  \
   * //                                       ((DWORD)((WORD  )(lgid)))))
      
   equ LANG_SYSTEM_DEFAULT$            to 0x0800  ; *  ( MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT) )
   equ LANG_USER_DEFAULT$              to 0x0400  ; *  ( MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT) )

   equ LOCALE_SYSTEM_DEFAULT$          to 0x0800  ; *  ( MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT) )
   equ LOCALE_USER_DEFAULT$            to 0x0400  ; *  ( MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT ) )
   
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

   * //  Locale Types.
   equ LOCALE_NOUSEROVERRIDE$          to 0x80000000   ; * do not use user overrides
   equ LOCALE_USE_CP_ACP$              to 0x40000000   ; * use the system ACP
   equ LOCALE_RETURN_NUMBER$           to 0x20000000   ; * return number instead of string
   
   equ LOCALE_RETURN_GENITIVE_NAMES$   to 0x10000000   ; *Flag to return the Genitive forms of month names
   equ LOCALE_ALLOW_NEUTRAL_NAMES$     to 0x08000000   ; *Flag to allow returning neutral names/lcids for name conversion
   
   * //  The following LCTypes are mutually exclusive in that they may NOT
   * //  be used in combination with each other.
   
   * // These are the various forms of the name of the locale:
   equ LOCALE_SLOCALIZEDDISPLAYNAME$   to 0x00000002   ; * localized name of locale, eg "German (Germany)" in UI language
   equ LOCALE_SENGLISHDISPLAYNAME$     to 0x00000072   ; * Display name (language + country usually) in English, eg "German (Germany)"
   equ LOCALE_SNATIVEDISPLAYNAME$      to 0x00000073   ; * Display name in native locale language, eg "Deutsch (Deutschland)
   
   equ LOCALE_SLOCALIZEDLANGUAGENAME$  to 0x0000006f   ; * Language Display Name for a language, eg "German" in UI language
   equ LOCALE_SENGLISHLANGUAGENAME$    to 0x00001001   ; * English name of language, eg "German"
   equ LOCALE_SNATIVELANGUAGENAME$     to 0x00000004   ; * native name of language, eg "Deutsch"

   equ LOCALE_SLOCALIZEDCOUNTRYNAME$   to 0x00000006   ; * localized name of country, eg "Germany" in UI language
   equ LOCALE_SENGLISHCOUNTRYNAME$     to 0x00001002   ; * English name of country, eg "Germany"
   equ LOCALE_SNATIVECOUNTRYNAME$      to 0x00000008   ; * native name of country, eg "Deutschland"

   * // Legacy labels for the locale name values
   equ LOCALE_SLANGUAGE$               to 0x00000002   ; * localized name of locale, eg "German (Germany)" in UI language
   equ LOCALE_SLANGDISPLAYNAME$        to 0x0000006f   ; * Language Display Name for a language, eg "German" in UI language
   equ LOCALE_SENGLANGUAGE$            to 0x00001001   ; * English name of language, eg "German"
   equ LOCALE_SNATIVELANGNAME$         to 0x00000004   ; * native name of language, eg "Deutsch"
   equ LOCALE_SCOUNTRY$                to 0x00000006   ; * localized name of country, eg "Germany" in UI language
   equ LOCALE_SENGCOUNTRY$             to 0x00001002   ; * English name of country, eg "Germany"
   equ LOCALE_SNATIVECTRYNAME$         to 0x00000008   ; * native name of country, eg "Deutschland"

   * // Additional LCTypes
   equ LOCALE_ILANGUAGE$               to 0x00000001   ; * language id, LOCALE_SNAME preferred
   equ LOCALE_SABBREVLANGNAME$         to 0x00000003   ; * arbitrary abbreviated language name, LOCALE_SISO639LANGNAME preferred
   equ LOCALE_ICOUNTRY$                to 0x00000005   ; * country code, eg 1, LOCALE_SISO3166CTRYNAME may be more useful.
   equ LOCALE_SABBREVCTRYNAME$         to 0x00000007   ; * arbitrary abbreviated country name, LOCALE_SISO3166CTRYNAME preferred
   equ LOCALE_IGEOID$                  to 0x0000005B   ; * geographical location id, eg "244"
   equ LOCALE_IDEFAULTLANGUAGE$        to 0x00000009   ; * default language id, deprecated
   equ LOCALE_IDEFAULTCOUNTRY$         to 0x0000000A   ; * default country code, deprecated
   equ LOCALE_IDEFAULTCODEPAGE$        to 0x0000000B   ; * default oem code page (use of Unicode is recommended instead)
   equ LOCALE_IDEFAULTANSICODEPAGE$    to 0x00001004   ; * default ansi code page (use of Unicode is recommended instead)
   equ LOCALE_IDEFAULTMACCODEPAGE$     to 0x00001011   ; * default mac code page (use of Unicode is recommended instead)
   equ LOCALE_SLIST$                   to 0x0000000C   ; * list item separator, eg "," for "1,2,3,4"
   equ LOCALE_IMEASURE$                to 0x0000000D   ; * 0 = metric, 1 = US measurement system
   equ LOCALE_SDECIMAL$                to 0x0000000E   ; * decimal separator, eg "." for 1,234.00
   equ LOCALE_STHOUSAND$               to 0x0000000F   ; * thousand separator, eg "," for 1,234.00
   equ LOCALE_SGROUPING$               to 0x00000010   ; * digit grouping, eg "3;0" for 1,000,000
   equ LOCALE_IDIGITS$                 to 0x00000011   ; * number of fractional digits eg 2 for 1.00
   equ LOCALE_ILZERO$                  to 0x00000012   ; * leading zeros for decimal, 0 for .97, 1 for 0.97
   equ LOCALE_INEGNUMBER$              to 0x00001010   ; * negative number mode, 0-4, see documentation
   equ LOCALE_SNATIVEDIGITS$           to 0x00000013   ; * native digits for 0-9, eg "0123456789"
   equ LOCALE_SCURRENCY$               to 0x00000014   ; * local monetary symbol, eg "$"
   equ LOCALE_SINTLSYMBOL$             to 0x00000015   ; * intl monetary symbol, eg "USD"
   equ LOCALE_SMONDECIMALSEP$          to 0x00000016   ; * monetary decimal separator, eg "." for $1,234.00
   equ LOCALE_SMONTHOUSANDSEP$         to 0x00000017   ; * monetary thousand separator, eg "," for $1,234.00
   equ LOCALE_SMONGROUPING$            to 0x00000018   ; * monetary grouping, eg "3;0" for $1,000,000.00
   equ LOCALE_ICURRDIGITS$             to 0x00000019   ; * # local monetary digits, eg 2 for $1.00
   equ LOCALE_IINTLCURRDIGITS$         to 0x0000001A   ; * # intl monetary digits, eg 2 for $1.00
   equ LOCALE_ICURRENCY$               to 0x0000001B   ; * positive currency mode, 0-3, see documenation
   equ LOCALE_INEGCURR$                to 0x0000001C   ; * negative currency mode, 0-15, see documentation
   equ LOCALE_SDATE$                   to 0x0000001D   ; * date separator (derived from LOCALE_SSHORTDATE, use that instead)
   equ LOCALE_STIME$                   to 0x0000001E   ; * time separator (derived from LOCALE_STIMEFORMAT, use that instead)
   equ LOCALE_SSHORTDATE$              to 0x0000001F   ; * short date format string, eg "MM/dd/yyyy"
   equ LOCALE_SLONGDATE$               to 0x00000020   ; * long date format string, eg "dddd, MMMM dd, yyyy"
   equ LOCALE_STIMEFORMAT$             to 0x00001003   ; * time format string, eg "HH:mm:ss"
   equ LOCALE_IDATE$                   to 0x00000021   ; * short date format ordering (derived from LOCALE_SSHORTDATE, use that instead)
   equ LOCALE_ILDATE$                  to 0x00000022   ; * long date format ordering (derived from LOCALE_SLONGDATE, use that instead)
   equ LOCALE_ITIME$                   to 0x00000023   ; * time format specifier (derived from LOCALE_STIMEFORMAT, use that instead)
   equ LOCALE_ITIMEMARKPOSN$           to 0x00001005   ; * time marker position (derived from LOCALE_STIMEFORMAT, use that instead)
   equ LOCALE_ICENTURY$                to 0x00000024   ; * century format specifier (short date, LOCALE_SSHORTDATE is preferred)
   equ LOCALE_ITLZERO$                 to 0x00000025   ; * leading zeros in time field (derived from LOCALE_STIMEFORMAT, use that instead)
   equ LOCALE_IDAYLZERO$               to 0x00000026   ; * leading zeros in day field (short date, LOCALE_SSHORTDATE is preferred)
   equ LOCALE_IMONLZERO$               to 0x00000027   ; * leading zeros in month field (short date, LOCALE_SSHORTDATE is preferred)
   equ LOCALE_S1159$                   to 0x00000028   ; * AM designator, eg "AM"
   equ LOCALE_S2359$                   to 0x00000029   ; * PM designator, eg "PM"
   equ LOCALE_ICALENDARTYPE$           to 0x00001009   ; * type of calendar specifier, eg CAL_GREGORIAN
   equ LOCALE_IOPTIONALCALENDAR$       to 0x0000100B   ; * additional calendar types specifier, eg CAL_GREGORIAN_US
   equ LOCALE_IFIRSTDAYOFWEEK$         to 0x0000100C   ; * first day of week specifier, 0-6, 0=Monday, 6=Sunday
   equ LOCALE_IFIRSTWEEKOFYEAR$        to 0x0000100D   ; * first week of year specifier, 0-2, see documentation
   equ LOCALE_SDAYNAME1$               to 0x0000002A   ; * long name for Monday
   equ LOCALE_SDAYNAME2$               to 0x0000002B   ; * long name for Tuesday
   equ LOCALE_SDAYNAME3$               to 0x0000002C   ; * long name for Wednesday
   equ LOCALE_SDAYNAME4$               to 0x0000002D   ; * long name for Thursday
   equ LOCALE_SDAYNAME5$               to 0x0000002E   ; * long name for Friday
   equ LOCALE_SDAYNAME6$               to 0x0000002F   ; * long name for Saturday
   equ LOCALE_SDAYNAME7$               to 0x00000030   ; * long name for Sunday
   equ LOCALE_SABBREVDAYNAME1$         to 0x00000031   ; * abbreviated name for Monday
   equ LOCALE_SABBREVDAYNAME2$         to 0x00000032   ; * abbreviated name for Tuesday
   equ LOCALE_SABBREVDAYNAME3$         to 0x00000033   ; * abbreviated name for Wednesday
   equ LOCALE_SABBREVDAYNAME4$         to 0x00000034   ; * abbreviated name for Thursday
   equ LOCALE_SABBREVDAYNAME5$         to 0x00000035   ; * abbreviated name for Friday
   equ LOCALE_SABBREVDAYNAME6$         to 0x00000036   ; * abbreviated name for Saturday
   equ LOCALE_SABBREVDAYNAME7$         to 0x00000037   ; * abbreviated name for Sunday
   equ LOCALE_SMONTHNAME1$             to 0x00000038   ; * long name for January
   equ LOCALE_SMONTHNAME2$             to 0x00000039   ; * long name for February
   equ LOCALE_SMONTHNAME3$             to 0x0000003A   ; * long name for March
   equ LOCALE_SMONTHNAME4$             to 0x0000003B   ; * long name for April
   equ LOCALE_SMONTHNAME5$             to 0x0000003C   ; * long name for May
   equ LOCALE_SMONTHNAME6$             to 0x0000003D   ; * long name for June
   equ LOCALE_SMONTHNAME7$             to 0x0000003E   ; * long name for July
   equ LOCALE_SMONTHNAME8$             to 0x0000003F   ; * long name for August
   equ LOCALE_SMONTHNAME9$             to 0x00000040   ; * long name for September
   equ LOCALE_SMONTHNAME10$            to 0x00000041   ; * long name for October
   equ LOCALE_SMONTHNAME11$            to 0x00000042   ; * long name for November
   equ LOCALE_SMONTHNAME12$            to 0x00000043   ; * long name for December
   equ LOCALE_SMONTHNAME13$            to 0x0000100E   ; * long name for 13th month (if exists)
   equ LOCALE_SABBREVMONTHNAME1$       to 0x00000044   ; * abbreviated name for January
   equ LOCALE_SABBREVMONTHNAME2$       to 0x00000045   ; * abbreviated name for February
   equ LOCALE_SABBREVMONTHNAME3$       to 0x00000046   ; * abbreviated name for March
   equ LOCALE_SABBREVMONTHNAME4$       to 0x00000047   ; * abbreviated name for April
   equ LOCALE_SABBREVMONTHNAME5$       to 0x00000048   ; * abbreviated name for May
   equ LOCALE_SABBREVMONTHNAME6$       to 0x00000049   ; * abbreviated name for June
   equ LOCALE_SABBREVMONTHNAME7$       to 0x0000004A   ; * abbreviated name for July
   equ LOCALE_SABBREVMONTHNAME8$       to 0x0000004B   ; * abbreviated name for August
   equ LOCALE_SABBREVMONTHNAME9$       to 0x0000004C   ; * abbreviated name for September
   equ LOCALE_SABBREVMONTHNAME10$      to 0x0000004D   ; * abbreviated name for October
   equ LOCALE_SABBREVMONTHNAME11$      to 0x0000004E   ; * abbreviated name for November
   equ LOCALE_SABBREVMONTHNAME12$      to 0x0000004F   ; * abbreviated name for December
   equ LOCALE_SABBREVMONTHNAME13$      to 0x0000100F   ; * abbreviated name for 13th month (if exists)
   equ LOCALE_SPOSITIVESIGN$           to 0x00000050   ; * positive sign, eg ""
   equ LOCALE_SNEGATIVESIGN$           to 0x00000051   ; * negative sign, eg "-"
   equ LOCALE_IPOSSIGNPOSN$            to 0x00000052   ; * positive sign position (derived from INEGCURR)
   equ LOCALE_INEGSIGNPOSN$            to 0x00000053   ; * negative sign position (derived from INEGCURR)
   equ LOCALE_IPOSSYMPRECEDES$         to 0x00000054   ; * mon sym precedes pos amt (derived from ICURRENCY)
   equ LOCALE_IPOSSEPBYSPACE$          to 0x00000055   ; * mon sym sep by space from pos amt (derived from ICURRENCY)
   equ LOCALE_INEGSYMPRECEDES$         to 0x00000056   ; * mon sym precedes neg amt (derived from INEGCURR)
   equ LOCALE_INEGSEPBYSPACE$          to 0x00000057   ; * mon sym sep by space from neg amt (derived from INEGCURR)
   equ LOCALE_FONTSIGNATURE$           to 0x00000058   ; * font signature
   equ LOCALE_SISO639LANGNAME$         to 0x00000059   ; * ISO abbreviated language name, eg "en"
   equ LOCALE_SISO3166CTRYNAME$        to 0x0000005A   ; * ISO abbreviated country name, eg "US"
   equ LOCALE_IDEFAULTEBCDICCODEPAGE$  to 0x00001012   ; * default ebcdic code page (use of Unicode is recommended instead)
   equ LOCALE_IPAPERSIZE$              to 0x0000100A   ; * 1 = letter, 5 = legal, 8 = a3, 9 = a4
   equ LOCALE_SENGCURRNAME$            to 0x00001007   ; * english name of currency, eg "Euro"
   equ LOCALE_SNATIVECURRNAME$         to 0x00001008   ; * native name of currency, eg "euro"
   equ LOCALE_SYEARMONTH$              to 0x00001006   ; * year month format string, eg "MM/yyyy"
   equ LOCALE_SSORTNAME$               to 0x00001013   ; * sort name, usually "", eg "Dictionary" in UI Language
   equ LOCALE_IDIGITSUBSTITUTION$      to 0x00001014   ; * 0 = context, 1 = none, 2 = national
   equ LOCALE_SNAME$                   to 0x0000005c   ; * locale name (ie: en-us)
   equ LOCALE_SDURATION$               to 0x0000005d   ; * time duration format, eg "hh:mm:ss"
   equ LOCALE_SKEYBOARDSTOINSTALL$     to 0x0000005e   ; * Used internally, see GetKeyboardLayoutName() function
   equ LOCALE_SSHORTESTDAYNAME1$       to 0x00000060   ; * Shortest day name for Monday
   equ LOCALE_SSHORTESTDAYNAME2$       to 0x00000061   ; * Shortest day name for Tuesday
   equ LOCALE_SSHORTESTDAYNAME3$       to 0x00000062   ; * Shortest day name for Wednesday
   equ LOCALE_SSHORTESTDAYNAME4$       to 0x00000063   ; * Shortest day name for Thursday
   equ LOCALE_SSHORTESTDAYNAME5$       to 0x00000064   ; * Shortest day name for Friday
   equ LOCALE_SSHORTESTDAYNAME6$       to 0x00000065   ; * Shortest day name for Saturday
   equ LOCALE_SSHORTESTDAYNAME7$       to 0x00000066   ; * Shortest day name for Sunday
   equ LOCALE_SISO639LANGNAME2$        to 0x00000067   ; * 3 character ISO abbreviated language name, eg "eng"
   equ LOCALE_SISO3166CTRYNAME2$       to 0x00000068   ; * 3 character ISO country name, eg "USA"
   equ LOCALE_SNAN$                    to 0x00000069   ; * Not a Number, eg "NaN"
   equ LOCALE_SPOSINFINITY$            to 0x0000006a   ; * + Infinity, eg "infinity"
   equ LOCALE_SNEGINFINITY$            to 0x0000006b   ; * - Infinity, eg "-infinity"
   equ LOCALE_SSCRIPTS$                to 0x0000006c   ; * Typical scripts in the locale: ; delimited script codes, eg "Latn;"
   equ LOCALE_SPARENT$                 to 0x0000006d   ; * Fallback name for resources, eg "en" for "en-US"
   equ LOCALE_SCONSOLEFALLBACKNAME$    to 0x0000006e   ; * Fallback name for within the console for Unicode Only locales, eg "en" for bn-IN
   equ LOCALE_IREADINGLAYOUT$          to 0x00000070   ; * Returns one of the following 4 reading layout values:
                                                       ; *   0 - Left to right (eg en-US)
                                                       ; *   1 - Right to left (eg arabic locales)
                                                       ; *   2 - Vertical top to bottom with columns to the left and also left to right (ja-JP locales)
                                                       ; *   3 - Vertical top to bottom with columns proceeding to the right
   equ LOCALE_INEUTRAL$                to 0x00000071   ; * Returns 0 for specific cultures, 1 for neutral cultures.
   equ LOCALE_INEGATIVEPERCENT$        to 0x00000074   ; * Returns 0-11 for the negative percent format
   equ LOCALE_IPOSITIVEPERCENT$        to 0x00000075   ; * Returns 0-3 for the positive percent formatIPOSITIVEPERCENT
   equ LOCALE_SPERCENT$                to 0x00000076   ; * Returns the percent symbol
   equ LOCALE_SPERMILLE$               to 0x00000077   ; * Returns the permille (U+2030) symbol
   equ LOCALE_SMONTHDAY$               to 0x00000078   ; * Returns the preferred month/day format
   equ LOCALE_SSHORTTIME$              to 0x00000079   ; * Returns the preferred short time format (ie: no seconds, just h:mm)
   equ LOCALE_SOPENTYPELANGUAGETAG$    to 0x0000007a   ; * Open type language tag, eg: "latn" or "dflt"
   equ LOCALE_SSORTLOCALE$             to 0x0000007b   ; * Name of locale to use for sorting/collation/casing behavior.

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
#endif
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////


