Lhaz
lhazlzh.h
[詳解]
1 /*************************************************************************/
6 #pragma once
7 
8 #include "altstr.hpp"
9 #include "path.h"
10 #include <windows.h>
11 #include <vector>
12 #include "mystr.h"
13 #include "lhazarc.h"
14 
15 using std::vector;
16 
17 class LHAZPROCFILE;
18 class MYFILE;
19 class PATH;
20 
21 namespace gui {
22 
23 class LHAZTREEVIEW;
24 
25 } // namespace gui
26 
27 /*************************************************************************/
30 class ADDFILE {
31 public:
32  ADDFILE(const MYSTR& name, bool dir = false) :
33  m_name(name),
34  m_used(false),
35  m_dir(dir)
36  {
37  }
38  ADDFILE(const ADDFILE &a) {
39  m_name = a.m_name;
40  m_used = a.m_used;
41  m_dir = a.m_dir;
42  }
43  //
44  const MYSTR& GetName(void) const { return m_name; }
45  bool GetUsed(void) const { return m_used; }
46  void SetUsed(bool used) { m_used = used; }
47  bool IsDir(void) const { return m_dir; }
48 
49 private:
50  MYSTR m_name;
51  bool m_used;
52  bool m_dir;
53 
54 };
55 
56 /*************************************************************************/
59 class ARCLZH : public ARCHIVE {
60 public:
61  // 解凍・圧縮用コンストラクタ
62  ARCLZH(HWND hwnd, const WSTR& name, TYPE type);
63  // 閲覧用コンストラクタ
64  ARCLZH(HWND hwnd, const WSTR& name, TYPE type, const WSTR& filter, gui::LHAZTREEVIEW* treeview);
65  // デストラクタ
66  ‾ARCLZH(void);
67  // 全解凍
68  bool Extract(bool verify, const WSTR& temp, const WSTR& password);
69  // 個別解凍
70  bool Extract(const WSTR& temp);
71  // 圧縮
72  bool Compress(int method, int header, const WSTR& pass, const PATH& temp, const vector<LHAZPROCFILE>& v);
73  // 個別削除
74  bool Delete(const vector<LHAZFILE*>& v);
75  // 自己解凍書庫に変換
76  bool Convert(void);
77  // 自己解凍ルーチンをスキップ
78  bool SkipSfxCode(MYFILE& fp);
79  //
80  static bool IsArchiveLzh(unsigned int size, char* buf);
81  //
82  static const char HEADER[3];
83  static const char SFXHEADER[9];
84 
85 private:
86  static const unsigned char SfxCode[];
87  //
88  int CompCnt;
89  unsigned char Level;
90  int Method;
92  PATH TempName;
93  //
94  bool AddNew(const MYSTR& name, MYFILE& nafp);
95  bool AppendIt(vector<ADDFILE>& list, MYFILE& oafp, MYFILE& nafp);
96  void AppendList(const MYSTR& name, vector<ADDFILE> &list);
97  MYSTR BuildStandardArchiveName(const MYSTR& orginal);
98  void BuildTempName(void);
99  bool IsArchiveMsdosSfx1(const MYSTR& name);
100  bool IsNeedFile(const vector<LHAZFILE*>& v, const MYSTR& name);
101  bool PatMatch(const MYSTR& p, const MYSTR& s, int f);
102  void SendName(const MYSTR& name);
103  bool SkipMsdosSfx1Code(MYFILE& fp);
104 
105 };
Archive.
TYPE
Definition: lhazarc.h:28
PATH TempName
Definition: lhazlzh.h:92
LZH書庫
Definition: lhazlzh.h:59
Definition: lhazarc.h:25
¥ return false
Definition: WinUnit.h:116
Definition: lhazbz2.h:17
機能テストを実施するためのディレクトリです. *概要 Git Bash上で一部またはすべてのテストを自動的に実行することができます. *実行方法 call_test shを実行すると,配下に存在する全てのテストを順次実行します. 各テストケースのtest shを実行すると,そのテストだけが実行されます. call_test sh[-v 2][-a 86][-k][-r][types...] test sh[-v 2][-a 86][-k][types...] テスト対象とするLhazのバージョンです. a
Definition: README.txt:18
and that you are informed that you can do these things To protect your we need to make restrictions that forbid distributors to deny you these rights or to ask you to surrender these rights These restrictions translate to certain responsibilities for you if you distribute copies of the library or if you modify it For if you distribute copies of the whether gratis or for a you must give the recipients all the rights that we gave you You must make sure that receive or can get the source code If you link other code with the you must provide complete object files to the so that they can relink them with the library after making changes to the library and recompiling it And you must show them these terms so they know their rights We protect your rights with a two step method
Definition: copying.txt:35
bool m_dir
Definition: lhazlzh.h:52
Definition: lhaztreeview.h:18
unsigned char Level
Definition: lhazlzh.h:89
void SetUsed(bool used)
Definition: lhazlzh.h:46
機能テストを実施するためのディレクトリです. *概要 Git Bash上で一部またはすべてのテストを自動的に実行することができます. *実行方法 call_test shを実行すると,配下に存在する全てのテストを順次実行します. 各テストケースのtest shを実行すると,そのテストだけが実行されます. call_test sh[-v 2][-a 86][-k][-r][types...] test sh[-v 2][-a 86][-k][types...] v
Definition: README.txt:18
int CompCnt
Definition: lhazlzh.h:88
MYSTR NewArchiveName
Definition: lhazlzh.h:91
bool m_used
Definition: lhazlzh.h:51
bool IsDir(void) const
Definition: lhazlzh.h:47
MYSTR m_name
Definition: lhazlzh.h:50
Definition: lhazprocfile.h:11
圧縮ファイル
Definition: lhazlzh.h:30
const MYSTR & GetName(void) const
Definition: lhazlzh.h:44
int Method
Definition: lhazlzh.h:90
ADDFILE(const ADDFILE &a)
Definition: lhazlzh.h:38
bool GetUsed(void) const
Definition: lhazlzh.h:45
ADDFILE(const MYSTR &name, bool dir=false)
Definition: lhazlzh.h:32