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 ..}...}..}....