windows-nt/Source/XPSP1/NT/multimedia/dshow/tools/vcdplyer/vcdplyer.h
2020-09-26 16:20:57 +08:00

90 lines
2.9 KiB
C++

/******************************Module*Header*******************************\
* Module Name: vcdplyer.h
*
* Function prototype for the Video CD Player application.
*
*
* Created: dd-mm-94
* Author: Stephen Estrop [StephenE]
*
* Copyright (c) 1994 - 1997 Microsoft Corporation. All Rights Reserved.
\**************************************************************************/
/* -------------------------------------------------------------------------
** CMpegMovie - an Mpeg movie playback class.
** -------------------------------------------------------------------------
*/
enum EMpegMovieMode { MOVIE_NOTOPENED = 0x00,
MOVIE_OPENED = 0x01,
MOVIE_PLAYING = 0x02,
MOVIE_STOPPED = 0x03,
MOVIE_PAUSED = 0x04 };
struct IMpegAudioDecoder;
struct IMpegVideoDecoder;
struct IQualProp;
class CMpegMovie {
private:
// Our state variable - records whether we are opened, playing etc.
EMpegMovieMode m_Mode;
HANDLE m_MediaEvent;
HWND m_hwndApp;
BOOL m_bFullScreen;
GUID m_TimeFormat;
IFilterGraph *m_Fg;
IGraphBuilder *m_Gb;
IMediaControl *m_Mc;
IMediaSeeking *m_Ms;
IMediaEvent *m_Me;
IVideoWindow *m_Vw;
void GetPerformanceInterfaces();
HRESULT FindInterfaceFromFilterGraph(
REFIID iid, // interface to look for
LPVOID *lp // place to return interface pointer in
);
public:
CMpegMovie(HWND hwndApplication);
~CMpegMovie();
HRESULT OpenMovie(TCHAR *lpFileName);
DWORD CloseMovie();
BOOL PlayMovie();
BOOL PauseMovie();
BOOL StopMovie();
OAFilterState GetStateMovie();
HANDLE GetMovieEventHandle();
long GetMovieEventCode();
BOOL PutMoviePosition(LONG x, LONG y, LONG cx, LONG cy);
BOOL GetMoviePosition(LONG *x, LONG *y, LONG *cx, LONG *cy);
BOOL GetMovieWindowState(long *lpuState);
BOOL SetMovieWindowState(long uState);
REFTIME GetDuration();
REFTIME GetCurrentPosition();
BOOL SeekToPosition(REFTIME rt,BOOL bFlushData);
EMpegMovieMode StatusMovie();
void SetFullScreenMode(BOOL bMode);
BOOL IsFullScreenMode();
BOOL SetWindowForeground(long Focus);
BOOL IsTimeFormatSupported(GUID Format);
BOOL IsTimeSupported();
BOOL SetTimeFormat(GUID Format);
GUID GetTimeFormat();
void SetFocus();
BOOL ConfigDialog(HWND hwnd);
BOOL SelectStream(int iStream);
IMpegVideoDecoder *pMpegDecoder;
IMpegAudioDecoder *pMpegAudioDecoder;
IQualProp *pVideoRenderer;
IAMStreamSelect *m_pStreamSelect;
};