1150 lines
38 KiB
C
1150 lines
38 KiB
C
/**************************************************************************
|
|
* *
|
|
* winnls.h -- NLS procedure declarations, constant definitions and macros *
|
|
* *
|
|
* Copyright (c) 1991-1996, Microsoft Corp. All rights reserved. *
|
|
* *
|
|
**************************************************************************/
|
|
|
|
|
|
#ifndef _WINNLS_
|
|
#define _WINNLS_
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#ifndef NONLS
|
|
|
|
|
|
/***************************************************************************\
|
|
* Constants
|
|
*
|
|
* Define all constants for the NLS component here.
|
|
\***************************************************************************/
|
|
|
|
|
|
/*
|
|
* String Length Maximums.
|
|
*/
|
|
#define MAX_LEADBYTES 12 /* 5 ranges, 2 bytes ea., 0 term. */
|
|
#define MAX_DEFAULTCHAR 2 /* single or double byte */
|
|
|
|
|
|
/*
|
|
* MBCS and Unicode Translation Flags.
|
|
*/
|
|
#define MB_PRECOMPOSED 0x00000001 /* use precomposed chars */
|
|
#define MB_COMPOSITE 0x00000002 /* use composite chars */
|
|
#define MB_USEGLYPHCHARS 0x00000004 /* use glyph chars, not ctrl chars */
|
|
#define MB_ERR_INVALID_CHARS 0x00000008 /* error for invalid chars */
|
|
|
|
#define WC_DEFAULTCHECK 0x00000100 /* check for default char */
|
|
#define WC_COMPOSITECHECK 0x00000200 /* convert composite to precomposed */
|
|
#define WC_DISCARDNS 0x00000010 /* discard non-spacing chars */
|
|
#define WC_SEPCHARS 0x00000020 /* generate separate chars */
|
|
#define WC_DEFAULTCHAR 0x00000040 /* replace w/ default char */
|
|
|
|
|
|
|
|
/*
|
|
* Character Type Flags.
|
|
*/
|
|
#define CT_CTYPE1 0x00000001 /* ctype 1 information */
|
|
#define CT_CTYPE2 0x00000002 /* ctype 2 information */
|
|
#define CT_CTYPE3 0x00000004 /* ctype 3 information */
|
|
|
|
/*
|
|
* CType 1 Flag Bits.
|
|
*/
|
|
#define C1_UPPER 0x0001 /* upper case */
|
|
#define C1_LOWER 0x0002 /* lower case */
|
|
#define C1_DIGIT 0x0004 /* decimal digits */
|
|
#define C1_SPACE 0x0008 /* spacing characters */
|
|
#define C1_PUNCT 0x0010 /* punctuation characters */
|
|
#define C1_CNTRL 0x0020 /* control characters */
|
|
#define C1_BLANK 0x0040 /* blank characters */
|
|
#define C1_XDIGIT 0x0080 /* other digits */
|
|
#define C1_ALPHA 0x0100 /* any linguistic character */
|
|
|
|
/*
|
|
* CType 2 Flag Bits.
|
|
*/
|
|
#define C2_LEFTTORIGHT 0x0001 /* left to right */
|
|
#define C2_RIGHTTOLEFT 0x0002 /* right to left */
|
|
|
|
#define C2_EUROPENUMBER 0x0003 /* European number, digit */
|
|
#define C2_EUROPESEPARATOR 0x0004 /* European numeric separator */
|
|
#define C2_EUROPETERMINATOR 0x0005 /* European numeric terminator */
|
|
#define C2_ARABICNUMBER 0x0006 /* Arabic number */
|
|
#define C2_COMMONSEPARATOR 0x0007 /* common numeric separator */
|
|
|
|
#define C2_BLOCKSEPARATOR 0x0008 /* block separator */
|
|
#define C2_SEGMENTSEPARATOR 0x0009 /* segment separator */
|
|
#define C2_WHITESPACE 0x000A /* white space */
|
|
#define C2_OTHERNEUTRAL 0x000B /* other neutrals */
|
|
|
|
#define C2_NOTAPPLICABLE 0x0000 /* no implicit directionality */
|
|
|
|
/*
|
|
* CType 3 Flag Bits.
|
|
*/
|
|
#define C3_NONSPACING 0x0001 /* nonspacing character */
|
|
#define C3_DIACRITIC 0x0002 /* diacritic mark */
|
|
#define C3_VOWELMARK 0x0004 /* vowel mark */
|
|
#define C3_SYMBOL 0x0008 /* symbols */
|
|
|
|
#define C3_KATAKANA 0x0010 /* katakana character */
|
|
#define C3_HIRAGANA 0x0020 /* hiragana character */
|
|
#define C3_HALFWIDTH 0x0040 /* half width character */
|
|
#define C3_FULLWIDTH 0x0080 /* full width character */
|
|
#define C3_IDEOGRAPH 0x0100 /* ideographic character */
|
|
#define C3_KASHIDA 0x0200 /* Arabic kashida character */
|
|
#define C3_LEXICAL 0x0400 /* lexical character */
|
|
|
|
#define C3_ALPHA 0x8000 /* any linguistic char (C1_ALPHA) */
|
|
|
|
#define C3_NOTAPPLICABLE 0x0000 /* ctype 3 is not applicable */
|
|
|
|
|
|
/*
|
|
* String Flags.
|
|
*/
|
|
#define NORM_IGNORECASE 0x00000001 /* ignore case */
|
|
#define NORM_IGNORENONSPACE 0x00000002 /* ignore nonspacing chars */
|
|
#define NORM_IGNORESYMBOLS 0x00000004 /* ignore symbols */
|
|
|
|
#define NORM_IGNOREKANATYPE 0x00010000 /* ignore kanatype */
|
|
#define NORM_IGNOREWIDTH 0x00020000 /* ignore width */
|
|
|
|
|
|
|
|
/*
|
|
* Locale Independent Mapping Flags.
|
|
*/
|
|
#define MAP_FOLDCZONE 0x00000010 /* fold compatibility zone chars */
|
|
#define MAP_PRECOMPOSED 0x00000020 /* convert to precomposed chars */
|
|
#define MAP_COMPOSITE 0x00000040 /* convert to composite chars */
|
|
#define MAP_FOLDDIGITS 0x00000080 /* all digits to ASCII 0-9 */
|
|
|
|
|
|
/*
|
|
* Locale Dependent Mapping Flags.
|
|
*/
|
|
#define LCMAP_LOWERCASE 0x00000100 /* lower case letters */
|
|
#define LCMAP_UPPERCASE 0x00000200 /* upper case letters */
|
|
#define LCMAP_SORTKEY 0x00000400 /* WC sort key (normalize) */
|
|
#define LCMAP_BYTEREV 0x00000800 /* byte reversal */
|
|
|
|
#define LCMAP_HIRAGANA 0x00100000 /* map katakana to hiragana */
|
|
#define LCMAP_KATAKANA 0x00200000 /* map hiragana to katakana */
|
|
#define LCMAP_HALFWIDTH 0x00400000 /* map double byte to single byte */
|
|
#define LCMAP_FULLWIDTH 0x00800000 /* map single byte to double byte */
|
|
|
|
#define LCMAP_LINGUISTIC_CASING 0x01000000 /* use linguistic rules for casing */
|
|
|
|
#define LCMAP_SIMPLIFIED_CHINESE 0x02000000 /* map traditional chinese to simplified chinese */
|
|
#define LCMAP_TRADITIONAL_CHINESE 0x04000000 /* map simplified chinese to traditional chinese */
|
|
|
|
|
|
|
|
/*
|
|
* Locale Enumeration Flags.
|
|
*/
|
|
#define LCID_INSTALLED 0x00000001 /* installed locale ids */
|
|
#define LCID_SUPPORTED 0x00000002 /* supported locale ids */
|
|
|
|
|
|
/*
|
|
* Code Page Enumeration Flags.
|
|
*/
|
|
#define CP_INSTALLED 0x00000001 /* installed code page ids */
|
|
#define CP_SUPPORTED 0x00000002 /* supported code page ids */
|
|
|
|
|
|
/*
|
|
* Sorting Flags.
|
|
*
|
|
* WORD Sort: culturally correct sort
|
|
* hyphen and apostrophe are special cased
|
|
* example: "coop" and "co-op" will sort together in a list
|
|
*
|
|
* co_op <------- underscore (symbol)
|
|
* coat
|
|
* comb
|
|
* coop
|
|
* co-op <------- hyphen (punctuation)
|
|
* cork
|
|
* went
|
|
* were
|
|
* we're <------- apostrophe (punctuation)
|
|
*
|
|
*
|
|
* STRING Sort: hyphen and apostrophe will sort with all other symbols
|
|
*
|
|
* co-op <------- hyphen (punctuation)
|
|
* co_op <------- underscore (symbol)
|
|
* coat
|
|
* comb
|
|
* coop
|
|
* cork
|
|
* we're <------- apostrophe (punctuation)
|
|
* went
|
|
* were
|
|
*/
|
|
#define SORT_STRINGSORT 0x00001000 /* use string sort method */
|
|
|
|
|
|
//
|
|
// Compare String Return Values.
|
|
//
|
|
#define CSTR_LESS_THAN 1 // string 1 less than string 2
|
|
#define CSTR_EQUAL 2 // string 1 equal to string 2
|
|
#define CSTR_GREATER_THAN 3 // string 1 greater than string 2
|
|
|
|
|
|
//
|
|
// Code Page Default Values.
|
|
//
|
|
#define CP_ACP 0 // default to ANSI code page
|
|
#define CP_OEMCP 1 // default to OEM code page
|
|
#define CP_MACCP 2 // default to MAC code page
|
|
|
|
#define CP_UTF7 65000 // UTF-7 translation
|
|
#define CP_UTF8 65001 // UTF-8 translation
|
|
|
|
|
|
/*
|
|
* Country Codes.
|
|
*/
|
|
#define CTRY_DEFAULT 0
|
|
|
|
#define CTRY_AUSTRALIA 61 /* Australia */
|
|
#define CTRY_AUSTRIA 43 /* Austria */
|
|
#define CTRY_BELGIUM 32 /* Belgium */
|
|
#define CTRY_BRAZIL 55 /* Brazil */
|
|
#define CTRY_BULGARIA 359 /* Bulgaria */
|
|
#define CTRY_CANADA 2 /* Canada */
|
|
#define CTRY_CROATIA 385 /* Croatia */
|
|
#define CTRY_CZECH 42 /* Czech Republic */
|
|
#define CTRY_DENMARK 45 /* Denmark */
|
|
#define CTRY_FINLAND 358 /* Finland */
|
|
#define CTRY_FRANCE 33 /* France */
|
|
#define CTRY_GERMANY 49 /* Germany */
|
|
#define CTRY_GREECE 30 /* Greece */
|
|
#define CTRY_HONG_KONG 852 /* Hong Kong */
|
|
#define CTRY_HUNGARY 36 /* Hungary */
|
|
#define CTRY_ICELAND 354 /* Iceland */
|
|
#define CTRY_IRELAND 353 /* Ireland */
|
|
#define CTRY_ITALY 39 /* Italy */
|
|
#define CTRY_JAPAN 81 /* Japan */
|
|
#define CTRY_MEXICO 52 /* Mexico */
|
|
#define CTRY_NETHERLANDS 31 /* Netherlands */
|
|
#define CTRY_NEW_ZEALAND 64 /* New Zealand */
|
|
#define CTRY_NORWAY 47 /* Norway */
|
|
#define CTRY_POLAND 48 /* Poland */
|
|
#define CTRY_PORTUGAL 351 /* Portugal */
|
|
#define CTRY_PRCHINA 86 /* Peoples' Republic of China */
|
|
#define CTRY_ROMANIA 40 /* Romania */
|
|
#define CTRY_RUSSIA 7 /* Russia */
|
|
#define CTRY_SINGAPORE 65 /* Singapore */
|
|
#define CTRY_SLOVAK 42 /* Slovak Republic */
|
|
#define CTRY_SLOVENIA 386 /* Slovenia */
|
|
#define CTRY_SOUTH_KOREA 82 /* South Korea */
|
|
#define CTRY_SPAIN 34 /* Spain */
|
|
#define CTRY_SWEDEN 46 /* Sweden */
|
|
#define CTRY_SWITZERLAND 41 /* Switzerland */
|
|
#define CTRY_TAIWAN 886 /* Taiwan */
|
|
#define CTRY_TURKEY 90 /* Turkey */
|
|
#define CTRY_UNITED_KINGDOM 44 /* United Kingdom */
|
|
#define CTRY_UNITED_STATES 1 /* United States */
|
|
|
|
|
|
/*
|
|
* Locale Types.
|
|
*
|
|
* These types are used for the GetLocaleInfoW NLS API routine.
|
|
*
|
|
* LOCALE_NOUSEROVERRIDE is also used in GetTimeFormatW and GetDateFormatW.
|
|
*
|
|
* LOCALE_USE_CP_ACP is used in many of the A (Ansi) apis that need to do
|
|
* string translation.
|
|
*/
|
|
#define LOCALE_NOUSEROVERRIDE 0x80000000 /* do not use user overrides */
|
|
#define LOCALE_USE_CP_ACP 0x40000000 /* use the system ACP */
|
|
|
|
#define LOCALE_ILANGUAGE 0x00000001 /* language id */
|
|
#define LOCALE_SLANGUAGE 0x00000002 /* localized name of language */
|
|
#define LOCALE_SENGLANGUAGE 0x00001001 /* English name of language */
|
|
#define LOCALE_SABBREVLANGNAME 0x00000003 /* abbreviated language name */
|
|
#define LOCALE_SNATIVELANGNAME 0x00000004 /* native name of language */
|
|
|
|
#define LOCALE_ICOUNTRY 0x00000005 /* country code */
|
|
#define LOCALE_SCOUNTRY 0x00000006 /* localized name of country */
|
|
#define LOCALE_SENGCOUNTRY 0x00001002 /* English name of country */
|
|
#define LOCALE_SABBREVCTRYNAME 0x00000007 /* abbreviated country name */
|
|
#define LOCALE_SNATIVECTRYNAME 0x00000008 /* native name of country */
|
|
|
|
#define LOCALE_IDEFAULTLANGUAGE 0x00000009 /* default language id */
|
|
#define LOCALE_IDEFAULTCOUNTRY 0x0000000A /* default country code */
|
|
#define LOCALE_IDEFAULTCODEPAGE 0x0000000B /* default oem code page */
|
|
#define LOCALE_IDEFAULTANSICODEPAGE 0x00001004 /* default ansi code page */
|
|
#define LOCALE_IDEFAULTMACCODEPAGE 0x00001011 /* default mac code page */
|
|
|
|
#define LOCALE_SLIST 0x0000000C /* list item separator */
|
|
#define LOCALE_IMEASURE 0x0000000D /* 0 = metric, 1 = US */
|
|
|
|
#define LOCALE_SDECIMAL 0x0000000E /* decimal separator */
|
|
#define LOCALE_STHOUSAND 0x0000000F /* thousand separator */
|
|
#define LOCALE_SGROUPING 0x00000010 /* digit grouping */
|
|
#define LOCALE_IDIGITS 0x00000011 /* number of fractional digits */
|
|
#define LOCALE_ILZERO 0x00000012 /* leading zeros for decimal */
|
|
#define LOCALE_INEGNUMBER 0x00001010 /* negative number mode */
|
|
#define LOCALE_SNATIVEDIGITS 0x00000013 /* native ascii 0-9 */
|
|
|
|
#define LOCALE_SCURRENCY 0x00000014 /* local monetary symbol */
|
|
#define LOCALE_SINTLSYMBOL 0x00000015 /* intl monetary symbol */
|
|
#define LOCALE_SMONDECIMALSEP 0x00000016 /* monetary decimal separator */
|
|
#define LOCALE_SMONTHOUSANDSEP 0x00000017 /* monetary thousand separator */
|
|
#define LOCALE_SMONGROUPING 0x00000018 /* monetary grouping */
|
|
#define LOCALE_ICURRDIGITS 0x00000019 /* # local monetary digits */
|
|
#define LOCALE_IINTLCURRDIGITS 0x0000001A /* # intl monetary digits */
|
|
#define LOCALE_ICURRENCY 0x0000001B /* positive currency mode */
|
|
#define LOCALE_INEGCURR 0x0000001C /* negative currency mode */
|
|
|
|
#define LOCALE_SDATE 0x0000001D /* date separator */
|
|
#define LOCALE_STIME 0x0000001E /* time separator */
|
|
#define LOCALE_SSHORTDATE 0x0000001F /* short date format string */
|
|
#define LOCALE_SLONGDATE 0x00000020 /* long date format string */
|
|
#define LOCALE_STIMEFORMAT 0x00001003 /* time format string */
|
|
#define LOCALE_IDATE 0x00000021 /* short date format ordering */
|
|
#define LOCALE_ILDATE 0x00000022 /* long date format ordering */
|
|
#define LOCALE_ITIME 0x00000023 /* time format specifier */
|
|
#define LOCALE_ITIMEMARKPOSN 0x00001005 /* time marker position */
|
|
#define LOCALE_ICENTURY 0x00000024 /* century format specifier (short date) */
|
|
#define LOCALE_ITLZERO 0x00000025 /* leading zeros in time field */
|
|
#define LOCALE_IDAYLZERO 0x00000026 /* leading zeros in day field (short date) */
|
|
#define LOCALE_IMONLZERO 0x00000027 /* leading zeros in month field (short date) */
|
|
#define LOCALE_S1159 0x00000028 /* AM designator */
|
|
#define LOCALE_S2359 0x00000029 /* PM designator */
|
|
|
|
#define LOCALE_ICALENDARTYPE 0x00001009 /* type of calendar specifier */
|
|
#define LOCALE_IOPTIONALCALENDAR 0x0000100B /* additional calendar types specifier */
|
|
#define LOCALE_IFIRSTDAYOFWEEK 0x0000100C /* first day of week specifier */
|
|
#define LOCALE_IFIRSTWEEKOFYEAR 0x0000100D /* first week of year specifier */
|
|
|
|
#define LOCALE_SDAYNAME1 0x0000002A /* long name for Monday */
|
|
#define LOCALE_SDAYNAME2 0x0000002B /* long name for Tuesday */
|
|
#define LOCALE_SDAYNAME3 0x0000002C /* long name for Wednesday */
|
|
#define LOCALE_SDAYNAME4 0x0000002D /* long name for Thursday */
|
|
#define LOCALE_SDAYNAME5 0x0000002E /* long name for Friday */
|
|
#define LOCALE_SDAYNAME6 0x0000002F /* long name for Saturday */
|
|
#define LOCALE_SDAYNAME7 0x00000030 /* long name for Sunday */
|
|
#define LOCALE_SABBREVDAYNAME1 0x00000031 /* abbreviated name for Monday */
|
|
#define LOCALE_SABBREVDAYNAME2 0x00000032 /* abbreviated name for Tuesday */
|
|
#define LOCALE_SABBREVDAYNAME3 0x00000033 /* abbreviated name for Wednesday */
|
|
#define LOCALE_SABBREVDAYNAME4 0x00000034 /* abbreviated name for Thursday */
|
|
#define LOCALE_SABBREVDAYNAME5 0x00000035 /* abbreviated name for Friday */
|
|
#define LOCALE_SABBREVDAYNAME6 0x00000036 /* abbreviated name for Saturday */
|
|
#define LOCALE_SABBREVDAYNAME7 0x00000037 /* abbreviated name for Sunday */
|
|
#define LOCALE_SMONTHNAME1 0x00000038 /* long name for January */
|
|
#define LOCALE_SMONTHNAME2 0x00000039 /* long name for February */
|
|
#define LOCALE_SMONTHNAME3 0x0000003A /* long name for March */
|
|
#define LOCALE_SMONTHNAME4 0x0000003B /* long name for April */
|
|
#define LOCALE_SMONTHNAME5 0x0000003C /* long name for May */
|
|
#define LOCALE_SMONTHNAME6 0x0000003D /* long name for June */
|
|
#define LOCALE_SMONTHNAME7 0x0000003E /* long name for July */
|
|
#define LOCALE_SMONTHNAME8 0x0000003F /* long name for August */
|
|
#define LOCALE_SMONTHNAME9 0x00000040 /* long name for September */
|
|
#define LOCALE_SMONTHNAME10 0x00000041 /* long name for October */
|
|
#define LOCALE_SMONTHNAME11 0x00000042 /* long name for November */
|
|
#define LOCALE_SMONTHNAME12 0x00000043 /* long name for December */
|
|
#define LOCALE_SMONTHNAME13 0x0000100E /* long name for 13th month (if exists) */
|
|
#define LOCALE_SABBREVMONTHNAME1 0x00000044 /* abbreviated name for January */
|
|
#define LOCALE_SABBREVMONTHNAME2 0x00000045 /* abbreviated name for February */
|
|
#define LOCALE_SABBREVMONTHNAME3 0x00000046 /* abbreviated name for March */
|
|
#define LOCALE_SABBREVMONTHNAME4 0x00000047 /* abbreviated name for April */
|
|
#define LOCALE_SABBREVMONTHNAME5 0x00000048 /* abbreviated name for May */
|
|
#define LOCALE_SABBREVMONTHNAME6 0x00000049 /* abbreviated name for June */
|
|
#define LOCALE_SABBREVMONTHNAME7 0x0000004A /* abbreviated name for July */
|
|
#define LOCALE_SABBREVMONTHNAME8 0x0000004B /* abbreviated name for August */
|
|
#define LOCALE_SABBREVMONTHNAME9 0x0000004C /* abbreviated name for September */
|
|
#define LOCALE_SABBREVMONTHNAME10 0x0000004D /* abbreviated name for October */
|
|
#define LOCALE_SABBREVMONTHNAME11 0x0000004E /* abbreviated name for November */
|
|
#define LOCALE_SABBREVMONTHNAME12 0x0000004F /* abbreviated name for December */
|
|
#define LOCALE_SABBREVMONTHNAME13 0x0000100F /* abbreviated name for 13th month (if exists) */
|
|
|
|
#define LOCALE_SPOSITIVESIGN 0x00000050 /* positive sign */
|
|
#define LOCALE_SNEGATIVESIGN 0x00000051 /* negative sign */
|
|
#define LOCALE_IPOSSIGNPOSN 0x00000052 /* positive sign position */
|
|
#define LOCALE_INEGSIGNPOSN 0x00000053 /* negative sign position */
|
|
#define LOCALE_IPOSSYMPRECEDES 0x00000054 /* mon sym precedes pos amt */
|
|
#define LOCALE_IPOSSEPBYSPACE 0x00000055 /* mon sym sep by space from pos amt */
|
|
#define LOCALE_INEGSYMPRECEDES 0x00000056 /* mon sym precedes neg amt */
|
|
#define LOCALE_INEGSEPBYSPACE 0x00000057 /* mon sym sep by space from neg amt */
|
|
|
|
#if(WINVER >= 0x0400)
|
|
#define LOCALE_FONTSIGNATURE 0x00000058 /* font signature */
|
|
#define LOCALE_SISO639LANGNAME 0x00000059 /* ISO abbreviated language name */
|
|
#define LOCALE_SISO3166CTRYNAME 0x0000005A /* ISO abbreviated country name */
|
|
#endif /* WINVER >= 0x0400 */
|
|
|
|
/*
|
|
* Time Flags for GetTimeFormatW.
|
|
*/
|
|
#define TIME_NOMINUTESORSECONDS 0x00000001 /* do not use minutes or seconds */
|
|
#define TIME_NOSECONDS 0x00000002 /* do not use seconds */
|
|
#define TIME_NOTIMEMARKER 0x00000004 /* do not use time marker */
|
|
#define TIME_FORCE24HOURFORMAT 0x00000008 /* always use 24 hour format */
|
|
|
|
|
|
/*
|
|
* Date Flags for GetDateFormatW.
|
|
*/
|
|
#define DATE_SHORTDATE 0x00000001 /* use short date picture */
|
|
#define DATE_LONGDATE 0x00000002 /* use long date picture */
|
|
#define DATE_USE_ALT_CALENDAR 0x00000004 /* use alternate calendar (if any) */
|
|
|
|
|
|
/*
|
|
* Calendar Types.
|
|
*
|
|
* These types are used for the GetALTCalendarInfoW NLS API routine.
|
|
*/
|
|
#define CAL_ICALINTVALUE 0x00000001 /* calendar type */
|
|
#define CAL_SCALNAME 0x00000002 /* native name of calendar */
|
|
#define CAL_IYEAROFFSETRANGE 0x00000003 /* starting years of eras */
|
|
#define CAL_SERASTRING 0x00000004 /* era name for IYearOffsetRanges */
|
|
#define CAL_SSHORTDATE 0x00000005 /* short date format string */
|
|
#define CAL_SLONGDATE 0x00000006 /* long date format string */
|
|
#define CAL_SDAYNAME1 0x00000007 /* native name for Monday */
|
|
#define CAL_SDAYNAME2 0x00000008 /* native name for Tuesday */
|
|
#define CAL_SDAYNAME3 0x00000009 /* native name for Wednesday */
|
|
#define CAL_SDAYNAME4 0x0000000a /* native name for Thursday */
|
|
#define CAL_SDAYNAME5 0x0000000b /* native name for Friday */
|
|
#define CAL_SDAYNAME6 0x0000000c /* native name for Saturday */
|
|
#define CAL_SDAYNAME7 0x0000000d /* native name for Sunday */
|
|
#define CAL_SABBREVDAYNAME1 0x0000000e /* abbreviated name for Monday */
|
|
#define CAL_SABBREVDAYNAME2 0x0000000f /* abbreviated name for Tuesday */
|
|
#define CAL_SABBREVDAYNAME3 0x00000010 /* abbreviated name for Wednesday */
|
|
#define CAL_SABBREVDAYNAME4 0x00000011 /* abbreviated name for Thursday */
|
|
#define CAL_SABBREVDAYNAME5 0x00000012 /* abbreviated name for Friday */
|
|
#define CAL_SABBREVDAYNAME6 0x00000013 /* abbreviated name for Saturday */
|
|
#define CAL_SABBREVDAYNAME7 0x00000014 /* abbreviated name for Sunday */
|
|
#define CAL_SMONTHNAME1 0x00000015 /* native name for January */
|
|
#define CAL_SMONTHNAME2 0x00000016 /* native name for February */
|
|
#define CAL_SMONTHNAME3 0x00000017 /* native name for March */
|
|
#define CAL_SMONTHNAME4 0x00000018 /* native name for April */
|
|
#define CAL_SMONTHNAME5 0x00000019 /* native name for May */
|
|
#define CAL_SMONTHNAME6 0x0000001a /* native name for June */
|
|
#define CAL_SMONTHNAME7 0x0000001b /* native name for July */
|
|
#define CAL_SMONTHNAME8 0x0000001c /* native name for August */
|
|
#define CAL_SMONTHNAME9 0x0000001d /* native name for September */
|
|
#define CAL_SMONTHNAME10 0x0000001e /* native name for October */
|
|
#define CAL_SMONTHNAME11 0x0000001f /* native name for November */
|
|
#define CAL_SMONTHNAME12 0x00000020 /* native name for December */
|
|
#define CAL_SMONTHNAME13 0x00000021 /* native name for 13th month (if any) */
|
|
#define CAL_SABBREVMONTHNAME1 0x00000022 /* abbreviated name for January */
|
|
#define CAL_SABBREVMONTHNAME2 0x00000023 /* abbreviated name for February */
|
|
#define CAL_SABBREVMONTHNAME3 0x00000024 /* abbreviated name for March */
|
|
#define CAL_SABBREVMONTHNAME4 0x00000025 /* abbreviated name for April */
|
|
#define CAL_SABBREVMONTHNAME5 0x00000026 /* abbreviated name for May */
|
|
#define CAL_SABBREVMONTHNAME6 0x00000027 /* abbreviated name for June */
|
|
#define CAL_SABBREVMONTHNAME7 0x00000028 /* abbreviated name for July */
|
|
#define CAL_SABBREVMONTHNAME8 0x00000029 /* abbreviated name for August */
|
|
#define CAL_SABBREVMONTHNAME9 0x0000002a /* abbreviated name for September */
|
|
#define CAL_SABBREVMONTHNAME10 0x0000002b /* abbreviated name for October */
|
|
#define CAL_SABBREVMONTHNAME11 0x0000002c /* abbreviated name for November */
|
|
#define CAL_SABBREVMONTHNAME12 0x0000002d /* abbreviated name for December */
|
|
#define CAL_SABBREVMONTHNAME13 0x0000002e /* abbreviated name for 13th month (if any) */
|
|
|
|
|
|
/*
|
|
* Calendar Enumeration Value.
|
|
*/
|
|
#define ENUM_ALL_CALENDARS 0xffffffff /* enumerate all calendars */
|
|
|
|
|
|
/*
|
|
* Calendar ID Values.
|
|
*/
|
|
#define CAL_GREGORIAN 1 /* Gregorian (localized) calendar */
|
|
#define CAL_GREGORIAN_US 2 /* Gregorian (U.S.) calendar */
|
|
#define CAL_JAPAN 3 /* Japanese Emperor Era calendar */
|
|
#define CAL_TAIWAN 4 /* Republic of China Era calendar */
|
|
#define CAL_KOREA 5 /* Korean Tangun Era calendar */
|
|
#define CAL_HIJRI 6 /* Hijri (Arabic Lunar) calendar */
|
|
#define CAL_THAI 7 /* Thai calendar */
|
|
#define CAL_HEBREW 8 /* Hebrew calendar */
|
|
|
|
|
|
|
|
|
|
/***************************************************************************\
|
|
* Typedefs
|
|
*
|
|
* Define all types for the NLS component here.
|
|
\***************************************************************************/
|
|
|
|
/*
|
|
* Locale type constant.
|
|
*/
|
|
typedef DWORD LCTYPE;
|
|
|
|
/*
|
|
* Calendar type constant.
|
|
*/
|
|
typedef DWORD CALTYPE;
|
|
|
|
/*
|
|
* Calendar ID.
|
|
*/
|
|
typedef DWORD CALID;
|
|
|
|
|
|
/*
|
|
* CP Info.
|
|
*/
|
|
|
|
typedef struct _cpinfo {
|
|
UINT MaxCharSize; /* max length (bytes) of a char */
|
|
BYTE DefaultChar[MAX_DEFAULTCHAR]; /* default character */
|
|
BYTE LeadByte[MAX_LEADBYTES]; /* lead byte ranges */
|
|
} CPINFO, *LPCPINFO;
|
|
|
|
|
|
/*
|
|
* Number format.
|
|
*/
|
|
|
|
typedef struct _numberfmtA {
|
|
UINT NumDigits; /* number of decimal digits */
|
|
UINT LeadingZero; /* if leading zero in decimal fields */
|
|
UINT Grouping; /* group size left of decimal */
|
|
LPSTR lpDecimalSep; /* ptr to decimal separator string */
|
|
LPSTR lpThousandSep; /* ptr to thousand separator string */
|
|
UINT NegativeOrder; /* negative number ordering */
|
|
} NUMBERFMTA, *LPNUMBERFMTA;
|
|
typedef struct _numberfmtW {
|
|
UINT NumDigits; /* number of decimal digits */
|
|
UINT LeadingZero; /* if leading zero in decimal fields */
|
|
UINT Grouping; /* group size left of decimal */
|
|
LPWSTR lpDecimalSep; /* ptr to decimal separator string */
|
|
LPWSTR lpThousandSep; /* ptr to thousand separator string */
|
|
UINT NegativeOrder; /* negative number ordering */
|
|
} NUMBERFMTW, *LPNUMBERFMTW;
|
|
#ifdef UNICODE
|
|
typedef NUMBERFMTW NUMBERFMT;
|
|
typedef LPNUMBERFMTW LPNUMBERFMT;
|
|
#else
|
|
typedef NUMBERFMTA NUMBERFMT;
|
|
typedef LPNUMBERFMTA LPNUMBERFMT;
|
|
#endif // UNICODE
|
|
|
|
|
|
/*
|
|
* Currency format.
|
|
*/
|
|
|
|
typedef struct _currencyfmtA {
|
|
UINT NumDigits; /* number of decimal digits */
|
|
UINT LeadingZero; /* if leading zero in decimal fields */
|
|
UINT Grouping; /* group size left of decimal */
|
|
LPSTR lpDecimalSep; /* ptr to decimal separator string */
|
|
LPSTR lpThousandSep; /* ptr to thousand separator string */
|
|
UINT NegativeOrder; /* negative currency ordering */
|
|
UINT PositiveOrder; /* positive currency ordering */
|
|
LPSTR lpCurrencySymbol; /* ptr to currency symbol string */
|
|
} CURRENCYFMTA, *LPCURRENCYFMTA;
|
|
typedef struct _currencyfmtW {
|
|
UINT NumDigits; /* number of decimal digits */
|
|
UINT LeadingZero; /* if leading zero in decimal fields */
|
|
UINT Grouping; /* group size left of decimal */
|
|
LPWSTR lpDecimalSep; /* ptr to decimal separator string */
|
|
LPWSTR lpThousandSep; /* ptr to thousand separator string */
|
|
UINT NegativeOrder; /* negative currency ordering */
|
|
UINT PositiveOrder; /* positive currency ordering */
|
|
LPWSTR lpCurrencySymbol; /* ptr to currency symbol string */
|
|
} CURRENCYFMTW, *LPCURRENCYFMTW;
|
|
#ifdef UNICODE
|
|
typedef CURRENCYFMTW CURRENCYFMT;
|
|
typedef LPCURRENCYFMTW LPCURRENCYFMT;
|
|
#else
|
|
typedef CURRENCYFMTA CURRENCYFMT;
|
|
typedef LPCURRENCYFMTA LPCURRENCYFMT;
|
|
#endif // UNICODE
|
|
|
|
|
|
|
|
/*
|
|
* Enumeration function constants.
|
|
*/
|
|
|
|
#ifdef STRICT
|
|
|
|
typedef BOOL (CALLBACK* LOCALE_ENUMPROCA)(LPSTR);
|
|
typedef BOOL (CALLBACK* CODEPAGE_ENUMPROCA)(LPSTR);
|
|
typedef BOOL (CALLBACK* DATEFMT_ENUMPROCA)(LPSTR);
|
|
typedef BOOL (CALLBACK* TIMEFMT_ENUMPROCA)(LPSTR);
|
|
typedef BOOL (CALLBACK* CALINFO_ENUMPROCA)(LPSTR);
|
|
|
|
typedef BOOL (CALLBACK* LOCALE_ENUMPROCW)(LPWSTR);
|
|
typedef BOOL (CALLBACK* CODEPAGE_ENUMPROCW)(LPWSTR);
|
|
typedef BOOL (CALLBACK* DATEFMT_ENUMPROCW)(LPWSTR);
|
|
typedef BOOL (CALLBACK* TIMEFMT_ENUMPROCW)(LPWSTR);
|
|
typedef BOOL (CALLBACK* CALINFO_ENUMPROCW)(LPWSTR);
|
|
|
|
#else /* !STRICT */
|
|
|
|
typedef FARPROC LOCALE_ENUMPROCA;
|
|
typedef FARPROC CODEPAGE_ENUMPROCA;
|
|
typedef FARPROC DATEFMT_ENUMPROCA;
|
|
typedef FARPROC TIMEFMT_ENUMPROCA;
|
|
typedef FARPROC CALINFO_ENUMPROCA;
|
|
|
|
typedef FARPROC LOCALE_ENUMPROCW;
|
|
typedef FARPROC CODEPAGE_ENUMPROCW;
|
|
typedef FARPROC DATEFMT_ENUMPROCW;
|
|
typedef FARPROC TIMEFMT_ENUMPROCW;
|
|
typedef FARPROC CALINFO_ENUMPROCW;
|
|
|
|
#endif /* !STRICT */
|
|
|
|
#ifdef UNICODE
|
|
|
|
#define LOCALE_ENUMPROC LOCALE_ENUMPROCW
|
|
#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCW
|
|
#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCW
|
|
#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCW
|
|
#define CALINFO_ENUMPROC CALINFO_ENUMPROCW
|
|
|
|
#else
|
|
|
|
#define LOCALE_ENUMPROC LOCALE_ENUMPROCA
|
|
#define CODEPAGE_ENUMPROC CODEPAGE_ENUMPROCA
|
|
#define DATEFMT_ENUMPROC DATEFMT_ENUMPROCA
|
|
#define TIMEFMT_ENUMPROC TIMEFMT_ENUMPROCA
|
|
#define CALINFO_ENUMPROC CALINFO_ENUMPROCA
|
|
|
|
#endif // !UNICODE
|
|
|
|
|
|
|
|
/***************************************************************************\
|
|
* Macros
|
|
*
|
|
* Define all macros for the NLS component here.
|
|
\***************************************************************************/
|
|
|
|
|
|
|
|
/***************************************************************************\
|
|
* Function Prototypes
|
|
*
|
|
* Only prototypes for the NLS APIs should go here.
|
|
\***************************************************************************/
|
|
|
|
/*
|
|
* Code Page Dependent APIs.
|
|
*/
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
IsValidCodePage(
|
|
UINT CodePage);
|
|
|
|
WINBASEAPI
|
|
UINT
|
|
WINAPI
|
|
GetACP(void);
|
|
|
|
WINBASEAPI
|
|
UINT
|
|
WINAPI
|
|
GetOEMCP(void);
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
GetCPInfo(
|
|
UINT CodePage,
|
|
LPCPINFO lpCPInfo);
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
IsDBCSLeadByte(
|
|
BYTE TestChar);
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
IsDBCSLeadByteEx(
|
|
UINT CodePage,
|
|
BYTE TestChar);
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
MultiByteToWideChar(
|
|
UINT CodePage,
|
|
DWORD dwFlags,
|
|
LPCSTR lpMultiByteStr,
|
|
int cchMultiByte,
|
|
LPWSTR lpWideCharStr,
|
|
int cchWideChar);
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
WideCharToMultiByte(
|
|
UINT CodePage,
|
|
DWORD dwFlags,
|
|
LPCWSTR lpWideCharStr,
|
|
int cchWideChar,
|
|
LPSTR lpMultiByteStr,
|
|
int cchMultiByte,
|
|
LPCSTR lpDefaultChar,
|
|
LPBOOL lpUsedDefaultChar);
|
|
|
|
|
|
/*
|
|
* Locale Dependent APIs.
|
|
*/
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
CompareStringA(
|
|
LCID Locale,
|
|
DWORD dwCmpFlags,
|
|
LPCSTR lpString1,
|
|
int cchCount1,
|
|
LPCSTR lpString2,
|
|
int cchCount2);
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
CompareStringW(
|
|
LCID Locale,
|
|
DWORD dwCmpFlags,
|
|
LPCWSTR lpString1,
|
|
int cchCount1,
|
|
LPCWSTR lpString2,
|
|
int cchCount2);
|
|
#ifdef UNICODE
|
|
#define CompareString CompareStringW
|
|
#else
|
|
#define CompareString CompareStringA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
LCMapStringA(
|
|
LCID Locale,
|
|
DWORD dwMapFlags,
|
|
LPCSTR lpSrcStr,
|
|
int cchSrc,
|
|
LPSTR lpDestStr,
|
|
int cchDest);
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
LCMapStringW(
|
|
LCID Locale,
|
|
DWORD dwMapFlags,
|
|
LPCWSTR lpSrcStr,
|
|
int cchSrc,
|
|
LPWSTR lpDestStr,
|
|
int cchDest);
|
|
#ifdef UNICODE
|
|
#define LCMapString LCMapStringW
|
|
#else
|
|
#define LCMapString LCMapStringA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetLocaleInfoA(
|
|
LCID Locale,
|
|
LCTYPE LCType,
|
|
LPSTR lpLCData,
|
|
int cchData);
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetLocaleInfoW(
|
|
LCID Locale,
|
|
LCTYPE LCType,
|
|
LPWSTR lpLCData,
|
|
int cchData);
|
|
#ifdef UNICODE
|
|
#define GetLocaleInfo GetLocaleInfoW
|
|
#else
|
|
#define GetLocaleInfo GetLocaleInfoA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
SetLocaleInfoA(
|
|
LCID Locale,
|
|
LCTYPE LCType,
|
|
LPCSTR lpLCData);
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
SetLocaleInfoW(
|
|
LCID Locale,
|
|
LCTYPE LCType,
|
|
LPCWSTR lpLCData);
|
|
#ifdef UNICODE
|
|
#define SetLocaleInfo SetLocaleInfoW
|
|
#else
|
|
#define SetLocaleInfo SetLocaleInfoA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetTimeFormatA(
|
|
LCID Locale,
|
|
DWORD dwFlags,
|
|
CONST SYSTEMTIME *lpTime,
|
|
LPCSTR lpFormat,
|
|
LPSTR lpTimeStr,
|
|
int cchTime);
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetTimeFormatW(
|
|
LCID Locale,
|
|
DWORD dwFlags,
|
|
CONST SYSTEMTIME *lpTime,
|
|
LPCWSTR lpFormat,
|
|
LPWSTR lpTimeStr,
|
|
int cchTime);
|
|
#ifdef UNICODE
|
|
#define GetTimeFormat GetTimeFormatW
|
|
#else
|
|
#define GetTimeFormat GetTimeFormatA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetDateFormatA(
|
|
LCID Locale,
|
|
DWORD dwFlags,
|
|
CONST SYSTEMTIME *lpDate,
|
|
LPCSTR lpFormat,
|
|
LPSTR lpDateStr,
|
|
int cchDate);
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetDateFormatW(
|
|
LCID Locale,
|
|
DWORD dwFlags,
|
|
CONST SYSTEMTIME *lpDate,
|
|
LPCWSTR lpFormat,
|
|
LPWSTR lpDateStr,
|
|
int cchDate);
|
|
#ifdef UNICODE
|
|
#define GetDateFormat GetDateFormatW
|
|
#else
|
|
#define GetDateFormat GetDateFormatA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetNumberFormatA(
|
|
LCID Locale,
|
|
DWORD dwFlags,
|
|
LPCSTR lpValue,
|
|
CONST NUMBERFMTA *lpFormat,
|
|
LPSTR lpNumberStr,
|
|
int cchNumber);
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetNumberFormatW(
|
|
LCID Locale,
|
|
DWORD dwFlags,
|
|
LPCWSTR lpValue,
|
|
CONST NUMBERFMTW *lpFormat,
|
|
LPWSTR lpNumberStr,
|
|
int cchNumber);
|
|
#ifdef UNICODE
|
|
#define GetNumberFormat GetNumberFormatW
|
|
#else
|
|
#define GetNumberFormat GetNumberFormatA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetCurrencyFormatA(
|
|
LCID Locale,
|
|
DWORD dwFlags,
|
|
LPCSTR lpValue,
|
|
CONST CURRENCYFMTA *lpFormat,
|
|
LPSTR lpCurrencyStr,
|
|
int cchCurrency);
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
GetCurrencyFormatW(
|
|
LCID Locale,
|
|
DWORD dwFlags,
|
|
LPCWSTR lpValue,
|
|
CONST CURRENCYFMTW *lpFormat,
|
|
LPWSTR lpCurrencyStr,
|
|
int cchCurrency);
|
|
#ifdef UNICODE
|
|
#define GetCurrencyFormat GetCurrencyFormatW
|
|
#else
|
|
#define GetCurrencyFormat GetCurrencyFormatA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumCalendarInfoA(
|
|
CALINFO_ENUMPROCA lpCalInfoEnumProc,
|
|
LCID Locale,
|
|
CALID Calendar,
|
|
CALTYPE CalType);
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumCalendarInfoW(
|
|
CALINFO_ENUMPROCW lpCalInfoEnumProc,
|
|
LCID Locale,
|
|
CALID Calendar,
|
|
CALTYPE CalType);
|
|
#ifdef UNICODE
|
|
#define EnumCalendarInfo EnumCalendarInfoW
|
|
#else
|
|
#define EnumCalendarInfo EnumCalendarInfoA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumTimeFormatsA(
|
|
TIMEFMT_ENUMPROCA lpTimeFmtEnumProc,
|
|
LCID Locale,
|
|
DWORD dwFlags);
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumTimeFormatsW(
|
|
TIMEFMT_ENUMPROCW lpTimeFmtEnumProc,
|
|
LCID Locale,
|
|
DWORD dwFlags);
|
|
#ifdef UNICODE
|
|
#define EnumTimeFormats EnumTimeFormatsW
|
|
#else
|
|
#define EnumTimeFormats EnumTimeFormatsA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumDateFormatsA(
|
|
DATEFMT_ENUMPROCA lpDateFmtEnumProc,
|
|
LCID Locale,
|
|
DWORD dwFlags);
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumDateFormatsW(
|
|
DATEFMT_ENUMPROCW lpDateFmtEnumProc,
|
|
LCID Locale,
|
|
DWORD dwFlags);
|
|
#ifdef UNICODE
|
|
#define EnumDateFormats EnumDateFormatsW
|
|
#else
|
|
#define EnumDateFormats EnumDateFormatsA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
IsValidLocale(
|
|
LCID Locale,
|
|
DWORD dwFlags);
|
|
|
|
WINBASEAPI
|
|
LCID
|
|
WINAPI
|
|
ConvertDefaultLocale(
|
|
LCID Locale);
|
|
|
|
WINBASEAPI
|
|
LCID
|
|
WINAPI
|
|
GetThreadLocale(void);
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
SetThreadLocale(
|
|
LCID Locale
|
|
);
|
|
|
|
WINBASEAPI
|
|
LANGID
|
|
WINAPI
|
|
GetSystemDefaultLangID(void);
|
|
|
|
WINBASEAPI
|
|
LANGID
|
|
WINAPI
|
|
GetUserDefaultLangID(void);
|
|
|
|
WINBASEAPI
|
|
LCID
|
|
WINAPI
|
|
GetSystemDefaultLCID(void);
|
|
|
|
WINBASEAPI
|
|
LCID
|
|
WINAPI
|
|
GetUserDefaultLCID(void);
|
|
|
|
/*
|
|
* Locale Independent APIs.
|
|
*/
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
GetStringTypeExA(
|
|
LCID Locale,
|
|
DWORD dwInfoType,
|
|
LPCSTR lpSrcStr,
|
|
int cchSrc,
|
|
LPWORD lpCharType);
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
GetStringTypeExW(
|
|
LCID Locale,
|
|
DWORD dwInfoType,
|
|
LPCWSTR lpSrcStr,
|
|
int cchSrc,
|
|
LPWORD lpCharType);
|
|
#ifdef UNICODE
|
|
#define GetStringTypeEx GetStringTypeExW
|
|
#else
|
|
#define GetStringTypeEx GetStringTypeExA
|
|
#endif // !UNICODE
|
|
|
|
/*
|
|
* NOTE: The parameters for GetStringTypeA and GetStringTypeW are
|
|
* NOT the same. The W version was shipped in NT 3.1. The
|
|
* A version was then shipped in 16-bit OLE with the wrong
|
|
* parameters (ported from Win95). To be compatible, we
|
|
* must break the relationship between the A and W versions
|
|
* of GetStringType. There will be NO function call for the
|
|
* generic GetStringType.
|
|
*
|
|
* GetStringTypeEx (above) should be used instead.
|
|
*/
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
GetStringTypeA(
|
|
LCID Locale,
|
|
DWORD dwInfoType,
|
|
LPCSTR lpSrcStr,
|
|
int cchSrc,
|
|
LPWORD lpCharType);
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
GetStringTypeW(
|
|
DWORD dwInfoType,
|
|
LPCWSTR lpSrcStr,
|
|
int cchSrc,
|
|
LPWORD lpCharType);
|
|
|
|
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
FoldStringA(
|
|
DWORD dwMapFlags,
|
|
LPCSTR lpSrcStr,
|
|
int cchSrc,
|
|
LPSTR lpDestStr,
|
|
int cchDest);
|
|
WINBASEAPI
|
|
int
|
|
WINAPI
|
|
FoldStringW(
|
|
DWORD dwMapFlags,
|
|
LPCWSTR lpSrcStr,
|
|
int cchSrc,
|
|
LPWSTR lpDestStr,
|
|
int cchDest);
|
|
#ifdef UNICODE
|
|
#define FoldString FoldStringW
|
|
#else
|
|
#define FoldString FoldStringA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumSystemLocalesA(
|
|
LOCALE_ENUMPROCA lpLocaleEnumProc,
|
|
DWORD dwFlags);
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumSystemLocalesW(
|
|
LOCALE_ENUMPROCW lpLocaleEnumProc,
|
|
DWORD dwFlags);
|
|
#ifdef UNICODE
|
|
#define EnumSystemLocales EnumSystemLocalesW
|
|
#else
|
|
#define EnumSystemLocales EnumSystemLocalesA
|
|
#endif // !UNICODE
|
|
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumSystemCodePagesA(
|
|
CODEPAGE_ENUMPROCA lpCodePageEnumProc,
|
|
DWORD dwFlags);
|
|
WINBASEAPI
|
|
BOOL
|
|
WINAPI
|
|
EnumSystemCodePagesW(
|
|
CODEPAGE_ENUMPROCW lpCodePageEnumProc,
|
|
DWORD dwFlags);
|
|
#ifdef UNICODE
|
|
#define EnumSystemCodePages EnumSystemCodePagesW
|
|
#else
|
|
#define EnumSystemCodePages EnumSystemCodePagesA
|
|
#endif // !UNICODE
|
|
|
|
|
|
|
|
#endif // NONLS
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _WINNLS_
|