16#pragma comment(lib,"lz32.lib")
75 bool Open(LPCTSTR lpszLzFile,
bool boIsShare =
true)
81 s.
GetBuffer(), work,
static_cast<WORD
>(OF_READ | (boIsShare ? OF_SHARE_DENY_NONE : OF_SHARE_EXCLUSIVE)));
84 m_strName = lpszLzFile;
97 bool Copy(LPCTSTR lpszDstFile)
99 if ( !
CanRead() ){
return false; }
101 CStr s = lpszDstFile;
102 INT r = ::LZOpenFile(s.
GetBuffer(), work, OF_CREATE);
105 if ( ::LZCopy(m_iHandle, r) >= 0 )
138 return m_iHandle >= 0;
164 return ::LZSeek(m_iHandle,
ToInt(llOffset), eSeek);
174 virtual size_t Read(
size_t size, LPVOID _P)
const
176 INT r = ::LZRead(m_iHandle,
static_cast<char *
>(_P),
ToInt(size));
192 CStr strSrc = lpszLzFile;
virtual LONGLONG Seek(LONGLONG llOffset, ESeekMode eSeek=TOP) const
[操作] シーク.
virtual size_t Read(size_t size, LPVOID _P) const
[取得] 読み込み
static CStr GetExpandedName(LPCTSTR lpszLzFile)
[取得] 圧縮前名前取得
bool Open(LPCTSTR lpszLzFile, bool boIsShare=true)
[設定] オープン
virtual LONGLONG GetSize(void) const
[取得] サイズ取得
virtual bool CanRead(void) const
[確認] 読み込み可能か
bool Copy(LPCTSTR lpszDstFile)
[複製] コピー
CLzFileReader(void)
コンストラクタ
virtual LPCTSTR GetOpenName(void) const
[取得] オープン名取得
virtual void Close(void)
[操作] クローズ
virtual ~CLzFileReader(void)
デストラクタ
void ReleaseBuffer(void)
[操作] 割り当てたバッファを開放.
TYP * GetBuffer(size_t iLength=0)
[操作] 書き込みバッファ要求.
TNB::CStrT< TCHAR > CStr
文字列クラス
int ToInt(LPCSTR lpsz, int iBase=10)
[変換] INT変換(ASCII/SJIS用).