diff options
Diffstat (limited to 'dep/include/g3dlite/G3D/RegistryUtil.h')
-rw-r--r-- | dep/include/g3dlite/G3D/RegistryUtil.h | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/dep/include/g3dlite/G3D/RegistryUtil.h b/dep/include/g3dlite/G3D/RegistryUtil.h new file mode 100644 index 00000000000..97de8d06725 --- /dev/null +++ b/dep/include/g3dlite/G3D/RegistryUtil.h @@ -0,0 +1,86 @@ +/** + @file RegistryUtil.h + + @created 2006-04-06 + @edited 2006-04-06 + + Copyright 2000-2006, Morgan McGuire. + All rights reserved. +*/ + +#ifndef G3D_REGISTRYUTIL_H +#define G3D_REGISTRYUTIL_H + +#include "G3D/platform.h" +#include "G3D/g3dmath.h" + +// This file is only used on Windows +#ifdef G3D_WIN32 + +#include <string> + +namespace G3D { + +/** + Provides generalized Windows registry querying. + + All key names are one string in the format: + "[base key]\[sub-keys]\value" + + [base key] can be any of the following: + HKEY_CLASSES_ROOT + HKEY_CURRENT_CONFIG + HKEY_CURRENT_USER + HKEY_LOCAL_MACHINE + HKEY_PERFORMANCE_DATA + HKEY_PERFORMANCE_NLSTEXT + HKEY_PERFORMANCE_TEXT + HKEY_USERS + + keyExists() should be used to validate a key before reading or writing + to ensure that a debug assert or false return is for a different error. +*/ +class RegistryUtil { + +public: + /** returns true if the key exists */ + static bool keyExists(const std::string& key); + + /** returns false if the key could not be read for any reason. */ + static bool readInt32(const std::string& key, int32& valueData); + + /** + Reads an arbitrary amount of data from a binary registry key. + returns false if the key could not be read for any reason. + + @beta + @param valueData pointer to the output buffer of sufficient size. Pass NULL as valueData in order to have available data size returned in dataSize. + @param dataSize size of the output buffer. When NULL is passed for valueData, contains the size of available data on successful return. + */ + static bool readBytes(const std::string& key, uint8* valueData, uint32& dataSize); + + /** returns false if the key could not be read for any reason. */ + static bool readString(const std::string& key, std::string& valueData); + + /** returns false if the key could not be written for any reason. */ + static bool writeInt32(const std::string& key, int32 valueData); + + /** + Writes an arbitrary amount of data to a binary registry key. + returns false if the key could not be written for any reason. + + @param valueData pointer to the input buffer + @param dataSize size of the input buffer that should be written + */ + static bool writeBytes(const std::string& key, const uint8* valueData, uint32 dataSize); + + /** returns false if the key could not be written for any reason. */ + static bool writeString(const std::string& key, const std::string& valueData); + +}; + +} // namespace G3D + +#endif // G3D_WIN32 + +#endif // G3D_REGISTRYTUIL_H
\ No newline at end of file |