我想获得接口IBaseFilter系统混音器,但是收到错误 REGDB_E_CLASSNOTREG类未在以下位置注册:
itertools.groupby
此代码早先工作。
完全代码:
filterName ="立体声混音器(IDT高清音频编解码器)"
hr = pEndpoint->Activate(__uuidof(IBaseFilter), CLSCTX_ALL, /*&var*/ NULL, (void**)ppFilter);
答案 0 :(得分:2)
问题是由与已安装的DirectShowSpy工具发生冲突引起的。
MM Activate
的{{1}}大概会做以下事情:
IBaseFilter
系统设备枚举器CLSID_SystemDeviceEnum
对if(interface is IBaseFilter)
{
IMMDeviceActivator pMmDeviceActivator;
CoCreateInstace(CLSID_SystemDeviceEnum, ..., &pMmDeviceActivator);
return pMmDeviceActivator->Activate(pMmDevice, ...)
}
的实现没有记录(接口保留供内部使用),DirectShowSpy没有很好地处理它。从版本1.0.0.2106开始,它做对了。