http://www.1to2.us/COM-JavaScript-a159169.htm我想請問一下 , 這個鏈結的方法可以成功嗎 ? 有人試過嗎 ?最後提到此方式 "该技术和连接点、事件无关。" 那麼看了它的
流程應該是屬於回調接口方式(callback intrface) , 既然
沒有使用連接點 , 也就表示腳本引擎不使用 
IConnectionPoint::Advise 傳遞出接口 , 那麼 , COM 組件
總要實現一個接口的 Advise 和 Unadvise 方法吧.但是看不出來 COM 組件它哪有實現 , 且感覺代碼似乎還少了一些步驟 ,
例如: 腳本引擎如何知道呼叫某個接口的 Advise 傳遞出接口.還是說此實作 Advise 和 Unadvise 的接口是內定的 , 也就是只有特定
的javascript 代碼知道如何調用此接口 , 那麼應該如何使用呢 ?還是小弟理解錯了 , 望高人指點一下 , 感激不盡!!   

解决方案 »

  1.   

    可以。
    两个COM组件如何互相调用方法你理解吗?事件,连接点只是回调的一种实现方式。
    首先你要知道javascript是怎么回事? 它的解析引擎就是一个COM。
    COM 之间通过 IDispatch 接口就可以调用对方的方法。
      

  2.   

    謝謝樓上的答覆.我突然恍然大悟 , 文中的 CA:: longCalc () 就是類似
    IConnectionPoint::Advise , 當javascript 呼叫發生在
    跨套間/跨進程/跨機器時 , 腳本引擎列集 longCalc()的參數 ,
    其中 VARIANT 含有 IDispatch 接口指針 , 故會在
    腳本引擎中產生 stub , 當請求數據包送到組件服務端時
    再散集 longCalc() 的參數 , 產生 proxy.那麼 , 是否使用此方式 , 必須利用 VARIANT 來包裝
    IDispatch 接口 , 因為當調用 
    objA.longCalc(100, 200,scfDisplayProgress);
    腳本引擎會將 scfDisplayProgress 函數包裝成
    VARIANT 型態 , 不知我的
    猜測對嗎 ? :)