使用 .NET WebBrowser 控件,我们可以:
WebBrowser1.ObjectForScripting = new a_class();
wherea_class
被声明为[ComVisible(True)]
.
之后,a_class
页面中名为 的 javascript 可以访问该实例window.external
。
如何使用 VB6/VBA WebBrowser OCX 控件实现相同的功能?
显然没有要设置的直接属性。
有和对象,两者都没有( 假设页面已加载),但是将某物的实例分配给后者会导致WebBrowser1.Document.parentWindow
WebBrowser1.Document.parentWindow.external
null
运行时错误 445
对象不支持此操作。
只是为了排除它,我让我想要传递的类实现了IObjectSafety
interface,但这没有做任何事情(IObjectSafety
甚至没有调用成员)。
parentWindow.external
我还尝试使用 TypeLib Information检查现有对象。ClassClassInfoFromObject
因“不支持自动化或所需接口”InterfaceInfoFromObject
而失败,因“下标超出范围”而失败。