//
// Copyright (c) Microsoft Corporation. All rights reserved.
// 
//
// File generated by WinMDIDL version 8.00.0021
//

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Devices.Enumeration.idl";
import "Windows.Foundation.Numerics.idl";
import "Windows.Graphics.DirectX.Direct3D11.idl";
import "Windows.Media.idl";
import "Windows.Media.Audio.idl";
import "Windows.Media.Casting.idl";
import "Windows.Media.Core.idl";
import "Windows.Media.MediaProperties.idl";
import "Windows.Media.Protection.idl";
import "Windows.Storage.idl";
import "Windows.Storage.Streams.idl";
import "Windows.UI.Composition.idl";

// Forward Declare
namespace Windows
{
    namespace Devices
    {
        namespace Enumeration
        {
            runtimeclass DeviceInformation;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            interface IPropertySet;

            interface IVectorChangedEventArgs;

            runtimeclass ValueSet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        runtimeclass Deferral;

        interface IClosable;
    }
}
namespace Windows
{
    namespace Foundation
    {
        namespace Numerics
        {
            typedef struct Quaternion Quaternion;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct Rect Rect;

        typedef struct Size Size;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace DirectX
        {
            namespace Direct3D11
            {
                interface IDirect3DSurface;
            }
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Audio
        {
            runtimeclass AudioStateMonitor;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Casting
        {
            runtimeclass CastingSource;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Core
        {
            runtimeclass AudioTrack;

            interface IMediaSource;

            interface ISingleSelectMediaTrackList;

            runtimeclass MediaSource;

            runtimeclass TimedMetadataTrack;

            runtimeclass VideoTrack;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        typedef enum MediaPlaybackAutoRepeatMode MediaPlaybackAutoRepeatMode;

        typedef enum MediaPlaybackType MediaPlaybackType;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace MediaProperties
        {
            typedef enum MediaRotation MediaRotation;

            typedef enum SphericalVideoFrameFormat SphericalVideoFrameFormat;

            typedef enum StereoscopicVideoPackingMode StereoscopicVideoPackingMode;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        typedef struct MediaTimeRange MediaTimeRange;

        runtimeclass MediaTimelineController;

        runtimeclass MusicDisplayProperties;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Protection
        {
            runtimeclass MediaProtectionManager;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        runtimeclass SystemMediaTransportControls;

        runtimeclass VideoDisplayProperties;
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageFile;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IRandomAccessStream;

            runtimeclass RandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Composition
        {
            runtimeclass Compositor;

            interface ICompositionSurface;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Playback
        {
            typedef enum AutoLoadedDisplayPropertyKind AutoLoadedDisplayPropertyKind;

            typedef enum FailedMediaStreamKind FailedMediaStreamKind;

            typedef enum MediaBreakInsertionMethod MediaBreakInsertionMethod;

            typedef enum MediaCommandEnablingRule MediaCommandEnablingRule;

            typedef enum MediaPlaybackItemChangedReason MediaPlaybackItemChangedReason;

            typedef enum MediaPlaybackItemErrorCode MediaPlaybackItemErrorCode;

            typedef enum MediaPlaybackSessionVideoConstrictionReason MediaPlaybackSessionVideoConstrictionReason;

            typedef enum MediaPlaybackState MediaPlaybackState;

            typedef enum MediaPlayerAudioCategory MediaPlayerAudioCategory;

            typedef enum MediaPlayerAudioDeviceType MediaPlayerAudioDeviceType;

            typedef enum MediaPlayerError MediaPlayerError;

            typedef enum MediaPlayerState MediaPlayerState;

            typedef enum SphericalVideoProjectionMode SphericalVideoProjectionMode;

            typedef enum StereoscopicVideoRenderMode StereoscopicVideoRenderMode;

            typedef enum TimedMetadataTrackPresentationMode TimedMetadataTrackPresentationMode;

            interface IBackgroundMediaPlayerStatics;

            interface ICurrentMediaPlaybackItemChangedEventArgs;

            interface ICurrentMediaPlaybackItemChangedEventArgs2;

            interface IMediaBreak;

            interface IMediaBreakEndedEventArgs;

            interface IMediaBreakFactory;

            interface IMediaBreakManager;

            interface IMediaBreakSchedule;

            interface IMediaBreakSeekedOverEventArgs;

            interface IMediaBreakSkippedEventArgs;

            interface IMediaBreakStartedEventArgs;

            interface IMediaEnginePlaybackSource;

            interface IMediaItemDisplayProperties;

            interface IMediaPlaybackCommandManager;

            interface IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs;

            interface IMediaPlaybackCommandManagerCommandBehavior;

            interface IMediaPlaybackCommandManagerFastForwardReceivedEventArgs;

            interface IMediaPlaybackCommandManagerNextReceivedEventArgs;

            interface IMediaPlaybackCommandManagerPauseReceivedEventArgs;

            interface IMediaPlaybackCommandManagerPlayReceivedEventArgs;

            interface IMediaPlaybackCommandManagerPositionReceivedEventArgs;

            interface IMediaPlaybackCommandManagerPreviousReceivedEventArgs;

            interface IMediaPlaybackCommandManagerRateReceivedEventArgs;

            interface IMediaPlaybackCommandManagerRewindReceivedEventArgs;

            interface IMediaPlaybackCommandManagerShuffleReceivedEventArgs;

            interface IMediaPlaybackItem;

            interface IMediaPlaybackItem2;

            interface IMediaPlaybackItem3;

            interface IMediaPlaybackItemError;

            interface IMediaPlaybackItemFactory;

            interface IMediaPlaybackItemFactory2;

            interface IMediaPlaybackItemFailedEventArgs;

            interface IMediaPlaybackItemOpenedEventArgs;

            interface IMediaPlaybackItemStatics;

            interface IMediaPlaybackList;

            interface IMediaPlaybackList2;

            interface IMediaPlaybackList3;

            interface IMediaPlaybackSession;

            interface IMediaPlaybackSession2;

            interface IMediaPlaybackSession3;

            interface IMediaPlaybackSessionBufferingStartedEventArgs;

            interface IMediaPlaybackSessionOutputDegradationPolicyState;

            interface IMediaPlaybackSource;

            interface IMediaPlaybackSphericalVideoProjection;

            interface IMediaPlaybackTimedMetadataTrackList;

            interface IMediaPlayer;

            interface IMediaPlayer2;

            interface IMediaPlayer3;

            interface IMediaPlayer4;

            interface IMediaPlayer5;

            interface IMediaPlayer6;

            interface IMediaPlayer7;

            interface IMediaPlayerDataReceivedEventArgs;

            interface IMediaPlayerEffects;

            interface IMediaPlayerEffects2;

            interface IMediaPlayerFailedEventArgs;

            interface IMediaPlayerRateChangedEventArgs;

            interface IMediaPlayerSource;

            interface IMediaPlayerSource2;

            interface IMediaPlayerSurface;

            interface IPlaybackMediaMarker;

            interface IPlaybackMediaMarkerFactory;

            interface IPlaybackMediaMarkerReachedEventArgs;

            interface IPlaybackMediaMarkerSequence;

            interface ITimedMetadataPresentationModeChangedEventArgs;

            runtimeclass BackgroundMediaPlayer;

            runtimeclass CurrentMediaPlaybackItemChangedEventArgs;

            runtimeclass MediaBreak;

            runtimeclass MediaBreakEndedEventArgs;

            runtimeclass MediaBreakManager;

            runtimeclass MediaBreakSchedule;

            runtimeclass MediaBreakSeekedOverEventArgs;

            runtimeclass MediaBreakSkippedEventArgs;

            runtimeclass MediaBreakStartedEventArgs;

            runtimeclass MediaItemDisplayProperties;

            runtimeclass MediaPlaybackAudioTrackList;

            runtimeclass MediaPlaybackCommandManager;

            runtimeclass MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs;

            runtimeclass MediaPlaybackCommandManagerCommandBehavior;

            runtimeclass MediaPlaybackCommandManagerFastForwardReceivedEventArgs;

            runtimeclass MediaPlaybackCommandManagerNextReceivedEventArgs;

            runtimeclass MediaPlaybackCommandManagerPauseReceivedEventArgs;

            runtimeclass MediaPlaybackCommandManagerPlayReceivedEventArgs;

            runtimeclass MediaPlaybackCommandManagerPositionReceivedEventArgs;

            runtimeclass MediaPlaybackCommandManagerPreviousReceivedEventArgs;

            runtimeclass MediaPlaybackCommandManagerRateReceivedEventArgs;

            runtimeclass MediaPlaybackCommandManagerRewindReceivedEventArgs;

            runtimeclass MediaPlaybackCommandManagerShuffleReceivedEventArgs;

            runtimeclass MediaPlaybackItem;

            runtimeclass MediaPlaybackItemError;

            runtimeclass MediaPlaybackItemFailedEventArgs;

            runtimeclass MediaPlaybackItemOpenedEventArgs;

            runtimeclass MediaPlaybackList;

            runtimeclass MediaPlaybackSession;

            runtimeclass MediaPlaybackSessionBufferingStartedEventArgs;

            runtimeclass MediaPlaybackSessionOutputDegradationPolicyState;

            runtimeclass MediaPlaybackSphericalVideoProjection;

            runtimeclass MediaPlaybackTimedMetadataTrackList;

            runtimeclass MediaPlaybackVideoTrackList;

            runtimeclass MediaPlayer;

            runtimeclass MediaPlayerDataReceivedEventArgs;

            runtimeclass MediaPlayerFailedEventArgs;

            runtimeclass MediaPlayerRateChangedEventArgs;

            runtimeclass MediaPlayerSurface;

            runtimeclass PlaybackMediaMarker;

            runtimeclass PlaybackMediaMarkerReachedEventArgs;

            runtimeclass PlaybackMediaMarkerSequence;

            runtimeclass TimedMetadataPresentationModeChangedEventArgs;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Media
    {
        namespace Playback
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Media.Playback.MediaBreak*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Playback.MediaPlaybackItem*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Playback.PlaybackMediaMarker*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Playback.MediaBreak*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Playback.MediaPlaybackItem*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Playback.PlaybackMediaMarker*>;

                interface Windows.Foundation.Collections.IObservableVector<Windows.Media.Playback.MediaPlaybackItem*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Playback.MediaBreak*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Playback.MediaPlaybackItem*>;

                interface Windows.Foundation.Collections.IVector<Windows.Media.Playback.MediaPlaybackItem*>;

                interface Windows.Foundation.EventHandler<Windows.Media.Playback.MediaPlayerDataReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakManager*, Windows.Media.Playback.MediaBreakEndedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakManager*, Windows.Media.Playback.MediaBreakSeekedOverEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakManager*, Windows.Media.Playback.MediaBreakSkippedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakManager*, Windows.Media.Playback.MediaBreakStartedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakSchedule*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerFastForwardReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerNextReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerPauseReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerPlayReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerPositionReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerPreviousReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerRateReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerRewindReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerShuffleReceivedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackList*, Windows.Media.Playback.CurrentMediaPlaybackItemChangedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackList*, Windows.Media.Playback.MediaPlaybackItemFailedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackList*, Windows.Media.Playback.MediaPlaybackItemOpenedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackTimedMetadataTrackList*, Windows.Media.Playback.TimedMetadataPresentationModeChangedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, Windows.Media.Playback.MediaPlayerFailedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, Windows.Media.Playback.MediaPlayerRateChangedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, Windows.Media.Playback.PlaybackMediaMarkerReachedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Media
    {
        namespace Playback
        {
            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            enum AutoLoadedDisplayPropertyKind
            {
                None         = 0,
                MusicOrVideo = 1,
                Music        = 2,
                Video        = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum FailedMediaStreamKind
            {
                Unknown = 0,
                Audio   = 1,
                Video   = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum MediaBreakInsertionMethod
            {
                Interrupt = 0,
                Replace   = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum MediaCommandEnablingRule
            {
                Auto   = 0,
                Always = 1,
                Never  = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            enum MediaPlaybackItemChangedReason
            {
                InitialItem  = 0,
                EndOfStream  = 1,
                Error        = 2,
                AppRequested = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MediaPlaybackItemErrorCode
            {
                None                    = 0,
                Aborted                 = 1,
                NetworkError            = 2,
                DecodeError             = 3,
                SourceNotSupportedError = 4,
                EncryptionError         = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            enum MediaPlaybackSessionVideoConstrictionReason
            {
                None                      = 0,
                VirtualMachine            = 1,
                UnsupportedDisplayAdapter = 2,
                UnsignedDriver            = 3,
                FrameServerEnabled        = 4,
                OutputProtectionFailed    = 5,
                Unknown                   = 6
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum MediaPlaybackState
            {
                None      = 0,
                Opening   = 1,
                Buffering = 2,
                Playing   = 3,
                Paused    = 4
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MediaPlayerAudioCategory
            {
                Other          = 0,
                Communications = 3,
                Alerts         = 4,
                SoundEffects   = 5,
                GameEffects    = 6,
                GameMedia      = 7,
                GameChat       = 8,
                Speech         = 9,
                Movie          = 10,
                Media          = 11
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MediaPlayerAudioDeviceType
            {
                Console        = 0,
                Multimedia     = 1,
                Communications = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MediaPlayerError
            {
                Unknown            = 0,
                Aborted            = 1,
                NetworkError       = 2,
                DecodingError      = 3,
                SourceNotSupported = 4
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [deprecated("Use MediaPlaybackState instead of MediaPlayerState.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)]
            enum MediaPlayerState
            {
                Closed    = 0,
                Opening   = 1,
                Buffering = 2,
                Playing   = 3,
                Paused    = 4,
                Stopped   = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            enum SphericalVideoProjectionMode
            {
                Spherical = 0,
                Flat      = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum StereoscopicVideoRenderMode
            {
                Mono   = 0,
                Stereo = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum TimedMetadataTrackPresentationMode
            {
                Disabled             = 0,
                Hidden               = 1,
                ApplicationPresented = 2,
                PlatformPresented    = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Playback.BackgroundMediaPlayer)]
            [uuid(856DDBC1-55F7-471F-A0F2-68AC4C904592)]
            interface IBackgroundMediaPlayerStatics : IInspectable
            {
                [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] [propget] HRESULT Current([out] [retval] Windows.Media.Playback.MediaPlayer** player);
                [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] [eventadd] HRESULT MessageReceivedFromBackground([in] Windows.Foundation.EventHandler<Windows.Media.Playback.MediaPlayerDataReceivedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] [eventremove] HRESULT MessageReceivedFromBackground([in] EventRegistrationToken token);
                [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] [eventadd] HRESULT MessageReceivedFromForeground([in] Windows.Foundation.EventHandler<Windows.Media.Playback.MediaPlayerDataReceivedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] [eventremove] HRESULT MessageReceivedFromForeground([in] EventRegistrationToken token);
                [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT SendMessageToBackground([in] Windows.Foundation.Collections.ValueSet* value);
                [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT SendMessageToForeground([in] Windows.Foundation.Collections.ValueSet* value);
                [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT IsMediaPlaying([out] [retval] boolean* isMediaPlaying);
                [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)] HRESULT Shutdown();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.CurrentMediaPlaybackItemChangedEventArgs)]
            [uuid(1743A892-5C43-4A15-967A-572D2D0F26C6)]
            interface ICurrentMediaPlaybackItemChangedEventArgs : IInspectable
            {
                [propget] HRESULT NewItem([out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
                [propget] HRESULT OldItem([out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Playback.CurrentMediaPlaybackItemChangedEventArgs)]
            [uuid(1D80A51E-996E-40A9-BE48-E66EC90B2B7D)]
            interface ICurrentMediaPlaybackItemChangedEventArgs2 : IInspectable
                requires
                    Windows.Media.Playback.ICurrentMediaPlaybackItemChangedEventArgs
            {
                [propget] HRESULT Reason([out] [retval] Windows.Media.Playback.MediaPlaybackItemChangedReason* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaBreak)]
            [uuid(714BE270-0DEF-4EBC-A489-6B34930E1558)]
            interface IMediaBreak : IInspectable
            {
                [propget] HRESULT PlaybackList([out] [retval] Windows.Media.Playback.MediaPlaybackList** value);
                [propget] HRESULT PresentationPosition([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                [propget] HRESULT InsertionMethod([out] [retval] Windows.Media.Playback.MediaBreakInsertionMethod* value);
                [propget] HRESULT CustomProperties([out] [retval] Windows.Foundation.Collections.ValueSet** value);
                [propget] HRESULT CanStart([out] [retval] boolean* value);
                [propput] HRESULT CanStart([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaBreakEndedEventArgs)]
            [uuid(32B93276-1C5D-4FEE-8732-236DC3A88580)]
            interface IMediaBreakEndedEventArgs : IInspectable
            {
                [propget] HRESULT MediaBreak([out] [retval] Windows.Media.Playback.MediaBreak** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaBreak)]
            [uuid(4516E002-18E0-4079-8B5F-D33495C15D2E)]
            interface IMediaBreakFactory : IInspectable
            {
                HRESULT Create([in] Windows.Media.Playback.MediaBreakInsertionMethod insertionMethod, [out] [retval] Windows.Media.Playback.MediaBreak** result);
                HRESULT CreateWithPresentationPosition([in] Windows.Media.Playback.MediaBreakInsertionMethod insertionMethod, [in] Windows.Foundation.TimeSpan presentationPosition, [out] [retval] Windows.Media.Playback.MediaBreak** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaBreakManager)]
            [uuid(A854DDB1-FEB4-4D9B-9D97-0FDBE58E5E39)]
            interface IMediaBreakManager : IInspectable
            {
                [eventadd] HRESULT BreaksSeekedOver([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakManager*, Windows.Media.Playback.MediaBreakSeekedOverEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BreaksSeekedOver([in] EventRegistrationToken token);
                [eventadd] HRESULT BreakStarted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakManager*, Windows.Media.Playback.MediaBreakStartedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BreakStarted([in] EventRegistrationToken token);
                [eventadd] HRESULT BreakEnded([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakManager*, Windows.Media.Playback.MediaBreakEndedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BreakEnded([in] EventRegistrationToken token);
                [eventadd] HRESULT BreakSkipped([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakManager*, Windows.Media.Playback.MediaBreakSkippedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BreakSkipped([in] EventRegistrationToken token);
                [propget] HRESULT CurrentBreak([out] [retval] Windows.Media.Playback.MediaBreak** value);
                [propget] HRESULT PlaybackSession([out] [retval] Windows.Media.Playback.MediaPlaybackSession** value);
                HRESULT PlayBreak([in] Windows.Media.Playback.MediaBreak* value);
                HRESULT SkipCurrentBreak();
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaBreakSchedule)]
            [uuid(A19A5813-98B6-41D8-83DA-F971D22B7BBA)]
            interface IMediaBreakSchedule : IInspectable
            {
                [eventadd] HRESULT ScheduleChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaBreakSchedule*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ScheduleChanged([in] EventRegistrationToken token);
                HRESULT InsertMidrollBreak([in] Windows.Media.Playback.MediaBreak* mediaBreak);
                HRESULT RemoveMidrollBreak([in] Windows.Media.Playback.MediaBreak* mediaBreak);
                [propget] HRESULT MidrollBreaks([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Playback.MediaBreak*>** value);
                [propput] HRESULT PrerollBreak([in] Windows.Media.Playback.MediaBreak* value);
                [propget] HRESULT PrerollBreak([out] [retval] Windows.Media.Playback.MediaBreak** value);
                [propput] HRESULT PostrollBreak([in] Windows.Media.Playback.MediaBreak* value);
                [propget] HRESULT PostrollBreak([out] [retval] Windows.Media.Playback.MediaBreak** value);
                [propget] HRESULT PlaybackItem([out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaBreakSeekedOverEventArgs)]
            [uuid(E5AA6746-0606-4492-B9D3-C3C8FDE0A4EA)]
            interface IMediaBreakSeekedOverEventArgs : IInspectable
            {
                [propget] HRESULT SeekedOverBreaks([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Playback.MediaBreak*>** value);
                [propget] HRESULT OldPosition([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT NewPosition([out] [retval] Windows.Foundation.TimeSpan* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaBreakSkippedEventArgs)]
            [uuid(6EE94C05-2F54-4A3E-A3AB-24C3B270B4A3)]
            interface IMediaBreakSkippedEventArgs : IInspectable
            {
                [propget] HRESULT MediaBreak([out] [retval] Windows.Media.Playback.MediaBreak** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaBreakStartedEventArgs)]
            [uuid(A87EFE71-DFD4-454A-956E-0A4A648395F8)]
            interface IMediaBreakStartedEventArgs : IInspectable
            {
                [propget] HRESULT MediaBreak([out] [retval] Windows.Media.Playback.MediaBreak** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [deprecated("Use MediaPlayer instead of MediaEngine. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)]
            [uuid(5C1D0BA7-3856-48B9-8DC6-244BF107BF8C)]
            interface IMediaEnginePlaybackSource : IInspectable
            {
                [deprecated("Use MediaPlayer instead of MediaEngine. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propget] HRESULT CurrentItem([out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
                [deprecated("Use MediaPlayer instead of MediaEngine. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] HRESULT SetPlaybackSource([in] Windows.Media.Playback.IMediaPlaybackSource* source);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaItemDisplayProperties)]
            [uuid(1E3C1B48-7097-4384-A217-C1291DFA8C16)]
            interface IMediaItemDisplayProperties : IInspectable
            {
                [propget] HRESULT Type([out] [retval] Windows.Media.MediaPlaybackType* value);
                [propput] HRESULT Type([in] Windows.Media.MediaPlaybackType value);
                [propget] HRESULT MusicProperties([out] [retval] Windows.Media.MusicDisplayProperties** value);
                [propget] HRESULT VideoProperties([out] [retval] Windows.Media.VideoDisplayProperties** value);
                [propget] HRESULT Thumbnail([out] [retval] Windows.Storage.Streams.RandomAccessStreamReference** value);
                [propput] HRESULT Thumbnail([in] Windows.Storage.Streams.RandomAccessStreamReference* value);
                HRESULT ClearAll();
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManager)]
            [uuid(5ACEE5A6-5CB6-4A5A-8521-CC86B1C1ED37)]
            interface IMediaPlaybackCommandManager : IInspectable
            {
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsEnabled([in] boolean value);
                [propget] HRESULT MediaPlayer([out] [retval] Windows.Media.Playback.MediaPlayer** value);
                [propget] HRESULT PlayBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [propget] HRESULT PauseBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [propget] HRESULT NextBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [propget] HRESULT PreviousBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [propget] HRESULT FastForwardBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [propget] HRESULT RewindBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [propget] HRESULT ShuffleBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [propget] HRESULT AutoRepeatModeBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [propget] HRESULT PositionBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [propget] HRESULT RateBehavior([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior** value);
                [eventadd] HRESULT PlayReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerPlayReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PlayReceived([in] EventRegistrationToken token);
                [eventadd] HRESULT PauseReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerPauseReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PauseReceived([in] EventRegistrationToken token);
                [eventadd] HRESULT NextReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerNextReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT NextReceived([in] EventRegistrationToken token);
                [eventadd] HRESULT PreviousReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerPreviousReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PreviousReceived([in] EventRegistrationToken token);
                [eventadd] HRESULT FastForwardReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerFastForwardReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT FastForwardReceived([in] EventRegistrationToken token);
                [eventadd] HRESULT RewindReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerRewindReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT RewindReceived([in] EventRegistrationToken token);
                [eventadd] HRESULT ShuffleReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerShuffleReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ShuffleReceived([in] EventRegistrationToken token);
                [eventadd] HRESULT AutoRepeatModeReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT AutoRepeatModeReceived([in] EventRegistrationToken token);
                [eventadd] HRESULT PositionReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerPositionReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PositionReceived([in] EventRegistrationToken token);
                [eventadd] HRESULT RateReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManager*, Windows.Media.Playback.MediaPlaybackCommandManagerRateReceivedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT RateReceived([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs)]
            [uuid(3D6F4F23-5230-4411-A0E9-BAD94C2A045C)]
            interface IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                [propget] HRESULT AutoRepeatMode([out] [retval] Windows.Media.MediaPlaybackAutoRepeatMode* value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior)]
            [uuid(786C1E78-CE78-4A10-AFD6-843FCBB90C2E)]
            interface IMediaPlaybackCommandManagerCommandBehavior : IInspectable
            {
                [propget] HRESULT CommandManager([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManager** value);
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [propget] HRESULT EnablingRule([out] [retval] Windows.Media.Playback.MediaCommandEnablingRule* value);
                [propput] HRESULT EnablingRule([in] Windows.Media.Playback.MediaCommandEnablingRule value);
                [eventadd] HRESULT IsEnabledChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackCommandManagerCommandBehavior*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT IsEnabledChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerFastForwardReceivedEventArgs)]
            [uuid(30F064D9-B491-4D0A-BC21-3098BD1332E9)]
            interface IMediaPlaybackCommandManagerFastForwardReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerNextReceivedEventArgs)]
            [uuid(E1504433-A2B0-45D4-B9DE-5F42AC14A839)]
            interface IMediaPlaybackCommandManagerNextReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerPauseReceivedEventArgs)]
            [uuid(5CECCD1C-C25C-4221-B16C-C3C98CE012D6)]
            interface IMediaPlaybackCommandManagerPauseReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerPlayReceivedEventArgs)]
            [uuid(9AF0004E-578B-4C56-A006-16159D888A48)]
            interface IMediaPlaybackCommandManagerPlayReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerPositionReceivedEventArgs)]
            [uuid(5591A754-D627-4BDD-A90D-86A015B24902)]
            interface IMediaPlaybackCommandManagerPositionReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                [propget] HRESULT Position([out] [retval] Windows.Foundation.TimeSpan* value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerPreviousReceivedEventArgs)]
            [uuid(525E3081-4632-4F76-99B1-D771623F6287)]
            interface IMediaPlaybackCommandManagerPreviousReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerRateReceivedEventArgs)]
            [uuid(18EA3939-4A16-4169-8B05-3EB9F5FF78EB)]
            interface IMediaPlaybackCommandManagerRateReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                [propget] HRESULT PlaybackRate([out] [retval] DOUBLE* value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerRewindReceivedEventArgs)]
            [uuid(9F085947-A3C0-425D-AAEF-97BA7898B141)]
            interface IMediaPlaybackCommandManagerRewindReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackCommandManagerShuffleReceivedEventArgs)]
            [uuid(50A05CEF-63EE-4A96-B7B5-FEE08B9FF90C)]
            interface IMediaPlaybackCommandManagerShuffleReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Handled([out] [retval] boolean* value);
                [propput] HRESULT Handled([in] boolean value);
                [propget] HRESULT IsShuffleRequested([out] [retval] boolean* value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackItem)]
            [uuid(047097D2-E4AF-48AB-B283-6929E674ECE2)]
            interface IMediaPlaybackItem : IInspectable
                requires
                    Windows.Media.Playback.IMediaPlaybackSource
            {
                [eventadd] HRESULT AudioTracksChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackItem*, Windows.Foundation.Collections.IVectorChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT AudioTracksChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT VideoTracksChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackItem*, Windows.Foundation.Collections.IVectorChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT VideoTracksChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT TimedMetadataTracksChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackItem*, Windows.Foundation.Collections.IVectorChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT TimedMetadataTracksChanged([in] EventRegistrationToken token);
                [propget] HRESULT Source([out] [retval] Windows.Media.Core.MediaSource** value);
                [propget] HRESULT AudioTracks([out] [retval] Windows.Media.Playback.MediaPlaybackAudioTrackList** value);
                [propget] HRESULT VideoTracks([out] [retval] Windows.Media.Playback.MediaPlaybackVideoTrackList** value);
                [propget] HRESULT TimedMetadataTracks([out] [retval] Windows.Media.Playback.MediaPlaybackTimedMetadataTrackList** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackItem)]
            [uuid(D859D171-D7EF-4B81-AC1F-F40493CBB091)]
            interface IMediaPlaybackItem2 : IInspectable
                requires
                    Windows.Media.Playback.IMediaPlaybackItem,
                    Windows.Media.Playback.IMediaPlaybackSource
            {
                [propget] HRESULT BreakSchedule([out] [retval] Windows.Media.Playback.MediaBreakSchedule** value);
                [propget] HRESULT StartTime([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT DurationLimit([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                [propget] HRESULT CanSkip([out] [retval] boolean* value);
                [propput] HRESULT CanSkip([in] boolean value);
                HRESULT GetDisplayProperties([out] [retval] Windows.Media.Playback.MediaItemDisplayProperties** value);
                HRESULT ApplyDisplayProperties([in] Windows.Media.Playback.MediaItemDisplayProperties* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackItem)]
            [uuid(0D328220-B80A-4D09-9FF8-F87094A1C831)]
            interface IMediaPlaybackItem3 : IInspectable
                requires
                    Windows.Media.Playback.IMediaPlaybackItem2,
                    Windows.Media.Playback.IMediaPlaybackItem,
                    Windows.Media.Playback.IMediaPlaybackSource
            {
                [propget] HRESULT IsDisabledInPlaybackList([out] [retval] boolean* value);
                [propput] HRESULT IsDisabledInPlaybackList([in] boolean value);
                [propget] HRESULT TotalDownloadProgress([out] [retval] DOUBLE* value);
                [propget] HRESULT AutoLoadedDisplayProperties([out] [retval] Windows.Media.Playback.AutoLoadedDisplayPropertyKind* value);
                [propput] HRESULT AutoLoadedDisplayProperties([in] Windows.Media.Playback.AutoLoadedDisplayPropertyKind value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackItemError)]
            [uuid(69FBEF2B-DCD6-4DF9-A450-DBF4C6F1C2C2)]
            interface IMediaPlaybackItemError : IInspectable
            {
                [propget] HRESULT ErrorCode([out] [retval] Windows.Media.Playback.MediaPlaybackItemErrorCode* value);
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackItem)]
            [uuid(7133FCE1-1769-4FF9-A7C1-38D2C4D42360)]
            interface IMediaPlaybackItemFactory : IInspectable
            {
                HRESULT Create([in] Windows.Media.Core.MediaSource* source, [out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackItem)]
            [uuid(D77CDF3A-B947-4972-B35D-ADFB931A71E6)]
            interface IMediaPlaybackItemFactory2 : IInspectable
                requires
                    Windows.Media.Playback.IMediaPlaybackItemFactory
            {
                HRESULT CreateWithStartTime([in] Windows.Media.Core.MediaSource* source, [in] Windows.Foundation.TimeSpan startTime, [out] [retval] Windows.Media.Playback.MediaPlaybackItem** result);
                HRESULT CreateWithStartTimeAndDurationLimit([in] Windows.Media.Core.MediaSource* source, [in] Windows.Foundation.TimeSpan startTime, [in] Windows.Foundation.TimeSpan durationLimit, [out] [retval] Windows.Media.Playback.MediaPlaybackItem** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackItemFailedEventArgs)]
            [uuid(7703134A-E9A7-47C3-862C-C656D30683D4)]
            interface IMediaPlaybackItemFailedEventArgs : IInspectable
            {
                [propget] HRESULT Item([out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
                [propget] HRESULT Error([out] [retval] Windows.Media.Playback.MediaPlaybackItemError** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackItemOpenedEventArgs)]
            [uuid(CBD9BD82-3037-4FBE-AE8F-39FC39EDF4EF)]
            interface IMediaPlaybackItemOpenedEventArgs : IInspectable
            {
                [propget] HRESULT Item([out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackItem)]
            [uuid(4B1BE7F4-4345-403C-8A67-F5DE91DF4C86)]
            interface IMediaPlaybackItemStatics : IInspectable
            {
                HRESULT FindFromMediaSource([in] Windows.Media.Core.MediaSource* source, [out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackList)]
            [uuid(7F77EE9C-DC42-4E26-A98D-7850DF8EC925)]
            interface IMediaPlaybackList : IInspectable
                requires
                    Windows.Media.Playback.IMediaPlaybackSource
            {
                [eventadd] HRESULT ItemFailed([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackList*, Windows.Media.Playback.MediaPlaybackItemFailedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ItemFailed([in] EventRegistrationToken token);
                [eventadd] HRESULT CurrentItemChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackList*, Windows.Media.Playback.CurrentMediaPlaybackItemChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT CurrentItemChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT ItemOpened([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackList*, Windows.Media.Playback.MediaPlaybackItemOpenedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ItemOpened([in] EventRegistrationToken token);
                [propget] HRESULT Items([out] [retval] Windows.Foundation.Collections.IObservableVector<Windows.Media.Playback.MediaPlaybackItem*>** value);
                [propget] HRESULT AutoRepeatEnabled([out] [retval] boolean* value);
                [propput] HRESULT AutoRepeatEnabled([in] boolean value);
                [propget] HRESULT ShuffleEnabled([out] [retval] boolean* value);
                [propput] HRESULT ShuffleEnabled([in] boolean value);
                [propget] HRESULT CurrentItem([out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
                [propget] HRESULT CurrentItemIndex([out] [retval] UINT32* value);
                HRESULT MoveNext([out] [retval] Windows.Media.Playback.MediaPlaybackItem** item);
                HRESULT MovePrevious([out] [retval] Windows.Media.Playback.MediaPlaybackItem** item);
                HRESULT MoveTo([in] UINT32 itemIndex, [out] [retval] Windows.Media.Playback.MediaPlaybackItem** item);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackList)]
            [uuid(0E09B478-600A-4274-A14B-0B6723D0F48B)]
            interface IMediaPlaybackList2 : IInspectable
                requires
                    Windows.Media.Playback.IMediaPlaybackList,
                    Windows.Media.Playback.IMediaPlaybackSource
            {
                [propget] HRESULT MaxPrefetchTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                [propput] HRESULT MaxPrefetchTime([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
                [propget] HRESULT StartingItem([out] [retval] Windows.Media.Playback.MediaPlaybackItem** value);
                [propput] HRESULT StartingItem([in] Windows.Media.Playback.MediaPlaybackItem* value);
                [propget] HRESULT ShuffledItems([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Playback.MediaPlaybackItem*>** value);
                HRESULT SetShuffledItems([in] Windows.Foundation.Collections.IIterable<Windows.Media.Playback.MediaPlaybackItem*>* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackList)]
            [uuid(DD24BBA9-BC47-4463-AA90-C18B7E5FFDE1)]
            interface IMediaPlaybackList3 : IInspectable
                requires
                    Windows.Media.Playback.IMediaPlaybackList2,
                    Windows.Media.Playback.IMediaPlaybackList,
                    Windows.Media.Playback.IMediaPlaybackSource
            {
                [propget] HRESULT MaxPlayedItemsToKeepOpen([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                [propput] HRESULT MaxPlayedItemsToKeepOpen([in] Windows.Foundation.IReference<UINT32>* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackSession)]
            [uuid(C32B683D-0407-41BA-8946-8B345A5A5435)]
            interface IMediaPlaybackSession : IInspectable
            {
                [eventadd] HRESULT PlaybackStateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PlaybackStateChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT PlaybackRateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PlaybackRateChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT SeekCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SeekCompleted([in] EventRegistrationToken token);
                [eventadd] HRESULT BufferingStarted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BufferingStarted([in] EventRegistrationToken token);
                [eventadd] HRESULT BufferingEnded([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BufferingEnded([in] EventRegistrationToken token);
                [eventadd] HRESULT BufferingProgressChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BufferingProgressChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT DownloadProgressChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT DownloadProgressChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT NaturalDurationChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT NaturalDurationChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT PositionChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PositionChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT NaturalVideoSizeChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT NaturalVideoSizeChanged([in] EventRegistrationToken token);
                [propget] HRESULT MediaPlayer([out] [retval] Windows.Media.Playback.MediaPlayer** value);
                [propget] HRESULT NaturalDuration([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT Position([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT Position([in] Windows.Foundation.TimeSpan value);
                [propget] HRESULT PlaybackState([out] [retval] Windows.Media.Playback.MediaPlaybackState* value);
                [propget] HRESULT CanSeek([out] [retval] boolean* value);
                [propget] HRESULT CanPause([out] [retval] boolean* value);
                [propget] HRESULT IsProtected([out] [retval] boolean* value);
                [propget] HRESULT PlaybackRate([out] [retval] DOUBLE* value);
                [propput] HRESULT PlaybackRate([in] DOUBLE value);
                [propget] HRESULT BufferingProgress([out] [retval] DOUBLE* value);
                [propget] HRESULT DownloadProgress([out] [retval] DOUBLE* value);
                [propget] HRESULT NaturalVideoHeight([out] [retval] UINT32* value);
                [propget] HRESULT NaturalVideoWidth([out] [retval] UINT32* value);
                [propget] HRESULT NormalizedSourceRect([out] [retval] Windows.Foundation.Rect* value);
                [propput] HRESULT NormalizedSourceRect([in] Windows.Foundation.Rect value);
                [propget] HRESULT StereoscopicVideoPackingMode([out] [retval] Windows.Media.MediaProperties.StereoscopicVideoPackingMode* value);
                [propput] HRESULT StereoscopicVideoPackingMode([in] Windows.Media.MediaProperties.StereoscopicVideoPackingMode value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackSession)]
            [uuid(F8BA7C79-1FC8-4097-AD70-C0FA18CC0050)]
            interface IMediaPlaybackSession2 : IInspectable
            {
                [eventadd] HRESULT BufferedRangesChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT BufferedRangesChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT PlayedRangesChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PlayedRangesChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT SeekableRangesChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SeekableRangesChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT SupportedPlaybackRatesChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackSession*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SupportedPlaybackRatesChanged([in] EventRegistrationToken token);
                [propget] HRESULT SphericalVideoProjection([out] [retval] Windows.Media.Playback.MediaPlaybackSphericalVideoProjection** value);
                [propget] HRESULT IsMirroring([out] [retval] boolean* value);
                [propput] HRESULT IsMirroring([in] boolean value);
                HRESULT GetBufferedRanges([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.MediaTimeRange>** value);
                HRESULT GetPlayedRanges([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.MediaTimeRange>** value);
                HRESULT GetSeekableRanges([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.MediaTimeRange>** value);
                HRESULT IsSupportedPlaybackRateRange([in] DOUBLE rate1, [in] DOUBLE rate2, [out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackSession)]
            [uuid(7BA2B41A-A3E2-405F-B77B-A4812C238B66)]
            interface IMediaPlaybackSession3 : IInspectable
            {
                [propget] HRESULT PlaybackRotation([out] [retval] Windows.Media.MediaProperties.MediaRotation* value);
                [propput] HRESULT PlaybackRotation([in] Windows.Media.MediaProperties.MediaRotation value);
                HRESULT GetOutputDegradationPolicyState([out] [retval] Windows.Media.Playback.MediaPlaybackSessionOutputDegradationPolicyState** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackSessionBufferingStartedEventArgs)]
            [uuid(CD6AAFED-74E2-43B5-B115-76236C33791A)]
            interface IMediaPlaybackSessionBufferingStartedEventArgs : IInspectable
            {
                [propget] HRESULT IsPlaybackInterruption([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackSessionOutputDegradationPolicyState)]
            [uuid(558E727D-F633-49F9-965A-ABAA1DB709BE)]
            interface IMediaPlaybackSessionOutputDegradationPolicyState : IInspectable
            {
                [propget] HRESULT VideoConstrictionReason([out] [retval] Windows.Media.Playback.MediaPlaybackSessionVideoConstrictionReason* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(EF9DC2BC-9317-4696-B051-2BAD643177B5)]
            interface IMediaPlaybackSource : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackSphericalVideoProjection)]
            [uuid(D405B37C-6F0E-4661-B8EE-D487BA9752D5)]
            interface IMediaPlaybackSphericalVideoProjection : IInspectable
            {
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsEnabled([in] boolean value);
                [propget] HRESULT FrameFormat([out] [retval] Windows.Media.MediaProperties.SphericalVideoFrameFormat* value);
                [propput] HRESULT FrameFormat([in] Windows.Media.MediaProperties.SphericalVideoFrameFormat value);
                [propget] HRESULT HorizontalFieldOfViewInDegrees([out] [retval] DOUBLE* value);
                [propput] HRESULT HorizontalFieldOfViewInDegrees([in] DOUBLE value);
                [propget] HRESULT ViewOrientation([out] [retval] Windows.Foundation.Numerics.Quaternion* value);
                [propput] HRESULT ViewOrientation([in] Windows.Foundation.Numerics.Quaternion value);
                [propget] HRESULT ProjectionMode([out] [retval] Windows.Media.Playback.SphericalVideoProjectionMode* value);
                [propput] HRESULT ProjectionMode([in] Windows.Media.Playback.SphericalVideoProjectionMode value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlaybackTimedMetadataTrackList)]
            [uuid(72B41319-BBFB-46A3-9372-9C9C744B9438)]
            interface IMediaPlaybackTimedMetadataTrackList : IInspectable
            {
                [eventadd] HRESULT PresentationModeChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlaybackTimedMetadataTrackList*, Windows.Media.Playback.TimedMetadataPresentationModeChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT PresentationModeChanged([in] EventRegistrationToken token);
                HRESULT GetPresentationMode([in] UINT32 index, [out] [retval] Windows.Media.Playback.TimedMetadataTrackPresentationMode* value);
                HRESULT SetPresentationMode([in] UINT32 index, [in] Windows.Media.Playback.TimedMetadataTrackPresentationMode value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(381A83CB-6FFF-499B-8D64-2885DFC1249E)]
            interface IMediaPlayer : IInspectable
            {
                [propget] HRESULT AutoPlay([out] [retval] boolean* value);
                [propput] HRESULT AutoPlay([in] boolean value);
                [deprecated("Use PlaybackSession.NaturalDuration instead of NaturalDuration.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propget] HRESULT NaturalDuration([out] [retval] Windows.Foundation.TimeSpan* value);
                [deprecated("Use PlaybackSession.Position instead of Position.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propget] HRESULT Position([out] [retval] Windows.Foundation.TimeSpan* value);
                [deprecated("Use PlaybackSession.Position instead of Position.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propput] HRESULT Position([in] Windows.Foundation.TimeSpan value);
                [deprecated("Use PlaybackSession.BufferingProgress instead of BufferingProgress.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propget] HRESULT BufferingProgress([out] [retval] DOUBLE* value);
                [deprecated("Use PlaybackSession.State instead of CurrentState.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propget] HRESULT CurrentState([out] [retval] Windows.Media.Playback.MediaPlayerState* value);
                [deprecated("Use PlaybackSession.CanSeek instead of CanSeek.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propget] HRESULT CanSeek([out] [retval] boolean* value);
                [deprecated("Use PlaybackSession.CanPause instead of CanPause.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propget] HRESULT CanPause([out] [retval] boolean* value);
                [propget] HRESULT IsLoopingEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsLoopingEnabled([in] boolean value);
                [deprecated("Use PlaybackSession.IsProtected instead of IsProtected.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propget] HRESULT IsProtected([out] [retval] boolean* value);
                [propget] HRESULT IsMuted([out] [retval] boolean* value);
                [propput] HRESULT IsMuted([in] boolean value);
                [deprecated("Use PlaybackSession.PlaybackRate instead of PlaybackRate.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propget] HRESULT PlaybackRate([out] [retval] DOUBLE* value);
                [deprecated("Use PlaybackSession.PlaybackRate instead of PlaybackRate.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [propput] HRESULT PlaybackRate([in] DOUBLE value);
                [propget] HRESULT Volume([out] [retval] DOUBLE* value);
                [propput] HRESULT Volume([in] DOUBLE value);
                [deprecated("Use media tracks on MediaPlaybackItem instead of PlaybackMediaMarkers.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 2.0)] [propget] HRESULT PlaybackMediaMarkers([out] [retval] Windows.Media.Playback.PlaybackMediaMarkerSequence** value);
                [eventadd] HRESULT MediaOpened([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT MediaOpened([in] EventRegistrationToken token);
                [eventadd] HRESULT MediaEnded([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT MediaEnded([in] EventRegistrationToken token);
                [eventadd] HRESULT MediaFailed([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, Windows.Media.Playback.MediaPlayerFailedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT MediaFailed([in] EventRegistrationToken token);
                [deprecated("Use PlaybackSession.PlaybackStateChanged instead of CurrentStateChanged.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventadd] HRESULT CurrentStateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [deprecated("Use PlaybackSession.PlaybackStateChanged instead of CurrentStateChanged.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventremove] HRESULT CurrentStateChanged([in] EventRegistrationToken token);
                [deprecated("Use media tracks on MediaPlaybackItem instead of PlaybackMediaMarkers.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 2.0)] [eventadd] HRESULT PlaybackMediaMarkerReached([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, Windows.Media.Playback.PlaybackMediaMarkerReachedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                [deprecated("Use media tracks on MediaPlaybackItem instead of PlaybackMediaMarkers.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 2.0)] [eventremove] HRESULT PlaybackMediaMarkerReached([in] EventRegistrationToken token);
                [deprecated("Use PlaybackSession.PlaybackRateChanged instead of MediaPlayerRateChanged.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventadd] HRESULT MediaPlayerRateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, Windows.Media.Playback.MediaPlayerRateChangedEventArgs*>* value, [out] [retval] EventRegistrationToken* token);
                [deprecated("Use PlaybackSession.PlaybackRateChanged instead of MediaPlayerRateChanged.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventremove] HRESULT MediaPlayerRateChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT VolumeChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT VolumeChanged([in] EventRegistrationToken token);
                [deprecated("Use PlaybackSession.SeekCompleted instead of SeekCompleted.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventadd] HRESULT SeekCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [deprecated("Use PlaybackSession.SeekCompleted instead of SeekCompleted.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventremove] HRESULT SeekCompleted([in] EventRegistrationToken token);
                [deprecated("Use PlaybackSession.BufferingStarted instead of BufferingStarted.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventadd] HRESULT BufferingStarted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [deprecated("Use PlaybackSession.BufferingStarted instead of BufferingStarted.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventremove] HRESULT BufferingStarted([in] EventRegistrationToken token);
                [deprecated("Use PlaybackSession.BufferingEnded instead of BufferingEnded.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventadd] HRESULT BufferingEnded([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [deprecated("Use PlaybackSession.BufferingEnded instead of BufferingEnded.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 3.0)] [eventremove] HRESULT BufferingEnded([in] EventRegistrationToken token);
                HRESULT Play();
                HRESULT Pause();
                [deprecated("Use Source instead of SetUriSource.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 2.0)] HRESULT SetUriSource([in] Windows.Foundation.Uri* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(3C841218-2123-4FC5-9082-2F883F77BDF5)]
            interface IMediaPlayer2 : IInspectable
            {
                [propget] HRESULT SystemMediaTransportControls([out] [retval] Windows.Media.SystemMediaTransportControls** value);
                [propget] HRESULT AudioCategory([out] [retval] Windows.Media.Playback.MediaPlayerAudioCategory* value);
                [propput] HRESULT AudioCategory([in] Windows.Media.Playback.MediaPlayerAudioCategory value);
                [propget] HRESULT AudioDeviceType([out] [retval] Windows.Media.Playback.MediaPlayerAudioDeviceType* value);
                [propput] HRESULT AudioDeviceType([in] Windows.Media.Playback.MediaPlayerAudioDeviceType value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(EE0660DA-031B-4FEB-BD9B-92E0A0A8D299)]
            interface IMediaPlayer3 : IInspectable
            {
                [eventadd] HRESULT IsMutedChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT IsMutedChanged([in] EventRegistrationToken token);
                [eventadd] HRESULT SourceChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SourceChanged([in] EventRegistrationToken token);
                [propget] HRESULT AudioBalance([out] [retval] DOUBLE* value);
                [propput] HRESULT AudioBalance([in] DOUBLE value);
                [propget] HRESULT RealTimePlayback([out] [retval] boolean* value);
                [propput] HRESULT RealTimePlayback([in] boolean value);
                [propget] HRESULT StereoscopicVideoRenderMode([out] [retval] Windows.Media.Playback.StereoscopicVideoRenderMode* value);
                [propput] HRESULT StereoscopicVideoRenderMode([in] Windows.Media.Playback.StereoscopicVideoRenderMode value);
                [propget] HRESULT BreakManager([out] [retval] Windows.Media.Playback.MediaBreakManager** value);
                [propget] HRESULT CommandManager([out] [retval] Windows.Media.Playback.MediaPlaybackCommandManager** value);
                [propget] HRESULT AudioDevice([out] [retval] Windows.Devices.Enumeration.DeviceInformation** value);
                [propput] HRESULT AudioDevice([in] Windows.Devices.Enumeration.DeviceInformation* value);
                [propget] HRESULT TimelineController([out] [retval] Windows.Media.MediaTimelineController** value);
                [propput] HRESULT TimelineController([in] Windows.Media.MediaTimelineController* value);
                [propget] HRESULT TimelineControllerPositionOffset([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT TimelineControllerPositionOffset([in] Windows.Foundation.TimeSpan value);
                [propget] HRESULT PlaybackSession([out] [retval] Windows.Media.Playback.MediaPlaybackSession** value);
                HRESULT StepForwardOneFrame();
                HRESULT StepBackwardOneFrame();
                HRESULT GetAsCastingSource([out] [retval] Windows.Media.Casting.CastingSource** returnValue);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(80035DB0-7448-4770-AFCF-2A57450914C5)]
            interface IMediaPlayer4 : IInspectable
            {
                HRESULT SetSurfaceSize([in] Windows.Foundation.Size size);
                HRESULT GetSurface([in] Windows.UI.Composition.Compositor* compositor, [out] [retval] Windows.Media.Playback.MediaPlayerSurface** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(CFE537FD-F86A-4446-BF4D-C8E792B7B4B3)]
            interface IMediaPlayer5 : IInspectable
            {
                [eventadd] HRESULT VideoFrameAvailable([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* value, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT VideoFrameAvailable([in] EventRegistrationToken token);
                [propget] HRESULT IsVideoFrameServerEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsVideoFrameServerEnabled([in] boolean value);
                [overload("CopyFrameToVideoSurface")] HRESULT CopyFrameToVideoSurface([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface* destination);
                [overload("CopyFrameToVideoSurface")] HRESULT CopyFrameToVideoSurfaceWithTargetRectangle([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface* destination, [in] Windows.Foundation.Rect targetRectangle);
                HRESULT CopyFrameToStereoscopicVideoSurfaces([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface* destinationLeftEye, [in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface* destinationRightEye);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(E0CAA086-AE65-414C-B010-8BC55F00E692)]
            interface IMediaPlayer6 : IInspectable
            {
                [eventadd] HRESULT SubtitleFrameChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Playback.MediaPlayer*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SubtitleFrameChanged([in] EventRegistrationToken token);
                [overload("RenderSubtitlesToSurface")] HRESULT RenderSubtitlesToSurface([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface* destination, [out] [retval] boolean* result);
                [overload("RenderSubtitlesToSurface")] HRESULT RenderSubtitlesToSurfaceWithTargetRectangle([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface* destination, [in] Windows.Foundation.Rect targetRectangle, [out] [retval] boolean* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(5D1DC478-4500-4531-B3F4-777A71491F7F)]
            interface IMediaPlayer7 : IInspectable
            {
                [propget] HRESULT AudioStateMonitor([out] [retval] Windows.Media.Audio.AudioStateMonitor** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayerDataReceivedEventArgs)]
            [uuid(C75A9405-C801-412A-835B-83FC0E622A8E)]
            interface IMediaPlayerDataReceivedEventArgs : IInspectable
            {
                [propget] HRESULT Data([out] [retval] Windows.Foundation.Collections.ValueSet** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(85A1DEDA-CAB6-4CC0-8BE3-6035F4DE2591)]
            interface IMediaPlayerEffects : IInspectable
            {
                HRESULT AddAudioEffect([in] HSTRING activatableClassId, [in] boolean effectOptional, [in] Windows.Foundation.Collections.IPropertySet* configuration);
                HRESULT RemoveAllEffects();
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(FA419A79-1BBE-46C5-AE1F-8EE69FB3C2C7)]
            interface IMediaPlayerEffects2 : IInspectable
            {
                HRESULT AddVideoEffect([in] HSTRING activatableClassId, [in] boolean effectOptional, [in] Windows.Foundation.Collections.IPropertySet* effectConfiguration);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayerFailedEventArgs)]
            [uuid(2744E9B9-A7E3-4F16-BAC4-7914EBC08301)]
            interface IMediaPlayerFailedEventArgs : IInspectable
            {
                [propget] HRESULT Error([out] [retval] Windows.Media.Playback.MediaPlayerError* value);
                [propget] HRESULT ExtendedErrorCode([out] [retval] HRESULT* value);
                [propget] HRESULT ErrorMessage([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayerRateChangedEventArgs)]
            [uuid(40600D58-3B61-4BB2-989F-FC65608B6CAB)]
            interface IMediaPlayerRateChangedEventArgs : IInspectable
            {
                [propget] HRESULT NewRate([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(BD4F8897-1423-4C3E-82C5-0FB1AF94F715)]
            interface IMediaPlayerSource : IInspectable
            {
                [propget] HRESULT ProtectionManager([out] [retval] Windows.Media.Protection.MediaProtectionManager** value);
                [propput] HRESULT ProtectionManager([in] Windows.Media.Protection.MediaProtectionManager* value);
                [deprecated("Use Source instead of SetFileSource.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 2.0)] HRESULT SetFileSource([in] Windows.Storage.IStorageFile* file);
                [deprecated("Use Source instead of SetStreamSource.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 2.0)] HRESULT SetStreamSource([in] Windows.Storage.Streams.IRandomAccessStream* stream);
                [deprecated("Use Source instead of SetMediaSource.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 2.0)] HRESULT SetMediaSource([in] Windows.Media.Core.IMediaSource* source);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayer)]
            [uuid(82449B9F-7322-4C0B-B03B-3E69A48260C5)]
            interface IMediaPlayerSource2 : IInspectable
            {
                [propget] HRESULT Source([out] [retval] Windows.Media.Playback.IMediaPlaybackSource** value);
                [propput] HRESULT Source([in] Windows.Media.Playback.IMediaPlaybackSource* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Playback.MediaPlayerSurface)]
            [uuid(0ED653BC-B736-49C3-830B-764A3845313A)]
            interface IMediaPlayerSurface : IInspectable
            {
                [propget] HRESULT CompositionSurface([out] [retval] Windows.UI.Composition.ICompositionSurface** value);
                [propget] HRESULT Compositor([out] [retval] Windows.UI.Composition.Compositor** value);
                [propget] HRESULT MediaPlayer([out] [retval] Windows.Media.Playback.MediaPlayer** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.PlaybackMediaMarker)]
            [uuid(C4D22F5C-3C1C-4444-B6B9-778B0422D41A)]
            interface IPlaybackMediaMarker : IInspectable
            {
                [propget] HRESULT Time([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT MediaMarkerType([out] [retval] HSTRING* value);
                [propget] HRESULT Text([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.PlaybackMediaMarker)]
            [uuid(8C530A78-E0AE-4E1A-A8C8-E23F982A937B)]
            interface IPlaybackMediaMarkerFactory : IInspectable
            {
                HRESULT CreateFromTime([in] Windows.Foundation.TimeSpan value, [out] [retval] Windows.Media.Playback.PlaybackMediaMarker** marker);
                HRESULT Create([in] Windows.Foundation.TimeSpan value, [in] HSTRING mediaMarketType, [in] HSTRING text, [out] [retval] Windows.Media.Playback.PlaybackMediaMarker** marker);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.PlaybackMediaMarkerReachedEventArgs)]
            [uuid(578CD1B9-90E2-4E60-ABC4-8740B01F6196)]
            interface IPlaybackMediaMarkerReachedEventArgs : IInspectable
            {
                [propget] HRESULT PlaybackMediaMarker([out] [retval] Windows.Media.Playback.PlaybackMediaMarker** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.PlaybackMediaMarkerSequence)]
            [uuid(F2810CEE-638B-46CF-8817-1D111FE9D8C4)]
            interface IPlaybackMediaMarkerSequence : IInspectable
                requires
                    Windows.Foundation.Collections.IIterable<Windows.Media.Playback.PlaybackMediaMarker*>
            {
                [propget] HRESULT Size([out] [retval] UINT32* value);
                HRESULT Insert([in] Windows.Media.Playback.PlaybackMediaMarker* value);
                HRESULT Clear();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Playback.TimedMetadataPresentationModeChangedEventArgs)]
            [uuid(D1636099-65DF-45AE-8CEF-DC0B53FDC2BB)]
            interface ITimedMetadataPresentationModeChangedEventArgs : IInspectable
            {
                [propget] HRESULT Track([out] [retval] Windows.Media.Core.TimedMetadataTrack** value);
                [propget] HRESULT OldPresentationMode([out] [retval] Windows.Media.Playback.TimedMetadataTrackPresentationMode* value);
                [propget] HRESULT NewPresentationMode([out] [retval] Windows.Media.Playback.TimedMetadataTrackPresentationMode* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [deprecated("Use MediaPlayer instead of BackgroundMediaPlayer.  For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Playback.IBackgroundMediaPlayerStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass BackgroundMediaPlayer
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CurrentMediaPlaybackItemChangedEventArgs
            {
                [default] interface Windows.Media.Playback.ICurrentMediaPlaybackItemChangedEventArgs;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Playback.ICurrentMediaPlaybackItemChangedEventArgs2;
            }

            [activatable(Windows.Media.Playback.IMediaBreakFactory, Windows.Foundation.UniversalApiContract, 3.0)]
            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaBreak
            {
                [default] interface Windows.Media.Playback.IMediaBreak;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaBreakEndedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaBreakEndedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaBreakManager
            {
                [default] interface Windows.Media.Playback.IMediaBreakManager;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaBreakSchedule
            {
                [default] interface Windows.Media.Playback.IMediaBreakSchedule;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaBreakSeekedOverEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaBreakSeekedOverEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaBreakSkippedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaBreakSkippedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaBreakStartedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaBreakStartedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaItemDisplayProperties
            {
                [default] interface Windows.Media.Playback.IMediaItemDisplayProperties;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackAudioTrackList
            {
                [default] interface Windows.Foundation.Collections.IVectorView<Windows.Media.Core.AudioTrack*>;
                interface Windows.Foundation.Collections.IIterable<Windows.Media.Core.AudioTrack*>;
                interface Windows.Media.Core.ISingleSelectMediaTrackList;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManager
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManager;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerAutoRepeatModeReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerCommandBehavior
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerCommandBehavior;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerFastForwardReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerFastForwardReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerNextReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerNextReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerPauseReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerPauseReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerPlayReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerPlayReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerPositionReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerPositionReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerPreviousReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerPreviousReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerRateReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerRateReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerRewindReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerRewindReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlaybackCommandManagerShuffleReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackCommandManagerShuffleReceivedEventArgs;
            }

            [activatable(Windows.Media.Playback.IMediaPlaybackItemFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [activatable(Windows.Media.Playback.IMediaPlaybackItemFactory2, Windows.Foundation.UniversalApiContract, 3.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Playback.IMediaPlaybackItemStatics, Windows.Foundation.UniversalApiContract, 2.0)]
            [threading(both)]
            runtimeclass MediaPlaybackItem
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackItem;
                interface Windows.Media.Playback.IMediaPlaybackSource;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Playback.IMediaPlaybackItem2;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Playback.IMediaPlaybackItem3;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackItemError
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackItemError;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackItemFailedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackItemFailedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackItemOpenedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackItemOpenedEventArgs;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackList
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackList;
                interface Windows.Media.Playback.IMediaPlaybackSource;
                [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.Media.Playback.IMediaPlaybackList2;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Playback.IMediaPlaybackList3;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackSession
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackSession;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Playback.IMediaPlaybackSession2;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Media.Playback.IMediaPlaybackSession3;
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackSessionBufferingStartedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackSessionBufferingStartedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackSessionOutputDegradationPolicyState
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackSessionOutputDegradationPolicyState;
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackSphericalVideoProjection
            {
                [default] interface Windows.Media.Playback.IMediaPlaybackSphericalVideoProjection;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackTimedMetadataTrackList
            {
                [default] interface Windows.Foundation.Collections.IVectorView<Windows.Media.Core.TimedMetadataTrack*>;
                interface Windows.Foundation.Collections.IIterable<Windows.Media.Core.TimedMetadataTrack*>;
                interface Windows.Media.Playback.IMediaPlaybackTimedMetadataTrackList;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlaybackVideoTrackList
            {
                [default] interface Windows.Foundation.Collections.IVectorView<Windows.Media.Core.VideoTrack*>;
                interface Windows.Foundation.Collections.IIterable<Windows.Media.Core.VideoTrack*>;
                interface Windows.Media.Core.ISingleSelectMediaTrackList;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 3.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlayer
            {
                [default] interface Windows.Media.Playback.IMediaPlayer;
                interface Windows.Media.Playback.IMediaPlayerSource;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Playback.IMediaPlayerSource2;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Playback.IMediaPlayer2;
                [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.Media.Playback.IMediaPlayerEffects;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Playback.IMediaPlayer3;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Playback.IMediaPlayer4;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Playback.IMediaPlayerEffects2;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Playback.IMediaPlayer5;
                [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Media.Playback.IMediaPlayer6;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Media.Playback.IMediaPlayer7;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlayerDataReceivedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlayerDataReceivedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlayerFailedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlayerFailedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass MediaPlayerRateChangedEventArgs
            {
                [default] interface Windows.Media.Playback.IMediaPlayerRateChangedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaPlayerSurface
            {
                [default] interface Windows.Media.Playback.IMediaPlayerSurface;
                interface Windows.Foundation.IClosable;
            }

            [activatable(Windows.Media.Playback.IPlaybackMediaMarkerFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PlaybackMediaMarker
            {
                [default] interface Windows.Media.Playback.IPlaybackMediaMarker;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PlaybackMediaMarkerReachedEventArgs
            {
                [default] interface Windows.Media.Playback.IPlaybackMediaMarkerReachedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass PlaybackMediaMarkerSequence
            {
                [default] interface Windows.Media.Playback.IPlaybackMediaMarkerSequence;
                interface Windows.Foundation.Collections.IIterable<Windows.Media.Playback.PlaybackMediaMarker*>;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass TimedMetadataPresentationModeChangedEventArgs
            {
                [default] interface Windows.Media.Playback.ITimedMetadataPresentationModeChangedEventArgs;
            }
        }
    }
}
