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

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

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

                    interface IMatrix3DHelper;

                    interface IMatrix3DHelperStatics;

                    runtimeclass Matrix3DHelper;
                }
            }
        }
    }
}

// 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;
                    };

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

                    [uuid(9264545E-E158-4E74-8899-689160BD2F8C)]
                    [exclusiveto(Windows.UI.Xaml.Media.Media3D.Matrix3DHelper)]
                    [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);
                    }

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