headers: Actually import spatialaudioclient.idl.

I missed this in 3c737ed68c4, spotted by Biswapriyo Nath.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
diff --git a/mingw-w64-headers/Makefile.am b/mingw-w64-headers/Makefile.am
index b690199..309e688 100644
--- a/mingw-w64-headers/Makefile.am
+++ b/mingw-w64-headers/Makefile.am
@@ -181,6 +181,7 @@
   include/shldisp.idl \
   include/shobjidl.idl \
   include/shtypes.idl \
+  include/spatialaudioclient.idl \
   include/strmif.idl \
   include/structuredquerycondition.idl \
   include/taskschd.idl \
diff --git a/mingw-w64-headers/Makefile.in b/mingw-w64-headers/Makefile.in
index 51d68a2..8573b8f 100644
--- a/mingw-w64-headers/Makefile.in
+++ b/mingw-w64-headers/Makefile.in
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.1 from Makefile.am.
+# Makefile.in generated by automake 1.16.2 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2018 Free Software Foundation, Inc.
+# Copyright (C) 1994-2020 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -165,8 +165,8 @@
 	$(nodist_sdkshead_HEADERS) $(noinst_HEADERS) \
 	$(sechead_HEADERS) $(secsyshead_HEADERS) $(syshead_HEADERS) \
 	$(wrlhead_HEADERS) $(wrlwrappershead_HEADERS)
-am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
-	$(LISP)config.h.in
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+	config.h.in
 # Read a list of newline-separated strings from the standard input,
 # and print each of them once, without duplicates.  Input order is
 # *not* preserved.
@@ -302,6 +302,7 @@
 prefix = @prefix@
 program_transform_name = @program_transform_name@
 psdir = @psdir@
+runstatedir = @runstatedir@
 sbindir = @sbindir@
 sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
@@ -480,6 +481,7 @@
 @HAVE_WIDL_TRUE@  include/shldisp.idl \
 @HAVE_WIDL_TRUE@  include/shobjidl.idl \
 @HAVE_WIDL_TRUE@  include/shtypes.idl \
+@HAVE_WIDL_TRUE@  include/spatialaudioclient.idl \
 @HAVE_WIDL_TRUE@  include/strmif.idl \
 @HAVE_WIDL_TRUE@  include/structuredquerycondition.idl \
 @HAVE_WIDL_TRUE@  include/taskschd.idl \
@@ -990,6 +992,10 @@
 	tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
 	$(am__post_remove_distdir)
 
+dist-zstd: distdir
+	tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+	$(am__post_remove_distdir)
+
 dist-tarZ: distdir
 	@echo WARNING: "Support for distribution archives compressed with" \
 		       "legacy program 'compress' is deprecated." >&2
@@ -1032,6 +1038,8 @@
 	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
+	*.tar.zst*) \
+	  zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
 	esac
 	chmod -R a-w $(distdir)
 	chmod u+w $(distdir)
@@ -1225,15 +1233,16 @@
 .PHONY: CTAGS GTAGS TAGS all all-am am--refresh check check-am clean \
 	clean-cscope clean-generic cscope cscopelist-am ctags ctags-am \
 	dist dist-all dist-bzip2 dist-gzip dist-hook dist-lzip \
-	dist-shar dist-tarZ dist-xz dist-zip distcheck distclean \
-	distclean-generic distclean-hdr distclean-tags distcleancheck \
-	distdir distuninstallcheck dvi dvi-am html html-am info \
-	info-am install install-am install-baseheadHEADERS \
-	install-data install-data-am install-ddkheadHEADERS \
-	install-dvi install-dvi-am install-exec install-exec-am \
-	install-gdiplusheadHEADERS install-glheadHEADERS install-html \
-	install-html-am install-idlheadHEADERS install-info \
-	install-info-am install-khrheadHEADERS install-man \
+	dist-shar dist-tarZ dist-xz dist-zip dist-zstd distcheck \
+	distclean distclean-generic distclean-hdr distclean-tags \
+	distcleancheck distdir distuninstallcheck dvi dvi-am html \
+	html-am info info-am install install-am \
+	install-baseheadHEADERS install-data install-data-am \
+	install-ddkheadHEADERS install-dvi install-dvi-am install-exec \
+	install-exec-am install-gdiplusheadHEADERS \
+	install-glheadHEADERS install-html install-html-am \
+	install-idlheadHEADERS install-info install-info-am \
+	install-khrheadHEADERS install-man \
 	install-mingwhelperheadHEADERS install-nodist_sdksheadHEADERS \
 	install-pdf install-pdf-am install-ps install-ps-am \
 	install-secheadHEADERS install-secsysheadHEADERS install-strip \
diff --git a/mingw-w64-headers/aclocal.m4 b/mingw-w64-headers/aclocal.m4
index 96ca705..937454f 100644
--- a/mingw-w64-headers/aclocal.m4
+++ b/mingw-w64-headers/aclocal.m4
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.16.2 -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -20,7 +20,7 @@
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
 
-# Copyright (C) 2002-2018 Free Software Foundation, Inc.
+# Copyright (C) 2002-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -35,7 +35,7 @@
 [am__api_version='1.16'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.16.1], [],
+m4_if([$1], [1.16.2], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -51,14 +51,14 @@
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.1])dnl
+[AM_AUTOMAKE_VERSION([1.16.2])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -110,7 +110,7 @@
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -143,7 +143,7 @@
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -340,7 +340,7 @@
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -361,7 +361,7 @@
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2018 Free Software Foundation, Inc.
+# Copyright (C) 2003-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -383,7 +383,7 @@
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -418,7 +418,7 @@
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2018 Free Software Foundation, Inc.
+# Copyright (C) 1997-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -457,7 +457,7 @@
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -488,7 +488,7 @@
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2018 Free Software Foundation, Inc.
+# Copyright (C) 1996-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -569,7 +569,7 @@
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2018 Free Software Foundation, Inc.
+# Copyright (C) 2009-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -629,7 +629,7 @@
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
 ])
 
-# Copyright (C) 2001-2018 Free Software Foundation, Inc.
+# Copyright (C) 2001-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -657,7 +657,7 @@
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2018 Free Software Foundation, Inc.
+# Copyright (C) 2006-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -676,7 +676,7 @@
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2018 Free Software Foundation, Inc.
+# Copyright (C) 2004-2020 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
diff --git a/mingw-w64-headers/configure b/mingw-w64-headers/configure
index 8ad7fce..a06fe17 100755
--- a/mingw-w64-headers/configure
+++ b/mingw-w64-headers/configure
@@ -668,6 +668,7 @@
 docdir
 oldincludedir
 includedir
+runstatedir
 localstatedir
 sharedstatedir
 sysconfdir
@@ -741,6 +742,7 @@
 sysconfdir='${prefix}/etc'
 sharedstatedir='${prefix}/com'
 localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
 includedir='${prefix}/include'
 oldincludedir='/usr/include'
 docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
@@ -993,6 +995,15 @@
   | -silent | --silent | --silen | --sile | --sil)
     silent=yes ;;
 
+  -runstatedir | --runstatedir | --runstatedi | --runstated \
+  | --runstate | --runstat | --runsta | --runst | --runs \
+  | --run | --ru | --r)
+    ac_prev=runstatedir ;;
+  -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+  | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+  | --run=* | --ru=* | --r=*)
+    runstatedir=$ac_optarg ;;
+
   -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
     ac_prev=sbindir ;;
   -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@@ -1130,7 +1141,7 @@
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
+		libdir localedir mandir runstatedir
 do
   eval ac_val=\$$ac_var
   # Remove trailing slashes.
@@ -1283,6 +1294,7 @@
   --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
   --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
   --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --runstatedir=DIR       modifiable per-process data [LOCALSTATEDIR/run]
   --libdir=DIR            object code libraries [EPREFIX/lib]
   --includedir=DIR        C header files [PREFIX/include]
   --oldincludedir=DIR     C header files for non-gcc [/usr/include]
diff --git a/mingw-w64-headers/include/spatialaudioclient.h b/mingw-w64-headers/include/spatialaudioclient.h
new file mode 100644
index 0000000..abcd6f7
--- /dev/null
+++ b/mingw-w64-headers/include/spatialaudioclient.h
@@ -0,0 +1,335 @@
+/*** Autogenerated by WIDL 5.0-rc1 from include/spatialaudioclient.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 __spatialaudioclient_h__
+#define __spatialaudioclient_h__
+
+/* Forward declarations */
+
+#ifndef __IAudioFormatEnumerator_FWD_DEFINED__
+#define __IAudioFormatEnumerator_FWD_DEFINED__
+typedef interface IAudioFormatEnumerator IAudioFormatEnumerator;
+#ifdef __cplusplus
+interface IAudioFormatEnumerator;
+#endif /* __cplusplus */
+#endif
+
+#ifndef __ISpatialAudioClient_FWD_DEFINED__
+#define __ISpatialAudioClient_FWD_DEFINED__
+typedef interface ISpatialAudioClient ISpatialAudioClient;
+#ifdef __cplusplus
+interface ISpatialAudioClient;
+#endif /* __cplusplus */
+#endif
+
+/* Headers for imported files */
+
+#include <unknwn.h>
+#include <audioclient.h>
+#include <propsys.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef enum AudioObjectType {
+    AudioObjectType_None = 0,
+    AudioObjectType_Dynamic = 0x1,
+    AudioObjectType_FrontLeft = 0x2,
+    AudioObjectType_FrontRight = 0x4,
+    AudioObjectType_FrontCenter = 0x8,
+    AudioObjectType_LowFrequency = 0x10,
+    AudioObjectType_SideLeft = 0x20,
+    AudioObjectType_SideRight = 0x40,
+    AudioObjectType_BackLeft = 0x80,
+    AudioObjectType_BackRight = 0x100,
+    AudioObjectType_TopFrontLeft = 0x200,
+    AudioObjectType_TopFrontRight = 0x400,
+    AudioObjectType_TopBackLeft = 0x800,
+    AudioObjectType_TopBackRight = 0x1000,
+    AudioObjectType_BottomFrontLeft = 0x2000,
+    AudioObjectType_BottomFrontRight = 0x4000,
+    AudioObjectType_BottomBackLeft = 0x8000,
+    AudioObjectType_BottomBackRight = 0x10000,
+    AudioObjectType_BackCenter = 0x20000
+} AudioObjectType;
+/*****************************************************************************
+ * IAudioFormatEnumerator interface
+ */
+#ifndef __IAudioFormatEnumerator_INTERFACE_DEFINED__
+#define __IAudioFormatEnumerator_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAudioFormatEnumerator, 0xdcdaa858, 0x895a, 0x4a22, 0xa5,0xeb, 0x67,0xbd,0xa5,0x06,0x09,0x6d);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("dcdaa858-895a-4a22-a5eb-67bda506096d")
+IAudioFormatEnumerator : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetCount(
+        UINT32 *count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetFormat(
+        UINT32 index,
+        WAVEFORMATEX **format) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAudioFormatEnumerator, 0xdcdaa858, 0x895a, 0x4a22, 0xa5,0xeb, 0x67,0xbd,0xa5,0x06,0x09,0x6d)
+#endif
+#else
+typedef struct IAudioFormatEnumeratorVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAudioFormatEnumerator *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAudioFormatEnumerator *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAudioFormatEnumerator *This);
+
+    /*** IAudioFormatEnumerator methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetCount)(
+        IAudioFormatEnumerator *This,
+        UINT32 *count);
+
+    HRESULT (STDMETHODCALLTYPE *GetFormat)(
+        IAudioFormatEnumerator *This,
+        UINT32 index,
+        WAVEFORMATEX **format);
+
+    END_INTERFACE
+} IAudioFormatEnumeratorVtbl;
+
+interface IAudioFormatEnumerator {
+    CONST_VTBL IAudioFormatEnumeratorVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAudioFormatEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAudioFormatEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAudioFormatEnumerator_Release(This) (This)->lpVtbl->Release(This)
+/*** IAudioFormatEnumerator methods ***/
+#define IAudioFormatEnumerator_GetCount(This,count) (This)->lpVtbl->GetCount(This,count)
+#define IAudioFormatEnumerator_GetFormat(This,index,format) (This)->lpVtbl->GetFormat(This,index,format)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAudioFormatEnumerator_QueryInterface(IAudioFormatEnumerator* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAudioFormatEnumerator_AddRef(IAudioFormatEnumerator* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAudioFormatEnumerator_Release(IAudioFormatEnumerator* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAudioFormatEnumerator methods ***/
+static FORCEINLINE HRESULT IAudioFormatEnumerator_GetCount(IAudioFormatEnumerator* This,UINT32 *count) {
+    return This->lpVtbl->GetCount(This,count);
+}
+static FORCEINLINE HRESULT IAudioFormatEnumerator_GetFormat(IAudioFormatEnumerator* This,UINT32 index,WAVEFORMATEX **format) {
+    return This->lpVtbl->GetFormat(This,index,format);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAudioFormatEnumerator_INTERFACE_DEFINED__ */
+
+/*****************************************************************************
+ * ISpatialAudioClient interface
+ */
+#ifndef __ISpatialAudioClient_INTERFACE_DEFINED__
+#define __ISpatialAudioClient_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_ISpatialAudioClient, 0xbbf8e066, 0xaaaa, 0x49be, 0x9a,0x4d, 0xfd,0x2a,0x85,0x8e,0xa2,0x7f);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("bbf8e066-aaaa-49be-9a4d-fd2a858ea27f")
+ISpatialAudioClient : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE GetStaticObjectPosition(
+        AudioObjectType type,
+        float *x,
+        float *y,
+        float *z) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetNativeStaticObjectTypeMask(
+        AudioObjectType *mask) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMaxDynamicObjectCount(
+        UINT32 *value) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetSupportedAudioObjectFormatEnumerator(
+        IAudioFormatEnumerator **enumerator) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetMaxFrameCount(
+        const WAVEFORMATEX *format,
+        UINT32 *count) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsAudioObjectFormatSupported(
+        const WAVEFORMATEX *format) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE IsSpatialAudioStreamAvailable(
+        REFIID stream_uuid,
+        const PROPVARIANT *info) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE ActivateSpatialAudioStream(
+        const PROPVARIANT *params,
+        REFIID riid,
+        void **stream) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(ISpatialAudioClient, 0xbbf8e066, 0xaaaa, 0x49be, 0x9a,0x4d, 0xfd,0x2a,0x85,0x8e,0xa2,0x7f)
+#endif
+#else
+typedef struct ISpatialAudioClientVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        ISpatialAudioClient *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        ISpatialAudioClient *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        ISpatialAudioClient *This);
+
+    /*** ISpatialAudioClient methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetStaticObjectPosition)(
+        ISpatialAudioClient *This,
+        AudioObjectType type,
+        float *x,
+        float *y,
+        float *z);
+
+    HRESULT (STDMETHODCALLTYPE *GetNativeStaticObjectTypeMask)(
+        ISpatialAudioClient *This,
+        AudioObjectType *mask);
+
+    HRESULT (STDMETHODCALLTYPE *GetMaxDynamicObjectCount)(
+        ISpatialAudioClient *This,
+        UINT32 *value);
+
+    HRESULT (STDMETHODCALLTYPE *GetSupportedAudioObjectFormatEnumerator)(
+        ISpatialAudioClient *This,
+        IAudioFormatEnumerator **enumerator);
+
+    HRESULT (STDMETHODCALLTYPE *GetMaxFrameCount)(
+        ISpatialAudioClient *This,
+        const WAVEFORMATEX *format,
+        UINT32 *count);
+
+    HRESULT (STDMETHODCALLTYPE *IsAudioObjectFormatSupported)(
+        ISpatialAudioClient *This,
+        const WAVEFORMATEX *format);
+
+    HRESULT (STDMETHODCALLTYPE *IsSpatialAudioStreamAvailable)(
+        ISpatialAudioClient *This,
+        REFIID stream_uuid,
+        const PROPVARIANT *info);
+
+    HRESULT (STDMETHODCALLTYPE *ActivateSpatialAudioStream)(
+        ISpatialAudioClient *This,
+        const PROPVARIANT *params,
+        REFIID riid,
+        void **stream);
+
+    END_INTERFACE
+} ISpatialAudioClientVtbl;
+
+interface ISpatialAudioClient {
+    CONST_VTBL ISpatialAudioClientVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define ISpatialAudioClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define ISpatialAudioClient_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define ISpatialAudioClient_Release(This) (This)->lpVtbl->Release(This)
+/*** ISpatialAudioClient methods ***/
+#define ISpatialAudioClient_GetStaticObjectPosition(This,type,x,y,z) (This)->lpVtbl->GetStaticObjectPosition(This,type,x,y,z)
+#define ISpatialAudioClient_GetNativeStaticObjectTypeMask(This,mask) (This)->lpVtbl->GetNativeStaticObjectTypeMask(This,mask)
+#define ISpatialAudioClient_GetMaxDynamicObjectCount(This,value) (This)->lpVtbl->GetMaxDynamicObjectCount(This,value)
+#define ISpatialAudioClient_GetSupportedAudioObjectFormatEnumerator(This,enumerator) (This)->lpVtbl->GetSupportedAudioObjectFormatEnumerator(This,enumerator)
+#define ISpatialAudioClient_GetMaxFrameCount(This,format,count) (This)->lpVtbl->GetMaxFrameCount(This,format,count)
+#define ISpatialAudioClient_IsAudioObjectFormatSupported(This,format) (This)->lpVtbl->IsAudioObjectFormatSupported(This,format)
+#define ISpatialAudioClient_IsSpatialAudioStreamAvailable(This,stream_uuid,info) (This)->lpVtbl->IsSpatialAudioStreamAvailable(This,stream_uuid,info)
+#define ISpatialAudioClient_ActivateSpatialAudioStream(This,params,riid,stream) (This)->lpVtbl->ActivateSpatialAudioStream(This,params,riid,stream)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT ISpatialAudioClient_QueryInterface(ISpatialAudioClient* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG ISpatialAudioClient_AddRef(ISpatialAudioClient* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG ISpatialAudioClient_Release(ISpatialAudioClient* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** ISpatialAudioClient methods ***/
+static FORCEINLINE HRESULT ISpatialAudioClient_GetStaticObjectPosition(ISpatialAudioClient* This,AudioObjectType type,float *x,float *y,float *z) {
+    return This->lpVtbl->GetStaticObjectPosition(This,type,x,y,z);
+}
+static FORCEINLINE HRESULT ISpatialAudioClient_GetNativeStaticObjectTypeMask(ISpatialAudioClient* This,AudioObjectType *mask) {
+    return This->lpVtbl->GetNativeStaticObjectTypeMask(This,mask);
+}
+static FORCEINLINE HRESULT ISpatialAudioClient_GetMaxDynamicObjectCount(ISpatialAudioClient* This,UINT32 *value) {
+    return This->lpVtbl->GetMaxDynamicObjectCount(This,value);
+}
+static FORCEINLINE HRESULT ISpatialAudioClient_GetSupportedAudioObjectFormatEnumerator(ISpatialAudioClient* This,IAudioFormatEnumerator **enumerator) {
+    return This->lpVtbl->GetSupportedAudioObjectFormatEnumerator(This,enumerator);
+}
+static FORCEINLINE HRESULT ISpatialAudioClient_GetMaxFrameCount(ISpatialAudioClient* This,const WAVEFORMATEX *format,UINT32 *count) {
+    return This->lpVtbl->GetMaxFrameCount(This,format,count);
+}
+static FORCEINLINE HRESULT ISpatialAudioClient_IsAudioObjectFormatSupported(ISpatialAudioClient* This,const WAVEFORMATEX *format) {
+    return This->lpVtbl->IsAudioObjectFormatSupported(This,format);
+}
+static FORCEINLINE HRESULT ISpatialAudioClient_IsSpatialAudioStreamAvailable(ISpatialAudioClient* This,REFIID stream_uuid,const PROPVARIANT *info) {
+    return This->lpVtbl->IsSpatialAudioStreamAvailable(This,stream_uuid,info);
+}
+static FORCEINLINE HRESULT ISpatialAudioClient_ActivateSpatialAudioStream(ISpatialAudioClient* This,const PROPVARIANT *params,REFIID riid,void **stream) {
+    return This->lpVtbl->ActivateSpatialAudioStream(This,params,riid,stream);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __ISpatialAudioClient_INTERFACE_DEFINED__ */
+
+/* Begin additional prototypes for all interfaces */
+
+
+/* End additional prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __spatialaudioclient_h__ */
diff --git a/mingw-w64-headers/include/spatialaudioclient.idl b/mingw-w64-headers/include/spatialaudioclient.idl
new file mode 100644
index 0000000..16a1541
--- /dev/null
+++ b/mingw-w64-headers/include/spatialaudioclient.idl
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2020 Nikolay Sivov 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 "audioclient.idl";
+import "propsys.idl";
+
+typedef [v1_enum] enum AudioObjectType
+{
+    AudioObjectType_None             = 0,
+    AudioObjectType_Dynamic          = 0x00000001,
+    AudioObjectType_FrontLeft        = 0x00000002,
+    AudioObjectType_FrontRight       = 0x00000004,
+    AudioObjectType_FrontCenter      = 0x00000008,
+    AudioObjectType_LowFrequency     = 0x00000010,
+    AudioObjectType_SideLeft         = 0x00000020,
+    AudioObjectType_SideRight        = 0x00000040,
+    AudioObjectType_BackLeft         = 0x00000080,
+    AudioObjectType_BackRight        = 0x00000100,
+    AudioObjectType_TopFrontLeft     = 0x00000200,
+    AudioObjectType_TopFrontRight    = 0x00000400,
+    AudioObjectType_TopBackLeft      = 0x00000800,
+    AudioObjectType_TopBackRight     = 0x00001000,
+    AudioObjectType_BottomFrontLeft  = 0x00002000,
+    AudioObjectType_BottomFrontRight = 0x00004000,
+    AudioObjectType_BottomBackLeft   = 0x00008000,
+    AudioObjectType_BottomBackRight  = 0x00010000,
+    AudioObjectType_BackCenter       = 0x00020000,
+} AudioObjectType;
+
+[
+    object,
+    uuid(dcdaa858-895a-4a22-a5eb-67bda506096d),
+    pointer_default(unique),
+    local
+]
+interface IAudioFormatEnumerator : IUnknown
+{
+    HRESULT GetCount(
+        [out] UINT32 *count);
+
+    HRESULT GetFormat(
+        [in] UINT32 index,
+        [out] WAVEFORMATEX **format);
+}
+
+[
+    object,
+    uuid(bbf8e066-aaaa-49be-9a4d-fd2a858ea27f),
+    pointer_default(unique),
+    local
+]
+interface ISpatialAudioClient : IUnknown
+{
+    HRESULT GetStaticObjectPosition(
+        [in] AudioObjectType type,
+        [out] float *x,
+        [out] float *y,
+        [out] float *z);
+
+    HRESULT GetNativeStaticObjectTypeMask(
+        [out] AudioObjectType *mask);
+
+    HRESULT GetMaxDynamicObjectCount(
+        [out] UINT32 *value);
+
+    HRESULT GetSupportedAudioObjectFormatEnumerator(
+        [out] IAudioFormatEnumerator **enumerator);
+
+    HRESULT GetMaxFrameCount(
+        [in] WAVEFORMATEX const *format,
+        [out] UINT32 *count);
+
+    HRESULT IsAudioObjectFormatSupported(
+        [in] WAVEFORMATEX const *format);
+
+    HRESULT IsSpatialAudioStreamAvailable(
+        [in] REFIID stream_uuid,
+        [in] PROPVARIANT const *info);
+
+    HRESULT ActivateSpatialAudioStream(
+        [in] PROPVARIANT const *params,
+        [in] REFIID riid,
+        [out, iid_is(riid)] void **stream);
+}