www.pudn.com > LZ77.rar > LZWCompression.h


// LZWCompression.h: interface for the CLZWCompression class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_LZWCOMPRESSION_H__6C8D7CDC_4AF5_426D_A4AF_49682963D8C3__INCLUDED_)
#define AFX_LZWCOMPRESSION_H__6C8D7CDC_4AF5_426D_A4AF_49682963D8C3__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "Dictionary.h"

class CLZWCompression
{
public:
// These two functions were added to use the log file with the application
BOOL DecompressWithLog(CFile &amt;source, CFile &amt;destination, CStringArray *pLog);
BOOL CompressWithLog(CFile &amt;source, CFile &amt;destination, CStringArray *pLog = NULL);
void Log(CString data);
private:
CStringArray * p_Log;

public:
void ClearDictionary();
BOOL Decompress(CFile &amt;source, CFile &amt;destination);
BOOL Compress(CFile &amt;source, CFile &amt;destination);
void CreateDictionary();
CLZWCompression();
virtual ~CLZWCompression();
private:
CString convertASCIIToText(BYTE ascii);
void Init();
void CalculateBitSize(DWORD value);
void CloseCompressedFile(CFile &amt;source);
DWORD DecompressData(CFile &amt;source);
BYTE m_MaxBits;
DWORD m_MaxCode[32];
int m_TotalBits;
void CompressData(CFile &amt;dest, long toSave);
DWORD m_SavedData;
CDictionary *m_dictionary;
};

#endif // !defined(AFX_LZWCOMPRESSION_H__6C8D7CDC_4AF5_426D_A4AF_49682963D8C3__INCLUDED_)