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

Windows编程

开发平台:

Visual C++

  1. /*+==========================================================================
  2.   File:      IPAPER.H
  3.   Summary:   This is the common include file for the drawing paper-related
  4.              COM Interfaces.  The Interface abstract base classes are
  5.              declared.
  6.              This file is global to all the Tutorial Code Samples (kept in
  7.              the ..INC directory).  It is a good practice to factor out
  8.              Interface and GUID specifications to reduce the possibility
  9.              of GUID or interface conflicts.
  10.   Classes:   IPaper, IPaperSink.
  11.   Functions: .
  12.   Origin:    6-10-96: atrent - Revised for the COM Tutorial Samples.
  13. ----------------------------------------------------------------------------
  14.   This file is part of the Microsoft COM Tutorial Code Samples.
  15.   Copyright (C) Microsoft Corporation, 1997.  All rights reserved.
  16.   This source code is intended only as a supplement to Microsoft
  17.   Development Tools and/or on-line documentation.  See these other
  18.   materials for detailed information regarding Microsoft code samples.
  19.   THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  20.   KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  21.   IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
  22.   PARTICULAR PURPOSE.
  23. ==========================================================================+*/
  24. #if !defined(IPAPER_H)
  25. #define IPAPER_H
  26. #if !defined(RC_INCLUDE)
  27. /*I+I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I
  28.   Interface: IPaper
  29.   Summary:   Interface for free-form drawing on scratch-pad electronic
  30.              paper-like COM Objects.
  31.   Methods:   InitPaper
  32.                Init Paper object. Create Ink Data array.
  33.              Lock
  34.                Client takes control of the Paper. Locks out other clients.
  35.              Unlock
  36.                Client relinquishes control of the Paper.
  37.              Load
  38.                Load Paper content from client's compound file. Does Redraw.
  39.              Save
  40.                Save Paper content to client's compound file.
  41.              InkStart
  42.                Client starts color ink drawing to the Paper surface.
  43.              InkDraw
  44.                Client puts ink data points on the electronic Paper surface.
  45.              InkStop
  46.                Client stops ink drawing to the Paper surface.
  47.              Erase
  48.                Erase the current Paper content. Notify Sinks.
  49.              Resize
  50.                Resize the drawing paper rectangle size.
  51.              Redraw
  52.                Redraw content of Paper object. Notify sinks.
  53. I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I-I*/
  54. DECLARE_INTERFACE_(IPaper, IUnknown)
  55. {
  56.   // IUnknown methods.
  57.   STDMETHOD(QueryInterface) (THIS_ REFIID, PPVOID) PURE;
  58.   STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
  59.   STDMETHOD_(ULONG,Release) (THIS) PURE;
  60.   // IPaper methods.
  61.   STDMETHOD(InitPaper)  (THIS_ RECT*, BOOL*) PURE;
  62.   STDMETHOD(Lock)       (THIS_ SHORT*) PURE;
  63.   STDMETHOD(Unlock)     (THIS_ SHORT) PURE;
  64.   STDMETHOD(Load)       (THIS_ SHORT, IStorage*) PURE;
  65.   STDMETHOD(Save)       (THIS_ SHORT, IStorage*) PURE;
  66.   STDMETHOD(InkStart)   (THIS_ SHORT, SHORT, SHORT, SHORT, COLORREF) PURE;
  67.   STDMETHOD(InkDraw)    (THIS_ SHORT, SHORT, SHORT) PURE;
  68.   STDMETHOD(InkStop)    (THIS_ SHORT, SHORT, SHORT) PURE;
  69.   STDMETHOD(Erase)      (THIS_ SHORT) PURE;
  70.   STDMETHOD(Resize)     (THIS_ SHORT, SHORT, SHORT) PURE;
  71.   STDMETHOD(Redraw)     (THIS_ SHORT) PURE;
  72. };
  73. /*I+I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I
  74.   Interface: IPaperSink
  75.   Summary:   Sink Connection Interface for use by drawing paper-like COM
  76.              Objects that communicate events back to the client.
  77.   Methods:   Locked
  78.                A client has taken control and locked its use of the Paper.
  79.              Unlocked
  80.                A client has relinquished control of the Paper.
  81.              Loaded
  82.                A client has loaded Paper content from its own compound file.
  83.              Saved
  84.                A client has saved Paper content to its own compound file.
  85.              InkStart
  86.                A client started a color ink drawing sequence to the Paper.
  87.              InkDraw
  88.                A client is putting ink data points on the Paper surface.
  89.              InkStop
  90.                A client stopped its ink drawing sequence to the Paper.
  91.              Erased
  92.                A client has erased all ink data from the Paper.
  93.              Resized
  94.                A client has resized the Paper.
  95. I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I-I*/
  96. DECLARE_INTERFACE_(IPaperSink, IUnknown)
  97. {
  98.   // IUnknown methods.
  99.   STDMETHOD(QueryInterface) (THIS_ REFIID, PPVOID) PURE;
  100.   STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
  101.   STDMETHOD_(ULONG,Release) (THIS) PURE;
  102.   // IPaperSink methods.
  103.   STDMETHOD(Locked)     (THIS) PURE;
  104.   STDMETHOD(Unlocked)   (THIS) PURE;
  105.   STDMETHOD(Loaded)     (THIS) PURE;
  106.   STDMETHOD(Saved)      (THIS) PURE;
  107.   STDMETHOD(InkStart)   (THIS_ SHORT, SHORT, SHORT, COLORREF) PURE;
  108.   STDMETHOD(InkDraw)    (THIS_ SHORT, SHORT) PURE;
  109.   STDMETHOD(InkStop)    (THIS_ SHORT, SHORT) PURE;
  110.   STDMETHOD(Erased)     (THIS) PURE;
  111.   STDMETHOD(Resized)    (THIS_ SHORT, SHORT) PURE;
  112. };
  113. #endif // RC_INCLUDE
  114. #endif // IPAPER_H