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

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * IPOLY10.H
  3.  * Polyline Object Chapter 10
  4.  *
  5.  * Definition of an IPolyline interface for a Polyline object.
  6.  * This custom interface and is only supported from DLL-based
  7.  * objects.
  8.  *
  9.  * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  10.  *
  11.  * Kraig Brockschmidt, Microsoft
  12.  * Internet  :  kraigb@microsoft.com
  13.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  14.  */
  15. #ifndef _IPOLY10_H_
  16. #define _IPOLY10_H_
  17. //Versioning.
  18. #define VERSIONMAJOR                2
  19. #define VERSIONMINOR                0
  20. #define VERSIONCURRENT              0x00020000
  21. #define CPOLYLINEPOINTS             20
  22. //Version 2.0 Polyline Structure
  23. typedef struct tagPOLYLINEDATA
  24.     {
  25.     WORD        wVerMaj;                //Major version number
  26.     WORD        wVerMin;                //Minor version number
  27.     WORD        cPoints;                //Number of points
  28.     short       fReserved;              //Previously fDrawEntire
  29.     RECTS       rc;                     //Rectangle of figure
  30.     POINTS      rgpt[CPOLYLINEPOINTS];  //Points on 0-32767 grid
  31.     //Version 2.0 additions
  32.     COLORREF    rgbBackground;          //Background color
  33.     COLORREF    rgbLine;                //Line color
  34.     short       iLineStyle;             //Line style
  35.     } POLYLINEDATA, *PPOLYLINEDATA;
  36. #define CBPOLYLINEDATA   sizeof(POLYLINEDATA)
  37. /*
  38.  * !!Addition:  Clipboard format shared with using applications
  39.  * This name matches those in the stringtable of all Cosmo and CoCosmo
  40.  * versions.  All data is interchangable.
  41.  */
  42. #define SZPOLYLINECLIPFORMAT        TEXT("Polyline Figure")
  43. #ifndef OMIT_POLYLINESINK
  44. #undef  INTERFACE
  45. #define INTERFACE IPolylineAdviseSink10
  46. /*
  47.  * When someone initializes a polyline and is interested in receiving
  48.  * notifications on events, then they provide one of these objects.
  49.  */
  50. DECLARE_INTERFACE_(IPolylineAdviseSink10, IUnknown)
  51.     {
  52.     //IUnknown members
  53.     STDMETHOD(QueryInterface) (THIS_ REFIID, PPVOID) PURE;
  54.     STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
  55.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  56.     //Advise members.
  57.     STDMETHOD_(void,OnPointChange)     (THIS) PURE;
  58.     STDMETHOD_(void,OnSizeChange)      (THIS) PURE;
  59.     STDMETHOD_(void,OnColorChange)     (THIS) PURE;
  60.     STDMETHOD_(void,OnLineStyleChange) (THIS) PURE;
  61.     //OnDataChange replaced with IAdviseSink
  62.     };
  63. typedef IPolylineAdviseSink10 *PPOLYLINEADVISESINK;
  64. #endif //OMIT_POLYLINESINK
  65. #undef  INTERFACE
  66. #define INTERFACE IPolyline10
  67. DECLARE_INTERFACE_(IPolyline10, IUnknown)
  68.     {
  69.     //IUnknown members
  70.     STDMETHOD(QueryInterface) (THIS_ REFIID, PPVOID) PURE;
  71.     STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
  72.     STDMETHOD_(ULONG,Release) (THIS) PURE;
  73.     //IPolyline members
  74.     //File-related members use IPersistStorage, IPersistStreamInit
  75.     //Data transfer members use IDataObject
  76.     //Manipulation members:
  77.     STDMETHOD(Init)   (THIS_ HWND, LPRECT, DWORD, UINT) PURE;
  78.     STDMETHOD(New)    (THIS) PURE;
  79.     STDMETHOD(Undo)   (THIS) PURE;
  80.     STDMETHOD(Window) (THIS_ HWND *) PURE;
  81.     STDMETHOD(RectGet) (THIS_ LPRECT) PURE;
  82.     STDMETHOD(SizeGet) (THIS_ LPRECT) PURE;
  83.     STDMETHOD(RectSet) (THIS_ LPRECT, BOOL) PURE;
  84.     STDMETHOD(SizeSet) (THIS_ LPRECT, BOOL) PURE;
  85.     STDMETHOD(ColorSet) (THIS_ UINT, COLORREF, COLORREF *) PURE;
  86.     STDMETHOD(ColorGet) (THIS_ UINT, COLORREF *) PURE;
  87.     STDMETHOD(LineStyleSet) (THIS_ UINT, UINT *) PURE;
  88.     STDMETHOD(LineStyleGet) (THIS_ UINT *) PURE;
  89.     };
  90. typedef IPolyline10 *PPOLYLINE;
  91. //Error values for data transfer functions
  92. #define POLYLINE_E_INVALIDPOINTER   
  93.     MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 1)
  94. #define POLYLINE_E_READFAILURE      
  95.     MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 2)
  96. #define POLYLINE_E_WRITEFAILURE     
  97.     MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 3)
  98. //Color indices for color member functions
  99. #define POLYLINECOLOR_BACKGROUND    0
  100. #define POLYLINECOLOR_LINE          1
  101. #endif //_IPOLY10_H_