[PATCH v3 2/2] jscript_test: more tests for Enumerator()

Jacek Caban jacek at codeweavers.com
Thu May 9 08:30:50 CDT 2019


Hi Andreas,

On 5/6/19 10:21 PM, Andreas Maier wrote:
> +        case DISPID_GLOBAL_TESTENUMOBJ:
> +        {
> +            HRESULT hres;
> +
> +            if (wFlags == (INVOKE_PROPERTYPUT|INVOKE_PROPERTYPUTREF))
> +            {
> +                ok(wFlags == (INVOKE_PROPERTYPUT|INVOKE_PROPERTYPUTREF), "wFlags = %x\n", wFlags);
> +                ok(pdp != NULL, "pdp == NULL\n");
> +                ok(pdp->rgvarg != NULL, "rgvarg == NULL\n");
> +                ok(pdp->rgdispidNamedArgs != NULL, "rgdispidNamedArgs == NULL\n");
> +                ok(pdp->cArgs == 1, "cArgs = %d\n", pdp->cArgs);
> +                ok(pdp->cNamedArgs == 1, "cNamedArgs = %d\n", pdp->cNamedArgs);
> +                ok(!pvarRes, "pvarRes != NULL\n");
> +                if ((pdp->rgvarg != NULL) &&
> +                    (pdp->cArgs == 1) &&
> +                    (pdp->cNamedArgs == 1) &&
> +                    (pdp->rgdispidNamedArgs[0] == DISPID_PROPERTYPUT))
> +                {
> +                    if (!testEnumObjValid)
> +                    {
> +                        memset(&testEnumObj, 0, sizeof(VARIANT));
> +                        testEnumObjValid = TRUE;
> +                        VariantInit(&testEnumObj);
> +                    }
> +                    else
> +                        VariantClear(&testEnumObj);
> +                    hres = VariantCopy(&testEnumObj, pdp->rgvarg);
> +                    ok(SUCCEEDED(hres), "VariantCopy failed!\n");
> +                }
> +            }
> +            else
> +            {
> +                ok(wFlags == INVOKE_PROPERTYGET, "wFlags = %x\n", wFlags);
> +                ok(pdp != NULL, "pdp == NULL\n");
> +                ok(!pdp->rgvarg, "rgvarg != NULL\n");
> +                ok(!pdp->rgdispidNamedArgs, "rgdispidNamedArgs != NULL\n");
> +                ok(!pdp->cArgs, "cArgs = %d\n", pdp->cArgs);
> +                ok(!pdp->cNamedArgs, "cNamedArgs = %d\n", pdp->cNamedArgs);
> +                ok(pvarRes != NULL, "pvarRes == NULL\n");
> +
> +                if ((pvarRes != NULL) && (testEnumObjValid))
> +                {
> +                    hres = VariantCopy(pvarRes, &testEnumObj);
> +                    ok(SUCCEEDED(hres), "VariantCopy failed!\n");
> +                }
> +            }
> +            return S_OK;
> +        }


Why do you need this? Note that if testNumObj would be not found in the 
host object, jscript will handle it for you.


Thanks,

Jacek




More information about the wine-devel mailing list