cregistry.h
上传用户:xiuanze55
上传日期:2017-08-03
资源大小:1080k
文件大小:2k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. // Registry Access class (updated) by David Overton (david@insomniavisions.com)
  2. // Proper errors are available in this version. The functions call
  3. // SetLastError if it is a standard windows error. The user defined
  4. // errors shown below are exceptions. Catch them as shown here:
  5. // try {
  6. //     pRegistry->SetDWORDValue(...); // whatever
  7. // }
  8. // catch(unsigned int error) {
  9. //     // error is one of the error codes defined below
  10. // }
  11. #if !defined(__CRegistry_H_)
  12. #define __CRegistry_H_
  13. #define WIN32_LEAN_AND_MEAN
  14. #include <windows.h>
  15. #include <shlwapi.h>
  16. #include <tchar.h>
  17. const unsigned int ERROR_WRONG_TYPE     = 0x01; // Wrong type of data
  18. const unsigned int ERROR_BUFFER_SIZE    = 0x02; // Buffer too small
  19. const unsigned int ERROR_NO_SHLWAPI_DLL = 0x03; // Only under NT if shlwapi.dll doesn't exist
  20. const unsigned int ERROR_INVALID_BUFFER = 0x04; // Occurs if buffer invalid (ie no buffer)
  21. const unsigned int ERROR_NO_SHDELETEKEY = 0x05; // Occurs in NT if no SHDeleteKey fn in shlwapi.dll
  22. typedef DWORD (__stdcall* SHDELKEYPROC)(HKEY, LPCTSTR);
  23. class CRegistry {
  24.     bool IsWinNTor2K();
  25. public:
  26.     bool CreateKey(HKEY hKeyRoot, LPCTSTR pszSubKey);
  27.     bool DeleteKey(HKEY hKeyRoot, LPCTSTR pszSubKey);
  28.     bool DeleteValue(HKEY hKeyRoot, LPCTSTR pszSubKey, LPCTSTR pszValue);
  29.     bool GetBinaryValue(HKEY hKeyRoot, LPCTSTR pszSubKey, LPCTSTR pszValue, PVOID pData, DWORD& rdwSize);
  30.     bool GetDWORDValue(HKEY hKeyRoot, LPCTSTR pszSubKey, LPCTSTR pszValue, DWORD& rdwBuff);
  31.     bool GetStringValue(HKEY hKeyRoot, LPCTSTR pszSubKey, LPCTSTR pszValue, LPTSTR pszBuffer, DWORD& rdwSize);
  32.     bool SetBinaryValue(HKEY hKeyRoot, LPCTSTR pszSubKey, LPCTSTR pszValue, PVOID pData, DWORD dwSize);
  33.     bool SetDWORDValue(HKEY hKeyRoot, LPCTSTR pszSubKey, LPCTSTR pszValue, DWORD dwValue);
  34.     bool SetStringValue(HKEY hKeyRoot, LPCTSTR pszSubKey, LPCTSTR pszValue, LPCTSTR pszString);
  35. };
  36. #endif