//--------------------------------------------------------------------------------------------------------------------------------- // File: xplat_winnls.h // // Contents: Contains the minimal definitions to build on non-Windows platforms // // Microsoft Drivers 4.1 for PHP for SQL Server // Copyright(c) Microsoft Corporation // All rights reserved. // MIT License // Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files(the ""Software""), // to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, // and / or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions : // The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. // THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS // IN THE SOFTWARE. //--------------------------------------------------------------------------------------------------------------------------------- #ifndef XPLAT_WINNLS_H #define XPLAT_WINNLS_H #include #include "typedefs_for_linux.h" struct threadlocaleinfostruct; struct threadmbcinfostruct; typedef struct threadlocaleinfostruct * pthreadlocinfo; typedef struct threadmbcinfostruct * pthreadmbcinfo; typedef struct localeinfo_struct { pthreadlocinfo locinfo; pthreadmbcinfo mbcinfo; } _locale_tstruct, *_locale_t; #define LOCALE_SDECIMAL 0x0000000E // decimal separator #define LOCALE_SCURRENCY 0x00000014 // local monetary symbol #define LOCALE_SMONDECIMALSEP 0x00000016 // monetary decimal separator #define LOCALE_SMONTHOUSANDSEP 0x00000017 // monetary thousand separator #define LOCALE_SMONGROUPING 0x00000018 // monetary grouping #define LOCALE_ILDATE 0x00000022 // long date format ordering (derived from LOCALE_SLONGDATE, use that instead) #define LOCALE_ITIME 0x00000023 // time format specifier (derived from LOCALE_STIMEFORMAT, use that instead) #define LOCALE_SABBREVMONTHNAME1 0x00000044 // abbreviated name for January #define LOCALE_IDEFAULTLANGUAGE 0x00000009 // default language id #define LOCALE_IDEFAULTCOUNTRY 0x0000000A // default country/region code, deprecated #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_STIMEFORMAT 0x00001003 // time format string, eg "HH:mm:ss" typedef DWORD LCTYPE; #define NORM_IGNORECASE 0x00000001 // ignore case #define NORM_IGNORENONSPACE 0x00000002 // ignore nonspacing chars #define NORM_IGNORESYMBOLS 0x00000004 // ignore symbols #define LINGUISTIC_IGNORECASE 0x00000010 // linguistically appropriate 'ignore case' #define LINGUISTIC_IGNOREDIACRITIC 0x00000020 // linguistically appropriate 'ignore nonspace' #define NORM_IGNOREKANATYPE 0x00010000 // ignore kanatype #define NORM_IGNOREWIDTH 0x00020000 // ignore width #define NORM_LINGUISTIC_CASING 0x08000000 // use linguistic rules for casing #define NORM_IGNORECASE 0x00000001 // ignore case #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_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 typedef WORD LANGID; #define NLS_VALID_LOCALE_MASK 0x000fffff #define MAKELANGID(p, s) ((((WORD )(s)) << 10) | (WORD )(p)) #define MAKELCID(lgid, srtid) ((DWORD)((((DWORD)((WORD )(srtid))) << 16) | \ ((DWORD)((WORD )(lgid))))) #define LANG_NEUTRAL 0x00 #define SUBLANG_DEFAULT 0x01 // user default #define SUBLANG_SYS_DEFAULT 0x02 // system default #define SORT_DEFAULT 0x0 // sorting default #define LANG_USER_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT)) #define LOCALE_USER_DEFAULT (MAKELCID(LANG_USER_DEFAULT, SORT_DEFAULT)) #define SUBLANG_ENGLISH_US 0x01 // English (USA) #define LANG_ENGLISH 0x09 #define LOCALE_ENGLISH_US MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT) #define LANG_SYSTEM_DEFAULT (MAKELANGID(LANG_NEUTRAL, SUBLANG_SYS_DEFAULT)) #define LOCALE_SYSTEM_DEFAULT (MAKELCID(LANG_SYSTEM_DEFAULT, SORT_DEFAULT)) BOOL WINAPI IsDBCSLeadByte( __inn BYTE TestChar); #ifdef MPLAT_UNIX // XPLAT_ODBC_TODO: VSTS 718708 Localization // Find way to remove this LCID GetUserDefaultLCID(); #endif BOOL IsValidCodePage(UINT CodePage); #define HIGH_SURROGATE_START 0xd800 #define HIGH_SURROGATE_END 0xdbff #define LOW_SURROGATE_START 0xdc00 #define LOW_SURROGATE_END 0xdfff #define IS_HIGH_SURROGATE(wch) (((wch) >= HIGH_SURROGATE_START) && ((wch) <= HIGH_SURROGATE_END)) #define IS_LOW_SURROGATE(wch) (((wch) >= LOW_SURROGATE_START) && ((wch) <= LOW_SURROGATE_END)) int GetLocaleInfoA( __inn LCID Locale, __inn LCTYPE LCType, __out_ecount_opt(cchData) LPSTR lpLCData, __inn int cchData); int GetLocaleInfoW( __inn LCID Locale, __inn LCTYPE LCType, __out_ecount_opt(cchData) LPWSTR lpLCData, __inn int cchData); #ifdef UNICODE #define GetLocaleInfo GetLocaleInfoW #else #define GetLocaleInfo GetLocaleInfoA #endif // !UNICODE #endif // XPLAT_WINNLS_H