62 lines
2.3 KiB
C++
62 lines
2.3 KiB
C++
/*****************************************************************************\
|
|
FILE: ftpefe.h
|
|
\*****************************************************************************/
|
|
|
|
#ifndef _FTPEFE_H
|
|
#define _FTPEFE_H
|
|
|
|
|
|
/*****************************************************************************\
|
|
CLASS: CFtpEfe
|
|
|
|
DESCRIPTION:
|
|
The stuff that tracks the state of an enumeration.
|
|
\*****************************************************************************/
|
|
|
|
class CFtpEfe : public IEnumFORMATETC
|
|
{
|
|
public:
|
|
//////////////////////////////////////////////////////
|
|
// Public Interfaces
|
|
//////////////////////////////////////////////////////
|
|
|
|
// *** IUnknown ***
|
|
virtual STDMETHODIMP_(ULONG) AddRef(void);
|
|
virtual STDMETHODIMP_(ULONG) Release(void);
|
|
virtual STDMETHODIMP QueryInterface(REFIID riid, LPVOID * ppvObj);
|
|
|
|
// *** IEnumFORMATETC ***
|
|
virtual STDMETHODIMP Next(ULONG celt, FORMATETC * rgelt, ULONG *pceltFetched);
|
|
virtual STDMETHODIMP Skip(ULONG celt);
|
|
virtual STDMETHODIMP Reset(void);
|
|
virtual STDMETHODIMP Clone(IEnumFORMATETC **ppenum);
|
|
|
|
public:
|
|
// Friend Functions
|
|
friend HRESULT CFtpEfe_Create(DWORD dwSize, FORMATETC rgfe[], STGMEDIUM rgstg[], CFtpObj * pfo, IEnumFORMATETC ** ppenum);
|
|
|
|
protected:
|
|
// Private Member Variables
|
|
int m_cRef;
|
|
|
|
DWORD m_dwIndex; // Current Item in the m_hdsaFormatEtc list
|
|
DWORD m_dwExtraIndex; // Current Item in the m_pfo->m_hdsaSetData list
|
|
HDSA m_hdsaFormatEtc; // pointer to the array
|
|
CFtpObj * m_pfo; // pointer to the parent IDataObject impl that has the list of extra data from ::SetData.
|
|
|
|
|
|
CFtpEfe(DWORD dwSize, FORMATETC rgfe[], STGMEDIUM rgstg[], CFtpObj * pfo);
|
|
CFtpEfe(DWORD dwSize, HDSA hdsaFormatEtc, CFtpObj * pfo, DWORD dwIndex);
|
|
~CFtpEfe(void);
|
|
|
|
// Public Member Functions
|
|
HRESULT _NextOne(FORMATETC * pfetc);
|
|
|
|
|
|
// Friend Functions
|
|
friend HRESULT CFtpEfe_Create(DWORD dwSize, HDSA m_hdsaFormatEtc, DWORD dwIndex, CFtpObj * pfo, IEnumFORMATETC ** ppenum);
|
|
friend HRESULT CFtpEfe_Create(DWORD dwSize, FORMATETC rgfe[], STGMEDIUM rgstg[], CFtpObj * pfo, CFtpEfe ** ppfefe);
|
|
};
|
|
|
|
#endif // _FTPEFE_H
|