summaryrefslogtreecommitdiffstats
path: root/private/os2/inc/os2nls.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--private/os2/inc/os2nls.h388
1 files changed, 388 insertions, 0 deletions
diff --git a/private/os2/inc/os2nls.h b/private/os2/inc/os2nls.h
new file mode 100644
index 000000000..27a9b0686
--- /dev/null
+++ b/private/os2/inc/os2nls.h
@@ -0,0 +1,388 @@
+/*++
+
+Copyright (c) 1989 Microsoft Corporation
+
+Module Name:
+
+ os2nls.h
+
+Abstract:
+
+ This file contains the NLS OS/2 V2.0/1.X API definitions for the OS/2 Subsystem
+
+Author:
+
+ Michael Jarus (mjarus) 15-Apr-1992
+
+Revision History:
+
+--*/
+
+#ifndef _OS2NLS_
+
+#define _OS2NLS_
+
+//#define OS2SS_INCLUDE_HEBREW
+//#define OS2SS_INCLUDE_ARABIC
+//#define OS2SS_INCLUDE_PRCHINA
+
+#define CCHMAXSYSTEMPATH 260
+
+/*
+ * NLS Support API Structures
+ */
+
+typedef struct _COUNTRYCODE {
+ ULONG country;
+ ULONG codepage;
+} COUNTRYCODE, *PCOUNTRYCODE;
+
+typedef struct _COUNTRYINFO {
+ ULONG country;
+ ULONG codepage;
+ ULONG fsDateFmt;
+ CHAR szCurrency[5];
+ CHAR szThousandsSeparator[2];
+ CHAR szDecimal[2];
+ CHAR szDateSeparator[2];
+ CHAR szTimeSeparator[2];
+ UCHAR fsCurrencyFmt;
+ UCHAR cDecimalPlace;
+ UCHAR fsTimeFmt;
+ USHORT abReserved1[2];
+ CHAR szDataSeparator[2];
+ USHORT abReserved2[5];
+} COUNTRYINFO, *PCOUNTRYINFO;
+
+/*
+ * NLS internal Structures (for NLS tables in client\nlstable.c)
+ */
+
+typedef struct _OD2_COUNTRY_ENTRY
+{
+ ULONG Country;
+ USHORT WinLanuage;
+ USHORT WinSubLanuage;
+ PCOUNTRYINFO pCtryInfo;
+ ULONG CodePageIndex1;
+ ULONG CodePageIndex2;
+ ULONG CaseMapFixTableIndex;
+} OD2_COUNTRY_ENTRY, *POD2_COUNTRY_ENTRY;
+
+typedef struct _OD2_CODEPAGE_ENTRY
+{
+ ULONG CodePage;
+ ULONG CollateIndex;
+ ULONG CaseMapIndex;
+ ULONG DBCSVecIndex;
+} OD2_CODEPAGE_ENTRY, *POD2_CODEPAGE_ENTRY;
+
+typedef struct _OD2_DBCS_VECTOR_ENTRY
+{
+ ULONG VectorSize;
+ UCHAR Vector[12];
+} OD2_DBCS_VECTOR_ENTRY, *POD2_DBCS_VECTOR_ENTRY;
+
+typedef struct _OD2_COLLATE_CTRY_ENTRY
+{
+ ULONG Country;
+ ULONG CodePage;
+ PUCHAR FixTable;
+} OD2_COLLATE_CTRY_ENTRY, *POD2_COLLATE_CTRY_ENTRY;
+
+
+/*** NLS Support API Calls */
+#ifndef APIRET // this happens for os2.exe, a windows app
+#define APIRET ULONG
+#endif
+#ifndef DWORD // this happens for client\dll*.c , a "nt" code
+#define DWORD ULONG
+#endif
+#ifndef LCID // this happens for client\dll*.c , a "nt" code
+typedef DWORD LCID;
+#endif
+#ifndef UINT // this happens for client\dll*.c , a "nt" code
+typedef unsigned int UINT;
+#endif
+
+/*
+ * NLS ssrtl routines
+ */
+
+extern USHORT Or2NlsLangIdTable[];
+
+DWORD
+Or2NlsGetCtryInfo(
+ IN LCID LocaleID,
+ IN UINT CodePage,
+ OUT PCOUNTRYINFO pCountryInfo
+ );
+
+DWORD
+Or2NlsGetMapTable(
+ IN LCID LocaleID,
+ IN UINT CodePage,
+ IN DWORD dwFlag,
+ OUT PUCHAR pTable
+ );
+
+DWORD
+Or2NlsGetCountryFromLocale(
+ IN LCID LocaleID,
+ OUT PULONG pCountry
+ );
+
+DWORD
+Or2NlsGetCPInfo(
+ IN UINT CP,
+ OUT POD2_DBCS_VECTOR_ENTRY DBCSVec
+ );
+
+/*
+ * NLS APIs
+ */
+
+APIRET
+DosQueryCtryInfo(
+ IN ULONG MaxCountryInfoLength,
+ IN PCOUNTRYCODE CountryCode,
+ OUT PCOUNTRYINFO CountryInfo,
+ OUT PULONG ActualCountryInfoLength
+ );
+
+APIRET
+DosQueryDBCSEnv(
+ IN ULONG MaxDBCSEvLength,
+ IN PCOUNTRYCODE CountryCode,
+ OUT PCHAR DBCSEv
+ );
+
+APIRET
+DosMapCase(
+ IN ULONG StringLength,
+ IN PCOUNTRYCODE CountryCode,
+ IN OUT PUCHAR String
+ );
+
+APIRET
+DosQueryCollate(
+ IN ULONG MaxCollateInfoLength,
+ IN PCOUNTRYCODE CountryCode,
+ OUT PUCHAR CollateInfo,
+ OUT PULONG ActualCollateInfoLength
+ );
+
+APIRET
+DosQueryCp(
+ IN ULONG MaxLengthCodePageList,
+ OUT ULONG CodePages[],
+ OUT PULONG CountCodePages
+ );
+
+APIRET
+DosSetProcessCp(
+ IN ULONG ulCodePage,
+ IN ULONG ulReserved
+ );
+
+/*
+ * NLS Support Internal Functions
+ */
+
+APIRET
+Od2InitNls( IN ULONG CodePage,
+ IN BOOLEAN StartBySM);
+
+APIRET
+Od2GetCtryInfo(
+ IN ULONG Country,
+ IN ULONG CodePage,
+ OUT PCOUNTRYINFO CountryInfo
+ );
+
+APIRET
+Od2GetDBCSEv(
+ IN ULONG Country,
+ IN ULONG CodePage,
+ IN OUT PUCHAR DBCSEv,
+ OUT PULONG StringLength
+ );
+
+APIRET
+Od2GetCaseMapTable(
+ IN ULONG Country,
+ IN ULONG CodePage,
+ OUT PUCHAR CaseMapTable);
+
+APIRET
+Od2GetCollateTable(
+ IN ULONG Country,
+ IN ULONG CodePage,
+ OUT PUCHAR CollateTable);
+
+APIRET
+Od2GetCtryCp(
+ IN OUT PULONG Country,
+ IN OUT PULONG CodePage,
+ OUT PULONG CountryIndex,
+ OUT PULONG CodePageIndex
+ );
+
+APIRET
+VioSetCp(
+ IN ULONG usReserved,
+ IN ULONG idCodePage,
+ IN ULONG hVio
+ );
+
+APIRET
+KbdSetCp(
+ IN ULONG usReserved,
+ IN ULONG idCodePage,
+ IN ULONG hKbd
+ );
+
+APIRET
+KbdFlushBuffer(
+ IN ULONG hKbd
+ );
+
+
+/*
+ * NLS Support API definitions
+ */
+
+#define OS2SS_NLS_MB_DEFAULT 0
+#define OS2SS_NLS_WC_DEFAULT 0
+
+#define COUNTRY_LATIN_AMERICA 3
+#define COUNTRY_SPAIN 34
+#define COUNTRY_JAPAN 81
+#define COUNTRY_SOUTH_KOREA 82
+#define COUNTRY_PRCHINA 86
+#define COUNTRY_TAIWAN 88
+#define COUNTRY_ARABIC 785
+#define COUNTRY_HEBREW 972
+
+//#define MESSAGE_LANGUAGE_ENGLISH LANG_ENGLISH
+//#define MESSAGE_LANGUAGE_FRENCH LANG_FRENCH
+//#define MESSAGE_LANGUAGE_GERMAN LANG_GERMAN
+//#define MESSAGE_LANGUAGE_ITALIAN LANG_ITALIAN
+//#define MESSAGE_LANGUAGE_SPANISH LANG_SPANISH
+//#define MESSAGE_LANGUAGE_DANISH LANG_DANISH
+//#define MESSAGE_LANGUAGE_DUTCH LANG_DUTCH
+//#define MESSAGE_LANGUAGE_FINNISH LANG_FINNISH
+//#define MESSAGE_LANGUAGE_NORWEGIAN LANG_NORWEGIAN
+//#define MESSAGE_LANGUAGE_PORTUGUESE LANG_PORTUGUESE
+//#define MESSAGE_LANGUAGE_SWEDISH LANG_SWEDISH
+//#define MESSAGE_LANGUAGE_JAPAN LANG_JAPANESE
+//#define MESSAGE_LANGUAGE_KOREAN LANG_KOREAN
+//#define MESSAGE_LANGUAGE_CHINESE LANG_CHINESE
+//#define MESSAGE_LANGUAGE_THAI LANG_THAI
+
+#define DATEFMT_MM_DD_YY 0
+#define DATEFMT_DD_MM_YY 1
+#define DATEFMT_YY_MM_DD 2
+
+#define CURRENCY_FOLLOW (UCHAR)0x01
+#define CURRENCY_SPACE (UCHAR)0x02
+#define CURRENCY_DECIMAL (UCHAR)0x04
+
+#define TIMEFMT_12_HOUR 0
+#define TIMEFMT_24_HOUR 1
+
+#define CODEPAGE_US 437
+#define CODEPAGE_MULTI 850
+#define CODEPAGE_PORTUGESE 860
+#define CODEPAGE_CANADIAN 863
+#define CODEPAGE_NORDIC 865
+#define CODEPAGE_JAPAN 932
+#define CODEPAGE_KOREA 934
+#define CODEPAGE_TAIWAN 938
+#define CODEPAGE_HEBREW 862
+#define CODEPAGE_ARABIC 864
+#define CODEPAGE_PRC 936
+
+#define INDEX_CODEPAGE_US 0
+#define INDEX_CODEPAGE_MULTI 1
+#define INDEX_CODEPAGE_PORTUGESE 2
+#define INDEX_CODEPAGE_CANADIAN 3
+#define INDEX_CODEPAGE_NORDIC 4
+#define INDEX_CODEPAGE_JAPAN 5
+#define INDEX_CODEPAGE_KOREA 6
+#define INDEX_CODEPAGE_TAIWAN 7
+#define INDEX_CODEPAGE_HEBREW 8
+#define INDEX_CODEPAGE_ARABIC 9
+#define INDEX_CODEPAGE_PRC 10
+
+#define INDEX_DBCS_437 0
+#define INDEX_DBCS_850 0
+#define INDEX_DBCS_860 0
+#define INDEX_DBCS_863 0
+#define INDEX_DBCS_865 0
+#define INDEX_DBCS_932 1
+#define INDEX_DBCS_934 2
+#define INDEX_DBCS_938 3
+#define INDEX_DBCS_862 0
+#define INDEX_DBCS_864 0
+#define INDEX_DBCS_936 4
+
+#define INDEX_COLLATE_437 0
+#define INDEX_COLLATE_850 1
+#define INDEX_COLLATE_860 2
+#define INDEX_COLLATE_863 3
+#define INDEX_COLLATE_865 4
+#define INDEX_COLLATE_932 5
+#define INDEX_COLLATE_934 6
+#define INDEX_COLLATE_938 7
+#define INDEX_COLLATE_862 8
+#define INDEX_COLLATE_864 9
+#define INDEX_COLLATE_936 10
+
+#define INDEX_CASEMAP_437 0
+#define INDEX_CASEMAP_850 1
+#define INDEX_CASEMAP_860 2
+#define INDEX_CASEMAP_863 3
+#define INDEX_CASEMAP_865 4
+#define INDEX_CASEMAP_932 5
+#define INDEX_CASEMAP_934 6
+#define INDEX_CASEMAP_938 7
+#define INDEX_CASEMAP_862 8
+#define INDEX_CASEMAP_864 9
+#define INDEX_CASEMAP_936 10
+
+// index for CP fix table for 437 code page
+// pCaseMapFixTable field in OD2_COUNTRY_ENTRY/TABLE for OD2_FIX_CASEMAP_TABLE
+
+#define INDEX_FIX_CASE_UNITED_STATES 0
+#define INDEX_FIX_CASE_CANADA 0
+#define INDEX_FIX_CASE_LATIN_AMERICA 0
+#define INDEX_FIX_CASE_NETHERLANDS 2
+#define INDEX_FIX_CASE_BELGIUM 1
+#define INDEX_FIX_CASE_FRANCE 0
+#define INDEX_FIX_CASE_SPAIN 0
+#define INDEX_FIX_CASE_ITALY 0
+#define INDEX_FIX_CASE_SWITZERLAND 1
+#define INDEX_FIX_CASE_AUSTRIA 0
+#define INDEX_FIX_CASE_UNITED_KINGDOM 0
+#define INDEX_FIX_CASE_DENMARK 0
+#define INDEX_FIX_CASE_SWEDEN 1
+#define INDEX_FIX_CASE_NORWAY 0
+#define INDEX_FIX_CASE_GERMANY 0
+#define INDEX_FIX_CASE_MEXICO 0
+#define INDEX_FIX_CASE_BRAZIL 0
+#define INDEX_FIX_CASE_AUSTRALIA 0
+#define INDEX_FIX_CASE_NEW_ZEALAND 0
+#define INDEX_FIX_CASE_PORTUGAL 0
+#define INDEX_FIX_CASE_IRELAND 0
+#define INDEX_FIX_CASE_ICELAND 0
+#define INDEX_FIX_CASE_FINLAND 1
+#define INDEX_FIX_CASE_JAPAN 0
+#define INDEX_FIX_CASE_SOUTH_KOREA 0
+#define INDEX_FIX_CASE_TAIWAN 0
+#define INDEX_FIX_CASE_HEBREW 0
+#define INDEX_FIX_CASE_ARABIC 0
+#define INDEX_FIX_CASE_PRCHINA 0
+
+#endif // _OS2NLS_
+