我在編寫ActiveX控件時調用非IDispatch方法時遇到問題。從網頁上的其他ActiveX控件使用ActiveX控件
我有一個網頁,其中包含兩個單獨的Active X對象,這兩個對象都是我寫的。我首先調用第一個對象的方法,它返回一個接口指針,指向不可共同創建的新COM對象。然後我調用這個新對象的方法來傳遞第二個ActiveX對象作爲參數。在這個方法裏面,我調用QueryInterface來獲取第二個ActiveX對象上的私有/內部接口指針。問題是從QueryInterface返回的指針不是指向我的對象的有效指針,並且任何使用它的嘗試都會崩潰。
如何獲得我可以使用的實際對象的接口?我的私人接口使用結構,因此它不與IDispatch兼容,並且是一個內部接口,我不希望在類型庫中公開它。
我應該早些時候回答這個問題。您在第一部分中是正確的 - JavaScript使用它自己的對象包裝我的對象,因此傳遞給第二個ActiveX控件的對象不是我的對象,而是JS包裝器。 QueryInterface由JavaScript對象處理,並返回一個指向IDispatch接口的指針,甚至認爲我查詢了其他內容,實際上很奇怪。 – 2009-11-05 23:43:43