在我的cpp / win32项目下使用以下代码,我收到错误“class is not registered”
hr = CoCreateInstance(CLSID_PIAsyncFile, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**) &ppF);
if (SUCCEEDED(hr)) {
hr = pGraph->AddFilter(ppF, L"My Async Source (File)");
}
这不是真的,因为我的过滤器在GraphEdit下运行得很好,我也可以使用IFilterMapper2枚举标记找到它。我也可以成功地从直接显示过滤器绑定到对象。
hr = pMoniker->BindToObject(0, 0, IID_IBaseFilter, (void**)&ppF);
那么, CoCreateInstance 有什么问题?
PS:这是一个在64位Windows 7系统下注册的32位过滤器。在注册表中,我还可以在sysWOW3264(在64位窗口上运行的32位Windows应用程序的镜像注册表)下找到过滤器。
您还可以在我http://www.codeproject.com/Messages/4603967/Class-not-registered-error.aspx
的代码项目帖子中查询和查找源代码答案 0 :(得分:0)
感谢Roman R,我的代码中的问题是错误的CLSID声明。