ReactOS 0.4.16-dev-1279-gc894716
general.cpp
Go to the documentation of this file.
1/*
2 * 'General' tab property sheet of Folder Options
3 *
4 * Copyright 2007 Johannes Anderwald <johannes.anderwald@reactos.org>
5 * Copyright 2016-2018 Katayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22#include "precomp.h"
23
25
27
29
31// Shell settings
32
33EXTERN_C void
35{
36 ZeroMemory(pss, sizeof(*pss));
37 pss->fShowAllObjects = TRUE;
38 pss->fShowExtensions = TRUE;
39 pss->fShowCompColor = TRUE;
41 pss->fShowAttribCol = TRUE; // ROS defaults to Details view with this column on
42 pss->fShowInfoTip = TRUE;
45 pss->iSortDirection = 1;
47 pss->fSepProcess = FALSE;
48 pss->fStartPanelOn = FALSE; // Note: This should be changed to TRUE when the modern start menu is implemented
49}
50
53{
57 REG_BINARY, prss, prss->dwSize);
58}
59
60// bDoubleClick is TRUE if "Double-click to open an item (single-click to select)".
61// bDoubleClick is FALSE if "Single-click to open an item (point to select)".
63// API Monitor:
64// SHLWAPI.dll RegOpenKeyExW ( 0x000000c8, NULL, 0, MAXIMUM_ALLOWED, 0x00def234 ) ERROR_SUCCESS
65// SHLWAPI.dll RegSetValueExW ( 0x000003e8, "ShellState", 0, REG_BINARY, 0x000c2050, 36 ) ERROR_SUCCESS
66// SHLWAPI.dll RegCloseKey ( 0x000003e8 ) ERROR_SUCCESS
67// Explorer.EXE SHSettingsChanged ( 0, "ShellState" ) (WM_SETTINGCHANGE handling)
68static BOOL
69IntSetShellStateSettings(BOOL bDoubleClick, BOOL bUseCommonTasks)
70{
71 SHELLSTATE shellstate;
72 shellstate.fDoubleClickInWebView = !!bDoubleClick;
73 shellstate.fWebView = !!bUseCommonTasks;
75 return TRUE;
76}
77
80{
81 DWORD dwSize = sizeof(REGSHELLSTATE);
83 L"ShellState", NULL, prss, &dwSize);
84 return err == ERROR_SUCCESS && prss->dwSize >= REGSHELLSTATE_SIZE;
85}
86
87// bUnderlineHover is TRUE if "Underline icon titles only when I point at them".
88// bUnderlineHover is FALSE if "Underline icon titles consistent with my browser".
90// API Monitor:
91// SHELL32.dll SHRegGetUSValueW ( "Software\Microsoft\Windows\CurrentVersion\Explorer", "IconUnderline", NULL, 0x00d2f324, 0x00d2f328, FALSE, 0x00d2f32c, 4 ) ERROR_SUCCESS
92// SHELL32.dll IsDlgButtonChecked ( 0x0005009e, 30104 ) BST_CHECKED
93// SHELL32.dll SHRegSetUSValueW ( "Software\Microsoft\Windows\CurrentVersion\Explorer", "IconUnderline", 0, 0x00d2f314, 4, 6 ) ERROR_SUCCESS
94// Explorer.EXE SHSettingsChanged ( 0, "Software\Microsoft\Windows\CurrentVersion\Explorer\IconUnderline" ) (WM_SETTINGCHANGE handling)
95static BOOL IntSetUnderlineState(BOOL bUnderlineHover)
96{
98 DWORD dwValue = bUnderlineHover ? UNDERLINE_HOVER : UNDERLINE_IE;
100 &dwValue, sizeof(dwValue), SHREGSET_FORCE_HKCU | SHREGSET_HKLM);
101 if (Status != ERROR_SUCCESS)
102 return FALSE;
103
105 return TRUE;
106}
107
109{
110 DWORD dwValue, dwDefault = UNDERLINE_ON;
111 DWORD dwSize = sizeof(dwValue);
112 SHRegGetUSValue(s_pszExplorerKey, L"IconUnderline", NULL, &dwValue, &dwSize, FALSE, &dwDefault, sizeof(dwDefault));
113 return dwValue;
114}
115
117{
119 if (mode < UNDERLINE_IE)
120 return mode;
121
122 WCHAR buf[sizeof("hoverX")];
123 *buf = UNICODE_NULL;
124 DWORD cb = sizeof(buf);
125 SHRegGetUSValueW(L"Software\\Microsoft\\Internet Explorer\\Main",
126 L"Anchor Underline", NULL, buf, &cb, FALSE, buf, cb);
127 if (!lstrcmpiW(buf, L"no"))
128 return UNDERLINE_OFF;
129 if (!lstrcmpiW(buf, L"hover"))
130 return UNDERLINE_HOVER;
131 return UNDERLINE_ON;
132}
133
135{
137 if (mode == UNDERLINE_HOVER)
138 return LVS_EX_UNDERLINEHOT;
139 if (mode == UNDERLINE_ON)
141 return 0;
142}
143
144// bNewWindowMode is TRUE if "Open each folder in its own window".
145// bNewWindowMode is FALSE if "Open each folder in the same window".
147// API Monitor:
148// SHELL32.dll RegCreateKeyExW ( HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Explorer\CabinetState", 0, NULL, 0, KEY_SET_VALUE, NULL, 0x00d2f2b8, NULL ) ERROR_SUCCESS 0.0000455
149// SHELL32.dll RegSetValueExW ( 0x00000854, "Settings", 0, REG_BINARY, 0x0210f170, 12 ) ERROR_SUCCESS 0.0001472
150// SHELL32.dll RegSetValueExW ( 0x00000854, "FullPath", 0, REG_DWORD, 0x00d2f2ac, 4 ) ERROR_SUCCESS 0.0000168
151// SHELL32.dll RegCloseKey ( 0x00000854 ) ERROR_SUCCESS 0.0000000
152static HRESULT IntSetNewWindowMode(BOOL bNewWindowMode)
153{
155 if (!ReadCabinetState(&cs, sizeof(cs)))
156 return E_FAIL;
157
158 BOOL changed = !!cs.fNewWindowMode != !!bNewWindowMode;
159 cs.fNewWindowMode = !!bNewWindowMode;
160 return WriteCabinetState(&cs) ? (changed ? S_OK : S_FALSE) : E_FAIL;
161}
162
164{
166 if (!ReadCabinetState(&cs, sizeof(cs)))
167 return FALSE;
168
169 return !!cs.fNewWindowMode;
170}
171
173// GeneralDlg
174
175typedef struct GENERAL_DIALOG
176{
181
182static VOID
184{
185 HICON hTaskIcon = NULL, hFolderIcon = NULL, hClickIcon = NULL;
186 LPTSTR lpTaskIconName = NULL, lpFolderIconName = NULL, lpClickIconName = NULL;
187
188 // Show task setting icon.
193
194 if (lpTaskIconName)
195 {
196 hTaskIcon = (HICON)LoadImage(shell32_hInstance, lpTaskIconName,
198 if (hTaskIcon)
199 {
200 HWND hwndTaskIcon = GetDlgItem(hDlg, IDC_FOLDER_OPTIONS_TASKICON);
201 SendMessage(hwndTaskIcon, STM_SETIMAGE, IMAGE_ICON, (LPARAM)hTaskIcon);
202 }
203 }
204
205 // Show Folder setting icons
210
211 if (lpFolderIconName)
212 {
213 hFolderIcon = (HICON)LoadImage(shell32_hInstance, lpFolderIconName,
215 if (hFolderIcon)
216 {
217 HWND hwndFolderIcon = GetDlgItem(hDlg, IDC_FOLDER_OPTIONS_FOLDERICON);
218 SendMessage(hwndFolderIcon, STM_SETIMAGE, IMAGE_ICON, (LPARAM)hFolderIcon);
219 }
220 }
221
222 // Show click setting icon
227
228 if (lpClickIconName)
229 {
230 hClickIcon = (HICON)LoadImage(shell32_hInstance, lpClickIconName,
232 if (hClickIcon)
233 {
234 HWND hwndClickIcon = GetDlgItem(hDlg, IDC_FOLDER_OPTIONS_CLICKICON);
235 SendMessage(hwndClickIcon, STM_SETIMAGE, IMAGE_ICON, (LPARAM)hClickIcon);
236 }
237 }
238
239 // Replace icons
240 if (hTaskIcon)
241 {
242 DestroyIcon(pGeneral->hTaskIcon);
243 pGeneral->hTaskIcon = hTaskIcon;
244 }
245 if (hFolderIcon)
246 {
247 DestroyIcon(pGeneral->hFolderIcon);
248 pGeneral->hFolderIcon = hFolderIcon;
249 }
250 if (hClickIcon)
251 {
252 DestroyIcon(pGeneral->hClickIcon);
253 pGeneral->hClickIcon = hClickIcon;
254 }
255
256 if (nCtrlID == IDC_FOLDER_OPTIONS_SINGLECLICK)
257 {
260 }
261
262 if (nCtrlID == IDC_FOLDER_OPTIONS_DOUBLECLICK)
263 {
266 }
267}
268
269static void
270GeneralDlg_StoreToUI(HWND hwndDlg, BOOL bDoubleClick, BOOL bUseCommonTasks,
271 BOOL bUnderlineHover, BOOL bNewWindowMode, PGENERAL_DIALOG pGeneral)
272{
274 {
276 bDoubleClick = TRUE;
277 bUseCommonTasks = FALSE;
278 }
279
280 EnableWindow(GetDlgItem(hwndDlg, IDC_FOLDER_OPTIONS_COMMONTASKS), bUseCommonTasks); // TODO: ROS DefView does not support WebView nor the tasks pane
281
282 if (bUseCommonTasks)
284 else
286
287 if (bDoubleClick)
289 else
291
292 if (bNewWindowMode)
294 else
296
297 EnableWindow(GetDlgItem(hwndDlg, IDC_FOLDER_OPTIONS_ULBROWSER), !bDoubleClick);
298 EnableWindow(GetDlgItem(hwndDlg, IDC_FOLDER_OPTIONS_ULPOINT), !bDoubleClick);
299 if (bUnderlineHover)
301 else
303}
304
305static BOOL
307{
310 BOOL bDoubleClick = !!ss.fDoubleClickInWebView;
311 BOOL bUseCommonTasks = !!ss.fWebView;
312 BOOL bUnderlineHover = IntGetRawIconUnderlineValue() == UNDERLINE_HOVER;
313 BOOL bNewWindowMode = IntGetNewWindowMode();
314
315 GeneralDlg_StoreToUI(hwndDlg, bDoubleClick, bUseCommonTasks, bUnderlineHover, bNewWindowMode, pGeneral);
316 GeneralDlg_UpdateIcons(hwndDlg, 0, pGeneral);
317
318 return TRUE;
319}
320
321static void
323{
324 // default values
325 BOOL bDoubleClick = TRUE;
326 BOOL bUseCommonTasks = TRUE;
327 BOOL bUnderlineHover = FALSE;
328 BOOL bNewWindowMode = (_WIN32_WINNT < _WIN32_WINNT_WIN2K);
329
330 GeneralDlg_StoreToUI(hwndDlg, bDoubleClick, bUseCommonTasks, bUnderlineHover, bNewWindowMode, pGeneral);
331 GeneralDlg_UpdateIcons(hwndDlg, 0, pGeneral);
332}
333
334static BOOL
336{
338 BOOL bUseCommonTasks = (IsDlgButtonChecked(hwndDlg, IDC_FOLDER_OPTIONS_COMMONTASKS) == BST_CHECKED);
339 BOOL bUnderlineHover = (IsDlgButtonChecked(hwndDlg, IDC_FOLDER_OPTIONS_ULPOINT) == BST_CHECKED);
340 BOOL bNewWindowMode = !(IsDlgButtonChecked(hwndDlg, IDC_FOLDER_OPTIONS_SAMEWINDOW) == BST_CHECKED);
341
342 IntSetUnderlineState(bUnderlineHover);
343 BOOL updateCabinets = IntSetNewWindowMode(bNewWindowMode) == S_OK;
344 IntSetShellStateSettings(bDoubleClick, bUseCommonTasks);
345 if (updateCabinets)
347 return TRUE;
348}
349
352 HWND hwndDlg,
353 UINT uMsg,
356{
357 static GENERAL_DIALOG general;
358
359 switch (uMsg)
360 {
361 case WM_INITDIALOG:
362 general.hTaskIcon = NULL;
363 general.hFolderIcon = NULL;
364 general.hClickIcon = NULL;
365 return GeneralDlg_OnInitDialog(hwndDlg, &general);
366
367 case WM_COMMAND:
368 switch (LOWORD(wParam))
369 {
378 if (HIWORD(wParam) == BN_CLICKED)
379 {
380 GeneralDlg_UpdateIcons(hwndDlg, LOWORD(wParam), &general);
381
382 // Enable the 'Apply' button
383 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
384 }
385 break;
387 if (HIWORD(wParam) == BN_CLICKED)
388 {
389 GeneralDlg_OnRestoreDefaults(hwndDlg, &general);
390
391 // Enable the 'Apply' button
392 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
393 }
394 break;
395 }
396 break;
397
398 case WM_NOTIFY:
399 {
400 LPNMHDR pnmh = (LPNMHDR)lParam;
401
402 switch (pnmh->code)
403 {
404 case PSN_SETACTIVE:
405 break;
406
407 case PSN_APPLY:
408 return GeneralDlg_OnApply(hwndDlg, &general);
409 }
410 break;
411 }
412
413 case WM_DESTROY:
414 DestroyIcon(general.hTaskIcon);
415 DestroyIcon(general.hFolderIcon);
416 DestroyIcon(general.hClickIcon);
417 break;
418
419 default:
420 return FALSE;
421 }
422 return FALSE;
423}
#define shell32_hInstance
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define _WIN32_WINNT
Definition: precomp.h:14
#define EXTERN_C
Definition: basetyps.h:12
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define E_FAIL
Definition: ddrawi.h:102
#define ERROR_SUCCESS
Definition: deptool.c:10
static LSTATUS(WINAPI *pRegDeleteTreeW)(HKEY
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define CALLBACK
Definition: compat.h:35
int WINAPI lstrcmpiW(LPCWSTR str1, LPCWSTR str2)
Definition: locale.c:4262
LONG WINAPI SHRegGetUSValueW(const WCHAR *subkey, const WCHAR *value, DWORD *type, void *data, DWORD *data_len, BOOL ignore_hkcu, void *default_data, DWORD default_data_len)
Definition: registry.c:4077
DWORD WINAPI SHSendMessageBroadcastW(UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: ordinal.c:4072
DWORD WINAPI SHGetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, LPDWORD pwType, LPVOID pvData, LPDWORD pcbData)
Definition: reg.c:1236
DWORD WINAPI SHSetValueW(HKEY hKey, LPCWSTR lpszSubKey, LPCWSTR lpszValue, DWORD dwType, LPCVOID pvData, DWORD cbData)
Definition: reg.c:1306
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
Status
Definition: gdiplustypes.h:25
static BOOL IntSetUnderlineState(BOOL bUnderlineHover)
Definition: general.cpp:95
@ UNDERLINE_HOVER
Definition: general.cpp:28
@ UNDERLINE_IE
Definition: general.cpp:28
@ UNDERLINE_ON
Definition: general.cpp:28
@ UNDERLINE_OFF
Definition: general.cpp:28
UINT SHELL_GetIconUnderlineFlags()
Definition: general.cpp:134
static void GeneralDlg_StoreToUI(HWND hwndDlg, BOOL bDoubleClick, BOOL bUseCommonTasks, BOOL bUnderlineHover, BOOL bNewWindowMode, PGENERAL_DIALOG pGeneral)
Definition: general.cpp:270
static BOOL IntGetNewWindowMode(VOID)
Definition: general.cpp:163
static BOOL IntSetShellStateSettings(BOOL bDoubleClick, BOOL bUseCommonTasks)
Definition: general.cpp:69
static BOOL GeneralDlg_OnInitDialog(HWND hwndDlg, PGENERAL_DIALOG pGeneral)
Definition: general.cpp:306
struct GENERAL_DIALOG * PGENERAL_DIALOG
static const LPCWSTR s_pszExplorerKey
Definition: general.cpp:26
static HRESULT IntSetNewWindowMode(BOOL bNewWindowMode)
Definition: general.cpp:152
static UINT IntGetRawIconUnderlineValue()
Definition: general.cpp:108
static UINT SHELL_GetIconUnderlineMode()
Definition: general.cpp:116
EXTERN_C BOOL SHELL32_ReadRegShellState(PREGSHELLSTATE prss)
Definition: general.cpp:79
static VOID GeneralDlg_UpdateIcons(HWND hDlg, UINT nCtrlID, PGENERAL_DIALOG pGeneral)
Definition: general.cpp:183
EXTERN_C void SHELL32_GetDefaultShellState(LPSHELLSTATE pss)
Definition: general.cpp:34
static void GeneralDlg_OnRestoreDefaults(HWND hwndDlg, PGENERAL_DIALOG pGeneral)
Definition: general.cpp:322
static BOOL GeneralDlg_OnApply(HWND hwndDlg, PGENERAL_DIALOG pGeneral)
Definition: general.cpp:335
INT_PTR CALLBACK FolderOptionsGeneralDlg(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: general.cpp:351
EXTERN_C LSTATUS SHELL32_WriteRegShellState(PREGSHELLSTATE prss)
Definition: general.cpp:52
GLenum mode
Definition: glext.h:6217
GLenum GLuint GLenum GLsizei const GLchar * buf
Definition: glext.h:7751
#define ss
Definition: i386-dis.c:441
#define cs
Definition: i386-dis.c:442
#define S_OK
Definition: intsafe.h:52
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
Definition: env.c:56
static HICON
Definition: imagelist.c:80
static HMODULE MODULEINFO DWORD cb
Definition: module.c:33
unsigned int UINT
Definition: ndis.h:50
#define REG_BINARY
Definition: nt_native.h:1496
#define REG_NONE
Definition: nt_native.h:1492
#define UNICODE_NULL
#define L(x)
Definition: ntvdm.h:50
#define MAKEINTRESOURCE(i)
Definition: ntverrsrc.c:25
#define LOWORD(l)
Definition: pedump.c:82
#define PropSheet_Changed(d, w)
Definition: prsht.h:344
#define PSN_APPLY
Definition: prsht.h:117
#define PSN_SETACTIVE
Definition: prsht.h:115
#define LVS_EX_UNDERLINECOLD
Definition: commctrl.h:2746
#define LVS_EX_UNDERLINEHOT
Definition: commctrl.h:2745
#define err(...)
#define REGSTR_PATH_EXPLORER
Definition: regstr.h:33
#define WM_NOTIFY
Definition: richedit.h:61
#define _WIN32_WINNT_WIN2K
Definition: sdkddkver.h:21
BOOL WINAPI ReadCabinetState(CABINETSTATE *cs, int length)
Definition: shellord.c:1807
VOID WINAPI SHGetSetSettings(LPSHELLSTATE lpss, DWORD dwMask, BOOL bSet)
Definition: shellord.c:225
BOOL WINAPI WriteCabinetState(CABINETSTATE *cs)
Definition: shellord.c:1859
#define SHFSF_COL_NAME
Definition: shfldr.h:44
#define SSF_DOUBLECLICKINWEBVIEW
Definition: shlobj.h:1618
#define SSF_WEBVIEW
Definition: shlobj.h:1628
@ REST_CLASSICSHELL
Definition: shlobj.h:1688
#define SHRegSetUSValue
Definition: shlwapi.h:565
#define SHRegGetUSValue
Definition: shlwapi.h:543
#define SHREGSET_HKLM
Definition: shlwapi.h:322
#define SHREGSET_FORCE_HKCU
Definition: shlwapi.h:321
DWORD WINAPI SHRestricted(RESTRICTIONS rest)
Definition: shpolicy.c:166
#define IDC_FOLDER_OPTIONS_CLASSICFOLDERS
Definition: shresdef.h:447
#define IDC_FOLDER_OPTIONS_ULBROWSER
Definition: shresdef.h:452
#define IDC_FOLDER_OPTIONS_SINGLECLICK
Definition: shresdef.h:450
#define IDC_FOLDER_OPTIONS_COMMONTASKS
Definition: shresdef.h:446
#define IDI_SHELL_OPEN_IN_SOME_WINDOW
Definition: shresdef.h:682
#define IDC_FOLDER_OPTIONS_SAMEWINDOW
Definition: shresdef.h:448
#define IDC_FOLDER_OPTIONS_FOLDERICON
Definition: shresdef.h:444
#define IDI_SHELL_OPEN_IN_NEW_WINDOW
Definition: shresdef.h:683
#define IDI_SHELL_CLASSIC_FOLDERS
Definition: shresdef.h:681
#define IDI_SHELL_SINGLE_CLICK_TO_OPEN
Definition: shresdef.h:684
#define IDC_FOLDER_OPTIONS_CLICKICON
Definition: shresdef.h:445
#define IDC_FOLDER_OPTIONS_DOUBLECLICK
Definition: shresdef.h:451
#define IDI_SHELL_DOUBLE_CLICK_TO_OPEN
Definition: shresdef.h:685
#define IDC_FOLDER_OPTIONS_TASKICON
Definition: shresdef.h:443
#define IDC_FOLDER_OPTIONS_ULPOINT
Definition: shresdef.h:453
#define IDC_FOLDER_OPTIONS_RESTORE
Definition: shresdef.h:454
#define IDC_FOLDER_OPTIONS_OWNWINDOW
Definition: shresdef.h:449
#define IDI_SHELL_SHOW_COMMON_TASKS
Definition: shresdef.h:680
HICON hFolderIcon
Definition: general.cpp:178
HICON hClickIcon
Definition: general.cpp:179
HICON hTaskIcon
Definition: general.cpp:177
SHELLSTATE ss
Definition: ShellState.cpp:22
BOOL fShowSuperHidden
Definition: shlobj.h:1565
BOOL fShowExtensions
Definition: shlobj.h:1550
LONG lParamSort
Definition: shlobj.h:1571
BOOL fWebView
Definition: shlobj.h:1563
BOOL fShowAttribCol
Definition: shlobj.h:1559
BOOL fShowCompColor
Definition: shlobj.h:1554
BOOL fShowInfoTip
Definition: shlobj.h:1561
UINT version
Definition: shlobj.h:1573
BOOL fSepProcess
Definition: shlobj.h:1575
int iSortDirection
Definition: shlobj.h:1572
BOOL fShowAllObjects
Definition: shlobj.h:1549
BOOL fDoubleClickInWebView
Definition: shlobj.h:1555
BOOL fStartPanelOn
Definition: shlobj.h:1576
UINT code
Definition: winuser.h:3235
int32_t INT_PTR
Definition: typedefs.h:64
#define HIWORD(l)
Definition: typedefs.h:247
#define REGSHELLSTATE_VERSION
Definition: undocshell.h:585
#define REGSHELLSTATE_SIZE
Definition: undocshell.h:584
#define CWM_STATECHANGE
Definition: undocshell.h:244
void PostCabinetMessage(UINT Msg, WPARAM wParam, LPARAM lParam)
Definition: view.cpp:178
#define ZeroMemory
Definition: winbase.h:1753
LONG_PTR LPARAM
Definition: windef.h:208
UINT_PTR WPARAM
Definition: windef.h:207
#define S_FALSE
Definition: winerror.h:2357
#define HKEY_CURRENT_USER
Definition: winreg.h:11
#define IMAGE_ICON
Definition: winuser.h:212
#define WM_COMMAND
Definition: winuser.h:1759
#define WM_INITDIALOG
Definition: winuser.h:1758
#define STM_SETIMAGE
Definition: winuser.h:2112
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
UINT WINAPI IsDlgButtonChecked(_In_ HWND, _In_ int)
#define WM_SETTINGCHANGE
Definition: winuser.h:1648
struct tagNMHDR * LPNMHDR
#define SendMessage
Definition: winuser.h:5928
BOOL WINAPI EnableWindow(_In_ HWND, _In_ BOOL)
HWND WINAPI GetParent(_In_ HWND)
#define LoadImage
Definition: winuser.h:5900
BOOL WINAPI CheckRadioButton(_In_ HWND, _In_ int, _In_ int, _In_ int)
#define LR_DEFAULTCOLOR
Definition: winuser.h:1098
#define BN_CLICKED
Definition: winuser.h:1944
#define WM_DESTROY
Definition: winuser.h:1628
#define BST_CHECKED
Definition: winuser.h:197
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2390
__wchar_t WCHAR
Definition: xmlstorage.h:180
CHAR * LPTSTR
Definition: xmlstorage.h:192
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185