如何从URL初始化ActiveX控件?

时间:2010-05-25 18:51:02

标签: mfc activex tags

我在网页中嵌入了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标识的资源?有更好的想法吗?

2 个答案:

答案 0 :(得分:1)

实现IPersistStream或IPersistStreamInit接口,然后您可以使用对象的数据属性指定内容,如:<object clsid="XXXX" data="mydata.bin"></object>。 Internet Explorer将通过其IPersistStream :: Load接口下载数据属性引用的文件。 ATL具有这些接口的默认实现,它们将填充控件的属性,几乎可以肯定MFC也是如此。

答案 1 :(得分:0)

创建数据时确实需要数据吗?

你能否把它作为'初始'步骤

largeData = GetData();
MyActiveX.init( largeData );