Windows2000/private/shell/ext/cscui/dll/fmtetc.h
2020-09-30 17:12:32 +02:00

60 lines
1.3 KiB
C++

// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1997 - 1999
// File: fmtetc.h
#ifndef _INC_CSCUI_FMTETC_H
#define _INC_CSCUI_FMTETC_H
class CEnumFormatEtc : public IEnumFORMATETC
{
public:
CEnumFormatEtc(UINT cFormats, LPFORMATETC prgFormats);
CEnumFormatEtc(const CEnumFormatEtc& ef);
~CEnumFormatEtc(VOID);
// IUnknown methods.
STDMETHODIMP QueryInterface(REFIID riid, LPVOID *ppvOut);
STDMETHODIMP_(ULONG) AddRef(VOID);
STDMETHODIMP_(ULONG) Release(VOID);
// IEnumFORMATETC methods.
STDMETHODIMP Next(DWORD, LPFORMATETC, LPDWORD);
STDMETHODIMP Skip(DWORD);
STDMETHODIMP Reset(VOID);
STDMETHODIMP Clone(IEnumFORMATETC **);
// Called to add formats to the enumerator. Used by ctors.
HRESULT AddFormats(UINT cFormats, LPFORMATETC prgFormats);
// For implementations non-exception throwing clients.
HRESULT IsValid(void) const
{ return SUCCEEDED(m_hrCtor); }
private:
LONG m_cRef;
int m_cFormats;
int m_iCurrent;
LPFORMATETC m_prgFormats;
HRESULT m_hrCtor;
// Prevent assignment.
void operator = (const CEnumFormatEtc&);
};
#endif // _INC_CSCUI_FMTETC_H