aardio 文档

aardio 范例: com.interface 原生事件接口

import com;
import com.interface.IWinHttpRequestEvents;
import win.ui;
/*DSG{{*/
var winform = win.form(text="com.interface 原生事件接口";right=759;bottom=469)
winform.add(
edit={cls="edit";left=16;top=10;right=748;bottom=458;edge=1;multiline=1;z=1}
)
/*}}*/

//创建COM对象
var winHttp = com.CreateObject("WinHttp.WinHttpRequest.5.1");

//使用原生静态类型接口创建事件接收器
var eventSink = com.interface({

    OnResponseStart = function(status,contentType){

    };

    OnResponseDataAvailable = function(pSafeArrayData){

        //将 SAFEARRAY 指针转换为 COM 数组,_VT_UI1 类型数组会转换为 buffer 。
        var bytes = com.SafeArray(pSafeArrayData);

        winform.edit.print(bytes);
    };

    OnResponseFinished = function(){
        winform.edit.print("OnResponseFinished");
    };

    OnError = function(errCode,message){
        winform.edit.print("OnError",errCode,messag);
    };
},"IWinHttpRequestEvents")

//挂接事件接收器
var cookie = com.AddConnection( winHttp,eventSink );

winHttp.setOption(6,0 ) //禁止自动重定向,不能写为 winHttp.Option(6) = 0 
winHttp.SetTimeouts( 9999999,9999999,9999999,9999999 ) //设置超时,调用函数不能省略括号

//创建请求
winHttp.Open("GET", "https://www.example.com", true/*启用异步*/ ) 

//自定义请求头,下面修改 User Agent
winHttp.setRequestHeader("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.0; zh-CN; rv:1.9.0.3) Gecko/2008092417 Firefox/3.0.3 (.NET CLR 3.5.30729)"); 

//发送请求,调用函数不能省略括号
winHttp.Send()


winform.show();
win.loopMessage();

Markdown 格式