列出OLE自动化服务器的所有对象

时间:2016-08-23 09:30:44

标签: com ole typelib

如果我知道OLE自动化服务器的名称(在HKEY_CLASSES_ROOT下找到),有没有办法查询所有可用对象,它们的方法和属性,即使服务器不支持早期绑定,因此无法在对象浏览器?

如果是的话,请你提供几行代码(比较喜欢VB但是真的没关系)怎么做?

1 个答案:

答案 0 :(得分:1)

如果服务器与Type Library (.TLB file)关联,则可以。否则,就没有办法了。

如果它作为注册表项TypeLib的默认值存在,您可以找到TLB id(它也是一个guid)引用,这里:

HKCR\CLSID\<your CLSID>\TypeLib

然后,TypeLib id指向

HKCR\TypeLib\<tlb id>

在其中您可以在下面的键中找到TLB路径(取决于体系结构,它可能在x86或x64上有所不同)。

例如,以下是标准ADO的2.6(ActiveX数据对象)类型库的路径:

enter image description here

拥有TLB后,您可以使用COM的API进行浏览。从C ++或本机客户端可以,但对于自动化客户端,如VB,VBScript等,有这个DLL“tlbinf32.dll”允许你这样做。这是一个谈论它的链接:Accessing Type Libraries from VB