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]
