首页 > 代码库 > 函数可以连接任意两个filter
函数可以连接任意两个filter
函数可以连接任意两个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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。