X-Git-Url: https://git.reactos.org/?p=reactos.git;a=blobdiff_plain;f=reactos%2Fdll%2Fwin32%2Fshell32%2Ffolders%2FCDrivesFolder.cpp;h=00c8107854f74e26188b4740caf01653f6719b12;hp=cfbaa90a6d58e552e8e1e6bfdc81dc936c0e546d;hb=926c3cfb05a341e4862c6d0b04b94ff95bd52d79;hpb=ccf03e4ba891675501272832596dfba96b4ec3f7 diff --git a/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp b/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp index cfbaa90a6d5..00c8107854f 100644 --- a/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp +++ b/reactos/dll/win32/shell32/folders/CDrivesFolder.cpp @@ -631,11 +631,14 @@ HRESULT WINAPI CDrivesFolder::GetUIObjectOf(HWND hwndOwner, else hr = m_regFolder->GetUIObjectOf(hwndOwner, cidl, apidl, riid, prgfInOut, &pObj); } - else if (IsEqualIID (riid, IID_IDropTarget) && (cidl >= 1)) + else if (IsEqualIID (riid, IID_IDropTarget) && (cidl == 1)) { - IDropTarget * pDt = NULL; - hr = this->QueryInterface(IID_PPV_ARG(IDropTarget, &pDt)); - pObj = pDt; + CComPtr psfChild; + hr = this->BindToObject(apidl[0], NULL, IID_PPV_ARG(IShellFolder, &psfChild)); + if (FAILED_UNEXPECTEDLY(hr)) + return hr; + + return psfChild->CreateViewObject(NULL, riid, ppvOut); } else hr = E_NOINTERFACE;