iowin32.c revision 1b33c96954667ba382fa595baf7b31290bfdd517
/* iowin32.c -- IO base function header for compress/uncompress .zip
Version 1.1, February 14h, 2010
part of the MiniZip project - ( http://www.winimage.com/zLibDll/minizip.html )
Copyright (C) 1998-2010 Gilles Vollant (minizip) ( http://www.winimage.com/zLibDll/minizip.html )
Modifications for Zip64 support
Copyright (C) 2009-2010 Mathias Svensson ( http://result42.com )
For more info read MiniZip_info.txt
*/
#include <stdlib.h>
#include "zlib.h"
#include "ioapi.h"
#include "iowin32.h"
#ifndef INVALID_HANDLE_VALUE
#define INVALID_HANDLE_VALUE (0xFFFFFFFF)
#endif
#ifndef INVALID_SET_FILE_POINTER
#endif
uLong ZCALLBACK win32_write_file_func OF((voidpf opaque, voidpf stream, const void* buf, uLong size));
long ZCALLBACK win32_seek64_file_func OF((voidpf opaque, voidpf stream, ZPOS64_T offset, int origin));
typedef struct
{
int error;
static void win32_translate_open_mode(int mode,
{
{
}
else if (mode & ZLIB_FILEFUNC_MODE_EXISTING)
{
}
else if (mode & ZLIB_FILEFUNC_MODE_CREATE)
{
}
}
{
{
else
}
return ret;
}
{
const char* mode_fopen = NULL;
win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
return win32_build_iowin(hFile);
}
{
const char* mode_fopen = NULL;
win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
hFile = CreateFileA((LPCSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
return win32_build_iowin(hFile);
}
{
const char* mode_fopen = NULL;
win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
hFile = CreateFileW((LPCWSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
return win32_build_iowin(hFile);
}
{
const char* mode_fopen = NULL;
win32_translate_open_mode(mode,&dwDesiredAccess,&dwCreationDisposition,&dwShareMode,&dwFlagsAndAttributes);
hFile = CreateFile((LPCTSTR)filename, dwDesiredAccess, dwShareMode, NULL, dwCreationDisposition, dwFlagsAndAttributes, NULL);
return win32_build_iowin(hFile);
}
{
{
{
if (dwErr == ERROR_HANDLE_EOF)
dwErr = 0;
}
}
return ret;
}
{
{
{
if (dwErr == ERROR_HANDLE_EOF)
dwErr = 0;
}
}
return ret;
}
{
long ret=-1;
{
if (dwSet == INVALID_SET_FILE_POINTER)
{
ret = -1;
}
else
}
return ret;
}
{
if (hFile)
{
{
}
else
}
return ret;
}
{
long ret=-1;
switch (origin)
{
case ZLIB_FILEFUNC_SEEK_CUR :
break;
case ZLIB_FILEFUNC_SEEK_END :
break;
case ZLIB_FILEFUNC_SEEK_SET :
break;
default: return -1;
}
{
if (dwSet == INVALID_SET_FILE_POINTER)
{
ret = -1;
}
else
ret=0;
}
return ret;
}
{
long ret=-1;
switch (origin)
{
case ZLIB_FILEFUNC_SEEK_CUR :
break;
case ZLIB_FILEFUNC_SEEK_END :
break;
case ZLIB_FILEFUNC_SEEK_SET :
break;
default: return -1;
}
if (hFile)
{
if (dwSet == INVALID_SET_FILE_POINTER)
{
ret = -1;
}
else
ret=0;
}
return ret;
}
{
int ret=-1;
{
{
ret=0;
}
}
return ret;
}
{
int ret=-1;
{
}
return ret;
}
{
}
{
}
{
}
{
}