Jacek Caban : vbscript: Added support for a few more constants.

Alexandre Julliard julliard at winehq.org
Fri Feb 22 14:14:00 CST 2013


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Feb 22 12:30:07 2013 +0100

vbscript: Added support for a few more constants.

---

 dlls/vbscript/global.c      |   80 +++++-------------------------------------
 dlls/vbscript/tests/api.vbs |   10 +++++
 dlls/vbscript/vbdisp.c      |    2 +-
 3 files changed, 21 insertions(+), 71 deletions(-)

diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c
index 1a3dae7..a576f08 100644
--- a/dlls/vbscript/global.c
+++ b/dlls/vbscript/global.c
@@ -1609,66 +1609,6 @@ static HRESULT Global_GetRef(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VA
     return E_NOTIMPL;
 }
 
-static HRESULT Global_vbUseDefault(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT Global_vbBinaryCompare(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT Global_vbTextCompare(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT Global_vbDatabaseCompare(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT Global_vbGeneralDate(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT Global_vbLongDate(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT Global_vbShortDate(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT Global_vbLongTime(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT Global_vbShortTime(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
-static HRESULT Global_vbObjectError(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
-{
-    FIXME("\n");
-    return E_NOTIMPL;
-}
-
 static HRESULT Global_vbBlack(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)
 {
     FIXME("\n");
@@ -1826,16 +1766,16 @@ static const builtin_prop_t global_props[] = {
     {DISPID_GLOBAL_VBARRAY,            NULL, BP_GET, VT_ARRAY},
     {DISPID_GLOBAL_VBTRUE,             NULL, BP_GET, VARIANT_TRUE},
     {DISPID_GLOBAL_VBFALSE,            NULL, BP_GET, VARIANT_FALSE},
-    {DISPID_GLOBAL_VBUSEDEFAULT,       Global_vbUseDefault, BP_GET},
-    {DISPID_GLOBAL_VBBINARYCOMPARE,    Global_vbBinaryCompare, BP_GET},
-    {DISPID_GLOBAL_VBTEXTCOMPARE,      Global_vbTextCompare, BP_GET},
-    {DISPID_GLOBAL_VBDATABASECOMPARE,  Global_vbDatabaseCompare, BP_GET},
-    {DISPID_GLOBAL_VBGENERALDATE,      Global_vbGeneralDate, BP_GET},
-    {DISPID_GLOBAL_VBLONGDATE,         Global_vbLongDate, BP_GET},
-    {DISPID_GLOBAL_VBSHORTDATE,        Global_vbShortDate, BP_GET},
-    {DISPID_GLOBAL_VBLONGTIME,         Global_vbLongTime, BP_GET},
-    {DISPID_GLOBAL_VBSHORTTIME,        Global_vbShortTime, BP_GET},
-    {DISPID_GLOBAL_VBOBJECTERROR,      Global_vbObjectError, BP_GET},
+    {DISPID_GLOBAL_VBUSEDEFAULT,       NULL, BP_GET, -2},
+    {DISPID_GLOBAL_VBBINARYCOMPARE,    NULL, BP_GET, 0},
+    {DISPID_GLOBAL_VBTEXTCOMPARE,      NULL, BP_GET, 1},
+    {DISPID_GLOBAL_VBDATABASECOMPARE,  NULL, BP_GET, 2},
+    {DISPID_GLOBAL_VBGENERALDATE,      NULL, BP_GET, 0},
+    {DISPID_GLOBAL_VBLONGDATE,         NULL, BP_GET, 1},
+    {DISPID_GLOBAL_VBSHORTDATE,        NULL, BP_GET, 2},
+    {DISPID_GLOBAL_VBLONGTIME,         NULL, BP_GET, 3},
+    {DISPID_GLOBAL_VBSHORTTIME,        NULL, BP_GET, 4},
+    {DISPID_GLOBAL_VBOBJECTERROR,      NULL, BP_GET, 0x80040000},
     {DISPID_GLOBAL_VBBLACK,            Global_vbBlack, BP_GET},
     {DISPID_GLOBAL_VBBLUE,             Global_vbBlue, BP_GET},
     {DISPID_GLOBAL_VBCYAN,             Global_vbCyan, BP_GET},
diff --git a/dlls/vbscript/tests/api.vbs b/dlls/vbscript/tests/api.vbs
index 6472b95..ee68e9e 100644
--- a/dlls/vbscript/tests/api.vbs
+++ b/dlls/vbscript/tests/api.vbs
@@ -85,6 +85,16 @@ TestConstantI4 "vbMsgBoxHelpButton", vbMsgBoxHelpButton, 16384
 TestConstantI4 "vbMsgBoxSetForeground", vbMsgBoxSetForeground, 65536
 TestConstantI4 "vbMsgBoxRight", vbMsgBoxRight, 524288
 TestConstantI4 "vbMsgBoxRtlReading", vbMsgBoxRtlReading, 1048576
+TestConstant "vbUseDefault", vbUseDefault, -2
+TestConstant "vbBinaryCompare", vbBinaryCompare, 0
+TestConstant "vbTextCompare", vbTextCompare, 1
+TestConstant "vbDatabaseCompare", vbDatabaseCompare, 2
+TestConstant "vbGeneralDate", vbGeneralDate, 0
+TestConstant "vbLongDate", vbLongDate, 1
+TestConstant "vbShortDate", vbShortDate, 2
+TestConstant "vbLongTime", vbLongTime, 3
+TestConstant "vbShortTime", vbShortTime, 4
+TestConstantI4 "vbObjectError", vbObjectError, &h80040000&
 
 Sub TestCStr(arg, exval)
     dim x
diff --git a/dlls/vbscript/vbdisp.c b/dlls/vbscript/vbdisp.c
index 843d5c8..5a23c71 100644
--- a/dlls/vbscript/vbdisp.c
+++ b/dlls/vbscript/vbdisp.c
@@ -151,7 +151,7 @@ static HRESULT invoke_builtin(vbdisp_t *This, const builtin_prop_t *prop, WORD f
     case DISPATCH_PROPERTYGET|DISPATCH_METHOD:
         if(!prop->proc && prop->flags == BP_GET) {
             int val = prop->min_args;
-            if(val < 0x4000) {
+            if(val < 0x4000 && (INT16)val == val) {
                 V_VT(res) = VT_I2;
                 V_I2(res) = val;
             }else {




More information about the wine-cvs mailing list