让我们通过以下代码对DirectShow有个初步的认识
#include <dshow.h>
#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**)&pGraph);
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))