Module: wine Branch: master Commit: 97f2912965fae9aa33f10308ef5dc551c9f086b1 URL: http://source.winehq.org/git/wine.git/?a=commit;h=97f2912965fae9aa33f10308ef...
Author: Jacek Caban jacek@codeweavers.com Date: Fri Feb 15 10:29:42 2013 +0100
vbscript: Added support for a few more constants.
---
dlls/vbscript/global.c | 32 ++++---------------------------- dlls/vbscript/tests/api.vbs | 9 +++++++++ dlls/vbscript/vbdisp.c | 11 ++++++++--- 3 files changed, 21 insertions(+), 31 deletions(-)
diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c index 39b75ab..1a3dae7 100644 --- a/dlls/vbscript/global.c +++ b/dlls/vbscript/global.c @@ -1771,30 +1771,6 @@ static HRESULT Global_vbVerticalTab(vbdisp_t *This, VARIANT *arg, unsigned args_ return E_NOTIMPL; }
-static HRESULT Global_vbMsgBoxHelpButton(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) -{ - FIXME("\n"); - return E_NOTIMPL; -} - -static HRESULT Global_vbMsgBoxSetForeground(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) -{ - FIXME("\n"); - return E_NOTIMPL; -} - -static HRESULT Global_vbMsgBoxRight(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) -{ - FIXME("\n"); - return E_NOTIMPL; -} - -static HRESULT Global_vbMsgBoxRtlReading(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res) -{ - FIXME("\n"); - return E_NOTIMPL; -} - static const builtin_prop_t global_props[] = { {DISPID_GLOBAL_VBUSESYSTEM, NULL, BP_GET, 0}, {DISPID_GLOBAL_USESYSTEMDAYOFWEEK, NULL, BP_GET, 0}, @@ -1984,10 +1960,10 @@ static const builtin_prop_t global_props[] = { {DISPID_GLOBAL_EXECUTE, Global_Execute, 0, 1}, {DISPID_GLOBAL_EXECUTEGLOBAL, Global_ExecuteGlobal, 0, 1}, {DISPID_GLOBAL_GETREF, Global_GetRef, 0, 1}, - {DISPID_GLOBAL_VBMSGBOXHELPBUTTON, Global_vbMsgBoxHelpButton, BP_GET}, - {DISPID_GLOBAL_VBMSGBOXSETFOREGROUND, Global_vbMsgBoxSetForeground, BP_GET}, - {DISPID_GLOBAL_VBMSGBOXRIGHT, Global_vbMsgBoxRight, BP_GET}, - {DISPID_GLOBAL_VBMSGBOXRTLREADING, Global_vbMsgBoxRtlReading, BP_GET} + {DISPID_GLOBAL_VBMSGBOXHELPBUTTON, NULL, BP_GET, MB_HELP}, + {DISPID_GLOBAL_VBMSGBOXSETFOREGROUND, NULL, BP_GET, MB_SETFOREGROUND}, + {DISPID_GLOBAL_VBMSGBOXRIGHT, NULL, BP_GET, MB_RIGHT}, + {DISPID_GLOBAL_VBMSGBOXRTLREADING, NULL, BP_GET, MB_RTLREADING} };
HRESULT init_global(script_ctx_t *ctx) diff --git a/dlls/vbscript/tests/api.vbs b/dlls/vbscript/tests/api.vbs index 966b256..6472b95 100644 --- a/dlls/vbscript/tests/api.vbs +++ b/dlls/vbscript/tests/api.vbs @@ -43,6 +43,11 @@ Sub TestConstant(name, val, exval) Call ok(getVT(val) = "VT_I2*", "getVT(" & name & ") = " & getVT(val)) End Sub
+Sub TestConstantI4(name, val, exval) + Call ok(val = exval, name & " = " & val & " expected " & exval) + Call ok(getVT(val) = "VT_I4*", "getVT(" & name & ") = " & getVT(val)) +End Sub + TestConstant "vbEmpty", vbEmpty, 0 TestConstant "vbNull", vbNull, 1 TestConstant "vbLong", vbLong, 3 @@ -76,6 +81,10 @@ TestConstant "vbFirstFourDays", vbFirstFourDays, 2 TestConstant "vbFirstFullWeek", vbFirstFullWeek, 3 TestConstant "vbTrue", vbTrue, -1 TestConstant "vbFalse", vbFalse, 0 +TestConstantI4 "vbMsgBoxHelpButton", vbMsgBoxHelpButton, 16384 +TestConstantI4 "vbMsgBoxSetForeground", vbMsgBoxSetForeground, 65536 +TestConstantI4 "vbMsgBoxRight", vbMsgBoxRight, 524288 +TestConstantI4 "vbMsgBoxRtlReading", vbMsgBoxRtlReading, 1048576
Sub TestCStr(arg, exval) dim x diff --git a/dlls/vbscript/vbdisp.c b/dlls/vbscript/vbdisp.c index b37caf6..843d5c8 100644 --- a/dlls/vbscript/vbdisp.c +++ b/dlls/vbscript/vbdisp.c @@ -150,9 +150,14 @@ static HRESULT invoke_builtin(vbdisp_t *This, const builtin_prop_t *prop, WORD f break; case DISPATCH_PROPERTYGET|DISPATCH_METHOD: if(!prop->proc && prop->flags == BP_GET) { - assert((INT16)prop->min_args == prop->min_args); - V_VT(res) = VT_I2; - V_I2(res) = prop->min_args; + int val = prop->min_args; + if(val < 0x4000) { + V_VT(res) = VT_I2; + V_I2(res) = val; + }else { + V_VT(res) = VT_I4; + V_I4(res) = val; + } return S_OK; } break;