Hex Artifact Content

Not logged in

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