RegstryHandler.cpp
上传用户:szopptop
上传日期:2013-04-23
资源大小:1047k
文件大小:2k
源码类别:

模拟服务器

开发平台:

Visual C++

  1. // ****************************************************************************
  2. //
  3. // Registry Handler 
  4. //
  5. //      All written by Jeong, Euy-heon
  6. //      Copyright(C) 1997, 1998 Euy-heon, Jeong. All right reserved.
  7. //
  8. // ****************************************************************************
  9. #include "stdafx.h"
  10. // ****************************************************************************
  11. //
  12. //      jRegGetKey/jRegSetKey
  13. //
  14. //      Last update : 1997.07.16 (Euy-heon, Jeong)
  15. //      Purpose     : Get and set Windows null-terminate string regstry keys. 
  16. //
  17. // ****************************************************************************
  18. BOOL jRegSetKey(LPCTSTR pSubKeyName, LPCTSTR pValueName, DWORD dwFlags, 
  19. LPBYTE pValue, DWORD nValueSize)
  20. {
  21. HKEY hk = NULL;
  22. DWORD dwDisposition = 0;
  23. if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, pSubKeyName, 0, NULL, 
  24. REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, 
  25. &hk, &dwDisposition) == ERROR_SUCCESS)
  26. {
  27. if (RegSetValueEx(hk, pValueName, 0, dwFlags, pValue, nValueSize) != ERROR_SUCCESS)
  28. {
  29. RegCloseKey(hk);
  30. return FALSE;
  31. }
  32. RegCloseKey(hk);
  33. return TRUE;
  34. }
  35. return FALSE;
  36. }
  37. BOOL jRegGetKey(LPCTSTR pSubKeyName, LPCTSTR pValueName, LPBYTE pValue)
  38. {
  39. HKEY hk = NULL;
  40. DWORD dwFlags = 0, dwValueSize = 0;
  41.     if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, pSubKeyName, 0, KEY_READ, &hk) == ERROR_SUCCESS)
  42. {
  43. if (RegQueryValueEx(hk, pValueName, NULL, &dwFlags, NULL, &dwValueSize) != ERROR_SUCCESS)
  44. {
  45. RegCloseKey(hk);
  46. return FALSE;
  47. }
  48. RegQueryValueEx(hk, pValueName, NULL, &dwFlags, pValue, &dwValueSize);
  49. RegCloseKey(hk);
  50. return TRUE;
  51. }
  52. return FALSE;
  53. }
  54. LONG jRegEnumKey(LPCTSTR pSubKeyName, int nIndex, LPTSTR lpSubKey, int nSubkeyLen)
  55. {
  56. HKEY hk = NULL;
  57. DWORD dwSubKeyLen = nSubkeyLen;
  58. FILETIME ft;
  59. LONG lRet = -1;
  60.     if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, pSubKeyName, 0, KEY_READ, &hk) == ERROR_SUCCESS)
  61. {
  62. lRet = RegEnumKeyEx(hk, nIndex, lpSubKey, &dwSubKeyLen, NULL, NULL, NULL, &ft);
  63. RegCloseKey(hk);
  64. }
  65. return lRet;
  66. }