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
41#define IActiveScriptParseProcedure2_ParseProcedureText \
42 IActiveScriptParseProcedure2_64_ParseProcedureText
46#define IActiveScriptParse_QueryInterface IActiveScriptParse32_QueryInterface
47#define IActiveScriptParse_Release IActiveScriptParse32_Release
48#define IActiveScriptParse_InitNew IActiveScriptParse32_InitNew
49#define IActiveScriptParse_ParseScriptText IActiveScriptParse32_ParseScriptText
50#define IActiveScriptParseProcedure2_Release \
51 IActiveScriptParseProcedure2_32_Release
52#define IActiveScriptParseProcedure2_ParseProcedureText \
53 IActiveScriptParseProcedure2_32_ParseProcedureText
58 {0xf414c260,0x6ac0,0x11cf,{0xb6,0xd1,0x00,0xaa,0x00,0xbb,0xbb,0x58}};
60#define DEFINE_EXPECT(func) \
61 static BOOL expect_ ## func = FALSE, called_ ## func = FALSE
63#define SET_EXPECT(func) \
64 expect_ ## func = TRUE
66#define CHECK_EXPECT2(func) \
68 ok(expect_ ##func, "unexpected call " #func "\n"); \
69 called_ ## func = TRUE; \
72#define CHECK_EXPECT(func) \
74 CHECK_EXPECT2(func); \
75 expect_ ## func = FALSE; \
78#define CHECK_CALLED(func) \
80 ok(called_ ## func, "expected " #func "\n"); \
81 expect_ ## func = called_ ## func = FALSE; \
104#define TESTOBJ_CLSID "{178fc163-f585-4e24-9c13-4bb7faf80646}"
107 {0x178fc163,0xf585,0x4e24,{0x9c,0x13,0x4b,0xb7,0xfa,0xf8,0x06,0x46}};
111 {0x10200490,0xfa38,0x11d0,{0xac,0x0e,0x00,0xa0,0xc9,0xf,0xff,0xc0}};
113#define DISPID_TEST_REPORTSUCCESS 0x1000
115#define DISPID_GLOBAL_OK 0x2000
119 ok(0,
"unexpected call\n");
140 ok(pUnkSite !=
NULL,
"pUnkSite == NULL\n");
142 hres = IUnknown_QueryInterface(pUnkSite, &IID_IServiceProvider, (
void**)&
sp);
143 ok(
hres ==
S_OK,
"Could not get IServiceProvider iface: %08lx\n",
hres);
144 IServiceProvider_Release(
sp);
151 ok(0,
"unexpected call\n");
181 ok(0,
"Unexpected IID_IObjectSafety query\n");
199 ok(0,
"unexpected call\n");
209 LPOLESTR *rgszNames,
UINT cNames,
212 ok(0,
"unexpected call\n");
218 VARIANT *pVarResult, EXCEPINFO *pExcepInfo,
UINT *puArgErr)
220 ok(0,
"unexpected call\n");
232 ok(0,
"unexpected call\n");
238 ok(0,
"unexpected call\n");
244 ok(0,
"unexpected call\n");
250 ok(0,
"unexpected call\n");
256 ok(0,
"unexpected call\n");
262 if(!
lstrcmpW(bstrName,
L"reportSuccess")) {
263 ok(grfdex == fdexNameCaseSensitive,
"grfdex = %lx\n", grfdex);
280 ok(pdp !=
NULL,
"pdp == NULL\n");
281 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
282 ok(pdp->cArgs == 0,
"cArgs = %d\n", pdp->cArgs);
283 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
284 ok(!pvarRes,
"pvarRes != NULL\n");
285 ok(pei !=
NULL,
"pei == NULL\n");
289 ok(0,
"unexpected call\n");
319 ok(grfdex == fdexNameCaseSensitive,
"grfdex = %lx\n", grfdex);
333 ok(
wFlags == INVOKE_FUNC ||
wFlags == (INVOKE_FUNC|INVOKE_PROPERTYGET),
"wFlags = %x\n",
wFlags);
334 ok(pdp !=
NULL,
"pdp == NULL\n");
335 ok(pdp->rgvarg !=
NULL,
"rgvarg == NULL\n");
336 ok(!pdp->rgdispidNamedArgs,
"rgdispidNamedArgs != NULL\n");
337 ok(pdp->cArgs == 2,
"cArgs = %d\n", pdp->cArgs);
338 ok(!pdp->cNamedArgs,
"cNamedArgs = %d\n", pdp->cNamedArgs);
339 ok(pei !=
NULL,
"pei == NULL\n");
341 ok(
V_VT(pdp->rgvarg) ==
VT_BSTR,
"V_VT(psp->rgvargs) = %d\n",
V_VT(pdp->rgvarg));
342 ok(
V_VT(pdp->rgvarg+1) ==
VT_BOOL,
"V_VT(psp->rgvargs+1) = %d\n",
V_VT(pdp->rgvarg));
347 ok(0,
"unexpected call\n");
410 ok(0,
"unexpected call\n");
426 ok(0,
"unexpected call\n");
443 ok(0,
"unexpected call\n");
452 ok(dwAction == URLACTION_ACTIVEX_RUN,
"dwAction = %lx\n", dwAction);
453 ok(pPolicy !=
NULL,
"pPolicy == NULL\n");
454 ok(cbPolicy ==
sizeof(
DWORD),
"cbPolicy = %ld\n", cbPolicy);
455 ok(pContext !=
NULL,
"pContext == NULL\n");
456 ok(cbContext ==
sizeof(
GUID),
"cbContext = %ld\n", cbContext);
476 ok(ppPolicy !=
NULL,
"ppPolicy == NULL\n");
477 ok(pcbPolicy !=
NULL,
"pcbPolicy == NULL\n");
478 ok(pContext !=
NULL,
"pContext == NULL\n");
479 ok(cbContext ==
sizeof(
struct CONFIRMSAFETY),
"cbContext = %ld\n", cbContext);
483 ok(
cs->pUnk !=
NULL,
"cs->pUnk == NULL\n");
484 ok(!
cs->dwFlags,
"dwFlags = %lx\n",
cs->dwFlags);
514 ok(0,
"unexpected call\n");
534 if(
IsEqualGUID(&SID_SInternetHostSecurityManager, guidService)) {
595 ok(dwReturnMask == SCRIPTINFO_IUNKNOWN,
"unexpected dwReturnMask %lx\n", dwReturnMask);
596 ok(!ppti,
"ppti != NULL\n");
609 const VARIANT *pvarResult,
const EXCEPINFO *pexcepinfo)
634#undef ACTSCPSITE_THIS
658 hres = IUnknown_QueryInterface(unk, &IID_IObjectSafety, (
void**)&safety);
663 options_all = INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACE_USES_DISPEX|INTERFACE_USES_SECURITY_MANAGER;
665 options_set = options_all;
667 options_set = INTERFACE_USES_DISPEX;
669 hres = IObjectSafety_SetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, options_all, options_set);
670 ok(
hres ==
S_OK,
"SetInterfaceSafetyOptions failed: %08lx\n",
hres);
672 supported =
enabled = 0xdeadbeef;
673 hres = IObjectSafety_GetInterfaceSafetyOptions(safety, &IID_IActiveScriptParse, &supported, &
enabled);
674 ok(
hres ==
S_OK,
"GetInterfaceSafetyOptions failed: %08lx\n",
hres);
675 ok(supported == options_all,
"supported=%lx, expected %lx\n", supported, options_all);
676 ok(
enabled == options_set,
"enabled=%lx, expected %lx\n",
enabled, options_set);
678 IObjectSafety_Release(safety);
681#define parse_script(p,s) _parse_script(__LINE__,p,s)
692 IActiveScriptParse *
parser;
708 &IID_IActiveScript, (
void**)&
script);
717 hres = IActiveScript_QueryInterface(
script, &IID_IActiveScriptParse, (
void**)&
parser);
718 ok(
hres ==
S_OK,
"Could not get IActiveScriptParse: %08lx\n",
hres);
727 SCRIPTITEM_ISVISIBLE|SCRIPTITEM_ISSOURCE|SCRIPTITEM_GLOBALMEMBERS);
731 ok(
hres ==
S_OK,
"SetScriptState(SCRIPTSTATE_STARTED) failed: %08lx\n",
hres);
733 IActiveScript_Release(
script);
737 L"function testException(func, type, number) {\n"
741 L" ok(e.name === type, 'e.name = ' + e.name + ', expected ' + type)\n"
742 L" ok(e.number === number, 'e.number = ' + e.number + ', expected ' + number);\n"
745 L" ok(false, 'exception expected');\n"
754 IActiveScriptParseProcedure2 *parse_proc;
760 ok(
hres ==
S_OK,
"Could not get IActiveScriptParseProcedure2: %08lx\n",
hres);
762 hres =
IActiveScriptParseProcedure2_ParseProcedureText(parse_proc,
src,
NULL,
NULL,
NULL,
NULL,
NULL, 0, 0, 0, &disp);
765 ok(disp !=
NULL,
"disp == NULL\n");
767 hres = IDispatch_QueryInterface(disp, &IID_IDispatchEx, (
void**)&dispex);
768 IDispatch_Release(disp);
769 ok(
hres ==
S_OK,
"Could not get IDispatchEx iface: %08lx\n",
hres);
774#define call_procedure(p,c) _call_procedure(__LINE__,p,c)
788 IActiveScriptParse *
parser;
833 IDispatchEx_Release(
proc);
853 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.TestABC'); }, 'Error', -2146827859);");
855 IDispatchEx_Release(
proc);
862 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
872 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
883 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
895 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
909 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
943 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
954 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
965 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
1009 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
1039 parse_script(
parser,
L"testException(function() { new ActiveXObject('Wine.Test'); }, 'Error', -2146827859);");
1083 ok(
hres ==
S_OK,
"Could not register script engine: %08lx\n",
hres);
1091 IActiveScriptParse *
parser;
1104 IActiveScriptProperty_Release(script_prop);
1118 skip(
"Could not register ActiveX object\n");
1121 win_skip(
"Broken engine, probably too old\n");
enum tagSCRIPTSTATE SCRIPTSTATE
const GUID IID_IClassFactory
#define RegCloseKey(hKey)
LONG WINAPI RegCreateKeyA(HKEY hKey, LPCSTR lpSubKey, PHKEY phkResult)
LONG WINAPI RegSetValueA(HKEY hKeyOriginal, LPCSTR lpSubKey, DWORD dwType, LPCSTR lpData, DWORD cbData)
LONG WINAPI RegDeleteKeyA(_In_ HKEY hKey, _In_ LPCSTR lpSubKey)
void WINAPI DECLSPEC_HOTPATCH CoUninitialize(void)
HRESULT WINAPI CoRegisterClassObject(REFCLSID rclsid, IUnknown *object, DWORD clscontext, DWORD flags, DWORD *cookie)
HRESULT WINAPI DECLSPEC_HOTPATCH CoCreateInstance(REFCLSID rclsid, IUnknown *outer, DWORD cls_context, REFIID riid, void **obj)
void *WINAPI CoTaskMemAlloc(SIZE_T size)
const GUID GUID_CUSTOM_CONFIRMOBJECTSAFETY
int WINAPI lstrcmpW(LPCWSTR str1, LPCWSTR str2)
LCID WINAPI GetUserDefaultLCID(void)
_ACRTIMP size_t __cdecl strlen(const char *)
HRESULT WINAPI CoInitialize(LPVOID lpReserved)
GLenum GLenum GLsizei const GLuint GLboolean enabled
static CInternetFolder * CreateInstance(void)
static IActiveScriptParse * create_script(void)
const IID IID_IObjectWithSite
static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv)
static BOOL check_jscript(void)
static ULONG WINAPI ActiveScriptSite_Release(IActiveScriptSite *iface)
static HRESULT WINAPI ClassFactory_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
static ULONG WINAPI ObjectWithSite_Release(IObjectWithSite *iface)
static HRESULT CreateInstance_hres
static HRESULT WINAPI ActiveScriptSite_OnLeaveScript(IActiveScriptSite *iface)
static IServiceProvider caller_sp
static void set_safety_options(IUnknown *unk, BOOL use_sec_mgr)
static IClassFactory activex_cf
static ULONG WINAPI ObjectWithSite_AddRef(IObjectWithSite *iface)
static HRESULT WINAPI ClassFactory_LockServer(IClassFactory *iface, BOOL dolock)
static ULONG WINAPI ServiceProvider_Release(IServiceProvider *iface)
static IDispatchExVtbl globalObjVtbl
static IInternetHostSecurityManager InternetHostSecurityManager
static const IObjectWithSiteVtbl ObjectWithSiteVtbl
static const GUID CLSID_TestObj
static HRESULT WINAPI ActiveScriptSite_OnStateChange(IActiveScriptSite *iface, SCRIPTSTATE ssScriptState)
static const IClassFactoryVtbl ClassFactoryVtbl
static HRESULT WINAPI DispatchEx_GetMemberProperties(IDispatchEx *iface, DISPID id, DWORD grfdexFetch, DWORD *pgrfdex)
static HRESULT WINAPI InternetHostSecurityManager_QueryInterface(IInternetHostSecurityManager *iface, REFIID riid, void **ppv)
static ULONG WINAPI InternetHostSecurityManager_AddRef(IInternetHostSecurityManager *iface)
static ULONG WINAPI DispatchEx_Release(IDispatchEx *iface)
static DWORD ProcessUrlAction_policy
static HRESULT WINAPI DispatchEx_GetIDsOfNames(IDispatchEx *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static BOOL init_registry(BOOL init)
static const CLSID CLSID_JScript
static HRESULT WINAPI DispatchEx_DeleteMemberByDispID(IDispatchEx *iface, DISPID id)
static HRESULT WINAPI InternetHostSecurityManager_GetSecurityId(IInternetHostSecurityManager *iface, BYTE *pbSecurityId, DWORD *pcbSecurityId, DWORD_PTR dwReserved)
static HRESULT WINAPI DispatchEx_GetNameSpaceParent(IDispatchEx *iface, IUnknown **ppunk)
static IObjectWithSite ObjectWithSite
static HRESULT WINAPI DispatchEx_Invoke(IDispatchEx *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
#define IActiveScriptParseProcedure2_ParseProcedureText
static void test_ActiveXObject(void)
#define CHECK_EXPECT(func)
#define call_procedure(p, c)
static HRESULT WINAPI ActiveScriptSite_GetDocVersionString(IActiveScriptSite *iface, BSTR *pbstrVersion)
static HRESULT WINAPI InternetHostSecurityManager_QueryCustomPolicy(IInternetHostSecurityManager *iface, REFGUID guidKey, BYTE **ppPolicy, DWORD *pcbPolicy, BYTE *pContext, DWORD cbContext, DWORD dwReserved)
static HRESULT WINAPI ActiveScriptSite_GetItemInfo(IActiveScriptSite *iface, LPCOLESTR pstrName, DWORD dwReturnMask, IUnknown **ppiunkItem, ITypeInfo **ppti)
static void _parse_script(unsigned line, IActiveScriptParse *parser, const WCHAR *script)
static ULONG WINAPI ClassFactory_Release(IClassFactory *iface)
#define DEFINE_EXPECT(func)
static HRESULT WINAPI DispatchEx_GetMemberName(IDispatchEx *iface, DISPID id, BSTR *pbstrName)
static DWORD QueryCustomPolicy_policy
#define IActiveScriptParse_InitNew
#define IActiveScriptParse_ParseScriptText
#define IActiveScriptParseProcedure2_Release
#define IActiveScriptParse_Release
static BOOL AllowIServiceProvider
static IServiceProvider ServiceProvider
static HRESULT WINAPI ObjectWithSite_QueryInterface(IObjectWithSite *iface, REFIID riid, void **ppv)
static BOOL init_key(const char *key_name, const char *def_value, BOOL init)
#define parse_script(p, s)
static IDispatchEx * parse_procedure(IActiveScriptParse *parser, const WCHAR *src)
static HRESULT WINAPI DispatchEx_GetNextDispID(IDispatchEx *iface, DWORD grfdex, DISPID id, DISPID *pid)
static HRESULT WINAPI Test_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid)
#define IActiveScriptParse_QueryInterface
static HRESULT WINAPI DispatchEx_QueryInterface(IDispatchEx *iface, REFIID riid, void **ppv)
static void _call_procedure(unsigned line, IDispatchEx *proc, IServiceProvider *caller)
static HRESULT WINAPI ClassFactory_QueryInterface(IClassFactory *iface, REFIID riid, void **ppv)
static HRESULT WINAPI ActiveScriptSite_QueryInterface(IActiveScriptSite *iface, REFIID riid, void **ppv)
static ULONG WINAPI InternetHostSecurityManager_Release(IInternetHostSecurityManager *iface)
static HRESULT QI_IDispatch_hres
static HRESULT WINAPI ActiveScriptSite_OnEnterScript(IActiveScriptSite *iface)
static HRESULT ProcessUrlAction_hres
static ULONG WINAPI DispatchEx_AddRef(IDispatchEx *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 QS_SecMgr_hres
static ULONG WINAPI ClassFactory_AddRef(IClassFactory *iface)
static HRESULT WINAPI ObjectWithSite_SetSite(IObjectWithSite *iface, IUnknown *pUnkSite)
static const IInternetHostSecurityManagerVtbl InternetHostSecurityManagerVtbl
static DWORD QueryCustomPolicy_psize
static BOOL register_activex(void)
static HRESULT WINAPI DispatchEx_GetTypeInfo(IDispatchEx *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static IDispatchEx globalObj
static HRESULT WINAPI ServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv)
static IDispatchEx testObj
static HRESULT WINAPI InternetHostSecurityManager_ProcessUrlAction(IInternetHostSecurityManager *iface, DWORD dwAction, BYTE *pPolicy, DWORD cbPolicy, BYTE *pContext, DWORD cbContext, DWORD dwFlags, DWORD dwReserved)
static const IActiveScriptSiteVtbl ActiveScriptSiteVtbl
static IServiceProviderVtbl ServiceProviderVtbl
static HRESULT WINAPI Global_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller)
static HRESULT WINAPI DispatchEx_DeleteMemberByName(IDispatchEx *iface, BSTR bstrName, DWORD grfdex)
static ULONG WINAPI ServiceProvider_AddRef(IServiceProvider *iface)
static HRESULT QueryCustomPolicy_hres
static HRESULT WINAPI ActiveScriptSite_GetLCID(IActiveScriptSite *iface, LCID *plcid)
static IActiveScriptSite ActiveScriptSite
static HRESULT WINAPI ActiveScriptSite_OnScriptError(IActiveScriptSite *iface, IActiveScriptError *pscripterror)
static HRESULT WINAPI DispatchEx_GetTypeInfoCount(IDispatchEx *iface, UINT *pctinfo)
static IObjectWithSite * object_with_site
static IDispatchExVtbl testObjVtbl
#define DISPID_TEST_REPORTSUCCESS
static HRESULT WINAPI ObjectWithSite_GetSite(IObjectWithSite *iface, REFIID riid, void **ppvSite)
static HRESULT SetSite_hres
static HRESULT WINAPI Test_InvokeEx(IDispatchEx *iface, DISPID id, LCID lcid, WORD wFlags, DISPPARAMS *pdp, VARIANT *pvarRes, EXCEPINFO *pei, IServiceProvider *pspCaller)
static HRESULT WINAPI Global_GetDispID(IDispatchEx *iface, BSTR bstrName, DWORD grfdex, DISPID *pid)
static VARIANTARG static DISPID
_In_ HANDLE _In_ DWORD _In_ DWORD _Inout_opt_ LPOVERLAPPED _In_opt_ LPTRANSMIT_FILE_BUFFERS _In_ DWORD dwReserved
_In_ LPWSTR _In_ DWORD _In_ DWORD _In_ DWORD dwFlags
#define IsEqualGUID(rguid1, rguid2)
static __inline const char * wine_dbgstr_guid(const GUID *id)
WINBASEAPI _In_ DWORD _Out_ _In_ WORD wFlags
_In_ ULONG_PTR _In_ ULONG _Out_ ULONG_PTR * pid
#define HKEY_CLASSES_ROOT