/*** Autogenerated by WIDL 9.0 from include/windows.foundation.numerics.idl - Do not edit ***/

#ifdef _WIN32
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
#include <rpc.h>
#include <rpcndr.h>
#endif

#ifndef COM_NO_WINDOWS_H
#include <windows.h>
#include <ole2.h>
#endif

#ifndef __windows_foundation_numerics_h__
#define __windows_foundation_numerics_h__

#ifndef __WIDL_INLINE
#if defined(__cplusplus) || defined(_MSC_VER)
#define __WIDL_INLINE inline
#elif defined(__GNUC__)
#define __WIDL_INLINE __inline__
#endif
#endif

/* Forward declarations */

#ifndef ____FIReference_1_Matrix4x4_FWD_DEFINED__
#define ____FIReference_1_Matrix4x4_FWD_DEFINED__
typedef interface __FIReference_1_Matrix4x4 __FIReference_1_Matrix4x4;
#ifdef __cplusplus
#define __FIReference_1_Matrix4x4 ABI::Windows::Foundation::IReference<ABI::Windows::Foundation::Numerics::Matrix4x4 >
#endif /* __cplusplus */
#endif

#ifndef ____FIReference_1_Vector2_FWD_DEFINED__
#define ____FIReference_1_Vector2_FWD_DEFINED__
typedef interface __FIReference_1_Vector2 __FIReference_1_Vector2;
#ifdef __cplusplus
#define __FIReference_1_Vector2 ABI::Windows::Foundation::IReference<ABI::Windows::Foundation::Numerics::Vector2 >
#endif /* __cplusplus */
#endif

#ifndef ____FIReference_1_Vector3_FWD_DEFINED__
#define ____FIReference_1_Vector3_FWD_DEFINED__
typedef interface __FIReference_1_Vector3 __FIReference_1_Vector3;
#ifdef __cplusplus
#define __FIReference_1_Vector3 ABI::Windows::Foundation::IReference<ABI::Windows::Foundation::Numerics::Vector3 >
#endif /* __cplusplus */
#endif

/* Headers for imported files */

#include <inspectable.h>
#include <asyncinfo.h>
#include <eventtoken.h>
#include <windowscontracts.h>
#include <windows.foundation.h>

#ifdef __cplusplus
extern "C" {
#endif

#ifndef __cplusplus
typedef struct __x_ABI_CWindows_CFoundation_CNumerics_CMatrix3x2 __x_ABI_CWindows_CFoundation_CNumerics_CMatrix3x2;
#else /* __cplusplus */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                typedef struct Matrix3x2 Matrix3x2;
            }
        }
    }
}
#endif /* __cplusplus */

#ifndef __cplusplus
typedef struct __x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4 __x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4;
#else /* __cplusplus */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                typedef struct Matrix4x4 Matrix4x4;
            }
        }
    }
}
#endif /* __cplusplus */

#ifndef __cplusplus
typedef struct __x_ABI_CWindows_CFoundation_CNumerics_CPlane __x_ABI_CWindows_CFoundation_CNumerics_CPlane;
#else /* __cplusplus */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                typedef struct Plane Plane;
            }
        }
    }
}
#endif /* __cplusplus */

#ifndef __cplusplus
typedef struct __x_ABI_CWindows_CFoundation_CNumerics_CQuaternion __x_ABI_CWindows_CFoundation_CNumerics_CQuaternion;
#else /* __cplusplus */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                typedef struct Quaternion Quaternion;
            }
        }
    }
}
#endif /* __cplusplus */

#ifndef __cplusplus
typedef struct __x_ABI_CWindows_CFoundation_CNumerics_CVector2 __x_ABI_CWindows_CFoundation_CNumerics_CVector2;
#else /* __cplusplus */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                typedef struct Vector2 Vector2;
            }
        }
    }
}
#endif /* __cplusplus */

#ifndef __cplusplus
typedef struct __x_ABI_CWindows_CFoundation_CNumerics_CVector3 __x_ABI_CWindows_CFoundation_CNumerics_CVector3;
#else /* __cplusplus */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                typedef struct Vector3 Vector3;
            }
        }
    }
}
#endif /* __cplusplus */

#ifndef __cplusplus
typedef struct __x_ABI_CWindows_CFoundation_CNumerics_CVector4 __x_ABI_CWindows_CFoundation_CNumerics_CVector4;
#else /* __cplusplus */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                typedef struct Vector4 Vector4;
            }
        }
    }
}
#endif /* __cplusplus */

#ifndef ____FIReference_1_Matrix4x4_FWD_DEFINED__
#define ____FIReference_1_Matrix4x4_FWD_DEFINED__
typedef interface __FIReference_1_Matrix4x4 __FIReference_1_Matrix4x4;
#ifdef __cplusplus
#define __FIReference_1_Matrix4x4 ABI::Windows::Foundation::IReference<ABI::Windows::Foundation::Numerics::Matrix4x4 >
#endif /* __cplusplus */
#endif

#ifndef ____FIReference_1_Vector2_FWD_DEFINED__
#define ____FIReference_1_Vector2_FWD_DEFINED__
typedef interface __FIReference_1_Vector2 __FIReference_1_Vector2;
#ifdef __cplusplus
#define __FIReference_1_Vector2 ABI::Windows::Foundation::IReference<ABI::Windows::Foundation::Numerics::Vector2 >
#endif /* __cplusplus */
#endif

#ifndef ____FIReference_1_Vector3_FWD_DEFINED__
#define ____FIReference_1_Vector3_FWD_DEFINED__
typedef interface __FIReference_1_Vector3 __FIReference_1_Vector3;
#ifdef __cplusplus
#define __FIReference_1_Vector3 ABI::Windows::Foundation::IReference<ABI::Windows::Foundation::Numerics::Vector3 >
#endif /* __cplusplus */
#endif

#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                struct Matrix3x2 {
                    FLOAT M11;
                    FLOAT M12;
                    FLOAT M21;
                    FLOAT M22;
                    FLOAT M31;
                    FLOAT M32;
                };
            }
        }
    }
}
extern "C" {
#else
struct __x_ABI_CWindows_CFoundation_CNumerics_CMatrix3x2 {
    FLOAT M11;
    FLOAT M12;
    FLOAT M21;
    FLOAT M22;
    FLOAT M31;
    FLOAT M32;
};
#ifdef WIDL_using_Windows_Foundation_Numerics
#define Matrix3x2 __x_ABI_CWindows_CFoundation_CNumerics_CMatrix3x2
#endif /* WIDL_using_Windows_Foundation_Numerics */
#endif

#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                struct Matrix4x4 {
                    FLOAT M11;
                    FLOAT M12;
                    FLOAT M13;
                    FLOAT M14;
                    FLOAT M21;
                    FLOAT M22;
                    FLOAT M23;
                    FLOAT M24;
                    FLOAT M31;
                    FLOAT M32;
                    FLOAT M33;
                    FLOAT M34;
                    FLOAT M41;
                    FLOAT M42;
                    FLOAT M43;
                    FLOAT M44;
                };
            }
        }
    }
}
extern "C" {
#else
struct __x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4 {
    FLOAT M11;
    FLOAT M12;
    FLOAT M13;
    FLOAT M14;
    FLOAT M21;
    FLOAT M22;
    FLOAT M23;
    FLOAT M24;
    FLOAT M31;
    FLOAT M32;
    FLOAT M33;
    FLOAT M34;
    FLOAT M41;
    FLOAT M42;
    FLOAT M43;
    FLOAT M44;
};
#ifdef WIDL_using_Windows_Foundation_Numerics
#define Matrix4x4 __x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4
#endif /* WIDL_using_Windows_Foundation_Numerics */
#endif

#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                struct Vector3 {
                    FLOAT X;
                    FLOAT Y;
                    FLOAT Z;
                };
            }
        }
    }
}
extern "C" {
#else
struct __x_ABI_CWindows_CFoundation_CNumerics_CVector3 {
    FLOAT X;
    FLOAT Y;
    FLOAT Z;
};
#ifdef WIDL_using_Windows_Foundation_Numerics
#define Vector3 __x_ABI_CWindows_CFoundation_CNumerics_CVector3
#endif /* WIDL_using_Windows_Foundation_Numerics */
#endif

#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                struct Plane {
                    struct Vector3 Normal;
                    FLOAT D;
                };
            }
        }
    }
}
extern "C" {
#else
struct __x_ABI_CWindows_CFoundation_CNumerics_CPlane {
    struct __x_ABI_CWindows_CFoundation_CNumerics_CVector3 Normal;
    FLOAT D;
};
#ifdef WIDL_using_Windows_Foundation_Numerics
#define Plane __x_ABI_CWindows_CFoundation_CNumerics_CPlane
#endif /* WIDL_using_Windows_Foundation_Numerics */
#endif

#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                struct Quaternion {
                    FLOAT X;
                    FLOAT Y;
                    FLOAT Z;
                    FLOAT W;
                };
            }
        }
    }
}
extern "C" {
#else
struct __x_ABI_CWindows_CFoundation_CNumerics_CQuaternion {
    FLOAT X;
    FLOAT Y;
    FLOAT Z;
    FLOAT W;
};
#ifdef WIDL_using_Windows_Foundation_Numerics
#define Quaternion __x_ABI_CWindows_CFoundation_CNumerics_CQuaternion
#endif /* WIDL_using_Windows_Foundation_Numerics */
#endif

#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                struct Vector2 {
                    FLOAT X;
                    FLOAT Y;
                };
            }
        }
    }
}
extern "C" {
#else
struct __x_ABI_CWindows_CFoundation_CNumerics_CVector2 {
    FLOAT X;
    FLOAT Y;
};
#ifdef WIDL_using_Windows_Foundation_Numerics
#define Vector2 __x_ABI_CWindows_CFoundation_CNumerics_CVector2
#endif /* WIDL_using_Windows_Foundation_Numerics */
#endif

#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
#if WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000
#ifdef __cplusplus
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            namespace Numerics {
                struct Vector4 {
                    FLOAT X;
                    FLOAT Y;
                    FLOAT Z;
                    FLOAT W;
                };
            }
        }
    }
}
extern "C" {
#else
struct __x_ABI_CWindows_CFoundation_CNumerics_CVector4 {
    FLOAT X;
    FLOAT Y;
    FLOAT Z;
    FLOAT W;
};
#ifdef WIDL_using_Windows_Foundation_Numerics
#define Vector4 __x_ABI_CWindows_CFoundation_CNumerics_CVector4
#endif /* WIDL_using_Windows_Foundation_Numerics */
#endif

#endif /* WINDOWS_FOUNDATION_UNIVERSALAPICONTRACT_VERSION >= 0x10000 */
/*****************************************************************************
 * IReference<ABI::Windows::Foundation::Numerics::Matrix4x4 > interface
 */
#ifndef ____FIReference_1_Matrix4x4_INTERFACE_DEFINED__
#define ____FIReference_1_Matrix4x4_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIReference_1_Matrix4x4, 0xdacbffdc, 0x68ef, 0x5fd0, 0xb6,0x57, 0x78,0x2d,0x0a,0xc9,0x80,0x7e);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("dacbffdc-68ef-5fd0-b657-782d0ac9807e")
            IReference<ABI::Windows::Foundation::Numerics::Matrix4x4 > : IReference_impl<ABI::Windows::Foundation::Numerics::Matrix4x4 >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIReference_1_Matrix4x4, 0xdacbffdc, 0x68ef, 0x5fd0, 0xb6,0x57, 0x78,0x2d,0x0a,0xc9,0x80,0x7e)
#endif
#else
typedef struct __FIReference_1_Matrix4x4Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIReference_1_Matrix4x4 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIReference_1_Matrix4x4 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIReference_1_Matrix4x4 *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIReference_1_Matrix4x4 *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIReference_1_Matrix4x4 *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIReference_1_Matrix4x4 *This,
        TrustLevel *trustLevel);

    /*** IReference<ABI::Windows::Foundation::Numerics::Matrix4x4 > methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Value)(
        __FIReference_1_Matrix4x4 *This,
        struct __x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4 *value);

    END_INTERFACE
} __FIReference_1_Matrix4x4Vtbl;

interface __FIReference_1_Matrix4x4 {
    CONST_VTBL __FIReference_1_Matrix4x4Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIReference_1_Matrix4x4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIReference_1_Matrix4x4_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIReference_1_Matrix4x4_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIReference_1_Matrix4x4_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIReference_1_Matrix4x4_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIReference_1_Matrix4x4_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IReference<ABI::Windows::Foundation::Numerics::Matrix4x4 > methods ***/
#define __FIReference_1_Matrix4x4_get_Value(This,value) (This)->lpVtbl->get_Value(This,value)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT __FIReference_1_Matrix4x4_QueryInterface(__FIReference_1_Matrix4x4* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG __FIReference_1_Matrix4x4_AddRef(__FIReference_1_Matrix4x4* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG __FIReference_1_Matrix4x4_Release(__FIReference_1_Matrix4x4* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static __WIDL_INLINE HRESULT __FIReference_1_Matrix4x4_GetIids(__FIReference_1_Matrix4x4* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static __WIDL_INLINE HRESULT __FIReference_1_Matrix4x4_GetRuntimeClassName(__FIReference_1_Matrix4x4* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static __WIDL_INLINE HRESULT __FIReference_1_Matrix4x4_GetTrustLevel(__FIReference_1_Matrix4x4* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IReference<ABI::Windows::Foundation::Numerics::Matrix4x4 > methods ***/
static __WIDL_INLINE HRESULT __FIReference_1_Matrix4x4_get_Value(__FIReference_1_Matrix4x4* This,struct __x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4 *value) {
    return This->lpVtbl->get_Value(This,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IReference_Matrix4x4 IID___FIReference_1_Matrix4x4
#define IReference_Matrix4x4Vtbl __FIReference_1_Matrix4x4Vtbl
#define IReference_Matrix4x4 __FIReference_1_Matrix4x4
#define IReference_Matrix4x4_QueryInterface __FIReference_1_Matrix4x4_QueryInterface
#define IReference_Matrix4x4_AddRef __FIReference_1_Matrix4x4_AddRef
#define IReference_Matrix4x4_Release __FIReference_1_Matrix4x4_Release
#define IReference_Matrix4x4_GetIids __FIReference_1_Matrix4x4_GetIids
#define IReference_Matrix4x4_GetRuntimeClassName __FIReference_1_Matrix4x4_GetRuntimeClassName
#define IReference_Matrix4x4_GetTrustLevel __FIReference_1_Matrix4x4_GetTrustLevel
#define IReference_Matrix4x4_get_Value __FIReference_1_Matrix4x4_get_Value
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIReference_1_Matrix4x4_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IReference<ABI::Windows::Foundation::Numerics::Vector2 > interface
 */
#ifndef ____FIReference_1_Vector2_INTERFACE_DEFINED__
#define ____FIReference_1_Vector2_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIReference_1_Vector2, 0x48f6a69e, 0x8465, 0x57ae, 0x94,0x00, 0x97,0x64,0x08,0x7f,0x65,0xad);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("48f6a69e-8465-57ae-9400-9764087f65ad")
            IReference<ABI::Windows::Foundation::Numerics::Vector2 > : IReference_impl<ABI::Windows::Foundation::Numerics::Vector2 >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIReference_1_Vector2, 0x48f6a69e, 0x8465, 0x57ae, 0x94,0x00, 0x97,0x64,0x08,0x7f,0x65,0xad)
#endif
#else
typedef struct __FIReference_1_Vector2Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIReference_1_Vector2 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIReference_1_Vector2 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIReference_1_Vector2 *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIReference_1_Vector2 *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIReference_1_Vector2 *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIReference_1_Vector2 *This,
        TrustLevel *trustLevel);

    /*** IReference<ABI::Windows::Foundation::Numerics::Vector2 > methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Value)(
        __FIReference_1_Vector2 *This,
        struct __x_ABI_CWindows_CFoundation_CNumerics_CVector2 *value);

    END_INTERFACE
} __FIReference_1_Vector2Vtbl;

interface __FIReference_1_Vector2 {
    CONST_VTBL __FIReference_1_Vector2Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIReference_1_Vector2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIReference_1_Vector2_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIReference_1_Vector2_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIReference_1_Vector2_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIReference_1_Vector2_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIReference_1_Vector2_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IReference<ABI::Windows::Foundation::Numerics::Vector2 > methods ***/
#define __FIReference_1_Vector2_get_Value(This,value) (This)->lpVtbl->get_Value(This,value)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT __FIReference_1_Vector2_QueryInterface(__FIReference_1_Vector2* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG __FIReference_1_Vector2_AddRef(__FIReference_1_Vector2* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG __FIReference_1_Vector2_Release(__FIReference_1_Vector2* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static __WIDL_INLINE HRESULT __FIReference_1_Vector2_GetIids(__FIReference_1_Vector2* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static __WIDL_INLINE HRESULT __FIReference_1_Vector2_GetRuntimeClassName(__FIReference_1_Vector2* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static __WIDL_INLINE HRESULT __FIReference_1_Vector2_GetTrustLevel(__FIReference_1_Vector2* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IReference<ABI::Windows::Foundation::Numerics::Vector2 > methods ***/
static __WIDL_INLINE HRESULT __FIReference_1_Vector2_get_Value(__FIReference_1_Vector2* This,struct __x_ABI_CWindows_CFoundation_CNumerics_CVector2 *value) {
    return This->lpVtbl->get_Value(This,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IReference_Vector2 IID___FIReference_1_Vector2
#define IReference_Vector2Vtbl __FIReference_1_Vector2Vtbl
#define IReference_Vector2 __FIReference_1_Vector2
#define IReference_Vector2_QueryInterface __FIReference_1_Vector2_QueryInterface
#define IReference_Vector2_AddRef __FIReference_1_Vector2_AddRef
#define IReference_Vector2_Release __FIReference_1_Vector2_Release
#define IReference_Vector2_GetIids __FIReference_1_Vector2_GetIids
#define IReference_Vector2_GetRuntimeClassName __FIReference_1_Vector2_GetRuntimeClassName
#define IReference_Vector2_GetTrustLevel __FIReference_1_Vector2_GetTrustLevel
#define IReference_Vector2_get_Value __FIReference_1_Vector2_get_Value
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIReference_1_Vector2_INTERFACE_DEFINED__ */

/*****************************************************************************
 * IReference<ABI::Windows::Foundation::Numerics::Vector3 > interface
 */
#ifndef ____FIReference_1_Vector3_INTERFACE_DEFINED__
#define ____FIReference_1_Vector3_INTERFACE_DEFINED__

DEFINE_GUID(IID___FIReference_1_Vector3, 0x1ee770ff, 0xc954, 0x59ca, 0xa7,0x54, 0x61,0x99,0xa9,0xbe,0x28,0x2c);
#if defined(__cplusplus) && !defined(CINTERFACE)
} /* extern "C" */
namespace ABI {
    namespace Windows {
        namespace Foundation {
            template<>
            MIDL_INTERFACE("1ee770ff-c954-59ca-a754-6199a9be282c")
            IReference<ABI::Windows::Foundation::Numerics::Vector3 > : IReference_impl<ABI::Windows::Foundation::Numerics::Vector3 >
            {
            };
        }
    }
}
extern "C" {
#ifdef __CRT_UUID_DECL
__CRT_UUID_DECL(__FIReference_1_Vector3, 0x1ee770ff, 0xc954, 0x59ca, 0xa7,0x54, 0x61,0x99,0xa9,0xbe,0x28,0x2c)
#endif
#else
typedef struct __FIReference_1_Vector3Vtbl {
    BEGIN_INTERFACE

    /*** IUnknown methods ***/
    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
        __FIReference_1_Vector3 *This,
        REFIID riid,
        void **ppvObject);

    ULONG (STDMETHODCALLTYPE *AddRef)(
        __FIReference_1_Vector3 *This);

    ULONG (STDMETHODCALLTYPE *Release)(
        __FIReference_1_Vector3 *This);

    /*** IInspectable methods ***/
    HRESULT (STDMETHODCALLTYPE *GetIids)(
        __FIReference_1_Vector3 *This,
        ULONG *iidCount,
        IID **iids);

    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
        __FIReference_1_Vector3 *This,
        HSTRING *className);

    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
        __FIReference_1_Vector3 *This,
        TrustLevel *trustLevel);

    /*** IReference<ABI::Windows::Foundation::Numerics::Vector3 > methods ***/
    HRESULT (STDMETHODCALLTYPE *get_Value)(
        __FIReference_1_Vector3 *This,
        struct __x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value);

    END_INTERFACE
} __FIReference_1_Vector3Vtbl;

interface __FIReference_1_Vector3 {
    CONST_VTBL __FIReference_1_Vector3Vtbl* lpVtbl;
};

#ifdef COBJMACROS
#ifndef WIDL_C_INLINE_WRAPPERS
/*** IUnknown methods ***/
#define __FIReference_1_Vector3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define __FIReference_1_Vector3_AddRef(This) (This)->lpVtbl->AddRef(This)
#define __FIReference_1_Vector3_Release(This) (This)->lpVtbl->Release(This)
/*** IInspectable methods ***/
#define __FIReference_1_Vector3_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
#define __FIReference_1_Vector3_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
#define __FIReference_1_Vector3_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
/*** IReference<ABI::Windows::Foundation::Numerics::Vector3 > methods ***/
#define __FIReference_1_Vector3_get_Value(This,value) (This)->lpVtbl->get_Value(This,value)
#else
/*** IUnknown methods ***/
static __WIDL_INLINE HRESULT __FIReference_1_Vector3_QueryInterface(__FIReference_1_Vector3* This,REFIID riid,void **ppvObject) {
    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
}
static __WIDL_INLINE ULONG __FIReference_1_Vector3_AddRef(__FIReference_1_Vector3* This) {
    return This->lpVtbl->AddRef(This);
}
static __WIDL_INLINE ULONG __FIReference_1_Vector3_Release(__FIReference_1_Vector3* This) {
    return This->lpVtbl->Release(This);
}
/*** IInspectable methods ***/
static __WIDL_INLINE HRESULT __FIReference_1_Vector3_GetIids(__FIReference_1_Vector3* This,ULONG *iidCount,IID **iids) {
    return This->lpVtbl->GetIids(This,iidCount,iids);
}
static __WIDL_INLINE HRESULT __FIReference_1_Vector3_GetRuntimeClassName(__FIReference_1_Vector3* This,HSTRING *className) {
    return This->lpVtbl->GetRuntimeClassName(This,className);
}
static __WIDL_INLINE HRESULT __FIReference_1_Vector3_GetTrustLevel(__FIReference_1_Vector3* This,TrustLevel *trustLevel) {
    return This->lpVtbl->GetTrustLevel(This,trustLevel);
}
/*** IReference<ABI::Windows::Foundation::Numerics::Vector3 > methods ***/
static __WIDL_INLINE HRESULT __FIReference_1_Vector3_get_Value(__FIReference_1_Vector3* This,struct __x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value) {
    return This->lpVtbl->get_Value(This,value);
}
#endif
#ifdef WIDL_using_Windows_Foundation
#define IID_IReference_Vector3 IID___FIReference_1_Vector3
#define IReference_Vector3Vtbl __FIReference_1_Vector3Vtbl
#define IReference_Vector3 __FIReference_1_Vector3
#define IReference_Vector3_QueryInterface __FIReference_1_Vector3_QueryInterface
#define IReference_Vector3_AddRef __FIReference_1_Vector3_AddRef
#define IReference_Vector3_Release __FIReference_1_Vector3_Release
#define IReference_Vector3_GetIids __FIReference_1_Vector3_GetIids
#define IReference_Vector3_GetRuntimeClassName __FIReference_1_Vector3_GetRuntimeClassName
#define IReference_Vector3_GetTrustLevel __FIReference_1_Vector3_GetTrustLevel
#define IReference_Vector3_get_Value __FIReference_1_Vector3_get_Value
#endif /* WIDL_using_Windows_Foundation */
#endif

#endif

#endif  /* ____FIReference_1_Vector3_INTERFACE_DEFINED__ */

/* Begin additional prototypes for all interfaces */


/* End additional prototypes */

#ifdef __cplusplus
}
#endif

#endif /* __windows_foundation_numerics_h__ */
