mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +00:00
[BOOT][SHELL32][INCLUDE] Support 'SuperHidden' files (#2102)
PR #2101 shows desktop.ini files on Desktop. I want to hide them. - Add "ShowSuperHidden" setting to Explorer. - Add SHCONTF_INCLUDESUPERHIDDEN flag. - Support SHCONTF_INCLUDESUPERHIDDEN in Explorer. CORE-10045
This commit is contained in:
parent
2c272a9017
commit
5734570a15
4 changed files with 34 additions and 19 deletions
|
@ -1892,6 +1892,7 @@ HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","ListviewShad
|
|||
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","HideFileExt",0x00010003,0x00000000
|
||||
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","StartMenuLogoff",0x00010003,0x00000001
|
||||
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","Hidden",0x00010003,1
|
||||
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","ShowSuperHidden",0x00010003,0
|
||||
|
||||
; ComDlg32
|
||||
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32",,0x00000012
|
||||
|
|
|
@ -908,29 +908,32 @@ HRESULT CDefView::FillList()
|
|||
DWORD dwFetched;
|
||||
HRESULT hRes;
|
||||
HDPA hdpa;
|
||||
HKEY hKey;
|
||||
DWORD dFlags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS;
|
||||
DWORD dwValue, cbValue;
|
||||
|
||||
TRACE("%p\n", this);
|
||||
|
||||
/* determine if there is a setting to show all the hidden files/folders */
|
||||
if (RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", 0, KEY_QUERY_VALUE, &hKey) == ERROR_SUCCESS)
|
||||
dwValue = 1;
|
||||
cbValue = sizeof(dwValue);
|
||||
SHGetValueW(HKEY_CURRENT_USER,
|
||||
L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||
L"Hidden", NULL, &dwValue, &cbValue);
|
||||
if (dwValue == 1)
|
||||
{
|
||||
DWORD dataLength, flagVal;
|
||||
dFlags |= SHCONTF_INCLUDEHIDDEN;
|
||||
m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
|
||||
}
|
||||
|
||||
dataLength = sizeof(flagVal);
|
||||
if (RegQueryValueExW(hKey, L"Hidden", NULL, NULL, (LPBYTE)&flagVal, &dataLength) == ERROR_SUCCESS)
|
||||
{
|
||||
/* if the value is 1, then show all hidden files/folders */
|
||||
if (flagVal == 1)
|
||||
{
|
||||
dFlags |= SHCONTF_INCLUDEHIDDEN;
|
||||
m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/* close the key */
|
||||
RegCloseKey(hKey);
|
||||
dwValue = 0;
|
||||
cbValue = sizeof(dwValue);
|
||||
SHGetValueW(HKEY_CURRENT_USER,
|
||||
L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||
L"ShowSuperHidden", NULL, &dwValue, &cbValue);
|
||||
if (dwValue)
|
||||
{
|
||||
dFlags |= SHCONTF_INCLUDESUPERHIDDEN;
|
||||
m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
|
||||
}
|
||||
|
||||
/* get the itemlist from the shfolder */
|
||||
|
|
|
@ -391,10 +391,16 @@ HRESULT WINAPI CFileSysEnum::Initialize(LPWSTR lpszPath, DWORD dwFlags)
|
|||
{
|
||||
BOOL findFinished = FALSE;
|
||||
|
||||
#define HIDDEN FILE_ATTRIBUTE_HIDDEN
|
||||
#define SUPER_HIDDEN (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM)
|
||||
|
||||
do
|
||||
{
|
||||
if ( !(stffile.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
|
||||
|| (dwFlags & SHCONTF_INCLUDEHIDDEN) )
|
||||
if ((stffile.dwFileAttributes & HIDDEN) == 0 ||
|
||||
((dwFlags & SHCONTF_INCLUDEHIDDEN) &&
|
||||
(stffile.dwFileAttributes & SUPER_HIDDEN) == HIDDEN) ||
|
||||
((dwFlags & SHCONTF_INCLUDESUPERHIDDEN) &&
|
||||
(stffile.dwFileAttributes & SUPER_HIDDEN) == SUPER_HIDDEN))
|
||||
{
|
||||
LPITEMIDLIST pidl = NULL;
|
||||
|
||||
|
|
|
@ -176,7 +176,12 @@ interface IShellFolder : IUnknown
|
|||
SHCONTF_INIT_ON_FIRST_NEXT = 256,
|
||||
SHCONTF_NETPRINTERSRCH = 512,
|
||||
SHCONTF_SHAREABLE = 1024,
|
||||
SHCONTF_STORAGE = 2048
|
||||
SHCONTF_STORAGE = 2048,
|
||||
SHCONTF_NAVIGATION_ENUM = 0x01000,
|
||||
SHCONTF_FASTITEMS = 0x02000,
|
||||
SHCONTF_FLATLIST = 0x04000,
|
||||
SHCONTF_ENABLE_ASYNC = 0x08000,
|
||||
SHCONTF_INCLUDESUPERHIDDEN = 0x10000
|
||||
};
|
||||
|
||||
typedef DWORD SHCONTF;
|
||||
|
|
Loading…
Reference in a new issue