Module: wine Branch: master Commit: 315cf3b60fbea22092c399cdcf58654f2545cf88 URL: https://source.winehq.org/git/wine.git/?a=commit;h=315cf3b60fbea22092c399cdc...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Nov 17 13:41:36 2020 +0300
evr/mixer: Improve GetService() handling of unsupported interfaces/services.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/evr/mixer.c | 4 +++- dlls/evr/tests/evr.c | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-)
diff --git a/dlls/evr/mixer.c b/dlls/evr/mixer.c index ddf34d05f44..a7ce3949bec 100644 --- a/dlls/evr/mixer.c +++ b/dlls/evr/mixer.c @@ -1650,11 +1650,13 @@ static HRESULT WINAPI video_mixer_getservice_GetService(IMFGetService *iface, RE { return IMFGetService_QueryInterface(iface, riid, obj); } + + return E_NOINTERFACE; }
FIXME("Unsupported service %s, riid %s.\n", debugstr_guid(service), debugstr_guid(riid));
- return E_NOTIMPL; + return MF_E_UNSUPPORTED_SERVICE; }
static const IMFGetServiceVtbl video_mixer_getservice_vtbl = diff --git a/dlls/evr/tests/evr.c b/dlls/evr/tests/evr.c index c83ce0374eb..60d74d1a224 100644 --- a/dlls/evr/tests/evr.c +++ b/dlls/evr/tests/evr.c @@ -489,6 +489,10 @@ static void test_default_mixer(void) check_service_interface(transform, &MR_VIDEO_MIXER_SERVICE, &IID_IMFVideoProcessor, TRUE); check_service_interface(transform, &MR_VIDEO_MIXER_SERVICE, &IID_IMFVideoMixerControl, TRUE); check_service_interface(transform, &MR_VIDEO_MIXER_SERVICE, &IID_IMFVideoPositionMapper, TRUE); + check_service_interface(transform, &MR_VIDEO_MIXER_SERVICE, &IID_IMFTransform, FALSE); + + hr = MFGetService((IUnknown *)transform, &MR_VIDEO_RENDER_SERVICE, &IID_IUnknown, (void **)&unk); + ok(hr == MF_E_UNSUPPORTED_SERVICE, "Unexpected hr %#x.\n", hr);
if (SUCCEEDED(MFGetService((IUnknown *)transform, &MR_VIDEO_MIXER_SERVICE, &IID_IMFVideoMixerControl2, (void **)&mixer_control2))) {