com組件在bs中的事件傳遞

windows下,通過postMessage傳遞事件,傳遞到窗口之前的事件是內部事件,可以當作一般函數去寫。

 

傳遞到窗口後,可以在外部用c#或者javascript調用,這時候必須通過com組件去調用,

首先在idl上標明,


interface IUSEvent : IDispatch

{

//javascript

[propget, id(0x22), helpstring("property OnCreateLine")] HRESULT OnCreateLine( [out, retval] IDispatch** pVal );  //獲得值事件  [propput, id(0x22), helpstring("property OnCreateLine")] HRESULT OnCreateLine( [in] IDispatch* newVal );    //賦值事件

(賦值獲取可以通過屬性去設置)

//c#

  [id(0x22), helpstring("method OnCreateLine")] HRESULT OnCreateLine( IDispatch* pDisp );

}

然後在引擎中,用消息機制,用前綁定


                EventDispatch( 0x22, pDispatch, pvars, 1, varResult );

或者後綁定

EventDispatch( 0x00, pDispatch, pvars, 1, varResult );

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章