ReactOS.org
Sign In
Sign Up
Sign In
Sign Up
Manage this list
×
Keyboard Shortcuts
Thread View
j
: Next unread message
k
: Previous unread message
j a
: Jump to all threads
j l
: Jump to MailingList overview
2024
December
November
October
September
August
July
June
May
April
March
February
January
2023
December
November
October
September
August
July
June
May
April
March
February
January
2022
December
November
October
September
August
July
June
May
April
March
February
January
2021
December
November
October
September
August
July
June
May
April
March
February
January
2020
December
November
October
September
August
July
June
May
April
March
February
January
2019
December
November
October
September
August
July
June
May
April
March
February
January
2018
December
November
October
September
August
July
June
May
April
March
February
January
2017
December
November
October
September
August
July
June
May
April
March
February
January
2016
December
November
October
September
August
July
June
May
April
March
February
January
2015
December
November
October
September
August
July
June
May
April
March
February
January
2014
December
November
October
September
August
July
June
May
April
March
February
January
2013
December
November
October
September
August
July
June
May
April
March
February
January
2012
December
November
October
September
August
July
June
May
April
March
February
January
2011
December
November
October
September
August
July
June
May
April
March
February
January
2010
December
November
October
September
August
July
June
May
April
March
February
January
2009
December
November
October
September
August
July
June
May
April
March
February
January
2008
December
November
October
September
August
July
June
May
April
March
February
January
2007
December
November
October
September
August
July
June
May
April
March
February
January
2006
December
November
October
September
August
July
June
May
April
March
February
January
2005
December
November
October
September
August
July
June
May
April
March
February
January
2004
December
November
October
September
August
July
June
May
April
March
February
List overview
Download
Ros-diffs
June 2014
----- 2024 -----
December 2024
November 2024
October 2024
September 2024
August 2024
July 2024
June 2024
May 2024
April 2024
March 2024
February 2024
January 2024
----- 2023 -----
December 2023
November 2023
October 2023
September 2023
August 2023
July 2023
June 2023
May 2023
April 2023
March 2023
February 2023
January 2023
----- 2022 -----
December 2022
November 2022
October 2022
September 2022
August 2022
July 2022
June 2022
May 2022
April 2022
March 2022
February 2022
January 2022
----- 2021 -----
December 2021
November 2021
October 2021
September 2021
August 2021
July 2021
June 2021
May 2021
April 2021
March 2021
February 2021
January 2021
----- 2020 -----
December 2020
November 2020
October 2020
September 2020
August 2020
July 2020
June 2020
May 2020
April 2020
March 2020
February 2020
January 2020
----- 2019 -----
December 2019
November 2019
October 2019
September 2019
August 2019
July 2019
June 2019
May 2019
April 2019
March 2019
February 2019
January 2019
----- 2018 -----
December 2018
November 2018
October 2018
September 2018
August 2018
July 2018
June 2018
May 2018
April 2018
March 2018
February 2018
January 2018
----- 2017 -----
December 2017
November 2017
October 2017
September 2017
August 2017
July 2017
June 2017
May 2017
April 2017
March 2017
February 2017
January 2017
----- 2016 -----
December 2016
November 2016
October 2016
September 2016
August 2016
July 2016
June 2016
May 2016
April 2016
March 2016
February 2016
January 2016
----- 2015 -----
December 2015
November 2015
October 2015
September 2015
August 2015
July 2015
June 2015
May 2015
April 2015
March 2015
February 2015
January 2015
----- 2014 -----
December 2014
November 2014
October 2014
September 2014
August 2014
July 2014
June 2014
May 2014
April 2014
March 2014
February 2014
January 2014
----- 2013 -----
December 2013
November 2013
October 2013
September 2013
August 2013
July 2013
June 2013
May 2013
April 2013
March 2013
February 2013
January 2013
----- 2012 -----
December 2012
November 2012
October 2012
September 2012
August 2012
July 2012
June 2012
May 2012
April 2012
March 2012
February 2012
January 2012
----- 2011 -----
December 2011
November 2011
October 2011
September 2011
August 2011
July 2011
June 2011
May 2011
April 2011
March 2011
February 2011
January 2011
----- 2010 -----
December 2010
November 2010
October 2010
September 2010
August 2010
July 2010
June 2010
May 2010
April 2010
March 2010
February 2010
January 2010
----- 2009 -----
December 2009
November 2009
October 2009
September 2009
August 2009
July 2009
June 2009
May 2009
April 2009
March 2009
February 2009
January 2009
----- 2008 -----
December 2008
November 2008
October 2008
September 2008
August 2008
July 2008
June 2008
May 2008
April 2008
March 2008
February 2008
January 2008
----- 2007 -----
December 2007
November 2007
October 2007
September 2007
August 2007
July 2007
June 2007
May 2007
April 2007
March 2007
February 2007
January 2007
----- 2006 -----
December 2006
November 2006
October 2006
September 2006
August 2006
July 2006
June 2006
May 2006
April 2006
March 2006
February 2006
January 2006
----- 2005 -----
December 2005
November 2005
October 2005
September 2005
August 2005
July 2005
June 2005
May 2005
April 2005
March 2005
February 2005
January 2005
----- 2004 -----
December 2004
November 2004
October 2004
September 2004
August 2004
July 2004
June 2004
May 2004
April 2004
March 2004
February 2004
ros-diffs@reactos.org
15 participants
157 discussions
Start a n
N
ew thread
[hbelusca] 63660: [SMSS][CSRSRV]: Typo fix. [CSRSRV]: Fix an assertion.
by hbelusca@svn.reactos.org
Author: hbelusca Date: Sat Jun 28 21:40:34 2014 New Revision: 63660 URL:
http://svn.reactos.org/svn/reactos?rev=63660&view=rev
Log: [SMSS][CSRSRV]: Typo fix. [CSRSRV]: Fix an assertion. Modified: trunk/reactos/base/system/smss/smutil.c trunk/reactos/subsystems/win32/csrsrv/procsup.c trunk/reactos/subsystems/win32/csrsrv/thredsup.c Modified: trunk/reactos/base/system/smss/smutil.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/system/smss/smutil.c?…
============================================================================== --- trunk/reactos/base/system/smss/smutil.c [iso-8859-1] (original) +++ trunk/reactos/base/system/smss/smutil.c [iso-8859-1] Sat Jun 28 21:40:34 2014 @@ -536,7 +536,7 @@ Status = RtlLockBootStatusData(&BootState); if (NT_SUCCESS(Status)) { - /* Write the bootokay and bootshudown values */ + /* Write the bootokay and bootshutdown values */ RtlGetSetBootStatusData(BootState, FALSE, RtlBsdItemBootGood, Modified: trunk/reactos/subsystems/win32/csrsrv/procsup.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrsrv/pr…
============================================================================== --- trunk/reactos/subsystems/win32/csrsrv/procsup.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/csrsrv/procsup.c [iso-8859-1] Sat Jun 28 21:40:34 2014 @@ -1297,7 +1297,7 @@ CsrProcess->ShutdownFlags = 0; } - /* Set shudown Priority */ + /* Set shutdown Priority */ CsrSetToShutdownPriority(); /* Start looping */ Modified: trunk/reactos/subsystems/win32/csrsrv/thredsup.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/win32/csrsrv/th…
============================================================================== --- trunk/reactos/subsystems/win32/csrsrv/thredsup.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/win32/csrsrv/thredsup.c [iso-8859-1] Sat Jun 28 21:40:34 2014 @@ -1045,7 +1045,7 @@ CsrAcquireProcessLock(); /* Sanity checks */ - ASSERT(CsrThread->Flags & CsrThreadTerminated); // CSR_THREAD_DESTROYED in ASSERT + ASSERT((CsrThread->Flags & CsrThreadTerminated) == 0); ASSERT(CsrThread->ReferenceCount != 0); /* Increment reference count */
10 years, 5 months
1
0
0
0
[dquintana] 63659: [RSHELL] * Fix a 6am whoops. * Simplify the FindPidlInList method.
by dquintana@svn.reactos.org
Author: dquintana Date: Sat Jun 28 18:05:01 2014 New Revision: 63659 URL:
http://svn.reactos.org/svn/reactos?rev=63659&view=rev
Log: [RSHELL] * Fix a 6am whoops. * Simplify the FindPidlInList method. Modified: branches/shell-experiments/base/shell/rshell/CMenuToolbars.cpp branches/shell-experiments/base/shell/rshell/CMergedFolder.cpp Modified: branches/shell-experiments/base/shell/rshell/CMenuToolbars.cpp URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/base/shell/rs…
============================================================================== --- branches/shell-experiments/base/shell/rshell/CMenuToolbars.cpp [iso-8859-1] (original) +++ branches/shell-experiments/base/shell/rshell/CMenuToolbars.cpp [iso-8859-1] Sat Jun 28 18:05:01 2014 @@ -1260,7 +1260,7 @@ 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) { Modified: branches/shell-experiments/base/shell/rshell/CMergedFolder.cpp URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/base/shell/rs…
============================================================================== --- branches/shell-experiments/base/shell/rshell/CMergedFolder.cpp [iso-8859-1] (original) +++ branches/shell-experiments/base/shell/rshell/CMergedFolder.cpp [iso-8859-1] Sat Jun 28 18:05:01 2014 @@ -256,85 +256,24 @@ 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 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); - - 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 - } + fld = m_UserLocalFolder; 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 + fld = m_AllUSersFolder; + + 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)); } }
10 years, 5 months
1
0
0
0
[dquintana] 63658: [RSHELL] * Implement a rudimentary but mostly functional (for start menu purposes) CMergedFolder class. It's still disabled by default because clicking on an item in a merged fol...
by dquintana@svn.reactos.org
Author: dquintana Date: Sat Jun 28 15:38:25 2014 New Revision: 63658 URL:
http://svn.reactos.org/svn/reactos?rev=63658&view=rev
Log: [RSHELL] * Implement a rudimentary but mostly functional (for start menu purposes) CMergedFolder class. It's still disabled by default because clicking on an item in a merged folder appears to fail to execute it. Modified: branches/shell-experiments/base/shell/rshell/CMakeLists.txt branches/shell-experiments/base/shell/rshell/CMenuToolbars.cpp branches/shell-experiments/base/shell/rshell/CMergedFolder.cpp branches/shell-experiments/base/shell/rshell/CMergedFolder.h branches/shell-experiments/include/psdk/commctrl.h Modified: branches/shell-experiments/base/shell/rshell/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/base/shell/rs…
============================================================================== --- branches/shell-experiments/base/shell/rshell/CMakeLists.txt [iso-8859-1] (original) +++ branches/shell-experiments/base/shell/rshell/CMakeLists.txt [iso-8859-1] Sat Jun 28 15:38:25 2014 @@ -31,6 +31,7 @@ uxtheme shlwapi shell32 + comctl32 gdi32 ole32 user32 Modified: branches/shell-experiments/base/shell/rshell/CMenuToolbars.cpp URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/base/shell/rs…
============================================================================== --- branches/shell-experiments/base/shell/rshell/CMenuToolbars.cpp [iso-8859-1] (original) +++ branches/shell-experiments/base/shell/rshell/CMenuToolbars.cpp [iso-8859-1] Sat Jun 28 15:38:25 2014 @@ -1260,10 +1260,9 @@ IEnumIDList * eidl; m_shellFolder->EnumObjects(GetToolbar(), SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, &eidl); - LPITEMIDLIST item = static_cast<LPITEMIDLIST>(CoTaskMemAlloc(sizeof(ITEMIDLIST))); - ULONG fetched; - hr = eidl->Next(1, &item, &fetched); - while (SUCCEEDED(hr) && fetched > 0) + LPITEMIDLIST item = { 0 }; + hr = eidl->Next(1, &item, NULL); + while (hr == S_OK) { INT index = 0; INT indexOpen = 0; @@ -1286,13 +1285,13 @@ DWORD_PTR dwData = reinterpret_cast<DWORD_PTR>(ILClone(item)); // Fetch next item already, so we know if the current one is the last - hr = eidl->Next(1, &item, &fetched); - - AddButton(++i, MenuString, attrs & SFGAO_FOLDER, index, dwData, FAILED(hr) || fetched == 0); + hr = eidl->Next(1, &item, NULL); + + AddButton(++i, MenuString, attrs & SFGAO_FOLDER, index, dwData, hr != S_OK); CoTaskMemFree(MenuString); } - CoTaskMemFree(item); + ILFree(item); // If no items were added, show the "empty" placeholder if (i == 0) Modified: branches/shell-experiments/base/shell/rshell/CMergedFolder.cpp URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/base/shell/rs…
============================================================================== --- branches/shell-experiments/base/shell/rshell/CMergedFolder.cpp [iso-8859-1] (original) +++ branches/shell-experiments/base/shell/rshell/CMergedFolder.cpp [iso-8859-1] Sat Jun 28 15:38:25 2014 @@ -25,18 +25,33 @@ WINE_DEFAULT_DEBUG_CHANNEL(CMergedFolder); +struct LocalPidlInfo +{ + int side; // -1 local, 0 shared, 1 common + LPITEMIDLIST pidl; +}; + class CEnumMergedFolder : public CComObjectRootEx<CComMultiThreadModelNoCS>, public IEnumIDList { + private: + CComPtr<IShellFolder> m_UserLocalFolder; + CComPtr<IShellFolder> m_AllUSersFolder; CComPtr<IEnumIDList> m_UserLocal; CComPtr<IEnumIDList> m_AllUSers; - BOOL m_FirstDone; + + HWND m_HwndOwner; + SHCONTF m_Flags; + + HDSA m_hDsa; + UINT m_hDsaIndex; + UINT m_hDsaCount; public: - CEnumMergedFolder() : m_UserLocal(NULL), m_AllUSers(NULL), m_FirstDone(FALSE) {} - virtual ~CEnumMergedFolder() {} + CEnumMergedFolder(); + virtual ~CEnumMergedFolder(); DECLARE_NOT_AGGREGATABLE(CEnumMergedFolder) DECLARE_PROTECT_FINAL_CONSTRUCT() @@ -45,83 +60,345 @@ COM_INTERFACE_ENTRY_IID(IID_IEnumIDList, IEnumIDList) END_COM_MAP() - HRESULT Begin(HWND hwndOwner, SHCONTF flags, IShellFolder * userLocal, IShellFolder * allUSers) - { - HRESULT hr; - hr = userLocal->EnumObjects(hwndOwner, flags, &m_UserLocal); - if (FAILED_UNEXPECTEDLY(hr)) - return hr; - hr = userLocal->EnumObjects(hwndOwner, flags, &m_AllUSers); - if (FAILED_UNEXPECTEDLY(hr)) - { - m_UserLocal = NULL; - return hr; - } - m_FirstDone = FALSE; - return S_OK; - } + int DsaDeleteCallback(LocalPidlInfo * info); + + static int CALLBACK s_DsaDeleteCallback(void *pItem, void *pData); + + HRESULT SetSources(IShellFolder * userLocal, IShellFolder * allUSers); + HRESULT Begin(HWND hwndOwner, SHCONTF flags); + HRESULT FindPidlInList(LPCITEMIDLIST pcidl, LocalPidlInfo * pinfo); virtual HRESULT STDMETHODCALLTYPE Next( ULONG celt, LPITEMIDLIST *rgelt, - ULONG *pceltFetched) + ULONG *pceltFetched); + + virtual HRESULT STDMETHODCALLTYPE Skip(ULONG celt); + virtual HRESULT STDMETHODCALLTYPE Reset(); + virtual HRESULT STDMETHODCALLTYPE Clone(IEnumIDList **ppenum); +}; + +CEnumMergedFolder::CEnumMergedFolder() : + m_UserLocalFolder(NULL), + m_AllUSersFolder(NULL), + m_UserLocal(NULL), + m_AllUSers(NULL), + m_HwndOwner(NULL), + m_Flags(0), + m_hDsaIndex(0) +{ + m_hDsa = DSA_Create(sizeof(LocalPidlInfo), 10); +} + +CEnumMergedFolder::~CEnumMergedFolder() +{ + DSA_DestroyCallback(m_hDsa, s_DsaDeleteCallback, this); +} + +int CEnumMergedFolder::DsaDeleteCallback(LocalPidlInfo * info) +{ + ILFree(info->pidl); + return 0; +} + +int CALLBACK CEnumMergedFolder::s_DsaDeleteCallback(void *pItem, void *pData) +{ + CEnumMergedFolder * mf = (CEnumMergedFolder*) pData; + LocalPidlInfo * item = (LocalPidlInfo*) pItem; + return mf->DsaDeleteCallback(item); +} + +HRESULT CEnumMergedFolder::SetSources(IShellFolder * userLocal, IShellFolder * allUSers) +{ + m_UserLocalFolder = userLocal; + m_AllUSersFolder = allUSers; + return S_OK; +} + +HRESULT CEnumMergedFolder::Begin(HWND hwndOwner, SHCONTF flags) +{ + HRESULT hr; + + if (m_HwndOwner == hwndOwner && m_Flags == flags) { - HRESULT hr; - - *pceltFetched = 0; - - if (!m_FirstDone) - { - hr = m_UserLocal->Next(celt, rgelt, pceltFetched); + return Reset(); + } + + TRACE("Search conditions changed, recreating list...\n"); + + hr = m_UserLocalFolder->EnumObjects(hwndOwner, flags, &m_UserLocal); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + hr = m_AllUSersFolder->EnumObjects(hwndOwner, flags, &m_AllUSers); + if (FAILED_UNEXPECTEDLY(hr)) + { + m_UserLocal = NULL; + return hr; + } + + DSA_EnumCallback(m_hDsa, s_DsaDeleteCallback, this); + DSA_DeleteAllItems(m_hDsa); + m_hDsaCount = 0; + + HRESULT hr1 = S_OK; + HRESULT hr2 = S_OK; + LPITEMIDLIST pidl1 = NULL; + LPITEMIDLIST pidl2 = NULL; + int order = 0; + do + { + if (order <= 0) + { + if (hr1 == S_OK) + { + hr1 = m_UserLocal->Next(1, &pidl1, NULL); + if (FAILED_UNEXPECTEDLY(hr1)) + return hr1; + } + else + { + pidl1 = NULL; + } + } + if (order >= 0) + { + if (hr2 == S_OK) + { + hr2 = m_AllUSers->Next(1, &pidl2, NULL); + if (FAILED_UNEXPECTEDLY(hr2)) + return hr2; + } + else + { + pidl2 = NULL; + } + } + + if (hr1 == S_OK && hr2 == S_OK) + { + LPWSTR name1; + LPWSTR name2; + STRRET str1 = { STRRET_WSTR }; + STRRET str2 = { STRRET_WSTR }; + hr = m_UserLocalFolder->GetDisplayNameOf(pidl1, SHGDN_FORPARSING | SHGDN_INFOLDER, &str1); + if (FAILED(hr)) + return hr; + hr = m_AllUSersFolder->GetDisplayNameOf(pidl2, SHGDN_FORPARSING | SHGDN_INFOLDER, &str2); + if (FAILED(hr)) + return hr; + StrRetToStrW(&str1, pidl1, &name1); + StrRetToStrW(&str2, pidl2, &name2); + order = StrCmpW(name1, name2); + CoTaskMemFree(name1); + CoTaskMemFree(name2); + } + else if (hr1 == S_OK) + { + order = -1; + } + else if (hr2 == S_OK) + { + order = 1; + } + else + { + break; + } + + LocalPidlInfo info; + if (order < 0) + { + info.side = -1; + info.pidl = ILClone(pidl1); + ILFree(pidl1); + } + else if (order > 0) + { + info.side = 1; + info.pidl = ILClone(pidl2); + ILFree(pidl2); + } + else // if (order == 0) + { + info.side = 0; + info.pidl = ILClone(pidl1); + ILFree(pidl1); + ILFree(pidl2); + } + + TRACE("Inserting item %d with side %d and pidl { cb=%d }\n", m_hDsaCount, info.side, info.pidl->mkid.cb); + int idx = DSA_InsertItem(m_hDsa, DSA_APPEND, &info); + TRACE("New index: %d\n", idx); + + m_hDsaCount++; + + } while (hr1 == S_OK || hr2 == S_OK); + + m_HwndOwner = hwndOwner; + m_Flags = flags; + + return Reset(); +} + +HRESULT CEnumMergedFolder::FindPidlInList(LPCITEMIDLIST pcidl, LocalPidlInfo * pinfo) +{ + HRESULT hr; + + TRACE("Searching for pidl { cb=%d } in a list of %d items\n", pcidl->mkid.cb, m_hDsaCount); + + for (int i = 0; i < (int)m_hDsaCount; i++) + { + LocalPidlInfo * tinfo = (LocalPidlInfo *)DSA_GetItemPtr(m_hDsa, i); + if (!tinfo) + return E_FAIL; + + LocalPidlInfo info = *tinfo; + + TRACE("Comparing with item at %d with side %d and pidl { cb=%d }\n", i, info.side, info.pidl->mkid.cb); + + 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); + + 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_FALSE) - m_FirstDone = true; - else if (celt < 2) - return hr; - } - - DWORD offset = *pceltFetched; - if (*pceltFetched < celt) - { - rgelt += *pceltFetched; - celt = (celt - *pceltFetched); - *pceltFetched = 0; - - hr = m_AllUSers->Next(celt, rgelt, pceltFetched); + if (hr == S_OK) + { + *pinfo = info; + return S_OK; + } + else + { + TRACE("Comparison returned %d\n", (int) (short) (hr & 0xFFFF)); + } +#endif + } + 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; - - *pceltFetched += offset; - - return hr; - } - - return S_OK; + if (hr == S_OK) + { + *pinfo = info; + return S_OK; + } + else + { + TRACE("Comparison returned %d\n", (int) (short) (hr & 0xFFFF)); + } +#endif + } } - virtual HRESULT STDMETHODCALLTYPE Skip( - ULONG celt) + TRACE("Pidl not found\n"); + return HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND); +} + +HRESULT STDMETHODCALLTYPE CEnumMergedFolder::Next( + ULONG celt, + LPITEMIDLIST *rgelt, + ULONG *pceltFetched) +{ + if (pceltFetched) *pceltFetched = 0; + + if (m_hDsaIndex == m_hDsaCount) + return S_FALSE; + + for (int i = 0; i < (int)celt;) { - UNIMPLEMENTED; - return E_NOTIMPL; + LocalPidlInfo * tinfo = (LocalPidlInfo *) DSA_GetItemPtr(m_hDsa, m_hDsaIndex); + if (!tinfo) + return E_FAIL; + + LocalPidlInfo info = *tinfo; + + TRACE("Returning next item at %d with side %d and pidl { cb=%d }\n", m_hDsaIndex, info.side, info.pidl->mkid.cb); + + // FIXME: ILClone shouldn't be needed here! This should be causing leaks + if (rgelt) rgelt[i] = ILClone(info.pidl); + + m_hDsaIndex++; + i++; + + if (m_hDsaIndex == m_hDsaCount) + { + if (pceltFetched) *pceltFetched = i; + return (i == (int)celt) ? S_OK : S_FALSE; + } } - virtual HRESULT STDMETHODCALLTYPE Reset( - ) - { - if (m_FirstDone) - m_AllUSers->Reset(); - return m_UserLocal->Reset(); - } - - virtual HRESULT STDMETHODCALLTYPE Clone( - IEnumIDList **ppenum) - { - UNIMPLEMENTED; - return E_NOTIMPL; - } -}; + if (pceltFetched) *pceltFetched = celt; + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CEnumMergedFolder::Skip(ULONG celt) +{ + return Next(celt, NULL, NULL); +} + +HRESULT STDMETHODCALLTYPE CEnumMergedFolder::Reset() +{ + m_hDsaIndex = 0; + return S_OK; +} + +HRESULT STDMETHODCALLTYPE CEnumMergedFolder::Clone( + IEnumIDList **ppenum) +{ + UNIMPLEMENTED; + return E_NOTIMPL; +} + +//----------------------------------------------------------------------------- +// CMergedFolder extern "C" HRESULT WINAPI CMergedFolder_Constructor(IShellFolder* userLocal, IShellFolder* allUsers, REFIID riid, LPVOID *ppv) @@ -148,7 +425,8 @@ { m_UserLocal = userLocal; m_AllUSers = allUsers; - return S_OK; + m_EnumSource = new CComObject<CEnumMergedFolder>(); + return m_EnumSource->SetSources(m_UserLocal, m_AllUSers); } // IShellFolder @@ -169,9 +447,10 @@ SHCONTF grfFlags, IEnumIDList **ppenumIDList) { - CEnumMergedFolder * merged = new CComObject<CEnumMergedFolder>(); - *ppenumIDList = merged; - return merged->Begin(hwndOwner, grfFlags, m_UserLocal, m_AllUSers); + HRESULT hr = m_EnumSource->QueryInterface(IID_PPV_ARG(IEnumIDList, ppenumIDList)); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + return m_EnumSource->Begin(hwndOwner, grfFlags); } HRESULT STDMETHODCALLTYPE CMergedFolder::BindToObject( @@ -180,15 +459,33 @@ REFIID riid, void **ppvOut) { + LocalPidlInfo info; HRESULT hr; - hr = m_UserLocal->BindToObject(pidl, pbcReserved, riid, ppvOut); - if (SUCCEEDED(hr)) - return hr; - - hr = m_AllUSers->BindToObject(pidl, pbcReserved, riid, ppvOut); - - return hr; + hr = m_EnumSource->FindPidlInList(pidl, &info); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + if (info.side < 0) + return m_UserLocal->BindToObject(pidl, pbcReserved, riid, ppvOut); + if (info.side > 0) + return m_AllUSers->BindToObject(pidl, pbcReserved, riid, ppvOut); + + if (riid != IID_IShellFolder) + return E_FAIL; + + CComPtr<IShellFolder> fld1; + CComPtr<IShellFolder> fld2; + + hr = m_UserLocal->BindToObject(pidl, pbcReserved, IID_PPV_ARG(IShellFolder, &fld1)); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + hr = m_AllUSers->BindToObject(pidl, pbcReserved, IID_PPV_ARG(IShellFolder, &fld2)); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + return CMergedFolder_Constructor(fld1, fld2, riid, ppvOut); } HRESULT STDMETHODCALLTYPE CMergedFolder::BindToStorage( @@ -206,8 +503,7 @@ LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) { - UNIMPLEMENTED; - return E_NOTIMPL; + return m_UserLocal->CompareIDs(lParam, pidl1, pidl2); } HRESULT STDMETHODCALLTYPE CMergedFolder::CreateViewObject( @@ -224,16 +520,29 @@ LPCITEMIDLIST *apidl, SFGAOF *rgfInOut) { + LocalPidlInfo info; HRESULT hr; - hr = m_UserLocal->GetAttributesOf(cidl, apidl, rgfInOut); - if (SUCCEEDED(hr)) - return hr; - - *rgfInOut = 0; - hr = m_AllUSers->GetAttributesOf(cidl, apidl, rgfInOut); - - return hr; + for (int i = 0; i < (int)cidl; i++) + { + LPCITEMIDLIST pidl = apidl[i]; + + hr = m_EnumSource->FindPidlInList(pidl, &info); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + SFGAOF * pinOut1 = rgfInOut ? rgfInOut + i : NULL; + + if (info.side <= 0) + hr = m_UserLocal->GetAttributesOf(1, &pidl, pinOut1); + else + hr = m_AllUSers->GetAttributesOf(1, &pidl, pinOut1); + + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + } + + return S_OK; } HRESULT STDMETHODCALLTYPE CMergedFolder::GetUIObjectOf( @@ -244,15 +553,30 @@ UINT *prgfInOut, void **ppvOut) { + LocalPidlInfo info; HRESULT hr; - hr = m_UserLocal->GetUIObjectOf(hwndOwner, cidl, apidl, riid, prgfInOut, ppvOut); - if (SUCCEEDED(hr)) - return hr; - - hr = m_AllUSers->GetUIObjectOf(hwndOwner, cidl, apidl, riid, prgfInOut, ppvOut); - - return hr; + for (int i = 0; i < (int)cidl; i++) + { + LPCITEMIDLIST pidl = apidl[i]; + + hr = m_EnumSource->FindPidlInList(pidl, &info); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + UINT * pinOut1 = prgfInOut ? prgfInOut+i : NULL; + void** ppvOut1 = ppvOut ? ppvOut + i : NULL; + + if (info.side <= 0) + hr = m_UserLocal->GetUIObjectOf(hwndOwner, 1, &pidl, riid, pinOut1, ppvOut1); + else + hr = m_AllUSers->GetUIObjectOf(hwndOwner, 1, &pidl, riid, pinOut1, ppvOut1); + + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + } + + return S_OK; } HRESULT STDMETHODCALLTYPE CMergedFolder::GetDisplayNameOf( @@ -260,15 +584,21 @@ SHGDNF uFlags, STRRET *lpName) { + LocalPidlInfo info; HRESULT hr; - hr = m_UserLocal->GetDisplayNameOf(pidl, uFlags, lpName); - if (SUCCEEDED(hr)) - return hr; - - hr = m_AllUSers->GetDisplayNameOf(pidl, uFlags, lpName); - - return hr; + hr = m_EnumSource->FindPidlInList(pidl, &info); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + if (info.side <= 0) + hr = m_UserLocal->GetDisplayNameOf(pidl, uFlags, lpName); + else + hr = m_AllUSers->GetDisplayNameOf(pidl, uFlags, lpName); + + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + return S_OK; } HRESULT STDMETHODCALLTYPE CMergedFolder::SetNameOf( Modified: branches/shell-experiments/base/shell/rshell/CMergedFolder.h URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/base/shell/rs…
============================================================================== --- branches/shell-experiments/base/shell/rshell/CMergedFolder.h [iso-8859-1] (original) +++ branches/shell-experiments/base/shell/rshell/CMergedFolder.h [iso-8859-1] Sat Jun 28 15:38:25 2014 @@ -19,6 +19,8 @@ */ #pragma once +class CEnumMergedFolder; + class CMergedFolder : public CComObjectRootEx<CComMultiThreadModelNoCS>, public IShellFolder2 @@ -26,6 +28,7 @@ private: CComPtr<IShellFolder> m_UserLocal; CComPtr<IShellFolder> m_AllUSers; + CComPtr<CEnumMergedFolder> m_EnumSource; public: CMergedFolder() {} Modified: branches/shell-experiments/include/psdk/commctrl.h URL:
http://svn.reactos.org/svn/reactos/branches/shell-experiments/include/psdk/…
============================================================================== --- branches/shell-experiments/include/psdk/commctrl.h [iso-8859-1] (original) +++ branches/shell-experiments/include/psdk/commctrl.h [iso-8859-1] Sat Jun 28 15:38:25 2014 @@ -4716,7 +4716,17 @@ _In_ PFNDSAENUMCALLBACK pfnCB, _In_opt_ void *pData); + WINCOMMCTRLAPI + VOID + WINAPI + DSA_EnumCallback( + _In_ HDSA hdsa, + _In_ PFNDSAENUMCALLBACK enumProc, + _In_opt_ LPVOID lParam); + WINCOMMCTRLAPI PVOID WINAPI DSA_GetItemPtr(_In_ HDSA hdsa, int i); + + WINCOMMCTRLAPI BOOL WINAPI DSA_DeleteAllItems(_In_ HDSA hdsa); WINCOMMCTRLAPI int
10 years, 5 months
1
0
0
0
[akhaldi] 63657: [SHLWAPI] * Export some APIs by ordinals without names. CORE-8174 CORE-8264
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Jun 28 14:03:22 2014 New Revision: 63657 URL:
http://svn.reactos.org/svn/reactos?rev=63657&view=rev
Log: [SHLWAPI] * Export some APIs by ordinals without names. CORE-8174 CORE-8264 Modified: trunk/reactos/dll/win32/shlwapi/shlwapi.spec Modified: trunk/reactos/dll/win32/shlwapi/shlwapi.spec URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shlwapi/shlwapi.…
============================================================================== --- trunk/reactos/dll/win32/shlwapi/shlwapi.spec [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shlwapi/shlwapi.spec [iso-8859-1] Sat Jun 28 14:03:22 2014 @@ -1,5 +1,5 @@ -1 stdcall -ordinal ParseURLA(str ptr) -2 stdcall -ordinal ParseURLW(wstr ptr) +1 stdcall -noname ParseURLA(str ptr) +2 stdcall -noname ParseURLW(wstr ptr) 3 stdcall -noname PathFileExistsDefExtA(str long) 4 stdcall -noname PathFileExistsDefExtW(wstr long) 5 stdcall -noname PathFindOnPathExA(str ptr long) @@ -9,7 +9,7 @@ 9 stdcall -ordinal SHUnlockShared(ptr) 10 stdcall -ordinal SHFreeShared(long long) 11 stdcall -noname SHMapHandle(long long long long long) -12 stdcall -ordinal SHCreateMemStream(ptr long) +12 stdcall -noname SHCreateMemStream(ptr long) 13 stdcall -noname RegisterDefaultAcceptHeaders(ptr ptr) 14 stdcall -ordinal GetAcceptLanguagesA(ptr ptr) 15 stdcall -ordinal GetAcceptLanguagesW(ptr ptr) @@ -148,10 +148,10 @@ 148 stdcall -noname VkKeyScanWrapW(long) user32.VkKeyScanW 149 stdcall -noname WinHelpWrapW(long wstr long long) user32.WinHelpW 150 stdcall -noname wvsprintfWrapW(ptr wstr ptr) user32.wvsprintfW -151 stdcall -ordinal StrCmpNCA(str ptr long) -152 stdcall -ordinal StrCmpNCW(wstr wstr long) -153 stdcall -ordinal StrCmpNICA(long long long) -154 stdcall -ordinal StrCmpNICW(wstr wstr long) +151 stdcall -noname StrCmpNCA(str ptr long) +152 stdcall -noname StrCmpNCW(wstr wstr long) +153 stdcall -noname StrCmpNICA(long long long) +154 stdcall -noname StrCmpNICW(wstr wstr long) 155 stdcall -ordinal StrCmpCA(str str) 156 stdcall -ordinal StrCmpCW(wstr wstr) 157 stdcall -ordinal StrCmpICA(str str) @@ -165,15 +165,15 @@ 165 stdcall -noname SHSetWindowBits(long long long long) 166 stdcall -noname SHIsEmptyStream(ptr) 167 stdcall -noname SHSetParentHwnd(long ptr) -168 stdcall -ordinal ConnectToConnectionPoint(ptr ptr long ptr ptr ptr) -169 stdcall -ordinal IUnknown_AtomicRelease(long) +168 stdcall -noname ConnectToConnectionPoint(ptr ptr long ptr ptr ptr) +169 stdcall -noname IUnknown_AtomicRelease(long) 170 stdcall -noname PathSkipLeadingSlashesA(str) 171 stdcall -noname SHIsSameObject(ptr ptr) -172 stdcall -ordinal IUnknown_GetWindow(ptr ptr) +172 stdcall -noname IUnknown_GetWindow(ptr ptr) 173 stdcall -noname IUnknown_SetOwner(ptr ptr) -174 stdcall -ordinal IUnknown_SetSite(ptr ptr) +174 stdcall -noname IUnknown_SetSite(ptr ptr) 175 stdcall -noname IUnknown_GetClassID(ptr ptr) -176 stdcall -ordinal IUnknown_QueryService(ptr ptr ptr ptr) +176 stdcall -noname IUnknown_QueryService(ptr ptr ptr ptr) 177 stdcall -noname SHLoadMenuPopup(ptr wstr) 178 stdcall -noname SHPropagateMessage(ptr long long long long) 179 stdcall -noname SHMenuIndexFromID(long long) @@ -181,14 +181,14 @@ 181 stdcall -noname SHEnableMenuItem(long long long) 182 stdcall -noname SHCheckMenuItem(long long long) 183 stdcall -noname SHRegisterClassA(ptr) -184 stdcall -ordinal IStream_Read(ptr ptr long) SHIStream_Read -185 stdcall -ordinal SHMessageBoxCheckA(ptr str str long long str) +184 stdcall -noname IStream_Read(ptr ptr long) SHIStream_Read +185 stdcall -noname SHMessageBoxCheckA(ptr str str long long str) 186 stdcall -noname SHSimulateDrop(ptr ptr long ptr ptr) 187 stdcall -noname SHLoadFromPropertyBag(ptr ptr) 188 stdcall -noname IUnknown_TranslateAcceleratorOCS(ptr ptr long) 189 stdcall -noname IUnknown_OnFocusOCS(ptr ptr) 190 stdcall -noname IUnknown_HandleIRestrict(ptr ptr ptr ptr ptr) -191 stdcall -ordinal SHMessageBoxCheckW(ptr wstr wstr long long wstr) +191 stdcall -noname SHMessageBoxCheckW(ptr wstr wstr long long wstr) 192 stdcall -noname SHGetMenuFromID(ptr long) 193 stdcall -noname SHGetCurColorRes() 194 stdcall -noname SHWaitForSendMessageThread(ptr long) @@ -196,12 +196,12 @@ 196 stdcall -noname SHVerbExistsNA(str ptr ptr long) 197 stdcall -noname SHFillRectClr(long ptr long) 198 stdcall -noname SHSearchMapInt(ptr ptr long long) -199 stdcall -ordinal IUnknown_Set(ptr ptr) +199 stdcall -noname IUnknown_Set(ptr ptr) 200 stdcall -noname MayQSForward(ptr ptr ptr long ptr ptr) 201 stdcall -noname MayExecForward(ptr long ptr long long ptr ptr) 202 stdcall -noname IsQSForward(ptr long ptr) -203 stdcall -ordinal SHStripMneumonicA(str) -204 stdcall -ordinal SHIsChildOrSelf(long long) +203 stdcall -noname SHStripMneumonicA(str) +204 stdcall -noname SHIsChildOrSelf(long long) 205 stdcall -noname SHGetValueGoodBootA(long str str ptr ptr ptr) 206 stdcall -noname SHGetValueGoodBootW(long wstr wstr ptr ptr ptr) 207 stub -noname IContextMenu_Invoke @@ -209,20 +209,20 @@ 209 stdcall -noname FDSA_Destroy(ptr) 210 stdcall -noname FDSA_InsertItem(ptr long ptr) 211 stdcall -noname FDSA_DeleteItem(ptr long) -212 stdcall -ordinal IStream_Write(ptr ptr long) SHIStream_Write -213 stdcall -ordinal IStream_Reset(ptr) -214 stdcall -ordinal IStream_Size(ptr ptr) -215 stdcall -ordinal SHAnsiToUnicode(str ptr long) +212 stdcall -noname IStream_Write(ptr ptr long) SHIStream_Write +213 stdcall -noname IStream_Reset(ptr) +214 stdcall -noname IStream_Size(ptr ptr) +215 stdcall -noname SHAnsiToUnicode(str ptr long) 216 stdcall -noname SHAnsiToUnicodeCP(long str ptr long) -217 stdcall -ordinal SHUnicodeToAnsi(wstr ptr ptr) +217 stdcall -noname SHUnicodeToAnsi(wstr ptr ptr) 218 stdcall -noname SHUnicodeToAnsiCP(long wstr ptr long) -219 stdcall QISearch(long long long long) +219 stdcall -noname QISearch(long long long long) 220 stdcall -noname SHSetDefaultDialogFont(ptr long) 221 stdcall -noname SHRemoveDefaultDialogFont(ptr) 222 stdcall -noname SHGlobalCounterCreate(long) 223 stdcall -noname SHGlobalCounterGetValue(long) 224 stdcall -noname SHGlobalCounterIncrement(long) -225 stdcall -ordinal SHStripMneumonicW(wstr) +225 stdcall -noname SHStripMneumonicW(wstr) 226 stub -noname ZoneCheckPathA 227 stub -noname ZoneCheckPathW 228 stub -noname ZoneCheckUrlA @@ -253,7 +253,7 @@ 253 stub -noname StopWatchExA 254 stub -noname StopWatchExW 255 stub -noname EventTraceHandler -256 stdcall -ordinal IUnknown_GetSite(ptr ptr ptr) +256 stdcall -noname IUnknown_GetSite(ptr ptr ptr) 257 stdcall -noname SHCreateWorkerWindowA(long ptr long long ptr long) 258 stub -noname SHRegisterWaitForSingleObject 259 stub -noname SHUnregisterWait @@ -273,11 +273,11 @@ 273 stub -noname SHTerminateThreadPool 274 stub -noname RegisterGlobalHotkeyW 275 stub -noname RegisterGlobalHotkeyA -276 stdcall -ordinal WhichPlatform() +276 stdcall -noname WhichPlatform() 277 stub -noname SHDialogBox 278 stdcall -noname SHCreateWorkerWindowW(long long long long long long) 279 stdcall -noname SHInvokeDefaultCommand(ptr ptr ptr) -280 stdcall -ordinal SHRegGetIntW(ptr wstr long) +280 stdcall -noname SHRegGetIntW(ptr wstr long) 281 stdcall -noname SHPackDispParamsV(ptr ptr long ptr) 282 varargs -noname SHPackDispParams(ptr ptr long) 283 stdcall -noname IConnectionPoint_InvokeWithCancel(ptr long long long long) @@ -342,16 +342,16 @@ 342 stdcall -noname SHInterlockedCompareExchange(ptr ptr ptr) 343 stdcall -noname SHRegGetCLSIDKeyA(ptr str long long ptr) 344 stdcall -noname SHRegGetCLSIDKeyW(ptr wstr long long ptr) -345 stdcall -ordinal SHAnsiToAnsi(str ptr long) -346 stdcall -ordinal SHUnicodeToUnicode(wstr ptr long) +345 stdcall -noname SHAnsiToAnsi(str ptr long) +346 stdcall -noname SHUnicodeToUnicode(wstr ptr long) 347 stdcall -noname RegDeleteValueWrapW(long wstr) advapi32.RegDeleteValueW 348 stub -noname SHGetFileDescriptionW 349 stub -noname SHGetFileDescriptionA 350 stdcall -noname GetFileVersionInfoSizeWrapW(wstr ptr) 351 stdcall -noname GetFileVersionInfoWrapW(wstr long long ptr) 352 stdcall -noname VerQueryValueWrapW(ptr wstr ptr ptr) -353 stdcall -ordinal SHFormatDateTimeA(ptr ptr str long) -354 stdcall -ordinal SHFormatDateTimeW(ptr ptr wstr long) +353 stdcall -noname SHFormatDateTimeA(ptr ptr str long) +354 stdcall -noname SHFormatDateTimeW(ptr ptr wstr long) 355 stdcall -noname IUnknown_EnableModeless(ptr long) 356 stdcall -noname CreateAllAccessSecurityAttributes(ptr ptr long) 357 stdcall -noname SHGetNewLinkInfoWrapW(wstr wstr wstr long long) @@ -374,8 +374,8 @@ 374 stub -noname SHCheckDiskForMediaA 375 stub -noname SHCheckDiskForMediaW 376 stdcall -noname MLGetUILanguage() kernel32.GetUserDefaultUILanguage -377 stdcall -ordinal MLLoadLibraryA(str long long) -378 stdcall -ordinal MLLoadLibraryW(wstr long long) +377 stdcall -noname MLLoadLibraryA(str long long) +378 stdcall -noname MLLoadLibraryW(wstr long long) 379 stub -noname Shell_GetCachedImageIndexWrapW 380 stub -noname Shell_GetCachedImageIndexWrapA 381 stub -noname AssocCopyVerbs @@ -385,7 +385,7 @@ 385 stub -noname SHLoadRawAccelerators 386 stub -noname SHQueryRawAccelerator 387 stub -noname SHQueryRawAcceleratorMsg -388 varargs -ordinal ShellMessageBoxWrapW(long long wstr wstr long) +388 varargs -noname ShellMessageBoxWrapW(long long wstr wstr long) 389 stdcall -noname GetSaveFileNameWrapW(ptr) 390 stdcall -noname WNetRestoreConnectionWrapW(long wstr) 391 stdcall -noname WNetGetLastErrorWrapW(ptr ptr long ptr long) @@ -415,7 +415,7 @@ 415 stub -noname SHHtmlHelpOnDemandA 416 stdcall -noname SHWinHelpOnDemandW(long wstr long ptr long) 417 stdcall -noname SHWinHelpOnDemandA(long str long ptr long) -418 stdcall -ordinal MLFreeLibrary(long) +418 stdcall -noname MLFreeLibrary(long) 419 stdcall -noname SHFlushSFCacheWrap() 420 stub SHLWAPI_420 # CMemStream::Commit 421 stub -noname SHLoadPersistedDataObject @@ -429,12 +429,12 @@ 429 stdcall -noname MLIsMLHInstance(long) 430 stdcall -noname MLSetMLHInstance(long long) 431 stdcall -noname MLClearMLHInstance(long) -432 stdcall -ordinal SHSendMessageBroadcastA(long long long) -433 stdcall -ordinal SHSendMessageBroadcastW(long long long) +432 stdcall -noname SHSendMessageBroadcastA(long long long) +433 stdcall -noname SHSendMessageBroadcastW(long long long) 434 stdcall -noname SendMessageTimeoutWrapW(long long long long long long ptr) user32.SendMessageTimeoutW 435 stdcall -noname CLSIDFromProgIDWrap(wstr ptr) ole32.CLSIDFromProgID 436 stdcall -noname CLSIDFromStringWrap(wstr ptr) -437 stdcall -ordinal IsOS(long) +437 stdcall -noname IsOS(long) 438 stub -noname SHLoadRegUIStringA 439 stdcall -noname SHLoadRegUIStringW(ptr wstr ptr long) 440 stdcall -noname SHGetWebFolderFilePathA(str ptr long) @@ -459,7 +459,7 @@ 459 stdcall -noname SHExpandEnvironmentStringsA(str ptr long) kernel32.ExpandEnvironmentStringsA 460 stdcall -noname SHExpandEnvironmentStringsW(wstr ptr long) kernel32.ExpandEnvironmentStringsW 461 stdcall -noname SHGetAppCompatFlags(long) -462 stdcall -ordinal UrlFixupW(wstr wstr long) +462 stdcall -noname UrlFixupW(wstr wstr long) 463 stdcall -noname SHExpandEnvironmentStringsForUserA(ptr str ptr long) userenv.ExpandEnvironmentStringsForUserA 464 stdcall -noname SHExpandEnvironmentStringsForUserW(ptr wstr ptr long) userenv.ExpandEnvironmentStringsForUserW 465 stub -noname PathUnExpandEnvStringsForUserA
10 years, 5 months
1
0
0
0
[akhaldi] 63656: [USER32] * Fix uninitialized cases. CID 1223182. Jim please review. CORE-7975
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Jun 28 13:40:52 2014 New Revision: 63656 URL:
http://svn.reactos.org/svn/reactos?rev=63656&view=rev
Log: [USER32] * Fix uninitialized cases. CID 1223182. Jim please review. CORE-7975 Modified: trunk/reactos/win32ss/user/user32/windows/menu.c Modified: trunk/reactos/win32ss/user/user32/windows/menu.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/user32/window…
============================================================================== --- trunk/reactos/win32ss/user/user32/windows/menu.c [iso-8859-1] (original) +++ trunk/reactos/win32ss/user/user32/windows/menu.c [iso-8859-1] Sat Jun 28 13:40:52 2014 @@ -4046,7 +4046,7 @@ */ static BOOL FASTCALL MenuInitTracking(HWND hWnd, HMENU hMenu, BOOL bPopup, UINT wFlags) { - ROSMENUINFO MenuInfo; + ROSMENUINFO MenuInfo = {0}; TRACE("hwnd=%p hmenu=%p\n", hWnd, hMenu);
10 years, 5 months
1
0
0
0
[akhaldi] 63655: [NTVDM] * Fix uninitialized scalar variable. CID 1223183. CORE-7975
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Jun 28 13:19:39 2014 New Revision: 63655 URL:
http://svn.reactos.org/svn/reactos?rev=63655&view=rev
Log: [NTVDM] * Fix uninitialized scalar variable. CID 1223183. CORE-7975 Modified: trunk/reactos/subsystems/ntvdm/dos/dem.c Modified: trunk/reactos/subsystems/ntvdm/dos/dem.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/subsystems/ntvdm/dos/dem.c…
============================================================================== --- trunk/reactos/subsystems/ntvdm/dos/dem.c [iso-8859-1] (original) +++ trunk/reactos/subsystems/ntvdm/dos/dem.c [iso-8859-1] Sat Jun 28 13:19:39 2014 @@ -47,7 +47,7 @@ { case 0x11: // Load the DOS kernel { - BOOLEAN Success; + BOOLEAN Success = FALSE; HANDLE hDosKernel; ULONG ulDosKernelSize = 0;
10 years, 5 months
1
0
0
0
[akhaldi] 63654: [NTOS:CM] * Fix uninitialized pointer read. CID 1223184. CORE-7975
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Jun 28 13:15:05 2014 New Revision: 63654 URL:
http://svn.reactos.org/svn/reactos?rev=63654&view=rev
Log: [NTOS:CM] * Fix uninitialized pointer read. CID 1223184. CORE-7975 Modified: trunk/reactos/ntoskrnl/config/cmapi.c Modified: trunk/reactos/ntoskrnl/config/cmapi.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/config/cmapi.c?re…
============================================================================== --- trunk/reactos/ntoskrnl/config/cmapi.c [iso-8859-1] (original) +++ trunk/reactos/ntoskrnl/config/cmapi.c [iso-8859-1] Sat Jun 28 13:15:05 2014 @@ -2173,7 +2173,8 @@ OUT PHCELL_INDEX DestKeyCell OPTIONAL) { NTSTATUS Status; - PCM_KEY_NODE SrcNode, DestNode; + PCM_KEY_NODE SrcNode; + PCM_KEY_NODE DestNode = NULL; HCELL_INDEX NewKeyCell, SubKey, NewSubKey; ULONG Index, SubKeyCount; PAGED_CODE();
10 years, 5 months
1
0
0
0
[akhaldi] 63653: [CMD] * Plug a leak. CID 1102398. CORE-7975
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Jun 28 09:59:58 2014 New Revision: 63653 URL:
http://svn.reactos.org/svn/reactos?rev=63653&view=rev
Log: [CMD] * Plug a leak. CID 1102398. CORE-7975 Modified: trunk/reactos/base/shell/cmd/cmd.c Modified: trunk/reactos/base/shell/cmd/cmd.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/base/shell/cmd/cmd.c?rev=6…
============================================================================== --- trunk/reactos/base/shell/cmd/cmd.c [iso-8859-1] (original) +++ trunk/reactos/base/shell/cmd/cmd.c [iso-8859-1] Sat Jun 28 09:59:58 2014 @@ -1838,6 +1838,7 @@ if (!GetConsoleScreenBufferInfo(hConsole, &Info)) { ConErrFormatMessage(GetLastError()); + CloseHandle(hConsole); return(1); } wDefColor = Info.wAttributes;
10 years, 5 months
1
0
0
0
[akhaldi] 63652: [SHELL32] * Plug a leak. CID 1206904. CORE-7975
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Jun 28 09:57:09 2014 New Revision: 63652 URL:
http://svn.reactos.org/svn/reactos?rev=63652&view=rev
Log: [SHELL32] * Plug a leak. CID 1206904. CORE-7975 Modified: trunk/reactos/dll/win32/shell32/folders/fonts.cpp Modified: trunk/reactos/dll/win32/shell32/folders/fonts.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/fonts.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/fonts.cpp [iso-8859-1] Sat Jun 28 09:57:09 2014 @@ -609,7 +609,10 @@ { psd->str.pOleStr = (LPWSTR)CoTaskMemAlloc(wcslen(buffer) + 1); if (!psd->str.pOleStr) + { + CloseHandle(hFile); return E_OUTOFMEMORY; + } wcscpy(psd->str.pOleStr, buffer); psd->str.uType = STRRET_WSTR; CloseHandle(hFile);
10 years, 5 months
1
0
0
0
[akhaldi] 63651: [DEVMGR] * Plug a leak. CID 1206903. CORE-7975
by akhaldi@svn.reactos.org
Author: akhaldi Date: Sat Jun 28 09:52:56 2014 New Revision: 63651 URL:
http://svn.reactos.org/svn/reactos?rev=63651&view=rev
Log: [DEVMGR] * Plug a leak. CID 1206903. CORE-7975 Modified: trunk/reactos/dll/win32/devmgr/advprop.c Modified: trunk/reactos/dll/win32/devmgr/advprop.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/devmgr/advprop.c…
============================================================================== --- trunk/reactos/dll/win32/devmgr/advprop.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/devmgr/advprop.c [iso-8859-1] Sat Jun 28 09:52:56 2014 @@ -448,6 +448,7 @@ if (!LookupPrivilegeValueW(NULL, SE_SHUTDOWN_NAME, &Privileges.Privileges[0].Luid)) { DPRINT("LookupPrivilegeValue failed\n"); + CloseHandle(hToken); return; } @@ -458,6 +459,7 @@ if (!AdjustTokenPrivileges(hToken, FALSE, &Privileges, 0, NULL, NULL)) { DPRINT("AdjustTokenPrivileges failed\n"); + CloseHandle(hToken); return; } @@ -465,6 +467,7 @@ if (!ExitWindowsEx(EWX_REBOOT, SHTDN_REASON_MAJOR_OTHER | SHTDN_REASON_MINOR_OTHER | SHTDN_REASON_FLAG_PLANNED)) { DPRINT("ExitWindowsEx failed\n"); + CloseHandle(hToken); } }
10 years, 5 months
1
0
0
0
← Newer
1
2
3
4
5
6
...
16
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Results per page:
10
25
50
100
200