Rémi Bernon (@rbernon) commented about dlls/windows.media.playback.backgroundmediaplayer/main.c:
+static HRESULT get_media_player( IMediaPlayer **media_player ) +{
- static const WCHAR *media_player_name = L"Windows.Media.Playback.MediaPlayer";
- IInspectable *inspectable = NULL;
- HSTRING str = NULL;
- HRESULT hr = WindowsCreateString( media_player_name, wcslen( media_player_name ), &str );
- if (SUCCEEDED(hr)) hr = RoActivateInstance( str, &inspectable );
- if (SUCCEEDED(hr))
- {
hr = IInspectable_QueryInterface( inspectable, &IID_IMediaPlayer, (void **)media_player );
IInspectable_Release( inspectable );
- }
- WindowsDeleteString( str );
- return hr;
```suggestion:-10+0 HRESULT hr;
if (FAILED(hr = WindowsCreateString( media_player_name, wcslen( media_player_name ), &str ))) return hr; if (SUCCEEDED(hr = RoActivateInstance( str, &inspectable ))) { hr = IInspectable_QueryInterface( inspectable, &IID_IMediaPlayer, (void **)media_player ); IInspectable_Release( inspectable ); }
WindowsDeleteString( str ); return hr; ```
Otherwise you'd call WindowsDeleteString even if WindowsCreateString failed (no big deal but still).