| 231 | } |
| 232 | |
| 233 | HRESULT ExtractFileItemFromIDataObject_FileContents(IDataObject *pDataObj, int lindex, const String& filepath) |
| 234 | { |
| 235 | FORMATETC fmtetc_filecontents = { static_cast<WORD>(RegisterClipboardFormat(CFSTR_FILECONTENTS)), nullptr, DVASPECT_CONTENT, lindex, TYMED_HGLOBAL | TYMED_ISTREAM }; |
| 236 | STGMEDIUM medium = { 0 }; |
| 237 | HRESULT hr; |
| 238 | if ((hr = pDataObj->GetData(&fmtetc_filecontents, &medium)) == S_OK) |
| 239 | { |
| 240 | hr = E_FAIL; |
| 241 | if (medium.tymed == TYMED_HGLOBAL) |
| 242 | hr = HGLOBAL_WriteToFile(medium.hGlobal, filepath); |
| 243 | else if (medium.tymed == TYMED_ISTREAM) |
| 244 | hr = IStream_WriteToFile(medium.pstm, filepath); |
| 245 | ReleaseStgMedium(&medium); |
| 246 | } |
| 247 | return hr; |
| 248 | } |
| 249 | |
| 250 | HRESULT GetFileItemsFromIDataObject_FileDescriptor(IDataObject *pDataObj, std::vector<String>& root_files) |
| 251 | { |
no test coverage detected