IENUMFE.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * IENUMFE.H
  3.  *
  4.  * Definitions of a FORMATETC enumerator.
  5.  *
  6.  * Copyright (c)1993-1995 Microsoft Corporation, All Right Reserved
  7.  *
  8.  * Kraig Brockschmidt, Microsoft
  9.  * Internet  :  kraigb@microsoft.com
  10.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  11.  */
  12. #ifndef _IENUMFE_H_
  13. #define _IENUMFE_H_
  14. #include <inole.h>
  15. /*
  16.  * IEnumFORMATETC object that is created from
  17.  * IDataObject::EnumFormatEtc.  This object lives on its own,
  18.  * that is, QueryInterface only knows IUnknown and IEnumFormatEtc,
  19.  * nothing more.  We still use an outer unknown for reference
  20.  * counting, because as long as this enumerator lives, the data
  21.  * object should live, thereby keeping the application up.
  22.  */
  23. class CEnumFormatEtc;
  24. typedef class CEnumFormatEtc *PCEnumFormatEtc;
  25. class CEnumFormatEtc : public IEnumFORMATETC
  26.     {
  27.     private:
  28.         ULONG           m_cRef;     //Object reference count
  29.         ULONG           m_iCur;     //Current element
  30.         ULONG           m_cfe;      //Number of FORMATETCs in us
  31.         LPFORMATETC     m_prgfe;    //Source of FORMATETCs
  32.     public:
  33.         CEnumFormatEtc(ULONG, LPFORMATETC);
  34.         ~CEnumFormatEtc(void);
  35.         //IUnknown members
  36.         STDMETHODIMP         QueryInterface(REFIID, LPVOID *);
  37.         STDMETHODIMP_(ULONG) AddRef(void);
  38.         STDMETHODIMP_(ULONG) Release(void);
  39.         //IEnumFORMATETC members
  40.         STDMETHODIMP Next(ULONG, LPFORMATETC, ULONG *);
  41.         STDMETHODIMP Skip(ULONG);
  42.         STDMETHODIMP Reset(void);
  43.         STDMETHODIMP Clone(IEnumFORMATETC **);
  44.     };
  45. #endif //_IENUMFE_H_