InitVideoWindow (int nMultiplier, int nDivider);
//Перемикання між повноекранним і віконним режімаміToggleFullScreen (void);
//Обробка графічних собитійHandleGraphEvent (void);
//Перемикання між тишею і нормальним по гучності воспроізведеніемToggleMute (void);
//Зафарбування вікна в режимі тільки звук PaintAudioWindow (void);
//Перевірка на наявність відео даних в файлеCheckVisibility (void);
//Звільнення інтерфейсами апаратних ресурсів
void CloseInterfaces (void);
//Відкриття файлаOpenClip (int);
//ПаузаPauseClip (void);
//ОстановкаStopClip (void);
//Закриття кліпаCloseClip (void); Msg (TCHAR * szFormat, ...);
//
//Constants
//
# define VOLUME_FULL 0L
# define VOLUME_SILENCE - 10000L
//Begin default media search at root directory
# define DEFAULT_MEDIA_PATH TEXT ( [fde_1440622699_4940622196_279] )
//Defaults used with audio-only files
# define DEFAULT_AUDIO_WIDTH 240
# define DEFAULT_AUDIO_HEIGHT 120
# define DEFAULT_VIDEO_WIDTH 320
# define DEFAULT_VIDEO_HEIGHT 240
# define MINIMUM_VIDEO_WIDTH 200
# define MINIMUM_VIDEO_HEIGHT 120
# define WM_GRAPHNOTIFY WM_USER + 13PLAYSTATE {Stopped, Paused, Running, Init};
//
//Macros
//
# define SAFE_RELEASE (x) {if (x) x- gt; Release (); x=NULL; }
# define JIF (x) if (FAILED (hr=(x)))
{Msg (TEXT ( FAILED (hr=0x% x) in ) TEXT (#x) TEXT ( n 0 ), hr); return hr;}
# define LIF (x) if (FAILED (hr=(x)))
{Msg (TEXT ( FAILED (hr=0x% x) in ) TEXT (#x) TEXT ( n 0 ), hr);} PLAYSTATE g_psCurrent; HWND ghApp; HINSTANCE ghInst; BOOL g_bFullscreen;
}
ДОДАТОК 2
Лістинг модуля відтворення playwnd.cpp на мові С ++
# include lt; dshow.h gt;
# include lt; commctrl.h gt;
# include lt; commdlg.h gt;
# include lt; stdio.h gt;
# include lt; tchar.h gt;
# include lt; atlcore.h gt;
# include lt; objbase.h gt;
# include playwnd.h Player
{
//
//Global data ??p>
//ghApp=0; ghInst=0; g_szFileName [MAX_PATH]={0}; g_bAudioOnly=FALSE, g_bFullscreen=FALSE;g_lVolume=VOLUME_FULL;g_dwGraphRegister=0;g_psCurrent=Stopped;g_PlaybackRate=1.0;
//DirectShow interfaces * pGB=NULL; * pMC=NULL; * pME=NULL; * pVW=NULL; * pBA=NULL; * pBV=NULL; * pMS=NULL; * pMP= NULL; int AUDIO=1, VIDEO=2;// Used for enabling playback menu items
//ЯPlayMovieInWindow (LPTSTR szFile)
{_ CONVERSION; wFile [MAX_PATH]; hr; (! szFile) E_POINTER;
//Clear open dialog remnants before calling RenderFile () (ghApp);
//Convert filename to wide character string (wFile, T2W (szFile), NUMELMS (wFile) - 1); [MAX_PATH - 1]=0;
//Get the interface for DirectShow's GraphBuilder (CoCreateInstance (CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, _IGraphBuilder, (void **) amp; pGB)); (SUCCEEDED (hr))
{
//Have the graph builder construct its the appropriate graph automatically (pGB- gt; RenderFile (wFile, NULL));
//QueryInterface for DirectShow interfaces (pGB- gt; QueryInterface (IID_IMediaControl, (void **) amp; pMC)); (pGB- gt; QueryInterface (IID_IMediaEventEx, (void **) amp; pME)); (pGB- gt; QueryInterface (IID_IMediaSeeking, (void **) amp; pMS)); (pGB- gt; QueryInterface (IID_IMediaPosition, (void **) amp; pMP));
//// Query for video interfaces, which may not be relevant for audio files (pGB- gt; QueryInterface (IID_IVideoWindow, (void **) amp; pVW)); (pGB- gt; QueryInterface (IID_IBasicVideo, (void **) amp; pBV));
//// Query for audio interfaces, which may not be relevant for video-only files (pGB- gt; QueryInterface (IID_IBasicAudio, (void **) amp; pBA)); <...