zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

spatialaudioclient.h (39562B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/spatialaudioclient.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __spatialaudioclient_h__
     17 #define __spatialaudioclient_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__
     22 #define __ISpatialAudioObjectRenderStreamNotify_FWD_DEFINED__
     23 typedef interface ISpatialAudioObjectRenderStreamNotify ISpatialAudioObjectRenderStreamNotify;
     24 #ifdef __cplusplus
     25 interface ISpatialAudioObjectRenderStreamNotify;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IAudioFormatEnumerator_FWD_DEFINED__
     30 #define __IAudioFormatEnumerator_FWD_DEFINED__
     31 typedef interface IAudioFormatEnumerator IAudioFormatEnumerator;
     32 #ifdef __cplusplus
     33 interface IAudioFormatEnumerator;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __ISpatialAudioClient_FWD_DEFINED__
     38 #define __ISpatialAudioClient_FWD_DEFINED__
     39 typedef interface ISpatialAudioClient ISpatialAudioClient;
     40 #ifdef __cplusplus
     41 interface ISpatialAudioClient;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __ISpatialAudioObjectBase_FWD_DEFINED__
     46 #define __ISpatialAudioObjectBase_FWD_DEFINED__
     47 typedef interface ISpatialAudioObjectBase ISpatialAudioObjectBase;
     48 #ifdef __cplusplus
     49 interface ISpatialAudioObjectBase;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __ISpatialAudioObject_FWD_DEFINED__
     54 #define __ISpatialAudioObject_FWD_DEFINED__
     55 typedef interface ISpatialAudioObject ISpatialAudioObject;
     56 #ifdef __cplusplus
     57 interface ISpatialAudioObject;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
     62 #define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
     63 typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase;
     64 #ifdef __cplusplus
     65 interface ISpatialAudioObjectRenderStreamBase;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __ISpatialAudioObjectRenderStream_FWD_DEFINED__
     70 #define __ISpatialAudioObjectRenderStream_FWD_DEFINED__
     71 typedef interface ISpatialAudioObjectRenderStream ISpatialAudioObjectRenderStream;
     72 #ifdef __cplusplus
     73 interface ISpatialAudioObjectRenderStream;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 /* Headers for imported files */
     78 
     79 #include <unknwn.h>
     80 #include <audioclient.h>
     81 #include <propsys.h>
     82 
     83 #ifdef __cplusplus
     84 extern "C" {
     85 #endif
     86 
     87 typedef enum AudioObjectType {
     88     AudioObjectType_None = 0,
     89     AudioObjectType_Dynamic = 0x1,
     90     AudioObjectType_FrontLeft = 0x2,
     91     AudioObjectType_FrontRight = 0x4,
     92     AudioObjectType_FrontCenter = 0x8,
     93     AudioObjectType_LowFrequency = 0x10,
     94     AudioObjectType_SideLeft = 0x20,
     95     AudioObjectType_SideRight = 0x40,
     96     AudioObjectType_BackLeft = 0x80,
     97     AudioObjectType_BackRight = 0x100,
     98     AudioObjectType_TopFrontLeft = 0x200,
     99     AudioObjectType_TopFrontRight = 0x400,
    100     AudioObjectType_TopBackLeft = 0x800,
    101     AudioObjectType_TopBackRight = 0x1000,
    102     AudioObjectType_BottomFrontLeft = 0x2000,
    103     AudioObjectType_BottomFrontRight = 0x4000,
    104     AudioObjectType_BottomBackLeft = 0x8000,
    105     AudioObjectType_BottomBackRight = 0x10000,
    106     AudioObjectType_BackCenter = 0x20000
    107 } AudioObjectType;
    108 #define SPTLAUDCLNT_E_DESTROYED                     AUDCLNT_ERR(0x100)
    109 #define SPTLAUDCLNT_E_OUT_OF_ORDER                  AUDCLNT_ERR(0x101)
    110 #define SPTLAUDCLNT_E_RESOURCES_INVALIDATED         AUDCLNT_ERR(0x102)
    111 #define SPTLAUDCLNT_E_NO_MORE_OBJECTS               AUDCLNT_ERR(0x103)
    112 #define SPTLAUDCLNT_E_PROPERTY_NOT_SUPPORTED        AUDCLNT_ERR(0x104)
    113 #define SPTLAUDCLNT_E_ERRORS_IN_OBJECT_CALLS        AUDCLNT_ERR(0x105)
    114 #define SPTLAUDCLNT_E_METADATA_FORMAT_NOT_SUPPORTED AUDCLNT_ERR(0x106)
    115 #define SPTLAUDCLNT_E_STREAM_NOT_AVAILABLE          AUDCLNT_ERR(0x107)
    116 #define SPTLAUDCLNT_E_INVALID_LICENSE               AUDCLNT_ERR(0x108)
    117 #define SPTLAUDCLNT_E_STREAM_NOT_STOPPED            AUDCLNT_ERR(0x10a)
    118 #define SPTLAUDCLNT_E_STATIC_OBJECT_NOT_AVAILABLE   AUDCLNT_ERR(0x10b)
    119 #define SPTLAUDCLNT_E_OBJECT_ALREADY_ACTIVE         AUDCLNT_ERR(0x10c)
    120 #define SPTLAUDCLNT_E_INTERNAL                      AUDCLNT_ERR(0x10d)
    121 #ifndef __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
    122 #define __ISpatialAudioObjectRenderStreamBase_FWD_DEFINED__
    123 typedef interface ISpatialAudioObjectRenderStreamBase ISpatialAudioObjectRenderStreamBase;
    124 #ifdef __cplusplus
    125 interface ISpatialAudioObjectRenderStreamBase;
    126 #endif /* __cplusplus */
    127 #endif
    128 
    129 /*****************************************************************************
    130  * ISpatialAudioObjectRenderStreamNotify interface
    131  */
    132 #ifndef __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__
    133 #define __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__
    134 
    135 DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50);
    136 #if defined(__cplusplus) && !defined(CINTERFACE)
    137 MIDL_INTERFACE("dddf83e6-68d7-4c70-883f-a1836afb4a50")
    138 ISpatialAudioObjectRenderStreamNotify : public IUnknown
    139 {
    140     virtual HRESULT STDMETHODCALLTYPE OnAvailableDynamicObjectCountChange(
    141         ISpatialAudioObjectRenderStreamBase *stream,
    142         LONGLONG deadline,
    143         UINT32 object_count) = 0;
    144 
    145 };
    146 #ifdef __CRT_UUID_DECL
    147 __CRT_UUID_DECL(ISpatialAudioObjectRenderStreamNotify, 0xdddf83e6, 0x68d7, 0x4c70, 0x88,0x3f, 0xa1,0x83,0x6a,0xfb,0x4a,0x50)
    148 #endif
    149 #else
    150 typedef struct ISpatialAudioObjectRenderStreamNotifyVtbl {
    151     BEGIN_INTERFACE
    152 
    153     /*** IUnknown methods ***/
    154     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    155         ISpatialAudioObjectRenderStreamNotify *This,
    156         REFIID riid,
    157         void **ppvObject);
    158 
    159     ULONG (STDMETHODCALLTYPE *AddRef)(
    160         ISpatialAudioObjectRenderStreamNotify *This);
    161 
    162     ULONG (STDMETHODCALLTYPE *Release)(
    163         ISpatialAudioObjectRenderStreamNotify *This);
    164 
    165     /*** ISpatialAudioObjectRenderStreamNotify methods ***/
    166     HRESULT (STDMETHODCALLTYPE *OnAvailableDynamicObjectCountChange)(
    167         ISpatialAudioObjectRenderStreamNotify *This,
    168         ISpatialAudioObjectRenderStreamBase *stream,
    169         LONGLONG deadline,
    170         UINT32 object_count);
    171 
    172     END_INTERFACE
    173 } ISpatialAudioObjectRenderStreamNotifyVtbl;
    174 
    175 interface ISpatialAudioObjectRenderStreamNotify {
    176     CONST_VTBL ISpatialAudioObjectRenderStreamNotifyVtbl* lpVtbl;
    177 };
    178 
    179 #ifdef COBJMACROS
    180 #ifndef WIDL_C_INLINE_WRAPPERS
    181 /*** IUnknown methods ***/
    182 #define ISpatialAudioObjectRenderStreamNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    183 #define ISpatialAudioObjectRenderStreamNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
    184 #define ISpatialAudioObjectRenderStreamNotify_Release(This) (This)->lpVtbl->Release(This)
    185 /*** ISpatialAudioObjectRenderStreamNotify methods ***/
    186 #define ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count) (This)->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count)
    187 #else
    188 /*** IUnknown methods ***/
    189 static inline HRESULT ISpatialAudioObjectRenderStreamNotify_QueryInterface(ISpatialAudioObjectRenderStreamNotify* This,REFIID riid,void **ppvObject) {
    190     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    191 }
    192 static inline ULONG ISpatialAudioObjectRenderStreamNotify_AddRef(ISpatialAudioObjectRenderStreamNotify* This) {
    193     return This->lpVtbl->AddRef(This);
    194 }
    195 static inline ULONG ISpatialAudioObjectRenderStreamNotify_Release(ISpatialAudioObjectRenderStreamNotify* This) {
    196     return This->lpVtbl->Release(This);
    197 }
    198 /*** ISpatialAudioObjectRenderStreamNotify methods ***/
    199 static inline HRESULT ISpatialAudioObjectRenderStreamNotify_OnAvailableDynamicObjectCountChange(ISpatialAudioObjectRenderStreamNotify* This,ISpatialAudioObjectRenderStreamBase *stream,LONGLONG deadline,UINT32 object_count) {
    200     return This->lpVtbl->OnAvailableDynamicObjectCountChange(This,stream,deadline,object_count);
    201 }
    202 #endif
    203 #endif
    204 
    205 #endif
    206 
    207 
    208 #endif  /* __ISpatialAudioObjectRenderStreamNotify_INTERFACE_DEFINED__ */
    209 
    210 typedef struct tagSpatialAudioObjectRenderStreamActivationParams {
    211     const WAVEFORMATEX *ObjectFormat;
    212     AudioObjectType StaticObjectTypeMask;
    213     UINT32 MinDynamicObjectCount;
    214     UINT32 MaxDynamicObjectCount;
    215     AUDIO_STREAM_CATEGORY Category;
    216     HANDLE EventHandle;
    217     ISpatialAudioObjectRenderStreamNotify *NotifyObject;
    218 } SpatialAudioObjectRenderStreamActivationParams;
    219 /*****************************************************************************
    220  * IAudioFormatEnumerator interface
    221  */
    222 #ifndef __IAudioFormatEnumerator_INTERFACE_DEFINED__
    223 #define __IAudioFormatEnumerator_INTERFACE_DEFINED__
    224 
    225 DEFINE_GUID(IID_IAudioFormatEnumerator, 0xdcdaa858, 0x895a, 0x4a22, 0xa5,0xeb, 0x67,0xbd,0xa5,0x06,0x09,0x6d);
    226 #if defined(__cplusplus) && !defined(CINTERFACE)
    227 MIDL_INTERFACE("dcdaa858-895a-4a22-a5eb-67bda506096d")
    228 IAudioFormatEnumerator : public IUnknown
    229 {
    230     virtual HRESULT STDMETHODCALLTYPE GetCount(
    231         UINT32 *count) = 0;
    232 
    233     virtual HRESULT STDMETHODCALLTYPE GetFormat(
    234         UINT32 index,
    235         WAVEFORMATEX **format) = 0;
    236 
    237 };
    238 #ifdef __CRT_UUID_DECL
    239 __CRT_UUID_DECL(IAudioFormatEnumerator, 0xdcdaa858, 0x895a, 0x4a22, 0xa5,0xeb, 0x67,0xbd,0xa5,0x06,0x09,0x6d)
    240 #endif
    241 #else
    242 typedef struct IAudioFormatEnumeratorVtbl {
    243     BEGIN_INTERFACE
    244 
    245     /*** IUnknown methods ***/
    246     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    247         IAudioFormatEnumerator *This,
    248         REFIID riid,
    249         void **ppvObject);
    250 
    251     ULONG (STDMETHODCALLTYPE *AddRef)(
    252         IAudioFormatEnumerator *This);
    253 
    254     ULONG (STDMETHODCALLTYPE *Release)(
    255         IAudioFormatEnumerator *This);
    256 
    257     /*** IAudioFormatEnumerator methods ***/
    258     HRESULT (STDMETHODCALLTYPE *GetCount)(
    259         IAudioFormatEnumerator *This,
    260         UINT32 *count);
    261 
    262     HRESULT (STDMETHODCALLTYPE *GetFormat)(
    263         IAudioFormatEnumerator *This,
    264         UINT32 index,
    265         WAVEFORMATEX **format);
    266 
    267     END_INTERFACE
    268 } IAudioFormatEnumeratorVtbl;
    269 
    270 interface IAudioFormatEnumerator {
    271     CONST_VTBL IAudioFormatEnumeratorVtbl* lpVtbl;
    272 };
    273 
    274 #ifdef COBJMACROS
    275 #ifndef WIDL_C_INLINE_WRAPPERS
    276 /*** IUnknown methods ***/
    277 #define IAudioFormatEnumerator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    278 #define IAudioFormatEnumerator_AddRef(This) (This)->lpVtbl->AddRef(This)
    279 #define IAudioFormatEnumerator_Release(This) (This)->lpVtbl->Release(This)
    280 /*** IAudioFormatEnumerator methods ***/
    281 #define IAudioFormatEnumerator_GetCount(This,count) (This)->lpVtbl->GetCount(This,count)
    282 #define IAudioFormatEnumerator_GetFormat(This,index,format) (This)->lpVtbl->GetFormat(This,index,format)
    283 #else
    284 /*** IUnknown methods ***/
    285 static inline HRESULT IAudioFormatEnumerator_QueryInterface(IAudioFormatEnumerator* This,REFIID riid,void **ppvObject) {
    286     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    287 }
    288 static inline ULONG IAudioFormatEnumerator_AddRef(IAudioFormatEnumerator* This) {
    289     return This->lpVtbl->AddRef(This);
    290 }
    291 static inline ULONG IAudioFormatEnumerator_Release(IAudioFormatEnumerator* This) {
    292     return This->lpVtbl->Release(This);
    293 }
    294 /*** IAudioFormatEnumerator methods ***/
    295 static inline HRESULT IAudioFormatEnumerator_GetCount(IAudioFormatEnumerator* This,UINT32 *count) {
    296     return This->lpVtbl->GetCount(This,count);
    297 }
    298 static inline HRESULT IAudioFormatEnumerator_GetFormat(IAudioFormatEnumerator* This,UINT32 index,WAVEFORMATEX **format) {
    299     return This->lpVtbl->GetFormat(This,index,format);
    300 }
    301 #endif
    302 #endif
    303 
    304 #endif
    305 
    306 
    307 #endif  /* __IAudioFormatEnumerator_INTERFACE_DEFINED__ */
    308 
    309 /*****************************************************************************
    310  * ISpatialAudioClient interface
    311  */
    312 #ifndef __ISpatialAudioClient_INTERFACE_DEFINED__
    313 #define __ISpatialAudioClient_INTERFACE_DEFINED__
    314 
    315 DEFINE_GUID(IID_ISpatialAudioClient, 0xbbf8e066, 0xaaaa, 0x49be, 0x9a,0x4d, 0xfd,0x2a,0x85,0x8e,0xa2,0x7f);
    316 #if defined(__cplusplus) && !defined(CINTERFACE)
    317 MIDL_INTERFACE("bbf8e066-aaaa-49be-9a4d-fd2a858ea27f")
    318 ISpatialAudioClient : public IUnknown
    319 {
    320     virtual HRESULT STDMETHODCALLTYPE GetStaticObjectPosition(
    321         AudioObjectType type,
    322         float *x,
    323         float *y,
    324         float *z) = 0;
    325 
    326     virtual HRESULT STDMETHODCALLTYPE GetNativeStaticObjectTypeMask(
    327         AudioObjectType *mask) = 0;
    328 
    329     virtual HRESULT STDMETHODCALLTYPE GetMaxDynamicObjectCount(
    330         UINT32 *value) = 0;
    331 
    332     virtual HRESULT STDMETHODCALLTYPE GetSupportedAudioObjectFormatEnumerator(
    333         IAudioFormatEnumerator **enumerator) = 0;
    334 
    335     virtual HRESULT STDMETHODCALLTYPE GetMaxFrameCount(
    336         const WAVEFORMATEX *format,
    337         UINT32 *count) = 0;
    338 
    339     virtual HRESULT STDMETHODCALLTYPE IsAudioObjectFormatSupported(
    340         const WAVEFORMATEX *format) = 0;
    341 
    342     virtual HRESULT STDMETHODCALLTYPE IsSpatialAudioStreamAvailable(
    343         REFIID stream_uuid,
    344         const PROPVARIANT *info) = 0;
    345 
    346     virtual HRESULT STDMETHODCALLTYPE ActivateSpatialAudioStream(
    347         const PROPVARIANT *params,
    348         REFIID riid,
    349         void **stream) = 0;
    350 
    351 };
    352 #ifdef __CRT_UUID_DECL
    353 __CRT_UUID_DECL(ISpatialAudioClient, 0xbbf8e066, 0xaaaa, 0x49be, 0x9a,0x4d, 0xfd,0x2a,0x85,0x8e,0xa2,0x7f)
    354 #endif
    355 #else
    356 typedef struct ISpatialAudioClientVtbl {
    357     BEGIN_INTERFACE
    358 
    359     /*** IUnknown methods ***/
    360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    361         ISpatialAudioClient *This,
    362         REFIID riid,
    363         void **ppvObject);
    364 
    365     ULONG (STDMETHODCALLTYPE *AddRef)(
    366         ISpatialAudioClient *This);
    367 
    368     ULONG (STDMETHODCALLTYPE *Release)(
    369         ISpatialAudioClient *This);
    370 
    371     /*** ISpatialAudioClient methods ***/
    372     HRESULT (STDMETHODCALLTYPE *GetStaticObjectPosition)(
    373         ISpatialAudioClient *This,
    374         AudioObjectType type,
    375         float *x,
    376         float *y,
    377         float *z);
    378 
    379     HRESULT (STDMETHODCALLTYPE *GetNativeStaticObjectTypeMask)(
    380         ISpatialAudioClient *This,
    381         AudioObjectType *mask);
    382 
    383     HRESULT (STDMETHODCALLTYPE *GetMaxDynamicObjectCount)(
    384         ISpatialAudioClient *This,
    385         UINT32 *value);
    386 
    387     HRESULT (STDMETHODCALLTYPE *GetSupportedAudioObjectFormatEnumerator)(
    388         ISpatialAudioClient *This,
    389         IAudioFormatEnumerator **enumerator);
    390 
    391     HRESULT (STDMETHODCALLTYPE *GetMaxFrameCount)(
    392         ISpatialAudioClient *This,
    393         const WAVEFORMATEX *format,
    394         UINT32 *count);
    395 
    396     HRESULT (STDMETHODCALLTYPE *IsAudioObjectFormatSupported)(
    397         ISpatialAudioClient *This,
    398         const WAVEFORMATEX *format);
    399 
    400     HRESULT (STDMETHODCALLTYPE *IsSpatialAudioStreamAvailable)(
    401         ISpatialAudioClient *This,
    402         REFIID stream_uuid,
    403         const PROPVARIANT *info);
    404 
    405     HRESULT (STDMETHODCALLTYPE *ActivateSpatialAudioStream)(
    406         ISpatialAudioClient *This,
    407         const PROPVARIANT *params,
    408         REFIID riid,
    409         void **stream);
    410 
    411     END_INTERFACE
    412 } ISpatialAudioClientVtbl;
    413 
    414 interface ISpatialAudioClient {
    415     CONST_VTBL ISpatialAudioClientVtbl* lpVtbl;
    416 };
    417 
    418 #ifdef COBJMACROS
    419 #ifndef WIDL_C_INLINE_WRAPPERS
    420 /*** IUnknown methods ***/
    421 #define ISpatialAudioClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    422 #define ISpatialAudioClient_AddRef(This) (This)->lpVtbl->AddRef(This)
    423 #define ISpatialAudioClient_Release(This) (This)->lpVtbl->Release(This)
    424 /*** ISpatialAudioClient methods ***/
    425 #define ISpatialAudioClient_GetStaticObjectPosition(This,type,x,y,z) (This)->lpVtbl->GetStaticObjectPosition(This,type,x,y,z)
    426 #define ISpatialAudioClient_GetNativeStaticObjectTypeMask(This,mask) (This)->lpVtbl->GetNativeStaticObjectTypeMask(This,mask)
    427 #define ISpatialAudioClient_GetMaxDynamicObjectCount(This,value) (This)->lpVtbl->GetMaxDynamicObjectCount(This,value)
    428 #define ISpatialAudioClient_GetSupportedAudioObjectFormatEnumerator(This,enumerator) (This)->lpVtbl->GetSupportedAudioObjectFormatEnumerator(This,enumerator)
    429 #define ISpatialAudioClient_GetMaxFrameCount(This,format,count) (This)->lpVtbl->GetMaxFrameCount(This,format,count)
    430 #define ISpatialAudioClient_IsAudioObjectFormatSupported(This,format) (This)->lpVtbl->IsAudioObjectFormatSupported(This,format)
    431 #define ISpatialAudioClient_IsSpatialAudioStreamAvailable(This,stream_uuid,info) (This)->lpVtbl->IsSpatialAudioStreamAvailable(This,stream_uuid,info)
    432 #define ISpatialAudioClient_ActivateSpatialAudioStream(This,params,riid,stream) (This)->lpVtbl->ActivateSpatialAudioStream(This,params,riid,stream)
    433 #else
    434 /*** IUnknown methods ***/
    435 static inline HRESULT ISpatialAudioClient_QueryInterface(ISpatialAudioClient* This,REFIID riid,void **ppvObject) {
    436     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    437 }
    438 static inline ULONG ISpatialAudioClient_AddRef(ISpatialAudioClient* This) {
    439     return This->lpVtbl->AddRef(This);
    440 }
    441 static inline ULONG ISpatialAudioClient_Release(ISpatialAudioClient* This) {
    442     return This->lpVtbl->Release(This);
    443 }
    444 /*** ISpatialAudioClient methods ***/
    445 static inline HRESULT ISpatialAudioClient_GetStaticObjectPosition(ISpatialAudioClient* This,AudioObjectType type,float *x,float *y,float *z) {
    446     return This->lpVtbl->GetStaticObjectPosition(This,type,x,y,z);
    447 }
    448 static inline HRESULT ISpatialAudioClient_GetNativeStaticObjectTypeMask(ISpatialAudioClient* This,AudioObjectType *mask) {
    449     return This->lpVtbl->GetNativeStaticObjectTypeMask(This,mask);
    450 }
    451 static inline HRESULT ISpatialAudioClient_GetMaxDynamicObjectCount(ISpatialAudioClient* This,UINT32 *value) {
    452     return This->lpVtbl->GetMaxDynamicObjectCount(This,value);
    453 }
    454 static inline HRESULT ISpatialAudioClient_GetSupportedAudioObjectFormatEnumerator(ISpatialAudioClient* This,IAudioFormatEnumerator **enumerator) {
    455     return This->lpVtbl->GetSupportedAudioObjectFormatEnumerator(This,enumerator);
    456 }
    457 static inline HRESULT ISpatialAudioClient_GetMaxFrameCount(ISpatialAudioClient* This,const WAVEFORMATEX *format,UINT32 *count) {
    458     return This->lpVtbl->GetMaxFrameCount(This,format,count);
    459 }
    460 static inline HRESULT ISpatialAudioClient_IsAudioObjectFormatSupported(ISpatialAudioClient* This,const WAVEFORMATEX *format) {
    461     return This->lpVtbl->IsAudioObjectFormatSupported(This,format);
    462 }
    463 static inline HRESULT ISpatialAudioClient_IsSpatialAudioStreamAvailable(ISpatialAudioClient* This,REFIID stream_uuid,const PROPVARIANT *info) {
    464     return This->lpVtbl->IsSpatialAudioStreamAvailable(This,stream_uuid,info);
    465 }
    466 static inline HRESULT ISpatialAudioClient_ActivateSpatialAudioStream(ISpatialAudioClient* This,const PROPVARIANT *params,REFIID riid,void **stream) {
    467     return This->lpVtbl->ActivateSpatialAudioStream(This,params,riid,stream);
    468 }
    469 #endif
    470 #endif
    471 
    472 #endif
    473 
    474 
    475 #endif  /* __ISpatialAudioClient_INTERFACE_DEFINED__ */
    476 
    477 /*****************************************************************************
    478  * ISpatialAudioObjectBase interface
    479  */
    480 #ifndef __ISpatialAudioObjectBase_INTERFACE_DEFINED__
    481 #define __ISpatialAudioObjectBase_INTERFACE_DEFINED__
    482 
    483 DEFINE_GUID(IID_ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0);
    484 #if defined(__cplusplus) && !defined(CINTERFACE)
    485 MIDL_INTERFACE("cce0b8f2-8d4d-4efb-a8cf-3d6ecf1c30e0")
    486 ISpatialAudioObjectBase : public IUnknown
    487 {
    488     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
    489         BYTE **buffer,
    490         UINT32 *bytes) = 0;
    491 
    492     virtual HRESULT STDMETHODCALLTYPE SetEndOfStream(
    493         UINT32 frames) = 0;
    494 
    495     virtual HRESULT STDMETHODCALLTYPE IsActive(
    496         WINBOOL *active) = 0;
    497 
    498     virtual HRESULT STDMETHODCALLTYPE GetAudioObjectType(
    499         AudioObjectType *type) = 0;
    500 
    501 };
    502 #ifdef __CRT_UUID_DECL
    503 __CRT_UUID_DECL(ISpatialAudioObjectBase, 0xcce0b8f2, 0x8d4d, 0x4efb, 0xa8,0xcf, 0x3d,0x6e,0xcf,0x1c,0x30,0xe0)
    504 #endif
    505 #else
    506 typedef struct ISpatialAudioObjectBaseVtbl {
    507     BEGIN_INTERFACE
    508 
    509     /*** IUnknown methods ***/
    510     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    511         ISpatialAudioObjectBase *This,
    512         REFIID riid,
    513         void **ppvObject);
    514 
    515     ULONG (STDMETHODCALLTYPE *AddRef)(
    516         ISpatialAudioObjectBase *This);
    517 
    518     ULONG (STDMETHODCALLTYPE *Release)(
    519         ISpatialAudioObjectBase *This);
    520 
    521     /*** ISpatialAudioObjectBase methods ***/
    522     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
    523         ISpatialAudioObjectBase *This,
    524         BYTE **buffer,
    525         UINT32 *bytes);
    526 
    527     HRESULT (STDMETHODCALLTYPE *SetEndOfStream)(
    528         ISpatialAudioObjectBase *This,
    529         UINT32 frames);
    530 
    531     HRESULT (STDMETHODCALLTYPE *IsActive)(
    532         ISpatialAudioObjectBase *This,
    533         WINBOOL *active);
    534 
    535     HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)(
    536         ISpatialAudioObjectBase *This,
    537         AudioObjectType *type);
    538 
    539     END_INTERFACE
    540 } ISpatialAudioObjectBaseVtbl;
    541 
    542 interface ISpatialAudioObjectBase {
    543     CONST_VTBL ISpatialAudioObjectBaseVtbl* lpVtbl;
    544 };
    545 
    546 #ifdef COBJMACROS
    547 #ifndef WIDL_C_INLINE_WRAPPERS
    548 /*** IUnknown methods ***/
    549 #define ISpatialAudioObjectBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    550 #define ISpatialAudioObjectBase_AddRef(This) (This)->lpVtbl->AddRef(This)
    551 #define ISpatialAudioObjectBase_Release(This) (This)->lpVtbl->Release(This)
    552 /*** ISpatialAudioObjectBase methods ***/
    553 #define ISpatialAudioObjectBase_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes)
    554 #define ISpatialAudioObjectBase_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames)
    555 #define ISpatialAudioObjectBase_IsActive(This,active) (This)->lpVtbl->IsActive(This,active)
    556 #define ISpatialAudioObjectBase_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type)
    557 #else
    558 /*** IUnknown methods ***/
    559 static inline HRESULT ISpatialAudioObjectBase_QueryInterface(ISpatialAudioObjectBase* This,REFIID riid,void **ppvObject) {
    560     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    561 }
    562 static inline ULONG ISpatialAudioObjectBase_AddRef(ISpatialAudioObjectBase* This) {
    563     return This->lpVtbl->AddRef(This);
    564 }
    565 static inline ULONG ISpatialAudioObjectBase_Release(ISpatialAudioObjectBase* This) {
    566     return This->lpVtbl->Release(This);
    567 }
    568 /*** ISpatialAudioObjectBase methods ***/
    569 static inline HRESULT ISpatialAudioObjectBase_GetBuffer(ISpatialAudioObjectBase* This,BYTE **buffer,UINT32 *bytes) {
    570     return This->lpVtbl->GetBuffer(This,buffer,bytes);
    571 }
    572 static inline HRESULT ISpatialAudioObjectBase_SetEndOfStream(ISpatialAudioObjectBase* This,UINT32 frames) {
    573     return This->lpVtbl->SetEndOfStream(This,frames);
    574 }
    575 static inline HRESULT ISpatialAudioObjectBase_IsActive(ISpatialAudioObjectBase* This,WINBOOL *active) {
    576     return This->lpVtbl->IsActive(This,active);
    577 }
    578 static inline HRESULT ISpatialAudioObjectBase_GetAudioObjectType(ISpatialAudioObjectBase* This,AudioObjectType *type) {
    579     return This->lpVtbl->GetAudioObjectType(This,type);
    580 }
    581 #endif
    582 #endif
    583 
    584 #endif
    585 
    586 
    587 #endif  /* __ISpatialAudioObjectBase_INTERFACE_DEFINED__ */
    588 
    589 /*****************************************************************************
    590  * ISpatialAudioObject interface
    591  */
    592 #ifndef __ISpatialAudioObject_INTERFACE_DEFINED__
    593 #define __ISpatialAudioObject_INTERFACE_DEFINED__
    594 
    595 DEFINE_GUID(IID_ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d);
    596 #if defined(__cplusplus) && !defined(CINTERFACE)
    597 MIDL_INTERFACE("dde28967-521b-46e5-8f00-bd6f2bc8ab1d")
    598 ISpatialAudioObject : public ISpatialAudioObjectBase
    599 {
    600     virtual HRESULT STDMETHODCALLTYPE SetPosition(
    601         float x,
    602         float y,
    603         float z) = 0;
    604 
    605     virtual HRESULT STDMETHODCALLTYPE SetVolume(
    606         float vol) = 0;
    607 
    608 };
    609 #ifdef __CRT_UUID_DECL
    610 __CRT_UUID_DECL(ISpatialAudioObject, 0xdde28967, 0x521b, 0x46e5, 0x8f,0x00, 0xbd,0x6f,0x2b,0xc8,0xab,0x1d)
    611 #endif
    612 #else
    613 typedef struct ISpatialAudioObjectVtbl {
    614     BEGIN_INTERFACE
    615 
    616     /*** IUnknown methods ***/
    617     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    618         ISpatialAudioObject *This,
    619         REFIID riid,
    620         void **ppvObject);
    621 
    622     ULONG (STDMETHODCALLTYPE *AddRef)(
    623         ISpatialAudioObject *This);
    624 
    625     ULONG (STDMETHODCALLTYPE *Release)(
    626         ISpatialAudioObject *This);
    627 
    628     /*** ISpatialAudioObjectBase methods ***/
    629     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
    630         ISpatialAudioObject *This,
    631         BYTE **buffer,
    632         UINT32 *bytes);
    633 
    634     HRESULT (STDMETHODCALLTYPE *SetEndOfStream)(
    635         ISpatialAudioObject *This,
    636         UINT32 frames);
    637 
    638     HRESULT (STDMETHODCALLTYPE *IsActive)(
    639         ISpatialAudioObject *This,
    640         WINBOOL *active);
    641 
    642     HRESULT (STDMETHODCALLTYPE *GetAudioObjectType)(
    643         ISpatialAudioObject *This,
    644         AudioObjectType *type);
    645 
    646     /*** ISpatialAudioObject methods ***/
    647     HRESULT (STDMETHODCALLTYPE *SetPosition)(
    648         ISpatialAudioObject *This,
    649         float x,
    650         float y,
    651         float z);
    652 
    653     HRESULT (STDMETHODCALLTYPE *SetVolume)(
    654         ISpatialAudioObject *This,
    655         float vol);
    656 
    657     END_INTERFACE
    658 } ISpatialAudioObjectVtbl;
    659 
    660 interface ISpatialAudioObject {
    661     CONST_VTBL ISpatialAudioObjectVtbl* lpVtbl;
    662 };
    663 
    664 #ifdef COBJMACROS
    665 #ifndef WIDL_C_INLINE_WRAPPERS
    666 /*** IUnknown methods ***/
    667 #define ISpatialAudioObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    668 #define ISpatialAudioObject_AddRef(This) (This)->lpVtbl->AddRef(This)
    669 #define ISpatialAudioObject_Release(This) (This)->lpVtbl->Release(This)
    670 /*** ISpatialAudioObjectBase methods ***/
    671 #define ISpatialAudioObject_GetBuffer(This,buffer,bytes) (This)->lpVtbl->GetBuffer(This,buffer,bytes)
    672 #define ISpatialAudioObject_SetEndOfStream(This,frames) (This)->lpVtbl->SetEndOfStream(This,frames)
    673 #define ISpatialAudioObject_IsActive(This,active) (This)->lpVtbl->IsActive(This,active)
    674 #define ISpatialAudioObject_GetAudioObjectType(This,type) (This)->lpVtbl->GetAudioObjectType(This,type)
    675 /*** ISpatialAudioObject methods ***/
    676 #define ISpatialAudioObject_SetPosition(This,x,y,z) (This)->lpVtbl->SetPosition(This,x,y,z)
    677 #define ISpatialAudioObject_SetVolume(This,vol) (This)->lpVtbl->SetVolume(This,vol)
    678 #else
    679 /*** IUnknown methods ***/
    680 static inline HRESULT ISpatialAudioObject_QueryInterface(ISpatialAudioObject* This,REFIID riid,void **ppvObject) {
    681     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    682 }
    683 static inline ULONG ISpatialAudioObject_AddRef(ISpatialAudioObject* This) {
    684     return This->lpVtbl->AddRef(This);
    685 }
    686 static inline ULONG ISpatialAudioObject_Release(ISpatialAudioObject* This) {
    687     return This->lpVtbl->Release(This);
    688 }
    689 /*** ISpatialAudioObjectBase methods ***/
    690 static inline HRESULT ISpatialAudioObject_GetBuffer(ISpatialAudioObject* This,BYTE **buffer,UINT32 *bytes) {
    691     return This->lpVtbl->GetBuffer(This,buffer,bytes);
    692 }
    693 static inline HRESULT ISpatialAudioObject_SetEndOfStream(ISpatialAudioObject* This,UINT32 frames) {
    694     return This->lpVtbl->SetEndOfStream(This,frames);
    695 }
    696 static inline HRESULT ISpatialAudioObject_IsActive(ISpatialAudioObject* This,WINBOOL *active) {
    697     return This->lpVtbl->IsActive(This,active);
    698 }
    699 static inline HRESULT ISpatialAudioObject_GetAudioObjectType(ISpatialAudioObject* This,AudioObjectType *type) {
    700     return This->lpVtbl->GetAudioObjectType(This,type);
    701 }
    702 /*** ISpatialAudioObject methods ***/
    703 static inline HRESULT ISpatialAudioObject_SetPosition(ISpatialAudioObject* This,float x,float y,float z) {
    704     return This->lpVtbl->SetPosition(This,x,y,z);
    705 }
    706 static inline HRESULT ISpatialAudioObject_SetVolume(ISpatialAudioObject* This,float vol) {
    707     return This->lpVtbl->SetVolume(This,vol);
    708 }
    709 #endif
    710 #endif
    711 
    712 #endif
    713 
    714 
    715 #endif  /* __ISpatialAudioObject_INTERFACE_DEFINED__ */
    716 
    717 /*****************************************************************************
    718  * ISpatialAudioObjectRenderStreamBase interface
    719  */
    720 #ifndef __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__
    721 #define __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__
    722 
    723 DEFINE_GUID(IID_ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8);
    724 #if defined(__cplusplus) && !defined(CINTERFACE)
    725 MIDL_INTERFACE("feaaf403-c1d8-450d-aa05-e0ccee7502a8")
    726 ISpatialAudioObjectRenderStreamBase : public IUnknown
    727 {
    728     virtual HRESULT STDMETHODCALLTYPE GetAvailableDynamicObjectCount(
    729         UINT32 *count) = 0;
    730 
    731     virtual HRESULT STDMETHODCALLTYPE GetService(
    732         REFIID riid,
    733         void **service) = 0;
    734 
    735     virtual HRESULT STDMETHODCALLTYPE Start(
    736         ) = 0;
    737 
    738     virtual HRESULT STDMETHODCALLTYPE Stop(
    739         ) = 0;
    740 
    741     virtual HRESULT STDMETHODCALLTYPE Reset(
    742         ) = 0;
    743 
    744     virtual HRESULT STDMETHODCALLTYPE BeginUpdatingAudioObjects(
    745         UINT32 *count,
    746         UINT32 *frames) = 0;
    747 
    748     virtual HRESULT STDMETHODCALLTYPE EndUpdatingAudioObjects(
    749         ) = 0;
    750 
    751 };
    752 #ifdef __CRT_UUID_DECL
    753 __CRT_UUID_DECL(ISpatialAudioObjectRenderStreamBase, 0xfeaaf403, 0xc1d8, 0x450d, 0xaa,0x05, 0xe0,0xcc,0xee,0x75,0x02,0xa8)
    754 #endif
    755 #else
    756 typedef struct ISpatialAudioObjectRenderStreamBaseVtbl {
    757     BEGIN_INTERFACE
    758 
    759     /*** IUnknown methods ***/
    760     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    761         ISpatialAudioObjectRenderStreamBase *This,
    762         REFIID riid,
    763         void **ppvObject);
    764 
    765     ULONG (STDMETHODCALLTYPE *AddRef)(
    766         ISpatialAudioObjectRenderStreamBase *This);
    767 
    768     ULONG (STDMETHODCALLTYPE *Release)(
    769         ISpatialAudioObjectRenderStreamBase *This);
    770 
    771     /*** ISpatialAudioObjectRenderStreamBase methods ***/
    772     HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)(
    773         ISpatialAudioObjectRenderStreamBase *This,
    774         UINT32 *count);
    775 
    776     HRESULT (STDMETHODCALLTYPE *GetService)(
    777         ISpatialAudioObjectRenderStreamBase *This,
    778         REFIID riid,
    779         void **service);
    780 
    781     HRESULT (STDMETHODCALLTYPE *Start)(
    782         ISpatialAudioObjectRenderStreamBase *This);
    783 
    784     HRESULT (STDMETHODCALLTYPE *Stop)(
    785         ISpatialAudioObjectRenderStreamBase *This);
    786 
    787     HRESULT (STDMETHODCALLTYPE *Reset)(
    788         ISpatialAudioObjectRenderStreamBase *This);
    789 
    790     HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)(
    791         ISpatialAudioObjectRenderStreamBase *This,
    792         UINT32 *count,
    793         UINT32 *frames);
    794 
    795     HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)(
    796         ISpatialAudioObjectRenderStreamBase *This);
    797 
    798     END_INTERFACE
    799 } ISpatialAudioObjectRenderStreamBaseVtbl;
    800 
    801 interface ISpatialAudioObjectRenderStreamBase {
    802     CONST_VTBL ISpatialAudioObjectRenderStreamBaseVtbl* lpVtbl;
    803 };
    804 
    805 #ifdef COBJMACROS
    806 #ifndef WIDL_C_INLINE_WRAPPERS
    807 /*** IUnknown methods ***/
    808 #define ISpatialAudioObjectRenderStreamBase_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    809 #define ISpatialAudioObjectRenderStreamBase_AddRef(This) (This)->lpVtbl->AddRef(This)
    810 #define ISpatialAudioObjectRenderStreamBase_Release(This) (This)->lpVtbl->Release(This)
    811 /*** ISpatialAudioObjectRenderStreamBase methods ***/
    812 #define ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count)
    813 #define ISpatialAudioObjectRenderStreamBase_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service)
    814 #define ISpatialAudioObjectRenderStreamBase_Start(This) (This)->lpVtbl->Start(This)
    815 #define ISpatialAudioObjectRenderStreamBase_Stop(This) (This)->lpVtbl->Stop(This)
    816 #define ISpatialAudioObjectRenderStreamBase_Reset(This) (This)->lpVtbl->Reset(This)
    817 #define ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames)
    818 #define ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This)
    819 #else
    820 /*** IUnknown methods ***/
    821 static inline HRESULT ISpatialAudioObjectRenderStreamBase_QueryInterface(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **ppvObject) {
    822     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    823 }
    824 static inline ULONG ISpatialAudioObjectRenderStreamBase_AddRef(ISpatialAudioObjectRenderStreamBase* This) {
    825     return This->lpVtbl->AddRef(This);
    826 }
    827 static inline ULONG ISpatialAudioObjectRenderStreamBase_Release(ISpatialAudioObjectRenderStreamBase* This) {
    828     return This->lpVtbl->Release(This);
    829 }
    830 /*** ISpatialAudioObjectRenderStreamBase methods ***/
    831 static inline HRESULT ISpatialAudioObjectRenderStreamBase_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count) {
    832     return This->lpVtbl->GetAvailableDynamicObjectCount(This,count);
    833 }
    834 static inline HRESULT ISpatialAudioObjectRenderStreamBase_GetService(ISpatialAudioObjectRenderStreamBase* This,REFIID riid,void **service) {
    835     return This->lpVtbl->GetService(This,riid,service);
    836 }
    837 static inline HRESULT ISpatialAudioObjectRenderStreamBase_Start(ISpatialAudioObjectRenderStreamBase* This) {
    838     return This->lpVtbl->Start(This);
    839 }
    840 static inline HRESULT ISpatialAudioObjectRenderStreamBase_Stop(ISpatialAudioObjectRenderStreamBase* This) {
    841     return This->lpVtbl->Stop(This);
    842 }
    843 static inline HRESULT ISpatialAudioObjectRenderStreamBase_Reset(ISpatialAudioObjectRenderStreamBase* This) {
    844     return This->lpVtbl->Reset(This);
    845 }
    846 static inline HRESULT ISpatialAudioObjectRenderStreamBase_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This,UINT32 *count,UINT32 *frames) {
    847     return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames);
    848 }
    849 static inline HRESULT ISpatialAudioObjectRenderStreamBase_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStreamBase* This) {
    850     return This->lpVtbl->EndUpdatingAudioObjects(This);
    851 }
    852 #endif
    853 #endif
    854 
    855 #endif
    856 
    857 
    858 #endif  /* __ISpatialAudioObjectRenderStreamBase_INTERFACE_DEFINED__ */
    859 
    860 /*****************************************************************************
    861  * ISpatialAudioObjectRenderStream interface
    862  */
    863 #ifndef __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__
    864 #define __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__
    865 
    866 DEFINE_GUID(IID_ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53);
    867 #if defined(__cplusplus) && !defined(CINTERFACE)
    868 MIDL_INTERFACE("bab5f473-b423-477b-85f5-b5a332a04153")
    869 ISpatialAudioObjectRenderStream : public ISpatialAudioObjectRenderStreamBase
    870 {
    871     virtual HRESULT STDMETHODCALLTYPE ActivateSpatialAudioObject(
    872         AudioObjectType type,
    873         ISpatialAudioObject **object) = 0;
    874 
    875 };
    876 #ifdef __CRT_UUID_DECL
    877 __CRT_UUID_DECL(ISpatialAudioObjectRenderStream, 0xbab5f473, 0xb423, 0x477b, 0x85,0xf5, 0xb5,0xa3,0x32,0xa0,0x41,0x53)
    878 #endif
    879 #else
    880 typedef struct ISpatialAudioObjectRenderStreamVtbl {
    881     BEGIN_INTERFACE
    882 
    883     /*** IUnknown methods ***/
    884     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    885         ISpatialAudioObjectRenderStream *This,
    886         REFIID riid,
    887         void **ppvObject);
    888 
    889     ULONG (STDMETHODCALLTYPE *AddRef)(
    890         ISpatialAudioObjectRenderStream *This);
    891 
    892     ULONG (STDMETHODCALLTYPE *Release)(
    893         ISpatialAudioObjectRenderStream *This);
    894 
    895     /*** ISpatialAudioObjectRenderStreamBase methods ***/
    896     HRESULT (STDMETHODCALLTYPE *GetAvailableDynamicObjectCount)(
    897         ISpatialAudioObjectRenderStream *This,
    898         UINT32 *count);
    899 
    900     HRESULT (STDMETHODCALLTYPE *GetService)(
    901         ISpatialAudioObjectRenderStream *This,
    902         REFIID riid,
    903         void **service);
    904 
    905     HRESULT (STDMETHODCALLTYPE *Start)(
    906         ISpatialAudioObjectRenderStream *This);
    907 
    908     HRESULT (STDMETHODCALLTYPE *Stop)(
    909         ISpatialAudioObjectRenderStream *This);
    910 
    911     HRESULT (STDMETHODCALLTYPE *Reset)(
    912         ISpatialAudioObjectRenderStream *This);
    913 
    914     HRESULT (STDMETHODCALLTYPE *BeginUpdatingAudioObjects)(
    915         ISpatialAudioObjectRenderStream *This,
    916         UINT32 *count,
    917         UINT32 *frames);
    918 
    919     HRESULT (STDMETHODCALLTYPE *EndUpdatingAudioObjects)(
    920         ISpatialAudioObjectRenderStream *This);
    921 
    922     /*** ISpatialAudioObjectRenderStream methods ***/
    923     HRESULT (STDMETHODCALLTYPE *ActivateSpatialAudioObject)(
    924         ISpatialAudioObjectRenderStream *This,
    925         AudioObjectType type,
    926         ISpatialAudioObject **object);
    927 
    928     END_INTERFACE
    929 } ISpatialAudioObjectRenderStreamVtbl;
    930 
    931 interface ISpatialAudioObjectRenderStream {
    932     CONST_VTBL ISpatialAudioObjectRenderStreamVtbl* lpVtbl;
    933 };
    934 
    935 #ifdef COBJMACROS
    936 #ifndef WIDL_C_INLINE_WRAPPERS
    937 /*** IUnknown methods ***/
    938 #define ISpatialAudioObjectRenderStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    939 #define ISpatialAudioObjectRenderStream_AddRef(This) (This)->lpVtbl->AddRef(This)
    940 #define ISpatialAudioObjectRenderStream_Release(This) (This)->lpVtbl->Release(This)
    941 /*** ISpatialAudioObjectRenderStreamBase methods ***/
    942 #define ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(This,count) (This)->lpVtbl->GetAvailableDynamicObjectCount(This,count)
    943 #define ISpatialAudioObjectRenderStream_GetService(This,riid,service) (This)->lpVtbl->GetService(This,riid,service)
    944 #define ISpatialAudioObjectRenderStream_Start(This) (This)->lpVtbl->Start(This)
    945 #define ISpatialAudioObjectRenderStream_Stop(This) (This)->lpVtbl->Stop(This)
    946 #define ISpatialAudioObjectRenderStream_Reset(This) (This)->lpVtbl->Reset(This)
    947 #define ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(This,count,frames) (This)->lpVtbl->BeginUpdatingAudioObjects(This,count,frames)
    948 #define ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(This) (This)->lpVtbl->EndUpdatingAudioObjects(This)
    949 /*** ISpatialAudioObjectRenderStream methods ***/
    950 #define ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(This,type,object) (This)->lpVtbl->ActivateSpatialAudioObject(This,type,object)
    951 #else
    952 /*** IUnknown methods ***/
    953 static inline HRESULT ISpatialAudioObjectRenderStream_QueryInterface(ISpatialAudioObjectRenderStream* This,REFIID riid,void **ppvObject) {
    954     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    955 }
    956 static inline ULONG ISpatialAudioObjectRenderStream_AddRef(ISpatialAudioObjectRenderStream* This) {
    957     return This->lpVtbl->AddRef(This);
    958 }
    959 static inline ULONG ISpatialAudioObjectRenderStream_Release(ISpatialAudioObjectRenderStream* This) {
    960     return This->lpVtbl->Release(This);
    961 }
    962 /*** ISpatialAudioObjectRenderStreamBase methods ***/
    963 static inline HRESULT ISpatialAudioObjectRenderStream_GetAvailableDynamicObjectCount(ISpatialAudioObjectRenderStream* This,UINT32 *count) {
    964     return This->lpVtbl->GetAvailableDynamicObjectCount(This,count);
    965 }
    966 static inline HRESULT ISpatialAudioObjectRenderStream_GetService(ISpatialAudioObjectRenderStream* This,REFIID riid,void **service) {
    967     return This->lpVtbl->GetService(This,riid,service);
    968 }
    969 static inline HRESULT ISpatialAudioObjectRenderStream_Start(ISpatialAudioObjectRenderStream* This) {
    970     return This->lpVtbl->Start(This);
    971 }
    972 static inline HRESULT ISpatialAudioObjectRenderStream_Stop(ISpatialAudioObjectRenderStream* This) {
    973     return This->lpVtbl->Stop(This);
    974 }
    975 static inline HRESULT ISpatialAudioObjectRenderStream_Reset(ISpatialAudioObjectRenderStream* This) {
    976     return This->lpVtbl->Reset(This);
    977 }
    978 static inline HRESULT ISpatialAudioObjectRenderStream_BeginUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This,UINT32 *count,UINT32 *frames) {
    979     return This->lpVtbl->BeginUpdatingAudioObjects(This,count,frames);
    980 }
    981 static inline HRESULT ISpatialAudioObjectRenderStream_EndUpdatingAudioObjects(ISpatialAudioObjectRenderStream* This) {
    982     return This->lpVtbl->EndUpdatingAudioObjects(This);
    983 }
    984 /*** ISpatialAudioObjectRenderStream methods ***/
    985 static inline HRESULT ISpatialAudioObjectRenderStream_ActivateSpatialAudioObject(ISpatialAudioObjectRenderStream* This,AudioObjectType type,ISpatialAudioObject **object) {
    986     return This->lpVtbl->ActivateSpatialAudioObject(This,type,object);
    987 }
    988 #endif
    989 #endif
    990 
    991 #endif
    992 
    993 
    994 #endif  /* __ISpatialAudioObjectRenderStream_INTERFACE_DEFINED__ */
    995 
    996 /* Begin additional prototypes for all interfaces */
    997 
    998 
    999 /* End additional prototypes */
   1000 
   1001 #ifdef __cplusplus
   1002 }
   1003 #endif
   1004 
   1005 #endif /* __spatialaudioclient_h__ */