資源簡介
一個非常好的學習AVI播放器編程的代碼。

代碼片段和文件信息
//?CDXGraph.cpp:?implementation?of?the?CDXGraph?class.
//
//////////////////////////////////////////////////////////////////////
#include?“stdafx.h“
//#include?“ppz.h“////////////////注意
#include?//////////////注意
#include?“CDXGraph.h“
#ifdef?_DEBUG
#undef?THIS_FILE
static?char?THIS_FILE[]=__FILE__;
#define?new?DEBUG_NEW
#endif
extern?int?i;
//////////////////////////////////////////////////////////////////////
//?Construction/Destruction
//////////////////////////////////////////////////////////////////////
CDXGraph::CDXGraph()
{
mGraph????????=?NULL;
mMediaControl?=?NULL;
mEvent????????=?NULL;
mBasicVideo???=?NULL;
mBasicAudio???=?NULL;
mVideoWindow??=?NULL;
mSeeking??????=?NULL;
mobjectTableEntry?=?0;
}
CDXGraph::~CDXGraph()
{
Release();
}
void?CDXGraph::AddToobjectTable(void)
{
IMoniker?*?pMoniker?=?0;
????IRunningobjectTable?*?objectTable?=?0;
????if?(SUCCEEDED(GetRunningobjectTable(0?&objectTable)))?
{
WCHAR?wsz[256];
//?將數(shù)值按照指定的格式轉(zhuǎn)化為字符串:
wsprintfW(wsz?L“FilterGraph?%08p?pid?%08x“?(DWORD_PTR)mGraph?GetCurrentProcessId());
HRESULT?hr?=?CreateItemMoniker(L“!“?wsz?&pMoniker);
if?(SUCCEEDED(hr))?
{
hr?=?objectTable->Register(0?mGraph?pMoniker?&mobjectTableEntry);
pMoniker->Release();
}
objectTable->Release();
}
}
bool?CDXGraph::Create(void)
{ //?如果沒有創(chuàng)建mGraph指針創(chuàng)建一個并初始化
if?(!mGraph)
{
if?(SUCCEEDED(CoCreateInstance(CLSID_FilterGraph?NULL?CLSCTX_INPROC_SERVER
IID_IGraphBuilder?(void?**)&mGraph))) //?創(chuàng)建未經(jīng)初始化的mGraph
{
AddToobjectTable(); //?添加進去
return?QueryInterfaces();
}
mGraph?=?0;
}
return?false;
}
//得到當前的position(換成s)給*outPosition
bool?CDXGraph::GetCurrentPosition(double?*outPosition)
{
if?(mSeeking)//類IMediaSeeking
{
__int64?position?=?0;
if?(SUCCEEDED(mSeeking->GetCurrentPosition(&position)))
{
*outPosition?=?((double)position)?/?10000000.;
return?true;
}
}
return?false;
}
//得到持續(xù)時間Duration(換成s)給*outDuration
bool?CDXGraph::GetDuration(double?*outDuration)
{
if?(mSeeking)
{
__int64?length?=?0;
if?(SUCCEEDED(mSeeking->GetDuration(&length)))
{
*outDuration?=?((double)length)?/?10000000.;
return?true;
}
}
return?false;
}
bool?CDXGraph::GetFullScreen(void)
{
if?(mVideoWindow)
{
long??fullScreenMode?=?OAFALSE;
mVideoWindow->get_FullScreenMode(&fullScreenMode);
return?(fullScreenMode?==?OATRUE);
}
return?false;
}
bool?CDXGraph::GetStopPosition(double?*outPosition)
{
if?(mSeeking)
{
__int64?position?=?0;
if?(SUCCEEDED(mSeeking->GetStopPosition(&position)))
{
*outPosition?=?((double)position)?/?10000000.;
return?true;
}
}
return?false;
}
bool?CDXGraph::IsPaused(void)
{
if?(mGraph?&&?mMediaControl)
{
OAFilterState?state?=?State_Stopped;
if?(SUCCEEDED(mMediaControl->GetState(10?&state)))
{
return?state?==?State_Paused;
}
}
return?false;
}
bool?C
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????13313??2008-06-12?16:18??AviPla
?????文件???????1629??2008-06-13?09:22??AviPla
?????文件???????1938??2007-05-23?17:12??AviPla
?????文件???????1399??2007-04-29?08:46??AviPla
?????文件??????36016??2008-07-02?23:06??AviPla
?????文件???????1431??2008-07-02?23:08??AviPla
?????文件???????2476??2007-04-18?09:11??AviPla
?????文件???????4434??2007-04-28?11:09??AviPla
?????文件????????529??2007-04-16?17:03??AviPla
?????文件?????172079??2008-07-02?23:06??AviPla
?????文件???????1322??2007-04-27?13:34??AviPla
?????文件?????173056??2008-07-02?23:08??AviPla
?????文件??????61952??2008-07-02?23:08??AviPla
?????文件???????2054??2008-07-02?23:06??AviPla
?????文件???????5540??2008-07-02?23:06??AviPla
?????文件??????33792??2007-05-10?17:05??AviPla
?????文件??????37888??2007-05-10?17:05??AviPla
?????文件????????353??2007-05-08?17:33??AviPla
?????文件??????10655??2008-07-02?23:06??AviPla
?????文件??????11637??2008-06-13?09:31??AviPla
?????文件???????2381??2008-07-02?23:06??AviPla
?????文件???????3525??2007-04-16?17:03??AviPla
?????文件???????1078??2008-06-12?12:48??AviPla
?????文件????????395??2007-04-16?17:03??AviPla
?????文件???????1141??2008-06-12?14:38??AviPla
?????文件????????205??2007-04-16?17:03??AviPla
?????文件???????1056??2007-04-17?14:10??AviPla
?????目錄??????????0??2008-07-02?22:47??AviPla
?????目錄??????????0??2008-07-02?23:08??AviPla
?????目錄??????????0??2008-07-02?23:08??AviPla
............此處省略4個文件信息
評論
共有 條評論