REGVARS.CPP
上传用户:zhuqijet
上传日期:2007-01-04
资源大小:138k
文件大小:4k
源码类别:

驱动编程

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include "registry.h"
  3. #include "regvars.h"
  4. /****************************************************************************
  5. *                             RegistryVar::getInt
  6. * Inputs:
  7. *       UINT id: ID value
  8. * int def: Default value (= 0)
  9. * HKEY root: default HKEY_CURRENT_USER
  10. * Result: int
  11. *       
  12. * Effect: 
  13. *       Retrieves the integer value
  14. ****************************************************************************/
  15. int RegistryVar::getInt(UINT id, int def, HKEY root)
  16.     {
  17.      DWORD value;
  18.      CString pathname;
  19.      pathname.LoadString(id);
  20.      if(!GetRegistryInt(root, pathname, value))
  21. return def;
  22.      return (int)value;
  23.     }
  24. /****************************************************************************
  25. *                             RegistryVar::setInt
  26. * Inputs:
  27. *       UINT id: ID to set
  28. * int value: Value to set
  29. * HKEY root: default HKEY_CURRENT_USER
  30. * Result: void
  31. *       
  32. * Effect: 
  33. *       Sets the registry key
  34. ****************************************************************************/
  35. void RegistryVar::setInt(UINT id, int value, HKEY root)
  36.     {
  37.      CString pathname;
  38.      pathname.LoadString(id);
  39.      SetRegistryInt(root, pathname, value);
  40.     }
  41. /****************************************************************************
  42. *                           RegistryVar::setString
  43. * Inputs:
  44. *       UINT id: ID of variable in 
  45. * LPCTSTR value: String value to save
  46. * HKEY root: default HKEY_CURRENT_USER
  47. * Result: void
  48. *       
  49. * Effect: 
  50. *       Stores the string value in the registry
  51. ****************************************************************************/
  52. void RegistryVar::setString(UINT id, LPCTSTR value, HKEY root)
  53.     {
  54.      CString pathname;
  55.      pathname.LoadString(id);
  56.      SetRegistryString(root, pathname, value);
  57.     }
  58. /****************************************************************************
  59. *                           RegistryVar::getString
  60. * Inputs:
  61. *       UINT id: ID of subkey
  62. * LPCTSTR def: Default value, or NULL
  63. * HKEY root: default HKEY_CURRENT_USER
  64. * Result: CString
  65. *       The string value loaded
  66. * Effect: 
  67. *       Loads the string from the registry
  68. ****************************************************************************/
  69. CString RegistryVar::getString(UINT id, LPCTSTR def, HKEY root)
  70.     {
  71.      CString pathname;
  72.      CString value;
  73.      pathname.LoadString(id);
  74.      if(!GetRegistryString(root, pathname, value))
  75.         { /* failed */
  76.  if(def != NULL)
  77.     value = def;
  78.          else
  79.     value = _T("");
  80. } /* failed */
  81.      return value;
  82.     }
  83. /****************************************************************************
  84. *                              RegistryInt::load
  85. * Result: BOOL
  86. *       TRUE if loaded successfully
  87. * FALSE if no load occurred
  88. * Effect: 
  89. *       Loads the 'value'
  90. ****************************************************************************/
  91. int RegistryInt::load(int def)
  92.     {
  93.      value = getInt(id, def, root);
  94.      return value;
  95.     }
  96. /****************************************************************************
  97. *                             RegistryInt::store
  98. * Result: void
  99. *       
  100. * Effect: 
  101. *       Stores the 'value'
  102. ****************************************************************************/
  103. void RegistryInt::store()
  104.     {
  105.      setInt(id, value, root);
  106.     }
  107. /****************************************************************************
  108. *                            RegistryString::load
  109. * Inputs:
  110. *       LPCTSTR def: Default value, or NULL if no default
  111. * Result: CString
  112. *       The string that was loaded
  113. * Effect: 
  114. *       Loads the string
  115. ****************************************************************************/
  116. CString RegistryString::load(LPCTSTR def)
  117.     {
  118.      value = getString(id, def, root);
  119.      return value;
  120.     }
  121. /****************************************************************************
  122. *                            RegistryString::store
  123. * Result: void
  124. *       
  125. * Effect: 
  126. *       Stores the variable
  127. ****************************************************************************/
  128. void RegistryString::store()
  129.     {
  130.      setString(id, (LPCTSTR)value, root);
  131.     }