evr/presenter: Expose IMFVideoDisplayControl as a service.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Nikolay Sivov 2020-10-02 14:01:10 +03:00 committed by Alexandre Julliard
parent 164c3b7f2b
commit 69e777c804
2 changed files with 12 additions and 3 deletions

View File

@ -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;

View File

@ -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);