Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.5.25 from include/audioclient.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __audioclient_h__
     16 #define __audioclient_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __IAudioClient_FWD_DEFINED__
     21 #define __IAudioClient_FWD_DEFINED__
     22 typedef interface IAudioClient IAudioClient;
     23 #endif
     24 
     25 #ifndef __IAudioRenderClient_FWD_DEFINED__
     26 #define __IAudioRenderClient_FWD_DEFINED__
     27 typedef interface IAudioRenderClient IAudioRenderClient;
     28 #endif
     29 
     30 #ifndef __IAudioCaptureClient_FWD_DEFINED__
     31 #define __IAudioCaptureClient_FWD_DEFINED__
     32 typedef interface IAudioCaptureClient IAudioCaptureClient;
     33 #endif
     34 
     35 #ifndef __IAudioClock_FWD_DEFINED__
     36 #define __IAudioClock_FWD_DEFINED__
     37 typedef interface IAudioClock IAudioClock;
     38 #endif
     39 
     40 #ifndef __IAudioClock2_FWD_DEFINED__
     41 #define __IAudioClock2_FWD_DEFINED__
     42 typedef interface IAudioClock2 IAudioClock2;
     43 #endif
     44 
     45 #ifndef __IAudioClockAdjustment_FWD_DEFINED__
     46 #define __IAudioClockAdjustment_FWD_DEFINED__
     47 typedef interface IAudioClockAdjustment IAudioClockAdjustment;
     48 #endif
     49 
     50 #ifndef __ISimpleAudioVolume_FWD_DEFINED__
     51 #define __ISimpleAudioVolume_FWD_DEFINED__
     52 typedef interface ISimpleAudioVolume ISimpleAudioVolume;
     53 #endif
     54 
     55 #ifndef __IAudioStreamVolume_FWD_DEFINED__
     56 #define __IAudioStreamVolume_FWD_DEFINED__
     57 typedef interface IAudioStreamVolume IAudioStreamVolume;
     58 #endif
     59 
     60 #ifndef __IChannelAudioVolume_FWD_DEFINED__
     61 #define __IChannelAudioVolume_FWD_DEFINED__
     62 typedef interface IChannelAudioVolume IChannelAudioVolume;
     63 #endif
     64 
     65 /* Headers for imported files */
     66 
     67 #include <wtypes.h>
     68 #include <unknwn.h>
     69 #include <audiosessiontypes.h>
     70 
     71 #ifdef __cplusplus
     72 extern "C" {
     73 #endif
     74 
     75 #ifndef __IAudioClient_FWD_DEFINED__
     76 #define __IAudioClient_FWD_DEFINED__
     77 typedef interface IAudioClient IAudioClient;
     78 #endif
     79 
     80 #ifndef __IAudioRenderClient_FWD_DEFINED__
     81 #define __IAudioRenderClient_FWD_DEFINED__
     82 typedef interface IAudioRenderClient IAudioRenderClient;
     83 #endif
     84 
     85 #ifndef __IAudioCaptureClient_FWD_DEFINED__
     86 #define __IAudioCaptureClient_FWD_DEFINED__
     87 typedef interface IAudioCaptureClient IAudioCaptureClient;
     88 #endif
     89 
     90 #ifndef __IAudioClock_FWD_DEFINED__
     91 #define __IAudioClock_FWD_DEFINED__
     92 typedef interface IAudioClock IAudioClock;
     93 #endif
     94 
     95 #ifndef __IAudioClock2_FWD_DEFINED__
     96 #define __IAudioClock2_FWD_DEFINED__
     97 typedef interface IAudioClock2 IAudioClock2;
     98 #endif
     99 
    100 #ifndef __IAudioClockAdjustment_FWD_DEFINED__
    101 #define __IAudioClockAdjustment_FWD_DEFINED__
    102 typedef interface IAudioClockAdjustment IAudioClockAdjustment;
    103 #endif
    104 
    105 #ifndef __ISimpleAudioVolume_FWD_DEFINED__
    106 #define __ISimpleAudioVolume_FWD_DEFINED__
    107 typedef interface ISimpleAudioVolume ISimpleAudioVolume;
    108 #endif
    109 
    110 #ifndef __IAudioStreamVolume_FWD_DEFINED__
    111 #define __IAudioStreamVolume_FWD_DEFINED__
    112 typedef interface IAudioStreamVolume IAudioStreamVolume;
    113 #endif
    114 
    115 #ifndef __IChannelAudioVolume_FWD_DEFINED__
    116 #define __IChannelAudioVolume_FWD_DEFINED__
    117 typedef interface IChannelAudioVolume IChannelAudioVolume;
    118 #endif
    119 
    120 #if 0
    121 typedef struct WAVEFORMATEX {
    122     WORD wFormatTag;
    123     WORD nChannels;
    124     DWORD nSamplesPerSec;
    125     DWORD nAvgBytesPerSec;
    126     WORD nBlockAlign;
    127     WORD wBitsPerSample;
    128     WORD cbSize;
    129 } WAVEFORMATEX;
    130 #else
    131 #include <mmreg.h>
    132 #endif
    133 #if 0
    134 typedef LONGLONG REFERENCE_TIME;
    135 #else
    136 #define _IKsControl_
    137 #include <ks.h>
    138 #include <ksmedia.h>
    139 #endif
    140 enum _AUDCLNT_BUFFERFLAGS {
    141     AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY = 0x1,
    142     AUDCLNT_BUFFERFLAGS_SILENT = 0x2,
    143     AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4
    144 };
    145 
    146 /*****************************************************************************
    147  * IAudioClient interface
    148  */
    149 #ifndef __IAudioClient_INTERFACE_DEFINED__
    150 #define __IAudioClient_INTERFACE_DEFINED__
    151 
    152 DEFINE_GUID(IID_IAudioClient, 0x1cb9ad4c, 0xdbfa, 0x4c32, 0xb1,0x78, 0xc2,0xf5,0x68,0xa7,0x03,0xb2);
    153 #if defined(__cplusplus) && !defined(CINTERFACE)
    154 MIDL_INTERFACE("1cb9ad4c-dbfa-4c32-b178-c2f568a703b2")
    155 IAudioClient : public IUnknown
    156 {
    157     virtual HRESULT STDMETHODCALLTYPE Initialize(
    158         AUDCLNT_SHAREMODE ShareMode,
    159         DWORD StreamFlags,
    160         REFERENCE_TIME hnsBufferDuration,
    161         REFERENCE_TIME hnsPeriodicity,
    162         const WAVEFORMATEX *pFormat,
    163         LPCGUID AudioSessionGuid) = 0;
    164 
    165     virtual HRESULT STDMETHODCALLTYPE GetBufferSize(
    166         UINT32 *pNumBufferFrames) = 0;
    167 
    168     virtual HRESULT STDMETHODCALLTYPE GetStreamLatency(
    169         REFERENCE_TIME *phnsLatency) = 0;
    170 
    171     virtual HRESULT STDMETHODCALLTYPE GetCurrentPadding(
    172         UINT32 *pNumPaddingFrames) = 0;
    173 
    174     virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
    175         AUDCLNT_SHAREMODE ShareMode,
    176         const WAVEFORMATEX *pFormat,
    177         WAVEFORMATEX **ppClosestMatch) = 0;
    178 
    179     virtual HRESULT STDMETHODCALLTYPE GetMixFormat(
    180         WAVEFORMATEX **ppDeviceFormat) = 0;
    181 
    182     virtual HRESULT STDMETHODCALLTYPE GetDevicePeriod(
    183         REFERENCE_TIME *phnsDefaultDevicePeriod,
    184         REFERENCE_TIME *phnsMinimumDevicePeriod) = 0;
    185 
    186     virtual HRESULT STDMETHODCALLTYPE Start(
    187         ) = 0;
    188 
    189     virtual HRESULT STDMETHODCALLTYPE Stop(
    190         ) = 0;
    191 
    192     virtual HRESULT STDMETHODCALLTYPE Reset(
    193         ) = 0;
    194 
    195     virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
    196         HANDLE eventHandle) = 0;
    197 
    198     virtual HRESULT STDMETHODCALLTYPE GetService(
    199         REFIID riid,
    200         void **ppv) = 0;
    201 
    202 };
    203 #ifdef __CRT_UUID_DECL
    204 __CRT_UUID_DECL(IAudioClient, 0x1cb9ad4c, 0xdbfa, 0x4c32, 0xb1,0x78, 0xc2,0xf5,0x68,0xa7,0x03,0xb2)
    205 #endif
    206 #else
    207 typedef struct IAudioClientVtbl {
    208     BEGIN_INTERFACE
    209 
    210     /*** IUnknown methods ***/
    211     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    212         IAudioClient* This,
    213         REFIID riid,
    214         void **ppvObject);
    215 
    216     ULONG (STDMETHODCALLTYPE *AddRef)(
    217         IAudioClient* This);
    218 
    219     ULONG (STDMETHODCALLTYPE *Release)(
    220         IAudioClient* This);
    221 
    222     /*** IAudioClient methods ***/
    223     HRESULT (STDMETHODCALLTYPE *Initialize)(
    224         IAudioClient* This,
    225         AUDCLNT_SHAREMODE ShareMode,
    226         DWORD StreamFlags,
    227         REFERENCE_TIME hnsBufferDuration,
    228         REFERENCE_TIME hnsPeriodicity,
    229         const WAVEFORMATEX *pFormat,
    230         LPCGUID AudioSessionGuid);
    231 
    232     HRESULT (STDMETHODCALLTYPE *GetBufferSize)(
    233         IAudioClient* This,
    234         UINT32 *pNumBufferFrames);
    235 
    236     HRESULT (STDMETHODCALLTYPE *GetStreamLatency)(
    237         IAudioClient* This,
    238         REFERENCE_TIME *phnsLatency);
    239 
    240     HRESULT (STDMETHODCALLTYPE *GetCurrentPadding)(
    241         IAudioClient* This,
    242         UINT32 *pNumPaddingFrames);
    243 
    244     HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
    245         IAudioClient* This,
    246         AUDCLNT_SHAREMODE ShareMode,
    247         const WAVEFORMATEX *pFormat,
    248         WAVEFORMATEX **ppClosestMatch);
    249 
    250     HRESULT (STDMETHODCALLTYPE *GetMixFormat)(
    251         IAudioClient* This,
    252         WAVEFORMATEX **ppDeviceFormat);
    253 
    254     HRESULT (STDMETHODCALLTYPE *GetDevicePeriod)(
    255         IAudioClient* This,
    256         REFERENCE_TIME *phnsDefaultDevicePeriod,
    257         REFERENCE_TIME *phnsMinimumDevicePeriod);
    258 
    259     HRESULT (STDMETHODCALLTYPE *Start)(
    260         IAudioClient* This);
    261 
    262     HRESULT (STDMETHODCALLTYPE *Stop)(
    263         IAudioClient* This);
    264 
    265     HRESULT (STDMETHODCALLTYPE *Reset)(
    266         IAudioClient* This);
    267 
    268     HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
    269         IAudioClient* This,
    270         HANDLE eventHandle);
    271 
    272     HRESULT (STDMETHODCALLTYPE *GetService)(
    273         IAudioClient* This,
    274         REFIID riid,
    275         void **ppv);
    276 
    277     END_INTERFACE
    278 } IAudioClientVtbl;
    279 interface IAudioClient {
    280     CONST_VTBL IAudioClientVtbl* lpVtbl;
    281 };
    282 
    283 #ifdef COBJMACROS
    284 #ifndef WIDL_C_INLINE_WRAPPERS
    285 /*** IUnknown methods ***/
    286 #define IAudioClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    287 #define IAudioClient_AddRef(This) (This)->lpVtbl->AddRef(This)
    288 #define IAudioClient_Release(This) (This)->lpVtbl->Release(This)
    289 /*** IAudioClient methods ***/
    290 #define IAudioClient_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid)
    291 #define IAudioClient_GetBufferSize(This,pNumBufferFrames) (This)->lpVtbl->GetBufferSize(This,pNumBufferFrames)
    292 #define IAudioClient_GetStreamLatency(This,phnsLatency) (This)->lpVtbl->GetStreamLatency(This,phnsLatency)
    293 #define IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) (This)->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames)
    294 #define IAudioClient_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch)
    295 #define IAudioClient_GetMixFormat(This,ppDeviceFormat) (This)->lpVtbl->GetMixFormat(This,ppDeviceFormat)
    296 #define IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) (This)->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod)
    297 #define IAudioClient_Start(This) (This)->lpVtbl->Start(This)
    298 #define IAudioClient_Stop(This) (This)->lpVtbl->Stop(This)
    299 #define IAudioClient_Reset(This) (This)->lpVtbl->Reset(This)
    300 #define IAudioClient_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle)
    301 #define IAudioClient_GetService(This,riid,ppv) (This)->lpVtbl->GetService(This,riid,ppv)
    302 #else
    303 /*** IUnknown methods ***/
    304 static FORCEINLINE HRESULT IAudioClient_QueryInterface(IAudioClient* This,REFIID riid,void **ppvObject) {
    305     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    306 }
    307 static FORCEINLINE ULONG IAudioClient_AddRef(IAudioClient* This) {
    308     return This->lpVtbl->AddRef(This);
    309 }
    310 static FORCEINLINE ULONG IAudioClient_Release(IAudioClient* This) {
    311     return This->lpVtbl->Release(This);
    312 }
    313 /*** IAudioClient methods ***/
    314 static FORCEINLINE HRESULT IAudioClient_Initialize(IAudioClient* This,AUDCLNT_SHAREMODE ShareMode,DWORD StreamFlags,REFERENCE_TIME hnsBufferDuration,REFERENCE_TIME hnsPeriodicity,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) {
    315     return This->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid);
    316 }
    317 static FORCEINLINE HRESULT IAudioClient_GetBufferSize(IAudioClient* This,UINT32 *pNumBufferFrames) {
    318     return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
    319 }
    320 static FORCEINLINE HRESULT IAudioClient_GetStreamLatency(IAudioClient* This,REFERENCE_TIME *phnsLatency) {
    321     return This->lpVtbl->GetStreamLatency(This,phnsLatency);
    322 }
    323 static FORCEINLINE HRESULT IAudioClient_GetCurrentPadding(IAudioClient* This,UINT32 *pNumPaddingFrames) {
    324     return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
    325 }
    326 static FORCEINLINE HRESULT IAudioClient_IsFormatSupported(IAudioClient* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
    327     return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
    328 }
    329 static FORCEINLINE HRESULT IAudioClient_GetMixFormat(IAudioClient* This,WAVEFORMATEX **ppDeviceFormat) {
    330     return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
    331 }
    332 static FORCEINLINE HRESULT IAudioClient_GetDevicePeriod(IAudioClient* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
    333     return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
    334 }
    335 static FORCEINLINE HRESULT IAudioClient_Start(IAudioClient* This) {
    336     return This->lpVtbl->Start(This);
    337 }
    338 static FORCEINLINE HRESULT IAudioClient_Stop(IAudioClient* This) {
    339     return This->lpVtbl->Stop(This);
    340 }
    341 static FORCEINLINE HRESULT IAudioClient_Reset(IAudioClient* This) {
    342     return This->lpVtbl->Reset(This);
    343 }
    344 static FORCEINLINE HRESULT IAudioClient_SetEventHandle(IAudioClient* This,HANDLE eventHandle) {
    345     return This->lpVtbl->SetEventHandle(This,eventHandle);
    346 }
    347 static FORCEINLINE HRESULT IAudioClient_GetService(IAudioClient* This,REFIID riid,void **ppv) {
    348     return This->lpVtbl->GetService(This,riid,ppv);
    349 }
    350 #endif
    351 #endif
    352 
    353 #endif
    354 
    355 HRESULT STDMETHODCALLTYPE IAudioClient_Initialize_Proxy(
    356     IAudioClient* This,
    357     AUDCLNT_SHAREMODE ShareMode,
    358     DWORD StreamFlags,
    359     REFERENCE_TIME hnsBufferDuration,
    360     REFERENCE_TIME hnsPeriodicity,
    361     const WAVEFORMATEX *pFormat,
    362     LPCGUID AudioSessionGuid);
    363 void __RPC_STUB IAudioClient_Initialize_Stub(
    364     IRpcStubBuffer* This,
    365     IRpcChannelBuffer* pRpcChannelBuffer,
    366     PRPC_MESSAGE pRpcMessage,
    367     DWORD* pdwStubPhase);
    368 HRESULT STDMETHODCALLTYPE IAudioClient_GetBufferSize_Proxy(
    369     IAudioClient* This,
    370     UINT32 *pNumBufferFrames);
    371 void __RPC_STUB IAudioClient_GetBufferSize_Stub(
    372     IRpcStubBuffer* This,
    373     IRpcChannelBuffer* pRpcChannelBuffer,
    374     PRPC_MESSAGE pRpcMessage,
    375     DWORD* pdwStubPhase);
    376 HRESULT STDMETHODCALLTYPE IAudioClient_GetStreamLatency_Proxy(
    377     IAudioClient* This,
    378     REFERENCE_TIME *phnsLatency);
    379 void __RPC_STUB IAudioClient_GetStreamLatency_Stub(
    380     IRpcStubBuffer* This,
    381     IRpcChannelBuffer* pRpcChannelBuffer,
    382     PRPC_MESSAGE pRpcMessage,
    383     DWORD* pdwStubPhase);
    384 HRESULT STDMETHODCALLTYPE IAudioClient_GetCurrentPadding_Proxy(
    385     IAudioClient* This,
    386     UINT32 *pNumPaddingFrames);
    387 void __RPC_STUB IAudioClient_GetCurrentPadding_Stub(
    388     IRpcStubBuffer* This,
    389     IRpcChannelBuffer* pRpcChannelBuffer,
    390     PRPC_MESSAGE pRpcMessage,
    391     DWORD* pdwStubPhase);
    392 HRESULT STDMETHODCALLTYPE IAudioClient_IsFormatSupported_Proxy(
    393     IAudioClient* This,
    394     AUDCLNT_SHAREMODE ShareMode,
    395     const WAVEFORMATEX *pFormat,
    396     WAVEFORMATEX **ppClosestMatch);
    397 void __RPC_STUB IAudioClient_IsFormatSupported_Stub(
    398     IRpcStubBuffer* This,
    399     IRpcChannelBuffer* pRpcChannelBuffer,
    400     PRPC_MESSAGE pRpcMessage,
    401     DWORD* pdwStubPhase);
    402 HRESULT STDMETHODCALLTYPE IAudioClient_GetMixFormat_Proxy(
    403     IAudioClient* This,
    404     WAVEFORMATEX **ppDeviceFormat);
    405 void __RPC_STUB IAudioClient_GetMixFormat_Stub(
    406     IRpcStubBuffer* This,
    407     IRpcChannelBuffer* pRpcChannelBuffer,
    408     PRPC_MESSAGE pRpcMessage,
    409     DWORD* pdwStubPhase);
    410 HRESULT STDMETHODCALLTYPE IAudioClient_GetDevicePeriod_Proxy(
    411     IAudioClient* This,
    412     REFERENCE_TIME *phnsDefaultDevicePeriod,
    413     REFERENCE_TIME *phnsMinimumDevicePeriod);
    414 void __RPC_STUB IAudioClient_GetDevicePeriod_Stub(
    415     IRpcStubBuffer* This,
    416     IRpcChannelBuffer* pRpcChannelBuffer,
    417     PRPC_MESSAGE pRpcMessage,
    418     DWORD* pdwStubPhase);
    419 HRESULT STDMETHODCALLTYPE IAudioClient_Start_Proxy(
    420     IAudioClient* This);
    421 void __RPC_STUB IAudioClient_Start_Stub(
    422     IRpcStubBuffer* This,
    423     IRpcChannelBuffer* pRpcChannelBuffer,
    424     PRPC_MESSAGE pRpcMessage,
    425     DWORD* pdwStubPhase);
    426 HRESULT STDMETHODCALLTYPE IAudioClient_Stop_Proxy(
    427     IAudioClient* This);
    428 void __RPC_STUB IAudioClient_Stop_Stub(
    429     IRpcStubBuffer* This,
    430     IRpcChannelBuffer* pRpcChannelBuffer,
    431     PRPC_MESSAGE pRpcMessage,
    432     DWORD* pdwStubPhase);
    433 HRESULT STDMETHODCALLTYPE IAudioClient_Reset_Proxy(
    434     IAudioClient* This);
    435 void __RPC_STUB IAudioClient_Reset_Stub(
    436     IRpcStubBuffer* This,
    437     IRpcChannelBuffer* pRpcChannelBuffer,
    438     PRPC_MESSAGE pRpcMessage,
    439     DWORD* pdwStubPhase);
    440 HRESULT STDMETHODCALLTYPE IAudioClient_SetEventHandle_Proxy(
    441     IAudioClient* This,
    442     HANDLE eventHandle);
    443 void __RPC_STUB IAudioClient_SetEventHandle_Stub(
    444     IRpcStubBuffer* This,
    445     IRpcChannelBuffer* pRpcChannelBuffer,
    446     PRPC_MESSAGE pRpcMessage,
    447     DWORD* pdwStubPhase);
    448 HRESULT STDMETHODCALLTYPE IAudioClient_GetService_Proxy(
    449     IAudioClient* This,
    450     REFIID riid,
    451     void **ppv);
    452 void __RPC_STUB IAudioClient_GetService_Stub(
    453     IRpcStubBuffer* This,
    454     IRpcChannelBuffer* pRpcChannelBuffer,
    455     PRPC_MESSAGE pRpcMessage,
    456     DWORD* pdwStubPhase);
    457 
    458 #endif  /* __IAudioClient_INTERFACE_DEFINED__ */
    459 
    460 /*****************************************************************************
    461  * IAudioRenderClient interface
    462  */
    463 #ifndef __IAudioRenderClient_INTERFACE_DEFINED__
    464 #define __IAudioRenderClient_INTERFACE_DEFINED__
    465 
    466 DEFINE_GUID(IID_IAudioRenderClient, 0xf294acfc, 0x3146, 0x4483, 0xa7,0xbf, 0xad,0xdc,0xa7,0xc2,0x60,0xe2);
    467 #if defined(__cplusplus) && !defined(CINTERFACE)
    468 MIDL_INTERFACE("f294acfc-3146-4483-a7bf-addca7c260e2")
    469 IAudioRenderClient : public IUnknown
    470 {
    471     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
    472         UINT32 NumFramesRequested,
    473         BYTE **ppData) = 0;
    474 
    475     virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
    476         UINT32 NumFramesWritten,
    477         DWORD dwFlags) = 0;
    478 
    479 };
    480 #ifdef __CRT_UUID_DECL
    481 __CRT_UUID_DECL(IAudioRenderClient, 0xf294acfc, 0x3146, 0x4483, 0xa7,0xbf, 0xad,0xdc,0xa7,0xc2,0x60,0xe2)
    482 #endif
    483 #else
    484 typedef struct IAudioRenderClientVtbl {
    485     BEGIN_INTERFACE
    486 
    487     /*** IUnknown methods ***/
    488     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    489         IAudioRenderClient* This,
    490         REFIID riid,
    491         void **ppvObject);
    492 
    493     ULONG (STDMETHODCALLTYPE *AddRef)(
    494         IAudioRenderClient* This);
    495 
    496     ULONG (STDMETHODCALLTYPE *Release)(
    497         IAudioRenderClient* This);
    498 
    499     /*** IAudioRenderClient methods ***/
    500     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
    501         IAudioRenderClient* This,
    502         UINT32 NumFramesRequested,
    503         BYTE **ppData);
    504 
    505     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
    506         IAudioRenderClient* This,
    507         UINT32 NumFramesWritten,
    508         DWORD dwFlags);
    509 
    510     END_INTERFACE
    511 } IAudioRenderClientVtbl;
    512 interface IAudioRenderClient {
    513     CONST_VTBL IAudioRenderClientVtbl* lpVtbl;
    514 };
    515 
    516 #ifdef COBJMACROS
    517 #ifndef WIDL_C_INLINE_WRAPPERS
    518 /*** IUnknown methods ***/
    519 #define IAudioRenderClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    520 #define IAudioRenderClient_AddRef(This) (This)->lpVtbl->AddRef(This)
    521 #define IAudioRenderClient_Release(This) (This)->lpVtbl->Release(This)
    522 /*** IAudioRenderClient methods ***/
    523 #define IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) (This)->lpVtbl->GetBuffer(This,NumFramesRequested,ppData)
    524 #define IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) (This)->lpVtbl->ReleaseBuffer(This,NumFramesWritten,dwFlags)
    525 #else
    526 /*** IUnknown methods ***/
    527 static FORCEINLINE HRESULT IAudioRenderClient_QueryInterface(IAudioRenderClient* This,REFIID riid,void **ppvObject) {
    528     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    529 }
    530 static FORCEINLINE ULONG IAudioRenderClient_AddRef(IAudioRenderClient* This) {
    531     return This->lpVtbl->AddRef(This);
    532 }
    533 static FORCEINLINE ULONG IAudioRenderClient_Release(IAudioRenderClient* This) {
    534     return This->lpVtbl->Release(This);
    535 }
    536 /*** IAudioRenderClient methods ***/
    537 static FORCEINLINE HRESULT IAudioRenderClient_GetBuffer(IAudioRenderClient* This,UINT32 NumFramesRequested,BYTE **ppData) {
    538     return This->lpVtbl->GetBuffer(This,NumFramesRequested,ppData);
    539 }
    540 static FORCEINLINE HRESULT IAudioRenderClient_ReleaseBuffer(IAudioRenderClient* This,UINT32 NumFramesWritten,DWORD dwFlags) {
    541     return This->lpVtbl->ReleaseBuffer(This,NumFramesWritten,dwFlags);
    542 }
    543 #endif
    544 #endif
    545 
    546 #endif
    547 
    548 HRESULT STDMETHODCALLTYPE IAudioRenderClient_GetBuffer_Proxy(
    549     IAudioRenderClient* This,
    550     UINT32 NumFramesRequested,
    551     BYTE **ppData);
    552 void __RPC_STUB IAudioRenderClient_GetBuffer_Stub(
    553     IRpcStubBuffer* This,
    554     IRpcChannelBuffer* pRpcChannelBuffer,
    555     PRPC_MESSAGE pRpcMessage,
    556     DWORD* pdwStubPhase);
    557 HRESULT STDMETHODCALLTYPE IAudioRenderClient_ReleaseBuffer_Proxy(
    558     IAudioRenderClient* This,
    559     UINT32 NumFramesWritten,
    560     DWORD dwFlags);
    561 void __RPC_STUB IAudioRenderClient_ReleaseBuffer_Stub(
    562     IRpcStubBuffer* This,
    563     IRpcChannelBuffer* pRpcChannelBuffer,
    564     PRPC_MESSAGE pRpcMessage,
    565     DWORD* pdwStubPhase);
    566 
    567 #endif  /* __IAudioRenderClient_INTERFACE_DEFINED__ */
    568 
    569 /*****************************************************************************
    570  * IAudioCaptureClient interface
    571  */
    572 #ifndef __IAudioCaptureClient_INTERFACE_DEFINED__
    573 #define __IAudioCaptureClient_INTERFACE_DEFINED__
    574 
    575 DEFINE_GUID(IID_IAudioCaptureClient, 0xc8adbd64, 0xe71e, 0x48a0, 0xa4,0xde, 0x18,0x5c,0x39,0x5c,0xd3,0x17);
    576 #if defined(__cplusplus) && !defined(CINTERFACE)
    577 MIDL_INTERFACE("c8adbd64-e71e-48a0-a4de-185c395cd317")
    578 IAudioCaptureClient : public IUnknown
    579 {
    580     virtual HRESULT STDMETHODCALLTYPE GetBuffer(
    581         BYTE **ppData,
    582         UINT32 *pNumFramesToRead,
    583         DWORD *pdwFlags,
    584         UINT64 *pu64DevicePosition,
    585         UINT64 *pu64QPCPosition) = 0;
    586 
    587     virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
    588         UINT32 NumFramesRead) = 0;
    589 
    590     virtual HRESULT STDMETHODCALLTYPE GetNextPacketSize(
    591         UINT32 *pNumFramesInNextPacket) = 0;
    592 
    593 };
    594 #ifdef __CRT_UUID_DECL
    595 __CRT_UUID_DECL(IAudioCaptureClient, 0xc8adbd64, 0xe71e, 0x48a0, 0xa4,0xde, 0x18,0x5c,0x39,0x5c,0xd3,0x17)
    596 #endif
    597 #else
    598 typedef struct IAudioCaptureClientVtbl {
    599     BEGIN_INTERFACE
    600 
    601     /*** IUnknown methods ***/
    602     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    603         IAudioCaptureClient* This,
    604         REFIID riid,
    605         void **ppvObject);
    606 
    607     ULONG (STDMETHODCALLTYPE *AddRef)(
    608         IAudioCaptureClient* This);
    609 
    610     ULONG (STDMETHODCALLTYPE *Release)(
    611         IAudioCaptureClient* This);
    612 
    613     /*** IAudioCaptureClient methods ***/
    614     HRESULT (STDMETHODCALLTYPE *GetBuffer)(
    615         IAudioCaptureClient* This,
    616         BYTE **ppData,
    617         UINT32 *pNumFramesToRead,
    618         DWORD *pdwFlags,
    619         UINT64 *pu64DevicePosition,
    620         UINT64 *pu64QPCPosition);
    621 
    622     HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
    623         IAudioCaptureClient* This,
    624         UINT32 NumFramesRead);
    625 
    626     HRESULT (STDMETHODCALLTYPE *GetNextPacketSize)(
    627         IAudioCaptureClient* This,
    628         UINT32 *pNumFramesInNextPacket);
    629 
    630     END_INTERFACE
    631 } IAudioCaptureClientVtbl;
    632 interface IAudioCaptureClient {
    633     CONST_VTBL IAudioCaptureClientVtbl* lpVtbl;
    634 };
    635 
    636 #ifdef COBJMACROS
    637 #ifndef WIDL_C_INLINE_WRAPPERS
    638 /*** IUnknown methods ***/
    639 #define IAudioCaptureClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    640 #define IAudioCaptureClient_AddRef(This) (This)->lpVtbl->AddRef(This)
    641 #define IAudioCaptureClient_Release(This) (This)->lpVtbl->Release(This)
    642 /*** IAudioCaptureClient methods ***/
    643 #define IAudioCaptureClient_GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) (This)->lpVtbl->GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition)
    644 #define IAudioCaptureClient_ReleaseBuffer(This,NumFramesRead) (This)->lpVtbl->ReleaseBuffer(This,NumFramesRead)
    645 #define IAudioCaptureClient_GetNextPacketSize(This,pNumFramesInNextPacket) (This)->lpVtbl->GetNextPacketSize(This,pNumFramesInNextPacket)
    646 #else
    647 /*** IUnknown methods ***/
    648 static FORCEINLINE HRESULT IAudioCaptureClient_QueryInterface(IAudioCaptureClient* This,REFIID riid,void **ppvObject) {
    649     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    650 }
    651 static FORCEINLINE ULONG IAudioCaptureClient_AddRef(IAudioCaptureClient* This) {
    652     return This->lpVtbl->AddRef(This);
    653 }
    654 static FORCEINLINE ULONG IAudioCaptureClient_Release(IAudioCaptureClient* This) {
    655     return This->lpVtbl->Release(This);
    656 }
    657 /*** IAudioCaptureClient methods ***/
    658 static FORCEINLINE HRESULT IAudioCaptureClient_GetBuffer(IAudioCaptureClient* This,BYTE **ppData,UINT32 *pNumFramesToRead,DWORD *pdwFlags,UINT64 *pu64DevicePosition,UINT64 *pu64QPCPosition) {
    659     return This->lpVtbl->GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition);
    660 }
    661 static FORCEINLINE HRESULT IAudioCaptureClient_ReleaseBuffer(IAudioCaptureClient* This,UINT32 NumFramesRead) {
    662     return This->lpVtbl->ReleaseBuffer(This,NumFramesRead);
    663 }
    664 static FORCEINLINE HRESULT IAudioCaptureClient_GetNextPacketSize(IAudioCaptureClient* This,UINT32 *pNumFramesInNextPacket) {
    665     return This->lpVtbl->GetNextPacketSize(This,pNumFramesInNextPacket);
    666 }
    667 #endif
    668 #endif
    669 
    670 #endif
    671 
    672 HRESULT STDMETHODCALLTYPE IAudioCaptureClient_GetBuffer_Proxy(
    673     IAudioCaptureClient* This,
    674     BYTE **ppData,
    675     UINT32 *pNumFramesToRead,
    676     DWORD *pdwFlags,
    677     UINT64 *pu64DevicePosition,
    678     UINT64 *pu64QPCPosition);
    679 void __RPC_STUB IAudioCaptureClient_GetBuffer_Stub(
    680     IRpcStubBuffer* This,
    681     IRpcChannelBuffer* pRpcChannelBuffer,
    682     PRPC_MESSAGE pRpcMessage,
    683     DWORD* pdwStubPhase);
    684 HRESULT STDMETHODCALLTYPE IAudioCaptureClient_ReleaseBuffer_Proxy(
    685     IAudioCaptureClient* This,
    686     UINT32 NumFramesRead);
    687 void __RPC_STUB IAudioCaptureClient_ReleaseBuffer_Stub(
    688     IRpcStubBuffer* This,
    689     IRpcChannelBuffer* pRpcChannelBuffer,
    690     PRPC_MESSAGE pRpcMessage,
    691     DWORD* pdwStubPhase);
    692 HRESULT STDMETHODCALLTYPE IAudioCaptureClient_GetNextPacketSize_Proxy(
    693     IAudioCaptureClient* This,
    694     UINT32 *pNumFramesInNextPacket);
    695 void __RPC_STUB IAudioCaptureClient_GetNextPacketSize_Stub(
    696     IRpcStubBuffer* This,
    697     IRpcChannelBuffer* pRpcChannelBuffer,
    698     PRPC_MESSAGE pRpcMessage,
    699     DWORD* pdwStubPhase);
    700 
    701 #endif  /* __IAudioCaptureClient_INTERFACE_DEFINED__ */
    702 
    703 #define AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ 0x00000001
    704 /*****************************************************************************
    705  * IAudioClock interface
    706  */
    707 #ifndef __IAudioClock_INTERFACE_DEFINED__
    708 #define __IAudioClock_INTERFACE_DEFINED__
    709 
    710 DEFINE_GUID(IID_IAudioClock, 0xcd63314f, 0x3fba, 0x4a1b, 0x81,0x2c, 0xef,0x96,0x35,0x87,0x28,0xe7);
    711 #if defined(__cplusplus) && !defined(CINTERFACE)
    712 MIDL_INTERFACE("cd63314f-3fba-4a1b-812c-ef96358728e7")
    713 IAudioClock : public IUnknown
    714 {
    715     virtual HRESULT STDMETHODCALLTYPE GetFrequency(
    716         UINT64 *pu64Frequency) = 0;
    717 
    718     virtual HRESULT STDMETHODCALLTYPE GetPosition(
    719         UINT64 *pu64Position,
    720         UINT64 *pu64QPCPosition) = 0;
    721 
    722     virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
    723         DWORD *pdwCharacteristics) = 0;
    724 
    725 };
    726 #ifdef __CRT_UUID_DECL
    727 __CRT_UUID_DECL(IAudioClock, 0xcd63314f, 0x3fba, 0x4a1b, 0x81,0x2c, 0xef,0x96,0x35,0x87,0x28,0xe7)
    728 #endif
    729 #else
    730 typedef struct IAudioClockVtbl {
    731     BEGIN_INTERFACE
    732 
    733     /*** IUnknown methods ***/
    734     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    735         IAudioClock* This,
    736         REFIID riid,
    737         void **ppvObject);
    738 
    739     ULONG (STDMETHODCALLTYPE *AddRef)(
    740         IAudioClock* This);
    741 
    742     ULONG (STDMETHODCALLTYPE *Release)(
    743         IAudioClock* This);
    744 
    745     /*** IAudioClock methods ***/
    746     HRESULT (STDMETHODCALLTYPE *GetFrequency)(
    747         IAudioClock* This,
    748         UINT64 *pu64Frequency);
    749 
    750     HRESULT (STDMETHODCALLTYPE *GetPosition)(
    751         IAudioClock* This,
    752         UINT64 *pu64Position,
    753         UINT64 *pu64QPCPosition);
    754 
    755     HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
    756         IAudioClock* This,
    757         DWORD *pdwCharacteristics);
    758 
    759     END_INTERFACE
    760 } IAudioClockVtbl;
    761 interface IAudioClock {
    762     CONST_VTBL IAudioClockVtbl* lpVtbl;
    763 };
    764 
    765 #ifdef COBJMACROS
    766 #ifndef WIDL_C_INLINE_WRAPPERS
    767 /*** IUnknown methods ***/
    768 #define IAudioClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    769 #define IAudioClock_AddRef(This) (This)->lpVtbl->AddRef(This)
    770 #define IAudioClock_Release(This) (This)->lpVtbl->Release(This)
    771 /*** IAudioClock methods ***/
    772 #define IAudioClock_GetFrequency(This,pu64Frequency) (This)->lpVtbl->GetFrequency(This,pu64Frequency)
    773 #define IAudioClock_GetPosition(This,pu64Position,pu64QPCPosition) (This)->lpVtbl->GetPosition(This,pu64Position,pu64QPCPosition)
    774 #define IAudioClock_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
    775 #else
    776 /*** IUnknown methods ***/
    777 static FORCEINLINE HRESULT IAudioClock_QueryInterface(IAudioClock* This,REFIID riid,void **ppvObject) {
    778     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    779 }
    780 static FORCEINLINE ULONG IAudioClock_AddRef(IAudioClock* This) {
    781     return This->lpVtbl->AddRef(This);
    782 }
    783 static FORCEINLINE ULONG IAudioClock_Release(IAudioClock* This) {
    784     return This->lpVtbl->Release(This);
    785 }
    786 /*** IAudioClock methods ***/
    787 static FORCEINLINE HRESULT IAudioClock_GetFrequency(IAudioClock* This,UINT64 *pu64Frequency) {
    788     return This->lpVtbl->GetFrequency(This,pu64Frequency);
    789 }
    790 static FORCEINLINE HRESULT IAudioClock_GetPosition(IAudioClock* This,UINT64 *pu64Position,UINT64 *pu64QPCPosition) {
    791     return This->lpVtbl->GetPosition(This,pu64Position,pu64QPCPosition);
    792 }
    793 static FORCEINLINE HRESULT IAudioClock_GetCharacteristics(IAudioClock* This,DWORD *pdwCharacteristics) {
    794     return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
    795 }
    796 #endif
    797 #endif
    798 
    799 #endif
    800 
    801 HRESULT STDMETHODCALLTYPE IAudioClock_GetFrequency_Proxy(
    802     IAudioClock* This,
    803     UINT64 *pu64Frequency);
    804 void __RPC_STUB IAudioClock_GetFrequency_Stub(
    805     IRpcStubBuffer* This,
    806     IRpcChannelBuffer* pRpcChannelBuffer,
    807     PRPC_MESSAGE pRpcMessage,
    808     DWORD* pdwStubPhase);
    809 HRESULT STDMETHODCALLTYPE IAudioClock_GetPosition_Proxy(
    810     IAudioClock* This,
    811     UINT64 *pu64Position,
    812     UINT64 *pu64QPCPosition);
    813 void __RPC_STUB IAudioClock_GetPosition_Stub(
    814     IRpcStubBuffer* This,
    815     IRpcChannelBuffer* pRpcChannelBuffer,
    816     PRPC_MESSAGE pRpcMessage,
    817     DWORD* pdwStubPhase);
    818 HRESULT STDMETHODCALLTYPE IAudioClock_GetCharacteristics_Proxy(
    819     IAudioClock* This,
    820     DWORD *pdwCharacteristics);
    821 void __RPC_STUB IAudioClock_GetCharacteristics_Stub(
    822     IRpcStubBuffer* This,
    823     IRpcChannelBuffer* pRpcChannelBuffer,
    824     PRPC_MESSAGE pRpcMessage,
    825     DWORD* pdwStubPhase);
    826 
    827 #endif  /* __IAudioClock_INTERFACE_DEFINED__ */
    828 
    829 /*****************************************************************************
    830  * IAudioClock2 interface
    831  */
    832 #ifndef __IAudioClock2_INTERFACE_DEFINED__
    833 #define __IAudioClock2_INTERFACE_DEFINED__
    834 
    835 DEFINE_GUID(IID_IAudioClock2, 0x6f49ff73, 0x6727, 0x49ac, 0xa0,0x08, 0xd9,0x8c,0xf5,0xe7,0x00,0x48);
    836 #if defined(__cplusplus) && !defined(CINTERFACE)
    837 MIDL_INTERFACE("6f49ff73-6727-49ac-a008-d98cf5e70048")
    838 IAudioClock2 : public IUnknown
    839 {
    840     virtual HRESULT STDMETHODCALLTYPE GetPosition(
    841         UINT64 *DevicePosition,
    842         UINT64 *QPCPosition) = 0;
    843 
    844 };
    845 #ifdef __CRT_UUID_DECL
    846 __CRT_UUID_DECL(IAudioClock2, 0x6f49ff73, 0x6727, 0x49ac, 0xa0,0x08, 0xd9,0x8c,0xf5,0xe7,0x00,0x48)
    847 #endif
    848 #else
    849 typedef struct IAudioClock2Vtbl {
    850     BEGIN_INTERFACE
    851 
    852     /*** IUnknown methods ***/
    853     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    854         IAudioClock2* This,
    855         REFIID riid,
    856         void **ppvObject);
    857 
    858     ULONG (STDMETHODCALLTYPE *AddRef)(
    859         IAudioClock2* This);
    860 
    861     ULONG (STDMETHODCALLTYPE *Release)(
    862         IAudioClock2* This);
    863 
    864     /*** IAudioClock2 methods ***/
    865     HRESULT (STDMETHODCALLTYPE *GetPosition)(
    866         IAudioClock2* This,
    867         UINT64 *DevicePosition,
    868         UINT64 *QPCPosition);
    869 
    870     END_INTERFACE
    871 } IAudioClock2Vtbl;
    872 interface IAudioClock2 {
    873     CONST_VTBL IAudioClock2Vtbl* lpVtbl;
    874 };
    875 
    876 #ifdef COBJMACROS
    877 #ifndef WIDL_C_INLINE_WRAPPERS
    878 /*** IUnknown methods ***/
    879 #define IAudioClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    880 #define IAudioClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
    881 #define IAudioClock2_Release(This) (This)->lpVtbl->Release(This)
    882 /*** IAudioClock2 methods ***/
    883 #define IAudioClock2_GetPosition(This,DevicePosition,QPCPosition) (This)->lpVtbl->GetPosition(This,DevicePosition,QPCPosition)
    884 #else
    885 /*** IUnknown methods ***/
    886 static FORCEINLINE HRESULT IAudioClock2_QueryInterface(IAudioClock2* This,REFIID riid,void **ppvObject) {
    887     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    888 }
    889 static FORCEINLINE ULONG IAudioClock2_AddRef(IAudioClock2* This) {
    890     return This->lpVtbl->AddRef(This);
    891 }
    892 static FORCEINLINE ULONG IAudioClock2_Release(IAudioClock2* This) {
    893     return This->lpVtbl->Release(This);
    894 }
    895 /*** IAudioClock2 methods ***/
    896 static FORCEINLINE HRESULT IAudioClock2_GetPosition(IAudioClock2* This,UINT64 *DevicePosition,UINT64 *QPCPosition) {
    897     return This->lpVtbl->GetPosition(This,DevicePosition,QPCPosition);
    898 }
    899 #endif
    900 #endif
    901 
    902 #endif
    903 
    904 HRESULT STDMETHODCALLTYPE IAudioClock2_GetPosition_Proxy(
    905     IAudioClock2* This,
    906     UINT64 *DevicePosition,
    907     UINT64 *QPCPosition);
    908 void __RPC_STUB IAudioClock2_GetPosition_Stub(
    909     IRpcStubBuffer* This,
    910     IRpcChannelBuffer* pRpcChannelBuffer,
    911     PRPC_MESSAGE pRpcMessage,
    912     DWORD* pdwStubPhase);
    913 
    914 #endif  /* __IAudioClock2_INTERFACE_DEFINED__ */
    915 
    916 /*****************************************************************************
    917  * IAudioClockAdjustment interface
    918  */
    919 #ifndef __IAudioClockAdjustment_INTERFACE_DEFINED__
    920 #define __IAudioClockAdjustment_INTERFACE_DEFINED__
    921 
    922 DEFINE_GUID(IID_IAudioClockAdjustment, 0xf6e4c0a0, 0x46d9, 0x4fb9, 0xbe,0x21, 0x57,0xa3,0xef,0x2b,0x62,0x6c);
    923 #if defined(__cplusplus) && !defined(CINTERFACE)
    924 MIDL_INTERFACE("f6e4c0a0-46d9-4fb9-be21-57a3ef2b626c")
    925 IAudioClockAdjustment : public IUnknown
    926 {
    927     virtual HRESULT STDMETHODCALLTYPE SetSampleRate(
    928         float flSampleRate) = 0;
    929 
    930 };
    931 #ifdef __CRT_UUID_DECL
    932 __CRT_UUID_DECL(IAudioClockAdjustment, 0xf6e4c0a0, 0x46d9, 0x4fb9, 0xbe,0x21, 0x57,0xa3,0xef,0x2b,0x62,0x6c)
    933 #endif
    934 #else
    935 typedef struct IAudioClockAdjustmentVtbl {
    936     BEGIN_INTERFACE
    937 
    938     /*** IUnknown methods ***/
    939     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    940         IAudioClockAdjustment* This,
    941         REFIID riid,
    942         void **ppvObject);
    943 
    944     ULONG (STDMETHODCALLTYPE *AddRef)(
    945         IAudioClockAdjustment* This);
    946 
    947     ULONG (STDMETHODCALLTYPE *Release)(
    948         IAudioClockAdjustment* This);
    949 
    950     /*** IAudioClockAdjustment methods ***/
    951     HRESULT (STDMETHODCALLTYPE *SetSampleRate)(
    952         IAudioClockAdjustment* This,
    953         float flSampleRate);
    954 
    955     END_INTERFACE
    956 } IAudioClockAdjustmentVtbl;
    957 interface IAudioClockAdjustment {
    958     CONST_VTBL IAudioClockAdjustmentVtbl* lpVtbl;
    959 };
    960 
    961 #ifdef COBJMACROS
    962 #ifndef WIDL_C_INLINE_WRAPPERS
    963 /*** IUnknown methods ***/
    964 #define IAudioClockAdjustment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    965 #define IAudioClockAdjustment_AddRef(This) (This)->lpVtbl->AddRef(This)
    966 #define IAudioClockAdjustment_Release(This) (This)->lpVtbl->Release(This)
    967 /*** IAudioClockAdjustment methods ***/
    968 #define IAudioClockAdjustment_SetSampleRate(This,flSampleRate) (This)->lpVtbl->SetSampleRate(This,flSampleRate)
    969 #else
    970 /*** IUnknown methods ***/
    971 static FORCEINLINE HRESULT IAudioClockAdjustment_QueryInterface(IAudioClockAdjustment* This,REFIID riid,void **ppvObject) {
    972     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    973 }
    974 static FORCEINLINE ULONG IAudioClockAdjustment_AddRef(IAudioClockAdjustment* This) {
    975     return This->lpVtbl->AddRef(This);
    976 }
    977 static FORCEINLINE ULONG IAudioClockAdjustment_Release(IAudioClockAdjustment* This) {
    978     return This->lpVtbl->Release(This);
    979 }
    980 /*** IAudioClockAdjustment methods ***/
    981 static FORCEINLINE HRESULT IAudioClockAdjustment_SetSampleRate(IAudioClockAdjustment* This,float flSampleRate) {
    982     return This->lpVtbl->SetSampleRate(This,flSampleRate);
    983 }
    984 #endif
    985 #endif
    986 
    987 #endif
    988 
    989 HRESULT STDMETHODCALLTYPE IAudioClockAdjustment_SetSampleRate_Proxy(
    990     IAudioClockAdjustment* This,
    991     float flSampleRate);
    992 void __RPC_STUB IAudioClockAdjustment_SetSampleRate_Stub(
    993     IRpcStubBuffer* This,
    994     IRpcChannelBuffer* pRpcChannelBuffer,
    995     PRPC_MESSAGE pRpcMessage,
    996     DWORD* pdwStubPhase);
    997 
    998 #endif  /* __IAudioClockAdjustment_INTERFACE_DEFINED__ */
    999 
   1000 /*****************************************************************************
   1001  * ISimpleAudioVolume interface
   1002  */
   1003 #ifndef __ISimpleAudioVolume_INTERFACE_DEFINED__
   1004 #define __ISimpleAudioVolume_INTERFACE_DEFINED__
   1005 
   1006 DEFINE_GUID(IID_ISimpleAudioVolume, 0x87ce5498, 0x68d6, 0x44e5, 0x92,0x15, 0x6d,0xa4,0x7e,0xf8,0x83,0xd8);
   1007 #if defined(__cplusplus) && !defined(CINTERFACE)
   1008 MIDL_INTERFACE("87ce5498-68d6-44e5-9215-6da47ef883d8")
   1009 ISimpleAudioVolume : public IUnknown
   1010 {
   1011     virtual HRESULT STDMETHODCALLTYPE SetMasterVolume(
   1012         float fLevel,
   1013         LPCGUID EventContext) = 0;
   1014 
   1015     virtual HRESULT STDMETHODCALLTYPE GetMasterVolume(
   1016         float *pfLevel) = 0;
   1017 
   1018     virtual HRESULT STDMETHODCALLTYPE SetMute(
   1019         const WINBOOL bMute,
   1020         LPCGUID EventContext) = 0;
   1021 
   1022     virtual HRESULT STDMETHODCALLTYPE GetMute(
   1023         WINBOOL *pbMute) = 0;
   1024 
   1025 };
   1026 #ifdef __CRT_UUID_DECL
   1027 __CRT_UUID_DECL(ISimpleAudioVolume, 0x87ce5498, 0x68d6, 0x44e5, 0x92,0x15, 0x6d,0xa4,0x7e,0xf8,0x83,0xd8)
   1028 #endif
   1029 #else
   1030 typedef struct ISimpleAudioVolumeVtbl {
   1031     BEGIN_INTERFACE
   1032 
   1033     /*** IUnknown methods ***/
   1034     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1035         ISimpleAudioVolume* This,
   1036         REFIID riid,
   1037         void **ppvObject);
   1038 
   1039     ULONG (STDMETHODCALLTYPE *AddRef)(
   1040         ISimpleAudioVolume* This);
   1041 
   1042     ULONG (STDMETHODCALLTYPE *Release)(
   1043         ISimpleAudioVolume* This);
   1044 
   1045     /*** ISimpleAudioVolume methods ***/
   1046     HRESULT (STDMETHODCALLTYPE *SetMasterVolume)(
   1047         ISimpleAudioVolume* This,
   1048         float fLevel,
   1049         LPCGUID EventContext);
   1050 
   1051     HRESULT (STDMETHODCALLTYPE *GetMasterVolume)(
   1052         ISimpleAudioVolume* This,
   1053         float *pfLevel);
   1054 
   1055     HRESULT (STDMETHODCALLTYPE *SetMute)(
   1056         ISimpleAudioVolume* This,
   1057         const WINBOOL bMute,
   1058         LPCGUID EventContext);
   1059 
   1060     HRESULT (STDMETHODCALLTYPE *GetMute)(
   1061         ISimpleAudioVolume* This,
   1062         WINBOOL *pbMute);
   1063 
   1064     END_INTERFACE
   1065 } ISimpleAudioVolumeVtbl;
   1066 interface ISimpleAudioVolume {
   1067     CONST_VTBL ISimpleAudioVolumeVtbl* lpVtbl;
   1068 };
   1069 
   1070 #ifdef COBJMACROS
   1071 #ifndef WIDL_C_INLINE_WRAPPERS
   1072 /*** IUnknown methods ***/
   1073 #define ISimpleAudioVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1074 #define ISimpleAudioVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
   1075 #define ISimpleAudioVolume_Release(This) (This)->lpVtbl->Release(This)
   1076 /*** ISimpleAudioVolume methods ***/
   1077 #define ISimpleAudioVolume_SetMasterVolume(This,fLevel,EventContext) (This)->lpVtbl->SetMasterVolume(This,fLevel,EventContext)
   1078 #define ISimpleAudioVolume_GetMasterVolume(This,pfLevel) (This)->lpVtbl->GetMasterVolume(This,pfLevel)
   1079 #define ISimpleAudioVolume_SetMute(This,bMute,EventContext) (This)->lpVtbl->SetMute(This,bMute,EventContext)
   1080 #define ISimpleAudioVolume_GetMute(This,pbMute) (This)->lpVtbl->GetMute(This,pbMute)
   1081 #else
   1082 /*** IUnknown methods ***/
   1083 static FORCEINLINE HRESULT ISimpleAudioVolume_QueryInterface(ISimpleAudioVolume* This,REFIID riid,void **ppvObject) {
   1084     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1085 }
   1086 static FORCEINLINE ULONG ISimpleAudioVolume_AddRef(ISimpleAudioVolume* This) {
   1087     return This->lpVtbl->AddRef(This);
   1088 }
   1089 static FORCEINLINE ULONG ISimpleAudioVolume_Release(ISimpleAudioVolume* This) {
   1090     return This->lpVtbl->Release(This);
   1091 }
   1092 /*** ISimpleAudioVolume methods ***/
   1093 static FORCEINLINE HRESULT ISimpleAudioVolume_SetMasterVolume(ISimpleAudioVolume* This,float fLevel,LPCGUID EventContext) {
   1094     return This->lpVtbl->SetMasterVolume(This,fLevel,EventContext);
   1095 }
   1096 static FORCEINLINE HRESULT ISimpleAudioVolume_GetMasterVolume(ISimpleAudioVolume* This,float *pfLevel) {
   1097     return This->lpVtbl->GetMasterVolume(This,pfLevel);
   1098 }
   1099 static FORCEINLINE HRESULT ISimpleAudioVolume_SetMute(ISimpleAudioVolume* This,const WINBOOL bMute,LPCGUID EventContext) {
   1100     return This->lpVtbl->SetMute(This,bMute,EventContext);
   1101 }
   1102 static FORCEINLINE HRESULT ISimpleAudioVolume_GetMute(ISimpleAudioVolume* This,WINBOOL *pbMute) {
   1103     return This->lpVtbl->GetMute(This,pbMute);
   1104 }
   1105 #endif
   1106 #endif
   1107 
   1108 #endif
   1109 
   1110 HRESULT STDMETHODCALLTYPE ISimpleAudioVolume_SetMasterVolume_Proxy(
   1111     ISimpleAudioVolume* This,
   1112     float fLevel,
   1113     LPCGUID EventContext);
   1114 void __RPC_STUB ISimpleAudioVolume_SetMasterVolume_Stub(
   1115     IRpcStubBuffer* This,
   1116     IRpcChannelBuffer* pRpcChannelBuffer,
   1117     PRPC_MESSAGE pRpcMessage,
   1118     DWORD* pdwStubPhase);
   1119 HRESULT STDMETHODCALLTYPE ISimpleAudioVolume_GetMasterVolume_Proxy(
   1120     ISimpleAudioVolume* This,
   1121     float *pfLevel);
   1122 void __RPC_STUB ISimpleAudioVolume_GetMasterVolume_Stub(
   1123     IRpcStubBuffer* This,
   1124     IRpcChannelBuffer* pRpcChannelBuffer,
   1125     PRPC_MESSAGE pRpcMessage,
   1126     DWORD* pdwStubPhase);
   1127 HRESULT STDMETHODCALLTYPE ISimpleAudioVolume_SetMute_Proxy(
   1128     ISimpleAudioVolume* This,
   1129     const WINBOOL bMute,
   1130     LPCGUID EventContext);
   1131 void __RPC_STUB ISimpleAudioVolume_SetMute_Stub(
   1132     IRpcStubBuffer* This,
   1133     IRpcChannelBuffer* pRpcChannelBuffer,
   1134     PRPC_MESSAGE pRpcMessage,
   1135     DWORD* pdwStubPhase);
   1136 HRESULT STDMETHODCALLTYPE ISimpleAudioVolume_GetMute_Proxy(
   1137     ISimpleAudioVolume* This,
   1138     WINBOOL *pbMute);
   1139 void __RPC_STUB ISimpleAudioVolume_GetMute_Stub(
   1140     IRpcStubBuffer* This,
   1141     IRpcChannelBuffer* pRpcChannelBuffer,
   1142     PRPC_MESSAGE pRpcMessage,
   1143     DWORD* pdwStubPhase);
   1144 
   1145 #endif  /* __ISimpleAudioVolume_INTERFACE_DEFINED__ */
   1146 
   1147 /*****************************************************************************
   1148  * IAudioStreamVolume interface
   1149  */
   1150 #ifndef __IAudioStreamVolume_INTERFACE_DEFINED__
   1151 #define __IAudioStreamVolume_INTERFACE_DEFINED__
   1152 
   1153 DEFINE_GUID(IID_IAudioStreamVolume, 0x93014887, 0x242d, 0x4068, 0x8a,0x15, 0xcf,0x5e,0x93,0xb9,0x0f,0xe3);
   1154 #if defined(__cplusplus) && !defined(CINTERFACE)
   1155 MIDL_INTERFACE("93014887-242d-4068-8a15-cf5e93b90fe3")
   1156 IAudioStreamVolume : public IUnknown
   1157 {
   1158     virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
   1159         UINT32 *pdwCount) = 0;
   1160 
   1161     virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
   1162         UINT32 dwIndex,
   1163         const float fLevel) = 0;
   1164 
   1165     virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
   1166         UINT32 dwIndex,
   1167         float *pfLevel) = 0;
   1168 
   1169     virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
   1170         UINT32 dwCount,
   1171         const float *pfVolumes) = 0;
   1172 
   1173     virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
   1174         UINT32 dwCount,
   1175         float *pfVolumes) = 0;
   1176 
   1177 };
   1178 #ifdef __CRT_UUID_DECL
   1179 __CRT_UUID_DECL(IAudioStreamVolume, 0x93014887, 0x242d, 0x4068, 0x8a,0x15, 0xcf,0x5e,0x93,0xb9,0x0f,0xe3)
   1180 #endif
   1181 #else
   1182 typedef struct IAudioStreamVolumeVtbl {
   1183     BEGIN_INTERFACE
   1184 
   1185     /*** IUnknown methods ***/
   1186     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1187         IAudioStreamVolume* This,
   1188         REFIID riid,
   1189         void **ppvObject);
   1190 
   1191     ULONG (STDMETHODCALLTYPE *AddRef)(
   1192         IAudioStreamVolume* This);
   1193 
   1194     ULONG (STDMETHODCALLTYPE *Release)(
   1195         IAudioStreamVolume* This);
   1196 
   1197     /*** IAudioStreamVolume methods ***/
   1198     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
   1199         IAudioStreamVolume* This,
   1200         UINT32 *pdwCount);
   1201 
   1202     HRESULT (STDMETHODCALLTYPE *SetChannelVolume)(
   1203         IAudioStreamVolume* This,
   1204         UINT32 dwIndex,
   1205         const float fLevel);
   1206 
   1207     HRESULT (STDMETHODCALLTYPE *GetChannelVolume)(
   1208         IAudioStreamVolume* This,
   1209         UINT32 dwIndex,
   1210         float *pfLevel);
   1211 
   1212     HRESULT (STDMETHODCALLTYPE *SetAllVolumes)(
   1213         IAudioStreamVolume* This,
   1214         UINT32 dwCount,
   1215         const float *pfVolumes);
   1216 
   1217     HRESULT (STDMETHODCALLTYPE *GetAllVolumes)(
   1218         IAudioStreamVolume* This,
   1219         UINT32 dwCount,
   1220         float *pfVolumes);
   1221 
   1222     END_INTERFACE
   1223 } IAudioStreamVolumeVtbl;
   1224 interface IAudioStreamVolume {
   1225     CONST_VTBL IAudioStreamVolumeVtbl* lpVtbl;
   1226 };
   1227 
   1228 #ifdef COBJMACROS
   1229 #ifndef WIDL_C_INLINE_WRAPPERS
   1230 /*** IUnknown methods ***/
   1231 #define IAudioStreamVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1232 #define IAudioStreamVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
   1233 #define IAudioStreamVolume_Release(This) (This)->lpVtbl->Release(This)
   1234 /*** IAudioStreamVolume methods ***/
   1235 #define IAudioStreamVolume_GetChannelCount(This,pdwCount) (This)->lpVtbl->GetChannelCount(This,pdwCount)
   1236 #define IAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel) (This)->lpVtbl->SetChannelVolume(This,dwIndex,fLevel)
   1237 #define IAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel) (This)->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel)
   1238 #define IAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes)
   1239 #define IAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes)
   1240 #else
   1241 /*** IUnknown methods ***/
   1242 static FORCEINLINE HRESULT IAudioStreamVolume_QueryInterface(IAudioStreamVolume* This,REFIID riid,void **ppvObject) {
   1243     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1244 }
   1245 static FORCEINLINE ULONG IAudioStreamVolume_AddRef(IAudioStreamVolume* This) {
   1246     return This->lpVtbl->AddRef(This);
   1247 }
   1248 static FORCEINLINE ULONG IAudioStreamVolume_Release(IAudioStreamVolume* This) {
   1249     return This->lpVtbl->Release(This);
   1250 }
   1251 /*** IAudioStreamVolume methods ***/
   1252 static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelCount(IAudioStreamVolume* This,UINT32 *pdwCount) {
   1253     return This->lpVtbl->GetChannelCount(This,pdwCount);
   1254 }
   1255 static FORCEINLINE HRESULT IAudioStreamVolume_SetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,const float fLevel) {
   1256     return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel);
   1257 }
   1258 static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,float *pfLevel) {
   1259     return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
   1260 }
   1261 static FORCEINLINE HRESULT IAudioStreamVolume_SetAllVolumes(IAudioStreamVolume* This,UINT32 dwCount,const float *pfVolumes) {
   1262     return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes);
   1263 }
   1264 static FORCEINLINE HRESULT IAudioStreamVolume_GetAllVolumes(IAudioStreamVolume* This,UINT32 dwCount,float *pfVolumes) {
   1265     return This->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes);
   1266 }
   1267 #endif
   1268 #endif
   1269 
   1270 #endif
   1271 
   1272 HRESULT STDMETHODCALLTYPE IAudioStreamVolume_GetChannelCount_Proxy(
   1273     IAudioStreamVolume* This,
   1274     UINT32 *pdwCount);
   1275 void __RPC_STUB IAudioStreamVolume_GetChannelCount_Stub(
   1276     IRpcStubBuffer* This,
   1277     IRpcChannelBuffer* pRpcChannelBuffer,
   1278     PRPC_MESSAGE pRpcMessage,
   1279     DWORD* pdwStubPhase);
   1280 HRESULT STDMETHODCALLTYPE IAudioStreamVolume_SetChannelVolume_Proxy(
   1281     IAudioStreamVolume* This,
   1282     UINT32 dwIndex,
   1283     const float fLevel);
   1284 void __RPC_STUB IAudioStreamVolume_SetChannelVolume_Stub(
   1285     IRpcStubBuffer* This,
   1286     IRpcChannelBuffer* pRpcChannelBuffer,
   1287     PRPC_MESSAGE pRpcMessage,
   1288     DWORD* pdwStubPhase);
   1289 HRESULT STDMETHODCALLTYPE IAudioStreamVolume_GetChannelVolume_Proxy(
   1290     IAudioStreamVolume* This,
   1291     UINT32 dwIndex,
   1292     float *pfLevel);
   1293 void __RPC_STUB IAudioStreamVolume_GetChannelVolume_Stub(
   1294     IRpcStubBuffer* This,
   1295     IRpcChannelBuffer* pRpcChannelBuffer,
   1296     PRPC_MESSAGE pRpcMessage,
   1297     DWORD* pdwStubPhase);
   1298 HRESULT STDMETHODCALLTYPE IAudioStreamVolume_SetAllVolumes_Proxy(
   1299     IAudioStreamVolume* This,
   1300     UINT32 dwCount,
   1301     const float *pfVolumes);
   1302 void __RPC_STUB IAudioStreamVolume_SetAllVolumes_Stub(
   1303     IRpcStubBuffer* This,
   1304     IRpcChannelBuffer* pRpcChannelBuffer,
   1305     PRPC_MESSAGE pRpcMessage,
   1306     DWORD* pdwStubPhase);
   1307 HRESULT STDMETHODCALLTYPE IAudioStreamVolume_GetAllVolumes_Proxy(
   1308     IAudioStreamVolume* This,
   1309     UINT32 dwCount,
   1310     float *pfVolumes);
   1311 void __RPC_STUB IAudioStreamVolume_GetAllVolumes_Stub(
   1312     IRpcStubBuffer* This,
   1313     IRpcChannelBuffer* pRpcChannelBuffer,
   1314     PRPC_MESSAGE pRpcMessage,
   1315     DWORD* pdwStubPhase);
   1316 
   1317 #endif  /* __IAudioStreamVolume_INTERFACE_DEFINED__ */
   1318 
   1319 /*****************************************************************************
   1320  * IChannelAudioVolume interface
   1321  */
   1322 #ifndef __IChannelAudioVolume_INTERFACE_DEFINED__
   1323 #define __IChannelAudioVolume_INTERFACE_DEFINED__
   1324 
   1325 DEFINE_GUID(IID_IChannelAudioVolume, 0x1c158861, 0xb533, 0x4b30, 0xb1,0xcf, 0xe8,0x53,0xe5,0x1c,0x59,0xb8);
   1326 #if defined(__cplusplus) && !defined(CINTERFACE)
   1327 MIDL_INTERFACE("1c158861-b533-4b30-b1cf-e853e51c59b8")
   1328 IChannelAudioVolume : public IUnknown
   1329 {
   1330     virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
   1331         UINT32 *pdwCount) = 0;
   1332 
   1333     virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
   1334         UINT32 dwIndex,
   1335         const float fLevel,
   1336         LPCGUID EventContext) = 0;
   1337 
   1338     virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
   1339         UINT32 dwIndex,
   1340         float *pfLevel) = 0;
   1341 
   1342     virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
   1343         UINT32 dwCount,
   1344         const float *pfVolumes,
   1345         LPCGUID EventContext) = 0;
   1346 
   1347     virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
   1348         UINT32 dwCount,
   1349         float *pfVolumes) = 0;
   1350 
   1351 };
   1352 #ifdef __CRT_UUID_DECL
   1353 __CRT_UUID_DECL(IChannelAudioVolume, 0x1c158861, 0xb533, 0x4b30, 0xb1,0xcf, 0xe8,0x53,0xe5,0x1c,0x59,0xb8)
   1354 #endif
   1355 #else
   1356 typedef struct IChannelAudioVolumeVtbl {
   1357     BEGIN_INTERFACE
   1358 
   1359     /*** IUnknown methods ***/
   1360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1361         IChannelAudioVolume* This,
   1362         REFIID riid,
   1363         void **ppvObject);
   1364 
   1365     ULONG (STDMETHODCALLTYPE *AddRef)(
   1366         IChannelAudioVolume* This);
   1367 
   1368     ULONG (STDMETHODCALLTYPE *Release)(
   1369         IChannelAudioVolume* This);
   1370 
   1371     /*** IChannelAudioVolume methods ***/
   1372     HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
   1373         IChannelAudioVolume* This,
   1374         UINT32 *pdwCount);
   1375 
   1376     HRESULT (STDMETHODCALLTYPE *SetChannelVolume)(
   1377         IChannelAudioVolume* This,
   1378         UINT32 dwIndex,
   1379         const float fLevel,
   1380         LPCGUID EventContext);
   1381 
   1382     HRESULT (STDMETHODCALLTYPE *GetChannelVolume)(
   1383         IChannelAudioVolume* This,
   1384         UINT32 dwIndex,
   1385         float *pfLevel);
   1386 
   1387     HRESULT (STDMETHODCALLTYPE *SetAllVolumes)(
   1388         IChannelAudioVolume* This,
   1389         UINT32 dwCount,
   1390         const float *pfVolumes,
   1391         LPCGUID EventContext);
   1392 
   1393     HRESULT (STDMETHODCALLTYPE *GetAllVolumes)(
   1394         IChannelAudioVolume* This,
   1395         UINT32 dwCount,
   1396         float *pfVolumes);
   1397 
   1398     END_INTERFACE
   1399 } IChannelAudioVolumeVtbl;
   1400 interface IChannelAudioVolume {
   1401     CONST_VTBL IChannelAudioVolumeVtbl* lpVtbl;
   1402 };
   1403 
   1404 #ifdef COBJMACROS
   1405 #ifndef WIDL_C_INLINE_WRAPPERS
   1406 /*** IUnknown methods ***/
   1407 #define IChannelAudioVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1408 #define IChannelAudioVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
   1409 #define IChannelAudioVolume_Release(This) (This)->lpVtbl->Release(This)
   1410 /*** IChannelAudioVolume methods ***/
   1411 #define IChannelAudioVolume_GetChannelCount(This,pdwCount) (This)->lpVtbl->GetChannelCount(This,pdwCount)
   1412 #define IChannelAudioVolume_SetChannelVolume(This,dwIndex,fLevel,EventContext) (This)->lpVtbl->SetChannelVolume(This,dwIndex,fLevel,EventContext)
   1413 #define IChannelAudioVolume_GetChannelVolume(This,dwIndex,pfLevel) (This)->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel)
   1414 #define IChannelAudioVolume_SetAllVolumes(This,dwCount,pfVolumes,EventContext) (This)->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes,EventContext)
   1415 #define IChannelAudioVolume_GetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes)
   1416 #else
   1417 /*** IUnknown methods ***/
   1418 static FORCEINLINE HRESULT IChannelAudioVolume_QueryInterface(IChannelAudioVolume* This,REFIID riid,void **ppvObject) {
   1419     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1420 }
   1421 static FORCEINLINE ULONG IChannelAudioVolume_AddRef(IChannelAudioVolume* This) {
   1422     return This->lpVtbl->AddRef(This);
   1423 }
   1424 static FORCEINLINE ULONG IChannelAudioVolume_Release(IChannelAudioVolume* This) {
   1425     return This->lpVtbl->Release(This);
   1426 }
   1427 /*** IChannelAudioVolume methods ***/
   1428 static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelCount(IChannelAudioVolume* This,UINT32 *pdwCount) {
   1429     return This->lpVtbl->GetChannelCount(This,pdwCount);
   1430 }
   1431 static FORCEINLINE HRESULT IChannelAudioVolume_SetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,const float fLevel,LPCGUID EventContext) {
   1432     return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel,EventContext);
   1433 }
   1434 static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,float *pfLevel) {
   1435     return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
   1436 }
   1437 static FORCEINLINE HRESULT IChannelAudioVolume_SetAllVolumes(IChannelAudioVolume* This,UINT32 dwCount,const float *pfVolumes,LPCGUID EventContext) {
   1438     return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes,EventContext);
   1439 }
   1440 static FORCEINLINE HRESULT IChannelAudioVolume_GetAllVolumes(IChannelAudioVolume* This,UINT32 dwCount,float *pfVolumes) {
   1441     return This->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes);
   1442 }
   1443 #endif
   1444 #endif
   1445 
   1446 #endif
   1447 
   1448 HRESULT STDMETHODCALLTYPE IChannelAudioVolume_GetChannelCount_Proxy(
   1449     IChannelAudioVolume* This,
   1450     UINT32 *pdwCount);
   1451 void __RPC_STUB IChannelAudioVolume_GetChannelCount_Stub(
   1452     IRpcStubBuffer* This,
   1453     IRpcChannelBuffer* pRpcChannelBuffer,
   1454     PRPC_MESSAGE pRpcMessage,
   1455     DWORD* pdwStubPhase);
   1456 HRESULT STDMETHODCALLTYPE IChannelAudioVolume_SetChannelVolume_Proxy(
   1457     IChannelAudioVolume* This,
   1458     UINT32 dwIndex,
   1459     const float fLevel,
   1460     LPCGUID EventContext);
   1461 void __RPC_STUB IChannelAudioVolume_SetChannelVolume_Stub(
   1462     IRpcStubBuffer* This,
   1463     IRpcChannelBuffer* pRpcChannelBuffer,
   1464     PRPC_MESSAGE pRpcMessage,
   1465     DWORD* pdwStubPhase);
   1466 HRESULT STDMETHODCALLTYPE IChannelAudioVolume_GetChannelVolume_Proxy(
   1467     IChannelAudioVolume* This,
   1468     UINT32 dwIndex,
   1469     float *pfLevel);
   1470 void __RPC_STUB IChannelAudioVolume_GetChannelVolume_Stub(
   1471     IRpcStubBuffer* This,
   1472     IRpcChannelBuffer* pRpcChannelBuffer,
   1473     PRPC_MESSAGE pRpcMessage,
   1474     DWORD* pdwStubPhase);
   1475 HRESULT STDMETHODCALLTYPE IChannelAudioVolume_SetAllVolumes_Proxy(
   1476     IChannelAudioVolume* This,
   1477     UINT32 dwCount,
   1478     const float *pfVolumes,
   1479     LPCGUID EventContext);
   1480 void __RPC_STUB IChannelAudioVolume_SetAllVolumes_Stub(
   1481     IRpcStubBuffer* This,
   1482     IRpcChannelBuffer* pRpcChannelBuffer,
   1483     PRPC_MESSAGE pRpcMessage,
   1484     DWORD* pdwStubPhase);
   1485 HRESULT STDMETHODCALLTYPE IChannelAudioVolume_GetAllVolumes_Proxy(
   1486     IChannelAudioVolume* This,
   1487     UINT32 dwCount,
   1488     float *pfVolumes);
   1489 void __RPC_STUB IChannelAudioVolume_GetAllVolumes_Stub(
   1490     IRpcStubBuffer* This,
   1491     IRpcChannelBuffer* pRpcChannelBuffer,
   1492     PRPC_MESSAGE pRpcMessage,
   1493     DWORD* pdwStubPhase);
   1494 
   1495 #endif  /* __IChannelAudioVolume_INTERFACE_DEFINED__ */
   1496 
   1497 #define FACILIY_AUDCLNT 0x889
   1498 #define AUDCLNT_ERR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILIY_AUDCLNT, n)
   1499 #define AUDCLNT_SUCCESS(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILIY_AUDCLNT, n)
   1500 #define AUDCLNT_E_NOT_INITIALIZED AUDCLNT_ERR(1)
   1501 #define AUDCLNT_E_ALREADY_INITIALIZED AUDCLNT_ERR(2)
   1502 #define AUDCLNT_E_WRONG_ENDPOINT_TYPE AUDCLNT_ERR(3)
   1503 #define AUDCLNT_E_DEVICE_INVALIDATED AUDCLNT_ERR(4)
   1504 #define AUDCLNT_E_NOT_STOPPED AUDCLNT_ERR(5)
   1505 #define AUDCLNT_E_BUFFER_TOO_LARGE AUDCLNT_ERR(6)
   1506 #define AUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(7)
   1507 #define AUDCLNT_E_UNSUPPORTED_FORMAT AUDCLNT_ERR(8)
   1508 #define AUDCLNT_E_INVALID_SIZE AUDCLNT_ERR(9)
   1509 #define AUDCLNT_E_DEVICE_IN_USE AUDCLNT_ERR(0x0a)
   1510 #define AUDCLNT_E_BUFFER_OPERATION_PENDING AUDCLNT_ERR(0x0b)
   1511 #define AUDCLNT_E_THREAD_NOT_REGISTERED AUDCLNT_ERR(0x0c)
   1512 #define AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED AUDCLNT_ERR(0x0e)
   1513 #define AUDCLNT_E_ENDPOINT_CREATE_FAILED AUDCLNT_ERR(0x0f)
   1514 #define AUDCLNT_E_SERVICE_NOT_RUNNING AUDCLNT_ERR(0x10)
   1515 #define AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED AUDCLNT_ERR(0x11)
   1516 #define AUDCLNT_E_EXCLUSIVE_MODE_ONLY AUDCLNT_ERR(0x12)
   1517 #define AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL AUDCLNT_ERR(0x13)
   1518 #define AUDCLNT_E_EVENTHANDLE_NOT_SET AUDCLNT_ERR(0x14)
   1519 #define AUDCLNT_E_INCORRECT_BUFFER_SIZE AUDCLNT_ERR(0x15)
   1520 #define AUDCLNT_E_BUFFER_SIZE_ERROR AUDCLNT_ERR(0x16)
   1521 #define AUDCLNT_E_CPUUSAGE_EXCEEDED AUDCLNT_ERR(0x17)
   1522 #define AUDCLNT_E_BUFFER_ERROR AUDCLNT_ERR(0x18)
   1523 #define AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED AUDCLNT_ERR(0x19)
   1524 #define AUDCLNT_E_INVALID_DEVICE_PERIOD AUDCLNT_ERR(0x20)
   1525 #define AUDCLNT_E_INVALID_STREAM_FLAG AUDCLNT_ERR(0x021)
   1526 #define AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE AUDCLNT_ERR(0x022)
   1527 #define AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES AUDCLNT_ERR(0x023)
   1528 #define AUDCLNT_E_OFFLOAD_MODE_ONLY AUDCLNT_ERR(0x024)
   1529 #define AUDCLNT_E_NONOFFLOAD_MODE_ONLY AUDCLNT_ERR(0x025)
   1530 #define AUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x026)
   1531 #define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x1)
   1532 #define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x2)
   1533 #define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x3)
   1534 /* Begin additional prototypes for all interfaces */
   1535 
   1536 
   1537 /* End additional prototypes */
   1538 
   1539 #ifdef __cplusplus
   1540 }
   1541 #endif
   1542 
   1543 #endif /* __audioclient_h__ */
   1544