基本上,我想知道的是是否有可能使用ipropertybag抢夺某些相机属性。这好像是

    CComPtr< IPropertyBag > pBag;
    hr = pM->BindToStorage( 0, 0, IID_IPropertyBag, (void**) &pBag );
    if( hr != S_OK )
        continue;

    // ask for the english-readable name
    //
    CComVariant var;
    var.vt = VT_BSTR;
    hr = pBag->Read( L"FriendlyName", &var, NULL );
    if( hr != S_OK )
        continue;


这是在获取相机的友好名称,我想知道是否有可能获取其他属性值,例如增益,偏移x和y,以及不使用此属性包的内容。

最佳答案

Selecting a Capture Device文章中记录了那里可用的属性:

"FriendlyName"  The name of the device. VT_BSTR
"Description"   A description of the device.    VT_BSTR
"DevicePath"    A unique string that identifies the device. (Video capture devices only.)   VT_BSTR
"WaveInID"  The identifier for an audio capture device. (Audio capture devices only.)   VT_I4


如果相应的驱动程序准备了某些注册表项,则可以使用其他属性,但是这种情况很少见。在任何情况下,读取属性都映射为从注册表读取,这意味着它们是静态值,与您感兴趣的运行时参数不同。诸如增益之类的值是使用相应的过滤器/引脚接口查询的。

10-07 19:37
查看更多