質問: Internet Explorer 11のツールバー(コマンドバー)にボタンを追加して独自のプログラムを実行したいです。 ショートカットキーの割り当ても行いたいです。 アドオンを作成をすればよいのでしょうか? BHO ( Browser Helper Object ) を使ったサンプルソースは見たのですが、コマンドバーにボタンを追加する方法が分かりません。
回答: IEツールバーを作成する場合、大きな要素として表示中のWebページ情報にアクセスするBHOと、ツールバー実装のためのIDeskBand(とIObjectWithSite、ショートカットキーを実装するならIInputObjectも)というインターフェイスを実装する必要があります。 COMの知識が前提になりますが、この辺りのインターフェイスについて検索していけば既存のサンプルや実装など様々な情報が見つかると思います。 ...が、C#(.NET)を利用してIEツールバーを実装した場合、うっかりするとIEではなくExplorerのDeskBandにまでAttachされてしまったり、メモリリークやIEにロードされる.NET Frameworkのバージョン競合等、非常に厄介で嫌らしい世界が待ち受けています。 社内ツールのように非常に限定された適用範囲での実装であれば、「C#で作ってみたIEツールバー」もアリかもしれませんが、一般向けに公開する目的でIEツールバーを作成する場合、C++とATL/WTLを使用しごりごりのWin32実装とすることを強くお勧めします。Win32のDLLであれば、最低限の実装要素のみに限定し、DllMainでロード/非ロードのジャッジなども確実にできます。