0

統合カメラの出力ピンからインターフェイスを取得しようとしていますIAMStreamConfigが、失敗しE_NOINTERFACEます。

私はIntCamをテストデバイスとして使用していますが、実際には、それぞれが異なる構成をサポートする2つの出力ピンを備えたソースフィルターがあります。

これがICaptureGraphBuilder2::FindInterface、特定の出力ピンからインターフェイスを取得する方法がまだわからないため、使用がオプションかどうかわからない理由です。

CComPtr<IEnumPins> pEnum = NULL;
IPin* pPin = NULL;

HRESULT hr = pFilter->EnumPins(&pEnum);
if (FAILED(hr))
    return hr;

while (S_OK == pEnum->Next(1, &pPin, NULL))
{
   IAMStreamConfig* pAMStreamConfig;
   hr = pPin->QueryInterface(IID_PPV_ARGS(&pAMStreamConfig));
   if (FAILED(hr))
      return hr;
   // ...
}
4

1 に答える 1

3

IAMStreamConfigは必須のインターフェイスではありません。カメラ フィルターではほとんどの場合に利用できますが、欠落している可能性があります (多くのアプリケーションは、このインターフェイスのないデバイスでの動作を拒否します)。つまり、正しいフィルターとピンを照会していることを再確認する必要があります。コード スニペットは適切に見えます。

WDM Video Capture Filter実際のカメラはwhich hasを介して実装されることが最も多いIAMStreamConfigですが、仮想デバイスを使用しているため、異なる場合があります。

于 2012-08-22T12:18:27.300 に答える