ReactOS 0.4.15-dev-8081-g1a16237
settings.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Magnify
3 * LICENSE: GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4 * PURPOSE: Magnification of parts of the screen.
5 * COPYRIGHT: Copyright 2007-2019 Marc Piulachs <marc.piulachs@codexchange.net>
6 * Copyright 2015-2019 David Quintana <gigaherz@gmail.com>
7 */
8
9#include "magnifier.h"
10
11#include <tchar.h>
12#include <winreg.h>
13
15
17
21
25
27{
28 sizeof(struct _AppBarConfig_t),
29 -2 /* ABE_TOP */,
30 0, 1, /* unknown */
31 { 101,101,101,101 }, /* edge sizes */
32 { 20, 20, 600, 200 }, /* floating window rect */
33};
34
35void LoadSettings(void)
36{
37 HKEY hkey;
38 LONG value;
39 ULONG len;
40 struct _AppBarConfig_t config_temp;
41
42 if (RegOpenKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Magnify"), 0, KEY_READ, &hkey) != ERROR_SUCCESS)
43 return;
44
45 len = sizeof(AppBarConfig);
46 if (RegQueryValueEx(hkey, _T("AppBar"), 0, 0, (BYTE *)&config_temp, &len) == ERROR_SUCCESS)
47 {
48 if(config_temp.cbSize == sizeof(AppBarConfig))
49 {
50 AppBarConfig = config_temp;
51 }
52 }
53
54 len = sizeof(value);
55 if (RegQueryValueEx(hkey, _T("StationaryMagLevel"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
56 {
57 if (value >= 0 && value <= 9)
58 uiZoom = value;
59 }
60
61 len = sizeof(value);
62 if (RegQueryValueEx(hkey, _T("ShowWarning"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
64
65 len = sizeof(value);
66 if (RegQueryValueEx(hkey, _T("StationaryInvertColors"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
68
69 len = sizeof(value);
70 if (RegQueryValueEx(hkey, _T("StationaryStartMinimized"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
72
73 len = sizeof(value);
74 if (RegQueryValueEx(hkey, _T("StationaryTrackCursor"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
76
77 len = sizeof(value);
78 if (RegQueryValueEx(hkey, _T("StationaryTrackFocus"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
80
81 len = sizeof(value);
82 if (RegQueryValueEx(hkey, _T("StationaryTrackSecondaryFocus"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
84
85 len = sizeof(value);
86 if (RegQueryValueEx(hkey, _T("StationaryTrackText"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
88
89 RegCloseKey(hkey);
90}
91
92void SaveSettings(void)
93{
94 HKEY hkey;
95 LONG value;
96
97 if (RegCreateKeyEx(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Magnify"), 0, _T(""), 0, KEY_WRITE, NULL, &hkey, NULL) != ERROR_SUCCESS)
98 return;
99
100 RegSetValueEx(hkey, _T("AppBar"), 0, REG_BINARY, (BYTE *)&AppBarConfig, sizeof(AppBarConfig));
101
102 value = uiZoom;
103 RegSetValueEx(hkey, _T("StationaryMagLevel"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
104
106 RegSetValueEx(hkey, _T("ShowWarning"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
107
109 RegSetValueEx(hkey, _T("StationaryInvertColors"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
110
112 RegSetValueEx(hkey, _T("StationaryStartMinimized"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
113
115 RegSetValueEx(hkey, _T("StationaryTrackCursor"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
116
118 RegSetValueEx(hkey, _T("StationaryTrackFocus"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
119
121 RegSetValueEx(hkey, _T("StationaryTrackSecondaryFocus"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
122
124 RegSetValueEx(hkey, _T("StationaryTrackText"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
125
126 RegCloseKey(hkey);
127}
void SaveSettings(void)
Definition: settings.c:115
void LoadSettings(void)
Definition: settings.c:53
BOOL bFollowFocus
Definition: settings.c:19
struct _AppBarConfig_t AppBarConfig
Definition: settings.c:26
UINT uiZoom
Definition: settings.c:14
BOOL bInvertColors
Definition: settings.c:22
BOOL bShowMagnifier
Definition: settings.c:24
BOOL bFollowCaret
Definition: settings.c:20
BOOL bShowWarning
Definition: settings.c:16
BOOL bFollowMouse
Definition: settings.c:18
BOOL bStartMinimized
Definition: settings.c:23
#define RegCloseKey(hKey)
Definition: registry.h:49
#define ERROR_SUCCESS
Definition: deptool.c:10
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
unsigned int BOOL
Definition: ntddk_ex.h:94
GLenum GLsizei len
Definition: glext.h:6722
unsigned int UINT
Definition: ndis.h:50
#define REG_BINARY
Definition: nt_native.h:1496
#define KEY_READ
Definition: nt_native.h:1023
#define KEY_WRITE
Definition: nt_native.h:1031
long LONG
Definition: pedump.c:60
#define REG_DWORD
Definition: sdbapi.c:596
uint32_t ULONG
Definition: typedefs.h:59
Definition: pdh_main.c:94
#define _T(x)
Definition: vfdio.h:22
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define RegOpenKeyEx
Definition: winreg.h:520
#define RegSetValueEx
Definition: winreg.h:533
#define RegCreateKeyEx
Definition: winreg.h:501
#define RegQueryValueEx
Definition: winreg.h:524
unsigned char BYTE
Definition: xxhash.c:193