32#define IActiveScriptParse_QueryInterface IActiveScriptParse64_QueryInterface
33#define IActiveScriptParse_Release IActiveScriptParse64_Release
34#define IActiveScriptParse_InitNew IActiveScriptParse64_InitNew
35#define IActiveScriptParse_ParseScriptText IActiveScriptParse64_ParseScriptText
39#define IActiveScriptParse_QueryInterface IActiveScriptParse32_QueryInterface
40#define IActiveScriptParse_Release IActiveScriptParse32_Release
41#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew
42#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText
46DEFINE_GUID(
GUID_NULL,0,0,0,0,0,0,0,0,0,0,0);
49 {0xf414c260,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
51 {0xf414c262,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
53#define DEFINE_EXPECT(func) \
54 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
56#define SET_EXPECT(func) \
57 expect_ ## func = TRUE
59#define CHECK_EXPECT2(func) \
61 ok(expect_ ##func, "unexpected call " #func "\n"); \
62 called_ ## func = TRUE; \
65#define CHECK_EXPECT(func) \
67 CHECK_EXPECT2(func); \
68 expect_ ## func = FALSE; \
71#define CHECK_CALLED(func) \
73 ok(called_ ## func, "expected " #func "\n"); \
74 expect_ ## func = called_ ## func = FALSE; \
101#define test_state(s,ss) _test_state(__LINE__,s,ss)
109 ok_(__FILE__,
line) (
state == exstate,
"state=%d, expected %d\n",
state, exstate);
146 ok(0,
"unexpected call\n");
152 ok(0,
"unexpected call\n");
157 const VARIANT *pvarResult,
const EXCEPINFO *pexcepinfo)
159 ok(0,
"unexpected call\n");
165 switch(ssScriptState) {
185 ok(0,
"unexpected call %d\n", ssScriptState);
193 ok(0,
"unexpected call\n");
235 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseSensitive, &
id);
240 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseSensitive, &
id);
244 memset(&ei, 0,
sizeof(ei));
252 hres = IDispatchEx_GetDispID(dispex,
str, fdexNameCaseSensitive, &
id);
256 memset(&ei, 0,
sizeof(ei));
270 disp = (
void*)0xdeadbeef;
274 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
275 IDispatch_Release(disp);
285 disp = (
void*)0xdeadbeef;
288 ok(!disp,
"disp != NULL\n");
297 hres = IUnknown_QueryInterface(unk, &IID_IObjectSafety, (
void**)&safety);
302 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &
IID_NULL, &supported,
NULL);
303 ok(
hres ==
E_POINTER,
"GetInterfaceSafetyOptions failed: %08x, expected E_POINTER\n",
hres);
305 ok(
hres ==
E_POINTER,
"GetInterfaceSafetyOptions failed: %08x, expected E_POINTER\n",
hres);
307 supported =
enabled = 0xdeadbeef;
309 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08x\n",
hres);
310 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
311 "supported=%x\n", supported);
314 supported =
enabled = 0xdeadbeef;
315 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScript, &supported, &
enabled);
316 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08x\n",
hres);
317 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
318 "supported=%x\n", supported);
321 supported =
enabled = 0xdeadbeef;
322 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
323 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08x\n",
hres);
324 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
325 "supported=%x\n", supported);
328 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
329 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER
330 |INTERFACESAFE_FOR_UNTRUSTED_CALLER,
331 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER);
332 ok(
hres ==
E_FAIL,
"SetInterfaceSafetyOptions failed: %08x, expected E_FAIL\n",
hres);
334 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
335 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER,
336 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER);
337 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08x\n",
hres);
339 supported =
enabled = 0xdeadbeef;
340 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
341 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08x\n",
hres);
342 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
343 "supported=%x\n", supported);
344 ok(
enabled == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
347 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, INTERFACESAFE_FOR_UNTRUSTED_DATA, 0);
348 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08x\n",
hres);
350 supported =
enabled = 0xdeadbeef;
351 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
352 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08x\n",
hres);
353 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
354 "supported=%x\n", supported);
355 ok(
enabled == (INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
"enabled=%x\n",
enabled);
357 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
358 INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER, 0);
359 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08x\n",
hres);
361 supported =
enabled = 0xdeadbeef;
362 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
363 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08x\n",
hres);
364 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
365 "supported=%x\n", supported);
368 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse,
369 INTERFACE_USES_DISPEX, 0);
370 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08x\n",
hres);
372 supported =
enabled = 0xdeadbeef;
373 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
374 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08x\n",
hres);
375 ok(supported == (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER),
376 "supported=%x\n", supported);
379 IObjectSafety_Release(safety);
387 hres = IActiveScript_QueryInterface(engine, &IID_IActiveScriptProperty,
388 (
void**)&script_prop);
389 ok(
hres ==
S_OK,
"Could not get IActiveScriptProperty: %08x\n",
hres);
394 IActiveScriptProperty_Release(script_prop);
406 win_skip(
"SCRIPTPROP_INVOKESTRING not supported\n");
424 ok(
hres ==
S_OK,
"SetProperty(SCRIPTPROP_INVOKEVERSIONING) failed: %08x\n",
hres);
433 &IID_IActiveScript, (
void**)&
ret);
441 IActiveScriptParse *parse;
449 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
450 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08x\n",
hres);
485 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08x\n",
hres);
498 IDispatchEx_Release(dispex);
508 IActiveScriptParse *parse;
515 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
516 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08x\n",
hres);
537 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08x\n",
hres);
562 IActiveScriptParse *parse;
568 static const WCHAR script_textW[] =
569 {
'f',
'u',
'n',
'c',
't',
'i',
'o',
'n',
' ',
'f',
'(',
')',
' ',
'{',
'}',0};
573 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&parse);
574 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08x\n",
hres);
598 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08x\n",
hres);
604 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08x\n",
hres);
617 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_CONNECTED) failed: %08x\n",
hres);
625 ok(dispex !=
NULL,
"dispex == NULL\n");
626 IDispatchEx_Release(dispex);
632 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08x\n",
hres);
645 ok(
hres ==
E_UNEXPECTED,
"SetScriptState(SCRIPTSTATE_UNINITIALIZED) failed: %08x, expected E_UNEXPECTED\n",
hres);
663 "CoCreateInstance failed: %08x, expected CLASS_E_NOAGGREGATION\n",
hres);
673 &IID_IActiveScriptProperty, (
void**)&script_prop);
675 IActiveScriptProperty_Release(script_prop);
685 trace(
"Testing JScript object...\n");
691 trace(
"Testing JScriptEncode object...\n");
695 win_skip(
"Broken engine, probably too old\n");
@ SCRIPTSTATE_INITIALIZED
@ SCRIPTSTATE_DISCONNECTED
@ SCRIPTSTATE_UNINITIALIZED
enum tagSCRIPTSTATE SCRIPTSTATE
#define MultiByteToWideChar
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, LPUNKNOWN pUnkOuter, DWORD dwClsContext, REFIID iid, LPVOID *ppv)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
GLenum GLenum GLsizei const GLuint GLboolean enabled
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 void test_jscript_uninitializing(void)
static void test_aggregation(void)
static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
static const CLSID CLSID_JScript
static void test_script_dispatch(IDispatchEx *dispex)
#define CHECK_EXPECT(func)
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)
#define DEFINE_EXPECT(func)
#define IActiveScriptParse_InitNew
#define IActiveScriptParse_ParseScriptText
#define IActiveScriptParse_Release
static BSTR a2bstr(const char *str)
#define test_state(s, ss)
static void _test_state(unsigned line, IActiveScript *script, SCRIPTSTATE exstate)
static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface, REFIID riid, void **ppv)
static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *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 void test_safety(IUnknown *unk)
static void test_no_script_dispatch(IActiveScript *script)
static void test_jscript2(void)
static const CLSID * engine_clsid
static IDispatchEx * get_script_dispatch(IActiveScript *script)
static const IActiveScriptSiteVtbl ActiveScriptSiteVtbl
static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
static HRESULT set_script_prop(IActiveScript *engine, DWORD property, VARIANT *val)
static IActiveScriptSite ActiveScriptSite
static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
static VARIANTARG static DISPID
void WINAPI DECLSPEC_HOTPATCH SysFreeString(BSTR str)
BSTR WINAPI SysAllocStringLen(const OLECHAR *str, unsigned int len)
#define DISPATCH_PROPERTYGET
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
HRESULT WINAPI DECLSPEC_HOTPATCH VariantClear(VARIANTARG *pVarg)
#define CLASS_E_NOAGGREGATION