6#include <QtCore/qurl.h>
7#include <QtCore/qmimedata.h>
12using namespace Qt::StringLiterals;
15
16
17
18
19
20
21
22
23
35 if (shouldIgnore(pformatetc))
36 return ResultFromScode(DATA_E_FORMATETC);
38 return QWindowsOleDataObject::GetData(pformatetc, pmedium);
44 if (shouldIgnore(pformatetc))
45 return ResultFromScode(DATA_E_FORMATETC);
47 return QWindowsOleDataObject::QueryGetData(pformatetc);
57 if (dropData && dropData->formats().size() == 1 && dropData->hasUrls()) {
58 QString formatName = QWindowsMimeRegistry::clipboardFormatName(pformatetc->cfFormat);
59 if (pformatetc->cfFormat == CF_UNICODETEXT
60 || pformatetc->cfFormat == CF_TEXT
61 || formatName ==
"UniformResourceLocator"_L1
62 || formatName ==
"UniformResourceLocatorW"_L1) {
63 const auto urls = dropData->urls();
64 return std::all_of(urls.cbegin(), urls.cend(), [] (
const QUrl &u) {
return u.isLocalFile(); });
QWindowsOleDataObject subclass specialized for handling Drag&Drop.
STDMETHOD GetData(LPFORMATETC pformatetcIn, LPSTGMEDIUM pmedium) noexcept override
STDMETHOD QueryGetData(LPFORMATETC pformatetc) noexcept override
QWindowsDropDataObject(QMimeData *mimeData)
~QWindowsDropDataObject() override
QWindowsOleDataObject(QMimeData *mimeData)
QMimeData * mimeData() const