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