CCodeConvert.h

Upload User: hxj5298
Upload Date: 2008-07-09
Package Size: 137k
Code Size: 2k
Development Platform: Visual C++
  1. #include <string.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <stdio.h>
  5. #define MAX_CONV_LEN 65536
  6. #define BOOL int
  7. #define TRUE 1
  8. #define FALSE 0
  9. #define UINT unsigned int
  10. #define DWORD long
  11. #define LPCWSTR unsigned short*
  12. #define LPWSTR unsigned short*
  13. #define LPSTR char*
  14. #define LPCSTR char*
  15. #define LPBOOL int*
  16. #ifndef _WINNLS_
  17. #define MB_PRECOMPOSED            0x00000001  // use precomposed chars
  18. #define MB_COMPOSITE              0x00000002  // use composite chars
  19. #define MB_USEGLYPHCHARS          0x00000004  // use glyph chars, not ctrl chars
  20. #define MB_ERR_INVALID_CHARS      0x00000008  // error for invalid chars
  21. #define WC_COMPOSITECHECK         0x00000200  // convert composite to precomposed
  22. #define WC_DISCARDNS              0x00000010  // discard non-spacing chars
  23. #define WC_SEPCHARS               0x00000020  // generate separate chars
  24. #define WC_DEFAULTCHAR            0x00000040  // replace w/ default char
  25. #define CP_ACP                    0           // default to ANSI code page
  26. #define CP_OEMCP                  1           // default to OEM  code page
  27. #define CP_MACCP                  2           // default to MAC  code page
  28. #define CP_THREAD_ACP             3           // current thread's ANSI code page
  29. #define CP_SYMBOL                 42          // SYMBOL translations
  30. #define CP_UTF7                   65000       // UTF-7 translation
  31. #define CP_UTF8                   65001       // UTF-8 translation
  32. #endif
  33. class CCodeConvert
  34. {
  35. public:
  36. char tgt[MAX_CONV_LEN];
  37. char* SourceToTarget(char* str);
  38. void initializeGbToBig5Table(void);
  39. void initializeBig5ToGbTable(void);
  40. void initializeSjisToBig5Table(void);
  41. void initializeBig5ToSjisTable(void);
  42. int MultiByteToWideChar(UINT CodePage,LPCSTR lpMultiByteStr,int cbMultiByte,LPWSTR lpWideCharStr,int cchWideChar);
  43. int WideCharToMultiByte(UINT CodePage,LPCWSTR lpWideCharStr,int cchWideChar,LPSTR lpMultiByteStr,int cbMultiByte);
  44. CCodeConvert();
  45. ~CCodeConvert();
  46. protected:
  47. private:
  48. char bufBig5[131072];
  49. char bufUnicode[131072];
  50. char bufs2t[131072];
  51. char errMsg[64];
  52. FILE * datFile;
  53. void initializeBig5ToUnicodeTable(void);
  54. void initializeUnicodeToBig5Table(void);
  55. };