对于我们的一个桌面应用程序,我们使用基于HTML的界面,从本地文件加载到WebBrowser控件中。
这很好用,但是现在我们想要从不同的源加载文件,并尝试使用IPersistStreamInit(例如MSDN上的这个示例)来传输它们。它似乎工作正常,除了引用的javascript .js文件(JQuery等)。它试图从“about:”位置加载那些导致错误。
我真正想要的是在流式传输其他文件时获取回调事件,并替换正确的数据。这可能要求有点过多,所以欢迎提供变通方法的建议!
答案 0 :(得分:3)
致电CreateURLMoniker()
获取IMoniker
界面,通过Load()
方法(以IStream
界面作为输入)将HTML数据加载到其中,然后您可以使用浏览器的IPersistMoniker
接口而不是其IPersistStreamInit
接口来处理数据。您传递给CreateURLMoniker()
的网址将用作基本网址。
答案 1 :(得分:2)
您可以使用Asynchronous Pluggable Protocol使用轻量级自定义协议处理程序,这将为文件提供回调。
我在http://www.jasontpenny.com/blog/2010/03/23/custom-protocol-handler-in-delphi/
上有一些演示代码