Initial revision
[silc.git] / lib / zlib / contrib / delphi / zlibdef.pas
1 unit zlibdef;
2
3 interface
4
5 uses
6   Windows;
7
8 const
9   ZLIB_VERSION = '1.1.3';
10
11 type
12   voidpf = Pointer;
13   int    = Integer;
14   uInt   = Cardinal;
15   pBytef = PChar;
16   uLong  = Cardinal;
17
18   alloc_func = function(opaque: voidpf; items, size: uInt): voidpf;
19                     stdcall;
20   free_func  = procedure(opaque, address: voidpf);
21                     stdcall;
22
23   internal_state = Pointer;
24
25   z_streamp = ^z_stream;
26   z_stream = packed record
27     next_in: pBytef;          // next input byte
28     avail_in: uInt;           // number of bytes available at next_in
29     total_in: uLong;          // total nb of input bytes read so far
30
31     next_out: pBytef;         // next output byte should be put there
32     avail_out: uInt;          // remaining free space at next_out
33     total_out: uLong;         // total nb of bytes output so far
34
35     msg: PChar;               // last error message, NULL if no error
36     state: internal_state;    // not visible by applications
37
38     zalloc: alloc_func;       // used to allocate the internal state
39     zfree: free_func;         // used to free the internal state
40     opaque: voidpf;           // private data object passed to zalloc and zfree
41
42     data_type: int;           // best guess about the data type: ascii or binary
43     adler: uLong;             // adler32 value of the uncompressed data
44     reserved: uLong;          // reserved for future use
45     end;
46
47 const
48   Z_NO_FLUSH      = 0;
49   Z_SYNC_FLUSH    = 2;
50   Z_FULL_FLUSH    = 3;
51   Z_FINISH        = 4;
52
53   Z_OK            = 0;
54   Z_STREAM_END    = 1;
55
56   Z_NO_COMPRESSION         =  0;
57   Z_BEST_SPEED             =  1;
58   Z_BEST_COMPRESSION       =  9;
59   Z_DEFAULT_COMPRESSION    = -1;
60
61   Z_FILTERED            = 1;
62   Z_HUFFMAN_ONLY        = 2;
63   Z_DEFAULT_STRATEGY    = 0;
64
65   Z_BINARY   = 0;
66   Z_ASCII    = 1;
67   Z_UNKNOWN  = 2;
68
69   Z_DEFLATED    = 8;
70
71   MAX_MEM_LEVEL = 9;
72
73 function adler32(adler: uLong; const buf: pBytef; len: uInt): uLong;
74              stdcall;
75 function crc32(crc: uLong; const buf: pBytef; len: uInt): uLong;
76              stdcall;
77 function deflate(strm: z_streamp; flush: int): int;
78              stdcall;
79 function deflateCopy(dest, source: z_streamp): int;
80              stdcall;
81 function deflateEnd(strm: z_streamp): int;
82              stdcall;
83 function deflateInit2_(strm: z_streamp; level, method,
84                        windowBits, memLevel, strategy: int;
85                        const version: PChar; stream_size: int): int;
86              stdcall;
87 function deflateInit_(strm: z_streamp; level: int;
88                       const version: PChar; stream_size: int): int;
89              stdcall;
90 function deflateParams(strm: z_streamp; level, strategy: int): int;
91              stdcall;
92 function deflateReset(strm: z_streamp): int;
93              stdcall;
94 function deflateSetDictionary(strm: z_streamp;
95                               const dictionary: pBytef;
96                               dictLength: uInt): int;
97              stdcall;
98 function inflate(strm: z_streamp; flush: int): int;
99              stdcall;
100 function inflateEnd(strm: z_streamp): int;
101              stdcall;
102 function inflateInit2_(strm: z_streamp; windowBits: int;
103                        const version: PChar; stream_size: int): int;
104              stdcall;
105 function inflateInit_(strm: z_streamp; const version: PChar;
106                       stream_size: int): int;
107              stdcall;
108 function inflateReset(strm: z_streamp): int;
109              stdcall;
110 function inflateSetDictionary(strm: z_streamp;
111                               const dictionary: pBytef;
112                               dictLength: uInt): int;
113              stdcall;
114 function inflateSync(strm: z_streamp): int;
115              stdcall;
116
117 function deflateInit(strm: z_streamp; level: int): int;
118 function deflateInit2(strm: z_streamp; level, method, windowBits,
119                       memLevel, strategy: int): int;
120 function inflateInit(strm: z_streamp): int;
121 function inflateInit2(strm: z_streamp; windowBits: int): int;
122
123 implementation
124
125 function deflateInit(strm: z_streamp; level: int): int;
126 begin
127   Result := deflateInit_(strm, level, ZLIB_VERSION, sizeof(z_stream));
128 end;
129
130 function deflateInit2(strm: z_streamp; level, method, windowBits,
131                       memLevel, strategy: int): int;
132 begin
133   Result := deflateInit2_(strm, level, method, windowBits, memLevel,
134                           strategy, ZLIB_VERSION, sizeof(z_stream));
135 end;
136
137 function inflateInit(strm: z_streamp): int;
138 begin
139   Result := inflateInit_(strm, ZLIB_VERSION, sizeof(z_stream));
140 end;
141
142 function inflateInit2(strm: z_streamp; windowBits: int): int;
143 begin
144   Result := inflateInit2_(strm, windowBits, ZLIB_VERSION,
145                           sizeof(z_stream));
146 end;
147
148 const
149   zlibDLL = 'png32bd.dll';
150
151 function adler32; external zlibDLL;
152 function crc32; external zlibDLL;
153 function deflate; external zlibDLL;
154 function deflateCopy; external zlibDLL;
155 function deflateEnd; external zlibDLL;
156 function deflateInit2_; external zlibDLL;
157 function deflateInit_; external zlibDLL;
158 function deflateParams; external zlibDLL;
159 function deflateReset; external zlibDLL;
160 function deflateSetDictionary; external zlibDLL;
161 function inflate; external zlibDLL;
162 function inflateEnd; external zlibDLL;
163 function inflateInit2_; external zlibDLL;
164 function inflateInit_; external zlibDLL;
165 function inflateReset; external zlibDLL;
166 function inflateSetDictionary; external zlibDLL;
167 function inflateSync; external zlibDLL;
168
169 end.