windows-nt/Source/XPSP1/NT/multimedia/media/avi/inc.16/internat.h

166 lines
6 KiB
C
Raw Permalink Normal View History

2020-09-26 03:20:57 -05:00
/***********************************************************************
// INTERNAT.H
//
// Copyright (c) 1992, 1993 - Microsoft Corp.
// All rights reserved.
// Microsoft Confidential
//
// Include file for international specific options.
//
// Johnhe 03-10-92
// TABS = 3
***********************************************************************/
#ifndef INTERNAT_INC
#define INTERNAT_INC 1 // INTERNAT.H signature
#ifdef DBCS
#define SkipDBCSLeadByte( x ) {if IsDBCLeadByte( szPtr ) szPtr++;}
#else
#define SkipDBCSLeadByte( x )
#endif
//**********************************************************************
// BUGBUG - need to move to resource file
//**********************************************************************
#define AM_PM_STRINGS { "A", "AM", "P", "PM", NULL }
#define PM_CHAR 'P'
#define AM_CHAR 'A'
#define AMPM_TRAIL_CHAR 'M'
#define DATE_DELIMITER_STR "-/." // Date seperators ('-' is replaced)
//**********************************************************************
// Command line delimiters
//**********************************************************************
#define CHAR_COMMA ','
#define CHAR_EOL '\0'
#define CHAR_PLUS '+'
#define CHAR_MINUS '-'
#define CHAR_SIMICOLON ';'
#define CHAR_SRCHSTR '"'
#define CHAR_SWITCH '/'
#define CHAR_QUOTE '"'
#define CHAR_SPC ' '
#define CHAR_TAB '\t'
#define DOUBLE_SLASH 0x2f2f // Double slash chars "//"
#define UNC_WORD 0x5c5c // UNC specifier ("\\\\")
#define CUR_DIR_STR "."
#define PARENT_DIR_STR ".."
#define PATH_CHAR_STR "\\"
#define PATH_CHAR '\\'
#define DRIVE_DELIMITER ':'
#define WILD_NAME_CHAR '*' // All remaining wildcarc
#define WILD_CHAR '?' // Single wildcard character
#define MULTI_WILDCARDS 1 // Allow multiple wildcards filenames
#define FILE_EXT_CHAR '.' // File extension seperator
#define CHAR_NOT_ATTRIB '-' // Invert attribute switch
//***********************************************************************
//***********************************************************************
#define GET_EXTINFO 1 // Fill in extended info structure
#define GET_CASEMAP 2 // Get ptr to case map table
#define GET_FNCASEMAP 4 // Get ptr to filename case map table
#define GET_FNAME_CHARS 5 // Get ptr to filename character table
#define GET_COLLATE 6 // Get ptr to collate table
#define GET_DBYTE_SET 7 // Get ptr to double-byte char set
#define DEFAULT_CODEPAGE 0xffff
#define DEFAULT_COUNTRY 0xffff
#define USA_CNTRY_ID 1 // Default country ID
#define USA_CODE_PAGE 437 // Default country code page
#define ASCII_LEN 256 // # of ASCII characters
#define NON_EXT_LEN (ASCII_LEN / 2) // # of non-ext ASCII chars
#define EXT_ASCII_LEN (ASCII_LEN / 2) // # of ext ASCII chars
#define COLLATE_TABLE_LEN ASCII_LEN
//***********************************************************************
// CntryTable_s is a structure which is filled in by DOS function 65xxh
//***********************************************************************
#ifndef CntryTable_s
typedef struct CntryTable_s
{
char IdByte;
unsigned char far *fpAddr;
} CNTRY_TABLE;
#endif
//**********************************************************************
// COUNTRY_INFO is the structure of the data returned by DOS function
// 0x38.
//**********************************************************************
#ifndef COUNTRY_DEFINED
struct COUNTRY_INFO
{
char ccSetCountryInfo; // SetCountryInfo
unsigned ccCountryInfoLen; // length of country info
unsigned ccDosCountry; // active country code id
unsigned ccDosCodePage; // active code page id
unsigned ccDFormat; // date format
char ccCurSymbol[ 5 ]; // 5 byte of (currency symbol+0)
char cc1000Sep[ 2 ]; // 2 byte of (1000 sep. + 0)
char ccDecSep[ 2 ]; // 2 byte of (Decimal sep. + 0)
char ccDateSep[ 2 ]; // 2 byte of (date sep. + 0)
char ccTimeSep[ 2 ]; // 2 byte of (time sep. + 0)
char ccCFormat; // currency format flags
char ccCSigDigits; // # of digits in currency
char ccTFormat; // time format
char far *ccMono_Ptr; // monocase routine entry point
char ccListSep[ 2 ]; // data list separator
unsigned ccReserved_area[ 5 ]; // reserved
};
#define COUNTRY_DEFINED 1
#endif
//**********************************************************************
// Global country specific tables.
//**********************************************************************
extern unsigned char near CollateTable[ ASCII_LEN ];
extern unsigned char near CaseMap[ ASCII_LEN ];
extern unsigned char near FnameCharTable[ ASCII_LEN ];
extern unsigned char near DBCSLeadByteTable[ ASCII_LEN ];
extern struct COUNTRY_INFO near Cntry; // DOS country info structure
//**********************************************************************
// Function prototypes.
//**********************************************************************
extern void GetCountryInfo ( struct COUNTRY_INFO *Cntry );
extern int GetExtCountryInfo( unsigned InfoType, unsigned CodePage,
unsigned CountryCode,
struct COUNTRY_INFO *pTable );
extern void InitCountryInfo ( void );
#ifdef DBCS
int IsDBCSLeadByte ( unsigned char c );
int CheckDBCSTailByte( unsigned char *str, unsigned char *point );
unsigned char *DBCSstrupr ( unsigned char *str );
unsigned char *DBCSstrchr( unsigned char *str, unsigned char c );
#endif
//***************************************************************************
//
// End of INTERNAT.H
//
//***************************************************************************
#endif // INTERNAT_INC