代码之家  ›  专栏  ›  技术社区  ›  Peter Ruderman

如何从URL初始化ActiveX控件?

  •  0
  • Peter Ruderman  · 技术社区  · 14 年前

    我在网页中嵌入了一个MFC ActiveX控件。此控件的某些参数非常大。我不知道这些值在编译时会是什么,但我知道一旦检索到,它们几乎肯定不会改变。

    目前,我嵌入的参数如下:

    <object name="MyActiveX">
      <param name="param" value="<%= GetData() %>" />
    </object>
    

    我想这样做:

    <object name="MyActiveX">
      <param name="param" value="content/data" valuetype="ref" />
    </object>
    

    其思想是浏览器将从Web服务器检索资源并将其传递给控件。浏览器自己的缓存将处理不必要的下载。不幸的是,引用参数不能这样工作。浏览器只是将URL传递给控件(这让我非常震惊 无用的 但我离题了)。

    那么,有什么方法可以让这个工作吗?或者,在MFC中,是否有一种简单的方法指示控件的主机容器检索已标识的URI资源?有更好的主意吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   tyranid    14 年前

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

        2
  •  0
  •   Greg Domjan    14 年前

    创建时是否确实需要数据?

    你能做一个“初始化”步骤吗

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