.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.externalnull
ランタイムエラー445
オブジェクトはこのアクションをサポートしていません。
それを除外するために、私は渡したいクラスにインターフェースを実装さIObjectSafetyせましたが、それは何もしませんでした(IObjectSafetyメンバーは呼び出されません)。
parentWindow.externalまた、TypeLib情報を使用して既存のオブジェクトを検査してみました。ClassClassInfoFromObject「自動化または必要なインターフェースをサポートしていません」でInterfaceInfoFromObject失敗し、「添え字が範囲外です」で失敗します。