佚名通过本文主要向大家介绍了idispatch接口,idispatch,idispatch error 3092,idispatch error 3149,idispatch error 3088等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请教IDispatch接口成员函数调用的问题
描述:
解决方案1:
描述:
我调试一个基于MFC的自动化COM DLL程序(晚绑定,并且有类型库),客户端也是基于MFC的程序,以下四个IDispatch接口的四个成员函数中设置了断点。
COleDispatchImpl::GetTypeInfoCount
COleDispatchImpl::GetTypeInfo
COleDispatchImpl::GetIDsOfNames
COleDispatchImpl::Invoke
一、结果发现,只有COleDispatchImpl::Invoke 中的断点有效,为什么?其它三个函数什么时间才会被调用?
二、类型库什么情况下才会被访问到?
三、基于MFC的自动化COM DLL程序,在其它语言中能否可以调用?
解决方案1:
如果是双接口的话,vc做客户端的都是“直接通过虚表调用”COM组件的,不会调用IDispatch的其他方法的!
解决方案2:COleDispatchImpl::Invoke肯定会调用(如果通过IDispatch调用的话),但是其他的不是一定会,可以通过加载类型库获取函数id及其参数信息!!
解决方案3: 直接通过虚表调用
您可能想查找下面的文章:
- 实现了IDispatch接口的组件和ActiveX控件用起来有什么不同呢?我觉得一样可以用在Web页面上,为什么ActiveX控件还要多实现那么多各种各样
- 实现了IDispatch接口的组建,用vbscript怎么调用?
- MSFlexGrid有一个Picture属性,是一个IDispatch接口指针,请问如何操作?
- 怎样查询ActiveX控件的IDispatch接口每个ID代表函数
- MFC实现IDispatch接口问题?
- 如何hook住com接口的idispatch接口的虚函数invoke?
- IDispatch双接口,自动化,是一样的东西吗
- 如果一个组件实现IDispatch接口,那么能否是一个"自描述"的组件?
- C++SDK怎么使用IDispatch接口实现函数管理
- mfcdriller示例程序中,派生的IDispatch接口方法GetIDsOfNames的参数cNames是指什么?