10 typedef struct _CInArchiveInfo
12 CFileSize StartPositionAfterHeader;
13 CFileSize DataStartPosition;
16 typedef struct _CArchiveDatabaseEx
18 CArchiveDatabase Database;
19 CInArchiveInfo ArchiveInfo;
20 UInt32 *FolderStartPackStreamIndex;
21 CFileSize *PackStreamStartPositions;
22 UInt32 *FolderStartFileIndex;
23 UInt32 *FileIndexToFolderIndexMap;
26 void SzArDbExInit(CArchiveDatabaseEx *db);
27 void SzArDbExFree(CArchiveDatabaseEx *db, void (*freeFunc)(void *));
28 CFileSize SzArDbGetFolderStreamPos(CArchiveDatabaseEx *db, UInt32 folderIndex, UInt32 indexInFolder);
29 CFileSize SzArDbGetFolderFullPackSize(CArchiveDatabaseEx *db, UInt32 folderIndex);
31 typedef struct _ISzInStream
35 void *object, /* pointer to ISzInStream itself */
36 void **buffer, /* out: pointer to buffer with data */
37 size_t maxRequiredSize, /* max required size to read */
38 size_t *processedSize); /* real processed size.
39 processedSize can be less than maxRequiredSize.
40 If processedSize == 0, then there are no more
43 SZ_RESULT (*Read)(void *object, void *buffer, size_t size, size_t *processedSize);
45 SZ_RESULT (*Seek)(void *object, CFileSize pos);
50 ISzInStream *inStream,
51 CArchiveDatabaseEx *db,