1 #ifndef __ECORE_WIN32_DND_DATA_OBJECT_H__
2 #define __ECORE_WIN32_DND_DATA_OBJECT_H__
5 #define WIN32_LEAN_AND_MEAN
7 #undef WIN32_LEAN_AND_MEAN
11 class DataObject : public IDataObject
17 FORMATETC *format_etc_;
18 STGMEDIUM *stg_medium_;
20 private: // internal helper function
22 int lookup_format_etc(FORMATETC *format_etc);
26 DataObject(FORMATETC *fmtetc, STGMEDIUM *stgmed, int count);
31 HRESULT __stdcall QueryInterface(REFIID iid, void **ppvObject);
32 ULONG __stdcall AddRef();
33 ULONG __stdcall Release();
35 public: // IDataObject
37 HRESULT __stdcall GetData(FORMATETC *pFormatEtc, STGMEDIUM *pmedium);
38 HRESULT __stdcall GetDataHere(FORMATETC *pFormatEtc, STGMEDIUM *pmedium);
39 HRESULT __stdcall QueryGetData(FORMATETC *pFormatEtc);
40 HRESULT __stdcall GetCanonicalFormatEtc(FORMATETC *pFormatEct, FORMATETC *pFormatEtcOut);
41 HRESULT __stdcall SetData(FORMATETC *pFormatEtc, STGMEDIUM *pMedium, BOOL fRelease);
42 HRESULT __stdcall EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppEnumFormatEtc);
43 HRESULT __stdcall DAdvise(FORMATETC *pFormatEtc, DWORD advf, IAdviseSink *, DWORD *);
44 HRESULT __stdcall DUnadvise(DWORD dwConnection);
45 HRESULT __stdcall EnumDAdvise(IEnumSTATDATA **ppEnumAdvise);
49 #endif /* __ECORE_WIN32_DND_DATA_OBJECT_H__ */