forked from enlightenment/efl
51 lines
1.2 KiB
C++
51 lines
1.2 KiB
C++
#ifndef __ECORE_WIN32_DND_ENUMFORMATETC_H__
|
|
#define __ECORE_WIN32_DND_ENUMFORMATETC_H__
|
|
|
|
|
|
#define WIN32_LEAN_AND_MEAN
|
|
#include <windows.h>
|
|
#undef WIN32_LEAN_AND_MEAN
|
|
#include <objbase.h>
|
|
|
|
|
|
class CEnumFormatEtc : public IEnumFORMATETC
|
|
{
|
|
private:
|
|
|
|
LONG ref_count_; // Reference count for this COM interface
|
|
ULONG index_; // current enumerator index
|
|
ULONG formats_num_; // number of FORMATETC members
|
|
FORMATETC *format_etc_; // array of FORMATETC objects
|
|
|
|
public: // structors
|
|
|
|
CEnumFormatEtc(FORMATETC *pFormatEtc, int nNumFormats);
|
|
|
|
~CEnumFormatEtc();
|
|
|
|
public: // IUnknown
|
|
|
|
HRESULT __stdcall QueryInterface (REFIID iid, void ** ppvObject);
|
|
|
|
ULONG __stdcall AddRef (void);
|
|
|
|
ULONG __stdcall Release (void);
|
|
|
|
public: // IEnumFormatEtc
|
|
|
|
HRESULT __stdcall Next (ULONG celt, FORMATETC * rgelt, ULONG * pceltFetched);
|
|
|
|
HRESULT __stdcall Skip (ULONG celt);
|
|
|
|
HRESULT __stdcall Reset (void);
|
|
|
|
HRESULT __stdcall Clone (IEnumFORMATETC ** ppEnumFormatEtc);
|
|
};
|
|
|
|
void DeepCopyFormatEtc(FORMATETC *dest, FORMATETC *source);
|
|
|
|
HRESULT CreateEnumFormatEtc(UINT cfmt, FORMATETC *afmt, IEnumFORMATETC **ppEnumFormatEtc);
|
|
|
|
|
|
#endif /* __ECORE_WIN32_DND_ENUMFORMATETC_H__ */
|