可以获得当前filter的ibasefilter接口么
答案:1 悬赏:50 手机版
解决时间 2021-11-15 19:57
- 提问者网友:暮烟疏雨之际
- 2021-11-15 07:43
可以获得当前filter的ibasefilter接口么
最佳答案
- 五星知识达人网友:逃夭
- 2021-11-15 09:21
IBaseFilter是一个Filter的接口,为了实现在FilterGraph中的统一,所有的Filter都有一个IBaseFilter接口,并将其暴露在外。在创建一个Filter时总是可以首先获得该接口,然后通过该接口访问其他接口。
例如,以下创建一个CLSID_SampleGrabber Filter,首先获得其 IID_IBaseFilter接口指针pGrabFilter,然后通过IBaseFilter的接口方法QueryInterface访问接口IID_ISampleGrabber,获得其指针pSampleGrabber。
HRESULT hr;
CComPtr pGrabFilter = NULL;
CComPtr pSampleGrabber = NULL;
CComPtr pTmpPin = NULL;
JIF(CoCreateInstance(CLSID_SampleGrabber,
NULL,
CLSCTX_INPROC_SERVER,
IID_IBaseFilter,
(LPVOID *) &pGrabFilter));
hr = pGrabFilter->QueryInterface(IID_ISampleGrabber,
(void * *) &pSampleGrabber);
if (FAILED(hr))
{ return hr; }
例如,以下创建一个CLSID_SampleGrabber Filter,首先获得其 IID_IBaseFilter接口指针pGrabFilter,然后通过IBaseFilter的接口方法QueryInterface访问接口IID_ISampleGrabber,获得其指针pSampleGrabber。
HRESULT hr;
CComPtr
CComPtr
CComPtr
JIF(CoCreateInstance(CLSID_SampleGrabber,
NULL,
CLSCTX_INPROC_SERVER,
IID_IBaseFilter,
(LPVOID *) &pGrabFilter));
hr = pGrabFilter->QueryInterface(IID_ISampleGrabber,
(void * *) &pSampleGrabber);
if (FAILED(hr))
{ return hr; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯