我想实现IPinFlowControl
接口,它有一个Block方法。如何在Directshow中实现IPinFlowControl接口
i相下面的代码曾试图,
Mux::NonDelegatingQueryInterface(REFIID iid, void** ppv)
{
if(iid==IID_IPinFlowControl)
{
return GetInterface((IPinFlowControl*) this, ppv);
}
return CBaseFilter::NonDelegatingQueryInterface(iid, ppv);
}
STDMETHODIMP Mux::Block(DWORD dwBlockFlags,HANDLE hEvent)
{
return S_OK;
}
和登记上述过滤器。
现在在代码中,我创建上述过滤器的情况下,连接它的输出引脚,然后尝试
IPin *pMuxOut2 = NULL;
hr = FindUnconnectedPin(mux,PINDIR_OUTPUT,&pMuxOut2);
IPinFlowControl *pinFlowControl=NULL;
hr=pMuxOut2->QueryInterface(IID_IPinFlowControl,(void**)&pinFlowControl);
但我pinFlowControl得到E_NonInterface,
还请大家帮我正确地实现块的方法来阻止和Unblock输出。
谢谢@Wimmel,我会看出来,并会回你:) – meghana