view src/VisVim/Reg.cpp @ 24256:b471a413d36a v8.2.2669

patch 8.2.2669: command line completion does not work after "vim9" Commit: https://github.com/vim/vim/commit/df749a2b9cab579b8c0ca6ca91889aa03d2da704 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Mar 28 15:29:43 2021 +0200 patch 8.2.2669: command line completion does not work after "vim9" Problem: Command line completion does not work after "vim9". Solution: Include the "9". (Naohiro Ono, closes https://github.com/vim/vim/issues/8025)
author Bram Moolenaar <Bram@vim.org>
date Sun, 28 Mar 2021 15:30:05 +0200
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;
}