ReactOS 0.4.16-dev-725-g22577ae
CFolderOptions.cpp File Reference
#include <precomp.h>
#include <shdeprecated.h>
Include dependency graph for CFolderOptions.cpp:

Go to the source code of this file.

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (fprop)
 
INT_PTR CALLBACK FolderOptionsGeneralDlg (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK FolderOptionsViewDlg (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 
INT_PTR CALLBACK FolderOptionsFileTypesDlg (HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
 

Function Documentation

◆ FolderOptionsFileTypesDlg()

INT_PTR CALLBACK FolderOptionsFileTypesDlg ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 1871 of file filetypes.cpp.

1876{
1878 if (!pGlobals && uMsg != WM_INITDIALOG)
1879 return FALSE;
1880 LPNMLISTVIEW lppl;
1882 NEWEXT_DIALOG newext;
1883 EDITTYPE_DIALOG edittype;
1884
1885 switch (uMsg)
1886 {
1887 case WM_INITDIALOG:
1890 return TRUE;
1891
1892 case WM_DESTROY:
1893 SetWindowLongPtrW(hwndDlg, DWLP_USER, 0);
1894 if (pGlobals)
1895 {
1896 DestroyIcon(pGlobals->hDefExtIconSmall);
1897 DeleteObject(pGlobals->hOpenWithImage);
1899 }
1900 break;
1901
1902 case WM_COMMAND:
1903 switch (LOWORD(wParam))
1904 {
1905 case IDC_FILETYPES_NEW:
1906 newext.hwndLV = GetDlgItem(hwndDlg, IDC_FILETYPES_LISTVIEW);
1908 hwndDlg, NewExtDlgProc, (LPARAM)&newext))
1909 {
1910 FileTypesDlg_AddExt(hwndDlg, newext.szExt, newext.szFileType, pGlobals);
1911 }
1912 break;
1913
1915 FileTypesDlg_OnDelete(hwndDlg);
1916 break;
1917
1920 if (pEntry)
1921 {
1922 OPENASINFO oai = { pEntry->FileExtension, 0, OAIF_FORCE_REGISTRATION | OAIF_REGISTER_EXT };
1923 if (SUCCEEDED(SHOpenWithDialog(hwndDlg, &oai)))
1924 {
1925 pEntry->InvalidateDefaultApp();
1927 }
1928 }
1929 break;
1930
1932 edittype.hwndLV = GetDlgItem(hwndDlg, IDC_FILETYPES_LISTVIEW);
1933 edittype.pG = pGlobals;
1934 edittype.pEntry = FileTypesDlg_GetEntry(edittype.hwndLV);
1935 if (Normalize(edittype.pEntry))
1936 {
1938 hwndDlg, EditTypeDlgProc, (LPARAM)&edittype);
1939 FileTypesDlg_OnItemChanging(hwndDlg, edittype.pEntry, pGlobals);
1940 }
1941 break;
1942 }
1943 break;
1944
1945 case WM_NOTIFY:
1946 lppl = (LPNMLISTVIEW) lParam;
1947 switch (lppl->hdr.code)
1948 {
1949 case LVN_GETDISPINFO:
1950 {
1953 if (entry && (pLVDI->item.mask & LVIF_TEXT))
1954 {
1955 if (pLVDI->item.iSubItem == 1)
1956 {
1958 pLVDI->item.mask |= LVIF_DI_SETITEM;
1959 }
1960 }
1961 break;
1962 }
1963
1964 case LVN_KEYDOWN:
1965 {
1966 LV_KEYDOWN *pKeyDown = (LV_KEYDOWN *)lParam;
1967 switch (pKeyDown->wVKey)
1968 {
1969 case VK_DELETE:
1970 FileTypesDlg_OnDelete(hwndDlg);
1971 break;
1972 case VK_F5:
1973 FileTypesDlg_Refresh(hwndDlg, pKeyDown->hdr.hwndFrom, pGlobals);
1974 break;
1975 }
1976 break;
1977 }
1978
1979 case NM_DBLCLK:
1981 break;
1982
1983 case LVN_DELETEALLITEMS:
1984 return FALSE; // send LVN_DELETEITEM
1985
1986 case LVN_DELETEITEM:
1988 if (pEntry)
1989 {
1990 pEntry->DestroyIcons();
1991 HeapFree(pGlobals->hHeap, 0, pEntry);
1992 }
1993 return FALSE;
1994
1995 case LVN_ITEMCHANGING:
1997 if (!pEntry)
1998 {
1999 return TRUE;
2000 }
2001
2002 if (!(lppl->uOldState & LVIS_FOCUSED) && (lppl->uNewState & LVIS_FOCUSED))
2003 {
2005 }
2006 break;
2007
2008 case LVN_COLUMNCLICK:
2010 break;
2011
2012 case PSN_SETACTIVE:
2013 // On page activation, set the focus to the listview
2015 break;
2016 }
2017 break;
2018 }
2019
2020 return FALSE;
2021}
HRESULT WINAPI SHOpenWithDialog(HWND hwndParent, const OPENASINFO *poainfo)
#define shell32_hInstance
WPARAM wParam
Definition: combotst.c:138
LPARAM lParam
Definition: combotst.c:139
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
#define HeapFree(x, y, z)
Definition: compat.h:735
void WINAPI SHFree(LPVOID pv)
Definition: shellole.c:326
static LPWSTR GetTypeName(PFILE_TYPE_ENTRY Entry, PFILE_TYPE_GLOBALS pG)
Definition: filetypes.cpp:287
static BOOL Normalize(PFILE_TYPE_ENTRY Entry)
Definition: filetypes.cpp:341
static void FileTypesDlg_Sort(PFILE_TYPE_GLOBALS pG, HWND hListView, INT Column=-1)
Definition: filetypes.cpp:1661
static void FileTypesDlg_OnDelete(HWND hwndDlg)
Definition: filetypes.cpp:1808
static INT_PTR CALLBACK NewExtDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: filetypes.cpp:677
static INT_PTR CALLBACK EditTypeDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
Definition: filetypes.cpp:1608
static PFILE_TYPE_ENTRY FileTypesDlg_GetEntry(HWND hListView, INT iItem=-1)
Definition: filetypes.cpp:1791
static void FileTypesDlg_Refresh(HWND hwndDlg, HWND hListView, PFILE_TYPE_GLOBALS pG)
Definition: filetypes.cpp:1717
struct _FILE_TYPE_GLOBALS * PFILE_TYPE_GLOBALS
static void FileTypesDlg_OnItemChanging(HWND hwndDlg, PFILE_TYPE_ENTRY pEntry, PFILE_TYPE_GLOBALS pG)
Definition: filetypes.cpp:1823
static BOOL FileTypesDlg_AddExt(HWND hwndDlg, LPCWSTR pszExt, LPCWSTR pszProgId, PFILE_TYPE_GLOBALS pG)
Definition: filetypes.cpp:803
static PFILE_TYPE_GLOBALS FileTypesDlg_Initialize(HWND hwndDlg)
Definition: filetypes.cpp:1755
struct _FILE_TYPE_ENTRY * PFILE_TYPE_ENTRY
PLIST_ENTRY pEntry
Definition: fxioqueue.cpp:4484
PFX_DRIVER_GLOBALS pGlobals
pKey DeleteObject()
#define SUCCEEDED(hr)
Definition: intsafe.h:50
uint32_t entry
Definition: isohybrid.c:63
if(dx< 0)
Definition: linetemp.h:194
__int3264 LONG_PTR
Definition: mstsclib_h.h:276
#define LOWORD(l)
Definition: pedump.c:82
#define PSN_SETACTIVE
Definition: prsht.h:115
#define LVN_COLUMNCLICK
Definition: commctrl.h:3144
#define NM_DBLCLK
Definition: commctrl.h:131
#define LVN_DELETEALLITEMS
Definition: commctrl.h:3139
#define LVN_GETDISPINFO
Definition: commctrl.h:3165
#define LVN_ITEMCHANGING
Definition: commctrl.h:3135
struct tagNMLISTVIEW * LPNMLISTVIEW
struct tagLVDISPINFOW * LPNMLVDISPINFOW
#define LVIF_TEXT
Definition: commctrl.h:2314
#define LVN_KEYDOWN
Definition: commctrl.h:3189
#define LV_KEYDOWN
Definition: commctrl.h:3191
#define LVIF_DI_SETITEM
Definition: commctrl.h:3171
#define LVN_DELETEITEM
Definition: commctrl.h:3138
#define LVIS_FOCUSED
Definition: commctrl.h:2323
#define WM_NOTIFY
Definition: richedit.h:61
@ OAIF_REGISTER_EXT
Definition: shlobj.h:2681
@ OAIF_FORCE_REGISTRATION
Definition: shlobj.h:2683
#define IDC_FILETYPES_LISTVIEW
Definition: shresdef.h:443
#define IDD_NEWEXTENSION
Definition: shresdef.h:522
#define IDD_EDITTYPE
Definition: shresdef.h:523
#define IDC_FILETYPES_ADVANCED
Definition: shresdef.h:450
#define IDC_FILETYPES_DELETE
Definition: shresdef.h:445
#define IDC_FILETYPES_CHANGE
Definition: shresdef.h:448
#define IDC_FILETYPES_NEW
Definition: shresdef.h:444
PFILE_TYPE_GLOBALS pG
Definition: filetypes.cpp:362
PFILE_TYPE_ENTRY pEntry
Definition: filetypes.cpp:363
Definition: filetypes.cpp:42
LVITEMW item
Definition: commctrl.h:3184
LPWSTR pszText
Definition: commctrl.h:2370
int iSubItem
Definition: commctrl.h:2367
UINT mask
Definition: commctrl.h:2365
LPARAM lParam
Definition: commctrl.h:2373
UINT code
Definition: winuser.h:3162
HWND hwndFrom
Definition: winuser.h:3160
UINT uNewState
Definition: commctrl.h:3041
UINT uOldState
Definition: commctrl.h:3042
LONG_PTR LPARAM
Definition: windef.h:208
#define DWLP_USER
Definition: winuser.h:875
#define GetWindowLongPtrW
Definition: winuser.h:4832
#define WM_COMMAND
Definition: winuser.h:1743
#define WM_INITDIALOG
Definition: winuser.h:1742
HWND WINAPI GetDlgItem(_In_opt_ HWND, _In_ int)
#define IDOK
Definition: winuser.h:833
#define VK_F5
Definition: winuser.h:2262
HWND WINAPI SetFocus(_In_opt_ HWND)
#define SendMessage
Definition: winuser.h:5855
#define VK_DELETE
Definition: winuser.h:2236
#define WM_DESTROY
Definition: winuser.h:1612
#define MAKEINTRESOURCEW(i)
Definition: winuser.h:582
#define SetWindowLongPtrW
Definition: winuser.h:5358
INT_PTR WINAPI DialogBoxParamW(_In_opt_ HINSTANCE, _In_ LPCWSTR, _In_opt_ HWND, _In_opt_ DLGPROC, _In_ LPARAM)
BOOL WINAPI DestroyIcon(_In_ HICON)
Definition: cursoricon.c:2139

Referenced by CFolderOptions::AddPages(), and ShowFolderOptionsDialogThreadProc().

◆ FolderOptionsGeneralDlg()

INT_PTR CALLBACK FolderOptionsGeneralDlg ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 331 of file general.cpp.

336{
337 static GENERAL_DIALOG general;
338
339 switch (uMsg)
340 {
341 case WM_INITDIALOG:
342 general.hTaskIcon = NULL;
343 general.hFolderIcon = NULL;
344 general.hClickIcon = NULL;
345 return GeneralDlg_OnInitDialog(hwndDlg, &general);
346
347 case WM_COMMAND:
348 switch (LOWORD(wParam))
349 {
358 if (HIWORD(wParam) == BN_CLICKED)
359 {
360 GeneralDlg_UpdateIcons(hwndDlg, LOWORD(wParam), &general);
361
362 // Enable the 'Apply' button
363 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
364 }
365 break;
367 if (HIWORD(wParam) == BN_CLICKED)
368 {
369 GeneralDlg_OnRestoreDefaults(hwndDlg, &general);
370
371 // Enable the 'Apply' button
372 PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
373 }
374 break;
375 }
376 break;
377
378 case WM_NOTIFY:
379 {
380 LPNMHDR pnmh = (LPNMHDR)lParam;
381
382 switch (pnmh->code)
383 {
384 case PSN_SETACTIVE:
385 break;
386
387 case PSN_APPLY:
388 return GeneralDlg_OnApply(hwndDlg, &general);
389 }
390 break;
391 }
392
393 case WM_DESTROY:
394 DestroyIcon(general.hTaskIcon);
395 DestroyIcon(general.hFolderIcon);
396 DestroyIcon(general.hClickIcon);
397 break;
398
399 default:
400 return FALSE;
401 }
402 return FALSE;
403}
#define NULL
Definition: types.h:112
static BOOL GeneralDlg_OnInitDialog(HWND hwndDlg, PGENERAL_DIALOG pGeneral)
Definition: general.cpp:286
static VOID GeneralDlg_UpdateIcons(HWND hDlg, UINT nCtrlID, PGENERAL_DIALOG pGeneral)
Definition: general.cpp:160
static void GeneralDlg_OnRestoreDefaults(HWND hwndDlg, PGENERAL_DIALOG pGeneral)
Definition: general.cpp:302
static BOOL GeneralDlg_OnApply(HWND hwndDlg, PGENERAL_DIALOG pGeneral)
Definition: general.cpp:315
#define PropSheet_Changed(d, w)
Definition: prsht.h:344
#define PSN_APPLY
Definition: prsht.h:117
#define IDC_FOLDER_OPTIONS_CLASSICFOLDERS
Definition: shresdef.h:417
#define IDC_FOLDER_OPTIONS_ULBROWSER
Definition: shresdef.h:422
#define IDC_FOLDER_OPTIONS_SINGLECLICK
Definition: shresdef.h:420
#define IDC_FOLDER_OPTIONS_COMMONTASKS
Definition: shresdef.h:416
#define IDC_FOLDER_OPTIONS_SAMEWINDOW
Definition: shresdef.h:418
#define IDC_FOLDER_OPTIONS_DOUBLECLICK
Definition: shresdef.h:421
#define IDC_FOLDER_OPTIONS_ULPOINT
Definition: shresdef.h:423
#define IDC_FOLDER_OPTIONS_RESTORE
Definition: shresdef.h:424
#define IDC_FOLDER_OPTIONS_OWNWINDOW
Definition: shresdef.h:419
HICON hFolderIcon
Definition: general.cpp:155
HICON hClickIcon
Definition: general.cpp:156
HICON hTaskIcon
Definition: general.cpp:154
#define HIWORD(l)
Definition: typedefs.h:247
struct tagNMHDR * LPNMHDR
HWND WINAPI GetParent(_In_ HWND)
#define BN_CLICKED
Definition: winuser.h:1928

Referenced by CFolderOptions::AddPages(), and ShowFolderOptionsDialogThreadProc().

◆ FolderOptionsViewDlg()

INT_PTR CALLBACK FolderOptionsViewDlg ( HWND  hwndDlg,
UINT  uMsg,
WPARAM  wParam,
LPARAM  lParam 
)

Definition at line 953 of file view.cpp.

958{
961
962 switch (uMsg)
963 {
964 case WM_INITDIALOG:
966
967 case WM_COMMAND:
968 switch (LOWORD(wParam))
969 {
970 case IDC_VIEW_RESTORE_DEFAULTS: // Restore Defaults
972 break;
973
976 {
979 if (pFO)
980 hr = pFO->ApplyDefFolderSettings(LOWORD(wParam) == IDC_VIEW_RESET_ALL);
981 if (FAILED(hr))
982 SHELL_ErrorBox(hwndDlg, hr);
983 break;
984 }
985 }
986 break;
987
988 case WM_NOTIFY:
989 switch (LPNMHDR(lParam)->code)
990 {
991 case NM_CLICK: // clicked on treeview
993 break;
994
995 case NM_CUSTOMDRAW: // custom draw (for graying)
999 return Result;
1000
1001 case TVN_KEYDOWN: // key is down
1003 break;
1004
1005 case PSN_APPLY: // [Apply] is clicked
1006 ViewDlg_Apply(hwndDlg);
1007 break;
1008
1009 default:
1010 break;
1011 }
1012 break;
1013 }
1014
1015 return FALSE;
1016}
#define ERROR_NOT_SUPPORTED
Definition: compat.h:100
FxFileObject * pFO
#define FAILED(hr)
Definition: intsafe.h:51
void Draw(HDC aDc)
Definition: magnifier.c:359
#define LPPROPSHEETPAGE
Definition: prsht.h:390
#define TVN_KEYDOWN
Definition: commctrl.h:3718
#define NM_CLICK
Definition: commctrl.h:130
#define NM_CUSTOMDRAW
Definition: commctrl.h:137
#define TV_KEYDOWN
Definition: commctrl.h:3727
HRESULT hr
Definition: shlfolder.c:183
#define IDC_VIEW_RESET_ALL
Definition: shresdef.h:505
#define IDC_VIEW_RESTORE_DEFAULTS
Definition: shresdef.h:507
#define IDC_VIEW_APPLY_TO_ALL
Definition: shresdef.h:504
#define GetWindowLongPtr
Definition: treelist.c:73
#define SetWindowLongPtr
Definition: treelist.c:70
int32_t INT_PTR
Definition: typedefs.h:64
static void ViewDlg_OnTreeViewKeyDown(HWND hwndDlg, TV_KEYDOWN *KeyDown)
Definition: view.cpp:728
static VOID ViewDlg_RestoreDefaults(HWND hwndDlg)
Definition: view.cpp:774
static INT_PTR ViewDlg_OnTreeCustomDraw(HWND hwndDlg, NMTVCUSTOMDRAW *Draw)
Definition: view.cpp:744
static VOID ViewDlg_Apply(HWND hwndDlg)
Definition: view.cpp:890
static BOOL ViewDlg_OnInitDialog(HWND hwndDlg, LPPROPSHEETPAGE psp)
Definition: view.cpp:621
static VOID ViewDlg_OnTreeViewClick(HWND hwndDlg)
Definition: view.cpp:706
#define HRESULT_FROM_WIN32(x)
Definition: winerror.h:92
#define GWL_USERDATA
Definition: winuser.h:864
#define DWLP_MSGRESULT
Definition: winuser.h:873
_At_(*)(_In_ PWSK_CLIENT Client, _In_opt_ PUNICODE_STRING NodeName, _In_opt_ PUNICODE_STRING ServiceName, _In_opt_ ULONG NameSpace, _In_opt_ GUID *Provider, _In_opt_ PADDRINFOEXW Hints, _Outptr_ PADDRINFOEXW *Result, _In_opt_ PEPROCESS OwningProcess, _In_opt_ PETHREAD OwningThread, _Inout_ PIRP Irp Result)(Mem)) NTSTATUS(WSKAPI *PFN_WSK_GET_ADDRESS_INFO
Definition: wsk.h:409

Referenced by CFolderOptions::AddPages(), and ShowFolderOptionsDialogThreadProc().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( fprop  )