Jacek Caban : vbscript: Added support for DISPATCH_METHOD flags in invoke_builtin.

Alexandre Julliard julliard at winehq.org
Thu Sep 22 13:39:48 CDT 2011


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Sep 22 14:25:06 2011 +0200

vbscript: Added support for DISPATCH_METHOD flags in invoke_builtin.

---

 dlls/vbscript/vbdisp.c |   18 +++++++++++++-----
 1 files changed, 13 insertions(+), 5 deletions(-)

diff --git a/dlls/vbscript/vbdisp.c b/dlls/vbscript/vbdisp.c
index 96df71a..d083d74 100644
--- a/dlls/vbscript/vbdisp.c
+++ b/dlls/vbscript/vbdisp.c
@@ -139,14 +139,15 @@ static HRESULT invoke_builtin(vbdisp_t *This, const builtin_prop_t *prop, WORD f
             FIXME("property does not support DISPATCH_PROPERTYGET\n");
             return E_FAIL;
         }
-        /* FALLTHROUGH */
+        break;
     case DISPATCH_PROPERTYGET|DISPATCH_METHOD:
-        if(arg_cnt(dp) < prop->min_args || arg_cnt(dp) > (prop->max_args ? prop->max_args : prop->min_args)) {
-            FIXME("invalid number of arguments\n");
+        break;
+    case DISPATCH_METHOD:
+        if(prop->flags & (BP_GET|BP_GETPUT)) {
+            FIXME("Call on property\n");
             return E_FAIL;
         }
-
-        return prop->proc(This, dp->rgvarg, dp->cArgs, res);
+        break;
     case DISPATCH_PROPERTYPUT:
         if(!(prop->flags & (BP_GET|BP_GETPUT))) {
             FIXME("property does not support DISPATCH_PROPERTYPUT\n");
@@ -159,6 +160,13 @@ static HRESULT invoke_builtin(vbdisp_t *This, const builtin_prop_t *prop, WORD f
         FIXME("unsupported flags %x\n", flags);
         return E_NOTIMPL;
     }
+
+    if(arg_cnt(dp) < prop->min_args || arg_cnt(dp) > (prop->max_args ? prop->max_args : prop->min_args)) {
+        FIXME("invalid number of arguments\n");
+        return E_FAIL;
+    }
+
+    return prop->proc(This, dp->rgvarg, dp->cArgs, res);
 }
 
 static BOOL run_terminator(vbdisp_t *This)




More information about the wine-cvs mailing list