实际上不可能为任何COM对象构建这样的工具,您可能对特定对象有一些好运.如果类型库可用,那么您可以使用OLEView,或者您可以以编程方式打开和遍历类型库本身.请记住,类型库的内容正是开发人员想要包含在其中的内容; 没有什么可以阻止实现更多接口的对象,而不是类型库所说的.
对于没有类型库的对象,不可能生成通用工具:
QueryInterface工作方式,如果它支持每个可能的接口,你将不得不询问被调查的对象.这样的工具在哪里获得有关对象可以支持的所有可能接口的列表?虽然由于代理要求而某些接口在注册表中注册,但并非所有接口都是如此,并且它们绝不是必需的.IDispatch,但是对于从中派生的接口,IUnknown无法以编程方式发现有关接口的内容.您还有一个问题,即某些对象可能有代理层为它们实现的其他接口,例如,如果接口已被代理,那么您也可以QueryInterface从它到它,IProxyManager尽管对象本身没有实现此接口(它是代理的一部分).
| 归档时间: |
|
| 查看次数: |
2631 次 |
| 最近记录: |