aardio 文档

aardio 范例: 用连接点注册事件

//事件输出参数
import win.ui;
/*DSG{{*/
var winform = win.form(text="用连接点注册事件";right=964;bottom=605)
winform.add(
edit={cls="edit";left=22;top=524;right=937;bottom=584;db=1;dl=1;dr=1;edge=1;multiline=1;vscroll=1;z=2};
static={cls="static";left=22;top=17;right=938;bottom=510;db=1;dl=1;dr=1;dt=1;edge=1;z=1}
)
/*}}*/

//嵌入 COM 控件
var browser = winform.static.createEmbedEx("Shell.Explorer.2");  

//定义事件表
browser.BeforeNavigate2 = function( pDisp, url, flags, targetFrame, postData, headers, cancel ) { 
    winform.edit.print("BeforeNavigate2",url);

    /*
    aardio 基于纯函数原则,不会直接通过修改参数输出值,
    如果是引用或输出参数,可在返回值里返回新的参数值。

    首先是返回函数本身的返回值(没有就不用返回),
    然后依传入的前后顺序返回所有输出参数的值,
    可以省略返回值,但不能改变返回值的位置。

    例如这个事件,cancel 参数返回 true 就可以阻止打开 url 参数指定的网址,
    但 cancel 必须是第 6 个返回值。
    */
    return url, flags, targetFrame, postData, headers, cancel;

    //阻止网页打开
    //return url, flags, targetFrame, postData, headers, true;
};

//调用 COM 对象打开网页
browser.Navigate("about:hello");

winform.show(3/*_SW_MAXIMIZE*/); 
win.loopMessage();

Markdown 格式