如何编程获取ActiveX组件提供的方法或属性?

解决方案 »

  1.   

    列出一个对象的全部成员,请先引用TypeLib Information。
    Private Sub Command1_Click()
        
        Dim obj         As Class1
        Dim objMembers  As Members
        Dim objMember   As MemberInfo
        
        Set obj = New Class1
        Set objMembers = InterfaceInfoFromObject(obj).Members
        
        For Each objMember In objMembers
            Debug.Print objMember.Name, objMember.InvokeKind
            '...
        Next
        
    End Sub具体的用法请参考相关文档。
      

  2.   

    Private Sub Command1_Click()
        
        Dim objTypeLibInfo  As TypeLibInfo
        Dim objInterface    As InterfaceInfo
        Dim objMember       As SearchItem
        
        ' 从指定 OCX 中取得类型库信息
        Set objTypeLibInfo = TypeLibInfoFromFile("C:\Work Dir\MyControl\NovaControl.ocx")
        ' 遍历接口
        For Each objInterface In objTypeLibInfo.Interfaces
            Debug.Print "Interface "; objInterface.Name, "GUID = "; objInterface.Guid
            ' 遍历成员
            For Each objMember In objInterface.Members.GetFilteredMembers
                Debug.Print , "Member "; objMember.Name, "Type = "; objMember.InvokeKinds
            Next
        Next
        
    End Sub