1 /* 7zFile.h -- File IO
\r
2 2021-02-15 : Igor Pavlov : Public domain */
\r
8 #define USE_WINDOWS_FILE
\r
9 // #include <windows.h>
\r
12 #ifdef USE_WINDOWS_FILE
\r
13 #include <windows.h>
\r
15 // note: USE_FOPEN mode is limited to 32-bit file size
\r
16 // #define USE_FOPEN
\r
17 // #include <stdio.h>
\r
20 #include "7zTypes.h"
\r
24 /* ---------- File ---------- */
\r
28 #ifdef USE_WINDOWS_FILE
\r
30 #elif defined(USE_FOPEN)
\r
37 void File_Construct(CSzFile *p);
\r
38 #if !defined(UNDER_CE) || !defined(USE_WINDOWS_FILE)
\r
39 WRes InFile_Open(CSzFile *p, const char *name);
\r
40 WRes OutFile_Open(CSzFile *p, const char *name);
\r
42 #ifdef USE_WINDOWS_FILE
\r
43 WRes InFile_OpenW(CSzFile *p, const WCHAR *name);
\r
44 WRes OutFile_OpenW(CSzFile *p, const WCHAR *name);
\r
46 WRes File_Close(CSzFile *p);
\r
48 /* reads max(*size, remain file's size) bytes */
\r
49 WRes File_Read(CSzFile *p, void *data, size_t *size);
\r
51 /* writes *size bytes */
\r
52 WRes File_Write(CSzFile *p, const void *data, size_t *size);
\r
54 WRes File_Seek(CSzFile *p, Int64 *pos, ESzSeek origin);
\r
55 WRes File_GetLength(CSzFile *p, UInt64 *length);
\r
58 /* ---------- FileInStream ---------- */
\r
67 void FileSeqInStream_CreateVTable(CFileSeqInStream *p);
\r
77 void FileInStream_CreateVTable(CFileInStream *p);
\r
87 void FileOutStream_CreateVTable(CFileOutStream *p);
\r