Bug 1814705: Bump ming-w64 and update our local patches r=firefox-build-system-reviewers,nalexander

In the time since we last bumped MinGW many of our patches
no longer apply.

The enum patch had one of the fixes incorporated, but not the
other.

The winrt patch added several files that were added to MinGW -
but not all the classes we need were added, so I've copied them
into a new patch in a subsequent commit.

While we're here, also add the mingw patches as resources so
they trigger rebuilds when edited.

Differential Revision: https://phabricator.services.mozilla.com/D168831
This commit is contained in:
Tom Ritter 2023-02-06 17:47:02 +00:00
Родитель 7aa10a9400
Коммит f096af1fc5
6 изменённых файлов: 52 добавлений и 653 удалений

Просмотреть файл

@ -329,7 +329,7 @@ mingw-w64:
fetch:
type: git
repo: https://git.code.sf.net/p/mingw-w64/mingw-w64
revision: 09def642bf5e8a78195791257ff53fd920c549d1
revision: e0f8679e6d7e77251578d5f29787fbbf1aa8ad0c
llvm-mingw:
description: llvm-mingw source code

Просмотреть файл

@ -104,6 +104,8 @@ linux64-clang-15-mingw-x86:
script: build-clang-mingw.sh
arguments:
- 'x86'
resources:
- 'taskcluster/scripts/misc/mingw-*.patch'
toolchain-alias:
by-project:
toolchains: null
@ -128,6 +130,8 @@ linux64-clang-15-mingw-x64:
script: build-clang-mingw.sh
arguments:
- 'x64'
resources:
- 'taskcluster/scripts/misc/mingw-*.patch'
toolchain-alias:
by-project:
toolchains: null
@ -480,6 +484,8 @@ linux64-clang-trunk-mingw-x86:
script: build-clang-mingw.sh
arguments:
- 'x86'
resources:
- 'taskcluster/scripts/misc/mingw-*.patch'
toolchain-alias:
by-project:
toolchains: linux64-clang-mingw-x86
@ -506,6 +512,8 @@ linux64-clang-trunk-mingw-x64:
script: build-clang-mingw.sh
arguments:
- 'x64'
resources:
- 'taskcluster/scripts/misc/mingw-*.patch'
toolchain-alias:
by-project:
toolchains: linux64-clang-mingw-x64

Просмотреть файл

@ -1,7 +1,7 @@
From 86f4e9cbb5d3099179dc51332970d61d394116f6 Mon Sep 17 00:00:00 2001
From a9804765e442063be37338933b9c40e3e3d01aac Mon Sep 17 00:00:00 2001
From: Sanketh Menda <me@snkth.com>
Date: Sat, 17 Oct 2020 15:39:42 -0400
Subject: [PATCH] dwrite_3.h: rename GetGlyphImageFormats_ to
Date: Thu, 2 Feb 2023 12:29:03 -0500
Subject: [PATCH 4/7] dwrite_3.h: rename GetGlyphImageFormats_ to
GetGlyphImageFormats
Wine's WIDL currently doesn't support overloading functions, so till
@ -12,10 +12,10 @@ GetGlyphImageFormats.
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/mingw-w64-headers/include/dwrite_3.h b/mingw-w64-headers/include/dwrite_3.h
index 427c39e3b..dd894a8b1 100644
index 205c47f04..352731bf1 100644
--- a/mingw-w64-headers/include/dwrite_3.h
+++ b/mingw-w64-headers/include/dwrite_3.h
@@ -8168,7 +8168,7 @@ DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x
@@ -8181,7 +8181,7 @@ DEFINE_GUID(IID_IDWriteFontFace4, 0x27f2a904, 0x4eb8, 0x441d, 0x96,0x78, 0x05,0x
MIDL_INTERFACE("27f2a904-4eb8-441d-9678-0563f53e3e2f")
IDWriteFontFace4 : public IDWriteFontFace3
{
@ -24,7 +24,7 @@ index 427c39e3b..dd894a8b1 100644
UINT16 glyph,
UINT32 ppem_first,
UINT32 ppem_last,
@@ -8468,7 +8468,7 @@ typedef struct IDWriteFontFace4Vtbl {
@@ -8481,7 +8481,7 @@ typedef struct IDWriteFontFace4Vtbl {
WINBOOL *are_local);
/*** IDWriteFontFace4 methods ***/
@ -33,7 +33,7 @@ index 427c39e3b..dd894a8b1 100644
IDWriteFontFace4 *This,
UINT16 glyph,
UINT32 ppem_first,
@@ -8549,7 +8549,7 @@ interface IDWriteFontFace4 {
@@ -8562,7 +8562,7 @@ interface IDWriteFontFace4 {
#define IDWriteFontFace4_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
#define IDWriteFontFace4_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
/*** IDWriteFontFace4 methods ***/
@ -42,18 +42,18 @@ index 427c39e3b..dd894a8b1 100644
#define IDWriteFontFace4_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
#define IDWriteFontFace4_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
#define IDWriteFontFace4_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
@@ -8692,8 +8692,8 @@ static FORCEINLINE HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* Thi
@@ -8705,8 +8705,8 @@ static __WIDL_INLINE HRESULT IDWriteFontFace4_AreGlyphsLocal(IDWriteFontFace4* T
return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
}
/*** IDWriteFontFace4 methods ***/
-static FORCEINLINE HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
-static __WIDL_INLINE HRESULT IDWriteFontFace4_GetGlyphImageFormats_(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
- return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
+static FORCEINLINE HRESULT IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
+static __WIDL_INLINE HRESULT IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
+ return This->lpVtbl->GetGlyphImageFormats(This,glyph,ppem_first,ppem_last,formats);
}
static FORCEINLINE DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) {
static __WIDL_INLINE DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace4_GetGlyphImageFormats(IDWriteFontFace4* This) {
return This->lpVtbl->GetGlyphImageFormats(This);
@@ -9020,7 +9020,7 @@ typedef struct IDWriteFontFace5Vtbl {
@@ -9033,7 +9033,7 @@ typedef struct IDWriteFontFace5Vtbl {
WINBOOL *are_local);
/*** IDWriteFontFace4 methods ***/
@ -62,7 +62,7 @@ index 427c39e3b..dd894a8b1 100644
IDWriteFontFace5 *This,
UINT16 glyph,
UINT32 ppem_first,
@@ -9121,7 +9121,7 @@ interface IDWriteFontFace5 {
@@ -9134,7 +9134,7 @@ interface IDWriteFontFace5 {
#define IDWriteFontFace5_AreCharactersLocal(This,characters,count,enqueue_if_not,are_local) (This)->lpVtbl->AreCharactersLocal(This,characters,count,enqueue_if_not,are_local)
#define IDWriteFontFace5_AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local) (This)->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local)
/*** IDWriteFontFace4 methods ***/
@ -71,14 +71,17 @@ index 427c39e3b..dd894a8b1 100644
#define IDWriteFontFace5_GetGlyphImageFormats(This) (This)->lpVtbl->GetGlyphImageFormats(This)
#define IDWriteFontFace5_GetGlyphImageData(This,glyph,ppem,format,data,context) (This)->lpVtbl->GetGlyphImageData(This,glyph,ppem,format,data,context)
#define IDWriteFontFace5_ReleaseGlyphImageData(This,context) (This)->lpVtbl->ReleaseGlyphImageData(This,context)
@@ -9270,8 +9270,8 @@ static FORCEINLINE HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* Thi
@@ -9283,8 +9283,8 @@ static __WIDL_INLINE HRESULT IDWriteFontFace5_AreGlyphsLocal(IDWriteFontFace5* T
return This->lpVtbl->AreGlyphsLocal(This,glyphs,count,enqueue_if_not,are_local);
}
/*** IDWriteFontFace4 methods ***/
-static FORCEINLINE HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
-static __WIDL_INLINE HRESULT IDWriteFontFace5_GetGlyphImageFormats_(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
- return This->lpVtbl->GetGlyphImageFormats_(This,glyph,ppem_first,ppem_last,formats);
+static FORCEINLINE HRESULT IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
+static __WIDL_INLINE HRESULT IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This,UINT16 glyph,UINT32 ppem_first,UINT32 ppem_last,DWRITE_GLYPH_IMAGE_FORMATS *formats) {
+ return This->lpVtbl->GetGlyphImageFormats(This,glyph,ppem_first,ppem_last,formats);
}
static FORCEINLINE DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) {
static __WIDL_INLINE DWRITE_GLYPH_IMAGE_FORMATS IDWriteFontFace5_GetGlyphImageFormats(IDWriteFontFace5* This) {
return This->lpVtbl->GetGlyphImageFormats(This);
--
2.25.1

Просмотреть файл

@ -1,17 +1,17 @@
From b415d3e199de9cb2dce6290721bcfc2871f33769 Mon Sep 17 00:00:00 2001
From: Tom Ritter <tom@ritter.vg>
Date: Thu, 2 Feb 2023 12:26:47 -0500
Subject: [PATCH 3/7] Fix enum int issues
---
mingw-w64-headers/include/windows.foundation.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mingw-w64-headers/include/windows.foundation.h b/mingw-w64-headers/include/windows.foundation.h
index 423d8fd30..a5a61eb76 100644
index fd66e27d3..7981f3380 100644
--- a/mingw-w64-headers/include/windows.foundation.h
+++ b/mingw-w64-headers/include/windows.foundation.h
@@ -72,7 +72,7 @@ extern "C" {
namespace ABI {
namespace Windows {
namespace Foundation {
- typedef enum PropertyType PropertyType;
+ typedef enum PropertyType : int PropertyType;
}
}
}
@@ -146,7 +146,7 @@ typedef struct __x_ABI_CWindows_CFoundation_CTimeSpan __x_ABI_CWindows_CFoundati
@@ -647,7 +647,7 @@ static __WIDL_INLINE HRESULT __x_ABI_CWindows_CFoundation_CIAsyncActionCompleted
namespace ABI {
namespace Windows {
namespace Foundation {
@ -20,3 +20,6 @@ index 423d8fd30..a5a61eb76 100644
PropertyType_Empty = 0,
PropertyType_UInt8 = 1,
PropertyType_Int16 = 2,
--
2.25.1

Просмотреть файл

@ -1,17 +1,17 @@
From ae5fe7a557873f05a4954f4b3a47e4b41053a406 Mon Sep 17 00:00:00 2001
From 753c3ad7018936ef9a9d2af8b75efbfa14c149b7 Mon Sep 17 00:00:00 2001
From: Tom Ritter <tom@ritter.vg>
Date: Tue, 29 Jun 2021 23:10:24 -0400
Subject: [PATCH] Add back the IUnknown_QI functions
Date: Thu, 2 Feb 2023 12:26:22 -0500
Subject: [PATCH 2/7] Add back the IUnknown_QI functions
---
mingw-w64-headers/include/unknwn.h | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)
diff --git a/mingw-w64-headers/include/unknwn.h b/mingw-w64-headers/include/unknwn.h
index d8c309071..968c41d61 100644
index f3ada04a2..f33e8f270 100644
--- a/mingw-w64-headers/include/unknwn.h
+++ b/mingw-w64-headers/include/unknwn.h
@@ -167,6 +167,29 @@ static FORCEINLINE ULONG IUnknown_Release(IUnknown* This) {
@@ -169,6 +169,29 @@ static __WIDL_INLINE ULONG IUnknown_Release(IUnknown* This) {
#endif

Просмотреть файл

@ -1,558 +1,21 @@
From 105a640ff423978987112d8f37edfbfc29c014f9 Mon Sep 17 00:00:00 2001
From f4abbc3a1891bc8f1c79923970d541695284e1dd Mon Sep 17 00:00:00 2001
From: Tom Ritter <tom@ritter.vg>
Date: Wed, 30 Jun 2021 09:25:45 -0400
Subject: [PATCH] winrt headers
Date: Thu, 2 Feb 2023 12:26:05 -0500
Subject: [PATCH 1/7] winrt patch
---
.../include/windows.foundation.metadata.h | 315 ++
.../include/windows.foundation.numerics.h | 204 ++
.../include/windows.graphics.directx.h | 343 ++
.../include/windows.graphics.effects.h | 184 +
.../include/windows.ui.composition.h | 3212 +++++++++++++++++
.../include/windows.ui.composition.interop.h | 31 +
mingw-w64-headers/include/windows.ui.core.h | 127 +
mingw-w64-headers/include/windows.ui.h | 72 +
8 files changed, 4488 insertions(+)
create mode 100644 mingw-w64-headers/include/windows.foundation.metadata.h
create mode 100644 mingw-w64-headers/include/windows.foundation.numerics.h
5 files changed, 3897 insertions(+)
create mode 100644 mingw-w64-headers/include/windows.graphics.directx.h
create mode 100644 mingw-w64-headers/include/windows.graphics.effects.h
create mode 100644 mingw-w64-headers/include/windows.ui.composition.h
create mode 100644 mingw-w64-headers/include/windows.ui.composition.interop.h
create mode 100644 mingw-w64-headers/include/windows.ui.core.h
create mode 100644 mingw-w64-headers/include/windows.ui.h
diff --git a/mingw-w64-headers/include/windows.foundation.metadata.h b/mingw-w64-headers/include/windows.foundation.metadata.h
new file mode 100644
index 000000000..132626999
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.metadata.h
@@ -0,0 +1,315 @@
+/*** Autogenerated by WIDL 4.4 from windows.foundation.metadata.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_foundation_metadata_h__
+#define __windows_foundation_metadata_h__
+
+/* Forward declarations */
+
+#ifndef ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_FWD_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_FWD_DEFINED__
+typedef interface __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics;
+#ifdef __cplusplus
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Metadata {
+ interface IApiInformationStatics;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*****************************************************************************
+ * IApiInformationStatics interface
+ */
+#ifndef ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_INTERFACE_DEFINED__
+#define ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID___x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics, 0x997439fe, 0xf681, 0x4a11, 0xb4,0x16, 0xc1,0x3a,0x47,0xe8,0xba,0x36);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Metadata {
+ MIDL_INTERFACE("997439fe-f681-4a11-b416-c13a47e8ba36")
+ IApiInformationStatics : public IInspectable
+ {
+ virtual HRESULT STDMETHODCALLTYPE IsTypePresent(
+ HSTRING typeName,
+ boolean *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsMethodPresent(
+ HSTRING typeName,
+ HSTRING methodName,
+ boolean *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsMethodPresentWithArity(
+ HSTRING typeName,
+ HSTRING methodName,
+ UINT32 inputParameterCount,
+ boolean *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsEventPresent(
+ HSTRING typeName,
+ HSTRING eventName,
+ boolean *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsPropertyPresent(
+ HSTRING typeName,
+ HSTRING propertyName,
+ boolean *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsReadOnlyPropertyPresent(
+ HSTRING typeName,
+ HSTRING propertyName,
+ boolean *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsWriteablePropertyPresent(
+ HSTRING typeName,
+ HSTRING propertyName,
+ boolean *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsEnumNamedValuePresent(
+ HSTRING enumTypeName,
+ HSTRING valueName,
+ boolean *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsApiContractPresentByMajor(
+ HSTRING contractName,
+ UINT16 majorVersion,
+ boolean *value) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsApiContractPresentByMajorAndMinor(
+ HSTRING contractName,
+ UINT16 majorVersion,
+ UINT16 minorVersion,
+ boolean *value) = 0;
+
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ABI::Windows::Foundation::Metadata::IApiInformationStatics, 0x997439fe, 0xf681, 0x4a11, 0xb4,0x16, 0xc1,0x3a,0x47,0xe8,0xba,0x36)
+#endif
+#else
+typedef struct __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStaticsVtbl {
+ BEGIN_INTERFACE
+
+ /*** IUnknown methods ***/
+ HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ REFIID riid,
+ void **ppvObject);
+
+ ULONG (STDMETHODCALLTYPE *AddRef)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This);
+
+ ULONG (STDMETHODCALLTYPE *Release)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This);
+
+ /*** IInspectable methods ***/
+ HRESULT (STDMETHODCALLTYPE *GetIids)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ ULONG *iidCount,
+ IID **iids);
+
+ HRESULT (STDMETHODCALLTYPE *GetRuntimeClassName)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING *className);
+
+ HRESULT (STDMETHODCALLTYPE *GetTrustLevel)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ TrustLevel *trustLevel);
+
+ /*** IApiInformationStatics methods ***/
+ HRESULT (STDMETHODCALLTYPE *IsTypePresent)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING typeName,
+ boolean *value);
+
+ HRESULT (STDMETHODCALLTYPE *IsMethodPresent)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING typeName,
+ HSTRING methodName,
+ boolean *value);
+
+ HRESULT (STDMETHODCALLTYPE *IsMethodPresentWithArity)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING typeName,
+ HSTRING methodName,
+ UINT32 inputParameterCount,
+ boolean *value);
+
+ HRESULT (STDMETHODCALLTYPE *IsEventPresent)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING typeName,
+ HSTRING eventName,
+ boolean *value);
+
+ HRESULT (STDMETHODCALLTYPE *IsPropertyPresent)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING typeName,
+ HSTRING propertyName,
+ boolean *value);
+
+ HRESULT (STDMETHODCALLTYPE *IsReadOnlyPropertyPresent)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING typeName,
+ HSTRING propertyName,
+ boolean *value);
+
+ HRESULT (STDMETHODCALLTYPE *IsWriteablePropertyPresent)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING typeName,
+ HSTRING propertyName,
+ boolean *value);
+
+ HRESULT (STDMETHODCALLTYPE *IsEnumNamedValuePresent)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING enumTypeName,
+ HSTRING valueName,
+ boolean *value);
+
+ HRESULT (STDMETHODCALLTYPE *IsApiContractPresentByMajor)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING contractName,
+ UINT16 majorVersion,
+ boolean *value);
+
+ HRESULT (STDMETHODCALLTYPE *IsApiContractPresentByMajorAndMinor)(
+ __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics *This,
+ HSTRING contractName,
+ UINT16 majorVersion,
+ UINT16 minorVersion,
+ boolean *value);
+
+ END_INTERFACE
+} __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStaticsVtbl;
+
+interface __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics {
+ CONST_VTBL __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStaticsVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_Release(This) (This)->lpVtbl->Release(This)
+/*** IInspectable methods ***/
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetIids(This,iidCount,iids) (This)->lpVtbl->GetIids(This,iidCount,iids)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetRuntimeClassName(This,className) (This)->lpVtbl->GetRuntimeClassName(This,className)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetTrustLevel(This,trustLevel) (This)->lpVtbl->GetTrustLevel(This,trustLevel)
+/*** IApiInformationStatics methods ***/
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsTypePresent(This,typeName,value) (This)->lpVtbl->IsTypePresent(This,typeName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsMethodPresent(This,typeName,methodName,value) (This)->lpVtbl->IsMethodPresent(This,typeName,methodName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsMethodPresentWithArity(This,typeName,methodName,inputParameterCount,value) (This)->lpVtbl->IsMethodPresentWithArity(This,typeName,methodName,inputParameterCount,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsEventPresent(This,typeName,eventName,value) (This)->lpVtbl->IsEventPresent(This,typeName,eventName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsPropertyPresent(This,typeName,propertyName,value) (This)->lpVtbl->IsPropertyPresent(This,typeName,propertyName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsReadOnlyPropertyPresent(This,typeName,propertyName,value) (This)->lpVtbl->IsReadOnlyPropertyPresent(This,typeName,propertyName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsWriteablePropertyPresent(This,typeName,propertyName,value) (This)->lpVtbl->IsWriteablePropertyPresent(This,typeName,propertyName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsEnumNamedValuePresent(This,enumTypeName,valueName,value) (This)->lpVtbl->IsEnumNamedValuePresent(This,enumTypeName,valueName,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsApiContractPresentByMajor(This,contractName,majorVersion,value) (This)->lpVtbl->IsApiContractPresentByMajor(This,contractName,majorVersion,value)
+#define __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsApiContractPresentByMajorAndMinor(This,contractName,majorVersion,minorVersion,value) (This)->lpVtbl->IsApiContractPresentByMajorAndMinor(This,contractName,majorVersion,minorVersion,value)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_QueryInterface(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,REFIID riid,void **ppvObject) {
+ return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_AddRef(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This) {
+ return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_Release(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This) {
+ return This->lpVtbl->Release(This);
+}
+/*** IInspectable methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetIids(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,ULONG *iidCount,IID **iids) {
+ return This->lpVtbl->GetIids(This,iidCount,iids);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetRuntimeClassName(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING *className) {
+ return This->lpVtbl->GetRuntimeClassName(This,className);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_GetTrustLevel(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,TrustLevel *trustLevel) {
+ return This->lpVtbl->GetTrustLevel(This,trustLevel);
+}
+/*** IApiInformationStatics methods ***/
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsTypePresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,boolean *value) {
+ return This->lpVtbl->IsTypePresent(This,typeName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsMethodPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING methodName,boolean *value) {
+ return This->lpVtbl->IsMethodPresent(This,typeName,methodName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsMethodPresentWithArity(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING methodName,UINT32 inputParameterCount,boolean *value) {
+ return This->lpVtbl->IsMethodPresentWithArity(This,typeName,methodName,inputParameterCount,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsEventPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING eventName,boolean *value) {
+ return This->lpVtbl->IsEventPresent(This,typeName,eventName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsPropertyPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING propertyName,boolean *value) {
+ return This->lpVtbl->IsPropertyPresent(This,typeName,propertyName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsReadOnlyPropertyPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING propertyName,boolean *value) {
+ return This->lpVtbl->IsReadOnlyPropertyPresent(This,typeName,propertyName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsWriteablePropertyPresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING typeName,HSTRING propertyName,boolean *value) {
+ return This->lpVtbl->IsWriteablePropertyPresent(This,typeName,propertyName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsEnumNamedValuePresent(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING enumTypeName,HSTRING valueName,boolean *value) {
+ return This->lpVtbl->IsEnumNamedValuePresent(This,enumTypeName,valueName,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsApiContractPresentByMajor(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING contractName,UINT16 majorVersion,boolean *value) {
+ return This->lpVtbl->IsApiContractPresentByMajor(This,contractName,majorVersion,value);
+}
+static FORCEINLINE HRESULT __x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_IsApiContractPresentByMajorAndMinor(__x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics* This,HSTRING contractName,UINT16 majorVersion,UINT16 minorVersion,boolean *value) {
+ return This->lpVtbl->IsApiContractPresentByMajorAndMinor(This,contractName,majorVersion,minorVersion,value);
+}
+#endif
+#endif
+
+#endif
+
+#endif /* ____x_ABI_CWindows_CFoundation_CMetadata_CIApiInformationStatics_INTERFACE_DEFINED__ */
+
+extern const __declspec(selectany) WCHAR RuntimeClass_Windows_Foundation_Metadata_ApiInformation[] = L"Windows.Foundation.Metadata.ApiInformation";
+/* Begin additional prototypes for all interfaces */
+
+ULONG __RPC_USER HSTRING_UserSize (ULONG *, ULONG, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserMarshal (ULONG *, unsigned char *, HSTRING *);
+unsigned char * __RPC_USER HSTRING_UserUnmarshal(ULONG *, unsigned char *, HSTRING *);
+void __RPC_USER HSTRING_UserFree (ULONG *, HSTRING *);
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_foundation_metadata_h__ */
diff --git a/mingw-w64-headers/include/windows.foundation.numerics.h b/mingw-w64-headers/include/windows.foundation.numerics.h
new file mode 100644
index 000000000..e20017ce6
--- /dev/null
+++ b/mingw-w64-headers/include/windows.foundation.numerics.h
@@ -0,0 +1,204 @@
+/*** Autogenerated by WIDL 4.4 from windows.foundation.numerics.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_foundation_numerics_h__
+#define __windows_foundation_numerics_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Numerics {
+typedef struct Vector2 Vector2;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Numerics {
+typedef struct Vector3 Vector3;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Numerics {
+typedef struct Matrix4x4 Matrix4x4;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Numerics {
+typedef struct Quaternion Quaternion;
+ }
+ }
+ }
+}
+#endif /* __cplusplus */
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Numerics {
+ struct Vector2 {
+ FLOAT X;
+ FLOAT Y;
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CNumerics_CVector2 {
+ FLOAT X;
+ FLOAT Y;
+};
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Numerics {
+ struct Vector3 {
+ FLOAT X;
+ FLOAT Y;
+ FLOAT Z;
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CNumerics_CVector3 {
+ FLOAT X;
+ FLOAT Y;
+ FLOAT Z;
+};
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Numerics {
+ struct Matrix4x4 {
+ FLOAT M11;
+ FLOAT M12;
+ FLOAT M13;
+ FLOAT M14;
+ FLOAT M21;
+ FLOAT M22;
+ FLOAT M23;
+ FLOAT M24;
+ FLOAT M31;
+ FLOAT M32;
+ FLOAT M33;
+ FLOAT M34;
+ FLOAT M41;
+ FLOAT M42;
+ FLOAT M43;
+ FLOAT M44;
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CNumerics_CMatrix4x4 {
+ FLOAT M11;
+ FLOAT M12;
+ FLOAT M13;
+ FLOAT M14;
+ FLOAT M21;
+ FLOAT M22;
+ FLOAT M23;
+ FLOAT M24;
+ FLOAT M31;
+ FLOAT M32;
+ FLOAT M33;
+ FLOAT M34;
+ FLOAT M41;
+ FLOAT M42;
+ FLOAT M43;
+ FLOAT M44;
+};
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace Foundation {
+ namespace Numerics {
+ struct Quaternion {
+ FLOAT X;
+ FLOAT Y;
+ FLOAT Z;
+ FLOAT W;
+ };
+ }
+ }
+ }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CFoundation_CNumerics_CQuaternion {
+ FLOAT X;
+ FLOAT Y;
+ FLOAT Z;
+ FLOAT W;
+};
+#endif
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_foundation_numerics_h__ */
diff --git a/mingw-w64-headers/include/windows.graphics.directx.h b/mingw-w64-headers/include/windows.graphics.directx.h
new file mode 100644
index 000000000..4bc4cb44b
@ -4480,84 +3943,6 @@ index 000000000..a3c16ac23
+#endif
+
+#endif /* __windows_ui_core_h__ */
diff --git a/mingw-w64-headers/include/windows.ui.h b/mingw-w64-headers/include/windows.ui.h
new file mode 100644
index 000000000..2e4abd547
--- /dev/null
+++ b/mingw-w64-headers/include/windows.ui.h
@@ -0,0 +1,72 @@
+/*** Autogenerated by WIDL 4.4 from windows.ui.idl - Do not edit ***/
+
+#ifdef _WIN32
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+#include <rpc.h>
+#include <rpcndr.h>
+#endif
+
+#ifndef COM_NO_WINDOWS_H
+#include <windows.h>
+#include <ole2.h>
+#endif
+
+#ifndef __windows_ui_h__
+#define __windows_ui_h__
+
+/* Forward declarations */
+
+/* Headers for imported files */
+
+#include <inspectable.h>
+#include <windows.foundation.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+} /* extern "C" */
+namespace ABI {
+ namespace Windows {
+ namespace UI {
+ struct Color {
+ BYTE A;
+ BYTE R;
+ BYTE G;
+ BYTE B;
+ };
+ }
+ }
+}
+extern "C" {
+#else
+struct __x_ABI_CWindows_CUI_CColor {
+ BYTE A;
+ BYTE R;
+ BYTE G;
+ BYTE B;
+};
+#endif
+
+#ifdef __cplusplus
+namespace ABI {
+ namespace Windows {
+ namespace UI {
+typedef struct Color Color;
+ }
+ }
+}
+#endif /* __cplusplus */
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __windows_ui_h__ */
--
2.25.1