mirror of
https://github.com/reactos/reactos.git
synced 2025-07-04 12:41:22 +00:00
[RSHELL]
* Fix a 6am whoops. * Simplify the FindPidlInList method. svn path=/branches/shell-experiments/; revision=63659
This commit is contained in:
parent
f03fef66d1
commit
dec446e288
2 changed files with 14 additions and 75 deletions
|
@ -1260,7 +1260,7 @@ HRESULT CMenuSFToolbar::FillToolbar(BOOL clearFirst)
|
||||||
IEnumIDList * eidl;
|
IEnumIDList * eidl;
|
||||||
m_shellFolder->EnumObjects(GetToolbar(), SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &eidl);
|
m_shellFolder->EnumObjects(GetToolbar(), SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &eidl);
|
||||||
|
|
||||||
LPITEMIDLIST item = { 0 };
|
LPITEMIDLIST item = NULL;
|
||||||
hr = eidl->Next(1, &item, NULL);
|
hr = eidl->Next(1, &item, NULL);
|
||||||
while (hr == S_OK)
|
while (hr == S_OK)
|
||||||
{
|
{
|
||||||
|
|
|
@ -256,85 +256,24 @@ HRESULT CEnumMergedFolder::FindPidlInList(LPCITEMIDLIST pcidl, LocalPidlInfo * p
|
||||||
|
|
||||||
TRACE("Comparing with item at %d with side %d and pidl { cb=%d }\n", i, info.side, info.pidl->mkid.cb);
|
TRACE("Comparing with item at %d with side %d and pidl { cb=%d }\n", i, info.side, info.pidl->mkid.cb);
|
||||||
|
|
||||||
|
CComPtr<IShellFolder> fld;
|
||||||
if (info.side <= 0)
|
if (info.side <= 0)
|
||||||
{
|
fld = m_UserLocalFolder;
|
||||||
#if 0
|
else
|
||||||
LPWSTR name1;
|
fld = m_AllUSersFolder;
|
||||||
LPWSTR name2;
|
|
||||||
STRRET str1 = { STRRET_WSTR, 0 };
|
|
||||||
STRRET str2 = { STRRET_WSTR, 0 };
|
|
||||||
hr = m_UserLocalFolder->GetDisplayNameOf(info->pidl, SHGDN_FORPARSING | SHGDN_INFOLDER, &str1);
|
|
||||||
if (FAILED(hr))
|
|
||||||
return hr;
|
|
||||||
hr = m_UserLocalFolder->GetDisplayNameOf(pcidl, SHGDN_FORPARSING | SHGDN_INFOLDER, &str2);
|
|
||||||
if (FAILED(hr))
|
|
||||||
return hr;
|
|
||||||
StrRetToStrW(&str1, info->pidl, &name1);
|
|
||||||
StrRetToStrW(&str2, pcidl, &name2);
|
|
||||||
int order = StrCmpW(name1, name2);
|
|
||||||
CoTaskMemFree(name1);
|
|
||||||
CoTaskMemFree(name2);
|
|
||||||
|
|
||||||
if (order == 0)
|
hr = m_AllUSersFolder->CompareIDs(0, info.pidl, pcidl);
|
||||||
{
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
*pinfo = *info;
|
return hr;
|
||||||
return S_OK;
|
|
||||||
}
|
if (hr == S_OK)
|
||||||
#else
|
{
|
||||||
// FIXME: This works in windows.
|
*pinfo = info;
|
||||||
hr = m_UserLocalFolder->CompareIDs(0, info.pidl, pcidl);
|
return S_OK;
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
|
||||||
return hr;
|
|
||||||
if (hr == S_OK)
|
|
||||||
{
|
|
||||||
*pinfo = info;
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TRACE("Comparison returned %d\n", (int) (short) (hr & 0xFFFF));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
#if 0
|
TRACE("Comparison returned %d\n", (int) (short) (hr & 0xFFFF));
|
||||||
LPWSTR name1;
|
|
||||||
LPWSTR name2;
|
|
||||||
STRRET str1 = { STRRET_WSTR, 0 };
|
|
||||||
STRRET str2 = { STRRET_WSTR, 0 };
|
|
||||||
hr = m_AllUSersFolder->GetDisplayNameOf(info->pidl, SHGDN_FORPARSING | SHGDN_INFOLDER, &str1);
|
|
||||||
if (FAILED(hr))
|
|
||||||
return hr;
|
|
||||||
hr = m_AllUSersFolder->GetDisplayNameOf(pcidl, SHGDN_FORPARSING | SHGDN_INFOLDER, &str2);
|
|
||||||
if (FAILED(hr))
|
|
||||||
return hr;
|
|
||||||
StrRetToStrW(&str1, info->pidl, &name1);
|
|
||||||
StrRetToStrW(&str2, pcidl, &name2);
|
|
||||||
int order = StrCmpW(name1, name2);
|
|
||||||
CoTaskMemFree(name1);
|
|
||||||
CoTaskMemFree(name2);
|
|
||||||
|
|
||||||
if (order == 0)
|
|
||||||
{
|
|
||||||
*pinfo = *info;
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
// FIXME: This works in windows.
|
|
||||||
hr = m_AllUSersFolder->CompareIDs(0, info.pidl, pcidl);
|
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
|
||||||
return hr;
|
|
||||||
if (hr == S_OK)
|
|
||||||
{
|
|
||||||
*pinfo = info;
|
|
||||||
return S_OK;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
TRACE("Comparison returned %d\n", (int) (short) (hr & 0xFFFF));
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue