diff --git a/mingw-w64-headers/include/dwrite_3.idl b/mingw-w64-headers/include/dwrite_3.idl
index 1b10454..0db2de7 100644
--- a/mingw-w64-headers/include/dwrite_3.idl
+++ b/mingw-w64-headers/include/dwrite_3.idl
@@ -562,7 +562,7 @@
         UINT32 num_values);
     UINT32 GetFontAxisValueCount();
     HRESULT GetFontAxisValues(
-        DWRITE_FONT_AXIS_VALUE const *axis_values,
+        DWRITE_FONT_AXIS_VALUE *axis_values,
         UINT32 num_values);
     DWRITE_AUTOMATIC_FONT_AXES GetAutomaticFontAxes();
     HRESULT SetAutomaticFontAxes(DWRITE_AUTOMATIC_FONT_AXES axes);
diff --git a/mingw-w64-headers/include/wmpids.h b/mingw-w64-headers/include/wmpids.h
new file mode 100644
index 0000000..2ae1d5c
--- /dev/null
+++ b/mingw-w64-headers/include/wmpids.h
@@ -0,0 +1,71 @@
+/*
+ * 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
+ */
+
+/* WMPCoreEvents */
+#define DISPID_WMPCOREEVENT_OPENSTATECHANGE     5001
+#define DISPID_WMPCOREEVENT_STATUSCHANGE        5002
+
+#define DISPID_WMPCOREEVENT_PLAYSTATECHANGE     5101
+#define DISPID_WMPCOREEVENT_AUDIOLANGUAGECHANGE 5102
+
+#define DISPID_WMPCOREEVENT_ENDOFSTREAM         5201
+#define DISPID_WMPCOREEVENT_POSITIONCHANGE      5202
+#define DISPID_WMPCOREEVENT_MARKERHIT           5203
+#define DISPID_WMPCOREEVENT_DURATIONUNITCHANGE  5204
+
+#define DISPID_WMPCOREEVENT_SCRIPTCOMMAND       5301
+
+#define DISPID_WMPCOREEVENT_DISCONNECT          5401
+#define DISPID_WMPCOREEVENT_BUFFERING           5402
+#define DISPID_WMPCOREEVENT_NEWSTREAM           5403
+
+#define DISPID_WMPCOREEVENT_ERROR               5501
+
+#define DISPID_WMPCOREEVENT_WARNING             5601
+
+#define DISPID_WMPCOREEVENT_CDROMMEDIACHANGE    5701
+
+#define DISPID_WMPCOREEVENT_PLAYLISTCHANGE                         5801
+#define DISPID_WMPCOREEVENT_MEDIACHANGE                            5802
+#define DISPID_WMPCOREEVENT_CURRENTMEDIAITEMAVAILABLE              5803
+#define DISPID_WMPCOREEVENT_CURRENTPLAYLISTCHANGE                  5804
+#define DISPID_WMPCOREEVENT_CURRENTPLAYLISTITEMAVAILABLE           5805
+#define DISPID_WMPCOREEVENT_CURRENTITEMCHANGE                      5806
+#define DISPID_WMPCOREEVENT_MEDIACOLLECTIONCHANGE                  5807
+#define DISPID_WMPCOREEVENT_MEDIACOLLECTIONATTRIBUTESTRINGADDED    5808
+#define DISPID_WMPCOREEVENT_MEDIACOLLECTIONATTRIBUTESTRINGREMOVED  5809
+#define DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONCHANGE               5810
+#define DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONPLAYLISTADDED        5811
+#define DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONPLAYLISTREMOVED      5812
+#define DISPID_WMPCOREEVENT_PLAYLISTCOLLECTIONPLAYLISTSETASDELETED 5818
+#define DISPID_WMPCOREEVENT_MODECHANGE                             5819
+#define DISPID_WMPCOREEVENT_MEDIACOLLECTIONATTRIBUTESTRINGCHANGED  5820
+#define DISPID_WMPCOREEVENT_MEDIAERROR                             5821
+#define DISPID_WMPCOREEVENT_DOMAINCHANGE                           5822
+#define DISPID_WMPCOREEVENT_OPENPLAYLISTSWITCH                     5823
+
+#define DISPID_WMPOCXEVENT_SWITCHEDTOPLAYERAPPLICATION 6501
+#define DISPID_WMPOCXEVENT_SWITCHEDTOCONTROL           6502
+#define DISPID_WMPOCXEVENT_PLAYERDOCKEDSTATECHANGE     6503
+#define DISPID_WMPOCXEVENT_PLAYERRECONNECT             6504
+#define DISPID_WMPOCXEVENT_CLICK                       6505
+#define DISPID_WMPOCXEVENT_DOUBLECLICK                 6506
+#define DISPID_WMPOCXEVENT_KEYDOWN                     6507
+#define DISPID_WMPOCXEVENT_KEYPRESS                    6508
+#define DISPID_WMPOCXEVENT_KEYUP                       6509
+#define DISPID_WMPOCXEVENT_MOUSEDOWN                   6510
+#define DISPID_WMPOCXEVENT_MOUSEMOVE                   6511
+#define DISPID_WMPOCXEVENT_MOUSEUP                     6512
diff --git a/mingw-w64-headers/include/wmprealestate.idl b/mingw-w64-headers/include/wmprealestate.idl
new file mode 100644
index 0000000..948ace5
--- /dev/null
+++ b/mingw-w64-headers/include/wmprealestate.idl
@@ -0,0 +1,43 @@
+/*
+ * 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
+ */
+
+import "unknwn.idl";
+import "ocidl.idl";
+import "mfidl.idl";
+
+[
+    odl,
+    uuid(6d6cf803-1ec0-4c8d-b3ca-f18e27282074),
+    oleautomation
+]
+interface IWMPVideoRenderConfig : IUnknown
+{
+    [propput] HRESULT presenterActivate([in] IMFActivate *activate);
+}
+
+[
+    odl,
+    uuid(959506c1-0314-4ec5-9e61-8528db5e5478),
+    oleautomation
+]
+interface IWMPRenderConfig : IUnknown
+{
+    [propput] HRESULT inProcOnly([in] BOOL fInProc);
+
+    [propget] HRESULT inProcOnly([out, retval] BOOL *pfInProc);
+}
diff --git a/mingw-w64-headers/include/wmpservices.idl b/mingw-w64-headers/include/wmpservices.idl
new file mode 100644
index 0000000..3c3ac47
--- /dev/null
+++ b/mingw-w64-headers/include/wmpservices.idl
@@ -0,0 +1,34 @@
+/*
+ * 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
+ */
+
+import "oaidl.idl";
+import "ocidl.idl";
+
+cpp_quote("#define WMPGC_FLAGS_SUPPRESS_DIALOGS 0x00000002")
+
+[
+    odl,
+    uuid(bfb377e5-c594-4369-a970-de896d5ece74),
+    oleautomation
+]
+interface IWMPGraphCreation : IUnknown
+{
+    HRESULT GraphCreationPreRender([in] IUnknown *filter_graph, [in] IUnknown *reserved);
+    HRESULT GraphCreationPostRender([in] IUnknown *filter_graph);
+    HRESULT GetGraphCreationFlags([out, retval] DWORD *flags);
+}
diff --git a/mingw-w64-headers/include/wmsdkidl.idl b/mingw-w64-headers/include/wmsdkidl.idl
index 1e3e711..f6b4c3a 100644
--- a/mingw-w64-headers/include/wmsdkidl.idl
+++ b/mingw-w64-headers/include/wmsdkidl.idl
@@ -1093,7 +1093,7 @@
 
 [
     object,
-    uuid(faed3d21-1b6b-4af7-8bc6-3e189bbc187b),
+    uuid(faed3d21-1b6b-4af7-8cb6-3e189bbc187b),
     pointer_default( unique ),
     local
 ]
