pwwzlxz
驱动牛犊
驱动牛犊
  • 注册日期2003-01-04
  • 最后登录2009-08-28
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1713回复:1

encoder minidriver 不能得到接口问题.请帮我看一下

楼主#
更多 发布于:2009-06-10 17:37
我的驱动中定义了IVideoEncoder接口,但是应用程序中得不到.谁能帮我看一下.个人感觉应该是INF的问题.用户模式应用代码如下
if(piFilter->QueryInterface(CLSID_IVideoEncoderProxy,(void **)&encoder) == S_OK)
这句总是执行不正确.驱动代码在附件中. avshws_test.rar avshws_test.rar  

 {
            HRESULT hr;
            String ^ name;
//            FILTER_INFO temp;
            ICreateDevEnum* piCreateDevEnum;
            HRESULT hResult = CoCreateInstance(
                    CLSID_SystemDeviceEnum,
                    NULL,
                    CLSCTX_INPROC_SERVER,
                    __uuidof( piCreateDevEnum ),
                    reinterpret_cast< void** >( &piCreateDevEnum ) );
            if( SUCCEEDED( hResult ) )
            {
                // Get class enumerator for WDM Streaming Capture Devices category
                IEnumMoniker* piEnumMoniker;
                hResult = piCreateDevEnum->CreateClassEnumerator( AM_KSCATEGORY_CAPTURE, &piEnumMoniker, 0 );
                piCreateDevEnum->Release();
            
                if( SUCCEEDED( hResult ) )
                    hResult = piEnumMoniker->Reset();
            
                if( SUCCEEDED( hResult ) )
                {
                    // Enumerate KS devices
                    ULONG cFetched;
                    IMoniker* piMoniker;
                    while( (hResult = piEnumMoniker->Next( 1, &piMoniker, &cFetched )) == S_OK )
                    {
                        IBaseFilter* piFilter;
                        IPropertyBag *pPropBag;
                        hr = piMoniker->BindToStorage(0, 0, IID_IPropertyBag,(void **)&pPropBag);
                        if (SUCCEEDED(hr))
                        {
                            VARIANT varName;
                            VariantInit(&varName);
                            hr = pPropBag->Read(L"FriendlyName", &varName, 0);
                            if (SUCCEEDED(hr))
                            {
                                // Display the name in your UI somehow.
                                name = gcnew String(varName.bstrVal);
                                if(name->Compare(name,gcnew String("avshws Source encoder")) == 0)
                                {
                                    hResult = piMoniker->BindToObject(
                                                                NULL,
                                                                NULL,
                                                                __uuidof( piFilter ),
                                                                reinterpret_cast< void** >( &piFilter )
                                                                );
                                    IKsPropertySet *pKs=0;
                                    IVideoEncoder * encoder;
                                    DWORD pTypeSupport = 0;
                                    pTypeSupport = KSPROPERTY_WD3KSPROXYSAMPLE_RATE;
                                    pTypeSupport = 0;
                                    if(piFilter->QueryInterface(CLSID_IVideoEncoderProxy,(void **)&encoder) == S_OK)
                                    {
                                        hr = pKs->QuerySupported(ENCAPIPARAM_BITRATE_MODE,0,&pTypeSupport);
                                        if(hr == S_OK)
                                        {
                                            hr = S_OK;
                                        }
                                        pKs->Release();
                                    }
                                }
                            }
                            piMoniker->Release();
                        }
                    }
                    piEnumMoniker->Release();
                }
            
            }
        }
pwwzlxz
驱动牛犊
驱动牛犊
  • 注册日期2003-01-04
  • 最后登录2009-08-28
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望21点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-06-12 11:50
怎么都每人看?
游客

返回顶部