// WARNING: Please don't edit this file. It was generated by C++/WinRT v2.0.211028.7

#pragma once
#ifndef WINRT_Windows_Media_Playback_0_H
#define WINRT_Windows_Media_Playback_0_H
WINRT_EXPORT namespace winrt::Windows::Devices::Enumeration
{
    struct DeviceInformation;
}
WINRT_EXPORT namespace winrt::Windows::Foundation
{
    struct Deferral;
    template <typename T> struct __declspec(empty_bases) EventHandler;
    struct EventRegistrationToken;
    struct HResult;
    template <typename T> struct __declspec(empty_bases) IReference;
    struct Rect;
    struct Size;
    template <typename TSender, typename TResult> struct __declspec(empty_bases) TypedEventHandler;
    struct Uri;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Collections
{
    template <typename T> struct __declspec(empty_bases) IIterable;
    template <typename T> struct __declspec(empty_bases) IObservableVector;
    struct IPropertySet;
    struct IVectorChangedEventArgs;
    template <typename T> struct __declspec(empty_bases) IVectorView;
    struct ValueSet;
}
WINRT_EXPORT namespace winrt::Windows::Foundation::Numerics
{
}
WINRT_EXPORT namespace winrt::Windows::Graphics::DirectX::Direct3D11
{
    struct IDirect3DSurface;
}
WINRT_EXPORT namespace winrt::Windows::Media
{
    enum class MediaPlaybackAutoRepeatMode : int32_t;
    enum class MediaPlaybackType : int32_t;
    struct MediaTimeRange;
    struct MediaTimelineController;
    struct MusicDisplayProperties;
    struct SystemMediaTransportControls;
    struct VideoDisplayProperties;
}
WINRT_EXPORT namespace winrt::Windows::Media::Audio
{
    struct AudioStateMonitor;
}
WINRT_EXPORT namespace winrt::Windows::Media::Casting
{
    struct CastingSource;
}
WINRT_EXPORT namespace winrt::Windows::Media::Core
{
    struct AudioTrack;
    struct IMediaSource;
    struct MediaSource;
    struct TimedMetadataTrack;
    struct VideoTrack;
}
WINRT_EXPORT namespace winrt::Windows::Media::MediaProperties
{
    enum class MediaRotation : int32_t;
    enum class SphericalVideoFrameFormat : int32_t;
    enum class StereoscopicVideoPackingMode : int32_t;
}
WINRT_EXPORT namespace winrt::Windows::Media::Protection
{
    struct MediaProtectionManager;
}
WINRT_EXPORT namespace winrt::Windows::Storage
{
    struct IStorageFile;
}
WINRT_EXPORT namespace winrt::Windows::Storage::Streams
{
    struct IRandomAccessStream;
    struct RandomAccessStreamReference;
}
WINRT_EXPORT namespace winrt::Windows::UI::Composition
{
    struct Compositor;
    struct ICompositionSurface;
}
WINRT_EXPORT namespace winrt::Windows::Media::Playback
{
    enum class AutoLoadedDisplayPropertyKind : int32_t
    {
        None = 0,
        MusicOrVideo = 1,
        Music = 2,
        Video = 3,
    };
    enum class FailedMediaStreamKind : int32_t
    {
        Unknown = 0,
        Audio = 1,
        Video = 2,
    };
    enum class MediaBreakInsertionMethod : int32_t
    {
        Interrupt = 0,
        Replace = 1,
    };
    enum class MediaCommandEnablingRule : int32_t
    {
        Auto = 0,
        Always = 1,
        Never = 2,
    };
    enum class MediaPlaybackItemChangedReason : int32_t
    {
        InitialItem = 0,
        EndOfStream = 1,
        Error = 2,
        AppRequested = 3,
    };
    enum class MediaPlaybackItemErrorCode : int32_t
    {
        None = 0,
        Aborted = 1,
        NetworkError = 2,
        DecodeError = 3,
        SourceNotSupportedError = 4,
        EncryptionError = 5,
    };
    enum class MediaPlaybackSessionVideoConstrictionReason : int32_t
    {
        None = 0,
        VirtualMachine = 1,
        UnsupportedDisplayAdapter = 2,
        UnsignedDriver = 3,
        FrameServerEnabled = 4,
        OutputProtectionFailed = 5,
        Unknown = 6,
    };
    enum class MediaPlaybackState : int32_t
    {
        None = 0,
        Opening = 1,
        Buffering = 2,
        Playing = 3,
        Paused = 4,
    };
    enum class MediaPlayerAudioCategory : int32_t
    {
        Other = 0,
        Communications = 3,
        Alerts = 4,
        SoundEffects = 5,
        GameEffects = 6,
        GameMedia = 7,
        GameChat = 8,
        Speech = 9,
        Movie = 10,
        Media = 11,
    };
    enum class MediaPlayerAudioDeviceType : int32_t
    {
        Console = 0,
        Multimedia = 1,
        Communications = 2,
    };
    enum class MediaPlayerError : int32_t
    {
        Unknown = 0,
        Aborted = 1,
        NetworkError = 2,
        DecodingError = 3,
        SourceNotSupported = 4,
    };
    enum class MediaPlayerState : int32_t
    {
        Closed = 0,
        Opening = 1,
        Buffering = 2,
        Playing = 3,
        Paused = 4,
        Stopped = 5,
    };
    enum class SphericalVideoProjectionMode : int32_t
    {
        Spherical = 0,
        Flat = 1,
    };
    enum class StereoscopicVideoRenderMode : int32_t
    {
        Mono = 0,
        Stereo = 1,
    };
    enum class TimedMetadataTrackPresentationMode : int32_t
    {
        Disabled = 0,
        Hidden = 1,
        ApplicationPresented = 2,
        PlatformPresented = 3,
    };
    struct IBackgroundMediaPlayerStatics;
    struct ICurrentMediaPlaybackItemChangedEventArgs;
    struct ICurrentMediaPlaybackItemChangedEventArgs2;
    struct IMediaBreak;
    struct IMediaBreakEndedEventArgs;
    struct IMediaBreakFactory;
    struct IMediaBreakManager;
    struct IMediaBreakSchedule;
    struct IMediaBreakSeekedOverEventArgs;
    struct IMediaBreakSkippedEventArgs;
    struct IMediaBreakStartedEventArgs;
    struct IMediaEnginePlaybackSource;
    struct IMediaItemDisplayProperties;
    struct IMediaPlaybackCommandManager;
    struct IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs;
    struct IMediaPlaybackCommandManagerCommandBehavior;
    struct IMediaPlaybackCommandManagerFastForwardReceivedEventArgs;
    struct IMediaPlaybackCommandManagerNextReceivedEventArgs;
    struct IMediaPlaybackCommandManagerPauseReceivedEventArgs;
    struct IMediaPlaybackCommandManagerPlayReceivedEventArgs;
    struct IMediaPlaybackCommandManagerPositionReceivedEventArgs;
    struct IMediaPlaybackCommandManagerPreviousReceivedEventArgs;
    struct IMediaPlaybackCommandManagerRateReceivedEventArgs;
    struct IMediaPlaybackCommandManagerRewindReceivedEventArgs;
    struct IMediaPlaybackCommandManagerShuffleReceivedEventArgs;
    struct IMediaPlaybackItem;
    struct IMediaPlaybackItem2;
    struct IMediaPlaybackItem3;
    struct IMediaPlaybackItemError;
    struct IMediaPlaybackItemFactory;
    struct IMediaPlaybackItemFactory2;
    struct IMediaPlaybackItemFailedEventArgs;
    struct IMediaPlaybackItemOpenedEventArgs;
    struct IMediaPlaybackItemStatics;
    struct IMediaPlaybackList;
    struct IMediaPlaybackList2;
    struct IMediaPlaybackList3;
    struct IMediaPlaybackSession;
    struct IMediaPlaybackSession2;
    struct IMediaPlaybackSession3;
    struct IMediaPlaybackSessionBufferingStartedEventArgs;
    struct IMediaPlaybackSessionOutputDegradationPolicyState;
    struct IMediaPlaybackSource;
    struct IMediaPlaybackSphericalVideoProjection;
    struct IMediaPlaybackTimedMetadataTrackList;
    struct IMediaPlayer;
    struct IMediaPlayer2;
    struct IMediaPlayer3;
    struct IMediaPlayer4;
    struct IMediaPlayer5;
    struct IMediaPlayer6;
    struct IMediaPlayer7;
    struct IMediaPlayerDataReceivedEventArgs;
    struct IMediaPlayerEffects;
    struct IMediaPlayerEffects2;
    struct IMediaPlayerFailedEventArgs;
    struct IMediaPlayerRateChangedEventArgs;
    struct IMediaPlayerSource;
    struct IMediaPlayerSource2;
    struct IMediaPlayerSurface;
    struct IPlaybackMediaMarker;
    struct IPlaybackMediaMarkerFactory;
    struct IPlaybackMediaMarkerReachedEventArgs;
    struct IPlaybackMediaMarkerSequence;
    struct ITimedMetadataPresentationModeChangedEventArgs;
    struct BackgroundMediaPlayer;
    struct CurrentMediaPlaybackItemChangedEventArgs;
    struct MediaBreak;
    struct MediaBreakEndedEventArgs;
    struct MediaBreakManager;
    struct MediaBreakSchedule;
    struct MediaBreakSeekedOverEventArgs;
    struct MediaBreakSkippedEventArgs;
    struct MediaBreakStartedEventArgs;
    struct MediaItemDisplayProperties;
    struct MediaPlaybackAudioTrackList;
    struct MediaPlaybackCommandManager;
    struct MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs;
    struct MediaPlaybackCommandManagerCommandBehavior;
    struct MediaPlaybackCommandManagerFastForwardReceivedEventArgs;
    struct MediaPlaybackCommandManagerNextReceivedEventArgs;
    struct MediaPlaybackCommandManagerPauseReceivedEventArgs;
    struct MediaPlaybackCommandManagerPlayReceivedEventArgs;
    struct MediaPlaybackCommandManagerPositionReceivedEventArgs;
    struct MediaPlaybackCommandManagerPreviousReceivedEventArgs;
    struct MediaPlaybackCommandManagerRateReceivedEventArgs;
    struct MediaPlaybackCommandManagerRewindReceivedEventArgs;
    struct MediaPlaybackCommandManagerShuffleReceivedEventArgs;
    struct MediaPlaybackItem;
    struct MediaPlaybackItemError;
    struct MediaPlaybackItemFailedEventArgs;
    struct MediaPlaybackItemOpenedEventArgs;
    struct MediaPlaybackList;
    struct MediaPlaybackSession;
    struct MediaPlaybackSessionBufferingStartedEventArgs;
    struct MediaPlaybackSessionOutputDegradationPolicyState;
    struct MediaPlaybackSphericalVideoProjection;
    struct MediaPlaybackTimedMetadataTrackList;
    struct MediaPlaybackVideoTrackList;
    struct MediaPlayer;
    struct MediaPlayerDataReceivedEventArgs;
    struct MediaPlayerFailedEventArgs;
    struct MediaPlayerRateChangedEventArgs;
    struct MediaPlayerSurface;
    struct PlaybackMediaMarker;
    struct PlaybackMediaMarkerReachedEventArgs;
    struct PlaybackMediaMarkerSequence;
    struct TimedMetadataPresentationModeChangedEventArgs;
}
namespace winrt::impl
{
    template <> struct category<winrt::Windows::Media::Playback::IBackgroundMediaPlayerStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaBreak>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaBreakEndedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaBreakFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaBreakManager>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaBreakSchedule>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaBreakSeekedOverEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaBreakSkippedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaBreakStartedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaEnginePlaybackSource>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaItemDisplayProperties>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerCommandBehavior>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerFastForwardReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerNextReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPauseReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPlayReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPositionReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPreviousReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRateReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRewindReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerShuffleReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackItem>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackItem2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackItem3>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackItemError>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackItemFailedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackItemOpenedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackItemStatics>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackList>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackList2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackList3>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackSession>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackSession2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackSession3>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackSessionBufferingStartedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackSessionOutputDegradationPolicyState>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackSource>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackSphericalVideoProjection>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlaybackTimedMetadataTrackList>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayer>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayer2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayer3>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayer4>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayer5>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayer6>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayer7>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayerDataReceivedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayerEffects>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayerEffects2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayerFailedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayerRateChangedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayerSource>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayerSource2>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IMediaPlayerSurface>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IPlaybackMediaMarker>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IPlaybackMediaMarkerFactory>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IPlaybackMediaMarkerReachedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::IPlaybackMediaMarkerSequence>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::ITimedMetadataPresentationModeChangedEventArgs>{ using type = interface_category; };
    template <> struct category<winrt::Windows::Media::Playback::BackgroundMediaPlayer>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::CurrentMediaPlaybackItemChangedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaBreak>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaBreakEndedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaBreakManager>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaBreakSchedule>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaBreakSeekedOverEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaBreakSkippedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaBreakStartedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaItemDisplayProperties>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackAudioTrackList>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManager>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerFastForwardReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerNextReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPauseReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPlayReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPositionReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPreviousReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRateReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRewindReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerShuffleReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackItem>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackItemError>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackItemFailedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackItemOpenedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackList>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackSession>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackSessionBufferingStartedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackSessionOutputDegradationPolicyState>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackSphericalVideoProjection>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackTimedMetadataTrackList>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackVideoTrackList>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlayer>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlayerDataReceivedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlayerFailedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlayerRateChangedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlayerSurface>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::PlaybackMediaMarker>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::PlaybackMediaMarkerReachedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::PlaybackMediaMarkerSequence>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::TimedMetadataPresentationModeChangedEventArgs>{ using type = class_category; };
    template <> struct category<winrt::Windows::Media::Playback::AutoLoadedDisplayPropertyKind>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::FailedMediaStreamKind>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaBreakInsertionMethod>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaCommandEnablingRule>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackItemChangedReason>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackItemErrorCode>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackSessionVideoConstrictionReason>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlaybackState>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlayerAudioCategory>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlayerAudioDeviceType>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlayerError>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::MediaPlayerState>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::SphericalVideoProjectionMode>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::StereoscopicVideoRenderMode>{ using type = enum_category; };
    template <> struct category<winrt::Windows::Media::Playback::TimedMetadataTrackPresentationMode>{ using type = enum_category; };
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::BackgroundMediaPlayer> = L"Windows.Media.Playback.BackgroundMediaPlayer";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::CurrentMediaPlaybackItemChangedEventArgs> = L"Windows.Media.Playback.CurrentMediaPlaybackItemChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaBreak> = L"Windows.Media.Playback.MediaBreak";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaBreakEndedEventArgs> = L"Windows.Media.Playback.MediaBreakEndedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaBreakManager> = L"Windows.Media.Playback.MediaBreakManager";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaBreakSchedule> = L"Windows.Media.Playback.MediaBreakSchedule";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaBreakSeekedOverEventArgs> = L"Windows.Media.Playback.MediaBreakSeekedOverEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaBreakSkippedEventArgs> = L"Windows.Media.Playback.MediaBreakSkippedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaBreakStartedEventArgs> = L"Windows.Media.Playback.MediaBreakStartedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaItemDisplayProperties> = L"Windows.Media.Playback.MediaItemDisplayProperties";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackAudioTrackList> = L"Windows.Media.Playback.MediaPlaybackAudioTrackList";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManager> = L"Windows.Media.Playback.MediaPlaybackCommandManager";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior> = L"Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerFastForwardReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerFastForwardReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerNextReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerNextReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPauseReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerPauseReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPlayReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerPlayReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPositionReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerPositionReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPreviousReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerPreviousReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRateReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerRateReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRewindReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerRewindReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerShuffleReceivedEventArgs> = L"Windows.Media.Playback.MediaPlaybackCommandManagerShuffleReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackItem> = L"Windows.Media.Playback.MediaPlaybackItem";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackItemError> = L"Windows.Media.Playback.MediaPlaybackItemError";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackItemFailedEventArgs> = L"Windows.Media.Playback.MediaPlaybackItemFailedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackItemOpenedEventArgs> = L"Windows.Media.Playback.MediaPlaybackItemOpenedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackList> = L"Windows.Media.Playback.MediaPlaybackList";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackSession> = L"Windows.Media.Playback.MediaPlaybackSession";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackSessionBufferingStartedEventArgs> = L"Windows.Media.Playback.MediaPlaybackSessionBufferingStartedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackSessionOutputDegradationPolicyState> = L"Windows.Media.Playback.MediaPlaybackSessionOutputDegradationPolicyState";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackSphericalVideoProjection> = L"Windows.Media.Playback.MediaPlaybackSphericalVideoProjection";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackTimedMetadataTrackList> = L"Windows.Media.Playback.MediaPlaybackTimedMetadataTrackList";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackVideoTrackList> = L"Windows.Media.Playback.MediaPlaybackVideoTrackList";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlayer> = L"Windows.Media.Playback.MediaPlayer";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlayerDataReceivedEventArgs> = L"Windows.Media.Playback.MediaPlayerDataReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlayerFailedEventArgs> = L"Windows.Media.Playback.MediaPlayerFailedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlayerRateChangedEventArgs> = L"Windows.Media.Playback.MediaPlayerRateChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlayerSurface> = L"Windows.Media.Playback.MediaPlayerSurface";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::PlaybackMediaMarker> = L"Windows.Media.Playback.PlaybackMediaMarker";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::PlaybackMediaMarkerReachedEventArgs> = L"Windows.Media.Playback.PlaybackMediaMarkerReachedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::PlaybackMediaMarkerSequence> = L"Windows.Media.Playback.PlaybackMediaMarkerSequence";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::TimedMetadataPresentationModeChangedEventArgs> = L"Windows.Media.Playback.TimedMetadataPresentationModeChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::AutoLoadedDisplayPropertyKind> = L"Windows.Media.Playback.AutoLoadedDisplayPropertyKind";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::FailedMediaStreamKind> = L"Windows.Media.Playback.FailedMediaStreamKind";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaBreakInsertionMethod> = L"Windows.Media.Playback.MediaBreakInsertionMethod";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaCommandEnablingRule> = L"Windows.Media.Playback.MediaCommandEnablingRule";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackItemChangedReason> = L"Windows.Media.Playback.MediaPlaybackItemChangedReason";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackItemErrorCode> = L"Windows.Media.Playback.MediaPlaybackItemErrorCode";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackSessionVideoConstrictionReason> = L"Windows.Media.Playback.MediaPlaybackSessionVideoConstrictionReason";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlaybackState> = L"Windows.Media.Playback.MediaPlaybackState";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlayerAudioCategory> = L"Windows.Media.Playback.MediaPlayerAudioCategory";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlayerAudioDeviceType> = L"Windows.Media.Playback.MediaPlayerAudioDeviceType";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlayerError> = L"Windows.Media.Playback.MediaPlayerError";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::MediaPlayerState> = L"Windows.Media.Playback.MediaPlayerState";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::SphericalVideoProjectionMode> = L"Windows.Media.Playback.SphericalVideoProjectionMode";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::StereoscopicVideoRenderMode> = L"Windows.Media.Playback.StereoscopicVideoRenderMode";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::TimedMetadataTrackPresentationMode> = L"Windows.Media.Playback.TimedMetadataTrackPresentationMode";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IBackgroundMediaPlayerStatics> = L"Windows.Media.Playback.IBackgroundMediaPlayerStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs> = L"Windows.Media.Playback.ICurrentMediaPlaybackItemChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs2> = L"Windows.Media.Playback.ICurrentMediaPlaybackItemChangedEventArgs2";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaBreak> = L"Windows.Media.Playback.IMediaBreak";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaBreakEndedEventArgs> = L"Windows.Media.Playback.IMediaBreakEndedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaBreakFactory> = L"Windows.Media.Playback.IMediaBreakFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaBreakManager> = L"Windows.Media.Playback.IMediaBreakManager";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaBreakSchedule> = L"Windows.Media.Playback.IMediaBreakSchedule";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaBreakSeekedOverEventArgs> = L"Windows.Media.Playback.IMediaBreakSeekedOverEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaBreakSkippedEventArgs> = L"Windows.Media.Playback.IMediaBreakSkippedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaBreakStartedEventArgs> = L"Windows.Media.Playback.IMediaBreakStartedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaEnginePlaybackSource> = L"Windows.Media.Playback.IMediaEnginePlaybackSource";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaItemDisplayProperties> = L"Windows.Media.Playback.IMediaItemDisplayProperties";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager> = L"Windows.Media.Playback.IMediaPlaybackCommandManager";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerCommandBehavior> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerCommandBehavior";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerFastForwardReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerFastForwardReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerNextReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerNextReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPauseReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerPauseReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPlayReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerPlayReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPositionReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerPositionReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPreviousReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerPreviousReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRateReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerRateReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRewindReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerRewindReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerShuffleReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackCommandManagerShuffleReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackItem> = L"Windows.Media.Playback.IMediaPlaybackItem";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackItem2> = L"Windows.Media.Playback.IMediaPlaybackItem2";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackItem3> = L"Windows.Media.Playback.IMediaPlaybackItem3";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackItemError> = L"Windows.Media.Playback.IMediaPlaybackItemError";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory> = L"Windows.Media.Playback.IMediaPlaybackItemFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory2> = L"Windows.Media.Playback.IMediaPlaybackItemFactory2";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackItemFailedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackItemFailedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackItemOpenedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackItemOpenedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackItemStatics> = L"Windows.Media.Playback.IMediaPlaybackItemStatics";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackList> = L"Windows.Media.Playback.IMediaPlaybackList";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackList2> = L"Windows.Media.Playback.IMediaPlaybackList2";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackList3> = L"Windows.Media.Playback.IMediaPlaybackList3";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackSession> = L"Windows.Media.Playback.IMediaPlaybackSession";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackSession2> = L"Windows.Media.Playback.IMediaPlaybackSession2";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackSession3> = L"Windows.Media.Playback.IMediaPlaybackSession3";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackSessionBufferingStartedEventArgs> = L"Windows.Media.Playback.IMediaPlaybackSessionBufferingStartedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackSessionOutputDegradationPolicyState> = L"Windows.Media.Playback.IMediaPlaybackSessionOutputDegradationPolicyState";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackSource> = L"Windows.Media.Playback.IMediaPlaybackSource";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackSphericalVideoProjection> = L"Windows.Media.Playback.IMediaPlaybackSphericalVideoProjection";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlaybackTimedMetadataTrackList> = L"Windows.Media.Playback.IMediaPlaybackTimedMetadataTrackList";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayer> = L"Windows.Media.Playback.IMediaPlayer";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayer2> = L"Windows.Media.Playback.IMediaPlayer2";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayer3> = L"Windows.Media.Playback.IMediaPlayer3";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayer4> = L"Windows.Media.Playback.IMediaPlayer4";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayer5> = L"Windows.Media.Playback.IMediaPlayer5";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayer6> = L"Windows.Media.Playback.IMediaPlayer6";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayer7> = L"Windows.Media.Playback.IMediaPlayer7";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayerDataReceivedEventArgs> = L"Windows.Media.Playback.IMediaPlayerDataReceivedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayerEffects> = L"Windows.Media.Playback.IMediaPlayerEffects";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayerEffects2> = L"Windows.Media.Playback.IMediaPlayerEffects2";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayerFailedEventArgs> = L"Windows.Media.Playback.IMediaPlayerFailedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayerRateChangedEventArgs> = L"Windows.Media.Playback.IMediaPlayerRateChangedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayerSource> = L"Windows.Media.Playback.IMediaPlayerSource";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayerSource2> = L"Windows.Media.Playback.IMediaPlayerSource2";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IMediaPlayerSurface> = L"Windows.Media.Playback.IMediaPlayerSurface";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IPlaybackMediaMarker> = L"Windows.Media.Playback.IPlaybackMediaMarker";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IPlaybackMediaMarkerFactory> = L"Windows.Media.Playback.IPlaybackMediaMarkerFactory";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IPlaybackMediaMarkerReachedEventArgs> = L"Windows.Media.Playback.IPlaybackMediaMarkerReachedEventArgs";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::IPlaybackMediaMarkerSequence> = L"Windows.Media.Playback.IPlaybackMediaMarkerSequence";
    template <> inline constexpr auto& name_v<winrt::Windows::Media::Playback::ITimedMetadataPresentationModeChangedEventArgs> = L"Windows.Media.Playback.ITimedMetadataPresentationModeChangedEventArgs";
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IBackgroundMediaPlayerStatics>{ 0x856DDBC1,0x55F7,0x471F,{ 0xA0,0xF2,0x68,0xAC,0x4C,0x90,0x45,0x92 } }; // 856DDBC1-55F7-471F-A0F2-68AC4C904592
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs>{ 0x1743A892,0x5C43,0x4A15,{ 0x96,0x7A,0x57,0x2D,0x2D,0x0F,0x26,0xC6 } }; // 1743A892-5C43-4A15-967A-572D2D0F26C6
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs2>{ 0x1D80A51E,0x996E,0x40A9,{ 0xBE,0x48,0xE6,0x6E,0xC9,0x0B,0x2B,0x7D } }; // 1D80A51E-996E-40A9-BE48-E66EC90B2B7D
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaBreak>{ 0x714BE270,0x0DEF,0x4EBC,{ 0xA4,0x89,0x6B,0x34,0x93,0x0E,0x15,0x58 } }; // 714BE270-0DEF-4EBC-A489-6B34930E1558
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaBreakEndedEventArgs>{ 0x32B93276,0x1C5D,0x4FEE,{ 0x87,0x32,0x23,0x6D,0xC3,0xA8,0x85,0x80 } }; // 32B93276-1C5D-4FEE-8732-236DC3A88580
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaBreakFactory>{ 0x4516E002,0x18E0,0x4079,{ 0x8B,0x5F,0xD3,0x34,0x95,0xC1,0x5D,0x2E } }; // 4516E002-18E0-4079-8B5F-D33495C15D2E
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaBreakManager>{ 0xA854DDB1,0xFEB4,0x4D9B,{ 0x9D,0x97,0x0F,0xDB,0xE5,0x8E,0x5E,0x39 } }; // A854DDB1-FEB4-4D9B-9D97-0FDBE58E5E39
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaBreakSchedule>{ 0xA19A5813,0x98B6,0x41D8,{ 0x83,0xDA,0xF9,0x71,0xD2,0x2B,0x7B,0xBA } }; // A19A5813-98B6-41D8-83DA-F971D22B7BBA
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaBreakSeekedOverEventArgs>{ 0xE5AA6746,0x0606,0x4492,{ 0xB9,0xD3,0xC3,0xC8,0xFD,0xE0,0xA4,0xEA } }; // E5AA6746-0606-4492-B9D3-C3C8FDE0A4EA
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaBreakSkippedEventArgs>{ 0x6EE94C05,0x2F54,0x4A3E,{ 0xA3,0xAB,0x24,0xC3,0xB2,0x70,0xB4,0xA3 } }; // 6EE94C05-2F54-4A3E-A3AB-24C3B270B4A3
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaBreakStartedEventArgs>{ 0xA87EFE71,0xDFD4,0x454A,{ 0x95,0x6E,0x0A,0x4A,0x64,0x83,0x95,0xF8 } }; // A87EFE71-DFD4-454A-956E-0A4A648395F8
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaEnginePlaybackSource>{ 0x5C1D0BA7,0x3856,0x48B9,{ 0x8D,0xC6,0x24,0x4B,0xF1,0x07,0xBF,0x8C } }; // 5C1D0BA7-3856-48B9-8DC6-244BF107BF8C
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaItemDisplayProperties>{ 0x1E3C1B48,0x7097,0x4384,{ 0xA2,0x17,0xC1,0x29,0x1D,0xFA,0x8C,0x16 } }; // 1E3C1B48-7097-4384-A217-C1291DFA8C16
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>{ 0x5ACEE5A6,0x5CB6,0x4A5A,{ 0x85,0x21,0xCC,0x86,0xB1,0xC1,0xED,0x37 } }; // 5ACEE5A6-5CB6-4A5A-8521-CC86B1C1ED37
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs>{ 0x3D6F4F23,0x5230,0x4411,{ 0xA0,0xE9,0xBA,0xD9,0x4C,0x2A,0x04,0x5C } }; // 3D6F4F23-5230-4411-A0E9-BAD94C2A045C
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerCommandBehavior>{ 0x786C1E78,0xCE78,0x4A10,{ 0xAF,0xD6,0x84,0x3F,0xCB,0xB9,0x0C,0x2E } }; // 786C1E78-CE78-4A10-AFD6-843FCBB90C2E
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerFastForwardReceivedEventArgs>{ 0x30F064D9,0xB491,0x4D0A,{ 0xBC,0x21,0x30,0x98,0xBD,0x13,0x32,0xE9 } }; // 30F064D9-B491-4D0A-BC21-3098BD1332E9
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerNextReceivedEventArgs>{ 0xE1504433,0xA2B0,0x45D4,{ 0xB9,0xDE,0x5F,0x42,0xAC,0x14,0xA8,0x39 } }; // E1504433-A2B0-45D4-B9DE-5F42AC14A839
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPauseReceivedEventArgs>{ 0x5CECCD1C,0xC25C,0x4221,{ 0xB1,0x6C,0xC3,0xC9,0x8C,0xE0,0x12,0xD6 } }; // 5CECCD1C-C25C-4221-B16C-C3C98CE012D6
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPlayReceivedEventArgs>{ 0x9AF0004E,0x578B,0x4C56,{ 0xA0,0x06,0x16,0x15,0x9D,0x88,0x8A,0x48 } }; // 9AF0004E-578B-4C56-A006-16159D888A48
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPositionReceivedEventArgs>{ 0x5591A754,0xD627,0x4BDD,{ 0xA9,0x0D,0x86,0xA0,0x15,0xB2,0x49,0x02 } }; // 5591A754-D627-4BDD-A90D-86A015B24902
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPreviousReceivedEventArgs>{ 0x525E3081,0x4632,0x4F76,{ 0x99,0xB1,0xD7,0x71,0x62,0x3F,0x62,0x87 } }; // 525E3081-4632-4F76-99B1-D771623F6287
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRateReceivedEventArgs>{ 0x18EA3939,0x4A16,0x4169,{ 0x8B,0x05,0x3E,0xB9,0xF5,0xFF,0x78,0xEB } }; // 18EA3939-4A16-4169-8B05-3EB9F5FF78EB
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRewindReceivedEventArgs>{ 0x9F085947,0xA3C0,0x425D,{ 0xAA,0xEF,0x97,0xBA,0x78,0x98,0xB1,0x41 } }; // 9F085947-A3C0-425D-AAEF-97BA7898B141
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerShuffleReceivedEventArgs>{ 0x50A05CEF,0x63EE,0x4A96,{ 0xB7,0xB5,0xFE,0xE0,0x8B,0x9F,0xF9,0x0C } }; // 50A05CEF-63EE-4A96-B7B5-FEE08B9FF90C
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackItem>{ 0x047097D2,0xE4AF,0x48AB,{ 0xB2,0x83,0x69,0x29,0xE6,0x74,0xEC,0xE2 } }; // 047097D2-E4AF-48AB-B283-6929E674ECE2
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackItem2>{ 0xD859D171,0xD7EF,0x4B81,{ 0xAC,0x1F,0xF4,0x04,0x93,0xCB,0xB0,0x91 } }; // D859D171-D7EF-4B81-AC1F-F40493CBB091
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackItem3>{ 0x0D328220,0xB80A,0x4D09,{ 0x9F,0xF8,0xF8,0x70,0x94,0xA1,0xC8,0x31 } }; // 0D328220-B80A-4D09-9FF8-F87094A1C831
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackItemError>{ 0x69FBEF2B,0xDCD6,0x4DF9,{ 0xA4,0x50,0xDB,0xF4,0xC6,0xF1,0xC2,0xC2 } }; // 69FBEF2B-DCD6-4DF9-A450-DBF4C6F1C2C2
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory>{ 0x7133FCE1,0x1769,0x4FF9,{ 0xA7,0xC1,0x38,0xD2,0xC4,0xD4,0x23,0x60 } }; // 7133FCE1-1769-4FF9-A7C1-38D2C4D42360
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory2>{ 0xD77CDF3A,0xB947,0x4972,{ 0xB3,0x5D,0xAD,0xFB,0x93,0x1A,0x71,0xE6 } }; // D77CDF3A-B947-4972-B35D-ADFB931A71E6
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackItemFailedEventArgs>{ 0x7703134A,0xE9A7,0x47C3,{ 0x86,0x2C,0xC6,0x56,0xD3,0x06,0x83,0xD4 } }; // 7703134A-E9A7-47C3-862C-C656D30683D4
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackItemOpenedEventArgs>{ 0xCBD9BD82,0x3037,0x4FBE,{ 0xAE,0x8F,0x39,0xFC,0x39,0xED,0xF4,0xEF } }; // CBD9BD82-3037-4FBE-AE8F-39FC39EDF4EF
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackItemStatics>{ 0x4B1BE7F4,0x4345,0x403C,{ 0x8A,0x67,0xF5,0xDE,0x91,0xDF,0x4C,0x86 } }; // 4B1BE7F4-4345-403C-8A67-F5DE91DF4C86
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackList>{ 0x7F77EE9C,0xDC42,0x4E26,{ 0xA9,0x8D,0x78,0x50,0xDF,0x8E,0xC9,0x25 } }; // 7F77EE9C-DC42-4E26-A98D-7850DF8EC925
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackList2>{ 0x0E09B478,0x600A,0x4274,{ 0xA1,0x4B,0x0B,0x67,0x23,0xD0,0xF4,0x8B } }; // 0E09B478-600A-4274-A14B-0B6723D0F48B
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackList3>{ 0xDD24BBA9,0xBC47,0x4463,{ 0xAA,0x90,0xC1,0x8B,0x7E,0x5F,0xFD,0xE1 } }; // DD24BBA9-BC47-4463-AA90-C18B7E5FFDE1
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackSession>{ 0xC32B683D,0x0407,0x41BA,{ 0x89,0x46,0x8B,0x34,0x5A,0x5A,0x54,0x35 } }; // C32B683D-0407-41BA-8946-8B345A5A5435
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackSession2>{ 0xF8BA7C79,0x1FC8,0x4097,{ 0xAD,0x70,0xC0,0xFA,0x18,0xCC,0x00,0x50 } }; // F8BA7C79-1FC8-4097-AD70-C0FA18CC0050
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackSession3>{ 0x7BA2B41A,0xA3E2,0x405F,{ 0xB7,0x7B,0xA4,0x81,0x2C,0x23,0x8B,0x66 } }; // 7BA2B41A-A3E2-405F-B77B-A4812C238B66
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackSessionBufferingStartedEventArgs>{ 0xCD6AAFED,0x74E2,0x43B5,{ 0xB1,0x15,0x76,0x23,0x6C,0x33,0x79,0x1A } }; // CD6AAFED-74E2-43B5-B115-76236C33791A
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackSessionOutputDegradationPolicyState>{ 0x558E727D,0xF633,0x49F9,{ 0x96,0x5A,0xAB,0xAA,0x1D,0xB7,0x09,0xBE } }; // 558E727D-F633-49F9-965A-ABAA1DB709BE
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackSource>{ 0xEF9DC2BC,0x9317,0x4696,{ 0xB0,0x51,0x2B,0xAD,0x64,0x31,0x77,0xB5 } }; // EF9DC2BC-9317-4696-B051-2BAD643177B5
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackSphericalVideoProjection>{ 0xD405B37C,0x6F0E,0x4661,{ 0xB8,0xEE,0xD4,0x87,0xBA,0x97,0x52,0xD5 } }; // D405B37C-6F0E-4661-B8EE-D487BA9752D5
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlaybackTimedMetadataTrackList>{ 0x72B41319,0xBBFB,0x46A3,{ 0x93,0x72,0x9C,0x9C,0x74,0x4B,0x94,0x38 } }; // 72B41319-BBFB-46A3-9372-9C9C744B9438
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayer>{ 0x381A83CB,0x6FFF,0x499B,{ 0x8D,0x64,0x28,0x85,0xDF,0xC1,0x24,0x9E } }; // 381A83CB-6FFF-499B-8D64-2885DFC1249E
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayer2>{ 0x3C841218,0x2123,0x4FC5,{ 0x90,0x82,0x2F,0x88,0x3F,0x77,0xBD,0xF5 } }; // 3C841218-2123-4FC5-9082-2F883F77BDF5
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayer3>{ 0xEE0660DA,0x031B,0x4FEB,{ 0xBD,0x9B,0x92,0xE0,0xA0,0xA8,0xD2,0x99 } }; // EE0660DA-031B-4FEB-BD9B-92E0A0A8D299
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayer4>{ 0x80035DB0,0x7448,0x4770,{ 0xAF,0xCF,0x2A,0x57,0x45,0x09,0x14,0xC5 } }; // 80035DB0-7448-4770-AFCF-2A57450914C5
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayer5>{ 0xCFE537FD,0xF86A,0x4446,{ 0xBF,0x4D,0xC8,0xE7,0x92,0xB7,0xB4,0xB3 } }; // CFE537FD-F86A-4446-BF4D-C8E792B7B4B3
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayer6>{ 0xE0CAA086,0xAE65,0x414C,{ 0xB0,0x10,0x8B,0xC5,0x5F,0x00,0xE6,0x92 } }; // E0CAA086-AE65-414C-B010-8BC55F00E692
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayer7>{ 0x5D1DC478,0x4500,0x4531,{ 0xB3,0xF4,0x77,0x7A,0x71,0x49,0x1F,0x7F } }; // 5D1DC478-4500-4531-B3F4-777A71491F7F
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayerDataReceivedEventArgs>{ 0xC75A9405,0xC801,0x412A,{ 0x83,0x5B,0x83,0xFC,0x0E,0x62,0x2A,0x8E } }; // C75A9405-C801-412A-835B-83FC0E622A8E
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayerEffects>{ 0x85A1DEDA,0xCAB6,0x4CC0,{ 0x8B,0xE3,0x60,0x35,0xF4,0xDE,0x25,0x91 } }; // 85A1DEDA-CAB6-4CC0-8BE3-6035F4DE2591
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayerEffects2>{ 0xFA419A79,0x1BBE,0x46C5,{ 0xAE,0x1F,0x8E,0xE6,0x9F,0xB3,0xC2,0xC7 } }; // FA419A79-1BBE-46C5-AE1F-8EE69FB3C2C7
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayerFailedEventArgs>{ 0x2744E9B9,0xA7E3,0x4F16,{ 0xBA,0xC4,0x79,0x14,0xEB,0xC0,0x83,0x01 } }; // 2744E9B9-A7E3-4F16-BAC4-7914EBC08301
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayerRateChangedEventArgs>{ 0x40600D58,0x3B61,0x4BB2,{ 0x98,0x9F,0xFC,0x65,0x60,0x8B,0x6C,0xAB } }; // 40600D58-3B61-4BB2-989F-FC65608B6CAB
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayerSource>{ 0xBD4F8897,0x1423,0x4C3E,{ 0x82,0xC5,0x0F,0xB1,0xAF,0x94,0xF7,0x15 } }; // BD4F8897-1423-4C3E-82C5-0FB1AF94F715
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayerSource2>{ 0x82449B9F,0x7322,0x4C0B,{ 0xB0,0x3B,0x3E,0x69,0xA4,0x82,0x60,0xC5 } }; // 82449B9F-7322-4C0B-B03B-3E69A48260C5
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IMediaPlayerSurface>{ 0x0ED653BC,0xB736,0x49C3,{ 0x83,0x0B,0x76,0x4A,0x38,0x45,0x31,0x3A } }; // 0ED653BC-B736-49C3-830B-764A3845313A
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IPlaybackMediaMarker>{ 0xC4D22F5C,0x3C1C,0x4444,{ 0xB6,0xB9,0x77,0x8B,0x04,0x22,0xD4,0x1A } }; // C4D22F5C-3C1C-4444-B6B9-778B0422D41A
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IPlaybackMediaMarkerFactory>{ 0x8C530A78,0xE0AE,0x4E1A,{ 0xA8,0xC8,0xE2,0x3F,0x98,0x2A,0x93,0x7B } }; // 8C530A78-E0AE-4E1A-A8C8-E23F982A937B
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IPlaybackMediaMarkerReachedEventArgs>{ 0x578CD1B9,0x90E2,0x4E60,{ 0xAB,0xC4,0x87,0x40,0xB0,0x1F,0x61,0x96 } }; // 578CD1B9-90E2-4E60-ABC4-8740B01F6196
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::IPlaybackMediaMarkerSequence>{ 0xF2810CEE,0x638B,0x46CF,{ 0x88,0x17,0x1D,0x11,0x1F,0xE9,0xD8,0xC4 } }; // F2810CEE-638B-46CF-8817-1D111FE9D8C4
    template <> inline constexpr guid guid_v<winrt::Windows::Media::Playback::ITimedMetadataPresentationModeChangedEventArgs>{ 0xD1636099,0x65DF,0x45AE,{ 0x8C,0xEF,0xDC,0x0B,0x53,0xFD,0xC2,0xBB } }; // D1636099-65DF-45AE-8CEF-DC0B53FDC2BB
    template <> struct default_interface<winrt::Windows::Media::Playback::CurrentMediaPlaybackItemChangedEventArgs>{ using type = winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaBreak>{ using type = winrt::Windows::Media::Playback::IMediaBreak; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaBreakEndedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaBreakEndedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaBreakManager>{ using type = winrt::Windows::Media::Playback::IMediaBreakManager; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaBreakSchedule>{ using type = winrt::Windows::Media::Playback::IMediaBreakSchedule; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaBreakSeekedOverEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaBreakSeekedOverEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaBreakSkippedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaBreakSkippedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaBreakStartedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaBreakStartedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaItemDisplayProperties>{ using type = winrt::Windows::Media::Playback::IMediaItemDisplayProperties; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackAudioTrackList>{ using type = winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Media::Core::AudioTrack>; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManager>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManager; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerCommandBehavior; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerFastForwardReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerFastForwardReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerNextReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerNextReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPauseReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPauseReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPlayReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPlayReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPositionReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPositionReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPreviousReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPreviousReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRateReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRateReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRewindReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRewindReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerShuffleReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerShuffleReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackItem>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackItem; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackItemError>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackItemError; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackItemFailedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackItemFailedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackItemOpenedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackItemOpenedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackList>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackList; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackSession>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackSession; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackSessionBufferingStartedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackSessionBufferingStartedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackSessionOutputDegradationPolicyState>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackSessionOutputDegradationPolicyState; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackSphericalVideoProjection>{ using type = winrt::Windows::Media::Playback::IMediaPlaybackSphericalVideoProjection; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackTimedMetadataTrackList>{ using type = winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Media::Core::TimedMetadataTrack>; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlaybackVideoTrackList>{ using type = winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Media::Core::VideoTrack>; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlayer>{ using type = winrt::Windows::Media::Playback::IMediaPlayer; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlayerDataReceivedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlayerDataReceivedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlayerFailedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlayerFailedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlayerRateChangedEventArgs>{ using type = winrt::Windows::Media::Playback::IMediaPlayerRateChangedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::MediaPlayerSurface>{ using type = winrt::Windows::Media::Playback::IMediaPlayerSurface; };
    template <> struct default_interface<winrt::Windows::Media::Playback::PlaybackMediaMarker>{ using type = winrt::Windows::Media::Playback::IPlaybackMediaMarker; };
    template <> struct default_interface<winrt::Windows::Media::Playback::PlaybackMediaMarkerReachedEventArgs>{ using type = winrt::Windows::Media::Playback::IPlaybackMediaMarkerReachedEventArgs; };
    template <> struct default_interface<winrt::Windows::Media::Playback::PlaybackMediaMarkerSequence>{ using type = winrt::Windows::Media::Playback::IPlaybackMediaMarkerSequence; };
    template <> struct default_interface<winrt::Windows::Media::Playback::TimedMetadataPresentationModeChangedEventArgs>{ using type = winrt::Windows::Media::Playback::ITimedMetadataPresentationModeChangedEventArgs; };
    template <> struct abi<winrt::Windows::Media::Playback::IBackgroundMediaPlayerStatics>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Current(void**) noexcept = 0;
            virtual int32_t __stdcall add_MessageReceivedFromBackground(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_MessageReceivedFromBackground(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_MessageReceivedFromForeground(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_MessageReceivedFromForeground(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall SendMessageToBackground(void*) noexcept = 0;
            virtual int32_t __stdcall SendMessageToForeground(void*) noexcept = 0;
            virtual int32_t __stdcall IsMediaPlaying(bool*) noexcept = 0;
            virtual int32_t __stdcall Shutdown() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_NewItem(void**) noexcept = 0;
            virtual int32_t __stdcall get_OldItem(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Reason(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaBreak>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_PlaybackList(void**) noexcept = 0;
            virtual int32_t __stdcall get_PresentationPosition(void**) noexcept = 0;
            virtual int32_t __stdcall get_InsertionMethod(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_CustomProperties(void**) noexcept = 0;
            virtual int32_t __stdcall get_CanStart(bool*) noexcept = 0;
            virtual int32_t __stdcall put_CanStart(bool) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaBreakEndedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_MediaBreak(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaBreakFactory>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall Create(int32_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithPresentationPosition(int32_t, int64_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaBreakManager>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_BreaksSeekedOver(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BreaksSeekedOver(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_BreakStarted(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BreakStarted(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_BreakEnded(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BreakEnded(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_BreakSkipped(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BreakSkipped(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall get_CurrentBreak(void**) noexcept = 0;
            virtual int32_t __stdcall get_PlaybackSession(void**) noexcept = 0;
            virtual int32_t __stdcall PlayBreak(void*) noexcept = 0;
            virtual int32_t __stdcall SkipCurrentBreak() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaBreakSchedule>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_ScheduleChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ScheduleChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall InsertMidrollBreak(void*) noexcept = 0;
            virtual int32_t __stdcall RemoveMidrollBreak(void*) noexcept = 0;
            virtual int32_t __stdcall get_MidrollBreaks(void**) noexcept = 0;
            virtual int32_t __stdcall put_PrerollBreak(void*) noexcept = 0;
            virtual int32_t __stdcall get_PrerollBreak(void**) noexcept = 0;
            virtual int32_t __stdcall put_PostrollBreak(void*) noexcept = 0;
            virtual int32_t __stdcall get_PostrollBreak(void**) noexcept = 0;
            virtual int32_t __stdcall get_PlaybackItem(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaBreakSeekedOverEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_SeekedOverBreaks(void**) noexcept = 0;
            virtual int32_t __stdcall get_OldPosition(int64_t*) noexcept = 0;
            virtual int32_t __stdcall get_NewPosition(int64_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaBreakSkippedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_MediaBreak(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaBreakStartedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_MediaBreak(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaEnginePlaybackSource>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_CurrentItem(void**) noexcept = 0;
            virtual int32_t __stdcall SetPlaybackSource(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaItemDisplayProperties>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Type(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_Type(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_MusicProperties(void**) noexcept = 0;
            virtual int32_t __stdcall get_VideoProperties(void**) noexcept = 0;
            virtual int32_t __stdcall get_Thumbnail(void**) noexcept = 0;
            virtual int32_t __stdcall put_Thumbnail(void*) noexcept = 0;
            virtual int32_t __stdcall ClearAll() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsEnabled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsEnabled(bool) noexcept = 0;
            virtual int32_t __stdcall get_MediaPlayer(void**) noexcept = 0;
            virtual int32_t __stdcall get_PlayBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall get_PauseBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall get_NextBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall get_PreviousBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall get_FastForwardBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall get_RewindBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall get_ShuffleBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall get_AutoRepeatModeBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall get_PositionBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall get_RateBehavior(void**) noexcept = 0;
            virtual int32_t __stdcall add_PlayReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PlayReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_PauseReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PauseReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_NextReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_NextReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_PreviousReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PreviousReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_FastForwardReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_FastForwardReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_RewindReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_RewindReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_ShuffleReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ShuffleReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_AutoRepeatModeReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_AutoRepeatModeReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_PositionReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PositionReceived(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_RateReceived(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_RateReceived(winrt::event_token) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall get_AutoRepeatMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerCommandBehavior>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_CommandManager(void**) noexcept = 0;
            virtual int32_t __stdcall get_IsEnabled(bool*) noexcept = 0;
            virtual int32_t __stdcall get_EnablingRule(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_EnablingRule(int32_t) noexcept = 0;
            virtual int32_t __stdcall add_IsEnabledChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_IsEnabledChanged(winrt::event_token) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerFastForwardReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerNextReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPauseReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPlayReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPositionReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall get_Position(int64_t*) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPreviousReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRateReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall get_PlaybackRate(double*) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRewindReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerShuffleReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Handled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_Handled(bool) noexcept = 0;
            virtual int32_t __stdcall get_IsShuffleRequested(bool*) noexcept = 0;
            virtual int32_t __stdcall GetDeferral(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackItem>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_AudioTracksChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_AudioTracksChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_VideoTracksChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_VideoTracksChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_TimedMetadataTracksChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_TimedMetadataTracksChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall get_Source(void**) noexcept = 0;
            virtual int32_t __stdcall get_AudioTracks(void**) noexcept = 0;
            virtual int32_t __stdcall get_VideoTracks(void**) noexcept = 0;
            virtual int32_t __stdcall get_TimedMetadataTracks(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackItem2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_BreakSchedule(void**) noexcept = 0;
            virtual int32_t __stdcall get_StartTime(int64_t*) noexcept = 0;
            virtual int32_t __stdcall get_DurationLimit(void**) noexcept = 0;
            virtual int32_t __stdcall get_CanSkip(bool*) noexcept = 0;
            virtual int32_t __stdcall put_CanSkip(bool) noexcept = 0;
            virtual int32_t __stdcall GetDisplayProperties(void**) noexcept = 0;
            virtual int32_t __stdcall ApplyDisplayProperties(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackItem3>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsDisabledInPlaybackList(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsDisabledInPlaybackList(bool) noexcept = 0;
            virtual int32_t __stdcall get_TotalDownloadProgress(double*) noexcept = 0;
            virtual int32_t __stdcall get_AutoLoadedDisplayProperties(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_AutoLoadedDisplayProperties(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackItemError>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_ErrorCode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedError(winrt::hresult*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall Create(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall CreateWithStartTime(void*, int64_t, void**) noexcept = 0;
            virtual int32_t __stdcall CreateWithStartTimeAndDurationLimit(void*, int64_t, int64_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackItemFailedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Item(void**) noexcept = 0;
            virtual int32_t __stdcall get_Error(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackItemOpenedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Item(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackItemStatics>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall FindFromMediaSource(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackList>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_ItemFailed(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ItemFailed(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_CurrentItemChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_CurrentItemChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_ItemOpened(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_ItemOpened(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall get_Items(void**) noexcept = 0;
            virtual int32_t __stdcall get_AutoRepeatEnabled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AutoRepeatEnabled(bool) noexcept = 0;
            virtual int32_t __stdcall get_ShuffleEnabled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_ShuffleEnabled(bool) noexcept = 0;
            virtual int32_t __stdcall get_CurrentItem(void**) noexcept = 0;
            virtual int32_t __stdcall get_CurrentItemIndex(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall MoveNext(void**) noexcept = 0;
            virtual int32_t __stdcall MovePrevious(void**) noexcept = 0;
            virtual int32_t __stdcall MoveTo(uint32_t, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackList2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_MaxPrefetchTime(void**) noexcept = 0;
            virtual int32_t __stdcall put_MaxPrefetchTime(void*) noexcept = 0;
            virtual int32_t __stdcall get_StartingItem(void**) noexcept = 0;
            virtual int32_t __stdcall put_StartingItem(void*) noexcept = 0;
            virtual int32_t __stdcall get_ShuffledItems(void**) noexcept = 0;
            virtual int32_t __stdcall SetShuffledItems(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackList3>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_MaxPlayedItemsToKeepOpen(void**) noexcept = 0;
            virtual int32_t __stdcall put_MaxPlayedItemsToKeepOpen(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackSession>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_PlaybackStateChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PlaybackStateChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_PlaybackRateChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PlaybackRateChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_SeekCompleted(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_SeekCompleted(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_BufferingStarted(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BufferingStarted(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_BufferingEnded(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BufferingEnded(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_BufferingProgressChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BufferingProgressChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_DownloadProgressChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_DownloadProgressChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_NaturalDurationChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_NaturalDurationChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_PositionChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PositionChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_NaturalVideoSizeChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_NaturalVideoSizeChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall get_MediaPlayer(void**) noexcept = 0;
            virtual int32_t __stdcall get_NaturalDuration(int64_t*) noexcept = 0;
            virtual int32_t __stdcall get_Position(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_Position(int64_t) noexcept = 0;
            virtual int32_t __stdcall get_PlaybackState(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_CanSeek(bool*) noexcept = 0;
            virtual int32_t __stdcall get_CanPause(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsProtected(bool*) noexcept = 0;
            virtual int32_t __stdcall get_PlaybackRate(double*) noexcept = 0;
            virtual int32_t __stdcall put_PlaybackRate(double) noexcept = 0;
            virtual int32_t __stdcall get_BufferingProgress(double*) noexcept = 0;
            virtual int32_t __stdcall get_DownloadProgress(double*) noexcept = 0;
            virtual int32_t __stdcall get_NaturalVideoHeight(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_NaturalVideoWidth(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall get_NormalizedSourceRect(winrt::Windows::Foundation::Rect*) noexcept = 0;
            virtual int32_t __stdcall put_NormalizedSourceRect(winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall get_StereoscopicVideoPackingMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StereoscopicVideoPackingMode(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackSession2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_BufferedRangesChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BufferedRangesChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_PlayedRangesChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PlayedRangesChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_SeekableRangesChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_SeekableRangesChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_SupportedPlaybackRatesChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_SupportedPlaybackRatesChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall get_SphericalVideoProjection(void**) noexcept = 0;
            virtual int32_t __stdcall get_IsMirroring(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsMirroring(bool) noexcept = 0;
            virtual int32_t __stdcall GetBufferedRanges(void**) noexcept = 0;
            virtual int32_t __stdcall GetPlayedRanges(void**) noexcept = 0;
            virtual int32_t __stdcall GetSeekableRanges(void**) noexcept = 0;
            virtual int32_t __stdcall IsSupportedPlaybackRateRange(double, double, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackSession3>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_PlaybackRotation(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_PlaybackRotation(int32_t) noexcept = 0;
            virtual int32_t __stdcall GetOutputDegradationPolicyState(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackSessionBufferingStartedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsPlaybackInterruption(bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackSessionOutputDegradationPolicyState>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_VideoConstrictionReason(int32_t*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackSource>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackSphericalVideoProjection>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_IsEnabled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsEnabled(bool) noexcept = 0;
            virtual int32_t __stdcall get_FrameFormat(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_FrameFormat(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_HorizontalFieldOfViewInDegrees(double*) noexcept = 0;
            virtual int32_t __stdcall put_HorizontalFieldOfViewInDegrees(double) noexcept = 0;
            virtual int32_t __stdcall get_ViewOrientation(winrt::Windows::Foundation::Numerics::quaternion*) noexcept = 0;
            virtual int32_t __stdcall put_ViewOrientation(winrt::Windows::Foundation::Numerics::quaternion) noexcept = 0;
            virtual int32_t __stdcall get_ProjectionMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_ProjectionMode(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlaybackTimedMetadataTrackList>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_PresentationModeChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PresentationModeChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall GetPresentationMode(uint32_t, int32_t*) noexcept = 0;
            virtual int32_t __stdcall SetPresentationMode(uint32_t, int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayer>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_AutoPlay(bool*) noexcept = 0;
            virtual int32_t __stdcall put_AutoPlay(bool) noexcept = 0;
            virtual int32_t __stdcall get_NaturalDuration(int64_t*) noexcept = 0;
            virtual int32_t __stdcall get_Position(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_Position(int64_t) noexcept = 0;
            virtual int32_t __stdcall get_BufferingProgress(double*) noexcept = 0;
            virtual int32_t __stdcall get_CurrentState(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_CanSeek(bool*) noexcept = 0;
            virtual int32_t __stdcall get_CanPause(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsLoopingEnabled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsLoopingEnabled(bool) noexcept = 0;
            virtual int32_t __stdcall get_IsProtected(bool*) noexcept = 0;
            virtual int32_t __stdcall get_IsMuted(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsMuted(bool) noexcept = 0;
            virtual int32_t __stdcall get_PlaybackRate(double*) noexcept = 0;
            virtual int32_t __stdcall put_PlaybackRate(double) noexcept = 0;
            virtual int32_t __stdcall get_Volume(double*) noexcept = 0;
            virtual int32_t __stdcall put_Volume(double) noexcept = 0;
            virtual int32_t __stdcall get_PlaybackMediaMarkers(void**) noexcept = 0;
            virtual int32_t __stdcall add_MediaOpened(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_MediaOpened(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_MediaEnded(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_MediaEnded(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_MediaFailed(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_MediaFailed(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_CurrentStateChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_CurrentStateChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_PlaybackMediaMarkerReached(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_PlaybackMediaMarkerReached(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_MediaPlayerRateChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_MediaPlayerRateChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_VolumeChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_VolumeChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_SeekCompleted(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_SeekCompleted(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_BufferingStarted(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BufferingStarted(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_BufferingEnded(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_BufferingEnded(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall Play() noexcept = 0;
            virtual int32_t __stdcall Pause() noexcept = 0;
            virtual int32_t __stdcall SetUriSource(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayer2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_SystemMediaTransportControls(void**) noexcept = 0;
            virtual int32_t __stdcall get_AudioCategory(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_AudioCategory(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_AudioDeviceType(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_AudioDeviceType(int32_t) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayer3>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_IsMutedChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_IsMutedChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall add_SourceChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_SourceChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall get_AudioBalance(double*) noexcept = 0;
            virtual int32_t __stdcall put_AudioBalance(double) noexcept = 0;
            virtual int32_t __stdcall get_RealTimePlayback(bool*) noexcept = 0;
            virtual int32_t __stdcall put_RealTimePlayback(bool) noexcept = 0;
            virtual int32_t __stdcall get_StereoscopicVideoRenderMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall put_StereoscopicVideoRenderMode(int32_t) noexcept = 0;
            virtual int32_t __stdcall get_BreakManager(void**) noexcept = 0;
            virtual int32_t __stdcall get_CommandManager(void**) noexcept = 0;
            virtual int32_t __stdcall get_AudioDevice(void**) noexcept = 0;
            virtual int32_t __stdcall put_AudioDevice(void*) noexcept = 0;
            virtual int32_t __stdcall get_TimelineController(void**) noexcept = 0;
            virtual int32_t __stdcall put_TimelineController(void*) noexcept = 0;
            virtual int32_t __stdcall get_TimelineControllerPositionOffset(int64_t*) noexcept = 0;
            virtual int32_t __stdcall put_TimelineControllerPositionOffset(int64_t) noexcept = 0;
            virtual int32_t __stdcall get_PlaybackSession(void**) noexcept = 0;
            virtual int32_t __stdcall StepForwardOneFrame() noexcept = 0;
            virtual int32_t __stdcall StepBackwardOneFrame() noexcept = 0;
            virtual int32_t __stdcall GetAsCastingSource(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayer4>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall SetSurfaceSize(winrt::Windows::Foundation::Size) noexcept = 0;
            virtual int32_t __stdcall GetSurface(void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayer5>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_VideoFrameAvailable(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_VideoFrameAvailable(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall get_IsVideoFrameServerEnabled(bool*) noexcept = 0;
            virtual int32_t __stdcall put_IsVideoFrameServerEnabled(bool) noexcept = 0;
            virtual int32_t __stdcall CopyFrameToVideoSurface(void*) noexcept = 0;
            virtual int32_t __stdcall CopyFrameToVideoSurfaceWithTargetRectangle(void*, winrt::Windows::Foundation::Rect) noexcept = 0;
            virtual int32_t __stdcall CopyFrameToStereoscopicVideoSurfaces(void*, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayer6>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall add_SubtitleFrameChanged(void*, winrt::event_token*) noexcept = 0;
            virtual int32_t __stdcall remove_SubtitleFrameChanged(winrt::event_token) noexcept = 0;
            virtual int32_t __stdcall RenderSubtitlesToSurface(void*, bool*) noexcept = 0;
            virtual int32_t __stdcall RenderSubtitlesToSurfaceWithTargetRectangle(void*, winrt::Windows::Foundation::Rect, bool*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayer7>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_AudioStateMonitor(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayerDataReceivedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Data(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayerEffects>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall AddAudioEffect(void*, bool, void*) noexcept = 0;
            virtual int32_t __stdcall RemoveAllEffects() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayerEffects2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall AddVideoEffect(void*, bool, void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayerFailedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Error(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_ExtendedErrorCode(winrt::hresult*) noexcept = 0;
            virtual int32_t __stdcall get_ErrorMessage(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayerRateChangedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_NewRate(double*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayerSource>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_ProtectionManager(void**) noexcept = 0;
            virtual int32_t __stdcall put_ProtectionManager(void*) noexcept = 0;
            virtual int32_t __stdcall SetFileSource(void*) noexcept = 0;
            virtual int32_t __stdcall SetStreamSource(void*) noexcept = 0;
            virtual int32_t __stdcall SetMediaSource(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayerSource2>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Source(void**) noexcept = 0;
            virtual int32_t __stdcall put_Source(void*) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IMediaPlayerSurface>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_CompositionSurface(void**) noexcept = 0;
            virtual int32_t __stdcall get_Compositor(void**) noexcept = 0;
            virtual int32_t __stdcall get_MediaPlayer(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IPlaybackMediaMarker>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Time(int64_t*) noexcept = 0;
            virtual int32_t __stdcall get_MediaMarkerType(void**) noexcept = 0;
            virtual int32_t __stdcall get_Text(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IPlaybackMediaMarkerFactory>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall CreateFromTime(int64_t, void**) noexcept = 0;
            virtual int32_t __stdcall Create(int64_t, void*, void*, void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IPlaybackMediaMarkerReachedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_PlaybackMediaMarker(void**) noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::IPlaybackMediaMarkerSequence>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Size(uint32_t*) noexcept = 0;
            virtual int32_t __stdcall Insert(void*) noexcept = 0;
            virtual int32_t __stdcall Clear() noexcept = 0;
        };
    };
    template <> struct abi<winrt::Windows::Media::Playback::ITimedMetadataPresentationModeChangedEventArgs>
    {
        struct __declspec(novtable) type : inspectable_abi
        {
            virtual int32_t __stdcall get_Track(void**) noexcept = 0;
            virtual int32_t __stdcall get_OldPresentationMode(int32_t*) noexcept = 0;
            virtual int32_t __stdcall get_NewPresentationMode(int32_t*) noexcept = 0;
        };
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IBackgroundMediaPlayerStatics
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlayer) Current() const;
        WINRT_IMPL_AUTO(winrt::event_token) MessageReceivedFromBackground(winrt::Windows::Foundation::EventHandler<winrt::Windows::Media::Playback::MediaPlayerDataReceivedEventArgs> const& value) const;
        using MessageReceivedFromBackground_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IBackgroundMediaPlayerStatics, &impl::abi_t<winrt::Windows::Media::Playback::IBackgroundMediaPlayerStatics>::remove_MessageReceivedFromBackground>;
        [[nodiscard]] MessageReceivedFromBackground_revoker MessageReceivedFromBackground(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Media::Playback::MediaPlayerDataReceivedEventArgs> const& value) const;
        WINRT_IMPL_AUTO(void) MessageReceivedFromBackground(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) MessageReceivedFromForeground(winrt::Windows::Foundation::EventHandler<winrt::Windows::Media::Playback::MediaPlayerDataReceivedEventArgs> const& value) const;
        using MessageReceivedFromForeground_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IBackgroundMediaPlayerStatics, &impl::abi_t<winrt::Windows::Media::Playback::IBackgroundMediaPlayerStatics>::remove_MessageReceivedFromForeground>;
        [[nodiscard]] MessageReceivedFromForeground_revoker MessageReceivedFromForeground(auto_revoke_t, winrt::Windows::Foundation::EventHandler<winrt::Windows::Media::Playback::MediaPlayerDataReceivedEventArgs> const& value) const;
        WINRT_IMPL_AUTO(void) MessageReceivedFromForeground(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(void) SendMessageToBackground(winrt::Windows::Foundation::Collections::ValueSet const& value) const;
        WINRT_IMPL_AUTO(void) SendMessageToForeground(winrt::Windows::Foundation::Collections::ValueSet const& value) const;
        WINRT_IMPL_AUTO(bool) IsMediaPlaying() const;
        WINRT_IMPL_AUTO(void) Shutdown() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IBackgroundMediaPlayerStatics>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IBackgroundMediaPlayerStatics<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_ICurrentMediaPlaybackItemChangedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) NewItem() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) OldItem() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_ICurrentMediaPlaybackItemChangedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_ICurrentMediaPlaybackItemChangedEventArgs2
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItemChangedReason) Reason() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::ICurrentMediaPlaybackItemChangedEventArgs2>
    {
        template <typename D> using type = consume_Windows_Media_Playback_ICurrentMediaPlaybackItemChangedEventArgs2<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaBreak
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackList) PlaybackList() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>) PresentationPosition() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreakInsertionMethod) InsertionMethod() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::ValueSet) CustomProperties() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) CanStart() const;
        WINRT_IMPL_AUTO(void) CanStart(bool value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaBreak>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaBreak<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaBreakEndedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreak) MediaBreak() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaBreakEndedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaBreakEndedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaBreakFactory
    {
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreak) Create(winrt::Windows::Media::Playback::MediaBreakInsertionMethod const& insertionMethod) const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreak) CreateWithPresentationPosition(winrt::Windows::Media::Playback::MediaBreakInsertionMethod const& insertionMethod, winrt::Windows::Foundation::TimeSpan const& presentationPosition) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaBreakFactory>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaBreakFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaBreakManager
    {
        WINRT_IMPL_AUTO(winrt::event_token) BreaksSeekedOver(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakManager, winrt::Windows::Media::Playback::MediaBreakSeekedOverEventArgs> const& handler) const;
        using BreaksSeekedOver_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaBreakManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaBreakManager>::remove_BreaksSeekedOver>;
        [[nodiscard]] BreaksSeekedOver_revoker BreaksSeekedOver(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakManager, winrt::Windows::Media::Playback::MediaBreakSeekedOverEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) BreaksSeekedOver(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) BreakStarted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakManager, winrt::Windows::Media::Playback::MediaBreakStartedEventArgs> const& handler) const;
        using BreakStarted_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaBreakManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaBreakManager>::remove_BreakStarted>;
        [[nodiscard]] BreakStarted_revoker BreakStarted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakManager, winrt::Windows::Media::Playback::MediaBreakStartedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) BreakStarted(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) BreakEnded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakManager, winrt::Windows::Media::Playback::MediaBreakEndedEventArgs> const& handler) const;
        using BreakEnded_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaBreakManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaBreakManager>::remove_BreakEnded>;
        [[nodiscard]] BreakEnded_revoker BreakEnded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakManager, winrt::Windows::Media::Playback::MediaBreakEndedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) BreakEnded(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) BreakSkipped(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakManager, winrt::Windows::Media::Playback::MediaBreakSkippedEventArgs> const& handler) const;
        using BreakSkipped_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaBreakManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaBreakManager>::remove_BreakSkipped>;
        [[nodiscard]] BreakSkipped_revoker BreakSkipped(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakManager, winrt::Windows::Media::Playback::MediaBreakSkippedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) BreakSkipped(winrt::event_token const& token) const noexcept;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreak) CurrentBreak() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackSession) PlaybackSession() const;
        WINRT_IMPL_AUTO(void) PlayBreak(winrt::Windows::Media::Playback::MediaBreak const& value) const;
        WINRT_IMPL_AUTO(void) SkipCurrentBreak() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaBreakManager>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaBreakManager<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaBreakSchedule
    {
        WINRT_IMPL_AUTO(winrt::event_token) ScheduleChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakSchedule, winrt::Windows::Foundation::IInspectable> const& handler) const;
        using ScheduleChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaBreakSchedule, &impl::abi_t<winrt::Windows::Media::Playback::IMediaBreakSchedule>::remove_ScheduleChanged>;
        [[nodiscard]] ScheduleChanged_revoker ScheduleChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaBreakSchedule, winrt::Windows::Foundation::IInspectable> const& handler) const;
        WINRT_IMPL_AUTO(void) ScheduleChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(void) InsertMidrollBreak(winrt::Windows::Media::Playback::MediaBreak const& mediaBreak) const;
        WINRT_IMPL_AUTO(void) RemoveMidrollBreak(winrt::Windows::Media::Playback::MediaBreak const& mediaBreak) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Media::Playback::MediaBreak>) MidrollBreaks() const;
        WINRT_IMPL_AUTO(void) PrerollBreak(winrt::Windows::Media::Playback::MediaBreak const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreak) PrerollBreak() const;
        WINRT_IMPL_AUTO(void) PostrollBreak(winrt::Windows::Media::Playback::MediaBreak const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreak) PostrollBreak() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) PlaybackItem() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaBreakSchedule>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaBreakSchedule<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaBreakSeekedOverEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Media::Playback::MediaBreak>) SeekedOverBreaks() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) OldPosition() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) NewPosition() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaBreakSeekedOverEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaBreakSeekedOverEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaBreakSkippedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreak) MediaBreak() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaBreakSkippedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaBreakSkippedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaBreakStartedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreak) MediaBreak() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaBreakStartedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaBreakStartedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaEnginePlaybackSource
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) CurrentItem() const;
        WINRT_IMPL_AUTO(void) SetPlaybackSource(winrt::Windows::Media::Playback::IMediaPlaybackSource const& source) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaEnginePlaybackSource>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaEnginePlaybackSource<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaItemDisplayProperties
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::MediaPlaybackType) Type() const;
        WINRT_IMPL_AUTO(void) Type(winrt::Windows::Media::MediaPlaybackType const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::MusicDisplayProperties) MusicProperties() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::VideoDisplayProperties) VideoProperties() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Storage::Streams::RandomAccessStreamReference) Thumbnail() const;
        WINRT_IMPL_AUTO(void) Thumbnail(winrt::Windows::Storage::Streams::RandomAccessStreamReference const& value) const;
        WINRT_IMPL_AUTO(void) ClearAll() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaItemDisplayProperties>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaItemDisplayProperties<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManager
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsEnabled() const;
        WINRT_IMPL_AUTO(void) IsEnabled(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlayer) MediaPlayer() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) PlayBehavior() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) PauseBehavior() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) NextBehavior() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) PreviousBehavior() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) FastForwardBehavior() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) RewindBehavior() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) ShuffleBehavior() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) AutoRepeatModeBehavior() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) PositionBehavior() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior) RateBehavior() const;
        WINRT_IMPL_AUTO(winrt::event_token) PlayReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPlayReceivedEventArgs> const& handler) const;
        using PlayReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_PlayReceived>;
        [[nodiscard]] PlayReceived_revoker PlayReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPlayReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) PlayReceived(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) PauseReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPauseReceivedEventArgs> const& handler) const;
        using PauseReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_PauseReceived>;
        [[nodiscard]] PauseReceived_revoker PauseReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPauseReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) PauseReceived(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) NextReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerNextReceivedEventArgs> const& handler) const;
        using NextReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_NextReceived>;
        [[nodiscard]] NextReceived_revoker NextReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerNextReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) NextReceived(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) PreviousReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPreviousReceivedEventArgs> const& handler) const;
        using PreviousReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_PreviousReceived>;
        [[nodiscard]] PreviousReceived_revoker PreviousReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPreviousReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) PreviousReceived(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) FastForwardReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerFastForwardReceivedEventArgs> const& handler) const;
        using FastForwardReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_FastForwardReceived>;
        [[nodiscard]] FastForwardReceived_revoker FastForwardReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerFastForwardReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) FastForwardReceived(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) RewindReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRewindReceivedEventArgs> const& handler) const;
        using RewindReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_RewindReceived>;
        [[nodiscard]] RewindReceived_revoker RewindReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRewindReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) RewindReceived(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) ShuffleReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerShuffleReceivedEventArgs> const& handler) const;
        using ShuffleReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_ShuffleReceived>;
        [[nodiscard]] ShuffleReceived_revoker ShuffleReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerShuffleReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) ShuffleReceived(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) AutoRepeatModeReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs> const& handler) const;
        using AutoRepeatModeReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_AutoRepeatModeReceived>;
        [[nodiscard]] AutoRepeatModeReceived_revoker AutoRepeatModeReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) AutoRepeatModeReceived(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) PositionReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPositionReceivedEventArgs> const& handler) const;
        using PositionReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_PositionReceived>;
        [[nodiscard]] PositionReceived_revoker PositionReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerPositionReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) PositionReceived(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) RateReceived(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRateReceivedEventArgs> const& handler) const;
        using RateReceived_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>::remove_RateReceived>;
        [[nodiscard]] RateReceived_revoker RateReceived(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManager, winrt::Windows::Media::Playback::MediaPlaybackCommandManagerRateReceivedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) RateReceived(winrt::event_token const& token) const noexcept;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManager>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManager<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::MediaPlaybackAutoRepeatMode) AutoRepeatMode() const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerCommandBehavior
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManager) CommandManager() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsEnabled() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaCommandEnablingRule) EnablingRule() const;
        WINRT_IMPL_AUTO(void) EnablingRule(winrt::Windows::Media::Playback::MediaCommandEnablingRule const& value) const;
        WINRT_IMPL_AUTO(winrt::event_token) IsEnabledChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior, winrt::Windows::Foundation::IInspectable> const& handler) const;
        using IsEnabledChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerCommandBehavior, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerCommandBehavior>::remove_IsEnabledChanged>;
        [[nodiscard]] IsEnabledChanged_revoker IsEnabledChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackCommandManagerCommandBehavior, winrt::Windows::Foundation::IInspectable> const& handler) const;
        WINRT_IMPL_AUTO(void) IsEnabledChanged(winrt::event_token const& token) const noexcept;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerCommandBehavior>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerCommandBehavior<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerFastForwardReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerFastForwardReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerFastForwardReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerNextReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerNextReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerNextReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerPauseReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPauseReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerPauseReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerPlayReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPlayReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerPlayReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerPositionReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) Position() const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPositionReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerPositionReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerPreviousReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerPreviousReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerPreviousReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerRateReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(double) PlaybackRate() const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRateReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerRateReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerRewindReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerRewindReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerRewindReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackCommandManagerShuffleReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) Handled() const;
        WINRT_IMPL_AUTO(void) Handled(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsShuffleRequested() const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Deferral) GetDeferral() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackCommandManagerShuffleReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackCommandManagerShuffleReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackItem
    {
        WINRT_IMPL_AUTO(winrt::event_token) AudioTracksChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackItem, winrt::Windows::Foundation::Collections::IVectorChangedEventArgs> const& handler) const;
        using AudioTracksChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackItem, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackItem>::remove_AudioTracksChanged>;
        [[nodiscard]] AudioTracksChanged_revoker AudioTracksChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackItem, winrt::Windows::Foundation::Collections::IVectorChangedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) AudioTracksChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) VideoTracksChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackItem, winrt::Windows::Foundation::Collections::IVectorChangedEventArgs> const& handler) const;
        using VideoTracksChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackItem, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackItem>::remove_VideoTracksChanged>;
        [[nodiscard]] VideoTracksChanged_revoker VideoTracksChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackItem, winrt::Windows::Foundation::Collections::IVectorChangedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) VideoTracksChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) TimedMetadataTracksChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackItem, winrt::Windows::Foundation::Collections::IVectorChangedEventArgs> const& handler) const;
        using TimedMetadataTracksChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackItem, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackItem>::remove_TimedMetadataTracksChanged>;
        [[nodiscard]] TimedMetadataTracksChanged_revoker TimedMetadataTracksChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackItem, winrt::Windows::Foundation::Collections::IVectorChangedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) TimedMetadataTracksChanged(winrt::event_token const& token) const noexcept;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Core::MediaSource) Source() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackAudioTrackList) AudioTracks() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackVideoTrackList) VideoTracks() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackTimedMetadataTrackList) TimedMetadataTracks() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackItem>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackItem<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackItem2
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreakSchedule) BreakSchedule() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) StartTime() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>) DurationLimit() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) CanSkip() const;
        WINRT_IMPL_AUTO(void) CanSkip(bool value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaItemDisplayProperties) GetDisplayProperties() const;
        WINRT_IMPL_AUTO(void) ApplyDisplayProperties(winrt::Windows::Media::Playback::MediaItemDisplayProperties const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackItem2>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackItem2<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackItem3
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsDisabledInPlaybackList() const;
        WINRT_IMPL_AUTO(void) IsDisabledInPlaybackList(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(double) TotalDownloadProgress() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::AutoLoadedDisplayPropertyKind) AutoLoadedDisplayProperties() const;
        WINRT_IMPL_AUTO(void) AutoLoadedDisplayProperties(winrt::Windows::Media::Playback::AutoLoadedDisplayPropertyKind const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackItem3>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackItem3<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackItemError
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItemErrorCode) ErrorCode() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::hresult) ExtendedError() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackItemError>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackItemError<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackItemFactory
    {
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) Create(winrt::Windows::Media::Core::MediaSource const& source) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackItemFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackItemFactory2
    {
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) CreateWithStartTime(winrt::Windows::Media::Core::MediaSource const& source, winrt::Windows::Foundation::TimeSpan const& startTime) const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) CreateWithStartTimeAndDurationLimit(winrt::Windows::Media::Core::MediaSource const& source, winrt::Windows::Foundation::TimeSpan const& startTime, winrt::Windows::Foundation::TimeSpan const& durationLimit) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackItemFactory2>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackItemFactory2<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackItemFailedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) Item() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItemError) Error() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackItemFailedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackItemFailedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackItemOpenedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) Item() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackItemOpenedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackItemOpenedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackItemStatics
    {
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) FindFromMediaSource(winrt::Windows::Media::Core::MediaSource const& source) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackItemStatics>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackItemStatics<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackList
    {
        WINRT_IMPL_AUTO(winrt::event_token) ItemFailed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackList, winrt::Windows::Media::Playback::MediaPlaybackItemFailedEventArgs> const& handler) const;
        using ItemFailed_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackList, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackList>::remove_ItemFailed>;
        [[nodiscard]] ItemFailed_revoker ItemFailed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackList, winrt::Windows::Media::Playback::MediaPlaybackItemFailedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) ItemFailed(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) CurrentItemChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackList, winrt::Windows::Media::Playback::CurrentMediaPlaybackItemChangedEventArgs> const& handler) const;
        using CurrentItemChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackList, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackList>::remove_CurrentItemChanged>;
        [[nodiscard]] CurrentItemChanged_revoker CurrentItemChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackList, winrt::Windows::Media::Playback::CurrentMediaPlaybackItemChangedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) CurrentItemChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) ItemOpened(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackList, winrt::Windows::Media::Playback::MediaPlaybackItemOpenedEventArgs> const& handler) const;
        using ItemOpened_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackList, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackList>::remove_ItemOpened>;
        [[nodiscard]] ItemOpened_revoker ItemOpened(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackList, winrt::Windows::Media::Playback::MediaPlaybackItemOpenedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) ItemOpened(winrt::event_token const& token) const noexcept;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IObservableVector<winrt::Windows::Media::Playback::MediaPlaybackItem>) Items() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) AutoRepeatEnabled() const;
        WINRT_IMPL_AUTO(void) AutoRepeatEnabled(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) ShuffleEnabled() const;
        WINRT_IMPL_AUTO(void) ShuffleEnabled(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) CurrentItem() const;
        [[nodiscard]] WINRT_IMPL_AUTO(uint32_t) CurrentItemIndex() const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) MoveNext() const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) MovePrevious() const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) MoveTo(uint32_t itemIndex) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackList>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackList<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackList2
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan>) MaxPrefetchTime() const;
        WINRT_IMPL_AUTO(void) MaxPrefetchTime(winrt::Windows::Foundation::IReference<winrt::Windows::Foundation::TimeSpan> const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackItem) StartingItem() const;
        WINRT_IMPL_AUTO(void) StartingItem(winrt::Windows::Media::Playback::MediaPlaybackItem const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Media::Playback::MediaPlaybackItem>) ShuffledItems() const;
        WINRT_IMPL_AUTO(void) SetShuffledItems(param::iterable<winrt::Windows::Media::Playback::MediaPlaybackItem> const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackList2>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackList2<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackList3
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::IReference<uint32_t>) MaxPlayedItemsToKeepOpen() const;
        WINRT_IMPL_AUTO(void) MaxPlayedItemsToKeepOpen(winrt::Windows::Foundation::IReference<uint32_t> const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackList3>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackList3<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackSession
    {
        WINRT_IMPL_AUTO(winrt::event_token) PlaybackStateChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using PlaybackStateChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_PlaybackStateChanged>;
        [[nodiscard]] PlaybackStateChanged_revoker PlaybackStateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) PlaybackStateChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) PlaybackRateChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using PlaybackRateChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_PlaybackRateChanged>;
        [[nodiscard]] PlaybackRateChanged_revoker PlaybackRateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) PlaybackRateChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) SeekCompleted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using SeekCompleted_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_SeekCompleted>;
        [[nodiscard]] SeekCompleted_revoker SeekCompleted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) SeekCompleted(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) BufferingStarted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using BufferingStarted_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_BufferingStarted>;
        [[nodiscard]] BufferingStarted_revoker BufferingStarted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) BufferingStarted(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) BufferingEnded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using BufferingEnded_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_BufferingEnded>;
        [[nodiscard]] BufferingEnded_revoker BufferingEnded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) BufferingEnded(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) BufferingProgressChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using BufferingProgressChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_BufferingProgressChanged>;
        [[nodiscard]] BufferingProgressChanged_revoker BufferingProgressChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) BufferingProgressChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) DownloadProgressChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using DownloadProgressChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_DownloadProgressChanged>;
        [[nodiscard]] DownloadProgressChanged_revoker DownloadProgressChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) DownloadProgressChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) NaturalDurationChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using NaturalDurationChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_NaturalDurationChanged>;
        [[nodiscard]] NaturalDurationChanged_revoker NaturalDurationChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) NaturalDurationChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) PositionChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using PositionChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_PositionChanged>;
        [[nodiscard]] PositionChanged_revoker PositionChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) PositionChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) NaturalVideoSizeChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using NaturalVideoSizeChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession>::remove_NaturalVideoSizeChanged>;
        [[nodiscard]] NaturalVideoSizeChanged_revoker NaturalVideoSizeChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) NaturalVideoSizeChanged(winrt::event_token const& token) const noexcept;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlayer) MediaPlayer() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) NaturalDuration() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) Position() const;
        WINRT_IMPL_AUTO(void) Position(winrt::Windows::Foundation::TimeSpan const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackState) PlaybackState() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) CanSeek() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) CanPause() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsProtected() const;
        [[nodiscard]] WINRT_IMPL_AUTO(double) PlaybackRate() const;
        WINRT_IMPL_AUTO(void) PlaybackRate(double value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(double) BufferingProgress() const;
        [[nodiscard]] WINRT_IMPL_AUTO(double) DownloadProgress() const;
        [[nodiscard]] WINRT_IMPL_AUTO(uint32_t) NaturalVideoHeight() const;
        [[nodiscard]] WINRT_IMPL_AUTO(uint32_t) NaturalVideoWidth() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Rect) NormalizedSourceRect() const;
        WINRT_IMPL_AUTO(void) NormalizedSourceRect(winrt::Windows::Foundation::Rect const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::MediaProperties::StereoscopicVideoPackingMode) StereoscopicVideoPackingMode() const;
        WINRT_IMPL_AUTO(void) StereoscopicVideoPackingMode(winrt::Windows::Media::MediaProperties::StereoscopicVideoPackingMode const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackSession>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackSession<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackSession2
    {
        WINRT_IMPL_AUTO(winrt::event_token) BufferedRangesChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using BufferedRangesChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession2, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession2>::remove_BufferedRangesChanged>;
        [[nodiscard]] BufferedRangesChanged_revoker BufferedRangesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) BufferedRangesChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) PlayedRangesChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using PlayedRangesChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession2, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession2>::remove_PlayedRangesChanged>;
        [[nodiscard]] PlayedRangesChanged_revoker PlayedRangesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) PlayedRangesChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) SeekableRangesChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using SeekableRangesChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession2, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession2>::remove_SeekableRangesChanged>;
        [[nodiscard]] SeekableRangesChanged_revoker SeekableRangesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) SeekableRangesChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) SupportedPlaybackRatesChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        using SupportedPlaybackRatesChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackSession2, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackSession2>::remove_SupportedPlaybackRatesChanged>;
        [[nodiscard]] SupportedPlaybackRatesChanged_revoker SupportedPlaybackRatesChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackSession, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) SupportedPlaybackRatesChanged(winrt::event_token const& token) const noexcept;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackSphericalVideoProjection) SphericalVideoProjection() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsMirroring() const;
        WINRT_IMPL_AUTO(void) IsMirroring(bool value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Media::MediaTimeRange>) GetBufferedRanges() const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Media::MediaTimeRange>) GetPlayedRanges() const;
        WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::IVectorView<winrt::Windows::Media::MediaTimeRange>) GetSeekableRanges() const;
        WINRT_IMPL_AUTO(bool) IsSupportedPlaybackRateRange(double rate1, double rate2) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackSession2>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackSession2<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackSession3
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::MediaProperties::MediaRotation) PlaybackRotation() const;
        WINRT_IMPL_AUTO(void) PlaybackRotation(winrt::Windows::Media::MediaProperties::MediaRotation const& value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackSessionOutputDegradationPolicyState) GetOutputDegradationPolicyState() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackSession3>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackSession3<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackSessionBufferingStartedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsPlaybackInterruption() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackSessionBufferingStartedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackSessionBufferingStartedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackSessionOutputDegradationPolicyState
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackSessionVideoConstrictionReason) VideoConstrictionReason() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackSessionOutputDegradationPolicyState>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackSessionOutputDegradationPolicyState<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackSource
    {
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackSource>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackSource<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackSphericalVideoProjection
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsEnabled() const;
        WINRT_IMPL_AUTO(void) IsEnabled(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::MediaProperties::SphericalVideoFrameFormat) FrameFormat() const;
        WINRT_IMPL_AUTO(void) FrameFormat(winrt::Windows::Media::MediaProperties::SphericalVideoFrameFormat const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(double) HorizontalFieldOfViewInDegrees() const;
        WINRT_IMPL_AUTO(void) HorizontalFieldOfViewInDegrees(double value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Numerics::quaternion) ViewOrientation() const;
        WINRT_IMPL_AUTO(void) ViewOrientation(winrt::Windows::Foundation::Numerics::quaternion const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::SphericalVideoProjectionMode) ProjectionMode() const;
        WINRT_IMPL_AUTO(void) ProjectionMode(winrt::Windows::Media::Playback::SphericalVideoProjectionMode const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackSphericalVideoProjection>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackSphericalVideoProjection<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlaybackTimedMetadataTrackList
    {
        WINRT_IMPL_AUTO(winrt::event_token) PresentationModeChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackTimedMetadataTrackList, winrt::Windows::Media::Playback::TimedMetadataPresentationModeChangedEventArgs> const& handler) const;
        using PresentationModeChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlaybackTimedMetadataTrackList, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlaybackTimedMetadataTrackList>::remove_PresentationModeChanged>;
        [[nodiscard]] PresentationModeChanged_revoker PresentationModeChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlaybackTimedMetadataTrackList, winrt::Windows::Media::Playback::TimedMetadataPresentationModeChangedEventArgs> const& handler) const;
        WINRT_IMPL_AUTO(void) PresentationModeChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::TimedMetadataTrackPresentationMode) GetPresentationMode(uint32_t index) const;
        WINRT_IMPL_AUTO(void) SetPresentationMode(uint32_t index, winrt::Windows::Media::Playback::TimedMetadataTrackPresentationMode const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlaybackTimedMetadataTrackList>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlaybackTimedMetadataTrackList<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayer
    {
        [[nodiscard]] WINRT_IMPL_AUTO(bool) AutoPlay() const;
        WINRT_IMPL_AUTO(void) AutoPlay(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) NaturalDuration() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) Position() const;
        WINRT_IMPL_AUTO(void) Position(winrt::Windows::Foundation::TimeSpan const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(double) BufferingProgress() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlayerState) CurrentState() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) CanSeek() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) CanPause() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsLoopingEnabled() const;
        WINRT_IMPL_AUTO(void) IsLoopingEnabled(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsProtected() const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsMuted() const;
        WINRT_IMPL_AUTO(void) IsMuted(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(double) PlaybackRate() const;
        WINRT_IMPL_AUTO(void) PlaybackRate(double value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(double) Volume() const;
        WINRT_IMPL_AUTO(void) Volume(double value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::PlaybackMediaMarkerSequence) PlaybackMediaMarkers() const;
        WINRT_IMPL_AUTO(winrt::event_token) MediaOpened(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using MediaOpened_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_MediaOpened>;
        [[nodiscard]] MediaOpened_revoker MediaOpened(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) MediaOpened(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) MediaEnded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using MediaEnded_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_MediaEnded>;
        [[nodiscard]] MediaEnded_revoker MediaEnded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) MediaEnded(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) MediaFailed(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Media::Playback::MediaPlayerFailedEventArgs> const& value) const;
        using MediaFailed_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_MediaFailed>;
        [[nodiscard]] MediaFailed_revoker MediaFailed(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Media::Playback::MediaPlayerFailedEventArgs> const& value) const;
        WINRT_IMPL_AUTO(void) MediaFailed(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) CurrentStateChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using CurrentStateChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_CurrentStateChanged>;
        [[nodiscard]] CurrentStateChanged_revoker CurrentStateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) CurrentStateChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) PlaybackMediaMarkerReached(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Media::Playback::PlaybackMediaMarkerReachedEventArgs> const& value) const;
        using PlaybackMediaMarkerReached_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_PlaybackMediaMarkerReached>;
        [[nodiscard]] PlaybackMediaMarkerReached_revoker PlaybackMediaMarkerReached(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Media::Playback::PlaybackMediaMarkerReachedEventArgs> const& value) const;
        WINRT_IMPL_AUTO(void) PlaybackMediaMarkerReached(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) MediaPlayerRateChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Media::Playback::MediaPlayerRateChangedEventArgs> const& value) const;
        using MediaPlayerRateChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_MediaPlayerRateChanged>;
        [[nodiscard]] MediaPlayerRateChanged_revoker MediaPlayerRateChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Media::Playback::MediaPlayerRateChangedEventArgs> const& value) const;
        WINRT_IMPL_AUTO(void) MediaPlayerRateChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) VolumeChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using VolumeChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_VolumeChanged>;
        [[nodiscard]] VolumeChanged_revoker VolumeChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) VolumeChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) SeekCompleted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using SeekCompleted_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_SeekCompleted>;
        [[nodiscard]] SeekCompleted_revoker SeekCompleted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) SeekCompleted(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) BufferingStarted(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using BufferingStarted_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_BufferingStarted>;
        [[nodiscard]] BufferingStarted_revoker BufferingStarted(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) BufferingStarted(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) BufferingEnded(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using BufferingEnded_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer>::remove_BufferingEnded>;
        [[nodiscard]] BufferingEnded_revoker BufferingEnded(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) BufferingEnded(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(void) Play() const;
        WINRT_IMPL_AUTO(void) Pause() const;
        WINRT_IMPL_AUTO(void) SetUriSource(winrt::Windows::Foundation::Uri const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayer>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayer<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayer2
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::SystemMediaTransportControls) SystemMediaTransportControls() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlayerAudioCategory) AudioCategory() const;
        WINRT_IMPL_AUTO(void) AudioCategory(winrt::Windows::Media::Playback::MediaPlayerAudioCategory const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlayerAudioDeviceType) AudioDeviceType() const;
        WINRT_IMPL_AUTO(void) AudioDeviceType(winrt::Windows::Media::Playback::MediaPlayerAudioDeviceType const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayer2>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayer2<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayer3
    {
        WINRT_IMPL_AUTO(winrt::event_token) IsMutedChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using IsMutedChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer3, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer3>::remove_IsMutedChanged>;
        [[nodiscard]] IsMutedChanged_revoker IsMutedChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) IsMutedChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(winrt::event_token) SourceChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using SourceChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer3, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer3>::remove_SourceChanged>;
        [[nodiscard]] SourceChanged_revoker SourceChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) SourceChanged(winrt::event_token const& token) const noexcept;
        [[nodiscard]] WINRT_IMPL_AUTO(double) AudioBalance() const;
        WINRT_IMPL_AUTO(void) AudioBalance(double value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) RealTimePlayback() const;
        WINRT_IMPL_AUTO(void) RealTimePlayback(bool value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::StereoscopicVideoRenderMode) StereoscopicVideoRenderMode() const;
        WINRT_IMPL_AUTO(void) StereoscopicVideoRenderMode(winrt::Windows::Media::Playback::StereoscopicVideoRenderMode const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaBreakManager) BreakManager() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackCommandManager) CommandManager() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Devices::Enumeration::DeviceInformation) AudioDevice() const;
        WINRT_IMPL_AUTO(void) AudioDevice(winrt::Windows::Devices::Enumeration::DeviceInformation const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::MediaTimelineController) TimelineController() const;
        WINRT_IMPL_AUTO(void) TimelineController(winrt::Windows::Media::MediaTimelineController const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) TimelineControllerPositionOffset() const;
        WINRT_IMPL_AUTO(void) TimelineControllerPositionOffset(winrt::Windows::Foundation::TimeSpan const& value) const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlaybackSession) PlaybackSession() const;
        WINRT_IMPL_AUTO(void) StepForwardOneFrame() const;
        WINRT_IMPL_AUTO(void) StepBackwardOneFrame() const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Casting::CastingSource) GetAsCastingSource() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayer3>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayer3<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayer4
    {
        WINRT_IMPL_AUTO(void) SetSurfaceSize(winrt::Windows::Foundation::Size const& size) const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlayerSurface) GetSurface(winrt::Windows::UI::Composition::Compositor const& compositor) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayer4>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayer4<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayer5
    {
        WINRT_IMPL_AUTO(winrt::event_token) VideoFrameAvailable(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        using VideoFrameAvailable_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer5, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer5>::remove_VideoFrameAvailable>;
        [[nodiscard]] VideoFrameAvailable_revoker VideoFrameAvailable(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& value) const;
        WINRT_IMPL_AUTO(void) VideoFrameAvailable(winrt::event_token const& token) const noexcept;
        [[nodiscard]] WINRT_IMPL_AUTO(bool) IsVideoFrameServerEnabled() const;
        WINRT_IMPL_AUTO(void) IsVideoFrameServerEnabled(bool value) const;
        WINRT_IMPL_AUTO(void) CopyFrameToVideoSurface(winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& destination) const;
        WINRT_IMPL_AUTO(void) CopyFrameToVideoSurface(winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& destination, winrt::Windows::Foundation::Rect const& targetRectangle) const;
        WINRT_IMPL_AUTO(void) CopyFrameToStereoscopicVideoSurfaces(winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& destinationLeftEye, winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& destinationRightEye) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayer5>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayer5<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayer6
    {
        WINRT_IMPL_AUTO(winrt::event_token) SubtitleFrameChanged(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& handler) const;
        using SubtitleFrameChanged_revoker = impl::event_revoker<winrt::Windows::Media::Playback::IMediaPlayer6, &impl::abi_t<winrt::Windows::Media::Playback::IMediaPlayer6>::remove_SubtitleFrameChanged>;
        [[nodiscard]] SubtitleFrameChanged_revoker SubtitleFrameChanged(auto_revoke_t, winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Media::Playback::MediaPlayer, winrt::Windows::Foundation::IInspectable> const& handler) const;
        WINRT_IMPL_AUTO(void) SubtitleFrameChanged(winrt::event_token const& token) const noexcept;
        WINRT_IMPL_AUTO(bool) RenderSubtitlesToSurface(winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& destination) const;
        WINRT_IMPL_AUTO(bool) RenderSubtitlesToSurface(winrt::Windows::Graphics::DirectX::Direct3D11::IDirect3DSurface const& destination, winrt::Windows::Foundation::Rect const& targetRectangle) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayer6>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayer6<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayer7
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Audio::AudioStateMonitor) AudioStateMonitor() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayer7>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayer7<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayerDataReceivedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::Collections::ValueSet) Data() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayerDataReceivedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayerDataReceivedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayerEffects
    {
        WINRT_IMPL_AUTO(void) AddAudioEffect(param::hstring const& activatableClassId, bool effectOptional, winrt::Windows::Foundation::Collections::IPropertySet const& configuration) const;
        WINRT_IMPL_AUTO(void) RemoveAllEffects() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayerEffects>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayerEffects<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayerEffects2
    {
        WINRT_IMPL_AUTO(void) AddVideoEffect(param::hstring const& activatableClassId, bool effectOptional, winrt::Windows::Foundation::Collections::IPropertySet const& effectConfiguration) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayerEffects2>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayerEffects2<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayerFailedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlayerError) Error() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::hresult) ExtendedErrorCode() const;
        [[nodiscard]] WINRT_IMPL_AUTO(hstring) ErrorMessage() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayerFailedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayerFailedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayerRateChangedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(double) NewRate() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayerRateChangedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayerRateChangedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayerSource
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Protection::MediaProtectionManager) ProtectionManager() const;
        WINRT_IMPL_AUTO(void) ProtectionManager(winrt::Windows::Media::Protection::MediaProtectionManager const& value) const;
        WINRT_IMPL_AUTO(void) SetFileSource(winrt::Windows::Storage::IStorageFile const& file) const;
        WINRT_IMPL_AUTO(void) SetStreamSource(winrt::Windows::Storage::Streams::IRandomAccessStream const& stream) const;
        WINRT_IMPL_AUTO(void) SetMediaSource(winrt::Windows::Media::Core::IMediaSource const& source) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayerSource>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayerSource<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayerSource2
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::IMediaPlaybackSource) Source() const;
        WINRT_IMPL_AUTO(void) Source(winrt::Windows::Media::Playback::IMediaPlaybackSource const& value) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayerSource2>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayerSource2<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IMediaPlayerSurface
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::UI::Composition::ICompositionSurface) CompositionSurface() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::UI::Composition::Compositor) Compositor() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::MediaPlayer) MediaPlayer() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IMediaPlayerSurface>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IMediaPlayerSurface<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IPlaybackMediaMarker
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Foundation::TimeSpan) Time() const;
        [[nodiscard]] WINRT_IMPL_AUTO(hstring) MediaMarkerType() const;
        [[nodiscard]] WINRT_IMPL_AUTO(hstring) Text() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IPlaybackMediaMarker>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IPlaybackMediaMarker<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IPlaybackMediaMarkerFactory
    {
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::PlaybackMediaMarker) CreateFromTime(winrt::Windows::Foundation::TimeSpan const& value) const;
        WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::PlaybackMediaMarker) Create(winrt::Windows::Foundation::TimeSpan const& value, param::hstring const& mediaMarketType, param::hstring const& text) const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IPlaybackMediaMarkerFactory>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IPlaybackMediaMarkerFactory<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IPlaybackMediaMarkerReachedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::PlaybackMediaMarker) PlaybackMediaMarker() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IPlaybackMediaMarkerReachedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IPlaybackMediaMarkerReachedEventArgs<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_IPlaybackMediaMarkerSequence
    {
        [[nodiscard]] WINRT_IMPL_AUTO(uint32_t) Size() const;
        WINRT_IMPL_AUTO(void) Insert(winrt::Windows::Media::Playback::PlaybackMediaMarker const& value) const;
        WINRT_IMPL_AUTO(void) Clear() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::IPlaybackMediaMarkerSequence>
    {
        template <typename D> using type = consume_Windows_Media_Playback_IPlaybackMediaMarkerSequence<D>;
    };
    template <typename D>
    struct consume_Windows_Media_Playback_ITimedMetadataPresentationModeChangedEventArgs
    {
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Core::TimedMetadataTrack) Track() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::TimedMetadataTrackPresentationMode) OldPresentationMode() const;
        [[nodiscard]] WINRT_IMPL_AUTO(winrt::Windows::Media::Playback::TimedMetadataTrackPresentationMode) NewPresentationMode() const;
    };
    template <> struct consume<winrt::Windows::Media::Playback::ITimedMetadataPresentationModeChangedEventArgs>
    {
        template <typename D> using type = consume_Windows_Media_Playback_ITimedMetadataPresentationModeChangedEventArgs<D>;
    };
}
#endif
