//
// 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.Media.Capture.idl";
import "Windows.Media.Devices.Core.idl";
import "Windows.Media.Effects.idl";
import "Windows.Media.MediaProperties.idl";
import "Windows.Storage.Streams.idl";

// Forward Declare
namespace Windows
{
    namespace Devices
    {
        namespace Enumeration
        {
            typedef enum Panel Panel;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        interface IAsyncAction;

        typedef struct Rect Rect;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Capture
        {
            typedef enum MediaCaptureDeviceExclusiveControlReleaseMode MediaCaptureDeviceExclusiveControlReleaseMode;

            typedef enum MediaStreamType MediaStreamType;

            typedef enum PowerlineFrequency PowerlineFrequency;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Devices
        {
            namespace Core
            {
                runtimeclass VariablePhotoSequenceController;
            }
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Effects
        {
            runtimeclass AudioCaptureEffectsManager;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace MediaProperties
        {
            interface IMediaEncodingProperties;

            typedef enum MediaPixelFormat MediaPixelFormat;

            runtimeclass MediaRatio;

            typedef enum MediaThumbnailFormat MediaThumbnailFormat;
        }
    }
}
namespace Windows
{
    namespace Storage
    {
        namespace Streams
        {
            interface IBuffer;
        }
    }
}
namespace Windows
{
    namespace Media
    {
        namespace Devices
        {
            apicontract CallControlContract;

            typedef enum AdvancedPhotoMode AdvancedPhotoMode;

            typedef enum AudioDeviceRole AudioDeviceRole;

            typedef enum AutoFocusRange AutoFocusRange;

            typedef enum CameraOcclusionKind CameraOcclusionKind;

            typedef enum CameraStreamState CameraStreamState;

            typedef enum CaptureSceneMode CaptureSceneMode;

            typedef enum CaptureUse CaptureUse;

            typedef enum ColorTemperaturePreset ColorTemperaturePreset;

            typedef enum DigitalWindowMode DigitalWindowMode;

            typedef enum FocusMode FocusMode;

            typedef enum FocusPreset FocusPreset;

            typedef enum HdrVideoMode HdrVideoMode;

            typedef enum InfraredTorchMode InfraredTorchMode;

            typedef enum IsoSpeedPreset IsoSpeedPreset;

            typedef enum ManualFocusDistance ManualFocusDistance;

            typedef enum MediaCaptureFocusState MediaCaptureFocusState;

            typedef enum MediaCaptureOptimization MediaCaptureOptimization;

            typedef enum MediaCapturePauseBehavior MediaCapturePauseBehavior;

            typedef enum OpticalImageStabilizationMode OpticalImageStabilizationMode;

            typedef enum RegionOfInterestType RegionOfInterestType;

            typedef enum SendCommandStatus SendCommandStatus;

            typedef enum TelephonyKey TelephonyKey;

            typedef enum VideoDeviceControllerGetDevicePropertyStatus VideoDeviceControllerGetDevicePropertyStatus;

            typedef enum VideoDeviceControllerSetDevicePropertyStatus VideoDeviceControllerSetDevicePropertyStatus;

            typedef enum VideoTemporalDenoisingMode VideoTemporalDenoisingMode;

            typedef enum ZoomTransitionMode ZoomTransitionMode;

            delegate CallControlEventHandler;

            delegate DialRequestedEventHandler;

            delegate KeypadPressedEventHandler;

            delegate RedialRequestedEventHandler;

            interface IAdvancedPhotoCaptureSettings;

            interface IAdvancedPhotoControl;

            interface IAdvancedVideoCaptureDeviceController;

            interface IAdvancedVideoCaptureDeviceController10;

            interface IAdvancedVideoCaptureDeviceController11;

            interface IAdvancedVideoCaptureDeviceController2;

            interface IAdvancedVideoCaptureDeviceController3;

            interface IAdvancedVideoCaptureDeviceController4;

            interface IAdvancedVideoCaptureDeviceController5;

            interface IAdvancedVideoCaptureDeviceController6;

            interface IAdvancedVideoCaptureDeviceController7;

            interface IAdvancedVideoCaptureDeviceController8;

            interface IAdvancedVideoCaptureDeviceController9;

            interface IAudioDeviceController;

            interface IAudioDeviceController2;

            interface IAudioDeviceModule;

            interface IAudioDeviceModuleNotificationEventArgs;

            interface IAudioDeviceModulesManager;

            interface IAudioDeviceModulesManagerFactory;

            interface ICallControl;

            interface ICallControlStatics;

            interface ICameraOcclusionInfo;

            interface ICameraOcclusionState;

            interface ICameraOcclusionStateChangedEventArgs;

            interface IDefaultAudioDeviceChangedEventArgs;

            interface IDialRequestedEventArgs;

            interface IDigitalWindowBounds;

            interface IDigitalWindowCapability;

            interface IDigitalWindowControl;

            interface IExposureCompensationControl;

            interface IExposureControl;

            interface IExposurePriorityVideoControl;

            interface IFlashControl;

            interface IFlashControl2;

            interface IFocusControl;

            interface IFocusControl2;

            interface IFocusSettings;

            interface IHdrVideoControl;

            interface IInfraredTorchControl;

            interface IIsoSpeedControl;

            interface IIsoSpeedControl2;

            interface IKeypadPressedEventArgs;

            interface ILowLagPhotoControl;

            interface ILowLagPhotoSequenceControl;

            interface IMediaDeviceControl;

            interface IMediaDeviceControlCapabilities;

            interface IMediaDeviceController;

            interface IMediaDeviceStatics;

            interface IModuleCommandResult;

            interface IOpticalImageStabilizationControl;

            interface IPanelBasedOptimizationControl;

            interface IPhotoConfirmationControl;

            interface IRedialRequestedEventArgs;

            interface IRegionOfInterest;

            interface IRegionOfInterest2;

            interface IRegionsOfInterestControl;

            interface ISceneModeControl;

            interface ITorchControl;

            interface IVideoDeviceController;

            interface IVideoDeviceControllerGetDevicePropertyResult;

            interface IVideoTemporalDenoisingControl;

            interface IWhiteBalanceControl;

            interface IZoomControl;

            interface IZoomControl2;

            interface IZoomSettings;

            runtimeclass AdvancedPhotoCaptureSettings;

            runtimeclass AdvancedPhotoControl;

            runtimeclass AudioDeviceController;

            runtimeclass AudioDeviceModule;

            runtimeclass AudioDeviceModuleNotificationEventArgs;

            runtimeclass AudioDeviceModulesManager;

            runtimeclass CallControl;

            runtimeclass CameraOcclusionInfo;

            runtimeclass CameraOcclusionState;

            runtimeclass CameraOcclusionStateChangedEventArgs;

            runtimeclass DefaultAudioCaptureDeviceChangedEventArgs;

            runtimeclass DefaultAudioRenderDeviceChangedEventArgs;

            runtimeclass DialRequestedEventArgs;

            runtimeclass DigitalWindowBounds;

            runtimeclass DigitalWindowCapability;

            runtimeclass DigitalWindowControl;

            runtimeclass ExposureCompensationControl;

            runtimeclass ExposureControl;

            runtimeclass ExposurePriorityVideoControl;

            runtimeclass FlashControl;

            runtimeclass FocusControl;

            runtimeclass FocusSettings;

            runtimeclass HdrVideoControl;

            runtimeclass InfraredTorchControl;

            runtimeclass IsoSpeedControl;

            runtimeclass KeypadPressedEventArgs;

            runtimeclass LowLagPhotoControl;

            runtimeclass LowLagPhotoSequenceControl;

            runtimeclass MediaDevice;

            runtimeclass MediaDeviceControl;

            runtimeclass MediaDeviceControlCapabilities;

            runtimeclass ModuleCommandResult;

            runtimeclass OpticalImageStabilizationControl;

            runtimeclass PanelBasedOptimizationControl;

            runtimeclass PhotoConfirmationControl;

            runtimeclass RedialRequestedEventArgs;

            runtimeclass RegionOfInterest;

            runtimeclass RegionsOfInterestControl;

            runtimeclass SceneModeControl;

            runtimeclass TorchControl;

            runtimeclass VideoDeviceController;

            runtimeclass VideoDeviceControllerGetDevicePropertyResult;

            runtimeclass VideoTemporalDenoisingControl;

            runtimeclass WhiteBalanceControl;

            runtimeclass ZoomControl;

            runtimeclass ZoomSettings;
        }
    }
}

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

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.AudioDeviceModule*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.AutoFocusRange>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.CaptureSceneMode>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.DigitalWindowCapability*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.FocusMode>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.FocusPreset>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.HdrVideoMode>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.InfraredTorchMode>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.IsoSpeedPreset>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.ManualFocusDistance>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.OpticalImageStabilizationMode>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.RegionOfInterest*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.VideoTemporalDenoisingMode>;

                interface Windows.Foundation.Collections.IIterable<Windows.Media.Devices.ZoomTransitionMode>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.AdvancedPhotoMode>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.AudioDeviceModule*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.AutoFocusRange>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.CaptureSceneMode>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.DigitalWindowCapability*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.FocusMode>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.FocusPreset>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.HdrVideoMode>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.InfraredTorchMode>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.IsoSpeedPreset>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.ManualFocusDistance>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.OpticalImageStabilizationMode>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.RegionOfInterest*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.VideoTemporalDenoisingMode>;

                interface Windows.Foundation.Collections.IIterator<Windows.Media.Devices.ZoomTransitionMode>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.AdvancedPhotoMode>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.AudioDeviceModule*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.AutoFocusRange>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.CaptureSceneMode>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.DigitalWindowCapability*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.FocusMode>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.FocusPreset>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.HdrVideoMode>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.InfraredTorchMode>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.IsoSpeedPreset>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.ManualFocusDistance>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.OpticalImageStabilizationMode>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.VideoTemporalDenoisingMode>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.ZoomTransitionMode>;

                interface Windows.Foundation.IAsyncOperation<Windows.Media.Devices.ModuleCommandResult*>;

                interface Windows.Foundation.IReference<Windows.Media.Devices.CaptureSceneMode>;

                interface Windows.Foundation.IReference<Windows.Media.Devices.ManualFocusDistance>;

                interface Windows.Foundation.IReference<Windows.Media.Devices.MediaCaptureFocusState>;

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

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

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Devices.AudioDeviceModulesManager*, Windows.Media.Devices.AudioDeviceModuleNotificationEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Media.Devices.CameraOcclusionInfo*, Windows.Media.Devices.CameraOcclusionStateChangedEventArgs*>;
            }
        }
    }
}

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

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum AdvancedPhotoMode
            {
                Auto     = 0,
                Standard = 1,
                Hdr      = 2,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                LowLight = 3
            };

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

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum AutoFocusRange
            {
                FullRange = 0,
                Macro     = 1,
                Normal    = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            enum CameraOcclusionKind
            {
                Lid            = 0,
                CameraHardware = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum CameraStreamState
            {
                NotStreaming      = 0,
                Streaming         = 1,
                BlockedForPrivacy = 2,
                Shutdown          = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum CaptureSceneMode
            {
                Auto          = 0,
                Manual        = 1,
                Macro         = 2,
                Portrait      = 3,
                Sport         = 4,
                Snow          = 5,
                Night         = 6,
                Beach         = 7,
                Sunset        = 8,
                Candlelight   = 9,
                Landscape     = 10,
                NightPortrait = 11,
                Backlit       = 12
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum CaptureUse
            {
                None  = 0,
                Photo = 1,
                Video = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum ColorTemperaturePreset
            {
                Auto        = 0,
                Manual      = 1,
                Cloudy      = 2,
                Daylight    = 3,
                Flash       = 4,
                Fluorescent = 5,
                Tungsten    = 6,
                Candlelight = 7
            };

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            enum DigitalWindowMode
            {
                Off  = 0,
                On   = 1,
                Auto = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum FocusMode
            {
                Auto       = 0,
                Single     = 1,
                Continuous = 2,
                Manual     = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum FocusPreset
            {
                Auto           = 0,
                Manual         = 1,
                AutoMacro      = 2,
                AutoNormal     = 3,
                AutoInfinity   = 4,
                AutoHyperfocal = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum HdrVideoMode
            {
                Off  = 0,
                On   = 1,
                Auto = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            enum InfraredTorchMode
            {
                Off                          = 0,
                On                           = 1,
                AlternatingFrameIllumination = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [deprecated("IsoSpeedPreset may not be available in future versions of Windows Phone. Starting with Windows Phone 8.1, use SetAutoAsync, Auto, SetValueAsync, and Value instead", deprecate, Windows.Foundation.UniversalApiContract, 1.0)]
            enum IsoSpeedPreset
            {
                Auto     = 0,
                Iso50    = 1,
                Iso80    = 2,
                Iso100   = 3,
                Iso200   = 4,
                Iso400   = 5,
                Iso800   = 6,
                Iso1600  = 7,
                Iso3200  = 8,
                Iso6400  = 9,
                Iso12800 = 10,
                Iso25600 = 11
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum ManualFocusDistance
            {
                Infinity   = 0,
                Hyperfocal = 1,
                Nearest    = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MediaCaptureFocusState
            {
                Uninitialized = 0,
                Lost          = 1,
                Searching     = 2,
                Focused       = 3,
                Failed        = 4
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MediaCaptureOptimization
            {
                Default            = 0,
                Quality            = 1,
                Latency            = 2,
                Power              = 3,
                LatencyThenQuality = 4,
                LatencyThenPower   = 5,
                PowerAndQuality    = 6
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum MediaCapturePauseBehavior
            {
                RetainHardwareResources  = 0,
                ReleaseHardwareResources = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum OpticalImageStabilizationMode
            {
                Off  = 0,
                On   = 1,
                Auto = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum RegionOfInterestType
            {
                Unknown = 0,
                Face    = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            enum SendCommandStatus
            {
                Success            = 0,
                DeviceNotAvailable = 1
            };

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            enum TelephonyKey
            {
                D0    = 0,
                D1    = 1,
                D2    = 2,
                D3    = 3,
                D4    = 4,
                D5    = 5,
                D6    = 6,
                D7    = 7,
                D8    = 8,
                D9    = 9,
                Star  = 10,
                Pound = 11,
                A     = 12,
                B     = 13,
                C     = 14,
                D     = 15
            };

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            enum VideoDeviceControllerGetDevicePropertyStatus
            {
                Success                      = 0,
                UnknownFailure               = 1,
                BufferTooSmall               = 2,
                NotSupported                 = 3,
                DeviceNotAvailable           = 4,
                MaxPropertyValueSizeTooSmall = 5,
                MaxPropertyValueSizeRequired = 6
            };

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            enum VideoDeviceControllerSetDevicePropertyStatus
            {
                Success            = 0,
                UnknownFailure     = 1,
                NotSupported       = 2,
                InvalidValue       = 3,
                DeviceNotAvailable = 4,
                NotInControl       = 5
            };

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            enum VideoTemporalDenoisingMode
            {
                Off  = 0,
                On   = 1,
                Auto = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            enum ZoomTransitionMode
            {
                Auto   = 0,
                Direct = 1,
                Smooth = 2
            };

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [uuid(596F759F-50DF-4454-BC63-4D3D01B61958)]
            delegate
                HRESULT CallControlEventHandler([in] Windows.Media.Devices.CallControl* sender);

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [uuid(5ABBFFDB-C21F-4BC4-891B-257E28C1B1A4)]
            delegate
                HRESULT DialRequestedEventHandler([in] Windows.Media.Devices.CallControl* sender, [in] Windows.Media.Devices.DialRequestedEventArgs* e);

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [uuid(E637A454-C527-422C-8926-C9AF83B559A0)]
            delegate
                HRESULT KeypadPressedEventHandler([in] Windows.Media.Devices.CallControl* sender, [in] Windows.Media.Devices.KeypadPressedEventArgs* e);

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [uuid(BAF257D1-4EBD-4B84-9F47-6EC43D75D8B1)]
            delegate
                HRESULT RedialRequestedEventHandler([in] Windows.Media.Devices.CallControl* sender, [in] Windows.Media.Devices.RedialRequestedEventArgs* e);

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.AdvancedPhotoCaptureSettings)]
            [uuid(08F3863A-0018-445B-93D2-646D1C5ED05C)]
            interface IAdvancedPhotoCaptureSettings : IInspectable
            {
                [propget] HRESULT Mode([out] [retval] Windows.Media.Devices.AdvancedPhotoMode* value);
                [propput] HRESULT Mode([in] Windows.Media.Devices.AdvancedPhotoMode value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.AdvancedPhotoControl)]
            [uuid(C5B15486-9001-4682-9309-68EAE0080EEC)]
            interface IAdvancedPhotoControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT SupportedModes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.AdvancedPhotoMode>** value);
                [propget] HRESULT Mode([out] [retval] Windows.Media.Devices.AdvancedPhotoMode* value);
                HRESULT Configure([in] Windows.Media.Devices.AdvancedPhotoCaptureSettings* settings);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(DE6FF4D3-2B96-4583-80AB-B5B01DC6A8D7)]
            interface IAdvancedVideoCaptureDeviceController : IInspectable
            {
                HRESULT SetDeviceProperty([in] HSTRING propertyId, [in] IInspectable* propertyValue);
                HRESULT GetDeviceProperty([in] HSTRING propertyId, [out] [retval] IInspectable** propertyValue);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(C621B82D-D6F0-5C1B-A388-A6E938407146)]
            interface IAdvancedVideoCaptureDeviceController10 : IInspectable
            {
                [propget] HRESULT CameraOcclusionInfo([out] [retval] Windows.Media.Devices.CameraOcclusionInfo** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 15.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(D5B65AE2-3772-580C-A630-E75DE9106904)]
            interface IAdvancedVideoCaptureDeviceController11 : IInspectable
            {
                HRESULT TryAcquireExclusiveControl([in] HSTRING deviceId, [in] Windows.Media.Capture.MediaCaptureDeviceExclusiveControlReleaseMode mode, [out] [retval] boolean* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(8BB94F8F-F11A-43DB-B402-11930B80AE56)]
            interface IAdvancedVideoCaptureDeviceController2 : IInspectable
            {
                [propget] HRESULT LowLagPhotoSequence([out] [retval] Windows.Media.Devices.LowLagPhotoSequenceControl** value);
                [propget] HRESULT LowLagPhoto([out] [retval] Windows.Media.Devices.LowLagPhotoControl** value);
                [propget] HRESULT SceneModeControl([out] [retval] Windows.Media.Devices.SceneModeControl** value);
                [propget] HRESULT TorchControl([out] [retval] Windows.Media.Devices.TorchControl** value);
                [propget] HRESULT FlashControl([out] [retval] Windows.Media.Devices.FlashControl** value);
                [propget] HRESULT WhiteBalanceControl([out] [retval] Windows.Media.Devices.WhiteBalanceControl** value);
                [propget] HRESULT ExposureControl([out] [retval] Windows.Media.Devices.ExposureControl** value);
                [propget] HRESULT FocusControl([out] [retval] Windows.Media.Devices.FocusControl** value);
                [propget] HRESULT ExposureCompensationControl([out] [retval] Windows.Media.Devices.ExposureCompensationControl** value);
                [propget] HRESULT IsoSpeedControl([out] [retval] Windows.Media.Devices.IsoSpeedControl** value);
                [propget] HRESULT RegionsOfInterestControl([out] [retval] Windows.Media.Devices.RegionsOfInterestControl** value);
                [propget] HRESULT PrimaryUse([out] [retval] Windows.Media.Devices.CaptureUse* value);
                [propput] HRESULT PrimaryUse([in] Windows.Media.Devices.CaptureUse value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(A98B8F34-EE0D-470C-B9F0-4229C4BBD089)]
            interface IAdvancedVideoCaptureDeviceController3 : IInspectable
            {
                [propget] HRESULT VariablePhotoSequenceController([out] [retval] Windows.Media.Devices.Core.VariablePhotoSequenceController** value);
                [propget] HRESULT PhotoConfirmationControl([out] [retval] Windows.Media.Devices.PhotoConfirmationControl** value);
                [propget] HRESULT ZoomControl([out] [retval] Windows.Media.Devices.ZoomControl** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(EA9FBFAF-D371-41C3-9A17-824A87EBDFD2)]
            interface IAdvancedVideoCaptureDeviceController4 : IInspectable
            {
                [propget] HRESULT ExposurePriorityVideoControl([out] [retval] Windows.Media.Devices.ExposurePriorityVideoControl** value);
                [propget] HRESULT DesiredOptimization([out] [retval] Windows.Media.Devices.MediaCaptureOptimization* value);
                [propput] HRESULT DesiredOptimization([in] Windows.Media.Devices.MediaCaptureOptimization value);
                [propget] HRESULT HdrVideoControl([out] [retval] Windows.Media.Devices.HdrVideoControl** value);
                [propget] HRESULT OpticalImageStabilizationControl([out] [retval] Windows.Media.Devices.OpticalImageStabilizationControl** value);
                [propget] HRESULT AdvancedPhotoControl([out] [retval] Windows.Media.Devices.AdvancedPhotoControl** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(33512B17-B9CB-4A23-B875-F9EAAB535492)]
            interface IAdvancedVideoCaptureDeviceController5 : IInspectable
            {
                [propget] HRESULT Id([out] [retval] HSTRING* value);
                HRESULT GetDevicePropertyById([in] HSTRING propertyId, [in] Windows.Foundation.IReference<UINT32>* maxPropertyValueSize, [out] [retval] Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyResult** value);
                HRESULT SetDevicePropertyById([in] HSTRING propertyId, [in] IInspectable* propertyValue, [out] [retval] Windows.Media.Devices.VideoDeviceControllerSetDevicePropertyStatus* value);
                HRESULT GetDevicePropertyByExtendedId([in] UINT32 __extendedPropertyIdSize, [in] [size_is(__extendedPropertyIdSize)] BYTE* extendedPropertyId, [in] Windows.Foundation.IReference<UINT32>* maxPropertyValueSize, [out] [retval] Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyResult** value);
                HRESULT SetDevicePropertyByExtendedId([in] UINT32 __extendedPropertyIdSize, [in] [size_is(__extendedPropertyIdSize)] BYTE* extendedPropertyId, [in] UINT32 __propertyValueSize, [in] [size_is(__propertyValueSize)] BYTE* propertyValue, [out] [retval] Windows.Media.Devices.VideoDeviceControllerSetDevicePropertyStatus* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(B6563A53-68A1-44B7-9F89-B5FA97AC0CBE)]
            interface IAdvancedVideoCaptureDeviceController6 : IInspectable
            {
                [propget] HRESULT VideoTemporalDenoisingControl([out] [retval] Windows.Media.Devices.VideoTemporalDenoisingControl** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(8D2927F0-A054-50E7-B7DF-7C04234D10F0)]
            interface IAdvancedVideoCaptureDeviceController7 : IInspectable
            {
                [propget] HRESULT InfraredTorchControl([out] [retval] Windows.Media.Devices.InfraredTorchControl** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(D843F010-E7FB-595B-9A78-0E54C4532B43)]
            interface IAdvancedVideoCaptureDeviceController8 : IInspectable
            {
                [propget] HRESULT PanelBasedOptimizationControl([out] [retval] Windows.Media.Devices.PanelBasedOptimizationControl** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(8BDCA95D-0255-51BC-A10D-5A169EC1625A)]
            interface IAdvancedVideoCaptureDeviceController9 : IInspectable
            {
                [propget] HRESULT DigitalWindowControl([out] [retval] Windows.Media.Devices.DigitalWindowControl** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.AudioDeviceController)]
            [uuid(EDD4A388-79C7-4F7C-90E8-EF934B21580A)]
            interface IAudioDeviceController : IInspectable
                requires
                    Windows.Media.Devices.IMediaDeviceController
            {
                [propput] HRESULT Muted([in] boolean value);
                [propget] HRESULT Muted([out] [retval] boolean* value);
                [propput] HRESULT VolumePercent([in] FLOAT value);
                [propget] HRESULT VolumePercent([out] [retval] FLOAT* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 19.0)]
            [exclusiveto(Windows.Media.Devices.AudioDeviceController)]
            [uuid(85326599-4C24-48B0-81DD-0C5CC79DDF05)]
            interface IAudioDeviceController2 : IInspectable
            {
                [propget] HRESULT AudioCaptureEffectsManager([out] [retval] Windows.Media.Effects.AudioCaptureEffectsManager** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Devices.AudioDeviceModule)]
            [uuid(86CFAC36-47C1-4B33-9852-8773EC4BE123)]
            interface IAudioDeviceModule : IInspectable
            {
                [propget] HRESULT ClassId([out] [retval] HSTRING* value);
                [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                [propget] HRESULT InstanceId([out] [retval] UINT32* value);
                [propget] HRESULT MajorVersion([out] [retval] UINT32* value);
                [propget] HRESULT MinorVersion([out] [retval] UINT32* value);
                HRESULT SendCommandAsync([in] Windows.Storage.Streams.IBuffer* Command, [out] [retval] Windows.Foundation.IAsyncOperation<Windows.Media.Devices.ModuleCommandResult*>** operation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Devices.AudioDeviceModuleNotificationEventArgs)]
            [uuid(E3E3CCAF-224C-48BE-956B-9A13134E96E8)]
            interface IAudioDeviceModuleNotificationEventArgs : IInspectable
            {
                [propget] HRESULT Module([out] [retval] Windows.Media.Devices.AudioDeviceModule** value);
                [propget] HRESULT NotificationData([out] [retval] Windows.Storage.Streams.IBuffer** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Devices.AudioDeviceModulesManager)]
            [uuid(6AA40C4D-960A-4D1C-B318-0022604547ED)]
            interface IAudioDeviceModulesManager : IInspectable
            {
                [eventadd] HRESULT ModuleNotificationReceived([in] Windows.Foundation.TypedEventHandler<Windows.Media.Devices.AudioDeviceModulesManager*, Windows.Media.Devices.AudioDeviceModuleNotificationEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT ModuleNotificationReceived([in] EventRegistrationToken token);
                HRESULT FindAllById([in] HSTRING moduleId, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.AudioDeviceModule*>** modules);
                HRESULT FindAll([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.AudioDeviceModule*>** modules);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Devices.AudioDeviceModulesManager)]
            [uuid(8DB03670-E64D-4773-96C0-BC7EBF0E063F)]
            interface IAudioDeviceModulesManagerFactory : IInspectable
            {
                HRESULT Create([in] HSTRING deviceId, [out] [retval] Windows.Media.Devices.AudioDeviceModulesManager** result);
            }

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.CallControl)]
            [uuid(A520D0D6-AE8D-45DB-8011-CA49D3B3E578)]
            interface ICallControl : IInspectable
            {
                HRESULT IndicateNewIncomingCall([in] boolean enableRinger, [in] HSTRING callerId, [out] [retval] UINT64* callToken);
                HRESULT IndicateNewOutgoingCall([out] [retval] UINT64* callToken);
                HRESULT IndicateActiveCall([in] UINT64 callToken);
                HRESULT EndCall([in] UINT64 callToken);
                [propget] HRESULT HasRinger([out] [retval] boolean* value);
                [eventadd] HRESULT AnswerRequested([in] Windows.Media.Devices.CallControlEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT AnswerRequested([in] EventRegistrationToken token);
                [eventadd] HRESULT HangUpRequested([in] Windows.Media.Devices.CallControlEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT HangUpRequested([in] EventRegistrationToken token);
                [eventadd] HRESULT DialRequested([in] Windows.Media.Devices.DialRequestedEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT DialRequested([in] EventRegistrationToken token);
                [eventadd] HRESULT RedialRequested([in] Windows.Media.Devices.RedialRequestedEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT RedialRequested([in] EventRegistrationToken token);
                [eventadd] HRESULT KeypadPressed([in] Windows.Media.Devices.KeypadPressedEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT KeypadPressed([in] EventRegistrationToken token);
                [eventadd] HRESULT AudioTransferRequested([in] Windows.Media.Devices.CallControlEventHandler* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT AudioTransferRequested([in] EventRegistrationToken token);
            }

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.CallControl)]
            [uuid(03945AD5-85AB-40E1-AF19-56C94303B019)]
            interface ICallControlStatics : IInspectable
            {
                HRESULT GetDefault([out] [retval] Windows.Media.Devices.CallControl** callControl);
                HRESULT FromId([in] HSTRING deviceId, [out] [retval] Windows.Media.Devices.CallControl** callControl);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.Media.Devices.CameraOcclusionInfo)]
            [uuid(AF6C4AD0-A84D-5DB6-BE58-A5DA21CFE011)]
            interface ICameraOcclusionInfo : IInspectable
            {
                HRESULT GetState([out] [retval] Windows.Media.Devices.CameraOcclusionState** result);
                HRESULT IsOcclusionKindSupported([in] Windows.Media.Devices.CameraOcclusionKind occlusionKind, [out] [retval] boolean* result);
                [eventadd] HRESULT StateChanged([in] Windows.Foundation.TypedEventHandler<Windows.Media.Devices.CameraOcclusionInfo*, Windows.Media.Devices.CameraOcclusionStateChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT StateChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.Media.Devices.CameraOcclusionState)]
            [uuid(430ADEB8-6842-5E55-9BDE-04B4EF3A8A57)]
            interface ICameraOcclusionState : IInspectable
            {
                [propget] HRESULT IsOccluded([out] [retval] boolean* value);
                HRESULT IsOcclusionKind([in] Windows.Media.Devices.CameraOcclusionKind occlusionKind, [out] [retval] boolean* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [exclusiveto(Windows.Media.Devices.CameraOcclusionStateChangedEventArgs)]
            [uuid(8512D848-C0DE-57CA-A1CA-FB2C3D23DF55)]
            interface ICameraOcclusionStateChangedEventArgs : IInspectable
            {
                [propget] HRESULT State([out] [retval] Windows.Media.Devices.CameraOcclusionState** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(110F882F-1C05-4657-A18E-47C9B69F07AB)]
            interface IDefaultAudioDeviceChangedEventArgs : IInspectable
            {
                [propget] HRESULT Id([out] [retval] HSTRING* value);
                [propget] HRESULT Role([out] [retval] Windows.Media.Devices.AudioDeviceRole* value);
            }

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.DialRequestedEventArgs)]
            [uuid(037B929E-953C-4286-8866-4F0F376C855A)]
            interface IDialRequestedEventArgs : IInspectable
            {
                HRESULT Handled();
                [propget] HRESULT Contact([out] [retval] IInspectable** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [exclusiveto(Windows.Media.Devices.DigitalWindowBounds)]
            [uuid(DD4F21DD-D173-5C6B-8C25-BDD26D5122B1)]
            interface IDigitalWindowBounds : IInspectable
            {
                [propget] HRESULT NormalizedOriginTop([out] [retval] DOUBLE* value);
                [propput] HRESULT NormalizedOriginTop([in] DOUBLE value);
                [propget] HRESULT NormalizedOriginLeft([out] [retval] DOUBLE* value);
                [propput] HRESULT NormalizedOriginLeft([in] DOUBLE value);
                [propget] HRESULT Scale([out] [retval] DOUBLE* value);
                [propput] HRESULT Scale([in] DOUBLE value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [exclusiveto(Windows.Media.Devices.DigitalWindowCapability)]
            [uuid(D78BAD2C-F721-5244-A196-B56CCBEC606C)]
            interface IDigitalWindowCapability : IInspectable
            {
                [propget] HRESULT Width([out] [retval] INT32* value);
                [propget] HRESULT Height([out] [retval] INT32* value);
                [propget] HRESULT MinScaleValue([out] [retval] DOUBLE* value);
                [propget] HRESULT MaxScaleValue([out] [retval] DOUBLE* value);
                [propget] HRESULT MinScaleValueWithoutUpsampling([out] [retval] DOUBLE* value);
                [propget] HRESULT NormalizedFieldOfViewLimit([out] [retval] Windows.Foundation.Rect* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [exclusiveto(Windows.Media.Devices.DigitalWindowControl)]
            [uuid(23B69EFF-65D2-53EA-8780-DE582B48B544)]
            interface IDigitalWindowControl : IInspectable
            {
                [propget] HRESULT IsSupported([out] [retval] boolean* value);
                [propget] HRESULT SupportedModes([out] UINT32* __valueSize, [out] [retval] [size_is(, *__valueSize)] Windows.Media.Devices.DigitalWindowMode** value);
                [propget] HRESULT CurrentMode([out] [retval] Windows.Media.Devices.DigitalWindowMode* value);
                HRESULT GetBounds([out] [retval] Windows.Media.Devices.DigitalWindowBounds** result);
                [overload("Configure")] HRESULT Configure([in] Windows.Media.Devices.DigitalWindowMode digitalWindowMode);
                [overload("Configure")] HRESULT ConfigureWithBounds([in] Windows.Media.Devices.DigitalWindowMode digitalWindowMode, [in] Windows.Media.Devices.DigitalWindowBounds* digitalWindowBounds);
                [propget] HRESULT SupportedCapabilities([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.DigitalWindowCapability*>** value);
                HRESULT GetCapabilityForSize([in] INT32 width, [in] INT32 height, [out] [retval] Windows.Media.Devices.DigitalWindowCapability** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.ExposureCompensationControl)]
            [uuid(81C8E834-DCEC-4011-A610-1F3847E64ACA)]
            interface IExposureCompensationControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT Min([out] [retval] FLOAT* value);
                [propget] HRESULT Max([out] [retval] FLOAT* value);
                [propget] HRESULT Step([out] [retval] FLOAT* value);
                [propget] HRESULT Value([out] [retval] FLOAT* value);
                HRESULT SetValueAsync([in] FLOAT value, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.ExposureControl)]
            [uuid(09E8CBE2-AD96-4F28-A0E0-96ED7E1B5FD2)]
            interface IExposureControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT Auto([out] [retval] boolean* value);
                HRESULT SetAutoAsync([in] boolean value, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                [propget] HRESULT Min([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT Max([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT Step([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT Value([out] [retval] Windows.Foundation.TimeSpan* value);
                HRESULT SetValueAsync([in] Windows.Foundation.TimeSpan shutterDuration, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.ExposurePriorityVideoControl)]
            [uuid(2CB240A3-5168-4271-9EA5-47621A98A352)]
            interface IExposurePriorityVideoControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT Enabled([out] [retval] boolean* value);
                [propput] HRESULT Enabled([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.FlashControl)]
            [uuid(DEF41DBE-7D68-45E3-8C0F-BE7BB32837D0)]
            interface IFlashControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT PowerSupported([out] [retval] boolean* value);
                [propget] HRESULT RedEyeReductionSupported([out] [retval] boolean* value);
                [propget] HRESULT Enabled([out] [retval] boolean* value);
                [propput] HRESULT Enabled([in] boolean value);
                [propget] HRESULT Auto([out] [retval] boolean* value);
                [propput] HRESULT Auto([in] boolean value);
                [propget] HRESULT RedEyeReduction([out] [retval] boolean* value);
                [propput] HRESULT RedEyeReduction([in] boolean value);
                [propget] HRESULT PowerPercent([out] [retval] FLOAT* value);
                [propput] HRESULT PowerPercent([in] FLOAT value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.FlashControl)]
            [uuid(7D29CC9E-75E1-4AF7-BD7D-4E38E1C06CD6)]
            interface IFlashControl2 : IInspectable
            {
                [propget] HRESULT AssistantLightSupported([out] [retval] boolean* value);
                [propget] HRESULT AssistantLightEnabled([out] [retval] boolean* value);
                [propput] HRESULT AssistantLightEnabled([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.FocusControl)]
            [uuid(C0D889F6-5228-4453-B153-85606592B238)]
            interface IFocusControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT SupportedPresets([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.FocusPreset>** value);
                [propget] HRESULT Preset([out] [retval] Windows.Media.Devices.FocusPreset* value);
                [overload("SetPresetAsync")] HRESULT SetPresetAsync([in] Windows.Media.Devices.FocusPreset preset, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                [overload("SetPresetAsync")] HRESULT SetPresetWithCompletionOptionAsync([in] Windows.Media.Devices.FocusPreset preset, [in] boolean completeBeforeFocus, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                [propget] HRESULT Min([out] [retval] UINT32* value);
                [propget] HRESULT Max([out] [retval] UINT32* value);
                [propget] HRESULT Step([out] [retval] UINT32* value);
                [propget] HRESULT Value([out] [retval] UINT32* value);
                HRESULT SetValueAsync([in] UINT32 focus, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                HRESULT FocusAsync([out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.FocusControl)]
            [uuid(3F7CFF48-C534-4E9E-94C3-52EF2AFD5D07)]
            interface IFocusControl2 : IInspectable
            {
                [propget] HRESULT FocusChangedSupported([out] [retval] boolean* value);
                [propget] HRESULT WaitForFocusSupported([out] [retval] boolean* value);
                [propget] HRESULT SupportedFocusModes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.FocusMode>** value);
                [propget] HRESULT SupportedFocusDistances([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.ManualFocusDistance>** value);
                [propget] HRESULT SupportedFocusRanges([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.AutoFocusRange>** value);
                [propget] HRESULT Mode([out] [retval] Windows.Media.Devices.FocusMode* value);
                [propget] HRESULT FocusState([out] [retval] Windows.Media.Devices.MediaCaptureFocusState* value);
                HRESULT UnlockAsync([out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                HRESULT LockAsync([out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                HRESULT Configure([in] Windows.Media.Devices.FocusSettings* settings);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.FocusSettings)]
            [uuid(79958F6B-3263-4275-85D6-AEAE891C96EE)]
            interface IFocusSettings : IInspectable
            {
                [propget] HRESULT Mode([out] [retval] Windows.Media.Devices.FocusMode* value);
                [propput] HRESULT Mode([in] Windows.Media.Devices.FocusMode value);
                [propget] HRESULT AutoFocusRange([out] [retval] Windows.Media.Devices.AutoFocusRange* value);
                [propput] HRESULT AutoFocusRange([in] Windows.Media.Devices.AutoFocusRange value);
                [propget] HRESULT Value([out] [retval] Windows.Foundation.IReference<UINT32>** value);
                [propput] HRESULT Value([in] Windows.Foundation.IReference<UINT32>* value);
                [propget] HRESULT Distance([out] [retval] Windows.Foundation.IReference<Windows.Media.Devices.ManualFocusDistance>** value);
                [propput] HRESULT Distance([in] Windows.Foundation.IReference<Windows.Media.Devices.ManualFocusDistance>* value);
                [propget] HRESULT WaitForFocus([out] [retval] boolean* value);
                [propput] HRESULT WaitForFocus([in] boolean value);
                [propget] HRESULT DisableDriverFallback([out] [retval] boolean* value);
                [propput] HRESULT DisableDriverFallback([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.HdrVideoControl)]
            [uuid(55D8E2D0-30C0-43BF-9B9A-9799D70CED94)]
            interface IHdrVideoControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT SupportedModes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.HdrVideoMode>** value);
                [propget] HRESULT Mode([out] [retval] Windows.Media.Devices.HdrVideoMode* value);
                [propput] HRESULT Mode([in] Windows.Media.Devices.HdrVideoMode value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Media.Devices.InfraredTorchControl)]
            [uuid(1CBA2C83-6CB6-5A04-A6FC-3BE7B33FF056)]
            interface IInfraredTorchControl : IInspectable
            {
                [propget] HRESULT IsSupported([out] [retval] boolean* value);
                [propget] HRESULT SupportedModes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.InfraredTorchMode>** value);
                [propget] HRESULT CurrentMode([out] [retval] Windows.Media.Devices.InfraredTorchMode* value);
                [propput] HRESULT CurrentMode([in] Windows.Media.Devices.InfraredTorchMode value);
                [propget] HRESULT MinPower([out] [retval] INT32* value);
                [propget] HRESULT MaxPower([out] [retval] INT32* value);
                [propget] HRESULT PowerStep([out] [retval] INT32* value);
                [propget] HRESULT Power([out] [retval] INT32* value);
                [propput] HRESULT Power([in] INT32 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.IsoSpeedControl)]
            [uuid(27B6C322-25AD-4F1B-AAAB-524AB376CA33)]
            interface IIsoSpeedControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [deprecated("SupportedPresets may not be available in future versions of Windows Phone. Starting with Windows Phone 8.1, use SetAutoAsync, Auto, SetValueAsync, and Value instead", deprecate, Windows.Foundation.UniversalApiContract, 1.0)] [propget] HRESULT SupportedPresets([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.IsoSpeedPreset>** value);
                [deprecated("Preset may not be available in future versions of Windows Phone. Starting with Windows Phone 8.1, use SetAutoAsync, Auto, SetValueAsync, and Value instead", deprecate, Windows.Foundation.UniversalApiContract, 1.0)] [propget] HRESULT Preset([out] [retval] Windows.Media.Devices.IsoSpeedPreset* value);
                [deprecated("SetPresetAsync may not be available in future versions of Windows Phone. Starting with Windows Phone 8.1, use SetAutoAsync, Auto, SetValueAsync, and Value instead", deprecate, Windows.Foundation.UniversalApiContract, 1.0)] HRESULT SetPresetAsync([in] Windows.Media.Devices.IsoSpeedPreset preset, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.IsoSpeedControl)]
            [uuid(6F1578F2-6D77-4F8A-8C2F-6130B6395053)]
            interface IIsoSpeedControl2 : IInspectable
            {
                [propget] HRESULT Min([out] [retval] UINT32* value);
                [propget] HRESULT Max([out] [retval] UINT32* value);
                [propget] HRESULT Step([out] [retval] UINT32* value);
                [propget] HRESULT Value([out] [retval] UINT32* value);
                HRESULT SetValueAsync([in] UINT32 isoSpeed, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                [propget] HRESULT Auto([out] [retval] boolean* value);
                HRESULT SetAutoAsync([out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
            }

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.KeypadPressedEventArgs)]
            [uuid(D3A43900-B4FA-49CD-9442-89AF6568F601)]
            interface IKeypadPressedEventArgs : IInspectable
            {
                [propget] HRESULT TelephonyKey([out] [retval] Windows.Media.Devices.TelephonyKey* telephonyKey);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.LowLagPhotoControl)]
            [uuid(6D5C4DD0-FADF-415D-AEE6-3BAA529300C9)]
            interface ILowLagPhotoControl : IInspectable
            {
                HRESULT GetHighestConcurrentFrameRate([in] Windows.Media.MediaProperties.IMediaEncodingProperties* captureProperties, [out] [retval] Windows.Media.MediaProperties.MediaRatio** value);
                HRESULT GetCurrentFrameRate([out] [retval] Windows.Media.MediaProperties.MediaRatio** value);
                [propget] HRESULT ThumbnailEnabled([out] [retval] boolean* value);
                [propput] HRESULT ThumbnailEnabled([in] boolean value);
                [propget] HRESULT ThumbnailFormat([out] [retval] Windows.Media.MediaProperties.MediaThumbnailFormat* value);
                [propput] HRESULT ThumbnailFormat([in] Windows.Media.MediaProperties.MediaThumbnailFormat value);
                [propget] HRESULT DesiredThumbnailSize([out] [retval] UINT32* value);
                [propput] HRESULT DesiredThumbnailSize([in] UINT32 value);
                [propget] HRESULT HardwareAcceleratedThumbnailSupported([out] [retval] UINT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.LowLagPhotoSequenceControl)]
            [uuid(3DCF909D-6D16-409C-BAFE-B9A594C6FDE6)]
            interface ILowLagPhotoSequenceControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT MaxPastPhotos([out] [retval] UINT32* value);
                [propget] HRESULT MaxPhotosPerSecond([out] [retval] FLOAT* value);
                [propget] HRESULT PastPhotoLimit([out] [retval] UINT32* value);
                [propput] HRESULT PastPhotoLimit([in] UINT32 value);
                [propget] HRESULT PhotosPerSecondLimit([out] [retval] FLOAT* value);
                [propput] HRESULT PhotosPerSecondLimit([in] FLOAT value);
                HRESULT GetHighestConcurrentFrameRate([in] Windows.Media.MediaProperties.IMediaEncodingProperties* captureProperties, [out] [retval] Windows.Media.MediaProperties.MediaRatio** value);
                HRESULT GetCurrentFrameRate([out] [retval] Windows.Media.MediaProperties.MediaRatio** value);
                [propget] HRESULT ThumbnailEnabled([out] [retval] boolean* value);
                [propput] HRESULT ThumbnailEnabled([in] boolean value);
                [propget] HRESULT ThumbnailFormat([out] [retval] Windows.Media.MediaProperties.MediaThumbnailFormat* value);
                [propput] HRESULT ThumbnailFormat([in] Windows.Media.MediaProperties.MediaThumbnailFormat value);
                [propget] HRESULT DesiredThumbnailSize([out] [retval] UINT32* value);
                [propput] HRESULT DesiredThumbnailSize([in] UINT32 value);
                [propget] HRESULT HardwareAcceleratedThumbnailSupported([out] [retval] UINT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.MediaDeviceControl)]
            [uuid(EFA8DFA9-6F75-4863-BA0B-583F3036B4DE)]
            interface IMediaDeviceControl : IInspectable
            {
                [propget] HRESULT Capabilities([out] [retval] Windows.Media.Devices.MediaDeviceControlCapabilities** value);
                HRESULT TryGetValue([out] DOUBLE* value, [out] [retval] boolean* succeeded);
                HRESULT TrySetValue([in] DOUBLE value, [out] [retval] boolean* succeeded);
                HRESULT TryGetAuto([out] boolean* value, [out] [retval] boolean* succeeded);
                HRESULT TrySetAuto([in] boolean value, [out] [retval] boolean* succeeded);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.MediaDeviceControlCapabilities)]
            [uuid(23005816-EB85-43E2-B92B-8240D5EE70EC)]
            interface IMediaDeviceControlCapabilities : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT Min([out] [retval] DOUBLE* value);
                [propget] HRESULT Max([out] [retval] DOUBLE* value);
                [propget] HRESULT Step([out] [retval] DOUBLE* value);
                [propget] HRESULT Default([out] [retval] DOUBLE* value);
                [propget] HRESULT AutoModeSupported([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [uuid(F6F8F5CE-209A-48FB-86FC-D44578F317E6)]
            interface IMediaDeviceController : IInspectable
            {
                HRESULT GetAvailableMediaStreamProperties([in] Windows.Media.Capture.MediaStreamType mediaStreamType, [out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.MediaProperties.IMediaEncodingProperties*>** value);
                HRESULT GetMediaStreamProperties([in] Windows.Media.Capture.MediaStreamType mediaStreamType, [out] [retval] Windows.Media.MediaProperties.IMediaEncodingProperties** value);
                HRESULT SetMediaStreamPropertiesAsync([in] Windows.Media.Capture.MediaStreamType mediaStreamType, [in] Windows.Media.MediaProperties.IMediaEncodingProperties* mediaEncodingProperties, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.MediaDevice)]
            [uuid(AA2D9A40-909F-4BBA-BF8B-0C0D296F14F0)]
            interface IMediaDeviceStatics : IInspectable
            {
                HRESULT GetAudioCaptureSelector([out] [retval] HSTRING* selector);
                HRESULT GetAudioRenderSelector([out] [retval] HSTRING* selector);
                HRESULT GetVideoCaptureSelector([out] [retval] HSTRING* selector);
                HRESULT GetDefaultAudioCaptureId([in] Windows.Media.Devices.AudioDeviceRole role, [out] [retval] HSTRING* deviceId);
                HRESULT GetDefaultAudioRenderId([in] Windows.Media.Devices.AudioDeviceRole role, [out] [retval] HSTRING* deviceId);
                [eventadd] HRESULT DefaultAudioCaptureDeviceChanged([in] Windows.Foundation.TypedEventHandler<IInspectable*, Windows.Media.Devices.DefaultAudioCaptureDeviceChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT DefaultAudioCaptureDeviceChanged([in] EventRegistrationToken cookie);
                [eventadd] HRESULT DefaultAudioRenderDeviceChanged([in] Windows.Foundation.TypedEventHandler<IInspectable*, Windows.Media.Devices.DefaultAudioRenderDeviceChangedEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT DefaultAudioRenderDeviceChanged([in] EventRegistrationToken cookie);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Devices.ModuleCommandResult)]
            [uuid(520D1EB4-1374-4C7D-B1E4-39DCDF3EAE4E)]
            interface IModuleCommandResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Devices.SendCommandStatus* value);
                [propget] HRESULT Result([out] [retval] Windows.Storage.Streams.IBuffer** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.OpticalImageStabilizationControl)]
            [uuid(BFAD9C1D-00BC-423B-8EB2-A0178CA94247)]
            interface IOpticalImageStabilizationControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT SupportedModes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.OpticalImageStabilizationMode>** value);
                [propget] HRESULT Mode([out] [retval] Windows.Media.Devices.OpticalImageStabilizationMode* value);
                [propput] HRESULT Mode([in] Windows.Media.Devices.OpticalImageStabilizationMode value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Media.Devices.PanelBasedOptimizationControl)]
            [uuid(33323223-6247-5419-A5A4-3D808645D917)]
            interface IPanelBasedOptimizationControl : IInspectable
            {
                [propget] HRESULT IsSupported([out] [retval] boolean* value);
                [propget] HRESULT Panel([out] [retval] Windows.Devices.Enumeration.Panel* value);
                [propput] HRESULT Panel([in] Windows.Devices.Enumeration.Panel value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.PhotoConfirmationControl)]
            [uuid(C8F3F363-FF5E-4582-A9A8-0550F85A4A76)]
            interface IPhotoConfirmationControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* pbSupported);
                [propget] HRESULT Enabled([out] [retval] boolean* value);
                [propput] HRESULT Enabled([in] boolean value);
                [propget] HRESULT PixelFormat([out] [retval] Windows.Media.MediaProperties.MediaPixelFormat* format);
                [propput] HRESULT PixelFormat([in] Windows.Media.MediaProperties.MediaPixelFormat format);
            }

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.RedialRequestedEventArgs)]
            [uuid(7EB55209-76AB-4C31-B40E-4B58379D580C)]
            interface IRedialRequestedEventArgs : IInspectable
            {
                HRESULT Handled();
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.RegionOfInterest)]
            [uuid(E5ECC834-CE66-4E05-A78F-CF391A5EC2D1)]
            interface IRegionOfInterest : IInspectable
            {
                [propget] HRESULT AutoFocusEnabled([out] [retval] boolean* value);
                [propput] HRESULT AutoFocusEnabled([in] boolean value);
                [propget] HRESULT AutoWhiteBalanceEnabled([out] [retval] boolean* value);
                [propput] HRESULT AutoWhiteBalanceEnabled([in] boolean value);
                [propget] HRESULT AutoExposureEnabled([out] [retval] boolean* value);
                [propput] HRESULT AutoExposureEnabled([in] boolean value);
                [propget] HRESULT Bounds([out] [retval] Windows.Foundation.Rect* value);
                [propput] HRESULT Bounds([in] Windows.Foundation.Rect value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.RegionOfInterest)]
            [uuid(19FE2A91-73AA-4D51-8A9D-56CCF7DB7F54)]
            interface IRegionOfInterest2 : IInspectable
            {
                [propget] HRESULT Type([out] [retval] Windows.Media.Devices.RegionOfInterestType* value);
                [propput] HRESULT Type([in] Windows.Media.Devices.RegionOfInterestType value);
                [propget] HRESULT BoundsNormalized([out] [retval] boolean* value);
                [propput] HRESULT BoundsNormalized([in] boolean value);
                [propget] HRESULT Weight([out] [retval] UINT32* value);
                [propput] HRESULT Weight([in] UINT32 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.RegionsOfInterestControl)]
            [uuid(C323F527-AB0B-4558-8B5B-DF5693DB0378)]
            interface IRegionsOfInterestControl : IInspectable
            {
                [propget] HRESULT MaxRegions([out] [retval] UINT32* value);
                [overload("SetRegionsAsync")] HRESULT SetRegionsAsync([in] Windows.Foundation.Collections.IIterable<Windows.Media.Devices.RegionOfInterest*>* regions, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                [overload("SetRegionsAsync")] HRESULT SetRegionsWithLockAsync([in] Windows.Foundation.Collections.IIterable<Windows.Media.Devices.RegionOfInterest*>* regions, [in] boolean lockValues, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                HRESULT ClearRegionsAsync([out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                [propget] HRESULT AutoFocusSupported([out] [retval] boolean* value);
                [propget] HRESULT AutoWhiteBalanceSupported([out] [retval] boolean* value);
                [propget] HRESULT AutoExposureSupported([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.SceneModeControl)]
            [uuid(D48E5AF7-8D59-4854-8C62-12C70BA89B7C)]
            interface ISceneModeControl : IInspectable
            {
                [propget] HRESULT SupportedModes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.CaptureSceneMode>** value);
                [propget] HRESULT Value([out] [retval] Windows.Media.Devices.CaptureSceneMode* value);
                HRESULT SetValueAsync([in] Windows.Media.Devices.CaptureSceneMode sceneMode, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.TorchControl)]
            [uuid(A6053665-8250-416C-919A-724296AFA306)]
            interface ITorchControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT PowerSupported([out] [retval] boolean* value);
                [propget] HRESULT Enabled([out] [retval] boolean* value);
                [propput] HRESULT Enabled([in] boolean value);
                [propget] HRESULT PowerPercent([out] [retval] FLOAT* value);
                [propput] HRESULT PowerPercent([in] FLOAT value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceController)]
            [uuid(99555575-2E2E-40B8-B6C7-F82D10013210)]
            interface IVideoDeviceController : IInspectable
                requires
                    Windows.Media.Devices.IMediaDeviceController
            {
                [propget] HRESULT Brightness([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT Contrast([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT Hue([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT WhiteBalance([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT BacklightCompensation([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT Pan([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT Tilt([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT Zoom([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT Roll([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT Exposure([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                [propget] HRESULT Focus([out] [retval] Windows.Media.Devices.MediaDeviceControl** value);
                HRESULT TrySetPowerlineFrequency([in] Windows.Media.Capture.PowerlineFrequency value, [out] [retval] boolean* succeeded);
                HRESULT TryGetPowerlineFrequency([out] Windows.Media.Capture.PowerlineFrequency* value, [out] [retval] boolean* succeeded);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyResult)]
            [uuid(C5D88395-6ED5-4790-8B5D-0EF13935D0F8)]
            interface IVideoDeviceControllerGetDevicePropertyResult : IInspectable
            {
                [propget] HRESULT Status([out] [retval] Windows.Media.Devices.VideoDeviceControllerGetDevicePropertyStatus* value);
                [propget] HRESULT Value([out] [retval] IInspectable** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Media.Devices.VideoTemporalDenoisingControl)]
            [uuid(7AB34735-3E2A-4A32-BAFF-4358C4FBDD57)]
            interface IVideoTemporalDenoisingControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT SupportedModes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.VideoTemporalDenoisingMode>** value);
                [propget] HRESULT Mode([out] [retval] Windows.Media.Devices.VideoTemporalDenoisingMode* value);
                [propput] HRESULT Mode([in] Windows.Media.Devices.VideoTemporalDenoisingMode value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.WhiteBalanceControl)]
            [uuid(781F047E-7162-49C8-A8F9-9481C565363E)]
            interface IWhiteBalanceControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT Preset([out] [retval] Windows.Media.Devices.ColorTemperaturePreset* value);
                HRESULT SetPresetAsync([in] Windows.Media.Devices.ColorTemperaturePreset preset, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
                [propget] HRESULT Min([out] [retval] UINT32* value);
                [propget] HRESULT Max([out] [retval] UINT32* value);
                [propget] HRESULT Step([out] [retval] UINT32* value);
                [propget] HRESULT Value([out] [retval] UINT32* value);
                HRESULT SetValueAsync([in] UINT32 temperature, [out] [retval] Windows.Foundation.IAsyncAction** asyncInfo);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.ZoomControl)]
            [uuid(3A1E0B12-32DA-4C17-BFD7-8D0C73C8F5A5)]
            interface IZoomControl : IInspectable
            {
                [propget] HRESULT Supported([out] [retval] boolean* value);
                [propget] HRESULT Min([out] [retval] FLOAT* value);
                [propget] HRESULT Max([out] [retval] FLOAT* value);
                [propget] HRESULT Step([out] [retval] FLOAT* value);
                [propget] HRESULT Value([out] [retval] FLOAT* value);
                [propput] HRESULT Value([in] FLOAT value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.ZoomControl)]
            [uuid(69843DB0-2E99-4641-8529-184F319D1671)]
            interface IZoomControl2 : IInspectable
            {
                [propget] HRESULT SupportedModes([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Media.Devices.ZoomTransitionMode>** value);
                [propget] HRESULT Mode([out] [retval] Windows.Media.Devices.ZoomTransitionMode* value);
                HRESULT Configure([in] Windows.Media.Devices.ZoomSettings* settings);
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [exclusiveto(Windows.Media.Devices.ZoomSettings)]
            [uuid(6AD66B24-14B4-4BFD-B18F-88FE24463B52)]
            interface IZoomSettings : IInspectable
            {
                [propget] HRESULT Mode([out] [retval] Windows.Media.Devices.ZoomTransitionMode* value);
                [propput] HRESULT Mode([in] Windows.Media.Devices.ZoomTransitionMode value);
                [propget] HRESULT Value([out] [retval] FLOAT* value);
                [propput] HRESULT Value([in] FLOAT value);
            }

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

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

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass AudioDeviceController
            {
                [default] interface Windows.Media.Devices.IAudioDeviceController;
                interface Windows.Media.Devices.IMediaDeviceController;
                [contract(Windows.Foundation.UniversalApiContract, 19.0)] interface Windows.Media.Devices.IAudioDeviceController2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            runtimeclass AudioDeviceModule
            {
                [default] interface Windows.Media.Devices.IAudioDeviceModule;
            }

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

            [activatable(Windows.Media.Devices.IAudioDeviceModulesManagerFactory, Windows.Foundation.UniversalApiContract, 4.0)]
            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AudioDeviceModulesManager
            {
                [default] interface Windows.Media.Devices.IAudioDeviceModulesManager;
            }

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Devices.ICallControlStatics, Windows.Media.Devices.CallControlContract, 1.0)]
            [threading(both)]
            runtimeclass CallControl
            {
                [default] interface Windows.Media.Devices.ICallControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [marshaling_behavior(agile)]
            runtimeclass CameraOcclusionInfo
            {
                [default] interface Windows.Media.Devices.ICameraOcclusionInfo;
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [marshaling_behavior(agile)]
            runtimeclass CameraOcclusionState
            {
                [default] interface Windows.Media.Devices.ICameraOcclusionState;
            }

            [contract(Windows.Foundation.UniversalApiContract, 13.0)]
            [marshaling_behavior(agile)]
            runtimeclass CameraOcclusionStateChangedEventArgs
            {
                [default] interface Windows.Media.Devices.ICameraOcclusionStateChangedEventArgs;
            }

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

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

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass DialRequestedEventArgs
            {
                [default] interface Windows.Media.Devices.IDialRequestedEventArgs;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 12.0)]
            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass DigitalWindowBounds
            {
                [default] interface Windows.Media.Devices.IDigitalWindowBounds;
            }

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [marshaling_behavior(agile)]
            runtimeclass DigitalWindowCapability
            {
                [default] interface Windows.Media.Devices.IDigitalWindowCapability;
            }

            [contract(Windows.Foundation.UniversalApiContract, 12.0)]
            [marshaling_behavior(agile)]
            runtimeclass DigitalWindowControl
            {
                [default] interface Windows.Media.Devices.IDigitalWindowControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass ExposureCompensationControl
            {
                [default] interface Windows.Media.Devices.IExposureCompensationControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass ExposureControl
            {
                [default] interface Windows.Media.Devices.IExposureControl;
            }

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

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass FlashControl
            {
                [default] interface Windows.Media.Devices.IFlashControl;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Devices.IFlashControl2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass FocusControl
            {
                [default] interface Windows.Media.Devices.IFocusControl;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Devices.IFocusControl2;
            }

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

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

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass InfraredTorchControl
            {
                [default] interface Windows.Media.Devices.IInfraredTorchControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass IsoSpeedControl
            {
                [default] interface Windows.Media.Devices.IIsoSpeedControl;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Devices.IIsoSpeedControl2;
            }

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass KeypadPressedEventArgs
            {
                [default] interface Windows.Media.Devices.IKeypadPressedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass LowLagPhotoControl
            {
                [default] interface Windows.Media.Devices.ILowLagPhotoControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass LowLagPhotoSequenceControl
            {
                [default] interface Windows.Media.Devices.ILowLagPhotoSequenceControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Media.Devices.IMediaDeviceStatics, Windows.Foundation.UniversalApiContract, 1.0)]
            [threading(mta)]
            runtimeclass MediaDevice
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass MediaDeviceControl
            {
                [default] interface Windows.Media.Devices.IMediaDeviceControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass MediaDeviceControlCapabilities
            {
                [default] interface Windows.Media.Devices.IMediaDeviceControlCapabilities;
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass ModuleCommandResult
            {
                [default] interface Windows.Media.Devices.IModuleCommandResult;
            }

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

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass PanelBasedOptimizationControl
            {
                [default] interface Windows.Media.Devices.IPanelBasedOptimizationControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass PhotoConfirmationControl
            {
                [default] interface Windows.Media.Devices.IPhotoConfirmationControl;
            }

            [contract(Windows.Media.Devices.CallControlContract, 1.0)]
            [marshaling_behavior(agile)]
            runtimeclass RedialRequestedEventArgs
            {
                [default] interface Windows.Media.Devices.IRedialRequestedEventArgs;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 1.0)]
            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass RegionOfInterest
            {
                [default] interface Windows.Media.Devices.IRegionOfInterest;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Devices.IRegionOfInterest2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass RegionsOfInterestControl
            {
                [default] interface Windows.Media.Devices.IRegionsOfInterestControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass SceneModeControl
            {
                [default] interface Windows.Media.Devices.ISceneModeControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass TorchControl
            {
                [default] interface Windows.Media.Devices.ITorchControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass VideoDeviceController
            {
                [default] interface Windows.Media.Devices.IVideoDeviceController;
                interface Windows.Media.Devices.IMediaDeviceController;
                interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController2;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController3;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController4;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController5;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController6;
                [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController7;
                [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController8;
                [contract(Windows.Foundation.UniversalApiContract, 12.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController9;
                [contract(Windows.Foundation.UniversalApiContract, 13.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController10;
                [contract(Windows.Foundation.UniversalApiContract, 15.0)] interface Windows.Media.Devices.IAdvancedVideoCaptureDeviceController11;
            }

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

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass VideoTemporalDenoisingControl
            {
                [default] interface Windows.Media.Devices.IVideoTemporalDenoisingControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass WhiteBalanceControl
            {
                [default] interface Windows.Media.Devices.IWhiteBalanceControl;
            }

            [contract(Windows.Foundation.UniversalApiContract, 1.0)]
            [marshaling_behavior(standard)]
            [threading(mta)]
            runtimeclass ZoomControl
            {
                [default] interface Windows.Media.Devices.IZoomControl;
                [contract(Windows.Foundation.UniversalApiContract, 1.0)] interface Windows.Media.Devices.IZoomControl2;
            }

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