2
0

ZLibDelphi.pas 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. unit ZLibDelphi;
  2. (*
  3. {$IFOPT D+}
  4. {$DEFINE ZLIB_DEBUG}
  5. {$ENDIF}
  6. *)
  7. interface
  8. uses
  9. Windows, SysUtils;
  10. const
  11. ZLIB_VERSION = '1.2.1';
  12. Z_NO_FLUSH = 0;
  13. Z_FINISH = 4;
  14. Z_OK = 0;
  15. Z_STREAM_END = 1;
  16. type
  17. PRZStream = ^RZStream;
  18. RZStream = record
  19. NextIn: PByte;
  20. AvailIn: Cardinal;
  21. TotalIn: Cardinal;
  22. NextOut: PByte;
  23. AvailOut: Cardinal;
  24. TotalOut: Cardinal;
  25. Msg: PChar;
  26. State: Pointer;
  27. AllocFunc: Pointer;
  28. FreeFunc: Pointer;
  29. Opaque: Cardinal;
  30. DataType: Integer;
  31. Adler: Cardinal;
  32. Reserved: Cardinal;
  33. end;
  34. function inflateInit_(strm: Pointer; version: Pointer; stream_size: Integer): Integer; cdecl; external;
  35. function inflateReset(strm: Pointer): Integer; cdecl; external;
  36. function inflate(strm: Pointer; flush: Integer): Integer; cdecl; external;
  37. function inflateSync(strm: Pointer): Integer; cdecl; external;
  38. function deflateInit(strm: Pointer; level: Integer): Integer;
  39. function deflateInit_(strm: Pointer; level: Integer; version: Pointer; stream_size: Integer): Integer; cdecl; external;
  40. function deflateReset(strm: Pointer): Integer; cdecl; external;
  41. function deflate(strm: Pointer; flush: Integer): Integer; cdecl; external;
  42. function deflateEnd(strm: Pointer): Integer; cdecl; external;
  43. function inflateEnd(strm: Pointer): Integer; cdecl; external;
  44. function deflateParams(strm: Pointer; level: Integer; strategy: Integer): Integer; cdecl; external;
  45. implementation
  46. uses
  47. LibDelphi;
  48. function deflateInit(strm: Pointer; level: Integer): Integer;
  49. begin
  50. Result:=deflateInit_(strm,level,PChar(ZLIB_VERSION),SizeOf(RZStream));
  51. end;
  52. {inflate}
  53. {$IFDEF ZLIB_DEBUG}
  54. {$L ZLibDelphi\debug\inflate.obj}
  55. {$ELSE}
  56. {$L ZLibDelphi\release\inflate.obj}
  57. {$ENDIF}
  58. {crc32}
  59. {$IFDEF ZLIB_DEBUG}
  60. {$L ZLibDelphi\debug\crc32.obj}
  61. {$ELSE}
  62. {$L ZLibDelphi\release\crc32.obj}
  63. {$ENDIF}
  64. {adler32}
  65. {$IFDEF ZLIB_DEBUG}
  66. {$L ZLibDelphi\debug\adler32.obj}
  67. {$ELSE}
  68. {$L ZLibDelphi\release\adler32.obj}
  69. {$ENDIF}
  70. {inftrees}
  71. {$IFDEF ZLIB_DEBUG}
  72. {$L ZLibDelphi\debug\inftrees.obj}
  73. {$ELSE}
  74. {$L ZLibDelphi\release\inftrees.obj}
  75. {$ENDIF}
  76. {inffast}
  77. {$IFDEF ZLIB_DEBUG}
  78. {$L ZLibDelphi\debug\inffast.obj}
  79. {$ELSE}
  80. {$L ZLibDelphi\release\inffast.obj}
  81. {$ENDIF}
  82. {deflate}
  83. {$IFDEF ZLIB_DEBUG}
  84. {$L ZLibDelphi\debug\deflate.obj}
  85. {$ELSE}
  86. {$L ZLibDelphi\release\deflate.obj}
  87. {$ENDIF}
  88. {zutil}
  89. {$IFDEF ZLIB_DEBUG}
  90. {$L ZLibDelphi\debug\zutil.obj}
  91. {$ELSE}
  92. {$L ZLibDelphi\release\zutil.obj}
  93. {$ENDIF}
  94. {trees}
  95. {$IFDEF ZLIB_DEBUG}
  96. {$L ZLibDelphi\debug\trees.obj}
  97. {$ELSE}
  98. {$L ZLibDelphi\release\trees.obj}
  99. {$ENDIF}
  100. {compress}
  101. {$IFDEF ZLIB_DEBUG}
  102. {$L ZLibDelphi\debug\compress.obj}
  103. {$ELSE}
  104. {$L ZLibDelphi\release\compress.obj}
  105. {$ENDIF}
  106. {decompress}
  107. {$IFDEF ZLIB_DEBUG}
  108. {$L ZLibDelphi\debug\uncompr.obj}
  109. {$ELSE}
  110. {$L ZLibDelphi\release\uncompr.obj}
  111. {$ENDIF}
  112. end.