#include
#pragma comment(lib,"strmbasd.lib")
#pragma comment(lib,"quartz.lib");
void main()
{
IGraphBuilder *pGraph = NULL;
IMediaControl *pControl = NULL;
//控制数据流的播放和停止等操作
IMediaEvent *pEvent = NULL;
//捕获图像滤镜的事件
//初始化COM库
HRESULT hr=CoInitialize(NULL);
if (FAILED(hr))
{
return;
}
//创建滤镜管理器(hr为它的句柄)
hr =
CoCreateInstance(CLSID_FilterGraph,NULL,CLSCTX_INPROC_SERVER,IID_IGraphBuilder,(void**)&pGra
ph);
if (FAILED(hr))
{
return;
}
//IID_IMediaControl
hr = pGraph->QueryInterface(IID_IMediaControl,(void**)&pControl);
hr = pGraph->QueryInterface(IID_IMediaEvent,(void**)&pEvent);
hr = pGraph->RenderFile(L"c://1.avi",NULL);
if (SUCCEEDED(hr))
{
hr = pControl->Run();
if (SUCCEEDED(hr))
{
long evCode;
pEvent->WaitForCompletion(INFINITE,&evCode);
}
}
pControl->Release();
pEvent->Release();
pGraph->Release();
CoUninitialize();
}