mirror of
https://github.com/reactos/reactos.git
synced 2024-06-29 17:31:31 +00:00
[SENDMAIL] Simplify HIDA usage
This commit is contained in:
parent
eba16dc9e9
commit
eb0c005c1b
|
@ -59,13 +59,6 @@ CDeskLinkDropHandler::Drop(IDataObject *pDataObject, DWORD dwKeyState,
|
||||||
return E_POINTER;
|
return E_POINTER;
|
||||||
}
|
}
|
||||||
|
|
||||||
FORMATETC fmt;
|
|
||||||
fmt.cfFormat = RegisterClipboardFormatW(CFSTR_SHELLIDLIST);
|
|
||||||
fmt.ptd = NULL;
|
|
||||||
fmt.dwAspect = DVASPECT_CONTENT;
|
|
||||||
fmt.lindex = -1;
|
|
||||||
fmt.tymed = TYMED_HGLOBAL;
|
|
||||||
|
|
||||||
WCHAR szDir[MAX_PATH], szDest[MAX_PATH], szSrc[MAX_PATH];
|
WCHAR szDir[MAX_PATH], szDest[MAX_PATH], szSrc[MAX_PATH];
|
||||||
SHGetSpecialFolderPathW(NULL, szDir, CSIDL_DESKTOPDIRECTORY, FALSE);
|
SHGetSpecialFolderPathW(NULL, szDir, CSIDL_DESKTOPDIRECTORY, FALSE);
|
||||||
|
|
||||||
|
@ -74,24 +67,14 @@ CDeskLinkDropHandler::Drop(IDataObject *pDataObject, DWORD dwKeyState,
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
if (FAILED_UNEXPECTEDLY(hr))
|
||||||
return hr;
|
return hr;
|
||||||
|
|
||||||
STGMEDIUM medium;
|
CDataObjectHIDA pida(pDataObject);
|
||||||
hr = pDataObject->GetData(&fmt, &medium);
|
if (FAILED_UNEXPECTEDLY(pida.hr()))
|
||||||
if (FAILED_UNEXPECTEDLY(hr))
|
return pida.hr();
|
||||||
return hr;
|
|
||||||
|
|
||||||
LPIDA pida = reinterpret_cast<LPIDA>(GlobalLock(medium.hGlobal));
|
LPCITEMIDLIST pidlParent = HIDA_GetPIDLFolder(pida);
|
||||||
if (!pida)
|
for (UINT i = 0; i < pida->cidl; ++i)
|
||||||
{
|
{
|
||||||
ERR("Error locking global\n");
|
LPCITEMIDLIST pidlChild = HIDA_GetPIDLItem(pida, i);
|
||||||
ReleaseStgMedium(&medium);
|
|
||||||
return E_FAIL;
|
|
||||||
}
|
|
||||||
|
|
||||||
LPBYTE pb = reinterpret_cast<LPBYTE>(pida);
|
|
||||||
LPCITEMIDLIST pidlParent = reinterpret_cast<LPCITEMIDLIST>(pb + pida->aoffset[0]);
|
|
||||||
for (UINT i = 1; i <= pida->cidl; ++i)
|
|
||||||
{
|
|
||||||
LPCITEMIDLIST pidlChild = reinterpret_cast<LPCITEMIDLIST>(pb + pida->aoffset[i]);
|
|
||||||
|
|
||||||
CComHeapPtr<ITEMIDLIST> pidl(ILCombine(pidlParent, pidlChild));
|
CComHeapPtr<ITEMIDLIST> pidl(ILCombine(pidlParent, pidlChild));
|
||||||
if (!pidl)
|
if (!pidl)
|
||||||
|
@ -137,9 +120,6 @@ CDeskLinkDropHandler::Drop(IDataObject *pDataObject, DWORD dwKeyState,
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalUnlock(medium.hGlobal);
|
|
||||||
ReleaseStgMedium(&medium);
|
|
||||||
|
|
||||||
return hr;
|
return hr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue