Com 如何从OCX或TLB文件中获取导入的类型库?

Com 如何从OCX或TLB文件中获取导入的类型库?,com,import,idl,tlb,Com,Import,Idl,Tlb,我确信没有办法找到ActiveX的COM依赖项,但令我惊讶的是,OLEVIEW显示了一些注释,如: //TLib://TLib:OLE自动化:{00020430-0000-0000-C000-0000000000 46} importlib(“stdole2.tlb”); //TLib:Visual Basic运行时对象和过程:{EA544A21-C82D-11D1-A3E4-00A0C90AEA82} 进口银行(“3”) 我尝试使用TypeLibInfoFromFile提取相同的信息,但根据我

我确信没有办法找到ActiveX的COM依赖项,但令我惊讶的是,OLEVIEW显示了一些注释,如:

//TLib://TLib:OLE自动化:{00020430-0000-0000-C000-0000000000 46} importlib(“stdole2.tlb”); //TLib:Visual Basic运行时对象和过程:{EA544A21-C82D-11D1-A3E4-00A0C90AEA82} 进口银行(“3”)


我尝试使用TypeLibInfoFromFile提取相同的信息,但根据我在MSDN中找到的内容,没有Api提供此信息。您是否知道从OCX或其Tlb文件中提取此信息的方法?知道我所有的OCX都是用vb6编译的,我能相信导入(显式不在代码中)接口的信息吗?

好吧,我找到了这个问题的答案。我会写在这里,以防有人会搜索相同的问题。可以找到一些依赖项,但无法确定是否找到了所有依赖项。基本上,您必须枚举每个类型和接口,以及每个类型的每个成员,以查找模块中的所有类型,对于找到的每个类型,您应该检查它是否在外部类型库中。最后,您有一个引用的typelib列表

此方法的问题在于,您只能找到公共接口中使用的类型(字段、返回值和参数),并且缺少每个本地对象或动态创建的对象。这就是说,你可以检查这个链接的一个或更好的