diff --git a/.gitignore b/.gitignore index 56e672144de..0f2152c1a7a 100644 --- a/.gitignore +++ b/.gitignore @@ -36,6 +36,7 @@ dlls/dispdib.dll16 dlls/display.drv16 dlls/gdi.exe16 dlls/imm.dll16 +dlls/jscript/jsglobal.tlb dlls/kernel32/nls/winerr_deu.mc.rc dlls/kernel32/nls/winerr_enu.mc.rc dlls/kernel32/nls/winerr_fra.mc.rc diff --git a/dlls/jscript/Makefile.in b/dlls/jscript/Makefile.in index 04cc952f474..ecf6ffedd7d 100644 --- a/dlls/jscript/Makefile.in +++ b/dlls/jscript/Makefile.in @@ -11,6 +11,8 @@ C_SRCS = \ jscript.c \ jscript_main.c +IDL_TLB_SRCS = jsglobal.idl + @MAKE_DLL_RULES@ @DEPENDENCIES@ # everything below this line is overwritten by make depend diff --git a/dlls/jscript/jsglobal.idl b/dlls/jscript/jsglobal.idl new file mode 100644 index 00000000000..bd91a6066fa --- /dev/null +++ b/dlls/jscript/jsglobal.idl @@ -0,0 +1,1051 @@ +/* + * Copyright 2008 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +#include "jsglobal_dispid.h" + +import "oaidl.idl"; + +[ + uuid(3eef9759-35fc-11d1-8ce4-00c04fc2b085), + version(1.0), +] +library JSGlobal +{ + importlib("stdole2.tlb"); + + interface StringInstance; + + [ + uuid(3eef9758-35fc-11d1-8ce4-00C04fc2b086) + ] + dispinterface GlobalObj { + properties: + [id(DISPID_GLOBAL_NAN), readonly] + VARIANT NaN; + + [id(DISPID_GLOBAL_INFINITY), readonly] + VARIANT Infinity; + + methods: + [id(DISPID_GLOBAL_ARRAY)] + VARIANT Array(); + + [id(DISPID_GLOBAL_BOOLEAN)] + VARIANT Boolean(); + + [id(DISPID_GLOBAL_DATE)] + VARIANT Date(); + + [id(DISPID_GLOBAL_FUNCTION)] + VARIANT Function(); + + [id(DISPID_GLOBAL_NUMBER)] + VARIANT Number(); + + [id(DISPID_GLOBAL_OBJECT)] + VARIANT Object(); + + [id(DISPID_GLOBAL_STRING)] + VARIANT String(); + + [id(DISPID_GLOBAL_REGEXP)] + VARIANT RegExp(); + + [id(DISPID_GLOBAL_ACTIVEXOBJ)] + VARIANT ActiveXObject(); + + [id(DISPID_GLOBAL_VBARRAY)] + VARIANT VBArray(); + + [id(DISPID_GLOBAL_ENUMERATOR)] + VARIANT Enumerator(); + + [id(DISPID_GLOBAL_ESCAPE)] + VARIANT escape(VARIANT String); + + [id(DISPID_GLOBAL_EVAL)] + VARIANT eval(VARIANT x); + + [id(DISPID_GLOBAL_ISNAN)] + VARIANT isNaN(VARIANT Number); + + [id(DISPID_GLOBAL_ISFINITE)] + VARIANT isFinite(VARIANT Number); + + [id(DISPID_GLOBAL_PARSEINT)] + VARIANT parseInt( + VARIANT String, + VARIANT radix); + + [id(DISPID_GLOBAL_PARSEFLOAT)] + VARIANT parseFloat(VARIANT String); + + [id(DISPID_GLOBAL_UNESCAPE)] + VARIANT unescape(VARIANT String); + + [id(DISPID_GLOBAL_GETOBJECT)] + VARIANT GetObject( + [optional] VARIANT path, + [optional] VARIANT classname); + + [id(DISPID_GLOBAL_SCRIPTENGINE)] + VARIANT ScriptEngine(); + + [id(DISPID_GLOBAL_MAJORVER)] + VARIANT ScriptEngineMajorVersion(); + + [id(DISPID_GLOBAL_MINORVER)] + VARIANT ScriptEngineMinorVersion(); + + [id(DISPID_GLOBAL_BUILDVER)] + VARIANT ScriptEngineBuildVersion(); + + [id(DISPID_GLOBAL_COLLECT)] + VARIANT CollectGarbage(); + + [id(DISPID_GLOBAL_MATH)] + VARIANT Math(); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b087) + ] + dispinterface DateObj { + properties: + methods: + [id(DISPID_DATEOBJ_PARSE)] + VARIANT parse(VARIANT String); + + [id(DISPID_DATEOBJ_UTC)] + VARIANT UTC( + VARIANT year, + [optional] VARIANT month, + [optional] VARIANT Date, + [optional] VARIANT hours, + [optional] VARIANT minutes, + [optional] VARIANT seconds, + [optional] VARIANT ms); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00C04fc2b088) + ] + dispinterface MathObj { + properties: + [id(DISPID_MATHOBJ_E), readonly] + VARIANT E; + + [id(DISPID_MATHOBJ_LOG2E), readonly] + VARIANT LOG2E; + + [id(DISPID_MATHOBJ_LOG10E), readonly] + VARIANT LOG10E; + + [id(DISPID_MATHOBJ_LN2), readonly] + VARIANT LN2; + + [id(DISPID_MATHOBJ_LN10), readonly] + VARIANT LN10; + + [id(DISPID_MATHOBJ_PI), readonly] + VARIANT PI; + + [id(DISPID_MATHOBJ_SQRT2), readonly] + VARIANT SQRT2; + + [id(DISPID_MATHOBJ_SQRT1_2), readonly] + VARIANT SQRT1_2; + + methods: + [id(DISPID_MATHOBJ_ABS)] + VARIANT abs(VARIANT x); + + [id(DISPID_MATHOBJ_ACOS)] + VARIANT acos(VARIANT x); + + [id(DISPID_MATHOBJ_ASIN)] + VARIANT asin(VARIANT x); + + [id(DISPID_MATHOBJ_ATAN)] + VARIANT atan(VARIANT x); + + [id(DISPID_MATHOBJ_ATAN2)] + VARIANT atan2(VARIANT x, VARIANT y); + + [id(DISPID_MATHOBJ_CEIL)] + VARIANT ceil(VARIANT x); + + [id(DISPID_MATHOBJ_COS)] + VARIANT cos(VARIANT x); + + [id(DISPID_MATHOBJ_EXP)] + VARIANT exp(VARIANT x); + + [id(DISPID_MATHOBJ_FLOOR)] + VARIANT floor(VARIANT x); + + [id(DISPID_MATHOBJ_LOG)] + VARIANT log(VARIANT x); + + [id(DISPID_MATHOBJ_MAX)] + VARIANT max(VARIANT x, VARIANT y); + + [id(DISPID_MATHOBJ_MIN)] + VARIANT min(VARIANT x, VARIANT y); + + [id(DISPID_MATHOBJ_POW)] + VARIANT pow(VARIANT x, VARIANT y); + + [id(DISPID_MATHOBJ_RANDOM)] + VARIANT random(); + + [id(DISPID_MATHOBJ_ROUND)] + VARIANT round(VARIANT x); + + [id(DISPID_MATHOBJ_SIN)] + VARIANT sin(VARIANT x); + + [id(DISPID_MATHOBJ_SQRT)] + VARIANT sqrt(VARIANT x); + + [id(DISPID_MATHOBJ_TAN)] + VARIANT tan(VARIANT x); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b089) + ] + dispinterface NumberObj { + properties: + [id(DISPID_NUMBEROBJ_MAX_VALUE), readonly] + VARIANT MAX_VALUE; + + [id(DISPID_NUMBEROBJ_MIN_VALUE), readonly] + VARIANT MIN_VALUE; + + [id(DISPID_NUMBEROBJ_NAN), readonly] + VARIANT NaN; + + [id(DISPID_NUMBEROBJ_NEGATIVE_INFINITY), readonly] + VARIANT NEGATIVE_INFINITY; + + [id(DISPID_NUMBEROBJ_POSITIVE_INFINITY), readonly] + VARIANT POSITIVE_INFINITY; + + methods: + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b090) + ] + dispinterface RegExpObj { + properties: + [id(DISPID_REGEXPOBJ_INDEX), readonly] + VARIANT index; + + [id(DISPID_REGEXPOBJ_INPUT), readonly] + VARIANT input; + + [id(DISPID_REGEXPOBJ_LASTINDEX), readonly] + VARIANT lastIndex; + + methods: + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b091) + ] + dispinterface StringObj { + properties: + methods: + [id(DISPID_STRINGOBJ_FROMCHARCODE)] + VARIANT fromCharCode(VARIANT char0); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b092) + ] + dispinterface ArrayInstance { + properties: + [id(DISPID_ARRAY_LENGTH)] + VARIANT length; + + methods: + [id(DISPID_ARRAY_CONCAT)] + ArrayInstance *concat(VARIANT Array); + + [id(DISPID_ARRAY_JOIN)] + StringInstance *join(VARIANT separator); + + [id(DISPID_ARRAY_POP)] + VARIANT pop(); + + [id(DISPID_ARRAY_PUSH)] + VARIANT push(VARIANT value); + + [id(DISPID_ARRAY_REVERSE)] + ArrayInstance *reverse(); + + [id(DISPID_ARRAY_SHIFT)] + VARIANT shift(); + + [id(DISPID_ARRAY_SLICE)] + ArrayInstance *slice( + VARIANT start, + VARIANT end); + + [id(DISPID_ARRAY_SORT)] + ArrayInstance *sort(VARIANT sortfunction); + + [id(DISPID_ARRAY_SPLICE)] + ArrayInstance *splice( + VARIANT start, + VARIANT deletecount); + + [id(DISPID_ARRAY_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_ARRAY_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_ARRAY_VALUEOF)] + ArrayInstance *valueOf(); + + [id(DISPID_ARRAY_UNSHIFT)] + VARIANT unshift(VARIANT value); + + [id(DISPID_ARRAY_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_ARRAY_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_ARRAY_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b093) + ] + dispinterface FunctionInstance { + properties: + [id(DISPID_FUNCTION_LENGTH)] + VARIANT length; + methods: + [id(DISPID_FUNCTION_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_FUNCTION_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_FUNCTION_VALUEOF)] + FunctionInstance *valueOf(); + + [id(DISPID_FUNCTION_APPLY)] + VARIANT apply( + VARIANT thisValue, + VARIANT argArray); + + [id(DISPID_FUNCTION_CALL)] + VARIANT call(VARIANT thisValue); + + [id(DISPID_FUNCTION_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_FUNCTION_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_FUNCTION_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b094) + ] + dispinterface StringInstance { + properties: + [id(DISPID_STRING_LENGTH)] + VARIANT length; + methods: + [id(DISPID_STRING_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_STRING_VALUEOF)] + StringInstance *valueOf(); + + [id(DISPID_STRING_ANCHOR)] + StringInstance *anchor(VARIANT anchorString); + + [id(DISPID_STRING_BIG)] + StringInstance *big(); + + [id(DISPID_STRING_BLINK)] + StringInstance *blink(); + + [id(DISPID_STRING_BOLD)] + StringInstance *bold(); + + [id(DISPID_STRING_CHARAT)] + StringInstance *charAt(VARIANT index); + + [id(DISPID_STRING_CHARCODEAT)] + VARIANT charCodeAt(VARIANT index); + + [id(DISPID_STRING_CONCAT)] + StringInstance *concat(VARIANT String); + + [id(DISPID_STRING_FIXED)] + StringInstance *fixed(); + + [id(DISPID_STRING_FONTCOLOR)] + StringInstance *fontcolor(VARIANT colorval); + + [id(DISPID_STRING_FONTSIZE)] + StringInstance *fontsize(VARIANT size); + + [id(DISPID_STRING_INDEXOF)] + VARIANT indexOf( + VARIANT substring, + VARIANT startindex); + + [id(DISPID_STRING_ITALICS)] + StringInstance *italics(); + + [id(DISPID_STRING_LASTINDEXOF)] + VARIANT lastIndexOf( + VARIANT substring, + VARIANT startindex); + + [id(DISPID_STRING_LINK)] + StringInstance *link(VARIANT linkstring); + + [id(DISPID_STRING_MATCH)] + VARIANT match(VARIANT RegExp); + + [id(DISPID_STRING_REPLACE)] + StringInstance *replace( + VARIANT RegExp, + VARIANT replacetext); + + [id(DISPID_STRING_SEARCH)] + VARIANT search(VARIANT RegExp); + + [id(DISPID_STRING_SLICE)] + StringInstance *slice( + VARIANT start, + VARIANT end); + + [id(DISPID_STRING_SMALL)] + StringInstance *_small(); /* FIXME */ + + [id(DISPID_STRING_SPLIT)] + ArrayInstance *split(VARIANT RegExp); + + [id(DISPID_STRING_STRIKE)] + StringInstance *strike(); + + [id(DISPID_STRING_SUB)] + StringInstance *sub(); + + [id(DISPID_STRING_SUBSTRING)] + StringInstance *substring( + VARIANT start, + VARIANT end); + + [id(DISPID_STRING_SUBSTR)] + StringInstance *substr( + VARIANT start, + VARIANT length); + + [id(DISPID_STRING_SUP)] + StringInstance *sup(); + + [id(DISPID_STRING_TOLOWERCASE)] + StringInstance *toLowerCase(); + + [id(DISPID_STRING_TOUPPERCASE)] + StringInstance *toUpperCase(); + + [id(DISPID_STRING_TOLOCLOWERCASE)] + StringInstance *toLocaleLowerCase(); + + [id(DISPID_STRING_TOLOCUPPERCASE)] + StringInstance *toLocaleUpperCase(); + + [id(DISPID_STRING_LOCCOMPARE)] + VARIANT localeCompare(VARIANT that); + + [id(DISPID_STRING_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_STRING_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_STRING_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b095) + ] + dispinterface BoolInstance { + properties: + methods: + [id(DISPID_BOOL_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_BOOL_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_BOOL_VALUEOF)] + VARIANT valueOf(); + + [id(DISPID_BOOL_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_BOOL_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_BOOL_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00C04fc2b096) + ] + dispinterface NumberInstance { + properties: + methods: + [id(DISPID_NUMBER_TOSTRING)] + StringInstance *toString(VARIANT radix); + + [id(DISPID_NUMBER_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_NUMBER_TOFIXED)] + StringInstance *toFixed(VARIANT fractionDigits); + + [id(DISPID_NUMBER_TOEXPONENTIAL)] + StringInstance *toExponential(VARIANT fractionDigits); + + [id(DISPID_NUMBER_TOPRECISION)] + StringInstance *toPrecision(VARIANT precision); + + [id(DISPID_NUMBER_VALUEOF)] + VARIANT valueOf(); + + [id(DISPID_NUMBER_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_NUMBER_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_NUMBER_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b097) + ] + dispinterface ObjectInstance { + properties: + methods: + [id(DISPID_OBJECT_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_OBJECT_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_OBJECT_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_OBJECT_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_OBJECT_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + + [id(DISPID_OBJECT_VALUEOF)] + ObjectInstance *valueOf(); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00C04fc2b098) + ] + dispinterface DateInstance { + properties: + methods: + [id(DISPID_DATE_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_DATE_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_DATE_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_DATE_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_DATE_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + + [id(DISPID_DATE_VALUEOF)] + DateInstance *valueOf(); + + [id(DISPID_DATE_TOUTCSTRING)] + StringInstance *toUTCString(); + + [id(DISPID_DATE_TODATESTRING)] + StringInstance *toDateString(); + + [id(DISPID_DATE_TOTIMESTRING)] + StringInstance *toTimeString(); + + [id(DISPID_DATE_TOLOCDATESTRING)] + StringInstance *toLocaleDateString(); + + [id(DISPID_DATE_TOLOCTIMESTRING)] + StringInstance *toLocaleTimeString(); + + [id(DISPID_DATE_GETTIME)] + VARIANT getTime(); + + [id(DISPID_DATE_GETFULLYEAR)] + VARIANT getFullYear(); + + [id(DISPID_DATE_GETUTCFULLYEAR)] + VARIANT getUTCFullYear(); + + [id(DISPID_DATE_GETMONTH)] + VARIANT getMonth(); + + [id(DISPID_DATE_GETUTCMONTH)] + VARIANT getUTCMonth(); + + [id(DISPID_DATE_GETDATE)] + VARIANT getDate(); + + [id(DISPID_DATE_GETUTCDATE)] + VARIANT getUTCDate(); + + [id(DISPID_DATE_GETDAY)] + VARIANT getDay(); + + [id(DISPID_DATE_GETUTCDAY)] + VARIANT getUTCDay(); + + [id(DISPID_DATE_GETHOURS)] + VARIANT getHours(); + + [id(DISPID_DATE_GETUTCHOURS)] + VARIANT getUTCHours(); + + [id(DISPID_DATE_GETMINUTES)] + VARIANT getMinutes(); + + [id(DISPID_DATE_GETUTCMINUTES)] + VARIANT getUTCMinutes(); + + [id(DISPID_DATE_GETSECONDS)] + VARIANT getSeconds(); + + [id(DISPID_DATE_GETUTCSECONDS)] + VARIANT getUTCSeconds(); + + [id(DISPID_DATE_GETMILLISECONDS)] + VARIANT getMilliseconds(); + + [id(DISPID_DATE_GETUTCMILLISECONDS)] + VARIANT getUTCMilliseconds(); + + [id(DISPID_DATE_GETTIMEZONEOFFSET)] + VARIANT getTimezoneOffset(); + + [id(DISPID_DATE_SETTIME)] + DateInstance *setTime(VARIANT time); + + [id(DISPID_DATE_SETMILLISECONDS)] + DateInstance *setMilliseconds(VARIANT milliseconds); + + [id(DISPID_DATE_SETUTCMILLISECONDS)] + DateInstance *setUTCMilliseconds(VARIANT milliseconds); + + [id(DISPID_DATE_SETSECONDS)] + DateInstance *setSeconds( + VARIANT seconds, + [optional] VARIANT milliseconds); + + [id(DISPID_DATE_SETUTCSECONDS)] + DateInstance *setUTCSeconds( + VARIANT seconds, + [optional] VARIANT milliseconds); + + [id(DISPID_DATE_SETMINUTES)] + DateInstance *setMinutes( + VARIANT minutes, + [optional] VARIANT seconds, + [optional] VARIANT milliseconds); + + [id(DISPID_DATE_SETUTCMINUTES)] + DateInstance *setUTCMinutes( + VARIANT minutes, + [optional] VARIANT seconds, + [optional] VARIANT milliseconds); + + [id(DISPID_DATE_SETHOURS)] + DateInstance *setHours( + VARIANT hours, + [optional] VARIANT minutes, + [optional] VARIANT seconds, + [optional] VARIANT milliseconds); + + [id(DISPID_DATE_SETUTCHOURS)] + DateInstance *setUTCHours( + VARIANT hours, + [optional] VARIANT minutes, + [optional] VARIANT seconds, + [optional] VARIANT milliseconds); + + [id(DISPID_DATE_SETDATE)] + DateInstance *setDate(VARIANT Date); + + [id(DISPID_DATE_SETUTCDATE)] + DateInstance *setUTCDate(VARIANT Date); + + [id(DISPID_DATE_SETMONTH)] + DateInstance *setMonth( + VARIANT month, + [optional] VARIANT Date); + + [id(DISPID_DATE_SETUTCMONTH)] + DateInstance *setUTCMonth( + VARIANT month, + [optional] VARIANT Date); + + [id(DISPID_DATE_SETFULLYEAR)] + DateInstance *setFullYear( + VARIANT year, + [optional] VARIANT month, + [optional] VARIANT Date); + + [id(DISPID_DATE_SETUTCFULLYEAR)] + DateInstance *setUTCFullYear( + VARIANT year, + [optional] VARIANT month, + [optional] VARIANT Date); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04Fc2b099) + ] + dispinterface RegExpInstance { + properties: + [id(DISPID_REGEXP_SOURCE)] + StringInstance *source; + + [id(DISPID_REGEXP_GLOBAL)] + VARIANT global; + + [id(DISPID_REGEXP_IGNORECASE)] + VARIANT ignoreCase; + + [id(DISPID_REGEXP_MULTILINE)] + VARIANT multiline; + + [id(DISPID_REGEXP_LASTINDEX)] + VARIANT lastIndex; + methods: + [id(DISPID_REGEXP_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_REGEXP_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_REGEXP_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_REGEXP_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_REGEXP_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + + [id(DISPID_REGEXP_EXEC)] + ArrayInstance *exec(VARIANT String); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b09a) + ] + dispinterface ErrorInstance { + properties: + [id(DISPID_ERROR_NAME)] + StringInstance *name; + + [id(DISPID_ERROR_MESSAGE)] + StringInstance *message; + + [id(DISPID_ERROR_IGNORECASE)] + VARIANT ignoreCase; + + [id(DISPID_ERROR_MULTILINE)] + VARIANT multiline; + + [id(DISPID_ERROR_LASTINDEX)] + VARIANT lastIndex; + + methods: + [id(DISPID_ERROR_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_ERROR_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_ERROR_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_ERROR_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_ERROR_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b09b) + ] + dispinterface EvalErrorInstance { + properties: + [id(DISPID_ERROR_NAME)] + StringInstance *name; + + [id(DISPID_ERROR_MESSAGE)] + StringInstance *message; + + [id(DISPID_ERROR_IGNORECASE)] + VARIANT ignoreCase; + + [id(DISPID_ERROR_MULTILINE)] + VARIANT multiline; + + [id(DISPID_ERROR_LASTINDEX)] + VARIANT lastIndex; + + methods: + [id(DISPID_ERROR_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_ERROR_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_ERROR_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_ERROR_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_ERROR_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b09c) + ] + dispinterface RangeErrorInstance { + properties: + [id(DISPID_ERROR_NAME)] + StringInstance *name; + + [id(DISPID_ERROR_MESSAGE)] + StringInstance *message; + + [id(DISPID_ERROR_IGNORECASE)] + VARIANT ignoreCase; + + [id(DISPID_ERROR_MULTILINE)] + VARIANT multiline; + + [id(DISPID_ERROR_LASTINDEX)] + VARIANT lastIndex; + + methods: + [id(DISPID_ERROR_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_ERROR_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_ERROR_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_ERROR_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_ERROR_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b09d) + ] + dispinterface ReferenceErrorInstance { + properties: + [id(DISPID_ERROR_NAME)] + StringInstance *name; + + [id(DISPID_ERROR_MESSAGE)] + StringInstance *message; + + [id(DISPID_ERROR_IGNORECASE)] + VARIANT ignoreCase; + + [id(DISPID_ERROR_MULTILINE)] + VARIANT multiline; + + [id(DISPID_ERROR_LASTINDEX)] + VARIANT lastIndex; + + methods: + [id(DISPID_ERROR_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_ERROR_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_ERROR_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_ERROR_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_ERROR_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b09e) + ] + dispinterface SyntaxErrorInstance { + properties: + [id(DISPID_ERROR_NAME)] + StringInstance *name; + + [id(DISPID_ERROR_MESSAGE)] + StringInstance *message; + + [id(DISPID_ERROR_IGNORECASE)] + VARIANT ignoreCase; + + [id(DISPID_ERROR_MULTILINE)] + VARIANT multiline; + + [id(DISPID_ERROR_LASTINDEX)] + VARIANT lastIndex; + + methods: + [id(DISPID_ERROR_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_ERROR_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_ERROR_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_ERROR_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_ERROR_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b09f) + ] + dispinterface TypeErrorInstance { + properties: + [id(DISPID_ERROR_NAME)] + StringInstance *name; + + [id(DISPID_ERROR_MESSAGE)] + StringInstance *message; + + [id(DISPID_ERROR_IGNORECASE)] + VARIANT ignoreCase; + + [id(DISPID_ERROR_MULTILINE)] + VARIANT multiline; + + [id(DISPID_ERROR_LASTINDEX)] + VARIANT lastIndex; + + methods: + [id(DISPID_ERROR_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_ERROR_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_ERROR_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_ERROR_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_ERROR_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } + + [ + uuid(3eef9758-35fc-11d1-8ce4-00c04fc2b0a0) + ] + dispinterface URIErrorInstance { + properties: + [id(DISPID_ERROR_NAME)] + StringInstance *name; + + [id(DISPID_ERROR_MESSAGE)] + StringInstance *message; + + [id(DISPID_ERROR_IGNORECASE)] + VARIANT ignoreCase; + + [id(DISPID_ERROR_MULTILINE)] + VARIANT multiline; + + [id(DISPID_ERROR_LASTINDEX)] + VARIANT lastIndex; + + methods: + [id(DISPID_ERROR_TOSTRING)] + StringInstance *toString(); + + [id(DISPID_ERROR_TOLOCSTRING)] + StringInstance *toLocaleString(); + + [id(DISPID_ERROR_HASOWNPROP)] + VARIANT hasOwnProperty(VARIANT propertyName); + + [id(DISPID_ERROR_PROPISENUM)] + VARIANT propertyIsEnumerable(VARIANT propertyName); + + [id(DISPID_ERROR_ISPROTOF)] + VARIANT isPrototypeOf(VARIANT obj); + } +} diff --git a/dlls/jscript/jsglobal_dispid.h b/dlls/jscript/jsglobal_dispid.h new file mode 100644 index 00000000000..392262258f4 --- /dev/null +++ b/dlls/jscript/jsglobal_dispid.h @@ -0,0 +1,273 @@ +/* + * Copyright 2008 Jacek Caban for CodeWeavers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA + */ + +/* GlobalObj */ +#define DISPID_GLOBAL_NAN 0x0000 +#define DISPID_GLOBAL_INFINITY 0x0001 +#define DISPID_GLOBAL_ARRAY 0x0002 +#define DISPID_GLOBAL_BOOLEAN 0x0003 +#define DISPID_GLOBAL_DATE 0x0004 +#define DISPID_GLOBAL_FUNCTION 0x0005 +#define DISPID_GLOBAL_NUMBER 0x0006 +#define DISPID_GLOBAL_OBJECT 0x0007 +#define DISPID_GLOBAL_STRING 0x0008 +#define DISPID_GLOBAL_REGEXP 0x0009 +#define DISPID_GLOBAL_ACTIVEXOBJ 0x000a +#define DISPID_GLOBAL_VBARRAY 0x000b +#define DISPID_GLOBAL_ENUMERATOR 0x000c +#define DISPID_GLOBAL_ESCAPE 0x000d +#define DISPID_GLOBAL_EVAL 0x000e +#define DISPID_GLOBAL_ISNAN 0x000f +#define DISPID_GLOBAL_ISFINITE 0x0010 +#define DISPID_GLOBAL_PARSEINT 0x0011 +#define DISPID_GLOBAL_PARSEFLOAT 0x0012 +#define DISPID_GLOBAL_UNESCAPE 0x0013 +#define DISPID_GLOBAL_GETOBJECT 0x0014 +#define DISPID_GLOBAL_SCRIPTENGINE 0x0015 +#define DISPID_GLOBAL_MAJORVER 0x0016 +#define DISPID_GLOBAL_MINORVER 0x0017 +#define DISPID_GLOBAL_BUILDVER 0x0018 +#define DISPID_GLOBAL_COLLECT 0x0019 +#define DISPID_GLOBAL_MATH 0x001a + + +/* DateObj */ +#define DISPID_DATEOBJ_PARSE 0x0064 +#define DISPID_DATEOBJ_UTC 0x0065 + + +/* MathObj */ +#define DISPID_MATHOBJ_E 0x00c8 +#define DISPID_MATHOBJ_LOG2E 0x00c9 +#define DISPID_MATHOBJ_LOG10E 0x00ca +#define DISPID_MATHOBJ_LN2 0x00cb +#define DISPID_MATHOBJ_LN10 0x00cc +#define DISPID_MATHOBJ_PI 0x00cd +#define DISPID_MATHOBJ_SQRT2 0x00ce +#define DISPID_MATHOBJ_SQRT1_2 0x00cf +#define DISPID_MATHOBJ_ABS 0x00d0 +#define DISPID_MATHOBJ_ACOS 0x00d1 +#define DISPID_MATHOBJ_ASIN 0x00d2 +#define DISPID_MATHOBJ_ATAN 0x00d3 +#define DISPID_MATHOBJ_ATAN2 0x00d4 +#define DISPID_MATHOBJ_CEIL 0x00d5 +#define DISPID_MATHOBJ_COS 0x00d6 +#define DISPID_MATHOBJ_EXP 0x00d7 +#define DISPID_MATHOBJ_FLOOR 0x00d8 +#define DISPID_MATHOBJ_LOG 0x00d9 +#define DISPID_MATHOBJ_MAX 0x00da +#define DISPID_MATHOBJ_MIN 0x00db +#define DISPID_MATHOBJ_POW 0x00dc +#define DISPID_MATHOBJ_RANDOM 0x00dd +#define DISPID_MATHOBJ_ROUND 0x00de +#define DISPID_MATHOBJ_SIN 0x00df +#define DISPID_MATHOBJ_SQRT 0x00e0 +#define DISPID_MATHOBJ_TAN 0x00e1 + + +/* NumberObj */ +#define DISPID_NUMBEROBJ_MAX_VALUE 0x012c +#define DISPID_NUMBEROBJ_MIN_VALUE 0x012d +#define DISPID_NUMBEROBJ_NAN 0x012e +#define DISPID_NUMBEROBJ_NEGATIVE_INFINITY 0x012f +#define DISPID_NUMBEROBJ_POSITIVE_INFINITY 0x0130 + + +/* RegExpObj */ +#define DISPID_REGEXPOBJ_INDEX 0x0190 +#define DISPID_REGEXPOBJ_INPUT 0x0191 +#define DISPID_REGEXPOBJ_LASTINDEX 0x0192 + + +/* StringObj */ +#define DISPID_STRINGOBJ_FROMCHARCODE 0x01f4 + + +/* ArrayInstance */ +#define DISPID_ARRAY_LENGTH 0x0258 +#define DISPID_ARRAY_CONCAT 0x0259 +#define DISPID_ARRAY_JOIN 0x025a +#define DISPID_ARRAY_POP 0x025b +#define DISPID_ARRAY_PUSH 0x025c +#define DISPID_ARRAY_REVERSE 0x025d +#define DISPID_ARRAY_SHIFT 0x025e +#define DISPID_ARRAY_SLICE 0x025f +#define DISPID_ARRAY_SORT 0x0260 +#define DISPID_ARRAY_SPLICE 0x0261 +#define DISPID_ARRAY_TOSTRING 0x0262 +#define DISPID_ARRAY_TOLOCSTRING 0x0263 +#define DISPID_ARRAY_VALUEOF 0x0264 +#define DISPID_ARRAY_UNSHIFT 0x0265 +#define DISPID_ARRAY_HASOWNPROP 0x0266 +#define DISPID_ARRAY_PROPISENUM 0x0267 +#define DISPID_ARRAY_ISPROTOF 0x0268 + + +/* FunctionInstance */ +#define DISPID_FUNCTION_LENGTH 0x02bc +#define DISPID_FUNCTION_TOSTRING 0x02bd +#define DISPID_FUNCTION_TOLOCSTRING 0x02be +#define DISPID_FUNCTION_VALUEOF 0x02bf +#define DISPID_FUNCTION_APPLY 0x02c0 +#define DISPID_FUNCTION_CALL 0x02c1 +#define DISPID_FUNCTION_HASOWNPROP 0x02c2 +#define DISPID_FUNCTION_PROPISENUM 0x02c3 +#define DISPID_FUNCTION_ISPROTOF 0x02c4 + + +/* StringInstance */ +#define DISPID_STRING_LENGTH 0x0320 +#define DISPID_STRING_TOSTRING 0x0321 +#define DISPID_STRING_VALUEOF 0x0322 +#define DISPID_STRING_ANCHOR 0x0323 +#define DISPID_STRING_BIG 0x0324 +#define DISPID_STRING_BLINK 0x0325 +#define DISPID_STRING_BOLD 0x0326 +#define DISPID_STRING_CHARAT 0x0327 +#define DISPID_STRING_CHARCODEAT 0x0328 +#define DISPID_STRING_CONCAT 0x0329 +#define DISPID_STRING_FIXED 0x032a +#define DISPID_STRING_FONTCOLOR 0x032b +#define DISPID_STRING_FONTSIZE 0x032c +#define DISPID_STRING_INDEXOF 0x032d +#define DISPID_STRING_ITALICS 0x032e +#define DISPID_STRING_LASTINDEXOF 0x032f +#define DISPID_STRING_LINK 0x0330 +#define DISPID_STRING_MATCH 0x0331 +#define DISPID_STRING_REPLACE 0x0332 +#define DISPID_STRING_SEARCH 0x0333 +#define DISPID_STRING_SLICE 0x0334 +#define DISPID_STRING_SMALL 0x0335 +#define DISPID_STRING_SPLIT 0x0336 +#define DISPID_STRING_STRIKE 0x0337 +#define DISPID_STRING_SUB 0x0338 +#define DISPID_STRING_SUBSTRING 0x0339 +#define DISPID_STRING_SUBSTR 0x033a +#define DISPID_STRING_SUP 0x033b +#define DISPID_STRING_TOLOWERCASE 0x033c +#define DISPID_STRING_TOUPPERCASE 0x033d +#define DISPID_STRING_TOLOCLOWERCASE 0x033e +#define DISPID_STRING_TOLOCUPPERCASE 0x033f +#define DISPID_STRING_LOCCOMPARE 0x0340 +#define DISPID_STRING_HASOWNPROP 0x0341 +#define DISPID_STRING_PROPISENUM 0x0342 +#define DISPID_STRING_ISPROTOF 0x0343 + + +/* BoolInstance */ +#define DISPID_BOOL_TOSTRING 0x0384 +#define DISPID_BOOL_TOLOCSTRING 0x0385 +#define DISPID_BOOL_VALUEOF 0x0386 +#define DISPID_BOOL_HASOWNPROP 0x0387 +#define DISPID_BOOL_PROPISENUM 0x0388 +#define DISPID_BOOL_ISPROTOF 0x0389 + + +/* NumberInstance */ +#define DISPID_NUMBER_TOSTRING 0x03e8 +#define DISPID_NUMBER_TOLOCSTRING 0x03e9 +#define DISPID_NUMBER_TOFIXED 0x03ea +#define DISPID_NUMBER_TOEXPONENTIAL 0x03eb +#define DISPID_NUMBER_TOPRECISION 0x03ec +#define DISPID_NUMBER_VALUEOF 0x03ed +#define DISPID_NUMBER_HASOWNPROP 0x03ee +#define DISPID_NUMBER_PROPISENUM 0x03ef +#define DISPID_NUMBER_ISPROTOF 0x03f0 + + +/* ObjectInstance */ +#define DISPID_OBJECT_TOSTRING 0x044c +#define DISPID_OBJECT_TOLOCSTRING 0x044d +#define DISPID_OBJECT_HASOWNPROP 0x044e +#define DISPID_OBJECT_PROPISENUM 0x044f +#define DISPID_OBJECT_ISPROTOF 0x0450 +#define DISPID_OBJECT_VALUEOF 0x0451 + + +/* DateInstance */ +#define DISPID_DATE_TOSTRING 0x04b0 +#define DISPID_DATE_TOLOCSTRING 0x04b1 +#define DISPID_DATE_HASOWNPROP 0x04b2 +#define DISPID_DATE_PROPISENUM 0x04b3 +#define DISPID_DATE_ISPROTOF 0x04b4 +#define DISPID_DATE_VALUEOF 0x04b5 +#define DISPID_DATE_TOUTCSTRING 0x04b6 +#define DISPID_DATE_TODATESTRING 0x04b7 +#define DISPID_DATE_TOTIMESTRING 0x04b8 +#define DISPID_DATE_TOLOCDATESTRING 0x04b9 +#define DISPID_DATE_TOLOCTIMESTRING 0x04ba +#define DISPID_DATE_GETTIME 0x04bb +#define DISPID_DATE_GETFULLYEAR 0x04bc +#define DISPID_DATE_GETUTCFULLYEAR 0x04bd +#define DISPID_DATE_GETMONTH 0x04be +#define DISPID_DATE_GETUTCMONTH 0x04bf +#define DISPID_DATE_GETDATE 0x04c0 +#define DISPID_DATE_GETUTCDATE 0x04c1 +#define DISPID_DATE_GETDAY 0x04c2 +#define DISPID_DATE_GETUTCDAY 0x04c3 +#define DISPID_DATE_GETHOURS 0x04c4 +#define DISPID_DATE_GETUTCHOURS 0x04c5 +#define DISPID_DATE_GETMINUTES 0x04c6 +#define DISPID_DATE_GETUTCMINUTES 0x04c7 +#define DISPID_DATE_GETSECONDS 0x04c8 +#define DISPID_DATE_GETUTCSECONDS 0x04c9 +#define DISPID_DATE_GETMILLISECONDS 0x04ca +#define DISPID_DATE_GETUTCMILLISECONDS 0x04cb +#define DISPID_DATE_GETTIMEZONEOFFSET 0x04cc +#define DISPID_DATE_SETTIME 0x04cd +#define DISPID_DATE_SETMILLISECONDS 0x04ce +#define DISPID_DATE_SETUTCMILLISECONDS 0x04cf +#define DISPID_DATE_SETSECONDS 0x04d0 +#define DISPID_DATE_SETUTCSECONDS 0x04d1 +#define DISPID_DATE_SETMINUTES 0x04d2 +#define DISPID_DATE_SETUTCMINUTES 0x04d3 +#define DISPID_DATE_SETHOURS 0x04d4 +#define DISPID_DATE_SETUTCHOURS 0x04d5 +#define DISPID_DATE_SETDATE 0x04d6 +#define DISPID_DATE_SETUTCDATE 0x04d7 +#define DISPID_DATE_SETMONTH 0x04d8 +#define DISPID_DATE_SETUTCMONTH 0x04d9 +#define DISPID_DATE_SETFULLYEAR 0x04da +#define DISPID_DATE_SETUTCFULLYEAR 0x04db + + +/* RegExpInstance */ +#define DISPID_REGEXP_SOURCE 0x0514 +#define DISPID_REGEXP_GLOBAL 0x0515 +#define DISPID_REGEXP_IGNORECASE 0x0516 +#define DISPID_REGEXP_MULTILINE 0x0517 +#define DISPID_REGEXP_LASTINDEX 0x0518 +#define DISPID_REGEXP_TOSTRING 0x0519 +#define DISPID_REGEXP_TOLOCSTRING 0x051a +#define DISPID_REGEXP_HASOWNPROP 0x051b +#define DISPID_REGEXP_PROPISENUM 0x051c +#define DISPID_REGEXP_ISPROTOF 0x051d +#define DISPID_REGEXP_EXEC 0x051e + + +/* ErrorInstance */ +#define DISPID_ERROR_NAME 0x0578 +#define DISPID_ERROR_MESSAGE 0x0579 +#define DISPID_ERROR_IGNORECASE 0x057a +#define DISPID_ERROR_MULTILINE 0x057b +#define DISPID_ERROR_LASTINDEX 0x057c +#define DISPID_ERROR_TOSTRING 0x057d +#define DISPID_ERROR_TOLOCSTRING 0x057e +#define DISPID_ERROR_HASOWNPROP 0x057f +#define DISPID_ERROR_PROPISENUM 0x0580 +#define DISPID_ERROR_ISPROTOF 0x0581 diff --git a/dlls/jscript/rsrc.rc b/dlls/jscript/rsrc.rc index 7a08b7909d7..cb0f31a57ec 100644 --- a/dlls/jscript/rsrc.rc +++ b/dlls/jscript/rsrc.rc @@ -18,3 +18,6 @@ /* @makedep: jscript.inf */ REGINST REGINST jscript.inf + +/* @makedep: jsglobal.tlb */ +1 TYPELIB LOADONCALL DISCARDABLE jsglobal.tlb