| 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]) |
no test coverage detected