annotate src/zlib-1.2.8/contrib/minizip/iowin32.c @ 79:91c729825bca pa_catalina

Update build for AUDIO_COMPONENT_FIX
author Chris Cannam
date Wed, 30 Oct 2019 12:40:34 +0000
parents 5ea0608b923f
children
rev   line source
Chris@43 1 /* iowin32.c -- IO base function header for compress/uncompress .zip
Chris@43 2 Version 1.1, February 14h, 2010
Chris@43 3 part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
Chris@43 4
Chris@43 5 Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
Chris@43 6
Chris@43 7 Modifications for Zip64 support
Chris@43 8 Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
Chris@43 9
Chris@43 10 For more info read MiniZip_info.txt
Chris@43 11
Chris@43 12 */
Chris@43 13
Chris@43 14 #include <stdlib.h>
Chris@43 15
Chris@43 16 #include "zlib.h"
Chris@43 17 #include "ioapi.h"
Chris@43 18 #include "iowin32.h"
Chris@43 19
Chris@43 20 #ifndef INVALID_HANDLE_VALUE
Chris@43 21 #define INVALID_HANDLE_VALUE (0xFFFFFFFF)
Chris@43 22 #endif
Chris@43 23
Chris@43 24 #ifndef INVALID_SET_FILE_POINTER
Chris@43 25 #define INVALID_SET_FILE_POINTER ((DWORD)-1)
Chris@43 26 #endif
Chris@43 27
Chris@43 28
Chris@43 29 #if defined(WINAPI_FAMILY_PARTITION) && (!(defined(IOWIN32_USING_WINRT_API)))
Chris@43 30 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
Chris@43 31 #define IOWIN32_USING_WINRT_API 1
Chris@43 32 #endif
Chris@43 33 #endif
Chris@43 34
Chris@43 35 voidpf ZCALLBACK win32_open_file_func OF((voidpf opaque, const char* filename, int mode));
Chris@43 36 uLong ZCALLBACK win32_read_file_func OF((voidpf opaque, voidpf stream, void* buf, uLong size));
Chris@43 37 uLong ZCALLBACK win32_write_file_func OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
Chris@43 38 ZPOS64_T ZCALLBACK win32_tell64_file_func OF((voidpf opaque, voidpf stream));
Chris@43 39 long ZCALLBACK win32_seek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin));
Chris@43 40 int ZCALLBACK win32_close_file_func OF((voidpf opaque, voidpf stream));
Chris@43 41 int ZCALLBACK win32_error_file_func OF((voidpf opaque, voidpf stream));
Chris@43 42
Chris@43 43 typedef struct
Chris@43 44 {
Chris@43 45 HANDLE hf;
Chris@43 46 int error;
Chris@43 47 } WIN32FILE_IOWIN;
Chris@43 48
Chris@43 49
Chris@43 50 static void win32_translate_open_mode(int mode,
Chris@43 51 DWORD* lpdwDesiredAccess,
Chris@43 52 DWORD* lpdwCreationDisposition,
Chris@43 53 DWORD* lpdwShareMode,
Chris@43 54 DWORD* lpdwFlagsAndAttributes)
Chris@43 55 {
Chris@43 56 *lpdwDesiredAccess = *lpdwShareMode = *lpdwFlagsAndAttributes = *lpdwCreationDisposition = 0;
Chris@43 57
Chris@43 58 if ((mode & ZLIB_FILEFUNC_MODE_READWRITEFILTER)==ZLIB_FILEFUNC_MODE_READ)
Chris@43 59 {
Chris@43 60 *lpdwDesiredAccess = GENERIC_READ;
Chris@43 61 *lpdwCreationDisposition = OPEN_EXISTING;
Chris@43 62 *lpdwShareMode = FILE_SHARE_READ;
Chris@43 63 }
Chris@43 64 else if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
Chris@43 65 {
Chris@43 66 *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ;
Chris@43 67 *lpdwCreationDisposition = OPEN_EXISTING;
Chris@43 68 }
Chris@43 69 else if (mode & ZLIB_FILEFUNC_MODE_CREATE)
Chris@43 70 {
Chris@43 71 *lpdwDesiredAccess = GENERIC_WRITE | GENERIC_READ;
Chris@43 72 *lpdwCreationDisposition = CREATE_ALWAYS;
Chris@43 73 }
Chris@43 74 }
Chris@43 75
Chris@43 76 static voidpf win32_build_iowin(HANDLE hFile)
Chris@43 77 {
Chris@43 78 voidpf ret=NULL;
Chris@43 79
Chris@43 80 if ((hFile != NULL) && (hFile != INVALID_HANDLE_VALUE))
Chris@43 81 {
Chris@43 82 WIN32FILE_IOWIN w32fiow;
Chris@43 83 w32fiow.hf = hFile;
Chris@43 84 w32fiow.error = 0;
Chris@43 85 ret = malloc(sizeof(WIN32FILE_IOWIN));
Chris@43 86
Chris@43 87 if (ret==NULL)
Chris@43 88 CloseHandle(hFile);
Chris@43 89 else
Chris@43 90 *((WIN32FILE_IOWIN*)ret) = w32fiow;
Chris@43 91 }
Chris@43 92 return ret;
Chris@43 93 }
Chris@43 94
Chris@43 95 voidpf ZCALLBACK win32_open64_file_func (voidpf opaque,const void* filename,int mode)
Chris@43 96 {
Chris@43 97 const char* mode_fopen = NULL;
Chris@43 98 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
Chris@43 99 HANDLE hFile = NULL;
Chris@43 100
Chris@43 101 win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
Chris@43 102
Chris@43 103 #ifdef IOWIN32_USING_WINRT_API
Chris@43 104 #ifdef UNICODE
Chris@43 105 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 106 hFile = CreateFile2((LPCTSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
Chris@43 107 #else
Chris@43 108 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 109 {
Chris@43 110 WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
Chris@43 111 MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200);
Chris@43 112 hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
Chris@43 113 }
Chris@43 114 #endif
Chris@43 115 #else
Chris@43 116 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 117 hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
Chris@43 118 #endif
Chris@43 119
Chris@43 120 return win32_build_iowin(hFile);
Chris@43 121 }
Chris@43 122
Chris@43 123
Chris@43 124 voidpf ZCALLBACK win32_open64_file_funcA (voidpf opaque,const void* filename,int mode)
Chris@43 125 {
Chris@43 126 const char* mode_fopen = NULL;
Chris@43 127 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
Chris@43 128 HANDLE hFile = NULL;
Chris@43 129
Chris@43 130 win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
Chris@43 131
Chris@43 132 #ifdef IOWIN32_USING_WINRT_API
Chris@43 133 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 134 {
Chris@43 135 WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
Chris@43 136 MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200);
Chris@43 137 hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
Chris@43 138 }
Chris@43 139 #else
Chris@43 140 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 141 hFile = CreateFileA((LPCSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
Chris@43 142 #endif
Chris@43 143
Chris@43 144 return win32_build_iowin(hFile);
Chris@43 145 }
Chris@43 146
Chris@43 147
Chris@43 148 voidpf ZCALLBACK win32_open64_file_funcW (voidpf opaque,const void* filename,int mode)
Chris@43 149 {
Chris@43 150 const char* mode_fopen = NULL;
Chris@43 151 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
Chris@43 152 HANDLE hFile = NULL;
Chris@43 153
Chris@43 154 win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
Chris@43 155
Chris@43 156 #ifdef IOWIN32_USING_WINRT_API
Chris@43 157 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 158 hFile = CreateFile2((LPCWSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition,NULL);
Chris@43 159 #else
Chris@43 160 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 161 hFile = CreateFileW((LPCWSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
Chris@43 162 #endif
Chris@43 163
Chris@43 164 return win32_build_iowin(hFile);
Chris@43 165 }
Chris@43 166
Chris@43 167
Chris@43 168 voidpf ZCALLBACK win32_open_file_func (voidpf opaque,const char* filename,int mode)
Chris@43 169 {
Chris@43 170 const char* mode_fopen = NULL;
Chris@43 171 DWORD dwDesiredAccess,dwCreationDisposition,dwShareMode,dwFlagsAndAttributes ;
Chris@43 172 HANDLE hFile = NULL;
Chris@43 173
Chris@43 174 win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
Chris@43 175
Chris@43 176 #ifdef IOWIN32_USING_WINRT_API
Chris@43 177 #ifdef UNICODE
Chris@43 178 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 179 hFile = CreateFile2((LPCTSTR)filename, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
Chris@43 180 #else
Chris@43 181 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 182 {
Chris@43 183 WCHAR filenameW[FILENAME_MAX + 0x200 + 1];
Chris@43 184 MultiByteToWideChar(CP_ACP,0,(const char*)filename,-1,filenameW,FILENAME_MAX + 0x200);
Chris@43 185 hFile = CreateFile2(filenameW, dwDesiredAccess, dwShareMode, dwCreationDisposition, NULL);
Chris@43 186 }
Chris@43 187 #endif
Chris@43 188 #else
Chris@43 189 if ((filename!=NULL) && (dwDesiredAccess != 0))
Chris@43 190 hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
Chris@43 191 #endif
Chris@43 192
Chris@43 193 return win32_build_iowin(hFile);
Chris@43 194 }
Chris@43 195
Chris@43 196
Chris@43 197 uLong ZCALLBACK win32_read_file_func (voidpf opaque, voidpf stream, void* buf,uLong size)
Chris@43 198 {
Chris@43 199 uLong ret=0;
Chris@43 200 HANDLE hFile = NULL;
Chris@43 201 if (stream!=NULL)
Chris@43 202 hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
Chris@43 203
Chris@43 204 if (hFile != NULL)
Chris@43 205 {
Chris@43 206 if (!ReadFile(hFile, buf, size, &ret, NULL))
Chris@43 207 {
Chris@43 208 DWORD dwErr = GetLastError();
Chris@43 209 if (dwErr == ERROR_HANDLE_EOF)
Chris@43 210 dwErr = 0;
Chris@43 211 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
Chris@43 212 }
Chris@43 213 }
Chris@43 214
Chris@43 215 return ret;
Chris@43 216 }
Chris@43 217
Chris@43 218
Chris@43 219 uLong ZCALLBACK win32_write_file_func (voidpf opaque,voidpf stream,const void* buf,uLong size)
Chris@43 220 {
Chris@43 221 uLong ret=0;
Chris@43 222 HANDLE hFile = NULL;
Chris@43 223 if (stream!=NULL)
Chris@43 224 hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
Chris@43 225
Chris@43 226 if (hFile != NULL)
Chris@43 227 {
Chris@43 228 if (!WriteFile(hFile, buf, size, &ret, NULL))
Chris@43 229 {
Chris@43 230 DWORD dwErr = GetLastError();
Chris@43 231 if (dwErr == ERROR_HANDLE_EOF)
Chris@43 232 dwErr = 0;
Chris@43 233 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
Chris@43 234 }
Chris@43 235 }
Chris@43 236
Chris@43 237 return ret;
Chris@43 238 }
Chris@43 239
Chris@43 240 static BOOL MySetFilePointerEx(HANDLE hFile, LARGE_INTEGER pos, LARGE_INTEGER *newPos, DWORD dwMoveMethod)
Chris@43 241 {
Chris@43 242 #ifdef IOWIN32_USING_WINRT_API
Chris@43 243 return SetFilePointerEx(hFile, pos, newPos, dwMoveMethod);
Chris@43 244 #else
Chris@43 245 LONG lHigh = pos.HighPart;
Chris@43 246 DWORD dwNewPos = SetFilePointer(hFile, pos.LowPart, &lHigh, FILE_CURRENT);
Chris@43 247 BOOL fOk = TRUE;
Chris@43 248 if (dwNewPos == 0xFFFFFFFF)
Chris@43 249 if (GetLastError() != NO_ERROR)
Chris@43 250 fOk = FALSE;
Chris@43 251 if ((newPos != NULL) && (fOk))
Chris@43 252 {
Chris@43 253 newPos->LowPart = dwNewPos;
Chris@43 254 newPos->HighPart = lHigh;
Chris@43 255 }
Chris@43 256 return fOk;
Chris@43 257 #endif
Chris@43 258 }
Chris@43 259
Chris@43 260 long ZCALLBACK win32_tell_file_func (voidpf opaque,voidpf stream)
Chris@43 261 {
Chris@43 262 long ret=-1;
Chris@43 263 HANDLE hFile = NULL;
Chris@43 264 if (stream!=NULL)
Chris@43 265 hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
Chris@43 266 if (hFile != NULL)
Chris@43 267 {
Chris@43 268 LARGE_INTEGER pos;
Chris@43 269 pos.QuadPart = 0;
Chris@43 270
Chris@43 271 if (!MySetFilePointerEx(hFile, pos, &pos, FILE_CURRENT))
Chris@43 272 {
Chris@43 273 DWORD dwErr = GetLastError();
Chris@43 274 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
Chris@43 275 ret = -1;
Chris@43 276 }
Chris@43 277 else
Chris@43 278 ret=(long)pos.LowPart;
Chris@43 279 }
Chris@43 280 return ret;
Chris@43 281 }
Chris@43 282
Chris@43 283 ZPOS64_T ZCALLBACK win32_tell64_file_func (voidpf opaque, voidpf stream)
Chris@43 284 {
Chris@43 285 ZPOS64_T ret= (ZPOS64_T)-1;
Chris@43 286 HANDLE hFile = NULL;
Chris@43 287 if (stream!=NULL)
Chris@43 288 hFile = ((WIN32FILE_IOWIN*)stream)->hf;
Chris@43 289
Chris@43 290 if (hFile)
Chris@43 291 {
Chris@43 292 LARGE_INTEGER pos;
Chris@43 293 pos.QuadPart = 0;
Chris@43 294
Chris@43 295 if (!MySetFilePointerEx(hFile, pos, &pos, FILE_CURRENT))
Chris@43 296 {
Chris@43 297 DWORD dwErr = GetLastError();
Chris@43 298 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
Chris@43 299 ret = (ZPOS64_T)-1;
Chris@43 300 }
Chris@43 301 else
Chris@43 302 ret=pos.QuadPart;
Chris@43 303 }
Chris@43 304 return ret;
Chris@43 305 }
Chris@43 306
Chris@43 307
Chris@43 308 long ZCALLBACK win32_seek_file_func (voidpf opaque,voidpf stream,uLong offset,int origin)
Chris@43 309 {
Chris@43 310 DWORD dwMoveMethod=0xFFFFFFFF;
Chris@43 311 HANDLE hFile = NULL;
Chris@43 312
Chris@43 313 long ret=-1;
Chris@43 314 if (stream!=NULL)
Chris@43 315 hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
Chris@43 316 switch (origin)
Chris@43 317 {
Chris@43 318 case ZLIB_FILEFUNC_SEEK_CUR :
Chris@43 319 dwMoveMethod = FILE_CURRENT;
Chris@43 320 break;
Chris@43 321 case ZLIB_FILEFUNC_SEEK_END :
Chris@43 322 dwMoveMethod = FILE_END;
Chris@43 323 break;
Chris@43 324 case ZLIB_FILEFUNC_SEEK_SET :
Chris@43 325 dwMoveMethod = FILE_BEGIN;
Chris@43 326 break;
Chris@43 327 default: return -1;
Chris@43 328 }
Chris@43 329
Chris@43 330 if (hFile != NULL)
Chris@43 331 {
Chris@43 332 LARGE_INTEGER pos;
Chris@43 333 pos.QuadPart = offset;
Chris@43 334 if (!MySetFilePointerEx(hFile, pos, NULL, dwMoveMethod))
Chris@43 335 {
Chris@43 336 DWORD dwErr = GetLastError();
Chris@43 337 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
Chris@43 338 ret = -1;
Chris@43 339 }
Chris@43 340 else
Chris@43 341 ret=0;
Chris@43 342 }
Chris@43 343 return ret;
Chris@43 344 }
Chris@43 345
Chris@43 346 long ZCALLBACK win32_seek64_file_func (voidpf opaque, voidpf stream,ZPOS64_T offset,int origin)
Chris@43 347 {
Chris@43 348 DWORD dwMoveMethod=0xFFFFFFFF;
Chris@43 349 HANDLE hFile = NULL;
Chris@43 350 long ret=-1;
Chris@43 351
Chris@43 352 if (stream!=NULL)
Chris@43 353 hFile = ((WIN32FILE_IOWIN*)stream)->hf;
Chris@43 354
Chris@43 355 switch (origin)
Chris@43 356 {
Chris@43 357 case ZLIB_FILEFUNC_SEEK_CUR :
Chris@43 358 dwMoveMethod = FILE_CURRENT;
Chris@43 359 break;
Chris@43 360 case ZLIB_FILEFUNC_SEEK_END :
Chris@43 361 dwMoveMethod = FILE_END;
Chris@43 362 break;
Chris@43 363 case ZLIB_FILEFUNC_SEEK_SET :
Chris@43 364 dwMoveMethod = FILE_BEGIN;
Chris@43 365 break;
Chris@43 366 default: return -1;
Chris@43 367 }
Chris@43 368
Chris@43 369 if (hFile)
Chris@43 370 {
Chris@43 371 LARGE_INTEGER pos;
Chris@43 372 pos.QuadPart = offset;
Chris@43 373 if (!MySetFilePointerEx(hFile, pos, NULL, FILE_CURRENT))
Chris@43 374 {
Chris@43 375 DWORD dwErr = GetLastError();
Chris@43 376 ((WIN32FILE_IOWIN*)stream) -> error=(int)dwErr;
Chris@43 377 ret = -1;
Chris@43 378 }
Chris@43 379 else
Chris@43 380 ret=0;
Chris@43 381 }
Chris@43 382 return ret;
Chris@43 383 }
Chris@43 384
Chris@43 385 int ZCALLBACK win32_close_file_func (voidpf opaque, voidpf stream)
Chris@43 386 {
Chris@43 387 int ret=-1;
Chris@43 388
Chris@43 389 if (stream!=NULL)
Chris@43 390 {
Chris@43 391 HANDLE hFile;
Chris@43 392 hFile = ((WIN32FILE_IOWIN*)stream) -> hf;
Chris@43 393 if (hFile != NULL)
Chris@43 394 {
Chris@43 395 CloseHandle(hFile);
Chris@43 396 ret=0;
Chris@43 397 }
Chris@43 398 free(stream);
Chris@43 399 }
Chris@43 400 return ret;
Chris@43 401 }
Chris@43 402
Chris@43 403 int ZCALLBACK win32_error_file_func (voidpf opaque,voidpf stream)
Chris@43 404 {
Chris@43 405 int ret=-1;
Chris@43 406 if (stream!=NULL)
Chris@43 407 {
Chris@43 408 ret = ((WIN32FILE_IOWIN*)stream) -> error;
Chris@43 409 }
Chris@43 410 return ret;
Chris@43 411 }
Chris@43 412
Chris@43 413 void fill_win32_filefunc (zlib_filefunc_def* pzlib_filefunc_def)
Chris@43 414 {
Chris@43 415 pzlib_filefunc_def->zopen_file = win32_open_file_func;
Chris@43 416 pzlib_filefunc_def->zread_file = win32_read_file_func;
Chris@43 417 pzlib_filefunc_def->zwrite_file = win32_write_file_func;
Chris@43 418 pzlib_filefunc_def->ztell_file = win32_tell_file_func;
Chris@43 419 pzlib_filefunc_def->zseek_file = win32_seek_file_func;
Chris@43 420 pzlib_filefunc_def->zclose_file = win32_close_file_func;
Chris@43 421 pzlib_filefunc_def->zerror_file = win32_error_file_func;
Chris@43 422 pzlib_filefunc_def->opaque = NULL;
Chris@43 423 }
Chris@43 424
Chris@43 425 void fill_win32_filefunc64(zlib_filefunc64_def* pzlib_filefunc_def)
Chris@43 426 {
Chris@43 427 pzlib_filefunc_def->zopen64_file = win32_open64_file_func;
Chris@43 428 pzlib_filefunc_def->zread_file = win32_read_file_func;
Chris@43 429 pzlib_filefunc_def->zwrite_file = win32_write_file_func;
Chris@43 430 pzlib_filefunc_def->ztell64_file = win32_tell64_file_func;
Chris@43 431 pzlib_filefunc_def->zseek64_file = win32_seek64_file_func;
Chris@43 432 pzlib_filefunc_def->zclose_file = win32_close_file_func;
Chris@43 433 pzlib_filefunc_def->zerror_file = win32_error_file_func;
Chris@43 434 pzlib_filefunc_def->opaque = NULL;
Chris@43 435 }
Chris@43 436
Chris@43 437
Chris@43 438 void fill_win32_filefunc64A(zlib_filefunc64_def* pzlib_filefunc_def)
Chris@43 439 {
Chris@43 440 pzlib_filefunc_def->zopen64_file = win32_open64_file_funcA;
Chris@43 441 pzlib_filefunc_def->zread_file = win32_read_file_func;
Chris@43 442 pzlib_filefunc_def->zwrite_file = win32_write_file_func;
Chris@43 443 pzlib_filefunc_def->ztell64_file = win32_tell64_file_func;
Chris@43 444 pzlib_filefunc_def->zseek64_file = win32_seek64_file_func;
Chris@43 445 pzlib_filefunc_def->zclose_file = win32_close_file_func;
Chris@43 446 pzlib_filefunc_def->zerror_file = win32_error_file_func;
Chris@43 447 pzlib_filefunc_def->opaque = NULL;
Chris@43 448 }
Chris@43 449
Chris@43 450
Chris@43 451 void fill_win32_filefunc64W(zlib_filefunc64_def* pzlib_filefunc_def)
Chris@43 452 {
Chris@43 453 pzlib_filefunc_def->zopen64_file = win32_open64_file_funcW;
Chris@43 454 pzlib_filefunc_def->zread_file = win32_read_file_func;
Chris@43 455 pzlib_filefunc_def->zwrite_file = win32_write_file_func;
Chris@43 456 pzlib_filefunc_def->ztell64_file = win32_tell64_file_func;
Chris@43 457 pzlib_filefunc_def->zseek64_file = win32_seek64_file_func;
Chris@43 458 pzlib_filefunc_def->zclose_file = win32_close_file_func;
Chris@43 459 pzlib_filefunc_def->zerror_file = win32_error_file_func;
Chris@43 460 pzlib_filefunc_def->opaque = NULL;
Chris@43 461 }