//
// 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.ApplicationModel.AppService.idl";
import "Windows.Graphics.DirectX.idl";
import "Windows.Graphics.DirectX.Direct3D11.idl";
import "Windows.Graphics.Imaging.idl";
import "Windows.Storage.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace ApplicationModel
    {
        namespace AppService
        {
            runtimeclass AppServiceConnection;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            interface IPropertySet;

            runtimeclass ValueSet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        interface IClosable;

        interface IMemoryBuffer;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace DirectX
        {
            namespace Direct3D11
            {
                interface IDirect3DDevice;

                interface IDirect3DSurface;
            }
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace DirectX
        {
            typedef enum DirectXPixelFormat DirectXPixelFormat;
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Imaging
        {
            typedef enum BitmapAlphaMode BitmapAlphaMode;

            typedef struct BitmapBounds BitmapBounds;

            typedef enum BitmapPixelFormat BitmapPixelFormat;

            runtimeclass SoftwareBitmap;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            runtimeclass RandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        apicontract MediaControlContract;

        typedef enum AudioBufferAccessMode AudioBufferAccessMode;

        typedef enum AudioProcessing AudioProcessing;

        typedef enum MediaPlaybackAutoRepeatMode MediaPlaybackAutoRepeatMode;

        typedef enum MediaPlaybackStatus MediaPlaybackStatus;

        typedef enum MediaPlaybackType MediaPlaybackType;

        typedef enum MediaTimelineControllerState MediaTimelineControllerState;

        typedef enum SoundLevel SoundLevel;

        typedef enum SystemMediaTransportControlsButton SystemMediaTransportControlsButton;

        typedef enum SystemMediaTransportControlsProperty SystemMediaTransportControlsProperty;

        typedef struct MediaTimeRange MediaTimeRange;

        interface IAudioBuffer;

        interface IAudioFrame;

        interface IAudioFrameFactory;

        interface IAutoRepeatModeChangeRequestedEventArgs;

        interface IImageDisplayProperties;

        interface IMediaControl;

        interface IMediaExtension;

        interface IMediaExtensionManager;

        interface IMediaExtensionManager2;

        interface IMediaFrame;

        interface IMediaMarker;

        interface IMediaMarkerTypesStatics;

        interface IMediaMarkers;

        interface IMediaProcessingTriggerDetails;

        interface IMediaTimelineController;

        interface IMediaTimelineController2;

        interface IMediaTimelineControllerFailedEventArgs;

        interface IMusicDisplayProperties;

        interface IMusicDisplayProperties2;

        interface IMusicDisplayProperties3;

        interface IPlaybackPositionChangeRequestedEventArgs;

        interface IPlaybackRateChangeRequestedEventArgs;

        interface IShuffleEnabledChangeRequestedEventArgs;

        interface ISystemMediaTransportControls;

        interface ISystemMediaTransportControls2;

        interface ISystemMediaTransportControlsButtonPressedEventArgs;

        interface ISystemMediaTransportControlsDisplayUpdater;

        interface ISystemMediaTransportControlsPropertyChangedEventArgs;

        interface ISystemMediaTransportControlsStatics;

        interface ISystemMediaTransportControlsTimelineProperties;

        interface IVideoDisplayProperties;

        interface IVideoDisplayProperties2;

        interface IVideoEffectsStatics;

        interface IVideoFrame;

        interface IVideoFrame2;

        interface IVideoFrameFactory;

        interface IVideoFrameStatics;

        runtimeclass AudioBuffer;

        runtimeclass AudioFrame;

        runtimeclass AutoRepeatModeChangeRequestedEventArgs;

        runtimeclass ImageDisplayProperties;

        runtimeclass MediaControl;

        runtimeclass MediaExtensionManager;

        runtimeclass MediaMarkerTypes;

        runtimeclass MediaProcessingTriggerDetails;

        runtimeclass MediaTimelineController;

        runtimeclass MediaTimelineControllerFailedEventArgs;

        runtimeclass MusicDisplayProperties;

        runtimeclass PlaybackPositionChangeRequestedEventArgs;

        runtimeclass PlaybackRateChangeRequestedEventArgs;

        runtimeclass ShuffleEnabledChangeRequestedEventArgs;

        runtimeclass SystemMediaTransportControls;

        runtimeclass SystemMediaTransportControlsButtonPressedEventArgs;

        runtimeclass SystemMediaTransportControlsDisplayUpdater;

        runtimeclass SystemMediaTransportControlsPropertyChangedEventArgs;

        runtimeclass SystemMediaTransportControlsTimelineProperties;

        runtimeclass VideoDisplayProperties;

        runtimeclass VideoEffects;

        runtimeclass VideoFrame;
    }
}

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

            interface Windows.Foundation.Collections.IIterable<Windows.Media.MediaTimeRange>;

            interface Windows.Foundation.Collections.IIterator<Windows.Media.IMediaMarker*>;

            interface Windows.Foundation.Collections.IIterator<Windows.Media.MediaTimeRange>;

            interface Windows.Foundation.Collections.IVectorView<Windows.Media.IMediaMarker*>;

            interface Windows.Foundation.Collections.IVectorView<Windows.Media.MediaTimeRange>;

            interface Windows.Foundation.IAsyncOperation<Windows.Media.IMediaExtension*>;

            interface Windows.Foundation.IAsyncOperation<Windows.Media.VideoFrame*>;

            interface Windows.Foundation.IReference<Windows.Media.MediaPlaybackAutoRepeatMode>;

            interface Windows.Foundation.IReference<Windows.Media.MediaPlaybackType>;

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

            interface Windows.Foundation.TypedEventHandler<Windows.Media.MediaTimelineController*, Windows.Media.MediaTimelineControllerFailedEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.AutoRepeatModeChangeRequestedEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.PlaybackPositionChangeRequestedEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.PlaybackRateChangeRequestedEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.ShuffleEnabledChangeRequestedEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.SystemMediaTransportControlsButtonPressedEventArgs*>;

            interface Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.SystemMediaTransportControlsPropertyChangedEventArgs*>;
        }
    }
}

// Type definition
namespace Windows
{
    namespace Media
    {
        [contractversion(1.0)]
        apicontract MediaControlContract
        {
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        enum AudioBufferAccessMode
        {
            Read      = 0,
            ReadWrite = 1,
            Write     = 2
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        enum AudioProcessing
        {
            Default = 0,
            Raw     = 1
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        enum MediaPlaybackAutoRepeatMode
        {
            None  = 0,
            Track = 1,
            List  = 2
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        enum MediaPlaybackStatus
        {
            Closed   = 0,
            Changing = 1,
            Stopped  = 2,
            Playing  = 3,
            Paused   = 4
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        enum MediaPlaybackType
        {
            Unknown = 0,
            Music   = 1,
            Video   = 2,
            Image   = 3
        };

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        enum MediaTimelineControllerState
        {
            Paused  = 0,
            Running = 1,
            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            Stalled = 2,
            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            Error   = 3
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        enum SoundLevel
        {
            Muted = 0,
            Low   = 1,
            Full  = 2
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        enum SystemMediaTransportControlsButton
        {
            Play        = 0,
            Pause       = 1,
            Stop        = 2,
            Record      = 3,
            FastForward = 4,
            Rewind      = 5,
            Next        = 6,
            Previous    = 7,
            ChannelUp   = 8,
            ChannelDown = 9
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        enum SystemMediaTransportControlsProperty
        {
            SoundLevel = 0
        };

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        struct MediaTimeRange
        {
            Windows.Foundation.TimeSpan Start;
            Windows.Foundation.TimeSpan End;
        };

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.AudioBuffer)]
        [uuid(35175827-724B-4C6A-B130-F6537F9AE0D0)]
        interface IAudioBuffer : IInspectable
            requires
                Windows.Foundation.IMemoryBuffer,
                Windows.Foundation.IClosable
        {
            [propget] HRESULT Capacity([out] [retval] UINT32* value);
            [propget] HRESULT Length([out] [retval] UINT32* value);
            [propput] HRESULT Length([in] UINT32 value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.AudioFrame)]
        [uuid(E36AC304-AAB2-4277-9ED0-43CEDF8E29C6)]
        interface IAudioFrame : IInspectable
            requires
                Windows.Media.IMediaFrame,
                Windows.Foundation.IClosable
        {
            HRESULT LockBuffer([in] Windows.Media.AudioBufferAccessMode mode, [out] [retval] Windows.Media.AudioBuffer** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.AudioFrame)]
        [uuid(91A90ADE-2422-40A6-B9AD-30D02404317D)]
        interface IAudioFrameFactory : IInspectable
        {
            HRESULT Create([in] [range(0x00000000, 0x7FFFFFFF)] UINT32 capacity, [out] [retval] Windows.Media.AudioFrame** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.AutoRepeatModeChangeRequestedEventArgs)]
        [uuid(EA137EFA-D852-438E-882B-C990109A78F4)]
        interface IAutoRepeatModeChangeRequestedEventArgs : IInspectable
        {
            [propget] HRESULT RequestedAutoRepeatMode([out] [retval] Windows.Media.MediaPlaybackAutoRepeatMode* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.ImageDisplayProperties)]
        [uuid(CD0BC7EF-54E7-411F-9933-F0E98B0A96D2)]
        interface IImageDisplayProperties : IInspectable
        {
            [propget] HRESULT Title([out] [retval] HSTRING* value);
            [propput] HRESULT Title([in] HSTRING value);
            [propget] HRESULT Subtitle([out] [retval] HSTRING* value);
            [propput] HRESULT Subtitle([in] HSTRING value);
        }

        [contract(Windows.Media.MediaControlContract, 1.0)]
        [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)]
        [exclusiveto(Windows.Media.MediaControl)]
        [uuid(98F1FBE1-7A8D-42CB-B6FE-8FE698264F13)]
        interface IMediaControl : IInspectable
        {
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT SoundLevelChanged([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT SoundLevelChanged([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT PlayPressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT PlayPressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT PausePressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT PausePressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT StopPressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT StopPressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT PlayPauseTogglePressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT PlayPauseTogglePressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT RecordPressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT RecordPressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT NextTrackPressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT NextTrackPressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT PreviousTrackPressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT PreviousTrackPressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT FastForwardPressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT FastForwardPressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT RewindPressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT RewindPressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT ChannelUpPressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT ChannelUpPressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventadd] HRESULT ChannelDownPressed([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [eventremove] HRESULT ChannelDownPressed([in] EventRegistrationToken cookie);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [propget] HRESULT SoundLevel([out] [retval] Windows.Media.SoundLevel* value);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [propput] HRESULT TrackName([in] HSTRING value);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [propget] HRESULT TrackName([out] [retval] HSTRING* value);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [propput] HRESULT ArtistName([in] HSTRING value);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [propget] HRESULT ArtistName([out] [retval] HSTRING* value);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [propput] HRESULT IsPlaying([in] boolean value);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [propget] HRESULT IsPlaying([out] [retval] boolean* value);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [propput] HRESULT AlbumArt([in] Windows.Foundation.Uri* value);
            [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)] [propget] HRESULT AlbumArt([out] [retval] Windows.Foundation.Uri** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [uuid(07915118-45DF-442B-8A3F-F7826A6370AB)]
        interface IMediaExtension : IInspectable
        {
            HRESULT SetProperties([in] Windows.Foundation.Collections.IPropertySet* configuration);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.MediaExtensionManager)]
        [uuid(4A25EAF5-242D-4DFB-97F4-69B7C42576FF)]
        interface IMediaExtensionManager : IInspectable
        {
            [overload("RegisterSchemeHandler")] HRESULT RegisterSchemeHandler([in] HSTRING activatableClassId, [in] HSTRING scheme);
            [overload("RegisterSchemeHandler")] HRESULT RegisterSchemeHandlerWithSettings([in] HSTRING activatableClassId, [in] HSTRING scheme, [in] Windows.Foundation.Collections.IPropertySet* configuration);
            [overload("RegisterByteStreamHandler")] HRESULT RegisterByteStreamHandler([in] HSTRING activatableClassId, [in] HSTRING fileExtension, [in] HSTRING mimeType);
            [overload("RegisterByteStreamHandler")] HRESULT RegisterByteStreamHandlerWithSettings([in] HSTRING activatableClassId, [in] HSTRING fileExtension, [in] HSTRING mimeType, [in] Windows.Foundation.Collections.IPropertySet* configuration);
            [overload("RegisterAudioDecoder")] HRESULT RegisterAudioDecoder([in] HSTRING activatableClassId, [in] GUID inputSubtype, [in] GUID outputSubtype);
            [overload("RegisterAudioDecoder")] HRESULT RegisterAudioDecoderWithSettings([in] HSTRING activatableClassId, [in] GUID inputSubtype, [in] GUID outputSubtype, [in] Windows.Foundation.Collections.IPropertySet* configuration);
            [overload("RegisterAudioEncoder")] HRESULT RegisterAudioEncoder([in] HSTRING activatableClassId, [in] GUID inputSubtype, [in] GUID outputSubtype);
            [overload("RegisterAudioEncoder")] HRESULT RegisterAudioEncoderWithSettings([in] HSTRING activatableClassId, [in] GUID inputSubtype, [in] GUID outputSubtype, [in] Windows.Foundation.Collections.IPropertySet* configuration);
            [overload("RegisterVideoDecoder")] HRESULT RegisterVideoDecoder([in] HSTRING activatableClassId, [in] GUID inputSubtype, [in] GUID outputSubtype);
            [overload("RegisterVideoDecoder")] HRESULT RegisterVideoDecoderWithSettings([in] HSTRING activatableClassId, [in] GUID inputSubtype, [in] GUID outputSubtype, [in] Windows.Foundation.Collections.IPropertySet* configuration);
            [overload("RegisterVideoEncoder")] HRESULT RegisterVideoEncoder([in] HSTRING activatableClassId, [in] GUID inputSubtype, [in] GUID outputSubtype);
            [overload("RegisterVideoEncoder")] HRESULT RegisterVideoEncoderWithSettings([in] HSTRING activatableClassId, [in] GUID inputSubtype, [in] GUID outputSubtype, [in] Windows.Foundation.Collections.IPropertySet* configuration);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.Media.MediaExtensionManager)]
        [uuid(5BCEBF47-4043-4FED-ACAF-54EC29DFB1F7)]
        interface IMediaExtensionManager2 : IInspectable
            requires
                Windows.Media.IMediaExtensionManager
        {
            HRESULT RegisterMediaExtensionForAppService([in] Windows.Media.IMediaExtension* extension, [in] Windows.ApplicationModel.AppService.AppServiceConnection* connection);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [uuid(BFB52F8C-5943-47D8-8E10-05308AA5FBD0)]
        interface IMediaFrame : IInspectable
            requires
                Windows.Foundation.IClosable
        {
            [propget] HRESULT Type([out] [retval] HSTRING* value);
            [propget] HRESULT IsReadOnly([out] [retval] boolean* value);
            [propput] HRESULT RelativeTime([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
            [propget] HRESULT RelativeTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
            [propput] HRESULT SystemRelativeTime([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
            [propget] HRESULT SystemRelativeTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
            [propput] HRESULT Duration([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
            [propget] HRESULT Duration([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
            [propput] HRESULT IsDiscontinuous([in] boolean value);
            [propget] HRESULT IsDiscontinuous([out] [retval] boolean* value);
            [propget] HRESULT ExtendedProperties([out] [retval] Windows.Foundation.Collections.IPropertySet** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [uuid(1803DEF8-DCA5-4B6F-9C20-E3D3C0643625)]
        interface IMediaMarker : 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.MediaMarkerTypes)]
        [uuid(BB198040-482F-4743-8832-45853821ECE0)]
        interface IMediaMarkerTypesStatics : IInspectable
        {
            [propget] HRESULT Bookmark([out] [retval] HSTRING* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [uuid(AFEAB189-F8DD-466E-AA10-920B52353FDF)]
        interface IMediaMarkers : IInspectable
        {
            [propget] HRESULT Markers([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.IMediaMarker*>** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.MediaProcessingTriggerDetails)]
        [uuid(EB8564AC-A351-4F4E-B4F0-9BF2408993DB)]
        interface IMediaProcessingTriggerDetails : IInspectable
        {
            [propget] HRESULT Arguments([out] [retval] Windows.Foundation.Collections.ValueSet** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.Media.MediaTimelineController)]
        [uuid(8ED361F3-0B78-4360-BF71-0C841999EA1B)]
        interface IMediaTimelineController : IInspectable
        {
            HRESULT Start();
            HRESULT Resume();
            HRESULT Pause();
            [propget] HRESULT Position([out] [retval] Windows.Foundation.TimeSpan* value);
            [propput] HRESULT Position([in] Windows.Foundation.TimeSpan value);
            [propget] HRESULT ClockRate([out] [retval] DOUBLE* value);
            [propput] HRESULT ClockRate([in] DOUBLE value);
            [propget] HRESULT State([out] [retval] Windows.Media.MediaTimelineControllerState* value);
            [eventadd] HRESULT PositionChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.MediaTimelineController*, IInspectable*>* positionChangedEventHandler, [out] [retval] EventRegistrationToken* eventCookie);
            [eventremove] HRESULT PositionChanged([in] EventRegistrationToken eventCookie);
            [eventadd] HRESULT StateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.MediaTimelineController*, IInspectable*>* stateChangedEventHandler, [out] [retval] EventRegistrationToken* eventCookie);
            [eventremove] HRESULT StateChanged([in] EventRegistrationToken eventCookie);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.Media.MediaTimelineController)]
        [uuid(EF74EA38-9E72-4DF9-8355-6E90C81BBADD)]
        interface IMediaTimelineController2 : IInspectable
        {
            [propget] HRESULT Duration([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
            [propput] HRESULT Duration([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
            [propget] HRESULT IsLoopingEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsLoopingEnabled([in] boolean value);
            [eventadd] HRESULT Failed([in] Windows.Foundation.TypedEventHandler<Windows.Media.MediaTimelineController*, Windows.Media.MediaTimelineControllerFailedEventArgs*>* eventHandler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT Failed([in] EventRegistrationToken token);
            [eventadd] HRESULT Ended([in] Windows.Foundation.TypedEventHandler<Windows.Media.MediaTimelineController*, IInspectable*>* eventHandler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT Ended([in] EventRegistrationToken token);
        }

        [contract(Windows.Foundation.UniversalApiContract, 4.0)]
        [exclusiveto(Windows.Media.MediaTimelineControllerFailedEventArgs)]
        [uuid(8821F81D-3E77-43FB-BE26-4FC87A044834)]
        interface IMediaTimelineControllerFailedEventArgs : IInspectable
        {
            [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.MusicDisplayProperties)]
        [uuid(6BBF0C59-D0A0-4D26-92A0-F978E1D18E7B)]
        interface IMusicDisplayProperties : IInspectable
        {
            [propget] HRESULT Title([out] [retval] HSTRING* value);
            [propput] HRESULT Title([in] HSTRING value);
            [propget] HRESULT AlbumArtist([out] [retval] HSTRING* value);
            [propput] HRESULT AlbumArtist([in] HSTRING value);
            [propget] HRESULT Artist([out] [retval] HSTRING* value);
            [propput] HRESULT Artist([in] HSTRING value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.MusicDisplayProperties)]
        [uuid(00368462-97D3-44B9-B00F-008AFCEFAF18)]
        interface IMusicDisplayProperties2 : IInspectable
        {
            [propget] HRESULT AlbumTitle([out] [retval] HSTRING* value);
            [propput] HRESULT AlbumTitle([in] HSTRING value);
            [propget] HRESULT TrackNumber([out] [retval] UINT32* value);
            [propput] HRESULT TrackNumber([in] UINT32 value);
            [propget] HRESULT Genres([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [exclusiveto(Windows.Media.MusicDisplayProperties)]
        [uuid(4DB51AC1-0681-4E8C-9401-B8159D9EEFC7)]
        interface IMusicDisplayProperties3 : IInspectable
        {
            [propget] HRESULT AlbumTrackCount([out] [retval] UINT32* value);
            [propput] HRESULT AlbumTrackCount([in] UINT32 value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.PlaybackPositionChangeRequestedEventArgs)]
        [uuid(B4493F88-EB28-4961-9C14-335E44F3E125)]
        interface IPlaybackPositionChangeRequestedEventArgs : IInspectable
        {
            [propget] HRESULT RequestedPlaybackPosition([out] [retval] Windows.Foundation.TimeSpan* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.PlaybackRateChangeRequestedEventArgs)]
        [uuid(2CE2C41F-3CD6-4F77-9BA7-EB27C26A2140)]
        interface IPlaybackRateChangeRequestedEventArgs : IInspectable
        {
            [propget] HRESULT RequestedPlaybackRate([out] [retval] DOUBLE* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.ShuffleEnabledChangeRequestedEventArgs)]
        [uuid(49B593FE-4FD0-4666-A314-C0E01940D302)]
        interface IShuffleEnabledChangeRequestedEventArgs : IInspectable
        {
            [propget] HRESULT RequestedShuffleEnabled([out] [retval] boolean* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.SystemMediaTransportControls)]
        [uuid(99FA3FF4-1742-42A6-902E-087D41F965EC)]
        interface ISystemMediaTransportControls : IInspectable
        {
            [propget] HRESULT PlaybackStatus([out] [retval] Windows.Media.MediaPlaybackStatus* value);
            [propput] HRESULT PlaybackStatus([in] Windows.Media.MediaPlaybackStatus value);
            [propget] HRESULT DisplayUpdater([out] [retval] Windows.Media.SystemMediaTransportControlsDisplayUpdater** value);
            [propget] HRESULT SoundLevel([out] [retval] Windows.Media.SoundLevel* value);
            [propget] HRESULT IsEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsEnabled([in] boolean value);
            [propget] HRESULT IsPlayEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsPlayEnabled([in] boolean value);
            [propget] HRESULT IsStopEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsStopEnabled([in] boolean value);
            [propget] HRESULT IsPauseEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsPauseEnabled([in] boolean value);
            [propget] HRESULT IsRecordEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsRecordEnabled([in] boolean value);
            [propget] HRESULT IsFastForwardEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsFastForwardEnabled([in] boolean value);
            [propget] HRESULT IsRewindEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsRewindEnabled([in] boolean value);
            [propget] HRESULT IsPreviousEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsPreviousEnabled([in] boolean value);
            [propget] HRESULT IsNextEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsNextEnabled([in] boolean value);
            [propget] HRESULT IsChannelUpEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsChannelUpEnabled([in] boolean value);
            [propget] HRESULT IsChannelDownEnabled([out] [retval] boolean* value);
            [propput] HRESULT IsChannelDownEnabled([in] boolean value);
            [eventadd] HRESULT ButtonPressed([in] Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.SystemMediaTransportControlsButtonPressedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT ButtonPressed([in] EventRegistrationToken token);
            [eventadd] HRESULT PropertyChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.SystemMediaTransportControlsPropertyChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT PropertyChanged([in] EventRegistrationToken token);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.SystemMediaTransportControls)]
        [uuid(EA98D2F6-7F3C-4AF2-A586-72889808EFB1)]
        interface ISystemMediaTransportControls2 : IInspectable
        {
            [propget] HRESULT AutoRepeatMode([out] [retval] Windows.Media.MediaPlaybackAutoRepeatMode* value);
            [propput] HRESULT AutoRepeatMode([in] Windows.Media.MediaPlaybackAutoRepeatMode value);
            [propget] HRESULT ShuffleEnabled([out] [retval] boolean* value);
            [propput] HRESULT ShuffleEnabled([in] boolean value);
            [propget] HRESULT PlaybackRate([out] [retval] DOUBLE* value);
            [propput] HRESULT PlaybackRate([in] DOUBLE value);
            HRESULT UpdateTimelineProperties([in] Windows.Media.SystemMediaTransportControlsTimelineProperties* timelineProperties);
            [eventadd] HRESULT PlaybackPositionChangeRequested([in] Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.PlaybackPositionChangeRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT PlaybackPositionChangeRequested([in] EventRegistrationToken token);
            [eventadd] HRESULT PlaybackRateChangeRequested([in] Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.PlaybackRateChangeRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT PlaybackRateChangeRequested([in] EventRegistrationToken token);
            [eventadd] HRESULT ShuffleEnabledChangeRequested([in] Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.ShuffleEnabledChangeRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT ShuffleEnabledChangeRequested([in] EventRegistrationToken token);
            [eventadd] HRESULT AutoRepeatModeChangeRequested([in] Windows.Foundation.TypedEventHandler<Windows.Media.SystemMediaTransportControls*, Windows.Media.AutoRepeatModeChangeRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
            [eventremove] HRESULT AutoRepeatModeChangeRequested([in] EventRegistrationToken token);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.SystemMediaTransportControlsButtonPressedEventArgs)]
        [uuid(B7F47116-A56F-4DC8-9E11-92031F4A87C2)]
        interface ISystemMediaTransportControlsButtonPressedEventArgs : IInspectable
        {
            [propget] HRESULT Button([out] [retval] Windows.Media.SystemMediaTransportControlsButton* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.SystemMediaTransportControlsDisplayUpdater)]
        [uuid(8ABBC53E-FA55-4ECF-AD8E-C984E5DD1550)]
        interface ISystemMediaTransportControlsDisplayUpdater : IInspectable
        {
            [propget] HRESULT Type([out] [retval] Windows.Media.MediaPlaybackType* value);
            [propput] HRESULT Type([in] Windows.Media.MediaPlaybackType value);
            [propget] HRESULT AppMediaId([out] [retval] HSTRING* value);
            [propput] HRESULT AppMediaId([in] HSTRING value);
            [propget] HRESULT Thumbnail([out] [retval] Windows.Storage.Streams.RandomAccessStreamReference** value);
            [propput] HRESULT Thumbnail([in] Windows.Storage.Streams.RandomAccessStreamReference* value);
            [propget] HRESULT MusicProperties([out] [retval] Windows.Media.MusicDisplayProperties** value);
            [propget] HRESULT VideoProperties([out] [retval] Windows.Media.VideoDisplayProperties** value);
            [propget] HRESULT ImageProperties([out] [retval] Windows.Media.ImageDisplayProperties** value);
            HRESULT CopyFromFileAsync([in] Windows.Media.MediaPlaybackType type, [in] Windows.Storage.StorageFile* source, [out] [retval] Windows.Foundation.IAsyncOperation<boolean>** operation);
            HRESULT ClearAll();
            HRESULT Update();
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.SystemMediaTransportControlsPropertyChangedEventArgs)]
        [uuid(D0CA0936-339B-4CB3-8EEB-737607F56E08)]
        interface ISystemMediaTransportControlsPropertyChangedEventArgs : IInspectable
        {
            [propget] HRESULT Property([out] [retval] Windows.Media.SystemMediaTransportControlsProperty* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.SystemMediaTransportControls)]
        [uuid(43BA380A-ECA4-4832-91AB-D415FAE484C6)]
        interface ISystemMediaTransportControlsStatics : IInspectable
        {
            HRESULT GetForCurrentView([out] [retval] Windows.Media.SystemMediaTransportControls** mediaControl);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.SystemMediaTransportControlsTimelineProperties)]
        [uuid(5125316A-C3A2-475B-8507-93534DC88F15)]
        interface ISystemMediaTransportControlsTimelineProperties : IInspectable
        {
            [propget] HRESULT StartTime([out] [retval] Windows.Foundation.TimeSpan* value);
            [propput] HRESULT StartTime([in] Windows.Foundation.TimeSpan value);
            [propget] HRESULT EndTime([out] [retval] Windows.Foundation.TimeSpan* value);
            [propput] HRESULT EndTime([in] Windows.Foundation.TimeSpan value);
            [propget] HRESULT MinSeekTime([out] [retval] Windows.Foundation.TimeSpan* value);
            [propput] HRESULT MinSeekTime([in] Windows.Foundation.TimeSpan value);
            [propget] HRESULT MaxSeekTime([out] [retval] Windows.Foundation.TimeSpan* value);
            [propput] HRESULT MaxSeekTime([in] Windows.Foundation.TimeSpan value);
            [propget] HRESULT Position([out] [retval] Windows.Foundation.TimeSpan* value);
            [propput] HRESULT Position([in] Windows.Foundation.TimeSpan value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.VideoDisplayProperties)]
        [uuid(5609FDB1-5D2D-4872-8170-45DEE5BC2F5C)]
        interface IVideoDisplayProperties : IInspectable
        {
            [propget] HRESULT Title([out] [retval] HSTRING* value);
            [propput] HRESULT Title([in] HSTRING value);
            [propget] HRESULT Subtitle([out] [retval] HSTRING* value);
            [propput] HRESULT Subtitle([in] HSTRING value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.VideoDisplayProperties)]
        [uuid(B410E1CE-AB52-41AB-A486-CC10FAB152F9)]
        interface IVideoDisplayProperties2 : IInspectable
        {
            [propget] HRESULT Genres([out] [retval] Windows.Foundation.Collections.IVector<HSTRING>** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.VideoEffects)]
        [uuid(1FCDA5E8-BAF1-4521-980C-3BCEBB44CF38)]
        interface IVideoEffectsStatics : IInspectable
        {
            [propget] HRESULT VideoStabilization([out] [retval] HSTRING* value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.VideoFrame)]
        [uuid(0CC06625-90FC-4C92-BD95-7DED21819D1C)]
        interface IVideoFrame : IInspectable
            requires
                Windows.Media.IMediaFrame,
                Windows.Foundation.IClosable
        {
            [propget] HRESULT SoftwareBitmap([out] [retval] Windows.Graphics.Imaging.SoftwareBitmap** value);
            HRESULT CopyToAsync([in] Windows.Media.VideoFrame* frame, [out] [retval] Windows.Foundation.IAsyncAction** value);
            [propget] HRESULT Direct3DSurface([out] [retval] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 6.0)]
        [exclusiveto(Windows.Media.VideoFrame)]
        [uuid(3837840D-336C-4366-8D46-060798736C5D)]
        interface IVideoFrame2 : IInspectable
        {
            [overload("CopyToAsync")] HRESULT CopyToWithBoundsAsync([in] Windows.Media.VideoFrame* frame, [in] Windows.Foundation.IReference<Windows.Graphics.Imaging.BitmapBounds>* sourceBounds, [in] Windows.Foundation.IReference<Windows.Graphics.Imaging.BitmapBounds>* destinationBounds, [out] [retval] Windows.Foundation.IAsyncAction** operation);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [exclusiveto(Windows.Media.VideoFrame)]
        [uuid(014B6D69-2228-4C92-92FF-50C380D3E776)]
        interface IVideoFrameFactory : IInspectable
        {
            HRESULT Create([in] Windows.Graphics.Imaging.BitmapPixelFormat format, [in] INT32 width, [in] INT32 height, [out] [retval] Windows.Media.VideoFrame** value);
            HRESULT CreateWithAlpha([in] Windows.Graphics.Imaging.BitmapPixelFormat format, [in] INT32 width, [in] INT32 height, [in] Windows.Graphics.Imaging.BitmapAlphaMode alpha, [out] [retval] Windows.Media.VideoFrame** value);
        }

        [contract(Windows.Foundation.UniversalApiContract, 6.0)]
        [exclusiveto(Windows.Media.VideoFrame)]
        [uuid(AB2A556F-6111-4B33-8EC3-2B209A02E17A)]
        interface IVideoFrameStatics : IInspectable
        {
            [overload("CreateAsDirect3D11SurfaceBacked")] HRESULT CreateAsDirect3D11SurfaceBacked([in] Windows.Graphics.DirectX.DirectXPixelFormat format, [in] INT32 width, [in] INT32 height, [out] [retval] Windows.Media.VideoFrame** result);
            [overload("CreateAsDirect3D11SurfaceBacked")] HRESULT CreateAsDirect3D11SurfaceBackedWithDevice([in] Windows.Graphics.DirectX.DirectXPixelFormat format, [in] INT32 width, [in] INT32 height, [in] Windows.Graphics.DirectX.Direct3D11.IDirect3DDevice* device, [out] [retval] Windows.Media.VideoFrame** result);
            HRESULT CreateWithSoftwareBitmap([in] Windows.Graphics.Imaging.SoftwareBitmap* bitmap, [out] [retval] Windows.Media.VideoFrame** result);
            HRESULT CreateWithDirect3D11Surface([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface* surface, [out] [retval] Windows.Media.VideoFrame** result);
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass AudioBuffer
        {
            [default] interface Windows.Media.IAudioBuffer;
            interface Windows.Foundation.IMemoryBuffer;
            interface Windows.Foundation.IClosable;
        }

        [activatable(Windows.Media.IAudioFrameFactory, Windows.Foundation.UniversalApiContract, 1.0)]
        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass AudioFrame
        {
            [default] interface Windows.Media.IAudioFrame;
            interface Windows.Media.IMediaFrame;
            interface Windows.Foundation.IClosable;
        }

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

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

        [contract(Windows.Media.MediaControlContract, 1.0)]
        [deprecated("MediaControl may be altered or unavailable for releases after Windows 8.1. Instead, use SystemMediaTransportControls.", deprecate, Windows.Media.MediaControlContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.Media.IMediaControl, Windows.Media.MediaControlContract, 1.0)]
        [threading(mta)]
        runtimeclass MediaControl
        {
        }

        [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass MediaExtensionManager
        {
            [default] interface Windows.Media.IMediaExtensionManager;
            [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.IMediaExtensionManager2;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.Media.IMediaMarkerTypesStatics, Windows.Foundation.UniversalApiContract, 1.0)]
        runtimeclass MediaMarkerTypes
        {
        }

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

        [activatable(Windows.Foundation.UniversalApiContract, 3.0)]
        [contract(Windows.Foundation.UniversalApiContract, 3.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass MediaTimelineController
        {
            [default] interface Windows.Media.IMediaTimelineController;
            [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.IMediaTimelineController2;
        }

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

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass MusicDisplayProperties
        {
            [default] interface Windows.Media.IMusicDisplayProperties;
            [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.IMusicDisplayProperties2;
            [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.IMusicDisplayProperties3;
        }

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

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

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

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.Media.ISystemMediaTransportControlsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
        [threading(mta)]
        runtimeclass SystemMediaTransportControls
        {
            [default] interface Windows.Media.ISystemMediaTransportControls;
            [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.ISystemMediaTransportControls2;
        }

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

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

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

        [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass SystemMediaTransportControlsTimelineProperties
        {
            [default] interface Windows.Media.ISystemMediaTransportControlsTimelineProperties;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [threading(both)]
        runtimeclass VideoDisplayProperties
        {
            [default] interface Windows.Media.IVideoDisplayProperties;
            [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.IVideoDisplayProperties2;
        }

        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.Media.IVideoEffectsStatics, Windows.Foundation.UniversalApiContract, 1.0)]
        [threading(both)]
        runtimeclass VideoEffects
        {
        }

        [activatable(Windows.Media.IVideoFrameFactory, Windows.Foundation.UniversalApiContract, 1.0)]
        [contract(Windows.Foundation.UniversalApiContract, 1.0)]
        [marshaling_behavior(agile)]
        [static(Windows.Media.IVideoFrameStatics, Windows.Foundation.UniversalApiContract, 6.0)]
        [threading(both)]
        runtimeclass VideoFrame
        {
            [default] interface Windows.Media.IVideoFrame;
            interface Windows.Media.IMediaFrame;
            interface Windows.Foundation.IClosable;
            [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Media.IVideoFrame2;
        }
    }
}
