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
,