aardio 文档

aardio 范例: 检查接口类型

import win.guid;
import com.interface;
import com.lite;

var dll = com.lite("~/examples/Languages/VB/.vb6/Vb6Control.ocx")
var vbObject = dll.createObject();

//方法一: 直接检查接口
var isVb6Object = com.interface.has(vbObject,"{0B6C9465-D082-11CF-8B4F-00A0C90F2704}");
print( "是否 VB 对象:", isVb6Object)

//方法二: 调用 VB6 运行库检查接口
var msvbvm60 = raw.loadDll("msvbvm60")
//VB6 的 Boolean 类型为 16 位,-1 为 true,0 为 flase
var vbaCheckType = msvbvm60.api("__vbaCheckType","word(ptr pObj,struct pIId)")
var vbObjId= win.guid("{0B6C9465-D082-11CF-8B4F-00A0C90F2704}")

if(com.IsObject(vbObject)){
    var isVb6Object = !!vbaCheckType(vbObject,vbObjId);
    print( "是否 VB 对象:", isVb6Object)
}
Markdown 格式