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

Windows编程

开发平台:

Visual C++

  1. /*+==========================================================================
  2.   File:      IBALL.H
  3.   Summary:   This is the common include file for the Ball-related COM
  4.              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:   IBall, IBallSink.
  11.   Functions: none
  12.   Origin:    5-30-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(IBALL_H)
  25. #define IBALL_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: IBall
  29.   Summary:   Interface for moving Ball-like COM Objects.
  30.   Methods:   Reset
  31.                Init and reset the ball.
  32.              Move
  33.                Move the ball.
  34.              GetBall
  35.                Obtain the ball's current position, extent, and color.
  36. I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I-I*/
  37. DECLARE_INTERFACE_(IBall, IUnknown)
  38. {
  39.   // IUnknown methods.
  40.   STDMETHOD(QueryInterface) (THIS_ REFIID, PPVOID) PURE;
  41.   STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
  42.   STDMETHOD_(ULONG,Release) (THIS) PURE;
  43.   // IBall methods.
  44.   STDMETHOD(Reset)      (THIS_ RECT*, SHORT) PURE;
  45.   STDMETHOD(Move)       (THIS_ BOOL) PURE;
  46.   STDMETHOD(GetBall)    (THIS_ POINT*, POINT*, COLORREF*) PURE;
  47. };
  48. /*I+I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I+++I
  49.   Interface: IBallSink
  50.   Summary:   Sink Connection Interface for Ball-like COM Objects that
  51.              communicate events back to the client.
  52.   Methods:   BounceBottom
  53.                The virtual ball hit the bottom edge of its bounding
  54.                rectangle and bounced.
  55.              BounceLeft
  56.                The virtual ball hit the left edge of its bounding
  57.                rectangle and bounced.
  58.              BounceRight
  59.                The virtual ball hit the right edge of its bounding
  60.                rectangle and bounced.
  61.              BounceTop
  62.                The virtual ball hit the top edge of its bounding
  63.                rectangle and bounced.
  64. I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I---I-I*/
  65. DECLARE_INTERFACE_(IBallSink, IUnknown)
  66. {
  67.   // IUnknown methods.
  68.   STDMETHOD(QueryInterface) (THIS_ REFIID, PPVOID) PURE;
  69.   STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
  70.   STDMETHOD_(ULONG,Release) (THIS) PURE;
  71.   // IBallSink methods.
  72.   STDMETHOD(BounceBottom)   (THIS) PURE;
  73.   STDMETHOD(BounceLeft)     (THIS) PURE;
  74.   STDMETHOD(BounceRight)    (THIS) PURE;
  75.   STDMETHOD(BounceTop)      (THIS) PURE;
  76. };
  77. #endif // RC_INCLUDE
  78. #endif // IBALL_H