home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-12-11 | 2.4 KB | 92 lines | [TEXT/CWIE] |
- // =================================================================================
- //
- // CMovieControl.h ©1996 Microsoft Corporation All rights reserved.
- //
- // =================================================================================
-
- #ifndef _H_CMovieControl
- #define _H_CMovieControl
- #pragma once
-
- #include <Movies.h>
- #include "CBaseControl.h"
- #include "CBaseBindStatusCallback.h"
-
- #define CMovieControl CControl
-
- class CMovieControl;
-
- class CMovieContextInfo
- : public CBaseContextInfo
- {
- public:
- CMovieContextInfo(CMovieControl* inControlP, Uint32 ContextID);
- // *** CButtonContextInfo methods ***
- virtual ErrorCode Update(Boolean8 Acquired);
-
- private:
- CMovieControl* mMovieControl;
- };
-
- typedef enum
- {
- MovieLoading = 0, // Movie is in the process of loading
- MovieLoaded, // Movie has been loaded
- MovieReady, // Movie is ready to play
- MoviePlaying // Movie is currently playing
- }
- MovieState;
-
- class CMovieControl:
- public CBaseControl,
- public CBaseBindStatusCallback
- {
- public:
- friend class CMovieContextInfo;
- // *** CMovieControl methods ***
- CMovieControl();
- ~CMovieControl();
-
- // *** IUnknown methods ***
- STDMETHOD (QueryInterface)(REFIID inRefID, void** outObj);
-
- // *** IControl methods ***
- STDMETHOD (Draw)(THIS_ DrawContext* inContext);
- STDMETHOD (DoMouse)(THIS_ MouseEventType inMouseET, PlatformEvent* inEvent);
- STDMETHOD (DoIdle)(THIS_ Uint32 IdleRefCon);
-
- // *** IPersistPropertyBag methods ***
- STDMETHOD (Load)(IPropertyBag* PropertyBag, IErrorLog* ErrorLog) ;
- STDMETHOD (LoadTextState)(IPropertyBag *PropertyBag, IErrorLog* ErrorLog);
-
- // *** IBindStatusCallback methods ***
- STDMETHOD(OnDataAvailable)(Uint32 BSCF, Uint32 Size, FORMATETC* FormatEtc, STGMEDIUM* StgMedium);
-
- protected:
- // *** CBaseControl overrides ***
- virtual Boolean8 StartIdling(void);
- virtual Boolean8 StopIdling(void);
- virtual CBaseContextInfo* NewContext(Uint32 inContextID);
-
- // *** CBaseContextInfo overrides ***
- private:
-
- // *** private methods ***
- Boolean8 InitMovie(FSSpec* MovieSpec, Point* outMovieSizeP, Rect* inLocationP);
- Boolean8 IdleMovie(void);
- void DrawMovie(GrafPtr pGrafDraw, Rect* inLocationP);
-
- // *** private members ***
- Movie mMovie;
- Point mMovieSize;
- Uchar8 mDataURL[MAX_URL_STRING];
- FSSpec mMovieSpec;
- Int16 mEnterMoviesCount;
- MovieState mMovieState;
- Boolean mDrawnOnce;
- IUnknown * mUnkForRelease;
- PicHandle mPosterPict;
- };
-
- #endif
-