我在网页中嵌入了MFC ActiveX控件。该控件的一些参数非常大。我不知道这些值在编译时会是什么,但我知道一旦检索到它们,它们几乎肯定不会改变。
目前,我嵌入了如下参数:
<object name="MyActiveX">
<param name="param" value="<%= GetData() %>" />
</object>
我想做这样的事情:
<object name="MyActiveX">
<param name="param" value="content/data" valuetype="ref" />
</object>
这个想法是浏览器将从Web服务器检索资源并将其传递给控件。然后,浏览器自己的缓存将处理不必要的下载。不幸的是,ref参数不能像这样工作。浏览器只是将URL传递给控件(这让我完全无用,但我离题了。)
那么,有什么方法可以让我的工作呢?或者,在MFC中是否有一种简单的方法来指示控件的主机容器检索URI标识的资源?有更好的想法吗?
答案 0 :(得分:1)
实现IPersistStream或IPersistStreamInit接口,然后您可以使用对象的数据属性指定内容,如:<object clsid="XXXX" data="mydata.bin"></object>
。 Internet Explorer将通过其IPersistStream :: Load接口下载数据属性引用的文件。 ATL具有这些接口的默认实现,它们将填充控件的属性,几乎可以肯定MFC也是如此。
答案 1 :(得分:0)
创建数据时确实需要数据吗?
你能否把它作为'初始'步骤
largeData = GetData();
MyActiveX.init( largeData );