Как вставить изображение на веб-страницу из BHO? - PullRequest
3 голосов
/ 06 февраля 2012

У меня есть библиотека BHO mybho.dll, написанная на C #. Я вложил файл ресурсов "image.png". Я хотел бы показать это изображение на некоторых страницах. Согласно тому, что я прочитал, это должно выглядеть так:

<img src="res://mybho.dll/image.png">

Но Internet Explorer не находит изображение. Я попробовал это без успеха:

<img src="res://mybho.dll/#2/image.png">

Как правильно это сделать?

1 Ответ

2 голосов
/ 13 февраля 2012

Вы путаете ресурсы Win32 и ресурсы сборки .NET.обработчик протокола res: возвращает ресурс Win32 из DLL.Ресурсы .NET - это НЕ ресурсы Win32, и поэтому IE (фактически, urlmon.dll, в котором реализовано res:) не может найти ваш образ.

У вас есть два варианта:

  1. Самый простой способ - создать ресурс Win32 (файл * .res) и встроить его в управляемую сборку.Сначала создайте файл * .RC, который указывает на ваше изображение.Я не уверен, но я думаю, что вам придется сначала конвертировать PNG в формат BMP.Затем скомпилируйте файл RC в двоичный ресурс (с RC - Resource Compiler).Наконец, при создании управляемой сборки используйте ключ / win32res для добавления ресурса Win32.

  2. Вы также можете реализовать обработчик асинхронного подключаемого протокола.Скажем, вы хотите реализовать новую схему протокола: julien: //image.png '.Зарегистрируйте его в HKCR \ PROTOCOLS \ Handler \ julien и внедрите IInternetProtocol (и несколько других протоколов).Это НЕ очень простая задача (сделал это однажды - есть много возможностей для ошибок).

...