> その場合、ブラウザコントロールをホストしている側に
> IDocHostUIHandler を実装し、GetExternal メソッドで
> 独自のオブジェクト (IDispatch) を公開することによって
> 実現することができます。
長年、この手法を使って各種アプリを作っていたわけですが、
オブジェクトが グローバルな領域ではなく、window.external
として公開されることに不満を感じていました。
#困りはしないんだけど、カッコ悪いからねえ。
#みんなも、そう思うでしょ??(笑)
何とかしてグローバルな領域に公開するためには、
ブラザコントロールが抱えているScripting Engineを
取得できればいいのではないかと思い調査したのですが、
うまくいきませんでした。
(SID_GetScriptSiteという思わせぶりなSIDは定義されて
いるのですが、IQueryServiceProvider::QueryService
してもダメです。)
ずっと諦めていたのですが、SideBar Gadgetの仕様を
調査していたところ、以下のようなコードを発見しました。
---
function GetHoge()
{
return System.Gadget.Settings.read("Hoge");
}
---
なんと、グローバルな領域にオブジェクトを公開している
ではないですか!!
彼らにできて、オレにできないなんて許せない!という訳で、
再度、調査をしてみることにしました。
■IEのスクリプトエンジンへのインターフェイス - @IT
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=1371&forum=7