00001
00015 #ifndef INC_MI32_MUCDEFNS_H
00016 #define INC_MI32_MUCDEFNS_H
00017
00018 #ifndef INC_MI32_CHARENCODING_H
00019 #include <mi32/charencoding.h>
00020 #endif
00021
00022 #ifdef MISYSTEMDLL
00023 #define LIBEXPORT MI_DLLEXPORT
00024 #else
00025 #define LIBEXPORT MI_DLLIMPORT
00026 #endif
00027
00028 #define MUCVERSION 2
00029
00030 #ifndef GENERATING_DOXYGEN_OUTPUT
00031
00032
00033
00034
00035 struct MUCFILEHDR {
00036 UINT32 FileHdrSize;
00037 UINT32 EncHdrSize;
00038 UINT32 Version;
00039 UINT32 NumEncodings;
00040 };
00041
00042 struct MUCENCODEHDR {
00043 MIUNICODE name[16];
00044 INT32 offset;
00045 INT32 numpairs;
00046 };
00047
00048 struct UCDATA;
00049
00050 #endif // GENERATING_DOXYGEN_OUTPUT
00051
00052
00053
00054
00055 #define MASK_ALG 0x7FFF0000
00056 #define MASK_CHARSET 0x0000FFFF
00057
00058 #define CHARALG_SJIS 0x00010000
00059 #define CHARALG_EUC 0x00020000
00060 #define CHARALG_GL2GR 0x00040000
00061 #define CHARALG_GR2GL 0x00080000
00062
00063 #define CHARSET_Unicode 0x00000000
00064 #define CHARSET_GB_2312 0x00000001
00065 #define CHARSET_GB_12345 0x00000002
00066 #define CHARSET_GB_7589 0x00000003
00067 #define CHARSET_GB_7590 0x00000004
00068 #define CHARSET_GB_Han 0x00000005
00069 #define CHARSET_GB_8565 0x00000006
00070 #define CHARSET_BigFive 0x00000007
00071 #define CHARSET_CNS_11543_01 0x00000008
00072 #define CHARSET_CNS_11543_02 0x00000009
00073 #define CHARSET_CNS_11543_14 0x0000000A
00074 #define CHARSET_JIS_X_0208_1990 0x0000000B
00075 #define CHARSET_JIS_X_0212_1990 0x0000000C
00076 #define CHARSET_KS_C_5601_1987 0x0000000D
00077 #define CHARSET_KS_C_5657_1991 0x0000000E
00078 #define CHARSET_ISO_8859_1 0x0000000F
00079 #define CHARSET_ISO_8859_2 0x00000010
00080 #define CHARSET_ISO_8859_3 0x00000011
00081 #define CHARSET_ISO_8859_4 0x00000012
00082 #define CHARSET_ISO_8859_5 0x00000013
00083 #define CHARSET_ISO_8859_6 0x00000014
00084 #define CHARSET_ISO_8859_7 0x00000015
00085 #define CHARSET_ISO_8859_8 0x00000016
00086 #define CHARSET_ISO_8859_9 0x00000017
00087 #define CHARSET_JIS_ROMAN 0x00000018
00088 #define CHARSET_GB_ROMAN 0x00000019
00089 #define CHARSET_JIS_C_6226 0x0000001A
00090 #define CHARSET_HW_KATAKANA 0x0000001B
00091 #define CHARSET_WinCP_Turk 0x0000001C
00092 #define CHARSET_WinCP_EE 0x0000001D
00093 #define CHARSET_WinCP_Cyrl 0x0000001E
00094 #define CHARSET_WinCP_Greek 0x0000001F
00095 #define CHARSET_WinCP_Arab 0x00000020
00096 #define CHARSET_WinCP_Hebr 0x00000021
00097 #define CHARSET_DOSCP_437 0x00000022
00098 #define CHARSET_DOSCP_850 0x00000023
00099 #define CHARSET_DOSCP_852 0x00000024
00100 #define CHARSET_DOSCP_857 0x00000025
00101 #define CHARSET_DOSCP_861 0x00000026
00102 #define CHARSET_DOSCP_863 0x00000027
00103 #define CHARSET_DOSCP_865 0x00000028
00104 #define CHARSET_IBMCP_869 0x00000029
00105 #define CHARSET_IBMCP_855 0x0000002A
00106 #define CHARSET_IBMCP_864 0x0000002B
00107 #define CHARSET_IBMCP_1040 0x0000002C
00108 #define CHARSET_IBMCP_1041 0x0000002D
00109 #define CHARSET_IBMCP_1043 0x0000002E
00110 #define CHARSET_TIS620_2529 0x0000002F
00111 #define CHARSET_WinCP_Thai 0x00000030
00112 #define CHARSET_MI_Thai 0x00000031
00113 #define CHARSET_WinCP_ANSI 0x00000032
00114 #define CHARSET_ArabicUC 0x00000033
00115 #define CHARSET_MacArabic 0x00000034
00116 #define CHARSET_MacCroatian 0x00000035
00117 #define CHARSET_MacCyrillic 0x00000036
00118 #define CHARSET_MacDingbats 0x00000037
00119 #define CHARSET_MacCentEurope 0x00000038
00120 #define CHARSET_MacGreek 0x00000039
00121 #define CHARSET_MacHebrew 0x0000003A
00122 #define CHARSET_MacIcelandic 0x0000003B
00123 #define CHARSET_MacJapanese 0x0000003C
00124 #define CHARSET_MacRomanian 0x0000003D
00125 #define CHARSET_MacRoman 0x0000003E
00126 #define CHARSET_MacSymbol 0x0000003F
00127 #define CHARSET_MacThai 0x00000040
00128 #define CHARSET_MacTurkish 0x00000041
00129 #define CHARSET_MacUkrainian 0x00000042
00130 #define CHARSET_WinCP_Baltic 0x00000043
00131 #define CHARSET_IBM_1046 0x00000044
00132 #define CHARSET_KS_C_5601_Unif 0x00000045
00133 #define CHARSET_KS_C_5601_1992 0x00000046
00134 #define CHARSET_ISCII_Devanagari 0x00000047
00135 #define CHARSET_ISCII_Bengali 0x00000048
00136 #define CHARSET_ISCII_Gurmukhi 0x00000049
00137 #define CHARSET_ISCII_Gujarati 0x0000004A
00138 #define CHARSET_ISCII_Oriya 0x0000004B
00139 #define CHARSET_ISCII_Tamil 0x0000004C
00140 #define CHARSET_ISCII_Telugu 0x0000004D
00141 #define CHARSET_ISCII_Kannada 0x0000004E
00142 #define CHARSET_ISCII_Malayalam 0x0000004F
00143 #define CHARSET_KOI8 0x00000050
00144 #define CHARSET_CP932 0x00000051
00145 #define CHARSET_MAX 0x00000051
00146
00147
00148 #define CHARSET_ISO_Latin_1 CHARSET_ISO_8859_1
00149 #define CHARSET_ASCII CHARSET_ISO_Latin_1
00150 #define CHARSET_JIS_0208 CHARSET_JIS_X_0208_1990
00151 #define CHARSET_JIS_0212 CHARSET_JIS_X_0212_1990
00152 #define CHARSET_SHIFT_JIS (CHARALG_SJIS | CHARSET_JIS_X_0208_1990)
00153
00154 #define UCCONV_NoByteOrderMark 0x00000001
00155
00156 #ifndef __cplusplus
00157 typedef
00158 #endif
00168 enum SCRIPTTAG {
00169
00170 SCRIPTTAG_arab = 0x61726162,
00171 SCRIPTTAG_armn = 0x61726D6E,
00172 SCRIPTTAG_beng = 0x62656E67,
00173 SCRIPTTAG_bpmf = 0x62706D66,
00174 SCRIPTTAG_cyrl = 0x6379726C,
00175 SCRIPTTAG_deva = 0x64657661,
00176 SCRIPTTAG_grek = 0x6772656B,
00177 SCRIPTTAG_grgn = 0x6772676E,
00178 SCRIPTTAG_gujr = 0x67756A72,
00179 SCRIPTTAG_hang = 0x68616E67,
00180 SCRIPTTAG_hani = 0x68616E69,
00181 SCRIPTTAG_hebr = 0x68656272,
00182 SCRIPTTAG_kana = 0x6B616E61,
00183 SCRIPTTAG_knbn = 0x6B6E626E,
00184 SCRIPTTAG_knda = 0x6B6E6461,
00185 SCRIPTTAG_laoS = 0x6C616F20,
00186 SCRIPTTAG_latn = 0x6C61746E,
00187 SCRIPTTAG_mlym = 0x6D6C796D,
00188 SCRIPTTAG_orya = 0x6F727961,
00189 SCRIPTTAG_punj = 0x70756E6A,
00190 SCRIPTTAG_taml = 0x74616D6C,
00191 SCRIPTTAG_telu = 0x74656C75,
00192 SCRIPTTAG_thai = 0x74686169,
00193 SCRIPTTAG_tibt = 0x74696174,
00194
00195 SCRIPTTAG_neut = 0x4E455554,
00196 SCRIPTTAG_puse = 0x50555345,
00197 SCRIPTTAG_spcl = 0x5350434C,
00198 SCRIPTTAG_surr = 0x53555252,
00199
00200 SCRIPTTAG_Default = 0x00000000
00201 }
00202 #ifndef __cplusplus
00203 SCRIPTTAG
00204 #endif
00205 ;
00206
00207
00215 #define MucGLYPHFLAG_PartOfRtoLWord 0x01
00216 #define MucGLYPHFLAG_NonJoining 0x80
00217 #define MucGLYPHFLAG_Mark 0x40
00218
00219 #define MucGLYPHDIRECTION_LtoR 0
00220 #define MucGLYPHDIRECTION_RtoL 1
00221 #define MucGLYPHDIRECTION_Weak 2
00222
00223 #if defined(__cplusplus)
00224 extern "C" {
00225 #endif
00226
00234 LIBEXPORT MIUNICODE* MucDecompose (
00235 const MIUNICODE* string
00236 );
00237
00246 LIBEXPORT MIUNICODE* MucRecompose (
00247 const MIUNICODE* string
00248 );
00249
00251 LIBEXPORT int MucInitConversion (
00252 void** handle,
00253 const char* encoding,
00254 UINT32 flags
00255 );
00256
00258 LIBEXPORT void MucStopConversion (
00259 void* handle
00260 );
00261
00263 LIBEXPORT int MucCharsetToUnicode (
00264 int val,
00265 int charset
00266 );
00267
00270 LIBEXPORT int MucCharsetToUnicodeBuf (
00271 MIUNICODE *buf,
00272 int charset
00273 );
00274
00280 LIBEXPORT int MucConvertToUnicode (
00281 void *vcd,
00282 const void *vinbuf,
00283 MIUNICODE **outbuf
00284 );
00285
00291 LIBEXPORT int MucConvertToISO2022 (
00292 void *vcd,
00293 const void *vinbuf,
00294 char **outbuf
00295 );
00296
00298 LIBEXPORT int MucConvertFromISO2022 (
00299 void *vcd,
00300 const void *vinbuf,
00301 char **outbuf
00302 );
00303
00305 LIBEXPORT int MucConvertFromUnicode (
00306 void *vcd,
00307 const MIUNICODE *ucbuf,
00308 void **outbufp
00309 );
00310
00331 LIBEXPORT int MucConvertUnicodeGen (
00332 const MIUNICODE* inbuf,
00333 int(*NewCharsetFunc)(int NewCharset, int OldCharset, void* UserData),
00334 int(*AddCharsFunc)(UINT8* chars, int len, void* UserData),
00335 void* UserData,
00336 UINT32 flags
00337 );
00338
00339
00343 LIBEXPORT int MucConvertUnicodeToISO2022 (
00344 const MIUNICODE *inbuf,
00345 char **outbuf
00346 );
00347
00351 LIBEXPORT int MucConvertISO2022ToUnicode (
00352 const void*,
00353 MIUNICODE**
00354 );
00355
00364 LIBEXPORT int MucConvertISO2022aToUnicode (
00365 const void*,
00366 MIUNICODE**
00367 );
00368
00374 LIBEXPORT int MucConvertUTF8ToUnicode (
00375 const UINT8* instr,
00376 MIUNICODE** outstr
00377 );
00378
00384 LIBEXPORT int MucConvertUnicodeToUTF8 (
00385 const MIUNICODE* instr,
00386 UINT8** outstr
00387 );
00388
00389 #ifdef __cplusplus
00425 LIBEXPORT MIUNICODE* MucDoGlyphSubstitutions (
00426 const MIUNICODE* instr,
00427 bool (*CB_AllowSub)(const UCDATA* sub, void* cbdata),
00428 void* cbdata,
00429 UINT32 flags = 0
00430 );
00431 #endif
00432
00433 #define GLYPHSUB_AllowWideForms 0x00000001
00434 #define GLYPHSUB_AllowNarrowForms 0x00000002
00435 #define GLYPHSUB_AllowCompatForms 0x00000004
00436 #define GLYPHSUB_AllowPositionalForms 0x00000008
00437 #define GLYPHSUB_AllowFractionForms 0x00000010
00438 #define GLYPHSUB_AllowSubscriptForms 0x00000020
00439 #define GLYPHSUB_AllowSuperscriptForms 0x00000040
00440 #define GLYPHSUB_AllowSmallForms 0x00000080
00441 #define GLYPHSUB_AllowSquareForms 0x00000100
00442 #define GLYPHSUB_AllowCircleForms 0x00000200
00443 #define GLYPHSUB_AllowFontForms 0x00000400
00444 #define GLYPHSUB_AllowNoBreakForms 0x00000800
00445 #define GLYPHSUB_AllowVerticalForms 0x00001000
00446
00452 LIBEXPORT MIUNICODE* MucFlipVisualAndLogicalOrder (
00453 const MIUNICODE*
00454 );
00455
00466 LIBEXPORT int MucGetDefaultCharsets (
00467 int* charset1,
00468 int* charset2,
00469 int* charset3
00470 );
00471
00472
00489 LIBEXPORT int MucGetGlyphDirection (
00490 const MIUNICODE *uc,
00491 int curdir,
00492 UINT8* glyphflags
00493 );
00494
00503 LIBEXPORT int MucGetNumEncodings (
00504 ENCODELIST_FLAGS flags
00505 );
00506
00508 LIBEXPORT CHAR_ENCODING MucGetEncodingFromName (
00509 const char* name
00510 );
00511
00512
00529 LIBEXPORT CHAR_ENCODING MucGetEncodingFromNum (
00530 int num,
00531 ENCODELIST_FLAGS flags
00532 );
00533
00552 LIBEXPORT int MucGetEncodingNum (
00553 CHAR_ENCODING encoding,
00554 ENCODELIST_FLAGS flags
00555 );
00556
00564 LIBEXPORT const char* MucGetName (
00565 CHAR_ENCODING encoding
00566 );
00567
00572 LIBEXPORT int MucGuessJapaneseEncoding (
00573 const UINT8 *in,
00574 char *encoding
00575 );
00576
00578 LIBEXPORT int MucHasRightToLeftTextUC (
00579 const MIUNICODE *in
00580 );
00581
00583 LIBEXPORT int MucHasRightToLeftTextISO2022 (
00584 const char *in
00585 );
00586
00593 LIBEXPORT char *MucNameToDesc (
00594 const char* name
00595 );
00596
00601 LIBEXPORT MIUNICODE *MucNameToDescUC (
00602 const char* name
00603 );
00604
00606 LIBEXPORT int MucNameToNum (
00607 const char* name,
00608 ENCODELIST_FLAGS flags
00609 );
00610
00612 LIBEXPORT int MucNameToCharset (
00613 const char* name ,
00614 ENCODELIST_FLAGS flags
00615 );
00616
00623 LIBEXPORT char *MucNumToDesc (
00624 int num,
00625 ENCODELIST_FLAGS flags
00626 );
00627
00632 LIBEXPORT MIUNICODE *MucNumToDescUC (
00633 int num,
00634 ENCODELIST_FLAGS flags
00635 );
00636
00644 LIBEXPORT const char *MucNumToName (
00645 int num,
00646 ENCODELIST_FLAGS flags
00647 );
00648
00650 LIBEXPORT int MucQuickConvToUnicode (
00651 int encodetype,
00652 const void *in,
00653 MIUNICODE **ucp
00654 );
00655
00657 LIBEXPORT int MucQuickConvToISO2022 (
00658 int encodetype,
00659 const void *in,
00660 char **outp
00661 );
00662
00664 LIBEXPORT void MucReset (
00665 void* handle
00666 );
00667
00675 LIBEXPORT int MucStrLenISO2022 (
00676 const void *vinbuf
00677 );
00678
00679 #define MUC_THAI_OF 1
00680 #define MUC_THAI_TTF 2
00681 LIBEXPORT MIUNICODE *MucThaiShiftTonesAndVowels (
00682 const MIUNICODE* str,
00683 UINT32 fontencoding
00684 );
00685
00686 #ifdef __cplusplus
00722 LIBEXPORT ERRVALUE MucIndicGlyphSubstitutions (
00723 const MIUNICODE* instr,
00724 MIUNICODE** outstr,
00725 SCRIPTTAG script = SCRIPTTAG_Default,
00726 INT32 len = -1,
00727 bool bApplyRephHack = false
00728 );
00729 #endif
00730
00732 LIBEXPORT bool MucIsThaiTone (
00733 MIUNICODE ch
00734 );
00735
00737 LIBEXPORT bool MucIsThaiVowel (
00738 MIUNICODE ch
00739 );
00740
00742 LIBEXPORT bool MucIsThaiUpperVowel (
00743 MIUNICODE ch
00744 );
00745
00747 LIBEXPORT bool MucIsThaiLowerVowel (
00748 MIUNICODE ch
00749 );
00750
00754 LIBEXPORT int MucUnicodeToCharset (
00755 int val,
00756 int charset
00757 );
00758
00759 #ifdef WIN32
00761 LIBEXPORT void MucWinSetFuncGetLanguageID (
00762 UINT16 (*pfGetLanguageID)(void)
00763 );
00764
00766 LIBEXPORT void MucWinSetFuncGetCharsetID (
00767 UINT16 (*pfGetLanguageID)(void)
00768 );
00769 #endif
00770
00771
00772 #if defined(__cplusplus)
00773 }
00774 #endif
00775
00776 #define MUCEVENT_ComposeOn 0x01
00777 #define MUCEVENT_ComposeOff 0x02
00778 #define MUCEVENT_ComposeToggle (MUCEVENT_ComposeOn|MUCEVENT_ComposeOff)
00779
00780 #undef LIBEXPORT
00781
00782 #endif // INC_MI32_MUCDEFNS_H