headers: Import more winrt headers from Wine.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index 65413cb..e32aea6 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -75,6 +75,7 @@
   include/alg.idl \
   include/amstream.idl \
   include/amvideo.idl \
+  include/asyncinfo.idl \
   include/audioclient.idl \
   include/audioendpoints.idl \
   include/audiopolicy.idl \
@@ -131,6 +132,7 @@
   include/dxva2api.idl \
   include/dxvahd.idl \
   include/endpointvolume.idl \
+  include/eventtoken.idl \
   include/evr.idl \
   include/exdisp.idl \
   include/filter.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
index 06492b8..63eccaf 100644
--- a/mingw-w64-headers/Makefile.in
+++ b/mingw-w64-headers/Makefile.in
@@ -377,6 +377,7 @@
 @HAVE_WIDL_TRUE@  include/alg.idl \
 @HAVE_WIDL_TRUE@  include/amstream.idl \
 @HAVE_WIDL_TRUE@  include/amvideo.idl \
+@HAVE_WIDL_TRUE@  include/asyncinfo.idl \
 @HAVE_WIDL_TRUE@  include/audioclient.idl \
 @HAVE_WIDL_TRUE@  include/audioendpoints.idl \
 @HAVE_WIDL_TRUE@  include/audiopolicy.idl \
@@ -433,6 +434,7 @@
 @HAVE_WIDL_TRUE@  include/dxva2api.idl \
 @HAVE_WIDL_TRUE@  include/dxvahd.idl \
 @HAVE_WIDL_TRUE@  include/endpointvolume.idl \
+@HAVE_WIDL_TRUE@  include/eventtoken.idl \
 @HAVE_WIDL_TRUE@  include/evr.idl \
 @HAVE_WIDL_TRUE@  include/exdisp.idl \
 @HAVE_WIDL_TRUE@  include/filter.idl \
diff --git a/mingw-w64-headers/include/asyncinfo.h b/mingw-w64-headers/include/asyncinfo.h
new file mode 100644
index 0000000..7bfe823
--- /dev/null
+++ b/mingw-w64-headers/include/asyncinfo.h
@@ -0,0 +1,200 @@
+/*** Autogenerated by WIDL 6.4 from include/asyncinfo.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 __asyncinfo_h__
+#define __asyncinfo_h__
+
+/* Forward declarations */
+
+#ifndef __IAsyncInfo_FWD_DEFINED__
+#define __IAsyncInfo_FWD_DEFINED__
+typedef interface IAsyncInfo IAsyncInfo;
+#ifdef __cplusplus
+namespace ABI {
+    interface IAsyncInfo;
+}
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum AsyncStatus {
+    Started = 0,
+    Completed = 1,
+    Canceled = 2,
+    Error = 3
+} AsyncStatus;
+/*****************************************************************************
+ * 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(
+        UINT32 *id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Status(
+        AsyncStatus *status) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ErrorCode(
+        HRESULT *error_code) = 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
+#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,
+        UINT32 *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        IAsyncInfo *This,
+        AsyncStatus *status);
+
+    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
+        IAsyncInfo *This,
+        HRESULT *error_code);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IAsyncInfo *This);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IAsyncInfo *This);
+
+    END_INTERFACE
+} IAsyncInfoVtbl;
+
+interface IAsyncInfo {
+    CONST_VTBL IAsyncInfoVtbl* lpVtbl;
+};
+
+#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,error_code) (This)->lpVtbl->get_ErrorCode(This,error_code)
+#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,UINT32 *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 *error_code) {
+    return This->lpVtbl->get_ErrorCode(This,error_code);
+}
+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
+
+#endif  /* __IAsyncInfo_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __asyncinfo_h__ */
diff --git a/mingw-w64-headers/include/asyncinfo.idl b/mingw-w64-headers/include/asyncinfo.idl
new file mode 100644
index 0000000..45ab9f5
--- /dev/null
+++ b/mingw-w64-headers/include/asyncinfo.idl
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2021 Rémi Bernon for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifdef __WIDL__
+#pragma winrt ns_prefix
+#endif
+
+import "inspectable.idl";
+
+typedef [v1_enum] enum AsyncStatus
+{
+    Started = 0,
+    Completed,
+    Canceled,
+    Error,
+} AsyncStatus;
+
+[
+    object,
+    uuid(00000036-0000-0000-c000-000000000046),
+    pointer_default(unique)
+]
+interface IAsyncInfo : IInspectable
+{
+    [propget] HRESULT Id([out, retval] unsigned __int32 *id);
+    [propget] HRESULT Status([out, retval] AsyncStatus *status);
+    [propget] HRESULT ErrorCode([out, retval] HRESULT *error_code);
+    HRESULT Cancel();
+    HRESULT Close();
+}
diff --git a/mingw-w64-headers/include/eventtoken.h b/mingw-w64-headers/include/eventtoken.h
new file mode 100644
index 0000000..51541c0
--- /dev/null
+++ b/mingw-w64-headers/include/eventtoken.h
@@ -0,0 +1,41 @@
+/*** Autogenerated by WIDL 6.4 from include/eventtoken.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 __eventtoken_h__
+#define __eventtoken_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+struct EventRegistrationToken {
+    INT64 value;
+};
+typedef struct EventRegistrationToken EventRegistrationToken;
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __eventtoken_h__ */
diff --git a/mingw-w64-headers/include/eventtoken.idl b/mingw-w64-headers/include/eventtoken.idl
new file mode 100644
index 0000000..0d27615
--- /dev/null
+++ b/mingw-w64-headers/include/eventtoken.idl
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2021 Rémi Bernon for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+struct EventRegistrationToken
+{
+    __int64 value;
+};
+typedef struct EventRegistrationToken EventRegistrationToken;
diff --git a/mingw-w64-headers/include/windows.foundation.collections.h b/mingw-w64-headers/include/windows.foundation.collections.h
index 59ed27a..a51dd0a 100644
--- a/mingw-w64-headers/include/windows.foundation.collections.h
+++ b/mingw-w64-headers/include/windows.foundation.collections.h
@@ -36,6 +36,48 @@
 namespace ABI {
     namespace Windows {
         namespace Foundation {
+            template <class TResult>
+            struct IAsyncOperationCompletedHandler_impl;
+
+            template <class TResult>
+            struct IAsyncOperationCompletedHandler : IAsyncOperationCompletedHandler_impl<TResult> {};
+        }
+    }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TResult>
+            struct IAsyncOperation_impl;
+
+            template <class TResult>
+            struct IAsyncOperation : IAsyncOperation_impl<TResult> {};
+        }
+    }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TSender, class TArgs>
+            struct ITypedEventHandler_impl;
+
+            template <class TSender, class TArgs>
+            struct ITypedEventHandler : ITypedEventHandler_impl<TSender, TArgs> {};
+        }
+    }
+}
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
             namespace Collections {
                 template <class T>
                 struct IIterator_impl;
@@ -83,6 +125,7 @@
 /* Headers for imported files */
 
 #include <inspectable.h>
+#include <asyncinfo.h>
 #include <windowscontracts.h>
 
 #ifdef __cplusplus
@@ -126,6 +169,74 @@
 namespace ABI {
     namespace Windows {
         namespace Foundation {
+            template <class TResult>
+            struct IAsyncOperationCompletedHandler_impl : IUnknown
+            {
+            private:
+                typedef typename Windows::Foundation::Internal::GetAbiType<TResult>::type     TResult_abi;
+                typedef typename Windows::Foundation::Internal::GetLogicalType<TResult>::type TResult_logical;
+            public:
+                typedef TResult TResult_complex;
+                virtual HRESULT STDMETHODCALLTYPE Invoke(IAsyncOperation<TResult_logical> *info,AsyncStatus status) = 0;
+            };
+        }
+    }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TResult>
+            struct IAsyncOperation_impl : IInspectable
+            {
+            private:
+                typedef typename Windows::Foundation::Internal::GetAbiType<TResult>::type     TResult_abi;
+                typedef typename Windows::Foundation::Internal::GetLogicalType<TResult>::type TResult_logical;
+            public:
+                typedef TResult TResult_complex;
+                virtual HRESULT STDMETHODCALLTYPE put_Completed(IAsyncOperationCompletedHandler<TResult_logical> *handler) = 0;
+                virtual HRESULT STDMETHODCALLTYPE get_Completed(IAsyncOperationCompletedHandler<TResult_logical> **handler) = 0;
+                virtual HRESULT STDMETHODCALLTYPE GetResults(TResult_abi **results) = 0;
+            };
+        }
+    }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            template <class TSender, class TArgs>
+            struct ITypedEventHandler_impl : IUnknown
+            {
+            private:
+                typedef typename Windows::Foundation::Internal::GetAbiType<TSender>::type     TSender_abi;
+                typedef typename Windows::Foundation::Internal::GetLogicalType<TSender>::type TSender_logical;
+                typedef typename Windows::Foundation::Internal::GetAbiType<TArgs>::type     TArgs_abi;
+                typedef typename Windows::Foundation::Internal::GetLogicalType<TArgs>::type TArgs_logical;
+            public:
+                typedef TSender TSender_complex;
+                typedef TArgs TArgs_complex;
+                virtual HRESULT STDMETHODCALLTYPE Invoke(TSender_abi sender,TArgs_abi args) = 0;
+            };
+        }
+    }
+}
+extern "C" {
+#endif
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
             namespace Collections {
                 template <class T>
                 struct IIterator_impl : IInspectable
diff --git a/mingw-w64-headers/include/windows.foundation.collections.idl b/mingw-w64-headers/include/windows.foundation.collections.idl
index ed05016..50a678e 100644
--- a/mingw-w64-headers/include/windows.foundation.collections.idl
+++ b/mingw-w64-headers/include/windows.foundation.collections.idl
@@ -21,7 +21,7 @@
 #endif
 
 import "inspectable.idl";
-/* import "asyncinfo.idl"; */
+import "asyncinfo.idl";
 import "windowscontracts.idl";
 /* import "eventtoken.idl"; */
 
@@ -47,6 +47,31 @@
         ]
         delegate HRESULT EventHandler<T>([in] IInspectable *sender, [in] T args);
 
+        interface IAsyncOperation<TResult>;
+
+        [
+            contract(Windows.Foundation.FoundationContract, 1.0),
+            uuid(fcdcf02c-e5d8-4478-915a-4d90b74b83a5)
+        ]
+        delegate HRESULT AsyncOperationCompletedHandler<TResult>([in] IAsyncOperation<TResult> *info, [in] AsyncStatus status);
+
+        [
+            contract(Windows.Foundation.FoundationContract, 1.0),
+            uuid(9fc2b0bb-e446-44e2-aa61-9cab8f636af2)
+        ]
+        interface IAsyncOperation<TResult> : IInspectable
+        {
+            [propput] HRESULT Completed([in] AsyncOperationCompletedHandler<TResult> *handler);
+            [propget] HRESULT Completed([out, retval] AsyncOperationCompletedHandler<TResult> **handler);
+            HRESULT GetResults([out, retval] TResult **results);
+        }
+
+        [
+            contract(Windows.Foundation.FoundationContract, 1.0),
+            uuid(9de1c534-6ae1-11e0-84e1-18a905bcc53f)
+        ]
+        delegate HRESULT TypedEventHandler<TSender, TArgs>([in] TSender sender, [in] TArgs args);
+
         namespace Collections
         {
             [
diff --git a/mingw-w64-headers/include/windows.foundation.h b/mingw-w64-headers/include/windows.foundation.h
index 90dc859..4a2c5b7 100644
--- a/mingw-w64-headers/include/windows.foundation.h
+++ b/mingw-w64-headers/include/windows.foundation.h
@@ -18,69 +18,41 @@
 
 /* Forward declarations */
 
-#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CIAsyncInfo __x_ABI_CWindows_CFoundation_CIAsyncInfo;
+#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
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo ABI::Windows::Foundation::IAsyncInfo
+#define __x_ABI_CWindows_CFoundation_CIStringable ABI::Windows::Foundation::IStringable
 namespace ABI {
     namespace Windows {
         namespace Foundation {
-            interface IAsyncInfo;
+            interface IStringable;
         }
     }
 }
 #endif /* __cplusplus */
 #endif
 
-#ifndef ____x_ABI_CWindows_CFoundation_CIASyncAction_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CIASyncAction_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CIASyncAction __x_ABI_CWindows_CFoundation_CIASyncAction;
+#ifndef ____FIAsyncOperationCompletedHandler_1_boolean_FWD_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_boolean_FWD_DEFINED__
+typedef interface __FIAsyncOperationCompletedHandler_1_boolean __FIAsyncOperationCompletedHandler_1_boolean;
 #ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CIASyncAction ABI::Windows::Foundation::IASyncAction
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            interface IASyncAction;
-        }
-    }
-}
+#define __FIAsyncOperationCompletedHandler_1_boolean ABI::Windows::Foundation::IAsyncOperationCompletedHandler<boolean >
 #endif /* __cplusplus */
 #endif
 
-#ifndef ____x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler;
+#ifndef ____FIAsyncOperation_1_boolean_FWD_DEFINED__
+#define ____FIAsyncOperation_1_boolean_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_boolean __FIAsyncOperation_1_boolean;
 #ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler ABI::Windows::Foundation::AsyncActionCompletedHandler
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            interface AsyncActionCompletedHandler;
-        }
-    }
-}
-#endif /* __cplusplus */
-#endif
-
-#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncOperation_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CIAsyncOperation_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CIAsyncOperation __x_ABI_CWindows_CFoundation_CIAsyncOperation;
-#ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation ABI::Windows::Foundation::IAsyncOperation
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            interface IAsyncOperation;
-        }
-    }
-}
+#define __FIAsyncOperation_1_boolean ABI::Windows::Foundation::IAsyncOperation<boolean >
 #endif /* __cplusplus */
 #endif
 
 /* Headers for imported files */
 
 #include <inspectable.h>
+#include <asyncinfo.h>
 #include <windowscontracts.h>
 #include <windows.foundation.collections.h>
 
@@ -88,785 +60,606 @@
 extern "C" {
 #endif
 
-#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CIAsyncInfo_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CIAsyncInfo __x_ABI_CWindows_CFoundation_CIAsyncInfo;
-#ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo ABI::Windows::Foundation::IAsyncInfo
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            interface IAsyncInfo;
-        }
-    }
-}
-#endif /* __cplusplus */
-#endif
-
-#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CIAsyncAction_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CIAsyncAction __x_ABI_CWindows_CFoundation_CIAsyncAction;
-#ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CIAsyncAction ABI::Windows::Foundation::IAsyncAction
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            interface IAsyncAction;
-        }
-    }
-}
-#endif /* __cplusplus */
-#endif
-
-#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncOperation_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CIAsyncOperation_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CIAsyncOperation __x_ABI_CWindows_CFoundation_CIAsyncOperation;
-#ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation ABI::Windows::Foundation::IAsyncOperation
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            interface IAsyncOperation;
-        }
-    }
-}
-#endif /* __cplusplus */
-#endif
-
-#ifndef ____x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler;
-#ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler ABI::Windows::Foundation::AsyncActionCompletedHandler
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            interface AsyncActionCompletedHandler;
-        }
-    }
-}
-#endif /* __cplusplus */
-#endif
-
-#ifndef ____x_ABI_CWindows_CFoundation_CTypedEventHandler_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CTypedEventHandler_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CTypedEventHandler __x_ABI_CWindows_CFoundation_CTypedEventHandler;
-#ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CTypedEventHandler ABI::Windows::Foundation::TypedEventHandler
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            interface TypedEventHandler;
-        }
-    }
-}
-#endif /* __cplusplus */
-#endif
-
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
 #ifdef __cplusplus
 } /* extern "C" */
 namespace ABI {
     namespace Windows {
         namespace Foundation {
-            struct DateTime;
+            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
-struct __x_ABI_CWindows_CFoundation_CDateTime;
+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 WIDL_using_Windows_Foundation
+#define PropertyType __x_ABI_CWindows_CFoundation_CPropertyType
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct Point {
+                FLOAT X;
+                FLOAT Y;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CPoint {
+    FLOAT X;
+    FLOAT Y;
+};
+#ifdef WIDL_using_Windows_Foundation
+#define Point __x_ABI_CWindows_CFoundation_CPoint
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#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 WIDL_using_Windows_Foundation
+#define Size __x_ABI_CWindows_CFoundation_CSize
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#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;
+};
+#ifdef WIDL_using_Windows_Foundation
+#define Rect __x_ABI_CWindows_CFoundation_CRect
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+    namespace Windows {
+        namespace Foundation {
+            struct DateTime {
+                INT64 UniversalTime;
+            };
+        }
+    }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CDateTime {
+    INT64 UniversalTime;
+};
 #ifdef WIDL_using_Windows_Foundation
 #define DateTime __x_ABI_CWindows_CFoundation_CDateTime
 #endif /* WIDL_using_Windows_Foundation */
 #endif
 
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
 #ifdef __cplusplus
 } /* extern "C" */
 namespace ABI {
     namespace Windows {
         namespace Foundation {
-            struct EventRegistrationToken;
+            struct TimeSpan {
+                INT64 Duration;
+            };
         }
     }
 }
 extern "C" {
 #else
-struct __x_ABI_CWindows_CFoundation_CEventRegistrationToken;
+struct __x_ABI_CWindows_CFoundation_CTimeSpan {
+    INT64 Duration;
+};
 #ifdef WIDL_using_Windows_Foundation
-#define EventRegistrationToken __x_ABI_CWindows_CFoundation_CEventRegistrationToken
+#define TimeSpan __x_ABI_CWindows_CFoundation_CTimeSpan
 #endif /* WIDL_using_Windows_Foundation */
 #endif
 
-#ifndef ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet;
-#ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet ABI::Windows::Foundation::Collections::IPropertySet
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+/*****************************************************************************
+ * IStringable interface
+ */
+#if WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000
+#ifndef ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
 namespace ABI {
     namespace Windows {
         namespace Foundation {
-            namespace Collections {
-                interface IPropertySet;
-            }
+            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(__x_ABI_CWindows_CFoundation_CIStringable, 0x96369f54, 0x8eb6, 0x48f0, 0xab,0xce, 0xc1,0xb2,0x11,0xe6,0x27,0xc3)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CFoundation_CIStringableVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        __x_ABI_CWindows_CFoundation_CIStringable *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        __x_ABI_CWindows_CFoundation_CIStringable *This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
+        TrustLevel *trustLevel);
+
+    /*** IStringable methods ***/
+    HRESULT (STDMETHODCALLTYPE *ToString)(
+        __x_ABI_CWindows_CFoundation_CIStringable *This,
+        HSTRING *value);
+
+    END_INTERFACE
+} __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 __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 __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 __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 __x_ABI_CWindows_CFoundation_CIStringable_AddRef(__x_ABI_CWindows_CFoundation_CIStringable* This) {
+    return This->lpVtbl->AddRef(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 __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 __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIStringable* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIStringable* This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** 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
+#ifdef WIDL_using_Windows_Foundation
+#define IID_IStringable IID___x_ABI_CWindows_CFoundation_CIStringable
+#define IStringableVtbl __x_ABI_CWindows_CFoundation_CIStringableVtbl
+#define IStringable __x_ABI_CWindows_CFoundation_CIStringable
+#define IStringable_QueryInterface __x_ABI_CWindows_CFoundation_CIStringable_QueryInterface
+#define IStringable_AddRef __x_ABI_CWindows_CFoundation_CIStringable_AddRef
+#define IStringable_Release __x_ABI_CWindows_CFoundation_CIStringable_Release
+#define IStringable_GetIids __x_ABI_CWindows_CFoundation_CIStringable_GetIids
+#define IStringable_GetRuntimeClassName __x_ABI_CWindows_CFoundation_CIStringable_GetRuntimeClassName
+#define IStringable_GetTrustLevel __x_ABI_CWindows_CFoundation_CIStringable_GetTrustLevel
+#define IStringable_ToString __x_ABI_CWindows_CFoundation_CIStringable_ToString
+#endif /* WIDL_using_Windows_Foundation */
+#endif
+
+#endif
+
+#endif  /* ____x_ABI_CWindows_CFoundation_CIStringable_INTERFACE_DEFINED__ */
+#endif /* WINDOWS_FOUNDATION_FOUNDATIONCONTRACT_VERSION >= 0x10000 */
+
+#ifndef ____FIAsyncOperation_1_boolean_FWD_DEFINED__
+#define ____FIAsyncOperation_1_boolean_FWD_DEFINED__
+typedef interface __FIAsyncOperation_1_boolean __FIAsyncOperation_1_boolean;
+#ifdef __cplusplus
+#define __FIAsyncOperation_1_boolean ABI::Windows::Foundation::IAsyncOperation<boolean >
 #endif /* __cplusplus */
 #endif
 
 /*****************************************************************************
- * IAsyncInfo interface
+ * IAsyncOperationCompletedHandler<boolean > interface
  */
-#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncInfo_INTERFACE_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CIAsyncInfo_INTERFACE_DEFINED__
+#ifndef ____FIAsyncOperationCompletedHandler_1_boolean_INTERFACE_DEFINED__
+#define ____FIAsyncOperationCompletedHandler_1_boolean_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
+DEFINE_GUID(IID___FIAsyncOperationCompletedHandler_1_boolean, 0xc1d3d1a2, 0xae17, 0x5a5f, 0xb5,0xa2, 0xbd,0xcc,0x88,0x44,0x88,0x9a);
 #if defined(__cplusplus) && !defined(CINTERFACE)
 } /* extern "C" */
 namespace ABI {
     namespace Windows {
         namespace Foundation {
-            MIDL_INTERFACE("00000036-0000-0000-c000-000000000046")
-            IAsyncInfo : public IInspectable
+            template<>
+            MIDL_INTERFACE("c1d3d1a2-ae17-5a5f-b5a2-bdcc8844889a")
+            IAsyncOperationCompletedHandler<boolean > : IAsyncOperationCompletedHandler_impl<boolean >
             {
-                virtual HRESULT STDMETHODCALLTYPE get_Id(
-                    unsigned int *id) = 0;
-
-                virtual HRESULT STDMETHODCALLTYPE get_Status(
-                    enum AsyncStatus *status) = 0;
-
-                virtual HRESULT STDMETHODCALLTYPE get_ErrorCode(
-                    HRESULT *errorCode) = 0;
-
-                virtual HRESULT STDMETHODCALLTYPE Cancel(
-                    ) = 0;
-
-                virtual HRESULT STDMETHODCALLTYPE Close(
-                    ) = 0;
-
             };
         }
     }
 }
 extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(__x_ABI_CWindows_CFoundation_CIAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
+__CRT_UUID_DECL(__FIAsyncOperationCompletedHandler_1_boolean, 0xc1d3d1a2, 0xae17, 0x5a5f, 0xb5,0xa2, 0xbd,0xcc,0x88,0x44,0x88,0x9a)
 #endif
 #else
-typedef struct __x_ABI_CWindows_CFoundation_CIAsyncInfoVtbl {
+typedef struct __FIAsyncOperationCompletedHandler_1_booleanVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This,
+        __FIAsyncOperationCompletedHandler_1_boolean *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This);
+        __FIAsyncOperationCompletedHandler_1_boolean *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This);
+        __FIAsyncOperationCompletedHandler_1_boolean *This);
 
-    /*** IInspectable methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetIids)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This,
-        ULONG *iidCount,
-        IID **iids);
-
-    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This,
-        HSTRING *className);
-
-    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This,
-        TrustLevel *trustLevel);
-
-    /*** IAsyncInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_Id)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This,
-        unsigned int *id);
-
-    HRESULT (STDMETHODCALLTYPE *get_Status)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This,
-        enum __x_ABI_CWindows_CFoundation_CAsyncStatus *status);
-
-    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This,
-        HRESULT *errorCode);
-
-    HRESULT (STDMETHODCALLTYPE *Cancel)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This);
-
-    HRESULT (STDMETHODCALLTYPE *Close)(
-        __x_ABI_CWindows_CFoundation_CIAsyncInfo *This);
+    /*** IAsyncOperationCompletedHandler<boolean > methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        __FIAsyncOperationCompletedHandler_1_boolean *This,
+        __FIAsyncOperation_1_boolean *info,
+        AsyncStatus status);
 
     END_INTERFACE
-} __x_ABI_CWindows_CFoundation_CIAsyncInfoVtbl;
+} __FIAsyncOperationCompletedHandler_1_booleanVtbl;
 
-interface __x_ABI_CWindows_CFoundation_CIAsyncInfo {
-    CONST_VTBL __x_ABI_CWindows_CFoundation_CIAsyncInfoVtbl* lpVtbl;
+interface __FIAsyncOperationCompletedHandler_1_boolean {
+    CONST_VTBL __FIAsyncOperationCompletedHandler_1_booleanVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_Release(This) (This)->lpVtbl->Release(This)
-/*** IInspectable methods ***/
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-/*** IAsyncInfo methods ***/
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_Cancel(This) (This)->lpVtbl->Cancel(This)
-#define __x_ABI_CWindows_CFoundation_CIAsyncInfo_Close(This) (This)->lpVtbl->Close(This)
+#define __FIAsyncOperationCompletedHandler_1_boolean_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperationCompletedHandler_1_boolean_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperationCompletedHandler_1_boolean_Release(This) (This)->lpVtbl->Release(This)
+/*** IAsyncOperationCompletedHandler<boolean > methods ***/
+#define __FIAsyncOperationCompletedHandler_1_boolean_Invoke(This,info,status) (This)->lpVtbl->Invoke(This,info,status)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncInfo_QueryInterface(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_boolean_QueryInterface(__FIAsyncOperationCompletedHandler_1_boolean* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIAsyncInfo_AddRef(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This) {
+static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_boolean_AddRef(__FIAsyncOperationCompletedHandler_1_boolean* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIAsyncInfo_Release(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This) {
+static FORCEINLINE ULONG __FIAsyncOperationCompletedHandler_1_boolean_Release(__FIAsyncOperationCompletedHandler_1_boolean* This) {
     return This->lpVtbl->Release(This);
 }
-/*** IInspectable methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncInfo_GetIids(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This,ULONG *iidCount,IID **iids) {
-    return This->lpVtbl->GetIids(This,iidCount,iids);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncInfo_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This,HSTRING *className) {
-    return This->lpVtbl->GetRuntimeClassName(This,className);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncInfo_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This,TrustLevel *trustLevel) {
-    return This->lpVtbl->GetTrustLevel(This,trustLevel);
-}
-/*** IAsyncInfo methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncInfo_get_Id(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This,unsigned int *id) {
-    return This->lpVtbl->get_Id(This,id);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncInfo_get_Status(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This,enum __x_ABI_CWindows_CFoundation_CAsyncStatus *status) {
-    return This->lpVtbl->get_Status(This,status);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncInfo_get_ErrorCode(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This,HRESULT *errorCode) {
-    return This->lpVtbl->get_ErrorCode(This,errorCode);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncInfo_Cancel(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This) {
-    return This->lpVtbl->Cancel(This);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncInfo_Close(__x_ABI_CWindows_CFoundation_CIAsyncInfo* This) {
-    return This->lpVtbl->Close(This);
+/*** IAsyncOperationCompletedHandler<boolean > methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperationCompletedHandler_1_boolean_Invoke(__FIAsyncOperationCompletedHandler_1_boolean* This,__FIAsyncOperation_1_boolean *info,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,info,status);
 }
 #endif
 #ifdef WIDL_using_Windows_Foundation
-#define IID_IAsyncInfo IID___x_ABI_CWindows_CFoundation_CIAsyncInfo
-#define IAsyncInfoVtbl __x_ABI_CWindows_CFoundation_CIAsyncInfoVtbl
-#define IAsyncInfo __x_ABI_CWindows_CFoundation_CIAsyncInfo
-#define IAsyncInfo_QueryInterface __x_ABI_CWindows_CFoundation_CIAsyncInfo_QueryInterface
-#define IAsyncInfo_AddRef __x_ABI_CWindows_CFoundation_CIAsyncInfo_AddRef
-#define IAsyncInfo_Release __x_ABI_CWindows_CFoundation_CIAsyncInfo_Release
-#define IAsyncInfo_GetIids __x_ABI_CWindows_CFoundation_CIAsyncInfo_GetIids
-#define IAsyncInfo_GetRuntimeClassName __x_ABI_CWindows_CFoundation_CIAsyncInfo_GetRuntimeClassName
-#define IAsyncInfo_GetTrustLevel __x_ABI_CWindows_CFoundation_CIAsyncInfo_GetTrustLevel
-#define IAsyncInfo_get_Id __x_ABI_CWindows_CFoundation_CIAsyncInfo_get_Id
-#define IAsyncInfo_get_Status __x_ABI_CWindows_CFoundation_CIAsyncInfo_get_Status
-#define IAsyncInfo_get_ErrorCode __x_ABI_CWindows_CFoundation_CIAsyncInfo_get_ErrorCode
-#define IAsyncInfo_Cancel __x_ABI_CWindows_CFoundation_CIAsyncInfo_Cancel
-#define IAsyncInfo_Close __x_ABI_CWindows_CFoundation_CIAsyncInfo_Close
+#define IID_IAsyncOperationCompletedHandler_boolean IID___FIAsyncOperationCompletedHandler_1_boolean
+#define IAsyncOperationCompletedHandler_booleanVtbl __FIAsyncOperationCompletedHandler_1_booleanVtbl
+#define IAsyncOperationCompletedHandler_boolean __FIAsyncOperationCompletedHandler_1_boolean
+#define IAsyncOperationCompletedHandler_boolean_QueryInterface __FIAsyncOperationCompletedHandler_1_boolean_QueryInterface
+#define IAsyncOperationCompletedHandler_boolean_AddRef __FIAsyncOperationCompletedHandler_1_boolean_AddRef
+#define IAsyncOperationCompletedHandler_boolean_Release __FIAsyncOperationCompletedHandler_1_boolean_Release
+#define IAsyncOperationCompletedHandler_boolean_Invoke __FIAsyncOperationCompletedHandler_1_boolean_Invoke
 #endif /* WIDL_using_Windows_Foundation */
 #endif
 
 #endif
 
-#endif  /* ____x_ABI_CWindows_CFoundation_CIAsyncInfo_INTERFACE_DEFINED__ */
+#endif  /* ____FIAsyncOperationCompletedHandler_1_boolean_INTERFACE_DEFINED__ */
 
 /*****************************************************************************
- * IASyncAction interface
+ * IAsyncOperation<boolean > interface
  */
-#ifndef ____x_ABI_CWindows_CFoundation_CIASyncAction_INTERFACE_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CIASyncAction_INTERFACE_DEFINED__
+#ifndef ____FIAsyncOperation_1_boolean_INTERFACE_DEFINED__
+#define ____FIAsyncOperation_1_boolean_INTERFACE_DEFINED__
 
-DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b);
+DEFINE_GUID(IID___FIAsyncOperation_1_boolean, 0xcdb5efb3, 0x5788, 0x509d, 0x9b,0xe1, 0x71,0xcc,0xb8,0xa3,0x36,0x2a);
 #if defined(__cplusplus) && !defined(CINTERFACE)
 } /* extern "C" */
 namespace ABI {
     namespace Windows {
         namespace Foundation {
-            MIDL_INTERFACE("5a648006-843a-4da9-865b-9d26e5dfad7b")
-            IASyncAction : public IAsyncInfo
+            template<>
+            MIDL_INTERFACE("cdb5efb3-5788-509d-9be1-71ccb8a3362a")
+            IAsyncOperation<boolean > : IAsyncOperation_impl<boolean >
             {
-                virtual HRESULT STDMETHODCALLTYPE put_Completed(
-                    ABI::Windows::Foundation::AsyncActionCompletedHandler *handler) = 0;
-
-                virtual HRESULT STDMETHODCALLTYPE get_Completed(
-                    ABI::Windows::Foundation::AsyncActionCompletedHandler **handler) = 0;
-
-                virtual HRESULT STDMETHODCALLTYPE GetResults(
-                    ) = 0;
-
             };
         }
     }
 }
 extern "C" {
 #ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(__x_ABI_CWindows_CFoundation_CIASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 0x9d,0x26,0xe5,0xdf,0xad,0x7b)
+__CRT_UUID_DECL(__FIAsyncOperation_1_boolean, 0xcdb5efb3, 0x5788, 0x509d, 0x9b,0xe1, 0x71,0xcc,0xb8,0xa3,0x36,0x2a)
 #endif
 #else
-typedef struct __x_ABI_CWindows_CFoundation_CIASyncActionVtbl {
+typedef struct __FIAsyncOperation_1_booleanVtbl {
     BEGIN_INTERFACE
 
     /*** IUnknown methods ***/
     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This,
+        __FIAsyncOperation_1_boolean *This,
         REFIID riid,
         void **ppvObject);
 
     ULONG (STDMETHODCALLTYPE *AddRef)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This);
+        __FIAsyncOperation_1_boolean *This);
 
     ULONG (STDMETHODCALLTYPE *Release)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This);
+        __FIAsyncOperation_1_boolean *This);
 
     /*** IInspectable methods ***/
     HRESULT (STDMETHODCALLTYPE *GetIids)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This,
+        __FIAsyncOperation_1_boolean *This,
         ULONG *iidCount,
         IID **iids);
 
     HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This,
+        __FIAsyncOperation_1_boolean *This,
         HSTRING *className);
 
     HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This,
+        __FIAsyncOperation_1_boolean *This,
         TrustLevel *trustLevel);
 
-    /*** IAsyncInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_Id)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This,
-        unsigned int *id);
-
-    HRESULT (STDMETHODCALLTYPE *get_Status)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This,
-        enum __x_ABI_CWindows_CFoundation_CAsyncStatus *status);
-
-    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This,
-        HRESULT *errorCode);
-
-    HRESULT (STDMETHODCALLTYPE *Cancel)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This);
-
-    HRESULT (STDMETHODCALLTYPE *Close)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This);
-
-    /*** IASyncAction methods ***/
+    /*** IAsyncOperation<boolean > methods ***/
     HRESULT (STDMETHODCALLTYPE *put_Completed)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This,
-        __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler *handler);
+        __FIAsyncOperation_1_boolean *This,
+        __FIAsyncOperationCompletedHandler_1_boolean *handler);
 
     HRESULT (STDMETHODCALLTYPE *get_Completed)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This,
-        __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler **handler);
+        __FIAsyncOperation_1_boolean *This,
+        __FIAsyncOperationCompletedHandler_1_boolean **handler);
 
     HRESULT (STDMETHODCALLTYPE *GetResults)(
-        __x_ABI_CWindows_CFoundation_CIASyncAction *This);
+        __FIAsyncOperation_1_boolean *This,
+        boolean **results);
 
     END_INTERFACE
-} __x_ABI_CWindows_CFoundation_CIASyncActionVtbl;
+} __FIAsyncOperation_1_booleanVtbl;
 
-interface __x_ABI_CWindows_CFoundation_CIASyncAction {
-    CONST_VTBL __x_ABI_CWindows_CFoundation_CIASyncActionVtbl* lpVtbl;
+interface __FIAsyncOperation_1_boolean {
+    CONST_VTBL __FIAsyncOperation_1_booleanVtbl* lpVtbl;
 };
 
 #ifdef COBJMACROS
 #ifndef WIDL_C_INLINE_WRAPPERS
 /*** IUnknown methods ***/
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_Release(This) (This)->lpVtbl->Release(This)
+#define __FIAsyncOperation_1_boolean_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __FIAsyncOperation_1_boolean_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __FIAsyncOperation_1_boolean_Release(This) (This)->lpVtbl->Release(This)
 /*** IInspectable methods ***/
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-/*** IAsyncInfo methods ***/
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_Cancel(This) (This)->lpVtbl->Cancel(This)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_Close(This) (This)->lpVtbl->Close(This)
-/*** IASyncAction methods ***/
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
-#define __x_ABI_CWindows_CFoundation_CIASyncAction_GetResults(This) (This)->lpVtbl->GetResults(This)
+#define __FIAsyncOperation_1_boolean_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __FIAsyncOperation_1_boolean_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __FIAsyncOperation_1_boolean_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncOperation<boolean > methods ***/
+#define __FIAsyncOperation_1_boolean_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
+#define __FIAsyncOperation_1_boolean_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
+#define __FIAsyncOperation_1_boolean_GetResults(This,results) (This)->lpVtbl->GetResults(This,results)
 #else
 /*** IUnknown methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_QueryInterface(__x_ABI_CWindows_CFoundation_CIASyncAction* This,REFIID riid,void **ppvObject) {
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_QueryInterface(__FIAsyncOperation_1_boolean* This,REFIID riid,void **ppvObject) {
     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 }
-static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIASyncAction_AddRef(__x_ABI_CWindows_CFoundation_CIASyncAction* This) {
+static FORCEINLINE ULONG __FIAsyncOperation_1_boolean_AddRef(__FIAsyncOperation_1_boolean* This) {
     return This->lpVtbl->AddRef(This);
 }
-static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIASyncAction_Release(__x_ABI_CWindows_CFoundation_CIASyncAction* This) {
+static FORCEINLINE ULONG __FIAsyncOperation_1_boolean_Release(__FIAsyncOperation_1_boolean* This) {
     return This->lpVtbl->Release(This);
 }
 /*** IInspectable methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_GetIids(__x_ABI_CWindows_CFoundation_CIASyncAction* This,ULONG *iidCount,IID **iids) {
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_GetIids(__FIAsyncOperation_1_boolean* This,ULONG *iidCount,IID **iids) {
     return This->lpVtbl->GetIids(This,iidCount,iids);
 }
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIASyncAction* This,HSTRING *className) {
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_GetRuntimeClassName(__FIAsyncOperation_1_boolean* This,HSTRING *className) {
     return This->lpVtbl->GetRuntimeClassName(This,className);
 }
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIASyncAction* This,TrustLevel *trustLevel) {
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_GetTrustLevel(__FIAsyncOperation_1_boolean* This,TrustLevel *trustLevel) {
     return This->lpVtbl->GetTrustLevel(This,trustLevel);
 }
-/*** IAsyncInfo methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_get_Id(__x_ABI_CWindows_CFoundation_CIASyncAction* This,unsigned int *id) {
-    return This->lpVtbl->get_Id(This,id);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_get_Status(__x_ABI_CWindows_CFoundation_CIASyncAction* This,enum __x_ABI_CWindows_CFoundation_CAsyncStatus *status) {
-    return This->lpVtbl->get_Status(This,status);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_get_ErrorCode(__x_ABI_CWindows_CFoundation_CIASyncAction* This,HRESULT *errorCode) {
-    return This->lpVtbl->get_ErrorCode(This,errorCode);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_Cancel(__x_ABI_CWindows_CFoundation_CIASyncAction* This) {
-    return This->lpVtbl->Cancel(This);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_Close(__x_ABI_CWindows_CFoundation_CIASyncAction* This) {
-    return This->lpVtbl->Close(This);
-}
-/*** IASyncAction methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_put_Completed(__x_ABI_CWindows_CFoundation_CIASyncAction* This,__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler *handler) {
+/*** IAsyncOperation<boolean > methods ***/
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_put_Completed(__FIAsyncOperation_1_boolean* This,__FIAsyncOperationCompletedHandler_1_boolean *handler) {
     return This->lpVtbl->put_Completed(This,handler);
 }
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_get_Completed(__x_ABI_CWindows_CFoundation_CIASyncAction* This,__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler **handler) {
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_get_Completed(__FIAsyncOperation_1_boolean* This,__FIAsyncOperationCompletedHandler_1_boolean **handler) {
     return This->lpVtbl->get_Completed(This,handler);
 }
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIASyncAction_GetResults(__x_ABI_CWindows_CFoundation_CIASyncAction* This) {
-    return This->lpVtbl->GetResults(This);
+static FORCEINLINE HRESULT __FIAsyncOperation_1_boolean_GetResults(__FIAsyncOperation_1_boolean* This,boolean **results) {
+    return This->lpVtbl->GetResults(This,results);
 }
 #endif
 #ifdef WIDL_using_Windows_Foundation
-#define IID_IASyncAction IID___x_ABI_CWindows_CFoundation_CIASyncAction
-#define IASyncActionVtbl __x_ABI_CWindows_CFoundation_CIASyncActionVtbl
-#define IASyncAction __x_ABI_CWindows_CFoundation_CIASyncAction
-#define IASyncAction_QueryInterface __x_ABI_CWindows_CFoundation_CIASyncAction_QueryInterface
-#define IASyncAction_AddRef __x_ABI_CWindows_CFoundation_CIASyncAction_AddRef
-#define IASyncAction_Release __x_ABI_CWindows_CFoundation_CIASyncAction_Release
-#define IASyncAction_GetIids __x_ABI_CWindows_CFoundation_CIASyncAction_GetIids
-#define IASyncAction_GetRuntimeClassName __x_ABI_CWindows_CFoundation_CIASyncAction_GetRuntimeClassName
-#define IASyncAction_GetTrustLevel __x_ABI_CWindows_CFoundation_CIASyncAction_GetTrustLevel
-#define IASyncAction_get_Id __x_ABI_CWindows_CFoundation_CIASyncAction_get_Id
-#define IASyncAction_get_Status __x_ABI_CWindows_CFoundation_CIASyncAction_get_Status
-#define IASyncAction_get_ErrorCode __x_ABI_CWindows_CFoundation_CIASyncAction_get_ErrorCode
-#define IASyncAction_Cancel __x_ABI_CWindows_CFoundation_CIASyncAction_Cancel
-#define IASyncAction_Close __x_ABI_CWindows_CFoundation_CIASyncAction_Close
-#define IASyncAction_put_Completed __x_ABI_CWindows_CFoundation_CIASyncAction_put_Completed
-#define IASyncAction_get_Completed __x_ABI_CWindows_CFoundation_CIASyncAction_get_Completed
-#define IASyncAction_GetResults __x_ABI_CWindows_CFoundation_CIASyncAction_GetResults
+#define IID_IAsyncOperation_boolean IID___FIAsyncOperation_1_boolean
+#define IAsyncOperation_booleanVtbl __FIAsyncOperation_1_booleanVtbl
+#define IAsyncOperation_boolean __FIAsyncOperation_1_boolean
+#define IAsyncOperation_boolean_QueryInterface __FIAsyncOperation_1_boolean_QueryInterface
+#define IAsyncOperation_boolean_AddRef __FIAsyncOperation_1_boolean_AddRef
+#define IAsyncOperation_boolean_Release __FIAsyncOperation_1_boolean_Release
+#define IAsyncOperation_boolean_GetIids __FIAsyncOperation_1_boolean_GetIids
+#define IAsyncOperation_boolean_GetRuntimeClassName __FIAsyncOperation_1_boolean_GetRuntimeClassName
+#define IAsyncOperation_boolean_GetTrustLevel __FIAsyncOperation_1_boolean_GetTrustLevel
+#define IAsyncOperation_boolean_put_Completed __FIAsyncOperation_1_boolean_put_Completed
+#define IAsyncOperation_boolean_get_Completed __FIAsyncOperation_1_boolean_get_Completed
+#define IAsyncOperation_boolean_GetResults __FIAsyncOperation_1_boolean_GetResults
 #endif /* WIDL_using_Windows_Foundation */
 #endif
 
 #endif
 
-#endif  /* ____x_ABI_CWindows_CFoundation_CIASyncAction_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * AsyncActionCompletedHandler interface
- */
-#ifndef ____x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_INTERFACE_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-} /* extern "C" */
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            MIDL_INTERFACE("a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7")
-            AsyncActionCompletedHandler : public IUnknown
-            {
-                virtual HRESULT STDMETHODCALLTYPE Invoke(
-                    ABI::Windows::Foundation::IAsyncAction *asyncAction,
-                    enum AsyncStatus status) = 0;
-
-            };
-        }
-    }
-}
-extern "C" {
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7)
-#endif
-#else
-typedef struct __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandlerVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler *This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler *This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler *This);
-
-    /*** AsyncActionCompletedHandler methods ***/
-    HRESULT (STDMETHODCALLTYPE *Invoke)(
-        __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler *This,
-        __x_ABI_CWindows_CFoundation_CIAsyncAction *asyncAction,
-        enum __x_ABI_CWindows_CFoundation_CAsyncStatus status);
-
-    END_INTERFACE
-} __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandlerVtbl;
-
-interface __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler {
-    CONST_VTBL __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandlerVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_Release(This) (This)->lpVtbl->Release(This)
-/*** AsyncActionCompletedHandler methods ***/
-#define __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_Invoke(This,asyncAction,status) (This)->lpVtbl->Invoke(This,asyncAction,status)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_QueryInterface(__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_AddRef(__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_Release(__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** AsyncActionCompletedHandler methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_Invoke(__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler* This,__x_ABI_CWindows_CFoundation_CIAsyncAction *asyncAction,enum __x_ABI_CWindows_CFoundation_CAsyncStatus status) {
-    return This->lpVtbl->Invoke(This,asyncAction,status);
-}
-#endif
-#ifdef WIDL_using_Windows_Foundation
-#define IID_AsyncActionCompletedHandler IID___x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler
-#define AsyncActionCompletedHandlerVtbl __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandlerVtbl
-#define AsyncActionCompletedHandler __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler
-#define AsyncActionCompletedHandler_QueryInterface __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_QueryInterface
-#define AsyncActionCompletedHandler_AddRef __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_AddRef
-#define AsyncActionCompletedHandler_Release __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_Release
-#define AsyncActionCompletedHandler_Invoke __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_Invoke
-#endif /* WIDL_using_Windows_Foundation */
-#endif
-
-#endif
-
-#endif  /* ____x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IAsyncOperation interface
- */
-#ifndef ____x_ABI_CWindows_CFoundation_CIAsyncOperation_INTERFACE_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CIAsyncOperation_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CIAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-} /* extern "C" */
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            MIDL_INTERFACE("9fc2b0bb-e446-44e2-aa61-9cab8f636af2")
-            IAsyncOperation : public IAsyncInfo
-            {
-                virtual HRESULT STDMETHODCALLTYPE put_Completed(
-                    ABI::Windows::Foundation::AsyncActionCompletedHandler *handler) = 0;
-
-                virtual HRESULT STDMETHODCALLTYPE get_Completed(
-                    ABI::Windows::Foundation::AsyncActionCompletedHandler **handler) = 0;
-
-                virtual IInspectable * STDMETHODCALLTYPE GetResults(
-                    ) = 0;
-
-            };
-        }
-    }
-}
-extern "C" {
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(__x_ABI_CWindows_CFoundation_CIAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 0x9c,0xab,0x8f,0x63,0x6a,0xf2)
-#endif
-#else
-typedef struct __x_ABI_CWindows_CFoundation_CIAsyncOperationVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This);
-
-    /*** IInspectable methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetIids)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This,
-        ULONG *iidCount,
-        IID **iids);
-
-    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This,
-        HSTRING *className);
-
-    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This,
-        TrustLevel *trustLevel);
-
-    /*** IAsyncInfo methods ***/
-    HRESULT (STDMETHODCALLTYPE *get_Id)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This,
-        unsigned int *id);
-
-    HRESULT (STDMETHODCALLTYPE *get_Status)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This,
-        enum __x_ABI_CWindows_CFoundation_CAsyncStatus *status);
-
-    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This,
-        HRESULT *errorCode);
-
-    HRESULT (STDMETHODCALLTYPE *Cancel)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This);
-
-    HRESULT (STDMETHODCALLTYPE *Close)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This);
-
-    /*** IAsyncOperation methods ***/
-    HRESULT (STDMETHODCALLTYPE *put_Completed)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This,
-        __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler *handler);
-
-    HRESULT (STDMETHODCALLTYPE *get_Completed)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This,
-        __x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler **handler);
-
-    IInspectable * (STDMETHODCALLTYPE *GetResults)(
-        __x_ABI_CWindows_CFoundation_CIAsyncOperation *This);
-
-    END_INTERFACE
-} __x_ABI_CWindows_CFoundation_CIAsyncOperationVtbl;
-
-interface __x_ABI_CWindows_CFoundation_CIAsyncOperation {
-    CONST_VTBL __x_ABI_CWindows_CFoundation_CIAsyncOperationVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
-/*** IInspectable methods ***/
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
-/*** IAsyncInfo methods ***/
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_Status(This,status) (This)->lpVtbl->get_Status(This,status)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_ErrorCode(This,errorCode) (This)->lpVtbl->get_ErrorCode(This,errorCode)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_Cancel(This) (This)->lpVtbl->Cancel(This)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_Close(This) (This)->lpVtbl->Close(This)
-/*** IAsyncOperation methods ***/
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_put_Completed(This,handler) (This)->lpVtbl->put_Completed(This,handler)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_Completed(This,handler) (This)->lpVtbl->get_Completed(This,handler)
-#define __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetResults(This) (This)->lpVtbl->GetResults(This)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_QueryInterface(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIAsyncOperation_AddRef(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CIAsyncOperation_Release(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** IInspectable methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetIids(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This,ULONG *iidCount,IID **iids) {
-    return This->lpVtbl->GetIids(This,iidCount,iids);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This,HSTRING *className) {
-    return This->lpVtbl->GetRuntimeClassName(This,className);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetTrustLevel(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This,TrustLevel *trustLevel) {
-    return This->lpVtbl->GetTrustLevel(This,trustLevel);
-}
-/*** IAsyncInfo methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_Id(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This,unsigned int *id) {
-    return This->lpVtbl->get_Id(This,id);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_Status(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This,enum __x_ABI_CWindows_CFoundation_CAsyncStatus *status) {
-    return This->lpVtbl->get_Status(This,status);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_ErrorCode(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This,HRESULT *errorCode) {
-    return This->lpVtbl->get_ErrorCode(This,errorCode);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_Cancel(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This) {
-    return This->lpVtbl->Cancel(This);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_Close(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This) {
-    return This->lpVtbl->Close(This);
-}
-/*** IAsyncOperation methods ***/
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_put_Completed(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This,__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler *handler) {
-    return This->lpVtbl->put_Completed(This,handler);
-}
-static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_Completed(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This,__x_ABI_CWindows_CFoundation_CAsyncActionCompletedHandler **handler) {
-    return This->lpVtbl->get_Completed(This,handler);
-}
-static FORCEINLINE IInspectable * __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetResults(__x_ABI_CWindows_CFoundation_CIAsyncOperation* This) {
-    return This->lpVtbl->GetResults(This);
-}
-#endif
-#ifdef WIDL_using_Windows_Foundation
-#define IID_IAsyncOperation IID___x_ABI_CWindows_CFoundation_CIAsyncOperation
-#define IAsyncOperationVtbl __x_ABI_CWindows_CFoundation_CIAsyncOperationVtbl
-#define IAsyncOperation __x_ABI_CWindows_CFoundation_CIAsyncOperation
-#define IAsyncOperation_QueryInterface __x_ABI_CWindows_CFoundation_CIAsyncOperation_QueryInterface
-#define IAsyncOperation_AddRef __x_ABI_CWindows_CFoundation_CIAsyncOperation_AddRef
-#define IAsyncOperation_Release __x_ABI_CWindows_CFoundation_CIAsyncOperation_Release
-#define IAsyncOperation_GetIids __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetIids
-#define IAsyncOperation_GetRuntimeClassName __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetRuntimeClassName
-#define IAsyncOperation_GetTrustLevel __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetTrustLevel
-#define IAsyncOperation_get_Id __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_Id
-#define IAsyncOperation_get_Status __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_Status
-#define IAsyncOperation_get_ErrorCode __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_ErrorCode
-#define IAsyncOperation_Cancel __x_ABI_CWindows_CFoundation_CIAsyncOperation_Cancel
-#define IAsyncOperation_Close __x_ABI_CWindows_CFoundation_CIAsyncOperation_Close
-#define IAsyncOperation_put_Completed __x_ABI_CWindows_CFoundation_CIAsyncOperation_put_Completed
-#define IAsyncOperation_get_Completed __x_ABI_CWindows_CFoundation_CIAsyncOperation_get_Completed
-#define IAsyncOperation_GetResults __x_ABI_CWindows_CFoundation_CIAsyncOperation_GetResults
-#endif /* WIDL_using_Windows_Foundation */
-#endif
-
-#endif
-
-#endif  /* ____x_ABI_CWindows_CFoundation_CIAsyncOperation_INTERFACE_DEFINED__ */
+#endif  /* ____FIAsyncOperation_1_boolean_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.idl b/mingw-w64-headers/include/windows.foundation.idl
index bfc93ae..c4dc454 100644
--- a/mingw-w64-headers/include/windows.foundation.idl
+++ b/mingw-w64-headers/include/windows.foundation.idl
@@ -1,7 +1,19 @@
-/**
- * This file has no copyright assigned and is placed in the Public Domain.
- * This file is part of the mingw-w64 runtime package.
- * No warranty is given; refer to the file DISCLAIMER.PD within this package.
+/*
+ * Copyright 2015 Jacek Caban for CodeWeavers
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
  */
 
 #ifdef __WIDL__
@@ -9,82 +21,112 @@
 #endif
 
 import "inspectable.idl";
+import "asyncinfo.idl";
 import "windowscontracts.idl";
+/* import "eventtoken.idl"; */
+/* import "ivectorchangedeventargs.idl"; */
 import "windows.foundation.collections.idl";
 
 namespace Windows {
-  namespace Foundation {
-    interface IAsyncInfo;
-    interface IAsyncAction;
-    interface IAsyncOperation;
-    interface AsyncActionCompletedHandler; // delegate
-    interface TypedEventHandler;           // delegate
-    struct    DateTime;
-    struct    EventRegistrationToken;
+    namespace Foundation {
+        typedef enum PropertyType PropertyType;
+        typedef struct Point Point;
+        typedef struct Size Size;
+        typedef struct Rect Rect;
+        typedef struct DateTime DateTime;
+        typedef struct TimeSpan TimeSpan;
 
-    namespace Collections {
-      interface IPropertySet;
+        [contract(Windows.Foundation.FoundationContract, 1.0)]
+        enum PropertyType {
+            Empty       = 0,
+            UInt8       = 1,
+            Int16       = 2,
+            UInt16      = 3,
+            Int32       = 4,
+            UInt32      = 5,
+            Int64       = 6,
+            UInt64      = 7,
+            Single      = 8,
+            Double      = 9,
+            Char16      = 10,
+            Boolean     = 11,
+            String      = 12,
+            Inspectable = 13,
+            DateTime    = 14,
+            TimeSpan    = 15,
+            Guid        = 16,
+            Point       = 17,
+            Size        = 18,
+            Rect        = 19,
+            OtherType   = 20,
+            UInt8Array       = 1025,
+            Int16Array       = 1026,
+            UInt16Array      = 1027,
+            Int32Array       = 1028,
+            UInt32Array      = 1029,
+            Int64Array       = 1030,
+            UInt64Array      = 1031,
+            SingleArray      = 1032,
+            DoubleArray      = 1033,
+            Char16Array      = 1034,
+            BooleanArray     = 1035,
+            StringArray      = 1036,
+            InspectableArray = 1037,
+            DateTimeArray    = 1038,
+            TimeSpanArray    = 1039,
+            GuidArray        = 1040,
+            PointArray       = 1041,
+            SizeArray        = 1042,
+            RectArray        = 1043,
+            OtherTypeArray   = 1044
+        };
+
+        [contract(Windows.Foundation.FoundationContract, 1.0)]
+        struct Point {
+            FLOAT X;
+            FLOAT Y;
+        };
+
+        [contract(Windows.Foundation.FoundationContract, 1.0)]
+        struct Size {
+            FLOAT Width;
+            FLOAT Height;
+        };
+
+        [contract(Windows.Foundation.FoundationContract, 1.0)]
+        struct Rect {
+            FLOAT X;
+            FLOAT Y;
+            FLOAT Width;
+            FLOAT Height;
+        };
+
+        [contract(Windows.Foundation.FoundationContract, 1.0)]
+        struct DateTime {
+            INT64 UniversalTime;
+        };
+
+        [contract(Windows.Foundation.FoundationContract, 1.0)]
+        struct TimeSpan {
+            INT64 Duration;
+        };
+
+        [
+            contract(Windows.Foundation.FoundationContract, 1.0),
+            uuid(96369f54-8eb6-48f0-abce-c1b211e627c3)
+        ]
+        interface IStringable : IInspectable
+        {
+            HRESULT ToString([out, retval] HSTRING *value);
+        }
     }
-  }
 }
 
 namespace Windows {
-  namespace Foundation {
-    typedef enum AsyncStatus {
-      Started,
-      Completed,
-      Canceled,
-      Error
-    } AsyncStatus;
-
-    typedef struct DateTime {
-      UINT64 UniversalTime;
-    } DateTime;
-
-    typedef struct EventRegistrationToken {
-      UINT64 Value;
-    } EventRegistrationToken;
-
-    [uuid(00000036-0000-0000-C000-000000000046)]
-    interface IAsyncInfo : IInspectable
-    {
-      [propget] HRESULT Id(unsigned int *id);
-      [propget] HRESULT Status(AsyncStatus *status);
-      [propget] HRESULT ErrorCode(HRESULT *errorCode);
-      HRESULT Cancel();
-      HRESULT Close();
+    namespace Foundation {
+        declare {
+            interface Windows.Foundation.AsyncOperationCompletedHandler<boolean>;
+            interface Windows.Foundation.IAsyncOperation<boolean>;
+        }
     }
-
-    [uuid(5A648006-843A-4DA9-865B-9D26E5DFAD7B)]
-    interface IASyncAction : IAsyncInfo {
-      [propput] HRESULT Completed(AsyncActionCompletedHandler* handler);
-      [propget] HRESULT Completed(AsyncActionCompletedHandler** handler);
-      HRESULT GetResults();
-    }
-
-    [uuid(A4ED5C81-76C9-40BD-8BE6-B1D90FB20AE7)]
-    interface AsyncActionCompletedHandler : IUnknown {
-      //FIXME: should support cyclic dependency
-      HRESULT Invoke(IAsyncAction *asyncAction, AsyncStatus status);
-    }
-
-    //FIXME: WHERE IS IT?
-    //generic <typename TResult>
-    [uuid("9fc2b0bb-e446-44e2-aa61-9cab8f636af2")]
-    interface IAsyncOperation : IAsyncInfo {
-      [propput] HRESULT Completed(AsyncActionCompletedHandler* handler);
-      [propget] HRESULT Completed(AsyncActionCompletedHandler** handler);
-      //FIXME: implement generics
-      /*TResult*/ IInspectable* GetResults();
-    }
-
-
-    namespace Collections {
-      //interface IVectorView;
-      /*[uuid(8A43ED9F-F4E6-4421-ACF9-1DAB2986820C)]
-      interface IPropertySet : IInspectable {
-        //
-      }*/
-    }
-  }
 }
diff --git a/mingw-w64-headers/include/windows.storage.h b/mingw-w64-headers/include/windows.storage.h
index d6aacd4..bc890f4 100644
--- a/mingw-w64-headers/include/windows.storage.h
+++ b/mingw-w64-headers/include/windows.storage.h
@@ -171,7 +171,7 @@
 /* Headers for imported files */
 
 #include <inspectable.h>
-#include <hstring.h>
+#include <eventtoken.h>
 #include <windows.foundation.h>
 
 #ifdef __cplusplus
@@ -193,21 +193,6 @@
 #endif /* __cplusplus */
 #endif
 
-#ifndef ____x_ABI_CWindows_CFoundation_CTypedEventHandler_FWD_DEFINED__
-#define ____x_ABI_CWindows_CFoundation_CTypedEventHandler_FWD_DEFINED__
-typedef interface __x_ABI_CWindows_CFoundation_CTypedEventHandler __x_ABI_CWindows_CFoundation_CTypedEventHandler;
-#ifdef __cplusplus
-#define __x_ABI_CWindows_CFoundation_CTypedEventHandler ABI::Windows::Foundation::TypedEventHandler
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            interface TypedEventHandler;
-        }
-    }
-}
-#endif /* __cplusplus */
-#endif
-
 #ifndef ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
 #define ____x_ABI_CWindows_CFoundation_CCollections_CIPropertySet_FWD_DEFINED__
 typedef interface __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet __x_ABI_CWindows_CFoundation_CCollections_CIPropertySet;
@@ -1461,7 +1446,7 @@
                     ABI::Windows::Storage::IStorageFolder **value) = 0;
 
                 virtual HRESULT STDMETHODCALLTYPE DataChanged(
-                    struct EventRegistrationToken token) = 0;
+                    EventRegistrationToken token) = 0;
 
                 virtual HRESULT STDMETHODCALLTYPE SignalDataChanged(
                     ) = 0;
@@ -1549,7 +1534,7 @@
 
     HRESULT (STDMETHODCALLTYPE *DataChanged)(
         __x_ABI_CWindows_CStorage_CIApplicationData *This,
-        struct __x_ABI_CWindows_CFoundation_CEventRegistrationToken token);
+        EventRegistrationToken token);
 
     HRESULT (STDMETHODCALLTYPE *SignalDataChanged)(
         __x_ABI_CWindows_CStorage_CIApplicationData *This);
@@ -1637,7 +1622,7 @@
 static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_get_TemporaryFolder(__x_ABI_CWindows_CStorage_CIApplicationData* This,__x_ABI_CWindows_CStorage_CIStorageFolder **value) {
     return This->lpVtbl->get_TemporaryFolder(This,value);
 }
-static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_DataChanged(__x_ABI_CWindows_CStorage_CIApplicationData* This,struct __x_ABI_CWindows_CFoundation_CEventRegistrationToken token) {
+static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_DataChanged(__x_ABI_CWindows_CStorage_CIApplicationData* This,EventRegistrationToken token) {
     return This->lpVtbl->DataChanged(This,token);
 }
 static FORCEINLINE HRESULT __x_ABI_CWindows_CStorage_CIApplicationData_SignalDataChanged(__x_ABI_CWindows_CStorage_CIApplicationData* This) {
diff --git a/mingw-w64-headers/include/windows.storage.idl b/mingw-w64-headers/include/windows.storage.idl
index eac686e..dd29ec6 100644
--- a/mingw-w64-headers/include/windows.storage.idl
+++ b/mingw-w64-headers/include/windows.storage.idl
@@ -9,13 +9,12 @@
 #endif
 
 import "inspectable.idl";
-import "hstring.idl";
+import "eventtoken.idl";
 import "windows.foundation.idl";
 
 namespace Windows {
   namespace Foundation {
     interface IAsyncAction;
-    interface TypedEventHandler;
     //struct EventRegistrationToken;
 
     namespace Collections {
diff --git a/mingw-w64-headers/include/windows.system.threading.h b/mingw-w64-headers/include/windows.system.threading.h
index 7d43490..3311ac6 100644
--- a/mingw-w64-headers/include/windows.system.threading.h
+++ b/mingw-w64-headers/include/windows.system.threading.h
@@ -144,23 +144,6 @@
 #endif /* __cplusplus */
 #endif
 
-#ifdef __cplusplus
-} /* extern "C" */
-namespace ABI {
-    namespace Windows {
-        namespace Foundation {
-            struct TimeSpan;
-        }
-    }
-}
-extern "C" {
-#else
-struct __x_ABI_CWindows_CFoundation_CTimeSpan;
-#ifdef WIDL_using_Windows_Foundation
-#define TimeSpan __x_ABI_CWindows_CFoundation_CTimeSpan
-#endif /* WIDL_using_Windows_Foundation */
-#endif
-
 #ifndef ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
 #define ____x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler_FWD_DEFINED__
 typedef interface __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler __x_ABI_CWindows_CSystem_CThreading_CTimerElapsedHandler;
diff --git a/mingw-w64-headers/include/windows.system.threading.idl b/mingw-w64-headers/include/windows.system.threading.idl
index 8645850..502982e 100644
--- a/mingw-w64-headers/include/windows.system.threading.idl
+++ b/mingw-w64-headers/include/windows.system.threading.idl
@@ -14,7 +14,6 @@
 namespace Windows {
     namespace Foundation {
         interface IAsyncAction;
-        struct TimeSpan;
     }
 
     namespace System {
diff --git a/mingw-w64-headers/wine-import.sh b/mingw-w64-headers/wine-import.sh
index 658df6b..3efac13 100755
--- a/mingw-w64-headers/wine-import.sh
+++ b/mingw-w64-headers/wine-import.sh
@@ -130,6 +130,7 @@
 for f in \
 	amstream \
 	amvideo \
+	asyncinfo \
 	austream \
 	ctfutb \
 	d3d10 \
@@ -169,6 +170,7 @@
 	dxgitype \
 	dxva2api \
 	endpointvolume \
+	eventtoken \
 	exdisp \
 	fusion \
 	icftypes \
@@ -196,6 +198,7 @@
 	wincodec \
 	wincodecsdk \
 	windowscontracts \
+	windows.foundation \
 	windows.foundation.collections \
 	windows.media.speechsynthesis \
 	wmdrmsdk \