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

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * IENUM0.H
  3.  *
  4.  * Definition of an IEnumRECT interface as an example of OLE
  5.  * interfaces as they appear in C and C++.
  6.  *
  7.  * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  8.  *
  9.  * Kraig Brockschmidt, Microsoft
  10.  * Internet  :  kraigb@microsoft.com
  11.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  12.  */
  13. #ifndef _IENUM0_H_
  14. #define _IENUM0_H_
  15. //C++ Definition of an interface.
  16. #ifdef __cplusplus
  17. typedef struct IEnumRECT IEnumRECT;
  18. typedef IEnumRECT *PENUMRECT;
  19. //This is the interface:  a struct of pure virtual functions.
  20. struct IEnumRECT
  21.     {
  22.     STDMETHOD(QueryInterface)(REFIID, PPVOID)=0;
  23.     STDMETHOD_(ULONG,AddRef)(void)=0;
  24.     STDMETHOD_(ULONG,Release)(void)=0;
  25.     STDMETHOD(Next)(DWORD, LPRECT, LPDWORD)=0;
  26.     STDMETHOD(Skip)(DWORD)=0;
  27.     STDMETHOD(Reset)(void)=0;
  28.     STDMETHOD(Clone)(PENUMRECT *)=0;
  29.     };
  30. #else   //!__cplusplus
  31. /*
  32.  * A C interface is explicitly a structure containing a long
  33.  * pointer to a virtual function table that we have to
  34.  * initialize explicitly.
  35.  */
  36. typedef struct
  37.     {
  38.     struct IEnumRECTVtbl FAR *lpVtbl;
  39.     } IEnumRECT, *PENUMRECT;
  40. //This is just a convenient naming
  41. typedef struct IEnumRECTVtbl IEnumRECTVtbl;
  42. struct IEnumRECTVtbl
  43.     {
  44.     STDMETHOD(QueryInterface)(PENUMRECT, REFIID, PPVOID);
  45.     STDMETHOD_(ULONG, AddRef)(PENUMRECT);
  46.     STDMETHOD_(ULONG, Release)(PENUMRECT);
  47.     STDMETHOD(Next)(PENUMRECT, DWORD, LPRECT, LPDWORD);
  48.     STDMETHOD(Skip)(PENUMRECT, DWORD);
  49.     STDMETHOD(Reset)(PENUMRECT);
  50.     STDMETHOD(Clone)(PENUMRECT, PENUMRECT *);
  51.     };
  52. #endif  //!__cplusplus
  53. #endif //_IENUM0_H_