お世話になっております。
現在開いているIEで、どのエクスプローラーバーが表示されているか、
または、表示されていないか。
表示されているとしたら、どのエクスプローラーバーなのか。
ツールバーは表示されているか、などの情報を取得したいのですが、
そのような情報を IWebBrowser などから取得することは可能でしょうか?
開発環境は VisualStudio 2003 です。
よろしくお願いします。
標準的なメニューバー、アドレスバー、ツールバー、ステータスバーであれば、それぞれ
IWebBrowser2::get_MenuBar、get_AddressBar、get_ToolBar、get_StatusBar で、表示状
態を取得できそうですね。
その他、個別のアドインツールバーとなると、IWebBrowser2::ShowBrowserBar で表示さ
せることはできますが、表示状態の取得は難しそうです。
IBandSite というインターフェイスを使えば、表示状態の取得もできると思いますが、
IWebBrowser2 から IBandSite を得る方法がわかりませんでした。
素早い回答ありがとうございます。
IWebBrowser2 以外の方法で IBandSite を取得する方法はあるのでしょうか?
それか、条件を変えて、このCLSIDのエクスプローラーバーが表示されているか
などを調べることはできますでしょうか?
IEのエクスプローラーバーを表示するようなエクステンションボタンを押したときに、
表示の時は、非表示。
非表示の時は、表示という動きをしているので、それを調べることは可能なのかなと
思いましたが、どう動いているのかがわかりませんでした。
> IWebBrowser2 以外の方法で IBandSite を取得する方法はあるのでしょうか?
確認していませんが、IEのアドインの中からならばIObjectWithSite::SetSite の引数に
渡される IUnknown から取得可能であるという情報はあります。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=1093957&SiteID=7
ただし、ここには、IEの外からはIServiceProvider::QueryServiceで取得できるとも書
いてありますが、CoCreateInstance( CLSID_InternetExplorer, ... )で得た
IWebBrowser2からIServiceProviderは手に入るものの、そこからIBandSiteを取得できま
せんでした。
お世話になっております。
私も、IWebBrowser2からIServiceProviderを取得することはできましたが、
IBandSite は取得できませんでした。