---
 mingw-w64-headers/Makefile.am                    |   1 +
 mingw-w64-headers/include/windows.foundation.h   | 716 +++++++++++++++++++++++
 mingw-w64-headers/include/windows.foundation.idl |  85 +++
 3 files changed, 802 insertions(+)
 create mode 100644 mingw-w64-headers/include/windows.foundation.h
 create mode 100644 mingw-w64-headers/include/windows.foundation.idl

diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index 863ed6c..085532d 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -109,6 +109,7 @@ IDL_SRCS = \
   include/urlmon.idl \
   include/wincodec.idl \
   include/wtypesbase.idl \
+  include/windows.foundation.idl \
   include/wmcodecdsp.idl \
   include/wpcapi.idl \
   include/wtypes.idl \
diff --git a/mingw-w64-headers/include/windows.foundation.h 
b/mingw-w64-headers/include/windows.foundation.h
new file mode 100644
index 0000000..6c4d3ec
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.h
@@ -0,0 +1,716 @@
+/*** Autogenerated by WIDL 1.5.31 from include/windows.foundation.idl - Do not 
edit ***/
+
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+#include <rpc.h>
+#include <rpcndr.h>
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_foundation_h__
+#define __windows_foundation_h__
+
+/* Forward declarations */
+
+#ifndef __IAsyncInfo_FWD_DEFINED__
+#define __IAsyncInfo_FWD_DEFINED__
+typedef interface IAsyncInfo IAsyncInfo;
+#endif
+
+#ifndef __IASyncAction_FWD_DEFINED__
+#define __IASyncAction_FWD_DEFINED__
+typedef interface IASyncAction IASyncAction;
+#endif
+
+#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
+#define __AsyncActionCompletedHandler_FWD_DEFINED__
+typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
+#endif
+
+#ifndef __IAsyncOperation_FWD_DEFINED__
+#define __IAsyncOperation_FWD_DEFINED__
+typedef interface IAsyncOperation IAsyncOperation;
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifndef __IAsyncInfo_FWD_DEFINED__
+#define __IAsyncInfo_FWD_DEFINED__
+typedef interface IAsyncInfo IAsyncInfo;
+#endif
+
+#ifndef __IAsyncAction_FWD_DEFINED__
+#define __IAsyncAction_FWD_DEFINED__
+typedef interface IAsyncAction IAsyncAction;
+#endif
+
+#ifndef __IAsyncOperation_FWD_DEFINED__
+#define __IAsyncOperation_FWD_DEFINED__
+typedef interface IAsyncOperation IAsyncOperation;
+#endif
+
+#ifndef __AsyncActionCompletedHandler_FWD_DEFINED__
+#define __AsyncActionCompletedHandler_FWD_DEFINED__
+typedef interface AsyncActionCompletedHandler AsyncActionCompletedHandler;
+#endif
+
+#ifndef __TypedEventHandler_FWD_DEFINED__
+#define __TypedEventHandler_FWD_DEFINED__
+typedef interface TypedEventHandler TypedEventHandler;
+#endif
+
+struct DateTime;
+
+struct EventRegistrationToken;
+
+#ifndef __IVectorView_FWD_DEFINED__
+#define __IVectorView_FWD_DEFINED__
+typedef interface IVectorView IVectorView;
+#endif
+
+#ifndef __IPropertySet_FWD_DEFINED__
+#define __IPropertySet_FWD_DEFINED__
+typedef interface IPropertySet IPropertySet;
+#endif
+
+typedef enum AsyncStatus {
+    Started = 0,
+    Completed = 1,
+    Canceled = 2,
+    Error = 3
+} AsyncStatus;
+typedef struct DateTime {
+    UINT64 UniversalTime;
+} DateTime;
+typedef struct EventRegistrationToken {
+    UINT64 Value;
+} EventRegistrationToken;
+/*****************************************************************************
+ * IAsyncInfo interface
+ */
+#ifndef __IAsyncInfo_INTERFACE_DEFINED__
+#define __IAsyncInfo_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 
0x00,0x00,0x00,0x00,0x00,0x46);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("00000036-0000-0000-c000-000000000046")
+IAsyncInfo : public IInspectable
+{
+    virtual HRESULT STDMETHODCALLTYPE get_Id(
+        unsigned int *id) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Status(
+        AsyncStatus *status) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_ErrorCode(
+        HRESULT *errorCode) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Cancel(
+        ) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE Close(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAsyncInfo, 0x00000036, 0x0000, 0x0000, 0xc0,0x00, 
0x00,0x00,0x00,0x00,0x00,0x46)
+#endif
+#else
+typedef struct IAsyncInfoVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAsyncInfo* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAsyncInfo* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAsyncInfo* This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        IAsyncInfo* This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        IAsyncInfo* This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        IAsyncInfo* This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IAsyncInfo* This,
+        unsigned int *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        IAsyncInfo* This,
+        AsyncStatus *status);
+
+    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
+        IAsyncInfo* This,
+        HRESULT *errorCode);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IAsyncInfo* This);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IAsyncInfo* This);
+
+    END_INTERFACE
+} IAsyncInfoVtbl;
+interface IAsyncInfo {
+    CONST_VTBL IAsyncInfoVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAsyncInfo_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAsyncInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAsyncInfo_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define IAsyncInfo_GetIids(This,iidCount,iids) 
(This)->lpVtbl->GetIids(This,iidCount,iids)
+#define IAsyncInfo_GetRuntimeClassName(This,className) 
(This)->lpVtbl->GetRuntimeClassName(This,className)
+#define IAsyncInfo_GetTrustLevel(This,trustLevel) 
(This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncInfo methods ***/
+#define IAsyncInfo_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
+#define IAsyncInfo_get_Status(This,status) 
(This)->lpVtbl->get_Status(This,status)
+#define IAsyncInfo_get_ErrorCode(This,errorCode) 
(This)->lpVtbl->get_ErrorCode(This,errorCode)
+#define IAsyncInfo_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define IAsyncInfo_Close(This) (This)->lpVtbl->Close(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAsyncInfo_QueryInterface(IAsyncInfo* This,REFIID 
riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAsyncInfo_AddRef(IAsyncInfo* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAsyncInfo_Release(IAsyncInfo* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT IAsyncInfo_GetIids(IAsyncInfo* This,ULONG 
*iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT IAsyncInfo_GetRuntimeClassName(IAsyncInfo* 
This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT IAsyncInfo_GetTrustLevel(IAsyncInfo* 
This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncInfo methods ***/
+static FORCEINLINE HRESULT IAsyncInfo_get_Id(IAsyncInfo* This,unsigned int 
*id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IAsyncInfo_get_Status(IAsyncInfo* This,AsyncStatus 
*status) {
+    return This->lpVtbl->get_Status(This,status);
+}
+static FORCEINLINE HRESULT IAsyncInfo_get_ErrorCode(IAsyncInfo* This,HRESULT 
*errorCode) {
+    return This->lpVtbl->get_ErrorCode(This,errorCode);
+}
+static FORCEINLINE HRESULT IAsyncInfo_Cancel(IAsyncInfo* This) {
+    return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IAsyncInfo_Close(IAsyncInfo* This) {
+    return This->lpVtbl->Close(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Id_Proxy(
+    IAsyncInfo* This,
+    unsigned int *id);
+void __RPC_STUB IAsyncInfo_get_Id_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IAsyncInfo_get_Status_Proxy(
+    IAsyncInfo* This,
+    AsyncStatus *status);
+void __RPC_STUB IAsyncInfo_get_Status_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IAsyncInfo_get_ErrorCode_Proxy(
+    IAsyncInfo* This,
+    HRESULT *errorCode);
+void __RPC_STUB IAsyncInfo_get_ErrorCode_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IAsyncInfo_Cancel_Proxy(
+    IAsyncInfo* This);
+void __RPC_STUB IAsyncInfo_Cancel_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IAsyncInfo_Close_Proxy(
+    IAsyncInfo* This);
+void __RPC_STUB IAsyncInfo_Close_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IAsyncInfo_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IASyncAction interface
+ */
+#ifndef __IASyncAction_INTERFACE_DEFINED__
+#define __IASyncAction_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 
0x9d,0x26,0xe5,0xdf,0xad,0x7b);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("5a648006-843a-4da9-865b-9d26e5dfad7b")
+IASyncAction : public IInspectable
+{
+    virtual HRESULT STDMETHODCALLTYPE put_Completed(
+        AsyncActionCompletedHandler *handler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Completed(
+        AsyncActionCompletedHandler **handler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetResults(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IASyncAction, 0x5a648006, 0x843a, 0x4da9, 0x86,0x5b, 
0x9d,0x26,0xe5,0xdf,0xad,0x7b)
+#endif
+#else
+typedef struct IASyncActionVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IASyncAction* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IASyncAction* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IASyncAction* This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        IASyncAction* This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        IASyncAction* This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        IASyncAction* This,
+        TrustLevel *trustLevel);
+
+    /*** IASyncAction methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        IASyncAction* This,
+        AsyncActionCompletedHandler *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        IASyncAction* This,
+        AsyncActionCompletedHandler **handler);
+
+    HRESULT (STDMETHODCALLTYPE *GetResults)(
+        IASyncAction* This);
+
+    END_INTERFACE
+} IASyncActionVtbl;
+interface IASyncAction {
+    CONST_VTBL IASyncActionVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IASyncAction_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IASyncAction_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IASyncAction_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define IASyncAction_GetIids(This,iidCount,iids) 
(This)->lpVtbl->GetIids(This,iidCount,iids)
+#define IASyncAction_GetRuntimeClassName(This,className) 
(This)->lpVtbl->GetRuntimeClassName(This,className)
+#define IASyncAction_GetTrustLevel(This,trustLevel) 
(This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IASyncAction methods ***/
+#define IASyncAction_put_Completed(This,handler) 
(This)->lpVtbl->put_Completed(This,handler)
+#define IASyncAction_get_Completed(This,handler) 
(This)->lpVtbl->get_Completed(This,handler)
+#define IASyncAction_GetResults(This) (This)->lpVtbl->GetResults(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IASyncAction_QueryInterface(IASyncAction* 
This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IASyncAction_AddRef(IASyncAction* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IASyncAction_Release(IASyncAction* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT IASyncAction_GetIids(IASyncAction* This,ULONG 
*iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT IASyncAction_GetRuntimeClassName(IASyncAction* 
This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT IASyncAction_GetTrustLevel(IASyncAction* 
This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IASyncAction methods ***/
+static FORCEINLINE HRESULT IASyncAction_put_Completed(IASyncAction* 
This,AsyncActionCompletedHandler *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static FORCEINLINE HRESULT IASyncAction_get_Completed(IASyncAction* 
This,AsyncActionCompletedHandler **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static FORCEINLINE HRESULT IASyncAction_GetResults(IASyncAction* This) {
+    return This->lpVtbl->GetResults(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IASyncAction_put_Completed_Proxy(
+    IASyncAction* This,
+    AsyncActionCompletedHandler *handler);
+void __RPC_STUB IASyncAction_put_Completed_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IASyncAction_get_Completed_Proxy(
+    IASyncAction* This,
+    AsyncActionCompletedHandler **handler);
+void __RPC_STUB IASyncAction_get_Completed_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IASyncAction_GetResults_Proxy(
+    IASyncAction* This);
+void __RPC_STUB IASyncAction_GetResults_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IASyncAction_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * AsyncActionCompletedHandler interface
+ */
+#ifndef __AsyncActionCompletedHandler_INTERFACE_DEFINED__
+#define __AsyncActionCompletedHandler_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 
0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("a4ed5c81-76c9-40bd-8be6-b1d90fb20ae7")
+AsyncActionCompletedHandler : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Invoke(
+        IInspectable *asyncAction,
+        AsyncStatus status) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(AsyncActionCompletedHandler, 0xa4ed5c81, 0x76c9, 0x40bd, 
0x8b,0xe6, 0xb1,0xd9,0x0f,0xb2,0x0a,0xe7)
+#endif
+#else
+typedef struct AsyncActionCompletedHandlerVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        AsyncActionCompletedHandler* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        AsyncActionCompletedHandler* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        AsyncActionCompletedHandler* This);
+
+    /*** AsyncActionCompletedHandler methods ***/
+    HRESULT (STDMETHODCALLTYPE *Invoke)(
+        AsyncActionCompletedHandler* This,
+        IInspectable *asyncAction,
+        AsyncStatus status);
+
+    END_INTERFACE
+} AsyncActionCompletedHandlerVtbl;
+interface AsyncActionCompletedHandler {
+    CONST_VTBL AsyncActionCompletedHandlerVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define AsyncActionCompletedHandler_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define AsyncActionCompletedHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define AsyncActionCompletedHandler_Release(This) (This)->lpVtbl->Release(This)
+/*** AsyncActionCompletedHandler methods ***/
+#define AsyncActionCompletedHandler_Invoke(This,asyncAction,status) 
(This)->lpVtbl->Invoke(This,asyncAction,status)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT 
AsyncActionCompletedHandler_QueryInterface(AsyncActionCompletedHandler* 
This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG 
AsyncActionCompletedHandler_AddRef(AsyncActionCompletedHandler* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG 
AsyncActionCompletedHandler_Release(AsyncActionCompletedHandler* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** AsyncActionCompletedHandler methods ***/
+static FORCEINLINE HRESULT 
AsyncActionCompletedHandler_Invoke(AsyncActionCompletedHandler* 
This,IInspectable *asyncAction,AsyncStatus status) {
+    return This->lpVtbl->Invoke(This,asyncAction,status);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE AsyncActionCompletedHandler_Invoke_Proxy(
+    AsyncActionCompletedHandler* This,
+    IInspectable *asyncAction,
+    AsyncStatus status);
+void __RPC_STUB AsyncActionCompletedHandler_Invoke_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __AsyncActionCompletedHandler_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * IAsyncOperation interface
+ */
+#ifndef __IAsyncOperation_INTERFACE_DEFINED__
+#define __IAsyncOperation_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 
0x9c,0xab,0x8f,0x63,0x6a,0xf2);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("9fc2b0bb-e446-44e2-aa61-9cab8f636af2")
+IAsyncOperation : public IAsyncInfo
+{
+    virtual HRESULT STDMETHODCALLTYPE put_Completed(
+        AsyncActionCompletedHandler *handler) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE get_Completed(
+        AsyncActionCompletedHandler **handler) = 0;
+
+    virtual IInspectable * STDMETHODCALLTYPE GetResults(
+        ) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAsyncOperation, 0x9fc2b0bb, 0xe446, 0x44e2, 0xaa,0x61, 
0x9c,0xab,0x8f,0x63,0x6a,0xf2)
+#endif
+#else
+typedef struct IAsyncOperationVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAsyncOperation* This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAsyncOperation* This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAsyncOperation* This);
+
+    /*** IInspectable methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetIids)(
+        IAsyncOperation* This,
+        ULONG *iidCount,
+        IID **iids);
+
+    HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+        IAsyncOperation* This,
+        HSTRING *className);
+
+    HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+        IAsyncOperation* This,
+        TrustLevel *trustLevel);
+
+    /*** IAsyncInfo methods ***/
+    HRESULT (STDMETHODCALLTYPE *get_Id)(
+        IAsyncOperation* This,
+        unsigned int *id);
+
+    HRESULT (STDMETHODCALLTYPE *get_Status)(
+        IAsyncOperation* This,
+        AsyncStatus *status);
+
+    HRESULT (STDMETHODCALLTYPE *get_ErrorCode)(
+        IAsyncOperation* This,
+        HRESULT *errorCode);
+
+    HRESULT (STDMETHODCALLTYPE *Cancel)(
+        IAsyncOperation* This);
+
+    HRESULT (STDMETHODCALLTYPE *Close)(
+        IAsyncOperation* This);
+
+    /*** IAsyncOperation methods ***/
+    HRESULT (STDMETHODCALLTYPE *put_Completed)(
+        IAsyncOperation* This,
+        AsyncActionCompletedHandler *handler);
+
+    HRESULT (STDMETHODCALLTYPE *get_Completed)(
+        IAsyncOperation* This,
+        AsyncActionCompletedHandler **handler);
+
+    IInspectable * (STDMETHODCALLTYPE *GetResults)(
+        IAsyncOperation* This);
+
+    END_INTERFACE
+} IAsyncOperationVtbl;
+interface IAsyncOperation {
+    CONST_VTBL IAsyncOperationVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAsyncOperation_QueryInterface(This,riid,ppvObject) 
(This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define IAsyncOperation_GetIids(This,iidCount,iids) 
(This)->lpVtbl->GetIids(This,iidCount,iids)
+#define IAsyncOperation_GetRuntimeClassName(This,className) 
(This)->lpVtbl->GetRuntimeClassName(This,className)
+#define IAsyncOperation_GetTrustLevel(This,trustLevel) 
(This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IAsyncInfo methods ***/
+#define IAsyncOperation_get_Id(This,id) (This)->lpVtbl->get_Id(This,id)
+#define IAsyncOperation_get_Status(This,status) 
(This)->lpVtbl->get_Status(This,status)
+#define IAsyncOperation_get_ErrorCode(This,errorCode) 
(This)->lpVtbl->get_ErrorCode(This,errorCode)
+#define IAsyncOperation_Cancel(This) (This)->lpVtbl->Cancel(This)
+#define IAsyncOperation_Close(This) (This)->lpVtbl->Close(This)
+/*** IAsyncOperation methods ***/
+#define IAsyncOperation_put_Completed(This,handler) 
(This)->lpVtbl->put_Completed(This,handler)
+#define IAsyncOperation_get_Completed(This,handler) 
(This)->lpVtbl->get_Completed(This,handler)
+#define IAsyncOperation_GetResults(This) (This)->lpVtbl->GetResults(This)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAsyncOperation_QueryInterface(IAsyncOperation* 
This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAsyncOperation_AddRef(IAsyncOperation* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAsyncOperation_Release(IAsyncOperation* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT IAsyncOperation_GetIids(IAsyncOperation* This,ULONG 
*iidCount,IID **iids) {
+    return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT 
IAsyncOperation_GetRuntimeClassName(IAsyncOperation* This,HSTRING *className) {
+    return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT IAsyncOperation_GetTrustLevel(IAsyncOperation* 
This,TrustLevel *trustLevel) {
+    return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IAsyncInfo methods ***/
+static FORCEINLINE HRESULT IAsyncOperation_get_Id(IAsyncOperation* 
This,unsigned int *id) {
+    return This->lpVtbl->get_Id(This,id);
+}
+static FORCEINLINE HRESULT IAsyncOperation_get_Status(IAsyncOperation* 
This,AsyncStatus *status) {
+    return This->lpVtbl->get_Status(This,status);
+}
+static FORCEINLINE HRESULT IAsyncOperation_get_ErrorCode(IAsyncOperation* 
This,HRESULT *errorCode) {
+    return This->lpVtbl->get_ErrorCode(This,errorCode);
+}
+static FORCEINLINE HRESULT IAsyncOperation_Cancel(IAsyncOperation* This) {
+    return This->lpVtbl->Cancel(This);
+}
+static FORCEINLINE HRESULT IAsyncOperation_Close(IAsyncOperation* This) {
+    return This->lpVtbl->Close(This);
+}
+/*** IAsyncOperation methods ***/
+static FORCEINLINE HRESULT IAsyncOperation_put_Completed(IAsyncOperation* 
This,AsyncActionCompletedHandler *handler) {
+    return This->lpVtbl->put_Completed(This,handler);
+}
+static FORCEINLINE HRESULT IAsyncOperation_get_Completed(IAsyncOperation* 
This,AsyncActionCompletedHandler **handler) {
+    return This->lpVtbl->get_Completed(This,handler);
+}
+static FORCEINLINE IInspectable * IAsyncOperation_GetResults(IAsyncOperation* 
This) {
+    return This->lpVtbl->GetResults(This);
+}
+#endif
+#endif
+
+#endif
+
+HRESULT STDMETHODCALLTYPE IAsyncOperation_put_Completed_Proxy(
+    IAsyncOperation* This,
+    AsyncActionCompletedHandler *handler);
+void __RPC_STUB IAsyncOperation_put_Completed_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+HRESULT STDMETHODCALLTYPE IAsyncOperation_get_Completed_Proxy(
+    IAsyncOperation* This,
+    AsyncActionCompletedHandler **handler);
+void __RPC_STUB IAsyncOperation_get_Completed_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+IInspectable * STDMETHODCALLTYPE IAsyncOperation_GetResults_Proxy(
+    IAsyncOperation* This);
+void __RPC_STUB IAsyncOperation_GetResults_Stub(
+    IRpcStubBuffer* This,
+    IRpcChannelBuffer* pRpcChannelBuffer,
+    PRPC_MESSAGE pRpcMessage,
+    DWORD* pdwStubPhase);
+
+#endif  /* __IAsyncOperation_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_foundation_h__ */
diff --git a/mingw-w64-headers/include/windows.foundation.idl 
b/mingw-w64-headers/include/windows.foundation.idl
new file mode 100644
index 0000000..875341a
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.idl
@@ -0,0 +1,85 @@
+/**
+ * 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.
+ */
+
+import "inspectable.idl";
+
+namespace Windows {
+  namespace Foundation {
+    interface IAsyncInfo;
+    interface IAsyncAction;
+    interface IAsyncOperation;
+    interface AsyncActionCompletedHandler; // delegate
+    interface TypedEventHandler;           // delegate
+    struct    DateTime;
+    struct    EventRegistrationToken;
+
+    namespace Collections {
+      interface IVectorView;
+      interface IPropertySet;
+    }
+  }
+}
+
+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();
+    }
+
+    [uuid(5A648006-843A-4DA9-865B-9D26E5DFAD7B)]
+    interface IASyncAction : IInspectable {
+      [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*/ IInspectable *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 {
+        //
+      }*/
+    }
+  }
+}
-- 
1.8.3.4


------------------------------------------------------------------------------
Get 100% visibility into Java/.NET code with AppDynamics Lite!
It's a free troubleshooting tool designed for production.
Get down to code-level detail for bottlenecks, with <2% overhead. 
Download for free and get started troubleshooting in minutes. 
http://pubads.g.doubleclick.net/gampad/clk?id=48897031&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to