Listing 7. The ISpeedDraw Object

class ISpeedDraw: public IUnknown
{
public:
   STDMETHOD(QueryInterface) (THIS_ REFIID, LPVOID*) PURE;
   STDMETHOD_(ULONG,AddRef)  (THIS) PURE;
   STDMETHOD_(ULONG,Release) (THIS) PURE;
   STDMETHOD_(BOOL, BackgroundBlits) (THIS) PURE;
   STDMETHOD_(BOOL, Pause) (THIS) PURE;
   STDMETHOD_(VOID, Restore) (THIS) PURE;
   STDMETHOD_(VOID, Create) (THIS) PURE;
   STDMETHOD_(VOID, InitParams)(THIS_ HWND AHandle,
                               LPSTR BackGroundMapStr,
                               int TransColor,
                               LPSTR DllName) PURE;
   STDMETHOD_(VOID, Run) (THIS) PURE;
   STDMETHOD_(VOID, DestroyObjects) (THIS) PURE;
   STDMETHOD_(VOID, DoFlip)(THIS) PURE;
   STDMETHOD_(VOID, InitObjects) (THIS) PURE;
   STDMETHOD_(VOID, Move) (THIS_ int Value) PURE;
   STDMETHOD_(VOID, MakeActive) (THIS_ BOOL Value) PURE;
   STDMETHOD_(VOID, SetTimerOdd) (THIS_ BOOL Value) PURE;
   STDMETHOD_(VOID, SetBackOrigin) (THIS_ POINT Value) PURE;
};
typedef ISpeedDraw *PISpeedDraw;
