Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
Loading...
Searching...
No Matches
qwindowsole.h
Go to the documentation of this file.
1// Copyright (C) 2016 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QWINDOWSOLE_H
5#define QWINDOWSOLE_H
6
7#include <QtCore/qt_windows.h>
8
9#include <QtCore/qlist.h>
10#include <QtCore/qmap.h>
11#include <QtCore/qpointer.h>
12#include <QtCore/private/qcomobject_p.h>
13
14#include <objidl.h>
15
17
18class QMimeData;
19class QWindow;
20
21class QWindowsOleDataObject : public QComObject<IDataObject>
22{
23public:
26
27 void releaseQt();
28 QMimeData *mimeData() const;
29 DWORD reportedPerformedEffect() const;
30
31 // IDataObject methods
32 STDMETHOD(GetData)(LPFORMATETC pformatetcIn, LPSTGMEDIUM pmedium) override;
33 STDMETHOD(GetDataHere)(LPFORMATETC pformatetc, LPSTGMEDIUM pmedium) override;
34 STDMETHOD(QueryGetData)(LPFORMATETC pformatetc) override;
35 STDMETHOD(GetCanonicalFormatEtc)(LPFORMATETC pformatetc, LPFORMATETC pformatetcOut) override;
36 STDMETHOD(SetData)(LPFORMATETC pformatetc, STGMEDIUM FAR *pmedium, BOOL fRelease) override;
37 STDMETHOD(EnumFormatEtc)(DWORD dwDirection, LPENUMFORMATETC FAR *ppenumFormatEtc) override;
38 STDMETHOD(DAdvise)
39 (FORMATETC FAR *pFormatetc, DWORD advf, LPADVISESINK pAdvSink,
40 DWORD FAR *pdwConnection) override;
41 STDMETHOD(DUnadvise)(DWORD dwConnection) override;
42 STDMETHOD(EnumDAdvise)(LPENUMSTATDATA FAR *ppenumAdvise) override;
43
44private:
45 QPointer<QMimeData> data;
46 const int CF_PERFORMEDDROPEFFECT;
47 DWORD performedEffect = DROPEFFECT_NONE;
48};
49
50class QWindowsOleEnumFmtEtc : public QComObject<IEnumFORMATETC>
51{
52public:
53 explicit QWindowsOleEnumFmtEtc(const QList<FORMATETC> &fmtetcs);
54 explicit QWindowsOleEnumFmtEtc(const QList<LPFORMATETC> &lpfmtetcs);
55 ~QWindowsOleEnumFmtEtc() override;
56
57 bool isNull() const;
58
59 // IEnumFORMATETC methods
60 STDMETHOD(Next)(ULONG celt, LPFORMATETC rgelt, ULONG FAR *pceltFetched) override;
61 STDMETHOD(Skip)(ULONG celt) override;
62 STDMETHOD(Reset)(void) override;
63 STDMETHOD(Clone)(LPENUMFORMATETC FAR *newEnum) override;
64
65private:
66 bool copyFormatEtc(LPFORMATETC dest, const FORMATETC *src) const;
67
68 ULONG m_nIndex = 0;
69 QList<LPFORMATETC> m_lpfmtetcs;
70 bool m_isNull = false;
71};
72
74
75#endif // QWINDOWSOLE_H
\inmodule QtCore
Definition qmimedata.h:16
\inmodule QtGui
Definition qwindow.h:63
OLE data container.
Definition qwindowsole.h:22
~QWindowsOleDataObject() override
FORMATETC FAR * pFormatetc
Definition qwindowsole.h:39
STDMETHOD SetData(LPFORMATETC pformatetc, STGMEDIUM FAR *pmedium, BOOL fRelease) override
FORMATETC FAR DWORD advf
Definition qwindowsole.h:39
QWindowsOleDataObject(QMimeData *mimeData)
STDMETHOD GetCanonicalFormatEtc(LPFORMATETC pformatetc, LPFORMATETC pformatetcOut) override
STDMETHOD EnumDAdvise(LPENUMSTATDATA FAR *ppenumAdvise) override
QMimeData * mimeData() const
STDMETHOD QueryGetData(LPFORMATETC pformatetc) override
DWORD reportedPerformedEffect() const
STDMETHOD GetData(LPFORMATETC pformatetcIn, LPSTGMEDIUM pmedium) override
STDMETHOD GetDataHere(LPFORMATETC pformatetc, LPSTGMEDIUM pmedium) override
FORMATETC FAR DWORD LPADVISESINK pAdvSink
Definition qwindowsole.h:39
STDMETHOD EnumFormatEtc(DWORD dwDirection, LPENUMFORMATETC FAR *ppenumFormatEtc) override
STDMETHOD DUnadvise(DWORD dwConnection) override
Enumerates the FORMATETC structures supported by QWindowsOleDataObject.
Definition qwindowsole.h:51
~QWindowsOleEnumFmtEtc() override
STDMETHOD Reset(void) override
QWindowsOleEnumFmtEtc(const QList< FORMATETC > &fmtetcs)
STDMETHOD Next(ULONG celt, LPFORMATETC rgelt, ULONG FAR *pceltFetched) override
STDMETHOD Clone(LPENUMFORMATETC FAR *newEnum) override
STDMETHOD Skip(ULONG celt) override
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
GLenum src
tagSTGMEDIUM STGMEDIUM
tagFORMATETC FORMATETC