1 #ifndef __W_ZIP 2 #define __W_ZIP 3 4 #pragma pack(1) 5 // FZipCentralInfo 6 struct FZipEndOfCentralDirectory 7 { 8 DWORD Magic; 9 WORD DiskNumber; 10 WORD FirstDisk; 11 WORD NumEntries; 12 WORD NumEntriesOnAllDisks; 13 DWORD DirectorySize; 14 DWORD DirectoryOffset; 15 WORD ZipCommentLength; 16 }; 17 18 // FZipFileInfo 19 struct FZipCentralDirectoryInfo 20 { 21 DWORD Magic; 22 BYTE VersionMadeBy[2]; 23 BYTE VersionToExtract[2]; 24 WORD Flags; 25 WORD Method; 26 WORD ModTime; 27 WORD ModDate; 28 DWORD CRC32; 29 DWORD CompressedSize; 30 DWORD UncompressedSize; 31 WORD NameLength; 32 WORD ExtraLength; 33 WORD CommentLength; 34 WORD StartingDiskNumber; 35 WORD InternalAttributes; 36 DWORD ExternalAttributes; 37 DWORD LocalHeaderOffset; 38 // file name and other variable length info follows 39 }; 40 41 // FZipLocalHeader 42 struct FZipLocalFileHeader 43 { 44 DWORD Magic; 45 BYTE VersionToExtract[2]; 46 WORD Flags; 47 WORD Method; 48 WORD ModTime; 49 WORD ModDate; 50 DWORD CRC32; 51 DWORD CompressedSize; 52 DWORD UncompressedSize; 53 WORD NameLength; 54 WORD ExtraLength; 55 // file name and other variable length info follows 56 }; 57 58 59 #pragma pack() 60 61 #define ZIP_LOCALFILE MAKE_ID('P','K',3,4) 62 #define ZIP_CENTRALFILE MAKE_ID('P','K',1,2) 63 #define ZIP_ENDOFDIR MAKE_ID('P','K',5,6) 64 65 #define METHOD_STORED 0 66 #define METHOD_SHRINK 1 67 #define METHOD_IMPLODE 6 68 #define METHOD_DEFLATE 8 69 #define METHOD_BZIP2 12 70 #define METHOD_LZMA 14 71 #define METHOD_PPMD 98 72 73 // File header flags. 74 #define ZF_ENCRYPTED 0x1 75 76 #endif 77