我有一個嵌入在網頁中的MFC ActiveX控件。這個控件的一些參數非常大。我不知道這些值在編譯時會是什麼,但我知道一旦檢索,它們幾乎肯定不會改變。如何從URL初始化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標識的資源?任何更好的想法?
這似乎正朝着正確的方向發展。歸檔屬性似乎更合適,因爲可能需要下載多個項目。 IE在這種情況下如何公開數據? – 2010-05-25 21:21:33
真的如果你想下載多個項目,那麼這不會是你想要的,IE只會下載一個文件(由data =引用),所有其他參數都被忽略。你真的應該接受一組參數並自己下載。使用類似http://www.codeguru.com/cpp/i-n/internet/activex/article.php/c6151的內容獲取當前託管的URL。 如果你正在初始化控件的屬性,那麼IPersist的東西就會工作(看它的MFC實現了默認的IPerist接口)。 http://msdn.microsoft.com/en-us/library/xxf9wx2c%28v=VS.100%29.aspx – tyranid 2010-05-26 05:10:03
DoPropExchange是我目前如何從param標籤中獲取參數。我不確定它是否可以讀出來自IPersistStream的數據。也許要走的路只是將所有數據序列化爲一次下載。謝謝你的幫助! – 2010-05-26 13:37:47