COM接口实现者的文档

时间:2009-09-23 22:11:11

标签: com documentation winapi interop

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

我想知道在Win32文档中哪些地方可以找到COM接口存在的实现。例如,我知道(感谢goodgle)IShellLinkW由CLSID_ShellLink标识的类实现,IObjectArray由CLSID_EnumerableObjectCollection实现,依此类推。

但我怎么知道呢?我安装了Windows SDK(最新版),我似乎无法根据文档中的信息来解决这个问题?

3 个答案:

答案 0 :(得分:1)

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

查看COM Interop Part 1: C# Client Tutorial处的TlbImp示例:

答案 1 :(得分:0)

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

此外,您可以打开注册表,转到HKCR \ Interface并在那里分析记录。

答案 2 :(得分:0)

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

如果你能给出一个具体的例子,说明你想要实现的目标,那么它可能是一种替代方式。如果您只是想知道特定类或.dll实现了哪些接口,您可以使用oleview

等查看器来实现