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__
22typedef interface IAudioClient IAudioClient;
23#endif
24
25#ifndef __IAudioRenderClient_FWD_DEFINED__
26#define __IAudioRenderClient_FWD_DEFINED__
27typedef interface IAudioRenderClient IAudioRenderClient;
28#endif
29
30#ifndef __IAudioCaptureClient_FWD_DEFINED__
31#define __IAudioCaptureClient_FWD_DEFINED__
32typedef interface IAudioCaptureClient IAudioCaptureClient;
33#endif
34
35#ifndef __IAudioClock_FWD_DEFINED__
36#define __IAudioClock_FWD_DEFINED__
37typedef interface IAudioClock IAudioClock;
38#endif
39
40#ifndef __IAudioClock2_FWD_DEFINED__
41#define __IAudioClock2_FWD_DEFINED__
42typedef interface IAudioClock2 IAudioClock2;
43#endif
44
45#ifndef __IAudioClockAdjustment_FWD_DEFINED__
46#define __IAudioClockAdjustment_FWD_DEFINED__
47typedef interface IAudioClockAdjustment IAudioClockAdjustment;
48#endif
49
50#ifndef __ISimpleAudioVolume_FWD_DEFINED__
51#define __ISimpleAudioVolume_FWD_DEFINED__
52typedef interface ISimpleAudioVolume ISimpleAudioVolume;
53#endif
54
55#ifndef __IAudioStreamVolume_FWD_DEFINED__
56#define __IAudioStreamVolume_FWD_DEFINED__
57typedef interface IAudioStreamVolume IAudioStreamVolume;
58#endif
59
60#ifndef __IChannelAudioVolume_FWD_DEFINED__
61#define __IChannelAudioVolume_FWD_DEFINED__
62typedef 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
72extern "C" {
73#endif
74
75#ifndef __IAudioClient_FWD_DEFINED__
76#define __IAudioClient_FWD_DEFINED__
77typedef interface IAudioClient IAudioClient;
78#endif
79
80#ifndef __IAudioRenderClient_FWD_DEFINED__
81#define __IAudioRenderClient_FWD_DEFINED__
82typedef interface IAudioRenderClient IAudioRenderClient;
83#endif
84
85#ifndef __IAudioCaptureClient_FWD_DEFINED__
86#define __IAudioCaptureClient_FWD_DEFINED__
87typedef interface IAudioCaptureClient IAudioCaptureClient;
88#endif
89
90#ifndef __IAudioClock_FWD_DEFINED__
91#define __IAudioClock_FWD_DEFINED__
92typedef interface IAudioClock IAudioClock;
93#endif
94
95#ifndef __IAudioClock2_FWD_DEFINED__
96#define __IAudioClock2_FWD_DEFINED__
97typedef interface IAudioClock2 IAudioClock2;
98#endif
99
100#ifndef __IAudioClockAdjustment_FWD_DEFINED__
101#define __IAudioClockAdjustment_FWD_DEFINED__
102typedef interface IAudioClockAdjustment IAudioClockAdjustment;
103#endif
104
105#ifndef __ISimpleAudioVolume_FWD_DEFINED__
106#define __ISimpleAudioVolume_FWD_DEFINED__
107typedef interface ISimpleAudioVolume ISimpleAudioVolume;
108#endif
109
110#ifndef __IAudioStreamVolume_FWD_DEFINED__
111#define __IAudioStreamVolume_FWD_DEFINED__
112typedef interface IAudioStreamVolume IAudioStreamVolume;
113#endif
114
115#ifndef __IChannelAudioVolume_FWD_DEFINED__
116#define __IChannelAudioVolume_FWD_DEFINED__
117typedef interface IChannelAudioVolume IChannelAudioVolume;
118#endif
119
120#if 0
121typedef 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
134typedef LONGLONG REFERENCE_TIME;
135#else
136#define _IKsControl_
137#include <ks.h>
138#include <ksmedia.h>
139#endif
140enum _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
152DEFINE_GUID(IID_IAudioClient, 0x1cb9ad4c, 0xdbfa, 0x4c32, 0xb1,0x78, 0xc2,0xf5,0x68,0xa7,0x03,0xb2);
153#if defined(__cplusplus) && !defined(CINTERFACE)
154MIDL_INTERFACE("1cb9ad4c-dbfa-4c32-b178-c2f568a703b2")
155IAudioClient : 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
207typedef 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;
279interface 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 ***/
304static FORCEINLINE HRESULT IAudioClient_QueryInterface(IAudioClient* This,REFIID riid,void **ppvObject) {
305    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
306}
307static FORCEINLINE ULONG IAudioClient_AddRef(IAudioClient* This) {
308    return This->lpVtbl->AddRef(This);
309}
310static FORCEINLINE ULONG IAudioClient_Release(IAudioClient* This) {
311    return This->lpVtbl->Release(This);
312}
313/*** IAudioClient methods ***/
314static 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}
317static FORCEINLINE HRESULT IAudioClient_GetBufferSize(IAudioClient* This,UINT32 *pNumBufferFrames) {
318    return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
319}
320static FORCEINLINE HRESULT IAudioClient_GetStreamLatency(IAudioClient* This,REFERENCE_TIME *phnsLatency) {
321    return This->lpVtbl->GetStreamLatency(This,phnsLatency);
322}
323static FORCEINLINE HRESULT IAudioClient_GetCurrentPadding(IAudioClient* This,UINT32 *pNumPaddingFrames) {
324    return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
325}
326static FORCEINLINE HRESULT IAudioClient_IsFormatSupported(IAudioClient* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
327    return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
328}
329static FORCEINLINE HRESULT IAudioClient_GetMixFormat(IAudioClient* This,WAVEFORMATEX **ppDeviceFormat) {
330    return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
331}
332static FORCEINLINE HRESULT IAudioClient_GetDevicePeriod(IAudioClient* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
333    return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
334}
335static FORCEINLINE HRESULT IAudioClient_Start(IAudioClient* This) {
336    return This->lpVtbl->Start(This);
337}
338static FORCEINLINE HRESULT IAudioClient_Stop(IAudioClient* This) {
339    return This->lpVtbl->Stop(This);
340}
341static FORCEINLINE HRESULT IAudioClient_Reset(IAudioClient* This) {
342    return This->lpVtbl->Reset(This);
343}
344static FORCEINLINE HRESULT IAudioClient_SetEventHandle(IAudioClient* This,HANDLE eventHandle) {
345    return This->lpVtbl->SetEventHandle(This,eventHandle);
346}
347static 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
355HRESULT 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);
363void __RPC_STUB IAudioClient_Initialize_Stub(
364    IRpcStubBuffer* This,
365    IRpcChannelBuffer* pRpcChannelBuffer,
366    PRPC_MESSAGE pRpcMessage,
367    DWORD* pdwStubPhase);
368HRESULT STDMETHODCALLTYPE IAudioClient_GetBufferSize_Proxy(
369    IAudioClient* This,
370    UINT32 *pNumBufferFrames);
371void __RPC_STUB IAudioClient_GetBufferSize_Stub(
372    IRpcStubBuffer* This,
373    IRpcChannelBuffer* pRpcChannelBuffer,
374    PRPC_MESSAGE pRpcMessage,
375    DWORD* pdwStubPhase);
376HRESULT STDMETHODCALLTYPE IAudioClient_GetStreamLatency_Proxy(
377    IAudioClient* This,
378    REFERENCE_TIME *phnsLatency);
379void __RPC_STUB IAudioClient_GetStreamLatency_Stub(
380    IRpcStubBuffer* This,
381    IRpcChannelBuffer* pRpcChannelBuffer,
382    PRPC_MESSAGE pRpcMessage,
383    DWORD* pdwStubPhase);
384HRESULT STDMETHODCALLTYPE IAudioClient_GetCurrentPadding_Proxy(
385    IAudioClient* This,
386    UINT32 *pNumPaddingFrames);
387void __RPC_STUB IAudioClient_GetCurrentPadding_Stub(
388    IRpcStubBuffer* This,
389    IRpcChannelBuffer* pRpcChannelBuffer,
390    PRPC_MESSAGE pRpcMessage,
391    DWORD* pdwStubPhase);
392HRESULT STDMETHODCALLTYPE IAudioClient_IsFormatSupported_Proxy(
393    IAudioClient* This,
394    AUDCLNT_SHAREMODE ShareMode,
395    const WAVEFORMATEX *pFormat,
396    WAVEFORMATEX **ppClosestMatch);
397void __RPC_STUB IAudioClient_IsFormatSupported_Stub(
398    IRpcStubBuffer* This,
399    IRpcChannelBuffer* pRpcChannelBuffer,
400    PRPC_MESSAGE pRpcMessage,
401    DWORD* pdwStubPhase);
402HRESULT STDMETHODCALLTYPE IAudioClient_GetMixFormat_Proxy(
403    IAudioClient* This,
404    WAVEFORMATEX **ppDeviceFormat);
405void __RPC_STUB IAudioClient_GetMixFormat_Stub(
406    IRpcStubBuffer* This,
407    IRpcChannelBuffer* pRpcChannelBuffer,
408    PRPC_MESSAGE pRpcMessage,
409    DWORD* pdwStubPhase);
410HRESULT STDMETHODCALLTYPE IAudioClient_GetDevicePeriod_Proxy(
411    IAudioClient* This,
412    REFERENCE_TIME *phnsDefaultDevicePeriod,
413    REFERENCE_TIME *phnsMinimumDevicePeriod);
414void __RPC_STUB IAudioClient_GetDevicePeriod_Stub(
415    IRpcStubBuffer* This,
416    IRpcChannelBuffer* pRpcChannelBuffer,
417    PRPC_MESSAGE pRpcMessage,
418    DWORD* pdwStubPhase);
419HRESULT STDMETHODCALLTYPE IAudioClient_Start_Proxy(
420    IAudioClient* This);
421void __RPC_STUB IAudioClient_Start_Stub(
422    IRpcStubBuffer* This,
423    IRpcChannelBuffer* pRpcChannelBuffer,
424    PRPC_MESSAGE pRpcMessage,
425    DWORD* pdwStubPhase);
426HRESULT STDMETHODCALLTYPE IAudioClient_Stop_Proxy(
427    IAudioClient* This);
428void __RPC_STUB IAudioClient_Stop_Stub(
429    IRpcStubBuffer* This,
430    IRpcChannelBuffer* pRpcChannelBuffer,
431    PRPC_MESSAGE pRpcMessage,
432    DWORD* pdwStubPhase);
433HRESULT STDMETHODCALLTYPE IAudioClient_Reset_Proxy(
434    IAudioClient* This);
435void __RPC_STUB IAudioClient_Reset_Stub(
436    IRpcStubBuffer* This,
437    IRpcChannelBuffer* pRpcChannelBuffer,
438    PRPC_MESSAGE pRpcMessage,
439    DWORD* pdwStubPhase);
440HRESULT STDMETHODCALLTYPE IAudioClient_SetEventHandle_Proxy(
441    IAudioClient* This,
442    HANDLE eventHandle);
443void __RPC_STUB IAudioClient_SetEventHandle_Stub(
444    IRpcStubBuffer* This,
445    IRpcChannelBuffer* pRpcChannelBuffer,
446    PRPC_MESSAGE pRpcMessage,
447    DWORD* pdwStubPhase);
448HRESULT STDMETHODCALLTYPE IAudioClient_GetService_Proxy(
449    IAudioClient* This,
450    REFIID riid,
451    void **ppv);
452void __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
466DEFINE_GUID(IID_IAudioRenderClient, 0xf294acfc, 0x3146, 0x4483, 0xa7,0xbf, 0xad,0xdc,0xa7,0xc2,0x60,0xe2);
467#if defined(__cplusplus) && !defined(CINTERFACE)
468MIDL_INTERFACE("f294acfc-3146-4483-a7bf-addca7c260e2")
469IAudioRenderClient : 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
484typedef 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;
512interface 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 ***/
527static FORCEINLINE HRESULT IAudioRenderClient_QueryInterface(IAudioRenderClient* This,REFIID riid,void **ppvObject) {
528    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
529}
530static FORCEINLINE ULONG IAudioRenderClient_AddRef(IAudioRenderClient* This) {
531    return This->lpVtbl->AddRef(This);
532}
533static FORCEINLINE ULONG IAudioRenderClient_Release(IAudioRenderClient* This) {
534    return This->lpVtbl->Release(This);
535}
536/*** IAudioRenderClient methods ***/
537static FORCEINLINE HRESULT IAudioRenderClient_GetBuffer(IAudioRenderClient* This,UINT32 NumFramesRequested,BYTE **ppData) {
538    return This->lpVtbl->GetBuffer(This,NumFramesRequested,ppData);
539}
540static 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
548HRESULT STDMETHODCALLTYPE IAudioRenderClient_GetBuffer_Proxy(
549    IAudioRenderClient* This,
550    UINT32 NumFramesRequested,
551    BYTE **ppData);
552void __RPC_STUB IAudioRenderClient_GetBuffer_Stub(
553    IRpcStubBuffer* This,
554    IRpcChannelBuffer* pRpcChannelBuffer,
555    PRPC_MESSAGE pRpcMessage,
556    DWORD* pdwStubPhase);
557HRESULT STDMETHODCALLTYPE IAudioRenderClient_ReleaseBuffer_Proxy(
558    IAudioRenderClient* This,
559    UINT32 NumFramesWritten,
560    DWORD dwFlags);
561void __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
575DEFINE_GUID(IID_IAudioCaptureClient, 0xc8adbd64, 0xe71e, 0x48a0, 0xa4,0xde, 0x18,0x5c,0x39,0x5c,0xd3,0x17);
576#if defined(__cplusplus) && !defined(CINTERFACE)
577MIDL_INTERFACE("c8adbd64-e71e-48a0-a4de-185c395cd317")
578IAudioCaptureClient : 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
598typedef 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;
632interface 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 ***/
648static FORCEINLINE HRESULT IAudioCaptureClient_QueryInterface(IAudioCaptureClient* This,REFIID riid,void **ppvObject) {
649    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
650}
651static FORCEINLINE ULONG IAudioCaptureClient_AddRef(IAudioCaptureClient* This) {
652    return This->lpVtbl->AddRef(This);
653}
654static FORCEINLINE ULONG IAudioCaptureClient_Release(IAudioCaptureClient* This) {
655    return This->lpVtbl->Release(This);
656}
657/*** IAudioCaptureClient methods ***/
658static 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}
661static FORCEINLINE HRESULT IAudioCaptureClient_ReleaseBuffer(IAudioCaptureClient* This,UINT32 NumFramesRead) {
662    return This->lpVtbl->ReleaseBuffer(This,NumFramesRead);
663}
664static FORCEINLINE HRESULT IAudioCaptureClient_GetNextPacketSize(IAudioCaptureClient* This,UINT32 *pNumFramesInNextPacket) {
665    return This->lpVtbl->GetNextPacketSize(This,pNumFramesInNextPacket);
666}
667#endif
668#endif
669
670#endif
671
672HRESULT STDMETHODCALLTYPE IAudioCaptureClient_GetBuffer_Proxy(
673    IAudioCaptureClient* This,
674    BYTE **ppData,
675    UINT32 *pNumFramesToRead,
676    DWORD *pdwFlags,
677    UINT64 *pu64DevicePosition,
678    UINT64 *pu64QPCPosition);
679void __RPC_STUB IAudioCaptureClient_GetBuffer_Stub(
680    IRpcStubBuffer* This,
681    IRpcChannelBuffer* pRpcChannelBuffer,
682    PRPC_MESSAGE pRpcMessage,
683    DWORD* pdwStubPhase);
684HRESULT STDMETHODCALLTYPE IAudioCaptureClient_ReleaseBuffer_Proxy(
685    IAudioCaptureClient* This,
686    UINT32 NumFramesRead);
687void __RPC_STUB IAudioCaptureClient_ReleaseBuffer_Stub(
688    IRpcStubBuffer* This,
689    IRpcChannelBuffer* pRpcChannelBuffer,
690    PRPC_MESSAGE pRpcMessage,
691    DWORD* pdwStubPhase);
692HRESULT STDMETHODCALLTYPE IAudioCaptureClient_GetNextPacketSize_Proxy(
693    IAudioCaptureClient* This,
694    UINT32 *pNumFramesInNextPacket);
695void __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
710DEFINE_GUID(IID_IAudioClock, 0xcd63314f, 0x3fba, 0x4a1b, 0x81,0x2c, 0xef,0x96,0x35,0x87,0x28,0xe7);
711#if defined(__cplusplus) && !defined(CINTERFACE)
712MIDL_INTERFACE("cd63314f-3fba-4a1b-812c-ef96358728e7")
713IAudioClock : 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
730typedef 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;
761interface 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 ***/
777static FORCEINLINE HRESULT IAudioClock_QueryInterface(IAudioClock* This,REFIID riid,void **ppvObject) {
778    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
779}
780static FORCEINLINE ULONG IAudioClock_AddRef(IAudioClock* This) {
781    return This->lpVtbl->AddRef(This);
782}
783static FORCEINLINE ULONG IAudioClock_Release(IAudioClock* This) {
784    return This->lpVtbl->Release(This);
785}
786/*** IAudioClock methods ***/
787static FORCEINLINE HRESULT IAudioClock_GetFrequency(IAudioClock* This,UINT64 *pu64Frequency) {
788    return This->lpVtbl->GetFrequency(This,pu64Frequency);
789}
790static FORCEINLINE HRESULT IAudioClock_GetPosition(IAudioClock* This,UINT64 *pu64Position,UINT64 *pu64QPCPosition) {
791    return This->lpVtbl->GetPosition(This,pu64Position,pu64QPCPosition);
792}
793static FORCEINLINE HRESULT IAudioClock_GetCharacteristics(IAudioClock* This,DWORD *pdwCharacteristics) {
794    return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
795}
796#endif
797#endif
798
799#endif
800
801HRESULT STDMETHODCALLTYPE IAudioClock_GetFrequency_Proxy(
802    IAudioClock* This,
803    UINT64 *pu64Frequency);
804void __RPC_STUB IAudioClock_GetFrequency_Stub(
805    IRpcStubBuffer* This,
806    IRpcChannelBuffer* pRpcChannelBuffer,
807    PRPC_MESSAGE pRpcMessage,
808    DWORD* pdwStubPhase);
809HRESULT STDMETHODCALLTYPE IAudioClock_GetPosition_Proxy(
810    IAudioClock* This,
811    UINT64 *pu64Position,
812    UINT64 *pu64QPCPosition);
813void __RPC_STUB IAudioClock_GetPosition_Stub(
814    IRpcStubBuffer* This,
815    IRpcChannelBuffer* pRpcChannelBuffer,
816    PRPC_MESSAGE pRpcMessage,
817    DWORD* pdwStubPhase);
818HRESULT STDMETHODCALLTYPE IAudioClock_GetCharacteristics_Proxy(
819    IAudioClock* This,
820    DWORD *pdwCharacteristics);
821void __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
835DEFINE_GUID(IID_IAudioClock2, 0x6f49ff73, 0x6727, 0x49ac, 0xa0,0x08, 0xd9,0x8c,0xf5,0xe7,0x00,0x48);
836#if defined(__cplusplus) && !defined(CINTERFACE)
837MIDL_INTERFACE("6f49ff73-6727-49ac-a008-d98cf5e70048")
838IAudioClock2 : 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
849typedef 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;
872interface 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 ***/
886static FORCEINLINE HRESULT IAudioClock2_QueryInterface(IAudioClock2* This,REFIID riid,void **ppvObject) {
887    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
888}
889static FORCEINLINE ULONG IAudioClock2_AddRef(IAudioClock2* This) {
890    return This->lpVtbl->AddRef(This);
891}
892static FORCEINLINE ULONG IAudioClock2_Release(IAudioClock2* This) {
893    return This->lpVtbl->Release(This);
894}
895/*** IAudioClock2 methods ***/
896static 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
904HRESULT STDMETHODCALLTYPE IAudioClock2_GetPosition_Proxy(
905    IAudioClock2* This,
906    UINT64 *DevicePosition,
907    UINT64 *QPCPosition);
908void __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
922DEFINE_GUID(IID_IAudioClockAdjustment, 0xf6e4c0a0, 0x46d9, 0x4fb9, 0xbe,0x21, 0x57,0xa3,0xef,0x2b,0x62,0x6c);
923#if defined(__cplusplus) && !defined(CINTERFACE)
924MIDL_INTERFACE("f6e4c0a0-46d9-4fb9-be21-57a3ef2b626c")
925IAudioClockAdjustment : 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
935typedef 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;
957interface 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 ***/
971static FORCEINLINE HRESULT IAudioClockAdjustment_QueryInterface(IAudioClockAdjustment* This,REFIID riid,void **ppvObject) {
972    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
973}
974static FORCEINLINE ULONG IAudioClockAdjustment_AddRef(IAudioClockAdjustment* This) {
975    return This->lpVtbl->AddRef(This);
976}
977static FORCEINLINE ULONG IAudioClockAdjustment_Release(IAudioClockAdjustment* This) {
978    return This->lpVtbl->Release(This);
979}
980/*** IAudioClockAdjustment methods ***/
981static FORCEINLINE HRESULT IAudioClockAdjustment_SetSampleRate(IAudioClockAdjustment* This,float flSampleRate) {
982    return This->lpVtbl->SetSampleRate(This,flSampleRate);
983}
984#endif
985#endif
986
987#endif
988
989HRESULT STDMETHODCALLTYPE IAudioClockAdjustment_SetSampleRate_Proxy(
990    IAudioClockAdjustment* This,
991    float flSampleRate);
992void __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
1006DEFINE_GUID(IID_ISimpleAudioVolume, 0x87ce5498, 0x68d6, 0x44e5, 0x92,0x15, 0x6d,0xa4,0x7e,0xf8,0x83,0xd8);
1007#if defined(__cplusplus) && !defined(CINTERFACE)
1008MIDL_INTERFACE("87ce5498-68d6-44e5-9215-6da47ef883d8")
1009ISimpleAudioVolume : 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
1030typedef 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;
1066interface 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 ***/
1083static FORCEINLINE HRESULT ISimpleAudioVolume_QueryInterface(ISimpleAudioVolume* This,REFIID riid,void **ppvObject) {
1084    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1085}
1086static FORCEINLINE ULONG ISimpleAudioVolume_AddRef(ISimpleAudioVolume* This) {
1087    return This->lpVtbl->AddRef(This);
1088}
1089static FORCEINLINE ULONG ISimpleAudioVolume_Release(ISimpleAudioVolume* This) {
1090    return This->lpVtbl->Release(This);
1091}
1092/*** ISimpleAudioVolume methods ***/
1093static FORCEINLINE HRESULT ISimpleAudioVolume_SetMasterVolume(ISimpleAudioVolume* This,float fLevel,LPCGUID EventContext) {
1094    return This->lpVtbl->SetMasterVolume(This,fLevel,EventContext);
1095}
1096static FORCEINLINE HRESULT ISimpleAudioVolume_GetMasterVolume(ISimpleAudioVolume* This,float *pfLevel) {
1097    return This->lpVtbl->GetMasterVolume(This,pfLevel);
1098}
1099static FORCEINLINE HRESULT ISimpleAudioVolume_SetMute(ISimpleAudioVolume* This,const WINBOOL bMute,LPCGUID EventContext) {
1100    return This->lpVtbl->SetMute(This,bMute,EventContext);
1101}
1102static FORCEINLINE HRESULT ISimpleAudioVolume_GetMute(ISimpleAudioVolume* This,WINBOOL *pbMute) {
1103    return This->lpVtbl->GetMute(This,pbMute);
1104}
1105#endif
1106#endif
1107
1108#endif
1109
1110HRESULT STDMETHODCALLTYPE ISimpleAudioVolume_SetMasterVolume_Proxy(
1111    ISimpleAudioVolume* This,
1112    float fLevel,
1113    LPCGUID EventContext);
1114void __RPC_STUB ISimpleAudioVolume_SetMasterVolume_Stub(
1115    IRpcStubBuffer* This,
1116    IRpcChannelBuffer* pRpcChannelBuffer,
1117    PRPC_MESSAGE pRpcMessage,
1118    DWORD* pdwStubPhase);
1119HRESULT STDMETHODCALLTYPE ISimpleAudioVolume_GetMasterVolume_Proxy(
1120    ISimpleAudioVolume* This,
1121    float *pfLevel);
1122void __RPC_STUB ISimpleAudioVolume_GetMasterVolume_Stub(
1123    IRpcStubBuffer* This,
1124    IRpcChannelBuffer* pRpcChannelBuffer,
1125    PRPC_MESSAGE pRpcMessage,
1126    DWORD* pdwStubPhase);
1127HRESULT STDMETHODCALLTYPE ISimpleAudioVolume_SetMute_Proxy(
1128    ISimpleAudioVolume* This,
1129    const WINBOOL bMute,
1130    LPCGUID EventContext);
1131void __RPC_STUB ISimpleAudioVolume_SetMute_Stub(
1132    IRpcStubBuffer* This,
1133    IRpcChannelBuffer* pRpcChannelBuffer,
1134    PRPC_MESSAGE pRpcMessage,
1135    DWORD* pdwStubPhase);
1136HRESULT STDMETHODCALLTYPE ISimpleAudioVolume_GetMute_Proxy(
1137    ISimpleAudioVolume* This,
1138    WINBOOL *pbMute);
1139void __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
1153DEFINE_GUID(IID_IAudioStreamVolume, 0x93014887, 0x242d, 0x4068, 0x8a,0x15, 0xcf,0x5e,0x93,0xb9,0x0f,0xe3);
1154#if defined(__cplusplus) && !defined(CINTERFACE)
1155MIDL_INTERFACE("93014887-242d-4068-8a15-cf5e93b90fe3")
1156IAudioStreamVolume : 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
1182typedef 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;
1224interface 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 ***/
1242static FORCEINLINE HRESULT IAudioStreamVolume_QueryInterface(IAudioStreamVolume* This,REFIID riid,void **ppvObject) {
1243    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1244}
1245static FORCEINLINE ULONG IAudioStreamVolume_AddRef(IAudioStreamVolume* This) {
1246    return This->lpVtbl->AddRef(This);
1247}
1248static FORCEINLINE ULONG IAudioStreamVolume_Release(IAudioStreamVolume* This) {
1249    return This->lpVtbl->Release(This);
1250}
1251/*** IAudioStreamVolume methods ***/
1252static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelCount(IAudioStreamVolume* This,UINT32 *pdwCount) {
1253    return This->lpVtbl->GetChannelCount(This,pdwCount);
1254}
1255static FORCEINLINE HRESULT IAudioStreamVolume_SetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,const float fLevel) {
1256    return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel);
1257}
1258static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,float *pfLevel) {
1259    return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
1260}
1261static FORCEINLINE HRESULT IAudioStreamVolume_SetAllVolumes(IAudioStreamVolume* This,UINT32 dwCount,const float *pfVolumes) {
1262    return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes);
1263}
1264static 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
1272HRESULT STDMETHODCALLTYPE IAudioStreamVolume_GetChannelCount_Proxy(
1273    IAudioStreamVolume* This,
1274    UINT32 *pdwCount);
1275void __RPC_STUB IAudioStreamVolume_GetChannelCount_Stub(
1276    IRpcStubBuffer* This,
1277    IRpcChannelBuffer* pRpcChannelBuffer,
1278    PRPC_MESSAGE pRpcMessage,
1279    DWORD* pdwStubPhase);
1280HRESULT STDMETHODCALLTYPE IAudioStreamVolume_SetChannelVolume_Proxy(
1281    IAudioStreamVolume* This,
1282    UINT32 dwIndex,
1283    const float fLevel);
1284void __RPC_STUB IAudioStreamVolume_SetChannelVolume_Stub(
1285    IRpcStubBuffer* This,
1286    IRpcChannelBuffer* pRpcChannelBuffer,
1287    PRPC_MESSAGE pRpcMessage,
1288    DWORD* pdwStubPhase);
1289HRESULT STDMETHODCALLTYPE IAudioStreamVolume_GetChannelVolume_Proxy(
1290    IAudioStreamVolume* This,
1291    UINT32 dwIndex,
1292    float *pfLevel);
1293void __RPC_STUB IAudioStreamVolume_GetChannelVolume_Stub(
1294    IRpcStubBuffer* This,
1295    IRpcChannelBuffer* pRpcChannelBuffer,
1296    PRPC_MESSAGE pRpcMessage,
1297    DWORD* pdwStubPhase);
1298HRESULT STDMETHODCALLTYPE IAudioStreamVolume_SetAllVolumes_Proxy(
1299    IAudioStreamVolume* This,
1300    UINT32 dwCount,
1301    const float *pfVolumes);
1302void __RPC_STUB IAudioStreamVolume_SetAllVolumes_Stub(
1303    IRpcStubBuffer* This,
1304    IRpcChannelBuffer* pRpcChannelBuffer,
1305    PRPC_MESSAGE pRpcMessage,
1306    DWORD* pdwStubPhase);
1307HRESULT STDMETHODCALLTYPE IAudioStreamVolume_GetAllVolumes_Proxy(
1308    IAudioStreamVolume* This,
1309    UINT32 dwCount,
1310    float *pfVolumes);
1311void __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
1325DEFINE_GUID(IID_IChannelAudioVolume, 0x1c158861, 0xb533, 0x4b30, 0xb1,0xcf, 0xe8,0x53,0xe5,0x1c,0x59,0xb8);
1326#if defined(__cplusplus) && !defined(CINTERFACE)
1327MIDL_INTERFACE("1c158861-b533-4b30-b1cf-e853e51c59b8")
1328IChannelAudioVolume : 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
1356typedef 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;
1400interface 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 ***/
1418static FORCEINLINE HRESULT IChannelAudioVolume_QueryInterface(IChannelAudioVolume* This,REFIID riid,void **ppvObject) {
1419    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1420}
1421static FORCEINLINE ULONG IChannelAudioVolume_AddRef(IChannelAudioVolume* This) {
1422    return This->lpVtbl->AddRef(This);
1423}
1424static FORCEINLINE ULONG IChannelAudioVolume_Release(IChannelAudioVolume* This) {
1425    return This->lpVtbl->Release(This);
1426}
1427/*** IChannelAudioVolume methods ***/
1428static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelCount(IChannelAudioVolume* This,UINT32 *pdwCount) {
1429    return This->lpVtbl->GetChannelCount(This,pdwCount);
1430}
1431static FORCEINLINE HRESULT IChannelAudioVolume_SetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,const float fLevel,LPCGUID EventContext) {
1432    return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel,EventContext);
1433}
1434static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,float *pfLevel) {
1435    return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
1436}
1437static FORCEINLINE HRESULT IChannelAudioVolume_SetAllVolumes(IChannelAudioVolume* This,UINT32 dwCount,const float *pfVolumes,LPCGUID EventContext) {
1438    return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes,EventContext);
1439}
1440static 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
1448HRESULT STDMETHODCALLTYPE IChannelAudioVolume_GetChannelCount_Proxy(
1449    IChannelAudioVolume* This,
1450    UINT32 *pdwCount);
1451void __RPC_STUB IChannelAudioVolume_GetChannelCount_Stub(
1452    IRpcStubBuffer* This,
1453    IRpcChannelBuffer* pRpcChannelBuffer,
1454    PRPC_MESSAGE pRpcMessage,
1455    DWORD* pdwStubPhase);
1456HRESULT STDMETHODCALLTYPE IChannelAudioVolume_SetChannelVolume_Proxy(
1457    IChannelAudioVolume* This,
1458    UINT32 dwIndex,
1459    const float fLevel,
1460    LPCGUID EventContext);
1461void __RPC_STUB IChannelAudioVolume_SetChannelVolume_Stub(
1462    IRpcStubBuffer* This,
1463    IRpcChannelBuffer* pRpcChannelBuffer,
1464    PRPC_MESSAGE pRpcMessage,
1465    DWORD* pdwStubPhase);
1466HRESULT STDMETHODCALLTYPE IChannelAudioVolume_GetChannelVolume_Proxy(
1467    IChannelAudioVolume* This,
1468    UINT32 dwIndex,
1469    float *pfLevel);
1470void __RPC_STUB IChannelAudioVolume_GetChannelVolume_Stub(
1471    IRpcStubBuffer* This,
1472    IRpcChannelBuffer* pRpcChannelBuffer,
1473    PRPC_MESSAGE pRpcMessage,
1474    DWORD* pdwStubPhase);
1475HRESULT STDMETHODCALLTYPE IChannelAudioVolume_SetAllVolumes_Proxy(
1476    IChannelAudioVolume* This,
1477    UINT32 dwCount,
1478    const float *pfVolumes,
1479    LPCGUID EventContext);
1480void __RPC_STUB IChannelAudioVolume_SetAllVolumes_Stub(
1481    IRpcStubBuffer* This,
1482    IRpcChannelBuffer* pRpcChannelBuffer,
1483    PRPC_MESSAGE pRpcMessage,
1484    DWORD* pdwStubPhase);
1485HRESULT STDMETHODCALLTYPE IChannelAudioVolume_GetAllVolumes_Proxy(
1486    IChannelAudioVolume* This,
1487    UINT32 dwCount,
1488    float *pfVolumes);
1489void __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