Что заставляет pMoniker-> BindToObject возвращать 800700c1

Устройство захвата действует, но мне не удалось его связать. 800703E8 обычно означает фильтр незарегистрированный. win10-64

        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 и может хорошо работать на большинстве компьютеров, но этот конкретный не может.

2

Решение

0x800700C1 является ERROR_BAD_EXE_FORMAT что указывает на проблему с устройством захвата (даже если вы предполагаете, что оно действительно). Одна из типичных проблем заключается в том, что устройство правильно зарегистрировано для 32-разрядных приложений, но не для 64-разрядных (или наоборот). В любом случае, это проблема регистрации COM определенного фильтра DirectShow.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector