|  | /*** Autogenerated by WIDL 6.4 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 __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__ | 
|  | #define __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__ | 
|  | typedef interface ISpatialAudioObjectRenderStreamNotify ISpatialAudioObjectRenderStreamNotify; | 
|  | #ifdef __cplusplus | 
|  | interface ISpatialAudioObjectRenderStreamNotify; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #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 | 
|  |  | 
|  | #ifndef __ISpatialAudioObjectBase_FWD_DEFINED__ | 
|  | #define __ISpatialAudioObjectBase_FWD_DEFINED__ | 
|  | typedef interface ISpatialAudioObjectBase ISpatialAudioObjectBase; | 
|  | #ifdef __cplusplus | 
|  | interface ISpatialAudioObjectBase; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __ISpatialAudioObject_FWD_DEFINED__ | 
|  | #define __ISpatialAudioObject_FWD_DEFINED__ | 
|  | typedef interface ISpatialAudioObject ISpatialAudioObject; | 
|  | #ifdef __cplusplus | 
|  | interface ISpatialAudioObject; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__ | 
|  | #define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__ | 
|  | typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase; | 
|  | #ifdef __cplusplus | 
|  | interface ISpatialAudioObjectRenderStreamBase; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | #ifndef __ISpatialAudioObjectRenderStream_FWD_DEFINED__ | 
|  | #define __ISpatialAudioObjectRenderStream_FWD_DEFINED__ | 
|  | typedef interface ISpatialAudioObjectRenderStream ISpatialAudioObjectRenderStream; | 
|  | #ifdef __cplusplus | 
|  | interface ISpatialAudioObjectRenderStream; | 
|  | #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; | 
|  | #define SPTLAUDCLNT_E_DESTROYED                     AUDCLNT_ERR(0x100) | 
|  | #define SPTLAUDCLNT_E_OUT_OF_ORDER                  AUDCLNT_ERR(0x101) | 
|  | #define SPTLAUDCLNT_E_RESOURCES_INVALIDATED         AUDCLNT_ERR(0x102) | 
|  | #define SPTLAUDCLNT_E_NO_MORE_OBJECTS               AUDCLNT_ERR(0x103) | 
|  | #define SPTLAUDCLNT_E_PROPERTY_NOT_SUPPORTED        AUDCLNT_ERR(0x104) | 
|  | #define SPTLAUDCLNT_E_ERRORS_IN_OBJECT_CALLS        AUDCLNT_ERR(0x105) | 
|  | #define SPTLAUDCLNT_E_METADATA_FORMAT_NOT_SUPPORTED AUDCLNT_ERR(0x106) | 
|  | #define SPTLAUDCLNT_E_STREAM_NOT_AVAILABLE          AUDCLNT_ERR(0x107) | 
|  | #define SPTLAUDCLNT_E_INVALID_LICENSE               AUDCLNT_ERR(0x108) | 
|  | #define SPTLAUDCLNT_E_STREAM_NOT_STOPPED            AUDCLNT_ERR(0x10a) | 
|  | #define SPTLAUDCLNT_E_STATIC_OBJECT_NOT_AVAILABLE   AUDCLNT_ERR(0x10b) | 
|  | #define SPTLAUDCLNT_E_OBJECT_ALREADY_ACTIVE         AUDCLNT_ERR(0x10c) | 
|  | #define SPTLAUDCLNT_E_INTERNAL                      AUDCLNT_ERR(0x10d) | 
|  | #ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__ | 
|  | #define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__ | 
|  | typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase; | 
|  | #ifdef __cplusplus | 
|  | interface ISpatialAudioObjectRenderStreamBase; | 
|  | #endif /* __cplusplus */ | 
|  | #endif | 
|  |  | 
|  | /***************************************************************************** | 
|  | * ISpatialAudioObjectRenderStreamNotify interface | 
|  | */ | 
|  | #ifndef __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__ | 
|  | #define __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("dddf83e6-68d7-4c70-883f-a1836afb4a50") | 
|  | ISpatialAudioObjectRenderStreamNotify : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE OnAvailableDynamicObjectCountChange( | 
|  | ISpatialAudioObjectRenderStreamBase *stream, | 
|  | LONGLONG deadline, | 
|  | UINT32 object_count) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50) | 
|  | #endif | 
|  | #else | 
|  | typedef struct ISpatialAudioObjectRenderStreamNotifyVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | ISpatialAudioObjectRenderStreamNotify *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | ISpatialAudioObjectRenderStreamNotify *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | ISpatialAudioObjectRenderStreamNotify *This); | 
|  |  | 
|  | /*** ISpatialAudioObjectRenderStreamNotify methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *OnAvailableDynamicObjectCountChange)( | 
|  | ISpatialAudioObjectRenderStreamNotify *This, | 
|  | ISpatialAudioObjectRenderStreamBase *stream, | 
|  | LONGLONG deadline, | 
|  | UINT32 object_count); | 
|  |  | 
|  | END_INTERFACE | 
|  | } ISpatialAudioObjectRenderStreamNotifyVtbl; | 
|  |  | 
|  | interface ISpatialAudioObjectRenderStreamNotify { | 
|  | CONST_VTBL ISpatialAudioObjectRenderStreamNotifyVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define ISpatialAudioObjectRenderStreamNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define ISpatialAudioObjectRenderStreamNotify_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define ISpatialAudioObjectRenderStreamNotify_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** ISpatialAudioObjectRenderStreamNotify methods ***/ | 
|  | #define ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count) (This)->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamNotify_QueryInterface(ISpatialAudioObjectRenderStreamNotify* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamNotify_AddRef(ISpatialAudioObjectRenderStreamNotify* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamNotify_Release(ISpatialAudioObjectRenderStreamNotify* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** ISpatialAudioObjectRenderStreamNotify methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(ISpatialAudioObjectRenderStreamNotify* This,ISpatialAudioObjectRenderStreamBase *stream,LONGLONG deadline,UINT32 object_count) { | 
|  | return This->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | typedef struct tagSpatialAudioObjectRenderStreamActivationParams { | 
|  | const WAVEFORMATEX *ObjectFormat; | 
|  | AudioObjectType StaticObjectTypeMask; | 
|  | UINT32 MinDynamicObjectCount; | 
|  | UINT32 MaxDynamicObjectCount; | 
|  | AUDIO_STREAM_CATEGORY Category; | 
|  | HANDLE EventHandle; | 
|  | ISpatialAudioObjectRenderStreamNotify *NotifyObject; | 
|  | } SpatialAudioObjectRenderStreamActivationParams; | 
|  | /***************************************************************************** | 
|  | * 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__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * ISpatialAudioObjectBase interface | 
|  | */ | 
|  | #ifndef __ISpatialAudioObjectBase_INTERFACE_DEFINED__ | 
|  | #define __ISpatialAudioObjectBase_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("cce0b8f2-8d4d-4efb-a8cf-3d6ecf1c30e0") | 
|  | ISpatialAudioObjectBase : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetBuffer( | 
|  | BYTE **buffer, | 
|  | UINT32 *bytes) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetEndOfStream( | 
|  | UINT32 frames) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE IsActive( | 
|  | WINBOOL *active) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetAudioObjectType( | 
|  | AudioObjectType *type) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0) | 
|  | #endif | 
|  | #else | 
|  | typedef struct ISpatialAudioObjectBaseVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | ISpatialAudioObjectBase *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | ISpatialAudioObjectBase *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | ISpatialAudioObjectBase *This); | 
|  |  | 
|  | /*** ISpatialAudioObjectBase methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetBuffer)( | 
|  | ISpatialAudioObjectBase *This, | 
|  | BYTE **buffer, | 
|  | UINT32 *bytes); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetEndOfStream)( | 
|  | ISpatialAudioObjectBase *This, | 
|  | UINT32 frames); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *IsActive)( | 
|  | ISpatialAudioObjectBase *This, | 
|  | WINBOOL *active); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)( | 
|  | ISpatialAudioObjectBase *This, | 
|  | AudioObjectType *type); | 
|  |  | 
|  | END_INTERFACE | 
|  | } ISpatialAudioObjectBaseVtbl; | 
|  |  | 
|  | interface ISpatialAudioObjectBase { | 
|  | CONST_VTBL ISpatialAudioObjectBaseVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define ISpatialAudioObjectBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define ISpatialAudioObjectBase_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define ISpatialAudioObjectBase_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** ISpatialAudioObjectBase methods ***/ | 
|  | #define ISpatialAudioObjectBase_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes) | 
|  | #define ISpatialAudioObjectBase_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames) | 
|  | #define ISpatialAudioObjectBase_IsActive(This,active) (This)->lpVtbl->IsActive(This,active) | 
|  | #define ISpatialAudioObjectBase_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectBase_QueryInterface(ISpatialAudioObjectBase* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObjectBase_AddRef(ISpatialAudioObjectBase* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObjectBase_Release(ISpatialAudioObjectBase* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** ISpatialAudioObjectBase methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectBase_GetBuffer(ISpatialAudioObjectBase* This,BYTE **buffer,UINT32 *bytes) { | 
|  | return This->lpVtbl->GetBuffer(This,buffer,bytes); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectBase_SetEndOfStream(ISpatialAudioObjectBase* This,UINT32 frames) { | 
|  | return This->lpVtbl->SetEndOfStream(This,frames); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectBase_IsActive(ISpatialAudioObjectBase* This,WINBOOL *active) { | 
|  | return This->lpVtbl->IsActive(This,active); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectBase_GetAudioObjectType(ISpatialAudioObjectBase* This,AudioObjectType *type) { | 
|  | return This->lpVtbl->GetAudioObjectType(This,type); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __ISpatialAudioObjectBase_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * ISpatialAudioObject interface | 
|  | */ | 
|  | #ifndef __ISpatialAudioObject_INTERFACE_DEFINED__ | 
|  | #define __ISpatialAudioObject_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("dde28967-521b-46e5-8f00-bd6f2bc8ab1d") | 
|  | ISpatialAudioObject : public ISpatialAudioObjectBase | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE SetPosition( | 
|  | float x, | 
|  | float y, | 
|  | float z) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE SetVolume( | 
|  | float vol) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d) | 
|  | #endif | 
|  | #else | 
|  | typedef struct ISpatialAudioObjectVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | ISpatialAudioObject *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | ISpatialAudioObject *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | ISpatialAudioObject *This); | 
|  |  | 
|  | /*** ISpatialAudioObjectBase methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetBuffer)( | 
|  | ISpatialAudioObject *This, | 
|  | BYTE **buffer, | 
|  | UINT32 *bytes); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetEndOfStream)( | 
|  | ISpatialAudioObject *This, | 
|  | UINT32 frames); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *IsActive)( | 
|  | ISpatialAudioObject *This, | 
|  | WINBOOL *active); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)( | 
|  | ISpatialAudioObject *This, | 
|  | AudioObjectType *type); | 
|  |  | 
|  | /*** ISpatialAudioObject methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *SetPosition)( | 
|  | ISpatialAudioObject *This, | 
|  | float x, | 
|  | float y, | 
|  | float z); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *SetVolume)( | 
|  | ISpatialAudioObject *This, | 
|  | float vol); | 
|  |  | 
|  | END_INTERFACE | 
|  | } ISpatialAudioObjectVtbl; | 
|  |  | 
|  | interface ISpatialAudioObject { | 
|  | CONST_VTBL ISpatialAudioObjectVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define ISpatialAudioObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define ISpatialAudioObject_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define ISpatialAudioObject_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** ISpatialAudioObjectBase methods ***/ | 
|  | #define ISpatialAudioObject_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes) | 
|  | #define ISpatialAudioObject_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames) | 
|  | #define ISpatialAudioObject_IsActive(This,active) (This)->lpVtbl->IsActive(This,active) | 
|  | #define ISpatialAudioObject_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type) | 
|  | /*** ISpatialAudioObject methods ***/ | 
|  | #define ISpatialAudioObject_SetPosition(This,x,y,z) (This)->lpVtbl->SetPosition(This,x,y,z) | 
|  | #define ISpatialAudioObject_SetVolume(This,vol) (This)->lpVtbl->SetVolume(This,vol) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObject_QueryInterface(ISpatialAudioObject* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObject_AddRef(ISpatialAudioObject* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObject_Release(ISpatialAudioObject* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** ISpatialAudioObjectBase methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObject_GetBuffer(ISpatialAudioObject* This,BYTE **buffer,UINT32 *bytes) { | 
|  | return This->lpVtbl->GetBuffer(This,buffer,bytes); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObject_SetEndOfStream(ISpatialAudioObject* This,UINT32 frames) { | 
|  | return This->lpVtbl->SetEndOfStream(This,frames); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObject_IsActive(ISpatialAudioObject* This,WINBOOL *active) { | 
|  | return This->lpVtbl->IsActive(This,active); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObject_GetAudioObjectType(ISpatialAudioObject* This,AudioObjectType *type) { | 
|  | return This->lpVtbl->GetAudioObjectType(This,type); | 
|  | } | 
|  | /*** ISpatialAudioObject methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObject_SetPosition(ISpatialAudioObject* This,float x,float y,float z) { | 
|  | return This->lpVtbl->SetPosition(This,x,y,z); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObject_SetVolume(ISpatialAudioObject* This,float vol) { | 
|  | return This->lpVtbl->SetVolume(This,vol); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __ISpatialAudioObject_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * ISpatialAudioObjectRenderStreamBase interface | 
|  | */ | 
|  | #ifndef __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__ | 
|  | #define __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("feaaf403-c1d8-450d-aa05-e0ccee7502a8") | 
|  | ISpatialAudioObjectRenderStreamBase : public IUnknown | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE GetAvailableDynamicObjectCount( | 
|  | UINT32 *count) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE GetService( | 
|  | REFIID riid, | 
|  | void **service) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Start( | 
|  | ) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Stop( | 
|  | ) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE Reset( | 
|  | ) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE BeginUpdatingAudioObjects( | 
|  | UINT32 *count, | 
|  | UINT32 *frames) = 0; | 
|  |  | 
|  | virtual HRESULT STDMETHODCALLTYPE EndUpdatingAudioObjects( | 
|  | ) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8) | 
|  | #endif | 
|  | #else | 
|  | typedef struct ISpatialAudioObjectRenderStreamBaseVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | ISpatialAudioObjectRenderStreamBase *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | ISpatialAudioObjectRenderStreamBase *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | ISpatialAudioObjectRenderStreamBase *This); | 
|  |  | 
|  | /*** ISpatialAudioObjectRenderStreamBase methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)( | 
|  | ISpatialAudioObjectRenderStreamBase *This, | 
|  | UINT32 *count); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetService)( | 
|  | ISpatialAudioObjectRenderStreamBase *This, | 
|  | REFIID riid, | 
|  | void **service); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Start)( | 
|  | ISpatialAudioObjectRenderStreamBase *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Stop)( | 
|  | ISpatialAudioObjectRenderStreamBase *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Reset)( | 
|  | ISpatialAudioObjectRenderStreamBase *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)( | 
|  | ISpatialAudioObjectRenderStreamBase *This, | 
|  | UINT32 *count, | 
|  | UINT32 *frames); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)( | 
|  | ISpatialAudioObjectRenderStreamBase *This); | 
|  |  | 
|  | END_INTERFACE | 
|  | } ISpatialAudioObjectRenderStreamBaseVtbl; | 
|  |  | 
|  | interface ISpatialAudioObjectRenderStreamBase { | 
|  | CONST_VTBL ISpatialAudioObjectRenderStreamBaseVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define ISpatialAudioObjectRenderStreamBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define ISpatialAudioObjectRenderStreamBase_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define ISpatialAudioObjectRenderStreamBase_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** ISpatialAudioObjectRenderStreamBase methods ***/ | 
|  | #define ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count) | 
|  | #define ISpatialAudioObjectRenderStreamBase_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service) | 
|  | #define ISpatialAudioObjectRenderStreamBase_Start(This) (This)->lpVtbl->Start(This) | 
|  | #define ISpatialAudioObjectRenderStreamBase_Stop(This) (This)->lpVtbl->Stop(This) | 
|  | #define ISpatialAudioObjectRenderStreamBase_Reset(This) (This)->lpVtbl->Reset(This) | 
|  | #define ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames) | 
|  | #define ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_QueryInterface(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamBase_AddRef(ISpatialAudioObjectRenderStreamBase* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObjectRenderStreamBase_Release(ISpatialAudioObjectRenderStreamBase* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** ISpatialAudioObjectRenderStreamBase methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count) { | 
|  | return This->lpVtbl->GetAvailableDynamicObjectCount(This,count); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_GetService(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **service) { | 
|  | return This->lpVtbl->GetService(This,riid,service); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Start(ISpatialAudioObjectRenderStreamBase* This) { | 
|  | return This->lpVtbl->Start(This); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Stop(ISpatialAudioObjectRenderStreamBase* This) { | 
|  | return This->lpVtbl->Stop(This); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_Reset(ISpatialAudioObjectRenderStreamBase* This) { | 
|  | return This->lpVtbl->Reset(This); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count,UINT32 *frames) { | 
|  | return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This) { | 
|  | return This->lpVtbl->EndUpdatingAudioObjects(This); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /***************************************************************************** | 
|  | * ISpatialAudioObjectRenderStream interface | 
|  | */ | 
|  | #ifndef __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__ | 
|  | #define __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__ | 
|  |  | 
|  | DEFINE_GUID(IID_ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53); | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | MIDL_INTERFACE("bab5f473-b423-477b-85f5-b5a332a04153") | 
|  | ISpatialAudioObjectRenderStream : public ISpatialAudioObjectRenderStreamBase | 
|  | { | 
|  | virtual HRESULT STDMETHODCALLTYPE ActivateSpatialAudioObject( | 
|  | AudioObjectType type, | 
|  | ISpatialAudioObject **object) = 0; | 
|  |  | 
|  | }; | 
|  | #ifdef __CRT_UUID_DECL | 
|  | __CRT_UUID_DECL(ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53) | 
|  | #endif | 
|  | #else | 
|  | typedef struct ISpatialAudioObjectRenderStreamVtbl { | 
|  | BEGIN_INTERFACE | 
|  |  | 
|  | /*** IUnknown methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *QueryInterface)( | 
|  | ISpatialAudioObjectRenderStream *This, | 
|  | REFIID riid, | 
|  | void **ppvObject); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *AddRef)( | 
|  | ISpatialAudioObjectRenderStream *This); | 
|  |  | 
|  | ULONG (STDMETHODCALLTYPE *Release)( | 
|  | ISpatialAudioObjectRenderStream *This); | 
|  |  | 
|  | /*** ISpatialAudioObjectRenderStreamBase methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)( | 
|  | ISpatialAudioObjectRenderStream *This, | 
|  | UINT32 *count); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *GetService)( | 
|  | ISpatialAudioObjectRenderStream *This, | 
|  | REFIID riid, | 
|  | void **service); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Start)( | 
|  | ISpatialAudioObjectRenderStream *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Stop)( | 
|  | ISpatialAudioObjectRenderStream *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *Reset)( | 
|  | ISpatialAudioObjectRenderStream *This); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)( | 
|  | ISpatialAudioObjectRenderStream *This, | 
|  | UINT32 *count, | 
|  | UINT32 *frames); | 
|  |  | 
|  | HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)( | 
|  | ISpatialAudioObjectRenderStream *This); | 
|  |  | 
|  | /*** ISpatialAudioObjectRenderStream methods ***/ | 
|  | HRESULT (STDMETHODCALLTYPE *ActivateSpatialAudioObject)( | 
|  | ISpatialAudioObjectRenderStream *This, | 
|  | AudioObjectType type, | 
|  | ISpatialAudioObject **object); | 
|  |  | 
|  | END_INTERFACE | 
|  | } ISpatialAudioObjectRenderStreamVtbl; | 
|  |  | 
|  | interface ISpatialAudioObjectRenderStream { | 
|  | CONST_VTBL ISpatialAudioObjectRenderStreamVtbl* lpVtbl; | 
|  | }; | 
|  |  | 
|  | #ifdef COBJMACROS | 
|  | #ifndef WIDL_C_INLINE_WRAPPERS | 
|  | /*** IUnknown methods ***/ | 
|  | #define ISpatialAudioObjectRenderStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define ISpatialAudioObjectRenderStream_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define ISpatialAudioObjectRenderStream_Release(This) (This)->lpVtbl->Release(This) | 
|  | /*** ISpatialAudioObjectRenderStreamBase methods ***/ | 
|  | #define ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count) | 
|  | #define ISpatialAudioObjectRenderStream_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service) | 
|  | #define ISpatialAudioObjectRenderStream_Start(This) (This)->lpVtbl->Start(This) | 
|  | #define ISpatialAudioObjectRenderStream_Stop(This) (This)->lpVtbl->Stop(This) | 
|  | #define ISpatialAudioObjectRenderStream_Reset(This) (This)->lpVtbl->Reset(This) | 
|  | #define ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames) | 
|  | #define ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This) | 
|  | /*** ISpatialAudioObjectRenderStream methods ***/ | 
|  | #define ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(This,type,object) (This)->lpVtbl->ActivateSpatialAudioObject(This,type,object) | 
|  | #else | 
|  | /*** IUnknown methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_QueryInterface(ISpatialAudioObjectRenderStream* This,REFIID riid,void **ppvObject) { | 
|  | return This->lpVtbl->QueryInterface(This,riid,ppvObject); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObjectRenderStream_AddRef(ISpatialAudioObjectRenderStream* This) { | 
|  | return This->lpVtbl->AddRef(This); | 
|  | } | 
|  | static FORCEINLINE ULONG ISpatialAudioObjectRenderStream_Release(ISpatialAudioObjectRenderStream* This) { | 
|  | return This->lpVtbl->Release(This); | 
|  | } | 
|  | /*** ISpatialAudioObjectRenderStreamBase methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStream* This,UINT32 *count) { | 
|  | return This->lpVtbl->GetAvailableDynamicObjectCount(This,count); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_GetService(ISpatialAudioObjectRenderStream* This,REFIID riid,void **service) { | 
|  | return This->lpVtbl->GetService(This,riid,service); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Start(ISpatialAudioObjectRenderStream* This) { | 
|  | return This->lpVtbl->Start(This); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Stop(ISpatialAudioObjectRenderStream* This) { | 
|  | return This->lpVtbl->Stop(This); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_Reset(ISpatialAudioObjectRenderStream* This) { | 
|  | return This->lpVtbl->Reset(This); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This,UINT32 *count,UINT32 *frames) { | 
|  | return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames); | 
|  | } | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This) { | 
|  | return This->lpVtbl->EndUpdatingAudioObjects(This); | 
|  | } | 
|  | /*** ISpatialAudioObjectRenderStream methods ***/ | 
|  | static FORCEINLINE HRESULT ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(ISpatialAudioObjectRenderStream* This,AudioObjectType type,ISpatialAudioObject **object) { | 
|  | return This->lpVtbl->ActivateSpatialAudioObject(This,type,object); | 
|  | } | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #endif | 
|  |  | 
|  |  | 
|  | #endif  /* __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__ */ | 
|  |  | 
|  | /* Begin additional prototypes for all interfaces */ | 
|  |  | 
|  |  | 
|  | /* End additional prototypes */ | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif /* __spatialaudioclient_h__ */ |