Tizen 2.1 base
[framework/uifw/ecore.git] / src / lib / ecore_win32 / ecore_win32_dnd_data_object.h
1 #ifndef __ECORE_WIN32_DND_DATA_OBJECT_H__
2 #define __ECORE_WIN32_DND_DATA_OBJECT_H__
3
4
5 #define WIN32_LEAN_AND_MEAN
6 #include <windows.h>
7 #undef WIN32_LEAN_AND_MEAN
8 #include <objbase.h>
9
10
11 class DataObject : public IDataObject
12 {
13  private:
14
15    LONG       ref_count_;
16    int        formats_num_;
17    FORMATETC *format_etc_;
18    STGMEDIUM *stg_medium_;
19
20  private: // internal helper function
21
22    int lookup_format_etc(FORMATETC *format_etc);
23
24  public: // structors
25
26    DataObject(FORMATETC *fmtetc, STGMEDIUM *stgmed, int count);
27    ~DataObject();
28
29  public: // IUnknown
30
31    HRESULT __stdcall QueryInterface(REFIID iid, void **ppvObject);
32    ULONG   __stdcall AddRef();
33    ULONG   __stdcall Release();
34
35  public: // IDataObject
36
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);
46 };
47
48
49 #endif /* __ECORE_WIN32_DND_DATA_OBJECT_H__ */