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