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

import "inspectable.idl";
import "AsyncInfo.idl";
import "EventToken.idl";
import "Windows.Foundation.idl";
import "Windows.UI.Xaml.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(__windows2Eui2Examl_h__)")
cpp_quote("#include <Windows.UI.Xaml.h>")
cpp_quote("#endif // !defined(__windows2Eui2Examl_h__)")
cpp_quote("#if defined(__cplusplus)")
cpp_quote("extern \"C\" {")
cpp_quote("#endif // defined(__cplusplus)")

// Forward Declare
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            runtimeclass DependencyProperty;
        }
    }
}
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Media
            {
                namespace Media3D
                {
                    typedef struct Matrix3D Matrix3D;

                    interface ICompositeTransform3D;

                    interface ICompositeTransform3DStatics;

                    interface IMatrix3DHelper;

                    interface IMatrix3DHelperStatics;

                    interface IPerspectiveTransform3D;

                    interface IPerspectiveTransform3DStatics;

                    interface ITransform3D;

                    interface ITransform3DFactory;

                    runtimeclass CompositeTransform3D;

                    runtimeclass Matrix3DHelper;

                    runtimeclass PerspectiveTransform3D;

                    runtimeclass Transform3D;
                }
            }
        }
    }
}

// Generic instantiations

// Type definition
namespace Windows
{
    namespace UI
    {
        namespace Xaml
        {
            namespace Media
            {
                namespace Media3D
                {
                    [version(0x06020000)]
                    struct Matrix3D
                    {
                        DOUBLE M11;
                        DOUBLE M12;
                        DOUBLE M13;
                        DOUBLE M14;
                        DOUBLE M21;
                        DOUBLE M22;
                        DOUBLE M23;
                        DOUBLE M24;
                        DOUBLE M31;
                        DOUBLE M32;
                        DOUBLE M33;
                        DOUBLE M34;
                        DOUBLE OffsetX;
                        DOUBLE OffsetY;
                        DOUBLE OffsetZ;
                        DOUBLE M44;
                    };

                    [exclusiveto(Windows.UI.Xaml.Media.Media3D.CompositeTransform3D)]
                    [uuid(8977CB01-AF8D-4AF5-B084-C08EB9704ABE)]
                    [version(0x0A000000)]
                    interface ICompositeTransform3D : IInspectable
                    {
                        [propget] HRESULT CenterX([out] [retval] DOUBLE* value);
                        [propput] HRESULT CenterX([in] DOUBLE value);
                        [propget] HRESULT CenterY([out] [retval] DOUBLE* value);
                        [propput] HRESULT CenterY([in] DOUBLE value);
                        [propget] HRESULT CenterZ([out] [retval] DOUBLE* value);
                        [propput] HRESULT CenterZ([in] DOUBLE value);
                        [propget] HRESULT RotationX([out] [retval] DOUBLE* value);
                        [propput] HRESULT RotationX([in] DOUBLE value);
                        [propget] HRESULT RotationY([out] [retval] DOUBLE* value);
                        [propput] HRESULT RotationY([in] DOUBLE value);
                        [propget] HRESULT RotationZ([out] [retval] DOUBLE* value);
                        [propput] HRESULT RotationZ([in] DOUBLE value);
                        [propget] HRESULT ScaleX([out] [retval] DOUBLE* value);
                        [propput] HRESULT ScaleX([in] DOUBLE value);
                        [propget] HRESULT ScaleY([out] [retval] DOUBLE* value);
                        [propput] HRESULT ScaleY([in] DOUBLE value);
                        [propget] HRESULT ScaleZ([out] [retval] DOUBLE* value);
                        [propput] HRESULT ScaleZ([in] DOUBLE value);
                        [propget] HRESULT TranslateX([out] [retval] DOUBLE* value);
                        [propput] HRESULT TranslateX([in] DOUBLE value);
                        [propget] HRESULT TranslateY([out] [retval] DOUBLE* value);
                        [propput] HRESULT TranslateY([in] DOUBLE value);
                        [propget] HRESULT TranslateZ([out] [retval] DOUBLE* value);
                        [propput] HRESULT TranslateZ([in] DOUBLE value);
                    }

                    [exclusiveto(Windows.UI.Xaml.Media.Media3D.CompositeTransform3D)]
                    [uuid(DDBF4D67-2A25-48F3-9808-C51EC3D55BEC)]
                    [version(0x0A000000)]
                    interface ICompositeTransform3DStatics : IInspectable
                    {
                        [propget] HRESULT CenterXProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT CenterYProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT CenterZProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT RotationXProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT RotationYProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT RotationZProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT ScaleXProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT ScaleYProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT ScaleZProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT TranslateXProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT TranslateYProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT TranslateZProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                    }

                    [exclusiveto(Windows.UI.Xaml.Media.Media3D.Matrix3DHelper)]
                    [uuid(E48C10EF-9927-4C9B-8213-07775512BA04)]
                    [version(0x06020000)]
                    interface IMatrix3DHelper : IInspectable
                    {
                    }

                    [exclusiveto(Windows.UI.Xaml.Media.Media3D.Matrix3DHelper)]
                    [uuid(9264545E-E158-4E74-8899-689160BD2F8C)]
                    [version(0x06020000)]
                    interface IMatrix3DHelperStatics : IInspectable
                    {
                        [propget] HRESULT Identity([out] [retval] Windows.UI.Xaml.Media.Media3D.Matrix3D* value);
                        HRESULT Multiply([in] Windows.UI.Xaml.Media.Media3D.Matrix3D matrix1, [in] Windows.UI.Xaml.Media.Media3D.Matrix3D matrix2, [out] [retval] Windows.UI.Xaml.Media.Media3D.Matrix3D* returnValue);
                        HRESULT FromElements([in] DOUBLE m11, [in] DOUBLE m12, [in] DOUBLE m13, [in] DOUBLE m14, [in] DOUBLE m21, [in] DOUBLE m22, [in] DOUBLE m23, [in] DOUBLE m24, [in] DOUBLE m31, [in] DOUBLE m32, [in] DOUBLE m33, [in] DOUBLE m34, [in] DOUBLE offsetX, [in] DOUBLE offsetY, [in] DOUBLE offsetZ, [in] DOUBLE m44, [out] [retval] Windows.UI.Xaml.Media.Media3D.Matrix3D* returnValue);
                        HRESULT GetHasInverse([in] Windows.UI.Xaml.Media.Media3D.Matrix3D target, [out] [retval] boolean* value);
                        HRESULT GetIsIdentity([in] Windows.UI.Xaml.Media.Media3D.Matrix3D target, [out] [retval] boolean* value);
                        HRESULT Invert([in] Windows.UI.Xaml.Media.Media3D.Matrix3D target, [out] [retval] Windows.UI.Xaml.Media.Media3D.Matrix3D* returnValue);
                    }

                    [exclusiveto(Windows.UI.Xaml.Media.Media3D.PerspectiveTransform3D)]
                    [uuid(9A7B532A-30F9-40A1-96C9-C59D87F95AC3)]
                    [version(0x0A000000)]
                    interface IPerspectiveTransform3D : IInspectable
                    {
                        [propget] HRESULT Depth([out] [retval] DOUBLE* value);
                        [propput] HRESULT Depth([in] DOUBLE value);
                        [propget] HRESULT OffsetX([out] [retval] DOUBLE* value);
                        [propput] HRESULT OffsetX([in] DOUBLE value);
                        [propget] HRESULT OffsetY([out] [retval] DOUBLE* value);
                        [propput] HRESULT OffsetY([in] DOUBLE value);
                    }

                    [exclusiveto(Windows.UI.Xaml.Media.Media3D.PerspectiveTransform3D)]
                    [uuid(8E6F6400-620C-48C7-844D-3F0984DA5B17)]
                    [version(0x0A000000)]
                    interface IPerspectiveTransform3DStatics : IInspectable
                    {
                        [propget] HRESULT DepthProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT OffsetXProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                        [propget] HRESULT OffsetYProperty([out] [retval] Windows.UI.Xaml.DependencyProperty** value);
                    }

                    [exclusiveto(Windows.UI.Xaml.Media.Media3D.Transform3D)]
                    [uuid(AE3ED43A-A9FC-4C31-86CD-56D9CA251A69)]
                    [version(0x0A000000)]
                    interface ITransform3D : IInspectable
                    {
                    }

                    [exclusiveto(Windows.UI.Xaml.Media.Media3D.Transform3D)]
                    [uuid(052C1F7A-8D73-48CD-BBB8-D00434CAAE5D)]
                    [version(0x0A000000)]
                    interface ITransform3DFactory : IInspectable
                    {
                        HRESULT CreateInstance([in] IInspectable* outer, [out] IInspectable** inner, [out] [retval] Windows.UI.Xaml.Media.Media3D.Transform3D** instance);
                    }

                    [activatable(0x0A000000)]
                    [marshaling_behavior(agile)]
                    [static(Windows.UI.Xaml.Media.Media3D.ICompositeTransform3DStatics, 0x0A000000)]
                    [threading(both)]
                    [version(0x0A000000)]
                    runtimeclass CompositeTransform3D : Windows.UI.Xaml.Media.Media3D.Transform3D
                    {
                        [default] interface Windows.UI.Xaml.Media.Media3D.ICompositeTransform3D;
                    }

                    [marshaling_behavior(agile)]
                    [static(Windows.UI.Xaml.Media.Media3D.IMatrix3DHelperStatics, 0x06020000)]
                    [threading(both)]
                    [version(0x06020000)]
                    runtimeclass Matrix3DHelper
                    {
                        [default] interface Windows.UI.Xaml.Media.Media3D.IMatrix3DHelper;
                    }

                    [activatable(0x0A000000)]
                    [marshaling_behavior(agile)]
                    [static(Windows.UI.Xaml.Media.Media3D.IPerspectiveTransform3DStatics, 0x0A000000)]
                    [threading(both)]
                    [version(0x0A000000)]
                    runtimeclass PerspectiveTransform3D : Windows.UI.Xaml.Media.Media3D.Transform3D
                    {
                        [default] interface Windows.UI.Xaml.Media.Media3D.IPerspectiveTransform3D;
                    }

                    [composable(Windows.UI.Xaml.Media.Media3D.ITransform3DFactory, protected, 0x0A000000)]
                    [marshaling_behavior(agile)]
                    [threading(both)]
                    [version(0x0A000000)]
                    runtimeclass Transform3D : Windows.UI.Xaml.DependencyObject
                    {
                        [default] interface Windows.UI.Xaml.Media.Media3D.ITransform3D;
                    }
                }
            }
        }
    }
}
