// AVIPlayerDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ylgl.h"
#include "AVIPlayerDlg.h"
#include "vfw.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
#pragma comment(lib, "VFW32.lib")
/////////////////////////////////////////////////////////////////////////////
// CAVIPlayerDlg dialog
CAVIPlayerDlg::CAVIPlayerDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CAVIPlayerDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CAVIPlayerDlg)
	m_Path = _T("");
	//}}AFX_DATA_INIT
}

void CAVIPlayerDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAVIPlayerDlg)
	DDX_Control(pDX, IDC_PAUSE, m_Pause);
	DDX_Control(pDX, IDC_PLAY, m_Play);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAVIPlayerDlg, CDialog)
	//{{AFX_MSG_MAP(CAVIPlayerDlg)
	ON_BN_CLICKED(IDC_PLAY, OnPlay)
	ON_BN_CLICKED(IDC_PAUSE, OnPause)
	ON_BN_CLICKED(IDC_STOP, OnStop)
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAVIPlayerDlg message handlers

BOOL CAVIPlayerDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	m_Video = NULL;
	OnPlay();
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CAVIPlayerDlg::OnPlay() 
{
	// TODO: Add your control notification handler code here
	m_Video = NULL;
	if(m_Video == NULL)
	{
		m_Video = MCIWndCreate(this->GetSafeHwnd(),
		  AfxGetInstanceHandle(),
		  WS_CHILD | WS_VISIBLE|MCIWNDF_NOMENU,m_Path);
		
	}
	else
	{
		MCIWndHome(m_Video);
	}
	MCIWndPlay(m_Video);
	Pause = FALSE;
	m_Play.EnableWindow(FALSE);

 
	CRect rc,rc2;
	::GetWindowRect (m_Video, &rc);
	ScreenToClient(rc);
	GetClientRect (&rc2);
	int w=rc.Width ();
	int h=rc.Height ();
	rc.left +=(rc2.Width ()-rc.Width ())/2;
	rc.top +=(rc2.Height ()-rc.Height ())/2;
	rc.right =rc.left +w;
	rc.bottom =rc.top +h;
	::MoveWindow (m_Video, rc.left , rc.top , rc.Width (), rc.Height (), 0);
}

void CAVIPlayerDlg::OnPause() 
{
	// TODO: Add your control notification handler code here
	if(Pause)
	{
		m_Pause.SetWindowText("Pause");
		MCIWndResume(m_Video);
		Pause = FALSE;
	}
	else
	{
		m_Pause.SetWindowText("UnPause");
		MCIWndPause(m_Video);
		Pause = TRUE;
	}
}

void CAVIPlayerDlg::OnStop() 
{
	// TODO: Add your control notification handler code here
	MCIWndStop(m_Video);
	if(m_Video !=NULL)
	{
		MCIWndDestroy(m_Video);
	}
	m_Play.EnableWindow(TRUE);
}

void CAVIPlayerDlg::OnDestroy() 
{
	if(m_Video !=NULL)
	{
		MCIWndDestroy(m_Video);
	}	
	CDialog::OnDestroy();
}