Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
1.3 KiB

  1. #include "shellprv.h"
  2. #pragma hdrstop
  3. #include "rscchvr.h"
  4. void CRSCacheVersion::_RSCVUpdateVersionOnCacheRead()
  5. {
  6. DWORD dwVersion;
  7. if (RSGetDWORDValue(_pszSubKey, TEXT("Version"), &dwVersion))
  8. {
  9. _dwVersion = dwVersion;
  10. }
  11. else
  12. {
  13. _dwVersion = 0;
  14. RSSetDWORDValue(_pszSubKey, TEXT("Version"), _dwVersion);
  15. }
  16. }
  17. void CRSCacheVersion::_RSCVUpdateVersionOnCacheWrite()
  18. {
  19. DWORD dwVersion;
  20. if (RSGetDWORDValue(_pszSubKey, TEXT("Version"), &dwVersion))
  21. {
  22. _dwVersion = dwVersion + 1;
  23. }
  24. else
  25. {
  26. _dwVersion = 0;
  27. }
  28. RSSetDWORDValue(_pszSubKey, TEXT("Version"), _dwVersion);
  29. }
  30. BOOL CRSCacheVersion::_RSCVIsValidVersion()
  31. {
  32. DWORD dwVersion;
  33. BOOL fRet = FALSE;
  34. if (RSGetDWORDValue(_pszSubKey, TEXT("Version"), &dwVersion))
  35. {
  36. if (_dwVersion == dwVersion)
  37. {
  38. fRet = TRUE;
  39. }
  40. }
  41. return fRet;
  42. }
  43. void CRSCacheVersion::_RSCVIncrementRegVersion()
  44. {
  45. DWORD dwVersion;
  46. _RSCVDeleteRegCache();
  47. if (RSGetDWORDValue(_pszSubKey, TEXT("Version"), &dwVersion))
  48. {
  49. ++dwVersion;
  50. RSSetDWORDValue(_pszSubKey, TEXT("Version"), dwVersion);
  51. }
  52. }
  53. void CRSCacheVersion::RSCVInitSubKey(LPCTSTR pszSubKey)
  54. {
  55. _pszSubKey = pszSubKey;
  56. }
  57. LPCTSTR CRSCacheVersion::RSCVGetSubKey()
  58. {
  59. return _pszSubKey;
  60. }