/* This header file machine-generated by mktyplib.exe */
/* Interface to type library: SPRUUIDS */

#ifndef _SPRUUIDS_H_
#define _SPRUUIDS_H_

DEFINE_GUID(LIBID_SPRUUIDS,0x8703FF61L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);
#ifndef BEGIN_INTERFACE
#define BEGIN_INTERFACE
#endif

#ifdef __cplusplus
class SpruuidsApp;
#endif

interface ISpruuidsApp;

#ifdef __cplusplus
class Game;
#endif

interface IGame;

interface IGameEvents;

#ifdef __cplusplus
class SpriteClass;
#endif

interface ISpriteClass;

interface ISpriteClassEvents;

#ifdef __cplusplus
class Sprite;
#endif

interface ISprite;

DEFINE_GUID(IID_ISpruuidsApp,0x8703FF62L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

/* Definition of interface: ISpruuidsApp */
#undef INTERFACE
#define INTERFACE ISpruuidsApp

DECLARE_INTERFACE_(ISpruuidsApp, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* ISpruuidsApp methods */
    STDMETHOD(get_Application)(THIS_ ISpruuidsApp FAR* FAR* ppRet) PURE;
    STDMETHOD(get_Parent)(THIS_ ISpruuidsApp FAR* FAR* ppRet) PURE;
    STDMETHOD(Quit)(THIS) PURE;
    STDMETHOD(get_Game)(THIS_ IGame FAR* FAR* ppRet) PURE;
};

DEFINE_GUID(CLSID_SpruuidsApp,0x8703FF63L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

#ifdef __cplusplus
class SpruuidsApp;
#endif

DEFINE_GUID(IID_IGame,0x8703FF64L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

/* Definition of interface: IGame */
#undef INTERFACE
#define INTERFACE IGame

DECLARE_INTERFACE_(IGame, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IGame methods */
    STDMETHOD(get_Caption)(THIS_ BSTR FAR* pbstrReturn) PURE;
    STDMETHOD(put_Caption)(THIS_ BSTR bstr) PURE;
    STDMETHOD(get_Application)(THIS_ ISpruuidsApp FAR* FAR* ppRet) PURE;
    STDMETHOD(get_Parent)(THIS_ ISpruuidsApp FAR* FAR* ppRet) PURE;
    STDMETHOD(StartGame)(THIS) PURE;
    STDMETHOD(EndGame)(THIS) PURE;
    STDMETHOD(RemoveAllSprites)(THIS) PURE;
    STDMETHOD(NextLevel)(THIS) PURE;
    STDMETHOD(Refresh)(THIS) PURE;
    STDMETHOD(AddScore)(THIS_ int val) PURE;
    STDMETHOD(StdBorderBounce)(THIS_ ISprite FAR* pspr, int brd) PURE;
    STDMETHOD(StdBorderWrap)(THIS_ ISprite FAR* pspr, int brd) PURE;
    STDMETHOD(StdInitRand)(THIS_ ISprite FAR* pspr, VARIANT user) PURE;
    STDMETHOD(StdInitEdge)(THIS_ ISprite FAR* pspr, VARIANT user) PURE;
    STDMETHOD(get_Paused)(THIS_ VARIANT_BOOL FAR* pRet) PURE;
    STDMETHOD(put_Paused)(THIS_ VARIANT_BOOL val) PURE;
    STDMETHOD(get_Width)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_Width)(THIS_ int val) PURE;
    STDMETHOD(get_Height)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_Height)(THIS_ int val) PURE;
    STDMETHOD(get_BackColor)(THIS_ long FAR* pRet) PURE;
    STDMETHOD(put_BackColor)(THIS_ long val) PURE;
    STDMETHOD(get_Score)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_Score)(THIS_ int val) PURE;
    STDMETHOD(get_Level)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_Level)(THIS_ int val) PURE;
    STDMETHOD(get_ShipCount)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_ShipCount)(THIS_ int val) PURE;
    STDMETHOD(get_ScoreFirst1Up)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_ScoreFirst1Up)(THIS_ int val) PURE;
    STDMETHOD(get_ScoreSecond1Up)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_ScoreSecond1Up)(THIS_ int val) PURE;
    STDMETHOD(get_DScoreNext1Up)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_DScoreNext1Up)(THIS_ int val) PURE;
    STDMETHOD(get_ShipsStart)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_ShipsStart)(THIS_ int val) PURE;
    STDMETHOD(get_Tag)(THIS_ VARIANT FAR* pRet) PURE;
    STDMETHOD(put_Tag)(THIS_ VARIANT val) PURE;
    STDMETHOD(get_StatusText)(THIS_ BSTR FAR* pbstrReturn) PURE;
    STDMETHOD(put_StatusText)(THIS_ BSTR bstr) PURE;
};

DEFINE_GUID(DIID_IGameEvents,0x8703FF65L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

/* Definition of dispatch interface: IGameEvents */
#undef INTERFACE
#define INTERFACE IGameEvents

DECLARE_INTERFACE_(IGameEvents, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* IGameEvents methods:
    void NewGame(void);
    void NewLevel(void);
    void NewShip(void);
    void Collide(IDispatch * pspr1, IDispatch * pspr2, long collide);
    void Tick(void);
    void KeyDown(long vk);
    void KeyPress(long ascii);
    void KeyUp(long vk);
    void MouseMove(long x, long y, long keys, long buttons);
    void MouseDown(long x, long y, long keys, long buttons);
    void MouseOver(long x, long y, long keys, long buttons);
    */
};

DEFINE_GUID(CLSID_Game,0x8703FF66L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

#ifdef __cplusplus
class Game;
#endif

DEFINE_GUID(IID_ISpriteClass,0x8703FF67L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

/* Definition of interface: ISpriteClass */
#undef INTERFACE
#define INTERFACE ISpriteClass

DECLARE_INTERFACE_(ISpriteClass, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* ISpriteClass methods */
    STDMETHOD(get_Application)(THIS_ ISpruuidsApp FAR* FAR* ppRet) PURE;
    STDMETHOD(get_Parent)(THIS_ IGame FAR* FAR* ppRet) PURE;
    STDMETHOD(CreateSprite)(THIS_ int x, int y, VARIANT arg, ISprite FAR* FAR* ppRet) PURE;
    STDMETHOD(get_Tag)(THIS_ VARIANT FAR* pRet) PURE;
    STDMETHOD(put_Tag)(THIS_ VARIANT val) PURE;
    STDMETHOD(get_Image)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_Image)(THIS_ int val) PURE;
    STDMETHOD(get_Border)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_Border)(THIS_ int val) PURE;
    STDMETHOD(get_Collide)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_Collide)(THIS_ int val) PURE;
    STDMETHOD(get_MaximumVelocity)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_MaximumVelocity)(THIS_ float val) PURE;
    STDMETHOD(get_Friction)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_Friction)(THIS_ float val) PURE;
    STDMETHOD(get_MaximumAcceleration)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_MaximumAcceleration)(THIS_ float val) PURE;
    STDMETHOD(get_AccelerationFriction)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_AccelerationFriction)(THIS_ float val) PURE;
    STDMETHOD(get_SpriteCount)(THIS_ int FAR* pRet) PURE;
};

DEFINE_GUID(DIID_ISpriteClassEvents,0x8703FF68L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

/* Definition of dispatch interface: ISpriteClassEvents */
#undef INTERFACE
#define INTERFACE ISpriteClassEvents

DECLARE_INTERFACE_(ISpriteClassEvents, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* ISpriteClassEvents methods:
    void Init(IDispatch * sprite, VARIANT arg);
    void Tick(IDispatch * sprite);
    void Border(IDispatch * sprite, long border);
    void Term(IDispatch * sprite);
    void lastTerm(void);
    */
};

DEFINE_GUID(CLSID_SpriteClass,0x8703FF69L,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

#ifdef __cplusplus
class SpriteClass;
#endif

DEFINE_GUID(IID_ISprite,0x8703FF6AL,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

/* Definition of interface: ISprite */
#undef INTERFACE
#define INTERFACE ISprite

DECLARE_INTERFACE_(ISprite, IDispatch)
{
BEGIN_INTERFACE
#ifndef NO_BASEINTERFACE_FUNCS

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IDispatch methods */
    STDMETHOD(GetTypeInfoCount)(THIS_ UINT FAR* pctinfo) PURE;

    STDMETHOD(GetTypeInfo)(
      THIS_
      UINT itinfo,
      LCID lcid,
      ITypeInfo FAR* FAR* pptinfo) PURE;

    STDMETHOD(GetIDsOfNames)(
      THIS_
      REFIID riid,
      OLECHAR FAR* FAR* rgszNames,
      UINT cNames,
      LCID lcid,
      DISPID FAR* rgdispid) PURE;

    STDMETHOD(Invoke)(
      THIS_
      DISPID dispidMember,
      REFIID riid,
      LCID lcid,
      WORD wFlags,
      DISPPARAMS FAR* pdispparams,
      VARIANT FAR* pvarResult,
      EXCEPINFO FAR* pexcepinfo,
      UINT FAR* puArgErr) PURE;
#endif

    /* ISprite methods */
    STDMETHOD(get_Application)(THIS_ ISpruuidsApp FAR* FAR* ppRet) PURE;
    STDMETHOD(get_Parent)(THIS_ ISpriteClass FAR* FAR* ppRet) PURE;
    STDMETHOD(MoveTo)(THIS_ float x, float y) PURE;
    STDMETHOD(MoveBy)(THIS_ float dx, float dy) PURE;
    STDMETHOD(MoveAtSprite)(THIS_ ISprite FAR* sprite, float scale, float dMax, long flags) PURE;
    STDMETHOD(Remove)(THIS) PURE;
    STDMETHOD(Refresh)(THIS) PURE;
    STDMETHOD(IgnoreMove)(THIS) PURE;
    STDMETHOD(get_Left)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_Left)(THIS_ float val) PURE;
    STDMETHOD(get_Top)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_Top)(THIS_ float val) PURE;
    STDMETHOD(get_Vx)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_Vx)(THIS_ float val) PURE;
    STDMETHOD(get_Vy)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_Vy)(THIS_ float val) PURE;
    STDMETHOD(get_Ax)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_Ax)(THIS_ float val) PURE;
    STDMETHOD(get_Ay)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_Ay)(THIS_ float val) PURE;
    STDMETHOD(get_FrictionX)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_FrictionX)(THIS_ float val) PURE;
    STDMETHOD(get_FrictionY)(THIS_ float FAR* pRet) PURE;
    STDMETHOD(put_FrictionY)(THIS_ float val) PURE;
    STDMETHOD(get_Image)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_Image)(THIS_ int val) PURE;
    STDMETHOD(get_TickMove)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_TickMove)(THIS_ int val) PURE;
    STDMETHOD(get_TickEvent)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(put_TickEvent)(THIS_ int val) PURE;
    STDMETHOD(get_Visible)(THIS_ VARIANT_BOOL FAR* pRet) PURE;
    STDMETHOD(put_Visible)(THIS_ VARIANT_BOOL val) PURE;
    STDMETHOD(get_Tag)(THIS_ VARIANT FAR* pRet) PURE;
    STDMETHOD(put_Tag)(THIS_ VARIANT val) PURE;
    STDMETHOD(get_Width)(THIS_ int FAR* pRet) PURE;
    STDMETHOD(get_Height)(THIS_ int FAR* pRet) PURE;
};

DEFINE_GUID(CLSID_Sprite,0x8703FF6BL,0x669C,0x11CF,0xA9,0x2B,0x00,0xAA,0x00,0x68,0x8A,0x2F);

#ifdef __cplusplus
class Sprite;
#endif

#endif
