|
|
/******************************Module*Header*******************************\
* Module Name: app.h * * Function prototype for the Video CD Player application. * * * Created: dd-mm-94 * Author: Stephen Estrop [StephenE] * * Copyright (c) 1994 - 1999 Microsoft Corporation. All Rights Reserved. \**************************************************************************/
/* -------------------------------------------------------------------------
** Functions prototypes ** ------------------------------------------------------------------------- */ int DoMainLoop( void );
BOOL InitApplication( HINSTANCE hInstance );
BOOL InitInstance( HINSTANCE hInstance, int nCmdShow );
BOOL LoadWindowPos( LPRECT lprc );
BOOL SaveWindowPos( HWND hwnd );
void PatB( HDC hdc, int x, int y, int dx, int dy, DWORD rgb );
void UpdateMpegMovieRect( void );
void GetAdjustedClientRect( RECT *prc );
BOOL DrawStats( HDC hdc );
void CalcMovieRect( LPRECT lprc );
LPCTSTR IdStr( int idResource );
void UpdateSystemColors( void );
#if 0
void DrawShadowRect( HDC hdc, LPRECT lprc ); #endif
void SetDurationLength( REFTIME rt );
void SetCurrentPosition( REFTIME rt );
TCHAR * FormatRefTime( TCHAR *sz, REFTIME rt );
void DoMpegVideoPropertyPage();
void DoMpegAudioPropertyPage();
/* -------------------------------------------------------------------------
** Registry stuff ** ------------------------------------------------------------------------- */ int ProfileIntIn( const TCHAR *szKey, int iDefault );
BOOL ProfileIntOut( const TCHAR *szKey, int iDefault );
void ProfileStringOut ( LPTSTR szKey, LPTSTR sz );
UINT ProfileStringIn ( LPTSTR szKey, LPTSTR szDef, LPTSTR sz, DWORD cb );
BOOL LoadWindowPos( LPRECT lprc );
BOOL SaveWindowPos( HWND hwnd );
HKEY GetAppKey( BOOL fCreate );
/* -------------------------------------------------------------------------
** Message crackers ** ------------------------------------------------------------------------- */ /* void Cls_OnUser(HWND hwnd, WPARAM wParam, LPARAM lParam ) */ #define HANDLE_WM_USER(hwnd, wParam, lParam, fn) \
((fn)(hwnd, wParam, lParam), 0L)
#ifndef HANDLE_WM_NOTIFY
/* LRESULT Cls_OnNotify(HWND hwnd, int idFrom, NMHDR FAR* pnmhdr); */ #define HANDLE_WM_NOTIFY(hwnd, wParam, lParam, fn) \
(fn)((hwnd), (int)(wParam), (NMHDR FAR*)(lParam)) #endif
/* -------------------------------------------------------------------------
** VideoCd window class prototypes ** ------------------------------------------------------------------------- */ extern "C" LRESULT CALLBACK VideoCdWndProc( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam );
void VideoCd_OnClose( HWND hwnd );
BOOL VideoCd_OnQueryEndSession( HWND hwnd );
void VideoCd_OnDestroy( HWND hwnd );
void VideoCd_OnCommand( HWND hwnd, int id, HWND hwndCtl, UINT codeNotify );
void VideoCd_OnPaint( HWND hwnd );
void VideoCd_OnTimer( HWND hwnd, UINT id );
BOOL VideoCd_OnCreate( HWND hwnd, LPCREATESTRUCT lpCreateStruct );
void VideoCd_OnSize( HWND hwnd, UINT state, int cx, int cy );
void VideoCd_OnKeyUp( HWND hwnd, UINT vk, BOOL fDown, int cRepeat, UINT flags );
void VideoCd_OnActivate( HWND hwnd, WPARAM wParam, LPARAM lParam );
void VideoCd_OnHScroll( HWND hwnd, HWND hwndCtl, UINT code, int pos );
void VideoCd_OnUser( HWND hwnd, WPARAM wParam, LPARAM lParam );
void VideoCd_OnSysColorChange( HWND hwnd );
void VideoCd_OnMenuSelect( HWND hwnd, HMENU hmenu, int item, HMENU hmenuPopup, UINT flags );
void VideoCd_OnInitMenuPopup( HWND hwnd, HMENU hMenu, UINT item, BOOL fSystemMenu );
#ifdef WM_NOTIFY
LRESULT VideoCd_OnNotify( HWND hwnd, int idFrom, NMHDR FAR* pnmhdr ); #endif
void VideoCd_OnGraphNotify( void );
void VideoCd_OnDropFiles( HWND hwnd, HDROP hdrop);
void SetPlayButtonsEnableState( void );
/* -------------------------------------------------------------------------
** Command processing functions ** ------------------------------------------------------------------------- */
BOOL VcdPlayerSetLog( void );
BOOL VcdPlayerSetPerfLogFile( void );
BOOL VcdPlayerOpenCmd( void );
BOOL VcdPlayerCloseCmd( void );
BOOL VcdPlayerPlayCmd( void );
BOOL VcdPlayerStopCmd( void );
BOOL VcdPlayerPauseCmd( void );
BOOL VcdPlayerPauseCmd( void );
void VcdPlayerSeekCmd( REFTIME rtSeekBy );
void ProcessOpen( TCHAR *achFileName, BOOL bPlay = FALSE );
int VcdPlayerChangeTimeFormat( int id );
/* -------------------------------------------------------------------------
** Recent filename stuff ** ------------------------------------------------------------------------- */ typedef TCHAR RECENTFILES[MAX_PATH]; #define MAX_RECENT_FILES 5
#define ID_RECENT_FILE_BASE 500
int GetRecentFiles( int LastCount );
int SetRecentFiles( TCHAR *FileName, int iCount );
/* -------------------------------------------------------------------------
** Global Variables ** ------------------------------------------------------------------------- */ extern int cxMovie; extern int cyMovie; extern HWND hwndApp; extern HWND g_hwndStatusbar;
extern int cx; extern int cy; extern int xOffset; extern int yOffset; extern TCHAR g_achFileName[]; extern OPENFILENAME ofn; extern DWORD g_State; extern HANDLE hRenderLog; extern int nRecentFiles; extern LONG lMovieOrgX, lMovieOrgY; extern TCHAR g_szPerfLog[]; extern int g_TimeFormat; extern BOOL g_bUseThreadedGraph;
/* -------------------------------------------------------------------------
** Constants ** ------------------------------------------------------------------------- */ #define LEFT_MARGIN 2
/* -------------------------------------------------------------------------
** Video CD Player states ** ** These are bit flags ** ------------------------------------------------------------------------- */
#define VCD_PLAYING 0x0001
#define VCD_STOPPED 0x0002
#define VCD_PAUSED 0x0004
#define VCD_SKIP_F 0x0008
#define VCD_SKIP_B 0x0010
#define VCD_FF 0x0020
#define VCD_RW 0x0040
#define VCD_SEEKING (VCD_FF | VCD_RW)
#define VCD_LOADED 0x0080
#define VCD_NO_CD 0x0100
#define VCD_DATA_CD_LOADED 0x0200
#define VCD_EDITING 0x0400
#define VCD_PAUSED_AND_MOVED 0x0800
#define VCD_PLAY_PENDING 0x1000
#define VCD_WAS_PLAYING 0x2000
#define VCD_IN_USE 0x4000
enum {PerformanceTimer = 32, StatusTimer = 33};
|