mirror of
https://github.com/reactos/reactos.git
synced 2025-04-28 09:29:07 +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","HideFileExt",0x00010003,0x00000000
|
||||||
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","StartMenuLogoff",0x00010003,0x00000001
|
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","Hidden",0x00010003,1
|
||||||
|
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced","ShowSuperHidden",0x00010003,0
|
||||||
|
|
||||||
; ComDlg32
|
; ComDlg32
|
||||||
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32",,0x00000012
|
HKCU,"SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32",,0x00000012
|
||||||
|
|
|
@ -908,29 +908,32 @@ HRESULT CDefView::FillList()
|
||||||
DWORD dwFetched;
|
DWORD dwFetched;
|
||||||
HRESULT hRes;
|
HRESULT hRes;
|
||||||
HDPA hdpa;
|
HDPA hdpa;
|
||||||
HKEY hKey;
|
|
||||||
DWORD dFlags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS;
|
DWORD dFlags = SHCONTF_NONFOLDERS | SHCONTF_FOLDERS;
|
||||||
|
DWORD dwValue, cbValue;
|
||||||
|
|
||||||
TRACE("%p\n", this);
|
TRACE("%p\n", this);
|
||||||
|
|
||||||
/* determine if there is a setting to show all the hidden files/folders */
|
/* 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);
|
||||||
DWORD dataLength, flagVal;
|
SHGetValueW(HKEY_CURRENT_USER,
|
||||||
|
L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
dataLength = sizeof(flagVal);
|
L"Hidden", NULL, &dwValue, &cbValue);
|
||||||
if (RegQueryValueExW(hKey, L"Hidden", NULL, NULL, (LPBYTE)&flagVal, &dataLength) == ERROR_SUCCESS)
|
if (dwValue == 1)
|
||||||
{
|
|
||||||
/* if the value is 1, then show all hidden files/folders */
|
|
||||||
if (flagVal == 1)
|
|
||||||
{
|
{
|
||||||
dFlags |= SHCONTF_INCLUDEHIDDEN;
|
dFlags |= SHCONTF_INCLUDEHIDDEN;
|
||||||
m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
|
m_ListView.SendMessageW(LVM_SETCALLBACKMASK, LVIS_CUT, 0);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/* close the key */
|
dwValue = 0;
|
||||||
RegCloseKey(hKey);
|
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 */
|
/* get the itemlist from the shfolder */
|
||||||
|
|
|
@ -391,10 +391,16 @@ HRESULT WINAPI CFileSysEnum::Initialize(LPWSTR lpszPath, DWORD dwFlags)
|
||||||
{
|
{
|
||||||
BOOL findFinished = FALSE;
|
BOOL findFinished = FALSE;
|
||||||
|
|
||||||
|
#define HIDDEN FILE_ATTRIBUTE_HIDDEN
|
||||||
|
#define SUPER_HIDDEN (FILE_ATTRIBUTE_HIDDEN | FILE_ATTRIBUTE_SYSTEM)
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
if ( !(stffile.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
|
if ((stffile.dwFileAttributes & HIDDEN) == 0 ||
|
||||||
|| (dwFlags & SHCONTF_INCLUDEHIDDEN) )
|
((dwFlags & SHCONTF_INCLUDEHIDDEN) &&
|
||||||
|
(stffile.dwFileAttributes & SUPER_HIDDEN) == HIDDEN) ||
|
||||||
|
((dwFlags & SHCONTF_INCLUDESUPERHIDDEN) &&
|
||||||
|
(stffile.dwFileAttributes & SUPER_HIDDEN) == SUPER_HIDDEN))
|
||||||
{
|
{
|
||||||
LPITEMIDLIST pidl = NULL;
|
LPITEMIDLIST pidl = NULL;
|
||||||
|
|
||||||
|
|
|
@ -176,7 +176,12 @@ interface IShellFolder : IUnknown
|
||||||
SHCONTF_INIT_ON_FIRST_NEXT = 256,
|
SHCONTF_INIT_ON_FIRST_NEXT = 256,
|
||||||
SHCONTF_NETPRINTERSRCH = 512,
|
SHCONTF_NETPRINTERSRCH = 512,
|
||||||
SHCONTF_SHAREABLE = 1024,
|
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;
|
typedef DWORD SHCONTF;
|
||||||
|
|
Loading…
Reference in a new issue