2 * PROJECT: PAINT for ReactOS
4 * FILE: base/applications/mspaint/registry.cpp
5 * PURPOSE: Offering functions dealing with registry values
6 * PROGRAMMERS: Benedikt Freisen
9 /* INCLUDES *********************************************************/
15 /* FUNCTIONS ********************************************************/
17 void RegistrySettings::SetWallpaper(TCHAR
* FileName
, DWORD dwStyle
, DWORD dwTile
) //FIXME: Has to be called 2x to apply the pattern (tiled/stretched) too
20 TCHAR szStyle
[3], szTile
[3];
22 SystemParametersInfo(SPI_SETDESKWALLPAPER
, 0, (PVOID
) FileName
, SPIF_UPDATEINIFILE
);
24 if ((dwStyle
> 2) || (dwTile
> 2))
27 if (RegOpenKeyEx(HKEY_CURRENT_USER
,
28 _T("Control Panel\\Desktop"), 0, KEY_READ
| KEY_SET_VALUE
, &hDesktop
) == ERROR_SUCCESS
)
30 RegSetValueEx(hDesktop
, _T("Wallpaper"), 0, REG_SZ
, (LPBYTE
) FileName
,
31 _tcslen(FileName
) * sizeof(TCHAR
));
33 _stprintf(szStyle
, _T("%lu"), dwStyle
);
34 _stprintf(szTile
, _T("%lu"), dwTile
);
36 RegSetValueEx(hDesktop
, _T("WallpaperStyle"), 0, REG_SZ
, (LPBYTE
) szStyle
,
37 _tcslen(szStyle
) * sizeof(TCHAR
));
38 RegSetValueEx(hDesktop
, _T("TileWallpaper"), 0, REG_SZ
, (LPBYTE
) szTile
,
39 _tcslen(szTile
) * sizeof(TCHAR
));
41 RegCloseKey(hDesktop
);
45 void RegistrySettings::LoadPresets()
58 const WINDOWPLACEMENT DefaultWindowPlacement
= {
59 sizeof(WINDOWPLACEMENT
),
66 WindowPlacement
= DefaultWindowPlacement
;
69 void RegistrySettings::Load()
73 if (RegOpenKeyEx(HKEY_CURRENT_USER
,
74 _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Paint\\View"),
75 0, KEY_READ
| KEY_SET_VALUE
, &hView
) == ERROR_SUCCESS
)
78 cbData
= sizeof(DWORD
);
79 RegQueryValueEx(hView
, _T("BMPHeight"), 0, NULL
, (LPBYTE
) &BMPHeight
, &cbData
);
80 cbData
= sizeof(DWORD
);
81 RegQueryValueEx(hView
, _T("BMPWidth"), 0, NULL
, (LPBYTE
) &BMPWidth
, &cbData
);
82 cbData
= sizeof(DWORD
);
83 RegQueryValueEx(hView
, _T("GridExtent"), 0, NULL
, (LPBYTE
) &GridExtent
, &cbData
);
84 cbData
= sizeof(DWORD
);
85 RegQueryValueEx(hView
, _T("NoStretching"), 0, NULL
, (LPBYTE
) &NoStretching
, &cbData
);
86 cbData
= sizeof(DWORD
);
87 RegQueryValueEx(hView
, _T("ShowThumbnail"), 0, NULL
, (LPBYTE
) &ShowThumbnail
, &cbData
);
88 cbData
= sizeof(DWORD
);
89 RegQueryValueEx(hView
, _T("SnapToGrid"), 0, NULL
, (LPBYTE
) &SnapToGrid
, &cbData
);
90 cbData
= sizeof(DWORD
);
91 RegQueryValueEx(hView
, _T("ThumbHeight"), 0, NULL
, (LPBYTE
) &ThumbHeight
, &cbData
);
92 cbData
= sizeof(DWORD
);
93 RegQueryValueEx(hView
, _T("ThumbWidth"), 0, NULL
, (LPBYTE
) &ThumbWidth
, &cbData
);
94 cbData
= sizeof(DWORD
);
95 RegQueryValueEx(hView
, _T("ThumbXPos"), 0, NULL
, (LPBYTE
) &ThumbXPos
, &cbData
);
96 cbData
= sizeof(DWORD
);
97 RegQueryValueEx(hView
, _T("ThumbYPos"), 0, NULL
, (LPBYTE
) &ThumbYPos
, &cbData
);
98 cbData
= sizeof(DWORD
);
99 RegQueryValueEx(hView
, _T("UnitSetting"), 0, NULL
, (LPBYTE
) &UnitSetting
, &cbData
);
100 cbData
= sizeof(WINDOWPLACEMENT
);
101 RegQueryValueEx(hView
, _T("WindowPlacement"), 0, NULL
, (LPBYTE
) &WindowPlacement
, &cbData
);
105 void RegistrySettings::Store()
108 if (RegCreateKeyEx(HKEY_CURRENT_USER
,
109 _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Paint\\View"),
110 0, NULL
, 0, KEY_READ
| KEY_SET_VALUE
, NULL
, &hView
, NULL
) == ERROR_SUCCESS
)
112 RegSetValueEx(hView
, _T("BMPHeight"), 0, REG_DWORD
, (LPBYTE
) &BMPHeight
, sizeof(DWORD
));
113 RegSetValueEx(hView
, _T("BMPWidth"), 0, REG_DWORD
, (LPBYTE
) &BMPWidth
, sizeof(DWORD
));
114 RegSetValueEx(hView
, _T("GridExtent"), 0, REG_DWORD
, (LPBYTE
) &GridExtent
, sizeof(DWORD
));
115 RegSetValueEx(hView
, _T("NoStretching"), 0, REG_DWORD
, (LPBYTE
) &NoStretching
, sizeof(DWORD
));
116 RegSetValueEx(hView
, _T("ShowThumbnail"), 0, REG_DWORD
, (LPBYTE
) &ShowThumbnail
, sizeof(DWORD
));
117 RegSetValueEx(hView
, _T("SnapToGrid"), 0, REG_DWORD
, (LPBYTE
) &SnapToGrid
, sizeof(DWORD
));
118 RegSetValueEx(hView
, _T("ThumbHeight"), 0, REG_DWORD
, (LPBYTE
) &ThumbHeight
, sizeof(DWORD
));
119 RegSetValueEx(hView
, _T("ThumbWidth"), 0, REG_DWORD
, (LPBYTE
) &ThumbWidth
, sizeof(DWORD
));
120 RegSetValueEx(hView
, _T("ThumbXPos"), 0, REG_DWORD
, (LPBYTE
) &ThumbXPos
, sizeof(DWORD
));
121 RegSetValueEx(hView
, _T("ThumbYPos"), 0, REG_DWORD
, (LPBYTE
) &ThumbYPos
, sizeof(DWORD
));
122 RegSetValueEx(hView
, _T("UnitSetting"), 0, REG_DWORD
, (LPBYTE
) &UnitSetting
, sizeof(DWORD
));
123 RegSetValueEx(hView
, _T("WindowPlacement"), 0, REG_BINARY
, (LPBYTE
) &WindowPlacement
, sizeof(WINDOWPLACEMENT
));