IEで「ブラウザーごと」のエクスプローラーバーを作成する方法はありますか。つまり、開いているすべてのタブに共通のエクスプローラーバーを作成する方法はありますか。MSガイドラインに従って作成されたエクスプローラーバーは「タブごと」です。つまり、新しいエクスプローラーバーが新しいタブごとに開かれます。または、組み込みの「ブラウザごと」のエクスプローラバーの1つ(「お気に入り」、「フィード」、「ディスカッション」など)内にHTMLドキュメントを表示する方法はありますか?
1 に答える
1
これを行う組み込みの方法はありません。Explorer バーの拡張モデルでは、Explorer バーとタブの比率は 1:1 です。これには多くの理由があり、多くの場合、IE6 からタブ付きの最新の Web ブラウザーに移行するための最も簡単な方法に関係しています。OLE ベースのアーキテクチャについて考えてみましょう。まず、IObjectWithSite によって設定されたサイト オブジェクトがあります。このサイトを使用して、IWebBrowser2、現在の IHTMLDocument2 などを調べます。多くの場合、拡張機能はこれらのポインターを取得すると、これらのポインターをキャッシュします。したがって、この 1:1 対応が必要です。
単一インスタンスのエクスプローラー バーが必要な場合は実行できますが、子ウィンドウのクロス プロセスの再ペアレント化と、IE のウィンドウ状態を適切に取得するための BHO ベースのコード全体が必要になります。状態を簡単にシリアル化できるようにし、DWebBrowserEvents2::WindowStateChanged を処理して偽造する方がよいでしょう。
于 2011-02-24T18:25:38.240 に答える