代码之家  ›  专栏  ›  技术社区  ›  Tamás Szelei

如何找到ActiveX控件的接口?

  •  5
  • Tamás Szelei  · 技术社区  · 14 年前

    给定ActiveX控件的实例,如何枚举其接口?(我想得到接口的名称)。

    3 回复  |  直到 14 年前
        1
  •  3
  •   Paul Mitchell    14 年前

    像其他人提到的那样,唯一的方法是查询所有可能接口的接口。这正是微软工具OleView为您所做的。

        2
  •  3
  •   Community Dunja Lalic    7 年前

    不幸的是,这不是COM的设计目标。在基本的COM级别上,您可以 ask an object whether it supports 一个特定的UUID标识的接口,一次一个。因为有很多潜在的UUID,用这种方法得到一个详尽的列表需要花费相当多的时间!虽然大多数对象实现都会在内部跟踪受支持接口的列表,但是没有标准的COM方式从外部访问这些列表。即使有,您也只能通过在注册表中查找它们的UUID来获得接口的编程名称,这并不总是可靠的。

    ActiveX objects (a tricky term!) IDispatch . 如果对象表现良好,您将能够 get some information on the methods 他们通过 GetTypeInfo() . 这个 包括方法所属的接口(如果有的话)的名称。

    总之,COM在对象元数据方面相当差。

        3
  •  1
  •   Eugene Mayevski 'Callback    14 年前