#include 《windows.h 》
#include 《 Dshow.h 》
#pragma comment(lib,"Strmiids.lib")
#pragma comment(lib,"Quartz.lib")
void main()
{
//调用CoInitialize()初始化COM库
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
{
// Add error-handling code here. (Omitted for clarity.)
}
//创建Filter Graph Manager
IGraphBuilder *pGraph;
hr = CoCreateInstance(CLSID_FilterGraph /*类标识符*/,
NULL,
CLSCTX_INPROC_SERVER,
IID_IGraphBuilder/*接口标识符*/,
(void **)&pGraph
);
IMediaControl *pControl; //停止和启动
IMediaEvent *pEvent; //等待播放完毕
hr = pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
hr = pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
//准备媒体文件
hr = pGraph->RenderFile(L"D://work//0025_LO.MPG", NULL);
//播放
hr = pControl->Run();
//直到结束
long evCode = 0;
pEvent->WaitForCompletion(INFINITE, &evCode);
//恢复
pControl->Release();
pEvent->Release();
pGraph->Release();
CoUninitialize();
}