From dec446e2885fec04ef3dd032c718156d010dd78f Mon Sep 17 00:00:00 2001 From: David Quintana Date: Sat, 28 Jun 2014 18:05:01 +0000 Subject: [PATCH] [RSHELL] * Fix a 6am whoops. * Simplify the FindPidlInList method. svn path=/branches/shell-experiments/; revision=63659 --- base/shell/rshell/CMenuToolbars.cpp | 2 +- base/shell/rshell/CMergedFolder.cpp | 87 +++++------------------------ 2 files changed, 14 insertions(+), 75 deletions(-) diff --git a/base/shell/rshell/CMenuToolbars.cpp b/base/shell/rshell/CMenuToolbars.cpp index 4d67c391694..556b3176b1f 100644 --- a/base/shell/rshell/CMenuToolbars.cpp +++ b/base/shell/rshell/CMenuToolbars.cpp @@ -1260,7 +1260,7 @@ HRESULT CMenuSFToolbar::FillToolbar(BOOL clearFirst) IEnumIDList * eidl; m_shellFolder->EnumObjects(GetToolbar(), SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &eidl); - LPITEMIDLIST item = { 0 }; + LPITEMIDLIST item = NULL; hr = eidl->Next(1, &item, NULL); while (hr == S_OK) { diff --git a/base/shell/rshell/CMergedFolder.cpp b/base/shell/rshell/CMergedFolder.cpp index 8758f6454a5..a429d6405f8 100644 --- a/base/shell/rshell/CMergedFolder.cpp +++ b/base/shell/rshell/CMergedFolder.cpp @@ -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); + CComPtr fld; if (info.side <= 0) - { -#if 0 - LPWSTR name1; - 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); + fld = m_UserLocalFolder; + else + fld = m_AllUSersFolder; - if (order == 0) - { - *pinfo = *info; - return S_OK; - } -#else - // FIXME: This works in windows. - hr = m_UserLocalFolder->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 + hr = m_AllUSersFolder->CompareIDs(0, info.pidl, pcidl); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + if (hr == S_OK) + { + *pinfo = info; + return S_OK; } else { -#if 0 - 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 + TRACE("Comparison returned %d\n", (int) (short) (hr & 0xFFFF)); } }