如何基于有限的信息识别特定的ActiveX接口

时间:2012-08-07 20:14:53

标签: vba interface activex

我正在开发一个用于嵌入罗克韦尔自动化工厂谈话视图的ActiveX控件。 (见ActiveX DLL Error: Solved,看看我开始有多棒!)

目前我有一个似乎嵌入主机系统的ActiveX控件,但是没有完全集成到VBA进程中。我相信这是因为我没有实现一些必需的特定COM接口,但我没有关于它是什么的文档。我知道像Microsoft Forms 2.0控件那样的标准MS控件执行实现所需的界面并完全集成。

我缺少的关键功能涉及我需要设置的属性,以便我的VBA代码实际看到ActiveX对象。打开Factory Talk屏幕上放置的任何 activeX控件的属性面板时可以看到此属性,但在查看(例如)Excel中嵌入的ActiveX控件的属性时却看不到。因此,我可能试图追逐一些定制的罗克韦尔实施。我希望SO能够在识别其实现的功能的基础上帮助我找到我想要的东西。

现在到了实际的财产。在Factory Talk中,该属性称为“ExposeToVBA”,其类型为“long”。您可以从下拉列表中选择3个值:

    Not Exposed         - When set to this, the controls name is not even visible to VBA code
    Type Info Extension - Not sure what this does
    VBA Control         - VBA code can see and interact with the control.

当我为我的控件选择“Not Exposed”以外的任何内容时,我会收到一个没有文字的警告对话框。对于其他控件,我需要将其设置为“VBA Control”,以便在VBA代码中与它进行交互(d'oh)

我怀疑此属性的值被转换为对目标控件上的ActiveX接口的一些调用。

问题

我想要做的是确定哪些接口类似于“Forms 2.0 Label”实现与上述功能相匹配的接口。也许我可以将其转换为基于C#的控件(基于C# ActiveX control (CSActiveX)

我知道这是一个很长的镜头,但我会感激任何和所有的建议

1 个答案:

答案 0 :(得分:0)

当我发现具有我需要的功能的罐装Active-x控件时,这变得毫无意义。

FWIW我相信我使用的是DMGraph