32#define IActiveScriptParse_QueryInterface IActiveScriptParse64_QueryInterface
33#define IActiveScriptParse_Release IActiveScriptParse64_Release
34#define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew
35#define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText
36#define IActiveScriptParseProcedure2_Release IActiveScriptParseProcedure2_64_Release
37#define IActiveScriptParseProcedure2_ParseProcedureText IActiveScriptParseProcedure2_64_ParseProcedureText
41#define IActiveScriptParse_QueryInterface IActiveScriptParse32_QueryInterface
42#define IActiveScriptParse_Release IActiveScriptParse32_Release
43#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew
44#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText
45#define IActiveScriptParseProcedure2_Release IActiveScriptParseProcedure2_32_Release
46#define IActiveScriptParseProcedure2_ParseProcedureText IActiveScriptParseProcedure2_32_ParseProcedureText
50DEFINE_GUID(
GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
51DEFINE_GUID(IID_IScriptTypeInfo, 0xc59c6b12, 0xf6c1, 0x11cf, 0x88,0x35, 0x00,0xa0,0xc9,0x11,0xe8,0xb2);
54 {0xf414c260,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
56 {0xf414c262,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
58#define DEFINE_EXPECT(func) \
59 static int expect_ ## func = 0, called_ ## func = 0
61#define SET_EXPECT(func) \
64#define SET_EXPECT_MULTI(func, num) \
67#define CHECK_EXPECT2(func) \
69 ok(expect_ ##func, "unexpected call " #func "\n"); \
73#define CHECK_EXPECT(func) \
75 CHECK_EXPECT2(func); \
79#define CHECK_CALLED(func) \
81 ok(called_ ## func, "expected " #func "\n"); \
82 expect_ ## func = called_ ## func = 0; \
85#define CHECK_NOT_CALLED(func) \
87 ok(!called_ ## func, "unexpected " #func "\n"); \
88 expect_ ## func = called_ ## func = FALSE; \
91#define CHECK_CALLED_MULTI(func, num) \
93 ok(called_ ## func == num, "expected " #func " %d times (got %d)\n", num, called_ ## func); \
94 expect_ ## func = called_ ## func = 0; \
119#define test_state(s,ss) _test_state(__LINE__,s,ss)
127 ok_(__FILE__,
line) (
state == exstate,
"state=%d, expected %d\n",
state, exstate);
134 IDispatch_AddRef(iface);
196 ok(0,
"unexpected call\n");
208 ok(name_cnt == 1,
"name_cnt = %u\n", name_cnt);
221 ok(name_cnt == 1,
"name_cnt = %u\n", name_cnt);
234 ok(name_cnt == 1,
"name_cnt = %u\n", name_cnt);
244 ok(
id == 1,
"id = %lu\n",
id);
246 ok(!dp->cArgs,
"cArgs = %u\n", dp->cArgs);
345 ok(dwReturnMask == SCRIPTINFO_IUNKNOWN,
"dwReturnMask = %lx\n", dwReturnMask);
346 if(!
wcscmp(pstrName,
L"globalItem")) {
352 if(!
wcscmp(pstrName,
L"globalCodeItem")) {
358 if(!
wcscmp(pstrName,
L"visibleItem")) {
364 if(!
wcscmp(pstrName,
L"visibleCodeItem")) {
370 if(!
wcscmp(pstrName,
L"persistent")) {
382 ok(0,
"unexpected call\n");
387 const VARIANT *pvarResult,
const EXCEPINFO *pexcepinfo)
389 ok(0,
"unexpected call\n");
395 switch(ssScriptState) {
415 ok(0,
"unexpected call %d\n", ssScriptState);
465 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseSensitive, &
id);
470 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseSensitive, &
id);
474 memset(&ei, 0,
sizeof(ei));
482 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseSensitive, &
id);
486 memset(&ei, 0,
sizeof(ei));
500 disp = (
void*)0xdeadbeef;
501 hres = IActiveScript_GetScriptDispatch(
script, item_name, &disp);
504 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
505 IDispatch_Release(disp);
524#define get_disp_id(a,b,c,d) _get_disp_id(__LINE__,a,b,c,d)
532 hr = IDispatchEx_GetDispID(dispex,
str, 0,
id);
533 ok_(__FILE__,
line)(
hr == exhr,
"GetDispID(%s) returned %08lx, expected %08lx\n",
536 hr = IDispatchEx_GetIDsOfNames(dispex, &
IID_NULL, &
str, 1, 0, &id2);
538 ok_(__FILE__,
line)(
hr == exhr,
"GetIDsOfNames(%s) returned %08lx, expected %08lx\n",
548 disp = (
void*)0xdeadbeef;
551 ok(!disp,
"disp != NULL\n");
560 hres = IUnknown_QueryInterface(unk, &IID_IObjectSafety, (
void**)&safety);
565 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &
IID_NULL, &supported,
NULL);
566 ok(
hres ==
E_POINTER,
"GetInterfaceSafetyOptions failed: %08lx, expected E_POINTER\n",
hres);
568 ok(
hres ==
E_POINTER,
"GetInterfaceSafetyOptions failed: %08lx, expected E_POINTER\n",
hres);
570 supported =
enabled = 0xdeadbeef;
572 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
573 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
574 "supported=%lx\n", supported);
577 supported =
enabled = 0xdeadbeef;
578 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScript, &supported, &
enabled);
579 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
580 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
581 "supported=%lx\n", supported);
584 supported =
enabled = 0xdeadbeef;
585 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
586 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
587 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
588 "supported=%lx\n", supported);
591 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
592 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER
593 |INTERFACESAFE_FOR_UNTRUSTED_CALLER,
594 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER);
595 ok(
hres ==
E_FAIL,
"SetInterfaceSafetyOptions failed: %08lx, expected E_FAIL\n",
hres);
597 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
598 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER,
599 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER);
600 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08lx\n",
hres);
602 supported =
enabled = 0xdeadbeef;
603 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
604 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
605 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
606 "supported=%lx\n", supported);
607 ok(
enabled == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
610 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, INTERFACESAFE_FOR_UNTRUSTED_DATA, 0);
611 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08lx\n",
hres);
613 supported =
enabled = 0xdeadbeef;
614 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
615 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
616 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
617 "supported=%lx\n", supported);
618 ok(
enabled == (INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
"enabled=%lx\n",
enabled);
620 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
621 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER, 0);
622 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08lx\n",
hres);
624 supported =
enabled = 0xdeadbeef;
625 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
626 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
627 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
628 "supported=%lx\n", supported);
631 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
632 INTERFACE_USES_DISPEX, 0);
633 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08lx\n",
hres);
635 supported =
enabled = 0xdeadbeef;
636 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
637 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
638 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
639 "supported=%lx\n", supported);
642 IObjectSafety_Release(safety);
650 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptProperty,
651 (
void**)&script_prop);
652 ok(
hres ==
S_OK,
"Could not get IActiveScriptProperty: %08lx\n",
hres);
657 IActiveScriptProperty_Release(script_prop);
669 win_skip(
"SCRIPTPROP_INVOKESTRING not supported\n");
687 ok(
hres ==
S_OK,
"SetProperty(SCRIPTPROP_INVOKEVERSIONING) failed: %08lx\n",
hres);
696 &IID_IActiveScript, (
void**)&
ret);
704 IActiveScriptParse *parse;
712 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
713 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
748 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
761 IDispatchEx_Release(dispex);
771 IActiveScriptParse *parse;
778 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
779 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
800 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
825 IActiveScriptParse *parse;
833 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
834 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
858 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
864 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
883 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
891 ok(dispex !=
NULL,
"dispex == NULL\n");
892 IDispatchEx_Release(dispex);
898 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
911 ok(
hres ==
E_UNEXPECTED,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx, expected E_UNEXPECTED\n",
hres);
929 "CoCreateInstance failed: %08lx, expected CLASS_E_NOAGGREGATION\n",
hres);
935 static const WCHAR *
const names[] = {
L"abc",
L"foo",
L"bar",
L"mAth",
L"evaL" };
936 DISPPARAMS dp = {
NULL,
NULL, 0, 0 };
937 IActiveScriptParse *
parser;
939 EXCEPINFO ei = { 0 };
949 hr = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&
parser);
950 ok(
hr ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hr);
954 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
959 ok(
hr ==
S_OK,
"InitNew failed: %08lx\n",
hr);
964 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
967 parse_script(
parser,
L"var aBc; var abC; function Foo() { }\nFoo.prototype.foo = 13; var Bar = new Foo(); Bar.Foo = 42;");
972 hr = IDispatchEx_GetIDsOfNames(disp, &
IID_NULL, &bstr, 1, 0, &
id);
975 hr = IDispatchEx_GetDispID(disp, bstr, 0, &
id);
978 hr = IDispatchEx_GetDispID(disp, bstr, fdexNameCaseInsensitive, &
id);
979 ok(
hr ==
S_OK,
"GetDispID(%s) with fdexNameCaseInsensitive failed: %08lx\n",
debugstr_w(bstr),
hr);
980 ok(
id > 0,
"Unexpected DISPID for %s: %ld\n",
debugstr_w(bstr),
id);
986 ok(
hr ==
S_OK,
"InvokeEx failed: %08lx\n",
hr);
989 IDispatchEx_Release(disp);
991 hr = IDispatch_QueryInterface(
V_DISPATCH(&
v), &IID_IDispatchEx, (
void**)&disp);
992 ok(
hr ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hr);
996 hr = IDispatchEx_GetDispID(disp, bstr, fdexNameCaseSensitive, &
id);
997 ok(
hr ==
S_OK,
"GetDispID failed: %08lx\n",
hr);
1000 hr = IDispatchEx_GetDispID(disp, bstr, fdexNameCaseInsensitive, &id2);
1001 ok(
hr ==
S_OK,
"GetDispID failed: %08lx\n",
hr);
1003 hr = IDispatchEx_GetIDsOfNames(disp, &
IID_NULL, &bstr, 1, 0, &id2);
1004 ok(
hr ==
S_OK,
"GetIDsOfNames failed: %08lx\n",
hr);
1005 ok(
id == id2,
"id != id2\n");
1007 hr = IDispatchEx_DeleteMemberByName(disp, bstr, fdexNameCaseInsensitive);
1008 ok(
hr ==
S_OK,
"DeleteMemberByName failed: %08lx\n",
hr);
1010 hr = IDispatchEx_GetDispID(disp, bstr, fdexNameCaseInsensitive, &id2);
1011 ok(
hr ==
S_OK,
"GetDispID failed: %08lx\n",
hr);
1012 ok(
id == id2,
"id != id2\n");
1014 hr = IDispatchEx_GetDispID(disp, bstr, fdexNameCaseInsensitive | fdexNameEnsure, &id2);
1015 ok(
hr ==
S_OK,
"GetDispID failed: %08lx\n",
hr);
1016 ok(
id == id2,
"id != id2\n");
1020 hr = IDispatchEx_GetDispID(disp, bstr, fdexNameCaseInsensitive, &id2);
1021 ok(
hr ==
S_OK,
"GetDispID failed: %08lx\n",
hr);
1022 ok(
id == id2,
"id != id2\n");
1024 hr = IDispatchEx_GetDispID(disp, bstr, fdexNameCaseInsensitive | fdexNameEnsure, &id2);
1025 ok(
hr ==
S_OK,
"GetDispID failed: %08lx\n",
hr);
1026 ok(
id == id2,
"id != id2\n");
1028 hr = IDispatchEx_GetDispID(disp, bstr, fdexNameEnsure, &id2);
1029 ok(
hr ==
S_OK,
"GetDispID failed: %08lx\n",
hr);
1030 ok(
id != id2,
"id == id2\n");
1032 hr = IDispatchEx_GetDispID(disp, bstr, fdexNameCaseInsensitive | fdexNameEnsure, &id2);
1033 ok(
hr ==
S_OK,
"GetDispID failed: %08lx\n",
hr);
1036 IDispatchEx_Release(disp);
1048 IActiveScript_Release(
script);
1053 static const WCHAR *
const names1[] = {
L"test",
L"c",
L"foo",
L"b",
L"a" };
1054 static const WCHAR *
const names2[] = {
L"test",
L"bar" };
1055 static const WCHAR *
const names3[] = {
L"bar",
L"test" };
1057 IActiveScriptParse *
parser;
1064 hr = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&
parser);
1065 ok(
hr ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hr);
1069 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1074 ok(
hr ==
S_OK,
"InitNew failed: %08lx\n",
hr);
1079 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
1082 parse_script(
parser,
L"function test(a, b, c, foo) { return a + b + c - foo; }\nfunction bar() { }");
1087 ok(
id[0] > 0,
"Unexpected DISPID for \"test\": %ld\n",
id[0]);
1088 ok(
id[4] == DISPID_UNKNOWN,
"Unexpected DISPID for \"a\" parameter: %ld\n",
id[4]);
1089 ok(
id[3] == DISPID_UNKNOWN,
"Unexpected DISPID for \"b\" parameter: %ld\n",
id[3]);
1090 ok(
id[1] == DISPID_UNKNOWN,
"Unexpected DISPID for \"c\" parameter: %ld\n",
id[1]);
1091 ok(
id[2] == DISPID_UNKNOWN,
"Unexpected DISPID for \"foo\" parameter: %ld\n",
id[2]);
1095 ok(
id[0] > 0,
"Unexpected DISPID for \"test\": %ld\n",
id[0]);
1096 ok(
id[1] == DISPID_UNKNOWN,
"Unexpected DISPID for \"bar\": %ld\n",
id[1]);
1100 ok(
id[0] > 0,
"Unexpected DISPID for \"bar\": %ld\n",
id[0]);
1101 ok(
id[1] == DISPID_UNKNOWN,
"Unexpected DISPID for \"test\": %ld\n",
id[1]);
1103 IDispatchEx_Release(disp);
1115 IActiveScript_Release(
script);
1120 IActiveScriptParse *parse;
1130 hr = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
1131 ok(
hr ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hr);
1137 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1142 ok(
hr ==
S_OK,
"InitNew failed: %08lx\n",
hr);
1150 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1157 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1163 ok(
id == -1,
"id = %ld, expected -1\n",
id);
1166 ok(
id == -1,
"id = %ld, expected -1\n",
id);
1169 ok(
id == -1,
"id = %ld, expected -1\n",
id);
1170 IDispatchEx_Release(dispex);
1175 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hr);
1182 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1187 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1193 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
1202 ok(
id == -1,
"id = %ld, expected -1\n",
id);
1205 ok(
id != -1,
"id = -1\n");
1208 ok(
id != -1,
"id = -1\n");
1209 IDispatchEx_Release(dispex);
1214 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1222 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1232 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hr);
1241 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1248 ok(
id == -1,
"id = %ld, expected -1\n",
id);
1249 IDispatchEx_Release(dispex);
1255 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
1264 ok(
id != -1,
"id = -1\n");
1265 IDispatchEx_Release(dispex);
1270 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1278 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1287 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hr);
1295 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1300 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1313 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1320 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
1327 ok(
id == -1,
"id = %ld, expected -1\n",
id);
1330 ok(
id == -1,
"id = %ld, expected -1\n",
id);
1331 IDispatchEx_Release(dispex);
1347 static const WCHAR *global_idents[] =
1362 static const WCHAR *global_code_test[] =
1364 L"testFunc_global();",
1365 L"if(testVar_global != 5) throw new Error();",
1366 L"var testObj = new testClassFunc();",
1367 L"eval(\"testFunc_global();\");",
1368 L"if(Math.abs(-17) != 17) throw new Error();"
1370 static const WCHAR *context_idents[] =
1376 static const WCHAR *context_code_test[] =
1379 L"if(testVar != 42) throw new Error();",
1380 L"if(Math.abs(-testVar) != 42) throw new Error();",
1381 L"if(testFuncConstr() != testVar) throw new Error();"
1384 IActiveScriptParse *parse;
1396 hr = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
1397 ok(
hr ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hr);
1401 hr = IActiveScript_AddNamedItem(
script,
L"visibleItem", SCRIPTITEM_ISVISIBLE);
1403 hr = IActiveScript_AddNamedItem(
script,
L"globalItem", SCRIPTITEM_GLOBALMEMBERS);
1405 hr = IActiveScript_AddNamedItem(
script,
L"codeOnlyItem", SCRIPTITEM_CODEONLY);
1407 hr = IActiveScript_AddNamedItem(
script,
L"persistent", SCRIPTITEM_ISPERSISTENT | SCRIPTITEM_CODEONLY);
1412 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1416 hr = IActiveScript_AddNamedItem(
script,
L"globalItem", SCRIPTITEM_GLOBALMEMBERS);
1417 ok(
hr ==
S_OK,
"AddNamedItem failed: %08lx\n",
hr);
1420 hr = IActiveScript_AddNamedItem(
script,
L"visibleItem", SCRIPTITEM_ISVISIBLE);
1421 ok(
hr ==
S_OK,
"AddNamedItem failed: %08lx\n",
hr);
1422 hr = IActiveScript_AddNamedItem(
script,
L"visibleCodeItem", SCRIPTITEM_ISVISIBLE | SCRIPTITEM_CODEONLY);
1423 ok(
hr ==
S_OK,
"AddNamedItem failed: %08lx\n",
hr);
1424 hr = IActiveScript_AddNamedItem(
script,
L"codeOnlyItem", SCRIPTITEM_CODEONLY);
1425 ok(
hr ==
S_OK,
"AddNamedItem failed: %08lx\n",
hr);
1426 hr = IActiveScript_AddNamedItem(
script,
L"persistent", SCRIPTITEM_ISPERSISTENT | SCRIPTITEM_CODEONLY);
1427 ok(
hr ==
S_OK,
"AddNamedItem failed: %08lx\n",
hr);
1434 hr = IActiveScript_GetScriptDispatch(
script,
L"noContext", &disp);
1436 hr = IActiveScript_GetScriptDispatch(
script,
L"codeONLYItem", &disp);
1440 hr = IActiveScript_AddNamedItem(
script,
L"globalCodeItem", SCRIPTITEM_GLOBALMEMBERS | SCRIPTITEM_CODEONLY);
1441 ok(
hr ==
S_OK,
"AddNamedItem failed: %08lx\n",
hr);
1446 ok(dispex == dispex2,
"get_script_dispatch returned different dispatch objects.\n");
1447 IDispatchEx_Release(dispex2);
1449 ok(dispex == dispex2,
"get_script_dispatch returned different dispatch objects.\n");
1450 IDispatchEx_Release(dispex2);
1452 ok(dispex != dispex2,
"get_script_dispatch returned same dispatch objects.\n");
1456 ok(
hr ==
S_OK,
"InitNew failed: %08lx\n",
hr);
1461 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
1478 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1488 ok(
FAILED(
hr),
"ParseScriptText returned: %08lx\n",
hr);
1494 hr = IActiveScript_GetScriptDispatch(
script,
L"visibleCodeItem", &disp);
1495 ok(
hr ==
S_OK,
"GetScriptDispatch returned: %08lx\n",
hr);
1499 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1505 IDispatch_Release(disp);
1529 "var global_this = 0;\n"
1530 "var globalCode_this = 0;\n"
1531 "function testFunc_global() { }\n"
1532 "var testVar_global = 10;\n"
1533 "function testClassFunc() { this.x = 10; }\n",
1535 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1543 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1550 "var testVar = 42;\n"
1551 "testVar_global = 5;\n"
1552 "var testFuncConstr = new Function(\"return testVar;\");\n",
1554 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1562 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1570 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1577 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1585 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1592 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1599 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1607 hr = IDispatchEx_GetDispID(dispex, bstr, 0, &
id);
1612 hr = IDispatchEx_GetDispID(dispex2, bstr, 0, &
id);
1614 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(global_idents[
i]),
id);
1622 hr = IDispatchEx_GetDispID(dispex, bstr, 0, &
id);
1624 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(context_idents[
i]),
id);
1626 hr = IDispatchEx_GetDispID(dispex2, bstr, 0, &
id);
1674 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1684 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1694 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1704 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1711 IDispatchEx_Release(dispex2);
1712 IDispatchEx_Release(dispex);
1718 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1724 IDispatchEx_Release(dispex);
1729 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1735 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1741 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1754 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hr);
1765 hr = IActiveScript_GetScriptDispatch(
script,
L"codeOnlyItem", &disp);
1772 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1778 hr = IActiveScript_AddNamedItem(
script,
L"codeOnlyItem", SCRIPTITEM_CODEONLY);
1779 ok(
hr ==
S_OK,
"AddNamedItem failed: %08lx\n",
hr);
1786 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
1794 ok(dispex != dispex2,
"Same script dispatch returned for \"persistent\" named item\n");
1795 IDispatchEx_Release(dispex2);
1796 IDispatchEx_Release(dispex);
1800 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1809 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1821 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1831 ok(
FAILED(
hr),
"ParseScriptText returned: %08lx\n",
hr);
1842 hr = IDispatchEx_GetDispID(dispex, bstr, 0, &
id);
1852 hr = IDispatchEx_GetDispID(dispex, bstr, 0, &
id);
1854 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(context_idents[
i]),
id);
1861 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1871 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1881 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
1884 IDispatchEx_Release(dispex);
1891 hr = IDispatchEx_GetDispID(dispex, bstr, 0, &
id);
1893 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(global_idents[
i]),
id);
1901 hr = IDispatchEx_GetDispID(dispex, bstr, 0, &
id);
1903 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(context_idents[
i]),
id);
1906 IDispatchEx_Release(dispex);
1993 "var global_var = 42;\n"
1995 "function emptyfn() { }\n"
1996 "function voidfn() { return void(0); }\n"
1997 "function math(x, y) { return x - y; }\n"
1998 "function foobar(x) { return \"foobar\"; }\n"
2002 " this.strret = function() { return \"ret\"; }\n"
2006 "var obj = new C();\n"
2008 "var funcvar = function(x, y) { return x * y; };\n"
2009 "var native_func = decodeURI;\n"
2012 " f1 = function infuncexpr(x) { return 1; }\n"
2013 " f2 = function infuncexpr(x) { return 2; }\n"
2020 IActiveScriptParse *
parser;
2034 BSTR bstr, bstrs[5];
2038 if (parse_func_name)
2041 trace(
"Testing TypeInfo for script dispatch...\n");
2045 hr = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&
parser);
2046 ok(
hr ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hr);
2050 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
2055 ok(
hr ==
S_OK,
"InitNew failed: %08lx\n",
hr);
2060 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
2063 if (parse_func_name)
2065 IActiveScriptParseProcedure2 *parse_proc;
2068 hr = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParseProcedure2, (
void**)&parse_proc);
2069 ok(
hr ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hr);
2072 NULL,
NULL,
NULL, 0, 0, SCRIPTPROC_IMPLICIT_THIS | SCRIPTPROC_IMPLICIT_PARENTS, &proc_disp);
2073 ok(
hr ==
S_OK,
"ParseProcedureText failed: %08lx\n",
hr);
2076 hr = IDispatch_QueryInterface(proc_disp, &IID_IDispatchEx, (
void**)&disp);
2077 ok(
hr ==
S_OK,
"Could not get IDispatchEx: %08lx\n",
hr);
2078 IDispatch_Release(proc_disp);
2086 hr = IDispatchEx_QueryInterface(disp, &IID_ITypeInfo, (
void**)&
typeinfo);
2091 ok(
hr ==
S_OK,
"GetTypeInfo failed: %08lx\n",
hr);
2093 ok(
hr ==
S_OK,
"GetTypeInfo failed: %08lx\n",
hr);
2094 ok(
typeinfo != typeinfo2,
"TypeInfo was not supposed to be shared.\n");
2095 ITypeInfo_Release(typeinfo2);
2097 obj = (
void*)0xdeadbeef;
2104 ok(!
obj,
"Unexpected non-null obj %p.\n",
obj);
2107 ok(
hr ==
S_OK,
"GetDocumentation(MEMBERID_NIL) failed: %08lx\n",
hr);
2112 ok(
hr ==
S_OK,
"GetTypeAttr failed: %08lx\n",
hr);
2115 ok(
attr->memidConstructor ==
MEMBERID_NIL,
"Unexpected constructor memid %lu\n",
attr->memidConstructor);
2117 ok(
attr->cbSizeInstance == 4,
"Unexpected cbSizeInstance %lu\n",
attr->cbSizeInstance);
2119 ok(
attr->cFuncs == expected_funcs_cnt,
"Unexpected cFuncs %u\n",
attr->cFuncs);
2120 ok(
attr->cVars == expected_vars_cnt,
"Unexpected cVars %u\n",
attr->cVars);
2121 ok(
attr->cImplTypes == 1,
"Unexpected cImplTypes %u\n",
attr->cImplTypes);
2122 ok(
attr->cbSizeVft ==
sizeof(IDispatchVtbl),
"Unexpected cbSizeVft %u\n",
attr->cbSizeVft);
2123 ok(
attr->cbAlignment == 4,
"Unexpected cbAlignment %u\n",
attr->cbAlignment);
2124 ok(
attr->wTypeFlags == TYPEFLAG_FDISPATCHABLE,
"Unexpected wTypeFlags 0x%x\n",
attr->wTypeFlags);
2125 ok(
attr->tdescAlias.vt ==
VT_EMPTY,
"Unexpected tdescAlias.vt %d\n",
attr->tdescAlias.vt);
2126 ok(
attr->idldescType.wIDLFlags == IDLFLAG_NONE,
"Unexpected idldescType.wIDLFlags 0x%x\n",
attr->idldescType.wIDLFlags);
2132 hr = ITypeInfo_GetImplTypeFlags(
typeinfo, 1, &implTypeFlags);
2134 hr = ITypeInfo_GetImplTypeFlags(
typeinfo, -1, &implTypeFlags);
2136 hr = ITypeInfo_GetImplTypeFlags(
typeinfo, 0, &implTypeFlags);
2137 ok(
hr ==
S_OK,
"GetImplTypeFlags failed: %08lx\n",
hr);
2138 ok(implTypeFlags == 0,
"Unexpected implTypeFlags 0x%x\n", implTypeFlags);
2142 hr = ITypeInfo_GetRefTypeOfImplType(
typeinfo, 1, &reftype);
2144 hr = ITypeInfo_GetRefTypeOfImplType(
typeinfo, -1, &reftype);
2146 hr = ITypeInfo_GetRefTypeOfImplType(
typeinfo, 0, &reftype);
2147 ok(
hr ==
S_OK,
"GetRefTypeOfImplType failed: %08lx\n",
hr);
2148 ok(reftype == 1,
"Unexpected reftype %ld\n", reftype);
2152 hr = ITypeInfo_GetRefTypeInfo(
typeinfo, -1, &typeinfo2);
2154 hr = ITypeInfo_GetRefTypeInfo(
typeinfo, 4, &typeinfo2);
2155 ok(
hr ==
E_FAIL,
"GetRefTypeInfo returned: %08lx\n",
hr);
2156 hr = ITypeInfo_GetRefTypeInfo(
typeinfo, 0, &typeinfo2);
2157 ok(
hr ==
S_OK,
"GetRefTypeInfo failed: %08lx\n",
hr);
2158 ok(
typeinfo == typeinfo2,
"Unexpected TypeInfo %p (expected %p)\n", typeinfo2,
typeinfo);
2159 ITypeInfo_Release(typeinfo2);
2160 hr = ITypeInfo_GetRefTypeInfo(
typeinfo, reftype, &typeinfo2);
2161 ok(
hr ==
S_OK,
"GetRefTypeInfo failed: %08lx\n",
hr);
2163 ok(
hr ==
S_OK,
"GetDocumentation(MEMBERID_NIL) failed: %08lx\n",
hr);
2165 ITypeInfo_Release(typeinfo2);
2177 ok(
hr ==
S_OK,
"GetIDsOfNames failed: %08lx\n",
hr);
2179 if (expected_funcs_cnt)
2183 ok(
hr ==
S_OK,
"GetIDsOfNames failed: %08lx\n",
hr);
2190 ok(
hr ==
S_OK,
"GetNames failed: %08lx\n",
hr);
2193 ok(
hr ==
S_OK,
"GetNames failed: %08lx\n",
hr);
2202 hr = ITypeInfo_GetMops(
typeinfo, memid, &bstr);
2203 ok(
hr ==
S_OK,
"GetMops failed: %08lx\n",
hr);
2206 ok(
hr ==
S_OK,
"GetMops failed: %08lx\n",
hr);
2210 obj = (
void*)0xdeadbeef;
2211 hr = ITypeInfo_AddressOfMember(
typeinfo, memid, INVOKE_FUNC,
NULL);
2213 hr = ITypeInfo_AddressOfMember(
typeinfo, memid, INVOKE_FUNC, &
obj);
2215 ok(!
obj,
"Unexpected non-null obj %p.\n",
obj);
2216 bstr = (
BSTR)0xdeadbeef;
2219 ok(!bstr,
"Unexpected non-null str %p.\n", bstr);
2222 ok(
hr ==
S_OK,
"GetIDsOfNames failed: %08lx\n",
hr);
2223 obj = (
void*)0xdeadbeef;
2224 hr = ITypeInfo_AddressOfMember(
typeinfo, memid, INVOKE_FUNC, &
obj);
2226 ok(!
obj,
"Unexpected non-null obj %p.\n",
obj);
2227 bstr = (
BSTR)0xdeadbeef;
2230 ok(!bstr,
"Unexpected non-null str %p.\n", bstr);
2236 hr = ITypeInfo_GetVarDesc(
typeinfo, 1337, &vardesc);
2238 for (
i = 0;
i < expected_vars_cnt;
i++)
2241 ok(
hr ==
S_OK,
"GetVarDesc(%u) failed: %08lx\n",
i,
hr);
2242 hr = ITypeInfo_GetDocumentation(
typeinfo, vardesc->memid, &bstr, &bstrs[0],
NULL,
NULL);
2243 ok(
hr ==
S_OK,
"[%u] GetDocumentation failed: %08lx\n",
i,
hr);
2246 ok(!bstrs[0],
"[%u] Unexpected doc string %s\n",
i,
wine_dbgstr_w(bstrs[0]));
2248 ok(vardesc->memid <= 0xFFFF,
"[%u] Unexpected memid 0x%lx\n",
i, vardesc->memid);
2249 ok(vardesc->lpstrSchema ==
NULL,
"[%u] Unexpected lpstrSchema %p\n",
i, vardesc->lpstrSchema);
2250 ok(vardesc->oInst == 0,
"[%u] Unexpected oInst %lu\n",
i, vardesc->oInst);
2251 ok(vardesc->varkind == VAR_DISPATCH,
"[%u] Unexpected varkind %d\n",
i, vardesc->varkind);
2252 ok(vardesc->wVarFlags == 0,
"[%u] Unexpected wVarFlags 0x%x\n",
i, vardesc->wVarFlags);
2254 "[%u] Unexpected variable type vt %d (expected %d)\n",
i, vardesc->elemdescVar.tdesc.vt, 0);
2255 ok(vardesc->elemdescVar.paramdesc.pparamdescex ==
NULL,
2256 "[%u] Unexpected variable type pparamdescex %p\n",
i, vardesc->elemdescVar.paramdesc.pparamdescex);
2257 ok(vardesc->elemdescVar.paramdesc.wParamFlags == PARAMFLAG_NONE,
2258 "[%u] Unexpected variable type wParamFlags 0x%x\n",
i, vardesc->elemdescVar.paramdesc.wParamFlags);
2259 ITypeInfo_ReleaseVarDesc(
typeinfo, vardesc);
2265 hr = ITypeInfo_GetFuncDesc(
typeinfo, 1337, &funcdesc);
2267 for (
i = 0;
i < expected_funcs_cnt;
i++)
2269 hr = ITypeInfo_GetFuncDesc(
typeinfo,
i, &funcdesc);
2270 ok(
hr ==
S_OK,
"GetFuncDesc(%u) failed: %08lx\n",
i,
hr);
2271 hr = ITypeInfo_GetDocumentation(
typeinfo, funcdesc->memid, &bstr, &bstrs[0],
NULL,
NULL);
2272 ok(
hr ==
S_OK,
"[%u] GetDocumentation failed: %08lx\n",
i,
hr);
2275 ok(!bstrs[0],
"[%u] Unexpected doc string %s\n",
i,
wine_dbgstr_w(bstrs[0]));
2277 ok(funcdesc->memid <= 0xFFFF,
"[%u] Unexpected memid 0x%lx\n",
i, funcdesc->memid);
2278 ok(funcdesc->lprgscode ==
NULL,
"[%u] Unexpected lprgscode %p\n",
i, funcdesc->lprgscode);
2279 ok(
func[
i].num_args ? (funcdesc->lprgelemdescParam !=
NULL) : (funcdesc->lprgelemdescParam ==
NULL),
2280 "[%u] Unexpected lprgelemdescParam %p\n",
i, funcdesc->lprgelemdescParam);
2281 ok(funcdesc->funckind == FUNC_DISPATCH,
"[%u] Unexpected funckind %u\n",
i, funcdesc->funckind);
2282 ok(funcdesc->invkind == INVOKE_FUNC,
"[%u] Unexpected invkind %u\n",
i, funcdesc->invkind);
2283 ok(funcdesc->callconv ==
CC_STDCALL,
"[%u] Unexpected callconv %u\n",
i, funcdesc->callconv);
2284 ok(funcdesc->cParams ==
func[
i].num_args,
"[%u] Unexpected cParams %d (expected %d)\n",
2285 i, funcdesc->cParams,
func[
i].num_args);
2286 ok(funcdesc->cParamsOpt == 0,
"[%u] Unexpected cParamsOpt %d\n",
i, funcdesc->cParamsOpt);
2287 ok(funcdesc->cScodes == 0,
"[%u] Unexpected cScodes %d\n",
i, funcdesc->cScodes);
2288 ok(funcdesc->wFuncFlags == 0,
"[%u] Unexpected wFuncFlags 0x%x\n",
i, funcdesc->wFuncFlags);
2290 "[%u] Unexpected return type vt %d\n",
i, funcdesc->elemdescFunc.tdesc.vt);
2291 ok(funcdesc->elemdescFunc.paramdesc.pparamdescex ==
NULL,
2292 "[%u] Unexpected return type pparamdescex %p\n",
i, funcdesc->elemdescFunc.paramdesc.pparamdescex);
2293 ok(funcdesc->elemdescFunc.paramdesc.wParamFlags == PARAMFLAG_NONE,
2294 "[%u] Unexpected return type wParamFlags 0x%x\n",
i, funcdesc->elemdescFunc.paramdesc.wParamFlags);
2295 if (funcdesc->lprgelemdescParam)
2299 "[%u] Unexpected parameter %u vt %d\n",
i,
index, funcdesc->lprgelemdescParam[
index].tdesc.vt);
2300 ok(funcdesc->lprgelemdescParam[
index].paramdesc.pparamdescex ==
NULL,
2301 "[%u] Unexpected parameter %u pparamdescex %p\n",
i,
index, funcdesc->lprgelemdescParam[
index].paramdesc.pparamdescex);
2302 ok(funcdesc->lprgelemdescParam[
index].paramdesc.wParamFlags == PARAMFLAG_NONE,
2303 "[%u] Unexpected parameter %u wParamFlags 0x%x\n",
i,
index, funcdesc->lprgelemdescParam[
index].paramdesc.wParamFlags);
2305 ITypeInfo_ReleaseFuncDesc(
typeinfo, funcdesc);
2309 hr = ITypeInfo_QueryInterface(
typeinfo, &IID_ITypeComp, (
void**)&typecomp);
2310 ok(
hr ==
S_OK,
"QueryInterface(IID_ITypeComp) failed: %08lx\n",
hr);
2313 hr = ITypeInfo_GetTypeComp(
typeinfo, &typecomp2);
2314 ok(
hr ==
S_OK,
"GetTypeComp failed: %08lx\n",
hr);
2315 ok(typecomp == typecomp2,
"QueryInterface(IID_ITypeComp) and GetTypeComp returned different TypeComps\n");
2316 ITypeComp_Release(typecomp2);
2318 hr = ITypeComp_Bind(typecomp,
NULL, 0, 0, &typeinfo2, &desckind, &bindptr);
2320 hr = ITypeComp_Bind(typecomp,
str, 0, 0,
NULL, &desckind, &bindptr);
2322 hr = ITypeComp_Bind(typecomp,
str, 0, 0, &typeinfo2,
NULL, &bindptr);
2324 hr = ITypeComp_Bind(typecomp,
str, 0, 0, &typeinfo2, &desckind,
NULL);
2326 hr = ITypeComp_Bind(typecomp,
str, 0, 0, &typeinfo2, &desckind, &bindptr);
2328 ok(desckind == DESCKIND_NONE,
"Unexpected desckind %u\n", desckind);
2330 hr = ITypeComp_Bind(typecomp,
str, 0, 0, &typeinfo2, &desckind, &bindptr);
2332 ok(desckind == DESCKIND_FUNCDESC,
"Unexpected desckind %u\n", desckind);
2334 ITypeInfo_ReleaseFuncDesc(typeinfo2, bindptr.lpfuncdesc);
2335 ITypeInfo_Release(typeinfo2);
2336 for (
i = 0;
i < expected_vars_cnt;
i++)
2339 hr = ITypeComp_Bind(typecomp,
str, 0, INVOKE_PROPERTYGET, &typeinfo2, &desckind, &bindptr);
2341 ok(desckind == DESCKIND_VARDESC,
"Unexpected desckind %u\n", desckind);
2342 ITypeInfo_ReleaseVarDesc(typeinfo2, bindptr.lpvardesc);
2343 ITypeInfo_Release(typeinfo2);
2345 for (
i = 0;
i < expected_funcs_cnt;
i++)
2348 hr = ITypeComp_Bind(typecomp,
str, 0, INVOKE_FUNC, &typeinfo2, &desckind, &bindptr);
2350 ok(desckind == DESCKIND_FUNCDESC,
"Unexpected desckind %u\n", desckind);
2351 ITypeInfo_ReleaseFuncDesc(typeinfo2, bindptr.lpfuncdesc);
2352 ITypeInfo_Release(typeinfo2);
2355 hr = ITypeComp_BindType(typecomp,
NULL, 0, &typeinfo2, &typecomp2);
2357 hr = ITypeComp_BindType(typecomp,
str, 0,
NULL, &typecomp2);
2359 hr = ITypeComp_BindType(typecomp,
str, 0, &typeinfo2,
NULL);
2361 hr = ITypeComp_BindType(typecomp,
str, 0, &typeinfo2, &typecomp2);
2362 ok(
hr ==
S_OK,
"BindType failed: %08lx\n",
hr);
2363 ok(!typeinfo2,
"Unexpected TypeInfo %p (expected null)\n", typeinfo2);
2364 ok(!typecomp2,
"Unexpected TypeComp %p (expected null)\n", typecomp2);
2366 hr = ITypeComp_BindType(typecomp,
str, 0, &typeinfo2, &typecomp2);
2367 ok(
hr ==
S_OK,
"BindType failed: %08lx\n",
hr);
2368 ok(!typeinfo2,
"Unexpected TypeInfo %p (expected null)\n", typeinfo2);
2369 ok(!typecomp2,
"Unexpected TypeComp %p (expected null)\n", typecomp2);
2371 hr = ITypeComp_BindType(typecomp,
str, 0, &typeinfo2, &typecomp2);
2372 ok(
hr ==
S_OK,
"BindType failed: %08lx\n",
hr);
2373 ok(!typeinfo2,
"Unexpected TypeInfo %p (expected null)\n", typeinfo2);
2374 ok(!typecomp2,
"Unexpected TypeComp %p (expected null)\n", typecomp2);
2375 ITypeComp_Release(typecomp);
2379 if (!parse_func_name)
2383 "function new_func() { }\n");
2386 ok(
hr ==
S_OK,
"GetTypeInfo failed: %08lx\n",
hr);
2388 ok(
hr ==
S_OK,
"GetTypeAttr failed: %08lx\n",
hr);
2389 ok(
attr->cFuncs == expected_funcs_cnt,
"Unexpected cFuncs %u\n",
attr->cFuncs);
2390 ok(
attr->cVars == expected_vars_cnt,
"Unexpected cVars %u\n",
attr->cVars);
2392 hr = ITypeInfo_GetTypeAttr(typeinfo2, &
attr);
2393 ok(
hr ==
S_OK,
"GetTypeAttr failed: %08lx\n",
hr);
2394 ok(
attr->cFuncs == expected_funcs_cnt + 1,
"Unexpected cFuncs %u\n",
attr->cFuncs);
2395 ok(
attr->cVars == expected_vars_cnt + 1,
"Unexpected cVars %u\n",
attr->cVars);
2396 ITypeInfo_ReleaseTypeAttr(typeinfo2,
attr);
2397 ITypeInfo_Release(typeinfo2);
2407 IDispatchEx_Release(disp);
2419 IActiveScript_Release(
script);
2428 &IID_IActiveScriptProperty, (
void**)&script_prop);
2430 IActiveScriptProperty_Release(script_prop);
2440 trace(
"Testing JScript object...\n");
2452 trace(
"Testing JScriptEncode object...\n");
2456 win_skip(
"Broken engine, probably too old\n");
@ SCRIPTSTATE_INITIALIZED
@ SCRIPTSTATE_DISCONNECTED
@ SCRIPTSTATE_UNINITIALIZED
enum tagSCRIPTSTATE SCRIPTSTATE
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
GLuint GLuint GLsizei count
GLenum GLenum GLsizei const GLuint GLboolean enabled
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define parse_script(p, s)
static ULONG WINAPI persistent_AddRef(IDispatch *iface)
static BOOL check_jscript(void)
static IActiveScript * create_jscript(void)
static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface)
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface)
static void test_invoke_versioning(IActiveScript *script)
static const IDispatchVtbl visible_named_item_vtbl
static void test_typeinfo(const WCHAR *parse_func_name)
static void test_jscript_uninitializing(void)
static HRESULT WINAPI Dispatch_GetTypeInfoCount(IDispatch *iface, UINT *pctinfo)
static void test_aggregation(void)
static const IDispatchVtbl global_named_item_vtbl
static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
static ULONG visible_named_item_ref
static void test_param_ids(void)
static IDispatch visible_code_named_item
static IDispatchEx * get_script_dispatch(IActiveScript *script, const WCHAR *item_name)
static const CLSID CLSID_JScript
static void test_script_dispatch(IDispatchEx *dispex)
static ULONG WINAPI Dispatch_Release(IDispatch *iface)
#define get_disp_id(a, b, c, d)
static IDispatch dispatch_object
#define IActiveScriptParseProcedure2_ParseProcedureText
#define CHECK_EXPECT(func)
static ULONG WINAPI persistent_Release(IDispatch *iface)
static void test_jscript(void)
static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, BSTR *pbstrVersion)
static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppiunkItem, ITypeInfo **ppti)
static ULONG WINAPI visible_Release(IDispatch *iface)
static HRESULT WINAPI persistent_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *names, UINT name_cnt, LCID lcid, DISPID *ids)
#define DEFINE_EXPECT(func)
#define IActiveScriptParse_InitNew
static void test_code_persistence(void)
#define IActiveScriptParse_ParseScriptText
#define IActiveScriptParseProcedure2_Release
#define IActiveScriptParse_Release
static void test_named_items(void)
static ULONG WINAPI global_Release(IDispatch *iface)
static void test_case_sens(void)
static ULONG visible_code_named_item_ref
#define test_state(s, ss)
static HRESULT WINAPI Dispatch_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *names, UINT name_cnt, LCID lcid, DISPID *ids)
static void _test_state(unsigned line, IActiveScript *script, SCRIPTSTATE exstate)
#define CHECK_EXPECT2(func)
static const IDispatchVtbl dispatch_vtbl
static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface, REFIID riid, void **ppv)
static HRESULT WINAPI Dispatch_GetTypeInfo(IDispatch *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static ULONG WINAPI visible_code_Release(IDispatch *iface)
static ULONG WINAPI Dispatch_AddRef(IDispatch *iface)
static const IDispatchVtbl persistent_named_item_vtbl
static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface)
static ULONG WINAPI visible_AddRef(IDispatch *iface)
#define CHECK_CALLED(func)
static ULONG WINAPI ActiveScriptSite_AddRef(IActiveScriptSite *iface)
static const CLSID CLSID_JScriptEncode
static HRESULT WINAPI ActiveScriptSite_OnScriptTerminate(IActiveScriptSite *iface, const VARIANT *pvarResult, const EXCEPINFO *pexcepinfo)
static HRESULT WINAPI Dispatch_Invoke(IDispatch *iface, DISPID id, REFIID riid, LCID lcid, WORD flags, DISPPARAMS *dp, VARIANT *res, EXCEPINFO *ei, UINT *err)
static void test_safety(IUnknown *unk)
static void test_no_script_dispatch(IActiveScript *script)
static void test_jscript2(void)
static HRESULT WINAPI Dispatch_QueryInterface(IDispatch *iface, REFIID riid, void **ppv)
static const CLSID * engine_clsid
static ULONG global_named_item_ref
static IDispatch visible_named_item
static ULONG persistent_named_item_ref
static const IActiveScriptSiteVtbl ActiveScriptSiteVtbl
#define CHECK_CALLED_MULTI(func, num)
static HRESULT WINAPI visible_GetIDsOfNames(IDispatch *iface, REFIID riid, LPOLESTR *names, UINT name_cnt, LCID lcid, DISPID *ids)
static const IDispatchVtbl visible_code_named_item_vtbl
static void _get_disp_id(unsigned line, IDispatchEx *dispex, const WCHAR *name, HRESULT exhr, DISPID *id)
static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
static IDispatch global_named_item
static HRESULT set_script_prop(IActiveScript *engine, DWORD property, VARIANT *val)
static IActiveScriptSite ActiveScriptSite
static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
#define SET_EXPECT_MULTI(func, num)
static ULONG WINAPI visible_code_AddRef(IDispatch *iface)
static IDispatch persistent_named_item
static ULONG WINAPI global_AddRef(IDispatch *iface)
static VARIANTARG static DISPID
#define LOCALE_USER_DEFAULT
BSTR WINAPI SysAllocString(LPCOLESTR str)
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
#define DISPATCH_PROPERTYGET
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
#define TYPE_E_BADMODULEKIND
#define TYPE_E_ELEMENTNOTFOUND
#define TYPE_E_AMBIGUOUSNAME
#define CLASS_E_NOAGGREGATION
#define DISP_E_UNKNOWNNAME