Hex Artifact Content

Not logged in

Artifact b513b5f4430bdfd8dc5edf152a6a8a544472d291:


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 72 65 67 2e 68 20 3a  -..// kl_reg.h :
0020: 20 72 65 67 69 73 74 72 79 20 61 6e 64 20 69 6e   registry and in
0030: 69 2d 66 69 6c 65 20 6f 70 65 72 61 74 69 6f 6e  i-file operation
0040: 0d 0a 0d 0a 23 69 66 6e 64 65 66 20 41 46 58 5f  ....#ifndef AFX_
0050: 4b 49 52 45 47 4b 45 59 5f 48 5f 5f 34 46 44 35  KIREGKEY_H__4FD5
0060: 45 31 42 33 5f 42 38 46 45 5f 34 35 42 33 5f 42  E1B3_B8FE_45B3_B
0070: 31 39 45 5f 33 44 33 30 34 30 37 43 39 34 42 41  19E_3D30407C94BA
0080: 5f 5f 49 4e 43 4c 55 44 45 44 5f 0d 0a 23 64 65  __INCLUDED_..#de
0090: 66 69 6e 65 20 41 46 58 5f 4b 49 52 45 47 4b 45  fine AFX_KIREGKE
00a0: 59 5f 48 5f 5f 34 46 44 35 45 31 42 33 5f 42 38  Y_H__4FD5E1B3_B8
00b0: 46 45 5f 34 35 42 33 5f 42 31 39 45 5f 33 44 33  FE_45B3_B19E_3D3
00c0: 30 34 30 37 43 39 34 42 41 5f 5f 49 4e 43 4c 55  0407C94BA__INCLU
00d0: 44 45 44 5f 0d 0a 0d 0a 2f 2a 3d 2a 3d 2a 3d 2a  DED_..../*=*=*=*
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 3d 2a 3d 2a 3d 2a 3d 2a  =*=*=*=*=*=*=*=*
0120: 2f 0d 0a 2f 2f 20 83 8c 83 57 83 58 83 67 83 8a  /..// ...W.X.g..
0130: 91 80 8d ec 81 95 69 6e 69 91 80 8d ec 0d 0a 0d  ......ini.......
0140: 0a 63 6c 61 73 73 20 6b 69 52 65 67 4b 65 79 0d  .class kiRegKey.
0150: 0a 7b 0d 0a 70 75 62 6c 69 63 3a 20 2f 2f 2d 2d  .{..public: //--
0160: 20 8a 4f 8c fc 82 ab 83 43 83 93 83 5e 81 5b 83   .O.....C...^.[.
0170: 74 83 46 83 43 83 58 20 2d 2d 2d 2d 2d 2d 2d 2d  t.F.C.X --------
0180: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0190: 2d 2d 0d 0a 0d 0a 09 2f 2f 20 8a 4a 82 ad 81 95  --.....// .J....
01a0: 95 c2 82 b6 82 e9 0d 0a 09 62 6f 6f 6c 20 6f 70  .........bool op
01b0: 65 6e 28 20 48 4b 45 59 20 70 61 72 65 6e 74 2c  en( HKEY parent,
01c0: 20 4c 50 43 54 53 54 52 20 6b 65 79 6e 61 6d 65   LPCTSTR keyname
01d0: 2c 20 52 45 47 53 41 4d 20 61 63 63 65 73 73 20  , REGSAM access 
01e0: 3d 20 4b 45 59 5f 41 4c 4c 5f 41 43 43 45 53 53  = KEY_ALL_ACCESS
01f0: 20 29 3b 0d 0a 09 62 6f 6f 6c 20 63 72 65 61 74   );...bool creat
0200: 65 28 20 48 4b 45 59 20 70 61 72 65 6e 74 2c 20  e( HKEY parent, 
0210: 4c 50 43 54 53 54 52 20 6b 65 79 6e 61 6d 65 2c  LPCTSTR keyname,
0220: 20 52 45 47 53 41 4d 20 61 63 63 65 73 73 20 3d   REGSAM access =
0230: 20 4b 45 59 5f 41 4c 4c 5f 41 43 43 45 53 53 20   KEY_ALL_ACCESS 
0240: 29 3b 0d 0a 09 76 6f 69 64 20 63 6c 6f 73 65 28  );...void close(
0250: 29 0d 0a 09 09 7b 0d 0a 09 09 09 69 66 28 20 6d  )....{.....if( m
0260: 5f 68 4b 65 79 20 29 0d 0a 09 09 09 09 52 65 67  _hKey )......Reg
0270: 43 6c 6f 73 65 4b 65 79 28 20 6d 5f 68 4b 65 79  CloseKey( m_hKey
0280: 20 29 3b 0d 0a 09 09 7d 0d 0a 0d 0a 09 2f 2f 20   );....}.....// 
0290: 83 54 83 75 83 4c 81 5b 82 aa 91 b6 8d dd 82 b7  .T.u.L.[........
02a0: 82 e9 82 e2 94 db 82 e2 0d 0a 09 62 6f 6f 6c 20  ...........bool 
02b0: 65 78 69 73 74 28 20 4c 50 43 54 53 54 52 20 6b  exist( LPCTSTR k
02c0: 65 79 6e 61 6d 65 20 29 0d 0a 09 09 7b 0d 0a 09  eyname )....{...
02d0: 09 09 48 4b 45 59 20 6b 3b 0d 0a 09 09 09 69 66  ..HKEY k;.....if
02e0: 28 20 45 52 52 4f 52 5f 53 55 43 43 45 53 53 3d  ( ERROR_SUCCESS=
02f0: 3d 52 65 67 4f 70 65 6e 4b 65 79 45 78 28 20 6d  =RegOpenKeyEx( m
0300: 5f 68 4b 65 79 2c 6b 65 79 6e 61 6d 65 2c 30 2c  _hKey,keyname,0,
0310: 4b 45 59 5f 52 45 41 44 2c 26 6b 20 29 20 29 0d  KEY_READ,&k ) ).
0320: 0a 09 09 09 7b 0d 0a 09 09 09 09 52 65 67 43 6c  ....{......RegCl
0330: 6f 73 65 4b 65 79 28 20 6b 20 29 3b 0d 0a 09 09  oseKey( k );....
0340: 09 09 72 65 74 75 72 6e 20 74 72 75 65 3b 0d 0a  ..return true;..
0350: 09 09 09 7d 0d 0a 09 09 09 72 65 74 75 72 6e 20  ...}.....return 
0360: 66 61 6c 73 65 3b 0d 0a 09 09 7d 0d 0a 09 2f 2f  false;....}...//
0370: 20 48 4b 45 59 82 d6 83 4c 83 83 83 58 83 67 0d   HKEY...L...X.g.
0380: 0a 09 6f 70 65 72 61 74 6f 72 20 48 4b 45 59 28  ..operator HKEY(
0390: 29 20 63 6f 6e 73 74 0d 0a 09 09 7b 0d 0a 09 09  ) const....{....
03a0: 09 72 65 74 75 72 6e 20 6d 5f 68 4b 65 79 3b 0d  .return m_hKey;.
03b0: 0a 09 09 7d 0d 0a 0d 0a 09 2f 2f 20 92 6c 82 f0  ...}.....// .l..
03c0: 93 be 82 e9 0d 0a 09 62 6f 6f 6c 20 67 65 74 28  .......bool get(
03d0: 20 4c 50 43 54 53 54 52 20 76 61 6c 6e 61 6d 65   LPCTSTR valname
03e0: 2c 20 44 57 4f 52 44 2a 20 76 61 6c 20 29 3b 0d  , DWORD* val );.
03f0: 0a 09 62 6f 6f 6c 20 67 65 74 28 20 4c 50 43 54  ..bool get( LPCT
0400: 53 54 52 20 76 61 6c 6e 61 6d 65 2c 20 42 59 54  STR valname, BYT
0410: 45 2a 20 76 61 6c 2c 20 44 57 4f 52 44 20 73 69  E* val, DWORD si
0420: 7a 20 29 3b 0d 0a 09 62 6f 6f 6c 20 67 65 74 28  z );...bool get(
0430: 20 4c 50 43 54 53 54 52 20 76 61 6c 6e 61 6d 65   LPCTSTR valname
0440: 2c 20 6b 69 53 74 72 2a 20 76 61 6c 20 29 3b 0d  , kiStr* val );.
0450: 0a 0d 0a 09 2f 2f 20 92 6c 82 f0 90 dd 92 e8 0d  ....// .l.......
0460: 0a 09 62 6f 6f 6c 20 73 65 74 28 20 4c 50 43 54  ..bool set( LPCT
0470: 53 54 52 20 76 61 6c 6e 61 6d 65 2c 20 44 57 4f  STR valname, DWO
0480: 52 44 20 76 61 6c 20 29 3b 0d 0a 09 62 6f 6f 6c  RD val );...bool
0490: 20 73 65 74 28 20 4c 50 43 54 53 54 52 20 76 61   set( LPCTSTR va
04a0: 6c 6e 61 6d 65 2c 20 42 59 54 45 2a 20 76 61 6c  lname, BYTE* val
04b0: 2c 20 44 57 4f 52 44 20 73 69 7a 20 29 3b 0d 0a  , DWORD siz );..
04c0: 09 62 6f 6f 6c 20 73 65 74 28 20 4c 50 43 54 53  .bool set( LPCTS
04d0: 54 52 20 76 61 6c 6e 61 6d 65 2c 20 4c 50 43 54  TR valname, LPCT
04e0: 53 54 52 20 76 61 6c 20 29 3b 0d 0a 0d 0a 09 2f  STR val );...../
04f0: 2f 20 8d ed 8f 9c 0d 0a 09 62 6f 6f 6c 20 64 65  / .......bool de
0500: 6c 28 20 4c 50 43 54 53 54 52 20 76 61 6c 6e 61  l( LPCTSTR valna
0510: 6d 65 20 29 3b 0d 0a 09 62 6f 6f 6c 20 64 65 6c  me );...bool del
0520: 53 75 62 4b 65 79 28 20 4c 50 43 54 53 54 52 20  SubKey( LPCTSTR 
0530: 6b 65 79 6e 61 6d 65 20 29 3b 0d 0a 0d 0a 70 75  keyname );....pu
0540: 62 6c 69 63 3a 20 2f 2f 2d 2d 20 93 e0 95 94 8f  blic: //-- .....
0550: 88 97 9d 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ... ------------
0560: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0570: 2d 2d 2d 2d 2d 2d 2d 0d 0a 0d 0a 09 6b 69 52 65  -------.....kiRe
0580: 67 4b 65 79 28 29 0d 0a 09 09 7b 0d 0a 09 09 09  gKey()....{.....
0590: 6d 5f 68 4b 65 79 20 3d 20 4e 55 4c 4c 3b 0d 0a  m_hKey = NULL;..
05a0: 09 09 7d 0d 0a 0d 0a 09 76 69 72 74 75 61 6c 20  ..}.....virtual 
05b0: 7e 6b 69 52 65 67 4b 65 79 28 29 0d 0a 09 09 7b  ~kiRegKey()....{
05c0: 0d 0a 09 09 09 63 6c 6f 73 65 28 29 3b 0d 0a 09  .....close();...
05d0: 09 7d 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 0d 0a  .}....private:..
05e0: 0d 0a 09 48 4b 45 59 20 6d 5f 68 4b 65 79 3b 0d  ...HKEY m_hKey;.
05f0: 0a 09 73 74 61 74 69 63 20 62 6f 6f 6c 20 64 65  ..static bool de
0600: 6c 53 75 62 4b 65 79 52 65 63 75 72 73 69 76 65  lSubKeyRecursive
0610: 28 20 48 4b 45 59 20 6b 2c 20 4c 50 43 54 53 54  ( HKEY k, LPCTST
0620: 52 20 6e 20 29 3b 0d 0a 7d 3b 0d 0a 0d 0a 63 6c  R n );..};....cl
0630: 61 73 73 20 6b 69 49 6e 69 46 69 6c 65 0d 0a 7b  ass kiIniFile..{
0640: 0d 0a 70 75 62 6c 69 63 3a 20 2f 2f 2d 2d 20 8a  ..public: //-- .
0650: 4f 8c fc 82 ab 83 43 83 93 83 5e 81 5b 83 74 83  O.....C...^.[.t.
0660: 46 83 43 83 58 20 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  F.C.X ----------
0670: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
0680: 0d 0a 0d 0a 09 2f 2f 20 69 6e 69 83 74 83 40 83  .....// ini.t.@.
0690: 43 83 8b 96 bc 82 f0 90 dd 92 e8 0d 0a 09 76 6f  C.............vo
06a0: 69 64 20 73 65 74 46 69 6c 65 4e 61 6d 65 28 20  id setFileName( 
06b0: 63 6f 6e 73 74 20 63 68 61 72 2a 20 69 6e 69 2c  const char* ini,
06c0: 20 62 6f 6f 6c 20 65 78 65 70 61 74 68 3d 74 72   bool exepath=tr
06d0: 75 65 20 29 3b 0d 0a 09 76 6f 69 64 20 73 65 74  ue );...void set
06e0: 53 65 63 74 69 6f 6e 28 20 63 6f 6e 73 74 20 63  Section( const c
06f0: 68 61 72 2a 20 73 65 63 74 69 6f 6e 20 29 0d 0a  har* section )..
0700: 09 09 7b 20 6d 5f 43 75 72 53 65 63 20 3d 20 73  ..{ m_CurSec = s
0710: 65 63 74 69 6f 6e 3b 20 7d 0d 0a 0d 0a 09 2f 2f  ection; }.....//
0720: 20 93 c7 82 dd 8d 9e 82 dd 0d 0a 09 2f 2f 20 81   ...........// .
0730: a6 20 92 8d 88 d3 81 49 67 65 74 53 74 72 82 cc  . .....IgetStr..
0740: 95 d4 92 6c 82 cd 93 e0 95 94 83 6f 83 62 83 74  ...l.......o.b.t
0750: 83 40 82 c8 88 d7 81 41 0d 0a 09 2f 2f 20 81 a6  .@.....A...// ..
0760: 81 40 81 40 81 40 20 8c c4 82 d1 8f 6f 82 b5 92  .@.@.@ .....o...
0770: bc 8c e3 88 c8 8a 4f 82 cd 93 e0 97 65 82 f0 95  ......O.....e...
0780: db 8f d8 82 b5 82 c8 82 a2 81 42 0d 0a 09 69 6e  ..........B...in
0790: 74 20 67 65 74 49 6e 74 28 20 63 6f 6e 73 74 20  t getInt( const 
07a0: 63 68 61 72 2a 20 6b 65 79 2c 20 69 6e 74 20 64  char* key, int d
07b0: 65 66 76 61 6c 20 29 3b 0d 0a 09 62 6f 6f 6c 20  efval );...bool 
07c0: 67 65 74 42 6f 6f 6c 28 20 63 6f 6e 73 74 20 63  getBool( const c
07d0: 68 61 72 2a 20 6b 65 79 2c 20 62 6f 6f 6c 20 64  har* key, bool d
07e0: 65 66 76 61 6c 20 29 3b 0d 0a 09 63 6f 6e 73 74  efval );...const
07f0: 20 63 68 61 72 2a 20 67 65 74 53 74 72 28 20 63   char* getStr( c
0800: 6f 6e 73 74 20 63 68 61 72 2a 20 6b 65 79 2c 20  onst char* key, 
0810: 63 6f 6e 73 74 20 63 68 61 72 2a 20 64 65 66 76  const char* defv
0820: 61 6c 20 29 3b 0d 0a 0d 0a 09 2f 2f 20 8f 91 82  al );.....// ...
0830: ab 8d 9e 82 dd 0d 0a 09 62 6f 6f 6c 20 70 75 74  ........bool put
0840: 53 74 72 28 20 63 6f 6e 73 74 20 63 68 61 72 2a  Str( const char*
0850: 20 6b 65 79 2c 20 63 6f 6e 73 74 20 63 68 61 72   key, const char
0860: 2a 20 76 61 6c 20 29 3b 0d 0a 09 62 6f 6f 6c 20  * val );...bool 
0870: 70 75 74 49 6e 74 28 20 63 6f 6e 73 74 20 63 68  putInt( const ch
0880: 61 72 2a 20 6b 65 79 2c 20 69 6e 74 20 76 61 6c  ar* key, int val
0890: 20 29 3b 0d 0a 09 62 6f 6f 6c 20 70 75 74 42 6f   );...bool putBo
08a0: 6f 6c 28 20 63 6f 6e 73 74 20 63 68 61 72 2a 20  ol( const char* 
08b0: 6b 65 79 2c 20 62 6f 6f 6c 20 76 61 6c 20 29 3b  key, bool val );
08c0: 0d 0a 0d 0a 70 72 69 76 61 74 65 3a 20 2f 2f 2d  ....private: //-
08d0: 2d 20 93 e0 95 94 8f 88 97 9d 20 2d 2d 2d 2d 2d  - ........ -----
08e0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d  ----------------
08f0: 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 2d 0d 0a  --------------..
0900: 0d 0a 09 6b 69 50 61 74 68 20 6d 5f 46 69 6c 65  ...kiPath m_File
0910: 4e 61 6d 65 3b 0d 0a 09 6b 69 53 74 72 20 6d 5f  Name;...kiStr m_
0920: 43 75 72 53 65 63 3b 0d 0a 09 63 68 61 72 20 6d  CurSec;...char m
0930: 5f 53 74 72 42 75 66 5b 32 35 36 5d 3b 0d 0a 7d  _StrBuf[256];..}
0940: 3b 0d 0a 0d 0a 23 65 6e 64 69 66 0d 0a           ;....#endif..