2016-10-08 15 views
2

キャプチャデバイスは有効ですが、バインドできませんでした。 800703E8は、通常、登録されていないフィルタを意味します。 win10-64pMoniker-> BindToObjectが800700c1を返す原因

 if (SUCCEEDED(hr)) 
      { 
       char tempDevicePathUTF8[256]; 
       memset(tempDevicePathUTF8,0,256); 
       tempDevicePathUTF8[0] = 0; 
       WideCharToMultiByte(CP_UTF8, 0, varName.bstrVal, -1, 
            tempDevicePathUTF8, 
            sizeof(tempDevicePathUTF8), NULL, 
            NULL); 
       if (strncmp(tempDevicePathUTF8, 
          (const char*) deviceUniqueIdUTF8, 
          deviceUniqueIdUTF8Length) == 0) 
       { 
        // We have found the requested device 
        deviceFound = true; 
        hr = pM->BindToObject(0, 0, IID_IBaseFilter, 
              (void**) &captureFilter); 
        if FAILED(hr) 
        { 
         WEBRTC_TRACE(webrtc::kTraceError, webrtc::kTraceVideoCapture, 
            _id, "Failed to bind to the selected capture device %d",hr); 
        } 

        if (productUniqueIdUTF8 
         && productUniqueIdUTF8Length > 0) // Get the device name 
        { 

         GetProductId(deviceUniqueIdUTF8, 
            productUniqueIdUTF8, 
            productUniqueIdUTF8Length); 
        } 

       } 
      } 

それはのWebRTCに共通の捕捉ステップだとコンピュータのほとんどでも行うことができますが、この特定のものはできません。

答えて

1

0x800700C1ERROR_BAD_EXE_FORMATです。これはキャプチャデバイスに問題があることを示しています(有効ではあるが)。典型的な問題の1つは、デバイスが32ビットアプリケーションで正しく登録されていて、64ビットでは正しく登録されていないことです(逆も同様です)。いずれにしても、特定のDirectShowフィルタのCOM登録の問題です。

関連する問題