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.