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

 

你可能感兴趣的:(遇到的技术问题)