zoukankan      html  css  js  c++  java
  • DirectX:函数可以连接任意两个filter 分类: DirectX 2014-10-27 19:20 466人阅读 评论(0) 收藏

    函数可以连接任意两个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;
    }


    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    GlusterFS安装部署
    glusterfs peer失败
    GlusterFs 启动报错
    利用idea反编译jar包
    hive 错误记录 之moveing 失败
    节点不可用,显示noReady
    kafka 配置认证与授权
    flink (2) 读取kafka数据
    Flink (1) 安装部署
    redis the cluster is down
  • 原文地址:https://www.cnblogs.com/mao0504/p/4706489.html
Copyright © 2011-2022 走看看