Activate控件已经注册了,且注册表里有对应Com类,但是CoCreateInstance一直提示E——NOINTERFACE,求解

zmqarenas 2015-11-03 07:59:58
VS开发环境,Import进一个第三方控件,生成的tlh文件中有三个COM对象类,其中两个CoCreateInstance可以创建出实例能成功,第三个不行,求解。
生成的tlh文件中的三个类对象:
struct __declspec(uuid("cff9de8b-1ad5-4d25-a608-934886c8ff77"))
/* LIBID */ __IPModuleLib;
struct __declspec(uuid("8186bb24-fc1c-451e-bfbb-c8e3d0de5363"))
/* dispinterface */ _INetFinderEvents;
struct __declspec(uuid("f7133e54-3ed2-43a8-9329-cbf336885f4d"))
/* dual interface */ IIPMDevice;
enum SubPanelType;
enum IPMConfigResult;
struct /* coclass */ NetFinder;
struct __declspec(uuid("836403f8-e1b5-46ea-a865-13f0c173d322"))
/* dual interface */ INetFinder;
enum FindWay;
struct /* coclass */ IPMDevice;
struct __declspec(uuid("25363de5-9ea4-4014-b5bf-858eaae442f7"))
/* dispinterface */ _ICooMonitorEvents;

创建实例时:
CoCreateInstance(__uuidof(CooMonitor) , NULL, CLSCTX_INPROC_SERVER, __uuidof(ICooMonitor), (void**)&m_pCooMonitorPtr));//CooMonitor和NetFinder的可以成功,

CoCreateInstance(__uuidof(IPMDevice) , NULL, CLSCTX_INPROC_SERVER, __uuidof(_ICooMonitorEvents), (void**)&(m_pCooMonitorEventsPtr))一直提示E_NOINTERFACE的错误,注册表里类对象标示符IPMDevice对应的接口是_ICooMonitorEvents,求解!
...全文
289 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
redui 2015-11-11
  • 打赏
  • 举报
回复
连接点的例子,可以在MSDN的示例代码中找到
zmqarenas 2015-11-10
  • 打赏
  • 举报
回复
是否可以给出一个事件接收的例子?
zmqarenas 2015-11-10
  • 打赏
  • 举报
回复
嗯,第一次用控件,后来发现事件有点特殊的
redui 2015-11-04
  • 打赏
  • 举报
回复
IxxxEvents是事件接口(连接点),不是组件实现的,不能创建,必须由客户端(组件使用者)实现,并连接到对应的组件接口上,用来接收组件发出的事件通知。
zmqarenas 2015-11-03
  • 打赏
  • 举报
回复
有大神能指点一下吗?

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧