//
// 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.Foundation.Numerics.idl";
import "Windows.Graphics.DirectX.idl";
import "Windows.Graphics.DirectX.Direct3D11.idl";
import "Windows.Perception.idl";
import "Windows.Perception.Spatial.idl";
import "Windows.UI.Core.idl";

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        runtimeclass Deferral;

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

            typedef struct Quaternion Quaternion;

            typedef struct Vector2 Vector2;

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

        typedef struct Size Size;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace DirectX
        {
            namespace Direct3D11
            {
                interface IDirect3DDevice;

                interface IDirect3DSurface;
            }
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace DirectX
        {
            typedef enum DirectXPixelFormat DirectXPixelFormat;
        }
    }
}
namespace Windows
{
    namespace Perception
    {
        runtimeclass PerceptionTimestamp;
    }
}
namespace Windows
{
    namespace Perception
    {
        namespace Spatial
        {
            typedef struct SpatialBoundingFrustum SpatialBoundingFrustum;

            runtimeclass SpatialCoordinateSystem;

            runtimeclass SpatialLocator;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            runtimeclass CoreWindow;
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Holographic
        {
            typedef enum HolographicDepthReprojectionMethod HolographicDepthReprojectionMethod;

            typedef enum HolographicFramePresentResult HolographicFramePresentResult;

            typedef enum HolographicFramePresentWaitBehavior HolographicFramePresentWaitBehavior;

            typedef enum HolographicReprojectionMode HolographicReprojectionMode;

            typedef enum HolographicSpaceUserPresence HolographicSpaceUserPresence;

            typedef enum HolographicViewConfigurationKind HolographicViewConfigurationKind;

            typedef struct HolographicAdapterId HolographicAdapterId;

            typedef struct HolographicFrameId HolographicFrameId;

            typedef struct HolographicStereoTransform HolographicStereoTransform;

            interface IHolographicCamera;

            interface IHolographicCamera2;

            interface IHolographicCamera3;

            interface IHolographicCamera4;

            interface IHolographicCamera5;

            interface IHolographicCamera6;

            interface IHolographicCameraPose;

            interface IHolographicCameraPose2;

            interface IHolographicCameraRenderingParameters;

            interface IHolographicCameraRenderingParameters2;

            interface IHolographicCameraRenderingParameters3;

            interface IHolographicCameraRenderingParameters4;

            interface IHolographicCameraViewportParameters;

            interface IHolographicDisplay;

            interface IHolographicDisplay2;

            interface IHolographicDisplay3;

            interface IHolographicDisplayStatics;

            interface IHolographicFrame;

            interface IHolographicFrame2;

            interface IHolographicFrame3;

            interface IHolographicFramePrediction;

            interface IHolographicFramePresentationMonitor;

            interface IHolographicFramePresentationReport;

            interface IHolographicFrameRenderingReport;

            interface IHolographicFrameScanoutMonitor;

            interface IHolographicFrameScanoutReport;

            interface IHolographicQuadLayer;

            interface IHolographicQuadLayerFactory;

            interface IHolographicQuadLayerUpdateParameters;

            interface IHolographicQuadLayerUpdateParameters2;

            interface IHolographicSpace;

            interface IHolographicSpace2;

            interface IHolographicSpace3;

            interface IHolographicSpaceCameraAddedEventArgs;

            interface IHolographicSpaceCameraRemovedEventArgs;

            interface IHolographicSpaceStatics;

            interface IHolographicSpaceStatics2;

            interface IHolographicSpaceStatics3;

            interface IHolographicViewConfiguration;

            interface IHolographicViewConfiguration2;

            runtimeclass HolographicCamera;

            runtimeclass HolographicCameraPose;

            runtimeclass HolographicCameraRenderingParameters;

            runtimeclass HolographicCameraViewportParameters;

            runtimeclass HolographicDisplay;

            runtimeclass HolographicFrame;

            runtimeclass HolographicFramePrediction;

            runtimeclass HolographicFramePresentationMonitor;

            runtimeclass HolographicFramePresentationReport;

            runtimeclass HolographicFrameRenderingReport;

            runtimeclass HolographicFrameScanoutMonitor;

            runtimeclass HolographicFrameScanoutReport;

            runtimeclass HolographicQuadLayer;

            runtimeclass HolographicQuadLayerUpdateParameters;

            runtimeclass HolographicSpace;

            runtimeclass HolographicSpaceCameraAddedEventArgs;

            runtimeclass HolographicSpaceCameraRemovedEventArgs;

            runtimeclass HolographicViewConfiguration;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace Graphics
    {
        namespace Holographic
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Holographic.HolographicCamera*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Holographic.HolographicCameraPose*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Holographic.HolographicDepthReprojectionMethod>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Holographic.HolographicFramePresentationReport*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Holographic.HolographicFrameScanoutReport*>;

                interface Windows.Foundation.Collections.IIterable<Windows.Graphics.Holographic.HolographicQuadLayer*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Holographic.HolographicCamera*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Holographic.HolographicCameraPose*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Holographic.HolographicDepthReprojectionMethod>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Holographic.HolographicFramePresentationReport*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Holographic.HolographicFrameScanoutReport*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Graphics.Holographic.HolographicQuadLayer*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCamera*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCameraPose*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicDepthReprojectionMethod>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicFramePresentationReport*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicFrameScanoutReport*>;

                interface Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicQuadLayer*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Holographic.HolographicFrameScanoutReport*>;

                interface Windows.Foundation.Collections.IVector<Windows.Graphics.Holographic.HolographicQuadLayer*>;

                interface Windows.Foundation.IReference<Windows.Graphics.Holographic.HolographicStereoTransform>;

                interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace*, Windows.Graphics.Holographic.HolographicSpaceCameraAddedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace*, Windows.Graphics.Holographic.HolographicSpaceCameraRemovedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace Graphics
    {
        namespace Holographic
        {
            [contract(Windows.Foundation.UniversalApiContract, 11.0)]
            enum HolographicDepthReprojectionMethod
            {
                DepthReprojection = 0,
                AutoPlanar        = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum HolographicFramePresentResult
            {
                Success       = 0,
                DeviceRemoved = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum HolographicFramePresentWaitBehavior
            {
                WaitForFrameToFinish      = 0,
                DoNotWaitForFrameToFinish = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            enum HolographicReprojectionMode
            {
                PositionAndOrientation = 0,
                OrientationOnly        = 1,
                Disabled               = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            enum HolographicSpaceUserPresence
            {
                Absent         = 0,
                PresentPassive = 1,
                PresentActive  = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            enum HolographicViewConfigurationKind
            {
                Display          = 0,
                PhotoVideoCamera = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            struct HolographicAdapterId
            {
                UINT32 LowPart;
                INT32 HighPart;
            };

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            struct HolographicFrameId
            {
                UINT64 Value;
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            struct HolographicStereoTransform
            {
                Windows.Foundation.Numerics.Matrix4x4 Left;
                Windows.Foundation.Numerics.Matrix4x4 Right;
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCamera)]
            [uuid(E4E98445-9BED-4980-9BA0-E87680D1CB74)]
            interface IHolographicCamera : IInspectable
            {
                [propget] HRESULT RenderTargetSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT ViewportScaleFactor([out] [retval] DOUBLE* value);
                [propput] HRESULT ViewportScaleFactor([in] DOUBLE value);
                [propget] HRESULT IsStereo([out] [retval] boolean* value);
                [propget] HRESULT Id([out] [retval] UINT32* value);
                HRESULT SetNearPlaneDistance([in] DOUBLE value);
                HRESULT SetFarPlaneDistance([in] DOUBLE value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCamera)]
            [uuid(B55B9F1A-BA8C-4F84-AD79-2E7E1E2450F3)]
            interface IHolographicCamera2 : IInspectable
                requires
                    Windows.Graphics.Holographic.IHolographicCamera
            {
                [propget] HRESULT LeftViewportParameters([out] [retval] Windows.Graphics.Holographic.HolographicCameraViewportParameters** result);
                [propget] HRESULT RightViewportParameters([out] [retval] Windows.Graphics.Holographic.HolographicCameraViewportParameters** result);
                [propget] HRESULT Display([out] [retval] Windows.Graphics.Holographic.HolographicDisplay** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCamera)]
            [uuid(45AA4FB3-7B59-524E-4A3F-4A6AD6650477)]
            interface IHolographicCamera3 : IInspectable
                requires
                    Windows.Graphics.Holographic.IHolographicCamera2,
                    Windows.Graphics.Holographic.IHolographicCamera
            {
                [propget] HRESULT IsPrimaryLayerEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsPrimaryLayerEnabled([in] boolean value);
                [propget] HRESULT MaxQuadLayerCount([out] [retval] UINT32* value);
                [propget] HRESULT QuadLayers([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Holographic.HolographicQuadLayer*>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCamera)]
            [uuid(9A2531D6-4723-4F39-A9A5-9D05181D9B44)]
            interface IHolographicCamera4 : IInspectable
            {
                [propget] HRESULT CanOverrideViewport([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCamera)]
            [uuid(229706F2-628D-4EF5-9C08-A63FDD7787C6)]
            interface IHolographicCamera5 : IInspectable
            {
                [propget] HRESULT IsHardwareContentProtectionSupported([out] [retval] boolean* value);
                [propget] HRESULT IsHardwareContentProtectionEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsHardwareContentProtectionEnabled([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCamera)]
            [uuid(0209194F-632D-5154-AB52-0B5D15B12505)]
            interface IHolographicCamera6 : IInspectable
            {
                [propget] HRESULT ViewConfiguration([out] [retval] Windows.Graphics.Holographic.HolographicViewConfiguration** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCameraPose)]
            [uuid(0D7D7E30-12DE-45BD-912B-C7F6561599D1)]
            interface IHolographicCameraPose : IInspectable
            {
                [propget] HRESULT HolographicCamera([out] [retval] Windows.Graphics.Holographic.HolographicCamera** value);
                [propget] HRESULT Viewport([out] [retval] Windows.Foundation.Rect* value);
                HRESULT TryGetViewTransform([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.Foundation.IReference<Windows.Graphics.Holographic.HolographicStereoTransform>** value);
                [propget] HRESULT ProjectionTransform([out] [retval] Windows.Graphics.Holographic.HolographicStereoTransform* value);
                HRESULT TryGetCullingFrustum([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.Foundation.IReference<Windows.Perception.Spatial.SpatialBoundingFrustum>** value);
                HRESULT TryGetVisibleFrustum([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [out] [retval] Windows.Foundation.IReference<Windows.Perception.Spatial.SpatialBoundingFrustum>** value);
                [propget] HRESULT NearPlaneDistance([out] [retval] DOUBLE* value);
                [propget] HRESULT FarPlaneDistance([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCameraPose)]
            [uuid(232BE073-5D2D-4560-814E-2697C4FCE16B)]
            interface IHolographicCameraPose2 : IInspectable
            {
                HRESULT OverrideViewTransform([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [in] Windows.Graphics.Holographic.HolographicStereoTransform coordinateSystemToViewTransform);
                HRESULT OverrideProjectionTransform([in] Windows.Graphics.Holographic.HolographicStereoTransform projectionTransform);
                HRESULT OverrideViewport([in] Windows.Foundation.Rect leftViewport, [in] Windows.Foundation.Rect rightViewport);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCameraRenderingParameters)]
            [uuid(8EAC2ED1-5BF4-4E16-8236-AE0800C11D0D)]
            interface IHolographicCameraRenderingParameters : IInspectable
            {
                [overload("SetFocusPoint")] HRESULT SetFocusPoint([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [in] Windows.Foundation.Numerics.Vector3 position);
                [overload("SetFocusPoint")] HRESULT SetFocusPointWithNormal([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [in] Windows.Foundation.Numerics.Vector3 position, [in] Windows.Foundation.Numerics.Vector3 normal);
                [overload("SetFocusPoint")] HRESULT SetFocusPointWithNormalLinearVelocity([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [in] Windows.Foundation.Numerics.Vector3 position, [in] Windows.Foundation.Numerics.Vector3 normal, [in] Windows.Foundation.Numerics.Vector3 linearVelocity);
                [propget] HRESULT Direct3D11Device([out] [retval] Windows.Graphics.DirectX.Direct3D11.IDirect3DDevice** value);
                [propget] HRESULT Direct3D11BackBuffer([out] [retval] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCameraRenderingParameters)]
            [uuid(261270E3-B696-4634-94D6-BE0681643599)]
            interface IHolographicCameraRenderingParameters2 : IInspectable
                requires
                    Windows.Graphics.Holographic.IHolographicCameraRenderingParameters
            {
                [propget] HRESULT ReprojectionMode([out] [retval] Windows.Graphics.Holographic.HolographicReprojectionMode* value);
                [propput] HRESULT ReprojectionMode([in] Windows.Graphics.Holographic.HolographicReprojectionMode value);
                HRESULT CommitDirect3D11DepthBuffer([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCameraRenderingParameters)]
            [uuid(B1AA513F-136D-4B06-B9D4-E4B914CD0683)]
            interface IHolographicCameraRenderingParameters3 : IInspectable
                requires
                    Windows.Graphics.Holographic.IHolographicCameraRenderingParameters2,
                    Windows.Graphics.Holographic.IHolographicCameraRenderingParameters
            {
                [propget] HRESULT IsContentProtectionEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsContentProtectionEnabled([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 11.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCameraRenderingParameters)]
            [uuid(0878FA4C-E163-57DC-82B7-C406AB3E0537)]
            interface IHolographicCameraRenderingParameters4 : IInspectable
            {
                [propget] HRESULT DepthReprojectionMethod([out] [retval] Windows.Graphics.Holographic.HolographicDepthReprojectionMethod* value);
                [propput] HRESULT DepthReprojectionMethod([in] Windows.Graphics.Holographic.HolographicDepthReprojectionMethod value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicCameraViewportParameters)]
            [uuid(80CDF3F7-842A-41E1-93ED-5692AB1FBB10)]
            interface IHolographicCameraViewportParameters : IInspectable
            {
                [propget] HRESULT HiddenAreaMesh([out] UINT32* __valueSize, [out] [retval] [size_is(, *__valueSize)] Windows.Foundation.Numerics.Vector2** value);
                [propget] HRESULT VisibleAreaMesh([out] UINT32* __valueSize, [out] [retval] [size_is(, *__valueSize)] Windows.Foundation.Numerics.Vector2** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicDisplay)]
            [uuid(9ACEA414-1D9F-4090-A388-90C06F6EAE9C)]
            interface IHolographicDisplay : IInspectable
            {
                [propget] HRESULT DisplayName([out] [retval] HSTRING* value);
                [propget] HRESULT MaxViewportSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT IsStereo([out] [retval] boolean* value);
                [propget] HRESULT IsOpaque([out] [retval] boolean* value);
                [propget] HRESULT AdapterId([out] [retval] Windows.Graphics.Holographic.HolographicAdapterId* value);
                [propget] HRESULT SpatialLocator([out] [retval] Windows.Perception.Spatial.SpatialLocator** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicDisplay)]
            [uuid(75AC3F82-E755-436C-8D96-4D32D131473E)]
            interface IHolographicDisplay2 : IInspectable
            {
                [propget] HRESULT RefreshRate([out] [retval] DOUBLE* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicDisplay)]
            [uuid(FC4C6AC6-6480-5008-B29E-157D77C843F7)]
            interface IHolographicDisplay3 : IInspectable
            {
                HRESULT TryGetViewConfiguration([in] Windows.Graphics.Holographic.HolographicViewConfigurationKind kind, [out] [retval] Windows.Graphics.Holographic.HolographicViewConfiguration** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicDisplay)]
            [uuid(CB374983-E7B0-4841-8355-3AE5B536E9A4)]
            interface IHolographicDisplayStatics : IInspectable
            {
                HRESULT GetDefault([out] [retval] Windows.Graphics.Holographic.HolographicDisplay** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicFrame)]
            [uuid(C6988EB6-A8B9-3054-A6EB-D624B6536375)]
            interface IHolographicFrame : IInspectable
            {
                [propget] HRESULT AddedCameras([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCamera*>** value);
                [propget] HRESULT RemovedCameras([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCamera*>** value);
                HRESULT GetRenderingParameters([in] Windows.Graphics.Holographic.HolographicCameraPose* cameraPose, [out] [retval] Windows.Graphics.Holographic.HolographicCameraRenderingParameters** value);
                [propget] HRESULT Duration([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT CurrentPrediction([out] [retval] Windows.Graphics.Holographic.HolographicFramePrediction** value);
                HRESULT UpdateCurrentPrediction();
                [overload("PresentUsingCurrentPrediction")] HRESULT PresentUsingCurrentPrediction([out] [retval] Windows.Graphics.Holographic.HolographicFramePresentResult* result);
                [overload("PresentUsingCurrentPrediction")] HRESULT PresentUsingCurrentPredictionWithBehavior([in] Windows.Graphics.Holographic.HolographicFramePresentWaitBehavior waitBehavior, [out] [retval] Windows.Graphics.Holographic.HolographicFramePresentResult* result);
                HRESULT WaitForFrameToFinish();
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicFrame)]
            [uuid(283F37BF-3BF2-5E91-6633-870574E6F217)]
            interface IHolographicFrame2 : IInspectable
                requires
                    Windows.Graphics.Holographic.IHolographicFrame
            {
                HRESULT GetQuadLayerUpdateParameters([in] Windows.Graphics.Holographic.HolographicQuadLayer* layer, [out] [retval] Windows.Graphics.Holographic.HolographicQuadLayerUpdateParameters** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicFrame)]
            [uuid(E5E964C9-8A27-55D3-9F98-94530D369052)]
            interface IHolographicFrame3 : IInspectable
            {
                [propget] HRESULT Id([out] [retval] Windows.Graphics.Holographic.HolographicFrameId* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicFramePrediction)]
            [uuid(520F4DE1-5C0A-4E79-A81E-6ABE02BB2739)]
            interface IHolographicFramePrediction : IInspectable
            {
                [propget] HRESULT CameraPoses([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicCameraPose*>** value);
                [propget] HRESULT Timestamp([out] [retval] Windows.Perception.PerceptionTimestamp** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [deprecated("Use HolographicFrameScanoutMonitor instead of HolographicFramePresentationMonitor. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicFramePresentationMonitor)]
            [uuid(CA87256C-6FAE-428E-BB83-25DFEE51136B)]
            interface IHolographicFramePresentationMonitor : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                [deprecated("Use HolographicFrameScanoutMonitor instead of HolographicFramePresentationMonitor. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT ReadReports([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicFramePresentationReport*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [deprecated("Use IHolographicFrameScanoutReport instead of IHolographicFramePresentationReport. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicFramePresentationReport)]
            [uuid(80BAF614-F2F4-4C8A-8DE3-065C78F6D5DE)]
            interface IHolographicFramePresentationReport : IInspectable
            {
                [deprecated("Use IHolographicFrameScanoutReport instead of IHolographicFramePresentationReport. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propget] HRESULT CompositorGpuDuration([out] [retval] Windows.Foundation.TimeSpan* value);
                [deprecated("Use IHolographicFrameScanoutReport instead of IHolographicFramePresentationReport. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propget] HRESULT AppGpuDuration([out] [retval] Windows.Foundation.TimeSpan* value);
                [deprecated("Use IHolographicFrameScanoutReport instead of IHolographicFramePresentationReport. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propget] HRESULT AppGpuOverrun([out] [retval] Windows.Foundation.TimeSpan* value);
                [deprecated("Use IHolographicFrameScanoutReport instead of IHolographicFramePresentationReport. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propget] HRESULT MissedPresentationOpportunityCount([out] [retval] UINT32* value);
                [deprecated("Use IHolographicFrameScanoutReport instead of IHolographicFramePresentationReport. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] [propget] HRESULT PresentationCount([out] [retval] UINT32* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicFrameRenderingReport)]
            [uuid(05F32DE4-E384-51B3-B934-F0D3A0F78606)]
            interface IHolographicFrameRenderingReport : IInspectable
            {
                [propget] HRESULT FrameId([out] [retval] Windows.Graphics.Holographic.HolographicFrameId* value);
                [propget] HRESULT MissedLatchCount([out] [retval] UINT32* value);
                [propget] HRESULT SystemRelativeFrameReadyTime([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT SystemRelativeActualGpuFinishTime([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT SystemRelativeTargetLatchTime([out] [retval] Windows.Foundation.TimeSpan* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicFrameScanoutMonitor)]
            [uuid(7E83EFA9-843C-5401-8095-9BC1B8B08638)]
            interface IHolographicFrameScanoutMonitor : IInspectable
                requires
                    Windows.Foundation.IClosable
            {
                HRESULT ReadReports([out] [retval] Windows.Foundation.Collections.IVector<Windows.Graphics.Holographic.HolographicFrameScanoutReport*>** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicFrameScanoutReport)]
            [uuid(0EBBE606-03A0-5CA0-B46E-BBA068D7233F)]
            interface IHolographicFrameScanoutReport : IInspectable
            {
                [propget] HRESULT RenderingReport([out] [retval] Windows.Graphics.Holographic.HolographicFrameRenderingReport** value);
                [propget] HRESULT MissedScanoutCount([out] [retval] UINT32* value);
                [propget] HRESULT SystemRelativeLatchTime([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT SystemRelativeScanoutStartTime([out] [retval] Windows.Foundation.TimeSpan* value);
                [propget] HRESULT SystemRelativePhotonTime([out] [retval] Windows.Foundation.TimeSpan* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicQuadLayer)]
            [uuid(903460C9-C9D9-5D5C-41AC-A2D5AB0FD331)]
            interface IHolographicQuadLayer : IInspectable
            {
                [propget] HRESULT PixelFormat([out] [retval] Windows.Graphics.DirectX.DirectXPixelFormat* value);
                [propget] HRESULT Size([out] [retval] Windows.Foundation.Size* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicQuadLayer)]
            [uuid(A67538F3-5A14-5A10-489A-455065B37B76)]
            interface IHolographicQuadLayerFactory : IInspectable
            {
                HRESULT Create([in] Windows.Foundation.Size size, [out] [retval] Windows.Graphics.Holographic.HolographicQuadLayer** value);
                HRESULT CreateWithPixelFormat([in] Windows.Foundation.Size size, [in] Windows.Graphics.DirectX.DirectXPixelFormat pixelFormat, [out] [retval] Windows.Graphics.Holographic.HolographicQuadLayer** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicQuadLayerUpdateParameters)]
            [uuid(2B0EA3B0-798D-5BCA-55C2-2C0C762EBB08)]
            interface IHolographicQuadLayerUpdateParameters : IInspectable
            {
                HRESULT AcquireBufferToUpdateContent([out] [retval] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface** value);
                HRESULT UpdateViewport([in] Windows.Foundation.Rect value);
                HRESULT UpdateContentProtectionEnabled([in] boolean value);
                HRESULT UpdateExtents([in] Windows.Foundation.Numerics.Vector2 value);
                HRESULT UpdateLocationWithStationaryMode([in] Windows.Perception.Spatial.SpatialCoordinateSystem* coordinateSystem, [in] Windows.Foundation.Numerics.Vector3 position, [in] Windows.Foundation.Numerics.Quaternion orientation);
                HRESULT UpdateLocationWithDisplayRelativeMode([in] Windows.Foundation.Numerics.Vector3 position, [in] Windows.Foundation.Numerics.Quaternion orientation);
            }

            [contract(Windows.Foundation.UniversalApiContract, 7.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicQuadLayerUpdateParameters)]
            [uuid(4F33D32D-82C1-46C1-8980-3CB70D98182B)]
            interface IHolographicQuadLayerUpdateParameters2 : IInspectable
            {
                [propget] HRESULT CanAcquireWithHardwareProtection([out] [retval] boolean* value);
                HRESULT AcquireBufferToUpdateContentWithHardwareProtection([out] [retval] Windows.Graphics.DirectX.Direct3D11.IDirect3DSurface** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicSpace)]
            [uuid(4380DBA6-5E78-434F-807C-3433D1EFE8B7)]
            interface IHolographicSpace : IInspectable
            {
                [propget] HRESULT PrimaryAdapterId([out] [retval] Windows.Graphics.Holographic.HolographicAdapterId* value);
                HRESULT SetDirect3D11Device([in] Windows.Graphics.DirectX.Direct3D11.IDirect3DDevice* value);
                [eventadd] HRESULT CameraAdded([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace*, Windows.Graphics.Holographic.HolographicSpaceCameraAddedEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT CameraAdded([in] EventRegistrationToken cookie);
                [eventadd] HRESULT CameraRemoved([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace*, Windows.Graphics.Holographic.HolographicSpaceCameraRemovedEventArgs*>* handler, [out] [retval] EventRegistrationToken* cookie);
                [eventremove] HRESULT CameraRemoved([in] EventRegistrationToken cookie);
                HRESULT CreateNextFrame([out] [retval] Windows.Graphics.Holographic.HolographicFrame** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicSpace)]
            [uuid(4F81A9A8-B7FF-4883-9827-7D677287EA70)]
            interface IHolographicSpace2 : IInspectable
            {
                [propget] HRESULT UserPresence([out] [retval] Windows.Graphics.Holographic.HolographicSpaceUserPresence* value);
                [eventadd] HRESULT UserPresenceChanged([in] Windows.Foundation.TypedEventHandler<Windows.Graphics.Holographic.HolographicSpace*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT UserPresenceChanged([in] EventRegistrationToken token);
                HRESULT WaitForNextFrameReady();
                HRESULT WaitForNextFrameReadyWithHeadStart([in] Windows.Foundation.TimeSpan requestedHeadStartDuration);
                [deprecated("Use CreateFrameScanoutMonitor instead of CreateFramePresentationMonitor. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)] HRESULT CreateFramePresentationMonitor([in] UINT32 maxQueuedReports, [out] [retval] Windows.Graphics.Holographic.HolographicFramePresentationMonitor** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicSpace)]
            [uuid(DF1733D1-F224-587E-8D71-1E8FC8F07B1F)]
            interface IHolographicSpace3 : IInspectable
            {
                HRESULT CreateFrameScanoutMonitor([in] UINT32 maxQueuedReports, [out] [retval] Windows.Graphics.Holographic.HolographicFrameScanoutMonitor** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicSpaceCameraAddedEventArgs)]
            [uuid(58F1DA35-BBB3-3C8F-993D-6C80E7FEB99F)]
            interface IHolographicSpaceCameraAddedEventArgs : IInspectable
            {
                [propget] HRESULT Camera([out] [retval] Windows.Graphics.Holographic.HolographicCamera** value);
                HRESULT GetDeferral([out] [retval] Windows.Foundation.Deferral** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicSpaceCameraRemovedEventArgs)]
            [uuid(805444A8-F2AE-322E-8DA9-836A0A95A4C1)]
            interface IHolographicSpaceCameraRemovedEventArgs : IInspectable
            {
                [propget] HRESULT Camera([out] [retval] Windows.Graphics.Holographic.HolographicCamera** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicSpace)]
            [uuid(364E6064-C8F2-3BA1-8391-66B8489E67FD)]
            interface IHolographicSpaceStatics : IInspectable
            {
                HRESULT CreateForCoreWindow([in] Windows.UI.Core.CoreWindow* window, [out] [retval] Windows.Graphics.Holographic.HolographicSpace** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicSpace)]
            [uuid(0E777088-75FC-48AF-8758-0652F6F07C59)]
            interface IHolographicSpaceStatics2 : IInspectable
            {
                [propget] HRESULT IsSupported([out] [retval] boolean* value);
                [propget] HRESULT IsAvailable([out] [retval] boolean* value);
                [eventadd] HRESULT IsAvailableChanged([in] Windows.Foundation.EventHandler<IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT IsAvailableChanged([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicSpace)]
            [uuid(3B00DE3D-B1A3-4DFE-8E79-FEC5909E6DF8)]
            interface IHolographicSpaceStatics3 : IInspectable
            {
                [propget] HRESULT IsConfigured([out] [retval] boolean* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicViewConfiguration)]
            [uuid(5C1DE6E6-67E9-5004-B02C-67A3A122B576)]
            interface IHolographicViewConfiguration : IInspectable
            {
                [propget] HRESULT NativeRenderTargetSize([out] [retval] Windows.Foundation.Size* value);
                [propget] HRESULT RenderTargetSize([out] [retval] Windows.Foundation.Size* value);
                HRESULT RequestRenderTargetSize([in] Windows.Foundation.Size size, [out] [retval] Windows.Foundation.Size* result);
                [propget] HRESULT SupportedPixelFormats([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.DirectX.DirectXPixelFormat>** value);
                [propget] HRESULT PixelFormat([out] [retval] Windows.Graphics.DirectX.DirectXPixelFormat* value);
                [propput] HRESULT PixelFormat([in] Windows.Graphics.DirectX.DirectXPixelFormat value);
                [propget] HRESULT IsStereo([out] [retval] boolean* value);
                [propget] HRESULT RefreshRate([out] [retval] DOUBLE* value);
                [propget] HRESULT Kind([out] [retval] Windows.Graphics.Holographic.HolographicViewConfigurationKind* value);
                [propget] HRESULT Display([out] [retval] Windows.Graphics.Holographic.HolographicDisplay** value);
                [propget] HRESULT IsEnabled([out] [retval] boolean* value);
                [propput] HRESULT IsEnabled([in] boolean value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 11.0)]
            [exclusiveto(Windows.Graphics.Holographic.HolographicViewConfiguration)]
            [uuid(E241756E-E0D0-5019-9AF5-1B165BC2F54E)]
            interface IHolographicViewConfiguration2 : IInspectable
            {
                [propget] HRESULT SupportedDepthReprojectionMethods([out] [retval] Windows.Foundation.Collections.IVectorView<Windows.Graphics.Holographic.HolographicDepthReprojectionMethod>** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicCamera
            {
                [default] interface Windows.Graphics.Holographic.IHolographicCamera;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Graphics.Holographic.IHolographicCamera2;
                [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Graphics.Holographic.IHolographicCamera3;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Graphics.Holographic.IHolographicCamera4;
                [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Graphics.Holographic.IHolographicCamera5;
                [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.Graphics.Holographic.IHolographicCamera6;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicCameraPose
            {
                [default] interface Windows.Graphics.Holographic.IHolographicCameraPose;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Graphics.Holographic.IHolographicCameraPose2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicCameraRenderingParameters
            {
                [default] interface Windows.Graphics.Holographic.IHolographicCameraRenderingParameters;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.Graphics.Holographic.IHolographicCameraRenderingParameters2;
                [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Graphics.Holographic.IHolographicCameraRenderingParameters3;
                [contract(Windows.Foundation.UniversalApiContract, 11.0)] interface Windows.Graphics.Holographic.IHolographicCameraRenderingParameters4;
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicCameraViewportParameters
            {
                [default] interface Windows.Graphics.Holographic.IHolographicCameraViewportParameters;
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Graphics.Holographic.IHolographicDisplayStatics, Windows.Foundation.UniversalApiContract, 4.0)]
            [threading(both)]
            runtimeclass HolographicDisplay
            {
                [default] interface Windows.Graphics.Holographic.IHolographicDisplay;
                [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Graphics.Holographic.IHolographicDisplay2;
                [contract(Windows.Foundation.UniversalApiContract, 8.0)] interface Windows.Graphics.Holographic.IHolographicDisplay3;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicFrame
            {
                [default] interface Windows.Graphics.Holographic.IHolographicFrame;
                [contract(Windows.Foundation.UniversalApiContract, 5.0)] interface Windows.Graphics.Holographic.IHolographicFrame2;
                [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Graphics.Holographic.IHolographicFrame3;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicFramePrediction
            {
                [default] interface Windows.Graphics.Holographic.IHolographicFramePrediction;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [deprecated("Use HolographicFrameScanoutMonitor instead of HolographicFramePresentationMonitor. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass HolographicFramePresentationMonitor
            {
                [default] interface Windows.Graphics.Holographic.IHolographicFramePresentationMonitor;
                interface Windows.Foundation.IClosable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 6.0)]
            [deprecated("Use HolographicFrameScanoutReport instead of HolographicFramePresentationReport. For more info, see MSDN.", deprecate, Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass HolographicFramePresentationReport
            {
                [default] interface Windows.Graphics.Holographic.IHolographicFramePresentationReport;
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass HolographicFrameRenderingReport
            {
                [default] interface Windows.Graphics.Holographic.IHolographicFrameRenderingReport;
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass HolographicFrameScanoutMonitor
            {
                [default] interface Windows.Graphics.Holographic.IHolographicFrameScanoutMonitor;
                interface Windows.Foundation.IClosable;
            }

            [contract(Windows.Foundation.UniversalApiContract, 10.0)]
            [marshaling_behavior(agile)]
            runtimeclass HolographicFrameScanoutReport
            {
                [default] interface Windows.Graphics.Holographic.IHolographicFrameScanoutReport;
            }

            [activatable(Windows.Graphics.Holographic.IHolographicQuadLayerFactory, Windows.Foundation.UniversalApiContract, 5.0)]
            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicQuadLayer
            {
                interface Windows.Foundation.IClosable;
                [default] interface Windows.Graphics.Holographic.IHolographicQuadLayer;
            }

            [contract(Windows.Foundation.UniversalApiContract, 5.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicQuadLayerUpdateParameters
            {
                [default] interface Windows.Graphics.Holographic.IHolographicQuadLayerUpdateParameters;
                [contract(Windows.Foundation.UniversalApiContract, 7.0)] interface Windows.Graphics.Holographic.IHolographicQuadLayerUpdateParameters2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [static(Windows.Graphics.Holographic.IHolographicSpaceStatics, Windows.Foundation.UniversalApiContract, 2.0)]
            [static(Windows.Graphics.Holographic.IHolographicSpaceStatics2, Windows.Foundation.UniversalApiContract, 4.0)]
            [static(Windows.Graphics.Holographic.IHolographicSpaceStatics3, Windows.Foundation.UniversalApiContract, 5.0)]
            [threading(both)]
            runtimeclass HolographicSpace
            {
                [default] interface Windows.Graphics.Holographic.IHolographicSpace;
                [contract(Windows.Foundation.UniversalApiContract, 6.0)] interface Windows.Graphics.Holographic.IHolographicSpace2;
                [contract(Windows.Foundation.UniversalApiContract, 10.0)] interface Windows.Graphics.Holographic.IHolographicSpace3;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicSpaceCameraAddedEventArgs
            {
                [default] interface Windows.Graphics.Holographic.IHolographicSpaceCameraAddedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass HolographicSpaceCameraRemovedEventArgs
            {
                [default] interface Windows.Graphics.Holographic.IHolographicSpaceCameraRemovedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 8.0)]
            [marshaling_behavior(agile)]
            runtimeclass HolographicViewConfiguration
            {
                [default] interface Windows.Graphics.Holographic.IHolographicViewConfiguration;
                [contract(Windows.Foundation.UniversalApiContract, 11.0)] interface Windows.Graphics.Holographic.IHolographicViewConfiguration2;
            }
        }
    }
}
