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