2009-06-27 71 views
4

我正在研究如何开发IE6 +的扩展,以允许处理自定义的MIME类型。IE MIME /内容过滤

作为一个例子,我需要能够使用由服务器返回的自定义MIME类型的文档,对其执行一些处理,然后将MIME类型更改回IE可以本机处理的内容,如text/html或image/jpeg。

我熟悉urlmon MIME过滤器,但它们有一个巨大的弱点;它们仅被调用用于顶层文档,而不用于任何附加页面内容,如图像等。

我能想到的方法之一就是使用vtable/iat修补程序挂钩HTTP/S协议处理程序,类似于Google Gears的工作方式,能够拦截响应头并修改接收到具有指定MIME类型的文档时的标题和响应主体。

我想知道是否有其他人有什么好的想法如何可以用不那么hacky/intrusive方式完成这个。

编辑: 只是想我会跟进这一点,并提到我用vtable修补程序进入HTTP/S协议处理程序,它运行得比我预期的好得多。如果有人想要做这样的事情,我强烈建议看一下Google Gears中的HttpHandlerPatch类,以获得一些启发。

+0

嗨,我正在写扩展为IE,将阻止广告。我需要像您一样的功能 - 过滤MIME /内容。 不幸的是我没有很好的Windows C++编程经验。你能告诉我更多关于“vtable和iat补丁”吗?这与“API挂钩”相同吗?因为我无法在google中找到有关'vtable patching'的更多信息。您是否有关于此主题的良好资源以及您是如何进行此内容过滤的? 我看着这个齿轮的HttpHandlerPatch类,但现在对我来说很复杂。 – 2011-01-11 14:31:02

回答

0

几年前,我根据一本名为VB6中的Shell Programming的书写了这样的扩展,BHO,IE工具栏等等。我使用的这本书是:http://oreilly.com/catalog/9781565926707/这本书告诉你如何挂钩和陷阱进入IE浏览器的消息。我写了一种屏幕刮板(后渲染风格,不像一个蜘蛛,不先执行javascript)。它基于IE5,但扩展仍然可以与IE6一起使用。我可能还有某个地方的VB6源代码。虽然我不提供将它升级到.Net。

PS。由哈罗里斯阿斯特朗在该页面上的审查是由我:)