⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 webservice.htc

📁 浏览器端看到树型目录结构,用户可以完整地看到像windows资源管理器一样的效果
💻 HTC
📖 第 1 页 / 共 5 页
字号:
<!----------------------------------------------------------------------
//  Copyright (c) 2000-2003 Microsoft Corporation.  All Rights Reserved.
//---------------------------------------------------------------------->

<PUBLIC:COMPONENT  ID=_webservice  Name="WEBSERVICE" >

<PUBLIC:PROPERTY NAME="version"
                 VALUE="Microsoft WebService Behavior 1.01.1101" />
<PUBLIC:PROPERTY NAME="showProgress" VALUE=false />
<PUBLIC:PROPERTY NAME="helperUtils" />
<PUBLIC:METHOD   NAME="useService"/>
<PUBLIC:METHOD   NAME="createCallOptions"/>
<PUBLIC:METHOD   NAME="createUseOptions"/>
<PUBLIC:METHOD   NAME="invokeNext"/>
<PUBLIC:EVENT    ID="eventResult"  NAME="onresult"/>
<PUBLIC:EVENT    ID="eventService" NAME="onserviceavailable"/>
</PUBLIC:COMPONENT>

<SCRIPT LANGUAGE="JSCRIPT">

var _nextId  = 0;
var _nextNsQ = 0;
var _sdl = new Array();
var _mProg = null;
var _fVBon = false;
var _aXmlHttp = new Array();
var xsi99 = "http://www.w3.org/1999/XMLSchema-instance";
var xsi01 = "http://www.w3.org/2001/XMLSchema-instance";
var xsd01 = "http://www.w3.org/2001/XMLSchema";
var xsd99 = "http://www.w3.org/1999/XMLSchema";

var _st = {
"negativeInteger" : 0,
"unsignedShort"   : 0,
"unsignedByte"    : 0,
"unsignedLong"    : 0,
"unsignedInt"     : 0,
"decimal"         : 0,
"boolean"         : 0,
"integer"         : 0,
"double"          : 0,
"float"           : 0,
"short"           : 0,
"byte"            : 0,
"long"            : 0,
"int"             : 0,
"QName"           : 1,
"string"          : 1,
"normalizedString": 2,
"timeInstant"     : 3,
"dateTime"        : 3,
"date"            : 4,
"time"            : 5,
"base64Binary"    : 6,
"base64"          : 7};

function ErrDetail(errCode, errString, errRaw)
{
    this.code = errCode;
    this.string = errString;
    this.raw = errRaw;
}

var L_InProgress_Text = "In Progress";

var L_InvalArg_Text = "Invalid argument";
var L_NotReady_Text = "Service unavailable";
var L_InvalRes_Text = "Invalid response";
var L_UnsupFun_Text = "Function not found";
var L_UnknownS_Text = "Unknown server error";
var L_AcDenied_Text = "Access denied";
var L_SoapUnav_Text = "Soap not available";
var L_HtcInter_Text = "HTC internal error";
var L_InvaPort_Text = "Invalid active port";
var L_InvaHead_Text = "Invalid headers";

var _errInvalArg = new ErrDetail("Client", L_InvalArg_Text, null); //0
var _errNotReady = new ErrDetail("Client", L_NotReady_Text, null); //1
var _errInvalRes = new ErrDetail("Server", L_InvalRes_Text, null); //2
var _errUnsupFun = new ErrDetail("Client", L_UnsupFun_Text, null); //3
var _errUnknownS = new ErrDetail("Server", L_UnknownS_Text, null); //4
var _errAcDenied = new ErrDetail("Server", L_AcDenied_Text, null); //5
var _errSoapUnav = new ErrDetail("Client", L_SoapUnav_Text, null); //6
var _errHtcInter = new ErrDetail("Client", L_HtcInter_Text, null); //7
var _errInvaPort = new ErrDetail("Client", L_InvaPort_Text, null); //8
var _errInvaHead = new ErrDetail("Client", L_InvaHead_Text, null); //9

var _aryError = new Array(
                _errInvalArg,
                _errNotReady,
                _errInvalRes,
                _errUnsupFun,
                _errUnknownS,
                _errAcDenied,
                _errSoapUnav,
                _errHtcInter,
                _errInvaPort,
                _errInvaHead
                );

function postError(oCall, refError)
{
    if (oCall.co != null && !oCall.co.async)
        return returnError(oCall, refError);
    var s = function(){returnError(oCall, refError);};
    setTimeout(s, 0);
    return oCall.id;
}

function returnError(oCall, refError)
{
    hideProgress();
    var r = new Object();
    r.id = oCall.id;
    r.error = true;
    r.errorDetail = _aryError[refError];

    if (oCall.co != null && oCall.co.async == false)
    {
        return r;
    }

    var cb = oCall.cb;

    if (cb == null)
    {
        var evt = createEventObject();
        evt.result = r;
        try { eventResult.fire(evt); } catch(e) {};
    }
    else
    {
        try { cb(r); } catch(e) {};
    }

    return oCall.id;
}

function createCallOptions(fn, pn, cm, to, un, pw, hd, ep, pr)
{
    var o = new Object();
    o.funcName = fn;
    o.portName = pn;
    o.async    = cm;
    o.timeout  = to;
    o.userName = un;
    o.password = pw;
    o.SOAPHeader= hd;
    o.endpoint = ep;
    o.params   = pr;
    return o;
}

function createUseOptions(rc, sh)
{
    var o = new Object();
    o.reuseConnection = rc == true;
    o.SOAPHeader = sh;
    return o;
}

function cloneObject(co)
{
    var o = new Object();
    for (var x in co)
        o[x] = co[x];
    return o;
}

function ensureVBArray(d)
{
    if (!_fVBon)
    {
        var s1 =
            "\nFunction VBGetArySize(a, d)\n"
          + "Dim x\n"
          + "Dim s\n"
          + "s=UBound(a, 1)\n"
          + "For x = 2 To d \n"
          + 's = s & "," & UBound(a, x)\n'
          + "Next\n"
          + "VBGetArySize=s\n"
          + "End Function\n";
        var o = element.document.createElement("script");
        o.language = "VBS";
        o.text = s1;
        element.document.body.appendChild(o);
        _fVBon = true;
    }
    var fn = "VBGetAryItem" + d;
    if (eval("typeof " + fn) != 'undefined')
        return;
    var a  = new Array();
    for (var i = 0; i < d; i++)
        a[i] = 'p' + i;
    var sp = a.join(", ");
    var s2 = "\nFunction " + fn + "(a, " + sp + ")\n"
           + "x = VarType(a(" + sp + "))\n"
           + "If x=9 Or x=12 Then\n"
           + "Set " + fn + "=a(" + sp + ")\n"
           + "Else\n"
           + fn + "=a(" + sp + ")\n"
           + "End If\n"
           + "End Function\n";
    var o = element.document.createElement("script");
    o.language = "VBS";
    o.text = s2;
    element.document.body.appendChild(o);
}

//
// array used by base64 codec
//

var _b64="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";

//
// base64 encoder helper
//
function encb64hlp(a, k, s, iFrom, iTo, fStr)
{
    var d = 0;
    for (var i = 0; i + iFrom <= iTo; i ++)
        d |= (fStr ? s.charCodeAt(i + iFrom) : s[i + iFrom]) << (16 - 8*i);
    for (var i = 0; i <= iTo - iFrom + 1; i ++)
        a[k++] = _b64.charAt(d>>>(18 - i*6)&0x3f);
    return k;
}

//
// base64 decoder helper
//
function decb64hlp(a, ai, ca, iFrom, iTo)
{
    var d = 0;
    var l = iTo - iFrom;
    for (var i = 0; i + iFrom <= iTo; i ++)
        d |= ca[i + iFrom] << (18 - 6*i);
    for (var i = 0; i < l; i ++)
        a[ai + i] = (d >>> (16 - i*8)) & 0xff;
    return ai + i;
}

//
// encode a string to base64
// s[in]    : string to be encoded
// return   : base64 string
//
function encb64(s)
{
    var fStr = typeof(s) == "string";
    var i;
    var l = s.length;
    var a = new Array();
    var k = 0;
    for (i = 2; i < l; i = i + 3)
    {
        k = encb64hlp(a, k, s, i - 2, i, fStr);
        if ((i+1) % 57 == 0)
            a[k++] = "\r\n";
    }
    var padd = l - i + 2;
    if (padd > 0)
    {
        k = encb64hlp(a, k, s, i - 2, l-1, fStr);
        a[k] = (padd > 1) ? "=" : "==";
    }
    return a.join("");
}

//
// decode a b64 string
// s[in]    : string to be decoded
// return   : decoded string
//
var _b64rsc = "\n\r\t";
function decb64(s, fStr)
{
    var i, j = 0;
    var ip = s.indexOf('=');
    var l = ip >= 0 ? ip : s.length;
    var ca = new Array();
    for (i = 0; i < l; i++)
    {
        var c = s.charAt(i);
        if (_b64rsc.indexOf(c) >= 0)
            continue;
        ca[j++] = _b64.indexOf(c);
    }
    var l = j;
    var a = new Array();
    var ai = 0;
    for (i = 3; i < l; i = i + 4)
        ai = decb64hlp(a, ai, ca, i-3, i);
    if (i-4 < l)
        ai = decb64hlp(a, ai, ca, i-3, l-1);
    if (!fStr)
        return a;
    var r = '';
    try
    {
        r = String.fromCharCode.apply(element, a);
    }
    catch (E)
    {
        for (i = 0; i < a.length; i++)
            r += String.fromCharCode(a[i]);
    }
    return r;
}

function ensureWsdlUrl(szService)
{
    if (szService.length == 0)
        return;
    if (szService.indexOf("://") > 0)
        return szService;

    var baseUrl = element.document.URL;
    if (szService.charAt(0) == "/")
    {
        var hosti = baseUrl.indexOf("://");
        if (hosti > 0)
        {
            var host = baseUrl.substr(hosti + 3, baseUrl.length-1);
            hosti = host.indexOf("/");
            if (hosti < 0)
                return baseUrl + szService;
            hosti = baseUrl.indexOf(host) + hosti;
            return baseUrl.substr(0, hosti) + szService;
        }
    }
    var qi = baseUrl.lastIndexOf("?");
    var url2 = qi > 0 ? baseUrl.substr(0, qi) : baseUrl;
    return  url2.substr(0, baseUrl.lastIndexOf("/"))
            + "/" + szService + (szService.indexOf(".")>=0 ? "" : ".asmx?wsdl");
}

function allocCall()
{
    var o = new Object();
    o.fDone = false;
    o.next = null;
    o.id = _nextId;
    _nextId++;
    return o;
}

function fnShowProgress()
{
    if (_mProg == null)
    {
        var s = "<MARQUEE WIDTH=160 HEIGHT=20 BEHAVIOR=alternate SCROLLDELAY=1"
              + " STYLE='background:lightblue;position:absolute;top:0;left:0'>"
              + "</MARQUEE>";
        _mProg = element.document.createElement(s);
        _mProg.innerHTML = L_InProgress_Text;
    }
    if (_mProg.parentElement == null)
        element.document.body.insertAdjacentElement("beforeEnd",_mProg);
}

function isSimpleType(os, oschm, t)
{
    return oschm == null || oschm.sTypes[t.type]!=null;
}

function isPrimitive(os, t)
{
    return os.ns[t.ns] == os.ns["xsd"];
}

function getWsdl()
{
    var szService = null;

    for (var aService in _sdl)
    {
        if (_sdl[aService] == null)
            continue;
        var xmlisld = _sdl[aService]._oXml;
        if (xmlisld == null)
            continue;
        if (   _sdl[aService].fPending
            &&  xmlisld.XMLDocument.readyState == 4)
        {
            _sdl[aService].fPending = false;
            szService = aService;
            break;
        }
    }

    if (szService == null)
        return;

    var oS = _sdl[szService];
    var fImportDone = loadImports(oS);
    if (fImportDone)
        processService(oS);
}

function processService(oS)
{
    var xmlSdl = oS._oXml.documentElement;

    try
    {
        parseWsdl(oS, xmlSdl);
    }
    catch(e)
    {
        xmlSdl = null;
    }

    var evt = createEventObject();
    evt.serviceUrl = oS.url;
    evt.userName = oS._oXml.service;
    evt.serviceAvailable = xmlSdl != null;
    evt.WSDL = xmlSdl;

    oS._oXml.removeNode(true);
    oS._oXml = null;

    if (xmlSdl == null)
    {
        for (var nc = oS.nextCall; nc != null; nc = nc.next)
            returnError(nc, 1);
        _sdl[oS.url] = null;
        eventService.fire(evt);
        return;
    }
    eventService.fire(evt);
    if (oS.fSeq)
        return callNext(oS);
    while (oS.nextCall != null)
    {
        var nc = oS.nextCall;
        oS.nextCall = oS.nextCall.next;
        _invoke(nc);
    }
}

function onImportLoaded(oS)
{
    for (var i = 0; i < oS.imports.length; i++)
    {
        if (    oS.imports[i] == null
            ||  !oS.imports[i].fPending
            ||  oS.imports[i].XMLDocument.readyState!=4)
            continue;
        var oImp = oS.imports[i].documentElement;
        if (oImp == null)
            continue;
        oS.imports[i].fPending = false;
        oS.cImporting --;
        var xmlSdl = oS._oXml.documentElement;
        switch (oImp.baseName)
        {
        case "definitions" :
            for (var j = 0; j < oImp.attributes.length; j++)
            {
                var oAtt = oImp.attributes.item(j);
                if (oAtt.name == "xmlns")
                    continue;
                var ii = oAtt.name.indexOf("xmlns:");
                if (ii != 0)
                    continue;
                var nsn = oAtt.name.substring(6, oAtt.name.length);
                if (oS.ns[nsn] != null)
                    continue;
                oS.ns[nsn] = oAtt.value;
                oS.nsalias[oAtt.value] = nsn;
            }
            for (var j = oImp.childNodes.length - 1; j >= 0; j --)
                xmlSdl.appendChild(oImp.childNodes[j]);
            break;
        case "types" :
        case "message" :

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -