mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 04:33:32 +00:00
[SHELL32] -Cleanup CFSFolder::_LoadDynamicDropTargetHandlerForKey. Inspired by patch by Victor Martinez Calvo. CORE-12799. CID 1401249
svn path=/trunk/; revision=73865
This commit is contained in:
parent
7b0de0e982
commit
9abeb0d9b0
1 changed files with 28 additions and 25 deletions
|
@ -1056,38 +1056,41 @@ HRESULT WINAPI CFSFolder::_LoadDynamicDropTargetHandlerForKey(HKEY hRootKey, LPC
|
||||||
{
|
{
|
||||||
TRACE("CFSFolder::_LoadDynamicDropTargetHandlerForKey entered\n");
|
TRACE("CFSFolder::_LoadDynamicDropTargetHandlerForKey entered\n");
|
||||||
|
|
||||||
WCHAR wszName[MAX_PATH], *pwszClsid;
|
WCHAR wszName[MAX_PATH];
|
||||||
DWORD dwSize = sizeof(wszName);
|
DWORD dwSize = sizeof(wszName);
|
||||||
HRESULT hr;
|
HRESULT hr;
|
||||||
|
LRESULT res;
|
||||||
|
|
||||||
if (RegGetValueW(hRootKey, L"shellex\\DropHandler", NULL, RRF_RT_REG_SZ, NULL, wszName, &dwSize) == ERROR_SUCCESS)
|
res = RegGetValueW(hRootKey, L"shellex\\DropHandler", NULL, RRF_RT_REG_SZ, NULL, wszName, &dwSize);
|
||||||
|
if (res != ERROR_SUCCESS)
|
||||||
|
return S_FALSE;
|
||||||
|
|
||||||
|
CLSID clsid;
|
||||||
|
hr = CLSIDFromString(wszName, &clsid);
|
||||||
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
|
return hr;
|
||||||
|
|
||||||
|
if (m_bGroupPolicyActive)
|
||||||
{
|
{
|
||||||
CLSID clsid;
|
res = RegGetValueW(HKEY_LOCAL_MACHINE,
|
||||||
hr = CLSIDFromString(wszName, &clsid);
|
L"Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved",
|
||||||
if (hr == S_OK)
|
wszName,
|
||||||
pwszClsid = wszName;
|
RRF_RT_REG_SZ,
|
||||||
|
NULL,
|
||||||
if (m_bGroupPolicyActive)
|
NULL,
|
||||||
|
NULL);
|
||||||
|
if (res != ERROR_SUCCESS)
|
||||||
{
|
{
|
||||||
if (RegGetValueW(HKEY_LOCAL_MACHINE,
|
ERR("DropHandler extension %S not approved\n", wszName);
|
||||||
L"Software\\Microsoft\\Windows\\CurrentVersion\\Shell Extensions\\Approved",
|
return E_FAIL;
|
||||||
pwszClsid,
|
|
||||||
RRF_RT_REG_SZ,
|
|
||||||
NULL,
|
|
||||||
NULL,
|
|
||||||
NULL) == ERROR_SUCCESS)
|
|
||||||
{
|
|
||||||
hr = _LoadDynamicDropTargetHandler(&clsid, pwcsname, ppvOut);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
hr = _LoadDynamicDropTargetHandler(&clsid, pwcsname, ppvOut);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
return E_FAIL;
|
hr = _LoadDynamicDropTargetHandler(&clsid, pwcsname, ppvOut);
|
||||||
return hr;
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
|
return hr;
|
||||||
|
|
||||||
|
return S_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
HRESULT WINAPI CFSFolder::_LoadDynamicDropTargetHandler(const CLSID *pclsid, LPCWSTR pwcsname, LPVOID *ppvOut)
|
HRESULT WINAPI CFSFolder::_LoadDynamicDropTargetHandler(const CLSID *pclsid, LPCWSTR pwcsname, LPVOID *ppvOut)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue