Lhaz
読み取り中…
検索中…
一致する文字列を見つけられません
cabsfx.h
[詳解]
1/*==========================================================================*/
2/* CabSfx インストーラ kb@chitora.jp */
3/*==========================================================================*/
4#ifndef _KBINSTALLER_H
5#define _KBINSTALLER_H
6
7#include <windows.h>
8#include <vector>
9#include "fdi.h"
10#include "mystr.h"
11#include "lhazsfx.h"
12#include "lhazshellex.h"
13#include "lhazarc.h"
14
15using namespace std;
16
18public:
19 enum { SFX_START = WM_USER, DISP_NAME, FINISH };
20 enum {
23 };
24 //
26 static DWORD SkipSize;
27 static long coffFiles;
28 static vector<long> coffCabstart;
29 //
30 static bool ReadByte(HANDLE hFile, char& d);
31 static bool ReadStr(HANDLE hFile, MYSTR& d);
32 //
33 KBINSTALLER(HINSTANCE hins, LPTSTR lpCmdLine);
34 ‾KBINSTALLER(void);
35 HWND GetHwnd(void) const { return Hwnd; }
36 bool GetStop(void) const { return Stop; }
37 const TCHAR* GetExeName(void) const { return ExeName; }
38 int Run(void);
39 void Progress(unsigned int size);
40 void ConvDelim(char* path, char delim);
41 bool SetFileTime(const MYSTR& name, WORD date, WORD time);
42 int DoOverWrite(const MYSTR& name);
43 INT_PTR NextCab(PFDINOTIFICATION pfdin);
44
45private:
46 class CFHEADER {
47 public:
48 CFHEADER(void);
49 ‾CFHEADER(void);
50 bool Get(HANDLE hFile);
51 //
52 char signature[4];
60 short cFolders;
61 short cFiles;
62 short flags;
63 short setID;
64 short iCabinet;
65 unsigned short cbCFHeader;
68 char* abReserve;
73 private:
74 static const unsigned short cfhdrPREV_CABINET;
75 static const unsigned short cfhdrNEXT_CABINET;
76 static const unsigned short cfhdrRESERVE_PRESENT;
77 };
78 //
79 class CFFOLDER {
80 public:
81 CFFOLDER(void);
82 ‾CFFOLDER(void);
83 bool Get(HANDLE hFile, unsigned char cbCFFolder);
85 short cCFData;
87 char* abReserve;
88 };
89 //
90 class CFFILE {
91 public:
92 CFFILE(void);
93 ‾CFFILE(void);
94 bool Get(HANDLE hFile);
95 long cbFile;
97 short iFolder;
98 short date;
99 short time;
100 short attribs;
101 MYSTR szName;
102 static const unsigned short ifoldCONTINUED_FROM_PREV;
103 static const unsigned short ifoldCONTINUED_TO_NEXT;
104 static const unsigned short ifoldCONTINUED_PREV_AND_NEXT;
105 };
106 //
107 static const TCHAR CLASSNAME[];
108 static const TCHAR SFXTITLE[];
109 static const char HEADER[4];
110#ifdef FEATURE_LHAZ
111 static const TCHAR LHAZEXT[];
112 static const TCHAR LHAZVIEW[];
113 static const TCHAR LHAZOPEN[];
114 static const TCHAR LHAZARC[];
115 static const int SKIPSIZE;
116 static const TCHAR LHAZVERNUM[];
117#endif
118 //
119 static bool Initialized;
120 static HINSTANCE Instance;
121 //
122 static bool IsSJIS_First(unsigned char c) {
123 return ((c >= 0x80) && ((c < 0xA0) || (c >= 0xE0) && (c < 0xFD)));
124 }
125 //
126 HWND Hwnd;
130 LONGLONG Total;
131 LONGLONG Melted;
133 unsigned int Pos;
134 HANDLE Thread;
135 bool Force;
136 bool Skip;
137 bool Stop;
138 MYSTR DestDir;
139 bool Option;
140 TCHAR ExeName[MAX_PATH];
143#ifdef INSTALLER
144 bool Kanren;
145 bool KanrenZ;
146 bool KanrenC;
147 bool KanrenT;
148 bool KanrenA;
149 bool KanrenG;
150 bool KanrenB;
151 bool Kanren2;
152 bool KanrenR;
153 bool KanrenTXZ;
154 bool KanrenXZ;
155 #ifdef FEATURE_7ZIP
156 bool Kanren7;
157 #endif // FEATURE_7ZIP
158 bool ConView;
159 bool ConComp;
160 bool RddComp;
161 static const TCHAR LZHEXT[];
162 static const TCHAR ZIPEXT[];
163 static const TCHAR CABEXT[];
164 static const TCHAR TGZEXT[];
165 static const TCHAR TAREXT[];
166 static const TCHAR GZIPEXT[];
167 static const TCHAR TBZEXT[];
168 static const TCHAR BZ2EXT[];
169 static const TCHAR TXZEXT[];
170 static const TCHAR XZEXT[];
171 static const TCHAR RAREXT[];
172 #ifdef FEATURE_7ZIP
173 static const TCHAR SZIPEXT[];
174 #endif // FEATURE_7ZIP
175 static const TCHAR LHAZARCHIVELZH[];
176 static const TCHAR LHAZARCHIVEZIP[];
177 static const TCHAR LHAZARCHIVECAB[];
178 static const TCHAR LHAZARCHIVETGZ[];
179 static const TCHAR LHAZARCHIVETAR[];
180 static const TCHAR LHAZARCHIVEGZIP[];
181 static const TCHAR LHAZARCHIVETBZ[];
182 static const TCHAR LHAZARCHIVEBZ2[];
183 static const TCHAR LHAZARCHIVETXZ[];
184 static const TCHAR LHAZARCHIVEXZ[];
185 static const TCHAR LHAZARCHIVERAR[];
186 #ifdef FEATURE_7ZIP
187 static const TCHAR LHAZARCHIVE7ZIP[];
188 #endif // FEATURE_7ZIP
189 static const TCHAR LHAZREG[];
190#endif // INSTALLER
191 //
192 static LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
193 static INT_PTR CALLBACK DialogOverWrite(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
194 static INT_PTR CALLBACK DialogNextCab( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
195 static INT_PTR CALLBACK DialogMain( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
196 static DWORD WINAPI ExtractThread(LPVOID pv);
197 //
198 bool Init(HINSTANCE hins, LPTSTR lpCmdLine);
199 bool Start(void);
200 DWORD GetSfxSize(HANDLE hFile);
201 LONGLONG GetTotal(HANDLE hFile);
202 bool Extract(void);
203 bool ChangeDir(const MYSTR& dir);
204 void CreateShortCut(void);
205#ifndef FEATURE_LHAZ
206 void SetReg(void);
207#endif // !FEATURE_LHAZ
208#ifdef FEATURE_LHAZ
209 bool GetParam(HANDLE hFile);
210#ifdef INSTALLER
211 void GetCmdLine(LPTSTR lpCmdLine);
212 void GetReg(void);
213 bool GetReg(LPCTSTR subkey, const TCHAR* data);
214 void SetReg(void);
215 void SetReg(LPCTSTR subkey, const TCHAR* data, ARCHIVE::TYPE type, const TCHAR* old);
216 void DeleteShortCut(int);
217 bool CheckLatestVersion(void);
218 bool GetLatestVersion(const WSTR& xml_file, WSTR& version);
219#endif // INSTALLER
220 void Exec(void);
221#endif // FEATURE_LHAZ
222 bool Read(HANDLE hFile, MYSTR& d, int size);
223
224};
225
226#endif // _KBINSTALLER_H
TYPE
Definition lhazarc.h:28
Definition cabsfx.h:90
MYSTR szName
Definition cabsfx.h:101
static const unsigned short ifoldCONTINUED_FROM_PREV
Definition cabsfx.h:102
short date
Definition cabsfx.h:98
‾CFFILE(void)
Definition cabsfx.cpp:1801
long cbFile
Definition cabsfx.h:95
long uoffFolderStart
Definition cabsfx.h:96
static const unsigned short ifoldCONTINUED_TO_NEXT
Definition cabsfx.h:103
bool Get(HANDLE hFile)
Definition cabsfx.cpp:1808
short iFolder
Definition cabsfx.h:97
CFFILE(void)
Definition cabsfx.cpp:1788
short time
Definition cabsfx.h:99
short attribs
Definition cabsfx.h:100
static const unsigned short ifoldCONTINUED_PREV_AND_NEXT
Definition cabsfx.h:104
Definition cabsfx.h:79
CFFOLDER(void)
Definition cabsfx.cpp:1740
long coffCabstart
Definition cabsfx.h:84
short cCFData
Definition cabsfx.h:85
char * abReserve
Definition cabsfx.h:87
‾CFFOLDER(void)
Definition cabsfx.cpp:1751
short typeCompress
Definition cabsfx.h:86
bool Get(HANDLE hFile, unsigned char cbCFFolder)
Definition cabsfx.cpp:1759
Definition cabsfx.h:46
bool Get(HANDLE hFile)
Definition cabsfx.cpp:1645
‾CFHEADER(void)
Definition cabsfx.cpp:1637
long reserved3
Definition cabsfx.h:57
char cbCFFolder
Definition cabsfx.h:66
short cFiles
Definition cabsfx.h:61
char versionMinor
Definition cabsfx.h:58
char signature[4]
Definition cabsfx.h:52
char cbCFData
Definition cabsfx.h:67
MYSTR szDiskNext
Definition cabsfx.h:72
short iCabinet
Definition cabsfx.h:64
MYSTR szCabinetPrev
Definition cabsfx.h:69
short flags
Definition cabsfx.h:62
long reserved1
Definition cabsfx.h:53
short setID
Definition cabsfx.h:63
short cFolders
Definition cabsfx.h:60
static const unsigned short cfhdrNEXT_CABINET
Definition cabsfx.h:75
static const unsigned short cfhdrPREV_CABINET
Definition cabsfx.h:74
MYSTR szDiskPrev
Definition cabsfx.h:70
long cbCabinet
Definition cabsfx.h:54
long reserved2
Definition cabsfx.h:55
long coffFiles
Definition cabsfx.h:56
char * abReserve
Definition cabsfx.h:68
static const unsigned short cfhdrRESERVE_PRESENT
Definition cabsfx.h:76
unsigned short cbCFHeader
Definition cabsfx.h:65
CFHEADER(void)
Definition cabsfx.cpp:1613
MYSTR szCabinetNext
Definition cabsfx.h:71
char versionMajor
Definition cabsfx.h:59
Definition cabsfx.h:17
INT_PTR NextCab(PFDINOTIFICATION pfdin)
Definition cabsfx.cpp:1251
bool Read(HANDLE hFile, MYSTR &d, int size)
Definition cabsfx.cpp:1129
HWND CancelButtonWnd
Definition cabsfx.h:129
static INT_PTR CALLBACK DialogNextCab(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition cabsfx.cpp:1259
HWND StaticWnd
Definition cabsfx.h:127
LHAZSFX Param
Definition cabsfx.h:141
LONGLONG Total
Definition cabsfx.h:130
void CreateShortCut(void)
Definition cabsfx.cpp:730
static bool ReadStr(HANDLE hFile, MYSTR &d)
Definition cabsfx.cpp:1110
HWND Hwnd
Definition cabsfx.h:126
static bool IsSJIS_First(unsigned char c)
Definition cabsfx.h:122
@ LHAZWND_HEIGHT
Definition cabsfx.h:22
@ LHAZWND_WIDTH
Definition cabsfx.h:21
void ConvDelim(char *path, char delim)
Definition cabsfx.cpp:1164
static vector< long > coffCabstart
Definition cabsfx.h:28
bool Extract(void)
Definition cabsfx.cpp:720
DWORD GetSfxSize(HANDLE hFile)
Definition cabsfx.cpp:643
bool SetFileTime(const MYSTR &name, WORD date, WORD time)
Definition cabsfx.cpp:1182
static long coffFiles
Definition cabsfx.h:27
HANDLE Thread
Definition cabsfx.h:134
static const TCHAR SFXTITLE[]
Definition cabsfx.h:108
LONGLONG GetTotal(HANDLE hFile)
Definition cabsfx.cpp:681
int Run(void)
Definition cabsfx.cpp:217
static const char HEADER[4]
Definition cabsfx.h:22
bool GetStop(void) const
Definition cabsfx.h:36
static INT_PTR CALLBACK DialogMain(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition cabsfx.cpp:402
static bool ReadByte(HANDLE hFile, char &d)
Definition cabsfx.cpp:1096
bool Skip
Definition cabsfx.h:136
bool Option
Definition cabsfx.h:139
static INT_PTR CALLBACK DialogOverWrite(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition cabsfx.cpp:1229
bool Start(void)
Definition cabsfx.cpp:335
unsigned int Pos
Definition cabsfx.h:133
@ SFX_START
Definition cabsfx.h:19
@ FINISH
Definition cabsfx.h:19
@ DISP_NAME
Definition cabsfx.h:19
static DWORD SkipSize
Definition cabsfx.h:26
static HINSTANCE Instance
Definition cabsfx.h:120
static bool Initialized
Definition cabsfx.h:119
LONGLONG Melted
Definition cabsfx.h:131
HWND GetHwnd(void) const
Definition cabsfx.h:35
bool Stop
Definition cabsfx.h:137
void SetReg(void)
Definition cabsfx.cpp:769
TCHAR ExeName[MAX_PATH]
Definition cabsfx.h:140
static const TCHAR CLASSNAME[]
Definition cabsfx.h:107
bool ChangeDir(const MYSTR &dir)
Definition cabsfx.cpp:1329
static LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition cabsfx.cpp:272
void Progress(unsigned int size)
Definition cabsfx.cpp:1143
HWND PrgrsWnd
Definition cabsfx.h:128
LHAZSHELLEX ShellEx
Definition cabsfx.h:142
const TCHAR * GetExeName(void) const
Definition cabsfx.h:37
bool m_silent_install
Definition cabsfx.h:132
static DWORD WINAPI ExtractThread(LPVOID pv)
Definition cabsfx.cpp:1029
‾KBINSTALLER(void)
Definition cabsfx.cpp:206
static KBINSTALLER * Installer
Definition cabsfx.h:25
bool Init(HINSTANCE hins, LPTSTR lpCmdLine)
Definition cabsfx.cpp:229
MYSTR DestDir
Definition cabsfx.h:138
bool Force
Definition cabsfx.h:135
int DoOverWrite(const MYSTR &name)
Definition cabsfx.cpp:1201
Definition lhazsfx.h:10
Definition lhazshellex.h:11
Archive