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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Media.Core.idl";
import "Windows.Storage.Streams.idl";
import "Windows.Web.Http.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        typedef struct DateTime DateTime;

        interface IClosable;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Core
        {
            interface IMediaSource;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;

            interface IInputStream;
        }
    }
}
namespace Windows
{
    namespace Web
    {
        namespace Http
        {
            runtimeclass HttpClient;

            runtimeclass HttpResponseMessage;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Streaming
        {
            namespace Adaptive
            {
                typedef enum AdaptiveMediaSourceCreationStatus AdaptiveMediaSourceCreationStatus;

                typedef enum AdaptiveMediaSourceDiagnosticType AdaptiveMediaSourceDiagnosticType;

                typedef enum AdaptiveMediaSourceDownloadBitrateChangedReason AdaptiveMediaSourceDownloadBitrateChangedReason;

                typedef enum AdaptiveMediaSourceResourceType AdaptiveMediaSourceResourceType;

                interface IAdaptiveMediaSource;

                interface IAdaptiveMediaSource2;

                interface IAdaptiveMediaSource3;

                interface IAdaptiveMediaSourceAdvancedSettings;

                interface IAdaptiveMediaSourceCorrelatedTimes;

                interface IAdaptiveMediaSourceCreationResult;

                interface IAdaptiveMediaSourceCreationResult2;

                interface IAdaptiveMediaSourceDiagnosticAvailableEventArgs;

                interface IAdaptiveMediaSourceDiagnosticAvailableEventArgs2;

                interface IAdaptiveMediaSourceDiagnostics;

                interface IAdaptiveMediaSourceDownloadBitrateChangedEventArgs;

                interface IAdaptiveMediaSourceDownloadBitrateChangedEventArgs2;

                interface IAdaptiveMediaSourceDownloadCompletedEventArgs;

                interface IAdaptiveMediaSourceDownloadCompletedEventArgs2;

                interface IAdaptiveMediaSourceDownloadFailedEventArgs;

                interface IAdaptiveMediaSourceDownloadFailedEventArgs2;

                interface IAdaptiveMediaSourceDownloadRequestedDeferral;

                interface IAdaptiveMediaSourceDownloadRequestedEventArgs;

                interface IAdaptiveMediaSourceDownloadRequestedEventArgs2;

                interface IAdaptiveMediaSourceDownloadResult;

                interface IAdaptiveMediaSourceDownloadResult2;

                interface IAdaptiveMediaSourceDownloadStatistics;

                interface IAdaptiveMediaSourcePlaybackBitrateChangedEventArgs;

                interface IAdaptiveMediaSourceStatics;

                runtimeclass AdaptiveMediaSource;

                runtimeclass AdaptiveMediaSourceAdvancedSettings;

                runtimeclass AdaptiveMediaSourceCorrelatedTimes;

                runtimeclass AdaptiveMediaSourceCreationResult;

                runtimeclass AdaptiveMediaSourceDiagnosticAvailableEventArgs;

                runtimeclass AdaptiveMediaSourceDiagnostics;

                runtimeclass AdaptiveMediaSourceDownloadBitrateChangedEventArgs;

                runtimeclass AdaptiveMediaSourceDownloadCompletedEventArgs;

                runtimeclass AdaptiveMediaSourceDownloadFailedEventArgs;

                runtimeclass AdaptiveMediaSourceDownloadRequestedDeferral;

                runtimeclass AdaptiveMediaSourceDownloadRequestedEventArgs;

                runtimeclass AdaptiveMediaSourceDownloadResult;

                runtimeclass AdaptiveMediaSourceDownloadStatistics;

                runtimeclass AdaptiveMediaSourcePlaybackBitrateChangedEventArgs;
            }
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Media
    {
        namespace Streaming
        {
            namespace Adaptive
            {
                declare
                {
                    interface Windows.Foundation.IAsyncOperation<Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCreationResult*>;

                    interface Windows.Foundation.IReference<Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceResourceType>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadBitrateChangedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadCompletedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadFailedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadRequestedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourcePlaybackBitrateChangedEventArgs*>;

                    interface Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDiagnostics*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDiagnosticAvailableEventArgs*>;
                }
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Media
    {
        namespace Streaming
        {
            namespace Adaptive
            {
                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum AdaptiveMediaSourceCreationStatus
                {
                    Success                        = 0,
                    ManifestDownloadFailure        = 1,
                    ManifestParseFailure           = 2,
                    UnsupportedManifestContentType = 3,
                    UnsupportedManifestVersion     = 4,
                    UnsupportedManifestProfile     = 5,
                    UnknownFailure                 = 6
                };

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                enum AdaptiveMediaSourceDiagnosticType
                {
                    ManifestUnchangedUponReload              = 0,
                    ManifestMismatchUponReload               = 1,
                    ManifestSignaledEndOfLiveEventUponReload = 2,
                    MediaSegmentSkipped                      = 3,
                    ResourceNotFound                         = 4,
                    ResourceTimedOut                         = 5,
                    ResourceParsingError                     = 6,
                    BitrateDisabled                          = 7,
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                    FatalMediaSourceError                    = 8
                };

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                enum AdaptiveMediaSourceDownloadBitrateChangedReason
                {
                    SufficientInboundBitsPerSecond   = 0,
                    InsufficientInboundBitsPerSecond = 1,
                    LowBufferLevel                   = 2,
                    PositionChanged                  = 3,
                    TrackSelectionChanged            = 4,
                    DesiredBitratesChanged           = 5,
                    ErrorInPreviousBitrate           = 6
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                enum AdaptiveMediaSourceResourceType
                {
                    Manifest              = 0,
                    InitializationSegment = 1,
                    MediaSegment          = 2,
                    Key                   = 3,
                    InitializationVector  = 4
                };

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSource)]
                [uuid(4C7332EF-D39F-4396-B4D9-043957A7C964)]
                interface IAdaptiveMediaSource : IInspectable
                    requires
                        Windows.Media.Core.IMediaSource
                {
                    [propget] HRESULT IsLive([out] [retval] boolean* value);
                    [propget] HRESULT DesiredLiveOffset([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propput] HRESULT DesiredLiveOffset([in] Windows.Foundation.TimeSpan value);
                    [propget] HRESULT InitialBitrate([out] [retval] UINT32* value);
                    [propput] HRESULT InitialBitrate([in] UINT32 value);
                    [propget] HRESULT CurrentDownloadBitrate([out] [retval] UINT32* value);
                    [propget] HRESULT CurrentPlaybackBitrate([out] [retval] UINT32* value);
                    [propget] HRESULT AvailableBitrates([out] [retval] Windows.Foundation.Collections.IVectorView<UINT32>** value);
                    [propget] HRESULT DesiredMinBitrate([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                    [propput] HRESULT DesiredMinBitrate([in] Windows.Foundation.IReference<UINT32>* value);
                    [propget] HRESULT DesiredMaxBitrate([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                    [propput] HRESULT DesiredMaxBitrate([in] Windows.Foundation.IReference<UINT32>* value);
                    [propget] HRESULT AudioOnlyPlayback([out] [retval] boolean* value);
                    [propget] HRESULT InboundBitsPerSecond([out] [retval] UINT64* value);
                    [propget] HRESULT InboundBitsPerSecondWindow([out] [retval] Windows.Foundation.TimeSpan* value);
                    [propput] HRESULT InboundBitsPerSecondWindow([in] Windows.Foundation.TimeSpan value);
                    [eventadd] HRESULT DownloadBitrateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadBitrateChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT DownloadBitrateChanged([in] EventRegistrationToken token);
                    [eventadd] HRESULT PlaybackBitrateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourcePlaybackBitrateChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT PlaybackBitrateChanged([in] EventRegistrationToken token);
                    [eventadd] HRESULT DownloadRequested([in] Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadRequestedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT DownloadRequested([in] EventRegistrationToken token);
                    [eventadd] HRESULT DownloadCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT DownloadCompleted([in] EventRegistrationToken token);
                    [eventadd] HRESULT DownloadFailed([in] Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSource*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadFailedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT DownloadFailed([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSource)]
                [uuid(17890342-6760-4BB9-A58A-F7AA98B08C0E)]
                interface IAdaptiveMediaSource2 : IInspectable
                {
                    [propget] HRESULT AdvancedSettings([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceAdvancedSettings** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSource)]
                [uuid(BA7023FD-C334-461B-A36E-C99F54F7174A)]
                interface IAdaptiveMediaSource3 : IInspectable
                {
                    [propget] HRESULT MinLiveOffset([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                    [propget] HRESULT MaxSeekableWindowSize([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                    [propget] HRESULT DesiredSeekableWindowSize([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                    [propput] HRESULT DesiredSeekableWindowSize([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
                    [propget] HRESULT Diagnostics([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDiagnostics** value);
                    HRESULT GetCorrelatedTimes([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCorrelatedTimes** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceAdvancedSettings)]
                [uuid(55DB1680-1AEB-47DC-AA08-9A11610BA45A)]
                interface IAdaptiveMediaSourceAdvancedSettings : IInspectable
                {
                    [propget] HRESULT AllSegmentsIndependent([out] [retval] boolean* value);
                    [propput] HRESULT AllSegmentsIndependent([in] boolean value);
                    [propget] HRESULT DesiredBitrateHeadroomRatio([out] [retval] Windows.Foundation.IReference<DOUBLE>** value);
                    [propput] HRESULT DesiredBitrateHeadroomRatio([in] Windows.Foundation.IReference<DOUBLE>* value);
                    [propget] HRESULT BitrateDowngradeTriggerRatio([out] [retval] Windows.Foundation.IReference<DOUBLE>** value);
                    [propput] HRESULT BitrateDowngradeTriggerRatio([in] Windows.Foundation.IReference<DOUBLE>* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCorrelatedTimes)]
                [uuid(05108787-E032-48E1-AB8D-002B0B3051DF)]
                interface IAdaptiveMediaSourceCorrelatedTimes : IInspectable
                {
                    [propget] HRESULT Position([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                    [propget] HRESULT PresentationTimeStamp([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                    [propget] HRESULT ProgramDateTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.DateTime>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCreationResult)]
                [uuid(4686B6B2-800F-4E31-9093-76D4782013E7)]
                interface IAdaptiveMediaSourceCreationResult : IInspectable
                {
                    [propget] HRESULT Status([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCreationStatus* value);
                    [propget] HRESULT MediaSource([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSource** value);
                    [propget] HRESULT HttpResponseMessage([out] [retval] Windows.Web.Http.HttpResponseMessage** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCreationResult)]
                [uuid(1C3243BF-1C44-404B-A201-DF45AC7898E8)]
                interface IAdaptiveMediaSourceCreationResult2 : IInspectable
                {
                    [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDiagnosticAvailableEventArgs)]
                [uuid(3AF64F06-6D9C-494A-B7A9-B3A5DEE6AD68)]
                interface IAdaptiveMediaSourceDiagnosticAvailableEventArgs : IInspectable
                {
                    [propget] HRESULT DiagnosticType([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDiagnosticType* value);
                    [propget] HRESULT RequestId([out] [retval] Windows.Foundation.IReference<INT32>** value);
                    [propget] HRESULT Position([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                    [propget] HRESULT SegmentId([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propget] HRESULT ResourceType([out] [retval] Windows.Foundation.IReference<Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceResourceType>** value);
                    [propget] HRESULT ResourceUri([out] [retval] Windows.Foundation.Uri** value);
                    [propget] HRESULT ResourceByteRangeOffset([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propget] HRESULT ResourceByteRangeLength([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propget] HRESULT Bitrate([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 5.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDiagnosticAvailableEventArgs)]
                [uuid(8C6DD857-16A5-4D9F-810E-00BD901B3EF9)]
                interface IAdaptiveMediaSourceDiagnosticAvailableEventArgs2 : IInspectable
                {
                    [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDiagnostics)]
                [uuid(9B24EE68-962E-448C-AEBF-B29B56098E23)]
                interface IAdaptiveMediaSourceDiagnostics : IInspectable
                {
                    [eventadd] HRESULT DiagnosticAvailable([in] Windows.Foundation.TypedEventHandler<Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDiagnostics*, Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDiagnosticAvailableEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                    [eventremove] HRESULT DiagnosticAvailable([in] EventRegistrationToken token);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadBitrateChangedEventArgs)]
                [uuid(670C0A44-E04E-4EFF-816A-17399F78F4BA)]
                interface IAdaptiveMediaSourceDownloadBitrateChangedEventArgs : IInspectable
                {
                    [propget] HRESULT OldValue([out] [retval] UINT32* value);
                    [propget] HRESULT NewValue([out] [retval] UINT32* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadBitrateChangedEventArgs)]
                [uuid(F3F1F444-96AE-4DE0-B540-2B3246E6968C)]
                interface IAdaptiveMediaSourceDownloadBitrateChangedEventArgs2 : IInspectable
                {
                    [propget] HRESULT Reason([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadBitrateChangedReason* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadCompletedEventArgs)]
                [uuid(19240DC3-5B37-4A1A-8970-D621CB6CA83B)]
                interface IAdaptiveMediaSourceDownloadCompletedEventArgs : IInspectable
                {
                    [propget] HRESULT ResourceType([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceResourceType* value);
                    [propget] HRESULT ResourceUri([out] [retval] Windows.Foundation.Uri** value);
                    [propget] HRESULT ResourceByteRangeOffset([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propget] HRESULT ResourceByteRangeLength([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propget] HRESULT HttpResponseMessage([out] [retval] Windows.Web.Http.HttpResponseMessage** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadCompletedEventArgs)]
                [uuid(704744C4-964A-40E4-AF95-9177DD6DFA00)]
                interface IAdaptiveMediaSourceDownloadCompletedEventArgs2 : IInspectable
                {
                    [propget] HRESULT RequestId([out] [retval] INT32* value);
                    [propget] HRESULT Statistics([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadStatistics** value);
                    [propget] HRESULT Position([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadFailedEventArgs)]
                [uuid(37739048-F4AB-40A4-B135-C6DFD8BD7FF1)]
                interface IAdaptiveMediaSourceDownloadFailedEventArgs : IInspectable
                {
                    [propget] HRESULT ResourceType([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceResourceType* value);
                    [propget] HRESULT ResourceUri([out] [retval] Windows.Foundation.Uri** value);
                    [propget] HRESULT ResourceByteRangeOffset([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propget] HRESULT ResourceByteRangeLength([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propget] HRESULT HttpResponseMessage([out] [retval] Windows.Web.Http.HttpResponseMessage** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadFailedEventArgs)]
                [uuid(70919568-967C-4986-90C5-C6FC4B31E2D8)]
                interface IAdaptiveMediaSourceDownloadFailedEventArgs2 : IInspectable
                {
                    [propget] HRESULT RequestId([out] [retval] INT32* value);
                    [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                    [propget] HRESULT Statistics([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadStatistics** value);
                    [propget] HRESULT Position([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadRequestedDeferral)]
                [uuid(05C68F64-FA20-4DBD-9821-4BF4C9BF77AB)]
                interface IAdaptiveMediaSourceDownloadRequestedDeferral : IInspectable
                {
                    HRESULT Complete();
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadRequestedEventArgs)]
                [uuid(C83FDFFD-44A9-47A2-BF96-03398B4BFAAF)]
                interface IAdaptiveMediaSourceDownloadRequestedEventArgs : IInspectable
                {
                    [propget] HRESULT ResourceType([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceResourceType* value);
                    [propget] HRESULT ResourceUri([out] [retval] Windows.Foundation.Uri** value);
                    [propget] HRESULT ResourceByteRangeOffset([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propget] HRESULT ResourceByteRangeLength([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propget] HRESULT Result([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadResult** value);
                    HRESULT GetDeferral([out] [retval] Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadRequestedDeferral** deferral);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadRequestedEventArgs)]
                [uuid(B37D8BFE-AA44-4D82-825B-611DE3BCFECB)]
                interface IAdaptiveMediaSourceDownloadRequestedEventArgs2 : IInspectable
                {
                    [propget] HRESULT RequestId([out] [retval] INT32* value);
                    [propget] HRESULT Position([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadResult)]
                [uuid(F4AFDC73-BCEE-4A6A-9F0A-FEC41E2339B0)]
                interface IAdaptiveMediaSourceDownloadResult : IInspectable
                {
                    [propget] HRESULT ResourceUri([out] [retval] Windows.Foundation.Uri** value);
                    [propput] HRESULT ResourceUri([in] Windows.Foundation.Uri* value);
                    [propget] HRESULT InputStream([out] [retval] Windows.Storage.Streams.IInputStream** value);
                    [propput] HRESULT InputStream([in] Windows.Storage.Streams.IInputStream* value);
                    [propget] HRESULT Buffer([out] [retval] Windows.Storage.Streams.IBuffer** value);
                    [propput] HRESULT Buffer([in] Windows.Storage.Streams.IBuffer* value);
                    [propget] HRESULT ContentType([out] [retval] HSTRING* value);
                    [propput] HRESULT ContentType([in] HSTRING value);
                    [propget] HRESULT ExtendedStatus([out] [retval] UINT32* value);
                    [propput] HRESULT ExtendedStatus([in] UINT32 value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadResult)]
                [uuid(15552CB7-7B80-4AC4-8660-A4B97F7C70F0)]
                interface IAdaptiveMediaSourceDownloadResult2 : IInspectable
                {
                    [propget] HRESULT ResourceByteRangeOffset([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propput] HRESULT ResourceByteRangeOffset([in] Windows.Foundation.IReference<UINT64>* value);
                    [propget] HRESULT ResourceByteRangeLength([out] [retval] Windows.Foundation.IReference<UINT64>** value);
                    [propput] HRESULT ResourceByteRangeLength([in] Windows.Foundation.IReference<UINT64>* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceDownloadStatistics)]
                [uuid(A306CEFB-E96A-4DFF-A9B8-1AE08C01AE98)]
                interface IAdaptiveMediaSourceDownloadStatistics : IInspectable
                {
                    [propget] HRESULT ContentBytesReceivedCount([out] [retval] UINT64* value);
                    [propget] HRESULT TimeToHeadersReceived([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                    [propget] HRESULT TimeToFirstByteReceived([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                    [propget] HRESULT TimeToLastByteReceived([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSourcePlaybackBitrateChangedEventArgs)]
                [uuid(23A29F6D-7DDA-4A51-87A9-6FA8C5B292BE)]
                interface IAdaptiveMediaSourcePlaybackBitrateChangedEventArgs : IInspectable
                {
                    [propget] HRESULT OldValue([out] [retval] UINT32* value);
                    [propget] HRESULT NewValue([out] [retval] UINT32* value);
                    [propget] HRESULT AudioOnly([out] [retval] boolean* value);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [exclusiveto(Windows.Media.Streaming.Adaptive.AdaptiveMediaSource)]
                [uuid(50A6BD5D-66EF-4CD3-9579-9E660507DC3F)]
                interface IAdaptiveMediaSourceStatics : IInspectable
                {
                    HRESULT IsContentTypeSupported([in] HSTRING contentType, [out] [retval] boolean* result);
                    [overload("CreateFromUriAsync")] HRESULT CreateFromUriAsync([in] Windows.Foundation.Uri* uri, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCreationResult*>** result);
                    [overload("CreateFromUriAsync")] HRESULT CreateFromUriWithDownloaderAsync([in] Windows.Foundation.Uri* uri, [in] Windows.Web.Http.HttpClient* httpClient, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCreationResult*>** result);
                    [overload("CreateFromStreamAsync")] HRESULT CreateFromStreamAsync([in] Windows.Storage.Streams.IInputStream* stream, [in] Windows.Foundation.Uri* uri, [in] HSTRING contentType, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCreationResult*>** result);
                    [overload("CreateFromStreamAsync")] HRESULT CreateFromStreamWithDownloaderAsync([in] Windows.Storage.Streams.IInputStream* stream, [in] Windows.Foundation.Uri* uri, [in] HSTRING contentType, [in] Windows.Web.Http.HttpClient* httpClient, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Streaming.Adaptive.AdaptiveMediaSourceCreationResult*>** result);
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [static(Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceStatics, Windows.Foundation.UniversalApiContract, 1.0)]
                [threading(both)]
                runtimeclass AdaptiveMediaSource
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSource;
                    interface Windows.Media.Core.IMediaSource;
                    [contract(Windows.Foundation.UniversalApiContract, 2.0)] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSource2;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSource3;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Foundation.IClosable;
                }

                [contract(Windows.Foundation.UniversalApiContract, 2.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceAdvancedSettings
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceAdvancedSettings;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceCorrelatedTimes
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceCorrelatedTimes;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceCreationResult
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceCreationResult;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceCreationResult2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceDiagnosticAvailableEventArgs
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDiagnosticAvailableEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDiagnosticAvailableEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceDiagnostics
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDiagnostics;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceDownloadBitrateChangedEventArgs
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadBitrateChangedEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadBitrateChangedEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceDownloadCompletedEventArgs
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadCompletedEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadCompletedEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceDownloadFailedEventArgs
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadFailedEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadFailedEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceDownloadRequestedDeferral
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadRequestedDeferral;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceDownloadRequestedEventArgs
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadRequestedEventArgs;
                    [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadRequestedEventArgs2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceDownloadResult
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadResult;
                    [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadResult2;
                }

                [contract(Windows.Foundation.UniversalApiContract, 4.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourceDownloadStatistics
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourceDownloadStatistics;
                }

                [contract(Windows.Foundation.UniversalApiContract, 1.0)]
                [marshaling_behavior(agile)]
                [threading(both)]
                runtimeclass AdaptiveMediaSourcePlaybackBitrateChangedEventArgs
                {
                    [default] interface Windows.Media.Streaming.Adaptive.IAdaptiveMediaSourcePlaybackBitrateChangedEventArgs;
                }
            }
        }
    }
}
