Hex Artifact Content

Not logged in

Artifact fcaa4b48ba621d24c91cb8fc4f69fc4ff092b925:


0000: 0d 0a 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61  ..#include "stda
0010: 66 78 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20  fx.h"..#include 
0020: 22 4e 6f 61 68 41 70 70 2e 68 22 0d 0a 23 69 6e  "NoahApp.h"..#in
0030: 63 6c 75 64 65 20 22 53 75 62 44 6c 67 2e 68 22  clude "SubDlg.h"
0040: 0d 0a 0d 0a 69 6e 74 20 43 41 72 63 56 69 65 77  ....int CArcView
0050: 44 6c 67 3a 3a 73 74 5f 6e 4c 69 66 65 3b 0d 0a  Dlg::st_nLife;..
0060: 0d 0a 42 4f 4f 4c 20 43 41 72 63 56 69 65 77 44  ..BOOL CArcViewD
0070: 6c 67 3a 3a 6f 6e 49 6e 69 74 28 29 0d 0a 7b 0d  lg::onInit()..{.
0080: 0a 09 63 68 61 72 20 63 73 74 72 5b 31 30 30 5d  ..char cstr[100]
0090: 3b 0d 0a 09 6b 69 53 74 72 20 73 74 72 3b 0d 0a  ;...kiStr str;..
00a0: 09 6b 69 50 61 74 68 20 70 61 74 68 3b 0d 0a 09  .kiPath path;...
00b0: 53 48 46 49 4c 45 49 4e 46 4f 20 73 66 69 2c 6c  SHFILEINFO sfi,l
00c0: 66 69 3b 0d 0a 09 48 49 4d 41 47 45 4c 49 53 54  fi;...HIMAGELIST
00d0: 20 68 49 6d 53 2c 68 49 6d 4c 3b 0d 0a 09 6b 69   hImS,hImL;...ki
00e0: 4c 69 73 74 56 69 65 77 20 63 74 72 6c 28 20 74  ListView ctrl( t
00f0: 68 69 73 2c 20 49 44 43 5f 46 49 4c 45 4c 49 53  his, IDC_FILELIS
0100: 54 20 29 3b 0d 0a 09 5f 5f 69 6e 74 36 34 20 66  T );...__int64 f
0110: 69 6c 65 73 69 7a 65 5f 73 75 6d 20 3d 20 30 3b  ilesize_sum = 0;
0120: 0d 0a 0d 0a 09 2f 2f 2d 2d 20 83 5f 83 43 83 41  .....//-- ._.C.A
0130: 83 8d 83 4f 88 ea 8c c2 90 b6 90 ac 82 cc 88 f3  ...O............
0140: 0d 0a 09 68 65 6c 6c 6f 28 29 3b 0d 0a 09 6d 5f  ...hello();...m_
0150: 62 53 6d 61 6c 6c 46 69 72 73 74 5b 30 5d 20 3d  bSmallFirst[0] =
0160: 20 6d 5f 62 53 6d 61 6c 6c 46 69 72 73 74 5b 31   m_bSmallFirst[1
0170: 5d 20 3d 20 6d 5f 62 53 6d 61 6c 6c 46 69 72 73  ] = m_bSmallFirs
0180: 74 5b 32 5d 20 3d 0d 0a 09 6d 5f 62 53 6d 61 6c  t[2] =...m_bSmal
0190: 6c 46 69 72 73 74 5b 33 5d 20 3d 20 6d 5f 62 53  lFirst[3] = m_bS
01a0: 6d 61 6c 6c 46 69 72 73 74 5b 34 5d 20 3d 20 6d  mallFirst[4] = m
01b0: 5f 62 53 6d 61 6c 6c 46 69 72 73 74 5b 35 5d 20  _bSmallFirst[5] 
01c0: 3d 20 74 72 75 65 3b 0d 0a 0d 0a 09 2f 2f 2d 2d  = true;.....//--
01d0: 20 90 5e 82 f1 92 86 82 c9 81 95 91 4f 82 c9 0d   .^.........O...
01e0: 0a 09 73 65 74 43 65 6e 74 65 72 28 20 68 77 6e  ..setCenter( hwn
01f0: 64 28 29 2c 20 61 70 70 28 29 2d 3e 6d 61 69 6e  d(), app()->main
0200: 68 77 6e 64 28 29 20 29 3b 0d 0a 09 73 65 74 46  hwnd() );...setF
0210: 72 6f 6e 74 28 20 68 77 6e 64 28 29 20 29 3b 0d  ront( hwnd() );.
0220: 0a 0d 0a 09 2f 2f 2d 2d 20 83 41 83 43 83 52 83  ....//-- .A.C.R.
0230: 93 0d 0a 09 70 61 74 68 20 3d 20 6d 5f 66 6e 61  ....path = m_fna
0240: 6d 65 2e 62 61 73 65 64 69 72 2c 20 70 61 74 68  me.basedir, path
0250: 20 2b 3d 20 6d 5f 66 6e 61 6d 65 2e 73 6e 61 6d   += m_fname.snam
0260: 65 3b 0d 0a 09 68 49 6d 53 20 3d 20 28 48 49 4d  e;...hImS = (HIM
0270: 41 47 45 4c 49 53 54 29 3a 3a 53 48 47 65 74 46  AGELIST)::SHGetF
0280: 69 6c 65 49 6e 66 6f 28 20 70 61 74 68 2c 20 30  ileInfo( path, 0
0290: 2c 20 26 73 66 69 2c 20 73 69 7a 65 6f 66 28 73  , &sfi, sizeof(s
02a0: 66 69 29 2c 20 53 48 47 46 49 5f 53 59 53 49 43  fi), SHGFI_SYSIC
02b0: 4f 4e 49 4e 44 45 58 20 7c 20 53 48 47 46 49 5f  ONINDEX | SHGFI_
02c0: 49 43 4f 4e 20 7c 20 53 48 47 46 49 5f 53 4d 41  ICON | SHGFI_SMA
02d0: 4c 4c 49 43 4f 4e 20 29 3b 0d 0a 09 68 49 6d 4c  LLICON );...hImL
02e0: 20 3d 20 28 48 49 4d 41 47 45 4c 49 53 54 29 3a   = (HIMAGELIST):
02f0: 3a 53 48 47 65 74 46 69 6c 65 49 6e 66 6f 28 20  :SHGetFileInfo( 
0300: 70 61 74 68 2c 20 30 2c 20 26 6c 66 69 2c 20 73  path, 0, &lfi, s
0310: 69 7a 65 6f 66 28 6c 66 69 29 2c 20 53 48 47 46  izeof(lfi), SHGF
0320: 49 5f 53 59 53 49 43 4f 4e 49 4e 44 45 58 20 7c  I_SYSICONINDEX |
0330: 20 53 48 47 46 49 5f 49 43 4f 4e 20 7c 20 53 48   SHGFI_ICON | SH
0340: 47 46 49 5f 4c 41 52 47 45 49 43 4f 4e 20 29 3b  GFI_LARGEICON );
0350: 0d 0a 09 73 65 6e 64 4d 73 67 28 20 57 4d 5f 53  ...sendMsg( WM_S
0360: 45 54 49 43 4f 4e 2c 20 49 43 4f 4e 5f 42 49 47  ETICON, ICON_BIG
0370: 2c 20 20 20 28 4c 50 41 52 41 4d 29 6c 66 69 2e  ,   (LPARAM)lfi.
0380: 68 49 63 6f 6e 20 29 3b 0d 0a 09 73 65 6e 64 4d  hIcon );...sendM
0390: 73 67 28 20 57 4d 5f 53 45 54 49 43 4f 4e 2c 20  sg( WM_SETICON, 
03a0: 49 43 4f 4e 5f 53 4d 41 4c 4c 2c 20 28 4c 50 41  ICON_SMALL, (LPA
03b0: 52 41 4d 29 73 66 69 2e 68 49 63 6f 6e 20 29 3b  RAM)sfi.hIcon );
03c0: 0d 0a 0d 0a 09 2f 2f 2d 2d 20 83 5e 83 43 83 67  .....//-- .^.C.g
03d0: 83 8b 0d 0a 09 73 65 6e 64 4d 73 67 28 20 57 4d  .....sendMsg( WM
03e0: 5f 53 45 54 54 45 58 54 2c 20 30 2c 20 28 4c 50  _SETTEXT, 0, (LP
03f0: 41 52 41 4d 29 6b 69 50 61 74 68 28 6d 5f 66 6e  ARAM)kiPath(m_fn
0400: 61 6d 65 2e 6c 6e 61 6d 65 29 2e 6e 61 6d 65 28  ame.lname).name(
0410: 29 20 29 3b 0d 0a 0d 0a 09 2f 2f 2d 2d 20 89 f0  ) );.....//-- ..
0420: 93 80 90 e6 0d 0a 09 73 65 6e 64 4d 73 67 54 6f  .......sendMsgTo
0430: 49 74 65 6d 28 20 49 44 43 5f 44 44 49 52 2c 20  Item( IDC_DDIR, 
0440: 57 4d 5f 53 45 54 54 45 58 54 2c 20 30 2c 20 28  WM_SETTEXT, 0, (
0450: 4c 50 41 52 41 4d 29 28 63 6f 6e 73 74 20 63 68  LPARAM)(const ch
0460: 61 72 2a 29 6d 5f 64 64 69 72 20 29 3b 0d 0a 0d  ar*)m_ddir );...
0470: 0a 09 2f 2f 2d 2d 20 83 8a 83 58 83 67 0d 0a 09  ..//-- ...X.g...
0480: 69 66 28 20 21 6d 5f 70 41 72 63 2d 3e 6c 69 73  if( !m_pArc->lis
0490: 74 28 20 6d 5f 66 6e 61 6d 65 2c 20 6d 5f 66 69  t( m_fname, m_fi
04a0: 6c 65 73 20 29 20 7c 7c 20 6d 5f 66 69 6c 65 73  les ) || m_files
04b0: 2e 6c 65 6e 28 29 3d 3d 30 20 29 0d 0a 09 7b 0d  .len()==0 )...{.
04c0: 0a 09 09 6d 5f 62 41 62 6c 65 20 3d 20 66 61 6c  ...m_bAble = fal
04d0: 73 65 3b 0d 0a 09 09 63 74 72 6c 2e 69 6e 73 65  se;....ctrl.inse
04e0: 72 74 43 6f 6c 75 6d 6e 28 20 30 2c 20 22 22 2c  rtColumn( 0, "",
04f0: 20 35 31 30 20 29 3b 0d 0a 09 09 63 74 72 6c 2e   510 );....ctrl.
0500: 69 6e 73 65 72 74 49 74 65 6d 28 20 30 2c 20 73  insertItem( 0, s
0510: 74 72 2e 6c 6f 61 64 52 73 72 63 28 49 44 53 5f  tr.loadRsrc(IDS_
0520: 4e 4f 4c 49 53 54 29 20 29 3b 0d 0a 09 7d 0d 0a  NOLIST) );...}..
0530: 09 65 6c 73 65 0d 0a 09 7b 0d 0a 09 09 6d 5f 62  .else...{....m_b
0540: 41 62 6c 65 20 3d 20 28 20 30 20 21 3d 20 28 6d  Able = ( 0 != (m
0550: 5f 70 41 72 63 2d 3e 61 62 69 6c 69 74 79 28 29  _pArc->ability()
0560: 20 26 20 61 4d 65 6c 74 45 61 63 68 29 20 29 3b   & aMeltEach) );
0570: 0d 0a 0d 0a 09 09 63 74 72 6c 2e 73 65 74 49 6d  ......ctrl.setIm
0580: 61 67 65 4c 69 73 74 28 20 68 49 6d 4c 2c 20 68  ageList( hImL, h
0590: 49 6d 53 20 29 3b 0d 0a 09 09 63 74 72 6c 2e 69  ImS );....ctrl.i
05a0: 6e 73 65 72 74 43 6f 6c 75 6d 6e 28 20 30 2c 20  nsertColumn( 0, 
05b0: 73 74 72 2e 6c 6f 61 64 52 73 72 63 28 49 44 53  str.loadRsrc(IDS
05c0: 5f 46 4e 41 4d 45 29 2c 20 20 20 31 31 30 20 29  _FNAME),   110 )
05d0: 3b 0d 0a 09 09 63 74 72 6c 2e 69 6e 73 65 72 74  ;....ctrl.insert
05e0: 43 6f 6c 75 6d 6e 28 20 31 2c 20 73 74 72 2e 6c  Column( 1, str.l
05f0: 6f 61 64 52 73 72 63 28 49 44 53 5f 53 49 5a 45  oadRsrc(IDS_SIZE
0600: 29 2c 20 20 20 20 37 30 2c 20 20 4c 56 43 46 4d  ),    70,  LVCFM
0610: 54 5f 52 49 47 48 54 20 29 3b 0d 0a 09 09 63 74  T_RIGHT );....ct
0620: 72 6c 2e 69 6e 73 65 72 74 43 6f 6c 75 6d 6e 28  rl.insertColumn(
0630: 20 32 2c 20 73 74 72 2e 6c 6f 61 64 52 73 72 63   2, str.loadRsrc
0640: 28 49 44 53 5f 44 41 54 45 54 49 4d 45 29 2c 31  (IDS_DATETIME),1
0650: 30 30 2c 20 4c 56 43 46 4d 54 5f 52 49 47 48 54  00, LVCFMT_RIGHT
0660: 20 29 3b 0d 0a 09 09 63 74 72 6c 2e 69 6e 73 65   );....ctrl.inse
0670: 72 74 43 6f 6c 75 6d 6e 28 20 33 2c 20 73 74 72  rtColumn( 3, str
0680: 2e 6c 6f 61 64 52 73 72 63 28 49 44 53 5f 52 41  .loadRsrc(IDS_RA
0690: 54 49 4f 29 2c 20 20 20 35 35 2c 20 20 4c 56 43  TIO),   55,  LVC
06a0: 46 4d 54 5f 52 49 47 48 54 20 29 3b 0d 0a 09 09  FMT_RIGHT );....
06b0: 63 74 72 6c 2e 69 6e 73 65 72 74 43 6f 6c 75 6d  ctrl.insertColum
06c0: 6e 28 20 34 2c 20 73 74 72 2e 6c 6f 61 64 52 73  n( 4, str.loadRs
06d0: 72 63 28 49 44 53 5f 4d 45 54 48 4f 44 29 2c 20  rc(IDS_METHOD), 
06e0: 20 35 30 2c 20 20 4c 56 43 46 4d 54 5f 52 49 47   50,  LVCFMT_RIG
06f0: 48 54 20 29 3b 0d 0a 09 09 63 74 72 6c 2e 69 6e  HT );....ctrl.in
0700: 73 65 72 74 43 6f 6c 75 6d 6e 28 20 35 2c 20 73  sertColumn( 5, s
0710: 74 72 2e 6c 6f 61 64 52 73 72 63 28 49 44 53 5f  tr.loadRsrc(IDS_
0720: 50 41 54 48 29 2c 20 20 20 20 31 33 30 20 29 3b  PATH),    130 );
0730: 0d 0a 0d 0a 09 09 46 49 4c 45 54 49 4d 45 20 66  ......FILETIME f
0740: 74 6d 3b 0d 0a 09 09 53 59 53 54 45 4d 54 49 4d  tm;....SYSTEMTIM
0750: 45 20 73 74 6d 3b 0d 0a 0d 0a 09 09 2f 2f 2d 2d  E stm;......//--
0760: 20 83 41 83 43 83 65 83 80 0d 0a 09 09 66 6f 72   .A.C.e......for
0770: 28 20 75 6e 73 69 67 6e 65 64 20 69 6e 74 20 69  ( unsigned int i
0780: 3d 30 2c 6b 3d 30 3b 20 69 21 3d 6d 5f 66 69 6c  =0,k=0; i!=m_fil
0790: 65 73 2e 6c 65 6e 28 29 3b 20 69 2b 2b 20 29 0d  es.len(); i++ ).
07a0: 0a 09 09 09 69 66 28 20 6d 5f 66 69 6c 65 73 5b  ....if( m_files[
07b0: 69 5d 2e 69 73 66 69 6c 65 20 29 0d 0a 09 09 09  i].isfile ).....
07c0: 7b 0d 0a 23 64 65 66 69 6e 65 09 09 09 75 73 69  {..#define...usi
07d0: 7a 20 28 6d 5f 66 69 6c 65 73 5b 69 5d 2e 69 6e  z (m_files[i].in
07e0: 66 2e 64 77 4f 72 69 67 69 6e 61 6c 53 69 7a 65  f.dwOriginalSize
07f0: 29 0d 0a 23 64 65 66 69 6e 65 09 09 09 63 73 69  )..#define...csi
0800: 7a 20 28 6d 5f 66 69 6c 65 73 5b 69 5d 2e 69 6e  z (m_files[i].in
0810: 66 2e 64 77 43 6f 6d 70 72 65 73 73 65 64 53 69  f.dwCompressedSi
0820: 7a 65 29 0d 0a 23 64 65 66 69 6e 65 09 09 09 6d  ze)..#define...m
0830: 65 74 68 6f 64 20 28 6d 5f 66 69 6c 65 73 5b 69  ethod (m_files[i
0840: 5d 2e 69 6e 66 2e 73 7a 4d 6f 64 65 29 0d 0a 23  ].inf.szMode)..#
0850: 64 65 66 69 6e 65 09 09 09 64 61 74 65 20 28 6d  define...date (m
0860: 5f 66 69 6c 65 73 5b 69 5d 2e 69 6e 66 2e 77 44  _files[i].inf.wD
0870: 61 74 65 29 0d 0a 23 64 65 66 69 6e 65 09 09 09  ate)..#define...
0880: 74 69 6d 65 20 28 6d 5f 66 69 6c 65 73 5b 69 5d  time (m_files[i]
0890: 2e 69 6e 66 2e 77 54 69 6d 65 29 0d 0a 09 09 09  .inf.wTime).....
08a0: 09 70 61 74 68 20 3d 20 6d 5f 66 69 6c 65 73 5b  .path = m_files[
08b0: 69 5d 2e 69 6e 66 2e 73 7a 46 69 6c 65 4e 61 6d  i].inf.szFileNam
08c0: 65 3b 0d 0a 0d 0a 09 09 09 09 2f 2f 20 83 74 83  e;........// .t.
08d0: 40 83 43 83 8b 96 bc 0d 0a 09 09 09 09 63 74 72  @.C..........ctr
08e0: 6c 2e 69 6e 73 65 72 74 49 74 65 6d 28 20 6b 2c  l.insertItem( k,
08f0: 20 70 61 74 68 2e 6e 61 6d 65 28 29 2c 0d 0a 09   path.name(),...
0900: 09 09 09 09 28 4c 50 41 52 41 4d 29 28 26 6d 5f  ....(LPARAM)(&m_
0910: 66 69 6c 65 73 5b 69 5d 29 2c 20 6b 69 53 55 74  files[i]), kiSUt
0920: 69 6c 3a 3a 67 65 74 53 79 73 49 63 6f 6e 28 70  il::getSysIcon(p
0930: 61 74 68 2e 65 78 74 28 29 29 20 29 3b 0d 0a 0d  ath.ext()) );...
0940: 0a 09 09 09 09 2f 2f 20 83 54 83 43 83 59 0d 0a  .....// .T.C.Y..
0950: 09 09 09 09 69 66 28 20 75 73 69 7a 20 3d 3d 20  ....if( usiz == 
0960: 30 78 66 66 66 66 66 66 66 66 20 29 0d 0a 09 09  0xffffffff )....
0970: 09 09 09 63 74 72 6c 2e 73 65 74 53 75 62 49 74  ...ctrl.setSubIt
0980: 65 6d 28 20 6b 2c 20 31 2c 20 22 3f 3f 3f 3f 22  em( k, 1, "????"
0990: 20 29 3b 0d 0a 09 09 09 09 65 6c 73 65 0d 0a 09   );......else...
09a0: 09 09 09 09 63 74 72 6c 2e 73 65 74 53 75 62 49  ....ctrl.setSubI
09b0: 74 65 6d 28 20 6b 2c 20 31 2c 20 73 74 72 2e 73  tem( k, 1, str.s
09c0: 65 74 49 6e 74 28 20 75 73 69 7a 2c 74 72 75 65  etInt( usiz,true
09d0: 20 29 20 29 3b 0d 0a 0d 0a 09 09 09 09 2f 2f 20   ) );........// 
09e0: 8e 9e 8a d4 0d 0a 09 09 09 09 69 66 28 20 3a 3a  ..........if( ::
09f0: 44 6f 73 44 61 74 65 54 69 6d 65 54 6f 46 69 6c  DosDateTimeToFil
0a00: 65 54 69 6d 65 28 20 64 61 74 65 2c 20 74 69 6d  eTime( date, tim
0a10: 65 2c 20 26 66 74 6d 20 29 0d 0a 09 09 09 09 20  e, &ftm )...... 
0a20: 26 26 20 3a 3a 46 69 6c 65 54 69 6d 65 54 6f 53  && ::FileTimeToS
0a30: 79 73 74 65 6d 54 69 6d 65 28 20 26 66 74 6d 2c  ystemTime( &ftm,
0a40: 20 26 73 74 6d 20 29 20 29 0d 0a 09 09 09 09 7b   &stm ) )......{
0a50: 0d 0a 09 09 09 09 09 2a 63 73 74 72 3d 30 3b 0d  .......*cstr=0;.
0a60: 0a 09 09 09 09 09 3a 3a 47 65 74 44 61 74 65 46  ......::GetDateF
0a70: 6f 72 6d 61 74 28 20 4c 4f 43 41 4c 45 5f 55 53  ormat( LOCALE_US
0a80: 45 52 5f 44 45 46 41 55 4c 54 2c 20 30 2c 20 26  ER_DEFAULT, 0, &
0a90: 73 74 6d 2c 0d 0a 09 09 09 09 09 09 09 09 09 20  stm,........... 
0aa0: 22 79 79 2f 4d 4d 2f 64 64 22 2c 20 63 73 74 72  "yy/MM/dd", cstr
0ab0: 2c 20 73 69 7a 65 6f 66 28 63 73 74 72 29 20 29  , sizeof(cstr) )
0ac0: 3b 0d 0a 09 09 09 09 09 73 74 72 3d 63 73 74 72  ;.......str=cstr
0ad0: 3b 0d 0a 09 09 09 09 09 3a 3a 47 65 74 54 69 6d  ;.......::GetTim
0ae0: 65 46 6f 72 6d 61 74 28 20 4c 4f 43 41 4c 45 5f  eFormat( LOCALE_
0af0: 55 53 45 52 5f 44 45 46 41 55 4c 54 2c 20 30 2c  USER_DEFAULT, 0,
0b00: 20 26 73 74 6d 2c 0d 0a 09 09 09 09 09 09 09 09   &stm,..........
0b10: 09 20 22 20 48 48 3a 6d 6d 22 2c 20 63 73 74 72  . " HH:mm", cstr
0b20: 2c 20 73 69 7a 65 6f 66 28 63 73 74 72 29 20 29  , sizeof(cstr) )
0b30: 3b 0d 0a 09 09 09 09 09 73 74 72 2b 3d 63 73 74  ;.......str+=cst
0b40: 72 3b 0d 0a 09 09 09 09 09 63 74 72 6c 2e 73 65  r;.......ctrl.se
0b50: 74 53 75 62 49 74 65 6d 28 20 6b 2c 20 32 2c 20  tSubItem( k, 2, 
0b60: 73 74 72 20 29 3b 0d 0a 09 09 09 09 7d 0d 0a 0d  str );......}...
0b70: 0a 09 09 09 09 2f 2f 20 88 b3 8f 6b 97 a6 0d 0a  .....// ...k....
0b80: 09 09 09 09 66 69 6c 65 73 69 7a 65 5f 73 75 6d  ....filesize_sum
0b90: 20 2b 3d 20 75 73 69 7a 3b 0d 0a 09 09 09 09 69   += usiz;......i
0ba0: 66 28 20 75 73 69 7a 3d 3d 30 20 29 09 09 63 74  f( usiz==0 )..ct
0bb0: 72 6c 2e 73 65 74 53 75 62 49 74 65 6d 28 20 6b  rl.setSubItem( k
0bc0: 2c 20 33 2c 20 22 31 30 30 25 22 20 29 3b 0d 0a  , 3, "100%" );..
0bd0: 09 09 09 09 65 6c 73 65 20 69 66 28 20 63 73 69  ....else if( csi
0be0: 7a 3d 3d 30 20 29 09 63 74 72 6c 2e 73 65 74 53  z==0 ).ctrl.setS
0bf0: 75 62 49 74 65 6d 28 20 6b 2c 20 33 2c 20 22 3f  ubItem( k, 3, "?
0c00: 3f 3f 3f 22 20 29 3b 0d 0a 09 09 09 09 65 6c 73  ???" );......els
0c10: 65 09 09 09 09 63 74 72 6c 2e 73 65 74 53 75 62  e....ctrl.setSub
0c20: 49 74 65 6d 28 20 6b 2c 20 33 2c 20 73 74 72 2e  Item( k, 3, str.
0c30: 73 65 74 49 6e 74 28 20 28 69 6e 74 29 28 28 28  setInt( (int)(((
0c40: 5f 5f 69 6e 74 36 34 29 63 73 69 7a 29 2a 31 30  __int64)csiz)*10
0c50: 30 2f 75 73 69 7a 29 20 29 2b 3d 27 25 27 20 29  0/usiz) )+='%' )
0c60: 3b 0d 0a 0d 0a 09 09 09 09 2f 2f 20 83 81 83 5c  ;........// ...\
0c70: 83 62 83 68 0d 0a 09 09 09 09 63 74 72 6c 2e 73  .b.h......ctrl.s
0c80: 65 74 53 75 62 49 74 65 6d 28 20 6b 2c 20 34 2c  etSubItem( k, 4,
0c90: 20 6d 65 74 68 6f 64 20 29 3b 0d 0a 0d 0a 09 09   method );......
0ca0: 09 09 2f 2f 20 83 70 83 58 0d 0a 09 09 09 09 70  ..// .p.X......p
0cb0: 61 74 68 2e 62 65 44 69 72 4f 6e 6c 79 28 29 3b  ath.beDirOnly();
0cc0: 0d 0a 09 09 09 09 63 74 72 6c 2e 73 65 74 53 75  ......ctrl.setSu
0cd0: 62 49 74 65 6d 28 20 6b 2c 20 35 2c 20 70 61 74  bItem( k, 5, pat
0ce0: 68 20 29 3b 0d 0a 0d 0a 09 09 09 09 6b 2b 2b 3b  h );........k++;
0cf0: 0d 0a 0d 0a 23 75 6e 64 65 66 09 09 09 75 73 69  ....#undef...usi
0d00: 7a 0d 0a 23 75 6e 64 65 66 09 09 09 63 73 69 7a  z..#undef...csiz
0d10: 0d 0a 23 75 6e 64 65 66 09 09 09 6d 65 74 68 6f  ..#undef...metho
0d20: 64 0d 0a 23 75 6e 64 65 66 09 09 09 64 61 74 65  d..#undef...date
0d30: 0d 0a 23 75 6e 64 65 66 09 09 09 74 69 6d 65 0d  ..#undef...time.
0d40: 0a 09 09 09 7d 0d 0a 0d 0a 09 09 2f 2f 2d 2d 20  ....}......//-- 
0d50: 83 68 83 89 83 62 83 4f 81 95 83 68 83 8d 83 62  .h...b.O...h...b
0d60: 83 76 83 74 83 48 81 5b 83 7d 83 62 83 67 93 6f  .v.t.H.[.}.b.g.o
0d70: 98 5e 0d 0a 09 09 46 4f 52 4d 41 54 45 54 43 20  .^....FORMATETC 
0d80: 66 6d 74 3b 0d 0a 09 09 66 6d 74 2e 63 66 46 6f  fmt;....fmt.cfFo
0d90: 72 6d 61 74 20 3d 20 43 46 5f 48 44 52 4f 50 3b  rmat = CF_HDROP;
0da0: 0d 0a 09 09 66 6d 74 2e 70 74 64 20 20 20 20 20  ....fmt.ptd     
0db0: 20 3d 20 4e 55 4c 4c 3b 0d 0a 09 09 66 6d 74 2e   = NULL;....fmt.
0dc0: 64 77 41 73 70 65 63 74 20 3d 20 44 56 41 53 50  dwAspect = DVASP
0dd0: 45 43 54 5f 43 4f 4e 54 45 4e 54 3b 0d 0a 09 09  ECT_CONTENT;....
0de0: 66 6d 74 2e 6c 69 6e 64 65 78 20 20 20 3d 20 2d  fmt.lindex   = -
0df0: 31 3b 0d 0a 09 09 66 6d 74 2e 74 79 6d 65 64 20  1;....fmt.tymed 
0e00: 20 20 20 3d 20 54 59 4d 45 44 5f 48 47 4c 4f 42     = TYMED_HGLOB
0e10: 41 4c 3b 0d 0a 09 09 61 64 64 46 6f 72 6d 61 74  AL;....addFormat
0e20: 28 20 66 6d 74 20 29 3b 0d 0a 09 7d 0d 0a 0d 0a  ( fmt );...}....
0e30: 09 2f 2f 2d 2d 20 8f ee 95 f1 20 2d 2d 0d 0a 09  .//-- .... --...
0e40: 63 68 61 72 20 74 6d 70 5b 32 35 35 5d 3b 0d 0a  char tmp[255];..
0e50: 09 6b 69 53 74 72 20 66 75 6c 6c 5f 66 69 6c 65  .kiStr full_file
0e60: 6e 61 6d 65 20 3d 20 6d 5f 66 6e 61 6d 65 2e 62  name = m_fname.b
0e70: 61 73 65 64 69 72 20 2b 20 6d 5f 66 6e 61 6d 65  asedir + m_fname
0e80: 2e 6c 6e 61 6d 65 3b 0d 0a 09 5f 5f 69 6e 74 36  .lname;...__int6
0e90: 34 20 66 69 6c 65 73 69 7a 65 5f 61 72 63 20 3d  4 filesize_arc =
0ea0: 20 6b 69 46 69 6c 65 3a 3a 67 65 74 53 69 7a 65   kiFile::getSize
0eb0: 36 34 28 66 75 6c 6c 5f 66 69 6c 65 6e 61 6d 65  64(full_filename
0ec0: 29 3b 0d 0a 09 69 66 28 20 66 69 6c 65 73 69 7a  );...if( filesiz
0ed0: 65 5f 73 75 6d 3d 3d 30 20 29 20 66 69 6c 65 73  e_sum==0 ) files
0ee0: 69 7a 65 5f 73 75 6d 20 3d 20 31 3b 0d 0a 09 77  ize_sum = 1;...w
0ef0: 73 70 72 69 6e 74 66 28 20 74 6d 70 2c 20 6b 69  sprintf( tmp, ki
0f00: 53 74 72 28 29 2e 6c 6f 61 64 52 73 72 63 28 49  Str().loadRsrc(I
0f10: 44 53 5f 41 52 43 56 49 45 57 5f 4d 53 47 29 2c  DS_ARCVIEW_MSG),
0f20: 0d 0a 09 09 6d 5f 66 69 6c 65 73 2e 6c 65 6e 28  ....m_files.len(
0f30: 29 2c 0d 0a 09 09 28 69 6e 74 29 28 66 69 6c 65  ),....(int)(file
0f40: 73 69 7a 65 5f 61 72 63 2a 31 30 30 20 2f 20 66  size_arc*100 / f
0f50: 69 6c 65 73 69 7a 65 5f 73 75 6d 29 2c 0d 0a 09  ilesize_sum),...
0f60: 09 28 63 6f 6e 73 74 20 63 68 61 72 2a 29 6d 5f  .(const char*)m_
0f70: 70 41 72 63 2d 3e 61 72 63 74 79 70 65 5f 6e 61  pArc->arctype_na
0f80: 6d 65 28 66 75 6c 6c 5f 66 69 6c 65 6e 61 6d 65  me(full_filename
0f90: 29 0d 0a 09 29 3b 0d 0a 09 73 65 6e 64 4d 73 67  )...);...sendMsg
0fa0: 54 6f 49 74 65 6d 28 20 49 44 43 5f 53 54 41 54  ToItem( IDC_STAT
0fb0: 55 53 42 41 52 2c 20 57 4d 5f 53 45 54 54 45 58  USBAR, WM_SETTEX
0fc0: 54 2c 20 30 2c 20 28 6c 6f 6e 67 29 74 6d 70 20  T, 0, (long)tmp 
0fd0: 29 3b 0d 0a 0d 0a 09 69 66 28 20 21 6d 5f 62 41  );.....if( !m_bA
0fe0: 62 6c 65 20 29 0d 0a 09 7b 0d 0a 09 09 73 74 61  ble )...{....sta
0ff0: 74 69 63 20 63 6f 6e 73 74 20 55 49 4e 54 20 69  tic const UINT i
1000: 74 65 6d 73 5b 5d 20 3d 20 7b 20 49 44 43 5f 53  tems[] = { IDC_S
1010: 45 4c 45 43 54 49 4e 56 2c 49 44 43 5f 52 45 46  ELECTINV,IDC_REF
1020: 2c 49 44 43 5f 4d 45 4c 54 45 41 43 48 2c 49 44  ,IDC_MELTEACH,ID
1030: 43 5f 53 48 4f 57 2c 49 44 43 5f 44 44 49 52 20  C_SHOW,IDC_DDIR 
1040: 7d 3b 0d 0a 09 09 66 6f 72 28 20 69 6e 74 20 69  };....for( int i
1050: 3d 30 3b 20 69 21 3d 73 69 7a 65 6f 66 28 69 74  =0; i!=sizeof(it
1060: 65 6d 73 29 2f 73 69 7a 65 6f 66 28 55 49 4e 54  ems)/sizeof(UINT
1070: 29 3b 20 69 2b 2b 20 29 0d 0a 09 09 09 3a 3a 45  ); i++ ).....::E
1080: 6e 61 62 6c 65 57 69 6e 64 6f 77 28 20 69 74 65  nableWindow( ite
1090: 6d 28 69 74 65 6d 73 5b 69 5d 29 2c 20 46 41 4c  m(items[i]), FAL
10a0: 53 45 20 29 3b 0d 0a 09 7d 0d 0a 0d 0a 09 72 65  SE );...}.....re
10b0: 74 75 72 6e 20 46 41 4c 53 45 3b 0d 0a 7d 0d 0a  turn FALSE;..}..
10c0: 0d 0a 62 6f 6f 6c 20 43 41 72 63 56 69 65 77 44  ..bool CArcViewD
10d0: 6c 67 3a 3a 6f 6e 4f 4b 28 29 0d 0a 7b 0d 0a 09  lg::onOK()..{...
10e0: 73 65 74 64 69 72 28 29 3b 0d 0a 09 6d 5f 70 41  setdir();...m_pA
10f0: 72 63 2d 3e 6d 65 6c 74 28 20 6d 5f 66 6e 61 6d  rc->melt( m_fnam
1100: 65 2c 20 6d 5f 64 64 69 72 20 29 3b 0d 0a 09 6d  e, m_ddir );...m
1110: 79 61 70 70 28 29 2e 6f 70 65 6e 5f 66 6f 6c 64  yapp().open_fold
1120: 65 72 28 20 6d 5f 64 64 69 72 2c 20 31 20 29 3b  er( m_ddir, 1 );
1130: 0d 0a 09 6b 69 53 55 74 69 6c 3a 3a 73 77 69 74  ...kiSUtil::swit
1140: 63 68 43 75 72 44 69 72 54 6f 45 78 65 44 69 72  chCurDirToExeDir
1150: 28 29 3b 20 2f 2f 20 94 4f 82 cc 82 bd 82 df 0d  (); // .O.......
1160: 0a 09 72 65 74 75 72 6e 20 6f 6e 43 61 6e 63 65  ..return onCance
1170: 6c 28 29 3b 0d 0a 7d 0d 0a 0d 0a 62 6f 6f 6c 20  l();..}....bool 
1180: 43 41 72 63 56 69 65 77 44 6c 67 3a 3a 6f 6e 43  CArcViewDlg::onC
1190: 61 6e 63 65 6c 28 29 0d 0a 7b 0d 0a 09 3a 3a 53  ancel()..{...::S
11a0: 65 74 43 75 72 72 65 6e 74 44 69 72 65 63 74 6f  etCurrentDirecto
11b0: 72 79 28 20 6d 5f 66 6e 61 6d 65 2e 62 61 73 65  ry( m_fname.base
11c0: 64 69 72 20 29 3b 0d 0a 09 6d 5f 74 64 69 72 2e  dir );...m_tdir.
11d0: 72 65 6d 6f 76 65 28 29 3b 0d 0a 09 69 66 28 20  remove();...if( 
11e0: 6b 69 53 55 74 69 6c 3a 3a 65 78 69 73 74 28 6d  kiSUtil::exist(m
11f0: 5f 74 64 69 72 29 20 29 0d 0a 09 7b 0d 0a 09 09  _tdir) )...{....
1200: 6b 69 53 74 72 20 74 6d 70 28 36 30 30 29 3b 0d  kiStr tmp(600);.
1210: 0a 09 09 69 66 28 20 49 44 4e 4f 3d 3d 61 70 70  ...if( IDNO==app
1220: 28 29 2d 3e 6d 73 67 42 6f 78 28 20 74 6d 70 2e  ()->msgBox( tmp.
1230: 6c 6f 61 64 52 73 72 63 28 49 44 53 5f 45 58 45  loadRsrc(IDS_EXE
1240: 43 55 54 49 4e 47 29 2c 20 4e 55 4c 4c 2c 20 4d  CUTING), NULL, M
1250: 42 5f 59 45 53 4e 4f 7c 4d 42 5f 44 45 46 42 55  B_YESNO|MB_DEFBU
1260: 54 54 4f 4e 32 20 29 20 29 0d 0a 09 09 09 72 65  TTON2 ) ).....re
1270: 74 75 72 6e 20 66 61 6c 73 65 3b 0d 0a 09 7d 0d  turn false;...}.
1280: 0a 0d 0a 09 6b 69 4c 69 73 74 56 69 65 77 28 74  ....kiListView(t
1290: 68 69 73 2c 49 44 43 5f 46 49 4c 45 4c 49 53 54  his,IDC_FILELIST
12a0: 29 2e 73 65 74 49 6d 61 67 65 4c 69 73 74 28 20  ).setImageList( 
12b0: 4e 55 4c 4c 2c 20 4e 55 4c 4c 20 29 3b 0d 0a 09  NULL, NULL );...
12c0: 62 79 65 62 79 65 28 29 3b 0d 0a 09 72 65 74 75  byebye();...retu
12d0: 72 6e 20 74 72 75 65 3b 0d 0a 7d 0d 0a 0d 0a 62  rn true;..}....b
12e0: 6f 6f 6c 20 43 41 72 63 56 69 65 77 44 6c 67 3a  ool CArcViewDlg:
12f0: 3a 67 69 76 65 44 61 74 61 28 20 63 6f 6e 73 74  :giveData( const
1300: 20 46 4f 52 4d 41 54 45 54 43 26 20 66 6d 74 2c   FORMATETC& fmt,
1310: 20 53 54 47 4d 45 44 49 55 4d 2a 20 73 74 67 2c   STGMEDIUM* stg,
1320: 20 62 6f 6f 6c 20 66 69 72 73 74 63 61 6c 6c 20   bool firstcall 
1330: 29 0d 0a 7b 0d 0a 09 69 66 28 20 66 69 72 73 74  )..{...if( first
1340: 63 61 6c 6c 20 29 0d 0a 09 09 69 66 28 20 30 78  call )....if( 0x
1350: 38 30 30 30 3c 3d 6d 5f 70 41 72 63 2d 3e 6d 65  8000<=m_pArc->me
1360: 6c 74 28 20 6d 5f 66 6e 61 6d 65 2c 20 6d 5f 74  lt( m_fname, m_t
1370: 64 69 72 2c 20 26 6d 5f 66 69 6c 65 73 20 29 20  dir, &m_files ) 
1380: 29 0d 0a 09 09 09 72 65 74 75 72 6e 20 66 61 6c  ).....return fal
1390: 73 65 3b 0d 0a 0d 0a 09 75 6e 73 69 67 6e 65 64  se;.....unsigned
13a0: 20 69 6e 74 20 69 3b 0d 0a 09 42 4f 4f 4c 20 66   int i;...BOOL f
13b0: 57 69 64 65 20 3d 20 28 61 70 70 28 29 2d 3e 6f  Wide = (app()->o
13c0: 73 76 65 72 28 29 2e 64 77 50 6c 61 74 66 6f 72  sver().dwPlatfor
13d0: 6d 49 64 3d 3d 56 45 52 5f 50 4c 41 54 46 4f 52  mId==VER_PLATFOR
13e0: 4d 5f 57 49 4e 33 32 5f 4e 54 29 3b 0d 0a 09 6b  M_WIN32_NT);...k
13f0: 69 41 72 72 61 79 3c 6b 69 50 61 74 68 3e 20 6c  iArray<kiPath> l
1400: 73 74 3b 0d 0a 09 6b 69 50 61 74 68 20 74 6d 70  st;...kiPath tmp
1410: 3b 0d 0a 09 69 6e 74 20 66 6c 65 6e 20 3d 20 30  ;...int flen = 0
1420: 3b 0d 0a 09 77 63 68 61 72 5f 74 20 77 62 75 66  ;...wchar_t wbuf
1430: 5b 36 30 30 5d 3b 0d 0a 0d 0a 09 66 6f 72 28 20  [600];.....for( 
1440: 69 3d 30 3b 20 69 21 3d 6d 5f 66 69 6c 65 73 2e  i=0; i!=m_files.
1450: 6c 65 6e 28 29 3b 20 69 2b 2b 20 29 0d 0a 09 09  len(); i++ )....
1460: 69 66 28 20 6d 5f 66 69 6c 65 73 5b 69 5d 2e 73  if( m_files[i].s
1470: 65 6c 65 63 74 65 64 20 29 0d 0a 09 09 7b 0d 0a  elected )....{..
1480: 09 09 09 74 6d 70 20 3d 20 6d 5f 74 64 69 72 3b  ...tmp = m_tdir;
1490: 0d 0a 09 09 09 74 6d 70 20 2b 3d 20 6d 5f 66 69  .....tmp += m_fi
14a0: 6c 65 73 5b 69 5d 2e 69 6e 66 2e 73 7a 46 69 6c  les[i].inf.szFil
14b0: 65 4e 61 6d 65 3b 0d 0a 0d 0a 09 09 09 6c 73 74  eName;.......lst
14c0: 2e 61 64 64 28 20 74 6d 70 20 29 3b 0d 0a 09 09  .add( tmp );....
14d0: 09 69 66 28 20 66 57 69 64 65 20 29 0d 0a 09 09  .if( fWide )....
14e0: 09 09 66 6c 65 6e 20 2b 3d 20 28 3a 3a 4d 75 6c  ..flen += (::Mul
14f0: 74 69 42 79 74 65 54 6f 57 69 64 65 43 68 61 72  tiByteToWideChar
1500: 28 20 43 50 5f 41 43 50 2c 20 30 2c 20 74 6d 70  ( CP_ACP, 0, tmp
1510: 2c 20 2d 31 2c 20 77 62 75 66 2c 20 36 30 30 20  , -1, wbuf, 600 
1520: 29 2b 31 29 2a 32 3b 0d 0a 09 09 09 65 6c 73 65  )+1)*2;.....else
1530: 0d 0a 09 09 09 09 66 6c 65 6e 20 2b 3d 20 28 74  ......flen += (t
1540: 6d 70 2e 6c 65 6e 28 29 2b 31 29 3b 0d 0a 09 09  mp.len()+1);....
1550: 7d 0d 0a 0d 0a 09 48 44 52 4f 50 20 68 44 72 6f  }.....HDROP hDro
1560: 70 20 3d 20 28 48 44 52 4f 50 29 3a 3a 47 6c 6f  p = (HDROP)::Glo
1570: 62 61 6c 41 6c 6c 6f 63 28 20 47 48 4e 44 2c 20  balAlloc( GHND, 
1580: 73 69 7a 65 6f 66 28 44 52 4f 50 46 49 4c 45 53  sizeof(DROPFILES
1590: 29 2b 66 6c 65 6e 2b 31 20 29 3b 0d 0a 0d 0a 09  )+flen+1 );.....
15a0: 44 52 4f 50 46 49 4c 45 53 2a 20 64 72 20 3d 20  DROPFILES* dr = 
15b0: 28 44 52 4f 50 46 49 4c 45 53 2a 29 3a 3a 47 6c  (DROPFILES*)::Gl
15c0: 6f 62 61 6c 4c 6f 63 6b 28 20 68 44 72 6f 70 20  obalLock( hDrop 
15d0: 29 3b 0d 0a 09 64 72 2d 3e 70 46 69 6c 65 73 20  );...dr->pFiles 
15e0: 3d 20 73 69 7a 65 6f 66 28 44 52 4f 50 46 49 4c  = sizeof(DROPFIL
15f0: 45 53 29 3b 0d 0a 09 64 72 2d 3e 70 74 2e 78 20  ES);...dr->pt.x 
1600: 20 20 3d 20 64 72 2d 3e 70 74 2e 79 20 3d 20 30    = dr->pt.y = 0
1610: 3b 0d 0a 09 64 72 2d 3e 66 4e 43 20 20 20 20 3d  ;...dr->fNC    =
1620: 20 46 41 4c 53 45 3b 0d 0a 09 64 72 2d 3e 66 57   FALSE;...dr->fW
1630: 69 64 65 20 20 3d 20 66 57 69 64 65 3b 0d 0a 0d  ide  = fWide;...
1640: 0a 09 63 68 61 72 2a 20 62 75 66 20 3d 20 28 63  ..char* buf = (c
1650: 68 61 72 2a 29 28 26 64 72 5b 31 5d 29 3b 0d 0a  har*)(&dr[1]);..
1660: 09 66 6f 72 28 20 69 3d 30 3b 20 69 21 3d 6c 73  .for( i=0; i!=ls
1670: 74 2e 6c 65 6e 28 29 3b 20 69 2b 2b 20 29 0d 0a  t.len(); i++ )..
1680: 09 7b 0d 0a 09 09 69 66 28 20 66 57 69 64 65 20  .{....if( fWide 
1690: 29 0d 0a 09 09 7b 0d 0a 09 09 09 66 6c 65 6e 20  )....{.....flen 
16a0: 3d 20 3a 3a 4d 75 6c 74 69 42 79 74 65 54 6f 57  = ::MultiByteToW
16b0: 69 64 65 43 68 61 72 28 20 43 50 5f 41 43 50 2c  ideChar( CP_ACP,
16c0: 20 30 2c 20 6c 73 74 5b 69 5d 2c 20 2d 31 2c 20   0, lst[i], -1, 
16d0: 77 62 75 66 2c 20 36 30 30 20 29 3b 0d 0a 09 09  wbuf, 600 );....
16e0: 09 6b 69 5f 6d 65 6d 63 70 79 28 20 62 75 66 2c  .ki_memcpy( buf,
16f0: 20 77 62 75 66 2c 20 66 6c 65 6e 2a 32 20 29 3b   wbuf, flen*2 );
1700: 0d 0a 09 09 09 66 6f 72 28 20 69 6e 74 20 6b 3d  .....for( int k=
1710: 30 3b 20 6b 21 3d 66 6c 65 6e 3b 20 6b 2b 2b 20  0; k!=flen; k++ 
1720: 29 0d 0a 09 09 09 09 69 66 28 20 28 28 77 63 68  )......if( ((wch
1730: 61 72 5f 74 2a 29 62 75 66 29 5b 6b 5d 20 3d 3d  ar_t*)buf)[k] ==
1740: 20 27 2f 27 20 29 0d 0a 09 09 09 09 09 28 28 77   '/' ).......((w
1750: 63 68 61 72 5f 74 2a 29 62 75 66 29 5b 6b 5d 20  char_t*)buf)[k] 
1760: 3d 20 27 5c 5c 27 3b 0d 0a 09 09 09 62 75 66 20  = '\\';.....buf 
1770: 2b 3d 20 66 6c 65 6e 2a 32 3b 0d 0a 09 09 7d 0d  += flen*2;....}.
1780: 0a 09 09 65 6c 73 65 0d 0a 09 09 7b 0d 0a 09 09  ...else....{....
1790: 09 6b 69 5f 73 74 72 63 70 79 28 20 62 75 66 2c  .ki_strcpy( buf,
17a0: 6c 73 74 5b 69 5d 20 29 3b 0d 0a 09 09 09 66 6f  lst[i] );.....fo
17b0: 72 28 20 69 6e 74 20 6b 3d 30 3b 20 6b 21 3d 6c  r( int k=0; k!=l
17c0: 73 74 5b 69 5d 2e 6c 65 6e 28 29 3b 20 6b 2b 2b  st[i].len(); k++
17d0: 20 29 0d 0a 09 09 09 09 69 66 28 20 62 75 66 5b   )......if( buf[
17e0: 6b 5d 20 3d 3d 20 27 2f 27 20 29 0d 0a 09 09 09  k] == '/' ).....
17f0: 09 09 62 75 66 5b 6b 5d 20 3d 20 27 5c 5c 27 3b  ..buf[k] = '\\';
1800: 0d 0a 09 09 09 62 75 66 20 2b 3d 20 6c 73 74 5b  .....buf += lst[
1810: 69 5d 2e 6c 65 6e 28 29 20 2b 20 31 3b 0d 0a 09  i].len() + 1;...
1820: 09 7d 0d 0a 09 7d 0d 0a 09 2a 62 75 66 3d 30 3b  .}...}...*buf=0;
1830: 0d 0a 09 69 66 28 20 66 57 69 64 65 20 29 0d 0a  ...if( fWide )..
1840: 09 09 62 75 66 5b 31 5d 3d 27 5c 30 27 3b 0d 0a  ..buf[1]='\0';..
1850: 0d 0a 09 3a 3a 47 6c 6f 62 61 6c 55 6e 6c 6f 63  ...::GlobalUnloc
1860: 6b 28 20 68 44 72 6f 70 20 29 3b 0d 0a 0d 0a 09  k( hDrop );.....
1870: 73 74 67 2d 3e 68 47 6c 6f 62 61 6c 20 20 20 20  stg->hGlobal    
1880: 20 20 20 20 3d 20 68 44 72 6f 70 3b 0d 0a 09 73      = hDrop;...s
1890: 74 67 2d 3e 74 79 6d 65 64 20 20 20 20 20 20 20  tg->tymed       
18a0: 20 20 20 3d 20 54 59 4d 45 44 5f 48 47 4c 4f 42     = TYMED_HGLOB
18b0: 41 4c 3b 0d 0a 09 73 74 67 2d 3e 70 55 6e 6b 46  AL;...stg->pUnkF
18c0: 6f 72 52 65 6c 65 61 73 65 20 3d 20 4e 55 4c 4c  orRelease = NULL
18d0: 3b 0d 0a 09 72 65 74 75 72 6e 20 74 72 75 65 3b  ;...return true;
18e0: 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 43 41 4c 4c  ..}....BOOL CALL
18f0: 42 41 43 4b 20 43 41 72 63 56 69 65 77 44 6c 67  BACK CArcViewDlg
1900: 3a 3a 70 72 6f 63 28 20 55 49 4e 54 20 6d 73 67  ::proc( UINT msg
1910: 2c 20 57 50 41 52 41 4d 20 77 70 2c 20 4c 50 41  , WPARAM wp, LPA
1920: 52 41 4d 20 6c 70 20 29 0d 0a 7b 0d 0a 09 73 77  RAM lp )..{...sw
1930: 69 74 63 68 28 20 6d 73 67 20 29 0d 0a 09 7b 0d  itch( msg )...{.
1940: 0a 09 2f 2f 2d 2d 20 83 81 83 43 83 93 83 45 83  ..//-- ...C...E.
1950: 43 83 93 83 68 83 45 8e 77 92 e8 20 2d 2d 2d 2d  C...h.E.w.. ----
1960: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
1970: 2d 0d 0a 09 63 61 73 65 20 57 4d 5f 41 43 54 49  -...case WM_ACTI
1980: 56 41 54 45 3a 0d 0a 09 09 69 66 28 20 4c 4f 57  VATE:....if( LOW
1990: 4f 52 44 28 77 70 29 3d 3d 57 41 5f 41 43 54 49  ORD(wp)==WA_ACTI
19a0: 56 45 20 7c 7c 20 4c 4f 57 4f 52 44 28 77 70 29  VE || LOWORD(wp)
19b0: 3d 3d 57 41 5f 43 4c 49 43 4b 41 43 54 49 56 45  ==WA_CLICKACTIVE
19c0: 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 61 70 70 28   )....{.....app(
19d0: 29 2d 3e 73 65 74 4d 61 69 6e 57 6e 64 28 20 74  )->setMainWnd( t
19e0: 68 69 73 20 29 3b 0d 0a 09 09 09 72 65 74 75 72  his );.....retur
19f0: 6e 20 54 52 55 45 3b 0d 0a 09 09 7d 0d 0a 09 09  n TRUE;....}....
1a00: 62 72 65 61 6b 3b 0d 0a 0d 0a 09 2f 2f 2d 2d 20  break;.....//-- 
1a10: 83 8a 83 54 83 43 83 59 8a d6 98 41 82 cc 8f 88  ...T.C.Y...A....
1a20: 97 9d 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  .. -------------
1a30: 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a 09 63 61 73 65 20  --------...case 
1a40: 57 4d 5f 47 45 54 4d 49 4e 4d 41 58 49 4e 46 4f  WM_GETMINMAXINFO
1a50: 3a 0d 0a 09 09 7b 0d 0a 09 09 09 52 45 43 54 20  :....{.....RECT 
1a60: 73 65 6c 66 2c 63 68 69 6c 64 3b 0d 0a 09 09 09  self,child;.....
1a70: 3a 3a 47 65 74 57 69 6e 64 6f 77 52 65 63 74 28  ::GetWindowRect(
1a80: 20 68 77 6e 64 28 29 2c 20 26 73 65 6c 66 20 29   hwnd(), &self )
1a90: 3b 0d 0a 09 09 09 3a 3a 47 65 74 57 69 6e 64 6f  ;.....::GetWindo
1aa0: 77 52 65 63 74 28 20 69 74 65 6d 28 49 44 43 5f  wRect( item(IDC_
1ab0: 52 45 46 29 2c 20 26 63 68 69 6c 64 20 29 3b 0d  REF), &child );.
1ac0: 0a 09 09 09 50 4f 49 4e 54 26 20 73 7a 20 3d 20  ....POINT& sz = 
1ad0: 28 28 4d 49 4e 4d 41 58 49 4e 46 4f 2a 29 6c 70  ((MINMAXINFO*)lp
1ae0: 29 2d 3e 70 74 4d 69 6e 54 72 61 63 6b 53 69 7a  )->ptMinTrackSiz
1af0: 65 3b 0d 0a 09 09 09 73 7a 2e 78 20 3d 20 63 68  e;.....sz.x = ch
1b00: 69 6c 64 2e 72 69 67 68 74 20 2d 20 73 65 6c 66  ild.right - self
1b10: 2e 6c 65 66 74 20 2b 20 31 38 3b 0d 0a 09 09 09  .left + 18;.....
1b20: 73 7a 2e 79 20 3d 20 63 68 69 6c 64 2e 62 6f 74  sz.y = child.bot
1b30: 74 6f 6d 20 2d 20 73 65 6c 66 2e 74 6f 70 20 2b  tom - self.top +
1b40: 20 31 30 30 3b 0d 0a 09 09 7d 0d 0a 09 09 72 65   100;....}....re
1b50: 74 75 72 6e 20 54 52 55 45 3b 0d 0a 09 63 61 73  turn TRUE;...cas
1b60: 65 20 57 4d 5f 53 49 5a 45 3a 0d 0a 09 09 69 66  e WM_SIZE:....if
1b70: 28 20 77 70 21 3d 53 49 5a 45 5f 4d 41 58 48 49  ( wp!=SIZE_MAXHI
1b80: 44 45 20 26 26 20 77 70 21 3d 53 49 5a 45 5f 4d  DE && wp!=SIZE_M
1b90: 49 4e 49 4d 49 5a 45 44 20 29 0d 0a 09 09 7b 0d  INIMIZED )....{.
1ba0: 0a 09 09 09 52 45 43 54 20 73 65 6c 66 2c 72 65  ....RECT self,re
1bb0: 66 2c 63 68 69 6c 64 2c 73 62 61 72 3b 0d 0a 09  f,child,sbar;...
1bc0: 09 09 3a 3a 47 65 74 57 69 6e 64 6f 77 52 65 63  ..::GetWindowRec
1bd0: 74 28 20 68 77 6e 64 28 29 2c 20 26 73 65 6c 66  t( hwnd(), &self
1be0: 20 29 3b 0d 0a 09 09 09 3a 3a 47 65 74 57 69 6e   );.....::GetWin
1bf0: 64 6f 77 52 65 63 74 28 20 69 74 65 6d 28 49 44  dowRect( item(ID
1c00: 43 5f 52 45 46 29 2c 20 26 72 65 66 20 29 3b 0d  C_REF), &ref );.
1c10: 0a 09 09 09 3a 3a 47 65 74 57 69 6e 64 6f 77 52  ....::GetWindowR
1c20: 65 63 74 28 20 69 74 65 6d 28 49 44 43 5f 46 49  ect( item(IDC_FI
1c30: 4c 45 4c 49 53 54 29 2c 20 26 63 68 69 6c 64 20  LELIST), &child 
1c40: 29 3b 0d 0a 09 09 09 3a 3a 47 65 74 43 6c 69 65  );.....::GetClie
1c50: 6e 74 52 65 63 74 28 20 69 74 65 6d 28 49 44 43  ntRect( item(IDC
1c60: 5f 53 54 41 54 55 53 42 41 52 29 2c 20 26 73 62  _STATUSBAR), &sb
1c70: 61 72 20 29 3b 0d 0a 0d 0a 09 09 09 3a 3a 53 65  ar );.......::Se
1c80: 74 57 69 6e 64 6f 77 50 6f 73 28 20 69 74 65 6d  tWindowPos( item
1c90: 28 49 44 43 5f 46 49 4c 45 4c 49 53 54 29 2c 20  (IDC_FILELIST), 
1ca0: 4e 55 4c 4c 2c 20 30 2c 20 30 2c 0d 0a 09 09 09  NULL, 0, 0,.....
1cb0: 09 4c 4f 57 4f 52 44 28 6c 70 29 2c 0d 0a 09 09  .LOWORD(lp),....
1cc0: 09 09 28 73 65 6c 66 2e 62 6f 74 74 6f 6d 2d 72  ..(self.bottom-r
1cd0: 65 66 2e 62 6f 74 74 6f 6d 29 2d 28 63 68 69 6c  ef.bottom)-(chil
1ce0: 64 2e 74 6f 70 2d 72 65 66 2e 62 6f 74 74 6f 6d  d.top-ref.bottom
1cf0: 29 0d 0a 09 09 09 09 2d 28 73 62 61 72 2e 62 6f  )......-(sbar.bo
1d00: 74 74 6f 6d 2d 73 62 61 72 2e 74 6f 70 29 2d 31  ttom-sbar.top)-1
1d10: 30 2c 0d 0a 09 09 09 09 53 57 50 5f 4e 4f 4d 4f  0,......SWP_NOMO
1d20: 56 45 7c 53 57 50 5f 4e 4f 4f 57 4e 45 52 5a 4f  VE|SWP_NOOWNERZO
1d30: 52 44 45 52 7c 53 57 50 5f 4e 4f 5a 4f 52 44 45  RDER|SWP_NOZORDE
1d40: 52 20 29 3b 0d 0a 0d 0a 09 09 09 3a 3a 47 65 74  R );.......::Get
1d50: 43 6c 69 65 6e 74 52 65 63 74 28 20 68 77 6e 64  ClientRect( hwnd
1d60: 28 29 2c 20 26 73 65 6c 66 20 29 3b 0d 0a 09 09  (), &self );....
1d70: 09 3a 3a 53 65 74 57 69 6e 64 6f 77 50 6f 73 28  .::SetWindowPos(
1d80: 20 69 74 65 6d 28 49 44 43 5f 53 54 41 54 55 53   item(IDC_STATUS
1d90: 42 41 52 29 2c 20 4e 55 4c 4c 2c 20 73 62 61 72  BAR), NULL, sbar
1da0: 2e 6c 65 66 74 2c 0d 0a 09 09 09 09 73 65 6c 66  .left,......self
1db0: 2e 62 6f 74 74 6f 6d 20 2d 20 28 73 62 61 72 2e  .bottom - (sbar.
1dc0: 62 6f 74 74 6f 6d 2d 73 62 61 72 2e 74 6f 70 29  bottom-sbar.top)
1dd0: 2c 0d 0a 09 09 09 09 30 2c 20 30 2c 20 53 57 50  ,......0, 0, SWP
1de0: 5f 4e 4f 53 49 5a 45 7c 53 57 50 5f 4e 4f 4f 57  _NOSIZE|SWP_NOOW
1df0: 4e 45 52 5a 4f 52 44 45 52 7c 53 57 50 5f 4e 4f  NERZORDER|SWP_NO
1e00: 5a 4f 52 44 45 52 20 29 3b 0d 0a 09 09 7d 0d 0a  ZORDER );....}..
1e10: 09 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09 63 61 73  ..break;.....cas
1e20: 65 20 57 4d 5f 4e 4f 54 49 46 59 3a 0d 0a 09 09  e WM_NOTIFY:....
1e30: 69 66 28 20 77 70 3d 3d 49 44 43 5f 46 49 4c 45  if( wp==IDC_FILE
1e40: 4c 49 53 54 20 26 26 20 6d 5f 62 41 62 6c 65 20  LIST && m_bAble 
1e50: 29 0d 0a 09 09 7b 0d 0a 09 09 09 4e 4d 48 44 52  )....{.....NMHDR
1e60: 2a 20 70 68 64 72 3d 28 4e 4d 48 44 52 2a 29 6c  * phdr=(NMHDR*)l
1e70: 70 3b 0d 0a 09 09 09 69 66 28 20 70 68 64 72 2d  p;.....if( phdr-
1e80: 3e 63 6f 64 65 3d 3d 4c 56 4e 5f 42 45 47 49 4e  >code==LVN_BEGIN
1e90: 44 52 41 47 20 7c 7c 20 70 68 64 72 2d 3e 63 6f  DRAG || phdr->co
1ea0: 64 65 3d 3d 4c 56 4e 5f 42 45 47 49 4e 52 44 52  de==LVN_BEGINRDR
1eb0: 41 47 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09  AG ).....{......
1ec0: 69 66 28 20 73 65 74 53 65 6c 65 63 74 69 6f 6e  if( setSelection
1ed0: 28 29 20 29 0d 0a 09 09 09 09 09 6b 69 44 72 6f  () ).......kiDro
1ee0: 70 53 6f 75 72 63 65 3a 3a 44 6e 44 28 20 74 68  pSource::DnD( th
1ef0: 69 73 2c 20 44 52 4f 50 45 46 46 45 43 54 5f 43  is, DROPEFFECT_C
1f00: 4f 50 59 20 29 3b 0d 0a 09 09 09 09 72 65 74 75  OPY );......retu
1f10: 72 6e 20 54 52 55 45 3b 0d 0a 09 09 09 7d 0d 0a  rn TRUE;.....}..
1f20: 09 09 09 65 6c 73 65 20 69 66 28 20 70 68 64 72  ...else if( phdr
1f30: 2d 3e 63 6f 64 65 3d 3d 4c 56 4e 5f 43 4f 4c 55  ->code==LVN_COLU
1f40: 4d 4e 43 4c 49 43 4b 20 29 0d 0a 09 09 09 09 44  MNCLICK )......D
1f50: 6f 53 6f 72 74 28 20 28 28 4e 4d 4c 49 53 54 56  oSort( ((NMLISTV
1f60: 49 45 57 2a 29 6c 70 29 2d 3e 69 53 75 62 49 74  IEW*)lp)->iSubIt
1f70: 65 6d 20 29 3b 0d 0a 09 09 09 65 6c 73 65 20 69  em );.....else i
1f80: 66 28 20 70 68 64 72 2d 3e 63 6f 64 65 3d 3d 4e  f( phdr->code==N
1f90: 4d 5f 44 42 4c 43 4c 4b 20 29 0d 0a 09 09 09 09  M_DBLCLK )......
1fa0: 73 65 6e 64 4d 73 67 28 20 57 4d 5f 43 4f 4d 4d  sendMsg( WM_COMM
1fb0: 41 4e 44 2c 20 49 44 43 5f 53 48 4f 57 20 29 3b  AND, IDC_SHOW );
1fc0: 0d 0a 09 09 09 65 6c 73 65 20 69 66 28 20 70 68  .....else if( ph
1fd0: 64 72 2d 3e 63 6f 64 65 3d 3d 4e 4d 5f 52 43 4c  dr->code==NM_RCL
1fe0: 49 43 4b 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09  ICK ).....{.....
1ff0: 09 69 66 28 20 73 65 74 53 65 6c 65 63 74 69 6f  .if( setSelectio
2000: 6e 28 29 20 29 0d 0a 09 09 09 09 09 44 6f 52 4d  n() ).......DoRM
2010: 65 6e 75 28 29 3b 0d 0a 09 09 09 7d 0d 0a 09 09  enu();.....}....
2020: 7d 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 0d 0a 09  }....break;.....
2030: 63 61 73 65 20 57 4d 5f 43 4f 4d 4d 41 4e 44 3a  case WM_COMMAND:
2040: 0d 0a 09 09 73 77 69 74 63 68 28 20 4c 4f 57 4f  ....switch( LOWO
2050: 52 44 28 77 70 29 20 29 0d 0a 09 09 7b 0d 0a 09  RD(wp) )....{...
2060: 09 63 61 73 65 20 49 44 43 5f 53 45 4c 45 43 54  .case IDC_SELECT
2070: 49 4e 56 3a 20 2f 2f 20 91 49 91 f0 94 bd 93 5d  INV: // .I.....]
2080: 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 4c 56 49 54  .....{......LVIT
2090: 45 4d 20 69 74 65 6d 3b 0d 0a 09 09 09 09 69 74  EM item;......it
20a0: 65 6d 2e 6d 61 73 6b 20 3d 20 4c 56 49 46 5f 53  em.mask = LVIF_S
20b0: 54 41 54 45 3b 0d 0a 09 09 09 09 69 74 65 6d 2e  TATE;......item.
20c0: 73 74 61 74 65 4d 61 73 6b 20 3d 20 4c 56 49 53  stateMask = LVIS
20d0: 5f 53 45 4c 45 43 54 45 44 3b 0d 0a 09 09 09 09  _SELECTED;......
20e0: 69 6e 74 20 6a 2c 6d 3d 73 65 6e 64 4d 73 67 54  int j,m=sendMsgT
20f0: 6f 49 74 65 6d 28 20 49 44 43 5f 46 49 4c 45 4c  oItem( IDC_FILEL
2100: 49 53 54 2c 20 4c 56 4d 5f 47 45 54 49 54 45 4d  IST, LVM_GETITEM
2110: 43 4f 55 4e 54 20 29 3b 0d 0a 09 09 09 09 66 6f  COUNT );......fo
2120: 72 28 20 6a 3d 30 3b 20 6a 21 3d 6d 3b 20 6a 2b  r( j=0; j!=m; j+
2130: 2b 20 29 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09  + )......{......
2140: 09 69 74 65 6d 2e 73 74 61 74 65 20 3d 20 7e 73  .item.state = ~s
2150: 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 20 49 44  endMsgToItem( ID
2160: 43 5f 46 49 4c 45 4c 49 53 54 2c 20 4c 56 4d 5f  C_FILELIST, LVM_
2170: 47 45 54 49 54 45 4d 53 54 41 54 45 2c 20 6a 2c  GETITEMSTATE, j,
2180: 20 4c 56 49 53 5f 53 45 4c 45 43 54 45 44 20 29   LVIS_SELECTED )
2190: 3b 0d 0a 09 09 09 09 09 73 65 6e 64 4d 73 67 54  ;.......sendMsgT
21a0: 6f 49 74 65 6d 28 20 49 44 43 5f 46 49 4c 45 4c  oItem( IDC_FILEL
21b0: 49 53 54 2c 20 4c 56 4d 5f 53 45 54 49 54 45 4d  IST, LVM_SETITEM
21c0: 53 54 41 54 45 2c 20 6a 2c 20 28 4c 50 41 52 41  STATE, j, (LPARA
21d0: 4d 29 26 69 74 65 6d 20 29 3b 0d 0a 09 09 09 09  M)&item );......
21e0: 7d 0d 0a 09 09 09 09 3a 3a 53 65 74 46 6f 63 75  }......::SetFocu
21f0: 73 28 20 74 68 69 73 2d 3e 69 74 65 6d 28 49 44  s( this->item(ID
2200: 43 5f 46 49 4c 45 4c 49 53 54 29 20 29 3b 0d 0a  C_FILELIST) );..
2210: 09 09 09 7d 0d 0a 09 09 09 72 65 74 75 72 6e 20  ...}.....return 
2220: 54 52 55 45 3b 0d 0a 0d 0a 09 09 63 61 73 65 20  TRUE;......case 
2230: 49 44 43 5f 52 45 46 3a 20 2f 2f 20 89 f0 93 80  IDC_REF: // ....
2240: 90 e6 90 dd 92 e8 0d 0a 09 09 09 6b 69 53 55 74  ...........kiSUt
2250: 69 6c 3a 3a 67 65 74 46 6f 6c 64 65 72 44 6c 67  il::getFolderDlg
2260: 4f 66 45 64 69 74 42 6f 78 28 20 69 74 65 6d 28  OfEditBox( item(
2270: 49 44 43 5f 44 44 49 52 29 2c 20 68 77 6e 64 28  IDC_DDIR), hwnd(
2280: 29 2c 20 6b 69 53 74 72 28 29 2e 6c 6f 61 64 52  ), kiStr().loadR
2290: 73 72 63 28 49 44 53 5f 43 48 4f 4f 53 45 44 49  src(IDS_CHOOSEDI
22a0: 52 29 20 29 3b 0d 0a 09 09 09 72 65 74 75 72 6e  R) );.....return
22b0: 20 54 52 55 45 3b 0d 0a 0d 0a 09 09 63 61 73 65   TRUE;......case
22c0: 20 49 44 43 5f 4d 45 4c 54 45 41 43 48 3a 20 2f   IDC_MELTEACH: /
22d0: 2f 20 88 ea 95 94 89 f0 93 80 0d 0a 09 09 09 69  / .............i
22e0: 66 28 20 73 65 74 53 65 6c 65 63 74 69 6f 6e 28  f( setSelection(
22f0: 29 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 73  ) ).....{......s
2300: 65 74 64 69 72 28 29 3b 0d 0a 09 09 09 09 69 6e  etdir();......in
2310: 74 20 72 65 73 75 6c 74 20 3d 20 6d 5f 70 41 72  t result = m_pAr
2320: 63 2d 3e 6d 65 6c 74 28 20 6d 5f 66 6e 61 6d 65  c->melt( m_fname
2330: 2c 20 6d 5f 64 64 69 72 2c 20 26 6d 5f 66 69 6c  , m_ddir, &m_fil
2340: 65 73 20 29 3b 0d 0a 09 09 09 09 69 66 28 20 72  es );......if( r
2350: 65 73 75 6c 74 3c 30 78 38 30 30 30 20 29 0d 0a  esult<0x8000 )..
2360: 09 09 09 09 09 6d 79 61 70 70 28 29 2e 6f 70 65  .....myapp().ope
2370: 6e 5f 66 6f 6c 64 65 72 28 20 6d 5f 64 64 69 72  n_folder( m_ddir
2380: 2c 20 31 20 29 3b 0d 0a 09 09 09 09 65 6c 73 65  , 1 );......else
2390: 20 69 66 28 20 72 65 73 75 6c 74 20 21 3d 20 30   if( result != 0
23a0: 78 38 30 32 30 20 29 0d 0a 09 09 09 09 7b 0d 0a  x8020 )......{..
23b0: 09 09 09 09 09 63 68 61 72 20 73 74 72 5b 32 35  .....char str[25
23c0: 35 5d 3b 0d 0a 09 09 09 09 09 77 73 70 72 69 6e  5];.......wsprin
23d0: 74 66 28 20 73 74 72 2c 20 22 25 73 5c 6e 45 72  tf( str, "%s\nEr
23e0: 72 6f 72 20 4e 6f 3a 20 5b 25 78 5d 22 2c 0d 0a  ror No: [%x]",..
23f0: 09 09 09 09 09 09 28 63 6f 6e 73 74 20 63 68 61  ......(const cha
2400: 72 2a 29 6b 69 53 74 72 28 29 2e 6c 6f 61 64 52  r*)kiStr().loadR
2410: 73 72 63 28 20 49 44 53 5f 4d 5f 45 52 52 4f 52  src( IDS_M_ERROR
2420: 20 29 2c 20 72 65 73 75 6c 74 20 29 3b 0d 0a 09   ), result );...
2430: 09 09 09 09 61 70 70 28 29 2d 3e 6d 73 67 42 6f  ....app()->msgBo
2440: 78 28 20 73 74 72 20 29 3b 0d 0a 09 09 09 09 7d  x( str );......}
2450: 0d 0a 09 09 09 09 6b 69 53 55 74 69 6c 3a 3a 73  ......kiSUtil::s
2460: 77 69 74 63 68 43 75 72 44 69 72 54 6f 45 78 65  witchCurDirToExe
2470: 44 69 72 28 29 3b 20 2f 2f 20 94 4f 82 cc 82 bd  Dir(); // .O....
2480: 82 df 0d 0a 09 09 09 7d 0d 0a 09 09 09 72 65 74  .......}.....ret
2490: 75 72 6e 20 54 52 55 45 3b 0d 0a 0d 0a 09 09 63  urn TRUE;......c
24a0: 61 73 65 20 49 44 43 5f 53 48 4f 57 3a 20 2f 2f  ase IDC_SHOW: //
24b0: 20 95 5c 8e a6 0d 0a 09 09 09 69 66 28 20 73 65   .\.......if( se
24c0: 74 53 65 6c 65 63 74 69 6f 6e 28 29 20 29 0d 0a  tSelection() )..
24d0: 09 09 09 7b 0d 0a 09 09 09 09 69 6e 74 20 61 73  ...{......int as
24e0: 73 6f 63 43 6e 74 20 3d 20 68 6c 70 5f 63 6e 74  socCnt = hlp_cnt
24f0: 5f 63 68 65 63 6b 28 29 3b 0d 0a 09 09 09 09 69  _check();......i
2500: 66 28 20 30 78 38 30 30 30 20 3e 20 6d 5f 70 41  f( 0x8000 > m_pA
2510: 72 63 2d 3e 6d 65 6c 74 28 20 6d 5f 66 6e 61 6d  rc->melt( m_fnam
2520: 65 2c 20 6d 5f 74 64 69 72 2c 20 26 6d 5f 66 69  e, m_tdir, &m_fi
2530: 6c 65 73 20 29 20 29 0d 0a 09 09 09 09 7b 0d 0a  les ) )......{..
2540: 09 09 09 09 09 69 66 28 20 61 73 73 6f 63 43 6e  .....if( assocCn
2550: 74 20 21 3d 20 2d 31 20 29 0d 0a 09 09 09 09 09  t != -1 ).......
2560: 09 6d 5f 66 69 6c 65 73 5b 61 73 73 6f 63 43 6e  .m_files[assocCn
2570: 74 5d 2e 73 65 6c 65 63 74 65 64 20 3d 20 66 61  t].selected = fa
2580: 6c 73 65 3b 0d 0a 09 09 09 09 09 66 6f 72 28 20  lse;.......for( 
2590: 75 6e 73 69 67 6e 65 64 20 69 3d 30 3b 20 69 21  unsigned i=0; i!
25a0: 3d 6d 5f 66 69 6c 65 73 2e 6c 65 6e 28 29 3b 20  =m_files.len(); 
25b0: 69 2b 2b 20 29 0d 0a 09 09 09 09 09 09 69 66 28  i++ )........if(
25c0: 20 6d 5f 66 69 6c 65 73 5b 69 5d 2e 73 65 6c 65   m_files[i].sele
25d0: 63 74 65 64 20 29 0d 0a 09 09 09 09 09 09 7b 0d  cted )........{.
25e0: 0a 09 09 09 09 09 09 09 6b 69 50 61 74 68 20 74  ........kiPath t
25f0: 6d 70 28 6d 5f 74 64 69 72 29 3b 0d 0a 09 09 09  mp(m_tdir);.....
2600: 09 09 09 09 63 68 61 72 20 79 65 6e 5b 4d 41 58  ....char yen[MAX
2610: 5f 50 41 54 48 5d 3b 0d 0a 09 09 09 09 09 09 09  _PATH];.........
2620: 6b 69 5f 73 74 72 63 70 79 28 20 79 65 6e 2c 20  ki_strcpy( yen, 
2630: 6d 5f 66 69 6c 65 73 5b 69 5d 2e 69 6e 66 2e 73  m_files[i].inf.s
2640: 7a 46 69 6c 65 4e 61 6d 65 20 29 3b 0d 0a 09 09  zFileName );....
2650: 09 09 09 09 09 66 6f 72 28 20 63 68 61 72 2a 20  .....for( char* 
2660: 70 3d 79 65 6e 3b 20 2a 70 3b 20 70 3d 6b 69 53  p=yen; *p; p=kiS
2670: 74 72 3a 3a 6e 65 78 74 28 70 29 20 29 0d 0a 09  tr::next(p) )...
2680: 09 09 09 09 09 09 09 69 66 28 20 2a 70 3d 3d 27  .......if( *p=='
2690: 2f 27 20 29 0d 0a 09 09 09 09 09 09 09 09 09 2a  /' )...........*
26a0: 70 20 3d 20 27 5c 5c 27 3b 0d 0a 09 09 09 09 09  p = '\\';.......
26b0: 09 09 74 6d 70 20 2b 3d 20 79 65 6e 3b 0d 0a 09  ..tmp += yen;...
26c0: 09 09 09 09 09 09 3a 3a 53 68 65 6c 6c 45 78 65  ......::ShellExe
26d0: 63 75 74 65 28 20 68 77 6e 64 28 29 2c 20 4e 55  cute( hwnd(), NU
26e0: 4c 4c 2c 20 74 6d 70 2c 20 4e 55 4c 4c 2c 20 6d  LL, tmp, NULL, m
26f0: 5f 74 64 69 72 2c 20 53 57 5f 53 48 4f 57 44 45  _tdir, SW_SHOWDE
2700: 46 41 55 4c 54 20 29 3b 0d 0a 09 09 09 09 09 09  FAULT );........
2710: 7d 0d 0a 09 09 09 09 7d 0d 0a 09 09 09 09 6b 69  }......}......ki
2720: 53 55 74 69 6c 3a 3a 73 77 69 74 63 68 43 75 72  SUtil::switchCur
2730: 44 69 72 54 6f 45 78 65 44 69 72 28 29 3b 20 2f  DirToExeDir(); /
2740: 2f 20 94 4f 82 cc 82 bd 82 df 0d 0a 09 09 09 7d  / .O...........}
2750: 0d 0a 09 09 09 72 65 74 75 72 6e 20 54 52 55 45  .....return TRUE
2760: 3b 0d 0a 09 09 7d 0d 0a 09 7d 0d 0a 09 72 65 74  ;....}...}...ret
2770: 75 72 6e 20 46 41 4c 53 45 3b 0d 0a 7d 0d 0a 0d  urn FALSE;..}...
2780: 0a 69 6e 74 20 43 41 72 63 56 69 65 77 44 6c 67  .int CArcViewDlg
2790: 3a 3a 68 6c 70 5f 63 6e 74 5f 63 68 65 63 6b 28  ::hlp_cnt_check(
27a0: 29 0d 0a 7b 0d 0a 09 2f 2f 20 88 ea 8c c2 96 da  )..{...// ......
27b0: 82 cc 91 49 91 f0 8d cf 82 dd 83 74 83 40 83 43  ...I.......t.@.C
27c0: 83 8b 82 aa 20 2e 68 6c 70 20 82 a9 94 db 82 a9  .... .hlp ......
27d0: 0d 0a 09 66 6f 72 28 20 75 6e 73 69 67 6e 65 64  ...for( unsigned
27e0: 20 69 3d 30 3b 20 69 21 3d 6d 5f 66 69 6c 65 73   i=0; i!=m_files
27f0: 2e 6c 65 6e 28 29 3b 20 69 2b 2b 20 29 0d 0a 09  .len(); i++ )...
2800: 09 69 66 28 20 6d 5f 66 69 6c 65 73 5b 69 5d 2e  .if( m_files[i].
2810: 73 65 6c 65 63 74 65 64 20 29 0d 0a 09 09 09 62  selected ).....b
2820: 72 65 61 6b 3b 0d 0a 09 69 66 28 20 69 3d 3d 6d  reak;...if( i==m
2830: 5f 66 69 6c 65 73 2e 6c 65 6e 28 29 20 29 0d 0a  _files.len() )..
2840: 09 09 72 65 74 75 72 6e 20 2d 31 3b 0d 0a 09 69  ..return -1;...i
2850: 6e 74 20 78 20 3d 20 6b 69 50 61 74 68 3a 3a 65  nt x = kiPath::e
2860: 78 74 28 6d 5f 66 69 6c 65 73 5b 69 5d 2e 69 6e  xt(m_files[i].in
2870: 66 2e 73 7a 46 69 6c 65 4e 61 6d 65 29 2d 6d 5f  f.szFileName)-m_
2880: 66 69 6c 65 73 5b 69 5d 2e 69 6e 66 2e 73 7a 46  files[i].inf.szF
2890: 69 6c 65 4e 61 6d 65 3b 0d 0a 09 69 66 28 20 30  ileName;...if( 0
28a0: 21 3d 6b 69 5f 73 74 72 63 6d 70 69 28 20 22 68  !=ki_strcmpi( "h
28b0: 6c 70 22 2c 20 6d 5f 66 69 6c 65 73 5b 69 5d 2e  lp", m_files[i].
28c0: 69 6e 66 2e 73 7a 46 69 6c 65 4e 61 6d 65 2b 78  inf.szFileName+x
28d0: 20 29 20 29 0d 0a 09 09 72 65 74 75 72 6e 20 2d   ) )....return -
28e0: 31 3b 0d 0a 0d 0a 09 2f 2f 20 2e 63 6e 74 20 82  1;.....// .cnt .
28f0: cc 83 74 83 40 83 43 83 8b 96 bc 0d 0a 09 63 68  ..t.@.C.......ch
2900: 61 72 20 63 6e 74 70 61 74 68 5b 46 4e 41 4d 45  ar cntpath[FNAME
2910: 5f 4d 41 58 33 32 5d 3b 0d 0a 09 6b 69 5f 73 74  _MAX32];...ki_st
2920: 72 63 70 79 28 20 63 6e 74 70 61 74 68 2c 20 6d  rcpy( cntpath, m
2930: 5f 66 69 6c 65 73 5b 69 5d 2e 69 6e 66 2e 73 7a  _files[i].inf.sz
2940: 46 69 6c 65 4e 61 6d 65 20 29 3b 0d 0a 09 63 6e  FileName );...cn
2950: 74 70 61 74 68 5b 78 5d 3d 27 63 27 2c 20 63 6e  tpath[x]='c', cn
2960: 74 70 61 74 68 5b 78 2b 31 5d 3d 27 6e 27 2c 20  tpath[x+1]='n', 
2970: 63 6e 74 70 61 74 68 5b 78 2b 32 5d 3d 27 74 27  cntpath[x+2]='t'
2980: 3b 0d 0a 0d 0a 09 2f 2f 20 2e 63 6e 74 82 e0 88  ;.....// .cnt...
2990: ea 8e 9e 93 49 82 c9 91 49 91 f0 82 b7 82 e9 0d  ....I...I.......
29a0: 0a 09 66 6f 72 28 20 69 3d 30 3b 20 69 21 3d 6d  ..for( i=0; i!=m
29b0: 5f 66 69 6c 65 73 2e 6c 65 6e 28 29 3b 20 69 2b  _files.len(); i+
29c0: 2b 20 29 0d 0a 09 09 69 66 28 20 30 3d 3d 6b 69  + )....if( 0==ki
29d0: 5f 73 74 72 63 6d 70 69 28 20 63 6e 74 70 61 74  _strcmpi( cntpat
29e0: 68 2c 20 6d 5f 66 69 6c 65 73 5b 69 5d 2e 69 6e  h, m_files[i].in
29f0: 66 2e 73 7a 46 69 6c 65 4e 61 6d 65 20 29 20 29  f.szFileName ) )
2a00: 0d 0a 09 09 7b 0d 0a 09 09 09 69 66 28 20 6d 5f  ....{.....if( m_
2a10: 66 69 6c 65 73 5b 69 5d 2e 73 65 6c 65 63 74 65  files[i].selecte
2a20: 64 20 29 0d 0a 09 09 09 09 72 65 74 75 72 6e 20  d )......return 
2a30: 2d 31 3b 0d 0a 09 09 09 6d 5f 66 69 6c 65 73 5b  -1;.....m_files[
2a40: 69 5d 2e 73 65 6c 65 63 74 65 64 20 3d 20 74 72  i].selected = tr
2a50: 75 65 3b 0d 0a 09 09 09 72 65 74 75 72 6e 20 69  ue;.....return i
2a60: 3b 0d 0a 09 09 7d 0d 0a 09 72 65 74 75 72 6e 20  ;....}...return 
2a70: 2d 31 3b 0d 0a 7d 0d 0a 0d 0a 69 6e 74 20 43 41  -1;..}....int CA
2a80: 4c 4c 42 41 43 4b 20 43 41 72 63 56 69 65 77 44  LLBACK CArcViewD
2a90: 6c 67 3a 3a 6c 76 5f 63 6f 6d 70 61 72 65 28 20  lg::lv_compare( 
2aa0: 4c 50 41 52 41 4d 20 70 31 2c 20 4c 50 41 52 41  LPARAM p1, LPARA
2ab0: 4d 20 70 32 2c 20 4c 50 41 52 41 4d 20 74 79 70  M p2, LPARAM typ
2ac0: 65 20 29 0d 0a 7b 0d 0a 09 62 6f 6f 6c 20 72 65  e )..{...bool re
2ad0: 76 20 3d 20 66 61 6c 73 65 3b 0d 0a 09 69 66 28  v = false;...if(
2ae0: 20 74 79 70 65 3e 3d 31 30 30 30 30 20 29 0d 0a   type>=10000 )..
2af0: 09 09 72 65 76 3d 74 72 75 65 2c 20 74 79 70 65  ..rev=true, type
2b00: 2d 3d 31 30 30 30 30 3b 0d 0a 09 69 6e 74 20 61  -=10000;...int a
2b10: 6e 73 20 3d 20 30 3b 0d 0a 0d 0a 09 49 4e 44 49  ns = 0;.....INDI
2b20: 56 49 44 55 41 4c 49 4e 46 4f 20 2a 61 31 3d 26  VIDUALINFO *a1=&
2b30: 28 28 61 72 63 66 69 6c 65 2a 29 70 31 29 2d 3e  ((arcfile*)p1)->
2b40: 69 6e 66 2c 20 2a 61 32 3d 26 28 28 61 72 63 66  inf, *a2=&((arcf
2b50: 69 6c 65 2a 29 70 32 29 2d 3e 69 6e 66 3b 0d 0a  ile*)p2)->inf;..
2b60: 09 73 77 69 74 63 68 28 20 74 79 70 65 20 29 0d  .switch( type ).
2b70: 0a 09 7b 0d 0a 09 63 61 73 65 20 30 3a 20 2f 2f  ..{...case 0: //
2b80: 4e 41 4d 45 0d 0a 09 09 61 6e 73 20 3d 20 3a 3a  NAME....ans = ::
2b90: 6c 73 74 72 63 6d 70 28 20 6b 69 50 61 74 68 3a  lstrcmp( kiPath:
2ba0: 3a 6e 61 6d 65 28 61 31 2d 3e 73 7a 46 69 6c 65  :name(a1->szFile
2bb0: 4e 61 6d 65 29 2c 0d 0a 09 09 09 20 20 20 20 20  Name),.....     
2bc0: 20 20 20 20 20 20 20 20 6b 69 50 61 74 68 3a 3a          kiPath::
2bd0: 6e 61 6d 65 28 61 32 2d 3e 73 7a 46 69 6c 65 4e  name(a2->szFileN
2be0: 61 6d 65 29 20 29 3b 0d 0a 09 09 62 72 65 61 6b  ame) );....break
2bf0: 3b 0d 0a 09 63 61 73 65 20 31 3a 20 2f 2f 53 49  ;...case 1: //SI
2c00: 5a 45 0d 0a 09 09 61 6e 73 20 3d 20 28 73 69 67  ZE....ans = (sig
2c10: 6e 65 64 29 61 31 2d 3e 64 77 4f 72 69 67 69 6e  ned)a1->dwOrigin
2c20: 61 6c 53 69 7a 65 20 2d 20 28 73 69 67 6e 65 64  alSize - (signed
2c30: 29 61 32 2d 3e 64 77 4f 72 69 67 69 6e 61 6c 53  )a2->dwOriginalS
2c40: 69 7a 65 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a  ize;....break;..
2c50: 09 63 61 73 65 20 32 3a 20 2f 2f 44 41 54 45 2c  .case 2: //DATE,
2c60: 54 49 4d 45 0d 0a 09 09 61 6e 73 20 3d 20 28 73  TIME....ans = (s
2c70: 69 67 6e 65 64 29 61 31 2d 3e 77 44 61 74 65 20  igned)a1->wDate 
2c80: 2d 20 28 73 69 67 6e 65 64 29 61 32 2d 3e 77 44  - (signed)a2->wD
2c90: 61 74 65 3b 0d 0a 09 09 69 66 28 20 61 6e 73 3d  ate;....if( ans=
2ca0: 3d 30 20 29 0d 0a 09 09 09 61 6e 73 20 3d 20 28  =0 ).....ans = (
2cb0: 73 69 67 6e 65 64 29 61 31 2d 3e 77 54 69 6d 65  signed)a1->wTime
2cc0: 20 2d 20 28 73 69 67 6e 65 64 29 61 32 2d 3e 77   - (signed)a2->w
2cd0: 54 69 6d 65 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d  Time;....break;.
2ce0: 0a 09 63 61 73 65 20 33 3a 7b 2f 2f 52 41 54 49  ..case 3:{//RATI
2cf0: 4f 0d 0a 09 09 69 6e 74 20 63 72 31 2c 20 63 72  O....int cr1, cr
2d00: 32 3b 0d 0a 09 09 69 66 28 20 61 31 2d 3e 64 77  2;....if( a1->dw
2d10: 4f 72 69 67 69 6e 61 6c 53 69 7a 65 3d 3d 30 20  OriginalSize==0 
2d20: 29 20 20 20 20 20 20 20 20 63 72 31 3d 31 30 30  )        cr1=100
2d30: 3b 0d 0a 09 09 65 6c 73 65 20 69 66 28 20 61 31  ;....else if( a1
2d40: 2d 3e 64 77 43 6f 6d 70 72 65 73 73 65 64 53 69  ->dwCompressedSi
2d50: 7a 65 3d 3d 30 20 29 20 63 72 31 3d 2d 31 3b 0d  ze==0 ) cr1=-1;.
2d60: 0a 09 09 65 6c 73 65 20 63 72 31 20 3d 20 28 61  ...else cr1 = (a
2d70: 31 2d 3e 64 77 43 6f 6d 70 72 65 73 73 65 64 53  1->dwCompressedS
2d80: 69 7a 65 2a 31 30 30 29 2f 28 61 31 2d 3e 64 77  ize*100)/(a1->dw
2d90: 4f 72 69 67 69 6e 61 6c 53 69 7a 65 29 3b 0d 0a  OriginalSize);..
2da0: 09 09 69 66 28 20 61 32 2d 3e 64 77 4f 72 69 67  ..if( a2->dwOrig
2db0: 69 6e 61 6c 53 69 7a 65 3d 3d 30 20 29 20 20 20  inalSize==0 )   
2dc0: 20 20 20 20 20 63 72 32 3d 31 30 30 3b 0d 0a 09       cr2=100;...
2dd0: 09 65 6c 73 65 20 69 66 28 20 61 32 2d 3e 64 77  .else if( a2->dw
2de0: 43 6f 6d 70 72 65 73 73 65 64 53 69 7a 65 3d 3d  CompressedSize==
2df0: 30 20 29 20 63 72 32 3d 2d 31 3b 0d 0a 09 09 65  0 ) cr2=-1;....e
2e00: 6c 73 65 20 63 72 32 20 3d 20 28 69 6e 74 29 28  lse cr2 = (int)(
2e10: 28 28 28 5f 5f 69 6e 74 36 34 29 61 32 2d 3e 64  (((__int64)a2->d
2e20: 77 43 6f 6d 70 72 65 73 73 65 64 53 69 7a 65 29  wCompressedSize)
2e30: 2a 31 30 30 29 2f 28 61 32 2d 3e 64 77 4f 72 69  *100)/(a2->dwOri
2e40: 67 69 6e 61 6c 53 69 7a 65 29 29 3b 0d 0a 09 09  ginalSize));....
2e50: 61 6e 73 20 3d 20 63 72 31 20 2d 20 63 72 32 3b  ans = cr1 - cr2;
2e60: 0d 0a 09 09 7d 62 72 65 61 6b 3b 0d 0a 09 63 61  ....}break;...ca
2e70: 73 65 20 34 3a 20 2f 2f 4d 45 54 48 4f 44 0d 0a  se 4: //METHOD..
2e80: 09 09 61 6e 73 20 3d 20 3a 3a 6c 73 74 72 63 6d  ..ans = ::lstrcm
2e90: 70 28 20 61 31 2d 3e 73 7a 4d 6f 64 65 2c 20 61  p( a1->szMode, a
2ea0: 32 2d 3e 73 7a 4d 6f 64 65 20 29 3b 0d 0a 09 09  2->szMode );....
2eb0: 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 35 3a  break;...case 5:
2ec0: 7b 2f 2f 50 41 54 48 0d 0a 09 09 6b 69 50 61 74  {//PATH....kiPat
2ed0: 68 20 70 74 31 28 61 31 2d 3e 73 7a 46 69 6c 65  h pt1(a1->szFile
2ee0: 4e 61 6d 65 29 2c 20 70 74 32 28 61 32 2d 3e 73  Name), pt2(a2->s
2ef0: 7a 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a 09 09 70  zFileName);....p
2f00: 74 31 2e 62 65 44 69 72 4f 6e 6c 79 28 29 2c 20  t1.beDirOnly(), 
2f10: 70 74 32 2e 62 65 44 69 72 4f 6e 6c 79 28 29 3b  pt2.beDirOnly();
2f20: 0d 0a 09 09 61 6e 73 20 3d 20 3a 3a 6c 73 74 72  ....ans = ::lstr
2f30: 63 6d 70 28 20 70 74 31 2c 20 70 74 32 20 29 3b  cmp( pt1, pt2 );
2f40: 0d 0a 09 09 7d 62 72 65 61 6b 3b 0d 0a 09 7d 0d  ....}break;...}.
2f50: 0a 0d 0a 09 72 65 74 75 72 6e 20 72 65 76 20 3f  ....return rev ?
2f60: 20 2d 61 6e 73 20 3a 20 61 6e 73 3b 0d 0a 7d 0d   -ans : ans;..}.
2f70: 0a 0d 0a 76 6f 69 64 20 43 41 72 63 56 69 65 77  ...void CArcView
2f80: 44 6c 67 3a 3a 44 6f 53 6f 72 74 28 20 69 6e 74  Dlg::DoSort( int
2f90: 20 63 6f 6c 20 29 0d 0a 7b 0d 0a 09 57 50 41 52   col )..{...WPAR
2fa0: 41 4d 20 70 20 3d 20 63 6f 6c 20 2b 20 28 6d 5f  AM p = col + (m_
2fb0: 62 53 6d 61 6c 6c 46 69 72 73 74 5b 63 6f 6c 5d  bSmallFirst[col]
2fc0: 20 3f 20 30 20 3a 20 31 30 30 30 30 29 3b 0d 0a   ? 0 : 10000);..
2fd0: 09 73 65 6e 64 4d 73 67 54 6f 49 74 65 6d 28 20  .sendMsgToItem( 
2fe0: 49 44 43 5f 46 49 4c 45 4c 49 53 54 2c 20 4c 56  IDC_FILELIST, LV
2ff0: 4d 5f 53 4f 52 54 49 54 45 4d 53 2c 20 70 2c 20  M_SORTITEMS, p, 
3000: 28 4c 50 41 52 41 4d 29 6c 76 5f 63 6f 6d 70 61  (LPARAM)lv_compa
3010: 72 65 20 29 3b 0d 0a 09 6d 5f 62 53 6d 61 6c 6c  re );...m_bSmall
3020: 46 69 72 73 74 5b 63 6f 6c 5d 20 3d 20 21 6d 5f  First[col] = !m_
3030: 62 53 6d 61 6c 6c 46 69 72 73 74 5b 63 6f 6c 5d  bSmallFirst[col]
3040: 3b 0d 0a 7d 0d 0a 0d 0a 76 6f 69 64 20 43 41 72  ;..}....void CAr
3050: 63 56 69 65 77 44 6c 67 3a 3a 47 65 6e 65 72 61  cViewDlg::Genera
3060: 74 65 44 69 72 4d 65 6e 75 28 20 48 4d 45 4e 55  teDirMenu( HMENU
3070: 20 6d 2c 20 69 6e 74 26 20 69 64 2c 20 53 74 72   m, int& id, Str
3080: 41 72 72 61 79 2a 20 73 78 2c 20 63 6f 6e 73 74  Array* sx, const
3090: 20 6b 69 50 61 74 68 26 20 70 74 68 20 29 0d 0a   kiPath& pth )..
30a0: 7b 0d 0a 09 2f 2f 20 83 74 83 48 83 8b 83 5f 93  {...// .t.H..._.
30b0: e0 83 8a 83 58 83 67 83 41 83 62 83 76 0d 0a 09  ....X.g.A.b.v...
30c0: 6b 69 46 69 6e 64 46 69 6c 65 20 66 66 3b 0d 0a  kiFindFile ff;..
30d0: 09 66 66 2e 62 65 67 69 6e 28 20 6b 69 50 61 74  .ff.begin( kiPat
30e0: 68 28 70 74 68 29 2b 3d 22 2a 22 20 29 3b 0d 0a  h(pth)+="*" );..
30f0: 09 66 6f 72 28 20 57 49 4e 33 32 5f 46 49 4e 44  .for( WIN32_FIND
3100: 5f 44 41 54 41 20 66 64 3b 20 66 66 2e 6e 65 78  _DATA fd; ff.nex
3110: 74 28 26 66 64 29 3b 20 29 0d 0a 09 09 69 66 28  t(&fd); )....if(
3120: 20 66 64 2e 63 46 69 6c 65 4e 61 6d 65 5b 30 5d   fd.cFileName[0]
3130: 21 3d 27 2e 27 0d 0a 09 09 20 26 26 20 21 28 66  !='.'.... && !(f
3140: 64 2e 64 77 46 69 6c 65 41 74 74 72 69 62 75 74  d.dwFileAttribut
3150: 65 73 20 26 20 46 49 4c 45 5f 41 54 54 52 49 42  es & FILE_ATTRIB
3160: 55 54 45 5f 48 49 44 44 45 4e 29 20 29 0d 0a 09  UTE_HIDDEN) )...
3170: 09 7b 0d 0a 09 09 09 6b 69 50 61 74 68 20 66 75  .{.....kiPath fu
3180: 6c 6c 70 61 74 68 28 70 74 68 29 3b 20 66 75 6c  llpath(pth); ful
3190: 6c 70 61 74 68 2b 3d 66 64 2e 63 46 69 6c 65 4e  lpath+=fd.cFileN
31a0: 61 6d 65 3b 0d 0a 09 09 09 63 6f 6e 73 74 20 69  ame;.....const i
31b0: 6e 74 20 70 49 44 3d 69 64 3b 0d 0a 09 09 09 4d  nt pID=id;.....M
31c0: 45 4e 55 49 54 45 4d 49 4e 46 4f 20 6d 69 20 3d  ENUITEMINFO mi =
31d0: 20 7b 20 73 69 7a 65 6f 66 28 4d 45 4e 55 49 54   { sizeof(MENUIT
31e0: 45 4d 49 4e 46 4f 29 20 7d 3b 0d 0a 0d 0a 09 09  EMINFO) };......
31f0: 09 69 66 28 20 66 64 2e 64 77 46 69 6c 65 41 74  .if( fd.dwFileAt
3200: 74 72 69 62 75 74 65 73 20 26 20 46 49 4c 45 5f  tributes & FILE_
3210: 41 54 54 52 49 42 55 54 45 5f 44 49 52 45 43 54  ATTRIBUTE_DIRECT
3220: 4f 52 59 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09  ORY ).....{.....
3230: 09 2f 2f 20 8d c4 8b 41 93 49 82 c9 0d 0a 09 09  .// ...A.I......
3240: 09 09 6d 69 2e 66 4d 61 73 6b 20 3d 20 4d 49 49  ..mi.fMask = MII
3250: 4d 5f 53 55 42 4d 45 4e 55 20 7c 20 30 78 30 30  M_SUBMENU | 0x00
3260: 30 30 30 30 34 30 3b 2f 2f 20 28 4d 49 49 4d 5f  000040;// (MIIM_
3270: 53 54 52 49 4e 47 29 0d 0a 09 09 09 09 6d 69 2e  STRING)......mi.
3280: 68 53 75 62 4d 65 6e 75 20 3d 20 3a 3a 43 72 65  hSubMenu = ::Cre
3290: 61 74 65 50 6f 70 75 70 4d 65 6e 75 28 29 3b 0d  atePopupMenu();.
32a0: 0a 09 09 09 09 47 65 6e 65 72 61 74 65 44 69 72  .....GenerateDir
32b0: 4d 65 6e 75 28 20 6d 69 2e 68 53 75 62 4d 65 6e  Menu( mi.hSubMen
32c0: 75 2c 20 69 64 2c 20 73 78 2c 0d 0a 09 09 09 09  u, id, sx,......
32d0: 09 6b 69 50 61 74 68 28 6b 69 50 61 74 68 28 66  .kiPath(kiPath(f
32e0: 75 6c 6c 70 61 74 68 29 2b 3d 22 5c 5c 22 29 20  ullpath)+="\\") 
32f0: 29 3b 0d 0a 09 09 09 7d 0d 0a 09 09 09 65 6c 73  );.....}.....els
3300: 65 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 63 6f 6e  e.....{......con
3310: 73 74 20 63 68 61 72 2a 20 65 78 74 20 3d 20 6b  st char* ext = k
3320: 69 50 61 74 68 3a 3a 65 78 74 28 66 64 2e 63 46  iPath::ext(fd.cF
3330: 69 6c 65 4e 61 6d 65 29 3b 0d 0a 09 09 09 09 69  ileName);......i
3340: 66 28 20 3a 3a 6c 73 74 72 6c 65 6e 28 65 78 74  f( ::lstrlen(ext
3350: 29 20 3e 20 34 20 29 20 63 6f 6e 74 69 6e 75 65  ) > 4 ) continue
3360: 3b 0d 0a 09 09 09 09 69 66 28 20 30 3d 3d 3a 3a  ;......if( 0==::
3370: 6c 73 74 72 63 6d 70 69 28 65 78 74 2c 22 6c 6e  lstrcmpi(ext,"ln
3380: 6b 22 29 20 29 0d 0a 09 09 09 09 09 2a 63 6f 6e  k") ).......*con
3390: 73 74 5f 63 61 73 74 3c 63 68 61 72 2a 3e 28 65  st_cast<char*>(e
33a0: 78 74 2d 31 29 20 3d 20 27 5c 30 27 3b 0d 0a 09  xt-1) = '\0';...
33b0: 09 09 09 6d 69 2e 66 4d 61 73 6b 20 3d 20 4d 49  ...mi.fMask = MI
33c0: 49 4d 5f 49 44 20 7c 20 30 78 30 30 30 30 30 30  IM_ID | 0x000000
33d0: 34 30 3b 2f 2f 20 28 4d 49 49 4d 5f 53 54 52 49  40;// (MIIM_STRI
33e0: 4e 47 29 0d 0a 09 09 09 09 6d 69 2e 77 49 44 20  NG)......mi.wID 
33f0: 3d 20 69 64 2b 2b 3b 0d 0a 09 09 09 09 73 78 2d  = id++;......sx-
3400: 3e 61 64 64 28 20 66 75 6c 6c 70 61 74 68 20 29  >add( fullpath )
3410: 3b 0d 0a 09 09 09 7d 0d 0a 0d 0a 09 09 09 6d 69  ;.....}.......mi
3420: 2e 64 77 54 79 70 65 44 61 74 61 20 3d 20 63 6f  .dwTypeData = co
3430: 6e 73 74 5f 63 61 73 74 3c 63 68 61 72 2a 3e 28  nst_cast<char*>(
3440: 28 63 6f 6e 73 74 20 63 68 61 72 2a 29 66 64 2e  (const char*)fd.
3450: 63 46 69 6c 65 4e 61 6d 65 29 3b 0d 0a 09 09 09  cFileName);.....
3460: 6d 69 2e 63 63 68 20 20 20 20 20 20 20 20 3d 20  mi.cch        = 
3470: 3a 3a 6c 73 74 72 6c 65 6e 28 66 64 2e 63 46 69  ::lstrlen(fd.cFi
3480: 6c 65 4e 61 6d 65 29 3b 0d 0a 09 09 09 3a 3a 49  leName);.....::I
3490: 6e 73 65 72 74 4d 65 6e 75 49 74 65 6d 28 20 6d  nsertMenuItem( m
34a0: 2c 20 70 49 44 2c 20 46 41 4c 53 45 2c 20 26 6d  , pID, FALSE, &m
34b0: 69 20 29 3b 0d 0a 09 09 7d 0d 0a 7d 0d 0a 0d 0a  i );....}..}....
34c0: 76 6f 69 64 20 43 41 72 63 56 69 65 77 44 6c 67  void CArcViewDlg
34d0: 3a 3a 44 6f 52 4d 65 6e 75 28 29 0d 0a 7b 0d 0a  ::DoRMenu()..{..
34e0: 09 2f 2f 20 83 81 83 6a 83 85 81 5b 8d ec 90 ac  .// ...j...[....
34f0: 0d 0a 09 48 4d 45 4e 55 20 6d 20 3d 20 3a 3a 43  ...HMENU m = ::C
3500: 72 65 61 74 65 50 6f 70 75 70 4d 65 6e 75 28 29  reatePopupMenu()
3510: 3b 0d 0a 09 50 4f 49 4e 54 20 70 74 3b 20 3a 3a  ;...POINT pt; ::
3520: 47 65 74 43 75 72 73 6f 72 50 6f 73 28 20 26 70  GetCursorPos( &p
3530: 74 20 29 3b 0d 0a 09 63 6f 6e 73 74 20 69 6e 74  t );...const int
3540: 20 49 44 53 54 41 52 54 20 3d 20 31 32 38 3b 0d   IDSTART = 128;.
3550: 0a 0d 0a 09 2f 2f 20 83 74 83 48 83 8b 83 5f 82  ....// .t.H..._.
3560: cc 92 86 90 67 82 f0 83 8a 83 58 83 67 83 41 83  ....g.....X.g.A.
3570: 62 83 76 82 b5 82 c2 82 c2 83 81 83 6a 83 85 81  b.v.........j...
3580: 5b 82 c9 92 c7 89 c1 0d 0a 09 69 6e 74 20 69 64  [.........int id
3590: 20 3d 20 49 44 53 54 41 52 54 3b 0d 0a 09 53 74   = IDSTART;...St
35a0: 72 41 72 72 61 79 20 6c 73 74 3b 0d 0a 09 47 65  rArray lst;...Ge
35b0: 6e 65 72 61 74 65 44 69 72 4d 65 6e 75 28 20 6d  nerateDirMenu( m
35c0: 2c 20 69 64 2c 20 26 6c 73 74 2c 20 6b 69 50 61  , id, &lst, kiPa
35d0: 74 68 28 43 53 49 44 4c 5f 53 45 4e 44 54 4f 29  th(CSIDL_SENDTO)
35e0: 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 83 81 83 6a 83   );.....// ...j.
35f0: 85 81 5b 95 5c 8e a6 0d 0a 09 69 64 20 3d 20 3a  ..[.\.....id = :
3600: 3a 54 72 61 63 6b 50 6f 70 75 70 4d 65 6e 75 28  :TrackPopupMenu(
3610: 20 6d 2c 0d 0a 09 09 54 50 4d 5f 4c 45 46 54 41   m,....TPM_LEFTA
3620: 4c 49 47 4e 7c 54 50 4d 5f 54 4f 50 41 4c 49 47  LIGN|TPM_TOPALIG
3630: 4e 7c 54 50 4d 5f 52 45 54 55 52 4e 43 4d 44 7c  N|TPM_RETURNCMD|
3640: 54 50 4d 5f 4e 4f 4e 4f 54 49 46 59 2c 0d 0a 09  TPM_NONOTIFY,...
3650: 09 70 74 2e 78 2c 20 70 74 2e 79 2c 20 30 2c 20  .pt.x, pt.y, 0, 
3660: 68 77 6e 64 28 29 2c 20 4e 55 4c 4c 20 29 3b 0d  hwnd(), NULL );.
3670: 0a 09 3a 3a 44 65 73 74 72 6f 79 4d 65 6e 75 28  ..::DestroyMenu(
3680: 20 6d 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 8c 8b 89   m );.....// ...
3690: ca 8f 88 97 9d 0d 0a 09 69 66 28 20 69 64 20 21  ........if( id !
36a0: 3d 20 30 20 29 0d 0a 09 7b 0d 0a 09 09 6b 69 53  = 0 )...{....kiS
36b0: 74 72 20 63 6d 64 3b 0d 0a 09 09 69 66 28 20 30  tr cmd;....if( 0
36c0: 78 38 30 30 30 3e 6d 5f 70 41 72 63 2d 3e 6d 65  x8000>m_pArc->me
36d0: 6c 74 28 20 6d 5f 66 6e 61 6d 65 2c 20 6d 5f 74  lt( m_fname, m_t
36e0: 64 69 72 2c 20 26 6d 5f 66 69 6c 65 73 20 29 20  dir, &m_files ) 
36f0: 29 0d 0a 09 09 7b 0d 0a 09 09 09 66 6f 72 28 20  )....{.....for( 
3700: 55 49 4e 54 20 69 3d 30 3b 20 69 21 3d 6d 5f 66  UINT i=0; i!=m_f
3710: 69 6c 65 73 2e 6c 65 6e 28 29 3b 20 69 2b 2b 20  iles.len(); i++ 
3720: 29 0d 0a 09 09 09 09 69 66 28 20 6d 5f 66 69 6c  )......if( m_fil
3730: 65 73 5b 69 5d 2e 73 65 6c 65 63 74 65 64 20 29  es[i].selected )
3740: 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09 09 63 6d  ......{.......cm
3750: 64 20 2b 3d 20 22 5c 22 22 3b 0d 0a 09 09 09 09  d += "\"";......
3760: 09 63 6d 64 20 2b 3d 20 6d 5f 74 64 69 72 3b 0d  .cmd += m_tdir;.
3770: 0a 09 09 09 09 09 63 6f 6e 73 74 20 63 68 61 72  ......const char
3780: 2a 20 62 75 66 20 3d 20 6d 5f 66 69 6c 65 73 5b  * buf = m_files[
3790: 69 5d 2e 69 6e 66 2e 73 7a 46 69 6c 65 4e 61 6d  i].inf.szFileNam
37a0: 65 3b 0d 0a 09 09 09 09 09 66 6f 72 28 20 69 6e  e;.......for( in
37b0: 74 20 6b 3d 30 3b 20 62 75 66 5b 6b 5d 3b 20 2b  t k=0; buf[k]; +
37c0: 2b 6b 20 29 0d 0a 09 09 09 09 09 09 63 6d 64 20  +k )........cmd 
37d0: 2b 3d 20 28 20 62 75 66 5b 6b 5d 3d 3d 27 2f 27  += ( buf[k]=='/'
37e0: 20 3f 20 27 5c 5c 27 20 3a 20 62 75 66 5b 6b 5d   ? '\\' : buf[k]
37f0: 20 29 3b 0d 0a 09 09 09 09 09 63 6d 64 20 2b 3d   );.......cmd +=
3800: 20 22 5c 22 20 22 3b 0d 0a 09 09 09 09 7d 0d 0a   "\" ";......}..
3810: 09 09 09 53 68 65 6c 6c 45 78 65 63 75 74 65 28  ...ShellExecute(
3820: 68 77 6e 64 28 29 2c 4e 55 4c 4c 2c 6c 73 74 5b  hwnd(),NULL,lst[
3830: 69 64 2d 49 44 53 54 41 52 54 5d 2c 63 6d 64 2c  id-IDSTART],cmd,
3840: 4e 55 4c 4c 2c 53 57 5f 53 48 4f 57 29 3b 0d 0a  NULL,SW_SHOW);..
3850: 09 09 7d 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a        ..}...}..}....