📄 bzip.h
字号:
// BZIP.H: INTERFACE FOR THE CBZIP CLASS.
// A FREE COMPRESS/DECOMPRESS SOFTWARE LIKE WINZIP
// BY YANXINHAI YANXH@MIC.COM.TW
// PLS LET ME KNOW IF YOU FIND ANY BUGS ABOUT IT. :)
//////////////////////////////////////////////////////////////////////
///////////////////////NOTICE/////////////////////////////////////////
//
// FUNCTION:
// 1.IMPLEMENT SIGLE OR MULTIPLE FILE COMPRESS AND DECOMPRESS
// 2.IMPLEMENT FILE TO BUFFER COMPRESS/DECOMPRESS
// 3.IMPLEMENT FIRST LEVEL EMPTY DIRECTORY COMPRESS/DECOMPRESS
// 4.IMPLEMENT BUFFER TO BUFFER COMPRESS/DECOMPRESS
// 5.IMPLEMENT DIRECTORY COMPRESS/DECOMPRESS (NEW)
// VERSION: 1.0 CREATE TIME: 2002-07-18
// VERSION: 1.1 MODIFIED TIME:2002-7-22 ADD DIRECTORY COMPRESS/DECOMPRESS
//////////////////////////////////////////////////////////////////////
#ifndef _BZIP_H_
#define _BZIP_H_
#include "File.h"
#include "bzlib.h"
//////////////////////////////////////////////////////////////////////
//------------------ Data structure defined--------------------------
typedef struct
{
DWORD dwOriginFileSize; //Original size of file
DWORD dwZipFileSize; //Compressed size of file
DWORD dwFileAttributes; //attributes of file
FILETIME ftCreateTime; //Create time of file
FILETIME ftLastModifiedTime; //Last Written time of file
FILETIME ftLastAccessedTime; //Last Accessed time of file
WORD wRealFilePathNameLen; //Real size of full-path name
TCHAR szFilePathName[MAX_PATH]; //buffer for file path name
}BZFILEDATA,*LPBZFILEDATA;
//-------------------Data Structure End------------------------------
///////////////////////////////////////////////////////////////////////
//------------------Class define--------------------------------
class CBzip
{
public:
///////FILE/DIRECTORY Operation/////////
BOOL Initialize(LPCTSTR szBzipDllName);
virtual BOOL AddToArchive(CFile &cTargetFile,BZFILEDATA &pBFHeader);
BOOL AddDirToArchive(CFile&cFile ,LPCTSTR szDirName);
virtual BOOL ExtractArchive(LPCTSTR szZipFileName);
BOOL DeCompress(LPCSTR szSource,LPCSTR szTarget);
BOOL Compress(LPCSTR szSource,LPCSTR szTarget,int nLevel = 9);
BOOL BufferDeCompress(char *szDestBuf, UINT *nDestLen, char *szSource, UINT nSourceLen);
BOOL BufferCompress(char * szDestBuf,UINT *nDestLen,char *szSource,UINT nSourceLen,int nLevel = 9);
BOOL ZipFileToBuffer(LPCSTR szFileName, char *buffer,int& nLen);
BOOL ExtractBufferToFile(LPCTSTR szFileName,char *buffer,UINT nLen,BZFILEDATA *pszFileBuffer=NULL);
BOOL WriteFileToZip(LPCTSTR szSource,CFile &cTarget);
BOOL IsExistedDirectory(LPCTSTR szDirectory);
BOOL IsEmptyDirectory(LPCTSTR szDirectory);
protected:
virtual void OnExtractProgress( LPCTSTR szExtractFile,DWORD nErr);
BOOL CreateDir(LPCTSTR szDirName);
public:
CBzip();
virtual ~CBzip();
BOOL m_FirstDirFlag;
private:
HINSTANCE m_hDllInstance;
BOOL m_bHasZipFlag;
void * (WINAPI *bzopen)(const char *,const char *);
int (WINAPI *bzread)(void *,void *,int );
int (WINAPI *bzwrite)(void *,void *,int );
void (WINAPI *bzclose)(void * );
int (WINAPI *bzBuffToBuffCompress)( char*,unsigned int*,char*,unsigned int,int,int,int);
int (WINAPI *bzBuffToBuffDecompress) ( char*,unsigned int*,char*, unsigned int,int,int);
};
//------------------Class End--------------------------------
#endif //_BZIP_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -