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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "windowscontracts.idl";
import "Windows.Foundation.idl";
import "Windows.Foundation.Numerics.idl";
import "Windows.Graphics.idl";
import "Windows.Graphics.DirectX.idl";
import "Windows.Graphics.Effects.idl";
import "Windows.UI.idl";
import "Windows.UI.Core.idl";
// Additional imports to ensure that all required headers are included
cpp_quote("#if defined(__cplusplus)")
cpp_quote("}")
cpp_quote("#endif // defined(__cplusplus)")
cpp_quote("#include <Windows.Foundation.h>")
cpp_quote("#if !defined(__windows2Efoundation2Enumerics_h__)")
cpp_quote("#include <Windows.Foundation.Numerics.h>")
cpp_quote("#endif // !defined(__windows2Efoundation2Enumerics_h__)")
cpp_quote("#if !defined(__windows2Egraphics_h__)")
cpp_quote("#include <Windows.Graphics.h>")
cpp_quote("#endif // !defined(__windows2Egraphics_h__)")
cpp_quote("#if !defined(__windows2Egraphics2Edirectx_h__)")
cpp_quote("#include <Windows.Graphics.DirectX.h>")
cpp_quote("#endif // !defined(__windows2Egraphics2Edirectx_h__)")
cpp_quote("#if !defined(__windows2Egraphics2Eeffects_h__)")
cpp_quote("#include <Windows.Graphics.Effects.h>")
cpp_quote("#endif // !defined(__windows2Egraphics2Eeffects_h__)")
cpp_quote("#if !defined(__windows2Eui_h__)")
cpp_quote("#include <Windows.UI.h>")
cpp_quote("#endif // !defined(__windows2Eui_h__)")
cpp_quote("#if !defined(__windows2Eui2Ecore_h__)")
cpp_quote("#include <Windows.UI.Core.h>")
cpp_quote("#endif // !defined(__windows2Eui2Ecore_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace Foundation
    {
        interface IClosable;
    }
}
namespace Windows
{
    namespace Foundation
    {
        namespace Numerics
        {
            typedef struct Matrix3x2 Matrix3x2;

            typedef struct Matrix4x4 Matrix4x4;

            typedef struct Quaternion Quaternion;

            typedef struct Vector2 Vector2;

            typedef struct Vector3 Vector3;

            typedef struct Vector4 Vector4;
        }
    }
}
namespace Windows
{
    namespace Foundation
    {
        typedef struct Size Size;

        typedef struct TimeSpan TimeSpan;

        apicontract UniversalApiContract;
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace DirectX
        {
            typedef enum DirectXAlphaMode DirectXAlphaMode;

            typedef enum DirectXPixelFormat DirectXPixelFormat;
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        namespace Effects
        {
            interface IGraphicsEffect;

            interface IGraphicsEffectSource;
        }
    }
}
namespace Windows
{
    namespace Graphics
    {
        typedef struct PointInt32 PointInt32;

        typedef struct RectInt32 RectInt32;

        typedef struct SizeInt32 SizeInt32;
    }
}
namespace Windows
{
    namespace UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            runtimeclass CoreDispatcher;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Composition
        {
            typedef enum AnimationDelayBehavior AnimationDelayBehavior;

            typedef enum AnimationDirection AnimationDirection;

            typedef enum AnimationIterationBehavior AnimationIterationBehavior;

            typedef enum AnimationStopBehavior AnimationStopBehavior;

            typedef enum CompositionBackfaceVisibility CompositionBackfaceVisibility;

            typedef enum CompositionBatchTypes CompositionBatchTypes;

            typedef enum CompositionBitmapInterpolationMode CompositionBitmapInterpolationMode;

            typedef enum CompositionBorderMode CompositionBorderMode;

            typedef enum CompositionColorSpace CompositionColorSpace;

            typedef enum CompositionCompositeMode CompositionCompositeMode;

            typedef enum CompositionEffectFactoryLoadStatus CompositionEffectFactoryLoadStatus;

            typedef enum CompositionGetValueStatus CompositionGetValueStatus;

            typedef enum CompositionStretch CompositionStretch;

            interface IAmbientLight;

            interface IColorKeyFrameAnimation;

            interface ICompositionAnimation;

            interface ICompositionAnimation2;

            interface ICompositionAnimationBase;

            interface ICompositionAnimationFactory;

            interface ICompositionAnimationGroup;

            interface ICompositionBackdropBrush;

            interface ICompositionBatchCompletedEventArgs;

            interface ICompositionBrush;

            interface ICompositionBrushFactory;

            interface ICompositionCapabilities;

            interface ICompositionCapabilitiesStatics;

            interface ICompositionClip;

            interface ICompositionClip2;

            interface ICompositionClipFactory;

            interface ICompositionColorBrush;

            interface ICompositionCommitBatch;

            interface ICompositionDrawingSurface;

            interface ICompositionDrawingSurface2;

            interface ICompositionDrawingSurfaceFactory;

            interface ICompositionEasingFunction;

            interface ICompositionEasingFunctionFactory;

            interface ICompositionEffectBrush;

            interface ICompositionEffectFactory;

            interface ICompositionEffectSourceParameter;

            interface ICompositionEffectSourceParameterFactory;

            interface ICompositionGraphicsDevice;

            interface ICompositionGraphicsDevice2;

            interface ICompositionLight;

            interface ICompositionLightFactory;

            interface ICompositionMaskBrush;

            interface ICompositionNineGridBrush;

            interface ICompositionObject;

            interface ICompositionObject2;

            interface ICompositionObjectFactory;

            interface ICompositionPropertySet;

            interface ICompositionPropertySet2;

            interface ICompositionScopedBatch;

            interface ICompositionShadow;

            interface ICompositionShadowFactory;

            interface ICompositionSurface;

            interface ICompositionSurfaceBrush;

            interface ICompositionSurfaceBrush2;

            interface ICompositionTarget;

            interface ICompositionVirtualDrawingSurface;

            interface ICompositionVirtualDrawingSurfaceFactory;

            interface ICompositor;

            interface ICompositor2;

            interface ICompositor3;

            interface IContainerVisual;

            interface IContainerVisualFactory;

            interface ICubicBezierEasingFunction;

            interface IDistantLight;

            interface IDropShadow;

            interface IExpressionAnimation;

            interface IImplicitAnimationCollection;

            interface IInsetClip;

            interface IKeyFrameAnimation;

            interface IKeyFrameAnimation2;

            interface IKeyFrameAnimation3;

            interface IKeyFrameAnimationFactory;

            interface ILayerVisual;

            interface ILinearEasingFunction;

            interface IPointLight;

            interface IQuaternionKeyFrameAnimation;

            interface IRenderingDeviceReplacedEventArgs;

            interface IScalarKeyFrameAnimation;

            interface ISpotLight;

            interface ISpriteVisual;

            interface ISpriteVisual2;

            interface IStepEasingFunction;

            interface IVector2KeyFrameAnimation;

            interface IVector3KeyFrameAnimation;

            interface IVector4KeyFrameAnimation;

            interface IVisual;

            interface IVisual2;

            interface IVisualCollection;

            interface IVisualFactory;

            interface IVisualUnorderedCollection;

            runtimeclass AmbientLight;

            runtimeclass ColorKeyFrameAnimation;

            runtimeclass CompositionAnimation;

            runtimeclass CompositionAnimationGroup;

            runtimeclass CompositionBackdropBrush;

            runtimeclass CompositionBatchCompletedEventArgs;

            runtimeclass CompositionBrush;

            runtimeclass CompositionCapabilities;

            runtimeclass CompositionClip;

            runtimeclass CompositionColorBrush;

            runtimeclass CompositionCommitBatch;

            runtimeclass CompositionDrawingSurface;

            runtimeclass CompositionEasingFunction;

            runtimeclass CompositionEffectBrush;

            runtimeclass CompositionEffectFactory;

            runtimeclass CompositionEffectSourceParameter;

            runtimeclass CompositionGraphicsDevice;

            runtimeclass CompositionLight;

            runtimeclass CompositionMaskBrush;

            runtimeclass CompositionNineGridBrush;

            runtimeclass CompositionObject;

            runtimeclass CompositionPropertySet;

            runtimeclass CompositionScopedBatch;

            runtimeclass CompositionShadow;

            runtimeclass CompositionSurfaceBrush;

            runtimeclass CompositionTarget;

            runtimeclass CompositionVirtualDrawingSurface;

            runtimeclass Compositor;

            runtimeclass ContainerVisual;

            runtimeclass CubicBezierEasingFunction;

            runtimeclass DistantLight;

            runtimeclass DropShadow;

            runtimeclass ExpressionAnimation;

            runtimeclass ImplicitAnimationCollection;

            runtimeclass InsetClip;

            runtimeclass KeyFrameAnimation;

            runtimeclass LayerVisual;

            runtimeclass LinearEasingFunction;

            runtimeclass PointLight;

            runtimeclass QuaternionKeyFrameAnimation;

            runtimeclass RenderingDeviceReplacedEventArgs;

            runtimeclass ScalarKeyFrameAnimation;

            runtimeclass SpotLight;

            runtimeclass SpriteVisual;

            runtimeclass StepEasingFunction;

            runtimeclass Vector2KeyFrameAnimation;

            runtimeclass Vector3KeyFrameAnimation;

            runtimeclass Vector4KeyFrameAnimation;

            runtimeclass Visual;

            runtimeclass VisualCollection;

            runtimeclass VisualUnorderedCollection;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Composition
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.UI.Composition.ICompositionAnimationBase*>*>;

                interface Windows.Foundation.Collections.IIterable<Windows.UI.Composition.CompositionAnimation*>;

                interface Windows.Foundation.Collections.IIterable<Windows.UI.Composition.Visual*>;

                interface Windows.Foundation.Collections.IIterator<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.UI.Composition.ICompositionAnimationBase*>*>;

                interface Windows.Foundation.Collections.IIterator<Windows.UI.Composition.CompositionAnimation*>;

                interface Windows.Foundation.Collections.IIterator<Windows.UI.Composition.Visual*>;

                interface Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.UI.Composition.ICompositionAnimationBase*>;

                interface Windows.Foundation.Collections.IMapView<HSTRING, Windows.UI.Composition.ICompositionAnimationBase*>;

                interface Windows.Foundation.Collections.IMap<HSTRING, Windows.UI.Composition.ICompositionAnimationBase*>;

                interface Windows.Foundation.TypedEventHandler<IInspectable*, Windows.UI.Composition.CompositionBatchCompletedEventArgs*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Composition.CompositionCapabilities*, IInspectable*>;

                interface Windows.Foundation.TypedEventHandler<Windows.UI.Composition.CompositionGraphicsDevice*, Windows.UI.Composition.RenderingDeviceReplacedEventArgs*>;
            }
        }
    }
}

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Composition
        {
            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            enum AnimationDelayBehavior
            {
                SetInitialValueAfterDelay  = 0,
                SetInitialValueBeforeDelay = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            enum AnimationDirection
            {
                Normal           = 0,
                Reverse          = 1,
                Alternate        = 2,
                AlternateReverse = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum AnimationIterationBehavior
            {
                Count   = 0,
                Forever = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum AnimationStopBehavior
            {
                LeaveCurrentValue = 0,
                SetToInitialValue = 1,
                SetToFinalValue   = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum CompositionBackfaceVisibility
            {
                Inherit = 0,
                Visible = 1,
                Hidden  = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [flags]
            enum CompositionBatchTypes
            {
                None      = 0x0,
                Animation = 0x1,
                Effect    = 0x2
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum CompositionBitmapInterpolationMode
            {
                NearestNeighbor = 0,
                Linear          = 1
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum CompositionBorderMode
            {
                Inherit = 0,
                Soft    = 1,
                Hard    = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum CompositionColorSpace
            {
                Auto = 0,
                Hsl  = 1,
                Rgb  = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum CompositionCompositeMode
            {
                Inherit           = 0,
                SourceOver        = 1,
                DestinationInvert = 2,
                [contract(Windows.Foundation.UniversalApiContract, 3.0)]
                MinBlend          = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum CompositionEffectFactoryLoadStatus
            {
                Success          = 0,
                EffectTooComplex = 1,
                Pending          = 2,
                Other            = -1
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum CompositionGetValueStatus
            {
                Succeeded    = 0,
                TypeMismatch = 1,
                NotFound     = 2
            };

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            enum CompositionStretch
            {
                None          = 0,
                Fill          = 1,
                Uniform       = 2,
                UniformToFill = 3
            };

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.AmbientLight)]
            [uuid(A48130A1-B7C4-46F7-B9BF-DAF43A44E6EE)]
            interface IAmbientLight : IInspectable
            {
                [propget] HRESULT Color([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT Color([in] Windows.UI.Color value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.ColorKeyFrameAnimation)]
            [uuid(93ADB5E9-8E05-4593-84A3-DCA152781E56)]
            interface IColorKeyFrameAnimation : IInspectable
            {
                [propget] HRESULT InterpolationColorSpace([out] [retval] Windows.UI.Composition.CompositionColorSpace* value);
                [propput] HRESULT InterpolationColorSpace([in] Windows.UI.Composition.CompositionColorSpace value);
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrame([in] FLOAT normalizedProgressKey, [in] Windows.UI.Color value);
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrameWithEasingFunction([in] FLOAT normalizedProgressKey, [in] Windows.UI.Color value, [in] Windows.UI.Composition.CompositionEasingFunction* easingFunction);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionAnimation)]
            [uuid(464C4C2C-1CAA-4061-9B40-E13FDE1503CA)]
            interface ICompositionAnimation : IInspectable
            {
                HRESULT ClearAllParameters();
                HRESULT ClearParameter([in] HSTRING key);
                HRESULT SetColorParameter([in] HSTRING key, [in] Windows.UI.Color value);
                HRESULT SetMatrix3x2Parameter([in] HSTRING key, [in] Windows.Foundation.Numerics.Matrix3x2 value);
                HRESULT SetMatrix4x4Parameter([in] HSTRING key, [in] Windows.Foundation.Numerics.Matrix4x4 value);
                HRESULT SetQuaternionParameter([in] HSTRING key, [in] Windows.Foundation.Numerics.Quaternion value);
                HRESULT SetReferenceParameter([in] HSTRING key, [in] Windows.UI.Composition.CompositionObject* compositionObject);
                HRESULT SetScalarParameter([in] HSTRING key, [in] FLOAT value);
                HRESULT SetVector2Parameter([in] HSTRING key, [in] Windows.Foundation.Numerics.Vector2 value);
                HRESULT SetVector3Parameter([in] HSTRING key, [in] Windows.Foundation.Numerics.Vector3 value);
                HRESULT SetVector4Parameter([in] HSTRING key, [in] Windows.Foundation.Numerics.Vector4 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionAnimation)]
            [uuid(369B603E-A80F-4948-93E3-ED23FB38C6CB)]
            interface ICompositionAnimation2 : IInspectable
            {
                HRESULT SetBooleanParameter([in] HSTRING key, [in] boolean value);
                [propget] HRESULT Target([out] [retval] HSTRING* value);
                [propput] HRESULT Target([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [uuid(1C2C2999-E818-48D3-A6DD-D78C82F8ACE9)]
            interface ICompositionAnimationBase : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionAnimation)]
            [uuid(10F6C4FB-6E51-4C25-BBD3-586A9BEC3EF4)]
            interface ICompositionAnimationFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionAnimationGroup)]
            [uuid(5E7CC90C-CD14-4E07-8A55-C72527AABDAC)]
            interface ICompositionAnimationGroup : IInspectable
                requires
                    Windows.Foundation.Collections.IIterable<Windows.UI.Composition.CompositionAnimation*>
            {
                [propget] HRESULT Count([out] [retval] INT32* value);
                HRESULT Add([in] Windows.UI.Composition.CompositionAnimation* value);
                HRESULT Remove([in] Windows.UI.Composition.CompositionAnimation* value);
                HRESULT RemoveAll();
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionBackdropBrush)]
            [uuid(C5ACAE58-3898-499E-8D7F-224E91286A5D)]
            interface ICompositionBackdropBrush : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionBatchCompletedEventArgs)]
            [uuid(0D00DAD0-9464-450A-A562-2E2698B0A812)]
            interface ICompositionBatchCompletedEventArgs : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionBrush)]
            [uuid(AB0D7608-30C0-40E9-B568-B60A6BD1FB46)]
            interface ICompositionBrush : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionBrush)]
            [uuid(DA53FB4C-4650-47C4-AD76-765379607ED6)]
            interface ICompositionBrushFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.CompositionCapabilities)]
            [uuid(8253353E-B517-48BC-B1E8-4B3561A2E181)]
            interface ICompositionCapabilities : IInspectable
            {
                HRESULT AreEffectsSupported([out] [retval] boolean* value);
                HRESULT AreEffectsFast([out] [retval] boolean* value);
                [eventadd] HRESULT Changed([in] Windows.Foundation.TypedEventHandler<Windows.UI.Composition.CompositionCapabilities*, IInspectable*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Changed([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.CompositionCapabilities)]
            [uuid(F7B7A86E-6416-49E5-8DDF-AFE949E20562)]
            interface ICompositionCapabilitiesStatics : IInspectable
            {
                HRESULT GetForCurrentView([out] [retval] Windows.UI.Composition.CompositionCapabilities** current);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionClip)]
            [uuid(1CCD2A52-CFC7-4ACE-9983-146BB8EB6A3C)]
            interface ICompositionClip : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionClip)]
            [uuid(5893E069-3516-40E1-89E0-5BA924927235)]
            interface ICompositionClip2 : IInspectable
            {
                [propget] HRESULT AnchorPoint([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT AnchorPoint([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT CenterPoint([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT CenterPoint([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT Offset([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT Offset([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT RotationAngle([out] [retval] FLOAT* value);
                [propput] HRESULT RotationAngle([in] FLOAT value);
                [propget] HRESULT RotationAngleInDegrees([out] [retval] FLOAT* value);
                [propput] HRESULT RotationAngleInDegrees([in] FLOAT value);
                [propget] HRESULT Scale([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT Scale([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT TransformMatrix([out] [retval] Windows.Foundation.Numerics.Matrix3x2* value);
                [propput] HRESULT TransformMatrix([in] Windows.Foundation.Numerics.Matrix3x2 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionClip)]
            [uuid(B9484CAF-20C7-4AED-AC4A-9C78BA1302CF)]
            interface ICompositionClipFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionColorBrush)]
            [uuid(2B264C5E-BF35-4831-8642-CF70C20FFF2F)]
            interface ICompositionColorBrush : IInspectable
            {
                [propget] HRESULT Color([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT Color([in] Windows.UI.Color value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionCommitBatch)]
            [uuid(0D00DAD0-CA07-4400-8C8E-CB5DB08559CC)]
            interface ICompositionCommitBatch : IInspectable
            {
                [propget] HRESULT IsActive([out] [retval] boolean* value);
                [propget] HRESULT IsEnded([out] [retval] boolean* value);
                [eventadd] HRESULT Completed([in] Windows.Foundation.TypedEventHandler<IInspectable*, Windows.UI.Composition.CompositionBatchCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Completed([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionDrawingSurface)]
            [uuid(A166C300-FAD0-4D11-9E67-E433162FF49E)]
            interface ICompositionDrawingSurface : IInspectable
            {
                [propget] HRESULT AlphaMode([out] [retval] Windows.Graphics.DirectX.DirectXAlphaMode* value);
                [propget] HRESULT PixelFormat([out] [retval] Windows.Graphics.DirectX.DirectXPixelFormat* value);
                [propget] HRESULT Size([out] [retval] Windows.Foundation.Size* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.CompositionDrawingSurface)]
            [uuid(FAD0E88B-E354-44E8-8E3D-C4880D5A213F)]
            interface ICompositionDrawingSurface2 : IInspectable
            {
                [propget] HRESULT SizeInt32([out] [retval] Windows.Graphics.SizeInt32* value);
                HRESULT Resize([in] Windows.Graphics.SizeInt32 sizePixels);
                [overload("Scroll")] HRESULT Scroll([in] Windows.Graphics.PointInt32 offset);
                [overload("Scroll")] HRESULT ScrollRect([in] Windows.Graphics.PointInt32 offset, [in] Windows.Graphics.RectInt32 scrollRect);
                [overload("ScrollWithClip")] HRESULT ScrollWithClip([in] Windows.Graphics.PointInt32 offset, [in] Windows.Graphics.RectInt32 clipRect);
                [overload("ScrollWithClip")] HRESULT ScrollRectWithClip([in] Windows.Graphics.PointInt32 offset, [in] Windows.Graphics.RectInt32 clipRect, [in] Windows.Graphics.RectInt32 scrollRect);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.CompositionDrawingSurface)]
            [uuid(9497B00A-312D-46B9-9DB3-412FD79464C8)]
            interface ICompositionDrawingSurfaceFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionEasingFunction)]
            [uuid(5145E356-BF79-4EA8-8CC2-6B5B472E6C9A)]
            interface ICompositionEasingFunction : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionEasingFunction)]
            [uuid(60840774-3DA0-4949-8200-7206C00190A0)]
            interface ICompositionEasingFunctionFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionEffectBrush)]
            [uuid(BF7F795E-83CC-44BF-A447-3E3C071789EC)]
            interface ICompositionEffectBrush : IInspectable
            {
                HRESULT GetSourceParameter([in] HSTRING name, [out] [retval] Windows.UI.Composition.CompositionBrush** result);
                HRESULT SetSourceParameter([in] HSTRING name, [in] Windows.UI.Composition.CompositionBrush* source);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionEffectFactory)]
            [uuid(BE5624AF-BA7E-4510-9850-41C0B4FF74DF)]
            interface ICompositionEffectFactory : IInspectable
            {
                HRESULT CreateBrush([out] [retval] Windows.UI.Composition.CompositionEffectBrush** result);
                [propget] HRESULT ExtendedError([out] [retval] HRESULT* value);
                [propget] HRESULT LoadStatus([out] [retval] Windows.UI.Composition.CompositionEffectFactoryLoadStatus* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionEffectSourceParameter)]
            [uuid(858AB13A-3292-4E4E-B3BB-2B6C6544A6EE)]
            interface ICompositionEffectSourceParameter : IInspectable
                requires
                    Windows.Graphics.Effects.IGraphicsEffectSource
            {
                [propget] HRESULT Name([out] [retval] HSTRING* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionEffectSourceParameter)]
            [uuid(B3D9F276-ABA3-4724-ACF3-D0397464DB1C)]
            interface ICompositionEffectSourceParameterFactory : IInspectable
            {
                HRESULT Create([in] HSTRING name, [out] [retval] Windows.UI.Composition.CompositionEffectSourceParameter** instance);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionGraphicsDevice)]
            [uuid(FB22C6E1-80A2-4667-9936-DBEAF6EEFE95)]
            interface ICompositionGraphicsDevice : IInspectable
            {
                HRESULT CreateDrawingSurface([in] Windows.Foundation.Size sizePixels, [in] Windows.Graphics.DirectX.DirectXPixelFormat pixelFormat, [in] Windows.Graphics.DirectX.DirectXAlphaMode alphaMode, [out] [retval] Windows.UI.Composition.CompositionDrawingSurface** result);
                [eventadd] HRESULT RenderingDeviceReplaced([in] Windows.Foundation.TypedEventHandler<Windows.UI.Composition.CompositionGraphicsDevice*, Windows.UI.Composition.RenderingDeviceReplacedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT RenderingDeviceReplaced([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.CompositionGraphicsDevice)]
            [uuid(0FB8BDF6-C0F0-4BCC-9FB8-084982490D7D)]
            interface ICompositionGraphicsDevice2 : IInspectable
            {
                HRESULT CreateDrawingSurface2([in] Windows.Graphics.SizeInt32 sizePixels, [in] Windows.Graphics.DirectX.DirectXPixelFormat pixelFormat, [in] Windows.Graphics.DirectX.DirectXAlphaMode alphaMode, [out] [retval] Windows.UI.Composition.CompositionDrawingSurface** result);
                HRESULT CreateVirtualDrawingSurface([in] Windows.Graphics.SizeInt32 sizePixels, [in] Windows.Graphics.DirectX.DirectXPixelFormat pixelFormat, [in] Windows.Graphics.DirectX.DirectXAlphaMode alphaMode, [out] [retval] Windows.UI.Composition.CompositionVirtualDrawingSurface** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionLight)]
            [uuid(41A6D7C2-2E5D-4BC1-B09E-8F0A03E3D8D3)]
            interface ICompositionLight : IInspectable
            {
                [propget] HRESULT Targets([out] [retval] Windows.UI.Composition.VisualUnorderedCollection** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionLight)]
            [uuid(069CF306-DA3C-4B44-838A-5E03D51ACE55)]
            interface ICompositionLightFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionMaskBrush)]
            [uuid(522CF09E-BE6B-4F41-BE49-F9226D471B4A)]
            interface ICompositionMaskBrush : IInspectable
            {
                [propget] HRESULT Mask([out] [retval] Windows.UI.Composition.CompositionBrush** value);
                [propput] HRESULT Mask([in] Windows.UI.Composition.CompositionBrush* value);
                [propget] HRESULT Source([out] [retval] Windows.UI.Composition.CompositionBrush** value);
                [propput] HRESULT Source([in] Windows.UI.Composition.CompositionBrush* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionNineGridBrush)]
            [uuid(F25154E4-BC8C-4BE7-B80F-8685B83C0186)]
            interface ICompositionNineGridBrush : IInspectable
            {
                [propget] HRESULT BottomInset([out] [retval] FLOAT* value);
                [propput] HRESULT BottomInset([in] FLOAT value);
                [propget] HRESULT BottomInsetScale([out] [retval] FLOAT* value);
                [propput] HRESULT BottomInsetScale([in] FLOAT value);
                [propget] HRESULT IsCenterHollow([out] [retval] boolean* value);
                [propput] HRESULT IsCenterHollow([in] boolean value);
                [propget] HRESULT LeftInset([out] [retval] FLOAT* value);
                [propput] HRESULT LeftInset([in] FLOAT value);
                [propget] HRESULT LeftInsetScale([out] [retval] FLOAT* value);
                [propput] HRESULT LeftInsetScale([in] FLOAT value);
                [propget] HRESULT RightInset([out] [retval] FLOAT* value);
                [propput] HRESULT RightInset([in] FLOAT value);
                [propget] HRESULT RightInsetScale([out] [retval] FLOAT* value);
                [propput] HRESULT RightInsetScale([in] FLOAT value);
                [propget] HRESULT Source([out] [retval] Windows.UI.Composition.CompositionBrush** value);
                [propput] HRESULT Source([in] Windows.UI.Composition.CompositionBrush* value);
                [propget] HRESULT TopInset([out] [retval] FLOAT* value);
                [propput] HRESULT TopInset([in] FLOAT value);
                [propget] HRESULT TopInsetScale([out] [retval] FLOAT* value);
                [propput] HRESULT TopInsetScale([in] FLOAT value);
                [overload("SetInsets")] HRESULT SetInsets([in] FLOAT inset);
                [overload("SetInsets")] HRESULT SetInsetsWithValues([in] FLOAT left, [in] FLOAT top, [in] FLOAT right, [in] FLOAT bottom);
                [overload("SetInsetScales")] HRESULT SetInsetScales([in] FLOAT scale);
                [overload("SetInsetScales")] HRESULT SetInsetScalesWithValues([in] FLOAT left, [in] FLOAT top, [in] FLOAT right, [in] FLOAT bottom);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionObject)]
            [uuid(BCB4AD45-7609-4550-934F-16002A68FDED)]
            interface ICompositionObject : IInspectable
            {
                [propget] HRESULT Compositor([out] [retval] Windows.UI.Composition.Compositor** value);
                [propget] HRESULT Dispatcher([out] [retval] Windows.UI.Core.CoreDispatcher** value);
                [propget] HRESULT Properties([out] [retval] Windows.UI.Composition.CompositionPropertySet** value);
                HRESULT StartAnimation([in] HSTRING propertyName, [in] Windows.UI.Composition.CompositionAnimation* animation);
                HRESULT StopAnimation([in] HSTRING propertyName);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionObject)]
            [uuid(EF874EA1-5CFF-4B68-9E30-A1519D08BA03)]
            interface ICompositionObject2 : IInspectable
            {
                [propget] HRESULT Comment([out] [retval] HSTRING* value);
                [propput] HRESULT Comment([in] HSTRING value);
                [propget] HRESULT ImplicitAnimations([out] [retval] Windows.UI.Composition.ImplicitAnimationCollection** value);
                [propput] HRESULT ImplicitAnimations([in] Windows.UI.Composition.ImplicitAnimationCollection* value);
                HRESULT StartAnimationGroup([in] Windows.UI.Composition.ICompositionAnimationBase* value);
                HRESULT StopAnimationGroup([in] Windows.UI.Composition.ICompositionAnimationBase* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionObject)]
            [uuid(51205C5E-558A-4F2A-8D39-37BFE1E20DDD)]
            interface ICompositionObjectFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionPropertySet)]
            [uuid(C9D6D202-5F67-4453-9117-9EADD430D3C2)]
            interface ICompositionPropertySet : IInspectable
            {
                HRESULT InsertColor([in] HSTRING propertyName, [in] Windows.UI.Color value);
                HRESULT InsertMatrix3x2([in] HSTRING propertyName, [in] Windows.Foundation.Numerics.Matrix3x2 value);
                HRESULT InsertMatrix4x4([in] HSTRING propertyName, [in] Windows.Foundation.Numerics.Matrix4x4 value);
                HRESULT InsertQuaternion([in] HSTRING propertyName, [in] Windows.Foundation.Numerics.Quaternion value);
                HRESULT InsertScalar([in] HSTRING propertyName, [in] FLOAT value);
                HRESULT InsertVector2([in] HSTRING propertyName, [in] Windows.Foundation.Numerics.Vector2 value);
                HRESULT InsertVector3([in] HSTRING propertyName, [in] Windows.Foundation.Numerics.Vector3 value);
                HRESULT InsertVector4([in] HSTRING propertyName, [in] Windows.Foundation.Numerics.Vector4 value);
                HRESULT TryGetColor([in] HSTRING propertyName, [out] Windows.UI.Color* value, [out] [retval] Windows.UI.Composition.CompositionGetValueStatus* result);
                HRESULT TryGetMatrix3x2([in] HSTRING propertyName, [out] Windows.Foundation.Numerics.Matrix3x2* value, [out] [retval] Windows.UI.Composition.CompositionGetValueStatus* result);
                HRESULT TryGetMatrix4x4([in] HSTRING propertyName, [out] Windows.Foundation.Numerics.Matrix4x4* value, [out] [retval] Windows.UI.Composition.CompositionGetValueStatus* result);
                HRESULT TryGetQuaternion([in] HSTRING propertyName, [out] Windows.Foundation.Numerics.Quaternion* value, [out] [retval] Windows.UI.Composition.CompositionGetValueStatus* result);
                HRESULT TryGetScalar([in] HSTRING propertyName, [out] FLOAT* value, [out] [retval] Windows.UI.Composition.CompositionGetValueStatus* result);
                HRESULT TryGetVector2([in] HSTRING propertyName, [out] Windows.Foundation.Numerics.Vector2* value, [out] [retval] Windows.UI.Composition.CompositionGetValueStatus* result);
                HRESULT TryGetVector3([in] HSTRING propertyName, [out] Windows.Foundation.Numerics.Vector3* value, [out] [retval] Windows.UI.Composition.CompositionGetValueStatus* result);
                HRESULT TryGetVector4([in] HSTRING propertyName, [out] Windows.Foundation.Numerics.Vector4* value, [out] [retval] Windows.UI.Composition.CompositionGetValueStatus* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionPropertySet)]
            [uuid(DE80731E-A211-4455-8880-7D0F3F6A44FD)]
            interface ICompositionPropertySet2 : IInspectable
            {
                HRESULT InsertBoolean([in] HSTRING propertyName, [in] boolean value);
                HRESULT TryGetBoolean([in] HSTRING propertyName, [out] boolean* value, [out] [retval] Windows.UI.Composition.CompositionGetValueStatus* result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionScopedBatch)]
            [uuid(0D00DAD0-FB07-46FD-8C72-6280D1A3D1DD)]
            interface ICompositionScopedBatch : IInspectable
            {
                [propget] HRESULT IsActive([out] [retval] boolean* value);
                [propget] HRESULT IsEnded([out] [retval] boolean* value);
                HRESULT End();
                HRESULT Resume();
                HRESULT Suspend();
                [eventadd] HRESULT Completed([in] Windows.Foundation.TypedEventHandler<IInspectable*, Windows.UI.Composition.CompositionBatchCompletedEventArgs*>* handler, [out] [retval] EventRegistrationToken* token);
                [eventremove] HRESULT Completed([in] EventRegistrationToken token);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionShadow)]
            [uuid(329E52E2-4335-49CC-B14A-37782D10F0C4)]
            interface ICompositionShadow : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionShadow)]
            [uuid(221F492F-DCBA-4B91-999E-1DC217A01530)]
            interface ICompositionShadowFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [uuid(1527540D-42C7-47A6-A408-668F79A90DFB)]
            interface ICompositionSurface : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionSurfaceBrush)]
            [uuid(AD016D79-1E4C-4C0D-9C29-83338C87C162)]
            interface ICompositionSurfaceBrush : IInspectable
            {
                [propget] HRESULT BitmapInterpolationMode([out] [retval] Windows.UI.Composition.CompositionBitmapInterpolationMode* value);
                [propput] HRESULT BitmapInterpolationMode([in] Windows.UI.Composition.CompositionBitmapInterpolationMode value);
                [propget] HRESULT HorizontalAlignmentRatio([out] [retval] FLOAT* value);
                [propput] HRESULT HorizontalAlignmentRatio([in] FLOAT value);
                [propget] HRESULT Stretch([out] [retval] Windows.UI.Composition.CompositionStretch* value);
                [propput] HRESULT Stretch([in] Windows.UI.Composition.CompositionStretch value);
                [propget] HRESULT Surface([out] [retval] Windows.UI.Composition.ICompositionSurface** value);
                [propput] HRESULT Surface([in] Windows.UI.Composition.ICompositionSurface* value);
                [propget] HRESULT VerticalAlignmentRatio([out] [retval] FLOAT* value);
                [propput] HRESULT VerticalAlignmentRatio([in] FLOAT value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.CompositionSurfaceBrush)]
            [uuid(D27174D5-64F5-4692-9DC7-71B61D7E5880)]
            interface ICompositionSurfaceBrush2 : IInspectable
            {
                [propget] HRESULT AnchorPoint([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT AnchorPoint([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT CenterPoint([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT CenterPoint([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT Offset([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT Offset([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT RotationAngle([out] [retval] FLOAT* value);
                [propput] HRESULT RotationAngle([in] FLOAT value);
                [propget] HRESULT RotationAngleInDegrees([out] [retval] FLOAT* value);
                [propput] HRESULT RotationAngleInDegrees([in] FLOAT value);
                [propget] HRESULT Scale([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT Scale([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT TransformMatrix([out] [retval] Windows.Foundation.Numerics.Matrix3x2* value);
                [propput] HRESULT TransformMatrix([in] Windows.Foundation.Numerics.Matrix3x2 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CompositionTarget)]
            [uuid(A1BEA8BA-D726-4663-8129-6B5E7927FFA6)]
            interface ICompositionTarget : IInspectable
            {
                [propget] HRESULT Root([out] [retval] Windows.UI.Composition.Visual** value);
                [propput] HRESULT Root([in] Windows.UI.Composition.Visual* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.CompositionVirtualDrawingSurface)]
            [uuid(A9C384DB-8740-4F94-8B9D-B68521E7863D)]
            interface ICompositionVirtualDrawingSurface : IInspectable
            {
                HRESULT Trim([in] UINT32 __rectsSize, [in] [size_is(__rectsSize)] Windows.Graphics.RectInt32* rects);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.CompositionVirtualDrawingSurface)]
            [uuid(6766106C-D56B-4A49-B1DF-5076A0620768)]
            interface ICompositionVirtualDrawingSurfaceFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.Compositor)]
            [uuid(B403CA50-7F8C-4E83-985F-CC45060036D8)]
            interface ICompositor : IInspectable
            {
                HRESULT CreateColorKeyFrameAnimation([out] [retval] Windows.UI.Composition.ColorKeyFrameAnimation** result);
                [overload("CreateColorBrush")] HRESULT CreateColorBrush([out] [retval] Windows.UI.Composition.CompositionColorBrush** result);
                [overload("CreateColorBrush")] HRESULT CreateColorBrushWithColor([in] Windows.UI.Color color, [out] [retval] Windows.UI.Composition.CompositionColorBrush** result);
                HRESULT CreateContainerVisual([out] [retval] Windows.UI.Composition.ContainerVisual** result);
                HRESULT CreateCubicBezierEasingFunction([in] Windows.Foundation.Numerics.Vector2 controlPoint1, [in] Windows.Foundation.Numerics.Vector2 controlPoint2, [out] [retval] Windows.UI.Composition.CubicBezierEasingFunction** result);
                [overload("CreateEffectFactory")] HRESULT CreateEffectFactory([in] Windows.Graphics.Effects.IGraphicsEffect* graphicsEffect, [out] [retval] Windows.UI.Composition.CompositionEffectFactory** result);
                [overload("CreateEffectFactory")] HRESULT CreateEffectFactoryWithProperties([in] Windows.Graphics.Effects.IGraphicsEffect* graphicsEffect, [in] Windows.Foundation.Collections.IIterable<HSTRING>* animatableProperties, [out] [retval] Windows.UI.Composition.CompositionEffectFactory** result);
                [overload("CreateExpressionAnimation")] HRESULT CreateExpressionAnimation([out] [retval] Windows.UI.Composition.ExpressionAnimation** result);
                [overload("CreateExpressionAnimation")] HRESULT CreateExpressionAnimationWithExpression([in] HSTRING expression, [out] [retval] Windows.UI.Composition.ExpressionAnimation** result);
                [overload("CreateInsetClip")] HRESULT CreateInsetClip([out] [retval] Windows.UI.Composition.InsetClip** result);
                [overload("CreateInsetClip")] HRESULT CreateInsetClipWithInsets([in] FLOAT leftInset, [in] FLOAT topInset, [in] FLOAT rightInset, [in] FLOAT bottomInset, [out] [retval] Windows.UI.Composition.InsetClip** result);
                HRESULT CreateLinearEasingFunction([out] [retval] Windows.UI.Composition.LinearEasingFunction** result);
                HRESULT CreatePropertySet([out] [retval] Windows.UI.Composition.CompositionPropertySet** result);
                HRESULT CreateQuaternionKeyFrameAnimation([out] [retval] Windows.UI.Composition.QuaternionKeyFrameAnimation** result);
                HRESULT CreateScalarKeyFrameAnimation([out] [retval] Windows.UI.Composition.ScalarKeyFrameAnimation** result);
                HRESULT CreateScopedBatch([in] Windows.UI.Composition.CompositionBatchTypes batchType, [out] [retval] Windows.UI.Composition.CompositionScopedBatch** result);
                HRESULT CreateSpriteVisual([out] [retval] Windows.UI.Composition.SpriteVisual** result);
                [overload("CreateSurfaceBrush")] HRESULT CreateSurfaceBrush([out] [retval] Windows.UI.Composition.CompositionSurfaceBrush** result);
                [overload("CreateSurfaceBrush")] HRESULT CreateSurfaceBrushWithSurface([in] Windows.UI.Composition.ICompositionSurface* surface, [out] [retval] Windows.UI.Composition.CompositionSurfaceBrush** result);
                HRESULT CreateTargetForCurrentView([out] [retval] Windows.UI.Composition.CompositionTarget** result);
                HRESULT CreateVector2KeyFrameAnimation([out] [retval] Windows.UI.Composition.Vector2KeyFrameAnimation** result);
                HRESULT CreateVector3KeyFrameAnimation([out] [retval] Windows.UI.Composition.Vector3KeyFrameAnimation** result);
                HRESULT CreateVector4KeyFrameAnimation([out] [retval] Windows.UI.Composition.Vector4KeyFrameAnimation** result);
                HRESULT GetCommitBatch([in] Windows.UI.Composition.CompositionBatchTypes batchType, [out] [retval] Windows.UI.Composition.CompositionCommitBatch** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.Compositor)]
            [uuid(735081DC-5E24-45DA-A38F-E32CC349A9A0)]
            interface ICompositor2 : IInspectable
            {
                HRESULT CreateAmbientLight([out] [retval] Windows.UI.Composition.AmbientLight** result);
                HRESULT CreateAnimationGroup([out] [retval] Windows.UI.Composition.CompositionAnimationGroup** result);
                HRESULT CreateBackdropBrush([out] [retval] Windows.UI.Composition.CompositionBackdropBrush** result);
                HRESULT CreateDistantLight([out] [retval] Windows.UI.Composition.DistantLight** result);
                HRESULT CreateDropShadow([out] [retval] Windows.UI.Composition.DropShadow** result);
                HRESULT CreateImplicitAnimationCollection([out] [retval] Windows.UI.Composition.ImplicitAnimationCollection** result);
                HRESULT CreateLayerVisual([out] [retval] Windows.UI.Composition.LayerVisual** result);
                HRESULT CreateMaskBrush([out] [retval] Windows.UI.Composition.CompositionMaskBrush** result);
                HRESULT CreateNineGridBrush([out] [retval] Windows.UI.Composition.CompositionNineGridBrush** result);
                HRESULT CreatePointLight([out] [retval] Windows.UI.Composition.PointLight** result);
                HRESULT CreateSpotLight([out] [retval] Windows.UI.Composition.SpotLight** result);
                [overload("CreateStepEasingFunction")] HRESULT CreateStepEasingFunction([out] [retval] Windows.UI.Composition.StepEasingFunction** result);
                [overload("CreateStepEasingFunction")] HRESULT CreateStepEasingFunctionWithStepCount([in] INT32 stepCount, [out] [retval] Windows.UI.Composition.StepEasingFunction** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.Compositor)]
            [uuid(C9DD8EF0-6EB1-4E3C-A658-675D9C64D4AB)]
            interface ICompositor3 : IInspectable
            {
                HRESULT CreateHostBackdropBrush([out] [retval] Windows.UI.Composition.CompositionBackdropBrush** result);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.ContainerVisual)]
            [uuid(02F6BC74-ED20-4773-AFE6-D49B4A93DB32)]
            interface IContainerVisual : IInspectable
            {
                [propget] HRESULT Children([out] [retval] Windows.UI.Composition.VisualCollection** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.ContainerVisual)]
            [uuid(0363A65B-C7DA-4D9A-95F4-69B5C8DF670B)]
            interface IContainerVisualFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.CubicBezierEasingFunction)]
            [uuid(32350666-C1E8-44F9-96B8-C98ACF0AE698)]
            interface ICubicBezierEasingFunction : IInspectable
            {
                [propget] HRESULT ControlPoint1([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propget] HRESULT ControlPoint2([out] [retval] Windows.Foundation.Numerics.Vector2* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.DistantLight)]
            [uuid(318CFAFC-5CE3-4B55-AB5D-07A00353AC99)]
            interface IDistantLight : IInspectable
            {
                [propget] HRESULT Color([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT Color([in] Windows.UI.Color value);
                [propget] HRESULT CoordinateSpace([out] [retval] Windows.UI.Composition.Visual** value);
                [propput] HRESULT CoordinateSpace([in] Windows.UI.Composition.Visual* value);
                [propget] HRESULT Direction([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Direction([in] Windows.Foundation.Numerics.Vector3 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.DropShadow)]
            [uuid(CB977C07-A154-4851-85E7-A8924C84FAD8)]
            interface IDropShadow : IInspectable
            {
                [propget] HRESULT BlurRadius([out] [retval] FLOAT* value);
                [propput] HRESULT BlurRadius([in] FLOAT value);
                [propget] HRESULT Color([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT Color([in] Windows.UI.Color value);
                [propget] HRESULT Mask([out] [retval] Windows.UI.Composition.CompositionBrush** value);
                [propput] HRESULT Mask([in] Windows.UI.Composition.CompositionBrush* value);
                [propget] HRESULT Offset([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Offset([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT Opacity([out] [retval] FLOAT* value);
                [propput] HRESULT Opacity([in] FLOAT value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.ExpressionAnimation)]
            [uuid(6ACC5431-7D3D-4BF3-ABB6-F44BDC4888C1)]
            interface IExpressionAnimation : IInspectable
            {
                [propget] HRESULT Expression([out] [retval] HSTRING* value);
                [propput] HRESULT Expression([in] HSTRING value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.ImplicitAnimationCollection)]
            [uuid(0598A3FF-0A92-4C9D-A427-B25519250DBF)]
            interface IImplicitAnimationCollection : IInspectable
                requires
                    Windows.Foundation.Collections.IMap<HSTRING, Windows.UI.Composition.ICompositionAnimationBase*>,
                    Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.UI.Composition.ICompositionAnimationBase*>*>
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.InsetClip)]
            [uuid(1E73E647-84C7-477A-B474-5880E0442E15)]
            interface IInsetClip : IInspectable
            {
                [propget] HRESULT BottomInset([out] [retval] FLOAT* value);
                [propput] HRESULT BottomInset([in] FLOAT value);
                [propget] HRESULT LeftInset([out] [retval] FLOAT* value);
                [propput] HRESULT LeftInset([in] FLOAT value);
                [propget] HRESULT RightInset([out] [retval] FLOAT* value);
                [propput] HRESULT RightInset([in] FLOAT value);
                [propget] HRESULT TopInset([out] [retval] FLOAT* value);
                [propput] HRESULT TopInset([in] FLOAT value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.KeyFrameAnimation)]
            [uuid(126E7F22-3AE9-4540-9A8A-DEAE8A4A4A84)]
            interface IKeyFrameAnimation : IInspectable
            {
                [propget] HRESULT DelayTime([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT DelayTime([in] Windows.Foundation.TimeSpan value);
                [propget] HRESULT Duration([out] [retval] Windows.Foundation.TimeSpan* value);
                [propput] HRESULT Duration([in] Windows.Foundation.TimeSpan value);
                [propget] HRESULT IterationBehavior([out] [retval] Windows.UI.Composition.AnimationIterationBehavior* value);
                [propput] HRESULT IterationBehavior([in] Windows.UI.Composition.AnimationIterationBehavior value);
                [propget] HRESULT IterationCount([out] [retval] INT32* value);
                [propput] HRESULT IterationCount([in] INT32 value);
                [propget] HRESULT KeyFrameCount([out] [retval] INT32* value);
                [propget] HRESULT StopBehavior([out] [retval] Windows.UI.Composition.AnimationStopBehavior* value);
                [propput] HRESULT StopBehavior([in] Windows.UI.Composition.AnimationStopBehavior value);
                [overload("InsertExpressionKeyFrame")] HRESULT InsertExpressionKeyFrame([in] FLOAT normalizedProgressKey, [in] HSTRING value);
                [overload("InsertExpressionKeyFrame")] HRESULT InsertExpressionKeyFrameWithEasingFunction([in] FLOAT normalizedProgressKey, [in] HSTRING value, [in] Windows.UI.Composition.CompositionEasingFunction* easingFunction);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.KeyFrameAnimation)]
            [uuid(F4B488BB-2940-4EC0-A41A-EB6D801A2F18)]
            interface IKeyFrameAnimation2 : IInspectable
            {
                [propget] HRESULT Direction([out] [retval] Windows.UI.Composition.AnimationDirection* value);
                [propput] HRESULT Direction([in] Windows.UI.Composition.AnimationDirection value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.KeyFrameAnimation)]
            [uuid(845BF0B4-D8DE-462F-8753-C80D43C6FF5A)]
            interface IKeyFrameAnimation3 : IInspectable
            {
                [propget] HRESULT DelayBehavior([out] [retval] Windows.UI.Composition.AnimationDelayBehavior* value);
                [propput] HRESULT DelayBehavior([in] Windows.UI.Composition.AnimationDelayBehavior value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.KeyFrameAnimation)]
            [uuid(BF0803F8-712A-4FC1-8C87-970859ED8D2E)]
            interface IKeyFrameAnimationFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.LayerVisual)]
            [uuid(AF843985-0444-4887-8E83-B40B253F822C)]
            interface ILayerVisual : IInspectable
            {
                [propget] HRESULT Effect([out] [retval] Windows.UI.Composition.CompositionEffectBrush** value);
                [propput] HRESULT Effect([in] Windows.UI.Composition.CompositionEffectBrush* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.LinearEasingFunction)]
            [uuid(9400975A-C7A6-46B3-ACF7-1A268A0A117D)]
            interface ILinearEasingFunction : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.PointLight)]
            [uuid(B18545B3-0C5A-4AB0-BEDC-4F3546948272)]
            interface IPointLight : IInspectable
            {
                [propget] HRESULT Color([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT Color([in] Windows.UI.Color value);
                [propget] HRESULT ConstantAttenuation([out] [retval] FLOAT* value);
                [propput] HRESULT ConstantAttenuation([in] FLOAT value);
                [propget] HRESULT CoordinateSpace([out] [retval] Windows.UI.Composition.Visual** value);
                [propput] HRESULT CoordinateSpace([in] Windows.UI.Composition.Visual* value);
                [propget] HRESULT LinearAttenuation([out] [retval] FLOAT* value);
                [propput] HRESULT LinearAttenuation([in] FLOAT value);
                [propget] HRESULT Offset([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Offset([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT QuadraticAttenuation([out] [retval] FLOAT* value);
                [propput] HRESULT QuadraticAttenuation([in] FLOAT value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.QuaternionKeyFrameAnimation)]
            [uuid(404E5835-ECF6-4240-8520-671279CF36BC)]
            interface IQuaternionKeyFrameAnimation : IInspectable
            {
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrame([in] FLOAT normalizedProgressKey, [in] Windows.Foundation.Numerics.Quaternion value);
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrameWithEasingFunction([in] FLOAT normalizedProgressKey, [in] Windows.Foundation.Numerics.Quaternion value, [in] Windows.UI.Composition.CompositionEasingFunction* easingFunction);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.RenderingDeviceReplacedEventArgs)]
            [uuid(3A31AC7D-28BF-4E7A-8524-71679D480F38)]
            interface IRenderingDeviceReplacedEventArgs : IInspectable
            {
                [propget] HRESULT GraphicsDevice([out] [retval] Windows.UI.Composition.CompositionGraphicsDevice** value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.ScalarKeyFrameAnimation)]
            [uuid(AE288FA9-252C-4B95-A725-BF85E38000A1)]
            interface IScalarKeyFrameAnimation : IInspectable
            {
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrame([in] FLOAT normalizedProgressKey, [in] FLOAT value);
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrameWithEasingFunction([in] FLOAT normalizedProgressKey, [in] FLOAT value, [in] Windows.UI.Composition.CompositionEasingFunction* easingFunction);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.SpotLight)]
            [uuid(5A9FE273-44A1-4F95-A422-8FA5116BDB44)]
            interface ISpotLight : IInspectable
            {
                [propget] HRESULT ConstantAttenuation([out] [retval] FLOAT* value);
                [propput] HRESULT ConstantAttenuation([in] FLOAT value);
                [propget] HRESULT CoordinateSpace([out] [retval] Windows.UI.Composition.Visual** value);
                [propput] HRESULT CoordinateSpace([in] Windows.UI.Composition.Visual* value);
                [propget] HRESULT Direction([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Direction([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT InnerConeAngle([out] [retval] FLOAT* value);
                [propput] HRESULT InnerConeAngle([in] FLOAT value);
                [propget] HRESULT InnerConeAngleInDegrees([out] [retval] FLOAT* value);
                [propput] HRESULT InnerConeAngleInDegrees([in] FLOAT value);
                [propget] HRESULT InnerConeColor([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT InnerConeColor([in] Windows.UI.Color value);
                [propget] HRESULT LinearAttenuation([out] [retval] FLOAT* value);
                [propput] HRESULT LinearAttenuation([in] FLOAT value);
                [propget] HRESULT Offset([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Offset([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT OuterConeAngle([out] [retval] FLOAT* value);
                [propput] HRESULT OuterConeAngle([in] FLOAT value);
                [propget] HRESULT OuterConeAngleInDegrees([out] [retval] FLOAT* value);
                [propput] HRESULT OuterConeAngleInDegrees([in] FLOAT value);
                [propget] HRESULT OuterConeColor([out] [retval] Windows.UI.Color* value);
                [propput] HRESULT OuterConeColor([in] Windows.UI.Color value);
                [propget] HRESULT QuadraticAttenuation([out] [retval] FLOAT* value);
                [propput] HRESULT QuadraticAttenuation([in] FLOAT value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.SpriteVisual)]
            [uuid(08E05581-1AD1-4F97-9757-402D76E4233B)]
            interface ISpriteVisual : IInspectable
            {
                [propget] HRESULT Brush([out] [retval] Windows.UI.Composition.CompositionBrush** value);
                [propput] HRESULT Brush([in] Windows.UI.Composition.CompositionBrush* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.SpriteVisual)]
            [uuid(588C9664-997A-4850-91FE-53CB58F81CE9)]
            interface ISpriteVisual2 : IInspectable
            {
                [propget] HRESULT Shadow([out] [retval] Windows.UI.Composition.CompositionShadow** value);
                [propput] HRESULT Shadow([in] Windows.UI.Composition.CompositionShadow* value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.StepEasingFunction)]
            [uuid(D0CAA74B-560C-4A0B-A5F6-206CA8C3ECD6)]
            interface IStepEasingFunction : IInspectable
            {
                [propget] HRESULT FinalStep([out] [retval] INT32* value);
                [propput] HRESULT FinalStep([in] INT32 value);
                [propget] HRESULT InitialStep([out] [retval] INT32* value);
                [propput] HRESULT InitialStep([in] INT32 value);
                [propget] HRESULT IsFinalStepSingleFrame([out] [retval] boolean* value);
                [propput] HRESULT IsFinalStepSingleFrame([in] boolean value);
                [propget] HRESULT IsInitialStepSingleFrame([out] [retval] boolean* value);
                [propput] HRESULT IsInitialStepSingleFrame([in] boolean value);
                [propget] HRESULT StepCount([out] [retval] INT32* value);
                [propput] HRESULT StepCount([in] INT32 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.Vector2KeyFrameAnimation)]
            [uuid(DF414515-4E29-4F11-B55E-BF2A6EB36294)]
            interface IVector2KeyFrameAnimation : IInspectable
            {
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrame([in] FLOAT normalizedProgressKey, [in] Windows.Foundation.Numerics.Vector2 value);
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrameWithEasingFunction([in] FLOAT normalizedProgressKey, [in] Windows.Foundation.Numerics.Vector2 value, [in] Windows.UI.Composition.CompositionEasingFunction* easingFunction);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.Vector3KeyFrameAnimation)]
            [uuid(C8039DAA-A281-43C2-A73D-B68E3C533C40)]
            interface IVector3KeyFrameAnimation : IInspectable
            {
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrame([in] FLOAT normalizedProgressKey, [in] Windows.Foundation.Numerics.Vector3 value);
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrameWithEasingFunction([in] FLOAT normalizedProgressKey, [in] Windows.Foundation.Numerics.Vector3 value, [in] Windows.UI.Composition.CompositionEasingFunction* easingFunction);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.Vector4KeyFrameAnimation)]
            [uuid(2457945B-ADDD-4385-9606-B6A3D5E4E1B9)]
            interface IVector4KeyFrameAnimation : IInspectable
            {
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrame([in] FLOAT normalizedProgressKey, [in] Windows.Foundation.Numerics.Vector4 value);
                [overload("InsertKeyFrame")] HRESULT InsertKeyFrameWithEasingFunction([in] FLOAT normalizedProgressKey, [in] Windows.Foundation.Numerics.Vector4 value, [in] Windows.UI.Composition.CompositionEasingFunction* easingFunction);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.Visual)]
            [uuid(117E202D-A859-4C89-873B-C2AA566788E3)]
            interface IVisual : IInspectable
            {
                [propget] HRESULT AnchorPoint([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT AnchorPoint([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT BackfaceVisibility([out] [retval] Windows.UI.Composition.CompositionBackfaceVisibility* value);
                [propput] HRESULT BackfaceVisibility([in] Windows.UI.Composition.CompositionBackfaceVisibility value);
                [propget] HRESULT BorderMode([out] [retval] Windows.UI.Composition.CompositionBorderMode* value);
                [propput] HRESULT BorderMode([in] Windows.UI.Composition.CompositionBorderMode value);
                [propget] HRESULT CenterPoint([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT CenterPoint([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT Clip([out] [retval] Windows.UI.Composition.CompositionClip** value);
                [propput] HRESULT Clip([in] Windows.UI.Composition.CompositionClip* value);
                [propget] HRESULT CompositeMode([out] [retval] Windows.UI.Composition.CompositionCompositeMode* value);
                [propput] HRESULT CompositeMode([in] Windows.UI.Composition.CompositionCompositeMode value);
                [propget] HRESULT IsVisible([out] [retval] boolean* value);
                [propput] HRESULT IsVisible([in] boolean value);
                [propget] HRESULT Offset([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Offset([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT Opacity([out] [retval] FLOAT* value);
                [propput] HRESULT Opacity([in] FLOAT value);
                [propget] HRESULT Orientation([out] [retval] Windows.Foundation.Numerics.Quaternion* value);
                [propput] HRESULT Orientation([in] Windows.Foundation.Numerics.Quaternion value);
                [propget] HRESULT Parent([out] [retval] Windows.UI.Composition.ContainerVisual** value);
                [propget] HRESULT RotationAngle([out] [retval] FLOAT* value);
                [propput] HRESULT RotationAngle([in] FLOAT value);
                [propget] HRESULT RotationAngleInDegrees([out] [retval] FLOAT* value);
                [propput] HRESULT RotationAngleInDegrees([in] FLOAT value);
                [propget] HRESULT RotationAxis([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT RotationAxis([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT Scale([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT Scale([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT Size([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT Size([in] Windows.Foundation.Numerics.Vector2 value);
                [propget] HRESULT TransformMatrix([out] [retval] Windows.Foundation.Numerics.Matrix4x4* value);
                [propput] HRESULT TransformMatrix([in] Windows.Foundation.Numerics.Matrix4x4 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [exclusiveto(Windows.UI.Composition.Visual)]
            [uuid(3052B611-56C3-4C3E-8BF3-F6E1AD473F06)]
            interface IVisual2 : IInspectable
            {
                [propget] HRESULT ParentForTransform([out] [retval] Windows.UI.Composition.Visual** value);
                [propput] HRESULT ParentForTransform([in] Windows.UI.Composition.Visual* value);
                [propget] HRESULT RelativeOffsetAdjustment([out] [retval] Windows.Foundation.Numerics.Vector3* value);
                [propput] HRESULT RelativeOffsetAdjustment([in] Windows.Foundation.Numerics.Vector3 value);
                [propget] HRESULT RelativeSizeAdjustment([out] [retval] Windows.Foundation.Numerics.Vector2* value);
                [propput] HRESULT RelativeSizeAdjustment([in] Windows.Foundation.Numerics.Vector2 value);
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.VisualCollection)]
            [uuid(8B745505-FD3E-4A98-84A8-E949468C6BCB)]
            interface IVisualCollection : IInspectable
                requires
                    Windows.Foundation.Collections.IIterable<Windows.UI.Composition.Visual*>
            {
                [propget] HRESULT Count([out] [retval] INT32* value);
                HRESULT InsertAbove([in] Windows.UI.Composition.Visual* newChild, [in] Windows.UI.Composition.Visual* sibling);
                HRESULT InsertAtBottom([in] Windows.UI.Composition.Visual* newChild);
                HRESULT InsertAtTop([in] Windows.UI.Composition.Visual* newChild);
                HRESULT InsertBelow([in] Windows.UI.Composition.Visual* newChild, [in] Windows.UI.Composition.Visual* sibling);
                HRESULT Remove([in] Windows.UI.Composition.Visual* child);
                HRESULT RemoveAll();
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [exclusiveto(Windows.UI.Composition.Visual)]
            [uuid(AD0FF93E-B502-4EB5-87B4-9A38A71D0137)]
            interface IVisualFactory : IInspectable
            {
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [exclusiveto(Windows.UI.Composition.VisualUnorderedCollection)]
            [uuid(338FAA70-54C8-40A7-8029-C9CEEB0AA250)]
            interface IVisualUnorderedCollection : IInspectable
                requires
                    Windows.Foundation.Collections.IIterable<Windows.UI.Composition.Visual*>
            {
                [propget] HRESULT Count([out] [retval] INT32* value);
                HRESULT Add([in] Windows.UI.Composition.Visual* newVisual);
                HRESULT Remove([in] Windows.UI.Composition.Visual* visual);
                HRESULT RemoveAll();
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass AmbientLight : Windows.UI.Composition.CompositionLight
            {
                [default] interface Windows.UI.Composition.IAmbientLight;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass ColorKeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IColorKeyFrameAnimation;
            }

            [composable(Windows.UI.Composition.ICompositionAnimationFactory, protected, Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionAnimation : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionAnimation;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.ICompositionAnimation2;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.ICompositionAnimationBase;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionAnimationGroup : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionAnimationGroup;
                interface Windows.Foundation.Collections.IIterable<Windows.UI.Composition.CompositionAnimation*>;
                interface Windows.UI.Composition.ICompositionAnimationBase;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionBackdropBrush : Windows.UI.Composition.CompositionBrush
            {
                [default] interface Windows.UI.Composition.ICompositionBackdropBrush;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionBatchCompletedEventArgs : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionBatchCompletedEventArgs;
            }

            [composable(Windows.UI.Composition.ICompositionBrushFactory, protected, Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionBrush : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionBrush;
            }

            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            [static(Windows.UI.Composition.ICompositionCapabilitiesStatics, Windows.Foundation.UniversalApiContract, 4.0)]
            [threading(both)]
            runtimeclass CompositionCapabilities
            {
                [default] interface Windows.UI.Composition.ICompositionCapabilities;
            }

            [composable(Windows.UI.Composition.ICompositionClipFactory, protected, Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionClip : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionClip;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.ICompositionClip2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionColorBrush : Windows.UI.Composition.CompositionBrush
            {
                [default] interface Windows.UI.Composition.ICompositionColorBrush;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionCommitBatch : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionCommitBatch;
            }

            [composable(Windows.UI.Composition.ICompositionDrawingSurfaceFactory, protected, Windows.Foundation.UniversalApiContract, 4.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionDrawingSurface : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionDrawingSurface;
                interface Windows.UI.Composition.ICompositionSurface;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Composition.ICompositionDrawingSurface2;
            }

            [composable(Windows.UI.Composition.ICompositionEasingFunctionFactory, protected, Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionEasingFunction : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionEasingFunction;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionEffectBrush : Windows.UI.Composition.CompositionBrush
            {
                [default] interface Windows.UI.Composition.ICompositionEffectBrush;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionEffectFactory : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionEffectFactory;
            }

            [activatable(Windows.UI.Composition.ICompositionEffectSourceParameterFactory, Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionEffectSourceParameter
            {
                [default] interface Windows.UI.Composition.ICompositionEffectSourceParameter;
                interface Windows.Graphics.Effects.IGraphicsEffectSource;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionGraphicsDevice : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionGraphicsDevice;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Composition.ICompositionGraphicsDevice2;
            }

            [composable(Windows.UI.Composition.ICompositionLightFactory, protected, Windows.Foundation.UniversalApiContract, 3.0)]
            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionLight : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionLight;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionMaskBrush : Windows.UI.Composition.CompositionBrush
            {
                [default] interface Windows.UI.Composition.ICompositionMaskBrush;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionNineGridBrush : Windows.UI.Composition.CompositionBrush
            {
                [default] interface Windows.UI.Composition.ICompositionNineGridBrush;
            }

            [composable(Windows.UI.Composition.ICompositionObjectFactory, protected, Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionObject;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.ICompositionObject2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionPropertySet : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionPropertySet;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.ICompositionPropertySet2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionScopedBatch : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionScopedBatch;
            }

            [composable(Windows.UI.Composition.ICompositionShadowFactory, protected, Windows.Foundation.UniversalApiContract, 3.0)]
            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionShadow : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionShadow;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionSurfaceBrush : Windows.UI.Composition.CompositionBrush
            {
                [default] interface Windows.UI.Composition.ICompositionSurfaceBrush;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.ICompositionSurfaceBrush2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionTarget : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionTarget;
            }

            [composable(Windows.UI.Composition.ICompositionVirtualDrawingSurfaceFactory, protected, Windows.Foundation.UniversalApiContract, 4.0)]
            [contract(Windows.Foundation.UniversalApiContract, 4.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CompositionVirtualDrawingSurface : Windows.UI.Composition.CompositionDrawingSurface
            {
                [default] interface Windows.UI.Composition.ICompositionVirtualDrawingSurface;
            }

            [activatable(Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Compositor
            {
                [default] interface Windows.UI.Composition.ICompositor;
                interface Windows.Foundation.IClosable;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.ICompositor2;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Composition.ICompositor3;
            }

            [composable(Windows.UI.Composition.IContainerVisualFactory, protected, Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass ContainerVisual : Windows.UI.Composition.Visual
            {
                [default] interface Windows.UI.Composition.IContainerVisual;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass CubicBezierEasingFunction : Windows.UI.Composition.CompositionEasingFunction
            {
                [default] interface Windows.UI.Composition.ICubicBezierEasingFunction;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass DistantLight : Windows.UI.Composition.CompositionLight
            {
                [default] interface Windows.UI.Composition.IDistantLight;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass DropShadow : Windows.UI.Composition.CompositionShadow
            {
                [default] interface Windows.UI.Composition.IDropShadow;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass ExpressionAnimation : Windows.UI.Composition.CompositionAnimation
            {
                [default] interface Windows.UI.Composition.IExpressionAnimation;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass ImplicitAnimationCollection : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.IImplicitAnimationCollection;
                interface Windows.Foundation.Collections.IIterable<Windows.Foundation.Collections.IKeyValuePair<HSTRING, Windows.UI.Composition.ICompositionAnimationBase*>*>;
                interface Windows.Foundation.Collections.IMap<HSTRING, Windows.UI.Composition.ICompositionAnimationBase*>;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass InsetClip : Windows.UI.Composition.CompositionClip
            {
                [default] interface Windows.UI.Composition.IInsetClip;
            }

            [composable(Windows.UI.Composition.IKeyFrameAnimationFactory, protected, Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass KeyFrameAnimation : Windows.UI.Composition.CompositionAnimation
            {
                [default] interface Windows.UI.Composition.IKeyFrameAnimation;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.IKeyFrameAnimation2;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Composition.IKeyFrameAnimation3;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass LayerVisual : Windows.UI.Composition.ContainerVisual
            {
                [default] interface Windows.UI.Composition.ILayerVisual;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass LinearEasingFunction : Windows.UI.Composition.CompositionEasingFunction
            {
                [default] interface Windows.UI.Composition.ILinearEasingFunction;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass PointLight : Windows.UI.Composition.CompositionLight
            {
                [default] interface Windows.UI.Composition.IPointLight;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass QuaternionKeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IQuaternionKeyFrameAnimation;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass RenderingDeviceReplacedEventArgs : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.IRenderingDeviceReplacedEventArgs;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass ScalarKeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IScalarKeyFrameAnimation;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SpotLight : Windows.UI.Composition.CompositionLight
            {
                [default] interface Windows.UI.Composition.ISpotLight;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass SpriteVisual : Windows.UI.Composition.ContainerVisual
            {
                [default] interface Windows.UI.Composition.ISpriteVisual;
                [contract(Windows.Foundation.UniversalApiContract, 3.0)] interface Windows.UI.Composition.ISpriteVisual2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass StepEasingFunction : Windows.UI.Composition.CompositionEasingFunction
            {
                [default] interface Windows.UI.Composition.IStepEasingFunction;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Vector2KeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IVector2KeyFrameAnimation;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Vector3KeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IVector3KeyFrameAnimation;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Vector4KeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IVector4KeyFrameAnimation;
            }

            [composable(Windows.UI.Composition.IVisualFactory, protected, Windows.Foundation.UniversalApiContract, 2.0)]
            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass Visual : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.IVisual;
                [contract(Windows.Foundation.UniversalApiContract, 4.0)] interface Windows.UI.Composition.IVisual2;
            }

            [contract(Windows.Foundation.UniversalApiContract, 2.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass VisualCollection : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.IVisualCollection;
                interface Windows.Foundation.Collections.IIterable<Windows.UI.Composition.Visual*>;
            }

            [contract(Windows.Foundation.UniversalApiContract, 3.0)]
            [marshaling_behavior(agile)]
            [threading(both)]
            runtimeclass VisualUnorderedCollection : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.IVisualUnorderedCollection;
                interface Windows.Foundation.Collections.IIterable<Windows.UI.Composition.Visual*>;
            }
        }
    }
}
