00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050 #ifndef INC_MI32_REGISTRY_H
00051 #define INC_MI32_REGISTRY_H
00052
00053 #if defined(WIN32)
00054 #ifndef GENERATING_DOXYGEN_OUTPUT
00055 #include <windows.h>
00056 #endif // GENERATING_DOXYGEN_OUTPUT
00057
00058 #ifndef INC_MI32_STDDEFNS_H
00059 #include <mi32/stddefns.h>
00060 #endif
00061
00062 #ifndef INC_MI32_SIMPLEAR_H
00063 #include <mi32/simplear.h>
00064 #endif
00065
00066 #ifndef GENERATING_DOXYGEN_OUTPUT
00067
00068 class BITSET_UNOWNED;
00069 class DATETIME;
00070 class FILEPATH;
00071 class FILEPATHLIST;
00072 class MISTRING;
00073 class MISTRINGLIST;
00074 #endif // GENERATING_DOXYGEN_OUTPUT
00075
00076 #ifdef MISYSTEMDLL
00077 #define CLASSLIBEXPORT MI_DLLCLASSEXPORT
00078 #else
00079 #define CLASSLIBEXPORT MI_DLLCLASSIMPORT
00080 #endif
00081
00086
00088 class CLASSLIBEXPORT REGISTRY {
00089 public:
00090
00091 enum ACCESS {
00092 ACCESS_Read,
00093 ACCESS_Write,
00094 ACCESS_Notify,
00095 ACCESS_All
00096 };
00097
00099 enum BASE {
00100 BASE_ClassesRoot,
00101 BASE_CurrentUser,
00102 BASE_LocalMachine,
00103 BASE_Users
00104 };
00105
00106 REGISTRY (
00107 );
00108
00109 REGISTRY (
00110 const REGISTRY& rhs
00111 );
00112
00113 ~REGISTRY (
00114 );
00115
00116 REGISTRY& operator= (
00117 const REGISTRY& rhs
00118 );
00119
00121 void Close (
00122 );
00123
00125 ERRVALUE CreateKey (
00126 const char* name,
00127 REGISTRY& DestKey
00128 );
00129
00131 ERRVALUE CreateKey (
00132 const MISTRING& name,
00133 REGISTRY& DestKey
00134 );
00135
00138 void DeleteSubKey (
00139 const char* name
00140 );
00141
00144 void DeleteSubKey (
00145 const MISTRING& name
00146 );
00147
00148 void DeleteAllSubKeys (
00149 );
00150
00152 void GetKeyNames (
00153 MISTRINGLIST& KeyList
00154 ) const;
00155
00158 void GetValue (
00159 const char* name,
00160 bool& value,
00161 const bool dft = false
00162 ) const;
00163
00166 void GetValue (
00167 const MISTRING& name,
00168 bool& value,
00169 const bool dft = false
00170 ) const;
00171
00175 void GetValue (
00176 const char* name,
00177 BITSET_UNOWNED& value,
00178 const bool dft = false
00179 ) const;
00180
00184 void GetValue (
00185 const MISTRING& name,
00186 BITSET_UNOWNED& value,
00187 const bool dft = false
00188 ) const;
00189
00192 void GetValue (
00193 const char* name,
00194 UINT64& value,
00195 const UINT64 dft,
00196 const UINT64 min,
00197 const UINT64 max
00198 ) const;
00199
00202 void GetValue (
00203 const MISTRING& name,
00204 UINT64& value,
00205 const UINT64 dft,
00206 const UINT64 min,
00207 const UINT64 max
00208 ) const;
00209
00212 void GetValue (
00213 const char* name,
00214 UINT32& value,
00215 const UINT32 dft = 0,
00216 const UINT32 min = 0,
00217 const UINT32 max = 0
00218 ) const;
00219
00222 void GetValue (
00223 const MISTRING& name,
00224 UINT32& value,
00225 const UINT32 dft = 0,
00226 const UINT32 min = 0,
00227 const UINT32 max = 0
00228 ) const;
00229
00232 void GetValue (
00233 const char* name,
00234 INT32& value,
00235 const INT32 dft = 0,
00236 const INT32 min = 0,
00237 const INT32 max = 0
00238 ) const;
00239
00242 void GetValue (
00243 const MISTRING& name,
00244 INT32& value,
00245 const INT32 dft = 0,
00246 const INT32 min = 0,
00247 const INT32 max = 0
00248 ) const;
00249
00252 void GetValue (
00253 const char* name,
00254 MISTRING& newstring
00255 ) const;
00256
00259 void GetValue (
00260 const MISTRING& name,
00261 MISTRING& newstring
00262 ) const;
00263
00266 void GetValue (
00267 const char* name,
00268 MISTRINGLIST& StrList
00269 ) const;
00270
00273 void GetValue (
00274 const MISTRING& name,
00275 MISTRINGLIST& StrList
00276 ) const;
00277
00280 void GetValue (
00281 const char* name,
00282 FILEPATH& filepath
00283 ) const;
00284
00287 void GetValue (
00288 const MISTRING& name,
00289 FILEPATH& filepath
00290 ) const;
00291
00294 void GetValue (
00295 const char* name,
00296 FILEPATHLIST& PathList
00297 ) const;
00298
00301 void GetValue (
00302 const MISTRING& name,
00303 FILEPATHLIST& PathList
00304 ) const;
00305
00308 void GetValue (
00309 const char* name,
00310 SIMPLE_ARRAY<UINT8>& binary
00311 ) const;
00312
00315 void GetValue (
00316 const MISTRING& name,
00317 SIMPLE_ARRAY<UINT8>& binary
00318 ) const;
00319
00322 void GetValue (
00323 const char* name,
00324 DATETIME& dt
00325 ) const;
00326
00329 void GetValue (
00330 const MISTRING& name,
00331 DATETIME& dt
00332 ) const;
00333
00335 void GetValueNames (
00336 MISTRINGLIST& NameList
00337 ) const;
00338
00342 bool GrantWriteAccessTo (
00343 const MISTRING& AccountName
00344 );
00345
00348 bool IsOpen (
00349 ) const;
00350
00353 bool KeyExists (
00354 const char* KeyName
00355 ) const;
00356
00359 bool KeyExists (
00360 const MISTRING& KeyName
00361 ) const;
00362
00364 ERRVALUE OpenKey (
00365 const char* name,
00366 ACCESS Access = ACCESS_Read
00367 );
00368
00370 ERRVALUE OpenKey (
00371 const MISTRING& name,
00372 ACCESS Access = ACCESS_Read
00373 );
00374
00376 ERRVALUE OpenKey (
00377 BASE root,
00378 const char* name,
00379 ACCESS Access = ACCESS_Read
00380 );
00381
00383 ERRVALUE OpenKey (
00384 BASE root,
00385 const MISTRING& name,
00386 ACCESS Access = ACCESS_Read
00387 );
00388
00390 ERRVALUE OpenKey (
00391 const REGISTRY& parent,
00392 const char* name,
00393 ACCESS Access = ACCESS_Read
00394 );
00395
00397 ERRVALUE OpenKey (
00398 const REGISTRY& parent,
00399 const MISTRING& name,
00400 ACCESS Access = ACCESS_Read
00401 );
00402
00405 ERRVALUE OpenRemoteKey (
00406 BASE root,
00407 const MISTRING& MachineName
00408 );
00409
00412 ERRVALUE PatchTo (
00413 REGISTRY& DestKey
00414 );
00415
00417 ERRVALUE Restore (
00418 const FILEPATH& filename
00419 );
00420
00422 ERRVALUE Save (
00423 const FILEPATH& filename
00424 ) const;
00425
00428 ERRVALUE SetChangeNotifyEvent (
00429 HANDLE Event
00430 );
00431
00434 ERRVALUE SetValue (
00435 const char* name,
00436 const BITSET_UNOWNED& value
00437 );
00438
00441 ERRVALUE SetValue (
00442 const MISTRING& name,
00443 const BITSET_UNOWNED& value
00444 );
00445
00447 ERRVALUE SetValue (
00448 const char* name,
00449 const MISTRING& value
00450 );
00451
00453 ERRVALUE SetValue (
00454 const MISTRING& name,
00455 const MISTRING& value
00456 );
00457
00459 ERRVALUE SetValue (
00460 const char* name,
00461 INT32 value
00462 );
00463
00465 ERRVALUE SetValue (
00466 const MISTRING& name,
00467 INT32 value
00468 );
00469
00472 ERRVALUE SetValue64 (
00473 const char* name,
00474 INT64 value
00475 );
00476
00479 ERRVALUE SetValue64 (
00480 const MISTRING& name,
00481 INT64 value
00482 );
00483
00485 ERRVALUE SetValue (
00486 const char* name,
00487 const MISTRINGLIST& StrList
00488 );
00489
00491 ERRVALUE SetValue (
00492 const MISTRING& name,
00493 const MISTRINGLIST& StrList
00494 );
00495
00497 ERRVALUE SetValue (
00498 const char* name,
00499 const FILEPATHLIST& PathList
00500 );
00501
00503 ERRVALUE SetValue (
00504 const MISTRING& name,
00505 const FILEPATHLIST& PathList
00506 );
00507
00509 ERRVALUE SetValue (
00510 const char* name,
00511 const SIMPLE_ARRAY<UINT8>& binary
00512 );
00513
00515 ERRVALUE SetValue (
00516 const MISTRING& name,
00517 const SIMPLE_ARRAY<UINT8>& binary
00518 );
00519
00522 ERRVALUE SetValue (
00523 const char* name,
00524 const DATETIME& dt
00525 );
00526
00529 ERRVALUE SetValue (
00530 const MISTRING& name,
00531 const DATETIME& dt
00532 );
00533
00534 private:
00535 #ifndef GENERATING_DOXYGEN_OUTPUT
00536 HKEY m_hk;
00537 #endif // GENERATING_DOXYGEN_OUTPUT
00538 };
00539
00540
00541 #undef CLASSLIBEXPORT
00542 #endif // if defined(WIN32)
00543 #endif // INC_MI32_REGISTRY_H
00544