From: Qian Hong Subject: [PATCH 2/2] mshtml: Handle DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF in invoke_builtin_prop. Message-Id: <5419B7EB.3010606@codeweavers.com> Date: Thu, 18 Sep 2014 00:33:47 +0800 Also slightly improved debug message. --- dlls/mshtml/dispex.c | 3 ++- dlls/mshtml/tests/script.c | 7 +++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c index a81bf7c..4a872a8 100644 --- a/dlls/mshtml/dispex.c +++ b/dlls/mshtml/dispex.c @@ -1230,6 +1230,7 @@ static HRESULT invoke_builtin_prop(DispatchEx *This, DISPID id, LCID lcid, WORD switch(flags) { case DISPATCH_PROPERTYPUT: + case DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF: if(res) V_VT(res) = VT_EMPTY; hres = builtin_propput(This, func, dp, caller); @@ -1249,7 +1250,7 @@ static HRESULT invoke_builtin_prop(DispatchEx *This, DISPID id, LCID lcid, WORD if(flags != (DISPATCH_PROPERTYGET|DISPATCH_METHOD) || dp->cArgs) { if(V_VT(&v) != VT_DISPATCH) { - FIXME("Not a function %s\n", debugstr_variant(&v)); + FIXME("Not a function %s flags %08x\n", debugstr_variant(&v), flags); VariantClear(&v); return E_FAIL; } diff --git a/dlls/mshtml/tests/script.c b/dlls/mshtml/tests/script.c index 031c0ac..c9b9eb5 100644 --- a/dlls/mshtml/tests/script.c +++ b/dlls/mshtml/tests/script.c @@ -2091,6 +2091,13 @@ static void test_default_arg_conv(IHTMLWindow2 *window) test_elem_disabled(elem, VARIANT_FALSE); + V_VT(&v) = VT_I4; + V_I4(&v) = 1; + hres = dispex_propput(dispex, DISPID_IHTMLELEMENT3_DISABLED, DISPATCH_PROPERTYPUTREF, &v, NULL); + ok(hres == S_OK, "InvokeEx failed: %08x\n", hres); + + test_elem_disabled(elem, VARIANT_TRUE); + IHTMLElement_Release(elem); IDispatchEx_Release(dispex); }