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 );