Hi James,
That looks kind of wrong, both the before and after...
Interfaces should be released, not free'd...
Secondly, freeing the interface if the Query works is almost definitely
wrong, because ppv will likely point to the same memory as pstream.
Mike
James Hawkins wrote:
> hr = IAVIStream_QueryInterface((IAVIStream*)pstream, riid, ppv);
> - if (FAILED(hr))
> - LocalFree((HLOCAL)pstream);
> +
> + LocalFree((HLOCAL)pstream);
>
> return hr;
> }