Winconvert.hpp
上传用户:xjwsee
上传日期:2008-08-02
资源大小:796k
文件大小:6k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 2005 by Borland Software Corporation
  3. // All rights reserved
  4. // (DO NOT EDIT: machine generated header) 'Winconvert.pas' rev: 10.00
  5. #ifndef WinconvertHPP
  6. #define WinconvertHPP
  7. #pragma delphiheader begin
  8. #pragma option push
  9. #pragma option -w-      // All warnings off
  10. #pragma option -Vx      // Zero-length empty class member functions
  11. #pragma pack(push,8)
  12. #include <System.hpp> // Pascal unit
  13. #include <Sysinit.hpp> // Pascal unit
  14. #include <Sysutils.hpp> // Pascal unit
  15. #include <Classes.hpp> // Pascal unit
  16. //-- user supplied -----------------------------------------------------------
  17. namespace Winconvert
  18. {
  19. //-- type declarations -------------------------------------------------------
  20. typedef short Int16;
  21. class DELPHICLASS ElzhException;
  22. class PASCALIMPLEMENTATION ElzhException : public Sysutils::Exception 
  23. {
  24. typedef Sysutils::Exception inherited;
  25. public:
  26. #pragma option push -w-inl
  27. /* Exception.Create */ inline __fastcall ElzhException(const AnsiString Msg) : Sysutils::Exception(Msg) { }
  28. #pragma option pop
  29. #pragma option push -w-inl
  30. /* Exception.CreateFmt */ inline __fastcall ElzhException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
  31. #pragma option pop
  32. #pragma option push -w-inl
  33. /* Exception.CreateRes */ inline __fastcall ElzhException(int Ident)/* overload */ : Sysutils::Exception(Ident) { }
  34. #pragma option pop
  35. #pragma option push -w-inl
  36. /* Exception.CreateResFmt */ inline __fastcall ElzhException(int Ident, System::TVarRec const * Args, const int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
  37. #pragma option pop
  38. #pragma option push -w-inl
  39. /* Exception.CreateHelp */ inline __fastcall ElzhException(const AnsiString Msg, int AHelpContext) : Sysutils::Exception(Msg, AHelpContext) { }
  40. #pragma option pop
  41. #pragma option push -w-inl
  42. /* Exception.CreateFmtHelp */ inline __fastcall ElzhException(const AnsiString Msg, System::TVarRec const * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext) { }
  43. #pragma option pop
  44. #pragma option push -w-inl
  45. /* Exception.CreateResHelp */ inline __fastcall ElzhException(int Ident, int AHelpContext)/* overload */ : Sysutils::Exception(Ident, AHelpContext) { }
  46. #pragma option pop
  47. #pragma option push -w-inl
  48. /* Exception.CreateResFmtHelp */ inline __fastcall ElzhException(System::PResStringRec ResStringRec, System::TVarRec const * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(ResStringRec, Args, Args_Size, AHelpContext) { }
  49. #pragma option pop
  50. public:
  51. #pragma option push -w-inl
  52. /* TObject.Destroy */ inline __fastcall virtual ~ElzhException(void) { }
  53. #pragma option pop
  54. };
  55. typedef void __fastcall (__closure *TWriteProc)(void *DTA, Word NBytes, Word &Bytes_Put);
  56. typedef void __fastcall (__closure *PutBytesProc)(void *DTA, Word NBytes, Word &Bytes_Put);
  57. typedef void __fastcall (__closure *TReadProc)(void *DTA, Word NBytes, Word &Bytes_Got);
  58. typedef void __fastcall (__closure *GetBytesProc)(void *DTA, Word NBytes, Word &Bytes_Got);
  59. typedef Word Freqtype[628];
  60. typedef Word *FreqPtr;
  61. typedef short PntrType[941];
  62. typedef short *pntrPtr;
  63. typedef short SonType[627];
  64. typedef short *SonPtr;
  65. typedef Byte TextBufType[4155];
  66. typedef Byte *TBufPtr;
  67. typedef short WordRay[4097];
  68. typedef short *WordRayPtr;
  69. typedef short BWordRay[4353];
  70. typedef short *BWordRayPtr;
  71. class DELPHICLASS TLZH;
  72. class PASCALIMPLEMENTATION TLZH : public System::TObject 
  73. {
  74. typedef System::TObject inherited;
  75. private:
  76. Word code;
  77. Word len;
  78. void __fastcall InitTree(void);
  79. void __fastcall InsertNode(short r);
  80. void __fastcall DeleteNode(short p);
  81. short __fastcall GetBit(TReadProc GetBytes);
  82. short __fastcall GetByte(TReadProc GetBytes);
  83. void __fastcall update(short c);
  84. void __fastcall StartHuff(void);
  85. void __fastcall Putcode(short l, Word c, TWriteProc PutBytes);
  86. void __fastcall reconst(void);
  87. void __fastcall EncodeChar(Word c, TWriteProc PutBytes);
  88. void __fastcall EncodePosition(Word c, TWriteProc PutBytes);
  89. void __fastcall EncodeEnd(TWriteProc PutBytes);
  90. short __fastcall DecodeChar(TReadProc GetBytes);
  91. Word __fastcall DecodePosition(TReadProc GetBytes);
  92. void __fastcall InitLZH(void);
  93. void __fastcall EndLZH(void);
  94. public:
  95. Classes::TStream* StreamIn;
  96. Classes::TStream* StreamOut;
  97. Word getbuf;
  98. Byte getlen;
  99. Byte putlen;
  100. Word putbuf;
  101. int textsize;
  102. int codesize;
  103. int printcount;
  104. short match_position;
  105. short match_length;
  106. Byte *text_buf;
  107. short *lson;
  108. short *dad;
  109. short *rson;
  110. Word *freq;
  111. short *prnt;
  112. short *son;
  113. void __fastcall LZHPack(int &Bytes_Written, TReadProc GetBytes, TWriteProc PutBytes);
  114. void __fastcall LZHUnpack(int TextSize, TReadProc GetBytes, TWriteProc PutBytes);
  115. void __fastcall GetBlockStream(void *DTA, Word NBytes, Word &Bytes_Got);
  116. void __fastcall PutBlockStream(void *DTA, Word NBytes, Word &Bytes_Got);
  117. public:
  118. #pragma option push -w-inl
  119. /* TObject.Create */ inline __fastcall TLZH(void) : System::TObject() { }
  120. #pragma option pop
  121. #pragma option push -w-inl
  122. /* TObject.Destroy */ inline __fastcall virtual ~TLZH(void) { }
  123. #pragma option pop
  124. };
  125. //-- var, const, procedure ---------------------------------------------------
  126. static const Shortint EXIT_OK = 0x0;
  127. static const Shortint EXIT_FAILED = 0x1;
  128. static const Word N = 0x1000;
  129. static const Shortint F = 0x3c;
  130. static const Shortint THRESHOLD = 0x2;
  131. static const Word NUL = 0x1000;
  132. static const Word N_CHAR = 0x13a;
  133. static const Word T = 0x273;
  134. static const Word R = 0x272;
  135. static const Word MAX_FREQ = 0x8000;
  136. extern PACKAGE Byte p_len[64];
  137. extern PACKAGE Byte p_code[64];
  138. extern PACKAGE Byte d_code[256];
  139. extern PACKAGE Byte d_len[256];
  140. } /* namespace Winconvert */
  141. using namespace Winconvert;
  142. #pragma pack(pop)
  143. #pragma option pop
  144. #pragma delphiheader end.
  145. //-- end unit ----------------------------------------------------------------
  146. #endif // Winconvert