com对象 事件接口
参考:COM基础知识
com.ImplInterface
1、函数原型:
interface = com.ImplInterface( table对象,ProgID,接口名字 )
2、函数说明:
函数将指定的table创建为指定的com接口.
3、调用示例:
flash_callevent = {
OnReadyStateChange = function( newState ){
io.print("OnReadyStateChange")
}
OnProgress = function( percentDone ){
io.print(percentDone)
}
FSCommand = function( command ,args ){
io.print( command , args );
}
}
flash_callevent_i = com.ImplInterface( flash_callevent
,"ShockwaveFlash.ShockwaveFlash","_IShockwaveFlashEvents")
创建IDispatch接口对象
1、函数原型:
dispatch = com.ImplInterface( table对象 | 函数对象 )
2、函数说明:
如果指定一个函数对象作为参数,则仅支持使用匿名DISPID进行Invoke调用,DISPID将会传递给函数的owner参数.
如果指定一个table成员,则可使用IDispatch接口公开table的命名成员..而owner参数将会是table对象自身(而不是DISPID) ,也可以使用小于 0 的 DISPID 作为成员的数值键以支持匿名 DISPID 调用,在查询 DISPID 时,aardio将使用直接下标(不会触发元方法)
3、函数示例:
import com;
import console;
var dispatch = {
[ -5/*_DISPID_EVALUATE*/ ] = function(...){
}
}
dispatchObject = com.ImplInterface(dispatch);
console.log( dispatchObject(123), );
console.pause();
在 COM 接口对象中可使用 _call 元方法 定义 COM 默认调用,使用 _item 元方法定义 COM 枚举表或 COM 默认调用表。