代码之家  ›  专栏  ›  技术社区  ›  TheCodeJunkie

COM接口实现者文档[关闭]

  •  2
  • TheCodeJunkie  · 技术社区  · 16 年前

    我正在从一个C应用程序进行一些COM互操作,我似乎找不到答案。

    我想知道在win32文档中哪里可以找到,该文档包含COM接口的实现。例如,我知道(多亏goodgle),ishellinkw是由clsid_Shelllink标识的类实现的,iobjectarray是由clsid_EnumerableObjectCollection实现的,等等。

    但是我怎么知道呢?我已经安装了WindowsSDK(最新)版本,我似乎无法完全理解基于文档中的信息应该如何解决这个问题?

    3 回复  |  直到 16 年前
        1
  •  0
  •   Toby Allen mercator    16 年前

    我认为,如果不加载系统中的每个COM对象并要求它提供它所拥有的类以及它们实现的接口的列表,您想要的是不可能的。据我所知,此信息不存储在注册表中(存储所有外部COM信息的位置)。

    如果你能举一个具体的例子来说明你试图达到的目标,他们可能是另一种方法。如果只想知道特定类或.dll实现了哪些接口,可以使用查看器来实现,例如 oleview

        2
  •  1
  •   Remus Rusanu    16 年前

    你为什么要知道?像tlbimp.exe这样的导入实用程序正在从exe或dll类型信息中找出必要的详细信息,并为您创建覆盖这些信息的包装器。

    查看TLBIMP示例 COM Interop Part 1: C# Client Tutorial :

        3
  •  0
  •   elder_george    16 年前

    大多数标准COM对象IID和CLSID都列在uuid.lib中,包含在WindowsSDK中。所以你可以写一个简单的应用程序来打印它们。

    此外,您还可以打开regedit,转到hkcr\interface并分析那里的记录。