145 lines
4.6 KiB
C
145 lines
4.6 KiB
C
#pragma option push -b -a8 -pc -A- /*P_O_Push*/
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
#if !defined __SNANLS_INC__
|
|
|
|
#define __SNANLS_INC__
|
|
|
|
/* ********************* Constants ******************** */
|
|
|
|
#define CP_37 37 /* EBCDIC Lower English */
|
|
|
|
#define CP_273 273
|
|
#define CP_277 277
|
|
#define CP_278 278
|
|
#define CP_280 280
|
|
#define CP_284 284
|
|
#define CP_285 285
|
|
|
|
|
|
#define CP_290 290 /* EBCDIC Katakana */
|
|
|
|
#define CP_297 297
|
|
#define CP_423 423
|
|
#define CP_500 500
|
|
#define CP_875 875
|
|
|
|
#define CP_930 930 /* EBCDIC Katakana + Kanji */
|
|
#define CP_931 931 /* EBCDIC Lower English + Kanji */
|
|
#define CP_932 932 /* Japanese */
|
|
|
|
#define CP_933 933 /* EBCDIC Korean */
|
|
|
|
#define CP_935 935 /* EBCDIC Simplified Chinese */
|
|
#define CP_936 936 /* Chinese */
|
|
#define CP_937 937 /* EBCDIC Traditional Chinese */
|
|
|
|
#define CP_939 939 /* EBCDIC Extended Lower English + Kanji */
|
|
#define CP_949 949 /* Korean */
|
|
#define CP_950 950 /* Taiwanese */
|
|
#define CP_1027 1027 /* EBCDIC Extended Lower English */
|
|
|
|
|
|
#define SNA_UNICODE 1 /* Result of Conversion is Unicode */
|
|
#define SNA_MULTIBYTE 2 /* Result of Conversion is MultiByte */
|
|
|
|
/* ********************* Functions ******************** */
|
|
|
|
/* ***************************************************************** */
|
|
/* Initialization Routine : Local Machine */
|
|
/* CodePage : The CodePage which we need to support */
|
|
/* return : 1 if CodePage Translations are Supported */
|
|
/* 0 otherwise */
|
|
/* ***************************************************************** */
|
|
|
|
int WINAPI SnaNlsInit(UINT CodePage);
|
|
|
|
/* ***************************************************************** */
|
|
/* */
|
|
/* Translation Routine */
|
|
/* */
|
|
/* Input */
|
|
/* */
|
|
/* lpSrcStr : Input, Source String */
|
|
/* */
|
|
/* lpDestStr : Output, Translated String */
|
|
/* maybe NULL if out_length is 0 */
|
|
/* */
|
|
/* inCodePage : CodePage of incoming string */
|
|
/* ignored if input is in unicode */
|
|
/* */
|
|
/* outCodePage: CodePage of translated string. */
|
|
/* ignored if output is in unicode */
|
|
/* */
|
|
/* in_length : Length of input string */
|
|
/* in characters if input is multibyte */
|
|
/* in wide chars if input is unicode */
|
|
/* */
|
|
/* out_length : Length of output string */
|
|
/* in characters if output is multibyte */
|
|
/* in wide chars if output is unicode */
|
|
/* */
|
|
/* in_type : SNA_UNICODE - Unicode Input */
|
|
/* SNA_MULTIBYTE - MultiByte Input */
|
|
/* */
|
|
/* out_type : SNA_UNICODE - Unicode Output */
|
|
/* SNA_MULTIBYTE - MultiByte Output */
|
|
/* */
|
|
/* Options : Multiple usage */
|
|
/* Trnsdt Options */
|
|
/* Default Character for Translation (NLS) */
|
|
/* */
|
|
/* Output */
|
|
/* */
|
|
/* return val : 0 - Failure */
|
|
/* Use GetLastError to retrieve error */
|
|
/* Else */
|
|
/* Num of chars(wide) written to lpDestStr */
|
|
/* */
|
|
/* lpDestStr : Translated String */
|
|
/* */
|
|
/* Options : Required buffer length if call failed */
|
|
/* */
|
|
/* Errors : (Retrieved by using GetLastError) */
|
|
/* */
|
|
/* ERROR_NOT_SUPPORTED */
|
|
/* Possible Reasons: */
|
|
/* NLS is not available */
|
|
/* Input & Output are not of same type */
|
|
/* */
|
|
/* ERROR_BUFFER_OVERFLOW */
|
|
/* Possible Reasons: */
|
|
/* Output buffer is too small */
|
|
/* */
|
|
/* ERROR_INVALID_PARAMETER */
|
|
/* Possible Reasons: */
|
|
/* in_type or out_type is faulty */
|
|
/* */
|
|
/* ERROR_INVALID_DATA */
|
|
/* Possible Reasons: */
|
|
/* input data has a lead byte at end */
|
|
/* */
|
|
/* ERROR_OUTOFMEMORY */
|
|
/* Possible Reasons: */
|
|
/* malloc failed */
|
|
/* */
|
|
/* */
|
|
/* ***************************************************************** */
|
|
|
|
int WINAPI SnaNlsMapString (LPCTSTR lpSrcStr, LPTSTR lpDestStr,
|
|
UINT inCodePage, UINT outCodePage,
|
|
int in_length, int out_length,
|
|
UINT in_type, UINT out_type, WORD * Options);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
#pragma option pop /*P_O_Pop*/
|