Andrew Nguyen <[email protected]> writes:

> @@ -221,9 +221,17 @@ static HRESULT WINAPI 
> IDxDiagContainerImpl_GetProp(PDXDIAGCONTAINER iface, LPCWS
>  
>    p = This->properties;
>    while (NULL != p) {
> -    if (0 == lstrcmpW(p->vName, pwszPropName)) {      
> -      VariantCopy(pvarProp, &p->v);
> -      return S_OK;
> +    if (0 == lstrcmpW(p->vName, pwszPropName)) {
> +      HRESULT hr = VariantClear(pvarProp);
> +      if (hr == DISP_E_ARRAYISLOCKED)
> +      {
> +        while (SafeArrayUnlock(V_ARRAY(pvarProp)) == S_OK);
> +        VariantClear(pvarProp);

This looks suspicious. Do you have evidence that the array should be
forcibly unlocked and destroyed?

-- 
Alexandre Julliard
[email protected]


Reply via email to