# aardio 范例: 清单免注册嵌入 VB 控件



```aardio
//清单免注册
import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="清单免注册嵌入 VB 控件";right=700;bottom=266)
winform.add(
edit={cls="edit";left=356;top=20;right=665;bottom=243;anchors={left=1;top=1;right=1;bottom=1};edge=1;hscroll=1;multiline=1;vscroll=1;z=2};
static={cls="static";text="Static";left=21;top=20;right=330;bottom=243;anchors={left=1;top=1};transparent=1;z=1}
)
/*}}*/

import com.actCtx;

//参数指定 DLL 或 OCX 文件路径。
var actCtx = com.actCtx("~\examples\Languages\VB\.vb6\Vb6Control.ocx");

/*
如果存在与参数指定的 DLL 或 OCX  文件名相同的 manifest 文件（参数路径 + ".manifest"） 
则将该 manifest 文件路径设为 actCtx.manifest 属性。
如果未指定 actCtx.manifest 属性，则创建 COM 对象时会自动生成manifest 文件并设为 actCtx.manifest 属性。
*/
var vbCtrl = actCtx.createEmbedEx(winform.static,"UserControl1"); //免注册直接创建控件
 
//添加 COM 事件
vbCtrl.OnImageClick = function(value){
	winform.edit.print("VB控件里点击了图像,事件参数:"+value)
	return 100; //VB里这个事件的参数声明为 ByRef,所以添加返回值可以修改参数
} 

//修改 VB 控件的属性
vbCtrl.Picture = com.picture.loadObject( "~\examples\Graphics\.gdip.jpg" )

//调用 VB 控件的函数
var c = vbCtrl.Add(2,3);

winform.edit.print("调用 VB 控件函数返回值:",c);
winform.edit.print("请点击图像试试");

winform.show();
win.loopMessage();
```

