Tizen 2.1 base
[framework/uifw/ecore.git] / src / lib / ecore_win32 / ecore_win32_dnd_enumformatetc.h
1 #ifndef __ECORE_WIN32_DND_ENUMFORMATETC_H__
2 #define __ECORE_WIN32_DND_ENUMFORMATETC_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 CEnumFormatEtc : public IEnumFORMATETC
12 {
13  private:
14
15    LONG       ref_count_;        // Reference count for this COM interface
16    ULONG      index_;           // current enumerator index
17    ULONG      formats_num_;      // number of FORMATETC members
18    FORMATETC *format_etc_;       // array of FORMATETC objects
19
20  public: // structors
21
22    CEnumFormatEtc(FORMATETC *pFormatEtc, int nNumFormats);
23
24    ~CEnumFormatEtc();
25
26  public: // IUnknown
27
28    HRESULT __stdcall  QueryInterface (REFIID iid, void ** ppvObject);
29
30    ULONG   __stdcall  AddRef (void);
31
32    ULONG   __stdcall  Release (void);
33
34  public: // IEnumFormatEtc
35
36    HRESULT __stdcall  Next  (ULONG celt, FORMATETC * rgelt, ULONG * pceltFetched);
37
38    HRESULT __stdcall  Skip  (ULONG celt);
39
40    HRESULT __stdcall  Reset (void);
41
42    HRESULT __stdcall  Clone (IEnumFORMATETC ** ppEnumFormatEtc);
43 };
44
45 void DeepCopyFormatEtc(FORMATETC *dest, FORMATETC *source);
46
47 HRESULT CreateEnumFormatEtc(UINT cfmt, FORMATETC *afmt, IEnumFORMATETC **ppEnumFormatEtc);
48
49
50 #endif /* __ECORE_WIN32_DND_ENUMFORMATETC_H__ */