view src/VisVim/Reg.cpp @ 11028:4df1647531a6 v8.0.0403

patch 8.0.0403: GUI tests may fail commit https://github.com/vim/vim/commit/24d7636e98b33ec6873c51fc72f6bf4b10188d8b Author: Bram Moolenaar <Bram@vim.org> Date: Sat Mar 4 13:32:10 2017 +0100 patch 8.0.0403: GUI tests may fail Problem: GUI tests may fail. Solution: Ignore the E285 error better. (Kazunobu Kuriyama)
author Christian Brabandt <cb@256bit.org>
date Sat, 04 Mar 2017 13:45:04 +0100
parents 3fc0f57ecb91
children
line wrap: on
line source

#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;
}