请问有没有人知道 如何使用工具/API获取一个已注册接口的TLB,比如IFolderView。我使用的是VC 6.0,利用OLE Viewer可以查看接口,可是却无法得到IDL或者TLB。

解决方案 »

  1.   

    TLB通常在所在的dll中,是资源文件。
    也可以使用IDistpatch接口得到其中的tlb信息。
      

  2.   

    1, 使用OLE Viewer找出需要的接口,并保存为IDL文件2, 使用midl把IDL文件转为TLB文件,例如midl   test.idl   /tlb   test.tlb   
      

  3.   

    我也是用ole viewer,但是接口就是无法直接得到tlb/idl,比如IFolderView,我就是找这个接口定义的时候发现的这个问题...我知道vc的lib中有这个接口的声明,可我希望能通过工具或者利用某些系统调用得到类型库
      

  4.   

    先得到IFolderView 接口,然后再得到IDispatch
    有两个成员就能得到这些了/。
    IDispatch::GetTypeInfoCount
    IDispatch::GetTypeInfo
      

  5.   

    to akirya:我想获取一个接口的类型库,所以没有DLL可以分析;同样的道理,没有一个com对象可以调用那些函数
    to huqian2003:Ole Viwer中只有Object Classes和Type Libraries才能查看类型库,而Interface是无法查看类型库的还是想不明白还有,我说错了,不识IFolderView,是IShellView,sorry...汗...