ReactOS  0.4.12-dev-51-ge94618b
settings.c
Go to the documentation of this file.
1 /*
2  * PROJECT: ReactOS Magnify
3  * LICENSE: GPL - See COPYING in the top level directory
4  * FILE: base/applications/magnify/settings.c
5  * PURPOSE: Magnification of parts of the screen.
6  * COPYRIGHT: Copyright 2007 Marc Piulachs <marc.piulachs@codexchange.net>
7  *
8  */
9 
10 #include "magnifier.h"
11 
12 #include <tchar.h>
13 #include <winreg.h>
14 
15 int iZoom = 3;
16 
18 
22 
26 
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 
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  {
44  len = sizeof(AppBarConfig);
45  if (RegQueryValueEx(hkey, _T("AppBar"), 0, 0, (BYTE *)&config_temp, &len) == ERROR_SUCCESS)
46  {
47  if(config_temp.cbSize == sizeof(AppBarConfig))
48  {
49  AppBarConfig = config_temp;
50  }
51  }
52 
53  len = 4;
54  if (RegQueryValueEx(hkey, _T("StationaryMagLevel"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
55  {
56  if (value >= 0 && value <= 9)
57  iZoom = value;
58  }
59 
60  len = 4;
61  if (RegQueryValueEx(hkey, _T("ShowWarning"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
62  bShowWarning = (value == 0 ? FALSE : TRUE);
63 
64  len = 4;
65  if (RegQueryValueEx(hkey, _T("StationaryInvertColors"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
66  bInvertColors = (value == 0 ? FALSE : TRUE);
67 
68  len = 4;
69  if (RegQueryValueEx(hkey, _T("StationaryStartMinimized"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
70  bStartMinimized = (value == 0 ? FALSE : TRUE);
71 
72  len = 4;
73  if (RegQueryValueEx(hkey, _T("StationaryTrackCursor"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
74  bFollowMouse = (value == 0 ? FALSE : TRUE);
75 
76  len = 4;
77  if (RegQueryValueEx(hkey, _T("StationaryTrackFocus"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
78  bFollowFocus = (value == 0 ? FALSE : TRUE);
79 
80  len = 4;
81  if (RegQueryValueEx(hkey, _T("StationaryTrackSecondaryFocus"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
82  bFollowFocus = (value == 0 ? FALSE : TRUE);
83 
84  len = 4;
85  if (RegQueryValueEx(hkey, _T("StationaryTrackText"), 0, 0, (BYTE *)&value, &len) == ERROR_SUCCESS)
86  bFollowCaret = (value == 0 ? FALSE : TRUE);
87 
88  RegCloseKey(hkey);
89  }
90 }
91 
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  {
99  RegSetValueEx(hkey, _T("AppBar"), 0, REG_BINARY, (BYTE *)&AppBarConfig, sizeof(AppBarConfig));
100 
101  value = iZoom;
102  RegSetValueEx(hkey, _T("StationaryMagLevel"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
103 
104  value = bShowWarning;
105  RegSetValueEx(hkey, _T("ShowWarning"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
106 
107  value = bInvertColors;
108  RegSetValueEx(hkey, _T("StationaryInvertColors"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
109 
110  value = bStartMinimized;
111  RegSetValueEx(hkey, _T("StationaryStartMinimized"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
112 
113  value = bFollowMouse;
114  RegSetValueEx(hkey, _T("StationaryTrackCursor"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
115 
116  value = bFollowFocus;
117  RegSetValueEx(hkey, _T("StationaryTrackFocus"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
118 
119  value = bFollowFocus;
120  RegSetValueEx(hkey, _T("StationaryTrackSecondaryFocus"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
121 
122  value = bFollowCaret;
123  RegSetValueEx(hkey, _T("StationaryTrackText"), 0, REG_DWORD, (BYTE *)&value, sizeof(value));
124 
125  RegCloseKey(hkey);
126  }
127 }
#define RegQueryValueEx
Definition: winreg.h:524
#define TRUE
Definition: types.h:120
#define ERROR_SUCCESS
Definition: deptool.c:10
#define REG_BINARY
Definition: nt_native.h:1496
#define KEY_READ
Definition: nt_native.h:1023
BOOL bShowMagnifier
Definition: settings.c:25
int iZoom
Definition: settings.c:15
#define HKEY_CURRENT_USER
Definition: winreg.h:11
struct _AppBarConfig_t AppBarConfig
Definition: settings.c:27
BOOL bShowWarning
Definition: settings.c:17
LONG WINAPI RegCloseKey(HKEY hKey)
Definition: reg.c:423
long LONG
Definition: pedump.c:60
BOOL bInvertColors
Definition: settings.c:23
smooth NULL
Definition: ftsmooth.c:416
#define KEY_WRITE
Definition: nt_native.h:1031
#define _T(x)
Definition: vfdio.h:22
unsigned int BOOL
Definition: ntddk_ex.h:94
BOOL bFollowCaret
Definition: settings.c:21
void SaveSettings(void)
Definition: settings.c:113
BOOL bFollowFocus
Definition: settings.c:20
GLenum GLsizei len
Definition: glext.h:6722
BOOL bStartMinimized
Definition: settings.c:24
GLsizei const GLfloat * value
Definition: glext.h:6069
unsigned char BYTE
Definition: ntddk_ex.h:96
#define RegOpenKeyEx
Definition: winreg.h:520
BOOL bFollowMouse
Definition: settings.c:19
unsigned int ULONG
Definition: retypes.h:1
#define REG_DWORD
Definition: sdbapi.c:539
#define RegSetValueEx
Definition: winreg.h:533
#define RegCreateKeyEx
Definition: winreg.h:501
void LoadSettings(void)
Definition: settings.c:53