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
September 2016
----- 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
18 participants
342 discussions
Start a n
N
ew thread
[janderwald] 72780: [KS] - fix gcc build
by janderwald@svn.reactos.org
Author: janderwald Date: Fri Sep 23 19:10:44 2016 New Revision: 72780 URL:
http://svn.reactos.org/svn/reactos?rev=72780&view=rev
Log: [KS] - fix gcc build Modified: trunk/reactos/drivers/ksfilter/ks/filterfactory.c Modified: trunk/reactos/drivers/ksfilter/ks/filterfactory.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/ksfilter/ks/filter…
============================================================================== --- trunk/reactos/drivers/ksfilter/ks/filterfactory.c [iso-8859-1] (original) +++ trunk/reactos/drivers/ksfilter/ks/filterfactory.c [iso-8859-1] Fri Sep 23 19:10:44 2016 @@ -250,7 +250,7 @@ DPRINT("out of memory"); return STATUS_INSUFFICIENT_RESOURCES; } - RtlMoveMemory(This->FilterFactory.FilterDescriptor, Descriptor, sizeof(KSFILTER_DESCRIPTOR)); + RtlMoveMemory((PVOID)This->FilterFactory.FilterDescriptor, (PVOID)Descriptor, sizeof(KSFILTER_DESCRIPTOR)); /* initialize filter factory control mutex */ This->Header.ControlMutex = &This->ControlMutex;
8 years, 3 months
1
0
0
0
[janderwald] 72779: [KS] - make a copy of KSFILTER_DESCRIPTOR as it might have been allocated from the stack - always initialize object bag in filter factory
by janderwald@svn.reactos.org
Author: janderwald Date: Fri Sep 23 18:35:15 2016 New Revision: 72779 URL:
http://svn.reactos.org/svn/reactos?rev=72779&view=rev
Log: [KS] - make a copy of KSFILTER_DESCRIPTOR as it might have been allocated from the stack - always initialize object bag in filter factory Modified: trunk/reactos/drivers/ksfilter/ks/filterfactory.c Modified: trunk/reactos/drivers/ksfilter/ks/filterfactory.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/ksfilter/ks/filter…
============================================================================== --- trunk/reactos/drivers/ksfilter/ks/filterfactory.c [iso-8859-1] (original) +++ trunk/reactos/drivers/ksfilter/ks/filterfactory.c [iso-8859-1] Fri Sep 23 18:35:15 2016 @@ -238,11 +238,19 @@ /* initialize filterfactory */ This->SleepCallback = SleepCallback; This->WakeCallback = WakeCallback; - This->FilterFactory.FilterDescriptor = Descriptor; This->Header.KsDevice = &DeviceExtension->DeviceHeader->KsDevice; This->Header.Type = KsObjectTypeFilterFactory; This->Header.Parent.KsDevice = &DeviceExtension->DeviceHeader->KsDevice; This->DeviceHeader = DeviceExtension->DeviceHeader; + + /* copy descriptor */ + This->FilterFactory.FilterDescriptor = AllocateItem(NonPagedPool, sizeof(KSFILTER_DESCRIPTOR)); + if (!This->FilterFactory.FilterDescriptor) + { + DPRINT("out of memory"); + return STATUS_INSUFFICIENT_RESOURCES; + } + RtlMoveMemory(This->FilterFactory.FilterDescriptor, Descriptor, sizeof(KSFILTER_DESCRIPTOR)); /* initialize filter factory control mutex */ This->Header.ControlMutex = &This->ControlMutex; @@ -313,19 +321,19 @@ RtlFreeUnicodeString(&ReferenceString); } + /* create a object bag for the filter factory */ + This->FilterFactory.Bag = AllocateItem(NonPagedPool, sizeof(KSIOBJECT_BAG)); + if (This->FilterFactory.Bag) + { + /* initialize object bag */ + KsDevice = (IKsDevice*)&DeviceExtension->DeviceHeader->BasicHeader.OuterUnknown; + KsDevice->lpVtbl->InitializeObjectBag(KsDevice, (PKSIOBJECT_BAG)This->FilterFactory.Bag, NULL); + } + if (FilterFactory) { /* return filterfactory */ *FilterFactory = &This->FilterFactory; - - /* create a object bag for the filter factory */ - This->FilterFactory.Bag = AllocateItem(NonPagedPool, sizeof(KSIOBJECT_BAG)); - if (This->FilterFactory.Bag) - { - /* initialize object bag */ - KsDevice = (IKsDevice*)&DeviceExtension->DeviceHeader->BasicHeader.OuterUnknown; - KsDevice->lpVtbl->InitializeObjectBag(KsDevice, (PKSIOBJECT_BAG)This->FilterFactory.Bag, NULL); - } } /* attach filterfactory to device header */
8 years, 3 months
1
0
0
0
[gadamopoulos] 72778: [SHELL32] - CPrinterFolder: Use the printer icon for printers not the icon for printers folder.
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Fri Sep 23 15:51:53 2016 New Revision: 72778 URL:
http://svn.reactos.org/svn/reactos?rev=72778&view=rev
Log: [SHELL32] - CPrinterFolder: Use the printer icon for printers not the icon for printers folder. Modified: trunk/reactos/dll/win32/shell32/folders/CPrinterFolder.cpp Modified: trunk/reactos/dll/win32/shell32/folders/CPrinterFolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/folders/…
============================================================================== --- trunk/reactos/dll/win32/shell32/folders/CPrinterFolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/folders/CPrinterFolder.cpp [iso-8859-1] Fri Sep 23 15:51:53 2016 @@ -58,7 +58,7 @@ return NULL; /* FIXME: other icons for default, network, print to file */ - initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_PRINTERS_FOLDER); + initIcon->SetNormalIcon(swShell32Name, -IDI_SHELL_PRINTER); return initIcon->QueryInterface(riid,ppv); }
8 years, 3 months
1
0
0
0
[dchapyshev] 72777: [SETUPAPI] Implement freeing memory in SetupDiDestroyClassImageList function. Based on patch from CircularTriangle06. Thanks! See CORE-11668
by dchapyshev@svn.reactos.org
Author: dchapyshev Date: Thu Sep 22 21:39:25 2016 New Revision: 72777 URL:
http://svn.reactos.org/svn/reactos?rev=72777&view=rev
Log: [SETUPAPI] Implement freeing memory in SetupDiDestroyClassImageList function. Based on patch from CircularTriangle06. Thanks! See CORE-11668 Modified: trunk/reactos/dll/win32/setupapi/devclass.c Modified: trunk/reactos/dll/win32/setupapi/devclass.c URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/setupapi/devclas…
============================================================================== --- trunk/reactos/dll/win32/setupapi/devclass.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/setupapi/devclass.c [iso-8859-1] Thu Sep 22 21:39:25 2016 @@ -101,10 +101,17 @@ SetLastError(ERROR_INVALID_USER_BUFFER); else { - //DestroyIcon() - //ImageList_Destroy(); - FIXME("Stub %p\n", ClassImageListData); - SetLastError(ERROR_CALL_NOT_IMPLEMENTED); + /* If Reserved wasn't NULL, then this is valid too */ + if (ClassImageListData->ImageList) + { + ImageList_Destroy(ClassImageListData->ImageList); + ClassImageListData->ImageList = NULL; + } + + MyFree(list); + ClassImageListData->Reserved = 0; + + ret = TRUE; } TRACE("Returning %d\n", ret);
8 years, 3 months
1
0
0
0
[gadamopoulos] 72776: [SHELL32] - SHCreateDefaultContextMenu: Since our shell folders don't pass the array of class keys needed, populate this array right in SHCreateDefaultContextMenu. This code s...
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Thu Sep 22 21:34:14 2016 New Revision: 72776 URL:
http://svn.reactos.org/svn/reactos?rev=72776&view=rev
Log: [SHELL32] - SHCreateDefaultContextMenu: Since our shell folders don't pass the array of class keys needed, populate this array right in SHCreateDefaultContextMenu. This code should later be moved to the shell folders so as to make CDefaultContextMenu.cpp agnostic to the kind of items it handles. - CDefaultContextMenu: Simplify filling the menu by making use of the array of keys passed in the DEFCONTEXTMENU struct. Modified: trunk/reactos/dll/win32/shell32/CDefaultContextMenu.cpp Modified: trunk/reactos/dll/win32/shell32/CDefaultContextMenu.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CDefault…
============================================================================== --- trunk/reactos/dll/win32/shell32/CDefaultContextMenu.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/CDefaultContextMenu.cpp [iso-8859-1] Thu Sep 22 21:34:14 2016 @@ -29,7 +29,7 @@ typedef struct _StaticShellEntry_ { LPWSTR szVerb; - LPWSTR szClass; + HKEY hkClass; struct _StaticShellEntry_ *pNext; } StaticShellEntry, *PStaticShellEntry; @@ -64,6 +64,8 @@ UINT m_cidl; PCUITEMID_CHILD_ARRAY m_apidl; CComPtr<IDataObject> m_pDataObj; + HKEY* m_aKeys; + UINT m_cKeys; PIDLIST_ABSOLUTE m_pidlFolder; DWORD m_bGroupPolicyActive; PDynamicShellEntry m_pDynamicEntries; /* first dynamic shell extension entry */ @@ -73,9 +75,8 @@ UINT m_iIdSCMFirst; /* first static used id */ UINT m_iIdSCMLast; /* last static used id */ - void AddStaticEntry(LPCWSTR pwszVerb, LPCWSTR pwszClass); - void AddStaticEntryForKey(HKEY hKey, LPCWSTR pwszClass); - void AddStaticEntryForFileClass(LPCWSTR pwszExt); + void AddStaticEntry(const HKEY hkeyClass, const WCHAR *szVerb); + void AddStaticEntriesForKey(HKEY hKey); BOOL IsShellExtensionAlreadyLoaded(const CLSID *pclsid); HRESULT LoadDynamicContextMenuHandler(HKEY hKey, const CLSID *pclsid); BOOL EnumerateDynamicContextHandlerForKey(HKEY hRootKey); @@ -135,6 +136,8 @@ m_cidl(0), m_apidl(NULL), m_pDataObj(NULL), + m_aKeys(NULL), + m_cKeys(NULL), m_pidlFolder(NULL), m_bGroupPolicyActive(0), m_pDynamicEntries(NULL), @@ -163,11 +166,14 @@ while (pStaticEntry) { pNextStatic = pStaticEntry->pNext; - HeapFree(GetProcessHeap(), 0, pStaticEntry->szClass); HeapFree(GetProcessHeap(), 0, pStaticEntry->szVerb); HeapFree(GetProcessHeap(), 0, pStaticEntry); pStaticEntry = pNextStatic; } + + for (UINT i = 0; i < m_cKeys; i++) + RegCloseKey(m_aKeys[i]); + HeapFree(GetProcessHeap(), 0, m_aKeys); if (m_pidlFolder) CoTaskMemFree(m_pidlFolder); @@ -184,6 +190,15 @@ return E_OUTOFMEMORY; m_psf = pdcm->psf; + m_cKeys = pdcm->cKeys; + if (pdcm->cKeys) + { + m_aKeys = (HKEY*)HeapAlloc(GetProcessHeap(), 0, sizeof(HKEY) * pdcm->cKeys); + if (!m_aKeys) + return E_OUTOFMEMORY; + memcpy(m_aKeys, pdcm->aKeys, sizeof(HKEY) * pdcm->cKeys); + } + m_psf->GetUIObjectOf(pdcm->hwnd, m_cidl, m_apidl, IID_NULL_PPV_ARG(IDataObject, &m_pDataObj)); if (pdcm->pidlFolder) @@ -204,8 +219,7 @@ return S_OK; } -void -CDefaultContextMenu::AddStaticEntry(const WCHAR *szVerb, const WCHAR *szClass) +void CDefaultContextMenu::AddStaticEntry(const HKEY hkeyClass, const WCHAR *szVerb) { PStaticShellEntry pEntry = m_pStaticEntries, pLastEntry = NULL; while(pEntry) @@ -219,7 +233,7 @@ pEntry = pEntry->pNext; } - TRACE("adding verb %s szClass %s\n", debugstr_w(szVerb), debugstr_w(szClass)); + TRACE("adding verb %s\n", debugstr_w(szVerb)); pEntry = (StaticShellEntry *)HeapAlloc(GetProcessHeap(), 0, sizeof(StaticShellEntry)); if (pEntry) @@ -228,9 +242,7 @@ pEntry->szVerb = (LPWSTR)HeapAlloc(GetProcessHeap(), 0, (wcslen(szVerb) + 1) * sizeof(WCHAR)); if (pEntry->szVerb) wcscpy(pEntry->szVerb, szVerb); - pEntry->szClass = (LPWSTR)HeapAlloc(GetProcessHeap(), 0, (wcslen(szClass) + 1) * sizeof(WCHAR)); - if (pEntry->szClass) - wcscpy(pEntry->szClass, szClass); + pEntry->hkClass = hkeyClass; } if (!wcsicmp(szVerb, L"open")) @@ -245,88 +257,26 @@ m_pStaticEntries = pEntry; } -void -CDefaultContextMenu::AddStaticEntryForKey(HKEY hKey, const WCHAR *pwszClass) +void CDefaultContextMenu::AddStaticEntriesForKey(HKEY hKey) { WCHAR wszName[40]; DWORD cchName, dwIndex = 0; - - TRACE("AddStaticEntryForKey %x %ls\n", hKey, pwszClass); + HKEY hShellKey; + + LRESULT lres = RegOpenKeyExW(hKey, L"shell", 0, KEY_READ, &hShellKey); + if (lres != STATUS_SUCCESS) + return; while(TRUE) { cchName = _countof(wszName); - if (RegEnumKeyExW(hKey, dwIndex++, wszName, &cchName, NULL, NULL, NULL, NULL) != ERROR_SUCCESS) + if (RegEnumKeyExW(hShellKey, dwIndex++, wszName, &cchName, NULL, NULL, NULL, NULL) != ERROR_SUCCESS) break; - AddStaticEntry(wszName, pwszClass); - } -} - -void -CDefaultContextMenu::AddStaticEntryForFileClass(const WCHAR * szExt) -{ - WCHAR szBuffer[100]; - HKEY hKey; - LONG result; - DWORD dwBuffer; - UINT Length; - static WCHAR szShell[] = L"\\shell"; - static WCHAR szShellAssoc[] = L"SystemFileAssociations\\"; - - TRACE("AddStaticEntryForFileClass entered with %s\n", debugstr_w(szExt)); - - Length = wcslen(szExt); - if (Length + (sizeof(szShell) / sizeof(WCHAR)) + 1 < sizeof(szBuffer) / sizeof(WCHAR)) - { - wcscpy(szBuffer, szExt); - wcscpy(&szBuffer[Length], szShell); - result = RegOpenKeyExW(HKEY_CLASSES_ROOT, szBuffer, 0, KEY_READ | KEY_QUERY_VALUE, &hKey); - if (result == ERROR_SUCCESS) - { - szBuffer[Length] = 0; - AddStaticEntryForKey(hKey, szExt); - RegCloseKey(hKey); - } - } - - dwBuffer = sizeof(szBuffer); - result = RegGetValueW(HKEY_CLASSES_ROOT, szExt, NULL, RRF_RT_REG_SZ, NULL, (LPBYTE)szBuffer, &dwBuffer); - if (result == ERROR_SUCCESS) - { - Length = wcslen(szBuffer); - if (Length + (sizeof(szShell) / sizeof(WCHAR)) + 1 < sizeof(szBuffer) / sizeof(WCHAR)) - { - wcscpy(&szBuffer[Length], szShell); - TRACE("szBuffer %s\n", debugstr_w(szBuffer)); - - result = RegOpenKeyExW(HKEY_CLASSES_ROOT, szBuffer, 0, KEY_READ | KEY_QUERY_VALUE, &hKey); - if (result == ERROR_SUCCESS) - { - szBuffer[Length] = 0; - AddStaticEntryForKey(hKey, szBuffer); - RegCloseKey(hKey); - } - } - } - - wcscpy(szBuffer, szShellAssoc); - dwBuffer = sizeof(szBuffer) - sizeof(szShellAssoc) - sizeof(WCHAR); - result = RegGetValueW(HKEY_CLASSES_ROOT, szExt, L"PerceivedType", RRF_RT_REG_SZ, NULL, (LPBYTE)&szBuffer[_countof(szShellAssoc) - 1], &dwBuffer); - if (result == ERROR_SUCCESS) - { - Length = wcslen(&szBuffer[_countof(szShellAssoc)]) + _countof(szShellAssoc); - wcscat(szBuffer, L"\\shell"); - TRACE("szBuffer %s\n", debugstr_w(szBuffer)); - - result = RegOpenKeyExW(HKEY_CLASSES_ROOT, szBuffer, 0, KEY_READ | KEY_QUERY_VALUE, &hKey); - if (result == ERROR_SUCCESS) - { - szBuffer[Length] = 0; - AddStaticEntryForKey(hKey, szBuffer); - RegCloseKey(hKey); - } - } + AddStaticEntry(hKey, wszName); + } + + RegCloseKey(hShellKey); } static @@ -672,13 +622,13 @@ else { WCHAR wszKey[256]; - HRESULT hr = StringCbPrintfW(wszKey, sizeof(wszKey), L"%s\\shell\\%s", pEntry->szClass, pEntry->szVerb); + HRESULT hr = StringCbPrintfW(wszKey, sizeof(wszKey), L"shell\\%s", pEntry->szVerb); if (SUCCEEDED(hr)) { HKEY hkVerb; DWORD cbVerb = sizeof(wszVerb); - LONG res = RegOpenKeyW(HKEY_CLASSES_ROOT, wszKey, &hkVerb); + LONG res = RegOpenKeyW(pEntry->hkClass, wszKey, &hkVerb); if (res == ERROR_SUCCESS) { res = RegLoadMUIStringW(hkVerb, @@ -757,85 +707,15 @@ UINT iIdCmdLast, UINT uFlags) { - HKEY hKey; HRESULT hr; TRACE("BuildShellItemContextMenu entered\n"); ASSERT(m_cidl >= 1); - STRRET strFile; - hr = m_psf->GetDisplayNameOf(m_apidl[0], SHGDN_FORPARSING, &strFile); - if (hr == S_OK) - { - WCHAR wszPath[MAX_PATH]; - hr = StrRetToBufW(&strFile, m_apidl[0], wszPath, _countof(wszPath)); - if (hr == S_OK) - { - LPCWSTR pwszExt = PathFindExtensionW(wszPath); - if (pwszExt[0]) - { - /* enumerate dynamic/static for a given file class */ - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, pwszExt, 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - /* add static verbs */ - AddStaticEntryForFileClass(pwszExt); - - /* load dynamic extensions from file extension key */ - EnumerateDynamicContextHandlerForKey(hKey); - RegCloseKey(hKey); - } - - WCHAR wszTemp[40]; - DWORD dwSize = sizeof(wszTemp); - if (RegGetValueW(HKEY_CLASSES_ROOT, pwszExt, NULL, RRF_RT_REG_SZ, NULL, wszTemp, &dwSize) == ERROR_SUCCESS) - { - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, wszTemp, 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - /* add static verbs from progid key */ - AddStaticEntryForFileClass(wszTemp); - - /* load dynamic extensions from progid key */ - EnumerateDynamicContextHandlerForKey(hKey); - RegCloseKey(hKey); - } - } - } - } - } - else - ERR("GetDisplayNameOf failed: %x\n", hr); - - GUID *pGuid = _ILGetGUIDPointer(m_apidl[0]); - if (pGuid) - { - LPOLESTR pwszCLSID; - WCHAR buffer[60]; - - wcscpy(buffer, L"CLSID\\"); - hr = StringFromCLSID(*pGuid, &pwszCLSID); - if (hr == S_OK) - { - wcscpy(&buffer[6], pwszCLSID); - TRACE("buffer %s\n", debugstr_w(buffer)); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, buffer, 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(hKey); - AddStaticEntryForFileClass(buffer); - RegCloseKey(hKey); - } - CoTaskMemFree(pwszCLSID); - } - } - - if (_ILIsDrive(m_apidl[0])) - { - AddStaticEntryForFileClass(L"Drive"); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"Drive", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(hKey); - RegCloseKey(hKey); - } - + for (UINT i = 0; i < m_cKeys; i++) + { + AddStaticEntriesForKey(m_aKeys[i]); + EnumerateDynamicContextHandlerForKey(m_aKeys[i]); } /* add static actions */ @@ -845,48 +725,6 @@ { ERR("GetAttributesOf failed: %x\n", hr); rfg = 0; - } - - if (rfg & SFGAO_FOLDER) - { - /* add the default verbs open / explore */ - AddStaticEntryForFileClass(L"Folder"); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"Folder", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(hKey); - RegCloseKey(hKey); - } - - /* Directory is only loaded for real filesystem directories */ - if (rfg & SFGAO_FILESYSTEM) - { - AddStaticEntryForFileClass(L"Directory"); - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"Directory", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(hKey); - RegCloseKey(hKey); - } - } - } - - /* AllFilesystemObjects class is loaded only for files and directories */ - if (rfg & SFGAO_FILESYSTEM) - { - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"AllFilesystemObjects", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - /* sendto service is registered here */ - EnumerateDynamicContextHandlerForKey(hKey); - RegCloseKey(hKey); - } - - if (!(rfg & SFGAO_FOLDER)) - { - if (RegOpenKeyExW(HKEY_CLASSES_ROOT, L"*", 0, KEY_READ, &hKey) == ERROR_SUCCESS) - { - EnumerateDynamicContextHandlerForKey(hKey); - RegCloseKey(hKey); - } - } } /* add static context menu handlers */ @@ -1398,12 +1236,12 @@ FlagsName = L"BrowserFlags"; /* Try to get the flag from the verb */ - hr = StringCbPrintfW(wszKey, sizeof(wszKey), L"%s\\shell\\%s", pEntry->szClass, pEntry->szVerb); + hr = StringCbPrintfW(wszKey, sizeof(wszKey), L"shell\\%s", pEntry->szVerb); if (!SUCCEEDED(hr)) return 0; cbVerb = sizeof(wFlags); - if (RegGetValueW(HKEY_CLASSES_ROOT, wszKey, FlagsName, RRF_RT_REG_DWORD, NULL, &wFlags, &cbVerb) == ERROR_SUCCESS) + if (RegGetValueW(pEntry->hkClass, wszKey, FlagsName, RRF_RT_REG_DWORD, NULL, &wFlags, &cbVerb) == ERROR_SUCCESS) { return wFlags; } @@ -1451,9 +1289,6 @@ { SHGetPathFromIDListW(m_pidlFolder, wszDir); } - - HKEY hkeyClass; - RegOpenKeyExW(HKEY_CLASSES_ROOT, pEntry->szClass, 0, KEY_READ, &hkeyClass); SHELLEXECUTEINFOW sei; ZeroMemory(&sei, sizeof(sei)); @@ -1463,7 +1298,7 @@ sei.lpVerb = pEntry->szVerb; sei.lpDirectory = wszDir; sei.lpIDList = pidlFull; - sei.hkeyClass = hkeyClass; + sei.hkeyClass = pEntry->hkClass; sei.fMask = SEE_MASK_CLASSKEY | SEE_MASK_IDLIST; if (bHasPath) { @@ -1471,8 +1306,6 @@ } ShellExecuteExW(&sei); - - RegCloseKey(hkeyClass); ILFree(pidlFull); @@ -1748,10 +1581,96 @@ * */ +static void AddClassKey(const WCHAR * szClass, HKEY* buffer, UINT* cKeys) +{ + LSTATUS result; + HKEY hkey; + result = RegOpenKeyExW(HKEY_CLASSES_ROOT, szClass, 0, KEY_READ | KEY_QUERY_VALUE, &hkey); + if (result != ERROR_SUCCESS) + return; + + buffer[*cKeys] = hkey; + *cKeys +=1; +} + +void HackFillKeys(DEFCONTEXTMENU *pdcm, HKEY* buffer) +{ + PCUITEMID_CHILD pidl = pdcm->apidl[0]; + pdcm->cKeys = 0; + pdcm->aKeys = buffer; + + if (_ILIsValue(pidl)) + { + FileStructW* pFileData = _ILGetFileStructW(pidl); + LPWSTR extension = PathFindExtension(pFileData->wszName); + + if (extension) + { + AddClassKey(extension, buffer, &pdcm->cKeys); + + WCHAR wszClass[40], wszClass2[40]; + DWORD dwSize = sizeof(wszClass); + if (RegGetValueW(HKEY_CLASSES_ROOT, extension, NULL, RRF_RT_REG_SZ, NULL, wszClass, &dwSize) == ERROR_SUCCESS) + { + swprintf(wszClass2, L"%s//%s", extension, wszClass); + + AddClassKey(wszClass, buffer, &pdcm->cKeys); + AddClassKey(wszClass2, buffer, &pdcm->cKeys); + } + + swprintf(wszClass2, L"SystemFileAssociations//%s", extension); + AddClassKey(wszClass2, buffer, &pdcm->cKeys); + + if (RegGetValueW(HKEY_CLASSES_ROOT, extension, L"PerceivedType ", RRF_RT_REG_SZ, NULL, wszClass, &dwSize) == ERROR_SUCCESS) + { + swprintf(wszClass2, L"SystemFileAssociations//%s", wszClass); + AddClassKey(wszClass2, buffer, &pdcm->cKeys); + } + } + + AddClassKey(L"AllFilesystemObjects", buffer, &pdcm->cKeys); + AddClassKey(L"*", buffer, &pdcm->cKeys); + } + else if (_ILIsSpecialFolder(pidl)) + { + GUID *pGuid = _ILGetGUIDPointer(pidl); + if (pGuid) + { + LPOLESTR pwszCLSID; + WCHAR key[60]; + + wcscpy(key, L"CLSID\\"); + HRESULT hr = StringFromCLSID(*pGuid, &pwszCLSID); + if (hr == S_OK) + { + wcscpy(&key[6], pwszCLSID); + AddClassKey(key, buffer, &pdcm->cKeys); + } + } + AddClassKey(L"Folder", buffer, &pdcm->cKeys); + } + else if (_ILIsFolder(pidl)) + { + AddClassKey(L"AllFilesystemObjects", buffer, &pdcm->cKeys); + AddClassKey(L"Directory", buffer, &pdcm->cKeys); + AddClassKey(L"Folder", buffer, &pdcm->cKeys); + } + else if (_ILIsDrive(pidl)) + { + AddClassKey(L"Drive", buffer, &pdcm->cKeys); + AddClassKey(L"Folder", buffer, &pdcm->cKeys); + } +} + HRESULT WINAPI SHCreateDefaultContextMenu(const DEFCONTEXTMENU *pdcm, REFIID riid, void **ppv) { + /* HACK: move to the shell folders implementation */ + HKEY hkeyHack[16]; + if (!pdcm->aKeys && pdcm->cidl) + HackFillKeys((DEFCONTEXTMENU *)pdcm, hkeyHack); + return CDefaultContextMenu_CreateInstance(pdcm, riid, ppv); }
8 years, 3 months
1
0
0
0
[gadamopoulos] 72775: [SHELL32] - CDefaultContextMenu: Simplify some really superfluous code and add more checks for bogus parameters. Create the data object using GetUIObjectOf instead of SHCreate...
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Thu Sep 22 19:54:15 2016 New Revision: 72775 URL:
http://svn.reactos.org/svn/reactos?rev=72775&view=rev
Log: [SHELL32] - CDefaultContextMenu: Simplify some really superfluous code and add more checks for bogus parameters. Create the data object using GetUIObjectOf instead of SHCreateDataObject. Each sell folder should be able to use its own special data object. Modified: trunk/reactos/dll/win32/shell32/CDefaultContextMenu.cpp Modified: trunk/reactos/dll/win32/shell32/CDefaultContextMenu.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/CDefault…
============================================================================== --- trunk/reactos/dll/win32/shell32/CDefaultContextMenu.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/CDefaultContextMenu.cpp [iso-8859-1] Thu Sep 22 19:54:15 2016 @@ -176,8 +176,6 @@ HRESULT WINAPI CDefaultContextMenu::Initialize(const DEFCONTEXTMENU *pdcm) { - CComPtr<IDataObject> pDataObj; - TRACE("cidl %u\n", pdcm->cidl); m_cidl = pdcm->cidl; @@ -186,8 +184,7 @@ return E_OUTOFMEMORY; m_psf = pdcm->psf; - if (SUCCEEDED(SHCreateDataObject(pdcm->pidlFolder, pdcm->cidl, pdcm->apidl, NULL, IID_PPV_ARG(IDataObject, &pDataObj)))) - m_pDataObj = pDataObj; + m_psf->GetUIObjectOf(pdcm->hwnd, m_cidl, m_apidl, IID_NULL_PPV_ARG(IDataObject, &m_pDataObj)); if (pdcm->pidlFolder) { @@ -399,26 +396,17 @@ CComPtr<IContextMenu> pcm; hr = SHCoCreateInstance(NULL, pclsid, NULL, IID_PPV_ARG(IContextMenu, &pcm)); - if (hr != S_OK) - { - ERR("SHCoCreateInstance failed %x\n", GetLastError()); + if (FAILED_UNEXPECTEDLY(hr)) return hr; - } CComPtr<IShellExtInit> pExtInit; hr = pcm->QueryInterface(IID_PPV_ARG(IShellExtInit, &pExtInit)); - if (hr != S_OK) - { - ERR("Failed to query for interface IID_IShellExtInit hr %x pclsid %s\n", hr, wine_dbgstr_guid(pclsid)); + if (FAILED_UNEXPECTEDLY(hr)) return hr; - } hr = pExtInit->Initialize(m_pidlFolder, m_pDataObj, hKey); - if (hr != S_OK) - { - TRACE("Failed to initialize shell extension error %x pclsid %s\n", hr, wine_dbgstr_guid(pclsid)); + if (FAILED_UNEXPECTEDLY(hr)) return hr; - } PDynamicShellEntry pEntry = (DynamicShellEntry *)HeapAlloc(GetProcessHeap(), 0, sizeof(DynamicShellEntry)); if (!pEntry) @@ -997,15 +985,12 @@ HRESULT CDefaultContextMenu::NotifyShellViewWindow(LPCMINVOKECOMMANDINFO lpcmi, BOOL bRefresh) { - CComPtr<IShellView> psv; - - HRESULT hr; - if (!m_site) return E_FAIL; /* Get a pointer to the shell browser */ - hr = IUnknown_QueryService(m_site, SID_IFolderView, IID_PPV_ARG(IShellView, &psv)); + CComPtr<IShellView> psv; + HRESULT hr = IUnknown_QueryService(m_site, SID_IFolderView, IID_PPV_ARG(IShellView, &psv)); if (FAILED_UNEXPECTEDLY(hr)) return hr; @@ -1015,13 +1000,12 @@ return S_OK; } -HRESULT -CDefaultContextMenu::DoRefresh( - LPCMINVOKECOMMANDINFO lpcmi) + +HRESULT CDefaultContextMenu::DoRefresh(LPCMINVOKECOMMANDINFO lpcmi) { if (!m_site) return E_FAIL; - + /* Get a pointer to the shell view */ CComPtr<IShellView> psv; HRESULT hr = IUnknown_QueryService(m_site, SID_IFolderView, IID_PPV_ARG(IShellView, &psv)); @@ -1031,62 +1015,14 @@ return psv->Refresh(); } -HRESULT -CDefaultContextMenu::DoPaste( - LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink) +HRESULT CDefaultContextMenu::DoPaste(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink) { HRESULT hr; CComPtr<IDataObject> pda; hr = OleGetClipboard(&pda); - if (FAILED(hr)) + if (FAILED_UNEXPECTEDLY(hr)) return hr; - - CComPtr<IShellFolder> psfDesktop; - CComPtr<IShellFolder> psfTarget = NULL; - - hr = SHGetDesktopFolder(&psfDesktop); - if (FAILED(hr)) - return hr; - - /* Find target folder */ - if (m_cidl) - { - hr = m_psf->BindToObject(m_apidl[0], NULL, IID_PPV_ARG(IShellFolder, &psfTarget)); - } - else - { - CComPtr<IPersistFolder2> ppf2 = NULL; - LPITEMIDLIST pidl; - - /* cidl is zero due to explorer view */ - hr = m_psf->QueryInterface(IID_PPV_ARG(IPersistFolder2, &ppf2)); - if (SUCCEEDED(hr)) - { - hr = ppf2->GetCurFolder(&pidl); - if (SUCCEEDED(hr)) - { - if (_ILIsDesktop(pidl)) - { - /* use desktop shellfolder */ - psfTarget = psfDesktop; - } - else - { - /* retrieve target desktop folder */ - hr = psfDesktop->BindToObject(pidl, NULL, IID_PPV_ARG(IShellFolder, &psfTarget)); - } - TRACE("psfTarget %x %p, Desktop %u\n", hr, psfTarget.p, _ILIsDesktop(pidl)); - ILFree(pidl); - } - } - } - - if (FAILED(hr)) - { - ERR("no IShellFolder\n"); - return hr; - } FORMATETC formatetc2; STGMEDIUM medium2; @@ -1116,12 +1052,13 @@ } CComPtr<IDropTarget> pdrop; - hr = psfTarget->CreateViewObject(NULL, IID_PPV_ARG(IDropTarget, &pdrop)); - if (FAILED(hr)) - { - ERR("Error getting IDropTarget interface\n"); + if (m_cidl) + hr = m_psf->GetUIObjectOf(NULL, 1, &m_apidl[0], IID_NULL_PPV_ARG(IDropTarget, &pdrop)); + else + hr = m_psf->CreateViewObject(NULL, IID_PPV_ARG(IDropTarget, &pdrop)); + + if (FAILED_UNEXPECTEDLY(hr)) return hr; - } SHSimulateDrop(pdrop, pda, dwKey, NULL, NULL); @@ -1130,128 +1067,69 @@ } HRESULT -CDefaultContextMenu::DoOpenOrExplore( - LPCMINVOKECOMMANDINFO lpcmi) +CDefaultContextMenu::DoOpenOrExplore(LPCMINVOKECOMMANDINFO lpcmi) { UNIMPLEMENTED; return E_FAIL; } -HRESULT -CDefaultContextMenu::DoCreateLink( - LPCMINVOKECOMMANDINFO lpcmi) -{ - CComPtr<IDataObject> pDataObj; +HRESULT CDefaultContextMenu::DoCreateLink(LPCMINVOKECOMMANDINFO lpcmi) +{ + if (!m_cidl || !m_pDataObj) + return E_FAIL; + CComPtr<IDropTarget> pDT; - HRESULT hr; - CComPtr<IPersistFolder2> ppf2 = NULL; - LPITEMIDLIST pidl; - CComPtr<IShellFolder> psfDesktop; - CComPtr<IShellFolder> psfTarget = NULL; - - hr = SHGetDesktopFolder(&psfDesktop); - if (FAILED(hr)) + HRESULT hr = m_psf->CreateViewObject(NULL, IID_PPV_ARG(IDropTarget, &pDT)); + if (FAILED_UNEXPECTEDLY(hr)) return hr; - if (SUCCEEDED(hr = SHCreateDataObject(m_pidlFolder, m_cidl, m_apidl, NULL, IID_PPV_ARG(IDataObject, &pDataObj)))) - { - hr = m_psf->QueryInterface(IID_PPV_ARG(IPersistFolder2, &ppf2)); - if (SUCCEEDED(hr)) - { - hr = ppf2->GetCurFolder(&pidl); - if (SUCCEEDED(hr)) - { - if (_ILIsDesktop(pidl)) - { - /* use desktop shellfolder */ - psfTarget = psfDesktop; - } - else - { - /* retrieve target desktop folder */ - hr = psfDesktop->BindToObject(pidl, NULL, IID_PPV_ARG(IShellFolder, &psfTarget)); - } - TRACE("psfTarget %x %p, Desktop %u\n", hr, psfTarget.p, _ILIsDesktop(pidl)); - ILFree(pidl); - } - } - - } - - if (FAILED(hr)) - { - ERR("no IShellFolder\n"); - return hr; - } - - hr = psfTarget->CreateViewObject(NULL, IID_PPV_ARG(IDropTarget, &pDT)); - if (FAILED(hr)) - { - ERR("no IDropTarget Interface\n"); - return hr; - } - SHSimulateDrop(pDT, pDataObj, MK_CONTROL|MK_SHIFT, NULL, NULL); + SHSimulateDrop(pDT, m_pDataObj, MK_CONTROL|MK_SHIFT, NULL, NULL); return S_OK; } HRESULT CDefaultContextMenu::DoDelete(LPCMINVOKECOMMANDINFO lpcmi) { + if (!m_cidl || !m_pDataObj) + return E_FAIL; + DoDeleteAsync(m_pDataObj, lpcmi->fMask); return S_OK; } -HRESULT -CDefaultContextMenu::DoCopyOrCut( - LPCMINVOKECOMMANDINFO lpcmi, - BOOL bCopy) -{ - CComPtr<IDataObject> pDataObj; - HRESULT hr; - - hr = SHCreateDataObject(m_pidlFolder, m_cidl, m_apidl, NULL, IID_PPV_ARG(IDataObject, &pDataObj)); - if (FAILED_UNEXPECTEDLY(hr)) - return hr; +HRESULT CDefaultContextMenu::DoCopyOrCut(LPCMINVOKECOMMANDINFO lpcmi, BOOL bCopy) +{ + if (!m_cidl || !m_pDataObj) + return E_FAIL; if (!bCopy) { FORMATETC formatetc; STGMEDIUM medium; InitFormatEtc(formatetc, RegisterClipboardFormatW(CFSTR_PREFERREDDROPEFFECT), TYMED_HGLOBAL); - pDataObj->GetData(&formatetc, &medium); + m_pDataObj->GetData(&formatetc, &medium); DWORD * pdwFlag = (DWORD*)GlobalLock(medium.hGlobal); if (pdwFlag) *pdwFlag = DROPEFFECT_MOVE; GlobalUnlock(medium.hGlobal); - pDataObj->SetData(&formatetc, &medium, TRUE); - } - - return OleSetClipboard(pDataObj); -} - -HRESULT -CDefaultContextMenu::DoRename( - LPCMINVOKECOMMANDINFO lpcmi) + m_pDataObj->SetData(&formatetc, &medium, TRUE); + } + + return OleSetClipboard(m_pDataObj); +} + +HRESULT CDefaultContextMenu::DoRename(LPCMINVOKECOMMANDINFO lpcmi) { CComPtr<IShellBrowser> psb; HRESULT hr; - if (!m_site) + if (!m_site || !m_cidl) return E_FAIL; /* Get a pointer to the shell browser */ hr = IUnknown_QueryService(m_site, SID_IShellBrowser, IID_PPV_ARG(IShellBrowser, &psb)); if (FAILED_UNEXPECTEDLY(hr)) return hr; - - /* is the treeview focused */ - HWND hwnd; - if (SUCCEEDED(psb->GetControlWindow(FCW_TREE, &hwnd))) - { - HTREEITEM hItem = TreeView_GetSelection(hwnd); - if (hItem) - (void)TreeView_EditLabel(hwnd, hItem); - } CComPtr<IShellView> lpSV; hr = psb->QueryActiveShellView(&lpSV);
8 years, 3 months
1
0
0
0
[dchapyshev] 72774: [NLS] Add 1146 and 21025 code pages
by dchapyshev@svn.reactos.org
Author: dchapyshev Date: Thu Sep 22 18:16:30 2016 New Revision: 72774 URL:
http://svn.reactos.org/svn/reactos?rev=72774&view=rev
Log: [NLS] Add 1146 and 21025 code pages Added: trunk/reactos/media/nls/c_1146.nls (with props) trunk/reactos/media/nls/c_21025.nls (with props) Added: trunk/reactos/media/nls/c_1146.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1146.nls?rev=7…
============================================================================== Binary file - no diff available. Propchange: trunk/reactos/media/nls/c_1146.nls ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Added: trunk/reactos/media/nls/c_21025.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_21025.nls?rev=…
============================================================================== Binary file - no diff available. Propchange: trunk/reactos/media/nls/c_21025.nls ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream
8 years, 3 months
1
0
0
0
[dchapyshev] 72773: [NLS] Add missed code pages
by dchapyshev@svn.reactos.org
Author: dchapyshev Date: Thu Sep 22 18:14:07 2016 New Revision: 72773 URL:
http://svn.reactos.org/svn/reactos?rev=72773&view=rev
Log: [NLS] Add missed code pages Added: trunk/reactos/media/nls/c_10004.nls (with props) trunk/reactos/media/nls/c_10005.nls (with props) trunk/reactos/media/nls/c_10010.nls (with props) trunk/reactos/media/nls/c_10017.nls (with props) trunk/reactos/media/nls/c_10021.nls (with props) trunk/reactos/media/nls/c_10082.nls (with props) trunk/reactos/media/nls/c_1047.nls (with props) trunk/reactos/media/nls/c_1140.nls (with props) trunk/reactos/media/nls/c_1141.nls (with props) trunk/reactos/media/nls/c_1142.nls (with props) trunk/reactos/media/nls/c_1143.nls (with props) trunk/reactos/media/nls/c_1144.nls (with props) trunk/reactos/media/nls/c_1145.nls (with props) trunk/reactos/media/nls/c_1147.nls (with props) trunk/reactos/media/nls/c_1148.nls (with props) trunk/reactos/media/nls/c_1149.nls (with props) trunk/reactos/media/nls/c_20105.nls (with props) trunk/reactos/media/nls/c_20106.nls (with props) trunk/reactos/media/nls/c_20107.nls (with props) trunk/reactos/media/nls/c_20108.nls (with props) trunk/reactos/media/nls/c_20269.nls (with props) trunk/reactos/media/nls/c_20273.nls (with props) trunk/reactos/media/nls/c_20277.nls (with props) trunk/reactos/media/nls/c_20278.nls (with props) trunk/reactos/media/nls/c_20280.nls (with props) trunk/reactos/media/nls/c_20284.nls (with props) trunk/reactos/media/nls/c_20285.nls (with props) trunk/reactos/media/nls/c_20290.nls (with props) trunk/reactos/media/nls/c_20297.nls (with props) trunk/reactos/media/nls/c_20420.nls (with props) trunk/reactos/media/nls/c_20423.nls (with props) trunk/reactos/media/nls/c_20424.nls (with props) trunk/reactos/media/nls/c_20833.nls (with props) trunk/reactos/media/nls/c_20838.nls (with props) trunk/reactos/media/nls/c_20871.nls (with props) trunk/reactos/media/nls/c_20880.nls (with props) trunk/reactos/media/nls/c_20905.nls (with props) trunk/reactos/media/nls/c_20924.nls (with props) trunk/reactos/media/nls/c_21027.nls (with props) trunk/reactos/media/nls/c_708.nls (with props) trunk/reactos/media/nls/c_720.nls (with props) trunk/reactos/media/nls/c_858.nls (with props) trunk/reactos/media/nls/c_870.nls (with props) trunk/reactos/media/nls/src/c_10004.txt (with props) trunk/reactos/media/nls/src/c_10005.txt (with props) trunk/reactos/media/nls/src/c_10010.txt (with props) trunk/reactos/media/nls/src/c_10017.txt (with props) trunk/reactos/media/nls/src/c_10021.txt (with props) trunk/reactos/media/nls/src/c_10082.txt (with props) trunk/reactos/media/nls/src/c_1047.txt (with props) trunk/reactos/media/nls/src/c_1140.txt (with props) trunk/reactos/media/nls/src/c_1141.txt (with props) trunk/reactos/media/nls/src/c_1142.txt (with props) trunk/reactos/media/nls/src/c_1143.txt (with props) trunk/reactos/media/nls/src/c_1144.txt (with props) trunk/reactos/media/nls/src/c_1145.txt (with props) trunk/reactos/media/nls/src/c_1146.txt (with props) trunk/reactos/media/nls/src/c_1147.txt (with props) trunk/reactos/media/nls/src/c_1148.txt (with props) trunk/reactos/media/nls/src/c_1149.txt (with props) trunk/reactos/media/nls/src/c_20105.txt (with props) trunk/reactos/media/nls/src/c_20106.txt (with props) trunk/reactos/media/nls/src/c_20107.txt (with props) trunk/reactos/media/nls/src/c_20108.txt (with props) trunk/reactos/media/nls/src/c_20269.txt (with props) trunk/reactos/media/nls/src/c_20273.txt (with props) trunk/reactos/media/nls/src/c_20277.txt (with props) trunk/reactos/media/nls/src/c_20278.txt (with props) trunk/reactos/media/nls/src/c_20280.txt (with props) trunk/reactos/media/nls/src/c_20284.txt (with props) trunk/reactos/media/nls/src/c_20285.txt (with props) trunk/reactos/media/nls/src/c_20290.txt (with props) trunk/reactos/media/nls/src/c_20297.txt (with props) trunk/reactos/media/nls/src/c_20420.txt (with props) trunk/reactos/media/nls/src/c_20423.txt (with props) trunk/reactos/media/nls/src/c_20424.txt (with props) trunk/reactos/media/nls/src/c_20833.txt (with props) trunk/reactos/media/nls/src/c_20838.txt (with props) trunk/reactos/media/nls/src/c_20871.txt (with props) trunk/reactos/media/nls/src/c_20880.txt (with props) trunk/reactos/media/nls/src/c_20905.txt (with props) trunk/reactos/media/nls/src/c_20924.txt (with props) trunk/reactos/media/nls/src/c_21025.txt (with props) trunk/reactos/media/nls/src/c_21027.txt (with props) trunk/reactos/media/nls/src/c_708.txt (with props) trunk/reactos/media/nls/src/c_720.txt (with props) trunk/reactos/media/nls/src/c_858.txt (with props) trunk/reactos/media/nls/src/c_870.txt (with props) Modified: trunk/reactos/boot/bootdata/hivesys.inf trunk/reactos/media/nls/CMakeLists.txt [This mail would be too long, it was shortened to contain the URLs only.] Modified: trunk/reactos/boot/bootdata/hivesys.inf URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivesys.inf?…
Modified: trunk/reactos/media/nls/CMakeLists.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/CMakeLists.txt?r…
Added: trunk/reactos/media/nls/c_10004.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_10004.nls?rev=…
Added: trunk/reactos/media/nls/c_10005.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_10005.nls?rev=…
Added: trunk/reactos/media/nls/c_10010.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_10010.nls?rev=…
Added: trunk/reactos/media/nls/c_10017.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_10017.nls?rev=…
Added: trunk/reactos/media/nls/c_10021.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_10021.nls?rev=…
Added: trunk/reactos/media/nls/c_10082.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_10082.nls?rev=…
Added: trunk/reactos/media/nls/c_1047.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1047.nls?rev=7…
Added: trunk/reactos/media/nls/c_1140.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1140.nls?rev=7…
Added: trunk/reactos/media/nls/c_1141.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1141.nls?rev=7…
Added: trunk/reactos/media/nls/c_1142.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1142.nls?rev=7…
Added: trunk/reactos/media/nls/c_1143.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1143.nls?rev=7…
Added: trunk/reactos/media/nls/c_1144.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1144.nls?rev=7…
Added: trunk/reactos/media/nls/c_1145.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1145.nls?rev=7…
Added: trunk/reactos/media/nls/c_1147.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1147.nls?rev=7…
Added: trunk/reactos/media/nls/c_1148.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1148.nls?rev=7…
Added: trunk/reactos/media/nls/c_1149.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_1149.nls?rev=7…
Added: trunk/reactos/media/nls/c_20105.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20105.nls?rev=…
Added: trunk/reactos/media/nls/c_20106.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20106.nls?rev=…
Added: trunk/reactos/media/nls/c_20107.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20107.nls?rev=…
Added: trunk/reactos/media/nls/c_20108.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20108.nls?rev=…
Added: trunk/reactos/media/nls/c_20269.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20269.nls?rev=…
Added: trunk/reactos/media/nls/c_20273.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20273.nls?rev=…
Added: trunk/reactos/media/nls/c_20277.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20277.nls?rev=…
Added: trunk/reactos/media/nls/c_20278.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20278.nls?rev=…
Added: trunk/reactos/media/nls/c_20280.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20280.nls?rev=…
Added: trunk/reactos/media/nls/c_20284.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20284.nls?rev=…
Added: trunk/reactos/media/nls/c_20285.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20285.nls?rev=…
Added: trunk/reactos/media/nls/c_20290.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20290.nls?rev=…
Added: trunk/reactos/media/nls/c_20297.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20297.nls?rev=…
Added: trunk/reactos/media/nls/c_20420.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20420.nls?rev=…
Added: trunk/reactos/media/nls/c_20423.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20423.nls?rev=…
Added: trunk/reactos/media/nls/c_20424.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20424.nls?rev=…
Added: trunk/reactos/media/nls/c_20833.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20833.nls?rev=…
Added: trunk/reactos/media/nls/c_20838.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20838.nls?rev=…
Added: trunk/reactos/media/nls/c_20871.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20871.nls?rev=…
Added: trunk/reactos/media/nls/c_20880.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20880.nls?rev=…
Added: trunk/reactos/media/nls/c_20905.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20905.nls?rev=…
Added: trunk/reactos/media/nls/c_20924.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_20924.nls?rev=…
Added: trunk/reactos/media/nls/c_21027.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_21027.nls?rev=…
Added: trunk/reactos/media/nls/c_708.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_708.nls?rev=72…
Added: trunk/reactos/media/nls/c_720.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_720.nls?rev=72…
Added: trunk/reactos/media/nls/c_858.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_858.nls?rev=72…
Added: trunk/reactos/media/nls/c_870.nls URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/c_870.nls?rev=72…
Added: trunk/reactos/media/nls/src/c_10004.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_10004.txt?…
Added: trunk/reactos/media/nls/src/c_10005.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_10005.txt?…
Added: trunk/reactos/media/nls/src/c_10010.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_10010.txt?…
Added: trunk/reactos/media/nls/src/c_10017.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_10017.txt?…
Added: trunk/reactos/media/nls/src/c_10021.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_10021.txt?…
Added: trunk/reactos/media/nls/src/c_10082.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_10082.txt?…
Added: trunk/reactos/media/nls/src/c_1047.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1047.txt?r…
Added: trunk/reactos/media/nls/src/c_1140.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1140.txt?r…
Added: trunk/reactos/media/nls/src/c_1141.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1141.txt?r…
Added: trunk/reactos/media/nls/src/c_1142.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1142.txt?r…
Added: trunk/reactos/media/nls/src/c_1143.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1143.txt?r…
Added: trunk/reactos/media/nls/src/c_1144.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1144.txt?r…
Added: trunk/reactos/media/nls/src/c_1145.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1145.txt?r…
Added: trunk/reactos/media/nls/src/c_1146.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1146.txt?r…
Added: trunk/reactos/media/nls/src/c_1147.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1147.txt?r…
Added: trunk/reactos/media/nls/src/c_1148.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1148.txt?r…
Added: trunk/reactos/media/nls/src/c_1149.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_1149.txt?r…
Added: trunk/reactos/media/nls/src/c_20105.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20105.txt?…
Added: trunk/reactos/media/nls/src/c_20106.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20106.txt?…
Added: trunk/reactos/media/nls/src/c_20107.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20107.txt?…
Added: trunk/reactos/media/nls/src/c_20108.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20108.txt?…
Added: trunk/reactos/media/nls/src/c_20269.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20269.txt?…
Added: trunk/reactos/media/nls/src/c_20273.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20273.txt?…
Added: trunk/reactos/media/nls/src/c_20277.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20277.txt?…
Added: trunk/reactos/media/nls/src/c_20278.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20278.txt?…
Added: trunk/reactos/media/nls/src/c_20280.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20280.txt?…
Added: trunk/reactos/media/nls/src/c_20284.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20284.txt?…
Added: trunk/reactos/media/nls/src/c_20285.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20285.txt?…
Added: trunk/reactos/media/nls/src/c_20290.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20290.txt?…
Added: trunk/reactos/media/nls/src/c_20297.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20297.txt?…
Added: trunk/reactos/media/nls/src/c_20420.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20420.txt?…
Added: trunk/reactos/media/nls/src/c_20423.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20423.txt?…
Added: trunk/reactos/media/nls/src/c_20424.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20424.txt?…
Added: trunk/reactos/media/nls/src/c_20833.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20833.txt?…
Added: trunk/reactos/media/nls/src/c_20838.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20838.txt?…
Added: trunk/reactos/media/nls/src/c_20871.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20871.txt?…
Added: trunk/reactos/media/nls/src/c_20880.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20880.txt?…
Added: trunk/reactos/media/nls/src/c_20905.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20905.txt?…
Added: trunk/reactos/media/nls/src/c_20924.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_20924.txt?…
Added: trunk/reactos/media/nls/src/c_21025.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_21025.txt?…
Added: trunk/reactos/media/nls/src/c_21027.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_21027.txt?…
Added: trunk/reactos/media/nls/src/c_708.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_708.txt?re…
Added: trunk/reactos/media/nls/src/c_720.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_720.txt?re…
Added: trunk/reactos/media/nls/src/c_858.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_858.txt?re…
Added: trunk/reactos/media/nls/src/c_870.txt URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/media/nls/src/c_870.txt?re…
8 years, 3 months
1
0
0
0
[gadamopoulos] 72772: [HIVECLS.INF] - Drive property page is registered by sehll32.
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Thu Sep 22 16:48:12 2016 New Revision: 72772 URL:
http://svn.reactos.org/svn/reactos?rev=72772&view=rev
Log: [HIVECLS.INF] - Drive property page is registered by sehll32. Modified: trunk/reactos/boot/bootdata/hivecls.inf Modified: trunk/reactos/boot/bootdata/hivecls.inf URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/boot/bootdata/hivecls.inf?…
============================================================================== --- trunk/reactos/boot/bootdata/hivecls.inf [iso-8859-1] (original) +++ trunk/reactos/boot/bootdata/hivecls.inf [iso-8859-1] Thu Sep 22 16:48:12 2016 @@ -1,4 +1,4 @@ -[Version] +[Version] Signature="$ReactOS$" [AddReg] @@ -17,11 +17,6 @@ HKCR,"Folder\shell\explore","BrowserFlags",0x00010001,"0x00000022" HKCR,"Folder\shell\explore","ExplorerFlags",0x00010001,"0x00000021" HKCR,"Folder\shell\explore\command","",0x00000000,"explorer.exe /e,""%1""" - -; Drive property page -HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}","",0x00000000,"Drive Property Page Extension" -HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}\InProcServer32","",0x00000000,"shell32.dll" -HKCR,"CLSID\{5F5295E0-429F-1069-A2E2-08002B30309D}\InProcServer32","ThreadingModel",0x00000000,"Apartment" ; Clipboard Element HKCR,".clp","",0x00000000,"clpfile"
8 years, 3 months
1
0
0
0
[gadamopoulos] 72771: [SHELL32] - Handle failure in SHELL32_CompareDetails.
by gadamopoulos@svn.reactos.org
Author: gadamopoulos Date: Thu Sep 22 16:22:44 2016 New Revision: 72771 URL:
http://svn.reactos.org/svn/reactos?rev=72771&view=rev
Log: [SHELL32] - Handle failure in SHELL32_CompareDetails. Modified: trunk/reactos/dll/win32/shell32/shlfolder.cpp Modified: trunk/reactos/dll/win32/shell32/shlfolder.cpp URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shlfolde…
============================================================================== --- trunk/reactos/dll/win32/shell32/shlfolder.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shlfolder.cpp [iso-8859-1] Thu Sep 22 16:22:44 2016 @@ -439,11 +439,24 @@ { SHELLDETAILS sd; WCHAR wszItem1[MAX_PATH], wszItem2[MAX_PATH]; - - isf->GetDetailsOf(pidl1, lParam, &sd); - StrRetToBufW(&sd.str, pidl1, wszItem1, MAX_PATH); - isf->GetDetailsOf(pidl2, lParam, &sd); - StrRetToBufW(&sd.str, pidl2, wszItem2, MAX_PATH); + HRESULT hres; + + hres = isf->GetDetailsOf(pidl1, lParam, &sd); + if (FAILED(hres)) + return MAKE_COMPARE_HRESULT(1); + + hres = StrRetToBufW(&sd.str, pidl1, wszItem1, MAX_PATH); + if (FAILED(hres)) + return MAKE_COMPARE_HRESULT(1); + + hres = isf->GetDetailsOf(pidl2, lParam, &sd); + if (FAILED(hres)) + return MAKE_COMPARE_HRESULT(1); + + hres = StrRetToBufW(&sd.str, pidl2, wszItem2, MAX_PATH); + if (FAILED(hres)) + return MAKE_COMPARE_HRESULT(1); + int ret = wcsicmp(wszItem1, wszItem2); return MAKE_COMPARE_HRESULT(ret);
8 years, 3 months
1
0
0
0
← Newer
1
...
7
8
9
10
11
12
13
...
35
Older →
Jump to page:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
Results per page:
10
25
50
100
200