diff --git a/mingw-w64-headers/include/amstream.h b/mingw-w64-headers/include/amstream.h
index e25a0bb..18f3a66 100644
--- a/mingw-w64-headers/include/amstream.h
+++ b/mingw-w64-headers/include/amstream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/amstream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/amstream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/amvideo.h b/mingw-w64-headers/include/amvideo.h
index 5505bd4..b5c3a30 100644
--- a/mingw-w64-headers/include/amvideo.h
+++ b/mingw-w64-headers/include/amvideo.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/amvideo.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/amvideo.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/austream.h b/mingw-w64-headers/include/austream.h
index ec19fcd..db73094 100644
--- a/mingw-w64-headers/include/austream.h
+++ b/mingw-w64-headers/include/austream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/austream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/austream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/ctfutb.h b/mingw-w64-headers/include/ctfutb.h
index 9b84cbe..3b9f571 100644
--- a/mingw-w64-headers/include/ctfutb.h
+++ b/mingw-w64-headers/include/ctfutb.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/ctfutb.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/ctfutb.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3d10.h b/mingw-w64-headers/include/d3d10.h
index d8d87a2..0dc0b8d 100644
--- a/mingw-w64-headers/include/d3d10.h
+++ b/mingw-w64-headers/include/d3d10.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3d10.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3d10.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3d10_1.h b/mingw-w64-headers/include/d3d10_1.h
index 17d209b..ea3ace2 100644
--- a/mingw-w64-headers/include/d3d10_1.h
+++ b/mingw-w64-headers/include/d3d10_1.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3d10_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3d10_1.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3d10sdklayers.h b/mingw-w64-headers/include/d3d10sdklayers.h
index c29e1a9..ff49ad5 100644
--- a/mingw-w64-headers/include/d3d10sdklayers.h
+++ b/mingw-w64-headers/include/d3d10sdklayers.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3d10sdklayers.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3d10sdklayers.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3d11.h b/mingw-w64-headers/include/d3d11.h
index 1b0ab4b..26357df 100644
--- a/mingw-w64-headers/include/d3d11.h
+++ b/mingw-w64-headers/include/d3d11.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3d11.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3d11.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3d11_1.h b/mingw-w64-headers/include/d3d11_1.h
index 1a1f28b..c5ae60c 100644
--- a/mingw-w64-headers/include/d3d11_1.h
+++ b/mingw-w64-headers/include/d3d11_1.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3d11_1.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3d11_1.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3d11_2.h b/mingw-w64-headers/include/d3d11_2.h
index cfcc406..6a5256f 100644
--- a/mingw-w64-headers/include/d3d11_2.h
+++ b/mingw-w64-headers/include/d3d11_2.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3d11_2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3d11_2.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3d11_3.h b/mingw-w64-headers/include/d3d11_3.h
index 3e27938..91b4733 100644
--- a/mingw-w64-headers/include/d3d11_3.h
+++ b/mingw-w64-headers/include/d3d11_3.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3d11_3.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3d11_3.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3d11_4.h b/mingw-w64-headers/include/d3d11_4.h
index 93c8ca9..070f7de 100644
--- a/mingw-w64-headers/include/d3d11_4.h
+++ b/mingw-w64-headers/include/d3d11_4.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3d11_4.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3d11_4.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3d11sdklayers.h b/mingw-w64-headers/include/d3d11sdklayers.h
index 9fe04cf..93914fc 100644
--- a/mingw-w64-headers/include/d3d11sdklayers.h
+++ b/mingw-w64-headers/include/d3d11sdklayers.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3d11sdklayers.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3d11sdklayers.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/d3dcommon.h b/mingw-w64-headers/include/d3dcommon.h
index 0c2b670..51878cd 100644
--- a/mingw-w64-headers/include/d3dcommon.h
+++ b/mingw-w64-headers/include/d3dcommon.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/d3dcommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/d3dcommon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/ddstream.h b/mingw-w64-headers/include/ddstream.h
index 326316d..a40a734 100644
--- a/mingw-w64-headers/include/ddstream.h
+++ b/mingw-w64-headers/include/ddstream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/ddstream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/ddstream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/devicetopology.h b/mingw-w64-headers/include/devicetopology.h
index 82ded6c..cdee0bb 100644
--- a/mingw-w64-headers/include/devicetopology.h
+++ b/mingw-w64-headers/include/devicetopology.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/devicetopology.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/devicetopology.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/downloadmgr.h b/mingw-w64-headers/include/downloadmgr.h
index 971f841..13de992 100644
--- a/mingw-w64-headers/include/downloadmgr.h
+++ b/mingw-w64-headers/include/downloadmgr.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/downloadmgr.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/downloadmgr.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/drmexternals.h b/mingw-w64-headers/include/drmexternals.h
index 5db65a3..ba8bdb8 100644
--- a/mingw-w64-headers/include/drmexternals.h
+++ b/mingw-w64-headers/include/drmexternals.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/drmexternals.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/drmexternals.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dvdif.h b/mingw-w64-headers/include/dvdif.h
index 10bcd40..87d2d28 100644
--- a/mingw-w64-headers/include/dvdif.h
+++ b/mingw-w64-headers/include/dvdif.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dvdif.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dvdif.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgi.h b/mingw-w64-headers/include/dxgi.h
index 70f3618..5d63f2c 100644
--- a/mingw-w64-headers/include/dxgi.h
+++ b/mingw-w64-headers/include/dxgi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgi1_2.h b/mingw-w64-headers/include/dxgi1_2.h
index 38dbd3e..d02abaf 100644
--- a/mingw-w64-headers/include/dxgi1_2.h
+++ b/mingw-w64-headers/include/dxgi1_2.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgi1_2.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgi1_2.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgi1_3.h b/mingw-w64-headers/include/dxgi1_3.h
index 9d45ab2..fba5385 100644
--- a/mingw-w64-headers/include/dxgi1_3.h
+++ b/mingw-w64-headers/include/dxgi1_3.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgi1_3.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgi1_3.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgi1_4.h b/mingw-w64-headers/include/dxgi1_4.h
index 828e883..af262b4 100644
--- a/mingw-w64-headers/include/dxgi1_4.h
+++ b/mingw-w64-headers/include/dxgi1_4.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgi1_4.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgi1_4.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgi1_5.h b/mingw-w64-headers/include/dxgi1_5.h
index af4ed32..b1b8528 100644
--- a/mingw-w64-headers/include/dxgi1_5.h
+++ b/mingw-w64-headers/include/dxgi1_5.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgi1_5.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgi1_5.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgi1_6.h b/mingw-w64-headers/include/dxgi1_6.h
index 1e1e544..b8dc911 100644
--- a/mingw-w64-headers/include/dxgi1_6.h
+++ b/mingw-w64-headers/include/dxgi1_6.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgi1_6.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgi1_6.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgicommon.h b/mingw-w64-headers/include/dxgicommon.h
index 126a616..6e28018 100644
--- a/mingw-w64-headers/include/dxgicommon.h
+++ b/mingw-w64-headers/include/dxgicommon.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgicommon.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgicommon.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgidebug.h b/mingw-w64-headers/include/dxgidebug.h
index 20b2cdb..5b453b2 100644
--- a/mingw-w64-headers/include/dxgidebug.h
+++ b/mingw-w64-headers/include/dxgidebug.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgidebug.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgidebug.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgiformat.h b/mingw-w64-headers/include/dxgiformat.h
index 79fc891..d05bfed 100644
--- a/mingw-w64-headers/include/dxgiformat.h
+++ b/mingw-w64-headers/include/dxgiformat.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgiformat.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgiformat.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxgitype.h b/mingw-w64-headers/include/dxgitype.h
index ca2681b..a9f11fd 100644
--- a/mingw-w64-headers/include/dxgitype.h
+++ b/mingw-w64-headers/include/dxgitype.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxgitype.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxgitype.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/dxva2api.h b/mingw-w64-headers/include/dxva2api.h
index fc7313f..93fb0ec 100644
--- a/mingw-w64-headers/include/dxva2api.h
+++ b/mingw-w64-headers/include/dxva2api.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/dxva2api.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/dxva2api.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -1557,24 +1557,25 @@
 #endif
 static inline DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha(void) {
   DXVA2_Fixed32 f32;
-  f32.ll = 0 + (1 << 16);
+  *(LONG *)&f32 = 0 + (1 << 16);
   return f32;
 }
 
 static inline DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha(void) {
-  DXVA2_Fixed32 f32;
-  f32.ll = 0;
+  DXVA2_Fixed32 f32 = {{{ 0 }}};
   return f32;
 }
 
 static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) {
-  return (float)f32.Value + (float)f32.Fraction / (1 << 16);
+  struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;
+  return (float)_f32->Value + (float)_f32->Fraction / (1 << 16);
 }
 
 static inline DXVA2_Fixed32 DXVA2FloatToFixed(float f) {
   DXVA2_Fixed32 f32;
-  f32.Value    = ((ULONG) (f * (1 << 16))) >> 16;
-  f32.Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;
+  struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;
+  _f32->Value    = ((ULONG) (f * (1 << 16))) >> 16;
+  _f32->Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;
   return f32;
 }
 /* Begin additional prototypes for all interfaces */
diff --git a/mingw-w64-headers/include/dxva2api.idl b/mingw-w64-headers/include/dxva2api.idl
index eb4a265..04e620b 100644
--- a/mingw-w64-headers/include/dxva2api.idl
+++ b/mingw-w64-headers/include/dxva2api.idl
@@ -805,23 +805,24 @@
 
 cpp_quote("static inline DXVA2_Fixed32 DXVA2_Fixed32OpaqueAlpha(void) {")
 cpp_quote("  DXVA2_Fixed32 f32;")
-cpp_quote("  f32.ll = 0 + (1 << 16);")
+cpp_quote("  *(LONG *)&f32 = 0 + (1 << 16);")
 cpp_quote("  return f32;")
 cpp_quote("}")
 cpp_quote("")
 cpp_quote("static inline DXVA2_Fixed32 DXVA2_Fixed32TransparentAlpha(void) {")
-cpp_quote("  DXVA2_Fixed32 f32;")
-cpp_quote("  f32.ll = 0;")
+cpp_quote("  DXVA2_Fixed32 f32 = {{{ 0 }}};")
 cpp_quote("  return f32;")
 cpp_quote("}")
 cpp_quote("")
 cpp_quote("static inline float DXVA2FixedToFloat(DXVA2_Fixed32 f32) {")
-cpp_quote("  return (float)f32.Value + (float)f32.Fraction / (1 << 16);")
+cpp_quote("  struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;")
+cpp_quote("  return (float)_f32->Value + (float)_f32->Fraction / (1 << 16);")
 cpp_quote("}")
 cpp_quote("")
 cpp_quote("static inline DXVA2_Fixed32 DXVA2FloatToFixed(float f) {")
 cpp_quote("  DXVA2_Fixed32 f32;")
-cpp_quote("  f32.Value    = ((ULONG) (f * (1 << 16))) >> 16;")
-cpp_quote("  f32.Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;")
+cpp_quote("  struct { USHORT Fraction; SHORT Value; } *_f32 = (void *)&f32;")
+cpp_quote("  _f32->Value    = ((ULONG) (f * (1 << 16))) >> 16;")
+cpp_quote("  _f32->Fraction = ((ULONG) (f * (1 << 16))) & 0xFFFF;")
 cpp_quote("  return f32;")
 cpp_quote("}")
diff --git a/mingw-w64-headers/include/endpointvolume.h b/mingw-w64-headers/include/endpointvolume.h
index c14649d..4714318 100644
--- a/mingw-w64-headers/include/endpointvolume.h
+++ b/mingw-w64-headers/include/endpointvolume.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/endpointvolume.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/endpointvolume.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/exdisp.h b/mingw-w64-headers/include/exdisp.h
index c2c1f5a..534d1d7 100644
--- a/mingw-w64-headers/include/exdisp.h
+++ b/mingw-w64-headers/include/exdisp.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/exdisp.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/exdisp.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/fusion.h b/mingw-w64-headers/include/fusion.h
index 764e8f9..9149016 100644
--- a/mingw-w64-headers/include/fusion.h
+++ b/mingw-w64-headers/include/fusion.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/fusion.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/fusion.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/icftypes.h b/mingw-w64-headers/include/icftypes.h
index 06aeff7..6ae5949 100644
--- a/mingw-w64-headers/include/icftypes.h
+++ b/mingw-w64-headers/include/icftypes.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/icftypes.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/icftypes.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/mediaobj.h b/mingw-w64-headers/include/mediaobj.h
index 5ee6e6e..8059a8b 100644
--- a/mingw-w64-headers/include/mediaobj.h
+++ b/mingw-w64-headers/include/mediaobj.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/mediaobj.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/mediaobj.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/mmdeviceapi.h b/mingw-w64-headers/include/mmdeviceapi.h
index 6ad52d0..df5addb 100644
--- a/mingw-w64-headers/include/mmdeviceapi.h
+++ b/mingw-w64-headers/include/mmdeviceapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/mmdeviceapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/mmdeviceapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -66,22 +66,6 @@
 #endif /* __cplusplus */
 #endif
 
-#ifndef __IActivateAudioInterfaceAsyncOperation_FWD_DEFINED__
-#define __IActivateAudioInterfaceAsyncOperation_FWD_DEFINED__
-typedef interface IActivateAudioInterfaceAsyncOperation IActivateAudioInterfaceAsyncOperation;
-#ifdef __cplusplus
-interface IActivateAudioInterfaceAsyncOperation;
-#endif /* __cplusplus */
-#endif
-
-#ifndef __IActivateAudioInterfaceCompletionHandler_FWD_DEFINED__
-#define __IActivateAudioInterfaceCompletionHandler_FWD_DEFINED__
-typedef interface IActivateAudioInterfaceCompletionHandler IActivateAudioInterfaceCompletionHandler;
-#ifdef __cplusplus
-interface IActivateAudioInterfaceCompletionHandler;
-#endif /* __cplusplus */
-#endif
-
 #ifndef __MMDeviceEnumerator_FWD_DEFINED__
 #define __MMDeviceEnumerator_FWD_DEFINED__
 #ifdef __cplusplus
@@ -785,169 +769,6 @@
 
 #endif  /* __IMMDeviceActivator_INTERFACE_DEFINED__ */
 
-DEFINE_GUID(DEVINTERFACE_AUDIO_CAPTURE, 0x2eef81be, 0x33fa, 0x4800, 0x96, 0x70, 0x1c, 0xd4, 0x74, 0x97, 0x2c, 0x3f);
-DEFINE_GUID(DEVINTERFACE_AUDIO_RENDER , 0xe6327cad, 0xdcec, 0x4949, 0xae, 0x8a, 0x99, 0x1e, 0x97, 0x6a, 0x79, 0xd2);
-DEFINE_GUID(DEVINTERFACE_MIDI_OUTPUT  , 0x6dc23320, 0xab33, 0x4ce4, 0x80, 0xd4, 0xbb, 0xb3, 0xeb, 0xbf, 0x28, 0x14);
-DEFINE_GUID(DEVINTERFACE_MIDI_INPUT   , 0x504be32c, 0xccf6, 0x4d2c, 0xb7, 0x3f, 0x6f, 0x8b, 0x37, 0x47, 0xe2, 0x2b);
-
-/*****************************************************************************
- * IActivateAudioInterfaceAsyncOperation interface
- */
-#ifndef __IActivateAudioInterfaceAsyncOperation_INTERFACE_DEFINED__
-#define __IActivateAudioInterfaceAsyncOperation_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IActivateAudioInterfaceAsyncOperation, 0x72a22d78, 0xcde4, 0x431d, 0xb8,0xcc, 0x84,0x3a,0x71,0x19,0x9b,0x6d);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("72a22d78-cde4-431d-b8cc-843a71199b6d")
-IActivateAudioInterfaceAsyncOperation : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE GetActivateResult(
-        HRESULT *activateResult,
-        IUnknown **activatedInterface) = 0;
-
-};
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IActivateAudioInterfaceAsyncOperation, 0x72a22d78, 0xcde4, 0x431d, 0xb8,0xcc, 0x84,0x3a,0x71,0x19,0x9b,0x6d)
-#endif
-#else
-typedef struct IActivateAudioInterfaceAsyncOperationVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IActivateAudioInterfaceAsyncOperation *This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IActivateAudioInterfaceAsyncOperation *This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IActivateAudioInterfaceAsyncOperation *This);
-
-    /*** IActivateAudioInterfaceAsyncOperation methods ***/
-    HRESULT (STDMETHODCALLTYPE *GetActivateResult)(
-        IActivateAudioInterfaceAsyncOperation *This,
-        HRESULT *activateResult,
-        IUnknown **activatedInterface);
-
-    END_INTERFACE
-} IActivateAudioInterfaceAsyncOperationVtbl;
-
-interface IActivateAudioInterfaceAsyncOperation {
-    CONST_VTBL IActivateAudioInterfaceAsyncOperationVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define IActivateAudioInterfaceAsyncOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IActivateAudioInterfaceAsyncOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IActivateAudioInterfaceAsyncOperation_Release(This) (This)->lpVtbl->Release(This)
-/*** IActivateAudioInterfaceAsyncOperation methods ***/
-#define IActivateAudioInterfaceAsyncOperation_GetActivateResult(This,activateResult,activatedInterface) (This)->lpVtbl->GetActivateResult(This,activateResult,activatedInterface)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT IActivateAudioInterfaceAsyncOperation_QueryInterface(IActivateAudioInterfaceAsyncOperation* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG IActivateAudioInterfaceAsyncOperation_AddRef(IActivateAudioInterfaceAsyncOperation* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG IActivateAudioInterfaceAsyncOperation_Release(IActivateAudioInterfaceAsyncOperation* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** IActivateAudioInterfaceAsyncOperation methods ***/
-static FORCEINLINE HRESULT IActivateAudioInterfaceAsyncOperation_GetActivateResult(IActivateAudioInterfaceAsyncOperation* This,HRESULT *activateResult,IUnknown **activatedInterface) {
-    return This->lpVtbl->GetActivateResult(This,activateResult,activatedInterface);
-}
-#endif
-#endif
-
-#endif
-
-
-#endif  /* __IActivateAudioInterfaceAsyncOperation_INTERFACE_DEFINED__ */
-
-/*****************************************************************************
- * IActivateAudioInterfaceCompletionHandler interface
- */
-#ifndef __IActivateAudioInterfaceCompletionHandler_INTERFACE_DEFINED__
-#define __IActivateAudioInterfaceCompletionHandler_INTERFACE_DEFINED__
-
-DEFINE_GUID(IID_IActivateAudioInterfaceCompletionHandler, 0x41d949ab, 0x9862, 0x444a, 0x80,0xf6, 0xc2,0x61,0x33,0x4d,0xa5,0xeb);
-#if defined(__cplusplus) && !defined(CINTERFACE)
-MIDL_INTERFACE("41d949ab-9862-444a-80f6-c261334da5eb")
-IActivateAudioInterfaceCompletionHandler : public IUnknown
-{
-    virtual HRESULT STDMETHODCALLTYPE ActivateCompleted(
-        IActivateAudioInterfaceAsyncOperation *activateOperation) = 0;
-
-};
-#ifdef __CRT_UUID_DECL
-__CRT_UUID_DECL(IActivateAudioInterfaceCompletionHandler, 0x41d949ab, 0x9862, 0x444a, 0x80,0xf6, 0xc2,0x61,0x33,0x4d,0xa5,0xeb)
-#endif
-#else
-typedef struct IActivateAudioInterfaceCompletionHandlerVtbl {
-    BEGIN_INTERFACE
-
-    /*** IUnknown methods ***/
-    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
-        IActivateAudioInterfaceCompletionHandler *This,
-        REFIID riid,
-        void **ppvObject);
-
-    ULONG (STDMETHODCALLTYPE *AddRef)(
-        IActivateAudioInterfaceCompletionHandler *This);
-
-    ULONG (STDMETHODCALLTYPE *Release)(
-        IActivateAudioInterfaceCompletionHandler *This);
-
-    /*** IActivateAudioInterfaceCompletionHandler methods ***/
-    HRESULT (STDMETHODCALLTYPE *ActivateCompleted)(
-        IActivateAudioInterfaceCompletionHandler *This,
-        IActivateAudioInterfaceAsyncOperation *activateOperation);
-
-    END_INTERFACE
-} IActivateAudioInterfaceCompletionHandlerVtbl;
-
-interface IActivateAudioInterfaceCompletionHandler {
-    CONST_VTBL IActivateAudioInterfaceCompletionHandlerVtbl* lpVtbl;
-};
-
-#ifdef COBJMACROS
-#ifndef WIDL_C_INLINE_WRAPPERS
-/*** IUnknown methods ***/
-#define IActivateAudioInterfaceCompletionHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
-#define IActivateAudioInterfaceCompletionHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
-#define IActivateAudioInterfaceCompletionHandler_Release(This) (This)->lpVtbl->Release(This)
-/*** IActivateAudioInterfaceCompletionHandler methods ***/
-#define IActivateAudioInterfaceCompletionHandler_ActivateCompleted(This,activateOperation) (This)->lpVtbl->ActivateCompleted(This,activateOperation)
-#else
-/*** IUnknown methods ***/
-static FORCEINLINE HRESULT IActivateAudioInterfaceCompletionHandler_QueryInterface(IActivateAudioInterfaceCompletionHandler* This,REFIID riid,void **ppvObject) {
-    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
-}
-static FORCEINLINE ULONG IActivateAudioInterfaceCompletionHandler_AddRef(IActivateAudioInterfaceCompletionHandler* This) {
-    return This->lpVtbl->AddRef(This);
-}
-static FORCEINLINE ULONG IActivateAudioInterfaceCompletionHandler_Release(IActivateAudioInterfaceCompletionHandler* This) {
-    return This->lpVtbl->Release(This);
-}
-/*** IActivateAudioInterfaceCompletionHandler methods ***/
-static FORCEINLINE HRESULT IActivateAudioInterfaceCompletionHandler_ActivateCompleted(IActivateAudioInterfaceCompletionHandler* This,IActivateAudioInterfaceAsyncOperation *activateOperation) {
-    return This->lpVtbl->ActivateCompleted(This,activateOperation);
-}
-#endif
-#endif
-
-#endif
-
-
-#endif  /* __IActivateAudioInterfaceCompletionHandler_INTERFACE_DEFINED__ */
-
-HRESULT WINAPI ActivateAudioInterfaceAsync(LPCWSTR deviceInterfacePath, REFIID riid, PROPVARIANT *activationParams, IActivateAudioInterfaceCompletionHandler *completionHandler, IActivateAudioInterfaceAsyncOperation **activationOperation);
-
 typedef struct _AudioExtensionParams {
     LPARAM AddPageParam;
     IMMDevice *pEndPoint;
diff --git a/mingw-w64-headers/include/mmdeviceapi.idl b/mingw-w64-headers/include/mmdeviceapi.idl
index 4a7d632..d1fb6ae 100644
--- a/mingw-w64-headers/include/mmdeviceapi.idl
+++ b/mingw-w64-headers/include/mmdeviceapi.idl
@@ -229,44 +229,6 @@
     );
 }
 
-cpp_quote("DEFINE_GUID(DEVINTERFACE_AUDIO_CAPTURE, 0x2eef81be, 0x33fa, 0x4800, 0x96, 0x70, 0x1c, 0xd4, 0x74, 0x97, 0x2c, 0x3f);")
-cpp_quote("DEFINE_GUID(DEVINTERFACE_AUDIO_RENDER , 0xe6327cad, 0xdcec, 0x4949, 0xae, 0x8a, 0x99, 0x1e, 0x97, 0x6a, 0x79, 0xd2);")
-cpp_quote("DEFINE_GUID(DEVINTERFACE_MIDI_OUTPUT  , 0x6dc23320, 0xab33, 0x4ce4, 0x80, 0xd4, 0xbb, 0xb3, 0xeb, 0xbf, 0x28, 0x14);")
-cpp_quote("DEFINE_GUID(DEVINTERFACE_MIDI_INPUT   , 0x504be32c, 0xccf6, 0x4d2c, 0xb7, 0x3f, 0x6f, 0x8b, 0x37, 0x47, 0xe2, 0x2b);")
-cpp_quote("")
-
-[
-    object,
-    local,
-    uuid(72a22d78-cde4-431d-b8cc-843a71199b6d),
-    nonextensible,
-    pointer_default(unique)
-]
-interface IActivateAudioInterfaceAsyncOperation : IUnknown
-{
-    [id(1)] HRESULT GetActivateResult(
-        [out] HRESULT *activateResult,
-        [out] IUnknown **activatedInterface
-    );
-}
-
-[
-    object,
-    local,
-    uuid(41d949ab-9862-444a-80f6-c261334da5eb),
-    nonextensible,
-    pointer_default(unique)
-]
-interface IActivateAudioInterfaceCompletionHandler : IUnknown
-{
-    [id(1)] HRESULT ActivateCompleted(
-        [out] IActivateAudioInterfaceAsyncOperation *activateOperation
-    );
-}
-
-cpp_quote("HRESULT WINAPI ActivateAudioInterfaceAsync(LPCWSTR deviceInterfacePath, REFIID riid, PROPVARIANT *activationParams, IActivateAudioInterfaceCompletionHandler *completionHandler, IActivateAudioInterfaceAsyncOperation **activationOperation);")
-cpp_quote("")
-
 typedef struct _AudioExtensionParams
 {
     LPARAM AddPageParam;
diff --git a/mingw-w64-headers/include/mmstream.h b/mingw-w64-headers/include/mmstream.h
index 7f440ae..a1f7317 100644
--- a/mingw-w64-headers/include/mmstream.h
+++ b/mingw-w64-headers/include/mmstream.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/mmstream.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/mmstream.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/mscoree.h b/mingw-w64-headers/include/mscoree.h
index 8952ece..111760b 100644
--- a/mingw-w64-headers/include/mscoree.h
+++ b/mingw-w64-headers/include/mscoree.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/mscoree.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/mscoree.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/msctf.h b/mingw-w64-headers/include/msctf.h
index 89b200e..7fd473f 100644
--- a/mingw-w64-headers/include/msctf.h
+++ b/mingw-w64-headers/include/msctf.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/msctf.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/msctf.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/netfw.h b/mingw-w64-headers/include/netfw.h
index f9f6d04..681b40b 100644
--- a/mingw-w64-headers/include/netfw.h
+++ b/mingw-w64-headers/include/netfw.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/netfw.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/netfw.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/netlistmgr.h b/mingw-w64-headers/include/netlistmgr.h
index e7dd841..c304c49 100644
--- a/mingw-w64-headers/include/netlistmgr.h
+++ b/mingw-w64-headers/include/netlistmgr.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/netlistmgr.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/netlistmgr.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/objectarray.h b/mingw-w64-headers/include/objectarray.h
index d2771bc..9eef5b6 100644
--- a/mingw-w64-headers/include/objectarray.h
+++ b/mingw-w64-headers/include/objectarray.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/objectarray.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/objectarray.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/optary.h b/mingw-w64-headers/include/optary.h
index 15b35e1..30fdf8c 100644
--- a/mingw-w64-headers/include/optary.h
+++ b/mingw-w64-headers/include/optary.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/optary.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/optary.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/qedit.h b/mingw-w64-headers/include/qedit.h
index 1f63f9c..6a8d3ea 100644
--- a/mingw-w64-headers/include/qedit.h
+++ b/mingw-w64-headers/include/qedit.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/qedit.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/qedit.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/spatialaudioclient.h b/mingw-w64-headers/include/spatialaudioclient.h
index 2edf8d3..16f2ddf 100644
--- a/mingw-w64-headers/include/spatialaudioclient.h
+++ b/mingw-w64-headers/include/spatialaudioclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/spatialaudioclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/spatialaudioclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/taskschd.h b/mingw-w64-headers/include/taskschd.h
index d11bb34..94de76c 100644
--- a/mingw-w64-headers/include/taskschd.h
+++ b/mingw-w64-headers/include/taskschd.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/taskschd.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/taskschd.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/thumbcache.h b/mingw-w64-headers/include/thumbcache.h
index fef656b..6ba9c58 100644
--- a/mingw-w64-headers/include/thumbcache.h
+++ b/mingw-w64-headers/include/thumbcache.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/thumbcache.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/thumbcache.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/uiautomationclient.h b/mingw-w64-headers/include/uiautomationclient.h
index de9f059..018763c 100644
--- a/mingw-w64-headers/include/uiautomationclient.h
+++ b/mingw-w64-headers/include/uiautomationclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/uiautomationclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/uiautomationclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/uiautomationcore.h b/mingw-w64-headers/include/uiautomationcore.h
index d8e13b2..1fed5a6 100644
--- a/mingw-w64-headers/include/uiautomationcore.h
+++ b/mingw-w64-headers/include/uiautomationcore.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/uiautomationcore.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/uiautomationcore.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/urlhist.h b/mingw-w64-headers/include/urlhist.h
index ab87683..e514dde 100644
--- a/mingw-w64-headers/include/urlhist.h
+++ b/mingw-w64-headers/include/urlhist.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/urlhist.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/urlhist.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/vmr9.h b/mingw-w64-headers/include/vmr9.h
index 15ed516..f5ca4df 100644
--- a/mingw-w64-headers/include/vmr9.h
+++ b/mingw-w64-headers/include/vmr9.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/vmr9.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/vmr9.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/wincodec.h b/mingw-w64-headers/include/wincodec.h
index 5f5f8f0..1a4b46f 100644
--- a/mingw-w64-headers/include/wincodec.h
+++ b/mingw-w64-headers/include/wincodec.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/wincodec.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/wincodec.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -266,6 +266,14 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IWICWineDecoder_FWD_DEFINED__
+#define __IWICWineDecoder_FWD_DEFINED__
+typedef interface IWICWineDecoder IWICWineDecoder;
+#ifdef __cplusplus
+interface IWICWineDecoder;
+#endif /* __cplusplus */
+#endif
+
 /* Headers for imported files */
 
 #include <wtypes.h>
@@ -6086,6 +6094,85 @@
 
 #endif  /* __IWICDdsFrameDecode_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IWICWineDecoder interface
+ */
+#ifndef __IWICWineDecoder_INTERFACE_DEFINED__
+#define __IWICWineDecoder_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IWICWineDecoder, 0xb9bd430d, 0x28a8, 0x41d3, 0xa1,0xf5, 0xf3,0x6e,0xe0,0x28,0x40,0xbf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("b9bd430d-28a8-41d3-a1f5-f36ee02840bf")
+IWICWineDecoder : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE Initialize(
+        IStream *stream,
+        WICDecodeOptions options) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IWICWineDecoder, 0xb9bd430d, 0x28a8, 0x41d3, 0xa1,0xf5, 0xf3,0x6e,0xe0,0x28,0x40,0xbf)
+#endif
+#else
+typedef struct IWICWineDecoderVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IWICWineDecoder *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IWICWineDecoder *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IWICWineDecoder *This);
+
+    /*** IWICWineDecoder methods ***/
+    HRESULT (STDMETHODCALLTYPE *Initialize)(
+        IWICWineDecoder *This,
+        IStream *stream,
+        WICDecodeOptions options);
+
+    END_INTERFACE
+} IWICWineDecoderVtbl;
+
+interface IWICWineDecoder {
+    CONST_VTBL IWICWineDecoderVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IWICWineDecoder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IWICWineDecoder_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IWICWineDecoder_Release(This) (This)->lpVtbl->Release(This)
+/*** IWICWineDecoder methods ***/
+#define IWICWineDecoder_Initialize(This,stream,options) (This)->lpVtbl->Initialize(This,stream,options)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IWICWineDecoder_QueryInterface(IWICWineDecoder* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IWICWineDecoder_AddRef(IWICWineDecoder* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IWICWineDecoder_Release(IWICWineDecoder* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IWICWineDecoder methods ***/
+static FORCEINLINE HRESULT IWICWineDecoder_Initialize(IWICWineDecoder* This,IStream *stream,WICDecodeOptions options) {
+    return This->lpVtbl->Initialize(This,stream,options);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IWICWineDecoder_INTERFACE_DEFINED__ */
+
 HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst);
 HRESULT WINAPI WICCreateBitmapFromSection(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, IWICBitmap **bitmap);
 HRESULT WINAPI WICCreateBitmapFromSectionEx(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, WICSectionAccessLevel access, IWICBitmap **bitmap);
diff --git a/mingw-w64-headers/include/wincodec.idl b/mingw-w64-headers/include/wincodec.idl
index e64d9ed..88e183d 100644
--- a/mingw-w64-headers/include/wincodec.idl
+++ b/mingw-w64-headers/include/wincodec.idl
@@ -1216,6 +1216,16 @@
         [out, size_is(bufferSize)] BYTE *buffer);
 };
 
+[
+    object,
+    uuid(b9bd430d-28a8-41d3-a1f5-f36ee02840bf)
+]
+interface IWICWineDecoder : IUnknown
+{
+    HRESULT Initialize(
+        [in] IStream *stream,
+        [in] WICDecodeOptions options);
+};
 
 cpp_quote("HRESULT WINAPI WICConvertBitmapSource(REFWICPixelFormatGUID dstFormat, IWICBitmapSource *pISrc, IWICBitmapSource **ppIDst);")
 cpp_quote("HRESULT WINAPI WICCreateBitmapFromSection(UINT width, UINT height, REFWICPixelFormatGUID format, HANDLE section, UINT stride, UINT offset, IWICBitmap **bitmap);")
diff --git a/mingw-w64-headers/include/wincodecsdk.h b/mingw-w64-headers/include/wincodecsdk.h
index 691543d..9d89632 100644
--- a/mingw-w64-headers/include/wincodecsdk.h
+++ b/mingw-w64-headers/include/wincodecsdk.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/wincodecsdk.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/wincodecsdk.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/winhttp.h b/mingw-w64-headers/include/winhttp.h
index 84a60f8..a5f3823 100644
--- a/mingw-w64-headers/include/winhttp.h
+++ b/mingw-w64-headers/include/winhttp.h
@@ -762,6 +762,54 @@
     ULONGLONG rgullStats[WinHttpRequestStatMax];
 } WINHTTP_REQUEST_STATS, *PWINHTTP_REQUEST_STATS;
 
+typedef enum _WINHTTP_WEB_SOCKET_OPERATION
+{
+    WINHTTP_WEB_SOCKET_SEND_OPERATION     = 0,
+    WINHTTP_WEB_SOCKET_RECEIVE_OPERATION  = 1,
+    WINHTTP_WEB_SOCKET_CLOSE_OPERATION    = 2,
+    WINHTTP_WEB_SOCKET_SHUTDOWN_OPERATION = 3
+} WINHTTP_WEB_SOCKET_OPERATION;
+
+typedef enum _WINHTTP_WEB_SOCKET_BUFFER_TYPE
+{
+    WINHTTP_WEB_SOCKET_BINARY_MESSAGE_BUFFER_TYPE  = 0,
+    WINHTTP_WEB_SOCKET_BINARY_FRAGMENT_BUFFER_TYPE = 1,
+    WINHTTP_WEB_SOCKET_UTF8_MESSAGE_BUFFER_TYPE    = 2,
+    WINHTTP_WEB_SOCKET_UTF8_FRAGMENT_BUFFER_TYPE   = 3,
+    WINHTTP_WEB_SOCKET_CLOSE_BUFFER_TYPE           = 4
+} WINHTTP_WEB_SOCKET_BUFFER_TYPE;
+
+typedef enum _WINHTTP_WEB_SOCKET_CLOSE_STATUS
+{
+    WINHTTP_WEB_SOCKET_SUCCESS_CLOSE_STATUS                = 1000,
+    WINHTTP_WEB_SOCKET_ENDPOINT_TERMINATED_CLOSE_STATUS    = 1001,
+    WINHTTP_WEB_SOCKET_PROTOCOL_ERROR_CLOSE_STATUS         = 1002,
+    WINHTTP_WEB_SOCKET_INVALID_DATA_TYPE_CLOSE_STATUS      = 1003,
+    WINHTTP_WEB_SOCKET_EMPTY_CLOSE_STATUS                  = 1005,
+    WINHTTP_WEB_SOCKET_ABORTED_CLOSE_STATUS                = 1006,
+    WINHTTP_WEB_SOCKET_INVALID_PAYLOAD_CLOSE_STATUS        = 1007,
+    WINHTTP_WEB_SOCKET_POLICY_VIOLATION_CLOSE_STATUS       = 1008,
+    WINHTTP_WEB_SOCKET_MESSAGE_TOO_BIG_CLOSE_STATUS        = 1009,
+    WINHTTP_WEB_SOCKET_UNSUPPORTED_EXTENSIONS_CLOSE_STATUS = 1010,
+    WINHTTP_WEB_SOCKET_SERVER_ERROR_CLOSE_STATUS           = 1011,
+    WINHTTP_WEB_SOCKET_SECURE_HANDSHAKE_ERROR_CLOSE_STATUS = 1015
+} WINHTTP_WEB_SOCKET_CLOSE_STATUS;
+
+typedef struct _WINHTTP_WEB_SOCKET_ASYNC_RESULT
+{
+    WINHTTP_ASYNC_RESULT AsyncResult;
+    WINHTTP_WEB_SOCKET_OPERATION Operation;
+} WINHTTP_WEB_SOCKET_ASYNC_RESULT;
+
+typedef struct _WINHTTP_WEB_SOCKET_STATUS
+{
+    DWORD dwBytesTransferred;
+    WINHTTP_WEB_SOCKET_BUFFER_TYPE eBufferType;
+} WINHTTP_WEB_SOCKET_STATUS;
+
+#define WINHTTP_WEB_SOCKET_MAX_CLOSE_REASON_LENGTH   123
+#define WINHTTP_WEB_SOCKET_MIN_KEEPALIVE_VALUE     15000
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -805,6 +853,12 @@
 WINBOOL     WINAPI WinHttpSetTimeouts(HINTERNET,int,int,int,int);
 WINBOOL     WINAPI WinHttpTimeFromSystemTime(const SYSTEMTIME *,LPWSTR);
 WINBOOL     WINAPI WinHttpTimeToSystemTime(LPCWSTR,SYSTEMTIME*);
+DWORD       WINAPI WinHttpWebSocketClose(HINTERNET,USHORT,void *,DWORD);
+HINTERNET   WINAPI WinHttpWebSocketCompleteUpgrade(HINTERNET,DWORD_PTR);
+DWORD       WINAPI WinHttpWebSocketQueryCloseStatus(HINTERNET,USHORT*,void*,DWORD,DWORD*);
+DWORD       WINAPI WinHttpWebSocketReceive(HINTERNET,void*,DWORD,DWORD*,WINHTTP_WEB_SOCKET_BUFFER_TYPE*);
+DWORD       WINAPI WinHttpWebSocketSend(HINTERNET,WINHTTP_WEB_SOCKET_BUFFER_TYPE,void*,DWORD);
+DWORD       WINAPI WinHttpWebSocketShutdown(HINTERNET,USHORT,void*,DWORD);
 WINBOOL     WINAPI WinHttpWriteData(HINTERNET,LPCVOID,DWORD,LPDWORD);
 DWORD       WINAPI WinHttpWriteProxySettings(HINTERNET,WINBOOL,WINHTTP_PROXY_SETTINGS*);
 
diff --git a/mingw-w64-headers/include/wmdrmsdk.h b/mingw-w64-headers/include/wmdrmsdk.h
index 14d7b68..79c5c93 100644
--- a/mingw-w64-headers/include/wmdrmsdk.h
+++ b/mingw-w64-headers/include/wmdrmsdk.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/wmdrmsdk.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/wmdrmsdk.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/wmsbuffer.h b/mingw-w64-headers/include/wmsbuffer.h
index d3b2673..be22fb7 100644
--- a/mingw-w64-headers/include/wmsbuffer.h
+++ b/mingw-w64-headers/include/wmsbuffer.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/wmsbuffer.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/wmsbuffer.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/wmsdkidl.h b/mingw-w64-headers/include/wmsdkidl.h
index 55e7314..b90c874 100644
--- a/mingw-w64-headers/include/wmsdkidl.h
+++ b/mingw-w64-headers/include/wmsdkidl.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/wmsdkidl.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/wmsdkidl.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/wpcapi.h b/mingw-w64-headers/include/wpcapi.h
index 6c164fa..34e5e15 100644
--- a/mingw-w64-headers/include/wpcapi.h
+++ b/mingw-w64-headers/include/wpcapi.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/wpcapi.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/wpcapi.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
diff --git a/mingw-w64-headers/include/xmllite.h b/mingw-w64-headers/include/xmllite.h
index f9e66d0..d45b215 100644
--- a/mingw-w64-headers/include/xmllite.h
+++ b/mingw-w64-headers/include/xmllite.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 5.8 from include/xmllite.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.13 from include/xmllite.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
