如何从BHO在网页上嵌入图像

本文关键字:图像 网页 BHO | 更新日期: 2023-09-27 18:23:40

我有一个用C#编写的BHO库mybho.dll。我已经嵌入了一个资源文件"image.png"。我想在一些页面上显示这个图像。根据我读到的内容,它应该是这样的:

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

但是Internet Explorer找不到该图像。我试过这个没有成功:

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

做这件事的正确方法是什么?

如何从BHO在网页上嵌入图像

您混淆了Win32资源和.NET程序集资源。"res:"协议处理程序从DLL返回Win32资源。NET资源是NOTWin32资源,因此IE(实际上是urlmon.dll,其中实现了res:)找不到您的映像。

你有两个选择:

  1. 最简单的方法可能是创建一个Win32资源(*.res文件)并将其嵌入托管程序集中。首先,创建一个指向您的图像的*.RC文件。我不确定,但我认为您必须先将PNG转换为BMP格式。然后,将RC文件编译成二进制资源(使用RC资源编译器)。最后,在构建托管程序集时,使用/win32res开关添加Win32资源。

  2. 您还可以实现异步可插拔协议处理程序。假设您想要实现一个新的协议方案:julien://image.png"。在HKCR''PROTOCOLS''Handler''julien注册它,并实现IInternetProtocol(以及其他一些协议)。这不是一项很容易的任务(做过一次——有很多犯错的机会)。