Hex Artifact Content

Not logged in

Artifact a694505ce13887baa7c5e3fd9a367335f1bf4637:


0000: 23 69 66 6e 64 65 66 20 41 46 58 5f 41 52 43 44  #ifndef AFX_ARCD
0010: 4c 4c 5f 48 5f 5f 39 31 31 43 31 30 39 44 5f 41  LL_H__911C109D_A
0020: 34 30 45 5f 34 37 32 32 5f 41 36 46 37 5f 45 33  40E_4722_A6F7_E3
0030: 41 43 42 38 43 32 44 32 45 33 5f 5f 49 4e 43 4c  ACB8C2D2E3__INCL
0040: 55 44 45 44 5f 0d 0a 23 64 65 66 69 6e 65 20 41  UDED_..#define A
0050: 46 58 5f 41 52 43 44 4c 4c 5f 48 5f 5f 39 31 31  FX_ARCDLL_H__911
0060: 43 31 30 39 44 5f 41 34 30 45 5f 34 37 32 32 5f  C109D_A40E_4722_
0070: 41 36 46 37 5f 45 33 41 43 42 38 43 32 44 32 45  A6F7_E3ACB8C2D2E
0080: 33 5f 5f 49 4e 43 4c 55 44 45 44 5f 0d 0a 0d 0a  3__INCLUDED_....
0090: 23 69 6e 63 6c 75 64 65 20 22 41 72 63 68 69 76  #include "Archiv
00a0: 65 72 2e 68 22 0d 0a 0d 0a 63 6c 61 73 73 20 43  er.h"....class C
00b0: 41 72 63 44 4c 4c 20 3a 20 70 75 62 6c 69 63 20  ArcDLL : public 
00c0: 43 41 72 63 68 69 76 65 72 0d 0a 7b 0d 0a 70 75  CArchiver..{..pu
00d0: 62 6c 69 63 3a 0d 0a 09 43 41 72 63 44 4c 4c 28  blic:...CArcDLL(
00e0: 0d 0a 09 09 63 6f 6e 73 74 20 63 68 61 72 2a 20  ....const char* 
00f0: 20 44 6c 6c 6e 61 6d 65 2c 09 2f 2f 20 44 4c 4c   Dllname,.// DLL
0100: 96 bc 0d 0a 09 09 63 6f 6e 73 74 20 63 68 61 72  ......const char
0110: 2a 20 20 45 78 74 73 2c 09 09 2f 2f 20 91 ce 89  *  Exts,..// ...
0120: 9e 8a 67 92 a3 8e 71 0d 0a 09 09 63 6f 6e 73 74  ..g...q....const
0130: 20 63 68 61 72 2a 20 20 45 63 6d 64 2c 09 09 2f   char*  Ecmd,../
0140: 2f 20 89 f0 93 80 97 70 83 52 83 7d 83 93 83 68  / .....p.R.}...h
0150: 0d 0a 09 09 63 6f 6e 73 74 20 63 68 61 72 2a 20  ....const char* 
0160: 20 58 63 6d 64 2c 09 09 2f 2f 20 95 94 95 aa 89   Xcmd,..// .....
0170: f0 93 80 97 70 83 52 83 7d 83 93 83 68 0d 0a 09  ....p.R.}...h...
0180: 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 57 69  .unsigned int Wi
0190: 6c 64 3d 31 2c 09 2f 2f 20 83 8f 83 43 83 8b 83  ld=1,.// ...C...
01a0: 68 83 4a 81 5b 83 68 82 cc 8c 60 8e ae 28 20 30  h.J.[.h...`..( 0
01b0: 3d 6e 6f 28 2a 29 20 31 3d 2a 20 32 3d 2a 2e 2a  =no(*) 1=* 2=*.*
01c0: 20 29 0d 0a 09 09 63 6f 6e 73 74 20 63 68 61 72   )....const char
01d0: 2a 20 20 53 63 6d 64 3d 4e 55 4c 4c 20 29 2f 2f  *  Scmd=NULL )//
01e0: 20 53 46 58 95 cf 8a b7 97 70 83 52 83 7d 83 93   SFX.....p.R.}..
01f0: 83 68 0d 0a 09 09 3a 20 64 6c 6c 28 20 44 6c 6c  .h....: dll( Dll
0200: 6e 61 6d 65 20 29 2c 20 43 41 72 63 68 69 76 65  name ), CArchive
0210: 72 28 20 45 78 74 73 20 29 2c 20 6d 5f 45 63 6d  r( Exts ), m_Ecm
0220: 64 28 20 45 63 6d 64 20 29 2c 0d 0a 09 09 09 6d  d( Ecmd ),.....m
0230: 5f 58 63 6d 64 28 20 58 63 6d 64 20 29 2c 20 6d  _Xcmd( Xcmd ), m
0240: 5f 57 69 6c 64 28 20 57 69 6c 64 20 29 2c 20 6d  _Wild( Wild ), m
0250: 5f 53 63 6d 64 28 20 53 63 6d 64 20 29 20 7b 7d  _Scmd( Scmd ) {}
0260: 0d 0a 0d 0a 70 72 6f 74 65 63 74 65 64 3a 20 2f  ....protected: /
0270: 2f 2d 2d 20 94 68 90 b6 82 b5 82 c4 82 e0 82 e6  /-- .h..........
0280: 82 b5 0d 0a 09 76 69 72 74 75 61 6c 20 44 57 4f  .....virtual DWO
0290: 52 44 20 73 65 74 5f 63 6d 70 72 5f 6d 68 64 28  RD set_cmpr_mhd(
02a0: 29 0d 0a 09 09 7b 20 72 65 74 75 72 6e 20 30 3b  )....{ return 0;
02b0: 20 7d 0d 0a 09 76 69 72 74 75 61 6c 20 63 6f 6e   }...virtual con
02c0: 73 74 20 63 68 61 72 2a 20 67 65 74 5f 63 6d 70  st char* get_cmp
02d0: 72 5f 65 78 74 28 20 69 6e 74 20 6d 65 74 68 6f  r_ext( int metho
02e0: 64 20 29 0d 0a 09 09 7b 20 72 65 74 75 72 6e 20  d )....{ return 
02f0: 63 6d 70 5f 65 78 74 28 29 3b 20 7d 0d 0a 09 76  cmp_ext(); }...v
0300: 69 72 74 75 61 6c 20 63 6f 6e 73 74 20 63 68 61  irtual const cha
0310: 72 2a 20 67 65 74 5f 63 6d 70 72 5f 63 6d 64 28  r* get_cmpr_cmd(
0320: 20 69 6e 74 20 6d 65 74 68 6f 64 20 29 0d 0a 09   int method )...
0330: 09 7b 20 72 65 74 75 72 6e 20 22 22 3b 20 7d 0d  .{ return ""; }.
0340: 0a 09 76 69 72 74 75 61 6c 20 76 6f 69 64 20 64  ..virtual void d
0350: 65 63 6f 72 61 74 65 5f 61 64 64 5f 63 6d 70 72  ecorate_add_cmpr
0360: 28 20 6b 69 53 74 72 26 20 6c 73 74 2c 20 63 6f  ( kiStr& lst, co
0370: 6e 73 74 20 63 68 61 72 2a 20 66 6e 61 6d 65 20  nst char* fname 
0380: 29 3b 0d 0a 09 76 69 72 74 75 61 6c 20 76 6f 69  );...virtual voi
0390: 64 20 64 65 63 6f 72 61 74 65 5f 61 64 64 5f 6d  d decorate_add_m
03a0: 65 6c 74 28 20 6b 69 53 74 72 26 20 6c 73 74 2c  elt( kiStr& lst,
03b0: 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 66 6e 61   const char* fna
03c0: 6d 65 20 29 3b 0d 0a 0d 0a 70 72 6f 74 65 63 74  me );....protect
03d0: 65 64 3a 20 2f 2f 2d 2d 20 93 e0 95 94 8f 88 97  ed: //-- .......
03e0: 9d 0d 0a 09 43 41 72 63 4d 6f 64 75 6c 65 20 64  ....CArcModule d
03f0: 6c 6c 3b 0d 0a 09 62 6f 6f 6c 20 76 5f 76 65 72  ll;...bool v_ver
0400: 28 20 6b 69 53 74 72 26 20 73 74 72 20 29 7b 20  ( kiStr& str ){ 
0410: 64 6c 6c 2e 76 65 72 28 73 74 72 29 3b 20 72 65  dll.ver(str); re
0420: 74 75 72 6e 20 74 72 75 65 3b 20 7d 0d 0a 09 62  turn true; }...b
0430: 6f 6f 6c 20 76 5f 63 68 65 63 6b 28 20 63 6f 6e  ool v_check( con
0440: 73 74 20 6b 69 50 61 74 68 26 20 61 6e 61 6d 65  st kiPath& aname
0450: 20 29 7b 20 72 65 74 75 72 6e 20 64 6c 6c 2e 63   ){ return dll.c
0460: 68 6b 28 61 6e 61 6d 65 29 3b 20 7d 0d 0a 09 69  hk(aname); }...i
0470: 6e 74 20 20 76 5f 63 6f 6e 74 65 6e 74 73 28 20  nt  v_contents( 
0480: 63 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 61 6e  const kiPath& an
0490: 61 6d 65 2c 20 6b 69 50 61 74 68 26 20 64 6e 61  ame, kiPath& dna
04a0: 6d 65 20 29 7b 20 72 65 74 75 72 6e 20 64 6c 6c  me ){ return dll
04b0: 2e 63 6e 74 28 61 6e 61 6d 65 2c 64 6e 61 6d 65  .cnt(aname,dname
04c0: 2c 6d 5f 57 69 6c 64 3d 3d 32 3f 22 2a 2e 2a 22  ,m_Wild==2?"*.*"
04d0: 3a 22 2a 22 29 3b 20 7d 0d 0a 09 62 6f 6f 6c 20  :"*"); }...bool 
04e0: 76 5f 6c 69 73 74 28 20 63 6f 6e 73 74 20 61 72  v_list( const ar
04f0: 63 6e 61 6d 65 26 20 61 6e 61 6d 65 2c 20 61 66  cname& aname, af
0500: 6c 41 72 72 61 79 26 20 66 69 6c 65 73 20 29 7b  lArray& files ){
0510: 20 72 65 74 75 72 6e 20 64 6c 6c 2e 6c 73 74 5f   return dll.lst_
0520: 64 6c 6c 28 61 6e 61 6d 65 2c 66 69 6c 65 73 2c  dll(aname,files,
0530: 6d 5f 57 69 6c 64 3d 3d 32 3f 22 2a 2e 2a 22 3a  m_Wild==2?"*.*":
0540: 22 2a 22 29 3b 20 7d 0d 0a 0d 0a 09 69 6e 74 20  "*"); }.....int 
0550: 20 76 5f 6c 6f 61 64 28 29 3b 0d 0a 09 69 6e 74   v_load();...int
0560: 20 20 76 5f 6d 65 6c 74 28 20 63 6f 6e 73 74 20    v_melt( const 
0570: 61 72 63 6e 61 6d 65 26 20 61 6e 61 6d 65 2c 20  arcname& aname, 
0580: 63 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 64 64  const kiPath& dd
0590: 69 72 2c 20 63 6f 6e 73 74 20 61 66 6c 41 72 72  ir, const aflArr
05a0: 61 79 2a 20 66 69 6c 65 73 20 29 3b 0d 0a 09 69  ay* files );...i
05b0: 6e 74 20 20 76 5f 63 6f 6d 70 72 65 73 73 28 20  nt  v_compress( 
05c0: 63 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 62 61  const kiPath& ba
05d0: 73 65 2c 20 63 6f 6e 73 74 20 77 66 64 41 72 72  se, const wfdArr
05e0: 61 79 26 20 66 69 6c 65 73 2c 20 63 6f 6e 73 74  ay& files, const
05f0: 20 6b 69 50 61 74 68 26 20 64 64 69 72 2c 20 69   kiPath& ddir, i
0600: 6e 74 20 6d 65 74 68 6f 64 2c 20 62 6f 6f 6c 20  nt method, bool 
0610: 73 66 78 20 29 3b 0d 0a 09 6b 69 53 74 72 20 76  sfx );...kiStr v
0620: 5f 6e 61 6d 65 28 63 6f 6e 73 74 20 63 68 61 72  _name(const char
0630: 2a 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72  *) const { retur
0640: 6e 20 64 6c 6c 2e 6e 61 6d 65 28 29 3b 20 7d 0d  n dll.name(); }.
0650: 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 09 63 6f  ...private:...co
0660: 6e 73 74 20 63 68 61 72 20 2a 6d 5f 45 63 6d 64  nst char *m_Ecmd
0670: 2c 20 2a 6d 5f 58 63 6d 64 2c 20 2a 6d 5f 53 63  , *m_Xcmd, *m_Sc
0680: 6d 64 3b 0d 0a 09 75 6e 73 69 67 6e 65 64 20 69  md;...unsigned i
0690: 6e 74 20 6d 5f 57 69 6c 64 3b 0d 0a 09 69 6e 74  nt m_Wild;...int
06a0: 20 20 63 6d 70 72 28 20 69 6e 74 20 6d 68 64 2c    cmpr( int mhd,
06b0: 20 6b 69 53 74 72 26 20 61 6e 61 6d 65 2c 63 6f   kiStr& aname,co
06c0: 6e 73 74 20 6b 69 50 61 74 68 26 20 74 6f 2c 63  nst kiPath& to,c
06d0: 6f 6e 73 74 20 6b 69 53 74 72 26 20 6c 73 74 20  onst kiStr& lst 
06e0: 29 3b 0d 0a 09 62 6f 6f 6c 20 61 72 63 32 73 66  );...bool arc2sf
06f0: 78 28 20 63 6f 6e 73 74 20 6b 69 53 74 72 26 20  x( const kiStr& 
0700: 61 6e 61 6d 65 20 29 3b 0d 0a 7d 3b 0d 0a 0d 0a  aname );..};....
0710: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
0720: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0730: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f  --------------//
0750: 0d 0a 0d 0a 63 6c 61 73 73 20 43 41 72 63 44 4c  ....class CArcDL
0760: 4c 5f 44 6f 74 53 6c 61 73 68 20 3a 20 70 75 62  L_DotSlash : pub
0770: 6c 69 63 20 43 41 72 63 44 4c 4c 0d 0a 7b 0d 0a  lic CArcDLL..{..
0780: 09 2f 2f 20 22 2e 2f 2d 22 20 82 e2 20 22 2e 2f  .// "./-" .. "./
0790: 40 22 20 82 c6 82 b7 82 e9 82 b1 82 c6 82 c5 82  @" .............
07a0: c6 82 e8 82 a0 82 a6 82 b8 96 b3 97 9d 96 ee 97  ................
07b0: 9d 88 b3 8f 6b 82 b7 82 e9 8c 60 8e ae 0d 0a 09  ....k.....`.....
07c0: 76 69 72 74 75 61 6c 20 76 6f 69 64 20 64 65 63  virtual void dec
07d0: 6f 72 61 74 65 5f 61 64 64 5f 63 6d 70 72 28 20  orate_add_cmpr( 
07e0: 6b 69 53 74 72 26 20 6c 73 74 2c 20 63 6f 6e 73  kiStr& lst, cons
07f0: 74 20 63 68 61 72 2a 20 66 6e 61 6d 65 20 29 3b  t char* fname );
0800: 0d 0a 0d 0a 70 72 6f 74 65 63 74 65 64 3a 0d 0a  ....protected:..
0810: 09 43 41 72 63 44 4c 4c 5f 44 6f 74 53 6c 61 73  .CArcDLL_DotSlas
0820: 68 28 0d 0a 09 09 63 6f 6e 73 74 20 63 68 61 72  h(....const char
0830: 2a 20 20 44 6c 6c 6e 61 6d 65 2c 0d 0a 09 09 63  *  Dllname,....c
0840: 6f 6e 73 74 20 63 68 61 72 2a 20 20 45 78 74 73  onst char*  Exts
0850: 2c 0d 0a 09 09 63 6f 6e 73 74 20 63 68 61 72 2a  ,....const char*
0860: 20 20 45 63 6d 64 2c 0d 0a 09 09 63 6f 6e 73 74    Ecmd,....const
0870: 20 63 68 61 72 2a 20 20 58 63 6d 64 2c 0d 0a 09   char*  Xcmd,...
0880: 09 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 57 69  .unsigned int Wi
0890: 6c 64 3d 31 2c 0d 0a 09 09 63 6f 6e 73 74 20 63  ld=1,....const c
08a0: 68 61 72 2a 20 20 53 63 6d 64 3d 4e 55 4c 4c 20  har*  Scmd=NULL 
08b0: 29 0d 0a 09 09 3a 20 43 41 72 63 44 4c 4c 28 20  )....: CArcDLL( 
08c0: 44 6c 6c 6e 61 6d 65 2c 20 45 78 74 73 2c 20 45  Dllname, Exts, E
08d0: 63 6d 64 2c 20 58 63 6d 64 2c 20 57 69 6c 64 2c  cmd, Xcmd, Wild,
08e0: 20 53 63 6d 64 20 29 20 7b 7d 0d 0a 7d 3b 0d 0a   Scmd ) {}..};..
08f0: 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ..//------------
0900: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0910: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0920: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0930: 2f 2f 0d 0a 0d 0a 63 6c 61 73 73 20 43 41 72 63  //....class CArc
0940: 52 61 72 20 3a 20 70 75 62 6c 69 63 20 43 41 72  Rar : public CAr
0950: 63 44 4c 4c 0d 0a 7b 0d 0a 70 75 62 6c 69 63 3a  cDLL..{..public:
0960: 0d 0a 09 43 41 72 63 52 61 72 28 29 20 3a 20 43  ...CArcRar() : C
0970: 41 72 63 44 4c 4c 28 0d 0a 09 09 22 55 6e 72 61  ArcDLL(...."Unra
0980: 72 33 32 2e 64 6c 6c 22 2c 0d 0a 09 09 22 72 61  r32.dll",...."ra
0990: 72 2e 22 2c 0d 0a 09 09 22 2d 78 22 2c 0d 0a 09  r.",...."-x",...
09a0: 09 22 2d 78 20 2d 73 20 2d 79 20 2d 2d 22 20 29  ."-x -s -y --" )
09b0: 20 7b 7d 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d   {}....private:.
09c0: 0a 09 6b 69 53 74 72 20 76 5f 6e 61 6d 65 28 63  ..kiStr v_name(c
09d0: 6f 6e 73 74 20 63 68 61 72 2a 29 20 63 6f 6e 73  onst char*) cons
09e0: 74 20 7b 20 72 65 74 75 72 6e 20 22 52 41 52 22  t { return "RAR"
09f0: 3b 20 7d 0d 0a 09 2f 2f 20 93 c1 95 ca 82 c9 94  ; }...// .......
0a00: 68 90 b6 0d 0a 09 62 6f 6f 6c 20 76 5f 63 68 65  h.....bool v_che
0a10: 63 6b 28 20 63 6f 6e 73 74 20 6b 69 50 61 74 68  ck( const kiPath
0a20: 26 20 61 6e 61 6d 65 20 29 3b 0d 0a 09 69 6e 74  & aname );...int
0a30: 20 20 76 5f 6d 65 6c 74 28 20 63 6f 6e 73 74 20    v_melt( const 
0a40: 61 72 63 6e 61 6d 65 26 20 61 6e 61 6d 65 2c 20  arcname& aname, 
0a50: 63 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 64 64  const kiPath& dd
0a60: 69 72 2c 20 63 6f 6e 73 74 20 61 66 6c 41 72 72  ir, const aflArr
0a70: 61 79 2a 20 66 69 6c 65 73 20 29 3b 0d 0a 7d 3b  ay* files );..};
0a80: 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....//----------
0a90: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0aa0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0ab0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0ac0: 2d 2d 2f 2f 0d 0a 0d 0a 63 6c 61 73 73 20 43 41  --//....class CA
0ad0: 72 63 55 6e 5a 69 70 20 3a 20 70 75 62 6c 69 63  rcUnZip : public
0ae0: 20 43 41 72 63 44 4c 4c 0d 0a 7b 0d 0a 70 75 62   CArcDLL..{..pub
0af0: 6c 69 63 3a 0d 0a 09 43 41 72 63 55 6e 5a 69 70  lic:...CArcUnZip
0b00: 28 29 20 3a 20 43 41 72 63 44 4c 4c 28 0d 0a 09  () : CArcDLL(...
0b10: 09 22 55 6e 5a 69 70 33 32 2e 64 6c 6c 22 2c 0d  ."UnZip32.dll",.
0b20: 0a 09 09 22 7a 69 70 2e 6a 61 72 2e 22 2c 0d 0a  ..."zip.jar.",..
0b30: 09 09 22 2d 78 22 2c 0d 0a 09 09 22 2d 78 20 2d  .."-x",...."-x -
0b40: 2d 69 20 2d 6f 22 20 29 20 7b 7d 0d 0a 70 72 69  -i -o" ) {}..pri
0b50: 76 61 74 65 3a 0d 0a 09 6b 69 53 74 72 20 76 5f  vate:...kiStr v_
0b60: 6e 61 6d 65 28 63 6f 6e 73 74 20 63 68 61 72 2a  name(const char*
0b70: 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e  ) const { return
0b80: 20 22 5a 49 50 22 3b 20 7d 0d 0a 09 2f 2f 20 93   "ZIP"; }...// .
0b90: c1 95 ca 82 c9 94 68 90 b6 0d 0a 09 69 6e 74 20  ......h.....int 
0ba0: 20 76 5f 6d 65 6c 74 28 20 63 6f 6e 73 74 20 61   v_melt( const a
0bb0: 72 63 6e 61 6d 65 26 20 61 6e 61 6d 65 2c 20 63  rcname& aname, c
0bc0: 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 64 64 69  onst kiPath& ddi
0bd0: 72 2c 20 63 6f 6e 73 74 20 61 66 6c 41 72 72 61  r, const aflArra
0be0: 79 2a 20 66 69 6c 65 73 20 29 3b 0d 0a 7d 3b 0d  y* files );..};.
0bf0: 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...//-----------
0c00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0c10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0c20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0c30: 2d 2f 2f 0d 0a 0d 0a 63 6c 61 73 73 20 43 41 72  -//....class CAr
0c40: 63 4c 7a 68 20 3a 20 70 75 62 6c 69 63 20 43 41  cLzh : public CA
0c50: 72 63 44 4c 4c 0d 0a 7b 0d 0a 70 75 62 6c 69 63  rcDLL..{..public
0c60: 3a 0d 0a 09 43 41 72 63 4c 7a 68 28 29 20 3a 20  :...CArcLzh() : 
0c70: 43 41 72 63 44 4c 4c 28 0d 0a 09 09 22 55 6e 6c  CArcDLL(...."Unl
0c80: 68 61 33 32 2e 64 6c 6c 22 2c 0d 0a 09 09 22 6c  ha32.dll",...."l
0c90: 7a 68 2e 6c 68 61 2e 6c 7a 73 2e 22 2c 0d 0a 09  zh.lha.lzs.",...
0ca0: 09 22 78 20 2d 61 31 20 2d 6a 66 30 22 2c 0d 0a  ."x -a1 -jf0",..
0cb0: 09 09 22 78 20 2d 61 31 20 2d 6a 66 30 20 2d 6a  .."x -a1 -jf0 -j
0cc0: 79 6f 20 2d 70 31 20 2d 6e 20 2d 67 6d 20 2d 2d  yo -p1 -n -gm --
0cd0: 22 2c 0d 0a 09 09 30 2c 0d 0a 09 09 22 73 20 2d  ",....0,...."s -
0ce0: 67 77 33 20 2d 78 31 22 20 29 20 7b 7d 0d 0a 70  gw3 -x1" ) {}..p
0cf0: 72 69 76 61 74 65 3a 0d 0a 09 6b 69 53 74 72 20  rivate:...kiStr 
0d00: 76 5f 6e 61 6d 65 28 63 6f 6e 73 74 20 63 68 61  v_name(const cha
0d10: 72 2a 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75  r*) const { retu
0d20: 72 6e 20 22 4c 5a 48 22 3b 20 7d 0d 0a 09 44 57  rn "LZH"; }...DW
0d30: 4f 52 44 20 73 65 74 5f 63 6d 70 72 5f 6d 68 64  ORD set_cmpr_mhd
0d40: 28 29 3b 0d 0a 09 63 6f 6e 73 74 20 63 68 61 72  ();...const char
0d50: 2a 20 67 65 74 5f 63 6d 70 72 5f 63 6d 64 28 20  * get_cmpr_cmd( 
0d60: 69 6e 74 20 6d 65 74 68 6f 64 20 29 3b 0d 0a 09  int method );...
0d70: 76 6f 69 64 20 64 65 63 6f 72 61 74 65 5f 61 64  void decorate_ad
0d80: 64 5f 63 6d 70 72 28 20 6b 69 53 74 72 26 20 6c  d_cmpr( kiStr& l
0d90: 73 74 2c 20 63 6f 6e 73 74 20 63 68 61 72 2a 20  st, const char* 
0da0: 66 6e 61 6d 65 20 29 3b 0d 0a 09 76 6f 69 64 20  fname );...void 
0db0: 64 65 63 6f 72 61 74 65 5f 61 64 64 5f 6d 65 6c  decorate_add_mel
0dc0: 74 28 20 6b 69 53 74 72 26 20 6c 73 74 2c 20 63  t( kiStr& lst, c
0dd0: 6f 6e 73 74 20 63 68 61 72 2a 20 66 6e 61 6d 65  onst char* fname
0de0: 20 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 2f 2f 2d 2d 2d   );..};....//---
0df0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0e00: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0e10: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0e20: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 63  ---------//....c
0e30: 6c 61 73 73 20 43 41 72 63 5a 69 70 20 3a 20 70  lass CArcZip : p
0e40: 75 62 6c 69 63 20 43 41 72 63 44 4c 4c 0d 0a 7b  ublic CArcDLL..{
0e50: 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 43 41 72 63  ..public:...CArc
0e60: 5a 69 70 28 29 20 3a 20 43 41 72 63 44 4c 4c 28  Zip() : CArcDLL(
0e70: 0d 0a 09 09 22 5a 69 70 33 32 6a 2e 64 6c 6c 22  ...."Zip32j.dll"
0e80: 2c 0d 0a 09 09 22 22 2c 0d 0a 09 09 4e 55 4c 4c  ,...."",....NULL
0e90: 2c 0d 0a 09 09 4e 55 4c 4c 2c 0d 0a 09 09 31 2c  ,....NULL,....1,
0ea0: 0d 0a 09 09 22 2d 2d 73 66 78 22 20 29 20 7b 7d  ...."--sfx" ) {}
0eb0: 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 09 44 57 4f  ..private:...DWO
0ec0: 52 44 20 73 65 74 5f 63 6d 70 72 5f 6d 68 64 28  RD set_cmpr_mhd(
0ed0: 29 3b 0d 0a 09 63 6f 6e 73 74 20 63 68 61 72 2a  );...const char*
0ee0: 20 67 65 74 5f 63 6d 70 72 5f 63 6d 64 28 20 69   get_cmpr_cmd( i
0ef0: 6e 74 20 6d 65 74 68 6f 64 20 29 3b 0d 0a 09 76  nt method );...v
0f00: 6f 69 64 20 64 65 63 6f 72 61 74 65 5f 61 64 64  oid decorate_add
0f10: 5f 63 6d 70 72 28 20 6b 69 53 74 72 26 20 6c 73  _cmpr( kiStr& ls
0f20: 74 2c 20 63 6f 6e 73 74 20 63 68 61 72 2a 20 66  t, const char* f
0f30: 6e 61 6d 65 20 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 2f  name );..};..../
0f40: 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  /---------------
0f50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0f60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0f70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d  -------------//.
0f80: 0a 0d 0a 63 6c 61 73 73 20 43 41 72 63 43 61 62  ...class CArcCab
0f90: 20 3a 20 70 75 62 6c 69 63 20 43 41 72 63 44 4c   : public CArcDL
0fa0: 4c 5f 44 6f 74 53 6c 61 73 68 0d 0a 7b 0d 0a 70  L_DotSlash..{..p
0fb0: 75 62 6c 69 63 3a 0d 0a 09 43 41 72 63 43 61 62  ublic:...CArcCab
0fc0: 28 29 20 3a 20 43 41 72 63 44 4c 4c 5f 44 6f 74  () : CArcDLL_Dot
0fd0: 53 6c 61 73 68 28 0d 0a 09 09 22 43 61 62 33 32  Slash(...."Cab32
0fe0: 2e 64 6c 6c 22 2c 0d 0a 09 09 22 63 61 62 2e 22  .dll",...."cab."
0ff0: 2c 0d 0a 09 09 22 2d 78 22 2c 0d 0a 09 09 22 2d  ,...."-x",...."-
1000: 78 20 2d 69 20 2d 6f 22 2c 0d 0a 09 09 31 2c 0d  x -i -o",....1,.
1010: 0a 09 09 22 2d 66 22 20 29 20 7b 7d 0d 0a 70 72  ..."-f" ) {}..pr
1020: 69 76 61 74 65 3a 0d 0a 09 6b 69 53 74 72 20 76  ivate:...kiStr v
1030: 5f 6e 61 6d 65 28 63 6f 6e 73 74 20 63 68 61 72  _name(const char
1040: 2a 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75 72  *) const { retur
1050: 6e 20 22 43 41 42 22 3b 20 7d 0d 0a 09 44 57 4f  n "CAB"; }...DWO
1060: 52 44 20 73 65 74 5f 63 6d 70 72 5f 6d 68 64 28  RD set_cmpr_mhd(
1070: 29 3b 0d 0a 09 63 6f 6e 73 74 20 63 68 61 72 2a  );...const char*
1080: 20 67 65 74 5f 63 6d 70 72 5f 63 6d 64 28 20 69   get_cmpr_cmd( i
1090: 6e 74 20 6d 65 74 68 6f 64 20 29 3b 0d 0a 7d 3b  nt method );..};
10a0: 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ....//----------
10b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10c0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10d0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
10e0: 2d 2d 2f 2f 0d 0a 0d 0a 63 6c 61 73 73 20 43 41  --//....class CA
10f0: 72 63 54 61 72 20 3a 20 70 75 62 6c 69 63 20 43  rcTar : public C
1100: 41 72 63 44 4c 4c 5f 44 6f 74 53 6c 61 73 68 0d  ArcDLL_DotSlash.
1110: 0a 7b 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 43 41  .{..public:...CA
1120: 72 63 54 61 72 28 29 20 3a 20 43 41 72 63 44 4c  rcTar() : CArcDL
1130: 4c 5f 44 6f 74 53 6c 61 73 68 28 0d 0a 09 09 22  L_DotSlash(...."
1140: 54 61 72 33 32 2e 64 6c 6c 22 2c 0d 0a 09 09 22  Tar32.dll",...."
1150: 74 61 72 2e 74 67 7a 2e 74 62 7a 2e 67 7a 2e 62  tar.tgz.tbz.gz.b
1160: 7a 32 2e 7a 2e 74 61 7a 2e 72 70 6d 2e 64 65 62  z2.z.taz.rpm.deb
1170: 2e 61 72 2e 78 7a 2e 6c 7a 6d 61 2e 22 2c 0d 0a  .ar.xz.lzma.",..
1180: 09 09 22 2d 78 76 66 22 2c 0d 0a 09 09 22 2d 2d  .."-xvf",...."--
1190: 63 68 65 63 6b 2d 61 6c 6c 2d 70 61 74 68 3d 31  check-all-path=1
11a0: 20 2d 2d 64 69 73 70 6c 61 79 2d 64 69 61 6c 6f   --display-dialo
11b0: 67 3d 30 20 2d 78 76 66 22 2c 0d 0a 09 09 32 20  g=0 -xvf",....2 
11c0: 29 20 7b 7d 0d 0a 70 72 69 76 61 74 65 3a 0d 0a  ) {}..private:..
11d0: 09 23 64 65 66 69 6e 65 20 41 52 43 48 49 56 45  .#define ARCHIVE
11e0: 54 59 50 45 5f 4e 4f 52 4d 41 4c 20 30 0d 0a 09  TYPE_NORMAL 0...
11f0: 23 64 65 66 69 6e 65 20 41 52 43 48 49 56 45 54  #define ARCHIVET
1200: 59 50 45 5f 54 41 52 20 31 0d 0a 09 23 64 65 66  YPE_TAR 1...#def
1210: 69 6e 65 20 41 52 43 48 49 56 45 54 59 50 45 5f  ine ARCHIVETYPE_
1220: 54 41 52 47 5a 20 32 0d 0a 09 23 64 65 66 69 6e  TARGZ 2...#defin
1230: 65 20 41 52 43 48 49 56 45 54 59 50 45 5f 54 41  e ARCHIVETYPE_TA
1240: 52 5a 20 33 0d 0a 09 23 64 65 66 69 6e 65 20 41  RZ 3...#define A
1250: 52 43 48 49 56 45 54 59 50 45 5f 47 5a 20 34 0d  RCHIVETYPE_GZ 4.
1260: 0a 09 23 64 65 66 69 6e 65 20 41 52 43 48 49 56  ..#define ARCHIV
1270: 45 54 59 50 45 5f 5a 20 35 0d 0a 09 23 64 65 66  ETYPE_Z 5...#def
1280: 69 6e 65 20 41 52 43 48 49 56 45 54 59 50 45 5f  ine ARCHIVETYPE_
1290: 54 41 52 42 5a 32 20 36 0d 0a 09 23 64 65 66 69  TARBZ2 6...#defi
12a0: 6e 65 20 41 52 43 48 49 56 45 54 59 50 45 5f 42  ne ARCHIVETYPE_B
12b0: 5a 32 09 37 0d 0a 0d 0a 09 23 64 65 66 69 6e 65  Z2.7.....#define
12c0: 20 41 52 43 48 49 56 45 54 59 50 45 5f 43 50 49   ARCHIVETYPE_CPI
12d0: 4f 09 33 32 0d 0a 09 23 64 65 66 69 6e 65 20 41  O.32...#define A
12e0: 52 43 48 49 56 45 54 59 50 45 5f 43 50 49 4f 47  RCHIVETYPE_CPIOG
12f0: 5a 09 33 32 2b 34 0d 0a 09 23 64 65 66 69 6e 65  Z.32+4...#define
1300: 20 41 52 43 48 49 56 45 54 59 50 45 5f 43 50 49   ARCHIVETYPE_CPI
1310: 4f 5a 09 33 32 2b 35 0d 0a 09 23 64 65 66 69 6e  OZ.32+5...#defin
1320: 65 20 41 52 43 48 49 56 45 54 59 50 45 5f 43 50  e ARCHIVETYPE_CP
1330: 49 4f 42 5a 32 09 33 32 2b 37 0d 0a 0d 0a 09 23  IOBZ2.32+7.....#
1340: 64 65 66 69 6e 65 20 41 52 43 48 49 56 45 54 59  define ARCHIVETY
1350: 50 45 5f 41 52 09 09 34 38 0d 0a 09 23 64 65 66  PE_AR..48...#def
1360: 69 6e 65 20 41 52 43 48 49 56 45 54 59 50 45 5f  ine ARCHIVETYPE_
1370: 41 52 47 5a 09 34 38 2b 34 0d 0a 09 23 64 65 66  ARGZ.48+4...#def
1380: 69 6e 65 20 41 52 43 48 49 56 45 54 59 50 45 5f  ine ARCHIVETYPE_
1390: 41 52 5a 09 09 34 38 2b 35 0d 0a 09 23 64 65 66  ARZ..48+5...#def
13a0: 69 6e 65 20 41 52 43 48 49 56 45 54 59 50 45 5f  ine ARCHIVETYPE_
13b0: 41 52 42 5a 32 09 34 38 2b 37 0d 0a 09 6b 69 53  ARBZ2.48+7...kiS
13c0: 74 72 20 76 5f 6e 61 6d 65 28 63 6f 6e 73 74 20  tr v_name(const 
13d0: 63 68 61 72 2a 20 61 6e 29 20 63 6f 6e 73 74 20  char* an) const 
13e0: 7b 20 73 77 69 74 63 68 28 64 6c 6c 2e 61 72 63  { switch(dll.arc
13f0: 74 79 70 65 28 61 6e 29 29 20 7b 0d 0a 09 09 63  type(an)) {....c
1400: 61 73 65 20 41 52 43 48 49 56 45 54 59 50 45 5f  ase ARCHIVETYPE_
1410: 47 5a 3a 20 20 20 20 20 72 65 74 75 72 6e 20 22  GZ:     return "
1420: 47 5a 22 3b 0d 0a 09 09 63 61 73 65 20 41 52 43  GZ";....case ARC
1430: 48 49 56 45 54 59 50 45 5f 5a 3a 20 20 20 20 20  HIVETYPE_Z:     
1440: 20 72 65 74 75 72 6e 20 22 5a 22 3b 0d 0a 09 09   return "Z";....
1450: 63 61 73 65 20 41 52 43 48 49 56 45 54 59 50 45  case ARCHIVETYPE
1460: 5f 42 5a 32 3a 20 20 20 20 72 65 74 75 72 6e 20  _BZ2:    return 
1470: 22 42 5a 32 22 3b 0d 0a 09 09 63 61 73 65 20 41  "BZ2";....case A
1480: 52 43 48 49 56 45 54 59 50 45 5f 54 41 52 47 5a  RCHIVETYPE_TARGZ
1490: 3a 20 20 72 65 74 75 72 6e 20 22 54 41 52 2b 47  :  return "TAR+G
14a0: 5a 22 3b 0d 0a 09 09 63 61 73 65 20 41 52 43 48  Z";....case ARCH
14b0: 49 56 45 54 59 50 45 5f 54 41 52 5a 3a 20 20 20  IVETYPE_TARZ:   
14c0: 72 65 74 75 72 6e 20 22 54 41 52 2b 5a 22 3b 0d  return "TAR+Z";.
14d0: 0a 09 09 63 61 73 65 20 41 52 43 48 49 56 45 54  ...case ARCHIVET
14e0: 59 50 45 5f 54 41 52 42 5a 32 3a 20 72 65 74 75  YPE_TARBZ2: retu
14f0: 72 6e 20 22 54 41 52 2b 42 5a 32 22 3b 0d 0a 09  rn "TAR+BZ2";...
1500: 09 63 61 73 65 20 41 52 43 48 49 56 45 54 59 50  .case ARCHIVETYP
1510: 45 5f 43 50 49 4f 47 5a 3a 20 72 65 74 75 72 6e  E_CPIOGZ: return
1520: 20 6b 69 53 74 72 28 22 72 70 6d 22 29 2e 69 73   kiStr("rpm").is
1530: 53 61 6d 65 28 6b 69 50 61 74 68 3a 3a 65 78 74  Same(kiPath::ext
1540: 28 61 6e 29 29 20 3f 20 22 52 50 4d 22 20 3a 20  (an)) ? "RPM" : 
1550: 22 43 50 49 4f 2b 47 5a 22 3b 0d 0a 09 09 63 61  "CPIO+GZ";....ca
1560: 73 65 20 41 52 43 48 49 56 45 54 59 50 45 5f 43  se ARCHIVETYPE_C
1570: 50 49 4f 5a 3a 20 20 72 65 74 75 72 6e 20 22 43  PIOZ:  return "C
1580: 50 49 4f 2b 5a 22 3b 0d 0a 09 09 63 61 73 65 20  PIO+Z";....case 
1590: 41 52 43 48 49 56 45 54 59 50 45 5f 43 50 49 4f  ARCHIVETYPE_CPIO
15a0: 42 5a 32 3a 72 65 74 75 72 6e 20 22 43 50 49 4f  BZ2:return "CPIO
15b0: 2b 42 5a 32 22 3b 0d 0a 09 09 63 61 73 65 20 41  +BZ2";....case A
15c0: 52 43 48 49 56 45 54 59 50 45 5f 41 52 47 5a 3a  RCHIVETYPE_ARGZ:
15d0: 20 20 20 72 65 74 75 72 6e 20 22 41 52 2b 47 5a     return "AR+GZ
15e0: 22 3b 0d 0a 09 09 63 61 73 65 20 41 52 43 48 49  ";....case ARCHI
15f0: 56 45 54 59 50 45 5f 41 52 5a 3a 20 20 20 20 72  VETYPE_ARZ:    r
1600: 65 74 75 72 6e 20 22 41 52 2b 5a 22 3b 0d 0a 09  eturn "AR+Z";...
1610: 09 63 61 73 65 20 41 52 43 48 49 56 45 54 59 50  .case ARCHIVETYP
1620: 45 5f 41 52 42 5a 32 3a 20 20 72 65 74 75 72 6e  E_ARBZ2:  return
1630: 20 22 41 52 2b 42 5a 32 22 3b 0d 0a 09 09 63 61   "AR+BZ2";....ca
1640: 73 65 20 41 52 43 48 49 56 45 54 59 50 45 5f 41  se ARCHIVETYPE_A
1650: 52 3a 20 20 20 20 20 72 65 74 75 72 6e 20 22 41  R:     return "A
1660: 52 22 3b 0d 0a 09 09 63 61 73 65 20 41 52 43 48  R";....case ARCH
1670: 49 56 45 54 59 50 45 5f 43 50 49 4f 3a 20 20 20  IVETYPE_CPIO:   
1680: 72 65 74 75 72 6e 20 22 43 50 49 4f 22 3b 0d 0a  return "CPIO";..
1690: 09 09 64 65 66 61 75 6c 74 3a 20 20 20 20 20 20  ..default:      
16a0: 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72             retur
16b0: 6e 20 22 54 41 52 22 3b 0d 0a 09 7d 7d 0d 0a 09  n "TAR";...}}...
16c0: 63 6f 6e 73 74 20 63 68 61 72 2a 20 67 65 74 5f  const char* get_
16d0: 63 6d 70 72 5f 65 78 74 28 20 69 6e 74 20 6d 65  cmpr_ext( int me
16e0: 74 68 6f 64 20 29 3b 0d 0a 09 44 57 4f 52 44 20  thod );...DWORD 
16f0: 73 65 74 5f 63 6d 70 72 5f 6d 68 64 28 29 3b 0d  set_cmpr_mhd();.
1700: 0a 09 63 6f 6e 73 74 20 63 68 61 72 2a 20 67 65  ..const char* ge
1710: 74 5f 63 6d 70 72 5f 63 6d 64 28 20 69 6e 74 20  t_cmpr_cmd( int 
1720: 6d 65 74 68 6f 64 20 29 3b 0d 0a 7d 3b 0d 0a 0d  method );..};...
1730: 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .//-------------
1740: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1750: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1760: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f  ---------------/
1770: 2f 0d 0a 0d 0a 63 6c 61 73 73 20 43 41 72 63 42  /....class CArcB
1780: 67 61 20 3a 20 70 75 62 6c 69 63 20 43 41 72 63  ga : public CArc
1790: 44 4c 4c 5f 44 6f 74 53 6c 61 73 68 0d 0a 7b 0d  DLL_DotSlash..{.
17a0: 0a 70 75 62 6c 69 63 3a 0d 0a 09 43 41 72 63 42  .public:...CArcB
17b0: 67 61 28 29 20 3a 20 43 41 72 63 44 4c 4c 5f 44  ga() : CArcDLL_D
17c0: 6f 74 53 6c 61 73 68 28 0d 0a 09 09 22 42 67 61  otSlash(...."Bga
17d0: 33 32 2e 64 6c 6c 22 2c 0d 0a 09 09 22 67 7a 61  32.dll",...."gza
17e0: 2e 62 7a 61 2e 22 2c 0d 0a 09 09 22 78 20 2d 61  .bza.",...."x -a
17f0: 22 2c 0d 0a 09 09 22 78 20 2d 61 20 2d 69 20 2d  ",...."x -a -i -
1800: 6f 22 2c 0d 0a 09 09 30 2c 0d 0a 09 09 22 73 22  o",....0,...."s"
1810: 20 29 20 7b 7d 0d 0a 70 72 69 76 61 74 65 3a 0d   ) {}..private:.
1820: 0a 09 6b 69 53 74 72 20 76 5f 6e 61 6d 65 28 63  ..kiStr v_name(c
1830: 6f 6e 73 74 20 63 68 61 72 2a 20 61 6e 29 20 63  onst char* an) c
1840: 6f 6e 73 74 20 7b 20 72 65 74 75 72 6e 20 64 6c  onst { return dl
1850: 6c 2e 61 72 63 74 79 70 65 28 61 6e 29 3d 3d 32  l.arctype(an)==2
1860: 20 3f 20 22 42 5a 41 22 20 3a 20 22 47 5a 41 22   ? "BZA" : "GZA"
1870: 3b 20 7d 0d 0a 09 63 6f 6e 73 74 20 63 68 61 72  ; }...const char
1880: 2a 20 67 65 74 5f 63 6d 70 72 5f 65 78 74 28 20  * get_cmpr_ext( 
1890: 69 6e 74 20 6d 65 74 68 6f 64 20 29 3b 0d 0a 09  int method );...
18a0: 44 57 4f 52 44 20 73 65 74 5f 63 6d 70 72 5f 6d  DWORD set_cmpr_m
18b0: 68 64 28 29 3b 0d 0a 09 63 6f 6e 73 74 20 63 68  hd();...const ch
18c0: 61 72 2a 20 67 65 74 5f 63 6d 70 72 5f 63 6d 64  ar* get_cmpr_cmd
18d0: 28 20 69 6e 74 20 6d 65 74 68 6f 64 20 29 3b 0d  ( int method );.
18e0: 0a 7d 3b 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d  .};....//-------
18f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1900: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1910: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1920: 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 63 6c 61 73 73  -----//....class
1930: 20 43 41 72 63 59 7a 31 20 3a 20 70 75 62 6c 69   CArcYz1 : publi
1940: 63 20 43 41 72 63 44 4c 4c 0d 0a 7b 0d 0a 70 75  c CArcDLL..{..pu
1950: 62 6c 69 63 3a 0d 0a 09 43 41 72 63 59 7a 31 28  blic:...CArcYz1(
1960: 29 20 3a 20 43 41 72 63 44 4c 4c 28 0d 0a 09 09  ) : CArcDLL(....
1970: 22 59 7a 31 2e 64 6c 6c 22 2c 0d 0a 09 09 22 79  "Yz1.dll",...."y
1980: 7a 31 2e 22 2c 0d 0a 09 09 22 78 22 2c 0d 0a 09  z1.",...."x",...
1990: 09 22 78 20 2d 79 20 2d 7a 20 2d 69 32 20 2d 2d  ."x -y -z -i2 --
19a0: 22 2c 0d 0a 09 09 30 2c 0d 0a 09 09 22 73 22 20  ",....0,...."s" 
19b0: 29 20 7b 7d 0d 0a 70 72 69 76 61 74 65 3a 0d 0a  ) {}..private:..
19c0: 09 6b 69 53 74 72 20 76 5f 6e 61 6d 65 28 63 6f  .kiStr v_name(co
19d0: 6e 73 74 20 63 68 61 72 2a 29 20 63 6f 6e 73 74  nst char*) const
19e0: 20 7b 20 72 65 74 75 72 6e 20 22 59 5a 31 22 3b   { return "YZ1";
19f0: 20 7d 0d 0a 09 44 57 4f 52 44 20 73 65 74 5f 63   }...DWORD set_c
1a00: 6d 70 72 5f 6d 68 64 28 29 3b 0d 0a 09 63 6f 6e  mpr_mhd();...con
1a10: 73 74 20 63 68 61 72 2a 20 67 65 74 5f 63 6d 70  st char* get_cmp
1a20: 72 5f 63 6d 64 28 20 69 6e 74 20 6d 65 74 68 6f  r_cmd( int metho
1a30: 64 20 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 2f 2f 2d 2d  d );..};....//--
1a40: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1a70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a  ----------//....
1a80: 63 6c 61 73 73 20 43 41 72 63 41 72 6a 20 3a 20  class CArcArj : 
1a90: 70 75 62 6c 69 63 20 43 41 72 63 44 4c 4c 0d 0a  public CArcDLL..
1aa0: 7b 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 43 41 72  {..public:...CAr
1ab0: 63 41 72 6a 28 29 20 3a 20 43 41 72 63 44 4c 4c  cArj() : CArcDLL
1ac0: 0d 0a 09 09 28 20 22 55 6e 61 72 6a 33 32 6a 2e  ....( "Unarj32j.
1ad0: 64 6c 6c 22 2c 20 22 61 72 6a 2e 22 2c 20 22 78  dll", "arj.", "x
1ae0: 20 2d 6a 79 63 22 2c 20 22 78 20 2d 79 20 2d 70   -jyc", "x -y -p
1af0: 20 2d 68 6d 20 2d 69 20 2d 21 22 20 29 20 7b 7d   -hm -i -!" ) {}
1b00: 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 09 6b  ....private:...k
1b10: 69 53 74 72 20 76 5f 6e 61 6d 65 28 63 6f 6e 73  iStr v_name(cons
1b20: 74 20 63 68 61 72 2a 29 20 63 6f 6e 73 74 20 7b  t char*) const {
1b30: 20 72 65 74 75 72 6e 20 22 41 52 4a 22 3b 20 7d   return "ARJ"; }
1b40: 0d 0a 7d 3b 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d  ..};....//------
1b50: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1b60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1b70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1b80: 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 63 6c 61 73  ------//....clas
1b90: 73 20 43 41 72 63 47 63 61 20 3a 20 70 75 62 6c  s CArcGca : publ
1ba0: 69 63 20 43 41 72 63 44 4c 4c 0d 0a 7b 0d 0a 70  ic CArcDLL..{..p
1bb0: 75 62 6c 69 63 3a 0d 0a 09 43 41 72 63 47 63 61  ublic:...CArcGca
1bc0: 28 29 20 3a 20 43 41 72 63 44 4c 4c 0d 0a 09 09  () : CArcDLL....
1bd0: 28 20 22 55 6e 47 43 41 33 32 2e 64 6c 6c 22 2c  ( "UnGCA32.dll",
1be0: 20 22 67 63 61 2e 22 2c 20 22 65 20 2d 73 78 31   "gca.", "e -sx1
1bf0: 22 2c 20 22 65 78 20 2d 78 78 31 20 2d 73 78 30  ", "ex -xx1 -sx0
1c00: 20 2d 79 78 30 22 20 29 20 7b 7d 0d 0a 0d 0a 70   -yx0" ) {}....p
1c10: 72 69 76 61 74 65 3a 0d 0a 09 6b 69 53 74 72 20  rivate:...kiStr 
1c20: 76 5f 6e 61 6d 65 28 63 6f 6e 73 74 20 63 68 61  v_name(const cha
1c30: 72 2a 29 20 63 6f 6e 73 74 20 7b 20 72 65 74 75  r*) const { retu
1c40: 72 6e 20 22 47 43 41 22 3b 20 7d 0d 0a 7d 3b 0d  rn "GCA"; }..};.
1c50: 0a 0d 0a 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ...//-----------
1c60: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1c70: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1c80: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1c90: 2d 2f 2f 0d 0a 0d 0a 63 6c 61 73 73 20 43 41 72  -//....class CAr
1ca0: 63 37 7a 20 3a 20 70 75 62 6c 69 63 20 43 41 72  c7z : public CAr
1cb0: 63 44 4c 4c 5f 44 6f 74 53 6c 61 73 68 0d 0a 7b  cDLL_DotSlash..{
1cc0: 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 43 41 72 63  ..public:...CArc
1cd0: 37 7a 28 29 20 3a 20 43 41 72 63 44 4c 4c 5f 44  7z() : CArcDLL_D
1ce0: 6f 74 53 6c 61 73 68 28 0d 0a 09 09 22 37 2d 7a  otSlash(...."7-z
1cf0: 69 70 33 32 2e 64 6c 6c 22 2c 0d 0a 09 09 22 37  ip32.dll",...."7
1d00: 7a 2e 7a 69 70 2e 6a 61 72 2e 22 2c 0d 0a 09 09  z.zip.jar.",....
1d10: 22 78 20 2d 2d 22 2c 0d 0a 09 09 22 78 20 2d 79  "x --",...."x -y
1d20: 20 2d 68 69 64 65 20 2d 2d 22 2c 0d 0a 09 09 31   -hide --",....1
1d30: 2c 0d 0a 09 09 22 22 20 29 20 7b 7d 0d 0a 70 72  ,...."" ) {}..pr
1d40: 69 76 61 74 65 3a 0d 0a 09 6b 69 53 74 72 20 76  ivate:...kiStr v
1d50: 5f 6e 61 6d 65 28 63 6f 6e 73 74 20 63 68 61 72  _name(const char
1d60: 2a 20 61 6e 29 20 63 6f 6e 73 74 20 7b 20 72 65  * an) const { re
1d70: 74 75 72 6e 20 64 6c 6c 2e 61 72 63 74 79 70 65  turn dll.arctype
1d80: 28 61 6e 29 3d 3d 31 20 3f 20 22 5a 49 50 22 20  (an)==1 ? "ZIP" 
1d90: 3a 20 22 37 5a 22 3b 20 7d 0d 0a 09 44 57 4f 52  : "7Z"; }...DWOR
1da0: 44 20 73 65 74 5f 63 6d 70 72 5f 6d 68 64 28 29  D set_cmpr_mhd()
1db0: 3b 0d 0a 09 63 6f 6e 73 74 20 63 68 61 72 2a 20  ;...const char* 
1dc0: 67 65 74 5f 63 6d 70 72 5f 63 6d 64 28 20 69 6e  get_cmpr_cmd( in
1dd0: 74 20 6d 65 74 68 6f 64 20 29 3b 0d 0a 09 63 6f  t method );...co
1de0: 6e 73 74 20 63 68 61 72 2a 20 67 65 74 5f 63 6d  nst char* get_cm
1df0: 70 72 5f 65 78 74 28 20 69 6e 74 20 6d 65 74 68  pr_ext( int meth
1e00: 6f 64 20 29 3b 0d 0a 09 76 69 72 74 75 61 6c 20  od );...virtual 
1e10: 69 6e 74 20 76 5f 63 6f 6d 70 72 65 73 73 28 20  int v_compress( 
1e20: 63 6f 6e 73 74 20 6b 69 50 61 74 68 26 20 62 61  const kiPath& ba
1e30: 73 65 2c 20 63 6f 6e 73 74 20 77 66 64 41 72 72  se, const wfdArr
1e40: 61 79 26 20 66 69 6c 65 73 2c 20 63 6f 6e 73 74  ay& files, const
1e50: 20 6b 69 50 61 74 68 26 20 64 64 69 72 2c 20 69   kiPath& ddir, i
1e60: 6e 74 20 6d 65 74 68 6f 64 2c 20 62 6f 6f 6c 20  nt method, bool 
1e70: 73 66 78 20 29 3b 0d 0a 09 62 6f 6f 6c 20 6d 5f  sfx );...bool m_
1e80: 53 66 78 4d 6f 64 65 3b 0d 0a 7d 3b 0d 0a 0d 0a  SfxMode;..};....
1e90: 2f 2f 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  //--------------
1ea0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1eb0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1ec0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f  --------------//
1ed0: 0d 0a 0d 0a 63 6c 61 73 73 20 43 41 72 63 37 7a  ....class CArc7z
1ee0: 5a 69 70 20 3a 20 70 75 62 6c 69 63 20 43 41 72  Zip : public CAr
1ef0: 63 44 4c 4c 5f 44 6f 74 53 6c 61 73 68 0d 0a 7b  cDLL_DotSlash..{
1f00: 0d 0a 70 75 62 6c 69 63 3a 0d 0a 09 43 41 72 63  ..public:...CArc
1f10: 37 7a 5a 69 70 28 29 20 3a 20 43 41 72 63 44 4c  7zZip() : CArcDL
1f20: 4c 5f 44 6f 74 53 6c 61 73 68 28 0d 0a 09 09 22  L_DotSlash(...."
1f30: 37 2d 7a 69 70 33 32 2e 64 6c 6c 22 2c 0d 0a 09  7-zip32.dll",...
1f40: 09 22 22 2c 4e 55 4c 4c 2c 4e 55 4c 4c 2c 31 2c  ."",NULL,NULL,1,
1f50: 22 22 20 29 20 7b 7d 0d 0a 70 72 69 76 61 74 65  "" ) {}..private
1f60: 3a 0d 0a 09 44 57 4f 52 44 20 73 65 74 5f 63 6d  :...DWORD set_cm
1f70: 70 72 5f 6d 68 64 28 29 3b 0d 0a 09 63 6f 6e 73  pr_mhd();...cons
1f80: 74 20 63 68 61 72 2a 20 67 65 74 5f 63 6d 70 72  t char* get_cmpr
1f90: 5f 63 6d 64 28 20 69 6e 74 20 6d 65 74 68 6f 64  _cmd( int method
1fa0: 20 29 3b 0d 0a 09 76 69 72 74 75 61 6c 20 62 6f   );...virtual bo
1fb0: 6f 6c 20 76 5f 76 65 72 28 20 6b 69 53 74 72 26  ol v_ver( kiStr&
1fc0: 20 29 7b 72 65 74 75 72 6e 20 66 61 6c 73 65 3b   ){return false;
1fd0: 7d 2f 2f 43 41 72 63 37 7a 82 c9 94 43 82 b9 82  }//CArc7z...C...
1fe0: e9 0d 0a 09 76 69 72 74 75 61 6c 20 69 6e 74 20  ....virtual int 
1ff0: 76 5f 63 6f 6d 70 72 65 73 73 28 20 63 6f 6e 73  v_compress( cons
2000: 74 20 6b 69 50 61 74 68 26 20 62 61 73 65 2c 20  t kiPath& base, 
2010: 63 6f 6e 73 74 20 77 66 64 41 72 72 61 79 26 20  const wfdArray& 
2020: 66 69 6c 65 73 2c 20 63 6f 6e 73 74 20 6b 69 50  files, const kiP
2030: 61 74 68 26 20 64 64 69 72 2c 20 69 6e 74 20 6d  ath& ddir, int m
2040: 65 74 68 6f 64 2c 20 62 6f 6f 6c 20 73 66 78 20  ethod, bool sfx 
2050: 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 2f 2f 2d 2d 2d 2d  );..};....//----
2060: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2070: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2080: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
2090: 2d 2d 2d 2d 2d 2d 2d 2d 2f 2f 0d 0a 0d 0a 23 65  --------//....#e
20a0: 6e 64 69 66 0d 0a                                ndif..