windows-nt/Source/XPSP1/NT/shell/ext/url/enumfmte.hpp
2020-09-26 16:20:57 +08:00

49 lines
1,021 B
C++

/*
* enumfmte.hpp - EnumFormatEtc class description.
*/
/* Classes
**********/
class EnumFormatEtc : public RefCount,
public IEnumFORMATETC
{
private:
PFORMATETC m_pfmtetc;
ULONG m_ulcFormats;
ULONG m_uliCurrent;
public:
EnumFormatEtc(CFORMATETC rgcfmtetc[], ULONG ulcFormats);
~EnumFormatEtc(void);
// IEnumFormatEtc methods
HRESULT STDMETHODCALLTYPE Next(ULONG ulcToFetch, PFORMATETC pfmtetc, PULONG pulcFetched);
HRESULT STDMETHODCALLTYPE Skip(ULONG ulcToSkip);
HRESULT STDMETHODCALLTYPE Reset(void);
HRESULT STDMETHODCALLTYPE Clone(PIEnumFORMATETC *ppiefe);
// IUnknown methods
ULONG STDMETHODCALLTYPE AddRef(void);
ULONG STDMETHODCALLTYPE Release(void);
HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, PVOID *ppvObj);
// other methods
HRESULT STDMETHODCALLTYPE Status(void);
// friends
#ifdef DEBUG
friend BOOL IsValidPCEnumFormatEtc(const EnumFormatEtc *pcefe);
#endif
};
DECLARE_STANDARD_TYPES(EnumFormatEtc);