如何知道一个COM组件的接口函数

frequent 2013-12-17 03:11:18
我对COM组件是一个新手,现在想hook住一个COM组件的接口函数。
怎么样可以知道一个COM组件有哪些接口函数呢(该COM组件为一个DLL)?
...全文
606 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
许文君 2013-12-18
  • 打赏
  • 举报
回复
还是直接用工具吧,你网上搜下COM接口查询工具吧,
frequent 2013-12-18
  • 打赏
  • 举报
回复
引用 8 楼 xuddk727 的回复:
如果是COM的dll你可以自己去枚举接口
如何枚举呢?不好意思,我对COM组件是第一次接触。
许文君 2013-12-18
  • 打赏
  • 举报
回复
如果是COM的dll你可以自己去枚举接口
frequent 2013-12-18
  • 打赏
  • 举报
回复
引用 6 楼 xuddk727 的回复:
[quote=引用 5 楼 frequent 的回复:] [quote=引用 4 楼 xuddk727 的回复:] 先从控制台注册COM组件,regsvr32 xxx.dll 然后右键工程,添加-》类,选择typelib中的MFC类(需要COM的dll本身有typelib导出),从以下来源添加类的单选中,选择文件,点击下方位置下的右侧 "..."按钮,选择这个COM的DLL文件,双击左边的接口,就会在右边对应生成MFC类,你就可以看到它对应的接口了。
兄弟,我照你的操作,提示“No type library found in file". 我是要查看win7系统中c:\windows\system32\MMDevAPI.dll这个DLL文件。[/quote] 那说明他妹打包typelib到dll,需要对应的typelib[/quote] 那是不是就没办法查看里面的接口函数了呢?
许文君 2013-12-18
  • 打赏
  • 举报
回复
引用 5 楼 frequent 的回复:
[quote=引用 4 楼 xuddk727 的回复:] 先从控制台注册COM组件,regsvr32 xxx.dll 然后右键工程,添加-》类,选择typelib中的MFC类(需要COM的dll本身有typelib导出),从以下来源添加类的单选中,选择文件,点击下方位置下的右侧 "..."按钮,选择这个COM的DLL文件,双击左边的接口,就会在右边对应生成MFC类,你就可以看到它对应的接口了。
兄弟,我照你的操作,提示“No type library found in file". 我是要查看win7系统中c:\windows\system32\MMDevAPI.dll这个DLL文件。[/quote] 那说明他妹打包typelib到dll,需要对应的typelib
许文君 2013-12-18
  • 打赏
  • 举报
回复
有可能就是没有接口,有些情况是他实现接口类,这样一般也无法看,有空到时帮你看看,你需要他的接口做什么?
frequent 2013-12-18
  • 打赏
  • 举报
回复
引用 10 楼 xuddk727 的回复:
还是直接用工具吧,你网上搜下COM接口查询工具吧,
哎,用查询工具显示里面也是空的。
frequent 2013-12-17
  • 打赏
  • 举报
回复
引用 4 楼 xuddk727 的回复:
先从控制台注册COM组件,regsvr32 xxx.dll 然后右键工程,添加-》类,选择typelib中的MFC类(需要COM的dll本身有typelib导出),从以下来源添加类的单选中,选择文件,点击下方位置下的右侧 "..."按钮,选择这个COM的DLL文件,双击左边的接口,就会在右边对应生成MFC类,你就可以看到它对应的接口了。
兄弟,我照你的操作,提示“No type library found in file". 我是要查看win7系统中c:\windows\system32\MMDevAPI.dll这个DLL文件。
许文君 2013-12-17
  • 打赏
  • 举报
回复
先从控制台注册COM组件,regsvr32 xxx.dll 然后右键工程,添加-》类,选择typelib中的MFC类(需要COM的dll本身有typelib导出),从以下来源添加类的单选中,选择文件,点击下方位置下的右侧 "..."按钮,选择这个COM的DLL文件,双击左边的接口,就会在右边对应生成MFC类,你就可以看到它对应的接口了。
worldy 2013-12-17
  • 打赏
  • 举报
回复
就像这样 #import "C:\Program Files\Common Files\System\ado\msado28.tlb" \ no_namespace \ rename("EOF","adoEOF")
frequent 2013-12-17
  • 打赏
  • 举报
回复
引用 1 楼 worldy 的回复:
import进来之后不就都知道了
怎么import哦?对不起,我对com组件是个门外汉。
worldy 2013-12-17
  • 打赏
  • 举报
回复
import进来之后不就都知道了

3,245

社区成员

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

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