Qian Hong : mshtml: Handle DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF in invoke_builtin_prop.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Sep 18 14:26:07 CDT 2014


Module: wine
Branch: master
Commit: cdd28b0aca0647324abfb4493844d27e7471bd2c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=cdd28b0aca0647324abfb4493844d27e7471bd2c

Author: Qian Hong <qhong at codeweavers.com>
Date:   Thu Sep 18 00:33:47 2014 +0800

mshtml: Handle DISPATCH_PROPERTYPUT | DISPATCH_PROPERTYPUTREF in invoke_builtin_prop.

---

 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);
 }




More information about the wine-cvs mailing list