IE浏览器控制res://用法

时间:2009-01-13 14:46:26

标签: windows internet-explorer winapi com

我在我的应用程序中使用IWebBrowser2控件,并且我有各种html文件,这些文件作为资源存储在exe中。要加载它们,我使用“res://”协议。问题是,对于某些版本的IE,页面不再加载,而只是显示“已取消操作,Internet Explorer无法链接到请求的页面。”

这些页面在.rc脚本中引用,如下所示:

stats.html HTML DISCARDABLE“res \ stats.html”

res请求看起来像 RES:// C:\路径\至\ MyApp.exe的/ stats.html时

这曾经工作得很好,在某些时候这种行为发生了变化,可能是一个热修复或类似的东西。现在,在我的机器上,它不起作用。我试过改变res路径看起来像:

RES://MyApp.exe/stats.html

没有用。

然后我尝试更改rc脚本:

统计信息HTML DISCARDABLE“res \ stats.html”

和res路径:

RES://MyApp.exe/stats

现在它有效!但是,必须使用这种方式(从资源名称中删除“。”和文件扩展名)真的很烦人。有谁知道这是一个错误吗?一项功能?为什么会发生这种情况,还有另一种解决方法吗?

编辑: 玩了一些后我发现这个工作: stats.htm HTML DISCARDABLE“res \ stats.html” RES://MyApp.exe/stats.htm

将资源名称中的“.html”扩展名更改为“.htm”,但我不明白为什么!

1 个答案:

答案 0 :(得分:2)

确保正确设置了内容类型。确保HKEY_CLASSES_ROOT.html将其内容类型设置为“text / html”,否则会发生奇怪的事情。同样也适用于.htm。