インターフェイスを実装したいのですがIPinFlowControl
、メソッド Block が 1 つあります。
以下のコードで試してみましたが、
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 を取得しました。
また、出力をブロックおよびブロック解除するためにブロックメソッドを適切に実装するのを手伝ってください。