include/audioclient: Regenerate from IDL

Signed-off-by: Liu Hao <lh_mouse@126.com>
diff --git a/mingw-w64-headers/include/audioclient.h b/mingw-w64-headers/include/audioclient.h
index 2f4dfed..2fe3017 100644
--- a/mingw-w64-headers/include/audioclient.h
+++ b/mingw-w64-headers/include/audioclient.h
@@ -1,4 +1,4 @@
-/*** Autogenerated by WIDL 6.0-rc1 from include/audioclient.idl - Do not edit ***/
+/*** Autogenerated by WIDL 5.19 from audioclient.idl - Do not edit ***/
 
 #ifdef _WIN32
 #ifndef __REQUIRED_RPCNDR_H_VERSION__
@@ -34,6 +34,14 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IAudioClient3_FWD_DEFINED__
+#define __IAudioClient3_FWD_DEFINED__
+typedef interface IAudioClient3 IAudioClient3;
+#ifdef __cplusplus
+interface IAudioClient3;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IAudioRenderClient_FWD_DEFINED__
 #define __IAudioRenderClient_FWD_DEFINED__
 typedef interface IAudioRenderClient IAudioRenderClient;
@@ -90,6 +98,14 @@
 #endif /* __cplusplus */
 #endif
 
+#ifndef __IAudioAmbisonicsControl_FWD_DEFINED__
+#define __IAudioAmbisonicsControl_FWD_DEFINED__
+typedef interface IAudioAmbisonicsControl IAudioAmbisonicsControl;
+#ifdef __cplusplus
+interface IAudioAmbisonicsControl;
+#endif /* __cplusplus */
+#endif
+
 #ifndef __IChannelAudioVolume_FWD_DEFINED__
 #define __IChannelAudioVolume_FWD_DEFINED__
 typedef interface IChannelAudioVolume IChannelAudioVolume;
@@ -144,6 +160,17 @@
     AUDCLNT_STREAMOPTIONS_MATCH_FORMAT = 0x2,
     AUDCLNT_STREAMOPTIONS_AMBISONICS = 0x4
 } AUDCLNT_STREAMOPTIONS;
+DEFINE_ENUM_FLAG_OPERATORS(AUDCLNT_STREAMOPTIONS);
+typedef enum AMBISONICS_TYPE {
+    AMBISONICS_TYPE_FULL3D = 0x0
+} AMBISONICS_TYPE;
+typedef enum AMBISONICS_CHANNEL_ORDERING {
+    AMBISONICS_CHANNEL_ORDERING_ACN = 0x0
+} AMBISONICS_CHANNEL_ORDERING;
+typedef enum AMBISONICS_NORMALIZATION {
+    AMBISONICS_NORMALIZATION_SN3D = 0x0,
+    AMBISONICS_NORMALIZATION_N3D = 0x1
+} AMBISONICS_NORMALIZATION;
 
 typedef struct AudioClientProperties {
     UINT32 cbSize;
@@ -151,6 +178,19 @@
     AUDIO_STREAM_CATEGORY eCategory;
     AUDCLNT_STREAMOPTIONS Options;
 } AudioClientProperties;
+typedef struct AudioClient3ActivationParams {
+    GUID tracingContextId;
+} AudioClient3ActivationParams;
+typedef struct AMBISONICS_PARAMS {
+    UINT32 u32Size;
+    UINT32 u32Version;
+    AMBISONICS_TYPE u32Type;
+    AMBISONICS_CHANNEL_ORDERING u32ChannelOrdering;
+    AMBISONICS_NORMALIZATION u32Normalization;
+    UINT32 u32Order;
+    UINT32 u32NumChannels;
+    UINT32 *pu32ChannelMap;
+} AMBISONICS_PARAMS;
 
 /*****************************************************************************
  * IAudioClient interface
@@ -578,6 +618,257 @@
 
 #endif  /* __IAudioClient2_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IAudioClient3 interface
+ */
+#ifndef __IAudioClient3_INTERFACE_DEFINED__
+#define __IAudioClient3_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAudioClient3, 0x7ed4ee07, 0x8e67, 0x4cd4, 0x8c,0x1a, 0x2b,0x7a,0x59,0x87,0xad,0x42);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("7ed4ee07-8e67-4cd4-8c1a-2b7a5987ad42")
+IAudioClient3 : public IAudioClient2
+{
+    virtual HRESULT STDMETHODCALLTYPE GetSharedModeEnginePeriod(
+        const WAVEFORMATEX *pFormat,
+        UINT32 *pDefaultPeriodInFrames,
+        UINT32 *pFundamentalPeriodInFrames,
+        UINT32 *pMinPeriodInFrames,
+        UINT32 *pMaxPeriodInFrames) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetCurrentSharedModeEnginePeriod(
+        WAVEFORMATEX **ppFormat,
+        UINT32 *pCurrentPeriodInFrames) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE InitializeSharedAudioStream(
+        DWORD StreamFlags,
+        UINT32 PeriodInFrames,
+        const WAVEFORMATEX *pFormat,
+        LPCGUID AudioSessionGuid) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAudioClient3, 0x7ed4ee07, 0x8e67, 0x4cd4, 0x8c,0x1a, 0x2b,0x7a,0x59,0x87,0xad,0x42)
+#endif
+#else
+typedef struct IAudioClient3Vtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAudioClient3 *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAudioClient3 *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAudioClient3 *This);
+
+    /*** IAudioClient methods ***/
+    HRESULT (STDMETHODCALLTYPE *Initialize)(
+        IAudioClient3 *This,
+        AUDCLNT_SHAREMODE ShareMode,
+        DWORD StreamFlags,
+        REFERENCE_TIME hnsBufferDuration,
+        REFERENCE_TIME hnsPeriodicity,
+        const WAVEFORMATEX *pFormat,
+        LPCGUID AudioSessionGuid);
+
+    HRESULT (STDMETHODCALLTYPE *GetBufferSize)(
+        IAudioClient3 *This,
+        UINT32 *pNumBufferFrames);
+
+    HRESULT (STDMETHODCALLTYPE *GetStreamLatency)(
+        IAudioClient3 *This,
+        REFERENCE_TIME *phnsLatency);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentPadding)(
+        IAudioClient3 *This,
+        UINT32 *pNumPaddingFrames);
+
+    HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
+        IAudioClient3 *This,
+        AUDCLNT_SHAREMODE ShareMode,
+        const WAVEFORMATEX *pFormat,
+        WAVEFORMATEX **ppClosestMatch);
+
+    HRESULT (STDMETHODCALLTYPE *GetMixFormat)(
+        IAudioClient3 *This,
+        WAVEFORMATEX **ppDeviceFormat);
+
+    HRESULT (STDMETHODCALLTYPE *GetDevicePeriod)(
+        IAudioClient3 *This,
+        REFERENCE_TIME *phnsDefaultDevicePeriod,
+        REFERENCE_TIME *phnsMinimumDevicePeriod);
+
+    HRESULT (STDMETHODCALLTYPE *Start)(
+        IAudioClient3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *Stop)(
+        IAudioClient3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *Reset)(
+        IAudioClient3 *This);
+
+    HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
+        IAudioClient3 *This,
+        HANDLE eventHandle);
+
+    HRESULT (STDMETHODCALLTYPE *GetService)(
+        IAudioClient3 *This,
+        REFIID riid,
+        void **ppv);
+
+    /*** IAudioClient2 methods ***/
+    HRESULT (STDMETHODCALLTYPE *IsOffloadCapable)(
+        IAudioClient3 *This,
+        AUDIO_STREAM_CATEGORY Category,
+        WINBOOL *pbOffloadCapable);
+
+    HRESULT (STDMETHODCALLTYPE *SetClientProperties)(
+        IAudioClient3 *This,
+        const AudioClientProperties *pProperties);
+
+    HRESULT (STDMETHODCALLTYPE *GetBufferSizeLimits)(
+        IAudioClient3 *This,
+        const WAVEFORMATEX *pFormat,
+        WINBOOL bEventDriven,
+        REFERENCE_TIME *phnsMinBufferDuration,
+        REFERENCE_TIME *phnsMaxBufferDuration);
+
+    /*** IAudioClient3 methods ***/
+    HRESULT (STDMETHODCALLTYPE *GetSharedModeEnginePeriod)(
+        IAudioClient3 *This,
+        const WAVEFORMATEX *pFormat,
+        UINT32 *pDefaultPeriodInFrames,
+        UINT32 *pFundamentalPeriodInFrames,
+        UINT32 *pMinPeriodInFrames,
+        UINT32 *pMaxPeriodInFrames);
+
+    HRESULT (STDMETHODCALLTYPE *GetCurrentSharedModeEnginePeriod)(
+        IAudioClient3 *This,
+        WAVEFORMATEX **ppFormat,
+        UINT32 *pCurrentPeriodInFrames);
+
+    HRESULT (STDMETHODCALLTYPE *InitializeSharedAudioStream)(
+        IAudioClient3 *This,
+        DWORD StreamFlags,
+        UINT32 PeriodInFrames,
+        const WAVEFORMATEX *pFormat,
+        LPCGUID AudioSessionGuid);
+
+    END_INTERFACE
+} IAudioClient3Vtbl;
+
+interface IAudioClient3 {
+    CONST_VTBL IAudioClient3Vtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAudioClient3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAudioClient3_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAudioClient3_Release(This) (This)->lpVtbl->Release(This)
+/*** IAudioClient methods ***/
+#define IAudioClient3_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid)
+#define IAudioClient3_GetBufferSize(This,pNumBufferFrames) (This)->lpVtbl->GetBufferSize(This,pNumBufferFrames)
+#define IAudioClient3_GetStreamLatency(This,phnsLatency) (This)->lpVtbl->GetStreamLatency(This,phnsLatency)
+#define IAudioClient3_GetCurrentPadding(This,pNumPaddingFrames) (This)->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames)
+#define IAudioClient3_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch)
+#define IAudioClient3_GetMixFormat(This,ppDeviceFormat) (This)->lpVtbl->GetMixFormat(This,ppDeviceFormat)
+#define IAudioClient3_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) (This)->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod)
+#define IAudioClient3_Start(This) (This)->lpVtbl->Start(This)
+#define IAudioClient3_Stop(This) (This)->lpVtbl->Stop(This)
+#define IAudioClient3_Reset(This) (This)->lpVtbl->Reset(This)
+#define IAudioClient3_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle)
+#define IAudioClient3_GetService(This,riid,ppv) (This)->lpVtbl->GetService(This,riid,ppv)
+/*** IAudioClient2 methods ***/
+#define IAudioClient3_IsOffloadCapable(This,Category,pbOffloadCapable) (This)->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable)
+#define IAudioClient3_SetClientProperties(This,pProperties) (This)->lpVtbl->SetClientProperties(This,pProperties)
+#define IAudioClient3_GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration) (This)->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration)
+/*** IAudioClient3 methods ***/
+#define IAudioClient3_GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames) (This)->lpVtbl->GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames)
+#define IAudioClient3_GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames) (This)->lpVtbl->GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames)
+#define IAudioClient3_InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid) (This)->lpVtbl->InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAudioClient3_QueryInterface(IAudioClient3* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAudioClient3_AddRef(IAudioClient3* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAudioClient3_Release(IAudioClient3* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAudioClient methods ***/
+static FORCEINLINE HRESULT IAudioClient3_Initialize(IAudioClient3* This,AUDCLNT_SHAREMODE ShareMode,DWORD StreamFlags,REFERENCE_TIME hnsBufferDuration,REFERENCE_TIME hnsPeriodicity,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) {
+    return This->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetBufferSize(IAudioClient3* This,UINT32 *pNumBufferFrames) {
+    return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetStreamLatency(IAudioClient3* This,REFERENCE_TIME *phnsLatency) {
+    return This->lpVtbl->GetStreamLatency(This,phnsLatency);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetCurrentPadding(IAudioClient3* This,UINT32 *pNumPaddingFrames) {
+    return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
+}
+static FORCEINLINE HRESULT IAudioClient3_IsFormatSupported(IAudioClient3* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
+    return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetMixFormat(IAudioClient3* This,WAVEFORMATEX **ppDeviceFormat) {
+    return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetDevicePeriod(IAudioClient3* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
+    return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
+}
+static FORCEINLINE HRESULT IAudioClient3_Start(IAudioClient3* This) {
+    return This->lpVtbl->Start(This);
+}
+static FORCEINLINE HRESULT IAudioClient3_Stop(IAudioClient3* This) {
+    return This->lpVtbl->Stop(This);
+}
+static FORCEINLINE HRESULT IAudioClient3_Reset(IAudioClient3* This) {
+    return This->lpVtbl->Reset(This);
+}
+static FORCEINLINE HRESULT IAudioClient3_SetEventHandle(IAudioClient3* This,HANDLE eventHandle) {
+    return This->lpVtbl->SetEventHandle(This,eventHandle);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetService(IAudioClient3* This,REFIID riid,void **ppv) {
+    return This->lpVtbl->GetService(This,riid,ppv);
+}
+/*** IAudioClient2 methods ***/
+static FORCEINLINE HRESULT IAudioClient3_IsOffloadCapable(IAudioClient3* This,AUDIO_STREAM_CATEGORY Category,WINBOOL *pbOffloadCapable) {
+    return This->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable);
+}
+static FORCEINLINE HRESULT IAudioClient3_SetClientProperties(IAudioClient3* This,const AudioClientProperties *pProperties) {
+    return This->lpVtbl->SetClientProperties(This,pProperties);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetBufferSizeLimits(IAudioClient3* This,const WAVEFORMATEX *pFormat,WINBOOL bEventDriven,REFERENCE_TIME *phnsMinBufferDuration,REFERENCE_TIME *phnsMaxBufferDuration) {
+    return This->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration);
+}
+/*** IAudioClient3 methods ***/
+static FORCEINLINE HRESULT IAudioClient3_GetSharedModeEnginePeriod(IAudioClient3* This,const WAVEFORMATEX *pFormat,UINT32 *pDefaultPeriodInFrames,UINT32 *pFundamentalPeriodInFrames,UINT32 *pMinPeriodInFrames,UINT32 *pMaxPeriodInFrames) {
+    return This->lpVtbl->GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames);
+}
+static FORCEINLINE HRESULT IAudioClient3_GetCurrentSharedModeEnginePeriod(IAudioClient3* This,WAVEFORMATEX **ppFormat,UINT32 *pCurrentPeriodInFrames) {
+    return This->lpVtbl->GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames);
+}
+static FORCEINLINE HRESULT IAudioClient3_InitializeSharedAudioStream(IAudioClient3* This,DWORD StreamFlags,UINT32 PeriodInFrames,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) {
+    return This->lpVtbl->InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAudioClient3_INTERFACE_DEFINED__ */
+
 
 /*****************************************************************************
  * IAudioRenderClient interface
@@ -1292,6 +1583,124 @@
 
 #endif  /* __IAudioStreamVolume_INTERFACE_DEFINED__ */
 
+/*****************************************************************************
+ * IAudioAmbisonicsControl interface
+ */
+#ifndef __IAudioAmbisonicsControl_INTERFACE_DEFINED__
+#define __IAudioAmbisonicsControl_INTERFACE_DEFINED__
+
+DEFINE_GUID(IID_IAudioAmbisonicsControl, 0x28724c91, 0xdf35, 0x4856, 0x9f,0x76, 0xd6,0xa2,0x64,0x13,0xf3,0xdf);
+#if defined(__cplusplus) && !defined(CINTERFACE)
+MIDL_INTERFACE("28724c91-df35-4856-9f76-d6a26413f3df")
+IAudioAmbisonicsControl : public IUnknown
+{
+    virtual HRESULT STDMETHODCALLTYPE SetData(
+        const AMBISONICS_PARAMS *pAmbisonicsParams,
+        UINT32 cbAmbisonicsParams) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetHeadTracking(
+        WINBOOL bEnableHeadTracking) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE GetHeadTracking(
+        WINBOOL *pbEnableHeadTracking) = 0;
+
+    virtual HRESULT STDMETHODCALLTYPE SetRotation(
+        float X,
+        float Y,
+        float Z,
+        float W) = 0;
+
+};
+#ifdef __CRT_UUID_DECL
+__CRT_UUID_DECL(IAudioAmbisonicsControl, 0x28724c91, 0xdf35, 0x4856, 0x9f,0x76, 0xd6,0xa2,0x64,0x13,0xf3,0xdf)
+#endif
+#else
+typedef struct IAudioAmbisonicsControlVtbl {
+    BEGIN_INTERFACE
+
+    /*** IUnknown methods ***/
+    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
+        IAudioAmbisonicsControl *This,
+        REFIID riid,
+        void **ppvObject);
+
+    ULONG (STDMETHODCALLTYPE *AddRef)(
+        IAudioAmbisonicsControl *This);
+
+    ULONG (STDMETHODCALLTYPE *Release)(
+        IAudioAmbisonicsControl *This);
+
+    /*** IAudioAmbisonicsControl methods ***/
+    HRESULT (STDMETHODCALLTYPE *SetData)(
+        IAudioAmbisonicsControl *This,
+        const AMBISONICS_PARAMS *pAmbisonicsParams,
+        UINT32 cbAmbisonicsParams);
+
+    HRESULT (STDMETHODCALLTYPE *SetHeadTracking)(
+        IAudioAmbisonicsControl *This,
+        WINBOOL bEnableHeadTracking);
+
+    HRESULT (STDMETHODCALLTYPE *GetHeadTracking)(
+        IAudioAmbisonicsControl *This,
+        WINBOOL *pbEnableHeadTracking);
+
+    HRESULT (STDMETHODCALLTYPE *SetRotation)(
+        IAudioAmbisonicsControl *This,
+        float X,
+        float Y,
+        float Z,
+        float W);
+
+    END_INTERFACE
+} IAudioAmbisonicsControlVtbl;
+
+interface IAudioAmbisonicsControl {
+    CONST_VTBL IAudioAmbisonicsControlVtbl* lpVtbl;
+};
+
+#ifdef COBJMACROS
+#ifndef WIDL_C_INLINE_WRAPPERS
+/*** IUnknown methods ***/
+#define IAudioAmbisonicsControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
+#define IAudioAmbisonicsControl_AddRef(This) (This)->lpVtbl->AddRef(This)
+#define IAudioAmbisonicsControl_Release(This) (This)->lpVtbl->Release(This)
+/*** IAudioAmbisonicsControl methods ***/
+#define IAudioAmbisonicsControl_SetData(This,pAmbisonicsParams,cbAmbisonicsParams) (This)->lpVtbl->SetData(This,pAmbisonicsParams,cbAmbisonicsParams)
+#define IAudioAmbisonicsControl_SetHeadTracking(This,bEnableHeadTracking) (This)->lpVtbl->SetHeadTracking(This,bEnableHeadTracking)
+#define IAudioAmbisonicsControl_GetHeadTracking(This,pbEnableHeadTracking) (This)->lpVtbl->GetHeadTracking(This,pbEnableHeadTracking)
+#define IAudioAmbisonicsControl_SetRotation(This,X,Y,Z,W) (This)->lpVtbl->SetRotation(This,X,Y,Z,W)
+#else
+/*** IUnknown methods ***/
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_QueryInterface(IAudioAmbisonicsControl* This,REFIID riid,void **ppvObject) {
+    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
+}
+static FORCEINLINE ULONG IAudioAmbisonicsControl_AddRef(IAudioAmbisonicsControl* This) {
+    return This->lpVtbl->AddRef(This);
+}
+static FORCEINLINE ULONG IAudioAmbisonicsControl_Release(IAudioAmbisonicsControl* This) {
+    return This->lpVtbl->Release(This);
+}
+/*** IAudioAmbisonicsControl methods ***/
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetData(IAudioAmbisonicsControl* This,const AMBISONICS_PARAMS *pAmbisonicsParams,UINT32 cbAmbisonicsParams) {
+    return This->lpVtbl->SetData(This,pAmbisonicsParams,cbAmbisonicsParams);
+}
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL bEnableHeadTracking) {
+    return This->lpVtbl->SetHeadTracking(This,bEnableHeadTracking);
+}
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_GetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL *pbEnableHeadTracking) {
+    return This->lpVtbl->GetHeadTracking(This,pbEnableHeadTracking);
+}
+static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetRotation(IAudioAmbisonicsControl* This,float X,float Y,float Z,float W) {
+    return This->lpVtbl->SetRotation(This,X,Y,Z,W);
+}
+#endif
+#endif
+
+#endif
+
+
+#endif  /* __IAudioAmbisonicsControl_INTERFACE_DEFINED__ */
+
 
 /*****************************************************************************
  * IChannelAudioVolume interface
@@ -1463,6 +1872,11 @@
 #define AUDCLNT_E_OFFLOAD_MODE_ONLY AUDCLNT_ERR(0x24)
 #define AUDCLNT_E_NONOFFLOAD_MODE_ONLY AUDCLNT_ERR(0x25)
 #define AUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x26)
+#define AUDCLNT_E_RAW_MODE_UNSUPPORTED AUDCLNT_ERR(0x027)
+#define AUDCLNT_E_ENGINE_PERIODICITY_LOCKED AUDCLNT_ERR(0x028)
+#define AUDCLNT_E_ENGINE_FORMAT_LOCKED AUDCLNT_ERR(0x029)
+#define AUDCLNT_E_HEADTRACKING_ENABLED AUDCLNT_ERR(0x030)
+#define AUDCLNT_E_HEADTRACKING_UNSUPPORTED AUDCLNT_ERR(0x040)
 #define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x1)
 #define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x2)
 #define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x3)