<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Jul 27, 2016 at 11:07 PM,  <span dir="ltr"><<a href="mailto:wine-devel-request@winehq.org" target="_blank">wine-devel-request@winehq.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">---------- Forwarded message ----------<br>From: Nikolay Sivov <<a href="mailto:bunglehead@gmail.com">bunglehead@gmail.com</a>><br>To: <a href="mailto:wine-devel@winehq.org">wine-devel@winehq.org</a><br>Cc: <br>Date: Wed, 27 Jul 2016 17:39:26 +0300<br>Subject: Re: [PATCH 1/6] amstream: Fix AMAudioData::QueryInterface.<br>On 27.07.2016 15:51, Anton Baskanov wrote:<br>
> Signed-off-by: Anton Baskanov <<a href="mailto:baskanov@gmail.com">baskanov@gmail.com</a>><br>
> ---<br>
>  dlls/amstream/audiodata.c       |  1 -<br>
>  dlls/amstream/tests/Makefile.in |  3 +-<br>
>  dlls/amstream/tests/audiodata.c | 67 +++++++++++++++++++++++++++++++++++++++++<br>
>  3 files changed, 69 insertions(+), 2 deletions(-)<br>
>  create mode 100755 dlls/amstream/tests/audiodata.c<br>
<br>
Hi, Anton.<br>
<br>
Please keep tests in existing amstream.c file.<br>
<br>
+<br>
> +static void test_query_interface(void)<br>
> +{<br>
> +    IUnknown *unknown = create_audio_data();<br>
> +    IMemoryData *memory_data = NULL;<br>
> +    IAudioData *audio_data = NULL;<br>
> +<br>
> +    HRESULT result = S_OK;<br>
<br>
result initialization is not needed;<br>
<br>
> +<br>
> +    result = IUnknown_QueryInterface(unknown, &IID_IMemoryData, (void **)&memory_data);<br>
> +    ok(E_NOINTERFACE == result, "got 0x%08x\n", result);<br>
> +    if (S_OK == result)<br>
> +    {<br>
> +        IMemoryData_Release(memory_data);<br>
> +    }<br>
<br>
If it always fails, there's no reason add conditional Release.<br>
<br>
> +<br>
> +    result = IUnknown_QueryInterface(unknown, &IID_IAudioData, (void **)&audio_data);<br>
> +    ok(S_OK == result, "got 0x%08x\n", result);<br>
> +    if (S_OK == result)<br>
> +    {<br>
> +        IAudioData_Release(audio_data);<br>
> +    }<br>
> +<br>
> +    IUnknown_Release(unknown);<br>
> +}<br>
<br>
Could you check if you can query IMemoryData from IAudioData? It seems<br>
really weird if parent interface is not supported at all.<br></blockquote><div> </div><div>Hi, Nikolay.</div><div><br></div><div>Thanks for the review!</div><div><br></div><div>I've checked QueryInterface from IAudioData, and it also fails with IID_IMemoryData.</div><div><br></div><div>I've fixed the issues and sent the updated patches.</div></div></div></div>