Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/evr/presenter.c | 11 +++++++++++ dlls/evr/tests/evr.c | 4 +--- 2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/dlls/evr/presenter.c b/dlls/evr/presenter.c index 04653ff67ad..8b5a7dd46ab 100644 --- a/dlls/evr/presenter.c +++ b/dlls/evr/presenter.c @@ -618,6 +618,17 @@ static HRESULT WINAPI video_presenter_getservice_GetService(IMFGetService *iface if (IsEqualGUID(&MR_VIDEO_ACCELERATION_SERVICE, service)) return IDirect3DDeviceManager9_QueryInterface(presenter->device_manager, riid, obj);
+ if (IsEqualGUID(&MR_VIDEO_RENDER_SERVICE, service)) + { + if (IsEqualIID(riid, &IID_IMFVideoDisplayControl)) + return IMFVideoPresenter_QueryInterface(&presenter->IMFVideoPresenter_iface, riid, obj); + else + { + FIXME("Unsupported interface %s.\n", debugstr_guid(riid)); + return E_NOTIMPL; + } + } + FIXME("Unimplemented service %s.\n", debugstr_guid(service));
return E_NOTIMPL; diff --git a/dlls/evr/tests/evr.c b/dlls/evr/tests/evr.c index c2e17595559..9665e2683dd 100644 --- a/dlls/evr/tests/evr.c +++ b/dlls/evr/tests/evr.c @@ -1015,10 +1015,8 @@ static void test_default_presenter(void) ok(hr == S_OK, "Unexpected hr %#x.\n", hr);
hr = IMFGetService_GetService(gs, &MR_VIDEO_RENDER_SERVICE, &IID_IMFVideoDisplayControl, (void **)&display_control); -todo_wine ok(hr == S_OK, "Unexpected hr %#x.\n", hr); - if (SUCCEEDED(hr)) - IMFVideoDisplayControl_Release(display_control); + IMFVideoDisplayControl_Release(display_control);
hr = IMFGetService_GetService(gs, &MR_VIDEO_ACCELERATION_SERVICE, &IID_IDirect3DDeviceManager9, (void **)&dm); ok(hr == S_OK, "Unexpected hr %#x.\n", hr);