| OLD | NEW |
| 1 /* iowin32.c -- IO base function header for compress/uncompress .zip | 1 /* iowin32.c -- IO base function header for compress/uncompress .zip |
| 2 files using zlib + zip or unzip API | 2 Version 1.1, February 14h, 2010 |
| 3 This IO API version uses the Win32 API (for Microsoft Windows) | 3 part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.htm
l ) |
| 4 | 4 |
| 5 Version 1.01e, February 12th, 2005 | 5 Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.
com/zLibDll/minizip.html ) |
| 6 | 6 |
| 7 Copyright (C) 1998-2005 Gilles Vollant | 7 Modifications for Zip64 support |
| 8 Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com ) |
| 9 |
| 10 For more info read MiniZip_info.txt |
| 11 |
| 8 */ | 12 */ |
| 9 | 13 |
| 10 #include <stdlib.h> | 14 #include <stdlib.h> |
| 11 | 15 |
| 12 #include "zlib.h" | 16 #include "zlib.h" |
| 13 #include "ioapi.h" | 17 #include "ioapi.h" |
| 14 #include "iowin32.h" | 18 #include "iowin32.h" |
| 15 | 19 |
| 16 #ifndef INVALID_HANDLE_VALUE | 20 #ifndef INVALID_HANDLE_VALUE |
| 17 #define INVALID_HANDLE_VALUE (0xFFFFFFFF) | 21 #define INVALID_HANDLE_VALUE (0xFFFFFFFF) |
| 18 #endif | 22 #endif |
| 19 | 23 |
| 20 #ifndef INVALID_SET_FILE_POINTER | 24 #ifndef INVALID_SET_FILE_POINTER |
| 21 #define INVALID_SET_FILE_POINTER ((DWORD)-1) | 25 #define INVALID_SET_FILE_POINTER ((DWORD)-1) |
| 22 #endif | 26 #endif |
| 23 | 27 |
| 24 voidpf ZCALLBACK win32_open_file_func OF(( | 28 voidpf ZCALLBACK win32_open_file_func OF((voidpf opaque, const char* filename,
int mode)); |
| 25 voidpf opaque, | 29 uLong ZCALLBACK win32_read_file_func OF((voidpf opaque, voidpf stream, void*
buf, uLong size)); |
| 26 const char* filename, | 30 uLong ZCALLBACK win32_write_file_func OF((voidpf opaque, voidpf stream, const
void* buf, uLong size)); |
| 27 int mode)); | 31 ZPOS64_T ZCALLBACK win32_tell64_file_func OF((voidpf opaque, voidpf stream)); |
| 28 | 32 long ZCALLBACK win32_seek64_file_func OF((voidpf opaque, voidpf stream, ZPOS
64_T offset, int origin)); |
| 29 uLong ZCALLBACK win32_read_file_func OF(( | 33 int ZCALLBACK win32_close_file_func OF((voidpf opaque, voidpf stream)); |
| 30 voidpf opaque, | 34 int ZCALLBACK win32_error_file_func OF((voidpf opaque, voidpf stream)); |
| 31 voidpf stream, | |
| 32 void* buf, | |
| 33 uLong size)); | |
| 34 | |
| 35 uLong ZCALLBACK win32_write_file_func OF(( | |
| 36 voidpf opaque, | |
| 37 voidpf stream, | |
| 38 const void* buf, | |
| 39 uLong size)); | |
| 40 | |
| 41 long ZCALLBACK win32_tell_file_func OF(( | |
| 42 voidpf opaque, | |
| 43 voidpf stream)); | |
| 44 | |
| 45 long ZCALLBACK win32_seek_file_func OF(( | |
| 46 voidpf opaque, | |
| 47 voidpf stream, | |
| 48 uLong offset, | |
| 49 int origin)); | |
| 50 | |
| 51 int ZCALLBACK win32_close_file_func OF(( | |
| 52 voidpf opaque, | |
| 53 voidpf stream)); | |
| 54 | |
| 55 int ZCALLBACK win32_error_file_func OF(( | |
| 56 voidpf opaque, | |
| 57 voidpf stream)); | |
| 58 | 35 |
| 59 typedef struct | 36 typedef struct |
| 60 { | 37 { |
| 61 HANDLE hf; | 38 HANDLE hf; |
| 62 int error; | 39 int error; |
| 63 } WIN32FILE_IOWIN; | 40 } WIN32FILE_IOWIN; |
| 64 | 41 |
| 65 voidpf ZCALLBACK win32_open_file_func (opaque, filename, mode) | 42 |
| 66 voidpf opaque; | 43 static void win32_translate_open_mode(int mode, |
| 67 const char* filename; | 44 DWORD* lpdwDesiredAccess, |
| 68 int mode; | 45 DWORD* lpdwCreationDisposition, |
| 46 DWORD* lpdwShareMode, |
| 47 DWORD* lpdwFlagsAndAttributes) |
| 69 { | 48 { |
| 70 const char* mode_fopen = NULL; | 49 *lpdwDesiredAccess = *lpdwShareMode = *lpdwFlagsAndAttributes = *lpdwCreatio
nDisposition = 0; |
| 71 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes
; | |
| 72 HANDLE hFile = 0; | |
| 73 voidpf ret=NULL; | |
| 74 | |
| 75 dwDesiredAccess = dwShareMode = dwFlagsAndAttributes = 0; | |
| 76 | 50 |
| 77 if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ) | 51 if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ) |
| 78 { | 52 { |
| 79 dwDesiredAccess = GENERIC_READ; | 53 *lpdwDesiredAccess = GENERIC_READ; |
| 80 dwCreationDisposition = OPEN_EXISTING; | 54 *lpdwCreationDisposition = OPEN_EXISTING; |
| 81 dwShareMode = FILE_SHARE_READ; | 55 *lpdwShareMode = FILE_SHARE_READ; |
| 82 } | 56 } |
| 83 else | 57 else if (mode & ZLIB_FILEFUNC_MODE_EXISTING) |
| 84 if (mode & ZLIB_FILEFUNC_MODE_EXISTING) | |
| 85 { | 58 { |
| 86 dwDesiredAccess = GENERIC_WRITE | GENERIC_READ; | 59 *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ; |
| 87 dwCreationDisposition = OPEN_EXISTING; | 60 *lpdwCreationDisposition = OPEN_EXISTING; |
| 88 } | 61 } |
| 89 else | 62 else if (mode & ZLIB_FILEFUNC_MODE_CREATE) |
| 90 if (mode & ZLIB_FILEFUNC_MODE_CREATE) | |
| 91 { | 63 { |
| 92 dwDesiredAccess = GENERIC_WRITE | GENERIC_READ; | 64 *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ; |
| 93 dwCreationDisposition = CREATE_ALWAYS; | 65 *lpdwCreationDisposition = CREATE_ALWAYS; |
| 94 } | 66 } |
| 67 } |
| 95 | 68 |
| 96 if ((filename!=NULL) && (dwDesiredAccess != 0)) | 69 static voidpf win32_build_iowin(HANDLE hFile) |
| 97 hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL
, | 70 { |
| 98 dwCreationDisposition, dwFlagsAndAttributes, NULL); | 71 voidpf ret=NULL; |
| 99 | 72 |
| 100 if (hFile == INVALID_HANDLE_VALUE) | 73 if ((hFile != NULL) && (hFile != INVALID_HANDLE_VALUE)) |
| 101 hFile = NULL; | |
| 102 | |
| 103 if (hFile != NULL) | |
| 104 { | 74 { |
| 105 WIN32FILE_IOWIN w32fiow; | 75 WIN32FILE_IOWIN w32fiow; |
| 106 w32fiow.hf = hFile; | 76 w32fiow.hf = hFile; |
| 107 w32fiow.error = 0; | 77 w32fiow.error = 0; |
| 108 ret = malloc(sizeof(WIN32FILE_IOWIN)); | 78 ret = malloc(sizeof(WIN32FILE_IOWIN)); |
| 79 |
| 109 if (ret==NULL) | 80 if (ret==NULL) |
| 110 CloseHandle(hFile); | 81 CloseHandle(hFile); |
| 111 else *((WIN32FILE_IOWIN*)ret) = w32fiow; | 82 else |
| 83 *((WIN32FILE_IOWIN*)ret) = w32fiow; |
| 112 } | 84 } |
| 113 return ret; | 85 return ret; |
| 114 } | 86 } |
| 115 | 87 |
| 88 voidpf ZCALLBACK win32_open64_file_func (voidpf opaque,const void* filename,int
mode) |
| 89 { |
| 90 const char* mode_fopen = NULL; |
| 91 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes
; |
| 92 HANDLE hFile = NULL; |
| 116 | 93 |
| 117 uLong ZCALLBACK win32_read_file_func (opaque, stream, buf, size) | 94 win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwSh
areMode,&dwFlagsAndAttributes); |
| 118 voidpf opaque; | 95 |
| 119 voidpf stream; | 96 if ((filename!=NULL) && (dwDesiredAccess != 0)) |
| 120 void* buf; | 97 hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL
, dwCreationDisposition, dwFlagsAndAttributes, NULL); |
| 121 uLong size; | 98 |
| 99 return win32_build_iowin(hFile); |
| 100 } |
| 101 |
| 102 |
| 103 voidpf ZCALLBACK win32_open64_file_funcA (voidpf opaque,const void* filename,int
mode) |
| 104 { |
| 105 const char* mode_fopen = NULL; |
| 106 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes
; |
| 107 HANDLE hFile = NULL; |
| 108 |
| 109 win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwSh
areMode,&dwFlagsAndAttributes); |
| 110 |
| 111 if ((filename!=NULL) && (dwDesiredAccess != 0)) |
| 112 hFile = CreateFileA((LPCSTR)filename, dwDesiredAccess, dwShareMode, NULL
, dwCreationDisposition, dwFlagsAndAttributes, NULL); |
| 113 |
| 114 return win32_build_iowin(hFile); |
| 115 } |
| 116 |
| 117 |
| 118 voidpf ZCALLBACK win32_open64_file_funcW (voidpf opaque,const void* filename,int
mode) |
| 119 { |
| 120 const char* mode_fopen = NULL; |
| 121 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes
; |
| 122 HANDLE hFile = NULL; |
| 123 |
| 124 win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwSh
areMode,&dwFlagsAndAttributes); |
| 125 |
| 126 if ((filename!=NULL) && (dwDesiredAccess != 0)) |
| 127 hFile = CreateFileW((LPCWSTR)filename, dwDesiredAccess, dwShareMode, NUL
L, dwCreationDisposition, dwFlagsAndAttributes, NULL); |
| 128 |
| 129 return win32_build_iowin(hFile); |
| 130 } |
| 131 |
| 132 |
| 133 voidpf ZCALLBACK win32_open_file_func (voidpf opaque,const char* filename,int mo
de) |
| 134 { |
| 135 const char* mode_fopen = NULL; |
| 136 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes
; |
| 137 HANDLE hFile = NULL; |
| 138 |
| 139 win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwSh
areMode,&dwFlagsAndAttributes); |
| 140 |
| 141 if ((filename!=NULL) && (dwDesiredAccess != 0)) |
| 142 hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL
, dwCreationDisposition, dwFlagsAndAttributes, NULL); |
| 143 |
| 144 return win32_build_iowin(hFile); |
| 145 } |
| 146 |
| 147 |
| 148 uLong ZCALLBACK win32_read_file_func (voidpf opaque, voidpf stream, void* buf,uL
ong size) |
| 122 { | 149 { |
| 123 uLong ret=0; | 150 uLong ret=0; |
| 124 HANDLE hFile = NULL; | 151 HANDLE hFile = NULL; |
| 125 if (stream!=NULL) | 152 if (stream!=NULL) |
| 126 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; | 153 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; |
| 154 |
| 127 if (hFile != NULL) | 155 if (hFile != NULL) |
| 156 { |
| 128 if (!ReadFile(hFile, buf, size, &ret, NULL)) | 157 if (!ReadFile(hFile, buf, size, &ret, NULL)) |
| 129 { | 158 { |
| 130 DWORD dwErr = GetLastError(); | 159 DWORD dwErr = GetLastError(); |
| 131 if (dwErr == ERROR_HANDLE_EOF) | 160 if (dwErr == ERROR_HANDLE_EOF) |
| 132 dwErr = 0; | 161 dwErr = 0; |
| 133 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; | 162 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |
| 134 } | 163 } |
| 164 } |
| 135 | 165 |
| 136 return ret; | 166 return ret; |
| 137 } | 167 } |
| 138 | 168 |
| 139 | 169 |
| 140 uLong ZCALLBACK win32_write_file_func (opaque, stream, buf, size) | 170 uLong ZCALLBACK win32_write_file_func (voidpf opaque,voidpf stream,const void* b
uf,uLong size) |
| 141 voidpf opaque; | |
| 142 voidpf stream; | |
| 143 const void* buf; | |
| 144 uLong size; | |
| 145 { | 171 { |
| 146 uLong ret=0; | 172 uLong ret=0; |
| 147 HANDLE hFile = NULL; | 173 HANDLE hFile = NULL; |
| 148 if (stream!=NULL) | 174 if (stream!=NULL) |
| 149 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; | 175 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; |
| 150 | 176 |
| 151 if (hFile !=NULL) | 177 if (hFile != NULL) |
| 178 { |
| 152 if (!WriteFile(hFile, buf, size, &ret, NULL)) | 179 if (!WriteFile(hFile, buf, size, &ret, NULL)) |
| 153 { | 180 { |
| 154 DWORD dwErr = GetLastError(); | 181 DWORD dwErr = GetLastError(); |
| 155 if (dwErr == ERROR_HANDLE_EOF) | 182 if (dwErr == ERROR_HANDLE_EOF) |
| 156 dwErr = 0; | 183 dwErr = 0; |
| 157 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; | 184 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |
| 158 } | 185 } |
| 186 } |
| 159 | 187 |
| 160 return ret; | 188 return ret; |
| 161 } | 189 } |
| 162 | 190 |
| 163 long ZCALLBACK win32_tell_file_func (opaque, stream) | 191 long ZCALLBACK win32_tell_file_func (voidpf opaque,voidpf stream) |
| 164 voidpf opaque; | |
| 165 voidpf stream; | |
| 166 { | 192 { |
| 167 long ret=-1; | 193 long ret=-1; |
| 168 HANDLE hFile = NULL; | 194 HANDLE hFile = NULL; |
| 169 if (stream!=NULL) | 195 if (stream!=NULL) |
| 170 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; | 196 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; |
| 171 if (hFile != NULL) | 197 if (hFile != NULL) |
| 172 { | 198 { |
| 173 DWORD dwSet = SetFilePointer(hFile, 0, NULL, FILE_CURRENT); | 199 DWORD dwSet = SetFilePointer(hFile, 0, NULL, FILE_CURRENT); |
| 174 if (dwSet == INVALID_SET_FILE_POINTER) | 200 if (dwSet == INVALID_SET_FILE_POINTER) |
| 175 { | 201 { |
| 176 DWORD dwErr = GetLastError(); | 202 DWORD dwErr = GetLastError(); |
| 177 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; | 203 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |
| 178 ret = -1; | 204 ret = -1; |
| 179 } | 205 } |
| 180 else | 206 else |
| 181 ret=(long)dwSet; | 207 ret=(long)dwSet; |
| 182 } | 208 } |
| 183 return ret; | 209 return ret; |
| 184 } | 210 } |
| 185 | 211 |
| 186 long ZCALLBACK win32_seek_file_func (opaque, stream, offset, origin) | 212 ZPOS64_T ZCALLBACK win32_tell64_file_func (voidpf opaque, voidpf stream) |
| 187 voidpf opaque; | 213 { |
| 188 voidpf stream; | 214 ZPOS64_T ret= (ZPOS64_T)-1; |
| 189 uLong offset; | 215 HANDLE hFile = NULL; |
| 190 int origin; | 216 if (stream!=NULL) |
| 217 hFile = ((WIN32FILE_IOWIN*)stream)->hf; |
| 218 |
| 219 if (hFile) |
| 220 { |
| 221 LARGE_INTEGER li; |
| 222 li.QuadPart = 0; |
| 223 li.u.LowPart = SetFilePointer(hFile, li.u.LowPart, &li.u.HighPart, FILE_
CURRENT); |
| 224 if ( (li.LowPart == 0xFFFFFFFF) && (GetLastError() != NO_ERROR)) |
| 225 { |
| 226 DWORD dwErr = GetLastError(); |
| 227 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |
| 228 ret = (ZPOS64_T)-1; |
| 229 } |
| 230 else |
| 231 ret=li.QuadPart; |
| 232 } |
| 233 return ret; |
| 234 } |
| 235 |
| 236 |
| 237 long ZCALLBACK win32_seek_file_func (voidpf opaque,voidpf stream,uLong offset,in
t origin) |
| 191 { | 238 { |
| 192 DWORD dwMoveMethod=0xFFFFFFFF; | 239 DWORD dwMoveMethod=0xFFFFFFFF; |
| 193 HANDLE hFile = NULL; | 240 HANDLE hFile = NULL; |
| 194 | 241 |
| 195 long ret=-1; | 242 long ret=-1; |
| 196 if (stream!=NULL) | 243 if (stream!=NULL) |
| 197 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; | 244 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; |
| 198 switch (origin) | 245 switch (origin) |
| 199 { | 246 { |
| 200 case ZLIB_FILEFUNC_SEEK_CUR : | 247 case ZLIB_FILEFUNC_SEEK_CUR : |
| (...skipping 16 matching lines...) Expand all Loading... |
| 217 DWORD dwErr = GetLastError(); | 264 DWORD dwErr = GetLastError(); |
| 218 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; | 265 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |
| 219 ret = -1; | 266 ret = -1; |
| 220 } | 267 } |
| 221 else | 268 else |
| 222 ret=0; | 269 ret=0; |
| 223 } | 270 } |
| 224 return ret; | 271 return ret; |
| 225 } | 272 } |
| 226 | 273 |
| 227 int ZCALLBACK win32_close_file_func (opaque, stream) | 274 long ZCALLBACK win32_seek64_file_func (voidpf opaque, voidpf stream,ZPOS64_T off
set,int origin) |
| 228 voidpf opaque; | 275 { |
| 229 voidpf stream; | 276 DWORD dwMoveMethod=0xFFFFFFFF; |
| 277 HANDLE hFile = NULL; |
| 278 long ret=-1; |
| 279 |
| 280 if (stream!=NULL) |
| 281 hFile = ((WIN32FILE_IOWIN*)stream)->hf; |
| 282 |
| 283 switch (origin) |
| 284 { |
| 285 case ZLIB_FILEFUNC_SEEK_CUR : |
| 286 dwMoveMethod = FILE_CURRENT; |
| 287 break; |
| 288 case ZLIB_FILEFUNC_SEEK_END : |
| 289 dwMoveMethod = FILE_END; |
| 290 break; |
| 291 case ZLIB_FILEFUNC_SEEK_SET : |
| 292 dwMoveMethod = FILE_BEGIN; |
| 293 break; |
| 294 default: return -1; |
| 295 } |
| 296 |
| 297 if (hFile) |
| 298 { |
| 299 LARGE_INTEGER* li = (LARGE_INTEGER*)&offset; |
| 300 DWORD dwSet = SetFilePointer(hFile, li->u.LowPart, &li->u.HighPart, dwMo
veMethod); |
| 301 if (dwSet == INVALID_SET_FILE_POINTER) |
| 302 { |
| 303 DWORD dwErr = GetLastError(); |
| 304 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr; |
| 305 ret = -1; |
| 306 } |
| 307 else |
| 308 ret=0; |
| 309 } |
| 310 return ret; |
| 311 } |
| 312 |
| 313 int ZCALLBACK win32_close_file_func (voidpf opaque, voidpf stream) |
| 230 { | 314 { |
| 231 int ret=-1; | 315 int ret=-1; |
| 232 | 316 |
| 233 if (stream!=NULL) | 317 if (stream!=NULL) |
| 234 { | 318 { |
| 235 HANDLE hFile; | 319 HANDLE hFile; |
| 236 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; | 320 hFile = ((WIN32FILE_IOWIN*)stream) -> hf; |
| 237 if (hFile != NULL) | 321 if (hFile != NULL) |
| 238 { | 322 { |
| 239 CloseHandle(hFile); | 323 CloseHandle(hFile); |
| 240 ret=0; | 324 ret=0; |
| 241 } | 325 } |
| 242 free(stream); | 326 free(stream); |
| 243 } | 327 } |
| 244 return ret; | 328 return ret; |
| 245 } | 329 } |
| 246 | 330 |
| 247 int ZCALLBACK win32_error_file_func (opaque, stream) | 331 int ZCALLBACK win32_error_file_func (voidpf opaque,voidpf stream) |
| 248 voidpf opaque; | |
| 249 voidpf stream; | |
| 250 { | 332 { |
| 251 int ret=-1; | 333 int ret=-1; |
| 252 if (stream!=NULL) | 334 if (stream!=NULL) |
| 253 { | 335 { |
| 254 ret = ((WIN32FILE_IOWIN*)stream) -> error; | 336 ret = ((WIN32FILE_IOWIN*)stream) -> error; |
| 255 } | 337 } |
| 256 return ret; | 338 return ret; |
| 257 } | 339 } |
| 258 | 340 |
| 259 void fill_win32_filefunc (pzlib_filefunc_def) | 341 void fill_win32_filefunc (zlib_filefunc_def* pzlib_filefunc_def) |
| 260 zlib_filefunc_def* pzlib_filefunc_def; | |
| 261 { | 342 { |
| 262 pzlib_filefunc_def->zopen_file = win32_open_file_func; | 343 pzlib_filefunc_def->zopen_file = win32_open_file_func; |
| 263 pzlib_filefunc_def->zread_file = win32_read_file_func; | 344 pzlib_filefunc_def->zread_file = win32_read_file_func; |
| 264 pzlib_filefunc_def->zwrite_file = win32_write_file_func; | 345 pzlib_filefunc_def->zwrite_file = win32_write_file_func; |
| 265 pzlib_filefunc_def->ztell_file = win32_tell_file_func; | 346 pzlib_filefunc_def->ztell_file = win32_tell_file_func; |
| 266 pzlib_filefunc_def->zseek_file = win32_seek_file_func; | 347 pzlib_filefunc_def->zseek_file = win32_seek_file_func; |
| 267 pzlib_filefunc_def->zclose_file = win32_close_file_func; | 348 pzlib_filefunc_def->zclose_file = win32_close_file_func; |
| 268 pzlib_filefunc_def->zerror_file = win32_error_file_func; | 349 pzlib_filefunc_def->zerror_file = win32_error_file_func; |
| 269 pzlib_filefunc_def->opaque=NULL; | 350 pzlib_filefunc_def->opaque = NULL; |
| 270 } | 351 } |
| 352 |
| 353 void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def) |
| 354 { |
| 355 pzlib_filefunc_def->zopen64_file = win32_open64_file_func; |
| 356 pzlib_filefunc_def->zread_file = win32_read_file_func; |
| 357 pzlib_filefunc_def->zwrite_file = win32_write_file_func; |
| 358 pzlib_filefunc_def->ztell64_file = win32_tell64_file_func; |
| 359 pzlib_filefunc_def->zseek64_file = win32_seek64_file_func; |
| 360 pzlib_filefunc_def->zclose_file = win32_close_file_func; |
| 361 pzlib_filefunc_def->zerror_file = win32_error_file_func; |
| 362 pzlib_filefunc_def->opaque = NULL; |
| 363 } |
| 364 |
| 365 |
| 366 void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def) |
| 367 { |
| 368 pzlib_filefunc_def->zopen64_file = win32_open64_file_funcA; |
| 369 pzlib_filefunc_def->zread_file = win32_read_file_func; |
| 370 pzlib_filefunc_def->zwrite_file = win32_write_file_func; |
| 371 pzlib_filefunc_def->ztell64_file = win32_tell64_file_func; |
| 372 pzlib_filefunc_def->zseek64_file = win32_seek64_file_func; |
| 373 pzlib_filefunc_def->zclose_file = win32_close_file_func; |
| 374 pzlib_filefunc_def->zerror_file = win32_error_file_func; |
| 375 pzlib_filefunc_def->opaque = NULL; |
| 376 } |
| 377 |
| 378 |
| 379 void fill_win32_filefunc64W(zlib_filefunc64_def* pzlib_filefunc_def) |
| 380 { |
| 381 pzlib_filefunc_def->zopen64_file = win32_open64_file_funcW; |
| 382 pzlib_filefunc_def->zread_file = win32_read_file_func; |
| 383 pzlib_filefunc_def->zwrite_file = win32_write_file_func; |
| 384 pzlib_filefunc_def->ztell64_file = win32_tell64_file_func; |
| 385 pzlib_filefunc_def->zseek64_file = win32_seek64_file_func; |
| 386 pzlib_filefunc_def->zclose_file = win32_close_file_func; |
| 387 pzlib_filefunc_def->zerror_file = win32_error_file_func; |
| 388 pzlib_filefunc_def->opaque = NULL; |
| 389 } |
| OLD | NEW |