On 4 April 2012 21:57, Christian Costa <titan.costa(a)gmail.com> wrote:
> +static HRESULT WINAPI IAudioMediaStreamImpl_QueryInterface(IAudioMediaStream *iface,
> + REFIID riid, void **ppv)
> +{
> + IAudioMediaStreamImpl *This = impl_from_IAudioMediaStream(iface);
> +
> + TRACE("(%p/%p)->(%s,%p)\n", iface, This, debugstr_guid(riid), ppv);
> +
> + if (IsEqualGUID(riid, &IID_IUnknown) ||
> + IsEqualGUID(riid, &IID_IMediaStream) ||
> + IsEqualGUID(riid, &IID_IAudioMediaStream))
> + {
> + IUnknown_AddRef(iface);
> + *ppv = This;
That's wrong.
> + return S_OK;
> + }
> +
> + ERR("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppv);
> + return E_NOINTERFACE;
> +}
QueryInterface() should generally set "*ppv" to NULL on failure.