#ifndef __W_ZIP #define __W_ZIP #pragma pack(1) // FZipCentralInfo struct FZipEndOfCentralDirectory { DWORD Magic; WORD DiskNumber; WORD FirstDisk; WORD NumEntries; WORD NumEntriesOnAllDisks; DWORD DirectorySize; DWORD DirectoryOffset; WORD ZipCommentLength; } FORCE_PACKED; // FZipFileInfo struct FZipCentralDirectoryInfo { DWORD Magic; BYTE VersionMadeBy[2]; BYTE VersionToExtract[2]; WORD Flags; WORD Method; WORD ModTime; WORD ModDate; DWORD CRC32; DWORD CompressedSize; DWORD UncompressedSize; WORD NameLength; WORD ExtraLength; WORD CommentLength; WORD StartingDiskNumber; WORD InternalAttributes; DWORD ExternalAttributes; DWORD LocalHeaderOffset; // file name and other variable length info follows } FORCE_PACKED; // FZipLocalHeader struct FZipLocalFileHeader { DWORD Magic; BYTE VersionToExtract[2]; WORD Flags; WORD Method; WORD ModTime; WORD ModDate; DWORD CRC32; DWORD CompressedSize; DWORD UncompressedSize; WORD NameLength; WORD ExtraLength; // file name and other variable length info follows } FORCE_PACKED; #pragma pack() #define ZIP_LOCALFILE MAKE_ID('P','K',3,4) #define ZIP_CENTRALFILE MAKE_ID('P','K',1,2) #define ZIP_ENDOFDIR MAKE_ID('P','K',5,6) #define METHOD_STORED 0 #define METHOD_SHRINK 1 #define METHOD_IMPLODE 6 #define METHOD_DEFLATE 8 #define METHOD_BZIP2 12 #define METHOD_LZMA 14 #define METHOD_PPMD 98 // File header flags. #define ZF_ENCRYPTED 0x1 #endif