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

📄 compress.h

📁 决战帝王1.5武神降临对喜爱决战的玩家共享研究用
💻 H
字号:
#ifndef __COMPRESS_H
#define __COMPRESS_H

typedef enum 
{
	COMPRESSING = 1,
	UNCOMPRESSING
} FILEMODE;


class CCompressData : public CObject
{
private:
	char *dataPtr;

public:
	CCompressData() { dataPtr = NULL; };
	virtual ~CCompressData()
	{
		if (dataPtr != NULL)
		{
			delete[] dataPtr;
			dataPtr = NULL;
		}
	};

	char *GetDataPtr() { return dataPtr; }
	void SetDataPtr(char *dp) { dataPtr = dp; }
};


class CCompressManager
{
public:
	int adding_data_count;
	CObList *addList;
	long pnCompressedSize;
	PCHAR  pScratchPad;
	DWORD dwCrc;

	long OrgDataLength;

	char *CompressBufferPtr;
	char *ExtractBufferPtr;

	long nCompressBufferCount;
	long nUnCompressBufferCount;

	long CompressCurPos;
	long UncompressCurPos;

	int Mode;
	int ErrorOccurred;

public:
	CCompressManager();
	virtual ~CCompressManager();

	CObList *GetDataList() { return addList; }
	int PreCompressWork();
	int PreUncompressWork(long nLen, long orgDataLen = 0);

	//Compress Part...
	int AddData(char *data, long nLen = 0L);
	int Compress();
	char *GetCompressionBufferPtr() { return CompressBufferPtr; }
	long GetCompressedDataCount() { return UncompressCurPos; }
	long GetUnCompressDataLength() { return OrgDataLength; }
	long GetCrcValue() { return dwCrc; }
	void FlushAddData();

	//Extract Part...
	void SetCompressionData(char *b_ptr, long nLen = 0);
	int Extract();
	char *GetExtractedBufferPtr() { return ExtractBufferPtr; };
	long GetExtractedBufferCount() { return nUnCompressBufferCount; }
	long GetExtractedDataCount() { return UncompressCurPos; }
	void FlushExtractedData();
};


#endif

⌨️ 快捷键说明

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