On Wed, Jul 27, 2016 at 11:07 PM, <wine-devel-request@winehq.org> wrote:
---------- Forwarded message ----------
From:������Nikolay Sivov <bunglehead@gmail.com>
To:������wine-devel@winehq.org
Cc:������
Date:������Wed, 27 Jul 2016 17:39:26 +0300
Subject:������Re: [PATCH 1/6] amstream: Fix AMAudioData::QueryInterface.
On 27.07.2016 15:51, Anton Baskanov wrote:
> Signed-off-by: Anton Baskanov <baskanov@gmail.com>
> ---
>������ dlls/amstream/audiodata.c������ ������ ������ ������|������ 1 -
>������ dlls/amstream/tests/Makefile.in |������ 3 +-
>������ dlls/amstream/tests/audiodata.c | 67 +++++++++++++++++++++++++++++++++++++++++
>������ 3 files changed, 69 insertions(+), 2 deletions(-)
>������ create mode 100755 dlls/amstream/tests/audiodata.c

Hi, Anton.

Please keep tests in existing amstream.c file.

+
> +static void test_query_interface(void)
> +{
> +������ ������ IUnknown *unknown = create_audio_data();
> +������ ������ IMemoryData *memory_data = NULL;
> +������ ������ IAudioData *audio_data = NULL;
> +
> +������ ������ HRESULT result = S_OK;

result initialization is not needed;

> +
> +������ ������ result = IUnknown_QueryInterface(unknown, &IID_IMemoryData, (void **)&memory_data);
> +������ ������ ok(E_NOINTERFACE == result, "got 0x%08x\n", result);
> +������ ������ if (S_OK == result)
> +������ ������ {
> +������ ������ ������ ������ IMemoryData_Release(memory_data);
> +������ ������ }

If it always fails, there's no reason add conditional Release.

> +
> +������ ������ result = IUnknown_QueryInterface(unknown, &IID_IAudioData, (void **)&audio_data);
> +������ ������ ok(S_OK == result, "got 0x%08x\n", result);
> +������ ������ if (S_OK == result)
> +������ ������ {
> +������ ������ ������ ������ IAudioData_Release(audio_data);
> +������ ������ }
> +
> +������ ������ IUnknown_Release(unknown);
> +}

Could you check if you can query IMemoryData from IAudioData? It seems
really weird if parent interface is not supported at all.
������
Hi, Nikolay.

Thanks for the review!

I've checked QueryInterface from IAudioData, and it also fails with IID_IMemoryData.

I've fixed the issues and sent the updated patches.