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