MCPcopy Create free account
hub / github.com/WinMerge/winmerge / GetFileItemsFromIDataObject_CF_HDROP

Function GetFileItemsFromIDataObject_CF_HDROP

Src/DropHandler.cpp:148–164  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

146 }
147
148 HRESULT GetFileItemsFromIDataObject_CF_HDROP(IDataObject *pDataObj, std::vector<String>& files)
149 {
150 FORMATETC fmtetc_cf_hdrop = { CF_HDROP, nullptr, DVASPECT_CONTENT, -1, TYMED_HGLOBAL };
151 STGMEDIUM medium = { 0 };
152 HRESULT hr;
153 if ((hr = pDataObj->GetData(&fmtetc_cf_hdrop, &medium)) == S_OK)
154 {
155 HDROP hDrop = (HDROP)GlobalLock(medium.hGlobal);
156 if (hDrop != nullptr)
157 {
158 files = FilterFiles(GetDroppedFiles(hDrop));
159 GlobalUnlock(medium.hGlobal);
160 }
161 ReleaseStgMedium(&medium);
162 }
163 return hr;
164 }
165
166#define HIDA_GetPIDLFolder(pida) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[0])
167#define HIDA_GetPIDLItem(pida, i) (LPCITEMIDLIST)(((LPBYTE)pida)+(pida)->aoffset[i+1])

Callers 1

DropMethod · 0.85

Calls 2

FilterFilesFunction · 0.85
GetDroppedFilesFunction · 0.85

Tested by

no test coverage detected