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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Storage.idl";
import "Windows.Storage.Streams.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Estorage_h__)")
cpp_quote("#include <Windows.Storage.h>")
cpp_quote("#endif // !defined(__windows2Estorage_h__)")
cpp_quote("#if !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#include <Windows.Storage.Streams.h>")
cpp_quote("#endif // !defined(__windows2Estorage2Estreams_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        namespace Collections
        {
            interface IPropertySet;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct TimeSpan TimeSpan;

        runtimeclass Uri;
    }
}
namespace Windows
{
    namespace Storage
    {
        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            runtimeclass RandomAccessStreamReference;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        typedef enum SoundLevel SoundLevel;

        typedef enum MediaPlaybackType MediaPlaybackType;

        typedef enum MediaPlaybackStatus MediaPlaybackStatus;

        typedef enum SystemMediaTransportControlsButton SystemMediaTransportControlsButton;

        typedef enum SystemMediaTransportControlsProperty SystemMediaTransportControlsProperty;

        typedef enum AudioProcessing AudioProcessing;

        interface IMediaControl;

        interface IMediaMarker;

        interface IMediaMarkers;

        interface IMediaMarkerTypesStatics;

        interface IMusicDisplayProperties;

        interface IVideoDisplayProperties;

        interface IImageDisplayProperties;

        interface ISystemMediaTransportControlsDisplayUpdater;

        interface ISystemMediaTransportControlsButtonPressedEventArgs;

        interface ISystemMediaTransportControlsPropertyChangedEventArgs;

        interface ISystemMediaTransportControls;

        interface ISystemMediaTransportControlsStatics;

        interface IMediaExtension;

        interface IMediaExtensionManager;

        interface IVideoEffectsStatics;

        runtimeclass MediaControl;

        runtimeclass MediaMarkerTypes;

        runtimeclass MusicDisplayProperties;

        runtimeclass VideoDisplayProperties;

        runtimeclass ImageDisplayProperties;

        runtimeclass SystemMediaTransportControlsDisplayUpdater;

        runtimeclass SystemMediaTransportControlsButtonPressedEventArgs;

        runtimeclass SystemMediaTransportControlsPropertyChangedEventArgs;

        runtimeclass SystemMediaTransportControls;

        runtimeclass MediaExtensionManager;

        runtimeclass VideoEffects;
    }
}

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

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

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

            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
    {
        [version(0x06020000)]
        enum SoundLevel
        {
            Muted = 0,
            Low   = 1,
            Full  = 2
        };

        [version(0x06030000)]
        enum MediaPlaybackType
        {
            Unknown = 0,
            Music   = 1,
            Video   = 2,
            Image   = 3
        };

        [version(0x06030000)]
        enum MediaPlaybackStatus
        {
            Closed   = 0,
            Changing = 1,
            Stopped  = 2,
            Playing  = 3,
            Paused   = 4
        };

        [version(0x06030000)]
        enum SystemMediaTransportControlsButton
        {
            Play        = 0,
            Pause       = 1,
            Stop        = 2,
            Record      = 3,
            FastForward = 4,
            Rewind      = 5,
            Next        = 6,
            Previous    = 7,
            ChannelUp   = 8,
            ChannelDown = 9
        };

        [version(0x06030000)]
        enum SystemMediaTransportControlsProperty
        {
            SoundLevel = 0
        };

        [version(0x06030000)]
        enum AudioProcessing
        {
            Default = 0,
            Raw     = 1
        };

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

        [uuid(1803DEF8-DCA5-4B6F-9C20-E3D3C0643625)]
        [version(0x06030000)]
        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);
        }

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

        [exclusiveto(Windows.Media.MediaMarkerTypes)]
        [uuid(BB198040-482F-4743-8832-45853821ECE0)]
        [version(0x06030000)]
        interface IMediaMarkerTypesStatics : IInspectable
        {
            [propget] HRESULT Bookmark([out] [retval] HSTRING* value);
        }

        [exclusiveto(Windows.Media.MusicDisplayProperties)]
        [uuid(6BBF0C59-D0A0-4D26-92A0-F978E1D18E7B)]
        [version(0x06030000)]
        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);
        }

        [exclusiveto(Windows.Media.VideoDisplayProperties)]
        [uuid(5609FDB1-5D2D-4872-8170-45DEE5BC2F5C)]
        [version(0x06030000)]
        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);
        }

        [exclusiveto(Windows.Media.ImageDisplayProperties)]
        [uuid(CD0BC7EF-54E7-411F-9933-F0E98B0A96D2)]
        [version(0x06030000)]
        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);
        }

        [exclusiveto(Windows.Media.SystemMediaTransportControlsDisplayUpdater)]
        [uuid(8ABBC53E-FA55-4ECF-AD8E-C984E5DD1550)]
        [version(0x06030000)]
        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();
        }

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

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

        [exclusiveto(Windows.Media.SystemMediaTransportControls)]
        [uuid(99FA3FF4-1742-42A6-902E-087D41F965EC)]
        [version(0x06030000)]
        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);
        }

        [exclusiveto(Windows.Media.SystemMediaTransportControls)]
        [uuid(43BA380A-ECA4-4832-91AB-D415FAE484C6)]
        [version(0x06030000)]
        interface ISystemMediaTransportControlsStatics : IInspectable
        {
            HRESULT GetForCurrentView([out] [retval] Windows.Media.SystemMediaTransportControls** mediaControl);
        }

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

        [exclusiveto(Windows.Media.MediaExtensionManager)]
        [uuid(4A25EAF5-242D-4DFB-97F4-69B7C42576FF)]
        [version(0x06020000)]
        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);
        }

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

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

        [marshaling_behavior(agile)]
        [static(Windows.Media.IMediaMarkerTypesStatics, 0x06030000)]
        [version(0x06030000)]
        runtimeclass MediaMarkerTypes
        {
        }

        [marshaling_behavior(agile)]
        [threading(both)]
        [version(0x06030000)]
        runtimeclass MusicDisplayProperties
        {
            [default] interface Windows.Media.IMusicDisplayProperties;
        }

        [marshaling_behavior(agile)]
        [threading(both)]
        [version(0x06030000)]
        runtimeclass VideoDisplayProperties
        {
            [default] interface Windows.Media.IVideoDisplayProperties;
        }

        [marshaling_behavior(agile)]
        [threading(both)]
        [version(0x06030000)]
        runtimeclass ImageDisplayProperties
        {
            [default] interface Windows.Media.IImageDisplayProperties;
        }

        [marshaling_behavior(agile)]
        [threading(both)]
        [version(0x06030000)]
        runtimeclass SystemMediaTransportControlsDisplayUpdater
        {
            [default] interface Windows.Media.ISystemMediaTransportControlsDisplayUpdater;
        }

        [marshaling_behavior(agile)]
        [version(0x06030000)]
        runtimeclass SystemMediaTransportControlsButtonPressedEventArgs
        {
            [default] interface Windows.Media.ISystemMediaTransportControlsButtonPressedEventArgs;
        }

        [marshaling_behavior(agile)]
        [version(0x06030000)]
        runtimeclass SystemMediaTransportControlsPropertyChangedEventArgs
        {
            [default] interface Windows.Media.ISystemMediaTransportControlsPropertyChangedEventArgs;
        }

        [marshaling_behavior(agile)]
        [static(Windows.Media.ISystemMediaTransportControlsStatics, 0x06030000)]
        [threading(mta)]
        [version(0x06030000)]
        runtimeclass SystemMediaTransportControls
        {
            [default] interface Windows.Media.ISystemMediaTransportControls;
        }

        [activatable(0x06020000)]
        [marshaling_behavior(agile)]
        [threading(both)]
        [version(0x06020000)]
        runtimeclass MediaExtensionManager
        {
            [default] interface Windows.Media.IMediaExtensionManager;
        }

        [marshaling_behavior(agile)]
        [static(Windows.Media.IVideoEffectsStatics, 0x06020000)]
        [threading(both)]
        [version(0x06020000)]
        runtimeclass VideoEffects
        {
        }
    }
}
