BOOL neTKVMRegAccess::WriteString(LPCTSTR lpzValueName, LPCTSTR lpzValue, LPCTSTR lpzSubKey) { BOOL bResult = FALSE; HKEY hkWriteKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; DWORD dwDisposition; FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegCreateKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, TEXT(""), REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkWriteKeyHandle, &dwDisposition) == ERROR_SUCCESS) { DWORD dwBuffSize = (DWORD)_tcslen(lpzValue) * sizeof(lpzValue[0]) + 1; if (RegSetValueEx(hkWriteKeyHandle, lpzValueName, 0, REG_SZ, (LPCBYTE)lpzValue, dwBuffSize) == ERROR_SUCCESS) bResult = TRUE; RegCloseKey(hkWriteKeyHandle); } return bResult; }
BOOL neTKVMRegAccess::GetValueInfo(LPCTSTR lpzValueName, DWORD* lpDataType, DWORD* lpDataSize, LPCTSTR lpzSubKey) { BOOL bRet = FALSE; HKEY hkReadKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegOpenKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, KEY_QUERY_VALUE, &hkReadKeyHandle) == ERROR_SUCCESS) { if (RegQueryValueEx(hkReadKeyHandle, lpzValueName, NULL, lpDataType, NULL, lpDataSize) == ERROR_SUCCESS) bRet = TRUE; RegCloseKey(hkReadKeyHandle); } return bRet; }
BOOL neTKVMRegAccess::WriteBinary(LPCTSTR lpzValueName, LPCBYTE lpData, DWORD dwDataSize, LPCTSTR lpzSubKey) { BOOL bResult = FALSE; HKEY hkWriteKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; DWORD dwDisposition; FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegCreateKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, TEXT(""), REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkWriteKeyHandle, &dwDisposition) == ERROR_SUCCESS) { if (RegSetValueEx(hkWriteKeyHandle, lpzValueName, 0, REG_BINARY, lpData, dwDataSize) == ERROR_SUCCESS) bResult = TRUE; RegCloseKey(hkWriteKeyHandle); } return bResult; }
BOOL neTKVMRegAccess::ReadKeyName(LPTSTR lpsKeyName, DWORD dwNumberOfElements, DWORD dwIndex, LPCTSTR lpzSubKey) { BOOL bResult = FALSE; HKEY hkReadKeyHandle = NULL; FILETIME stTimeFile; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegOpenKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, KEY_ENUMERATE_SUB_KEYS, &hkReadKeyHandle) == ERROR_SUCCESS) { DWORD dwBuffSize = dwNumberOfElements * sizeof(lpsKeyName[0]); if (RegEnumKeyEx(hkReadKeyHandle, dwIndex, lpsKeyName, &dwBuffSize, NULL, NULL, NULL, &stTimeFile) == ERROR_SUCCESS) bResult = TRUE; RegCloseKey(hkReadKeyHandle); } return bResult; }
BOOL neTKVMRegAccess::ReadValueName(LPTSTR lpsValueName, DWORD dwNumberOfElements, DWORD dwIndex, LPCTSTR lpzSubKey) { BOOL bResult = FALSE; BYTE baData[DEFAULT_REG_ENTRY_DATA_LEN]; DWORD dwDataSize = DEFAULT_REG_ENTRY_DATA_LEN, dwType = REG_BINARY; HKEY hkReadKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegOpenKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, KEY_QUERY_VALUE, &hkReadKeyHandle) == ERROR_SUCCESS) { DWORD dwBuffSize = dwNumberOfElements * sizeof(lpsValueName[0]); if (RegEnumValue(hkReadKeyHandle, dwIndex, lpsValueName, &dwBuffSize, NULL, &dwType, baData, &dwDataSize) == ERROR_SUCCESS) bResult = TRUE; RegCloseKey(hkReadKeyHandle); } return bResult; }
DWORD neTKVMRegAccess::ReadBinary(LPCTSTR lpzValueName, LPBYTE lpzData, DWORD dwSize, LPCTSTR lpzSubKey) { DWORD dwRes = 0; DWORD dwType = REG_BINARY; HKEY hkReadKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; memset(lpzData, 0, dwSize); FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegOpenKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, KEY_QUERY_VALUE, &hkReadKeyHandle) == ERROR_SUCCESS) { if (RegQueryValueEx(hkReadKeyHandle, lpzValueName, NULL, &dwType, lpzData, &dwSize) == ERROR_SUCCESS) dwRes = dwSize; RegCloseKey(hkReadKeyHandle); } return dwRes; }
DWORD neTKVMRegAccess::ReadString(LPCTSTR lpzValueName, LPTSTR lpzData, DWORD dwNumberOfElements, LPCTSTR lpzSubKey) { DWORD dwRes = 0; DWORD dwType = REG_SZ; HKEY hkReadKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; DWORD dwBuffSize = dwNumberOfElements * sizeof(lpzData[0]); memset(lpzData, 0, dwBuffSize); FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegOpenKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, KEY_QUERY_VALUE, &hkReadKeyHandle) == ERROR_SUCCESS) { if (RegQueryValueEx(hkReadKeyHandle, lpzValueName, NULL, &dwType, (LPBYTE)lpzData, &dwBuffSize) == ERROR_SUCCESS) dwRes = dwBuffSize / sizeof(lpzData[0]); RegCloseKey(hkReadKeyHandle); } return dwRes; }
BOOL neTKVMRegAccess::AddKey(LPCTSTR lpzKeyName) { BOOL bResult = FALSE; HKEY hkWriteKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; DWORD dwDisposition; FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzKeyName); if (RegCreateKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, TEXT(""), REG_OPTION_NON_VOLATILE, KEY_WRITE, NULL, &hkWriteKeyHandle, &dwDisposition) == ERROR_SUCCESS) { bResult = TRUE; RegCloseKey(hkWriteKeyHandle); } return bResult; }
BOOL neTKVMRegAccess::GetKeyInfo(LPDWORD lpdwNofSubKeys, LPDWORD lpdwMaxSubKeyLen, LPDWORD lpdwNofValues, LPDWORD lpdwMaxValueNameLen, LPDWORD lpdwMaxValueLen, LPCTSTR lpzSubKey) { BOOL bRet = FALSE; HKEY hkReadKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegOpenKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, KEY_QUERY_VALUE, &hkReadKeyHandle) == ERROR_SUCCESS) { if (RegQueryInfoKey(hkReadKeyHandle, NULL, NULL, NULL, lpdwNofSubKeys, lpdwMaxSubKeyLen, NULL, lpdwNofValues, lpdwMaxValueNameLen, lpdwMaxValueLen, NULL, NULL) == ERROR_SUCCESS) bRet = TRUE; RegCloseKey(hkReadKeyHandle); } return bRet; }
BOOL neTKVMRegAccess::DeleteValue(LPCTSTR lpzValueName, LPCTSTR lpzSubKey) { BOOL bResult = FALSE; HKEY hkDeleteKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegOpenKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, KEY_WRITE, &hkDeleteKeyHandle) == ERROR_SUCCESS) { if (RegDeleteValue(hkDeleteKeyHandle, lpzValueName) == ERROR_SUCCESS) bResult = TRUE; RegCloseKey(hkDeleteKeyHandle); } return bResult; }
BOOL neTKVMRegAccess::ReadDWord(LPCTSTR lpzValueName, LPDWORD lpdwValue, LPCTSTR lpzSubKey) { BOOL bRes = FALSE; DWORD dwValue = 0, dwSize = sizeof(dwValue), dwType = REG_DWORD; HKEY hkReadKeyHandle = NULL; TCHAR tcaFullRegPath[DEFAULT_REG_ENTRY_DATA_LEN]; FormatFullRegPath(tcaFullRegPath, TBUF_SIZEOF(tcaFullRegPath), lpzSubKey); if (RegOpenKeyEx(m_hkPrimaryHKey, tcaFullRegPath, 0, KEY_QUERY_VALUE, &hkReadKeyHandle) == ERROR_SUCCESS) { if (RegQueryValueEx(hkReadKeyHandle, lpzValueName, NULL, &dwType, (LPBYTE)&dwValue, &dwSize) == ERROR_SUCCESS) { bRes = TRUE; if (lpdwValue) { *lpdwValue = dwValue; } } RegCloseKey(hkReadKeyHandle); } return bRes; }