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