⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zipstructs.h

📁 zip算法的源码
💻 H
字号:
#ifndef ZipStructsH
#define ZipStructsH

 /*  The zipfile format is defined as below:
 *
 *   [Extra Extended Signature]
 *   NumberOfFiles *{ local header + Filename + [extra data] + [file data] + [data_descriptor] }
 *   NumberOfFiles *{ central directory + Filename + [extra data] + [filecomment] }
 *   End Of Central directory + [ZipFile comment]
 */

#pragma option -a1
struct ZipLocalHeader {
	unsigned long	HeaderSig;			// Should be 0x04034B50
	unsigned short	VersionNeed;
	unsigned short	Flag;
	unsigned short	ComprMethod;
	unsigned short	ModifTime;
	unsigned short	ModifDate;
	unsigned long	CRC32;
	unsigned long	ComprSize;
	unsigned long	UnComprSize;
	unsigned short	FileNameLen;
	unsigned short ExtraLen;
};
//	... and the filename itself,
// ... and the extra data.

struct ZipDataDescriptor {
	unsigned long	DataDescSig;		// Should be 0x08074B50
	unsigned long	CRC32;
	unsigned long	ComprSize;
	unsigned long	UnComprSize;
};


struct ZipCentralHeader {
	unsigned long	HeaderSig;			// Should be 0x02014B50
	unsigned char	VersionMadeBy0;   // Made by version number
	unsigned char	VersionMadeBy1;   // Made by host number
	unsigned short	VersionNeed;
	unsigned short	Flag;
	unsigned short	ComprMethod;
	unsigned short	ModifTime;
	unsigned short	ModifDate;
	unsigned long	CRC32;
	unsigned long	ComprSize;
	unsigned long	UnComprSize;
	unsigned short	FileNameLen;
	unsigned short ExtraLen;
	unsigned short	FileComLen;
	unsigned short	DiskStart;			// The number of the disk on which this file begins.
	unsigned short	IntFileAtt;
	unsigned long	ExtFileAtt;
	unsigned long	RelOffLocal;		// This is the offset from the start of the first disk on
												// which this file appears, to where the local header
												// should be found.
};
//	... and the filename itself,
// ... and the extra data,
// ... and the file comment.

struct ZipEndOfCentral {
	unsigned long	HeaderSig;			// Should be 0x06054B50
	unsigned short	ThisDiskNo;
	unsigned short	CentralDiskNo;
	unsigned short	CentralEntries;	// Total number of entries in the central dir on this disk.
	unsigned short	TotalEntries;		// Total number of entries in the central dir.
	unsigned long	CentralSize;
	unsigned long	CentralOffset;		// Offset of start of central directory with respect to the starting disk number.
	unsigned short	ZipCommentLen;
};
// And the comment itself.
#pragma option -a.

//----------------Icon resource info--------------------------------------------
#pragma option -a1
struct PEheader {		// Data from the local header
	DWord                 signature;
	IMAGE_FILE_HEADER     _head;
	IMAGE_OPTIONAL_HEADER opt_head;
	IMAGE_SECTION_HEADER  section_header;
};
#pragma option -a.

typedef IMAGE_RESOURCE_DIR_STRING_U          *pIRDSU;
typedef const IMAGE_RESOURCE_DIRECTORY_ENTRY *pIRDirE;
typedef const IMAGE_DATA_DIRECTORY           *pIDD;
typedef const IMAGE_RESOURCE_DIRECTORY       *pIRD;
typedef IMAGE_RESOURCE_DATA_ENTRY            *pIRDatE;
typedef IMAGE_SECTION_HEADER                 *pISH;





#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -