1 |
|
---|
2 | /*
|
---|
3 | *@@sourcefile
|
---|
4 | *
|
---|
5 | *
|
---|
6 | *@@added V0.9.9 (2001-02-10) [umoeller]
|
---|
7 | */
|
---|
8 |
|
---|
9 | #if __cplusplus
|
---|
10 | extern "C" {
|
---|
11 | #endif
|
---|
12 |
|
---|
13 | #ifndef ENC_BASE_HEADER_INCLUDED
|
---|
14 | #define ENC_BASE_HEADER_INCLUDED
|
---|
15 |
|
---|
16 | #pragma pack(1) // V0.9.20 (2002-07-03) [umoeller]
|
---|
17 |
|
---|
18 | /*
|
---|
19 | *@@ XWPENCODINGMAP:
|
---|
20 | * entry in a codepage-to-Unicode conversion table.
|
---|
21 | */
|
---|
22 |
|
---|
23 | typedef struct _XWPENCODINGMAP
|
---|
24 | {
|
---|
25 | unsigned short usCP;
|
---|
26 | unsigned short usUni;
|
---|
27 | } XWPENCODINGMAP, *PXWPENCODINGMAP;
|
---|
28 |
|
---|
29 | #pragma pack()
|
---|
30 |
|
---|
31 | /*
|
---|
32 | *@@ ENCID:
|
---|
33 | * enum identifying each encoding set which is
|
---|
34 | * generally supported. Each ID corresponds to
|
---|
35 | * one header file in include\encodings\.
|
---|
36 | */
|
---|
37 |
|
---|
38 | typedef enum _ENCID
|
---|
39 | {
|
---|
40 | UNSUPPORTED,
|
---|
41 | enc_cp437,
|
---|
42 | enc_cp737,
|
---|
43 | enc_cp775,
|
---|
44 | enc_cp850,
|
---|
45 | enc_cp852,
|
---|
46 | enc_cp855,
|
---|
47 | enc_cp857,
|
---|
48 | enc_cp860,
|
---|
49 | enc_cp861,
|
---|
50 | enc_cp862,
|
---|
51 | enc_cp863,
|
---|
52 | enc_cp864,
|
---|
53 | enc_cp865,
|
---|
54 | enc_cp866,
|
---|
55 | enc_cp869,
|
---|
56 | enc_cp874,
|
---|
57 | enc_cp932,
|
---|
58 | enc_cp936,
|
---|
59 | enc_cp949,
|
---|
60 | enc_cp950,
|
---|
61 | enc_cp1004, // added V0.9.18 (2002-03-08) [umoeller]
|
---|
62 | enc_cp1250,
|
---|
63 | enc_cp1251,
|
---|
64 | enc_cp1252,
|
---|
65 | enc_cp1253,
|
---|
66 | enc_cp1254,
|
---|
67 | enc_cp1255,
|
---|
68 | enc_cp1256,
|
---|
69 | enc_cp1257,
|
---|
70 | enc_cp1258,
|
---|
71 | enc_iso8859_1,
|
---|
72 | enc_iso8859_2,
|
---|
73 | enc_iso8859_3,
|
---|
74 | enc_iso8859_4,
|
---|
75 | enc_iso8859_5,
|
---|
76 | enc_iso8859_6,
|
---|
77 | enc_iso8859_7,
|
---|
78 | enc_iso8859_8,
|
---|
79 | enc_iso8859_9,
|
---|
80 | enc_iso8859_10,
|
---|
81 | enc_iso8859_13,
|
---|
82 | enc_iso8859_14,
|
---|
83 | enc_iso8859_15
|
---|
84 | } ENCID;
|
---|
85 |
|
---|
86 | /*
|
---|
87 | *@@ CONVERSION:
|
---|
88 | *
|
---|
89 | *@@added V0.9.18 (2002-03-08) [umoeller]
|
---|
90 | */
|
---|
91 |
|
---|
92 | typedef struct _CONVERSION
|
---|
93 | {
|
---|
94 | ENCID EncodingID;
|
---|
95 |
|
---|
96 | // to get Unicode for character 123 in the specific
|
---|
97 | // encoding, do pTable->ausEntriesUniFromCP[123].
|
---|
98 | // If you get 0xFFFF, the encoding is undefined.
|
---|
99 | unsigned short usHighestCP;
|
---|
100 | unsigned short *ausEntriesUniFromCP; // usHighestCP + 1 entries
|
---|
101 |
|
---|
102 | // to get codepage for unicode character 123,
|
---|
103 | // do pTable->ausEntriesCPFromUni[123].
|
---|
104 | // If you get 0xFFFF, the encoding is undefined.
|
---|
105 | unsigned short usHighestUni;
|
---|
106 | unsigned short *ausEntriesCPFromUni; // usHighestUni + 1 entries
|
---|
107 |
|
---|
108 | } CONVERSION, *PCONVERSION;
|
---|
109 |
|
---|
110 | typedef enum _ENCBYTECOUNT
|
---|
111 | {
|
---|
112 | SINGLE,
|
---|
113 | DOUBLE,
|
---|
114 | EBCDIC,
|
---|
115 | MULTI_UNICODE,
|
---|
116 | UNKNOWN
|
---|
117 | } ENCBYTECOUNT;
|
---|
118 |
|
---|
119 | int encGetTable(ENCID id,
|
---|
120 | PXWPENCODINGMAP *ppMap,
|
---|
121 | unsigned long *pcEntries);
|
---|
122 |
|
---|
123 | ENCID encFindIdForCodepage(unsigned short usCodepage,
|
---|
124 | const char **ppcszDescription,
|
---|
125 | ENCBYTECOUNT *pByteCount);
|
---|
126 |
|
---|
127 | PCONVERSION encCreateCodec(ENCID id);
|
---|
128 |
|
---|
129 | void encFreeCodec(PCONVERSION *ppTable);
|
---|
130 |
|
---|
131 | unsigned long encChar2Uni(PCONVERSION pTable,
|
---|
132 | unsigned short c);
|
---|
133 |
|
---|
134 | unsigned short encUni2Char(PCONVERSION pTable,
|
---|
135 | unsigned long ulUni);
|
---|
136 |
|
---|
137 | unsigned long encDecodeUTF8(const char **ppch);
|
---|
138 |
|
---|
139 | int encInitCase(void);
|
---|
140 |
|
---|
141 | unsigned long encToUpper(unsigned long ulUni);
|
---|
142 |
|
---|
143 | int encicmp(const char *pcsz1,
|
---|
144 | const char *pcsz2);
|
---|
145 |
|
---|
146 | #endif
|
---|
147 |
|
---|
148 | #if __cplusplus
|
---|
149 | }
|
---|
150 | #endif
|
---|
151 |
|
---|