leodutra
4/3/2013 - 2:09 AM

VBInterface for JScript on Windows Script Host

VBInterface for JScript on Windows Script Host

// Reference: http://with-love-from-siberia.blogspot.com.br/2009/12/msgbox-inputbox-in-jscript.html

var VBInterface = (function() {

    function callNative(vbFunc) {
        var args = Array.prototype.slice.call(arguments[1]);
        for (var i = 0, l = args.length; i < l; ++i) {
            if (typeof args[i] != 'string') {
                continue;
            }
            args[i] = '"' + args[i].replace(/"/g, '" + Chr(34) + "') + '"';
        }

        var vbe = new ActiveXObject('ScriptControl');
        vbe.Language = 'VBScript';
        return vbe.eval(vbFunc + '(' + args.join(', ') + ')');
    } 

    return {
        create: function (vbFunc) {
            return function interface() {
                return callNative.call(this, vbFunc, arguments);
            };
        }
    };

})();