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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.Foundation.Numerics.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(__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;
    }
}
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 UI
    {
        typedef struct Color Color;
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Core
        {
            runtimeclass CoreDispatcher;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Composition
        {
            typedef enum AnimationIterationBehavior AnimationIterationBehavior;

            typedef enum AnimationStopBehavior AnimationStopBehavior;

            typedef enum CompositionBatchTypes CompositionBatchTypes;

            typedef enum CompositionBackfaceVisibility CompositionBackfaceVisibility;

            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 IColorKeyFrameAnimation;

            interface ICompositionAnimation;

            interface ICompositionBatchCompletedEventArgs;

            interface ICompositionBrush;

            interface ICompositionClip;

            interface ICompositionColorBrush;

            interface ICompositionCommitBatch;

            interface ICompositionDrawingSurface;

            interface ICompositionEasingFunction;

            interface ICompositionEffectBrush;

            interface ICompositionEffectFactory;

            interface ICompositionEffectSourceParameter;

            interface ICompositionEffectSourceParameterFactory;

            interface ICompositionGraphicsDevice;

            interface ICompositionObject;

            interface ICompositionPropertySet;

            interface ICompositionScopedBatch;

            interface ICompositionSurface;

            interface ICompositionSurfaceBrush;

            interface ICompositionTarget;

            interface ICompositor;

            interface IContainerVisual;

            interface ICubicBezierEasingFunction;

            interface IExpressionAnimation;

            interface IInsetClip;

            interface IKeyFrameAnimation;

            interface ILinearEasingFunction;

            interface IQuaternionKeyFrameAnimation;

            interface IRenderingDeviceReplacedEventArgs;

            interface IScalarKeyFrameAnimation;

            interface ISpriteVisual;

            interface IVector2KeyFrameAnimation;

            interface IVector3KeyFrameAnimation;

            interface IVector4KeyFrameAnimation;

            interface IVisual;

            interface IVisualCollection;

            interface ICompositionAnimationFactory;

            interface ICompositionBrushFactory;

            interface ICompositionClipFactory;

            interface ICompositionEasingFunctionFactory;

            interface ICompositionObjectFactory;

            interface IContainerVisualFactory;

            interface IKeyFrameAnimationFactory;

            interface IVisualFactory;

            runtimeclass CompositionObject;

            runtimeclass CompositionBatchCompletedEventArgs;

            runtimeclass CompositionEasingFunction;

            runtimeclass CompositionBrush;

            runtimeclass CompositionEffectBrush;

            runtimeclass CompositionEffectSourceParameter;

            runtimeclass CompositionGraphicsDevice;

            runtimeclass Compositor;

            runtimeclass CompositionAnimation;

            runtimeclass CompositionPropertySet;

            runtimeclass CompositionDrawingSurface;

            runtimeclass CompositionColorBrush;

            runtimeclass CompositionEffectFactory;

            runtimeclass CompositionScopedBatch;

            runtimeclass CompositionSurfaceBrush;

            runtimeclass CompositionTarget;

            runtimeclass CompositionCommitBatch;

            runtimeclass CubicBezierEasingFunction;

            runtimeclass ExpressionAnimation;

            runtimeclass LinearEasingFunction;

            runtimeclass RenderingDeviceReplacedEventArgs;

            runtimeclass Visual;

            runtimeclass ContainerVisual;

            runtimeclass SpriteVisual;

            runtimeclass CompositionClip;

            runtimeclass InsetClip;

            runtimeclass VisualCollection;

            runtimeclass KeyFrameAnimation;

            runtimeclass ColorKeyFrameAnimation;

            runtimeclass QuaternionKeyFrameAnimation;

            runtimeclass ScalarKeyFrameAnimation;

            runtimeclass Vector2KeyFrameAnimation;

            runtimeclass Vector3KeyFrameAnimation;

            runtimeclass Vector4KeyFrameAnimation;
        }
    }
}

// Generic instantiations
namespace Windows
{
    namespace UI
    {
        namespace Composition
        {
            declare
            {
                interface Windows.Foundation.Collections.IIterable<Windows.UI.Composition.Visual*>;

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

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

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

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Composition
        {
            [version(0x0A000001)]
            enum AnimationIterationBehavior
            {
                Count   = 0,
                Forever = 1
            };

            [version(0x0A000001)]
            enum AnimationStopBehavior
            {
                LeaveCurrentValue = 0,
                SetToInitialValue = 1,
                SetToFinalValue   = 2
            };

            [flags]
            [version(0x0A000001)]
            enum CompositionBatchTypes
            {
                None      = 0x0,
                Animation = 0x1,
                Effect    = 0x2
            };

            [version(0x0A000001)]
            enum CompositionBackfaceVisibility
            {
                Inherit = 0,
                Visible = 1,
                Hidden  = 2
            };

            [version(0x0A000001)]
            enum CompositionBitmapInterpolationMode
            {
                NearestNeighbor = 0,
                Linear          = 1
            };

            [version(0x0A000001)]
            enum CompositionBorderMode
            {
                Inherit = 0,
                Soft    = 1,
                Hard    = 2
            };

            [version(0x0A000001)]
            enum CompositionColorSpace
            {
                Auto = 0,
                Hsl  = 1,
                Rgb  = 2
            };

            [version(0x0A000001)]
            enum CompositionCompositeMode
            {
                Inherit           = 0,
                SourceOver        = 1,
                DestinationInvert = 2
            };

            [version(0x0A000001)]
            enum CompositionEffectFactoryLoadStatus
            {
                Success          = 0,
                EffectTooComplex = 1,
                Pending          = 2,
                Other            = -1
            };

            [version(0x0A000001)]
            enum CompositionGetValueStatus
            {
                Succeeded    = 0,
                TypeMismatch = 1,
                NotFound     = 2
            };

            [version(0x0A000001)]
            enum CompositionStretch
            {
                None          = 0,
                Fill          = 1,
                Uniform       = 2,
                UniformToFill = 3
            };

            [exclusiveto(Windows.UI.Composition.ColorKeyFrameAnimation)]
            [uuid(93ADB5E9-8E05-4593-84A3-DCA152781E56)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.CompositionAnimation)]
            [uuid(464C4C2C-1CAA-4061-9B40-E13FDE1503CA)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.CompositionBatchCompletedEventArgs)]
            [uuid(0D00DAD0-9464-450A-A562-2E2698B0A812)]
            [version(0x0A000001)]
            interface ICompositionBatchCompletedEventArgs : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.CompositionBrush)]
            [uuid(AB0D7608-30C0-40E9-B568-B60A6BD1FB46)]
            [version(0x0A000001)]
            interface ICompositionBrush : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.CompositionClip)]
            [uuid(1CCD2A52-CFC7-4ACE-9983-146BB8EB6A3C)]
            [version(0x0A000001)]
            interface ICompositionClip : IInspectable
            {
            }

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

            [exclusiveto(Windows.UI.Composition.CompositionCommitBatch)]
            [uuid(0D00DAD0-CA07-4400-8C8E-CB5DB08559CC)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.CompositionDrawingSurface)]
            [uuid(A166C300-FAD0-4D11-9E67-E433162FF49E)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.CompositionEasingFunction)]
            [uuid(5145E356-BF79-4EA8-8CC2-6B5B472E6C9A)]
            [version(0x0A000001)]
            interface ICompositionEasingFunction : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.CompositionEffectBrush)]
            [uuid(BF7F795E-83CC-44BF-A447-3E3C071789EC)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.CompositionEffectFactory)]
            [uuid(BE5624AF-BA7E-4510-9850-41C0B4FF74DF)]
            [version(0x0A000001)]
            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);
            }

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

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

            [exclusiveto(Windows.UI.Composition.CompositionGraphicsDevice)]
            [uuid(FB22C6E1-80A2-4667-9936-DBEAF6EEFE95)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.CompositionObject)]
            [uuid(BCB4AD45-7609-4550-934F-16002A68FDED)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.CompositionPropertySet)]
            [uuid(C9D6D202-5F67-4453-9117-9EADD430D3C2)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.CompositionScopedBatch)]
            [uuid(0D00DAD0-FB07-46FD-8C72-6280D1A3D1DD)]
            [version(0x0A000001)]
            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);
            }

            [uuid(1527540D-42C7-47A6-A408-668F79A90DFB)]
            [version(0x0A000001)]
            interface ICompositionSurface : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.CompositionSurfaceBrush)]
            [uuid(AD016D79-1E4C-4C0D-9C29-83338C87C162)]
            [version(0x0A000001)]
            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);
            }

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

            [exclusiveto(Windows.UI.Composition.Compositor)]
            [uuid(B403CA50-7F8C-4E83-985F-CC45060036D8)]
            [version(0x0A000001)]
            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);
            }

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

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

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

            [exclusiveto(Windows.UI.Composition.InsetClip)]
            [uuid(1E73E647-84C7-477A-B474-5880E0442E15)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.KeyFrameAnimation)]
            [uuid(126E7F22-3AE9-4540-9A8A-DEAE8A4A4A84)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.LinearEasingFunction)]
            [uuid(9400975A-C7A6-46B3-ACF7-1A268A0A117D)]
            [version(0x0A000001)]
            interface ILinearEasingFunction : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.QuaternionKeyFrameAnimation)]
            [uuid(404E5835-ECF6-4240-8520-671279CF36BC)]
            [version(0x0A000001)]
            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);
            }

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

            [exclusiveto(Windows.UI.Composition.ScalarKeyFrameAnimation)]
            [uuid(AE288FA9-252C-4B95-A725-BF85E38000A1)]
            [version(0x0A000001)]
            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);
            }

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

            [exclusiveto(Windows.UI.Composition.Vector2KeyFrameAnimation)]
            [uuid(DF414515-4E29-4F11-B55E-BF2A6EB36294)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.Vector3KeyFrameAnimation)]
            [uuid(C8039DAA-A281-43C2-A73D-B68E3C533C40)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.Vector4KeyFrameAnimation)]
            [uuid(2457945B-ADDD-4385-9606-B6A3D5E4E1B9)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.Visual)]
            [uuid(117E202D-A859-4C89-873B-C2AA566788E3)]
            [version(0x0A000001)]
            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);
            }

            [exclusiveto(Windows.UI.Composition.VisualCollection)]
            [uuid(8B745505-FD3E-4A98-84A8-E949468C6BCB)]
            [version(0x0A000001)]
            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();
            }

            [exclusiveto(Windows.UI.Composition.CompositionAnimation)]
            [uuid(10F6C4FB-6E51-4C25-BBD3-586A9BEC3EF4)]
            [version(0x0A000001)]
            interface ICompositionAnimationFactory : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.CompositionBrush)]
            [uuid(DA53FB4C-4650-47C4-AD76-765379607ED6)]
            [version(0x0A000001)]
            interface ICompositionBrushFactory : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.CompositionClip)]
            [uuid(B9484CAF-20C7-4AED-AC4A-9C78BA1302CF)]
            [version(0x0A000001)]
            interface ICompositionClipFactory : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.CompositionEasingFunction)]
            [uuid(60840774-3DA0-4949-8200-7206C00190A0)]
            [version(0x0A000001)]
            interface ICompositionEasingFunctionFactory : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.CompositionObject)]
            [uuid(51205C5E-558A-4F2A-8D39-37BFE1E20DDD)]
            [version(0x0A000001)]
            interface ICompositionObjectFactory : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.ContainerVisual)]
            [uuid(0363A65B-C7DA-4D9A-95F4-69B5C8DF670B)]
            [version(0x0A000001)]
            interface IContainerVisualFactory : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.KeyFrameAnimation)]
            [uuid(BF0803F8-712A-4FC1-8C87-970859ED8D2E)]
            [version(0x0A000001)]
            interface IKeyFrameAnimationFactory : IInspectable
            {
            }

            [exclusiveto(Windows.UI.Composition.Visual)]
            [uuid(AD0FF93E-B502-4EB5-87B4-9A38A71D0137)]
            [version(0x0A000001)]
            interface IVisualFactory : IInspectable
            {
            }

            [composable(Windows.UI.Composition.ICompositionObjectFactory, protected, 0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionObject;
                interface Windows.Foundation.IClosable;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionBatchCompletedEventArgs : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionBatchCompletedEventArgs;
            }

            [composable(Windows.UI.Composition.ICompositionEasingFunctionFactory, protected, 0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionEasingFunction : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionEasingFunction;
            }

            [composable(Windows.UI.Composition.ICompositionBrushFactory, protected, 0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionBrush : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionBrush;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionEffectBrush : Windows.UI.Composition.CompositionBrush
            {
                [default] interface Windows.UI.Composition.ICompositionEffectBrush;
            }

            [activatable(Windows.UI.Composition.ICompositionEffectSourceParameterFactory, 0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionEffectSourceParameter
            {
                [default] interface Windows.UI.Composition.ICompositionEffectSourceParameter;
                interface Windows.Graphics.Effects.IGraphicsEffectSource;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionGraphicsDevice : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionGraphicsDevice;
            }

            [activatable(0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass Compositor
            {
                [default] interface Windows.UI.Composition.ICompositor;
                interface Windows.Foundation.IClosable;
            }

            [composable(Windows.UI.Composition.ICompositionAnimationFactory, protected, 0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionAnimation : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionAnimation;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionPropertySet : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionPropertySet;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionDrawingSurface : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionDrawingSurface;
                interface Windows.UI.Composition.ICompositionSurface;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionColorBrush : Windows.UI.Composition.CompositionBrush
            {
                [default] interface Windows.UI.Composition.ICompositionColorBrush;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionEffectFactory : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionEffectFactory;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionScopedBatch : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionScopedBatch;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionSurfaceBrush : Windows.UI.Composition.CompositionBrush
            {
                [default] interface Windows.UI.Composition.ICompositionSurfaceBrush;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionTarget : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionTarget;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionCommitBatch : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionCommitBatch;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CubicBezierEasingFunction : Windows.UI.Composition.CompositionEasingFunction
            {
                [default] interface Windows.UI.Composition.ICubicBezierEasingFunction;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass ExpressionAnimation : Windows.UI.Composition.CompositionAnimation
            {
                [default] interface Windows.UI.Composition.IExpressionAnimation;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass LinearEasingFunction : Windows.UI.Composition.CompositionEasingFunction
            {
                [default] interface Windows.UI.Composition.ILinearEasingFunction;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass RenderingDeviceReplacedEventArgs : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.IRenderingDeviceReplacedEventArgs;
            }

            [composable(Windows.UI.Composition.IVisualFactory, protected, 0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass Visual : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.IVisual;
            }

            [composable(Windows.UI.Composition.IContainerVisualFactory, protected, 0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass ContainerVisual : Windows.UI.Composition.Visual
            {
                [default] interface Windows.UI.Composition.IContainerVisual;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass SpriteVisual : Windows.UI.Composition.ContainerVisual
            {
                [default] interface Windows.UI.Composition.ISpriteVisual;
            }

            [composable(Windows.UI.Composition.ICompositionClipFactory, protected, 0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass CompositionClip : Windows.UI.Composition.CompositionObject
            {
                [default] interface Windows.UI.Composition.ICompositionClip;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass InsetClip : Windows.UI.Composition.CompositionClip
            {
                [default] interface Windows.UI.Composition.IInsetClip;
            }

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

            [composable(Windows.UI.Composition.IKeyFrameAnimationFactory, protected, 0x0A000001)]
            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass KeyFrameAnimation : Windows.UI.Composition.CompositionAnimation
            {
                [default] interface Windows.UI.Composition.IKeyFrameAnimation;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass ColorKeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IColorKeyFrameAnimation;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass QuaternionKeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IQuaternionKeyFrameAnimation;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass ScalarKeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IScalarKeyFrameAnimation;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass Vector2KeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IVector2KeyFrameAnimation;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass Vector3KeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IVector3KeyFrameAnimation;
            }

            [marshaling_behavior(agile)]
            [threading(both)]
            [version(0x0A000001)]
            runtimeclass Vector4KeyFrameAnimation : Windows.UI.Composition.KeyFrameAnimation
            {
                [default] interface Windows.UI.Composition.IVector4KeyFrameAnimation;
            }
        }
    }
}
