commit 07fff0900d668fbd75e0ac0a6382a86d486cee88
Author: Jacek Caban <jacek@codeweavers.com>
Date:   Sun Mar 24 21:20:55 2019 +0100

    winrt headers

diff --git a/mingw-w64-headers/include/intsafe.h b/mingw-w64-headers/include/intsafe.h
index 701d4cef..daaedb83 100644
--- a/mingw-w64-headers/include/intsafe.h
+++ b/mingw-w64-headers/include/intsafe.h
@@ -411,5 +411,8 @@ __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(ULongLongMult, ULONGLONG, mul)
 __MINGW_INTSAFE_API __MINGW_INTSAFE_MATH(LongLongMult, LONGLONG, mul)
 
 #endif /* __GNUC__ >= 5 */
+
+#define SizeTToUInt32   UIntPtrToUInt
+
 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
 #endif /* _INTSAFE_H_INCLUDED_ */
diff --git a/mingw-w64-headers/include/windows.foundation.h b/mingw-w64-headers/include/windows.foundation.h
index 6c4d3ec8..59797984 100644
--- a/mingw-w64-headers/include/windows.foundation.h
+++ b/mingw-w64-headers/include/windows.foundation.h
@@ -1,11 +1,12 @@
-/*** Autogenerated by WIDL 1.5.31 from include/windows.foundation.idl - Do not edit ***/
+/*** Autogenerated by WIDL 4.4 from windows.foundation.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>
@@ -17,24 +18,18 @@
 
 /* Forward declarations */
 
-#ifndef __IAsyncInfo_FWD_DEFINED__
-#define __IAsyncInfo_FWD_DEFINED__
-typedef interface IAsyncInfo IAsyncInfo;
-#endif
-
-#ifndef __IASyncAction_FWD_DEFINED__
-#define __IASyncAction_FWD_DEFINED__
-typedef interface IASyncAction IASyncAction;
-#endif
-
-#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
-#define __AsyncActionCompletedHandler_FWD_DEFINED__
-typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
-#endif
-
-#ifndef __IAsyncOperation_FWD_DEFINED__
-#define __IAsyncOperation_FWD_DEFINED__
-typedef interface IAsyncOperation IAsyncOperation;
+#ifndef ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CIStringable_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CFoundation_CIStringable __x_ABI_CWindows_CFoundation_CIStringable;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            interface IStringable;
+        }
+    }
+}
+#endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
@@ -45,667 +40,331 @@ typedef interface IAsyncOperation IAsyncOperation;
 extern "C" {
 #endif
 
-#ifndef __IAsyncInfo_FWD_DEFINED__
-#define __IAsyncInfo_FWD_DEFINED__
-typedef interface IAsyncInfo IAsyncInfo;
-#endif
-
-#ifndef __IAsyncAction_FWD_DEFINED__
-#define __IAsyncAction_FWD_DEFINED__
-typedef interface IAsyncAction IAsyncAction;
-#endif
-
-#ifndef __IAsyncOperation_FWD_DEFINED__
-#define __IAsyncOperation_FWD_DEFINED__
-typedef interface IAsyncOperation IAsyncOperation;
-#endif
-
-#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
-#define __AsyncActionCompletedHandler_FWD_DEFINED__
-typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
-#endif
-
-#ifndef __TypedEventHandler_FWD_DEFINED__
-#define __TypedEventHandler_FWD_DEFINED__
-typedef interface TypedEventHandler TypedEventHandler;
-#endif
-
-struct DateTime;
-
-struct EventRegistrationToken;
-
-#ifndef __IVectorView_FWD_DEFINED__
-#define __IVectorView_FWD_DEFINED__
-typedef interface IVectorView IVectorView;
-#endif
-
-#ifndef __IPropertySet_FWD_DEFINED__
-#define __IPropertySet_FWD_DEFINED__
-typedef interface IPropertySet IPropertySet;
-#endif
-
-typedef enum AsyncStatus {
-    Started = 0,
-    Completed = 1,
-    Canceled = 2,
-    Error = 3
-} AsyncStatus;
-typedef struct DateTime {
-    UINT64 UniversalTime;
-} DateTime;
-typedef struct EventRegistrationToken {
-    UINT64 Value;
-} EventRegistrationToken;
-/*****************************************************************************
- * IAsyncInfo interface
- */
-#ifndef __IAsyncInfo_INTERFACE_DEFINED__
-#define __IAsyncInfo_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("00000036-0000-0000-c000-000000000046")
-IAsyncInfo : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE get_Id(
-        unsigned int *id) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Status(
-        AsyncStatus *status) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_ErrorCode(
-        HRESULT *errorCode) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Cancel(
-        ) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE Close(
-        ) = 0;
-
-};
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
-#endif
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            enum PropertyType {
+                PropertyType_Empty = 0,
+                PropertyType_UInt8 = 1,
+                PropertyType_Int16 = 2,
+                PropertyType_UInt16 = 3,
+                PropertyType_Int32 = 4,
+                PropertyType_UInt32 = 5,
+                PropertyType_Int64 = 6,
+                PropertyType_UInt64 = 7,
+                PropertyType_Single = 8,
+                PropertyType_Double = 9,
+                PropertyType_Char16 = 10,
+                PropertyType_Boolean = 11,
+                PropertyType_String = 12,
+                PropertyType_Inspectable = 13,
+                PropertyType_DateTime = 14,
+                PropertyType_TimeSpan = 15,
+                PropertyType_Guid = 16,
+                PropertyType_Point = 17,
+                PropertyType_Size = 18,
+                PropertyType_Rect = 19,
+                PropertyType_OtherType = 20,
+                PropertyType_UInt8Array = 1025,
+                PropertyType_Int16Array = 1026,
+                PropertyType_UInt16Array = 1027,
+                PropertyType_Int32Array = 1028,
+                PropertyType_UInt32Array = 1029,
+                PropertyType_Int64Array = 1030,
+                PropertyType_UInt64Array = 1031,
+                PropertyType_SingleArray = 1032,
+                PropertyType_DoubleArray = 1033,
+                PropertyType_Char16Array = 1034,
+                PropertyType_BooleanArray = 1035,
+                PropertyType_StringArray = 1036,
+                PropertyType_InspectableArray = 1037,
+                PropertyType_DateTimeArray = 1038,
+                PropertyType_TimeSpanArray = 1039,
+                PropertyType_GuidArray = 1040,
+                PropertyType_PointArray = 1041,
+                PropertyType_SizeArray = 1042,
+                PropertyType_RectArray = 1043,
+                PropertyType_OtherTypeArray = 1044
+            };
+        }
+    }
+}
+extern "C" {
 #else
-typedef struct IAsyncInfoVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAsyncInfo* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAsyncInfo* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IAsyncInfo* This);
-
-    /*** IInspectable methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IAsyncInfo* This,
-        ULONG *iidCount,
-        IID **iids);
-
-    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IAsyncInfo* This,
-        HSTRING *className);
-
-    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IAsyncInfo* This,
-        TrustLevel *trustLevel);
-
-    /*** IAsyncInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_Id)(
-        IAsyncInfo* This,
-        unsigned int *id);
-
-    HRESULT (STDMETHODCALLTYPE *get_Status)(
-        IAsyncInfo* This,
-        AsyncStatus *status);
-
-    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-        IAsyncInfo* This,
-        HRESULT *errorCode);
-
-    HRESULT (STDMETHODCALLTYPE *Cancel)(
-        IAsyncInfo* This);
-
-    HRESULT (STDMETHODCALLTYPE *Close)(
-        IAsyncInfo* This);
-
-    END_INTERFACE
-} IAsyncInfoVtbl;
-interface IAsyncInfo {
-    CONST_VTBL IAsyncInfoVtbl* lpVtbl;
+enum __x_ABI_CWindows_CFoundation_CPropertyType {
+    PropertyType_Empty = 0,
+    PropertyType_UInt8 = 1,
+    PropertyType_Int16 = 2,
+    PropertyType_UInt16 = 3,
+    PropertyType_Int32 = 4,
+    PropertyType_UInt32 = 5,
+    PropertyType_Int64 = 6,
+    PropertyType_UInt64 = 7,
+    PropertyType_Single = 8,
+    PropertyType_Double = 9,
+    PropertyType_Char16 = 10,
+    PropertyType_Boolean = 11,
+    PropertyType_String = 12,
+    PropertyType_Inspectable = 13,
+    PropertyType_DateTime = 14,
+    PropertyType_TimeSpan = 15,
+    PropertyType_Guid = 16,
+    PropertyType_Point = 17,
+    PropertyType_Size = 18,
+    PropertyType_Rect = 19,
+    PropertyType_OtherType = 20,
+    PropertyType_UInt8Array = 1025,
+    PropertyType_Int16Array = 1026,
+    PropertyType_UInt16Array = 1027,
+    PropertyType_Int32Array = 1028,
+    PropertyType_UInt32Array = 1029,
+    PropertyType_Int64Array = 1030,
+    PropertyType_UInt64Array = 1031,
+    PropertyType_SingleArray = 1032,
+    PropertyType_DoubleArray = 1033,
+    PropertyType_Char16Array = 1034,
+    PropertyType_BooleanArray = 1035,
+    PropertyType_StringArray = 1036,
+    PropertyType_InspectableArray = 1037,
+    PropertyType_DateTimeArray = 1038,
+    PropertyType_TimeSpanArray = 1039,
+    PropertyType_GuidArray = 1040,
+    PropertyType_PointArray = 1041,
+    PropertyType_SizeArray = 1042,
+    PropertyType_RectArray = 1043,
+    PropertyType_OtherTypeArray = 1044
 };
-
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define IAsyncInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAsyncInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAsyncInfo_Release(This) (This)->lpVtbl->Release(This)
-/*** IInspectable methods ***/
-#define IAsyncInfo_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IAsyncInfo_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IAsyncInfo_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-/*** IAsyncInfo methods ***/
-#define IAsyncInfo_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IAsyncInfo_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
-#define IAsyncInfo_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
-#define IAsyncInfo_Cancel(This) (This)->lpVtbl->Cancel(This)
-#define IAsyncInfo_Close(This) (This)->lpVtbl->Close(This)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT IAsyncInfo_QueryInterface(IAsyncInfo* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG IAsyncInfo_AddRef(IAsyncInfo* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG IAsyncInfo_Release(IAsyncInfo* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** IInspectable methods ***/
-static FORCEINLINE HRESULT IAsyncInfo_GetIids(IAsyncInfo* This,ULONG *iidCount,IID **iids) {
-    return This->lpVtbl->GetIids(This,iidCount,iids);
-}
-static FORCEINLINE HRESULT IAsyncInfo_GetRuntimeClassName(IAsyncInfo* This,HSTRING *className) {
-    return This->lpVtbl->GetRuntimeClassName(This,className);
-}
-static FORCEINLINE HRESULT IAsyncInfo_GetTrustLevel(IAsyncInfo* This,TrustLevel *trustLevel) {
-    return This->lpVtbl->GetTrustLevel(This,trustLevel);
-}
-/*** IAsyncInfo methods ***/
-static FORCEINLINE HRESULT IAsyncInfo_get_Id(IAsyncInfo* This,unsigned int *id) {
-    return This->lpVtbl->get_Id(This,id);
-}
-static FORCEINLINE HRESULT IAsyncInfo_get_Status(IAsyncInfo* This,AsyncStatus *status) {
-    return This->lpVtbl->get_Status(This,status);
-}
-static FORCEINLINE HRESULT IAsyncInfo_get_ErrorCode(IAsyncInfo* This,HRESULT *errorCode) {
-    return This->lpVtbl->get_ErrorCode(This,errorCode);
-}
-static FORCEINLINE HRESULT IAsyncInfo_Cancel(IAsyncInfo* This) {
-    return This->lpVtbl->Cancel(This);
-}
-static FORCEINLINE HRESULT IAsyncInfo_Close(IAsyncInfo* This) {
-    return This->lpVtbl->Close(This);
-}
 #endif
-#endif
-
-#endif
-
-HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Id_Proxy(
-    IAsyncInfo* This,
-    unsigned int *id);
-void __RPC_STUB IAsyncInfo_get_Id_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Status_Proxy(
-    IAsyncInfo* This,
-    AsyncStatus *status);
-void __RPC_STUB IAsyncInfo_get_Status_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncInfo_get_ErrorCode_Proxy(
-    IAsyncInfo* This,
-    HRESULT *errorCode);
-void __RPC_STUB IAsyncInfo_get_ErrorCode_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncInfo_Cancel_Proxy(
-    IAsyncInfo* This);
-void __RPC_STUB IAsyncInfo_Cancel_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncInfo_Close_Proxy(
-    IAsyncInfo* This);
-void __RPC_STUB IAsyncInfo_Close_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IAsyncInfo_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IASyncAction interface
- */
-#ifndef __IASyncAction_INTERFACE_DEFINED__
-#define __IASyncAction_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("5a648006-843a-4da9-865b-9d26e5dfad7b")
-IASyncAction : public IInspectable
-{
-    virtual HRESULT STDMETHODCALLTYPE put_Completed(
-        AsyncActionCompletedHandler *handler) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Completed(
-        AsyncActionCompletedHandler **handler) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE GetResults(
-        ) = 0;
 
-};
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b)
-#endif
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct Point {
+                FLOAT X;
+                FLOAT Y;
+            };
+        }
+    }
+}
+extern "C" {
 #else
-typedef struct IASyncActionVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IASyncAction* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IASyncAction* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IASyncAction* This);
-
-    /*** IInspectable methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IASyncAction* This,
-        ULONG *iidCount,
-        IID **iids);
-
-    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IASyncAction* This,
-        HSTRING *className);
-
-    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IASyncAction* This,
-        TrustLevel *trustLevel);
-
-    /*** IASyncAction methods ***/
-    HRESULT (STDMETHODCALLTYPE *put_Completed)(
-        IASyncAction* This,
-        AsyncActionCompletedHandler *handler);
-
-    HRESULT (STDMETHODCALLTYPE *get_Completed)(
-        IASyncAction* This,
-        AsyncActionCompletedHandler **handler);
-
-    HRESULT (STDMETHODCALLTYPE *GetResults)(
-        IASyncAction* This);
-
-    END_INTERFACE
-} IASyncActionVtbl;
-interface IASyncAction {
-    CONST_VTBL IASyncActionVtbl* lpVtbl;
+struct __x_ABI_CWindows_CFoundation_CPoint {
+    FLOAT X;
+    FLOAT Y;
 };
-
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define IASyncAction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IASyncAction_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IASyncAction_Release(This) (This)->lpVtbl->Release(This)
-/*** IInspectable methods ***/
-#define IASyncAction_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IASyncAction_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IASyncAction_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-/*** IASyncAction methods ***/
-#define IASyncAction_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
-#define IASyncAction_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
-#define IASyncAction_GetResults(This) (This)->lpVtbl->GetResults(This)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT IASyncAction_QueryInterface(IASyncAction* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG IASyncAction_AddRef(IASyncAction* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG IASyncAction_Release(IASyncAction* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** IInspectable methods ***/
-static FORCEINLINE HRESULT IASyncAction_GetIids(IASyncAction* This,ULONG *iidCount,IID **iids) {
-    return This->lpVtbl->GetIids(This,iidCount,iids);
-}
-static FORCEINLINE HRESULT IASyncAction_GetRuntimeClassName(IASyncAction* This,HSTRING *className) {
-    return This->lpVtbl->GetRuntimeClassName(This,className);
-}
-static FORCEINLINE HRESULT IASyncAction_GetTrustLevel(IASyncAction* This,TrustLevel *trustLevel) {
-    return This->lpVtbl->GetTrustLevel(This,trustLevel);
-}
-/*** IASyncAction methods ***/
-static FORCEINLINE HRESULT IASyncAction_put_Completed(IASyncAction* This,AsyncActionCompletedHandler *handler) {
-    return This->lpVtbl->put_Completed(This,handler);
-}
-static FORCEINLINE HRESULT IASyncAction_get_Completed(IASyncAction* This,AsyncActionCompletedHandler **handler) {
-    return This->lpVtbl->get_Completed(This,handler);
-}
-static FORCEINLINE HRESULT IASyncAction_GetResults(IASyncAction* This) {
-    return This->lpVtbl->GetResults(This);
-}
-#endif
 #endif
 
-#endif
-
-HRESULT STDMETHODCALLTYPE IASyncAction_put_Completed_Proxy(
-    IASyncAction* This,
-    AsyncActionCompletedHandler *handler);
-void __RPC_STUB IASyncAction_put_Completed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IASyncAction_get_Completed_Proxy(
-    IASyncAction* This,
-    AsyncActionCompletedHandler **handler);
-void __RPC_STUB IASyncAction_get_Completed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IASyncAction_GetResults_Proxy(
-    IASyncAction* This);
-void __RPC_STUB IASyncAction_GetResults_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IASyncAction_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * AsyncActionCompletedHandler interface
- */
-#ifndef __AsyncActionCompletedHandler_INTERFACE_DEFINED__
-#define __AsyncActionCompletedHandler_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7")
-AsyncActionCompletedHandler : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE Invoke(
-        IInspectable *asyncAction,
-        AsyncStatus status) = 0;
-
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct Size {
+                FLOAT Width;
+                FLOAT Height;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CSize {
+    FLOAT Width;
+    FLOAT Height;
 };
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7)
 #endif
-#else
-typedef struct AsyncActionCompletedHandlerVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        AsyncActionCompletedHandler* This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        AsyncActionCompletedHandler* This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        AsyncActionCompletedHandler* This);
-
-    /*** AsyncActionCompletedHandler methods ***/
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        AsyncActionCompletedHandler* This,
-        IInspectable *asyncAction,
-        AsyncStatus status);
 
-    END_INTERFACE
-} AsyncActionCompletedHandlerVtbl;
-interface AsyncActionCompletedHandler {
-    CONST_VTBL AsyncActionCompletedHandlerVtbl* lpVtbl;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+typedef struct Size Size;
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct Rect {
+                FLOAT X;
+                FLOAT Y;
+                FLOAT Width;
+                FLOAT Height;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CRect {
+    FLOAT X;
+    FLOAT Y;
+    FLOAT Width;
+    FLOAT Height;
 };
+#endif
 
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define AsyncActionCompletedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define AsyncActionCompletedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define AsyncActionCompletedHandler_Release(This) (This)->lpVtbl->Release(This)
-/*** AsyncActionCompletedHandler methods ***/
-#define AsyncActionCompletedHandler_Invoke(This,asyncAction,status) (This)->lpVtbl->Invoke(This,asyncAction,status)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT AsyncActionCompletedHandler_QueryInterface(AsyncActionCompletedHandler* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG AsyncActionCompletedHandler_AddRef(AsyncActionCompletedHandler* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG AsyncActionCompletedHandler_Release(AsyncActionCompletedHandler* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** AsyncActionCompletedHandler methods ***/
-static FORCEINLINE HRESULT AsyncActionCompletedHandler_Invoke(AsyncActionCompletedHandler* This,IInspectable *asyncAction,AsyncStatus status) {
-    return This->lpVtbl->Invoke(This,asyncAction,status);
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct DateTime {
+                INT64 UniversalTime;
+            };
+        }
+    }
 }
-#endif
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CDateTime {
+    INT64 UniversalTime;
+};
 #endif
 
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct TimeSpan {
+                INT64 Duration;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CTimeSpan {
+    INT64 Duration;
+};
 #endif
 
-HRESULT STDMETHODCALLTYPE AsyncActionCompletedHandler_Invoke_Proxy(
-    AsyncActionCompletedHandler* This,
-    IInspectable *asyncAction,
-    AsyncStatus status);
-void __RPC_STUB AsyncActionCompletedHandler_Invoke_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __AsyncActionCompletedHandler_INTERFACE_DEFINED__ */
-
 /*****************************************************************************
- * IAsyncOperation interface
+ * IStringable interface
  */
-#ifndef __IAsyncOperation_INTERFACE_DEFINED__
-#define __IAsyncOperation_INTERFACE_DEFINED__
+#ifndef ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID_IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2);
+DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3);
 #if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("9fc2b0bb-e446-44e2-aa61-9cab8f636af2")
-IAsyncOperation : public IAsyncInfo
-{
-    virtual HRESULT STDMETHODCALLTYPE put_Completed(
-        AsyncActionCompletedHandler *handler) = 0;
-
-    virtual HRESULT STDMETHODCALLTYPE get_Completed(
-        AsyncActionCompletedHandler **handler) = 0;
-
-    virtual IInspectable * STDMETHODCALLTYPE GetResults(
-        ) = 0;
-
-};
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            MIDL_INTERFACE("96369f54-8eb6-48f0-abce-c1b211e627c3")
+            IStringable : public IInspectable
+            {
+                virtual HRESULT STDMETHODCALLTYPE ToString(
+                    HSTRING *value) = 0;
+
+            };
+        }
+    }
+}
+extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2)
+__CRT_UUID_DECL(ABI::Windows::Foundation::IStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3)
 #endif
 #else
-typedef struct IAsyncOperationVtbl {
+typedef struct __x_ABI_CWindows_CFoundation_CIStringableVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IAsyncOperation* This,
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        IAsyncOperation* This);
+        __x_ABI_CWindows_CFoundation_CIStringable *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        IAsyncOperation* This);
+        __x_ABI_CWindows_CFoundation_CIStringable *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        IAsyncOperation* This,
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        IAsyncOperation* This,
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        IAsyncOperation* This,
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
         TrustLevel *trustLevel);
 
-    /*** IAsyncInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_Id)(
-        IAsyncOperation* This,
-        unsigned int *id);
-
-    HRESULT (STDMETHODCALLTYPE *get_Status)(
-        IAsyncOperation* This,
-        AsyncStatus *status);
-
-    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-        IAsyncOperation* This,
-        HRESULT *errorCode);
-
-    HRESULT (STDMETHODCALLTYPE *Cancel)(
-        IAsyncOperation* This);
-
-    HRESULT (STDMETHODCALLTYPE *Close)(
-        IAsyncOperation* This);
-
-    /*** IAsyncOperation methods ***/
-    HRESULT (STDMETHODCALLTYPE *put_Completed)(
-        IAsyncOperation* This,
-        AsyncActionCompletedHandler *handler);
-
-    HRESULT (STDMETHODCALLTYPE *get_Completed)(
-        IAsyncOperation* This,
-        AsyncActionCompletedHandler **handler);
-
-    IInspectable * (STDMETHODCALLTYPE *GetResults)(
-        IAsyncOperation* This);
+    /*** IStringable methods ***/
+    HRESULT (STDMETHODCALLTYPE *ToString)(
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
+        HSTRING *value);
 
     END_INTERFACE
-} IAsyncOperationVtbl;
-interface IAsyncOperation {
-    CONST_VTBL IAsyncOperationVtbl* lpVtbl;
+} __x_ABI_CWindows_CFoundation_CIStringableVtbl;
+
+interface __x_ABI_CWindows_CFoundation_CIStringable {
+    CONST_VTBL __x_ABI_CWindows_CFoundation_CIStringableVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define IAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
+#define __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CFoundation_CIStringable_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CFoundation_CIStringable_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define IAsyncOperation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define IAsyncOperation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define IAsyncOperation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-/*** IAsyncInfo methods ***/
-#define IAsyncOperation_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define IAsyncOperation_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
-#define IAsyncOperation_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
-#define IAsyncOperation_Cancel(This) (This)->lpVtbl->Cancel(This)
-#define IAsyncOperation_Close(This) (This)->lpVtbl->Close(This)
-/*** IAsyncOperation methods ***/
-#define IAsyncOperation_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
-#define IAsyncOperation_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
-#define IAsyncOperation_GetResults(This) (This)->lpVtbl->GetResults(This)
+#define __x_ABI_CWindows_CFoundation_CIStringable_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IStringable methods ***/
+#define __x_ABI_CWindows_CFoundation_CIStringable_ToString(This,value) (This)->lpVtbl->ToString(This,value)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT IAsyncOperation_QueryInterface(IAsyncOperation* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface(__x_ABI_CWindows_CFoundation_CIStringable* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG IAsyncOperation_AddRef(IAsyncOperation* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIStringable_AddRef(__x_ABI_CWindows_CFoundation_CIStringable* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG IAsyncOperation_Release(IAsyncOperation* This) {
+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIStringable_Release(__x_ABI_CWindows_CFoundation_CIStringable* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT IAsyncOperation_GetIids(IAsyncOperation* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetIids(__x_ABI_CWindows_CFoundation_CIStringable* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT IAsyncOperation_GetRuntimeClassName(IAsyncOperation* This,HSTRING *className) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIStringable* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT IAsyncOperation_GetTrustLevel(IAsyncOperation* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIStringable* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
-/*** IAsyncInfo methods ***/
-static FORCEINLINE HRESULT IAsyncOperation_get_Id(IAsyncOperation* This,unsigned int *id) {
-    return This->lpVtbl->get_Id(This,id);
-}
-static FORCEINLINE HRESULT IAsyncOperation_get_Status(IAsyncOperation* This,AsyncStatus *status) {
-    return This->lpVtbl->get_Status(This,status);
-}
-static FORCEINLINE HRESULT IAsyncOperation_get_ErrorCode(IAsyncOperation* This,HRESULT *errorCode) {
-    return This->lpVtbl->get_ErrorCode(This,errorCode);
-}
-static FORCEINLINE HRESULT IAsyncOperation_Cancel(IAsyncOperation* This) {
-    return This->lpVtbl->Cancel(This);
-}
-static FORCEINLINE HRESULT IAsyncOperation_Close(IAsyncOperation* This) {
-    return This->lpVtbl->Close(This);
-}
-/*** IAsyncOperation methods ***/
-static FORCEINLINE HRESULT IAsyncOperation_put_Completed(IAsyncOperation* This,AsyncActionCompletedHandler *handler) {
-    return This->lpVtbl->put_Completed(This,handler);
-}
-static FORCEINLINE HRESULT IAsyncOperation_get_Completed(IAsyncOperation* This,AsyncActionCompletedHandler **handler) {
-    return This->lpVtbl->get_Completed(This,handler);
-}
-static FORCEINLINE IInspectable * IAsyncOperation_GetResults(IAsyncOperation* This) {
-    return This->lpVtbl->GetResults(This);
+/*** IStringable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_ToString(__x_ABI_CWindows_CFoundation_CIStringable* This,HSTRING *value) {
+    return This->lpVtbl->ToString(This,value);
 }
 #endif
 #endif
 
 #endif
 
-HRESULT STDMETHODCALLTYPE IAsyncOperation_put_Completed_Proxy(
-    IAsyncOperation* This,
-    AsyncActionCompletedHandler *handler);
-void __RPC_STUB IAsyncOperation_put_Completed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-HRESULT STDMETHODCALLTYPE IAsyncOperation_get_Completed_Proxy(
-    IAsyncOperation* This,
-    AsyncActionCompletedHandler **handler);
-void __RPC_STUB IAsyncOperation_get_Completed_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-IInspectable * STDMETHODCALLTYPE IAsyncOperation_GetResults_Proxy(
-    IAsyncOperation* This);
-void __RPC_STUB IAsyncOperation_GetResults_Stub(
-    IRpcStubBuffer* This,
-    IRpcChannelBuffer* pRpcChannelBuffer,
-    PRPC_MESSAGE pRpcMessage,
-    DWORD* pdwStubPhase);
-
-#endif  /* __IAsyncOperation_INTERFACE_DEFINED__ */
+#endif  /* ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__ */
 
 /* Begin additional prototypes for all interfaces */
 
+ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);
 
 /* End additional prototypes */
 
diff --git a/mingw-w64-headers/include/windows.foundation.metadata.h b/mingw-w64-headers/include/windows.foundation.metadata.h
new file mode 100644
index 00000000..13262699
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.metadata.h
@@ -0,0 +1,315 @@
+/*** Autogenerated by WIDL 4.4 from windows.foundation.metadata.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_metadata_h__
+#define __windows_foundation_metadata_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Metadata {
+                interface IApiInformationStatics;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************
+ * IApiInformationStatics interface
+ */
+#ifndef ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics, 0x997439fe, 0xf681, 0x4a11, 0xb4,0x16, 0xc1,0x3a,0x47,0xe8,0xba,0x36);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Metadata {
+                MIDL_INTERFACE("997439fe-f681-4a11-b416-c13a47e8ba36")
+                IApiInformationStatics : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE IsTypePresent(
+                        HSTRING typeName,
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE IsMethodPresent(
+                        HSTRING typeName,
+                        HSTRING methodName,
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE IsMethodPresentWithArity(
+                        HSTRING typeName,
+                        HSTRING methodName,
+                        UINT32 inputParameterCount,
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE IsEventPresent(
+                        HSTRING typeName,
+                        HSTRING eventName,
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE IsPropertyPresent(
+                        HSTRING typeName,
+                        HSTRING propertyName,
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE IsReadOnlyPropertyPresent(
+                        HSTRING typeName,
+                        HSTRING propertyName,
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE IsWriteablePropertyPresent(
+                        HSTRING typeName,
+                        HSTRING propertyName,
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE IsEnumNamedValuePresent(
+                        HSTRING enumTypeName,
+                        HSTRING valueName,
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE IsApiContractPresentByMajor(
+                        HSTRING contractName,
+                        UINT16 majorVersion,
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE IsApiContractPresentByMajorAndMinor(
+                        HSTRING contractName,
+                        UINT16 majorVersion,
+                        UINT16 minorVersion,
+                        boolean *value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::Foundation::Metadata::IApiInformationStatics, 0x997439fe, 0xf681, 0x4a11, 0xb4,0x16, 0xc1,0x3a,0x47,0xe8,0xba,0x36)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStaticsVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        TrustLevel *trustLevel);
+
+    /*** IApiInformationStatics methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsTypePresent)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING typeName,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *IsMethodPresent)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING typeName,
+        HSTRING methodName,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *IsMethodPresentWithArity)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING typeName,
+        HSTRING methodName,
+        UINT32 inputParameterCount,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *IsEventPresent)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING typeName,
+        HSTRING eventName,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *IsPropertyPresent)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING typeName,
+        HSTRING propertyName,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *IsReadOnlyPropertyPresent)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING typeName,
+        HSTRING propertyName,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *IsWriteablePropertyPresent)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING typeName,
+        HSTRING propertyName,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *IsEnumNamedValuePresent)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING enumTypeName,
+        HSTRING valueName,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *IsApiContractPresentByMajor)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING contractName,
+        UINT16 majorVersion,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *IsApiContractPresentByMajorAndMinor)(
+        __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+        HSTRING contractName,
+        UINT16 majorVersion,
+        UINT16 minorVersion,
+        boolean *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStaticsVtbl;
+
+interface __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics {
+    CONST_VTBL __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IApiInformationStatics methods ***/
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsTypePresent(This,typeName,value) (This)->lpVtbl->IsTypePresent(This,typeName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsMethodPresent(This,typeName,methodName,value) (This)->lpVtbl->IsMethodPresent(This,typeName,methodName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsMethodPresentWithArity(This,typeName,methodName,inputParameterCount,value) (This)->lpVtbl->IsMethodPresentWithArity(This,typeName,methodName,inputParameterCount,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsEventPresent(This,typeName,eventName,value) (This)->lpVtbl->IsEventPresent(This,typeName,eventName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsPropertyPresent(This,typeName,propertyName,value) (This)->lpVtbl->IsPropertyPresent(This,typeName,propertyName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsReadOnlyPropertyPresent(This,typeName,propertyName,value) (This)->lpVtbl->IsReadOnlyPropertyPresent(This,typeName,propertyName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsWriteablePropertyPresent(This,typeName,propertyName,value) (This)->lpVtbl->IsWriteablePropertyPresent(This,typeName,propertyName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsEnumNamedValuePresent(This,enumTypeName,valueName,value) (This)->lpVtbl->IsEnumNamedValuePresent(This,enumTypeName,valueName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsApiContractPresentByMajor(This,contractName,majorVersion,value) (This)->lpVtbl->IsApiContractPresentByMajor(This,contractName,majorVersion,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsApiContractPresentByMajorAndMinor(This,contractName,majorVersion,minorVersion,value) (This)->lpVtbl->IsApiContractPresentByMajorAndMinor(This,contractName,majorVersion,minorVersion,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_QueryInterface(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_AddRef(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_Release(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetIids(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetTrustLevel(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IApiInformationStatics methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsTypePresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,boolean *value) {
+    return This->lpVtbl->IsTypePresent(This,typeName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsMethodPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING methodName,boolean *value) {
+    return This->lpVtbl->IsMethodPresent(This,typeName,methodName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsMethodPresentWithArity(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING methodName,UINT32 inputParameterCount,boolean *value) {
+    return This->lpVtbl->IsMethodPresentWithArity(This,typeName,methodName,inputParameterCount,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsEventPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING eventName,boolean *value) {
+    return This->lpVtbl->IsEventPresent(This,typeName,eventName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsPropertyPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING propertyName,boolean *value) {
+    return This->lpVtbl->IsPropertyPresent(This,typeName,propertyName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsReadOnlyPropertyPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING propertyName,boolean *value) {
+    return This->lpVtbl->IsReadOnlyPropertyPresent(This,typeName,propertyName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsWriteablePropertyPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING propertyName,boolean *value) {
+    return This->lpVtbl->IsWriteablePropertyPresent(This,typeName,propertyName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsEnumNamedValuePresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING enumTypeName,HSTRING valueName,boolean *value) {
+    return This->lpVtbl->IsEnumNamedValuePresent(This,enumTypeName,valueName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsApiContractPresentByMajor(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING contractName,UINT16 majorVersion,boolean *value) {
+    return This->lpVtbl->IsApiContractPresentByMajor(This,contractName,majorVersion,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsApiContractPresentByMajorAndMinor(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING contractName,UINT16 majorVersion,UINT16 minorVersion,boolean *value) {
+    return This->lpVtbl->IsApiContractPresentByMajorAndMinor(This,contractName,majorVersion,minorVersion,value);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_INTERFACE_DEFINED__ */
+
+extern const __declspec(selectany) WCHAR RuntimeClass_Windows_Foundation_Metadata_ApiInformation[] = L"Windows.Foundation.Metadata.ApiInformation";
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_foundation_metadata_h__ */
diff --git a/mingw-w64-headers/include/windows.foundation.numerics.h b/mingw-w64-headers/include/windows.foundation.numerics.h
new file mode 100644
index 00000000..e20017ce
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.numerics.h
@@ -0,0 +1,204 @@
+/*** Autogenerated by WIDL 4.4 from 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__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Numerics {
+typedef struct Vector2 Vector2;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Numerics {
+typedef struct Vector3 Vector3;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Numerics {
+typedef struct Matrix4x4 Matrix4x4;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            namespace Numerics {
+typedef struct Quaternion Quaternion;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#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;
+};
+#endif
+
+#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;
+};
+#endif
+
+#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;
+};
+#endif
+
+#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;
+};
+#endif
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_foundation_numerics_h__ */
diff --git a/mingw-w64-headers/include/windows.graphics.directx.h b/mingw-w64-headers/include/windows.graphics.directx.h
new file mode 100644
index 00000000..4bc4cb44
--- /dev/null
+++ b/mingw-w64-headers/include/windows.graphics.directx.h
@@ -0,0 +1,343 @@
+/*** Autogenerated by WIDL 4.4 from windows.graphics.directx.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_graphics_directx_h__
+#define __windows_graphics_directx_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Graphics {
+            namespace DirectX {
+                enum DirectXAlphaMode {
+                    DirectXAlphaMode_Unspecified = 0,
+                    DirectXAlphaMode_Premultiplied = 1,
+                    DirectXAlphaMode_Straight = 2,
+                    DirectXAlphaMode_Ignore = 3
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CGraphics_CDirectX_CDirectXAlphaMode {
+    DirectXAlphaMode_Unspecified = 0,
+    DirectXAlphaMode_Premultiplied = 1,
+    DirectXAlphaMode_Straight = 2,
+    DirectXAlphaMode_Ignore = 3
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Graphics {
+            namespace DirectX {
+typedef enum DirectXAlphaMode DirectXAlphaMode;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Graphics {
+            namespace DirectX {
+                enum DirectXPixelFormat {
+                    DirectXPixelFormat_Unknown = 0,
+                    DirectXPixelFormat_R32G32B32A32Typeless = 1,
+                    DirectXPixelFormat_R32G32B32A32Float = 2,
+                    DirectXPixelFormat_R32G32B32A32UInt = 3,
+                    DirectXPixelFormat_R32G32B32A32Int = 4,
+                    DirectXPixelFormat_R32G32B32Typeless = 5,
+                    DirectXPixelFormat_R32G32B32Float = 6,
+                    DirectXPixelFormat_R32G32B32UInt = 7,
+                    DirectXPixelFormat_R32G32B32Int = 8,
+                    DirectXPixelFormat_R16G16B16A16Typeless = 9,
+                    DirectXPixelFormat_R16G16B16A16Float = 10,
+                    DirectXPixelFormat_R16G16B16A16UIntNormalized = 11,
+                    DirectXPixelFormat_R16G16B16A16UInt = 12,
+                    DirectXPixelFormat_R16G16B16A16IntNormalized = 13,
+                    DirectXPixelFormat_R16G16B16A16Int = 14,
+                    DirectXPixelFormat_R32G32Typeless = 15,
+                    DirectXPixelFormat_R32G32Float = 16,
+                    DirectXPixelFormat_R32G32UInt = 17,
+                    DirectXPixelFormat_R32G32Int = 18,
+                    DirectXPixelFormat_R32G8X24Typeless = 19,
+                    DirectXPixelFormat_D32FloatS8X24UInt = 20,
+                    DirectXPixelFormat_R32FloatX8X24Typeless = 21,
+                    DirectXPixelFormat_X32TypelessG8X24UInt = 22,
+                    DirectXPixelFormat_R10G10B10A2Typeless = 23,
+                    DirectXPixelFormat_R10G10B10A2UIntNormalized = 24,
+                    DirectXPixelFormat_R10G10B10A2UInt = 25,
+                    DirectXPixelFormat_R11G11B10Float = 26,
+                    DirectXPixelFormat_R8G8B8A8Typeless = 27,
+                    DirectXPixelFormat_R8G8B8A8UIntNormalized = 28,
+                    DirectXPixelFormat_R8G8B8A8UIntNormalizedSrgb = 29,
+                    DirectXPixelFormat_R8G8B8A8UInt = 30,
+                    DirectXPixelFormat_R8G8B8A8IntNormalized = 31,
+                    DirectXPixelFormat_R8G8B8A8Int = 32,
+                    DirectXPixelFormat_R16G16Typeless = 33,
+                    DirectXPixelFormat_R16G16Float = 34,
+                    DirectXPixelFormat_R16G16UIntNormalized = 35,
+                    DirectXPixelFormat_R16G16UInt = 36,
+                    DirectXPixelFormat_R16G16IntNormalized = 37,
+                    DirectXPixelFormat_R16G16Int = 38,
+                    DirectXPixelFormat_R32Typeless = 39,
+                    DirectXPixelFormat_D32Float = 40,
+                    DirectXPixelFormat_R32Float = 41,
+                    DirectXPixelFormat_R32UInt = 42,
+                    DirectXPixelFormat_R32Int = 43,
+                    DirectXPixelFormat_R24G8Typeless = 44,
+                    DirectXPixelFormat_D24UIntNormalizedS8UInt = 45,
+                    DirectXPixelFormat_R24UIntNormalizedX8Typeless = 46,
+                    DirectXPixelFormat_X24TypelessG8UInt = 47,
+                    DirectXPixelFormat_R8G8Typeless = 48,
+                    DirectXPixelFormat_R8G8UIntNormalized = 49,
+                    DirectXPixelFormat_R8G8UInt = 50,
+                    DirectXPixelFormat_R8G8IntNormalized = 51,
+                    DirectXPixelFormat_R8G8Int = 52,
+                    DirectXPixelFormat_R16Typeless = 53,
+                    DirectXPixelFormat_R16Float = 54,
+                    DirectXPixelFormat_D16UIntNormalized = 55,
+                    DirectXPixelFormat_R16UIntNormalized = 56,
+                    DirectXPixelFormat_R16UInt = 57,
+                    DirectXPixelFormat_R16IntNormalized = 58,
+                    DirectXPixelFormat_R16Int = 59,
+                    DirectXPixelFormat_R8Typeless = 60,
+                    DirectXPixelFormat_R8UIntNormalized = 61,
+                    DirectXPixelFormat_R8UInt = 62,
+                    DirectXPixelFormat_R8IntNormalized = 63,
+                    DirectXPixelFormat_R8Int = 64,
+                    DirectXPixelFormat_A8UIntNormalized = 65,
+                    DirectXPixelFormat_R1UIntNormalized = 66,
+                    DirectXPixelFormat_R9G9B9E5SharedExponent = 67,
+                    DirectXPixelFormat_R8G8B8G8UIntNormalized = 68,
+                    DirectXPixelFormat_G8R8G8B8UIntNormalized = 69,
+                    DirectXPixelFormat_BC1Typeless = 70,
+                    DirectXPixelFormat_BC1UIntNormalized = 71,
+                    DirectXPixelFormat_BC1UIntNormalizedSrgb = 72,
+                    DirectXPixelFormat_BC2Typeless = 73,
+                    DirectXPixelFormat_BC2UIntNormalized = 74,
+                    DirectXPixelFormat_BC2UIntNormalizedSrgb = 75,
+                    DirectXPixelFormat_BC3Typeless = 76,
+                    DirectXPixelFormat_BC3UIntNormalized = 77,
+                    DirectXPixelFormat_BC3UIntNormalizedSrgb = 78,
+                    DirectXPixelFormat_BC4Typeless = 79,
+                    DirectXPixelFormat_BC4UIntNormalized = 80,
+                    DirectXPixelFormat_BC4IntNormalized = 81,
+                    DirectXPixelFormat_BC5Typeless = 82,
+                    DirectXPixelFormat_BC5UIntNormalized = 83,
+                    DirectXPixelFormat_BC5IntNormalized = 84,
+                    DirectXPixelFormat_B5G6R5UIntNormalized = 85,
+                    DirectXPixelFormat_B5G5R5A1UIntNormalized = 86,
+                    DirectXPixelFormat_B8G8R8A8UIntNormalized = 87,
+                    DirectXPixelFormat_B8G8R8X8UIntNormalized = 88,
+                    DirectXPixelFormat_R10G10B10XRBiasA2UIntNormalized = 89,
+                    DirectXPixelFormat_B8G8R8A8Typeless = 90,
+                    DirectXPixelFormat_B8G8R8A8UIntNormalizedSrgb = 91,
+                    DirectXPixelFormat_B8G8R8X8Typeless = 92,
+                    DirectXPixelFormat_B8G8R8X8UIntNormalizedSrgb = 93,
+                    DirectXPixelFormat_BC6HTypeless = 94,
+                    DirectXPixelFormat_BC6H16UnsignedFloat = 95,
+                    DirectXPixelFormat_BC6H16Float = 96,
+                    DirectXPixelFormat_BC7Typeless = 97,
+                    DirectXPixelFormat_BC7UIntNormalized = 98,
+                    DirectXPixelFormat_BC7UIntNormalizedSrgb = 99,
+                    DirectXPixelFormat_Ayuv = 100,
+                    DirectXPixelFormat_Y410 = 101,
+                    DirectXPixelFormat_Y416 = 102,
+                    DirectXPixelFormat_NV12 = 103,
+                    DirectXPixelFormat_P010 = 104,
+                    DirectXPixelFormat_P016 = 105,
+                    DirectXPixelFormat_Opaque420 = 106,
+                    DirectXPixelFormat_Yuy2 = 107,
+                    DirectXPixelFormat_Y210 = 108,
+                    DirectXPixelFormat_Y216 = 109,
+                    DirectXPixelFormat_NV11 = 110,
+                    DirectXPixelFormat_AI44 = 111,
+                    DirectXPixelFormat_IA44 = 112,
+                    DirectXPixelFormat_P8 = 113,
+                    DirectXPixelFormat_A8P8 = 114,
+                    DirectXPixelFormat_B4G4R4A4UIntNormalized = 115,
+                    DirectXPixelFormat_P208 = 130,
+                    DirectXPixelFormat_V208 = 131,
+                    DirectXPixelFormat_V408 = 132
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CGraphics_CDirectX_CDirectXPixelFormat {
+    DirectXPixelFormat_Unknown = 0,
+    DirectXPixelFormat_R32G32B32A32Typeless = 1,
+    DirectXPixelFormat_R32G32B32A32Float = 2,
+    DirectXPixelFormat_R32G32B32A32UInt = 3,
+    DirectXPixelFormat_R32G32B32A32Int = 4,
+    DirectXPixelFormat_R32G32B32Typeless = 5,
+    DirectXPixelFormat_R32G32B32Float = 6,
+    DirectXPixelFormat_R32G32B32UInt = 7,
+    DirectXPixelFormat_R32G32B32Int = 8,
+    DirectXPixelFormat_R16G16B16A16Typeless = 9,
+    DirectXPixelFormat_R16G16B16A16Float = 10,
+    DirectXPixelFormat_R16G16B16A16UIntNormalized = 11,
+    DirectXPixelFormat_R16G16B16A16UInt = 12,
+    DirectXPixelFormat_R16G16B16A16IntNormalized = 13,
+    DirectXPixelFormat_R16G16B16A16Int = 14,
+    DirectXPixelFormat_R32G32Typeless = 15,
+    DirectXPixelFormat_R32G32Float = 16,
+    DirectXPixelFormat_R32G32UInt = 17,
+    DirectXPixelFormat_R32G32Int = 18,
+    DirectXPixelFormat_R32G8X24Typeless = 19,
+    DirectXPixelFormat_D32FloatS8X24UInt = 20,
+    DirectXPixelFormat_R32FloatX8X24Typeless = 21,
+    DirectXPixelFormat_X32TypelessG8X24UInt = 22,
+    DirectXPixelFormat_R10G10B10A2Typeless = 23,
+    DirectXPixelFormat_R10G10B10A2UIntNormalized = 24,
+    DirectXPixelFormat_R10G10B10A2UInt = 25,
+    DirectXPixelFormat_R11G11B10Float = 26,
+    DirectXPixelFormat_R8G8B8A8Typeless = 27,
+    DirectXPixelFormat_R8G8B8A8UIntNormalized = 28,
+    DirectXPixelFormat_R8G8B8A8UIntNormalizedSrgb = 29,
+    DirectXPixelFormat_R8G8B8A8UInt = 30,
+    DirectXPixelFormat_R8G8B8A8IntNormalized = 31,
+    DirectXPixelFormat_R8G8B8A8Int = 32,
+    DirectXPixelFormat_R16G16Typeless = 33,
+    DirectXPixelFormat_R16G16Float = 34,
+    DirectXPixelFormat_R16G16UIntNormalized = 35,
+    DirectXPixelFormat_R16G16UInt = 36,
+    DirectXPixelFormat_R16G16IntNormalized = 37,
+    DirectXPixelFormat_R16G16Int = 38,
+    DirectXPixelFormat_R32Typeless = 39,
+    DirectXPixelFormat_D32Float = 40,
+    DirectXPixelFormat_R32Float = 41,
+    DirectXPixelFormat_R32UInt = 42,
+    DirectXPixelFormat_R32Int = 43,
+    DirectXPixelFormat_R24G8Typeless = 44,
+    DirectXPixelFormat_D24UIntNormalizedS8UInt = 45,
+    DirectXPixelFormat_R24UIntNormalizedX8Typeless = 46,
+    DirectXPixelFormat_X24TypelessG8UInt = 47,
+    DirectXPixelFormat_R8G8Typeless = 48,
+    DirectXPixelFormat_R8G8UIntNormalized = 49,
+    DirectXPixelFormat_R8G8UInt = 50,
+    DirectXPixelFormat_R8G8IntNormalized = 51,
+    DirectXPixelFormat_R8G8Int = 52,
+    DirectXPixelFormat_R16Typeless = 53,
+    DirectXPixelFormat_R16Float = 54,
+    DirectXPixelFormat_D16UIntNormalized = 55,
+    DirectXPixelFormat_R16UIntNormalized = 56,
+    DirectXPixelFormat_R16UInt = 57,
+    DirectXPixelFormat_R16IntNormalized = 58,
+    DirectXPixelFormat_R16Int = 59,
+    DirectXPixelFormat_R8Typeless = 60,
+    DirectXPixelFormat_R8UIntNormalized = 61,
+    DirectXPixelFormat_R8UInt = 62,
+    DirectXPixelFormat_R8IntNormalized = 63,
+    DirectXPixelFormat_R8Int = 64,
+    DirectXPixelFormat_A8UIntNormalized = 65,
+    DirectXPixelFormat_R1UIntNormalized = 66,
+    DirectXPixelFormat_R9G9B9E5SharedExponent = 67,
+    DirectXPixelFormat_R8G8B8G8UIntNormalized = 68,
+    DirectXPixelFormat_G8R8G8B8UIntNormalized = 69,
+    DirectXPixelFormat_BC1Typeless = 70,
+    DirectXPixelFormat_BC1UIntNormalized = 71,
+    DirectXPixelFormat_BC1UIntNormalizedSrgb = 72,
+    DirectXPixelFormat_BC2Typeless = 73,
+    DirectXPixelFormat_BC2UIntNormalized = 74,
+    DirectXPixelFormat_BC2UIntNormalizedSrgb = 75,
+    DirectXPixelFormat_BC3Typeless = 76,
+    DirectXPixelFormat_BC3UIntNormalized = 77,
+    DirectXPixelFormat_BC3UIntNormalizedSrgb = 78,
+    DirectXPixelFormat_BC4Typeless = 79,
+    DirectXPixelFormat_BC4UIntNormalized = 80,
+    DirectXPixelFormat_BC4IntNormalized = 81,
+    DirectXPixelFormat_BC5Typeless = 82,
+    DirectXPixelFormat_BC5UIntNormalized = 83,
+    DirectXPixelFormat_BC5IntNormalized = 84,
+    DirectXPixelFormat_B5G6R5UIntNormalized = 85,
+    DirectXPixelFormat_B5G5R5A1UIntNormalized = 86,
+    DirectXPixelFormat_B8G8R8A8UIntNormalized = 87,
+    DirectXPixelFormat_B8G8R8X8UIntNormalized = 88,
+    DirectXPixelFormat_R10G10B10XRBiasA2UIntNormalized = 89,
+    DirectXPixelFormat_B8G8R8A8Typeless = 90,
+    DirectXPixelFormat_B8G8R8A8UIntNormalizedSrgb = 91,
+    DirectXPixelFormat_B8G8R8X8Typeless = 92,
+    DirectXPixelFormat_B8G8R8X8UIntNormalizedSrgb = 93,
+    DirectXPixelFormat_BC6HTypeless = 94,
+    DirectXPixelFormat_BC6H16UnsignedFloat = 95,
+    DirectXPixelFormat_BC6H16Float = 96,
+    DirectXPixelFormat_BC7Typeless = 97,
+    DirectXPixelFormat_BC7UIntNormalized = 98,
+    DirectXPixelFormat_BC7UIntNormalizedSrgb = 99,
+    DirectXPixelFormat_Ayuv = 100,
+    DirectXPixelFormat_Y410 = 101,
+    DirectXPixelFormat_Y416 = 102,
+    DirectXPixelFormat_NV12 = 103,
+    DirectXPixelFormat_P010 = 104,
+    DirectXPixelFormat_P016 = 105,
+    DirectXPixelFormat_Opaque420 = 106,
+    DirectXPixelFormat_Yuy2 = 107,
+    DirectXPixelFormat_Y210 = 108,
+    DirectXPixelFormat_Y216 = 109,
+    DirectXPixelFormat_NV11 = 110,
+    DirectXPixelFormat_AI44 = 111,
+    DirectXPixelFormat_IA44 = 112,
+    DirectXPixelFormat_P8 = 113,
+    DirectXPixelFormat_A8P8 = 114,
+    DirectXPixelFormat_B4G4R4A4UIntNormalized = 115,
+    DirectXPixelFormat_P208 = 130,
+    DirectXPixelFormat_V208 = 131,
+    DirectXPixelFormat_V408 = 132
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Graphics {
+            namespace DirectX {
+typedef enum DirectXPixelFormat DirectXPixelFormat;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_graphics_directx_h__ */
diff --git a/mingw-w64-headers/include/windows.graphics.effects.h b/mingw-w64-headers/include/windows.graphics.effects.h
new file mode 100644
index 00000000..7c6e62a5
--- /dev/null
+++ b/mingw-w64-headers/include/windows.graphics.effects.h
@@ -0,0 +1,184 @@
+/*** Autogenerated by WIDL 4.4 from windows.graphics.effects.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_graphics_effects_h__
+#define __windows_graphics_effects_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_FWD_DEFINED__
+#define ____x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace Graphics {
+            namespace Effects {
+                interface IGraphicsEffect;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************
+ * IGraphicsEffect interface
+ */
+#ifndef ____x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect, 0xcb51c0ce, 0x8fe6, 0x4636, 0xb2,0x02, 0x86,0x1f,0xaa,0x07,0xd8,0xf3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Graphics {
+            namespace Effects {
+                MIDL_INTERFACE("cb51c0ce-8fe6-4636-b202-861faa07d8f3")
+                IGraphicsEffect : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_Name(
+                        HSTRING *name) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Name(
+                        HSTRING name) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::Graphics::Effects::IGraphicsEffect, 0xcb51c0ce, 0x8fe6, 0x4636, 0xb2,0x02, 0x86,0x1f,0xaa,0x07,0xd8,0xf3)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffectVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *This,
+        TrustLevel *trustLevel);
+
+    /*** IGraphicsEffect methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Name)(
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *This,
+        HSTRING *name);
+
+    HRESULT (STDMETHODCALLTYPE *put_Name)(
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *This,
+        HSTRING name);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffectVtbl;
+
+interface __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect {
+    CONST_VTBL __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IGraphicsEffect methods ***/
+#define __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_get_Name(This,name) (This)->lpVtbl->get_Name(This,name)
+#define __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_put_Name(This,name) (This)->lpVtbl->put_Name(This,name)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_QueryInterface(__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_AddRef(__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_Release(__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_GetIids(__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_GetRuntimeClassName(__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_GetTrustLevel(__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IGraphicsEffect methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_get_Name(__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect* This,HSTRING *name) {
+    return This->lpVtbl->get_Name(This,name);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_put_Name(__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect* This,HSTRING name) {
+    return This->lpVtbl->put_Name(This,name);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_graphics_effects_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.composition.h b/mingw-w64-headers/include/windows.ui.composition.h
new file mode 100644
index 00000000..9410a3ce
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.composition.h
@@ -0,0 +1,3212 @@
+/*** Autogenerated by WIDL 4.4 from windows.ui.composition.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_ui_composition_h__
+#define __windows_ui_composition_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionBrush_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionBrush_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CICompositionBrush __x_ABI_CWindows_CUI_CComposition_CICompositionBrush;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ICompositionBrush;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionSurface_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionSurface_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CICompositionSurface __x_ABI_CWindows_CUI_CComposition_CICompositionSurface;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ICompositionSurface;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ICompositionSurfaceBrush;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionBrush_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionBrush_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionBrush __x_ABI_CWindows_CUI_CComposition_CCompositionBrush;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionBrush;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CISpriteVisual_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CISpriteVisual_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CISpriteVisual __x_ABI_CWindows_CUI_CComposition_CISpriteVisual;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ISpriteVisual;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CSpriteVisual_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CSpriteVisual_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CSpriteVisual __x_ABI_CWindows_CUI_CComposition_CSpriteVisual;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface SpriteVisual;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionClip_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionClip_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionClip __x_ABI_CWindows_CUI_CComposition_CCompositionClip;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionClip;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CContainerVisual_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CContainerVisual_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CContainerVisual __x_ABI_CWindows_CUI_CComposition_CContainerVisual;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ContainerVisual;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CIVisual_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CIVisual_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CIVisual __x_ABI_CWindows_CUI_CComposition_CIVisual;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface IVisual;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositor_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositor_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositor __x_ABI_CWindows_CUI_CComposition_CCompositor;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface Compositor;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionPropertySet;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionAnimation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionObject_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionObject_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CICompositionObject __x_ABI_CWindows_CUI_CComposition_CICompositionObject;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ICompositionObject;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ColorKeyFrameAnimation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionColorBrush;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CubicBezierEasingFunction;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositor_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositor_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CICompositor __x_ABI_CWindows_CUI_CComposition_CICompositor;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ICompositor;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ICompositionGraphicsDevice;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+#include <windows.foundation.numerics.h>
+#include <windows.graphics.directx.h>
+#include <windows.graphics.effects.h>
+#include <windows.ui.h>
+#include <windows.ui.core.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                enum CompositionBitmapInterpolationMode {
+                    CompositionBitmapInterpolationMode_NearestNeighbor = 0,
+                    CompositionBitmapInterpolationMode_Linear = 1
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CUI_CComposition_CCompositionBitmapInterpolationMode {
+    CompositionBitmapInterpolationMode_NearestNeighbor = 0,
+    CompositionBitmapInterpolationMode_Linear = 1
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+typedef enum CompositionBitmapInterpolationMode CompositionBitmapInterpolationMode;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                enum CompositionStretch {
+                    CompositionStretch_None = 0,
+                    CompositionStretch_Fill = 1,
+                    CompositionStretch_Uniform = 2,
+                    CompositionStretch_UniformToFill = 3
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CUI_CComposition_CCompositionStretch {
+    CompositionStretch_None = 0,
+    CompositionStretch_Fill = 1,
+    CompositionStretch_Uniform = 2,
+    CompositionStretch_UniformToFill = 3
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+typedef enum CompositionStretch CompositionStretch;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                enum CompositionBackfaceVisibility {
+                    CompositionBackfaceVisibility_Inherit = 0,
+                    CompositionBackfaceVisibility_Visible = 1,
+                    CompositionBackfaceVisibility_Hidden = 2
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CUI_CComposition_CCompositionBackfaceVisibility {
+    CompositionBackfaceVisibility_Inherit = 0,
+    CompositionBackfaceVisibility_Visible = 1,
+    CompositionBackfaceVisibility_Hidden = 2
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+typedef enum CompositionBackfaceVisibility CompositionBackfaceVisibility;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                enum CompositionBorderMode {
+                    CompositionBorderMode_Inherit = 0,
+                    CompositionBorderMode_Soft = 1,
+                    CompositionBorderMode_Hard = 2
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CUI_CComposition_CCompositionBorderMode {
+    CompositionBorderMode_Inherit = 0,
+    CompositionBorderMode_Soft = 1,
+    CompositionBorderMode_Hard = 2
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+typedef enum CompositionBorderMode CompositionBorderMode;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                enum CompositionCompositeMode {
+                    CompositionCompositeMode_Inherit = 0,
+                    CompositionCompositeMode_SourceOver = 1,
+                    CompositionCompositeMode_DestinationInvert = 2,
+                    CompositionCompositeMode_MinBlend = 3
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CUI_CComposition_CCompositionCompositeMode {
+    CompositionCompositeMode_Inherit = 0,
+    CompositionCompositeMode_SourceOver = 1,
+    CompositionCompositeMode_DestinationInvert = 2,
+    CompositionCompositeMode_MinBlend = 3
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+typedef enum CompositionCompositeMode CompositionCompositeMode;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                enum CompositionBatchTypes {
+                    CompositionBatchTypes_None = 0x0,
+                    CompositionBatchTypes_Animation = 0x1,
+                    CompositionBatchTypes_Effect = 0x2
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#else
+enum __x_ABI_CWindows_CUI_CComposition_CCompositionBatchTypes {
+    CompositionBatchTypes_None = 0x0,
+    CompositionBatchTypes_Animation = 0x1,
+    CompositionBatchTypes_Effect = 0x2
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+typedef enum CompositionBatchTypes CompositionBatchTypes;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+/*****************************************************************************
+ * ICompositionBrush interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionBrush_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionBrush_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CICompositionBrush, 0xab0d7608, 0x30c0, 0x40e9, 0xb5,0x68, 0xb6,0x0a,0x6b,0xd1,0xfb,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("ab0d7608-30c0-40e9-b568-b60a6bd1fb46")
+                ICompositionBrush : public IInspectable
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ICompositionBrush, 0xab0d7608, 0x30c0, 0x40e9, 0xb5,0x68, 0xb6,0x0a,0x6b,0xd1,0xfb,0x46)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CICompositionBrushVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionBrush *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionBrush *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionBrush *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionBrush *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionBrush *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionBrush *This,
+        TrustLevel *trustLevel);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CICompositionBrushVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CICompositionBrush {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CICompositionBrushVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CICompositionBrush* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_AddRef(__x_ABI_CWindows_CUI_CComposition_CICompositionBrush* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_Release(__x_ABI_CWindows_CUI_CComposition_CICompositionBrush* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_GetIids(__x_ABI_CWindows_CUI_CComposition_CICompositionBrush* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_GetRuntimeClassName(__x_ABI_CWindows_CUI_CComposition_CICompositionBrush* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionBrush_GetTrustLevel(__x_ABI_CWindows_CUI_CComposition_CICompositionBrush* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CICompositionBrush_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ICompositionSurface interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionSurface_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionSurface_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CICompositionSurface, 0x1527540d, 0x42c7, 0x47a6, 0xa4,0x08, 0x66,0x8f,0x79,0xa9,0x0d,0xfb);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("1527540d-42c7-47a6-a408-668f79a90dfb")
+                ICompositionSurface : public IInspectable
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ICompositionSurface, 0x1527540d, 0x42c7, 0x47a6, 0xa4,0x08, 0x66,0x8f,0x79,0xa9,0x0d,0xfb)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface *This,
+        TrustLevel *trustLevel);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CICompositionSurface {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CICompositionSurface* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_AddRef(__x_ABI_CWindows_CUI_CComposition_CICompositionSurface* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_Release(__x_ABI_CWindows_CUI_CComposition_CICompositionSurface* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_GetIids(__x_ABI_CWindows_CUI_CComposition_CICompositionSurface* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_GetRuntimeClassName(__x_ABI_CWindows_CUI_CComposition_CICompositionSurface* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurface_GetTrustLevel(__x_ABI_CWindows_CUI_CComposition_CICompositionSurface* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CICompositionSurface_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ICompositionSurfaceBrush interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush, 0xad016d79, 0x1e4c, 0x4c0d, 0x9c,0x29, 0x83,0x33,0x8c,0x87,0xc1,0x62);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("ad016d79-1e4c-4c0d-9c29-83338c87c162")
+                ICompositionSurfaceBrush : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_BitmapInterpolationMode(
+                        ABI::Windows::UI::Composition::CompositionBitmapInterpolationMode *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_BitmapInterpolationMode(
+                        ABI::Windows::UI::Composition::CompositionBitmapInterpolationMode value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_HorizontalAlignmentRatio(
+                        FLOAT *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_HorizontalAlignmentRatio(
+                        FLOAT value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Stretch(
+                        ABI::Windows::UI::Composition::CompositionStretch *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Stretch(
+                        ABI::Windows::UI::Composition::CompositionStretch value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Surface(
+                        ABI::Windows::UI::Composition::ICompositionSurface **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Surface(
+                        ABI::Windows::UI::Composition::ICompositionSurface *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_VerticalAlignmentRatio(
+                        FLOAT *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_VerticalAlignmentRatio(
+                        FLOAT value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ICompositionSurfaceBrush, 0xad016d79, 0x1e4c, 0x4c0d, 0x9c,0x29, 0x83,0x33,0x8c,0x87,0xc1,0x62)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrushVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        TrustLevel *trustLevel);
+
+    /*** ICompositionSurfaceBrush methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_BitmapInterpolationMode)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBitmapInterpolationMode *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_BitmapInterpolationMode)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBitmapInterpolationMode value);
+
+    HRESULT (STDMETHODCALLTYPE *get_HorizontalAlignmentRatio)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        FLOAT *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_HorizontalAlignmentRatio)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        FLOAT value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Stretch)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionStretch *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Stretch)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionStretch value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Surface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface **value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Surface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_VerticalAlignmentRatio)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        FLOAT *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_VerticalAlignmentRatio)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush *This,
+        FLOAT value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrushVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrushVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICompositionSurfaceBrush methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_BitmapInterpolationMode(This,value) (This)->lpVtbl->get_BitmapInterpolationMode(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_BitmapInterpolationMode(This,value) (This)->lpVtbl->put_BitmapInterpolationMode(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_HorizontalAlignmentRatio(This,value) (This)->lpVtbl->get_HorizontalAlignmentRatio(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_HorizontalAlignmentRatio(This,value) (This)->lpVtbl->put_HorizontalAlignmentRatio(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_Stretch(This,value) (This)->lpVtbl->get_Stretch(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_Stretch(This,value) (This)->lpVtbl->put_Stretch(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_Surface(This,value) (This)->lpVtbl->get_Surface(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_Surface(This,value) (This)->lpVtbl->put_Surface(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_VerticalAlignmentRatio(This,value) (This)->lpVtbl->get_VerticalAlignmentRatio(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_VerticalAlignmentRatio(This,value) (This)->lpVtbl->put_VerticalAlignmentRatio(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_AddRef(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_Release(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_GetIids(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_GetRuntimeClassName(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_GetTrustLevel(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICompositionSurfaceBrush methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_BitmapInterpolationMode(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,__x_ABI_CWindows_CUI_CComposition_CCompositionBitmapInterpolationMode *value) {
+    return This->lpVtbl->get_BitmapInterpolationMode(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_BitmapInterpolationMode(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,__x_ABI_CWindows_CUI_CComposition_CCompositionBitmapInterpolationMode value) {
+    return This->lpVtbl->put_BitmapInterpolationMode(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_HorizontalAlignmentRatio(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,FLOAT *value) {
+    return This->lpVtbl->get_HorizontalAlignmentRatio(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_HorizontalAlignmentRatio(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,FLOAT value) {
+    return This->lpVtbl->put_HorizontalAlignmentRatio(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_Stretch(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,__x_ABI_CWindows_CUI_CComposition_CCompositionStretch *value) {
+    return This->lpVtbl->get_Stretch(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_Stretch(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,__x_ABI_CWindows_CUI_CComposition_CCompositionStretch value) {
+    return This->lpVtbl->put_Stretch(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_Surface(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,__x_ABI_CWindows_CUI_CComposition_CICompositionSurface **value) {
+    return This->lpVtbl->get_Surface(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_Surface(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,__x_ABI_CWindows_CUI_CComposition_CICompositionSurface *value) {
+    return This->lpVtbl->put_Surface(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_get_VerticalAlignmentRatio(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,FLOAT *value) {
+    return This->lpVtbl->get_VerticalAlignmentRatio(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_put_VerticalAlignmentRatio(__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush* This,FLOAT value) {
+    return This->lpVtbl->put_VerticalAlignmentRatio(This,value);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * CompositionBrush interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionBrush_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionBrush_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CCompositionBrush, 0x08e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3c);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("08e05581-1ad1-4f97-9666-402d76e4233c")
+                CompositionBrush : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::CompositionBrush, 0x08e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3c)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CCompositionBrushVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBrush *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBrush *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBrush *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CCompositionBrushVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CCompositionBrush {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CCompositionBrushVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionBrush_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionBrush_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionBrush_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CCompositionBrush_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CCompositionBrush* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionBrush_AddRef(__x_ABI_CWindows_CUI_CComposition_CCompositionBrush* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionBrush_Release(__x_ABI_CWindows_CUI_CComposition_CCompositionBrush* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CCompositionBrush_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpriteVisual interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CISpriteVisual_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CISpriteVisual_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CISpriteVisual, 0x08e05581, 0x1ad1, 0x4f97, 0x97,0x57, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("08e05581-1ad1-4f97-9757-402d76e4233b")
+                ISpriteVisual : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_Brush(
+                        ABI::Windows::UI::Composition::CompositionBrush **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Brush(
+                        ABI::Windows::UI::Composition::ICompositionBrush *value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ISpriteVisual, 0x08e05581, 0x1ad1, 0x4f97, 0x97,0x57, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CISpriteVisualVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CISpriteVisual *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CISpriteVisual *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CISpriteVisual *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CComposition_CISpriteVisual *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CComposition_CISpriteVisual *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CComposition_CISpriteVisual *This,
+        TrustLevel *trustLevel);
+
+    /*** ISpriteVisual methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Brush)(
+        __x_ABI_CWindows_CUI_CComposition_CISpriteVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBrush **value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Brush)(
+        __x_ABI_CWindows_CUI_CComposition_CISpriteVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CICompositionBrush *value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CISpriteVisualVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CISpriteVisual {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CISpriteVisualVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ISpriteVisual methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_get_Brush(This,value) (This)->lpVtbl->get_Brush(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_put_Brush(This,value) (This)->lpVtbl->put_Brush(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CISpriteVisual* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_AddRef(__x_ABI_CWindows_CUI_CComposition_CISpriteVisual* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_Release(__x_ABI_CWindows_CUI_CComposition_CISpriteVisual* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_GetIids(__x_ABI_CWindows_CUI_CComposition_CISpriteVisual* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_GetRuntimeClassName(__x_ABI_CWindows_CUI_CComposition_CISpriteVisual* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_GetTrustLevel(__x_ABI_CWindows_CUI_CComposition_CISpriteVisual* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ISpriteVisual methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_get_Brush(__x_ABI_CWindows_CUI_CComposition_CISpriteVisual* This,__x_ABI_CWindows_CUI_CComposition_CCompositionBrush **value) {
+    return This->lpVtbl->get_Brush(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CISpriteVisual_put_Brush(__x_ABI_CWindows_CUI_CComposition_CISpriteVisual* This,__x_ABI_CWindows_CUI_CComposition_CICompositionBrush *value) {
+    return This->lpVtbl->put_Brush(This,value);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CISpriteVisual_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * SpriteVisual interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CSpriteVisual_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CSpriteVisual_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CSpriteVisual, 0x08e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("08e05581-1ad1-4f97-9666-402d76e4233b")
+                SpriteVisual : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::SpriteVisual, 0x08e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CSpriteVisualVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CSpriteVisual *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CSpriteVisual *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CSpriteVisual *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CSpriteVisualVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CSpriteVisual {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CSpriteVisualVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CSpriteVisual_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CSpriteVisual_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CSpriteVisual_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CSpriteVisual_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CSpriteVisual* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CSpriteVisual_AddRef(__x_ABI_CWindows_CUI_CComposition_CSpriteVisual* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CSpriteVisual_Release(__x_ABI_CWindows_CUI_CComposition_CSpriteVisual* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CSpriteVisual_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * CompositionClip interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionClip_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionClip_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CCompositionClip, 0x18e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("18e05581-1ad1-4f97-9666-402d76e4233b")
+                CompositionClip : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::CompositionClip, 0x18e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CCompositionClipVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionClip *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionClip *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionClip *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CCompositionClipVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CCompositionClip {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CCompositionClipVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionClip_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionClip_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionClip_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CCompositionClip_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CCompositionClip* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionClip_AddRef(__x_ABI_CWindows_CUI_CComposition_CCompositionClip* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionClip_Release(__x_ABI_CWindows_CUI_CComposition_CCompositionClip* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CCompositionClip_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ContainerVisual interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CContainerVisual_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CContainerVisual_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CContainerVisual, 0x28e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("28e05581-1ad1-4f97-9666-402d76e4233b")
+                ContainerVisual : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ContainerVisual, 0x28e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CContainerVisualVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CContainerVisual *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CContainerVisual *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CContainerVisual *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CContainerVisualVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CContainerVisual {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CContainerVisualVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CContainerVisual_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CContainerVisual_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CContainerVisual_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CContainerVisual_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CContainerVisual* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CContainerVisual_AddRef(__x_ABI_CWindows_CUI_CComposition_CContainerVisual* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CContainerVisual_Release(__x_ABI_CWindows_CUI_CComposition_CContainerVisual* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CContainerVisual_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IVisual interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CIVisual_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CIVisual_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CIVisual, 0x117e202d, 0xa859, 0x4c89, 0x87,0x3b, 0xc2,0xaa,0x56,0x67,0x88,0xe3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("117e202d-a859-4c89-873b-c2aa566788e3")
+                IVisual : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_AnchorPoint(
+                        ABI::Windows::Foundation::Numerics::Vector2 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_AnchorPoint(
+                        ABI::Windows::Foundation::Numerics::Vector2 value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_BackfaceVisibility(
+                        ABI::Windows::UI::Composition::CompositionBackfaceVisibility *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_BackfaceVisibility(
+                        ABI::Windows::UI::Composition::CompositionBackfaceVisibility value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_BorderMode(
+                        ABI::Windows::UI::Composition::CompositionBorderMode *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_BorderMode(
+                        ABI::Windows::UI::Composition::CompositionBorderMode value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_CenterPoint(
+                        ABI::Windows::Foundation::Numerics::Vector3 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_CenterPoint(
+                        ABI::Windows::Foundation::Numerics::Vector3 value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Clip(
+                        ABI::Windows::UI::Composition::CompositionClip **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Clip(
+                        ABI::Windows::UI::Composition::CompositionClip *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_CompositeMode(
+                        ABI::Windows::UI::Composition::CompositionCompositeMode *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_CompositeMode(
+                        ABI::Windows::UI::Composition::CompositionCompositeMode value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_IsVisible(
+                        boolean *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_IsVisible(
+                        boolean value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Offset(
+                        ABI::Windows::Foundation::Numerics::Vector3 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Offset(
+                        ABI::Windows::Foundation::Numerics::Vector3 value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Opacity(
+                        FLOAT *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Opacity(
+                        FLOAT value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Orientation(
+                        ABI::Windows::Foundation::Numerics::Quaternion *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Orientation(
+                        ABI::Windows::Foundation::Numerics::Quaternion value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Parent(
+                        ABI::Windows::UI::Composition::ContainerVisual **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_RotationAngle(
+                        FLOAT *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_RotationAngle(
+                        FLOAT value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_RotationAngleInDegrees(
+                        FLOAT *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_RotationAngleInDegrees(
+                        FLOAT value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_RotationAxis(
+                        ABI::Windows::Foundation::Numerics::Vector3 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_RotationAxis(
+                        ABI::Windows::Foundation::Numerics::Vector3 value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Scale(
+                        ABI::Windows::Foundation::Numerics::Vector3 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Scale(
+                        ABI::Windows::Foundation::Numerics::Vector3 value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Size(
+                        ABI::Windows::Foundation::Numerics::Vector2 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_Size(
+                        ABI::Windows::Foundation::Numerics::Vector2 value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_TransformMatrix(
+                        ABI::Windows::Foundation::Numerics::Matrix4x4 *value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE put_TransformMatrix(
+                        ABI::Windows::Foundation::Numerics::Matrix4x4 value) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::IVisual, 0x117e202d, 0xa859, 0x4c89, 0x87,0x3b, 0xc2,0xaa,0x56,0x67,0x88,0xe3)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CIVisualVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        TrustLevel *trustLevel);
+
+    /*** IVisual methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_AnchorPoint)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector2 *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_AnchorPoint)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector2 value);
+
+    HRESULT (STDMETHODCALLTYPE *get_BackfaceVisibility)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBackfaceVisibility *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_BackfaceVisibility)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBackfaceVisibility value);
+
+    HRESULT (STDMETHODCALLTYPE *get_BorderMode)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBorderMode *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_BorderMode)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBorderMode value);
+
+    HRESULT (STDMETHODCALLTYPE *get_CenterPoint)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_CenterPoint)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector3 value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Clip)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionClip **value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Clip)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionClip *value);
+
+    HRESULT (STDMETHODCALLTYPE *get_CompositeMode)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionCompositeMode *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_CompositeMode)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionCompositeMode value);
+
+    HRESULT (STDMETHODCALLTYPE *get_IsVisible)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        boolean *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_IsVisible)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        boolean value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Offset)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Offset)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector3 value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Opacity)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        FLOAT *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Opacity)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        FLOAT value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Orientation)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CQuaternion *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Orientation)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CQuaternion value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Parent)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CUI_CComposition_CContainerVisual **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_RotationAngle)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        FLOAT *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_RotationAngle)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        FLOAT value);
+
+    HRESULT (STDMETHODCALLTYPE *get_RotationAngleInDegrees)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        FLOAT *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_RotationAngleInDegrees)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        FLOAT value);
+
+    HRESULT (STDMETHODCALLTYPE *get_RotationAxis)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_RotationAxis)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector3 value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Scale)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Scale)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector3 value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Size)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector2 *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_Size)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector2 value);
+
+    HRESULT (STDMETHODCALLTYPE *get_TransformMatrix)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4 *value);
+
+    HRESULT (STDMETHODCALLTYPE *put_TransformMatrix)(
+        __x_ABI_CWindows_CUI_CComposition_CIVisual *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4 value);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CIVisualVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CIVisual {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CIVisualVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IVisual methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_AnchorPoint(This,value) (This)->lpVtbl->get_AnchorPoint(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_AnchorPoint(This,value) (This)->lpVtbl->put_AnchorPoint(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_BackfaceVisibility(This,value) (This)->lpVtbl->get_BackfaceVisibility(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_BackfaceVisibility(This,value) (This)->lpVtbl->put_BackfaceVisibility(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_BorderMode(This,value) (This)->lpVtbl->get_BorderMode(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_BorderMode(This,value) (This)->lpVtbl->put_BorderMode(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_CenterPoint(This,value) (This)->lpVtbl->get_CenterPoint(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_CenterPoint(This,value) (This)->lpVtbl->put_CenterPoint(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Clip(This,value) (This)->lpVtbl->get_Clip(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Clip(This,value) (This)->lpVtbl->put_Clip(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_CompositeMode(This,value) (This)->lpVtbl->get_CompositeMode(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_CompositeMode(This,value) (This)->lpVtbl->put_CompositeMode(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_IsVisible(This,value) (This)->lpVtbl->get_IsVisible(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_IsVisible(This,value) (This)->lpVtbl->put_IsVisible(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Offset(This,value) (This)->lpVtbl->get_Offset(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Offset(This,value) (This)->lpVtbl->put_Offset(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Opacity(This,value) (This)->lpVtbl->get_Opacity(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Opacity(This,value) (This)->lpVtbl->put_Opacity(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Orientation(This,value) (This)->lpVtbl->get_Orientation(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Orientation(This,value) (This)->lpVtbl->put_Orientation(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Parent(This,value) (This)->lpVtbl->get_Parent(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_RotationAngle(This,value) (This)->lpVtbl->get_RotationAngle(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_RotationAngle(This,value) (This)->lpVtbl->put_RotationAngle(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_RotationAngleInDegrees(This,value) (This)->lpVtbl->get_RotationAngleInDegrees(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_RotationAngleInDegrees(This,value) (This)->lpVtbl->put_RotationAngleInDegrees(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_RotationAxis(This,value) (This)->lpVtbl->get_RotationAxis(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_RotationAxis(This,value) (This)->lpVtbl->put_RotationAxis(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Scale(This,value) (This)->lpVtbl->get_Scale(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Scale(This,value) (This)->lpVtbl->put_Scale(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Size(This,value) (This)->lpVtbl->get_Size(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Size(This,value) (This)->lpVtbl->put_Size(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_get_TransformMatrix(This,value) (This)->lpVtbl->get_TransformMatrix(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CIVisual_put_TransformMatrix(This,value) (This)->lpVtbl->put_TransformMatrix(This,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CIVisual_AddRef(__x_ABI_CWindows_CUI_CComposition_CIVisual* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CIVisual_Release(__x_ABI_CWindows_CUI_CComposition_CIVisual* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_GetIids(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_GetRuntimeClassName(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_GetTrustLevel(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IVisual methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_AnchorPoint(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector2 *value) {
+    return This->lpVtbl->get_AnchorPoint(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_AnchorPoint(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector2 value) {
+    return This->lpVtbl->put_AnchorPoint(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_BackfaceVisibility(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CUI_CComposition_CCompositionBackfaceVisibility *value) {
+    return This->lpVtbl->get_BackfaceVisibility(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_BackfaceVisibility(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CUI_CComposition_CCompositionBackfaceVisibility value) {
+    return This->lpVtbl->put_BackfaceVisibility(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_BorderMode(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CUI_CComposition_CCompositionBorderMode *value) {
+    return This->lpVtbl->get_BorderMode(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_BorderMode(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CUI_CComposition_CCompositionBorderMode value) {
+    return This->lpVtbl->put_BorderMode(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_CenterPoint(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value) {
+    return This->lpVtbl->get_CenterPoint(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_CenterPoint(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector3 value) {
+    return This->lpVtbl->put_CenterPoint(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Clip(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CUI_CComposition_CCompositionClip **value) {
+    return This->lpVtbl->get_Clip(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Clip(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CUI_CComposition_CCompositionClip *value) {
+    return This->lpVtbl->put_Clip(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_CompositeMode(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CUI_CComposition_CCompositionCompositeMode *value) {
+    return This->lpVtbl->get_CompositeMode(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_CompositeMode(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CUI_CComposition_CCompositionCompositeMode value) {
+    return This->lpVtbl->put_CompositeMode(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_IsVisible(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,boolean *value) {
+    return This->lpVtbl->get_IsVisible(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_IsVisible(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,boolean value) {
+    return This->lpVtbl->put_IsVisible(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Offset(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value) {
+    return This->lpVtbl->get_Offset(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Offset(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector3 value) {
+    return This->lpVtbl->put_Offset(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Opacity(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,FLOAT *value) {
+    return This->lpVtbl->get_Opacity(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Opacity(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,FLOAT value) {
+    return This->lpVtbl->put_Opacity(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Orientation(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CQuaternion *value) {
+    return This->lpVtbl->get_Orientation(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Orientation(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CQuaternion value) {
+    return This->lpVtbl->put_Orientation(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Parent(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CUI_CComposition_CContainerVisual **value) {
+    return This->lpVtbl->get_Parent(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_RotationAngle(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,FLOAT *value) {
+    return This->lpVtbl->get_RotationAngle(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_RotationAngle(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,FLOAT value) {
+    return This->lpVtbl->put_RotationAngle(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_RotationAngleInDegrees(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,FLOAT *value) {
+    return This->lpVtbl->get_RotationAngleInDegrees(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_RotationAngleInDegrees(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,FLOAT value) {
+    return This->lpVtbl->put_RotationAngleInDegrees(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_RotationAxis(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value) {
+    return This->lpVtbl->get_RotationAxis(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_RotationAxis(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector3 value) {
+    return This->lpVtbl->put_RotationAxis(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Scale(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector3 *value) {
+    return This->lpVtbl->get_Scale(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Scale(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector3 value) {
+    return This->lpVtbl->put_Scale(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_Size(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector2 *value) {
+    return This->lpVtbl->get_Size(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_Size(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector2 value) {
+    return This->lpVtbl->put_Size(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_get_TransformMatrix(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4 *value) {
+    return This->lpVtbl->get_TransformMatrix(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CIVisual_put_TransformMatrix(__x_ABI_CWindows_CUI_CComposition_CIVisual* This,__x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4 value) {
+    return This->lpVtbl->put_TransformMatrix(This,value);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CIVisual_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * Compositor interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositor_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CCompositor, 0x38e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("38e05581-1ad1-4f97-9666-402d76e4233b")
+                Compositor : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::Compositor, 0x38e05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CCompositorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositor *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositor *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositor *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CCompositorVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CCompositor {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CCompositorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CCompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositor_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CCompositor_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CCompositor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositor_AddRef(__x_ABI_CWindows_CUI_CComposition_CCompositor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositor_Release(__x_ABI_CWindows_CUI_CComposition_CCompositor* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CCompositor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * CompositionPropertySet interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet, 0x38e05582, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("38e05582-1ad1-4f97-9666-402d76e4233b")
+                CompositionPropertySet : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::CompositionPropertySet, 0x38e05582, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySetVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySetVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySetVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_AddRef(__x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_Release(__x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * CompositionAnimation interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CCompositionAnimation, 0x38e05582, 0x1ad2, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("38e05582-1ad2-4f97-9666-402d76e4233b")
+                CompositionAnimation : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::CompositionAnimation, 0x38e05582, 0x1ad2, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CCompositionAnimationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CCompositionAnimationVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CCompositionAnimationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CCompositionAnimation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_AddRef(__x_ABI_CWindows_CUI_CComposition_CCompositionAnimation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_Release(__x_ABI_CWindows_CUI_CComposition_CCompositionAnimation* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CCompositionAnimation_INTERFACE_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositor_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositor_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CICompositor __x_ABI_CWindows_CUI_CComposition_CICompositor;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ICompositor;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * ICompositionObject interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionObject_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionObject_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CICompositionObject, 0xbcb4ad45, 0x7609, 0x4550, 0x93,0x4f, 0x16,0x00,0x2a,0x68,0xfd,0xed);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("bcb4ad45-7609-4550-934f-16002a68fded")
+                ICompositionObject : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE get_Compositor(
+                        ABI::Windows::UI::Composition::ICompositor **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Dispatcher(
+                        ABI::Windows::UI::Core::CoreDispatcher **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE get_Properties(
+                        ABI::Windows::UI::Composition::CompositionPropertySet **value) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE StartAnimation(
+                        HSTRING propertyName,
+                        ABI::Windows::UI::Composition::CompositionAnimation *animation) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE StopAnimation(
+                        HSTRING propertyName) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ICompositionObject, 0xbcb4ad45, 0x7609, 0x4550, 0x93,0x4f, 0x16,0x00,0x2a,0x68,0xfd,0xed)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CICompositionObjectVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This,
+        TrustLevel *trustLevel);
+
+    /*** ICompositionObject methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Compositor)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This,
+        __x_ABI_CWindows_CUI_CComposition_CICompositor **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Dispatcher)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This,
+        __x_ABI_CWindows_CUI_CCore_CCoreDispatcher **value);
+
+    HRESULT (STDMETHODCALLTYPE *get_Properties)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet **value);
+
+    HRESULT (STDMETHODCALLTYPE *StartAnimation)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This,
+        HSTRING propertyName,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionAnimation *animation);
+
+    HRESULT (STDMETHODCALLTYPE *StopAnimation)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionObject *This,
+        HSTRING propertyName);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CICompositionObjectVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CICompositionObject {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CICompositionObjectVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICompositionObject methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_get_Compositor(This,value) (This)->lpVtbl->get_Compositor(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_get_Dispatcher(This,value) (This)->lpVtbl->get_Dispatcher(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_get_Properties(This,value) (This)->lpVtbl->get_Properties(This,value)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_StartAnimation(This,propertyName,animation) (This)->lpVtbl->StartAnimation(This,propertyName,animation)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionObject_StopAnimation(This,propertyName) (This)->lpVtbl->StopAnimation(This,propertyName)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionObject_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionObject_AddRef(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionObject_Release(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionObject_GetIids(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionObject_GetRuntimeClassName(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionObject_GetTrustLevel(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICompositionObject methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionObject_get_Compositor(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This,__x_ABI_CWindows_CUI_CComposition_CICompositor **value) {
+    return This->lpVtbl->get_Compositor(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionObject_get_Dispatcher(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This,__x_ABI_CWindows_CUI_CCore_CCoreDispatcher **value) {
+    return This->lpVtbl->get_Dispatcher(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionObject_get_Properties(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This,__x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet **value) {
+    return This->lpVtbl->get_Properties(This,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionObject_StartAnimation(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This,HSTRING propertyName,__x_ABI_CWindows_CUI_CComposition_CCompositionAnimation *animation) {
+    return This->lpVtbl->StartAnimation(This,propertyName,animation);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionObject_StopAnimation(__x_ABI_CWindows_CUI_CComposition_CICompositionObject* This,HSTRING propertyName) {
+    return This->lpVtbl->StopAnimation(This,propertyName);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CICompositionObject_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ColorKeyFrameAnimation interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation, 0x38e05682, 0x1ad2, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("38e05682-1ad2-4f97-9666-402d76e4233b")
+                ColorKeyFrameAnimation : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ColorKeyFrameAnimation, 0x38e05682, 0x1ad2, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimationVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_AddRef(__x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_Release(__x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * CompositionColorBrush interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush, 0x33e05682, 0x1ad2, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("33e05682-1ad2-4f97-9666-402d76e4233b")
+                CompositionColorBrush : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::CompositionColorBrush, 0x33e05682, 0x1ad2, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrushVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrushVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrushVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_AddRef(__x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_Release(__x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * CubicBezierEasingFunction interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction, 0x43e05682, 0x1ad2, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("43e05682-1ad2-4f97-9666-402d76e4233b")
+                CubicBezierEasingFunction : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::CubicBezierEasingFunction, 0x43e05682, 0x1ad2, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunctionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunctionVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunctionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_AddRef(__x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_Release(__x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction_INTERFACE_DEFINED__ */
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionEffectFactory_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionEffectFactory_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionEffectFactory __x_ABI_CWindows_CUI_CComposition_CCompositionEffectFactory;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionEffectFactory;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CExpressionAnimation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CExpressionAnimation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CExpressionAnimation __x_ABI_CWindows_CUI_CComposition_CExpressionAnimation;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ExpressionAnimation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CInsetClip_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CInsetClip_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CInsetClip __x_ABI_CWindows_CUI_CComposition_CInsetClip;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface InsetClip;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CLinearEasingFunction_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CLinearEasingFunction_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CLinearEasingFunction __x_ABI_CWindows_CUI_CComposition_CLinearEasingFunction;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface LinearEasingFunction;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CScalarKeyFrameAnimation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CScalarKeyFrameAnimation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CScalarKeyFrameAnimation __x_ABI_CWindows_CUI_CComposition_CScalarKeyFrameAnimation;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface ScalarKeyFrameAnimation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CQuaternionKeyFrameAnimation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CQuaternionKeyFrameAnimation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CQuaternionKeyFrameAnimation __x_ABI_CWindows_CUI_CComposition_CQuaternionKeyFrameAnimation;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface QuaternionKeyFrameAnimation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionScopedBatch_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionScopedBatch_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionScopedBatch __x_ABI_CWindows_CUI_CComposition_CCompositionScopedBatch;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionScopedBatch;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionSurfaceBrush_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionSurfaceBrush_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionSurfaceBrush __x_ABI_CWindows_CUI_CComposition_CCompositionSurfaceBrush;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionSurfaceBrush;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CVector2KeyFrameAnimation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CVector2KeyFrameAnimation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CVector2KeyFrameAnimation __x_ABI_CWindows_CUI_CComposition_CVector2KeyFrameAnimation;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface Vector2KeyFrameAnimation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CVector3KeyFrameAnimation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CVector3KeyFrameAnimation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CVector3KeyFrameAnimation __x_ABI_CWindows_CUI_CComposition_CVector3KeyFrameAnimation;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface Vector3KeyFrameAnimation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CVector4KeyFrameAnimation_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CVector4KeyFrameAnimation_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CVector4KeyFrameAnimation __x_ABI_CWindows_CUI_CComposition_CVector4KeyFrameAnimation;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface Vector4KeyFrameAnimation;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionTarget_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionTarget_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionTarget __x_ABI_CWindows_CUI_CComposition_CCompositionTarget;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionTarget;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionCommitBatch_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionCommitBatch_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionCommitBatch __x_ABI_CWindows_CUI_CComposition_CCompositionCommitBatch;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionCommitBatch;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CCompositionDrawingSurface_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CCompositionDrawingSurface_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CComposition_CCompositionDrawingSurface __x_ABI_CWindows_CUI_CComposition_CCompositionDrawingSurface;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                interface CompositionDrawingSurface;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+/*****************************************************************************
+ * ICompositor interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositor_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositor_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CICompositor, 0xb403ca50, 0x7f8c, 0x4e83, 0x98,0x5f, 0xcc,0x45,0x06,0x00,0x36,0xd8);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("b403ca50-7f8c-4e83-985f-cc45060036d8")
+                ICompositor : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE CreateColorKeyFrameAnimation(
+                        ABI::Windows::UI::Composition::ColorKeyFrameAnimation **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateColorBrush(
+                        ABI::Windows::UI::Composition::CompositionColorBrush **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateColorBrushWithColor(
+                        ABI::Windows::UI::Color color,
+                        ABI::Windows::UI::Composition::CompositionColorBrush **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateContainerVisual(
+                        ABI::Windows::UI::Composition::ContainerVisual **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateCubicBezierEasingFunction(
+                        ABI::Windows::Foundation::Numerics::Vector2 controlPoint1,
+                        ABI::Windows::Foundation::Numerics::Vector2 controlPoint2,
+                        ABI::Windows::UI::Composition::CubicBezierEasingFunction **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateEffectFactory(
+                        ABI::Windows::Graphics::Effects::IGraphicsEffect *graphicsEffect,
+                        ABI::Windows::UI::Composition::CompositionEffectFactory **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateEffectFactoryWithProperties(
+                        ABI::Windows::Graphics::Effects::IGraphicsEffect *graphicsEffect,
+                        int *animatableProperties,
+                        ABI::Windows::UI::Composition::CompositionEffectFactory **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateExpressionAnimation(
+                        ABI::Windows::UI::Composition::ExpressionAnimation **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateExpressionAnimationWithExpression(
+                        HSTRING expression,
+                        ABI::Windows::UI::Composition::ExpressionAnimation **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateInsetClip(
+                        ABI::Windows::UI::Composition::InsetClip **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateInsetClipWithInsets(
+                        FLOAT leftInset,
+                        FLOAT topInset,
+                        FLOAT rightInset,
+                        FLOAT bottomInset,
+                        ABI::Windows::UI::Composition::InsetClip **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateLinearEasingFunction(
+                        ABI::Windows::UI::Composition::LinearEasingFunction **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreatePropertySet(
+                        ABI::Windows::UI::Composition::CompositionPropertySet **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateQuaternionKeyFrameAnimation(
+                        ABI::Windows::UI::Composition::QuaternionKeyFrameAnimation **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateScalarKeyFrameAnimation(
+                        ABI::Windows::UI::Composition::ScalarKeyFrameAnimation **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateScopedBatch(
+                        ABI::Windows::UI::Composition::CompositionBatchTypes batchType,
+                        ABI::Windows::UI::Composition::CompositionScopedBatch **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateSpriteVisual(
+                        ABI::Windows::UI::Composition::SpriteVisual **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateSurfaceBrush(
+                        ABI::Windows::UI::Composition::CompositionSurfaceBrush **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateSurfaceBrushWithSurface(
+                        ABI::Windows::UI::Composition::ICompositionSurface *surface,
+                        ABI::Windows::UI::Composition::ICompositionSurfaceBrush **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateTargetForCurrentView(
+                        ABI::Windows::UI::Composition::CompositionTarget **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateVector2KeyFrameAnimation(
+                        ABI::Windows::UI::Composition::Vector2KeyFrameAnimation **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateVector3KeyFrameAnimation(
+                        ABI::Windows::UI::Composition::Vector3KeyFrameAnimation **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE CreateVector4KeyFrameAnimation(
+                        ABI::Windows::UI::Composition::Vector4KeyFrameAnimation **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE GetCommitBatch(
+                        ABI::Windows::UI::Composition::CompositionBatchTypes batchType,
+                        ABI::Windows::UI::Composition::CompositionCommitBatch **result) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ICompositor, 0xb403ca50, 0x7f8c, 0x4e83, 0x98,0x5f, 0xcc,0x45,0x06,0x00,0x36,0xd8)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CICompositorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        TrustLevel *trustLevel);
+
+    /*** ICompositor methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateColorKeyFrameAnimation)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateColorBrush)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateColorBrushWithColor)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CColor color,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateContainerVisual)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CContainerVisual **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateCubicBezierEasingFunction)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector2 controlPoint1,
+        __x_ABI_CWindows_CFoundation_CNumerics_CVector2 controlPoint2,
+        __x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateEffectFactory)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *graphicsEffect,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionEffectFactory **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateEffectFactoryWithProperties)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *graphicsEffect,
+        int *animatableProperties,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionEffectFactory **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateExpressionAnimation)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CExpressionAnimation **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateExpressionAnimationWithExpression)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        HSTRING expression,
+        __x_ABI_CWindows_CUI_CComposition_CExpressionAnimation **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInsetClip)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CInsetClip **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateInsetClipWithInsets)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        FLOAT leftInset,
+        FLOAT topInset,
+        FLOAT rightInset,
+        FLOAT bottomInset,
+        __x_ABI_CWindows_CUI_CComposition_CInsetClip **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateLinearEasingFunction)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CLinearEasingFunction **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreatePropertySet)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateQuaternionKeyFrameAnimation)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CQuaternionKeyFrameAnimation **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateScalarKeyFrameAnimation)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CScalarKeyFrameAnimation **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateScopedBatch)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBatchTypes batchType,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionScopedBatch **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateSpriteVisual)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CSpriteVisual **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateSurfaceBrush)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionSurfaceBrush **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateSurfaceBrushWithSurface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurface *surface,
+        __x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateTargetForCurrentView)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionTarget **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateVector2KeyFrameAnimation)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CVector2KeyFrameAnimation **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateVector3KeyFrameAnimation)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CVector3KeyFrameAnimation **result);
+
+    HRESULT (STDMETHODCALLTYPE *CreateVector4KeyFrameAnimation)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CVector4KeyFrameAnimation **result);
+
+    HRESULT (STDMETHODCALLTYPE *GetCommitBatch)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositor *This,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionBatchTypes batchType,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionCommitBatch **result);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CICompositorVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CICompositor {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CICompositorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICompositor methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateColorKeyFrameAnimation(This,result) (This)->lpVtbl->CreateColorKeyFrameAnimation(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateColorBrush(This,result) (This)->lpVtbl->CreateColorBrush(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateColorBrushWithColor(This,color,result) (This)->lpVtbl->CreateColorBrushWithColor(This,color,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateContainerVisual(This,result) (This)->lpVtbl->CreateContainerVisual(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateCubicBezierEasingFunction(This,controlPoint1,controlPoint2,result) (This)->lpVtbl->CreateCubicBezierEasingFunction(This,controlPoint1,controlPoint2,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateEffectFactory(This,graphicsEffect,result) (This)->lpVtbl->CreateEffectFactory(This,graphicsEffect,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateEffectFactoryWithProperties(This,graphicsEffect,animatableProperties,result) (This)->lpVtbl->CreateEffectFactoryWithProperties(This,graphicsEffect,animatableProperties,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateExpressionAnimation(This,result) (This)->lpVtbl->CreateExpressionAnimation(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateExpressionAnimationWithExpression(This,expression,result) (This)->lpVtbl->CreateExpressionAnimationWithExpression(This,expression,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateInsetClip(This,result) (This)->lpVtbl->CreateInsetClip(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateInsetClipWithInsets(This,leftInset,topInset,rightInset,bottomInset,result) (This)->lpVtbl->CreateInsetClipWithInsets(This,leftInset,topInset,rightInset,bottomInset,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateLinearEasingFunction(This,result) (This)->lpVtbl->CreateLinearEasingFunction(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreatePropertySet(This,result) (This)->lpVtbl->CreatePropertySet(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateQuaternionKeyFrameAnimation(This,result) (This)->lpVtbl->CreateQuaternionKeyFrameAnimation(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateScalarKeyFrameAnimation(This,result) (This)->lpVtbl->CreateScalarKeyFrameAnimation(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateScopedBatch(This,batchType,result) (This)->lpVtbl->CreateScopedBatch(This,batchType,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateSpriteVisual(This,result) (This)->lpVtbl->CreateSpriteVisual(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateSurfaceBrush(This,result) (This)->lpVtbl->CreateSurfaceBrush(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateSurfaceBrushWithSurface(This,surface,result) (This)->lpVtbl->CreateSurfaceBrushWithSurface(This,surface,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateTargetForCurrentView(This,result) (This)->lpVtbl->CreateTargetForCurrentView(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateVector2KeyFrameAnimation(This,result) (This)->lpVtbl->CreateVector2KeyFrameAnimation(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateVector3KeyFrameAnimation(This,result) (This)->lpVtbl->CreateVector3KeyFrameAnimation(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateVector4KeyFrameAnimation(This,result) (This)->lpVtbl->CreateVector4KeyFrameAnimation(This,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositor_GetCommitBatch(This,batchType,result) (This)->lpVtbl->GetCommitBatch(This,batchType,result)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositor_AddRef(__x_ABI_CWindows_CUI_CComposition_CICompositor* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositor_Release(__x_ABI_CWindows_CUI_CComposition_CICompositor* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_GetIids(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_GetRuntimeClassName(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_GetTrustLevel(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICompositor methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateColorKeyFrameAnimation(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CColorKeyFrameAnimation **result) {
+    return This->lpVtbl->CreateColorKeyFrameAnimation(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateColorBrush(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush **result) {
+    return This->lpVtbl->CreateColorBrush(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateColorBrushWithColor(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CColor color,__x_ABI_CWindows_CUI_CComposition_CCompositionColorBrush **result) {
+    return This->lpVtbl->CreateColorBrushWithColor(This,color,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateContainerVisual(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CContainerVisual **result) {
+    return This->lpVtbl->CreateContainerVisual(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateCubicBezierEasingFunction(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CFoundation_CNumerics_CVector2 controlPoint1,__x_ABI_CWindows_CFoundation_CNumerics_CVector2 controlPoint2,__x_ABI_CWindows_CUI_CComposition_CCubicBezierEasingFunction **result) {
+    return This->lpVtbl->CreateCubicBezierEasingFunction(This,controlPoint1,controlPoint2,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateEffectFactory(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *graphicsEffect,__x_ABI_CWindows_CUI_CComposition_CCompositionEffectFactory **result) {
+    return This->lpVtbl->CreateEffectFactory(This,graphicsEffect,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateEffectFactoryWithProperties(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CGraphics_CEffects_CIGraphicsEffect *graphicsEffect,int *animatableProperties,__x_ABI_CWindows_CUI_CComposition_CCompositionEffectFactory **result) {
+    return This->lpVtbl->CreateEffectFactoryWithProperties(This,graphicsEffect,animatableProperties,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateExpressionAnimation(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CExpressionAnimation **result) {
+    return This->lpVtbl->CreateExpressionAnimation(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateExpressionAnimationWithExpression(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,HSTRING expression,__x_ABI_CWindows_CUI_CComposition_CExpressionAnimation **result) {
+    return This->lpVtbl->CreateExpressionAnimationWithExpression(This,expression,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateInsetClip(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CInsetClip **result) {
+    return This->lpVtbl->CreateInsetClip(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateInsetClipWithInsets(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,FLOAT leftInset,FLOAT topInset,FLOAT rightInset,FLOAT bottomInset,__x_ABI_CWindows_CUI_CComposition_CInsetClip **result) {
+    return This->lpVtbl->CreateInsetClipWithInsets(This,leftInset,topInset,rightInset,bottomInset,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateLinearEasingFunction(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CLinearEasingFunction **result) {
+    return This->lpVtbl->CreateLinearEasingFunction(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreatePropertySet(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CCompositionPropertySet **result) {
+    return This->lpVtbl->CreatePropertySet(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateQuaternionKeyFrameAnimation(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CQuaternionKeyFrameAnimation **result) {
+    return This->lpVtbl->CreateQuaternionKeyFrameAnimation(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateScalarKeyFrameAnimation(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CScalarKeyFrameAnimation **result) {
+    return This->lpVtbl->CreateScalarKeyFrameAnimation(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateScopedBatch(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CCompositionBatchTypes batchType,__x_ABI_CWindows_CUI_CComposition_CCompositionScopedBatch **result) {
+    return This->lpVtbl->CreateScopedBatch(This,batchType,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateSpriteVisual(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CSpriteVisual **result) {
+    return This->lpVtbl->CreateSpriteVisual(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateSurfaceBrush(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CCompositionSurfaceBrush **result) {
+    return This->lpVtbl->CreateSurfaceBrush(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateSurfaceBrushWithSurface(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CICompositionSurface *surface,__x_ABI_CWindows_CUI_CComposition_CICompositionSurfaceBrush **result) {
+    return This->lpVtbl->CreateSurfaceBrushWithSurface(This,surface,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateTargetForCurrentView(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CCompositionTarget **result) {
+    return This->lpVtbl->CreateTargetForCurrentView(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateVector2KeyFrameAnimation(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CVector2KeyFrameAnimation **result) {
+    return This->lpVtbl->CreateVector2KeyFrameAnimation(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateVector3KeyFrameAnimation(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CVector3KeyFrameAnimation **result) {
+    return This->lpVtbl->CreateVector3KeyFrameAnimation(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_CreateVector4KeyFrameAnimation(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CVector4KeyFrameAnimation **result) {
+    return This->lpVtbl->CreateVector4KeyFrameAnimation(This,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositor_GetCommitBatch(__x_ABI_CWindows_CUI_CComposition_CICompositor* This,__x_ABI_CWindows_CUI_CComposition_CCompositionBatchTypes batchType,__x_ABI_CWindows_CUI_CComposition_CCompositionCommitBatch **result) {
+    return This->lpVtbl->GetCommitBatch(This,batchType,result);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CICompositor_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ICompositionGraphicsDevice interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice, 0xfb22c6e1, 0x80a2, 0x4667, 0x99,0x36, 0xdb,0xea,0xf6,0xee,0xfe,0x95);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Composition {
+                MIDL_INTERFACE("fb22c6e1-80a2-4667-9936-dbeaf6eefe95")
+                ICompositionGraphicsDevice : public IInspectable
+                {
+                    virtual HRESULT STDMETHODCALLTYPE CreateDrawingSurface(
+                        ABI::Windows::Foundation::Size sizePixels,
+                        ABI::Windows::Graphics::DirectX::DirectXPixelFormat pixelFormat,
+                        ABI::Windows::Graphics::DirectX::DirectXAlphaMode alphaMode,
+                        ABI::Windows::UI::Composition::CompositionDrawingSurface **result) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE RenderingDeviceReplaced(
+                        int *handler,
+                        int *token) = 0;
+
+                    virtual HRESULT STDMETHODCALLTYPE RenderingDeviceReplaced(
+                        int token) = 0;
+
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ICompositionGraphicsDevice, 0xfb22c6e1, 0x80a2, 0x4667, 0x99,0x36, 0xdb,0xea,0xf6,0xee,0xfe,0x95)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDeviceVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice *This,
+        TrustLevel *trustLevel);
+
+    /*** ICompositionGraphicsDevice methods ***/
+    HRESULT (STDMETHODCALLTYPE *CreateDrawingSurface)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice *This,
+        __x_ABI_CWindows_CFoundation_CSize sizePixels,
+        __x_ABI_CWindows_CGraphics_CDirectX_CDirectXPixelFormat pixelFormat,
+        __x_ABI_CWindows_CGraphics_CDirectX_CDirectXAlphaMode alphaMode,
+        __x_ABI_CWindows_CUI_CComposition_CCompositionDrawingSurface **result);
+
+    HRESULT (STDMETHODCALLTYPE *RenderingDeviceReplaced)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice *This,
+        int *handler,
+        int *token);
+
+    HRESULT (STDMETHODCALLTYPE *RenderingDeviceReplaced)(
+        __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice *This,
+        int token);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDeviceVtbl;
+
+interface __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice {
+    CONST_VTBL __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDeviceVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** ICompositionGraphicsDevice methods ***/
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_CreateDrawingSurface(This,sizePixels,pixelFormat,alphaMode,result) (This)->lpVtbl->CreateDrawingSurface(This,sizePixels,pixelFormat,alphaMode,result)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_RenderingDeviceReplaced(This,handler,token) (This)->lpVtbl->RenderingDeviceReplaced(This,handler,token)
+#define __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_RenderingDeviceReplaced(This,token) (This)->lpVtbl->RenderingDeviceReplaced(This,token)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_QueryInterface(__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_AddRef(__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_Release(__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_GetIids(__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice* This,ULONG *iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_GetRuntimeClassName(__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_GetTrustLevel(__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** ICompositionGraphicsDevice methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_CreateDrawingSurface(__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice* This,__x_ABI_CWindows_CFoundation_CSize sizePixels,__x_ABI_CWindows_CGraphics_CDirectX_CDirectXPixelFormat pixelFormat,__x_ABI_CWindows_CGraphics_CDirectX_CDirectXAlphaMode alphaMode,__x_ABI_CWindows_CUI_CComposition_CCompositionDrawingSurface **result) {
+    return This->lpVtbl->CreateDrawingSurface(This,sizePixels,pixelFormat,alphaMode,result);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_RenderingDeviceReplaced(__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice* This,int *handler,int *token) {
+    return This->lpVtbl->RenderingDeviceReplaced(This,handler,token);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_RenderingDeviceReplaced(__x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice* This,int token) {
+    return This->lpVtbl->RenderingDeviceReplaced(This,token);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CComposition_CICompositionGraphicsDevice_INTERFACE_DEFINED__ */
+
+extern const __declspec(selectany) WCHAR RuntimeClass_Windows_UI_Composition_SpriteVisual[] = L"Windows.UI.Composition.SpriteVisual";
+/* Begin additional prototypes for all interfaces */
+
+ULONG           __RPC_USER HSTRING_UserSize     (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal  (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void            __RPC_USER HSTRING_UserFree     (ULONG *, HSTRING *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_ui_composition_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.composition.interop.h b/mingw-w64-headers/include/windows.ui.composition.interop.h
new file mode 100644
index 00000000..a82afdf1
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.composition.interop.h
@@ -0,0 +1,31 @@
+#include <windows.ui.composition.h>
+
+namespace ABI {
+namespace Windows {
+namespace UI {
+namespace Composition {
+
+#undef INTERFACE
+#define INTERFACE ICompositorInterop
+    DECLARE_INTERFACE_IID_(ICompositorInterop, IUnknown, "25297d5c-3ad4-4c9c-b5cf-e36a38512330")
+    {
+        IFACEMETHOD(CreateCompositionSurfaceForHandle)(
+            HANDLE swapChain,
+            ICompositionSurface **result) PURE;
+        IFACEMETHOD(CreateCompositionSurfaceForSwapChain)(
+            IUnknown *swapChain,
+            ICompositionSurface **result) PURE;
+
+        IFACEMETHOD(CreateGraphicsDevice)(
+            IUnknown *renderingDevice,
+            ICompositionGraphicsDevice **result) PURE;
+    };
+}
+}
+}
+}
+
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Composition::ICompositorInterop, 0x25297d5c,0x3ad4,0x4c9c,0xb5,0xcf,0xe3,0x6a,0x38,0x51,0x23,0x30)
+#endif
+
diff --git a/mingw-w64-headers/include/windows.ui.core.h b/mingw-w64-headers/include/windows.ui.core.h
new file mode 100644
index 00000000..a3c16ac2
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.core.h
@@ -0,0 +1,127 @@
+/*** Autogenerated by WIDL 4.4 from windows.ui.core.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_ui_core_h__
+#define __windows_ui_core_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CUI_CCore_CCoreDispatcher_FWD_DEFINED__
+#define ____x_ABI_CWindows_CUI_CCore_CCoreDispatcher_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CUI_CCore_CCoreDispatcher __x_ABI_CWindows_CUI_CCore_CCoreDispatcher;
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Core {
+                interface CoreDispatcher;
+            }
+        }
+    }
+}
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************
+ * CoreDispatcher interface
+ */
+#ifndef ____x_ABI_CWindows_CUI_CCore_CCoreDispatcher_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CUI_CCore_CCoreDispatcher_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CUI_CCore_CCoreDispatcher, 0x3fe05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            namespace Core {
+                MIDL_INTERFACE("3fe05581-1ad1-4f97-9666-402d76e4233b")
+                CoreDispatcher : public IUnknown
+                {
+                };
+            }
+        }
+    }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::UI::Core::CoreDispatcher, 0x3fe05581, 0x1ad1, 0x4f97, 0x96,0x66, 0x40,0x2d,0x76,0xe4,0x23,0x3b)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CUI_CCore_CCoreDispatcherVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CUI_CCore_CCoreDispatcher *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CUI_CCore_CCoreDispatcher *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CUI_CCore_CCoreDispatcher *This);
+
+    END_INTERFACE
+} __x_ABI_CWindows_CUI_CCore_CCoreDispatcherVtbl;
+
+interface __x_ABI_CWindows_CUI_CCore_CCoreDispatcher {
+    CONST_VTBL __x_ABI_CWindows_CUI_CCore_CCoreDispatcherVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CUI_CCore_CCoreDispatcher_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CUI_CCore_CCoreDispatcher_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CUI_CCore_CCoreDispatcher_Release(This) (This)->lpVtbl->Release(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CUI_CCore_CCoreDispatcher_QueryInterface(__x_ABI_CWindows_CUI_CCore_CCoreDispatcher* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CCore_CCoreDispatcher_AddRef(__x_ABI_CWindows_CUI_CCore_CCoreDispatcher* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CUI_CCore_CCoreDispatcher_Release(__x_ABI_CWindows_CUI_CCore_CCoreDispatcher* This) {
+    return This->lpVtbl->Release(This);
+}
+#endif
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CUI_CCore_CCoreDispatcher_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_ui_core_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.h b/mingw-w64-headers/include/windows.ui.h
new file mode 100644
index 00000000..2e4abd54
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.h
@@ -0,0 +1,72 @@
+/*** Autogenerated by WIDL 4.4 from windows.ui.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_ui_h__
+#define __windows_ui_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+            struct Color {
+                BYTE A;
+                BYTE R;
+                BYTE G;
+                BYTE B;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CUI_CColor {
+    BYTE A;
+    BYTE R;
+    BYTE G;
+    BYTE B;
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+    namespace Windows {
+        namespace UI {
+typedef struct Color Color;
+        }
+    }
+}
+#endif /* __cplusplus */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_ui_h__ */
