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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Devices.Enumeration.idl";
import "Windows.Foundation.Numerics.idl";
import "Windows.Media.idl";
import "Windows.Media.Capture.idl";
import "Windows.Media.Core.idl";
import "Windows.Media.Devices.idl";
import "Windows.Media.Effects.idl";
import "Windows.Media.MediaProperties.idl";
import "Windows.Media.Render.idl";
import "Windows.Media.Transcoding.idl";
import "Windows.Storage.idl";

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

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

            typedef struct Vector3 Vector3;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Media
    {
        runtimeclass AudioFrame;

        typedef enum AudioProcessing AudioProcessing;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Capture
        {
            typedef enum MediaCategory MediaCategory;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Core
        {
            runtimeclass MediaSource;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Devices
        {
            typedef enum AudioDeviceRole AudioDeviceRole;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Effects
        {
            interface IAudioEffectDefinition;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace MediaProperties
        {
            runtimeclass AudioEncodingProperties;

            runtimeclass MediaEncodingProfile;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Render
        {
            typedef enum AudioRenderCategory AudioRenderCategory;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        typedef enum SoundLevel SoundLevel;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Transcoding
        {
            typedef enum TranscodeFailureReason TranscodeFailureReason;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        interface IStorageFile;

        runtimeclass StorageFile;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Audio
        {
            typedef enum AudioDeviceNodeCreationStatus AudioDeviceNodeCreationStatus;

            typedef enum AudioEffectsPackStatus AudioEffectsPackStatus;

            typedef enum AudioFileNodeCreationStatus AudioFileNodeCreationStatus;

            typedef enum AudioGraphCreationStatus AudioGraphCreationStatus;

            typedef enum AudioGraphUnrecoverableError AudioGraphUnrecoverableError;

            typedef enum AudioNodeEmitterDecayKind AudioNodeEmitterDecayKind;

            typedef enum AudioNodeEmitterSettings AudioNodeEmitterSettings;

            typedef enum AudioNodeEmitterShapeKind AudioNodeEmitterShapeKind;

            typedef enum AudioPlaybackConnectionOpenResultStatus AudioPlaybackConnectionOpenResultStatus;

            typedef enum AudioPlaybackConnectionState AudioPlaybackConnectionState;

            typedef enum MediaSourceAudioInputNodeCreationStatus MediaSourceAudioInputNodeCreationStatus;

            typedef enum MixedRealitySpatialAudioFormatPolicy MixedRealitySpatialAudioFormatPolicy;

            typedef enum QuantumSizeSelectionMode QuantumSizeSelectionMode;

            typedef enum SetDefaultSpatialAudioFormatStatus SetDefaultSpatialAudioFormatStatus;

            typedef enum SpatialAudioModel SpatialAudioModel;

            interface IAudioDeviceInputNode;

            interface IAudioDeviceOutputNode;

            interface IAudioEffectsPackConfiguration;

            interface IAudioEffectsPackConfigurationStatics;

            interface IAudioFileInputNode;

            interface IAudioFileOutputNode;

            interface IAudioFrameCompletedEventArgs;

            interface IAudioFrameInputNode;

            interface IAudioFrameOutputNode;

            interface IAudioGraph;

            interface IAudioGraph2;

            interface IAudioGraph3;

            interface IAudioGraphConnection;

            interface IAudioGraphSettings;

            interface IAudioGraphSettings2;

            interface IAudioGraphSettingsFactory;

            interface IAudioGraphStatics;

            interface IAudioGraphUnrecoverableErrorOccurredEventArgs;

            interface IAudioInputNode;

            interface IAudioInputNode2;

            interface IAudioNode;

            interface IAudioNodeEmitter;

            interface IAudioNodeEmitter2;

            interface IAudioNodeEmitterConeProperties;

            interface IAudioNodeEmitterDecayModel;

            interface IAudioNodeEmitterDecayModelStatics;

            interface IAudioNodeEmitterFactory;

            interface IAudioNodeEmitterNaturalDecayModelProperties;

            interface IAudioNodeEmitterShape;

            interface IAudioNodeEmitterShapeStatics;

            interface IAudioNodeListener;

            interface IAudioNodeWithListener;

            interface IAudioPlaybackConnection;

            interface IAudioPlaybackConnectionOpenResult;

            interface IAudioPlaybackConnectionStatics;

            interface IAudioStateMonitor;

            interface IAudioStateMonitorStatics;

            interface ICreateAudioDeviceInputNodeResult;

            interface ICreateAudioDeviceInputNodeResult2;

            interface ICreateAudioDeviceOutputNodeResult;

            interface ICreateAudioDeviceOutputNodeResult2;

            interface ICreateAudioFileInputNodeResult;

            interface ICreateAudioFileInputNodeResult2;

            interface ICreateAudioFileOutputNodeResult;

            interface ICreateAudioFileOutputNodeResult2;

            interface ICreateAudioGraphResult;

            interface ICreateAudioGraphResult2;

            interface ICreateMediaSourceAudioInputNodeResult;

            interface ICreateMediaSourceAudioInputNodeResult2;

            interface IEchoEffectDefinition;

            interface IEchoEffectDefinitionFactory;

            interface IEqualizerBand;

            interface IEqualizerEffectDefinition;

            interface IEqualizerEffectDefinitionFactory;

            interface IFrameInputNodeQuantumStartedEventArgs;

            interface ILimiterEffectDefinition;

            interface ILimiterEffectDefinitionFactory;

            interface IMediaSourceAudioInputNode;

            interface IReverbEffectDefinition;

            interface IReverbEffectDefinitionFactory;

            interface ISetDefaultSpatialAudioFormatResult;

            interface ISpatialAudioDeviceConfiguration;

            interface ISpatialAudioDeviceConfigurationStatics;

            interface ISpatialAudioFormatConfiguration;

            interface ISpatialAudioFormatConfigurationStatics;

            interface ISpatialAudioFormatSubtypeStatics;

            interface ISpatialAudioFormatSubtypeStatics2;

            runtimeclass AudioDeviceInputNode;

            runtimeclass AudioDeviceOutputNode;

            runtimeclass AudioEffectsPackConfiguration;

            runtimeclass AudioFileInputNode;

            runtimeclass AudioFileOutputNode;

            runtimeclass AudioFrameCompletedEventArgs;

            runtimeclass AudioFrameInputNode;

            runtimeclass AudioFrameOutputNode;

            runtimeclass AudioGraph;

            runtimeclass AudioGraphBatchUpdater;

            runtimeclass AudioGraphConnection;

            runtimeclass AudioGraphSettings;

            runtimeclass AudioGraphUnrecoverableErrorOccurredEventArgs;

            runtimeclass AudioNodeEmitter;

            runtimeclass AudioNodeEmitterConeProperties;

            runtimeclass AudioNodeEmitterDecayModel;

            runtimeclass AudioNodeEmitterNaturalDecayModelProperties;

            runtimeclass AudioNodeEmitterShape;

            runtimeclass AudioNodeListener;

            runtimeclass AudioPlaybackConnection;

            runtimeclass AudioPlaybackConnectionOpenResult;

            runtimeclass AudioStateMonitor;

            runtimeclass AudioSubmixNode;

            runtimeclass CreateAudioDeviceInputNodeResult;

            runtimeclass CreateAudioDeviceOutputNodeResult;

            runtimeclass CreateAudioFileInputNodeResult;

            runtimeclass CreateAudioFileOutputNodeResult;

            runtimeclass CreateAudioGraphResult;

            runtimeclass CreateMediaSourceAudioInputNodeResult;

            runtimeclass EchoEffectDefinition;

            runtimeclass EqualizerBand;

            runtimeclass EqualizerEffectDefinition;

            runtimeclass FrameInputNodeQuantumStartedEventArgs;

            runtimeclass LimiterEffectDefinition;

            runtimeclass MediaSourceAudioInputNode;

            runtimeclass ReverbEffectDefinition;

            runtimeclass SetDefaultSpatialAudioFormatResult;

            runtimeclass SpatialAudioDeviceConfiguration;

            runtimeclass SpatialAudioFormatConfiguration;

            runtimeclass SpatialAudioFormatSubtype;
        }
    }
}

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

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Audio.EqualizerBand*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Audio.AudioGraphConnection*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Audio.EqualizerBand*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Audio.AudioGraphConnection*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Audio.EqualizerBand*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Audio.AudioDeviceInputNode*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Audio.AudioPlaybackConnectionOpenResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioDeviceInputNodeResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioDeviceOutputNodeResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioFileInputNodeResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioFileOutputNodeResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioGraphResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateMediaSourceAudioInputNodeResult*>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Audio.SetDefaultSpatialAudioFormatResult*>;

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

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

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioFrameInputNode*, Windows.Media.Audio.AudioFrameCompletedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioFrameInputNode*, Windows.Media.Audio.FrameInputNodeQuantumStartedEventArgs*>;

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

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioGraph*, Windows.Media.Audio.AudioGraphUnrecoverableErrorOccurredEventArgs*>;

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

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

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

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Audio.SpatialAudioDeviceConfiguration*, IInspectable*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Media
    {
        namespace Audio
        {
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum AudioDeviceNodeCreationStatus
            {
                Success            = 0,
                DeviceNotAvailable = 1,
                FormatNotSupported = 2,
                UnknownFailure     = 3,
                AccessDenied       = 4
            };

            [contract(Windows.Foundation.UniversalApiContract, 16.0)]
            enum AudioEffectsPackStatus
            {
                NotEnabled   = 0,
                Enabled      = 1,
                NotSupported = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum AudioFileNodeCreationStatus
            {
                Success            = 0,
                FileNotFound       = 1,
                InvalidFileType    = 2,
                FormatNotSupported = 3,
                UnknownFailure     = 4
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum AudioGraphCreationStatus
            {
                Success            = 0,
                DeviceNotAvailable = 1,
                FormatNotSupported = 2,
                UnknownFailure     = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum AudioGraphUnrecoverableError
            {
                None                     = 0,
                AudioDeviceLost          = 1,
                AudioSessionDisconnected = 2,
                UnknownFailure           = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum AudioNodeEmitterDecayKind
            {
                Natural = 0,
                Custom  = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [flags]
            enum AudioNodeEmitterSettings
            {
                None           = 0x0,
                DisableDoppler = 0x1
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum AudioNodeEmitterShapeKind
            {
                Omnidirectional = 0,
                Cone            = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            enum AudioPlaybackConnectionOpenResultStatus
            {
                Success         = 0,
                RequestTimedOut = 1,
                DeniedBySystem  = 2,
                UnknownFailure  = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            enum AudioPlaybackConnectionState
            {
                Closed = 0,
                Opened = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            enum MediaSourceAudioInputNodeCreationStatus
            {
                Success            = 0,
                FormatNotSupported = 1,
                NetworkError       = 2,
                UnknownFailure     = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            enum MixedRealitySpatialAudioFormatPolicy
            {
                UseMixedRealityDefaultSpatialAudioFormat        = 0,
                UseDeviceConfigurationDefaultSpatialAudioFormat = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum QuantumSizeSelectionMode
            {
                SystemDefault    = 0,
                LowestLatency    = 1,
                ClosestToDesired = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            enum SetDefaultSpatialAudioFormatStatus
            {
                Succeeded                       = 0,
                AccessDenied                    = 1,
                LicenseExpired                  = 2,
                LicenseNotValidForAudioEndpoint = 3,
                NotSupportedOnAudioEndpoint     = 4,
                UnknownError                    = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum SpatialAudioModel
            {
                ObjectBased = 0,
                FoldDown    = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioDeviceInputNode)]
            [uuid(B01B6BE1-6F4E-49E2-AC01-559D62BEB3A9)]
            interface IAudioDeviceInputNode : IInspectable
                requires
                    Windows.Media.Audio.IAudioInputNode,
                    Windows.Media.Audio.IAudioNode,
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT Device([out] [retval] Windows.Devices.Enumeration.DeviceInformation** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioDeviceOutputNode)]
            [uuid(362EDBFF-FF1C-4434-9E0F-BD2EF522AC82)]
            interface IAudioDeviceOutputNode : IInspectable
                requires
                    Windows.Media.Audio.IAudioNode,
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT Device([out] [retval] Windows.Devices.Enumeration.DeviceInformation** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 16.0)]
            [exclusiveto(Windows.Media.Audio.AudioEffectsPackConfiguration)]
            [uuid(71D7627D-70C1-536C-A8F8-6F98015A7F06)]
            interface IAudioEffectsPackConfiguration : IInspectable
            {
                [propget] HRESULT DeviceId([out] [retval] HSTRING* value);
                [propget] HRESULT EffectsPackId([out] [retval] HSTRING* value);
                [propget] HRESULT Status([out] [retval] Windows.Media.Audio.AudioEffectsPackStatus* value);
                [eventadd] HRESULT StatusChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioEffectsPackConfiguration*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT StatusChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 16.0)]
            [exclusiveto(Windows.Media.Audio.AudioEffectsPackConfiguration)]
            [uuid(61C20413-530C-55FF-BA2B-8E68A9B56A04)]
            interface IAudioEffectsPackConfigurationStatics : IInspectable
            {
                HRESULT GetForDeviceId([in] HSTRING effectsPackId, [in] HSTRING deviceId, [out] [retval] Windows.Media.Audio.AudioEffectsPackConfiguration** result);
                HRESULT IsDeviceIdSupported([in] HSTRING effectsPackId, [in] HSTRING deviceId, [out] [retval] boolean* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioFileInputNode)]
            [uuid(905B67C8-6F65-4CD4-8890-4694843C276D)]
            interface IAudioFileInputNode : IInspectable
                requires
                    Windows.Media.Audio.IAudioInputNode,
                    Windows.Media.Audio.IAudioNode,
                    Windows.Foundation.IClosable
            {
                [propput] HRESULT PlaybackSpeedFactor([in] DOUBLE value);
                [propget] HRESULT PlaybackSpeedFactor([out] [retval] DOUBLE* value);
                [propget] HRESULT Position([out] [retval] Windows.Foundation.TimeSpan* value);
                HRESULT Seek([in] Windows.Foundation.TimeSpan position);
                [propget] HRESULT StartTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                [propput] HRESULT StartTime([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
                [propget] HRESULT EndTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                [propput] HRESULT EndTime([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
                [propget] HRESULT LoopCount([out] [retval] Windows.Foundation.IReference<INT32>** value);
                [propput] HRESULT LoopCount([in] Windows.Foundation.IReference<INT32>* value);
                [propget] HRESULT Duration([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT SourceFile([out] [retval] Windows.Storage.StorageFile** value);
                [eventadd] HRESULT FileCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioFileInputNode*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT FileCompleted([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioFileOutputNode)]
            [uuid(50E01980-5166-4093-80F8-ADA00089E9CF)]
            interface IAudioFileOutputNode : IInspectable
                requires
                    Windows.Media.Audio.IAudioNode,
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT File([out] [retval] Windows.Storage.IStorageFile** value);
                [propget] HRESULT FileEncodingProfile([out] [retval] Windows.Media.MediaProperties.MediaEncodingProfile** value);
                HRESULT FinalizeAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Transcoding.TranscodeFailureReason>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioFrameCompletedEventArgs)]
            [uuid(DC7C829E-0208-4504-A5A8-F0F268920A65)]
            interface IAudioFrameCompletedEventArgs : IInspectable
            {
                [propget] HRESULT Frame([out] [retval] Windows.Media.AudioFrame** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioFrameInputNode)]
            [uuid(01B266C7-FD96-4FF5-A3C5-D27A9BF44237)]
            interface IAudioFrameInputNode : IInspectable
                requires
                    Windows.Media.Audio.IAudioInputNode,
                    Windows.Media.Audio.IAudioNode,
                    Windows.Foundation.IClosable
            {
                [propput] HRESULT PlaybackSpeedFactor([in] DOUBLE value);
                [propget] HRESULT PlaybackSpeedFactor([out] [retval] DOUBLE* value);
                HRESULT AddFrame([in] Windows.Media.AudioFrame* frame);
                HRESULT DiscardQueuedFrames();
                [propget] HRESULT QueuedSampleCount([out] [retval] UINT64* value);
                [eventadd] HRESULT AudioFrameCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioFrameInputNode*, Windows.Media.Audio.AudioFrameCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT AudioFrameCompleted([in] EventRegistrationToken token);
                [eventadd] HRESULT QuantumStarted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioFrameInputNode*, Windows.Media.Audio.FrameInputNodeQuantumStartedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT QuantumStarted([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioFrameOutputNode)]
            [uuid(B847371B-3299-45F5-88B3-C9D12A3F1CC8)]
            interface IAudioFrameOutputNode : IInspectable
                requires
                    Windows.Media.Audio.IAudioNode,
                    Windows.Foundation.IClosable
            {
                HRESULT GetFrame([out] [retval] Windows.Media.AudioFrame** audioFrame);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioGraph)]
            [uuid(1AD46EED-E48C-4E14-9660-2C4F83E9CDD8)]
            interface IAudioGraph : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                [overload("CreateFrameInputNode")] HRESULT CreateFrameInputNode([out] [retval] Windows.Media.Audio.AudioFrameInputNode** frameInputNode);
                [overload("CreateFrameInputNode")] HRESULT CreateFrameInputNodeWithFormat([in] Windows.Media.MediaProperties.AudioEncodingProperties* encodingProperties, [out] [retval] Windows.Media.Audio.AudioFrameInputNode** frameInputNode);
                [overload("CreateDeviceInputNodeAsync")] HRESULT CreateDeviceInputNodeAsync([in] Windows.Media.Capture.MediaCategory category, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioDeviceInputNodeResult*>** result);
                [overload("CreateDeviceInputNodeAsync")] HRESULT CreateDeviceInputNodeWithFormatAsync([in] Windows.Media.Capture.MediaCategory category, [in] Windows.Media.MediaProperties.AudioEncodingProperties* encodingProperties, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioDeviceInputNodeResult*>** result);
                [overload("CreateDeviceInputNodeAsync")] HRESULT CreateDeviceInputNodeWithFormatOnDeviceAsync([in] Windows.Media.Capture.MediaCategory category, [in] Windows.Media.MediaProperties.AudioEncodingProperties* encodingProperties, [in] Windows.Devices.Enumeration.DeviceInformation* device, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioDeviceInputNodeResult*>** result);
                [overload("CreateFrameOutputNode")] HRESULT CreateFrameOutputNode([out] [retval] Windows.Media.Audio.AudioFrameOutputNode** frameOutputNode);
                [overload("CreateFrameOutputNode")] HRESULT CreateFrameOutputNodeWithFormat([in] Windows.Media.MediaProperties.AudioEncodingProperties* encodingProperties, [out] [retval] Windows.Media.Audio.AudioFrameOutputNode** frameOutputNode);
                HRESULT CreateDeviceOutputNodeAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioDeviceOutputNodeResult*>** result);
                HRESULT CreateFileInputNodeAsync([in] Windows.Storage.IStorageFile* file, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioFileInputNodeResult*>** result);
                [overload("CreateFileOutputNodeAsync")] HRESULT CreateFileOutputNodeAsync([in] Windows.Storage.IStorageFile* file, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioFileOutputNodeResult*>** result);
                [overload("CreateFileOutputNodeAsync")] HRESULT CreateFileOutputNodeWithFileProfileAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.Media.MediaProperties.MediaEncodingProfile* fileEncodingProfile, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioFileOutputNodeResult*>** result);
                [overload("CreateSubmixNode")] HRESULT CreateSubmixNode([out] [retval] Windows.Media.Audio.AudioSubmixNode** submixNode);
                [overload("CreateSubmixNode")] HRESULT CreateSubmixNodeWithFormat([in] Windows.Media.MediaProperties.AudioEncodingProperties* encodingProperties, [out] [retval] Windows.Media.Audio.AudioSubmixNode** submixNode);
                HRESULT Start();
                HRESULT Stop();
                HRESULT ResetAllNodes();
                [eventadd] HRESULT QuantumStarted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioGraph*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT QuantumStarted([in] EventRegistrationToken token);
                [eventadd] HRESULT QuantumProcessed([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioGraph*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT QuantumProcessed([in] EventRegistrationToken token);
                [eventadd] HRESULT UnrecoverableErrorOccurred([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioGraph*, Windows.Media.Audio.AudioGraphUnrecoverableErrorOccurredEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT UnrecoverableErrorOccurred([in] EventRegistrationToken token);
                [propget] HRESULT CompletedQuantumCount([out] [retval] UINT64* value);
                [propget] HRESULT EncodingProperties([out] [retval] Windows.Media.MediaProperties.AudioEncodingProperties** value);
                [propget] HRESULT LatencyInSamples([out] [retval] INT32* value);
                [propget] HRESULT PrimaryRenderDevice([out] [retval] Windows.Devices.Enumeration.DeviceInformation** value);
                [propget] HRESULT RenderDeviceAudioProcessing([out] [retval] Windows.Media.AudioProcessing* value);
                [propget] HRESULT SamplesPerQuantum([out] [retval] INT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioGraph)]
            [uuid(4E4C3BD5-4FC1-45F6-A947-3CD38F4FD839)]
            interface IAudioGraph2 : IInspectable
                requires
                    Windows.Foundation.IClosable,
                    Windows.Media.Audio.IAudioGraph
            {
                [overload("CreateFrameInputNode")] HRESULT CreateFrameInputNodeWithFormatAndEmitter([in] Windows.Media.MediaProperties.AudioEncodingProperties* encodingProperties, [in] Windows.Media.Audio.AudioNodeEmitter* emitter, [out] [retval] Windows.Media.Audio.AudioFrameInputNode** frameInputNode);
                [overload("CreateDeviceInputNodeAsync")] HRESULT CreateDeviceInputNodeWithFormatAndEmitterOnDeviceAsync([in] Windows.Media.Capture.MediaCategory category, [in] Windows.Media.MediaProperties.AudioEncodingProperties* encodingProperties, [in] Windows.Devices.Enumeration.DeviceInformation* device, [in] Windows.Media.Audio.AudioNodeEmitter* emitter, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioDeviceInputNodeResult*>** result);
                [overload("CreateFileInputNodeAsync")] HRESULT CreateFileInputNodeWithEmitterAsync([in] Windows.Storage.IStorageFile* file, [in] Windows.Media.Audio.AudioNodeEmitter* emitter, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioFileInputNodeResult*>** result);
                [overload("CreateSubmixNode")] HRESULT CreateSubmixNodeWithFormatAndEmitter([in] Windows.Media.MediaProperties.AudioEncodingProperties* encodingProperties, [in] Windows.Media.Audio.AudioNodeEmitter* emitter, [out] [retval] Windows.Media.Audio.AudioSubmixNode** submixNode);
                HRESULT CreateBatchUpdater([out] [retval] Windows.Media.Audio.AudioGraphBatchUpdater** updater);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Audio.AudioGraph)]
            [uuid(DDCD25AE-1185-42A7-831D-6A9B0FC86820)]
            interface IAudioGraph3 : IInspectable
            {
                [overload("CreateMediaSourceAudioInputNodeAsync")] HRESULT CreateMediaSourceAudioInputNodeAsync([in] Windows.Media.Core.MediaSource* mediaSource, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateMediaSourceAudioInputNodeResult*>** operation);
                [overload("CreateMediaSourceAudioInputNodeAsync")] HRESULT CreateMediaSourceAudioInputNodeWithEmitterAsync([in] Windows.Media.Core.MediaSource* mediaSource, [in] Windows.Media.Audio.AudioNodeEmitter* emitter, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateMediaSourceAudioInputNodeResult*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioGraphConnection)]
            [uuid(763070ED-D04E-4FAC-B233-600B42EDD469)]
            interface IAudioGraphConnection : IInspectable
            {
                [propget] HRESULT Destination([out] [retval] Windows.Media.Audio.IAudioNode** value);
                [propput] HRESULT Gain([in] DOUBLE value);
                [propget] HRESULT Gain([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioGraphSettings)]
            [uuid(1D59647F-E6FE-4628-84F8-9D8BDBA25785)]
            interface IAudioGraphSettings : IInspectable
            {
                [propget] HRESULT EncodingProperties([out] [retval] Windows.Media.MediaProperties.AudioEncodingProperties** value);
                [propput] HRESULT EncodingProperties([in] Windows.Media.MediaProperties.AudioEncodingProperties* value);
                [propget] HRESULT PrimaryRenderDevice([out] [retval] Windows.Devices.Enumeration.DeviceInformation** value);
                [propput] HRESULT PrimaryRenderDevice([in] Windows.Devices.Enumeration.DeviceInformation* value);
                [propget] HRESULT QuantumSizeSelectionMode([out] [retval] Windows.Media.Audio.QuantumSizeSelectionMode* value);
                [propput] HRESULT QuantumSizeSelectionMode([in] Windows.Media.Audio.QuantumSizeSelectionMode value);
                [propget] HRESULT DesiredSamplesPerQuantum([out] [retval] INT32* value);
                [propput] HRESULT DesiredSamplesPerQuantum([in] INT32 value);
                [propget] HRESULT AudioRenderCategory([out] [retval] Windows.Media.Render.AudioRenderCategory* value);
                [propput] HRESULT AudioRenderCategory([in] Windows.Media.Render.AudioRenderCategory value);
                [propget] HRESULT DesiredRenderDeviceAudioProcessing([out] [retval] Windows.Media.AudioProcessing* value);
                [propput] HRESULT DesiredRenderDeviceAudioProcessing([in] Windows.Media.AudioProcessing value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Audio.AudioGraphSettings)]
            [uuid(72919787-4DAB-46E3-B4C9-D8E1A2636062)]
            interface IAudioGraphSettings2 : IInspectable
            {
                [propput] HRESULT MaxPlaybackSpeedFactor([in] DOUBLE value);
                [propget] HRESULT MaxPlaybackSpeedFactor([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioGraphSettings)]
            [uuid(A5D91CC6-C2EB-4A61-A214-1D66D75F83DA)]
            interface IAudioGraphSettingsFactory : IInspectable
            {
                HRESULT Create([in] Windows.Media.Render.AudioRenderCategory audioRenderCategory, [out] [retval] Windows.Media.Audio.AudioGraphSettings** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioGraph)]
            [uuid(76EC3132-E159-4AB7-A82A-17BEB4B31E94)]
            interface IAudioGraphStatics : IInspectable
            {
                HRESULT CreateAsync([in] Windows.Media.Audio.AudioGraphSettings* settings, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.CreateAudioGraphResult*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.AudioGraphUnrecoverableErrorOccurredEventArgs)]
            [uuid(C3D9CBE0-3FF6-4FB3-B262-50D435C55423)]
            interface IAudioGraphUnrecoverableErrorOccurredEventArgs : IInspectable
            {
                [propget] HRESULT Error([out] [retval] Windows.Media.Audio.AudioGraphUnrecoverableError* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(D148005C-8428-4784-B7FD-A99D468C5D20)]
            interface IAudioInputNode : IInspectable
                requires
                    Windows.Media.Audio.IAudioNode,
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT OutgoingConnections([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Audio.AudioGraphConnection*>** value);
                [overload("AddOutgoingConnection")] HRESULT AddOutgoingConnection([in] Windows.Media.Audio.IAudioNode* destination);
                [overload("AddOutgoingConnection")] HRESULT AddOutgoingConnectionWithGain([in] Windows.Media.Audio.IAudioNode* destination, [in] DOUBLE gain);
                HRESULT RemoveOutgoingConnection([in] Windows.Media.Audio.IAudioNode* destination);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [uuid(905156B7-CA68-4C6D-A8BC-E3EE17FE3FD2)]
            interface IAudioInputNode2 : IInspectable
                requires
                    Windows.Media.Audio.IAudioNode,
                    Windows.Foundation.IClosable,
                    Windows.Media.Audio.IAudioInputNode
            {
                [propget] HRESULT Emitter([out] [retval] Windows.Media.Audio.AudioNodeEmitter** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(15389D7F-DBD8-4819-BF03-668E9357CD6D)]
            interface IAudioNode : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                [propget] HRESULT EffectDefinitions([out] [retval] Windows.Foundation.Collections.IVector<Windows.Media.Effects.IAudioEffectDefinition*>** value);
                [propput] HRESULT OutgoingGain([in] DOUBLE value);
                [propget] HRESULT OutgoingGain([out] [retval] DOUBLE* value);
                [propget] HRESULT EncodingProperties([out] [retval] Windows.Media.MediaProperties.AudioEncodingProperties** value);
                [propget] HRESULT ConsumeInput([out] [retval] boolean* value);
                [propput] HRESULT ConsumeInput([in] boolean value);
                HRESULT Start();
                HRESULT Stop();
                HRESULT Reset();
                HRESULT DisableEffectsByDefinition([in] Windows.Media.Effects.IAudioEffectDefinition* definition);
                HRESULT EnableEffectsByDefinition([in] Windows.Media.Effects.IAudioEffectDefinition* definition);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeEmitter)]
            [uuid(3676971D-880A-47B8-ADF7-1323A9D965BE)]
            interface IAudioNodeEmitter : IInspectable
            {
                [propget] HRESULT Position([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Position([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT Direction([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Direction([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT Shape([out] [retval] Windows.Media.Audio.AudioNodeEmitterShape** value);
                [propget] HRESULT DecayModel([out] [retval] Windows.Media.Audio.AudioNodeEmitterDecayModel** value);
                [propget] HRESULT Gain([out] [retval] DOUBLE* value);
                [propput] HRESULT Gain([in] DOUBLE value);
                [propget] HRESULT DistanceScale([out] [retval] DOUBLE* value);
                [propput] HRESULT DistanceScale([in] DOUBLE value);
                [propget] HRESULT DopplerScale([out] [retval] DOUBLE* value);
                [propput] HRESULT DopplerScale([in] DOUBLE value);
                [propget] HRESULT DopplerVelocity([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT DopplerVelocity([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT IsDopplerDisabled([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeEmitter)]
            [uuid(4AB6EECB-EC29-47F8-818C-B6B660A5AEB1)]
            interface IAudioNodeEmitter2 : IInspectable
            {
                [propget] HRESULT SpatialAudioModel([out] [retval] Windows.Media.Audio.SpatialAudioModel* value);
                [propput] HRESULT SpatialAudioModel([in] Windows.Media.Audio.SpatialAudioModel value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeEmitterConeProperties)]
            [uuid(E99B2CEE-02CA-4375-9326-0C6AE4BCDFB5)]
            interface IAudioNodeEmitterConeProperties : IInspectable
            {
                [propget] HRESULT InnerAngle([out] [retval] DOUBLE* value);
                [propget] HRESULT OuterAngle([out] [retval] DOUBLE* value);
                [propget] HRESULT OuterAngleGain([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeEmitterDecayModel)]
            [uuid(1D1D5AF7-0D53-4FA9-BD84-D5816A86F3FF)]
            interface IAudioNodeEmitterDecayModel : IInspectable
            {
                [propget] HRESULT Kind([out] [retval] Windows.Media.Audio.AudioNodeEmitterDecayKind* value);
                [propget] HRESULT MinGain([out] [retval] DOUBLE* value);
                [propget] HRESULT MaxGain([out] [retval] DOUBLE* value);
                [propget] HRESULT NaturalProperties([out] [retval] Windows.Media.Audio.AudioNodeEmitterNaturalDecayModelProperties** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeEmitterDecayModel)]
            [uuid(C7787CA8-F178-462F-BC81-8DD5CBE5DAE8)]
            interface IAudioNodeEmitterDecayModelStatics : IInspectable
            {
                HRESULT CreateNatural([in] DOUBLE minGain, [in] DOUBLE maxGain, [in] DOUBLE unityGainDistance, [in] DOUBLE cutoffDistance, [out] [retval] Windows.Media.Audio.AudioNodeEmitterDecayModel** decayModel);
                HRESULT CreateCustom([in] DOUBLE minGain, [in] DOUBLE maxGain, [out] [retval] Windows.Media.Audio.AudioNodeEmitterDecayModel** decayModel);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeEmitter)]
            [uuid(FDC8489A-6AD6-4CE4-B7F7-A99370DF7EE9)]
            interface IAudioNodeEmitterFactory : IInspectable
            {
                HRESULT CreateAudioNodeEmitter([in] Windows.Media.Audio.AudioNodeEmitterShape* shape, [in] Windows.Media.Audio.AudioNodeEmitterDecayModel* decayModel, [in] Windows.Media.Audio.AudioNodeEmitterSettings settings, [out] [retval] Windows.Media.Audio.AudioNodeEmitter** emitter);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeEmitterNaturalDecayModelProperties)]
            [uuid(48934BCF-CF2C-4EFC-9331-75BD22DF1F0C)]
            interface IAudioNodeEmitterNaturalDecayModelProperties : IInspectable
            {
                [propget] HRESULT UnityGainDistance([out] [retval] DOUBLE* value);
                [propget] HRESULT CutoffDistance([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeEmitterShape)]
            [uuid(EA0311C5-E73D-44BC-859C-45553BBC4828)]
            interface IAudioNodeEmitterShape : IInspectable
            {
                [propget] HRESULT Kind([out] [retval] Windows.Media.Audio.AudioNodeEmitterShapeKind* value);
                [propget] HRESULT ConeProperties([out] [retval] Windows.Media.Audio.AudioNodeEmitterConeProperties** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeEmitterShape)]
            [uuid(57BB2771-FFA5-4B86-A779-E264AEB9145F)]
            interface IAudioNodeEmitterShapeStatics : IInspectable
            {
                HRESULT CreateCone([in] DOUBLE innerAngle, [in] DOUBLE outerAngle, [in] DOUBLE outerAngleGain, [out] [retval] Windows.Media.Audio.AudioNodeEmitterShape** shape);
                HRESULT CreateOmnidirectional([out] [retval] Windows.Media.Audio.AudioNodeEmitterShape** shape);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.Media.Audio.AudioNodeListener)]
            [uuid(D9722E16-0C0A-41DA-B755-6C77835FB1EB)]
            interface IAudioNodeListener : IInspectable
            {
                [propget] HRESULT Position([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Position([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT Orientation([out] [retval] Windows.Foundation.Numerics.Quaternion* value);
                [propput] HRESULT Orientation([in] Windows.Foundation.Numerics.Quaternion value);
                [propget] HRESULT SpeedOfSound([out] [retval] DOUBLE* value);
                [propput] HRESULT SpeedOfSound([in] DOUBLE value);
                [propget] HRESULT DopplerVelocity([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT DopplerVelocity([in] Windows.Foundation.Numerics.Vector3 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [uuid(0E0F907C-79FF-4544-9EEB-01257B15105A)]
            interface IAudioNodeWithListener : IInspectable
                requires
                    Windows.Foundation.IClosable,
                    Windows.Media.Audio.IAudioNode
            {
                [propput] HRESULT Listener([in] Windows.Media.Audio.AudioNodeListener* value);
                [propget] HRESULT Listener([out] [retval] Windows.Media.Audio.AudioNodeListener** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Media.Audio.AudioPlaybackConnection)]
            [uuid(1A4C1DEA-CAFC-50E7-8718-EA3F81CBFA51)]
            interface IAudioPlaybackConnection : IInspectable
            {
                HRESULT Start();
                HRESULT StartAsync([out] [retval] Windows.Foundation.IAsyncAction** operation);
                [propget] HRESULT DeviceId([out] [retval] HSTRING* value);
                [propget] HRESULT State([out] [retval] Windows.Media.Audio.AudioPlaybackConnectionState* value);
                HRESULT Open([out] [retval] Windows.Media.Audio.AudioPlaybackConnectionOpenResult** result);
                HRESULT OpenAsync([out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.AudioPlaybackConnectionOpenResult*>** operation);
                [eventadd] HRESULT StateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioPlaybackConnection*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT StateChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Media.Audio.AudioPlaybackConnectionOpenResult)]
            [uuid(4E656AEF-39F9-5FC9-A519-A5BBFD9FE921)]
            interface IAudioPlaybackConnectionOpenResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Audio.AudioPlaybackConnectionOpenResultStatus* value);
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Media.Audio.AudioPlaybackConnection)]
            [uuid(E60963A2-69E6-5FFC-9E13-824A85213DAF)]
            interface IAudioPlaybackConnectionStatics : IInspectable
            {
                HRESULT GetDeviceSelector([out] [retval] HSTRING* result);
                HRESULT TryCreateFromId([in] HSTRING id, [out] [retval] Windows.Media.Audio.AudioPlaybackConnection** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Audio.AudioStateMonitor)]
            [uuid(1D13D136-0199-4CDC-B84E-E72C2B581ECE)]
            interface IAudioStateMonitor : IInspectable
            {
                [eventadd] HRESULT SoundLevelChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.AudioStateMonitor*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT SoundLevelChanged([in] EventRegistrationToken token);
                [propget] HRESULT SoundLevel([out] [retval] Windows.Media.SoundLevel* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Audio.AudioStateMonitor)]
            [uuid(6374EA4C-1B3B-4001-94D9-DD225330FA40)]
            interface IAudioStateMonitorStatics : IInspectable
            {
                [overload("CreateForRenderMonitoring")] HRESULT CreateForRenderMonitoring([out] [retval] Windows.Media.Audio.AudioStateMonitor** result);
                [overload("CreateForRenderMonitoring")] HRESULT CreateForRenderMonitoringWithCategory([in] Windows.Media.Render.AudioRenderCategory category, [out] [retval] Windows.Media.Audio.AudioStateMonitor** result);
                [overload("CreateForRenderMonitoring")] HRESULT CreateForRenderMonitoringWithCategoryAndDeviceRole([in] Windows.Media.Render.AudioRenderCategory category, [in] Windows.Media.Devices.AudioDeviceRole role, [out] [retval] Windows.Media.Audio.AudioStateMonitor** result);
                HRESULT CreateForRenderMonitoringWithCategoryAndDeviceId([in] Windows.Media.Render.AudioRenderCategory category, [in] HSTRING deviceId, [out] [retval] Windows.Media.Audio.AudioStateMonitor** result);
                [overload("CreateForCaptureMonitoring")] HRESULT CreateForCaptureMonitoring([out] [retval] Windows.Media.Audio.AudioStateMonitor** result);
                [overload("CreateForCaptureMonitoring")] HRESULT CreateForCaptureMonitoringWithCategory([in] Windows.Media.Capture.MediaCategory category, [out] [retval] Windows.Media.Audio.AudioStateMonitor** result);
                [overload("CreateForCaptureMonitoring")] HRESULT CreateForCaptureMonitoringWithCategoryAndDeviceRole([in] Windows.Media.Capture.MediaCategory category, [in] Windows.Media.Devices.AudioDeviceRole role, [out] [retval] Windows.Media.Audio.AudioStateMonitor** result);
                HRESULT CreateForCaptureMonitoringWithCategoryAndDeviceId([in] Windows.Media.Capture.MediaCategory category, [in] HSTRING deviceId, [out] [retval] Windows.Media.Audio.AudioStateMonitor** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioDeviceInputNodeResult)]
            [uuid(16EEC7A8-1CA7-40EF-91A4-D346E0AA1BBA)]
            interface ICreateAudioDeviceInputNodeResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Audio.AudioDeviceNodeCreationStatus* value);
                [propget] HRESULT DeviceInputNode([out] [retval] Windows.Media.Audio.AudioDeviceInputNode** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioDeviceInputNodeResult)]
            [uuid(921C69CE-3F35-41C7-9622-79F608BAEDC2)]
            interface ICreateAudioDeviceInputNodeResult2 : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioDeviceOutputNodeResult)]
            [uuid(F7776D27-1D9A-47F7-9CD4-2859CC1B7BFF)]
            interface ICreateAudioDeviceOutputNodeResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Audio.AudioDeviceNodeCreationStatus* value);
                [propget] HRESULT DeviceOutputNode([out] [retval] Windows.Media.Audio.AudioDeviceOutputNode** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioDeviceOutputNodeResult)]
            [uuid(4864269F-BDCE-4AB1-BD38-FBAE93AEDACA)]
            interface ICreateAudioDeviceOutputNodeResult2 : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioFileInputNodeResult)]
            [uuid(CE83D61C-E297-4C50-9CE7-1C7A69D6BD09)]
            interface ICreateAudioFileInputNodeResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Audio.AudioFileNodeCreationStatus* value);
                [propget] HRESULT FileInputNode([out] [retval] Windows.Media.Audio.AudioFileInputNode** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioFileInputNodeResult)]
            [uuid(F9082020-3D80-4FE0-81C1-768FEA7CA7E0)]
            interface ICreateAudioFileInputNodeResult2 : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioFileOutputNodeResult)]
            [uuid(47D6BA7B-E909-453F-866E-5540CDA734FF)]
            interface ICreateAudioFileOutputNodeResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Audio.AudioFileNodeCreationStatus* value);
                [propget] HRESULT FileOutputNode([out] [retval] Windows.Media.Audio.AudioFileOutputNode** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioFileOutputNodeResult)]
            [uuid(9F01B50D-3318-47B3-A60A-1B492BE7FC0D)]
            interface ICreateAudioFileOutputNodeResult2 : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioGraphResult)]
            [uuid(5453EF7E-7BDE-4B76-BB5D-48F79CFC8C0B)]
            interface ICreateAudioGraphResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Audio.AudioGraphCreationStatus* value);
                [propget] HRESULT Graph([out] [retval] Windows.Media.Audio.AudioGraph** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.CreateAudioGraphResult)]
            [uuid(6D738DFC-88C6-4FCB-A534-85CEDD4050A1)]
            interface ICreateAudioGraphResult2 : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Audio.CreateMediaSourceAudioInputNodeResult)]
            [uuid(46A658A3-53C0-4D59-9E51-CC1D1044A4C4)]
            interface ICreateMediaSourceAudioInputNodeResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Audio.MediaSourceAudioInputNodeCreationStatus* value);
                [propget] HRESULT Node([out] [retval] Windows.Media.Audio.MediaSourceAudioInputNode** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.CreateMediaSourceAudioInputNodeResult)]
            [uuid(63514CE8-6A1A-49E3-97EC-28FD5BE114E5)]
            interface ICreateMediaSourceAudioInputNodeResult2 : IInspectable
            {
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.EchoEffectDefinition)]
            [uuid(0E4D3FAA-36B8-4C91-B9DA-11F44A8A6610)]
            interface IEchoEffectDefinition : IInspectable
                requires
                    Windows.Media.Effects.IAudioEffectDefinition
            {
                [propput] HRESULT WetDryMix([in] DOUBLE value);
                [propget] HRESULT WetDryMix([out] [retval] DOUBLE* value);
                [propput] HRESULT Feedback([in] DOUBLE value);
                [propget] HRESULT Feedback([out] [retval] DOUBLE* value);
                [propput] HRESULT Delay([in] DOUBLE value);
                [propget] HRESULT Delay([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.EchoEffectDefinition)]
            [uuid(0D4E2257-AAF2-4E86-A54C-FB79DB8F6C12)]
            interface IEchoEffectDefinitionFactory : IInspectable
            {
                HRESULT Create([in] Windows.Media.Audio.AudioGraph* audioGraph, [out] [retval] Windows.Media.Audio.EchoEffectDefinition** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.EqualizerBand)]
            [uuid(C00A5A6A-262D-4B85-9BB7-43280B62ED0C)]
            interface IEqualizerBand : IInspectable
            {
                [propget] HRESULT Bandwidth([out] [retval] DOUBLE* value);
                [propput] HRESULT Bandwidth([in] DOUBLE value);
                [propget] HRESULT FrequencyCenter([out] [retval] DOUBLE* value);
                [propput] HRESULT FrequencyCenter([in] DOUBLE value);
                [propget] HRESULT Gain([out] [retval] DOUBLE* value);
                [propput] HRESULT Gain([in] DOUBLE value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.EqualizerEffectDefinition)]
            [uuid(023F6F1F-83FE-449A-A822-C696442D16B0)]
            interface IEqualizerEffectDefinition : IInspectable
                requires
                    Windows.Media.Effects.IAudioEffectDefinition
            {
                [propget] HRESULT Bands([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Audio.EqualizerBand*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.EqualizerEffectDefinition)]
            [uuid(D2876FC4-D410-4EB5-9E69-C9AA1277EAF0)]
            interface IEqualizerEffectDefinitionFactory : IInspectable
            {
                HRESULT Create([in] Windows.Media.Audio.AudioGraph* audioGraph, [out] [retval] Windows.Media.Audio.EqualizerEffectDefinition** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.FrameInputNodeQuantumStartedEventArgs)]
            [uuid(3D9BD498-A306-4F06-BD9F-E9EFC8226304)]
            interface IFrameInputNodeQuantumStartedEventArgs : IInspectable
            {
                [propget] HRESULT RequiredSamples([out] [retval] INT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.LimiterEffectDefinition)]
            [uuid(6B755D19-2603-47BA-BDEB-39055E3486DC)]
            interface ILimiterEffectDefinition : IInspectable
                requires
                    Windows.Media.Effects.IAudioEffectDefinition
            {
                [propput] HRESULT Release([in] UINT32 value);
                [propget] HRESULT Release([out] [retval] UINT32* value);
                [propput] HRESULT Loudness([in] UINT32 value);
                [propget] HRESULT Loudness([out] [retval] UINT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.LimiterEffectDefinition)]
            [uuid(ECBAE6F1-61FF-45EF-B8F5-48659A57C72D)]
            interface ILimiterEffectDefinitionFactory : IInspectable
            {
                HRESULT Create([in] Windows.Media.Audio.AudioGraph* audioGraph, [out] [retval] Windows.Media.Audio.LimiterEffectDefinition** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Audio.MediaSourceAudioInputNode)]
            [uuid(99D8983B-A88A-4041-8E4F-DDBAC0C91FD3)]
            interface IMediaSourceAudioInputNode : IInspectable
                requires
                    Windows.Media.Audio.IAudioInputNode,
                    Windows.Media.Audio.IAudioNode,
                    Windows.Foundation.IClosable,
                    Windows.Media.Audio.IAudioInputNode2
            {
                [propput] HRESULT PlaybackSpeedFactor([in] DOUBLE value);
                [propget] HRESULT PlaybackSpeedFactor([out] [retval] DOUBLE* value);
                [propget] HRESULT Position([out] [retval] Windows.Foundation.TimeSpan* value);
                HRESULT Seek([in] Windows.Foundation.TimeSpan position);
                [propget] HRESULT StartTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                [propput] HRESULT StartTime([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
                [propget] HRESULT EndTime([out] [retval] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>** value);
                [propput] HRESULT EndTime([in] Windows.Foundation.IReference<Windows.Foundation.TimeSpan>* value);
                [propget] HRESULT LoopCount([out] [retval] Windows.Foundation.IReference<INT32>** value);
                [propput] HRESULT LoopCount([in] Windows.Foundation.IReference<INT32>* value);
                [propget] HRESULT Duration([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT MediaSource([out] [retval] Windows.Media.Core.MediaSource** value);
                [eventadd] HRESULT MediaSourceCompleted([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.MediaSourceAudioInputNode*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT MediaSourceCompleted([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.ReverbEffectDefinition)]
            [uuid(4606AA89-F563-4D0A-8F6E-F0CDDFF35D84)]
            interface IReverbEffectDefinition : IInspectable
                requires
                    Windows.Media.Effects.IAudioEffectDefinition
            {
                [propput] HRESULT WetDryMix([in] DOUBLE value);
                [propget] HRESULT WetDryMix([out] [retval] DOUBLE* value);
                [propput] HRESULT ReflectionsDelay([in] UINT32 value);
                [propget] HRESULT ReflectionsDelay([out] [retval] UINT32* value);
                [propput] HRESULT ReverbDelay([in] BYTE value);
                [propget] HRESULT ReverbDelay([out] [retval] BYTE* value);
                [propput] HRESULT RearDelay([in] BYTE value);
                [propget] HRESULT RearDelay([out] [retval] BYTE* value);
                [propput] HRESULT PositionLeft([in] BYTE value);
                [propget] HRESULT PositionLeft([out] [retval] BYTE* value);
                [propput] HRESULT PositionRight([in] BYTE value);
                [propget] HRESULT PositionRight([out] [retval] BYTE* value);
                [propput] HRESULT PositionMatrixLeft([in] BYTE value);
                [propget] HRESULT PositionMatrixLeft([out] [retval] BYTE* value);
                [propput] HRESULT PositionMatrixRight([in] BYTE value);
                [propget] HRESULT PositionMatrixRight([out] [retval] BYTE* value);
                [propput] HRESULT EarlyDiffusion([in] BYTE value);
                [propget] HRESULT EarlyDiffusion([out] [retval] BYTE* value);
                [propput] HRESULT LateDiffusion([in] BYTE value);
                [propget] HRESULT LateDiffusion([out] [retval] BYTE* value);
                [propput] HRESULT LowEQGain([in] BYTE value);
                [propget] HRESULT LowEQGain([out] [retval] BYTE* value);
                [propput] HRESULT LowEQCutoff([in] BYTE value);
                [propget] HRESULT LowEQCutoff([out] [retval] BYTE* value);
                [propput] HRESULT HighEQGain([in] BYTE value);
                [propget] HRESULT HighEQGain([out] [retval] BYTE* value);
                [propput] HRESULT HighEQCutoff([in] BYTE value);
                [propget] HRESULT HighEQCutoff([out] [retval] BYTE* value);
                [propput] HRESULT RoomFilterFreq([in] DOUBLE value);
                [propget] HRESULT RoomFilterFreq([out] [retval] DOUBLE* value);
                [propput] HRESULT RoomFilterMain([in] DOUBLE value);
                [propget] HRESULT RoomFilterMain([out] [retval] DOUBLE* value);
                [propput] HRESULT RoomFilterHF([in] DOUBLE value);
                [propget] HRESULT RoomFilterHF([out] [retval] DOUBLE* value);
                [propput] HRESULT ReflectionsGain([in] DOUBLE value);
                [propget] HRESULT ReflectionsGain([out] [retval] DOUBLE* value);
                [propput] HRESULT ReverbGain([in] DOUBLE value);
                [propget] HRESULT ReverbGain([out] [retval] DOUBLE* value);
                [propput] HRESULT DecayTime([in] DOUBLE value);
                [propget] HRESULT DecayTime([out] [retval] DOUBLE* value);
                [propput] HRESULT Density([in] DOUBLE value);
                [propget] HRESULT Density([out] [retval] DOUBLE* value);
                [propput] HRESULT RoomSize([in] DOUBLE value);
                [propget] HRESULT RoomSize([out] [retval] DOUBLE* value);
                [propput] HRESULT DisableLateField([in] boolean value);
                [propget] HRESULT DisableLateField([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Audio.ReverbEffectDefinition)]
            [uuid(A7D5CBFE-100B-4FF0-9DA6-DC4E05A759F0)]
            interface IReverbEffectDefinitionFactory : IInspectable
            {
                HRESULT Create([in] Windows.Media.Audio.AudioGraph* audioGraph, [out] [retval] Windows.Media.Audio.ReverbEffectDefinition** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.SetDefaultSpatialAudioFormatResult)]
            [uuid(1C2AA511-1400-5E70-9EA9-AE151241E8EA)]
            interface ISetDefaultSpatialAudioFormatResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Audio.SetDefaultSpatialAudioFormatStatus* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.SpatialAudioDeviceConfiguration)]
            [uuid(EE830034-61CF-5749-9DA4-10F0FE028199)]
            interface ISpatialAudioDeviceConfiguration : IInspectable
            {
                [propget] HRESULT DeviceId([out] [retval] HSTRING* value);
                [propget] HRESULT IsSpatialAudioSupported([out] [retval] boolean* value);
                HRESULT IsSpatialAudioFormatSupported([in] HSTRING subtype, [out] [retval] boolean* result);
                [propget] HRESULT ActiveSpatialAudioFormat([out] [retval] HSTRING* value);
                [propget] HRESULT DefaultSpatialAudioFormat([out] [retval] HSTRING* value);
                HRESULT SetDefaultSpatialAudioFormatAsync([in] HSTRING subtype, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Audio.SetDefaultSpatialAudioFormatResult*>** operation);
                [eventadd] HRESULT ConfigurationChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Audio.SpatialAudioDeviceConfiguration*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ConfigurationChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.SpatialAudioDeviceConfiguration)]
            [uuid(3EC37F7B-936D-4E04-9728-2827D9F758C4)]
            interface ISpatialAudioDeviceConfigurationStatics : IInspectable
            {
                HRESULT GetForDeviceId([in] HSTRING deviceId, [out] [retval] Windows.Media.Audio.SpatialAudioDeviceConfiguration** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.SpatialAudioFormatConfiguration)]
            [uuid(32DF09A8-50F0-5395-9923-7D44CA71ED6D)]
            interface ISpatialAudioFormatConfiguration : IInspectable
            {
                HRESULT ReportLicenseChangedAsync([in] HSTRING subtype, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                HRESULT ReportConfigurationChangedAsync([in] HSTRING subtype, [out] [retval] Windows.Foundation.IAsyncAction** operation);
                [propget] HRESULT MixedRealityExclusiveModePolicy([out] [retval] Windows.Media.Audio.MixedRealitySpatialAudioFormatPolicy* value);
                [propput] HRESULT MixedRealityExclusiveModePolicy([in] Windows.Media.Audio.MixedRealitySpatialAudioFormatPolicy value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.SpatialAudioFormatConfiguration)]
            [uuid(2B5FEF71-67C9-4E5F-A35B-41680711F8C7)]
            interface ISpatialAudioFormatConfigurationStatics : IInspectable
            {
                HRESULT GetDefault([out] [retval] Windows.Media.Audio.SpatialAudioFormatConfiguration** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Media.Audio.SpatialAudioFormatSubtype)]
            [uuid(B3DE8A47-83EE-4266-A945-BEDF507AFEED)]
            interface ISpatialAudioFormatSubtypeStatics : IInspectable
            {
                [propget] HRESULT WindowsSonic([out] [retval] HSTRING* value);
                [propget] HRESULT DolbyAtmosForHeadphones([out] [retval] HSTRING* value);
                [propget] HRESULT DolbyAtmosForHomeTheater([out] [retval] HSTRING* value);
                [propget] HRESULT DolbyAtmosForSpeakers([out] [retval] HSTRING* value);
                [propget] HRESULT DTSHeadphoneX([out] [retval] HSTRING* value);
                [propget] HRESULT DTSXUltra([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [exclusiveto(Windows.Media.Audio.SpatialAudioFormatSubtype)]
            [uuid(4565E6CB-D95B-5621-B6AF-0E8849C57C80)]
            interface ISpatialAudioFormatSubtypeStatics2 : IInspectable
            {
                [propget] HRESULT DTSXForHomeTheater([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioDeviceInputNode
            {
                [default] interface Windows.Media.Audio.IAudioDeviceInputNode;
                interface Windows.Media.Audio.IAudioInputNode;
                interface Windows.Media.Audio.IAudioNode;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Audio.IAudioInputNode2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioDeviceOutputNode
            {
                [default] interface Windows.Media.Audio.IAudioDeviceOutputNode;
                interface Windows.Media.Audio.IAudioNode;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Audio.IAudioNodeWithListener;
            }

            [contract(Windows.Foundation.UniversalApiContract, 16.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Audio.IAudioEffectsPackConfigurationStatics, Windows.Foundation.UniversalApiContract, 16.0)]
            [threading(both)]
            runtimeclass AudioEffectsPackConfiguration
            {
                [default] interface Windows.Media.Audio.IAudioEffectsPackConfiguration;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioFileInputNode
            {
                [default] interface Windows.Media.Audio.IAudioFileInputNode;
                interface Windows.Media.Audio.IAudioInputNode;
                interface Windows.Media.Audio.IAudioNode;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Audio.IAudioInputNode2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioFileOutputNode
            {
                [default] interface Windows.Media.Audio.IAudioFileOutputNode;
                interface Windows.Media.Audio.IAudioNode;
                interface Windows.Foundation.IClosable;
            }

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

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioFrameInputNode
            {
                [default] interface Windows.Media.Audio.IAudioFrameInputNode;
                interface Windows.Media.Audio.IAudioInputNode;
                interface Windows.Media.Audio.IAudioNode;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Audio.IAudioInputNode2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioFrameOutputNode
            {
                [default] interface Windows.Media.Audio.IAudioFrameOutputNode;
                interface Windows.Media.Audio.IAudioNode;
                interface Windows.Foundation.IClosable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Audio.IAudioGraphStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(both)]
            runtimeclass AudioGraph
            {
                [default] interface Windows.Media.Audio.IAudioGraph;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Audio.IAudioGraph2;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Media.Audio.IAudioGraph3;
            }

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

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

            [activatable(Windows.Media.Audio.IAudioGraphSettingsFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioGraphSettings
            {
                [default] interface Windows.Media.Audio.IAudioGraphSettings;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Media.Audio.IAudioGraphSettings2;
            }

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

            [activatable(Windows.Foundation.UniversalApiContract, 3.0)]
            [activatable(Windows.Media.Audio.IAudioNodeEmitterFactory, Windows.Foundation.UniversalApiContract, 3.0)]
            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioNodeEmitter
            {
                [default] interface Windows.Media.Audio.IAudioNodeEmitter;
                interface Windows.Media.Audio.IAudioNodeEmitter2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioNodeEmitterConeProperties
            {
                [default] interface Windows.Media.Audio.IAudioNodeEmitterConeProperties;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Audio.IAudioNodeEmitterDecayModelStatics, Windows.Foundation.UniversalApiContract, 3.0)]
            [threading(both)]
            runtimeclass AudioNodeEmitterDecayModel
            {
                [default] interface Windows.Media.Audio.IAudioNodeEmitterDecayModel;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioNodeEmitterNaturalDecayModelProperties
            {
                [default] interface Windows.Media.Audio.IAudioNodeEmitterNaturalDecayModelProperties;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Audio.IAudioNodeEmitterShapeStatics, Windows.Foundation.UniversalApiContract, 3.0)]
            [threading(both)]
            runtimeclass AudioNodeEmitterShape
            {
                [default] interface Windows.Media.Audio.IAudioNodeEmitterShape;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 3.0)]
            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioNodeListener
            {
                [default] interface Windows.Media.Audio.IAudioNodeListener;
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Audio.IAudioPlaybackConnectionStatics, Windows.Foundation.UniversalApiContract, 10.0)]
            [threading(both)]
            runtimeclass AudioPlaybackConnection
            {
                [default] interface Windows.Media.Audio.IAudioPlaybackConnection;
                interface Windows.Foundation.IClosable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass AudioPlaybackConnectionOpenResult
            {
                [default] interface Windows.Media.Audio.IAudioPlaybackConnectionOpenResult;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Audio.IAudioStateMonitorStatics, Windows.Foundation.UniversalApiContract, 6.0)]
            runtimeclass AudioStateMonitor
            {
                [default] interface Windows.Media.Audio.IAudioStateMonitor;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioSubmixNode
            {
                [default] interface Windows.Media.Audio.IAudioInputNode;
                interface Windows.Media.Audio.IAudioNode;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.Media.Audio.IAudioInputNode2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CreateAudioDeviceInputNodeResult
            {
                [default] interface Windows.Media.Audio.ICreateAudioDeviceInputNodeResult;
                [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Media.Audio.ICreateAudioDeviceInputNodeResult2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CreateAudioDeviceOutputNodeResult
            {
                [default] interface Windows.Media.Audio.ICreateAudioDeviceOutputNodeResult;
                [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Media.Audio.ICreateAudioDeviceOutputNodeResult2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CreateAudioFileInputNodeResult
            {
                [default] interface Windows.Media.Audio.ICreateAudioFileInputNodeResult;
                [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Media.Audio.ICreateAudioFileInputNodeResult2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CreateAudioFileOutputNodeResult
            {
                [default] interface Windows.Media.Audio.ICreateAudioFileOutputNodeResult;
                [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Media.Audio.ICreateAudioFileOutputNodeResult2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CreateAudioGraphResult
            {
                [default] interface Windows.Media.Audio.ICreateAudioGraphResult;
                [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Media.Audio.ICreateAudioGraphResult2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CreateMediaSourceAudioInputNodeResult
            {
                [default] interface Windows.Media.Audio.ICreateMediaSourceAudioInputNodeResult;
                [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Media.Audio.ICreateMediaSourceAudioInputNodeResult2;
            }

            [activatable(Windows.Media.Audio.IEchoEffectDefinitionFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass EchoEffectDefinition
            {
                [default] interface Windows.Media.Audio.IEchoEffectDefinition;
                interface Windows.Media.Effects.IAudioEffectDefinition;
            }

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

            [activatable(Windows.Media.Audio.IEqualizerEffectDefinitionFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass EqualizerEffectDefinition
            {
                [default] interface Windows.Media.Audio.IEqualizerEffectDefinition;
                interface Windows.Media.Effects.IAudioEffectDefinition;
            }

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

            [activatable(Windows.Media.Audio.ILimiterEffectDefinitionFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass LimiterEffectDefinition
            {
                [default] interface Windows.Media.Audio.ILimiterEffectDefinition;
                interface Windows.Media.Effects.IAudioEffectDefinition;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass MediaSourceAudioInputNode
            {
                [default] interface Windows.Media.Audio.IMediaSourceAudioInputNode;
                interface Windows.Media.Audio.IAudioInputNode2;
                interface Windows.Media.Audio.IAudioInputNode;
                interface Windows.Media.Audio.IAudioNode;
                interface Windows.Foundation.IClosable;
            }

            [activatable(Windows.Media.Audio.IReverbEffectDefinitionFactory, Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass ReverbEffectDefinition
            {
                [default] interface Windows.Media.Audio.IReverbEffectDefinition;
                interface Windows.Media.Effects.IAudioEffectDefinition;
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [marshaling_behavior(agile)]
            runtimeclass SetDefaultSpatialAudioFormatResult
            {
                [default] interface Windows.Media.Audio.ISetDefaultSpatialAudioFormatResult;
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Audio.ISpatialAudioDeviceConfigurationStatics, Windows.Foundation.UniversalApiContract, 7.0)]
            [threading(both)]
            runtimeclass SpatialAudioDeviceConfiguration
            {
                [default] interface Windows.Media.Audio.ISpatialAudioDeviceConfiguration;
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Audio.ISpatialAudioFormatConfigurationStatics, Windows.Foundation.UniversalApiContract, 7.0)]
            [threading(both)]
            runtimeclass SpatialAudioFormatConfiguration
            {
                [default] interface Windows.Media.Audio.ISpatialAudioFormatConfiguration;
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Audio.ISpatialAudioFormatSubtypeStatics, Windows.Foundation.UniversalApiContract, 7.0)]
            [static(Windows.Media.Audio.ISpatialAudioFormatSubtypeStatics2, Windows.Foundation.UniversalApiContract, 12.0)]
            [threading(both)]
            runtimeclass SpatialAudioFormatSubtype
            {
            }
        }
    }
}
