繁体   English   中英

如何在BHO的网页上嵌入图像?

[英]How to embed an image on a web page from a BHO?

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

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

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

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

做正确的方法是什么?

您正在混淆Win32资源和.NET程序集资源。 'res:'协议处理程序从DLL返回Win32资源。 .NET资源不是 Win32资源,因此IE(实际上是urlmon.dll,其中res:已实现)无法找到您的图像。

您有两种选择:

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

  2. 您还可以实现异步可插入协议处理程序。 假设你想实现一个新的协议方案:julien://image.png'。 在HKCR \\ PROTOCOLS \\ Handler \\ julien注册,并实施IInternetProtocol(以及其他一些协议)。 这不是一件非常容易的事(曾经做过一次 - 有很多机会犯错误)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM