29#include "vbsregexp55.h"
35#define IActiveScriptParse_QueryInterface IActiveScriptParse64_QueryInterface
36#define IActiveScriptParse_Release IActiveScriptParse64_Release
37#define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew
38#define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText
39#define IActiveScriptParseProcedure2_Release \
40 IActiveScriptParseProcedure2_64_Release
44#define IActiveScriptParse_QueryInterface IActiveScriptParse32_QueryInterface
45#define IActiveScriptParse_Release IActiveScriptParse32_Release
46#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew
47#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText
48#define IActiveScriptParseProcedure2_Release \
49 IActiveScriptParseProcedure2_32_Release
53DEFINE_GUID(
GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
54DEFINE_GUID(IID_IScriptTypeInfo, 0xc59c6b12, 0xf6c1, 0x11cf, 0x88,0x35, 0x00,0xa0,0xc9,0x11,0xe8,0xb2);
56#define DEFINE_EXPECT(func) \
57 static int expect_ ## func = 0, called_ ## func = 0
59#define SET_EXPECT(func) \
62#define SET_EXPECT_MULTI(func, num) \
65#define CHECK_EXPECT2(func) \
67 ok(expect_ ##func, "unexpected call " #func "\n"); \
71#define CHECK_EXPECT(func) \
73 CHECK_EXPECT2(func); \
77#define CHECK_CALLED(func) \
79 ok(called_ ## func, "expected " #func "\n"); \
80 expect_ ## func = called_ ## func = 0; \
83#define CHECK_CALLED_MULTI(func, num) \
85 ok(called_ ## func == num, "expected " #func " %d times (got %d)\n", num, called_ ## func); \
86 expect_ ## func = called_ ## func = 0; \
109DEFINE_GUID(
CLSID_VBScript, 0xb54f3741, 0x5b07, 0x11cf, 0xa4,0xb0, 0x00,0xaa,0x00,0x4a,0x55,0xe8);
110DEFINE_GUID(
CLSID_VBScriptRegExp, 0x3f4daca4, 0x160d, 0x11d2, 0xa8,0xe9, 0x00,0x10,0x4b,0x36,0x5c,0x9f);
112#define test_state(s,ss) _test_state(__LINE__,s,ss)
120 ok_(__FILE__,
line) (
state == exstate,
"state=%d, expected %d\n",
state, exstate);
127 IDispatch_AddRef(iface);
189 ok(0,
"unexpected call\n");
201 ok(name_cnt == 1,
"name_cnt = %u\n", name_cnt);
214 ok(name_cnt == 1,
"name_cnt = %u\n", name_cnt);
227 ok(name_cnt == 1,
"name_cnt = %u\n", name_cnt);
237 ok(
id == 1,
"id = %lu\n",
id);
239 ok(!dp->cArgs,
"cArgs = %u\n", dp->cArgs);
338 ok(return_mask == SCRIPTINFO_IUNKNOWN,
"return_mask = %lx\n", return_mask);
375 ok(0,
"unexpected call\n");
380 const VARIANT *pvarResult,
const EXCEPINFO *pexcepinfo)
382 ok(0,
"unexpected call\n");
388 switch(ssScriptState) {
408 ok(0,
"unexpected call %d\n", ssScriptState);
454 hres = IActiveScript_QueryInterface(
script, &IID_IObjectSafety, (
void**)&safety);
459 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &
IID_NULL, &supported,
NULL);
460 ok(
hres ==
E_POINTER,
"GetInterfaceSafetyOptions failed: %08lx, expected E_POINTER\n",
hres);
462 ok(
hres ==
E_POINTER,
"GetInterfaceSafetyOptions failed: %08lx, expected E_POINTER\n",
hres);
464 supported =
enabled = 0xdeadbeef;
466 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
467 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
468 "supported=%lx\n", supported);
471 supported =
enabled = 0xdeadbeef;
472 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScript, &supported, &
enabled);
473 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
474 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
475 "supported=%lx\n", supported);
478 supported =
enabled = 0xdeadbeef;
479 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
480 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
481 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
482 "supported=%lx\n", supported);
485 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
486 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER
487 |INTERFACESAFE_FOR_UNTRUSTED_CALLER,
488 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER);
489 ok(
hres ==
E_FAIL,
"SetInterfaceSafetyOptions failed: %08lx, expected E_FAIL\n",
hres);
491 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
492 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER,
493 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER);
494 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08lx\n",
hres);
496 supported =
enabled = 0xdeadbeef;
497 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
498 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
499 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
500 "supported=%lx\n", supported);
501 ok(
enabled == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
504 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, INTERFACESAFE_FOR_UNTRUSTED_DATA, 0);
505 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08lx\n",
hres);
507 supported =
enabled = 0xdeadbeef;
508 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
509 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
510 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
511 "supported=%lx\n", supported);
512 ok(
enabled == (INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
"enabled=%lx\n",
enabled);
514 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
515 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER, 0);
516 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08lx\n",
hres);
518 supported =
enabled = 0xdeadbeef;
519 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
520 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
521 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
522 "supported=%lx\n", supported);
525 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
526 INTERFACE_USES_DISPEX, 0);
527 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08lx\n",
hres);
529 supported =
enabled = 0xdeadbeef;
530 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
531 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
532 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
533 "supported=%lx\n", supported);
536 IObjectSafety_Release(safety);
545 disp = (
void*)0xdeadbeef;
546 hres = IActiveScript_GetScriptDispatch(
script, item_name, &disp);
551 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
552 IDispatch_Release(disp);
553 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
574#define get_disp_id(a,b,c,d) _get_disp_id(__LINE__,a,b,c,d)
582 hres = IDispatchEx_GetDispID(dispex,
str, 0,
id);
583 ok_(__FILE__,
line)(
hres == exhres,
"GetDispID(%s) returned %08lx, expected %08lx\n",
588 ok_(__FILE__,
line)(
hres == exhres,
"GetIDsOfNames(%s) returned %08lx, expected %08lx\n",
598 disp = (
void*)0xdeadbeef;
601 ok(!disp,
"disp != NULL\n");
610 &IID_IActiveScript, (
void**)&
ret);
619 IActiveScriptParse *
parser;
630 hres = IActiveScript_QueryInterface(vbscript, &IID_IActiveScriptParse, (
void**)&
parser);
631 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hres);
654 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
660 ok(
script_disp == script_disp2,
"script_disp != script_disp2\n");
661 IDispatchEx_Release(script_disp2);
665 ok(
id == -1,
"id = %ld, expected -1\n",
id);
671 memset(&dp, 0,
sizeof(dp));
672 memset(&ei, 0,
sizeof(ei));
690 memset(&dp, 0,
sizeof(dp));
691 memset(&ei, 0,
sizeof(ei));
704 memset(&dp, 0,
sizeof(dp));
705 memset(&ei, 0,
sizeof(ei));
719 ok(
id == id2,
"id != id2\n");
725 ok(
id == id2,
"id != id2\n");
734 hres = IActiveScript_Close(vbscript);
740 ref = IActiveScript_Release(vbscript);
746 static const WCHAR *
const names1[] = {
L"test",
L"c",
L"foo",
L"b",
L"a" };
747 static const WCHAR *
const names2[] = {
L"test",
L"bar" };
748 static const WCHAR *
const names3[] = {
L"bar",
L"test" };
750 IActiveScriptParse *
parser;
757 hr = IActiveScript_QueryInterface(vbscript, &IID_IActiveScriptParse, (
void**)&
parser);
758 ok(
hr ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hr);
762 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
767 ok(
hr ==
S_OK,
"InitNew failed: %08lx\n",
hr);
772 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
775 parse_script(
parser,
L"function test(byval a, byval b, byval c, byval foo)\ntest = a + b + c - foo\nend function\n"
776 "function bar\nend function");
781 ok(
id[0] > 0,
"Unexpected DISPID for \"test\": %ld\n",
id[0]);
782 ok(
id[4] == DISPID_UNKNOWN,
"Unexpected DISPID for \"a\" parameter: %ld\n",
id[4]);
783 ok(
id[3] == DISPID_UNKNOWN,
"Unexpected DISPID for \"b\" parameter: %ld\n",
id[3]);
784 ok(
id[1] == DISPID_UNKNOWN,
"Unexpected DISPID for \"c\" parameter: %ld\n",
id[1]);
785 ok(
id[2] == DISPID_UNKNOWN,
"Unexpected DISPID for \"foo\" parameter: %ld\n",
id[2]);
789 ok(
id[0] > 0,
"Unexpected DISPID for \"test\": %ld\n",
id[0]);
790 ok(
id[1] == DISPID_UNKNOWN,
"Unexpected DISPID for \"bar\": %ld\n",
id[1]);
794 ok(
id[0] > 0,
"Unexpected DISPID for \"bar\": %ld\n",
id[0]);
795 ok(
id[1] == DISPID_UNKNOWN,
"Unexpected DISPID for \"test\": %ld\n",
id[1]);
803 hr = IActiveScript_Close(vbscript);
809 IActiveScript_Release(vbscript);
814 IActiveScriptParse *
parser;
824 hr = IActiveScript_QueryInterface(vbscript, &IID_IActiveScriptParse, (
void**)&
parser);
825 ok(
hr ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hr);
831 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
836 ok(
hr ==
S_OK,
"InitNew failed: %08lx\n",
hr);
844 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
851 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
857 ok(
id == -1,
"id = %ld, expected -1\n",
id);
860 ok(
id == -1,
"id = %ld, expected -1\n",
id);
863 ok(
id == -1,
"id = %ld, expected -1\n",
id);
869 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hr);
876 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
881 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
887 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
896 ok(
id == -1,
"id = %ld, expected -1\n",
id);
899 ok(
id != -1,
"id = -1\n");
902 ok(
id != -1,
"id = -1\n");
908 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
916 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
926 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hr);
935 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
942 ok(
id == -1,
"id = %ld, expected -1\n",
id);
949 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
958 ok(
id != -1,
"id = -1\n");
964 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
972 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
981 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hr);
989 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
994 ok(
hr ==
S_OK,
"ParseScriptText failed: %08lx\n",
hr);
998 hr = IActiveScript_Close(vbscript);
1007 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1014 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
1021 ok(
id == -1,
"id = %ld, expected -1\n",
id);
1024 ok(
id == -1,
"id = %ld, expected -1\n",
id);
1032 ref = IActiveScript_Release(vbscript);
1065 IActiveScriptParse *
parser;
1079 BSTR bstr, bstrs[5];
1085 hr = IActiveScript_QueryInterface(vbscript, &IID_IActiveScriptParse, (
void**)&
parser);
1086 ok(
hr ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hr);
1090 ok(
hr ==
S_OK,
"SetScriptSite failed: %08lx\n",
hr);
1095 ok(
hr ==
S_OK,
"InitNew failed: %08lx\n",
hr);
1100 ok(
hr ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hr);
1105 "const const_var = 1337\n"
1108 " foobar = \"foobar\"\n"
1111 "sub test\nend sub\n"
1112 "private sub private_sub\nend sub\n"
1114 "function subtract(byref x, byval y)\n"
1115 " subtract = x - y\n"
1118 "function emptyfn\nend function\n"
1122 " public sub method\nend sub\n"
1123 " private function strret\n"
1124 " strret = \"ret\"\n"
1129 "dim obj\nset obj = new C\n");
1137 ok(
hr ==
S_OK,
"GetTypeInfo failed: %08lx\n",
hr);
1139 ok(
hr ==
S_OK,
"GetTypeInfo failed: %08lx\n",
hr);
1140 ok(
typeinfo != typeinfo2,
"TypeInfo was not supposed to be shared.\n");
1141 ITypeInfo_Release(typeinfo2);
1143 obj = (
void*)0xdeadbeef;
1150 ok(!
obj,
"Unexpected non-null obj %p.\n",
obj);
1153 ok(
hr ==
S_OK,
"GetDocumentation(MEMBERID_NIL) failed: %08lx\n",
hr);
1158 ok(
hr ==
S_OK,
"GetTypeAttr failed: %08lx\n",
hr);
1161 ok(
attr->memidConstructor ==
MEMBERID_NIL,
"Unexpected constructor memid %lu\n",
attr->memidConstructor);
1163 ok(
attr->cbSizeInstance == 4,
"Unexpected cbSizeInstance %lu\n",
attr->cbSizeInstance);
1167 ok(
attr->cImplTypes == 1,
"Unexpected cImplTypes %u\n",
attr->cImplTypes);
1168 ok(
attr->cbSizeVft ==
sizeof(IDispatchVtbl),
"Unexpected cbSizeVft %u\n",
attr->cbSizeVft);
1169 ok(
attr->cbAlignment == 4,
"Unexpected cbAlignment %u\n",
attr->cbAlignment);
1170 ok(
attr->wTypeFlags == TYPEFLAG_FDISPATCHABLE,
"Unexpected wTypeFlags 0x%x\n",
attr->wTypeFlags);
1171 ok(
attr->tdescAlias.vt ==
VT_EMPTY,
"Unexpected tdescAlias.vt %d\n",
attr->tdescAlias.vt);
1172 ok(
attr->idldescType.wIDLFlags == IDLFLAG_NONE,
"Unexpected idldescType.wIDLFlags 0x%x\n",
attr->idldescType.wIDLFlags);
1178 hr = ITypeInfo_GetImplTypeFlags(
typeinfo, 1, &implTypeFlags);
1180 hr = ITypeInfo_GetImplTypeFlags(
typeinfo, -1, &implTypeFlags);
1182 hr = ITypeInfo_GetImplTypeFlags(
typeinfo, 0, &implTypeFlags);
1183 ok(
hr ==
S_OK,
"GetImplTypeFlags failed: %08lx\n",
hr);
1184 ok(implTypeFlags == 0,
"Unexpected implTypeFlags 0x%x\n", implTypeFlags);
1188 hr = ITypeInfo_GetRefTypeOfImplType(
typeinfo, 1, &reftype);
1190 hr = ITypeInfo_GetRefTypeOfImplType(
typeinfo, -1, &reftype);
1192 hr = ITypeInfo_GetRefTypeOfImplType(
typeinfo, 0, &reftype);
1193 ok(
hr ==
S_OK,
"GetRefTypeOfImplType failed: %08lx\n",
hr);
1194 ok(reftype == 1,
"Unexpected reftype %ld\n", reftype);
1198 hr = ITypeInfo_GetRefTypeInfo(
typeinfo, -1, &typeinfo2);
1200 hr = ITypeInfo_GetRefTypeInfo(
typeinfo, 4, &typeinfo2);
1201 ok(
hr ==
E_FAIL,
"GetRefTypeInfo returned: %08lx\n",
hr);
1202 hr = ITypeInfo_GetRefTypeInfo(
typeinfo, 0, &typeinfo2);
1203 ok(
hr ==
S_OK,
"GetRefTypeInfo failed: %08lx\n",
hr);
1204 ok(
typeinfo == typeinfo2,
"Unexpected TypeInfo %p (expected %p)\n", typeinfo2,
typeinfo);
1205 ITypeInfo_Release(typeinfo2);
1206 hr = ITypeInfo_GetRefTypeInfo(
typeinfo, reftype, &typeinfo2);
1207 ok(
hr ==
S_OK,
"GetRefTypeInfo failed: %08lx\n",
hr);
1209 ok(
hr ==
S_OK,
"GetDocumentation(MEMBERID_NIL) failed: %08lx\n",
hr);
1211 ITypeInfo_Release(typeinfo2);
1223 ok(
hr ==
S_OK,
"GetIDsOfNames failed: %08lx\n",
hr);
1230 ok(
hr ==
S_OK,
"GetIDsOfNames failed: %08lx\n",
hr);
1238 ok(
hr ==
S_OK,
"GetNames failed: %08lx\n",
hr);
1241 ok(
hr ==
S_OK,
"GetNames failed: %08lx\n",
hr);
1250 hr = ITypeInfo_GetMops(
typeinfo, memid, &bstr);
1251 ok(
hr ==
S_OK,
"GetMops failed: %08lx\n",
hr);
1254 ok(
hr ==
S_OK,
"GetMops failed: %08lx\n",
hr);
1258 obj = (
void*)0xdeadbeef;
1259 hr = ITypeInfo_AddressOfMember(
typeinfo, memid, INVOKE_FUNC,
NULL);
1261 hr = ITypeInfo_AddressOfMember(
typeinfo, memid, INVOKE_FUNC, &
obj);
1263 ok(!
obj,
"Unexpected non-null obj %p.\n",
obj);
1264 bstr = (
BSTR)0xdeadbeef;
1267 ok(!bstr,
"Unexpected non-null str %p.\n", bstr);
1270 ok(
hr ==
S_OK,
"GetIDsOfNames failed: %08lx\n",
hr);
1271 obj = (
void*)0xdeadbeef;
1272 hr = ITypeInfo_AddressOfMember(
typeinfo, memid, INVOKE_FUNC, &
obj);
1274 ok(!
obj,
"Unexpected non-null obj %p.\n",
obj);
1275 bstr = (
BSTR)0xdeadbeef;
1278 ok(!bstr,
"Unexpected non-null str %p.\n", bstr);
1283 hr = ITypeInfo_GetVarDesc(
typeinfo, 1337, &vardesc);
1288 ok(
hr ==
S_OK,
"GetVarDesc(%u) failed: %08lx\n",
i,
hr);
1289 hr = ITypeInfo_GetDocumentation(
typeinfo, vardesc->memid, &bstr, &bstrs[0],
NULL,
NULL);
1290 ok(
hr ==
S_OK,
"[%u] GetDocumentation failed: %08lx\n",
i,
hr);
1293 ok(!bstrs[0],
"[%u] Unexpected doc string %s\n",
i,
wine_dbgstr_w(bstrs[0]));
1295 ok(vardesc->lpstrSchema ==
NULL,
"[%u] Unexpected lpstrSchema %p\n",
i, vardesc->lpstrSchema);
1296 ok(vardesc->oInst == 0,
"[%u] Unexpected oInst %lu\n",
i, vardesc->oInst);
1297 ok(vardesc->varkind == VAR_DISPATCH,
"[%u] Unexpected varkind %d\n",
i, vardesc->varkind);
1298 ok(vardesc->wVarFlags == 0,
"[%u] Unexpected wVarFlags 0x%x\n",
i, vardesc->wVarFlags);
1300 "[%u] Unexpected variable type vt %d (expected %d)\n",
i, vardesc->elemdescVar.tdesc.vt, 0);
1301 ok(vardesc->elemdescVar.paramdesc.pparamdescex ==
NULL,
1302 "[%u] Unexpected variable type pparamdescex %p\n",
i, vardesc->elemdescVar.paramdesc.pparamdescex);
1303 ok(vardesc->elemdescVar.paramdesc.wParamFlags == PARAMFLAG_NONE,
1304 "[%u] Unexpected variable type wParamFlags 0x%x\n",
i, vardesc->elemdescVar.paramdesc.wParamFlags);
1305 ITypeInfo_ReleaseVarDesc(
typeinfo, vardesc);
1311 hr = ITypeInfo_GetFuncDesc(
typeinfo, 1337, &funcdesc);
1315 hr = ITypeInfo_GetFuncDesc(
typeinfo,
i, &funcdesc);
1316 ok(
hr ==
S_OK,
"GetFuncDesc(%u) failed: %08lx\n",
i,
hr);
1317 hr = ITypeInfo_GetDocumentation(
typeinfo, funcdesc->memid, &bstr, &bstrs[0],
NULL,
NULL);
1318 ok(
hr ==
S_OK,
"[%u] GetDocumentation failed: %08lx\n",
i,
hr);
1321 ok(!bstrs[0],
"[%u] Unexpected doc string %s\n",
i,
wine_dbgstr_w(bstrs[0]));
1323 ok(funcdesc->lprgscode ==
NULL,
"[%u] Unexpected lprgscode %p\n",
i, funcdesc->lprgscode);
1324 ok(
func[
i].num_args ? (funcdesc->lprgelemdescParam !=
NULL) : (funcdesc->lprgelemdescParam ==
NULL),
1325 "[%u] Unexpected lprgelemdescParam %p\n",
i, funcdesc->lprgelemdescParam);
1326 ok(funcdesc->funckind == FUNC_DISPATCH,
"[%u] Unexpected funckind %u\n",
i, funcdesc->funckind);
1327 ok(funcdesc->invkind == INVOKE_FUNC,
"[%u] Unexpected invkind %u\n",
i, funcdesc->invkind);
1328 ok(funcdesc->callconv ==
CC_STDCALL,
"[%u] Unexpected callconv %u\n",
i, funcdesc->callconv);
1329 ok(funcdesc->cParams ==
func[
i].num_args,
"[%u] Unexpected cParams %d (expected %d)\n",
1330 i, funcdesc->cParams,
func[
i].num_args);
1331 ok(funcdesc->cParamsOpt == 0,
"[%u] Unexpected cParamsOpt %d\n",
i, funcdesc->cParamsOpt);
1332 ok(funcdesc->cScodes == 0,
"[%u] Unexpected cScodes %d\n",
i, funcdesc->cScodes);
1333 ok(funcdesc->wFuncFlags == 0,
"[%u] Unexpected wFuncFlags 0x%x\n",
i, funcdesc->wFuncFlags);
1334 ok(funcdesc->elemdescFunc.tdesc.vt ==
func[
i].ret_type,
1335 "[%u] Unexpected return type vt %d (expected %d)\n",
i, funcdesc->elemdescFunc.tdesc.vt,
func[
i].ret_type);
1336 ok(funcdesc->elemdescFunc.paramdesc.pparamdescex ==
NULL,
1337 "[%u] Unexpected return type pparamdescex %p\n",
i, funcdesc->elemdescFunc.paramdesc.pparamdescex);
1338 ok(funcdesc->elemdescFunc.paramdesc.wParamFlags == PARAMFLAG_NONE,
1339 "[%u] Unexpected return type wParamFlags 0x%x\n",
i, funcdesc->elemdescFunc.paramdesc.wParamFlags);
1340 if (funcdesc->lprgelemdescParam)
1344 "[%u] Unexpected parameter %u vt %d\n",
i,
index, funcdesc->lprgelemdescParam[
index].tdesc.vt);
1345 ok(funcdesc->lprgelemdescParam[
index].paramdesc.pparamdescex ==
NULL,
1346 "[%u] Unexpected parameter %u pparamdescex %p\n",
i,
index, funcdesc->lprgelemdescParam[
index].paramdesc.pparamdescex);
1347 ok(funcdesc->lprgelemdescParam[
index].paramdesc.wParamFlags == PARAMFLAG_NONE,
1348 "[%u] Unexpected parameter %u wParamFlags 0x%x\n",
i,
index, funcdesc->lprgelemdescParam[
index].paramdesc.wParamFlags);
1350 ITypeInfo_ReleaseFuncDesc(
typeinfo, funcdesc);
1354 hr = ITypeInfo_QueryInterface(
typeinfo, &IID_ITypeComp, (
void**)&typecomp);
1355 ok(
hr ==
S_OK,
"QueryInterface(IID_ITypeComp) failed: %08lx\n",
hr);
1358 hr = ITypeInfo_GetTypeComp(
typeinfo, &typecomp2);
1359 ok(
hr ==
S_OK,
"GetTypeComp failed: %08lx\n",
hr);
1360 ok(typecomp == typecomp2,
"QueryInterface(IID_ITypeComp) and GetTypeComp returned different TypeComps\n");
1361 ITypeComp_Release(typecomp2);
1363 hr = ITypeComp_Bind(typecomp,
NULL, 0, 0, &typeinfo2, &desckind, &bindptr);
1365 hr = ITypeComp_Bind(typecomp,
str, 0, 0,
NULL, &desckind, &bindptr);
1367 hr = ITypeComp_Bind(typecomp,
str, 0, 0, &typeinfo2,
NULL, &bindptr);
1369 hr = ITypeComp_Bind(typecomp,
str, 0, 0, &typeinfo2, &desckind,
NULL);
1372 hr = ITypeComp_Bind(typecomp,
str, 0, 0, &typeinfo2, &desckind, &bindptr);
1374 ok(desckind == DESCKIND_NONE,
"Unexpected desckind %u\n", desckind);
1376 hr = ITypeComp_Bind(typecomp,
str, 0, INVOKE_FUNC, &typeinfo2, &desckind, &bindptr);
1380 hr = ITypeComp_Bind(typecomp,
str, 0, 0, &typeinfo2, &desckind, &bindptr);
1382 ok(desckind == DESCKIND_NONE,
"Unexpected desckind %u\n", desckind);
1384 hr = ITypeComp_Bind(typecomp,
str, 0, 0, &typeinfo2, &desckind, &bindptr);
1386 ok(desckind == DESCKIND_FUNCDESC,
"Unexpected desckind %u\n", desckind);
1388 ITypeInfo_ReleaseFuncDesc(typeinfo2, bindptr.lpfuncdesc);
1389 ITypeInfo_Release(typeinfo2);
1393 hr = ITypeComp_Bind(typecomp,
str, 0, INVOKE_PROPERTYGET, &typeinfo2, &desckind, &bindptr);
1395 ok(desckind == DESCKIND_VARDESC,
"Unexpected desckind %u\n", desckind);
1396 ITypeInfo_ReleaseVarDesc(typeinfo2, bindptr.lpvardesc);
1397 ITypeInfo_Release(typeinfo2);
1402 hr = ITypeComp_Bind(typecomp,
str, 0, INVOKE_FUNC, &typeinfo2, &desckind, &bindptr);
1404 ok(desckind == DESCKIND_FUNCDESC,
"Unexpected desckind %u\n", desckind);
1405 ITypeInfo_ReleaseFuncDesc(typeinfo2, bindptr.lpfuncdesc);
1406 ITypeInfo_Release(typeinfo2);
1409 hr = ITypeComp_BindType(typecomp,
NULL, 0, &typeinfo2, &typecomp2);
1411 hr = ITypeComp_BindType(typecomp,
str, 0,
NULL, &typecomp2);
1413 hr = ITypeComp_BindType(typecomp,
str, 0, &typeinfo2,
NULL);
1415 hr = ITypeComp_BindType(typecomp,
str, 0, &typeinfo2, &typecomp2);
1416 ok(
hr ==
S_OK,
"BindType failed: %08lx\n",
hr);
1417 ok(!typeinfo2,
"Unexpected TypeInfo %p (expected null)\n", typeinfo2);
1418 ok(!typecomp2,
"Unexpected TypeComp %p (expected null)\n", typecomp2);
1420 hr = ITypeComp_BindType(typecomp,
str, 0, &typeinfo2, &typecomp2);
1421 ok(
hr ==
S_OK,
"BindType failed: %08lx\n",
hr);
1422 ok(!typeinfo2,
"Unexpected TypeInfo %p (expected null)\n", typeinfo2);
1423 ok(!typecomp2,
"Unexpected TypeComp %p (expected null)\n", typecomp2);
1425 hr = ITypeComp_BindType(typecomp,
str, 0, &typeinfo2, &typecomp2);
1426 ok(
hr ==
S_OK,
"BindType failed: %08lx\n",
hr);
1427 ok(!typeinfo2,
"Unexpected TypeInfo %p (expected null)\n", typeinfo2);
1428 ok(!typecomp2,
"Unexpected TypeComp %p (expected null)\n", typecomp2);
1430 ITypeComp_Release(typecomp);
1435 L"dim new_var\nnew_var = 10\n"
1436 "sub new_sub\nend sub\n"
1439 "function foobar(x, y, z)\nend function\n");
1442 ok(
hr ==
S_OK,
"GetTypeInfo failed: %08lx\n",
hr);
1444 ok(
hr ==
S_OK,
"GetTypeAttr failed: %08lx\n",
hr);
1448 hr = ITypeInfo_GetTypeAttr(typeinfo2, &
attr);
1449 ok(
hr ==
S_OK,
"GetTypeAttr failed: %08lx\n",
hr);
1452 ITypeInfo_ReleaseTypeAttr(typeinfo2,
attr);
1454 ok(
hr ==
S_OK,
"GetVarDesc failed: %08lx\n",
hr);
1455 hr = ITypeInfo_GetDocumentation(typeinfo2, vardesc->memid, &bstr, &bstrs[0],
NULL,
NULL);
1456 ok(
hr ==
S_OK,
"GetDocumentation failed: %08lx\n",
hr);
1459 ITypeInfo_ReleaseVarDesc(typeinfo2, vardesc);
1461 hr = ITypeInfo_GetFuncDesc(
typeinfo, 0, &funcdesc);
1462 ok(
hr ==
S_OK,
"GetFuncDesc failed: %08lx\n",
hr);
1463 ok(funcdesc->cParams == 0,
"Unexpected cParams %d\n", funcdesc->cParams);
1464 ITypeInfo_ReleaseFuncDesc(
typeinfo, funcdesc);
1465 hr = ITypeInfo_GetFuncDesc(typeinfo2, 0, &funcdesc);
1466 ok(
hr ==
S_OK,
"GetFuncDesc failed: %08lx\n",
hr);
1467 ok(funcdesc->cParams == 3,
"Unexpected cParams %d\n", funcdesc->cParams);
1468 ITypeInfo_ReleaseFuncDesc(typeinfo2, funcdesc);
1469 ITypeInfo_Release(typeinfo2);
1478 hr = IActiveScript_Close(vbscript);
1484 IActiveScript_Release(vbscript);
1489 IActiveScriptParseProcedure2 *parse_proc;
1490 IActiveScriptParse *
parser;
1497 hres = IActiveScript_QueryInterface(vbscript, &IID_IActiveScriptParse, (
void**)&
parser);
1498 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hres);
1523 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
1531 hres = IActiveScript_Close(vbscript);
1542 hres = IActiveScript_QueryInterface(vbscript, &IID_IActiveScriptParseProcedure, (
void**)&parse_proc);
1543 ok(
hres ==
E_NOINTERFACE,
"Got IActiveScriptParseProcedure interface, expected E_NOTIMPL\n");
1545 hres = IActiveScript_QueryInterface(vbscript, &IID_IActiveScriptParseProcedure2, (
void**)&parse_proc);
1546 ok(
hres ==
S_OK,
"Could not get IActiveScriptParseProcedure2 interface\n");
1549 ref = IActiveScript_Release(vbscript);
1555 IActiveScriptParse *parse;
1563 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
1564 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
1595 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
1601 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
1614 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
1622 ok(dispex !=
NULL,
"dispex == NULL\n");
1624 IDispatchEx_Release(dispex);
1630 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
1643 ok(
hres ==
E_UNEXPECTED,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx, expected E_UNEXPECTED\n",
hres);
1658 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
1663 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
1667 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
1706 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
1713 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CLOSED) failed: %08lx\n",
hres);
1721 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CLOSED) failed: %08lx\n",
hres);
1738 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
1753 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CLOSED) failed: %08lx\n",
hres);
1774 IActiveScriptParse *
parser;
1781 hres = IActiveScript_QueryInterface(vbscript, &IID_IActiveScriptParse, (
void**)&
parser);
1782 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse iface: %08lx\n",
hres);
1803 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
1813 ref = IActiveScript_Release(vbscript);
1829 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
1837 IActiveScriptParse *parse;
1844 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
1845 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
1877 static const WCHAR *global_idents[] =
1882 L"testExplicitVar_global",
1885 static const WCHAR *global_code_test[] =
1887 L"testSub_global\n",
1888 L"if testExplicitVar_global <> 10 then err.raise 500\n",
1889 L"if testVar_global <> 5 then err.raise 500\n",
1890 L"set x = new testClass_global\n"
1892 static const WCHAR *context_idents[] =
1898 static const WCHAR *context_code_test[] =
1901 L"if testExplicitVar <> 42 then err.raise 500\n",
1902 L"if testVar <> 99 then err.raise 500\n",
1903 L"set x = new testClass\n"
1906 IActiveScriptParse *parse;
1918 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
1919 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
1923 hres = IActiveScript_AddNamedItem(
script,
L"visibleItem", SCRIPTITEM_ISVISIBLE);
1925 hres = IActiveScript_AddNamedItem(
script,
L"globalItem", SCRIPTITEM_GLOBALMEMBERS);
1927 hres = IActiveScript_AddNamedItem(
script,
L"codeOnlyItem", SCRIPTITEM_CODEONLY);
1929 hres = IActiveScript_AddNamedItem(
script,
L"persistent", SCRIPTITEM_ISPERSISTENT | SCRIPTITEM_CODEONLY);
1938 hres = IActiveScript_AddNamedItem(
script,
L"globalItem", SCRIPTITEM_GLOBALMEMBERS);
1942 hres = IActiveScript_AddNamedItem(
script,
L"visibleItem", SCRIPTITEM_ISVISIBLE);
1944 hres = IActiveScript_AddNamedItem(
script,
L"visibleCodeItem", SCRIPTITEM_ISVISIBLE | SCRIPTITEM_CODEONLY);
1946 hres = IActiveScript_AddNamedItem(
script,
L"codeOnlyItem", SCRIPTITEM_CODEONLY);
1948 hres = IActiveScript_AddNamedItem(
script,
L"persistent", SCRIPTITEM_ISPERSISTENT | SCRIPTITEM_CODEONLY);
1956 hres = IActiveScript_GetScriptDispatch(
script,
L"noContext", &disp);
1960 hres = IActiveScript_AddNamedItem(
script,
L"globalCodeItem", SCRIPTITEM_GLOBALMEMBERS | SCRIPTITEM_CODEONLY);
1966 ok(
script_disp == script_disp2,
"get_script_dispatch returned different dispatch objects.\n");
1967 IDispatchEx_Release(script_disp2);
1969 ok(
script_disp == script_disp2,
"get_script_dispatch returned different dispatch objects.\n");
1970 IDispatchEx_Release(script_disp2);
1972 ok(
script_disp != script_disp2,
"get_script_dispatch returned same dispatch objects.\n");
1981 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
2014 hres = IActiveScript_GetScriptDispatch(
script,
L"visibleCodeItem", &disp);
2025 IDispatch_Release(disp);
2048 "dim global_me\nglobal_me = 0\n"
2049 "dim globalCode_me\nglobalCode_me = 0\n"
2050 "sub testSub_global\nend sub\n"
2051 "dim testExplicitVar_global\ntestExplicitVar_global = 10\n"
2052 "testVar_global = 10\n"
2053 "class testClass_global\nend class\n",
2062 "sub testSub\nend sub\n"
2063 "dim testExplicitVar\ntestExplicitVar = 42\n"
2064 "class testClass\nend class\n",
2074 "testVar_global = 5\n",
2134 hres = IDispatchEx_GetDispID(script_disp2, bstr, 0, &
id);
2136 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(global_idents[
i]),
id);
2145 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(context_idents[
i]),
id);
2147 hres = IDispatchEx_GetDispID(script_disp2, bstr, 0, &
id);
2234 IDispatchEx_Release(script_disp2);
2275 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08lx\n",
hres);
2286 hres = IActiveScript_GetScriptDispatch(
script,
L"codeOnlyItem", &disp);
2299 hres = IActiveScript_AddNamedItem(
script,
L"codeOnlyItem", SCRIPTITEM_CODEONLY);
2307 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08lx\n",
hres);
2315 ok(
script_disp != script_disp2,
"Same script dispatch returned for \"persistent\" named item\n");
2316 IDispatchEx_Release(script_disp2);
2374 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(context_idents[
i]),
id);
2410 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(global_idents[
i]),
id);
2419 ok(
id == -1,
"[%s] id = %ld, expected -1\n",
wine_dbgstr_w(context_idents[
i]),
id);
2484 IMatchCollection2 *mc;
2497 CLSCTX_INPROC_SERVER|CLSCTX_INPROC_HANDLER,
2500 win_skip(
"VBScriptRegExp is not registered\n");
2503 ok(
hres ==
S_OK,
"CoCreateInstance(CLSID_VBScriptRegExp) failed: %lx\n",
hres);
2505 hres = IUnknown_QueryInterface(unk, &IID_IRegExp2, (
void**)®exp);
2507 win_skip(
"IRegExp2 interface is not available\n");
2510 ok(
hres ==
S_OK,
"QueryInterface(IID_IRegExp2) failed: %lx\n",
hres);
2511 IUnknown_Release(unk);
2513 hres = IRegExp2_QueryInterface(regexp, &IID_IRegExp, (
void**)&unk);
2514 ok(
hres ==
S_OK,
"QueryInterface(IID_IRegExp) returned %lx\n",
hres);
2515 IUnknown_Release(unk);
2517 hres = IRegExp2_QueryInterface(regexp, &IID_IDispatchEx, (
void**)&unk);
2520 hres = IRegExp2_get_Pattern(regexp, &bstr);
2521 ok(bstr ==
NULL,
"bstr != NULL\n");
2522 ok(
hres ==
S_OK,
"get_Pattern returned %lx, expected S_OK\n",
hres);
2524 hres = IRegExp2_get_Pattern(regexp,
NULL);
2527 hres = IRegExp2_get_IgnoreCase(regexp,
NULL);
2530 hres = IRegExp2_get_Global(regexp,
NULL);
2533 hres = IRegExp2_Execute(regexp,
NULL, &disp);
2535 hres = IDispatch_QueryInterface(disp, &IID_IMatchCollection2, (
void**)&mc);
2536 ok(
hres ==
S_OK,
"QueryInterface(IID_IMatchCollection2) returned %lx\n",
hres);
2537 IDispatch_Release(disp);
2539 hres = IMatchCollection2_QueryInterface(mc, &IID_IMatchCollection, (
void**)&unk);
2540 ok(
hres ==
S_OK,
"QueryInterface(IID_IMatchCollection) returned %lx\n",
hres);
2541 IUnknown_Release(unk);
2543 hres = IMatchCollection2_get_Count(mc,
NULL);
2546 hres = IMatchCollection2_get_Count(mc, &
count);
2547 ok(
hres ==
S_OK,
"get_Count returned %lx, expected S_OK\n",
hres);
2550 hres = IMatchCollection2_get_Item(mc, 1, &disp);
2553 hres = IMatchCollection2_get_Item(mc, 1,
NULL);
2556 hres = IMatchCollection2_get_Item(mc, 0, &disp);
2557 ok(
hres ==
S_OK,
"get_Item returned %lx, expected S_OK\n",
hres);
2558 hres = IDispatch_QueryInterface(disp, &IID_IMatch2, (
void**)&
match);
2559 ok(
hres ==
S_OK,
"QueryInterface(IID_IMatch2) returned %lx\n",
hres);
2560 IDispatch_Release(disp);
2562 hres = IMatch2_QueryInterface(
match, &IID_IMatch, (
void**)&unk);
2563 ok(
hres ==
S_OK,
"QueryInterface(IID_IMatch) returned %lx\n",
hres);
2564 IUnknown_Release(unk);
2578 hres = IMatch2_get_SubMatches(
match, &disp);
2579 ok(
hres ==
S_OK,
"get_SubMatches returned %lx, expected S_OK\n",
hres);
2580 IMatch2_Release(
match);
2581 hres = IDispatch_QueryInterface(disp, &IID_ISubMatches, (
void**)&sm);
2582 ok(
hres ==
S_OK,
"QueryInterface(IID_ISubMatches) returned %lx\n",
hres);
2583 IDispatch_Release(disp);
2585 hres = ISubMatches_get_Item(sm, 0, &
v);
2588 hres = ISubMatches_get_Item(sm, 0,
NULL);
2591 hres = ISubMatches_get_Count(sm,
NULL);
2593 ISubMatches_Release(sm);
2595 hres = IMatchCollection2_get__NewEnum(mc, &unk);
2596 ok(
hres ==
S_OK,
"get__NewEnum returned %lx, expected S_OK\n",
hres);
2597 hres = IUnknown_QueryInterface(unk, &IID_IEnumVARIANT, (
void**)&ev);
2598 ok(
hres ==
S_OK,
"QueryInterface(IID_IEnumVARIANT) returned %lx\n",
hres);
2599 IUnknown_Release(unk);
2600 IMatchCollection2_Release(mc);
2602 hres = IEnumVARIANT_Skip(ev, 2);
2605 hres = IEnumVARIANT_Next(ev, 1, &
v, &fetched);
2607 ok(fetched == 0,
"fetched = %ld\n", fetched);
2609 hres = IEnumVARIANT_Skip(ev, -1);
2612 hres = IEnumVARIANT_Next(ev, 1, &
v, &fetched);
2614 ok(fetched == 1,
"fetched = %ld\n", fetched);
2616 IEnumVARIANT_Release(ev);
2618 IRegExp2_Release(regexp);
2632 {
L"abc",
L"",
L"123abc456",
L"123456",
FALSE },
2633 {
L"abc",
L"dcba",
L"123abc456",
L"123dcba456",
FALSE },
2634 {
L"[\r\n\t\f]+",
L" ",
L"\nHello\rNew\fWorld\t!",
L" Hello\rNew\fWorld\t!",
FALSE },
2635 {
L"[\r\n\t\f]+",
L" ",
L"\nHello\rNew\fWorld\t!",
L" Hello New World !",
TRUE },
2644 CLSCTX_INPROC_SERVER | CLSCTX_INPROC_HANDLER,
2645 &IID_IRegExp2, (
void **)®exp);
2648 win_skip(
"VBScriptRegExp is not registered\n");
2655 hr = IRegExp2_put_Global(regexp,
test[
i].
global ? VARIANT_TRUE : VARIANT_FALSE);
2659 hr = IRegExp2_put_Pattern(regexp,
str);
2675 IRegExp2_Release(regexp);
2680 IActiveScriptParseProcedure2 *vbscript;
2684 &IID_IActiveScriptParseProcedure2, (
void**)&vbscript);
2709 win_skip(
"VBScript engine not available or 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 IDispatch * script_disp
static VARIANTARG static DISPID
const CLSID CLSID_VBScriptRegExp
static ULONG WINAPI persistent_AddRef(IDispatch *iface)
static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface)
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface)
static const IDispatchVtbl visible_named_item_vtbl
static void _get_disp_id(unsigned line, IDispatchEx *dispex, const WCHAR *name, HRESULT exhres, DISPID *id)
static void test_vbscript_release(void)
static HRESULT WINAPI Dispatch_GetTypeInfoCount(IDispatch *iface, UINT *pctinfo)
static void test_vbscript(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 ULONG WINAPI Dispatch_Release(IDispatch *iface)
static void test_vbscript_simplecreate(void)
static BOOL check_vbscript(void)
#define get_disp_id(a, b, c, d)
static IDispatch dispatch_object
static void test_RegExp_Replace(void)
#define CHECK_EXPECT(func)
static ULONG WINAPI persistent_Release(IDispatch *iface)
static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, BSTR *pbstrVersion)
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)
static void test_scriptdisp(void)
#define DEFINE_EXPECT(func)
#define IActiveScriptParse_InitNew
static void test_code_persistence(void)
#define IActiveScriptParse_ParseScriptText
static void test_safety(IActiveScript *script)
#define IActiveScriptParseProcedure2_Release
static void test_vbscript_initializing(void)
#define IActiveScriptParse_Release
static void test_named_items(void)
static ULONG WINAPI global_Release(IDispatch *iface)
static void test_vbscript_uninitializing(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 void test_script_typeinfo(void)
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 IActiveScript * create_vbscript(void)
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 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_no_script_dispatch(IActiveScript *script)
static HRESULT WINAPI Dispatch_QueryInterface(IDispatch *iface, REFIID riid, void **ppv)
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 void test_RegExp(void)
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 HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
static IDispatch global_named_item
static IActiveScriptSite ActiveScriptSite
static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
#define SET_EXPECT_MULTI(func, num)
static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPCOLESTR name, DWORD return_mask, IUnknown **item_unk, ITypeInfo **item_ti)
static ULONG WINAPI visible_code_AddRef(IDispatch *iface)
static IDispatch persistent_named_item
static ULONG WINAPI global_AddRef(IDispatch *iface)
#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)
INT replace(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], DWORD dwFlags, BOOL *doMore)
static __inline const char * wine_dbgstr_guid(const GUID *id)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
const CLSID CLSID_VBScript
#define REGDB_E_CLASSNOTREG
#define TYPE_E_BADMODULEKIND
#define TYPE_E_ELEMENTNOTFOUND
#define TYPE_E_TYPEMISMATCH
#define DISP_E_UNKNOWNNAME