<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-17 17:40 GMT+08:00 Jacek Caban <span dir="ltr"><<a href="mailto:jacek@codeweavers.com" target="_blank">jacek@codeweavers.com</a>></span>:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">On 06/17/14 07:59, Shuai Meng wrote:<br>
> diff --git a/dlls/vbscript/global.c b/dlls/vbscript/global.c<br>
> index 5357df8..c2b2edd 100644<br>
> --- a/dlls/vbscript/global.c<br>
> +++ b/dlls/vbscript/global.c<br>
> @@ -602,8 +602,52 @@ static HRESULT Global_Oct(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIA<br>
><br>
>  static HRESULT Global_VarType(vbdisp_t *This, VARIANT *arg, unsigned args_cnt, VARIANT *res)<br>
>  {<br>
> -    FIXME("\n");<br>
> -    return E_NOTIMPL;<br>
> +    TRACE("(%s)\n", debugstr_variant(arg));<br>
> +<br>
> +    assert(args_cnt == 1);<br>
> +<br>
> +    if(res) {<br>
> +        V_VT(res) = VT_I2;<br>
> +        switch(V_VT(arg)) {<br>
> +            case VT_EMPTY:<br>
> +                V_I2(res) = VT_EMPTY;<br>
> +                break;<br>
> +            case VT_NULL:<br>
> +                V_I2(res) = VT_NULL;<br>
> +                break;<br>
> +            case VT_I2:<br>
> +                V_I2(res) = VT_I2;<br>
> +                break;<br>
(...)<br>
<br>
This all could be just:<br>
<br>
V_I2(res) = V_VT(arg);<br>
<br>
To handle unsupported types, you could use something like:<br>
<br>
if(V_VT(arg) & ~VT_TYPEMASK) {<br>
    FIXME("...");<br>
    return E_NOTIMPL;<br>
}<br>
<br></blockquote><div>I think over these codes again,  ~VT_TYPEMASK is equal to 0, V_VT(arg) & ~VT_TYPEMASK will always be equal to 0, and then the codes belong to this if branch will never be executed, so why we write them?</div>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
if(res) {<br>
    V_VT(res) = VT_I2;<br>
    V_I2(res) = V_VT(arg);<br>
}<br>
<span class=""><font color="#888888"><br>
Jacek<br>
</font></span></blockquote></div><br></div></div>