首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UVC扩展单元CoCreateInstance失败

UVC扩展单元CoCreateInstance失败
EN

Stack Overflow用户
提问于 2013-11-20 07:13:07
回答 2查看 1.4K关注 0票数 0

我试图为UVC兼容的USB摄像头编写UVC扩展单元驱动程序。

我从哪里开始?

我开始基于下面链接中提供的MSDN示例进行开发。http://msdn.microsoft.com/en-us/library/ff556621%28v=vs.85%29.aspx

替换了过程中指定的所有GUID。我正在使用罗技Pro 9000 USB摄像头。使用UVCView工具获得UVC扩展guid,并分配给PROPSETID_VIDCAP_EXTENSION_UNIT。

编写了一个示例应用程序来访问这个扩展单元。

代码语言:javascript
复制
IExtensionUnit * g_pIXCcontrol;
hr = CoCreateInstance(__uuidof(IExtensionUnit), NULL, CLSCTX_INPROC_SERVER, 
    IID_IExtensionUnit, (void **)&g_pIXCcontrol);

我面临什么问题?

CoCreateInstance返回未注册的类: 0x80040154 (REGDB_E_CLASSNOTREG)

我已经使用uvcplgn.ax命令通过命令提示符注册了regsvr32,这反过来也会抛出成功注册的消息。但是即使在注册之后,CoCreateInstance也会抛出类未注册的错误。

这可能是什么原因?MSDN示例是否遗漏了适当注册扩展单元的内容?

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-03 07:05:13

MSDN中提供的UVC扩展示例代码的dll相关函数和注册部分存在一些问题。我已经通过修改dll相关代码和接口接收代码暂时解决了这个问题。

现在,我能够在我的应用程序中获得完美的接口,并能够通过扩展单元与UVC USB摄像头进行通信。

感谢您对Roman R的支持。

票数 1
EN

Stack Overflow用户

发布于 2013-11-20 11:24:52

CoCreateInstance的第一个参数必须是COM类标识符,CLSID__uuidof(IExtensionUnit)计算出或预期的可能性接近于零。

您应该使用CLSID_ExtensionUnit (来自该示例)。

UPD。代码段,以使代码可以使用特定的CLSID。

代码语言:javascript
复制
// Copy your CLSID of interest here in place of XXXXXXXX-YYYY-...
class __declspec(uuid("XXXXXXXX-YYYY-...")) ExtensionUnit; 
CoCreateInstance(__uuidof(ExtensionUnit), ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20089654

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档