shell32: Revert c1f2824429
. It caused poor performance.
Patch c1f2824429
causes poor performance
when browsing a directory. In fact it has a side affect that when you
browse the root folder off of My Computer it will enumerate not only
the root's contents but each subfolder's contents as well in order to
get a more likely correct value for SFGAO_HASSUBFOLDER.
This commit is contained in:
parent
b0a069dcfb
commit
32a4ac1629
|
@ -466,22 +466,6 @@ HRESULT SHELL32_GetItemAttributes (IShellFolder * psf, LPCITEMIDLIST pidl, LPDWO
|
|||
if (!_ILGetExtension(pidl, ext, MAX_PATH) || lstrcmpiA(ext, "lnk"))
|
||||
*pdwAttributes &= ~SFGAO_LINK;
|
||||
}
|
||||
|
||||
if (SFGAO_HASSUBFOLDER & *pdwAttributes)
|
||||
{
|
||||
IShellFolder *psf2;
|
||||
if (SUCCEEDED(IShellFolder_BindToObject(psf, pidl, 0, (REFIID)&IID_IShellFolder, (LPVOID *)&psf2)))
|
||||
{
|
||||
IEnumIDList *pEnumIL = NULL;
|
||||
if (SUCCEEDED(IShellFolder_EnumObjects(psf2, 0, SHCONTF_FOLDERS, &pEnumIL)))
|
||||
{
|
||||
if (IEnumIDList_Skip(pEnumIL, 1) != S_OK)
|
||||
*pdwAttributes &= ~SFGAO_HASSUBFOLDER;
|
||||
IEnumIDList_Release(pEnumIL);
|
||||
}
|
||||
IShellFolder_Release(psf2);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
*pdwAttributes &= SFGAO_HASSUBFOLDER|SFGAO_FOLDER|SFGAO_FILESYSANCESTOR|SFGAO_DROPTARGET|SFGAO_HASPROPSHEET|SFGAO_CANRENAME|SFGAO_CANLINK;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue