2011-02-24 8 views
3

IE内に「ブラウザごと」のエクスプローラバーを作成する方法はありますか?つまり、開いているタブすべてに共通のエクスプローラバーですか? MSのガイドラインに従って作成されたエクスプローラバーは「タブごと」です。つまり、新しいタブごとに新しいエクスプローラバーが開きます。あるいは、「ブラウザごとの」エクスプローラバーの中に、「お気に入り」、「フィード」、「ディスカッション」などのHTMLドキュメントを表示する方法がありますか?IE「ブラウザごと」エクスプローラバー

答えて

1

これを行う方法はありません。エクスプローラバーの拡張性モデルは、エクスプローラバーとタブの間に1対1の比率を指定します。この理由は数多くあり、タブを使用してIE6から現代のウェブブラウザに至る最も簡単な道としばしば関係しています。 OLEベースのアーキテクチャについて考えてみましょう。まず、IObjectWithSiteによって設定されたサイトオブジェクトがあります。あなたはIWebBrowser2、現在のIHTMLDocument2などのようなものを調べるためにサイトを使用します。拡張機能では、これらのポインタを取得するときにこれらのポインタをキャッシュすることがよくあります。したがって、この1:1対応が必要です。

単一のインスタンスエクスプローラバーを使用したい場合は、それを行うことができますが、子ウィンドウのクロスプロセスを再育成し、BHOベースのコードをたくさん集めてIEウィンドウの状態を正しく取得する必要があります。 DWebBrowserEvents2 :: WindowStateChangedを処理し、それを偽って、あなたの状態を簡単にシリアライズ可能にする方が良いです。

関連する問題