1 #ifndef _ZIPDEFS_H_ 2 #define _ZIPDEFS_H_ 3 4 #include "Types.h" 5 6 namespace Framework 7 { 8 namespace Zip 9 { 10 enum FILEHEADER_SIG 11 { 12 FILEHEADER_SIG = 0x04034B50, 13 }; 14 15 enum DIRFILEHEADER_SIG 16 { 17 DIRFILEHEADER_SIG = 0x02014B50, 18 }; 19 20 enum DIRENDHEADER_SIG 21 { 22 DIRENDHEADER_SIG = 0x06054B50, 23 }; 24 25 #pragma pack(push, 1) 26 struct ZIPFILEHEADER 27 { 28 uint32 signature; 29 uint16 versionNeeded; 30 uint16 flags; 31 uint16 compressionMethod; 32 uint16 fileTime; 33 uint16 fileDate; 34 uint32 crc; 35 uint32 compressedSize; 36 uint32 uncompressedSize; 37 uint16 fileNameLength; 38 uint16 extraFieldLength; 39 }; 40 41 struct ZIPDIRFILEHEADER 42 { 43 uint32 signature; 44 uint16 versionMadeBy; 45 uint16 versionNeeded; 46 uint16 flags; 47 uint16 compressionMethod; 48 uint16 fileTime; 49 uint16 fileDate; 50 uint32 crc; 51 uint32 compressedSize; 52 uint32 uncompressedSize; 53 uint16 fileNameLength; 54 uint16 extraFieldLength; 55 uint16 fileCommentLength; 56 uint16 diskNumberStart; 57 uint16 internalFileAttributes; 58 uint32 externalFileAttributes; 59 uint32 fileStartOffset; 60 }; 61 62 struct ZIPDIRENDHEADER 63 { 64 uint32 signature; 65 uint16 diskNumber; 66 uint16 centralDirDiskNumber; 67 uint16 dirEntryCount; 68 uint16 totalDirEntryCount; 69 uint32 dirSize; 70 uint32 dirStartOffset; 71 uint16 fileCommentLength; 72 }; 73 74 #pragma pack(pop) 75 } 76 } 77 78 #endif 79