[PATCH 1/6] amstream: Fix AMAudioData::QueryInterface.

Nikolay Sivov bunglehead at gmail.com
Wed Jul 27 09:39:26 CDT 2016


On 27.07.2016 15:51, Anton Baskanov wrote:
> Signed-off-by: Anton Baskanov <baskanov at 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.






More information about the wine-devel mailing list