1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
#include "stdafx.h"
// Returns key for HKEY_CURRENT_USER\"Software"\Company\AppName
// creating it if it doesn't exist
// responsibility of the caller to call RegCloseKey() on the returned HKEY
//
HKEY GetAppKey (char* AppName)
{
HKEY hAppKey = NULL;
HKEY hSoftKey = NULL;
if (RegOpenKeyEx (HKEY_CURRENT_USER, "Software", 0, KEY_WRITE | KEY_READ,
&hSoftKey) == ERROR_SUCCESS)
{
DWORD Dummy;
RegCreateKeyEx (hSoftKey, AppName, 0, REG_NONE,
REG_OPTION_NON_VOLATILE, KEY_WRITE | KEY_READ, NULL,
&hAppKey, &Dummy);
}
if (hSoftKey)
RegCloseKey (hSoftKey);
return hAppKey;
}
// Returns key for
// HKEY_CURRENT_USER\"Software"\RegistryKey\AppName\Section
// creating it if it doesn't exist.
// responsibility of the caller to call RegCloseKey () on the returned HKEY
//
HKEY GetSectionKey (HKEY hAppKey, LPCTSTR Section)
{
HKEY hSectionKey = NULL;
DWORD Dummy;
RegCreateKeyEx (hAppKey, Section, 0, REG_NONE,
REG_OPTION_NON_VOLATILE, KEY_WRITE|KEY_READ, NULL,
&hSectionKey, &Dummy);
return hSectionKey;
}
int GetRegistryInt (HKEY hSectionKey, LPCTSTR Entry, int Default)
{
DWORD Value;
DWORD Type;
DWORD Count = sizeof (DWORD);
if (RegQueryValueEx (hSectionKey, (LPTSTR) Entry, NULL, &Type,
(LPBYTE) &Value, &Count) == ERROR_SUCCESS)
return Value;
return Default;
}
bool WriteRegistryInt (HKEY hSectionKey, char* Entry, int nValue)
{
return RegSetValueEx (hSectionKey, Entry, NULL, REG_DWORD,
(LPBYTE) &nValue, sizeof (nValue)) == ERROR_SUCCESS;
}
|