MEDIA.H

//==========================================================================; 
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
// PURPOSE.
//
// Copyright (c) 1992 - 1997 Microsoft Corporation. All Rights Reserved.
//
//--------------------------------------------------------------------------;

typedef enum tagState {Uninitialized, Stopped, Paused, Playing } State;

typedef struct tagMedia
{
State state;
IGraphBuilder *pGraph;
HANDLE hGraphNotifyEvent;
} Media;

BOOL InitMedia();
void OpenMediaFile( HWND hwnd, LPSTR szFile );
HANDLE GetGraphEventHandle( void );

BOOL CanPlay();
BOOL CanStop();
BOOL CanPause();
BOOL IsInitialized();
void DeleteContents();

// Event handlers

void OnMediaPlay();
void OnMediaPause();
void OnMediaStop();
void OnMediaAbortStop();
void OnGraphNotify();