.NET WebBrowserコントロールを使用すると、次のことができます。
WebBrowser1.ObjectForScripting = new a_class();
ここで、a_class
はとして宣言され[ComVisible(True)]
ます。
その後、のインスタンスはa_class
、の名前でページ内のjavascriptにアクセスできますwindow.external
。
VB6 / VBA WebBrowser OCXコントロールで同じことを実現するにはどうすればよいですか?
設定する直接のプロパティは明らかにありません。
オブジェクトがあり、両方ともありません(ページ WebBrowser1.Document.parentWindow
がロードされている場合)が、後者に何かのインスタンスを割り当てると、次のようになります。WebBrowser1.Document.parentWindow.external
null
ランタイムエラー445
オブジェクトはこのアクションをサポートしていません。
それを除外するために、私は渡したいクラスにインターフェースを実装さIObjectSafety
せましたが、それは何もしませんでした(IObjectSafety
メンバーは呼び出されません)。
parentWindow.external
また、TypeLib情報を使用して既存のオブジェクトを検査してみました。ClassClassInfoFromObject
「自動化または必要なインターフェースをサポートしていません」でInterfaceInfoFromObject
失敗し、「添え字が範囲外です」で失敗します。