From: Mohamad Al-Jaf mohamadaljaf@gmail.com
--- dlls/windows.media.mediacontrol/main.c | 17 +++++++++++++---- .../tests/mediacontrol.c | 7 +++++++ 2 files changed, 20 insertions(+), 4 deletions(-)
diff --git a/dlls/windows.media.mediacontrol/main.c b/dlls/windows.media.mediacontrol/main.c index 8015fbf7a1a..ee78444998b 100644 --- a/dlls/windows.media.mediacontrol/main.c +++ b/dlls/windows.media.mediacontrol/main.c @@ -514,6 +514,7 @@ struct media_control HWND window; MediaPlaybackStatus media_playback_status; boolean is_play_enabled; + boolean is_stop_enabled; boolean is_pause_enabled; boolean is_previous_enabled; boolean is_next_enabled; @@ -668,14 +669,22 @@ static HRESULT WINAPI media_control_put_IsPlayEnabled( ISystemMediaTransportCont
static HRESULT WINAPI media_control_get_IsStopEnabled( ISystemMediaTransportControls *iface, boolean *value ) { - FIXME( "iface %p, value %p stub!\n", iface, value ); - return E_NOTIMPL; + struct media_control *impl = impl_from_ISystemMediaTransportControls( iface ); + + TRACE( "iface %p, value %p\n", iface, value ); + + *value = impl->is_stop_enabled; + return S_OK; }
static HRESULT WINAPI media_control_put_IsStopEnabled( ISystemMediaTransportControls *iface, boolean value ) { - FIXME( "iface %p, value %d stub!\n", iface, value ); - return E_NOTIMPL; + struct media_control *impl = impl_from_ISystemMediaTransportControls( iface ); + + TRACE( "iface %p, value %d\n", iface, value ); + + impl->is_stop_enabled = value; + return S_OK; }
static HRESULT WINAPI media_control_get_IsPauseEnabled( ISystemMediaTransportControls *iface, boolean *value ) diff --git a/dlls/windows.media.mediacontrol/tests/mediacontrol.c b/dlls/windows.media.mediacontrol/tests/mediacontrol.c index 4adab552d9f..4d84b5a10e1 100644 --- a/dlls/windows.media.mediacontrol/tests/mediacontrol.c +++ b/dlls/windows.media.mediacontrol/tests/mediacontrol.c @@ -118,6 +118,8 @@ static void test_MediaControlStatics(void)
hr = ISystemMediaTransportControls_put_IsPlayEnabled( media_control_statics, FALSE ); ok( hr == S_OK || broken(hr == S_FALSE) /* Win10 1507,1607 */, "got hr %#lx.\n", hr ); + hr = ISystemMediaTransportControls_put_IsStopEnabled( media_control_statics, FALSE ); + ok( hr == S_OK || broken(hr == S_FALSE) /* Win10 1507,1607 */, "got hr %#lx.\n", hr ); hr = ISystemMediaTransportControls_put_IsPauseEnabled( media_control_statics, FALSE ); ok( hr == S_OK || broken(hr == S_FALSE) /* Win10 1507,1607 */, "got hr %#lx.\n", hr ); hr = ISystemMediaTransportControls_put_IsPreviousEnabled( media_control_statics, FALSE ); @@ -132,6 +134,11 @@ static void test_MediaControlStatics(void) ok( hr == S_OK, "got hr %#lx.\n", hr ); ok( value == FALSE, "got value %d.\n", value );
+ value = TRUE; + hr = ISystemMediaTransportControls_get_IsStopEnabled( media_control_statics, &value ); + ok( hr == S_OK, "got hr %#lx.\n", hr ); + ok( value == FALSE, "got value %d.\n", value ); + value = TRUE; hr = ISystemMediaTransportControls_get_IsPauseEnabled( media_control_statics, &value ); ok( hr == S_OK, "got hr %#lx.\n", hr );