码迷,mamicode.com
首页 > 其他好文 > 详细

函数可以连接任意两个filter

时间:2014-10-27 19:32:04      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:des   blog   io   sp   on   2014   log   cti   amp   

函数可以连接任意两个filter

HRESULT ConnectFilters( IBaseFilter *pSrc, IBaseFilter *pDest )
{
	IPin *pIn = 0;
	IPin *pOut = 0;
	IEnumPins *pOutEnum;
	IEnumPins *pInEnum;
	PIN_DIRECTION ThisPinDir;
	
	HRESULT hr = pSrc->EnumPins( &pOutEnum );
	hr = pDest->EnumPins( &pInEnum );
	while (pOutEnum->Next( 1, &pOut, NULL) == S_OK )
	{
		hr = pOut->QueryDirection( &ThisPinDir );
		while( ThisPinDir==PINDIR_OUTPUT && pInEnum->Next( 1, &pIn, 0 ) == S_OK )
		{
			hr = pIn->QueryDirection( &ThisPinDir );
			if( ThisPinDir==PINDIR_INPUT )
			{
				// Try to connect them.
				hr = pigb->Connect( pOut, pIn);
				if(SUCCEEDED(hr))
				{
					hr = pOutEnum->Release();
					hr = pInEnum->Release();
					hr = pIn->Release();
					hr = pOut->Release();
					return S_OK;
				}
				
			}
			hr = pIn->Release();
		}//end while
		
		hr = pInEnum->Reset();
		hr = pOut->Release();
    }//end while
	pOutEnum->Reset();
	hr = pOutEnum->Release();
	hr = pInEnum->Release();
	
    return E_FAIL;
}


函数可以连接任意两个filter

标签:des   blog   io   sp   on   2014   log   cti   amp   

原文地址:http://blog.csdn.net/mao0514/article/details/40512317

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!