mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
388 lines
9.4 KiB
388 lines
9.4 KiB
/*++
|
|
|
|
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_
|
|
|