Я нашел идеальный рабочий пример: http://code.msdn.microsoft.com/CSIEExplorerBar-ba8fe182/view/Reviews
Очень интересно, что я не смог найти его с помощью Google ...
После загрузки просто распакуйте файл и откройтеCSIEExplorerBar.sln.Некоторые из проектов решения не могут быть импортированы в VS 2010 - это просто проекты-установщики, они не нужны для запуска BHO.
Перейдите в свойства проекта и на вкладке «События сборки» поместите этот текст в «Post-».Командная строка события события "(буквально):
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /i "$(TargetDir)$(TargetFileName)"
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" /unregister "$(TargetDir)$(TargetFileName)"
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe" "$(TargetDir)$(TargetFileName)"
Создайте проект - вы получаете ошибки, потому что, как видите, вторая команда пытается отменить регистрацию BHO, но пока ничего не зарегистрировано.Вы можете перезапустить сборку, и вы не получите ошибок.
Откройте IE.Откройте меню «Вид», панели обозревателя и нажмите «Панель обозревателя списка изображений» - вы должны увидеть только что созданную панель обозревателя!
Чтобы разрешить BHO показывать HTML-страницу, вам просто нужно изменить дизайн пользовательского элемента управления - добавьте элемент управления WebBrowser и добавьте URL-адрес страницы для отображения в элементе управления.
Детали
Я создал расширения для Chrome и Firefox.IE расширения являются худшей архитектурой.Документация ужасна - она устарела и в основном только для C ++.Расширения для Chrome и Firefox основаны на HTML / XUL и JavaScript - почти каждый веб-разработчик может создать собственное расширение за считанные минуты!Я думаю, что в IE гораздо сложнее - вам нужно буквально ИССЛЕДОВАТЬ Интернет, чтобы найти любую полезную информацию об этой технологии.
Как вы можете прочитать здесь - http://msdn.microsoft.com/en-us/library/bb776819.aspx - вы должны поиграть с волшебной вещью, называемой Registry.Это действительно худшее, что они могли выбрать для хранения данных о расширениях.Я до сих пор не знаю, куда мне добавить информацию об авторе или версии BHO.Если вы ответите, пожалуйста: https://stackoverflow.com/questions/7926800/how-to-add-author-name-version-number-description-etc-to-browser-helper-objec
BHO не будет работать, если он не подписан ключом - IEExplorerBar.snk в этом решении.Вы можете очень легко добавить ключ в новый проект - просто откройте свойства проекта, вкладку «Подписывание» - «Подписать сборку» и добавьте новый ключ.
Документация очень старая, и никто ничего не делаетоб этом!
ИМХО Microsoft следует перепроектировать и написать IE снова - это устаревшая, анахронная архитектура.
Некоторые ссылки
Добавление панели инструментовкнопки для открытия панели обозревателя: http://msdn.microsoft.com/en-us/library/aa753588%28v=VS.85%29.aspx#details_explorer
Некоторая информация о реестре в системах x64: http://msdn.microsoft.com/en-gb/library/aa384232%28VS.85%29.aspx
О пространстве имен Interlop (SHDocVw): http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.ole.interop.aspx