key.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:2k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // key.cpp : implementation file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "key.h"
  22. #include <winreg.h>
  23. #ifdef _DEBUG
  24. #undef THIS_FILE
  25. static char BASED_CODE THIS_FILE[] = __FILE__;
  26. #endif
  27. /////////////////////////////////////////////////////////////////////////////
  28. // CKey
  29. void CKey::Close()
  30. {
  31. if (m_hKey != NULL)
  32. {
  33. LONG lRes = RegCloseKey(m_hKey);
  34. ASSERT(lRes == ERROR_SUCCESS);
  35. m_hKey = NULL;
  36. }
  37. }
  38. BOOL CKey::Create(HKEY hKey, LPCTSTR lpszKeyName)
  39. {
  40. ASSERT(hKey != NULL);
  41. return (RegCreateKey(hKey, lpszKeyName, &m_hKey) == ERROR_SUCCESS);
  42. }
  43. BOOL CKey::Open(HKEY hKey, LPCTSTR lpszKeyName)
  44. {
  45. ASSERT(hKey != NULL);
  46. return (RegOpenKey(hKey, lpszKeyName, &m_hKey) == ERROR_SUCCESS);
  47. }
  48. BOOL CKey::SetStringValue(LPCTSTR lpszValue, LPCTSTR lpszValueName)
  49. {
  50. ASSERT(m_hKey != NULL);
  51. return (RegSetValueEx(m_hKey, lpszValueName, NULL, REG_SZ,
  52. (BYTE * const)lpszValue, (lstrlen(lpszValue)+1)*sizeof(TCHAR)) == ERROR_SUCCESS);
  53. }
  54. BOOL CKey::GetStringValue(CString& str, LPCTSTR lpszValueName)
  55. {
  56. ASSERT(m_hKey != NULL);
  57. str.Empty();
  58. DWORD dw = 0;
  59. DWORD dwType = 0;
  60. LONG lRes = RegQueryValueEx(m_hKey, (LPTSTR)lpszValueName, NULL, &dwType,
  61. NULL, &dw);
  62. if (lRes == ERROR_SUCCESS)
  63. {
  64. ASSERT(dwType == REG_SZ);
  65. LPTSTR lpsz = str.GetBufferSetLength(dw);
  66. lRes = RegQueryValueEx(m_hKey, (LPTSTR)lpszValueName, NULL, &dwType, (BYTE*)lpsz, &dw);
  67. ASSERT(lRes == ERROR_SUCCESS);
  68. str.ReleaseBuffer();
  69. return TRUE;
  70. }
  71. return FALSE;
  72. }