Reg.cpp
上传用户:gddssl
上传日期:2007-01-06
资源大小:1003k
文件大小:2k
源码类别:

编辑器/阅读器

开发平台:

DOS

  1. #include "stdafx.h"
  2. // Returns key for HKEY_CURRENT_USER"Software"CompanyAppName
  3. // creating it if it doesn't exist
  4. // responsibility of the caller to call RegCloseKey() on the returned HKEY
  5. //
  6. HKEY GetAppKey (char* AppName)
  7. {
  8. HKEY hAppKey = NULL;
  9. HKEY hSoftKey = NULL;
  10. if (RegOpenKeyEx (HKEY_CURRENT_USER, "Software", 0, KEY_WRITE | KEY_READ,
  11. &hSoftKey) == ERROR_SUCCESS)
  12. {
  13. DWORD Dummy;
  14. RegCreateKeyEx (hSoftKey, AppName, 0, REG_NONE,
  15. REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_READ, NULL,
  16. &hAppKey, &Dummy);
  17. }
  18. if (hSoftKey)
  19. RegCloseKey (hSoftKey);
  20. return hAppKey;
  21. }
  22. // Returns key for
  23. // HKEY_CURRENT_USER"Software"RegistryKeyAppNameSection
  24. // creating it if it doesn't exist.
  25. // responsibility of the caller to call RegCloseKey () on the returned HKEY
  26. //
  27. HKEY GetSectionKey (HKEY hAppKey, LPCTSTR Section)
  28. {
  29. HKEY hSectionKey = NULL;
  30. DWORD Dummy;
  31. RegCreateKeyEx (hAppKey, Section, 0, REG_NONE,
  32. REG_OPTION_NON_VOLATILE, KEY_WRITE|KEY_READ, NULL,
  33. &hSectionKey, &Dummy);
  34. return hSectionKey;
  35. }
  36. int GetRegistryInt (HKEY hSectionKey, LPCTSTR Entry, int Default)
  37. {
  38. DWORD Value;
  39. DWORD Type;
  40. DWORD Count = sizeof (DWORD);
  41. if (RegQueryValueEx (hSectionKey, (LPTSTR) Entry, NULL, &Type,
  42.      (LPBYTE) &Value, &Count) == ERROR_SUCCESS)
  43. return Value;
  44. return Default;
  45. }
  46. bool WriteRegistryInt (HKEY hSectionKey, char* Entry, int nValue)
  47. {
  48. return RegSetValueEx (hSectionKey, Entry, NULL, REG_DWORD,
  49. (LPBYTE) &nValue, sizeof (nValue)) == ERROR_SUCCESS;
  50. }