#ifndef _CREGISTRY_H #define _CREGISTRY_H class CRegistry { public: CRegistry(LPTSTR szHomeRegistryKey) { DWORD dwDisposition = 0; LONG ErrorResult = RegCreateKeyEx( HKEY_CURRENT_USER, szHomeRegistryKey, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &m_hHomeKey, &dwDisposition); m_bReady = (ErrorResult == ERROR_SUCCESS); } ~CRegistry() { if(NULL != m_hHomeKey){ RegCloseKey(m_hHomeKey); } } LONG ReadStringValue(LPTSTR szValueName, LPTSTR szValue, DWORD dwBufferSize) { DWORD Type = REG_SZ; LONG ErrorResult = RegQueryValueEx(m_hHomeKey, szValueName, NULL, &Type, (LPBYTE)szValue, &dwBufferSize); return ErrorResult; } LONG ReadLongValue(LPTSTR szValueName) { DWORD dwBufferSize = sizeof(LONG); DWORD Type = REG_DWORD; LONG ReturnValue = 0; LONG ErrorResult = RegQueryValueEx(m_hHomeKey, szValueName, NULL, &Type, (LPBYTE)&ReturnValue, &dwBufferSize); return ReturnValue; } LONG WriteStringValue(LPTSTR szValueName, LPTSTR szValue) { return RegSetValueEx(m_hHomeKey, szValueName, 0, REG_SZ, (LPBYTE)szValue, lstrlen(szValue) + 1); } LONG WriteLongValue(LPTSTR szValueName, LONG lValue) { return RegSetValueEx(m_hHomeKey, szValueName, 0, REG_DWORD, (LPBYTE)&lValue, sizeof(LONG)); } private: HKEY m_hHomeKey; HKEY m_CurrentKey; BOOL m_bReady; protected: }; #endif