IE "per browser" explorer bar

212 views Asked by At

Is there a way to create a "per-browser" explorer bar in IE, that means an explorer bar common for all open tabs? The explorer bars created following MS guidelines are "per-tab", meaning that a new explorer bar is opened on each new tab. Alternatively, is there a way to display an HTML document inside one of the built-in "per-browser" explorer bars - "Favorites", "Feeds", "Discuss" etc.?

1

There are 1 answers

0
i_am_jorf On BEST ANSWER

There is no built-in way of doing this. The extensibility model for Explorer bars dictates a 1:1 ration between Explorer bars and Tabs. The reasons for this are many, and often have to do with the easiest path for getting from IE6 to a modern webbrowser with Tabs. Think about the OLE based architecture: for starters, you have your site object, set by IObjectWithSite. You use the site to interrogate for things like IWebBrowser2, the current IHTMLDocument2, etc. Often extensions cache these pointers when they get them. Thus you want this 1:1 correspondence.

If you want to have a single instance explorer bar, you could do it, but it would involve re-parenting child windows cross process, and a whole bunch of BHO-based code to get IE's window state just right. You're better off making your state easily serializable, handling DWebBrowserEvents2::WindowStateChanged and faking it.