use*_*173 4 c# com activex properties idispatch
我尝试环顾四周,但无法说服自己,因为COM / ActiveX的世界似乎非常令人困惑。
基本上,我想知道的是,给定GUID,有没有办法知道ActiveX控件公开的所有接口,属性和方法?我在某处读到,您只需要询问是否存在特定属性即可。但是,在知道房产之前,我该如何询问房产?
我猜想IDispatch可以做类似的事情,但是我无法确定如何使用它。如果这是可行的,那么最好使用C#的一小段代码将帮助我更好地理解。
谢谢
您可以为此使用PowerShell:
$a = new-object -comobject ProgId
#get properties
$a | Get-Member -membertype properties
#or get all members
$a | Get-Member
Run Code Online (Sandbox Code Playgroud)
在C#中,您可以使用Type.GetMembers方法。
ActiveX 控件不必是自描述的并且能够枚举支持的接口和/或属性。与其他 COM 类一样,它们实现某些接口并实现一组特定的强制接口,它们非常适合嵌入到主机应用程序中。也就是说,您可能最终无法找到某个有效 ActiveX 控件的属性。
但很多时候,如果给定的控件能够完成大多数控件的功能,您就可以成功完成此任务。Control 的 COM 类通常有一个类型库,您可以通过查看注册表引用或IProvideClassInfo接口来发现。从那时起,当您持有ITypeInfo接口时,您可以找到IDispatch该类的派生接口,然后使用保存此信息的类型库枚举属性和方法。
| 归档时间: |
|
| 查看次数: |
2415 次 |
| 最近记录: |