我怎么手动加如我需要的FILTER。
我需要手动加入例如我的sampvid.ax的filter.请问怎么写。谢谢。 问题点数:0、回复次数:2Top
1 楼tserpent(Tang)回复于 2003-06-02 08:38:34 得分 0
1. regsvr32 smapvid.ax
2. CoCreateInstance() ---> create you filter instance.
3. AddFilter() --> add your filter in your enviroment
4. ConnectFilter() --> maybe you do itTop
2 楼zhanghaichen(天)回复于 2003-06-02 13:20:02 得分 0
IBaseFilter* LoadFilter(IGraphBuilder* pGraph,REFCLSID rclsid,const char* pszFilterName)
{
IBaseFilter* pFilter = NULL;
CoCreateInstance(rclsid,NULL,CLSCTX_INPROC_SERVER,IID_IBaseFilter, (void**)&pFilter);
pGraph->AddFilter(pFilter, _bstr_t(pszFilterName));
return pFilter;
}
main()
{
// Initialize the COM library.
CoInitialize(NULL);
IGraphBuilder *pGraph = NULL;
IMediaControl *pControl = NULL;
IMediaEvent *pEvent = NULL;
// Create the filter graph manager and query for interfaces.
CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
pGraph->QueryInterface(IID_IMediaEvent, (void **)&pEvent);
IBaseFilter* pSmapvid
pSmapvid = LoadFilter(pGraph, CLSID_SmapVid, "smapvid");
...
pControl->Run();
..........
pControl->Release();
pEvent->Release();
pGraph->Release();
CoUninitialize();
}
Top




