Artifact 45f14add3bfa4c0a508fef2963704e408821bebc:
0000: 2f 2f 2d 2d 2d 20 4b 2e 49 2e 4c 49 42 20 2d 2d //--- K.I.LIB --
0010: 2d 0d 0a 2f 2f 20 6b 6c 5f 61 70 70 2e 68 20 3a -..// kl_app.h :
0020: 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 63 6c 61 application cla
0030: 73 73 20 66 6f 72 20 4b 2e 49 2e 4c 49 42 0d 0a ss for K.I.LIB..
0040: 0d 0a 23 69 66 6e 64 65 66 20 41 46 58 5f 4b 49 ..#ifndef AFX_KI
0050: 41 50 50 5f 48 5f 5f 41 43 32 34 43 38 41 46 5f APP_H__AC24C8AF_
0060: 32 31 38 37 5f 34 38 37 33 5f 38 33 45 38 5f 41 2187_4873_83E8_A
0070: 42 34 46 32 33 32 35 30 31 37 42 5f 5f 49 4e 43 B4F2325017B__INC
0080: 4c 55 44 45 44 5f 0d 0a 23 64 65 66 69 6e 65 20 LUDED_..#define
0090: 41 46 58 5f 4b 49 41 50 50 5f 48 5f 5f 41 43 32 AFX_KIAPP_H__AC2
00a0: 34 43 38 41 46 5f 32 31 38 37 5f 34 38 37 33 5f 4C8AF_2187_4873_
00b0: 38 33 45 38 5f 41 42 34 46 32 33 32 35 30 31 37 83E8_AB4F2325017
00c0: 42 5f 5f 49 4e 43 4c 55 44 45 44 5f 0d 0a 0d 0a B__INCLUDED_....
00d0: 2f 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a /*=*=*=*=*=*=*=*
00e0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
00f0: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
0100: 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a 3d 2a =*=*=*=*=*=*=*=*
0110: 3d 2a 3d 2a 3d 2a 3d 2a 2f 0d 0a 2f 2f 20 94 c4 =*=*=*=*/..// ..
0120: 97 70 83 41 83 76 83 8a 83 50 81 5b 83 56 83 87 .p.A.v...P.[.V..
0130: 83 93 83 4e 83 89 83 58 0d 0a 0d 0a 63 6c 61 73 ...N...X....clas
0140: 73 20 6b 69 41 70 70 0d 0a 7b 0d 0a 66 72 69 65 s kiApp..{..frie
0150: 6e 64 20 6b 69 41 70 70 2a 20 61 70 70 28 29 3b nd kiApp* app();
0160: 0d 0a 66 72 69 65 6e 64 20 76 6f 69 64 20 6b 69 ..friend void ki
0170: 6c 69 62 5f 73 74 61 72 74 55 70 28 29 3b 0d 0a lib_startUp();..
0180: 0d 0a 70 75 62 6c 69 63 3a 20 2f 2f 2d 2d 20 8a ..public: //-- .
0190: 4f 8c fc 82 ab 83 43 83 93 83 5e 81 5b 83 74 83 O.....C...^.[.t.
01a0: 46 83 43 83 58 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d F.C.X ----------
01b0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
01c0: 0d 0a 0d 0a 09 2f 2f 20 83 43 83 93 83 58 83 5e .....// .C...X.^
01d0: 83 93 83 58 0d 0a 09 48 49 4e 53 54 41 4e 43 45 ...X...HINSTANCE
01e0: 20 69 6e 73 74 28 29 20 63 6f 6e 73 74 0d 0a 09 inst() const...
01f0: 09 7b 0d 0a 09 09 09 72 65 74 75 72 6e 20 6d 5f .{.....return m_
0200: 68 49 6e 73 74 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 hInst;....}.....
0210: 2f 2f 20 83 81 83 43 83 93 83 45 83 43 83 93 83 // ...C...E.C...
0220: 68 83 45 0d 0a 09 48 57 4e 44 20 6d 61 69 6e 68 h.E...HWND mainh
0230: 77 6e 64 28 29 20 63 6f 6e 73 74 0d 0a 09 09 7b wnd() const....{
0240: 0d 0a 09 09 09 72 65 74 75 72 6e 20 6d 5f 70 4d .....return m_pM
0250: 61 69 6e 57 6e 64 20 3f 20 6d 5f 70 4d 61 69 6e ainWnd ? m_pMain
0260: 57 6e 64 2d 3e 68 77 6e 64 28 29 20 3a 20 4e 55 Wnd->hwnd() : NU
0270: 4c 4c 3b 0d 0a 09 09 7d 0d 0a 09 6b 69 57 69 6e LL;....}...kiWin
0280: 64 6f 77 2a 20 6d 61 69 6e 77 6e 64 28 29 20 63 dow* mainwnd() c
0290: 6f 6e 73 74 0d 0a 09 09 7b 0d 0a 09 09 09 72 65 onst....{.....re
02a0: 74 75 72 6e 20 6d 5f 70 4d 61 69 6e 57 6e 64 3b turn m_pMainWnd;
02b0: 0d 0a 09 09 7d 0d 0a 09 76 6f 69 64 20 73 65 74 ....}...void set
02c0: 4d 61 69 6e 57 6e 64 28 20 6b 69 57 69 6e 64 6f MainWnd( kiWindo
02d0: 77 2a 20 77 6e 64 20 29 0d 0a 09 09 7b 0d 0a 09 w* wnd )....{...
02e0: 09 09 6d 5f 70 4d 61 69 6e 57 6e 64 20 3d 20 77 ..m_pMainWnd = w
02f0: 6e 64 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 2f 2f 20 nd;....}.....//
0300: 82 6e 82 72 83 6f 81 5b 83 57 83 87 83 93 0d 0a .n.r.o.[.W......
0310: 09 63 6f 6e 73 74 20 4f 53 56 45 52 53 49 4f 4e .const OSVERSION
0320: 49 4e 46 4f 26 20 6f 73 76 65 72 28 29 20 63 6f INFO& osver() co
0330: 6e 73 74 0d 0a 09 09 7b 0d 0a 09 09 09 72 65 74 nst....{.....ret
0340: 75 72 6e 20 6d 5f 4f 73 56 65 72 3b 0d 0a 09 09 urn m_OsVer;....
0350: 7d 0d 0a 0d 0a 09 2f 2f 20 83 81 83 62 83 5a 81 }.....// ...b.Z.
0360: 5b 83 57 83 7b 83 62 83 4e 83 58 0d 0a 09 69 6e [.W.{.b.N.X...in
0370: 74 20 6d 73 67 42 6f 78 28 20 63 6f 6e 73 74 20 t msgBox( const
0380: 63 68 61 72 2a 20 6d 73 67 2c 20 63 6f 6e 73 74 char* msg, const
0390: 20 63 68 61 72 2a 20 63 61 70 74 69 6f 6e 3d 4e char* caption=N
03a0: 55 4c 4c 2c 20 55 49 4e 54 20 74 79 70 65 3d 4d ULL, UINT type=M
03b0: 42 5f 4f 4b 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 B_OK )....{.....
03c0: 72 65 74 75 72 6e 20 3a 3a 4d 65 73 73 61 67 65 return ::Message
03d0: 42 6f 78 28 20 6d 61 69 6e 68 77 6e 64 28 29 2c Box( mainhwnd(),
03e0: 20 6d 73 67 2c 20 63 61 70 74 69 6f 6e 2c 20 74 msg, caption, t
03f0: 79 70 65 20 29 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 ype );....}.....
0400: 2f 2f 20 83 56 83 46 83 8b 82 cc 83 41 83 8d 83 // .V.F.....A...
0410: 50 81 5b 83 5e 82 c5 83 81 83 82 83 8a 89 f0 95 P.[.^...........
0420: fa 0d 0a 09 76 6f 69 64 20 73 68 65 6c 6c 46 72 ....void shellFr
0430: 65 65 28 20 76 6f 69 64 2a 20 70 74 72 20 29 20 ee( void* ptr )
0440: 63 6f 6e 73 74 0d 0a 09 09 7b 0d 0a 09 09 09 6d const....{.....m
0450: 5f 70 53 68 65 6c 6c 41 6c 6c 6f 63 2d 3e 46 72 _pShellAlloc->Fr
0460: 65 65 28 20 70 74 72 20 29 3b 0d 0a 09 09 7d 0d ee( ptr );....}.
0470: 0a 0d 0a 09 2f 2f 20 89 bc 91 7a 83 52 81 5b 83 ....// ...z.R.[.
0480: 68 20 76 4b 65 79 20 82 cc 83 4c 81 5b 82 cd 89 h vKey ...L.[...
0490: 9f 82 b3 82 ea 82 c4 82 a2 82 e9 82 a9 81 48 0d ..............H.
04a0: 0a 09 73 74 61 74 69 63 20 62 6f 6f 6c 20 6b 65 ..static bool ke
04b0: 79 50 75 73 68 65 64 28 20 69 6e 74 20 76 4b 65 yPushed( int vKe
04c0: 79 20 29 0d 0a 09 09 7b 0d 0a 09 09 09 72 65 74 y )....{.....ret
04d0: 75 72 6e 28 20 30 21 3d 28 3a 3a 47 65 74 41 73 urn( 0!=(::GetAs
04e0: 79 6e 63 4b 65 79 53 74 61 74 65 28 20 76 4b 65 yncKeyState( vKe
04f0: 79 20 29 3e 3e 31 35 29 20 29 3b 0d 0a 09 09 7d y )>>15) );....}
0500: 0d 0a 0d 0a 09 2f 2f 20 43 6f 6d 6d 6f 6e 43 6f .....// CommonCo
0510: 6e 74 72 6f 6c 20 2f 20 4f 4c 45 20 8f 89 8a fa ntrol / OLE ....
0520: 89 bb 0d 0a 09 76 6f 69 64 20 73 68 65 6c 6c 49 .....void shellI
0530: 6e 69 74 28 29 0d 0a 09 09 7b 0d 0a 09 09 09 69 nit()....{.....i
0540: 66 28 20 21 6d 5f 62 53 68 65 6c 6c 49 6e 69 74 f( !m_bShellInit
0550: 20 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 3a 3a ).....{......::
0560: 49 6e 69 74 43 6f 6d 6d 6f 6e 43 6f 6e 74 72 6f InitCommonContro
0570: 6c 73 28 29 3b 0d 0a 09 09 09 09 3a 3a 4f 6c 65 ls();......::Ole
0580: 49 6e 69 74 69 61 6c 69 7a 65 28 20 4e 55 4c 4c Initialize( NULL
0590: 20 29 3b 0d 0a 09 09 09 09 6d 5f 62 53 68 65 6c );......m_bShel
05a0: 6c 49 6e 69 74 20 3d 20 74 72 75 65 3b 0d 0a 09 lInit = true;...
05b0: 09 09 7d 0d 0a 09 09 7d 0d 0a 0d 0a 23 69 66 64 ..}....}....#ifd
05c0: 65 66 20 4b 49 4c 49 42 5f 4c 4f 47 0d 0a 09 76 ef KILIB_LOG...v
05d0: 6f 69 64 20 6c 6f 67 28 20 63 6f 6e 73 74 20 63 oid log( const c
05e0: 68 61 72 2a 20 73 74 72 20 29 0d 0a 09 09 7b 0d har* str )....{.
05f0: 0a 09 09 09 69 66 28 20 21 6d 5f 6c 6f 67 2e 69 ....if( !m_log.i
0600: 73 4f 70 65 6e 65 64 28 29 20 29 0d 0a 09 09 09 sOpened() ).....
0610: 7b 0d 0a 09 09 09 09 6b 69 50 61 74 68 20 6c 6f {......kiPath lo
0620: 67 74 78 74 28 20 6b 69 50 61 74 68 3a 3a 45 78 gtxt( kiPath::Ex
0630: 65 20 29 3b 20 6c 6f 67 74 78 74 20 2b 3d 20 22 e ); logtxt += "
0640: 6c 6f 67 2e 74 78 74 22 3b 0d 0a 09 09 09 09 6d log.txt";......m
0650: 5f 6c 6f 67 2e 6f 70 65 6e 28 20 6c 6f 67 74 78 _log.open( logtx
0660: 74 2c 20 66 61 6c 73 65 20 29 3b 0d 0a 09 09 09 t, false );.....
0670: 7d 0d 0a 09 09 09 6d 5f 6c 6f 67 2e 77 72 69 74 }.....m_log.writ
0680: 65 28 20 73 74 72 2c 20 6b 69 5f 73 74 72 6c 65 e( str, ki_strle
0690: 6e 28 73 74 72 29 20 29 3b 0d 0a 09 09 09 6d 5f n(str) );.....m_
06a0: 6c 6f 67 2e 77 72 69 74 65 28 20 22 5c 72 5c 6e log.write( "\r\n
06b0: 22 2c 20 32 20 29 3b 0d 0a 09 09 7d 0d 0a 23 65 ", 2 );....}..#e
06c0: 6e 64 69 66 0d 0a 0d 0a 70 72 6f 74 65 63 74 65 ndif....protecte
06d0: 64 3a 20 2f 2f 2d 2d 20 94 68 90 b6 83 4e 83 89 d: //-- .h...N..
06e0: 83 58 8c fc 82 af 20 2d 2d 2d 2d 2d 2d 2d 2d 2d .X.... ---------
06f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0700: 2d 2d 2d 2d 0d 0a 0d 0a 09 2f 2f 20 8b 4e 93 ae ----.....// .N..
0710: 8e 9e 82 c9 8c c4 82 ce 82 ea 82 e9 8a d6 90 94 ................
0720: 81 42 95 4b 90 7b 81 42 0d 0a 09 76 69 72 74 75 .B.K.{.B...virtu
0730: 61 6c 20 76 6f 69 64 20 72 75 6e 28 20 6b 69 43 al void run( kiC
0740: 6d 64 50 61 72 73 65 72 26 20 63 6d 64 20 29 20 mdParser& cmd )
0750: 3d 20 30 3b 0d 0a 0d 0a 70 72 6f 74 65 63 74 65 = 0;....protecte
0760: 64 3a 20 2f 2f 2d 2d 20 93 e0 95 94 8f 88 97 9d d: //-- ........
0770: 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ---------------
0780: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d ----------------
0790: 2d 2d 2d 2d 0d 0a 0d 0a 09 6b 69 41 70 70 28 29 ----.....kiApp()
07a0: 0d 0a 09 09 7b 0d 0a 09 09 09 73 74 5f 70 41 70 ....{.....st_pAp
07b0: 70 20 3d 20 74 68 69 73 3b 0d 0a 09 09 09 6d 5f p = this;.....m_
07c0: 68 49 6e 73 74 20 3d 20 3a 3a 47 65 74 4d 6f 64 hInst = ::GetMod
07d0: 75 6c 65 48 61 6e 64 6c 65 28 20 4e 55 4c 4c 20 uleHandle( NULL
07e0: 29 3b 0d 0a 09 09 09 6d 5f 70 4d 61 69 6e 57 6e );.....m_pMainWn
07f0: 64 20 3d 20 4e 55 4c 4c 3b 0d 0a 09 09 09 6d 5f d = NULL;.....m_
0800: 62 53 68 65 6c 6c 49 6e 69 74 20 3d 20 66 61 6c bShellInit = fal
0810: 73 65 3b 0d 0a 09 09 09 6d 5f 4f 73 56 65 72 2e se;.....m_OsVer.
0820: 64 77 4f 53 56 65 72 73 69 6f 6e 49 6e 66 6f 53 dwOSVersionInfoS
0830: 69 7a 65 20 3d 20 73 69 7a 65 6f 66 28 20 6d 5f ize = sizeof( m_
0840: 4f 73 56 65 72 20 29 3b 0d 0a 09 09 09 3a 3a 47 OsVer );.....::G
0850: 65 74 56 65 72 73 69 6f 6e 45 78 28 20 26 6d 5f etVersionEx( &m_
0860: 4f 73 56 65 72 20 29 3b 0d 0a 09 09 09 3a 3a 53 OsVer );.....::S
0870: 48 47 65 74 4d 61 6c 6c 6f 63 28 20 26 6d 5f 70 HGetMalloc( &m_p
0880: 53 68 65 6c 6c 41 6c 6c 6f 63 20 29 3b 0d 0a 09 ShellAlloc );...
0890: 09 7d 0d 0a 0d 0a 70 72 6f 74 65 63 74 65 64 3a .}....protected:
08a0: 0d 0a 0d 0a 09 76 69 72 74 75 61 6c 20 7e 6b 69 .....virtual ~ki
08b0: 41 70 70 28 29 0d 0a 09 09 7b 0d 0a 09 09 09 6d App()....{.....m
08c0: 5f 70 53 68 65 6c 6c 41 6c 6c 6f 63 2d 3e 52 65 _pShellAlloc->Re
08d0: 6c 65 61 73 65 28 29 3b 0d 0a 09 09 09 69 66 28 lease();.....if(
08e0: 20 6d 5f 62 53 68 65 6c 6c 49 6e 69 74 20 29 0d m_bShellInit ).
08f0: 0a 09 09 09 09 3a 3a 4f 6c 65 55 6e 69 6e 69 74 .....::OleUninit
0900: 69 61 6c 69 7a 65 28 29 3b 0d 0a 09 09 7d 0d 0a ialize();....}..
0910: 0d 0a 70 72 69 76 61 74 65 3a 0d 0a 0d 0a 09 48 ..private:.....H
0920: 49 4e 53 54 41 4e 43 45 20 20 20 20 20 20 6d 5f INSTANCE m_
0930: 68 49 6e 73 74 3b 0d 0a 09 49 4d 61 6c 6c 6f 63 hInst;...IMalloc
0940: 2a 20 20 20 20 20 20 20 6d 5f 70 53 68 65 6c 6c * m_pShell
0950: 41 6c 6c 6f 63 3b 0d 0a 09 62 6f 6f 6c 20 20 20 Alloc;...bool
0960: 20 20 20 20 20 20 20 20 6d 5f 62 53 68 65 6c 6c m_bShell
0970: 49 6e 69 74 3b 0d 0a 09 4f 53 56 45 52 53 49 4f Init;...OSVERSIO
0980: 4e 49 4e 46 4f 20 20 6d 5f 4f 73 56 65 72 3b 0d NINFO m_OsVer;.
0990: 0a 09 6b 69 57 69 6e 64 6f 77 2a 20 20 20 20 20 ..kiWindow*
09a0: 20 6d 5f 70 4d 61 69 6e 57 6e 64 3b 0d 0a 09 73 m_pMainWnd;...s
09b0: 74 61 74 69 63 20 6b 69 41 70 70 2a 20 73 74 5f tatic kiApp* st_
09c0: 70 41 70 70 3b 0d 0a 23 69 66 64 65 66 20 4b 49 pApp;..#ifdef KI
09d0: 4c 49 42 5f 4c 4f 47 0d 0a 09 6b 69 46 69 6c 65 LIB_LOG...kiFile
09e0: 20 20 20 20 20 20 20 20 20 6d 5f 6c 6f 67 3b 0d m_log;.
09f0: 0a 23 65 6e 64 69 66 0d 0a 7d 3b 0d 0a 0d 0a 23 .#endif..};....#
0a00: 65 6e 64 69 66 0d 0a endif..