home *** CD-ROM | disk | FTP | other *** search
/ ...taking it to the Macs! / ...taking it to the Macs!.iso / Extras / ActiveX Mac SDK / ActiveX SDK / Sample Controls / MoviePlayer / CMovieControl.h < prev    next >
Encoding:
Text File  |  1996-12-11  |  2.4 KB  |  92 lines  |  [TEXT/CWIE]

  1. // =================================================================================
  2. //
  3. //    CMovieControl.h                ©1996 Microsoft Corporation All rights reserved.
  4. //
  5. // =================================================================================
  6.  
  7. #ifndef _H_CMovieControl
  8. #define _H_CMovieControl
  9. #pragma once
  10.  
  11. #include <Movies.h>
  12. #include "CBaseControl.h"
  13. #include "CBaseBindStatusCallback.h"
  14.  
  15. #define CMovieControl CControl
  16.  
  17. class CMovieControl;
  18.  
  19. class CMovieContextInfo
  20.         : public CBaseContextInfo
  21. {
  22. public:
  23.     CMovieContextInfo(CMovieControl* inControlP, Uint32 ContextID);
  24.     // *** CButtonContextInfo methods ***
  25.     virtual ErrorCode    Update(Boolean8 Acquired);
  26.     
  27. private:
  28.     CMovieControl*    mMovieControl;
  29. };
  30.  
  31. typedef enum
  32. {
  33.     MovieLoading = 0,    // Movie is in the process of loading
  34.     MovieLoaded,        // Movie has been loaded
  35.     MovieReady,            // Movie is ready to play
  36.     MoviePlaying        // Movie is currently playing
  37. }
  38. MovieState;
  39.  
  40. class CMovieControl:
  41.         public CBaseControl,
  42.         public CBaseBindStatusCallback
  43. {
  44. public:
  45. friend class CMovieContextInfo;
  46.     //  *** CMovieControl methods ***
  47.     CMovieControl();
  48.     ~CMovieControl();
  49.     
  50.     // *** IUnknown methods ***
  51.     STDMETHOD (QueryInterface)(REFIID inRefID, void** outObj);
  52.  
  53.     // *** IControl methods ***
  54.     STDMETHOD (Draw)(THIS_ DrawContext* inContext);
  55.     STDMETHOD (DoMouse)(THIS_ MouseEventType inMouseET, PlatformEvent* inEvent);
  56.     STDMETHOD (DoIdle)(THIS_ Uint32 IdleRefCon);
  57.  
  58.     //  *** IPersistPropertyBag methods ***
  59.     STDMETHOD (Load)(IPropertyBag* PropertyBag, IErrorLog* ErrorLog) ;
  60.     STDMETHOD (LoadTextState)(IPropertyBag *PropertyBag, IErrorLog* ErrorLog);
  61.  
  62.     //  *** IBindStatusCallback methods ***
  63.     STDMETHOD(OnDataAvailable)(Uint32 BSCF, Uint32 Size, FORMATETC* FormatEtc, STGMEDIUM* StgMedium);
  64.  
  65. protected:
  66.     //    *** CBaseControl overrides ***
  67.     virtual Boolean8    StartIdling(void);
  68.     virtual Boolean8    StopIdling(void);
  69.     virtual CBaseContextInfo*    NewContext(Uint32 inContextID);
  70.  
  71.     //    *** CBaseContextInfo overrides ***
  72. private:
  73.  
  74.     // *** private methods ***
  75.     Boolean8    InitMovie(FSSpec* MovieSpec, Point* outMovieSizeP, Rect* inLocationP);
  76.     Boolean8    IdleMovie(void);
  77.     void        DrawMovie(GrafPtr pGrafDraw, Rect* inLocationP);
  78.     
  79.     // *** private members ***
  80.     Movie            mMovie;
  81.     Point            mMovieSize;
  82.     Uchar8            mDataURL[MAX_URL_STRING];
  83.     FSSpec            mMovieSpec;
  84.     Int16            mEnterMoviesCount;
  85.     MovieState        mMovieState;
  86.     Boolean            mDrawnOnce;
  87.     IUnknown *        mUnkForRelease;
  88.     PicHandle        mPosterPict;
  89. };
  90.  
  91. #endif
  92.