[SHELL32] Don't display non-enumerable nor non-folder items in Explorer tree (#7189)

This partially implements RegFolder required items as described by Geoff Chappell.

CORE-19176 CORE-14061
This commit is contained in:
Whindmar Saksit 2024-08-29 20:45:59 +02:00 committed by GitHub
parent a75ed2acd9
commit 6ae11ba09d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
18 changed files with 606 additions and 309 deletions

View file

@ -195,6 +195,7 @@ interface IShellFolder : IUnknown
cpp_quote("#define SFGAO_HASPROPSHEET 0x00000040L")
cpp_quote("#define SFGAO_DROPTARGET 0x00000100L")
cpp_quote("#define SFGAO_CAPABILITYMASK 0x00000177L")
cpp_quote("#define SFGAO_SYSTEM 0x00001000L")
cpp_quote("#define SFGAO_ENCRYPTED 0x00002000L")
cpp_quote("#define SFGAO_ISSLOW 0x00004000L")
cpp_quote("#define SFGAO_GHOSTED 0x00008000L")
@ -1485,6 +1486,38 @@ interface ICommDlgBrowser3 : ICommDlgBrowser2
[in] IShellView *ppshv);
}
/*****************************************************************************
* IFolderFilterSite & IFolderFilter interfaces
*/
[
object,
uuid(C0A651F5-B48B-11d2-B5ED-006097C686F6),
pointer_default(unique)
]
interface IFolderFilterSite : IUnknown
{
HRESULT SetFilter([in] IUnknown* punk);
}
[
object,
uuid(9CC22886-DC8E-11d2-B1D0-00C04F8EEB3E),
pointer_default(unique)
]
interface IFolderFilter : IUnknown
{
HRESULT ShouldShow(
[in] IShellFolder* psf,
[in, unique] PCIDLIST_ABSOLUTE pidlFolder,
[in] PCUITEMID_CHILD pidlItem);
HRESULT GetEnumFlags(
[in] IShellFolder* psf,
[in] PCIDLIST_ABSOLUTE pidlFolder,
[out] HWND *phwnd,
[in, out] DWORD *pgrfFlags);
}
/*****************************************************************************
* IDockingWindow interface
*/