source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/audioclient.h@ 1194

Last change on this file since 1194 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 70.5 KB
RevLine 
[1166]1/*** Autogenerated by WIDL 6.4 from include/audioclient.idl - Do not edit ***/
2
3#ifdef _WIN32
4#ifndef __REQUIRED_RPCNDR_H_VERSION__
5#define __REQUIRED_RPCNDR_H_VERSION__ 475
6#endif
7#include <rpc.h>
8#include <rpcndr.h>
9#endif
10
11#ifndef COM_NO_WINDOWS_H
12#include <windows.h>
13#include <ole2.h>
14#endif
15
16#ifndef __audioclient_h__
17#define __audioclient_h__
18
19/* Forward declarations */
20
21#ifndef __IAudioClient_FWD_DEFINED__
22#define __IAudioClient_FWD_DEFINED__
23typedef interface IAudioClient IAudioClient;
24#ifdef __cplusplus
25interface IAudioClient;
26#endif /* __cplusplus */
27#endif
28
29#ifndef __IAudioClient2_FWD_DEFINED__
30#define __IAudioClient2_FWD_DEFINED__
31typedef interface IAudioClient2 IAudioClient2;
32#ifdef __cplusplus
33interface IAudioClient2;
34#endif /* __cplusplus */
35#endif
36
37#ifndef __IAudioClient3_FWD_DEFINED__
38#define __IAudioClient3_FWD_DEFINED__
39typedef interface IAudioClient3 IAudioClient3;
40#ifdef __cplusplus
41interface IAudioClient3;
42#endif /* __cplusplus */
43#endif
44
45#ifndef __IAudioRenderClient_FWD_DEFINED__
46#define __IAudioRenderClient_FWD_DEFINED__
47typedef interface IAudioRenderClient IAudioRenderClient;
48#ifdef __cplusplus
49interface IAudioRenderClient;
50#endif /* __cplusplus */
51#endif
52
53#ifndef __IAudioCaptureClient_FWD_DEFINED__
54#define __IAudioCaptureClient_FWD_DEFINED__
55typedef interface IAudioCaptureClient IAudioCaptureClient;
56#ifdef __cplusplus
57interface IAudioCaptureClient;
58#endif /* __cplusplus */
59#endif
60
61#ifndef __IAudioClock_FWD_DEFINED__
62#define __IAudioClock_FWD_DEFINED__
63typedef interface IAudioClock IAudioClock;
64#ifdef __cplusplus
65interface IAudioClock;
66#endif /* __cplusplus */
67#endif
68
69#ifndef __IAudioClock2_FWD_DEFINED__
70#define __IAudioClock2_FWD_DEFINED__
71typedef interface IAudioClock2 IAudioClock2;
72#ifdef __cplusplus
73interface IAudioClock2;
74#endif /* __cplusplus */
75#endif
76
77#ifndef __IAudioClockAdjustment_FWD_DEFINED__
78#define __IAudioClockAdjustment_FWD_DEFINED__
79typedef interface IAudioClockAdjustment IAudioClockAdjustment;
80#ifdef __cplusplus
81interface IAudioClockAdjustment;
82#endif /* __cplusplus */
83#endif
84
85#ifndef __ISimpleAudioVolume_FWD_DEFINED__
86#define __ISimpleAudioVolume_FWD_DEFINED__
87typedef interface ISimpleAudioVolume ISimpleAudioVolume;
88#ifdef __cplusplus
89interface ISimpleAudioVolume;
90#endif /* __cplusplus */
91#endif
92
93#ifndef __IAudioStreamVolume_FWD_DEFINED__
94#define __IAudioStreamVolume_FWD_DEFINED__
95typedef interface IAudioStreamVolume IAudioStreamVolume;
96#ifdef __cplusplus
97interface IAudioStreamVolume;
98#endif /* __cplusplus */
99#endif
100
101#ifndef __IAudioAmbisonicsControl_FWD_DEFINED__
102#define __IAudioAmbisonicsControl_FWD_DEFINED__
103typedef interface IAudioAmbisonicsControl IAudioAmbisonicsControl;
104#ifdef __cplusplus
105interface IAudioAmbisonicsControl;
106#endif /* __cplusplus */
107#endif
108
109#ifndef __IChannelAudioVolume_FWD_DEFINED__
110#define __IChannelAudioVolume_FWD_DEFINED__
111typedef interface IChannelAudioVolume IChannelAudioVolume;
112#ifdef __cplusplus
113interface IChannelAudioVolume;
114#endif /* __cplusplus */
115#endif
116
117/* Headers for imported files */
118
119#include <wtypes.h>
120#include <unknwn.h>
121#include <audiosessiontypes.h>
122
123#ifdef __cplusplus
124extern "C" {
125#endif
126
127#include <winapifamily.h>
128
129
130#if 0
131typedef struct WAVEFORMATEX {
132 WORD wFormatTag;
133 WORD nChannels;
134 DWORD nSamplesPerSec;
135 DWORD nAvgBytesPerSec;
136 WORD nBlockAlign;
137 WORD wBitsPerSample;
138 WORD cbSize;
139} WAVEFORMATEX;
140
141typedef LONGLONG REFERENCE_TIME;
142#else
143#define _IKsControl_
144
145#include <mmreg.h>
146#include <ks.h>
147#include <ksmedia.h>
148#endif
149
150
151#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
152enum _AUDCLNT_BUFFERFLAGS {
153 AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY = 0x1,
154 AUDCLNT_BUFFERFLAGS_SILENT = 0x2,
155 AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4
156};
157typedef enum AUDCLNT_STREAMOPTIONS {
158 AUDCLNT_STREAMOPTIONS_NONE = 0x0,
159 AUDCLNT_STREAMOPTIONS_RAW = 0x1,
160 AUDCLNT_STREAMOPTIONS_MATCH_FORMAT = 0x2,
161 AUDCLNT_STREAMOPTIONS_AMBISONICS = 0x4
162} AUDCLNT_STREAMOPTIONS;
163DEFINE_ENUM_FLAG_OPERATORS(AUDCLNT_STREAMOPTIONS);
164typedef enum AMBISONICS_TYPE {
165 AMBISONICS_TYPE_FULL3D = 0x0
166} AMBISONICS_TYPE;
167typedef enum AMBISONICS_CHANNEL_ORDERING {
168 AMBISONICS_CHANNEL_ORDERING_ACN = 0x0
169} AMBISONICS_CHANNEL_ORDERING;
170typedef enum AMBISONICS_NORMALIZATION {
171 AMBISONICS_NORMALIZATION_SN3D = 0x0,
172 AMBISONICS_NORMALIZATION_N3D = 0x1
173} AMBISONICS_NORMALIZATION;
174
175typedef struct AudioClientProperties {
176 UINT32 cbSize;
177 WINBOOL bIsOffload;
178 AUDIO_STREAM_CATEGORY eCategory;
179 AUDCLNT_STREAMOPTIONS Options;
180} AudioClientProperties;
181typedef struct AudioClient3ActivationParams {
182 GUID tracingContextId;
183} AudioClient3ActivationParams;
184typedef struct AMBISONICS_PARAMS {
185 UINT32 u32Size;
186 UINT32 u32Version;
187 AMBISONICS_TYPE u32Type;
188 AMBISONICS_CHANNEL_ORDERING u32ChannelOrdering;
189 AMBISONICS_NORMALIZATION u32Normalization;
190 UINT32 u32Order;
191 UINT32 u32NumChannels;
192 UINT32 *pu32ChannelMap;
193} AMBISONICS_PARAMS;
194
195/*****************************************************************************
196 * IAudioClient interface
197 */
198#ifndef __IAudioClient_INTERFACE_DEFINED__
199#define __IAudioClient_INTERFACE_DEFINED__
200
201DEFINE_GUID(IID_IAudioClient, 0x1cb9ad4c, 0xdbfa, 0x4c32, 0xb1,0x78, 0xc2,0xf5,0x68,0xa7,0x03,0xb2);
202#if defined(__cplusplus) && !defined(CINTERFACE)
203MIDL_INTERFACE("1cb9ad4c-dbfa-4c32-b178-c2f568a703b2")
204IAudioClient : public IUnknown
205{
206 virtual HRESULT STDMETHODCALLTYPE Initialize(
207 AUDCLNT_SHAREMODE ShareMode,
208 DWORD StreamFlags,
209 REFERENCE_TIME hnsBufferDuration,
210 REFERENCE_TIME hnsPeriodicity,
211 const WAVEFORMATEX *pFormat,
212 LPCGUID AudioSessionGuid) = 0;
213
214 virtual HRESULT STDMETHODCALLTYPE GetBufferSize(
215 UINT32 *pNumBufferFrames) = 0;
216
217 virtual HRESULT STDMETHODCALLTYPE GetStreamLatency(
218 REFERENCE_TIME *phnsLatency) = 0;
219
220 virtual HRESULT STDMETHODCALLTYPE GetCurrentPadding(
221 UINT32 *pNumPaddingFrames) = 0;
222
223 virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
224 AUDCLNT_SHAREMODE ShareMode,
225 const WAVEFORMATEX *pFormat,
226 WAVEFORMATEX **ppClosestMatch) = 0;
227
228 virtual HRESULT STDMETHODCALLTYPE GetMixFormat(
229 WAVEFORMATEX **ppDeviceFormat) = 0;
230
231 virtual HRESULT STDMETHODCALLTYPE GetDevicePeriod(
232 REFERENCE_TIME *phnsDefaultDevicePeriod,
233 REFERENCE_TIME *phnsMinimumDevicePeriod) = 0;
234
235 virtual HRESULT STDMETHODCALLTYPE Start(
236 ) = 0;
237
238 virtual HRESULT STDMETHODCALLTYPE Stop(
239 ) = 0;
240
241 virtual HRESULT STDMETHODCALLTYPE Reset(
242 ) = 0;
243
244 virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
245 HANDLE eventHandle) = 0;
246
247 virtual HRESULT STDMETHODCALLTYPE GetService(
248 REFIID riid,
249 void **ppv) = 0;
250
251};
252#ifdef __CRT_UUID_DECL
253__CRT_UUID_DECL(IAudioClient, 0x1cb9ad4c, 0xdbfa, 0x4c32, 0xb1,0x78, 0xc2,0xf5,0x68,0xa7,0x03,0xb2)
254#endif
255#else
256typedef struct IAudioClientVtbl {
257 BEGIN_INTERFACE
258
259 /*** IUnknown methods ***/
260 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
261 IAudioClient *This,
262 REFIID riid,
263 void **ppvObject);
264
265 ULONG (STDMETHODCALLTYPE *AddRef)(
266 IAudioClient *This);
267
268 ULONG (STDMETHODCALLTYPE *Release)(
269 IAudioClient *This);
270
271 /*** IAudioClient methods ***/
272 HRESULT (STDMETHODCALLTYPE *Initialize)(
273 IAudioClient *This,
274 AUDCLNT_SHAREMODE ShareMode,
275 DWORD StreamFlags,
276 REFERENCE_TIME hnsBufferDuration,
277 REFERENCE_TIME hnsPeriodicity,
278 const WAVEFORMATEX *pFormat,
279 LPCGUID AudioSessionGuid);
280
281 HRESULT (STDMETHODCALLTYPE *GetBufferSize)(
282 IAudioClient *This,
283 UINT32 *pNumBufferFrames);
284
285 HRESULT (STDMETHODCALLTYPE *GetStreamLatency)(
286 IAudioClient *This,
287 REFERENCE_TIME *phnsLatency);
288
289 HRESULT (STDMETHODCALLTYPE *GetCurrentPadding)(
290 IAudioClient *This,
291 UINT32 *pNumPaddingFrames);
292
293 HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
294 IAudioClient *This,
295 AUDCLNT_SHAREMODE ShareMode,
296 const WAVEFORMATEX *pFormat,
297 WAVEFORMATEX **ppClosestMatch);
298
299 HRESULT (STDMETHODCALLTYPE *GetMixFormat)(
300 IAudioClient *This,
301 WAVEFORMATEX **ppDeviceFormat);
302
303 HRESULT (STDMETHODCALLTYPE *GetDevicePeriod)(
304 IAudioClient *This,
305 REFERENCE_TIME *phnsDefaultDevicePeriod,
306 REFERENCE_TIME *phnsMinimumDevicePeriod);
307
308 HRESULT (STDMETHODCALLTYPE *Start)(
309 IAudioClient *This);
310
311 HRESULT (STDMETHODCALLTYPE *Stop)(
312 IAudioClient *This);
313
314 HRESULT (STDMETHODCALLTYPE *Reset)(
315 IAudioClient *This);
316
317 HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
318 IAudioClient *This,
319 HANDLE eventHandle);
320
321 HRESULT (STDMETHODCALLTYPE *GetService)(
322 IAudioClient *This,
323 REFIID riid,
324 void **ppv);
325
326 END_INTERFACE
327} IAudioClientVtbl;
328
329interface IAudioClient {
330 CONST_VTBL IAudioClientVtbl* lpVtbl;
331};
332
333#ifdef COBJMACROS
334#ifndef WIDL_C_INLINE_WRAPPERS
335/*** IUnknown methods ***/
336#define IAudioClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
337#define IAudioClient_AddRef(This) (This)->lpVtbl->AddRef(This)
338#define IAudioClient_Release(This) (This)->lpVtbl->Release(This)
339/*** IAudioClient methods ***/
340#define IAudioClient_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid)
341#define IAudioClient_GetBufferSize(This,pNumBufferFrames) (This)->lpVtbl->GetBufferSize(This,pNumBufferFrames)
342#define IAudioClient_GetStreamLatency(This,phnsLatency) (This)->lpVtbl->GetStreamLatency(This,phnsLatency)
343#define IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) (This)->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames)
344#define IAudioClient_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch)
345#define IAudioClient_GetMixFormat(This,ppDeviceFormat) (This)->lpVtbl->GetMixFormat(This,ppDeviceFormat)
346#define IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) (This)->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod)
347#define IAudioClient_Start(This) (This)->lpVtbl->Start(This)
348#define IAudioClient_Stop(This) (This)->lpVtbl->Stop(This)
349#define IAudioClient_Reset(This) (This)->lpVtbl->Reset(This)
350#define IAudioClient_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle)
351#define IAudioClient_GetService(This,riid,ppv) (This)->lpVtbl->GetService(This,riid,ppv)
352#else
353/*** IUnknown methods ***/
354static FORCEINLINE HRESULT IAudioClient_QueryInterface(IAudioClient* This,REFIID riid,void **ppvObject) {
355 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
356}
357static FORCEINLINE ULONG IAudioClient_AddRef(IAudioClient* This) {
358 return This->lpVtbl->AddRef(This);
359}
360static FORCEINLINE ULONG IAudioClient_Release(IAudioClient* This) {
361 return This->lpVtbl->Release(This);
362}
363/*** IAudioClient methods ***/
364static FORCEINLINE HRESULT IAudioClient_Initialize(IAudioClient* This,AUDCLNT_SHAREMODE ShareMode,DWORD StreamFlags,REFERENCE_TIME hnsBufferDuration,REFERENCE_TIME hnsPeriodicity,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) {
365 return This->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid);
366}
367static FORCEINLINE HRESULT IAudioClient_GetBufferSize(IAudioClient* This,UINT32 *pNumBufferFrames) {
368 return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
369}
370static FORCEINLINE HRESULT IAudioClient_GetStreamLatency(IAudioClient* This,REFERENCE_TIME *phnsLatency) {
371 return This->lpVtbl->GetStreamLatency(This,phnsLatency);
372}
373static FORCEINLINE HRESULT IAudioClient_GetCurrentPadding(IAudioClient* This,UINT32 *pNumPaddingFrames) {
374 return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
375}
376static FORCEINLINE HRESULT IAudioClient_IsFormatSupported(IAudioClient* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
377 return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
378}
379static FORCEINLINE HRESULT IAudioClient_GetMixFormat(IAudioClient* This,WAVEFORMATEX **ppDeviceFormat) {
380 return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
381}
382static FORCEINLINE HRESULT IAudioClient_GetDevicePeriod(IAudioClient* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
383 return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
384}
385static FORCEINLINE HRESULT IAudioClient_Start(IAudioClient* This) {
386 return This->lpVtbl->Start(This);
387}
388static FORCEINLINE HRESULT IAudioClient_Stop(IAudioClient* This) {
389 return This->lpVtbl->Stop(This);
390}
391static FORCEINLINE HRESULT IAudioClient_Reset(IAudioClient* This) {
392 return This->lpVtbl->Reset(This);
393}
394static FORCEINLINE HRESULT IAudioClient_SetEventHandle(IAudioClient* This,HANDLE eventHandle) {
395 return This->lpVtbl->SetEventHandle(This,eventHandle);
396}
397static FORCEINLINE HRESULT IAudioClient_GetService(IAudioClient* This,REFIID riid,void **ppv) {
398 return This->lpVtbl->GetService(This,riid,ppv);
399}
400#endif
401#endif
402
403#endif
404
405
406#endif /* __IAudioClient_INTERFACE_DEFINED__ */
407
408
409/*****************************************************************************
410 * IAudioClient2 interface
411 */
412#ifndef __IAudioClient2_INTERFACE_DEFINED__
413#define __IAudioClient2_INTERFACE_DEFINED__
414
415DEFINE_GUID(IID_IAudioClient2, 0x726778cd, 0xf60a, 0x4eda, 0x82,0xde, 0xe4,0x76,0x10,0xcd,0x78,0xaa);
416#if defined(__cplusplus) && !defined(CINTERFACE)
417MIDL_INTERFACE("726778cd-f60a-4eda-82de-e47610cd78aa")
418IAudioClient2 : public IAudioClient
419{
420 virtual HRESULT STDMETHODCALLTYPE IsOffloadCapable(
421 AUDIO_STREAM_CATEGORY Category,
422 WINBOOL *pbOffloadCapable) = 0;
423
424 virtual HRESULT STDMETHODCALLTYPE SetClientProperties(
425 const AudioClientProperties *pProperties) = 0;
426
427 virtual HRESULT STDMETHODCALLTYPE GetBufferSizeLimits(
428 const WAVEFORMATEX *pFormat,
429 WINBOOL bEventDriven,
430 REFERENCE_TIME *phnsMinBufferDuration,
431 REFERENCE_TIME *phnsMaxBufferDuration) = 0;
432
433};
434#ifdef __CRT_UUID_DECL
435__CRT_UUID_DECL(IAudioClient2, 0x726778cd, 0xf60a, 0x4eda, 0x82,0xde, 0xe4,0x76,0x10,0xcd,0x78,0xaa)
436#endif
437#else
438typedef struct IAudioClient2Vtbl {
439 BEGIN_INTERFACE
440
441 /*** IUnknown methods ***/
442 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
443 IAudioClient2 *This,
444 REFIID riid,
445 void **ppvObject);
446
447 ULONG (STDMETHODCALLTYPE *AddRef)(
448 IAudioClient2 *This);
449
450 ULONG (STDMETHODCALLTYPE *Release)(
451 IAudioClient2 *This);
452
453 /*** IAudioClient methods ***/
454 HRESULT (STDMETHODCALLTYPE *Initialize)(
455 IAudioClient2 *This,
456 AUDCLNT_SHAREMODE ShareMode,
457 DWORD StreamFlags,
458 REFERENCE_TIME hnsBufferDuration,
459 REFERENCE_TIME hnsPeriodicity,
460 const WAVEFORMATEX *pFormat,
461 LPCGUID AudioSessionGuid);
462
463 HRESULT (STDMETHODCALLTYPE *GetBufferSize)(
464 IAudioClient2 *This,
465 UINT32 *pNumBufferFrames);
466
467 HRESULT (STDMETHODCALLTYPE *GetStreamLatency)(
468 IAudioClient2 *This,
469 REFERENCE_TIME *phnsLatency);
470
471 HRESULT (STDMETHODCALLTYPE *GetCurrentPadding)(
472 IAudioClient2 *This,
473 UINT32 *pNumPaddingFrames);
474
475 HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
476 IAudioClient2 *This,
477 AUDCLNT_SHAREMODE ShareMode,
478 const WAVEFORMATEX *pFormat,
479 WAVEFORMATEX **ppClosestMatch);
480
481 HRESULT (STDMETHODCALLTYPE *GetMixFormat)(
482 IAudioClient2 *This,
483 WAVEFORMATEX **ppDeviceFormat);
484
485 HRESULT (STDMETHODCALLTYPE *GetDevicePeriod)(
486 IAudioClient2 *This,
487 REFERENCE_TIME *phnsDefaultDevicePeriod,
488 REFERENCE_TIME *phnsMinimumDevicePeriod);
489
490 HRESULT (STDMETHODCALLTYPE *Start)(
491 IAudioClient2 *This);
492
493 HRESULT (STDMETHODCALLTYPE *Stop)(
494 IAudioClient2 *This);
495
496 HRESULT (STDMETHODCALLTYPE *Reset)(
497 IAudioClient2 *This);
498
499 HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
500 IAudioClient2 *This,
501 HANDLE eventHandle);
502
503 HRESULT (STDMETHODCALLTYPE *GetService)(
504 IAudioClient2 *This,
505 REFIID riid,
506 void **ppv);
507
508 /*** IAudioClient2 methods ***/
509 HRESULT (STDMETHODCALLTYPE *IsOffloadCapable)(
510 IAudioClient2 *This,
511 AUDIO_STREAM_CATEGORY Category,
512 WINBOOL *pbOffloadCapable);
513
514 HRESULT (STDMETHODCALLTYPE *SetClientProperties)(
515 IAudioClient2 *This,
516 const AudioClientProperties *pProperties);
517
518 HRESULT (STDMETHODCALLTYPE *GetBufferSizeLimits)(
519 IAudioClient2 *This,
520 const WAVEFORMATEX *pFormat,
521 WINBOOL bEventDriven,
522 REFERENCE_TIME *phnsMinBufferDuration,
523 REFERENCE_TIME *phnsMaxBufferDuration);
524
525 END_INTERFACE
526} IAudioClient2Vtbl;
527
528interface IAudioClient2 {
529 CONST_VTBL IAudioClient2Vtbl* lpVtbl;
530};
531
532#ifdef COBJMACROS
533#ifndef WIDL_C_INLINE_WRAPPERS
534/*** IUnknown methods ***/
535#define IAudioClient2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
536#define IAudioClient2_AddRef(This) (This)->lpVtbl->AddRef(This)
537#define IAudioClient2_Release(This) (This)->lpVtbl->Release(This)
538/*** IAudioClient methods ***/
539#define IAudioClient2_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid)
540#define IAudioClient2_GetBufferSize(This,pNumBufferFrames) (This)->lpVtbl->GetBufferSize(This,pNumBufferFrames)
541#define IAudioClient2_GetStreamLatency(This,phnsLatency) (This)->lpVtbl->GetStreamLatency(This,phnsLatency)
542#define IAudioClient2_GetCurrentPadding(This,pNumPaddingFrames) (This)->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames)
543#define IAudioClient2_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch)
544#define IAudioClient2_GetMixFormat(This,ppDeviceFormat) (This)->lpVtbl->GetMixFormat(This,ppDeviceFormat)
545#define IAudioClient2_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) (This)->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod)
546#define IAudioClient2_Start(This) (This)->lpVtbl->Start(This)
547#define IAudioClient2_Stop(This) (This)->lpVtbl->Stop(This)
548#define IAudioClient2_Reset(This) (This)->lpVtbl->Reset(This)
549#define IAudioClient2_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle)
550#define IAudioClient2_GetService(This,riid,ppv) (This)->lpVtbl->GetService(This,riid,ppv)
551/*** IAudioClient2 methods ***/
552#define IAudioClient2_IsOffloadCapable(This,Category,pbOffloadCapable) (This)->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable)
553#define IAudioClient2_SetClientProperties(This,pProperties) (This)->lpVtbl->SetClientProperties(This,pProperties)
554#define IAudioClient2_GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration) (This)->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration)
555#else
556/*** IUnknown methods ***/
557static FORCEINLINE HRESULT IAudioClient2_QueryInterface(IAudioClient2* This,REFIID riid,void **ppvObject) {
558 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
559}
560static FORCEINLINE ULONG IAudioClient2_AddRef(IAudioClient2* This) {
561 return This->lpVtbl->AddRef(This);
562}
563static FORCEINLINE ULONG IAudioClient2_Release(IAudioClient2* This) {
564 return This->lpVtbl->Release(This);
565}
566/*** IAudioClient methods ***/
567static FORCEINLINE HRESULT IAudioClient2_Initialize(IAudioClient2* This,AUDCLNT_SHAREMODE ShareMode,DWORD StreamFlags,REFERENCE_TIME hnsBufferDuration,REFERENCE_TIME hnsPeriodicity,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) {
568 return This->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid);
569}
570static FORCEINLINE HRESULT IAudioClient2_GetBufferSize(IAudioClient2* This,UINT32 *pNumBufferFrames) {
571 return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
572}
573static FORCEINLINE HRESULT IAudioClient2_GetStreamLatency(IAudioClient2* This,REFERENCE_TIME *phnsLatency) {
574 return This->lpVtbl->GetStreamLatency(This,phnsLatency);
575}
576static FORCEINLINE HRESULT IAudioClient2_GetCurrentPadding(IAudioClient2* This,UINT32 *pNumPaddingFrames) {
577 return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
578}
579static FORCEINLINE HRESULT IAudioClient2_IsFormatSupported(IAudioClient2* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
580 return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
581}
582static FORCEINLINE HRESULT IAudioClient2_GetMixFormat(IAudioClient2* This,WAVEFORMATEX **ppDeviceFormat) {
583 return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
584}
585static FORCEINLINE HRESULT IAudioClient2_GetDevicePeriod(IAudioClient2* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
586 return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
587}
588static FORCEINLINE HRESULT IAudioClient2_Start(IAudioClient2* This) {
589 return This->lpVtbl->Start(This);
590}
591static FORCEINLINE HRESULT IAudioClient2_Stop(IAudioClient2* This) {
592 return This->lpVtbl->Stop(This);
593}
594static FORCEINLINE HRESULT IAudioClient2_Reset(IAudioClient2* This) {
595 return This->lpVtbl->Reset(This);
596}
597static FORCEINLINE HRESULT IAudioClient2_SetEventHandle(IAudioClient2* This,HANDLE eventHandle) {
598 return This->lpVtbl->SetEventHandle(This,eventHandle);
599}
600static FORCEINLINE HRESULT IAudioClient2_GetService(IAudioClient2* This,REFIID riid,void **ppv) {
601 return This->lpVtbl->GetService(This,riid,ppv);
602}
603/*** IAudioClient2 methods ***/
604static FORCEINLINE HRESULT IAudioClient2_IsOffloadCapable(IAudioClient2* This,AUDIO_STREAM_CATEGORY Category,WINBOOL *pbOffloadCapable) {
605 return This->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable);
606}
607static FORCEINLINE HRESULT IAudioClient2_SetClientProperties(IAudioClient2* This,const AudioClientProperties *pProperties) {
608 return This->lpVtbl->SetClientProperties(This,pProperties);
609}
610static FORCEINLINE HRESULT IAudioClient2_GetBufferSizeLimits(IAudioClient2* This,const WAVEFORMATEX *pFormat,WINBOOL bEventDriven,REFERENCE_TIME *phnsMinBufferDuration,REFERENCE_TIME *phnsMaxBufferDuration) {
611 return This->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration);
612}
613#endif
614#endif
615
616#endif
617
618
619#endif /* __IAudioClient2_INTERFACE_DEFINED__ */
620
621/*****************************************************************************
622 * IAudioClient3 interface
623 */
624#ifndef __IAudioClient3_INTERFACE_DEFINED__
625#define __IAudioClient3_INTERFACE_DEFINED__
626
627DEFINE_GUID(IID_IAudioClient3, 0x7ed4ee07, 0x8e67, 0x4cd4, 0x8c,0x1a, 0x2b,0x7a,0x59,0x87,0xad,0x42);
628#if defined(__cplusplus) && !defined(CINTERFACE)
629MIDL_INTERFACE("7ed4ee07-8e67-4cd4-8c1a-2b7a5987ad42")
630IAudioClient3 : public IAudioClient2
631{
632 virtual HRESULT STDMETHODCALLTYPE GetSharedModeEnginePeriod(
633 const WAVEFORMATEX *pFormat,
634 UINT32 *pDefaultPeriodInFrames,
635 UINT32 *pFundamentalPeriodInFrames,
636 UINT32 *pMinPeriodInFrames,
637 UINT32 *pMaxPeriodInFrames) = 0;
638
639 virtual HRESULT STDMETHODCALLTYPE GetCurrentSharedModeEnginePeriod(
640 WAVEFORMATEX **ppFormat,
641 UINT32 *pCurrentPeriodInFrames) = 0;
642
643 virtual HRESULT STDMETHODCALLTYPE InitializeSharedAudioStream(
644 DWORD StreamFlags,
645 UINT32 PeriodInFrames,
646 const WAVEFORMATEX *pFormat,
647 LPCGUID AudioSessionGuid) = 0;
648
649};
650#ifdef __CRT_UUID_DECL
651__CRT_UUID_DECL(IAudioClient3, 0x7ed4ee07, 0x8e67, 0x4cd4, 0x8c,0x1a, 0x2b,0x7a,0x59,0x87,0xad,0x42)
652#endif
653#else
654typedef struct IAudioClient3Vtbl {
655 BEGIN_INTERFACE
656
657 /*** IUnknown methods ***/
658 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
659 IAudioClient3 *This,
660 REFIID riid,
661 void **ppvObject);
662
663 ULONG (STDMETHODCALLTYPE *AddRef)(
664 IAudioClient3 *This);
665
666 ULONG (STDMETHODCALLTYPE *Release)(
667 IAudioClient3 *This);
668
669 /*** IAudioClient methods ***/
670 HRESULT (STDMETHODCALLTYPE *Initialize)(
671 IAudioClient3 *This,
672 AUDCLNT_SHAREMODE ShareMode,
673 DWORD StreamFlags,
674 REFERENCE_TIME hnsBufferDuration,
675 REFERENCE_TIME hnsPeriodicity,
676 const WAVEFORMATEX *pFormat,
677 LPCGUID AudioSessionGuid);
678
679 HRESULT (STDMETHODCALLTYPE *GetBufferSize)(
680 IAudioClient3 *This,
681 UINT32 *pNumBufferFrames);
682
683 HRESULT (STDMETHODCALLTYPE *GetStreamLatency)(
684 IAudioClient3 *This,
685 REFERENCE_TIME *phnsLatency);
686
687 HRESULT (STDMETHODCALLTYPE *GetCurrentPadding)(
688 IAudioClient3 *This,
689 UINT32 *pNumPaddingFrames);
690
691 HRESULT (STDMETHODCALLTYPE *IsFormatSupported)(
692 IAudioClient3 *This,
693 AUDCLNT_SHAREMODE ShareMode,
694 const WAVEFORMATEX *pFormat,
695 WAVEFORMATEX **ppClosestMatch);
696
697 HRESULT (STDMETHODCALLTYPE *GetMixFormat)(
698 IAudioClient3 *This,
699 WAVEFORMATEX **ppDeviceFormat);
700
701 HRESULT (STDMETHODCALLTYPE *GetDevicePeriod)(
702 IAudioClient3 *This,
703 REFERENCE_TIME *phnsDefaultDevicePeriod,
704 REFERENCE_TIME *phnsMinimumDevicePeriod);
705
706 HRESULT (STDMETHODCALLTYPE *Start)(
707 IAudioClient3 *This);
708
709 HRESULT (STDMETHODCALLTYPE *Stop)(
710 IAudioClient3 *This);
711
712 HRESULT (STDMETHODCALLTYPE *Reset)(
713 IAudioClient3 *This);
714
715 HRESULT (STDMETHODCALLTYPE *SetEventHandle)(
716 IAudioClient3 *This,
717 HANDLE eventHandle);
718
719 HRESULT (STDMETHODCALLTYPE *GetService)(
720 IAudioClient3 *This,
721 REFIID riid,
722 void **ppv);
723
724 /*** IAudioClient2 methods ***/
725 HRESULT (STDMETHODCALLTYPE *IsOffloadCapable)(
726 IAudioClient3 *This,
727 AUDIO_STREAM_CATEGORY Category,
728 WINBOOL *pbOffloadCapable);
729
730 HRESULT (STDMETHODCALLTYPE *SetClientProperties)(
731 IAudioClient3 *This,
732 const AudioClientProperties *pProperties);
733
734 HRESULT (STDMETHODCALLTYPE *GetBufferSizeLimits)(
735 IAudioClient3 *This,
736 const WAVEFORMATEX *pFormat,
737 WINBOOL bEventDriven,
738 REFERENCE_TIME *phnsMinBufferDuration,
739 REFERENCE_TIME *phnsMaxBufferDuration);
740
741 /*** IAudioClient3 methods ***/
742 HRESULT (STDMETHODCALLTYPE *GetSharedModeEnginePeriod)(
743 IAudioClient3 *This,
744 const WAVEFORMATEX *pFormat,
745 UINT32 *pDefaultPeriodInFrames,
746 UINT32 *pFundamentalPeriodInFrames,
747 UINT32 *pMinPeriodInFrames,
748 UINT32 *pMaxPeriodInFrames);
749
750 HRESULT (STDMETHODCALLTYPE *GetCurrentSharedModeEnginePeriod)(
751 IAudioClient3 *This,
752 WAVEFORMATEX **ppFormat,
753 UINT32 *pCurrentPeriodInFrames);
754
755 HRESULT (STDMETHODCALLTYPE *InitializeSharedAudioStream)(
756 IAudioClient3 *This,
757 DWORD StreamFlags,
758 UINT32 PeriodInFrames,
759 const WAVEFORMATEX *pFormat,
760 LPCGUID AudioSessionGuid);
761
762 END_INTERFACE
763} IAudioClient3Vtbl;
764
765interface IAudioClient3 {
766 CONST_VTBL IAudioClient3Vtbl* lpVtbl;
767};
768
769#ifdef COBJMACROS
770#ifndef WIDL_C_INLINE_WRAPPERS
771/*** IUnknown methods ***/
772#define IAudioClient3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
773#define IAudioClient3_AddRef(This) (This)->lpVtbl->AddRef(This)
774#define IAudioClient3_Release(This) (This)->lpVtbl->Release(This)
775/*** IAudioClient methods ***/
776#define IAudioClient3_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid)
777#define IAudioClient3_GetBufferSize(This,pNumBufferFrames) (This)->lpVtbl->GetBufferSize(This,pNumBufferFrames)
778#define IAudioClient3_GetStreamLatency(This,phnsLatency) (This)->lpVtbl->GetStreamLatency(This,phnsLatency)
779#define IAudioClient3_GetCurrentPadding(This,pNumPaddingFrames) (This)->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames)
780#define IAudioClient3_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch)
781#define IAudioClient3_GetMixFormat(This,ppDeviceFormat) (This)->lpVtbl->GetMixFormat(This,ppDeviceFormat)
782#define IAudioClient3_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) (This)->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod)
783#define IAudioClient3_Start(This) (This)->lpVtbl->Start(This)
784#define IAudioClient3_Stop(This) (This)->lpVtbl->Stop(This)
785#define IAudioClient3_Reset(This) (This)->lpVtbl->Reset(This)
786#define IAudioClient3_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle)
787#define IAudioClient3_GetService(This,riid,ppv) (This)->lpVtbl->GetService(This,riid,ppv)
788/*** IAudioClient2 methods ***/
789#define IAudioClient3_IsOffloadCapable(This,Category,pbOffloadCapable) (This)->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable)
790#define IAudioClient3_SetClientProperties(This,pProperties) (This)->lpVtbl->SetClientProperties(This,pProperties)
791#define IAudioClient3_GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration) (This)->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration)
792/*** IAudioClient3 methods ***/
793#define IAudioClient3_GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames) (This)->lpVtbl->GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames)
794#define IAudioClient3_GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames) (This)->lpVtbl->GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames)
795#define IAudioClient3_InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid) (This)->lpVtbl->InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid)
796#else
797/*** IUnknown methods ***/
798static FORCEINLINE HRESULT IAudioClient3_QueryInterface(IAudioClient3* This,REFIID riid,void **ppvObject) {
799 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
800}
801static FORCEINLINE ULONG IAudioClient3_AddRef(IAudioClient3* This) {
802 return This->lpVtbl->AddRef(This);
803}
804static FORCEINLINE ULONG IAudioClient3_Release(IAudioClient3* This) {
805 return This->lpVtbl->Release(This);
806}
807/*** IAudioClient methods ***/
808static FORCEINLINE HRESULT IAudioClient3_Initialize(IAudioClient3* This,AUDCLNT_SHAREMODE ShareMode,DWORD StreamFlags,REFERENCE_TIME hnsBufferDuration,REFERENCE_TIME hnsPeriodicity,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) {
809 return This->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid);
810}
811static FORCEINLINE HRESULT IAudioClient3_GetBufferSize(IAudioClient3* This,UINT32 *pNumBufferFrames) {
812 return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
813}
814static FORCEINLINE HRESULT IAudioClient3_GetStreamLatency(IAudioClient3* This,REFERENCE_TIME *phnsLatency) {
815 return This->lpVtbl->GetStreamLatency(This,phnsLatency);
816}
817static FORCEINLINE HRESULT IAudioClient3_GetCurrentPadding(IAudioClient3* This,UINT32 *pNumPaddingFrames) {
818 return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
819}
820static FORCEINLINE HRESULT IAudioClient3_IsFormatSupported(IAudioClient3* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
821 return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
822}
823static FORCEINLINE HRESULT IAudioClient3_GetMixFormat(IAudioClient3* This,WAVEFORMATEX **ppDeviceFormat) {
824 return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
825}
826static FORCEINLINE HRESULT IAudioClient3_GetDevicePeriod(IAudioClient3* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
827 return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
828}
829static FORCEINLINE HRESULT IAudioClient3_Start(IAudioClient3* This) {
830 return This->lpVtbl->Start(This);
831}
832static FORCEINLINE HRESULT IAudioClient3_Stop(IAudioClient3* This) {
833 return This->lpVtbl->Stop(This);
834}
835static FORCEINLINE HRESULT IAudioClient3_Reset(IAudioClient3* This) {
836 return This->lpVtbl->Reset(This);
837}
838static FORCEINLINE HRESULT IAudioClient3_SetEventHandle(IAudioClient3* This,HANDLE eventHandle) {
839 return This->lpVtbl->SetEventHandle(This,eventHandle);
840}
841static FORCEINLINE HRESULT IAudioClient3_GetService(IAudioClient3* This,REFIID riid,void **ppv) {
842 return This->lpVtbl->GetService(This,riid,ppv);
843}
844/*** IAudioClient2 methods ***/
845static FORCEINLINE HRESULT IAudioClient3_IsOffloadCapable(IAudioClient3* This,AUDIO_STREAM_CATEGORY Category,WINBOOL *pbOffloadCapable) {
846 return This->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable);
847}
848static FORCEINLINE HRESULT IAudioClient3_SetClientProperties(IAudioClient3* This,const AudioClientProperties *pProperties) {
849 return This->lpVtbl->SetClientProperties(This,pProperties);
850}
851static FORCEINLINE HRESULT IAudioClient3_GetBufferSizeLimits(IAudioClient3* This,const WAVEFORMATEX *pFormat,WINBOOL bEventDriven,REFERENCE_TIME *phnsMinBufferDuration,REFERENCE_TIME *phnsMaxBufferDuration) {
852 return This->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration);
853}
854/*** IAudioClient3 methods ***/
855static FORCEINLINE HRESULT IAudioClient3_GetSharedModeEnginePeriod(IAudioClient3* This,const WAVEFORMATEX *pFormat,UINT32 *pDefaultPeriodInFrames,UINT32 *pFundamentalPeriodInFrames,UINT32 *pMinPeriodInFrames,UINT32 *pMaxPeriodInFrames) {
856 return This->lpVtbl->GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames);
857}
858static FORCEINLINE HRESULT IAudioClient3_GetCurrentSharedModeEnginePeriod(IAudioClient3* This,WAVEFORMATEX **ppFormat,UINT32 *pCurrentPeriodInFrames) {
859 return This->lpVtbl->GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames);
860}
861static FORCEINLINE HRESULT IAudioClient3_InitializeSharedAudioStream(IAudioClient3* This,DWORD StreamFlags,UINT32 PeriodInFrames,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) {
862 return This->lpVtbl->InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid);
863}
864#endif
865#endif
866
867#endif
868
869
870#endif /* __IAudioClient3_INTERFACE_DEFINED__ */
871
872
873/*****************************************************************************
874 * IAudioRenderClient interface
875 */
876#ifndef __IAudioRenderClient_INTERFACE_DEFINED__
877#define __IAudioRenderClient_INTERFACE_DEFINED__
878
879DEFINE_GUID(IID_IAudioRenderClient, 0xf294acfc, 0x3146, 0x4483, 0xa7,0xbf, 0xad,0xdc,0xa7,0xc2,0x60,0xe2);
880#if defined(__cplusplus) && !defined(CINTERFACE)
881MIDL_INTERFACE("f294acfc-3146-4483-a7bf-addca7c260e2")
882IAudioRenderClient : public IUnknown
883{
884 virtual HRESULT STDMETHODCALLTYPE GetBuffer(
885 UINT32 NumFramesRequested,
886 BYTE **ppData) = 0;
887
888 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
889 UINT32 NumFramesWritten,
890 DWORD dwFlags) = 0;
891
892};
893#ifdef __CRT_UUID_DECL
894__CRT_UUID_DECL(IAudioRenderClient, 0xf294acfc, 0x3146, 0x4483, 0xa7,0xbf, 0xad,0xdc,0xa7,0xc2,0x60,0xe2)
895#endif
896#else
897typedef struct IAudioRenderClientVtbl {
898 BEGIN_INTERFACE
899
900 /*** IUnknown methods ***/
901 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
902 IAudioRenderClient *This,
903 REFIID riid,
904 void **ppvObject);
905
906 ULONG (STDMETHODCALLTYPE *AddRef)(
907 IAudioRenderClient *This);
908
909 ULONG (STDMETHODCALLTYPE *Release)(
910 IAudioRenderClient *This);
911
912 /*** IAudioRenderClient methods ***/
913 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
914 IAudioRenderClient *This,
915 UINT32 NumFramesRequested,
916 BYTE **ppData);
917
918 HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
919 IAudioRenderClient *This,
920 UINT32 NumFramesWritten,
921 DWORD dwFlags);
922
923 END_INTERFACE
924} IAudioRenderClientVtbl;
925
926interface IAudioRenderClient {
927 CONST_VTBL IAudioRenderClientVtbl* lpVtbl;
928};
929
930#ifdef COBJMACROS
931#ifndef WIDL_C_INLINE_WRAPPERS
932/*** IUnknown methods ***/
933#define IAudioRenderClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
934#define IAudioRenderClient_AddRef(This) (This)->lpVtbl->AddRef(This)
935#define IAudioRenderClient_Release(This) (This)->lpVtbl->Release(This)
936/*** IAudioRenderClient methods ***/
937#define IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) (This)->lpVtbl->GetBuffer(This,NumFramesRequested,ppData)
938#define IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) (This)->lpVtbl->ReleaseBuffer(This,NumFramesWritten,dwFlags)
939#else
940/*** IUnknown methods ***/
941static FORCEINLINE HRESULT IAudioRenderClient_QueryInterface(IAudioRenderClient* This,REFIID riid,void **ppvObject) {
942 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
943}
944static FORCEINLINE ULONG IAudioRenderClient_AddRef(IAudioRenderClient* This) {
945 return This->lpVtbl->AddRef(This);
946}
947static FORCEINLINE ULONG IAudioRenderClient_Release(IAudioRenderClient* This) {
948 return This->lpVtbl->Release(This);
949}
950/*** IAudioRenderClient methods ***/
951static FORCEINLINE HRESULT IAudioRenderClient_GetBuffer(IAudioRenderClient* This,UINT32 NumFramesRequested,BYTE **ppData) {
952 return This->lpVtbl->GetBuffer(This,NumFramesRequested,ppData);
953}
954static FORCEINLINE HRESULT IAudioRenderClient_ReleaseBuffer(IAudioRenderClient* This,UINT32 NumFramesWritten,DWORD dwFlags) {
955 return This->lpVtbl->ReleaseBuffer(This,NumFramesWritten,dwFlags);
956}
957#endif
958#endif
959
960#endif
961
962
963#endif /* __IAudioRenderClient_INTERFACE_DEFINED__ */
964
965
966/*****************************************************************************
967 * IAudioCaptureClient interface
968 */
969#ifndef __IAudioCaptureClient_INTERFACE_DEFINED__
970#define __IAudioCaptureClient_INTERFACE_DEFINED__
971
972DEFINE_GUID(IID_IAudioCaptureClient, 0xc8adbd64, 0xe71e, 0x48a0, 0xa4,0xde, 0x18,0x5c,0x39,0x5c,0xd3,0x17);
973#if defined(__cplusplus) && !defined(CINTERFACE)
974MIDL_INTERFACE("c8adbd64-e71e-48a0-a4de-185c395cd317")
975IAudioCaptureClient : public IUnknown
976{
977 virtual HRESULT STDMETHODCALLTYPE GetBuffer(
978 BYTE **ppData,
979 UINT32 *pNumFramesToRead,
980 DWORD *pdwFlags,
981 UINT64 *pu64DevicePosition,
982 UINT64 *pu64QPCPosition) = 0;
983
984 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
985 UINT32 NumFramesRead) = 0;
986
987 virtual HRESULT STDMETHODCALLTYPE GetNextPacketSize(
988 UINT32 *pNumFramesInNextPacket) = 0;
989
990};
991#ifdef __CRT_UUID_DECL
992__CRT_UUID_DECL(IAudioCaptureClient, 0xc8adbd64, 0xe71e, 0x48a0, 0xa4,0xde, 0x18,0x5c,0x39,0x5c,0xd3,0x17)
993#endif
994#else
995typedef struct IAudioCaptureClientVtbl {
996 BEGIN_INTERFACE
997
998 /*** IUnknown methods ***/
999 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1000 IAudioCaptureClient *This,
1001 REFIID riid,
1002 void **ppvObject);
1003
1004 ULONG (STDMETHODCALLTYPE *AddRef)(
1005 IAudioCaptureClient *This);
1006
1007 ULONG (STDMETHODCALLTYPE *Release)(
1008 IAudioCaptureClient *This);
1009
1010 /*** IAudioCaptureClient methods ***/
1011 HRESULT (STDMETHODCALLTYPE *GetBuffer)(
1012 IAudioCaptureClient *This,
1013 BYTE **ppData,
1014 UINT32 *pNumFramesToRead,
1015 DWORD *pdwFlags,
1016 UINT64 *pu64DevicePosition,
1017 UINT64 *pu64QPCPosition);
1018
1019 HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)(
1020 IAudioCaptureClient *This,
1021 UINT32 NumFramesRead);
1022
1023 HRESULT (STDMETHODCALLTYPE *GetNextPacketSize)(
1024 IAudioCaptureClient *This,
1025 UINT32 *pNumFramesInNextPacket);
1026
1027 END_INTERFACE
1028} IAudioCaptureClientVtbl;
1029
1030interface IAudioCaptureClient {
1031 CONST_VTBL IAudioCaptureClientVtbl* lpVtbl;
1032};
1033
1034#ifdef COBJMACROS
1035#ifndef WIDL_C_INLINE_WRAPPERS
1036/*** IUnknown methods ***/
1037#define IAudioCaptureClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1038#define IAudioCaptureClient_AddRef(This) (This)->lpVtbl->AddRef(This)
1039#define IAudioCaptureClient_Release(This) (This)->lpVtbl->Release(This)
1040/*** IAudioCaptureClient methods ***/
1041#define IAudioCaptureClient_GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) (This)->lpVtbl->GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition)
1042#define IAudioCaptureClient_ReleaseBuffer(This,NumFramesRead) (This)->lpVtbl->ReleaseBuffer(This,NumFramesRead)
1043#define IAudioCaptureClient_GetNextPacketSize(This,pNumFramesInNextPacket) (This)->lpVtbl->GetNextPacketSize(This,pNumFramesInNextPacket)
1044#else
1045/*** IUnknown methods ***/
1046static FORCEINLINE HRESULT IAudioCaptureClient_QueryInterface(IAudioCaptureClient* This,REFIID riid,void **ppvObject) {
1047 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1048}
1049static FORCEINLINE ULONG IAudioCaptureClient_AddRef(IAudioCaptureClient* This) {
1050 return This->lpVtbl->AddRef(This);
1051}
1052static FORCEINLINE ULONG IAudioCaptureClient_Release(IAudioCaptureClient* This) {
1053 return This->lpVtbl->Release(This);
1054}
1055/*** IAudioCaptureClient methods ***/
1056static FORCEINLINE HRESULT IAudioCaptureClient_GetBuffer(IAudioCaptureClient* This,BYTE **ppData,UINT32 *pNumFramesToRead,DWORD *pdwFlags,UINT64 *pu64DevicePosition,UINT64 *pu64QPCPosition) {
1057 return This->lpVtbl->GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition);
1058}
1059static FORCEINLINE HRESULT IAudioCaptureClient_ReleaseBuffer(IAudioCaptureClient* This,UINT32 NumFramesRead) {
1060 return This->lpVtbl->ReleaseBuffer(This,NumFramesRead);
1061}
1062static FORCEINLINE HRESULT IAudioCaptureClient_GetNextPacketSize(IAudioCaptureClient* This,UINT32 *pNumFramesInNextPacket) {
1063 return This->lpVtbl->GetNextPacketSize(This,pNumFramesInNextPacket);
1064}
1065#endif
1066#endif
1067
1068#endif
1069
1070
1071#endif /* __IAudioCaptureClient_INTERFACE_DEFINED__ */
1072
1073
1074#define AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ 0x1
1075
1076/*****************************************************************************
1077 * IAudioClock interface
1078 */
1079#ifndef __IAudioClock_INTERFACE_DEFINED__
1080#define __IAudioClock_INTERFACE_DEFINED__
1081
1082DEFINE_GUID(IID_IAudioClock, 0xcd63314f, 0x3fba, 0x4a1b, 0x81,0x2c, 0xef,0x96,0x35,0x87,0x28,0xe7);
1083#if defined(__cplusplus) && !defined(CINTERFACE)
1084MIDL_INTERFACE("cd63314f-3fba-4a1b-812c-ef96358728e7")
1085IAudioClock : public IUnknown
1086{
1087 virtual HRESULT STDMETHODCALLTYPE GetFrequency(
1088 UINT64 *pu64Frequency) = 0;
1089
1090 virtual HRESULT STDMETHODCALLTYPE GetPosition(
1091 UINT64 *pu64Position,
1092 UINT64 *pu64QPCPosition) = 0;
1093
1094 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
1095 DWORD *pdwCharacteristics) = 0;
1096
1097};
1098#ifdef __CRT_UUID_DECL
1099__CRT_UUID_DECL(IAudioClock, 0xcd63314f, 0x3fba, 0x4a1b, 0x81,0x2c, 0xef,0x96,0x35,0x87,0x28,0xe7)
1100#endif
1101#else
1102typedef struct IAudioClockVtbl {
1103 BEGIN_INTERFACE
1104
1105 /*** IUnknown methods ***/
1106 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1107 IAudioClock *This,
1108 REFIID riid,
1109 void **ppvObject);
1110
1111 ULONG (STDMETHODCALLTYPE *AddRef)(
1112 IAudioClock *This);
1113
1114 ULONG (STDMETHODCALLTYPE *Release)(
1115 IAudioClock *This);
1116
1117 /*** IAudioClock methods ***/
1118 HRESULT (STDMETHODCALLTYPE *GetFrequency)(
1119 IAudioClock *This,
1120 UINT64 *pu64Frequency);
1121
1122 HRESULT (STDMETHODCALLTYPE *GetPosition)(
1123 IAudioClock *This,
1124 UINT64 *pu64Position,
1125 UINT64 *pu64QPCPosition);
1126
1127 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)(
1128 IAudioClock *This,
1129 DWORD *pdwCharacteristics);
1130
1131 END_INTERFACE
1132} IAudioClockVtbl;
1133
1134interface IAudioClock {
1135 CONST_VTBL IAudioClockVtbl* lpVtbl;
1136};
1137
1138#ifdef COBJMACROS
1139#ifndef WIDL_C_INLINE_WRAPPERS
1140/*** IUnknown methods ***/
1141#define IAudioClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1142#define IAudioClock_AddRef(This) (This)->lpVtbl->AddRef(This)
1143#define IAudioClock_Release(This) (This)->lpVtbl->Release(This)
1144/*** IAudioClock methods ***/
1145#define IAudioClock_GetFrequency(This,pu64Frequency) (This)->lpVtbl->GetFrequency(This,pu64Frequency)
1146#define IAudioClock_GetPosition(This,pu64Position,pu64QPCPosition) (This)->lpVtbl->GetPosition(This,pu64Position,pu64QPCPosition)
1147#define IAudioClock_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics)
1148#else
1149/*** IUnknown methods ***/
1150static FORCEINLINE HRESULT IAudioClock_QueryInterface(IAudioClock* This,REFIID riid,void **ppvObject) {
1151 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1152}
1153static FORCEINLINE ULONG IAudioClock_AddRef(IAudioClock* This) {
1154 return This->lpVtbl->AddRef(This);
1155}
1156static FORCEINLINE ULONG IAudioClock_Release(IAudioClock* This) {
1157 return This->lpVtbl->Release(This);
1158}
1159/*** IAudioClock methods ***/
1160static FORCEINLINE HRESULT IAudioClock_GetFrequency(IAudioClock* This,UINT64 *pu64Frequency) {
1161 return This->lpVtbl->GetFrequency(This,pu64Frequency);
1162}
1163static FORCEINLINE HRESULT IAudioClock_GetPosition(IAudioClock* This,UINT64 *pu64Position,UINT64 *pu64QPCPosition) {
1164 return This->lpVtbl->GetPosition(This,pu64Position,pu64QPCPosition);
1165}
1166static FORCEINLINE HRESULT IAudioClock_GetCharacteristics(IAudioClock* This,DWORD *pdwCharacteristics) {
1167 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics);
1168}
1169#endif
1170#endif
1171
1172#endif
1173
1174
1175#endif /* __IAudioClock_INTERFACE_DEFINED__ */
1176
1177#endif
1178
1179#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1180/*****************************************************************************
1181 * IAudioClock2 interface
1182 */
1183#ifndef __IAudioClock2_INTERFACE_DEFINED__
1184#define __IAudioClock2_INTERFACE_DEFINED__
1185
1186DEFINE_GUID(IID_IAudioClock2, 0x6f49ff73, 0x6727, 0x49ac, 0xa0,0x08, 0xd9,0x8c,0xf5,0xe7,0x00,0x48);
1187#if defined(__cplusplus) && !defined(CINTERFACE)
1188MIDL_INTERFACE("6f49ff73-6727-49ac-a008-d98cf5e70048")
1189IAudioClock2 : public IUnknown
1190{
1191 virtual HRESULT STDMETHODCALLTYPE GetDevicePosition(
1192 UINT64 *DevicePosition,
1193 UINT64 *QPCPosition) = 0;
1194
1195};
1196#ifdef __CRT_UUID_DECL
1197__CRT_UUID_DECL(IAudioClock2, 0x6f49ff73, 0x6727, 0x49ac, 0xa0,0x08, 0xd9,0x8c,0xf5,0xe7,0x00,0x48)
1198#endif
1199#else
1200typedef struct IAudioClock2Vtbl {
1201 BEGIN_INTERFACE
1202
1203 /*** IUnknown methods ***/
1204 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1205 IAudioClock2 *This,
1206 REFIID riid,
1207 void **ppvObject);
1208
1209 ULONG (STDMETHODCALLTYPE *AddRef)(
1210 IAudioClock2 *This);
1211
1212 ULONG (STDMETHODCALLTYPE *Release)(
1213 IAudioClock2 *This);
1214
1215 /*** IAudioClock2 methods ***/
1216 HRESULT (STDMETHODCALLTYPE *GetDevicePosition)(
1217 IAudioClock2 *This,
1218 UINT64 *DevicePosition,
1219 UINT64 *QPCPosition);
1220
1221 END_INTERFACE
1222} IAudioClock2Vtbl;
1223
1224interface IAudioClock2 {
1225 CONST_VTBL IAudioClock2Vtbl* lpVtbl;
1226};
1227
1228#ifdef COBJMACROS
1229#ifndef WIDL_C_INLINE_WRAPPERS
1230/*** IUnknown methods ***/
1231#define IAudioClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1232#define IAudioClock2_AddRef(This) (This)->lpVtbl->AddRef(This)
1233#define IAudioClock2_Release(This) (This)->lpVtbl->Release(This)
1234/*** IAudioClock2 methods ***/
1235#define IAudioClock2_GetDevicePosition(This,DevicePosition,QPCPosition) (This)->lpVtbl->GetDevicePosition(This,DevicePosition,QPCPosition)
1236#else
1237/*** IUnknown methods ***/
1238static FORCEINLINE HRESULT IAudioClock2_QueryInterface(IAudioClock2* This,REFIID riid,void **ppvObject) {
1239 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1240}
1241static FORCEINLINE ULONG IAudioClock2_AddRef(IAudioClock2* This) {
1242 return This->lpVtbl->AddRef(This);
1243}
1244static FORCEINLINE ULONG IAudioClock2_Release(IAudioClock2* This) {
1245 return This->lpVtbl->Release(This);
1246}
1247/*** IAudioClock2 methods ***/
1248static FORCEINLINE HRESULT IAudioClock2_GetDevicePosition(IAudioClock2* This,UINT64 *DevicePosition,UINT64 *QPCPosition) {
1249 return This->lpVtbl->GetDevicePosition(This,DevicePosition,QPCPosition);
1250}
1251#endif
1252#endif
1253
1254#endif
1255
1256
1257#endif /* __IAudioClock2_INTERFACE_DEFINED__ */
1258
1259
1260/*****************************************************************************
1261 * IAudioClockAdjustment interface
1262 */
1263#ifndef __IAudioClockAdjustment_INTERFACE_DEFINED__
1264#define __IAudioClockAdjustment_INTERFACE_DEFINED__
1265
1266DEFINE_GUID(IID_IAudioClockAdjustment, 0xf6e4c0a0, 0x46d9, 0x4fb8, 0xbe,0x21, 0x57,0xa3,0xef,0x2b,0x62,0x6c);
1267#if defined(__cplusplus) && !defined(CINTERFACE)
1268MIDL_INTERFACE("f6e4c0a0-46d9-4fb8-be21-57a3ef2b626c")
1269IAudioClockAdjustment : public IUnknown
1270{
1271 virtual HRESULT STDMETHODCALLTYPE SetSampleRate(
1272 float flSampleRate) = 0;
1273
1274};
1275#ifdef __CRT_UUID_DECL
1276__CRT_UUID_DECL(IAudioClockAdjustment, 0xf6e4c0a0, 0x46d9, 0x4fb8, 0xbe,0x21, 0x57,0xa3,0xef,0x2b,0x62,0x6c)
1277#endif
1278#else
1279typedef struct IAudioClockAdjustmentVtbl {
1280 BEGIN_INTERFACE
1281
1282 /*** IUnknown methods ***/
1283 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1284 IAudioClockAdjustment *This,
1285 REFIID riid,
1286 void **ppvObject);
1287
1288 ULONG (STDMETHODCALLTYPE *AddRef)(
1289 IAudioClockAdjustment *This);
1290
1291 ULONG (STDMETHODCALLTYPE *Release)(
1292 IAudioClockAdjustment *This);
1293
1294 /*** IAudioClockAdjustment methods ***/
1295 HRESULT (STDMETHODCALLTYPE *SetSampleRate)(
1296 IAudioClockAdjustment *This,
1297 float flSampleRate);
1298
1299 END_INTERFACE
1300} IAudioClockAdjustmentVtbl;
1301
1302interface IAudioClockAdjustment {
1303 CONST_VTBL IAudioClockAdjustmentVtbl* lpVtbl;
1304};
1305
1306#ifdef COBJMACROS
1307#ifndef WIDL_C_INLINE_WRAPPERS
1308/*** IUnknown methods ***/
1309#define IAudioClockAdjustment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1310#define IAudioClockAdjustment_AddRef(This) (This)->lpVtbl->AddRef(This)
1311#define IAudioClockAdjustment_Release(This) (This)->lpVtbl->Release(This)
1312/*** IAudioClockAdjustment methods ***/
1313#define IAudioClockAdjustment_SetSampleRate(This,flSampleRate) (This)->lpVtbl->SetSampleRate(This,flSampleRate)
1314#else
1315/*** IUnknown methods ***/
1316static FORCEINLINE HRESULT IAudioClockAdjustment_QueryInterface(IAudioClockAdjustment* This,REFIID riid,void **ppvObject) {
1317 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1318}
1319static FORCEINLINE ULONG IAudioClockAdjustment_AddRef(IAudioClockAdjustment* This) {
1320 return This->lpVtbl->AddRef(This);
1321}
1322static FORCEINLINE ULONG IAudioClockAdjustment_Release(IAudioClockAdjustment* This) {
1323 return This->lpVtbl->Release(This);
1324}
1325/*** IAudioClockAdjustment methods ***/
1326static FORCEINLINE HRESULT IAudioClockAdjustment_SetSampleRate(IAudioClockAdjustment* This,float flSampleRate) {
1327 return This->lpVtbl->SetSampleRate(This,flSampleRate);
1328}
1329#endif
1330#endif
1331
1332#endif
1333
1334
1335#endif /* __IAudioClockAdjustment_INTERFACE_DEFINED__ */
1336
1337#endif
1338
1339#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1340/*****************************************************************************
1341 * ISimpleAudioVolume interface
1342 */
1343#ifndef __ISimpleAudioVolume_INTERFACE_DEFINED__
1344#define __ISimpleAudioVolume_INTERFACE_DEFINED__
1345
1346DEFINE_GUID(IID_ISimpleAudioVolume, 0x87ce5498, 0x68d6, 0x44e5, 0x92,0x15, 0x6d,0xa4,0x7e,0xf8,0x83,0xd8);
1347#if defined(__cplusplus) && !defined(CINTERFACE)
1348MIDL_INTERFACE("87ce5498-68d6-44e5-9215-6da47ef883d8")
1349ISimpleAudioVolume : public IUnknown
1350{
1351 virtual HRESULT STDMETHODCALLTYPE SetMasterVolume(
1352 float fLevel,
1353 LPCGUID EventContext) = 0;
1354
1355 virtual HRESULT STDMETHODCALLTYPE GetMasterVolume(
1356 float *pfLevel) = 0;
1357
1358 virtual HRESULT STDMETHODCALLTYPE SetMute(
1359 const WINBOOL bMute,
1360 LPCGUID EventContext) = 0;
1361
1362 virtual HRESULT STDMETHODCALLTYPE GetMute(
1363 WINBOOL *pbMute) = 0;
1364
1365};
1366#ifdef __CRT_UUID_DECL
1367__CRT_UUID_DECL(ISimpleAudioVolume, 0x87ce5498, 0x68d6, 0x44e5, 0x92,0x15, 0x6d,0xa4,0x7e,0xf8,0x83,0xd8)
1368#endif
1369#else
1370typedef struct ISimpleAudioVolumeVtbl {
1371 BEGIN_INTERFACE
1372
1373 /*** IUnknown methods ***/
1374 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1375 ISimpleAudioVolume *This,
1376 REFIID riid,
1377 void **ppvObject);
1378
1379 ULONG (STDMETHODCALLTYPE *AddRef)(
1380 ISimpleAudioVolume *This);
1381
1382 ULONG (STDMETHODCALLTYPE *Release)(
1383 ISimpleAudioVolume *This);
1384
1385 /*** ISimpleAudioVolume methods ***/
1386 HRESULT (STDMETHODCALLTYPE *SetMasterVolume)(
1387 ISimpleAudioVolume *This,
1388 float fLevel,
1389 LPCGUID EventContext);
1390
1391 HRESULT (STDMETHODCALLTYPE *GetMasterVolume)(
1392 ISimpleAudioVolume *This,
1393 float *pfLevel);
1394
1395 HRESULT (STDMETHODCALLTYPE *SetMute)(
1396 ISimpleAudioVolume *This,
1397 const WINBOOL bMute,
1398 LPCGUID EventContext);
1399
1400 HRESULT (STDMETHODCALLTYPE *GetMute)(
1401 ISimpleAudioVolume *This,
1402 WINBOOL *pbMute);
1403
1404 END_INTERFACE
1405} ISimpleAudioVolumeVtbl;
1406
1407interface ISimpleAudioVolume {
1408 CONST_VTBL ISimpleAudioVolumeVtbl* lpVtbl;
1409};
1410
1411#ifdef COBJMACROS
1412#ifndef WIDL_C_INLINE_WRAPPERS
1413/*** IUnknown methods ***/
1414#define ISimpleAudioVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1415#define ISimpleAudioVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
1416#define ISimpleAudioVolume_Release(This) (This)->lpVtbl->Release(This)
1417/*** ISimpleAudioVolume methods ***/
1418#define ISimpleAudioVolume_SetMasterVolume(This,fLevel,EventContext) (This)->lpVtbl->SetMasterVolume(This,fLevel,EventContext)
1419#define ISimpleAudioVolume_GetMasterVolume(This,pfLevel) (This)->lpVtbl->GetMasterVolume(This,pfLevel)
1420#define ISimpleAudioVolume_SetMute(This,bMute,EventContext) (This)->lpVtbl->SetMute(This,bMute,EventContext)
1421#define ISimpleAudioVolume_GetMute(This,pbMute) (This)->lpVtbl->GetMute(This,pbMute)
1422#else
1423/*** IUnknown methods ***/
1424static FORCEINLINE HRESULT ISimpleAudioVolume_QueryInterface(ISimpleAudioVolume* This,REFIID riid,void **ppvObject) {
1425 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1426}
1427static FORCEINLINE ULONG ISimpleAudioVolume_AddRef(ISimpleAudioVolume* This) {
1428 return This->lpVtbl->AddRef(This);
1429}
1430static FORCEINLINE ULONG ISimpleAudioVolume_Release(ISimpleAudioVolume* This) {
1431 return This->lpVtbl->Release(This);
1432}
1433/*** ISimpleAudioVolume methods ***/
1434static FORCEINLINE HRESULT ISimpleAudioVolume_SetMasterVolume(ISimpleAudioVolume* This,float fLevel,LPCGUID EventContext) {
1435 return This->lpVtbl->SetMasterVolume(This,fLevel,EventContext);
1436}
1437static FORCEINLINE HRESULT ISimpleAudioVolume_GetMasterVolume(ISimpleAudioVolume* This,float *pfLevel) {
1438 return This->lpVtbl->GetMasterVolume(This,pfLevel);
1439}
1440static FORCEINLINE HRESULT ISimpleAudioVolume_SetMute(ISimpleAudioVolume* This,const WINBOOL bMute,LPCGUID EventContext) {
1441 return This->lpVtbl->SetMute(This,bMute,EventContext);
1442}
1443static FORCEINLINE HRESULT ISimpleAudioVolume_GetMute(ISimpleAudioVolume* This,WINBOOL *pbMute) {
1444 return This->lpVtbl->GetMute(This,pbMute);
1445}
1446#endif
1447#endif
1448
1449#endif
1450
1451
1452#endif /* __ISimpleAudioVolume_INTERFACE_DEFINED__ */
1453
1454#endif
1455
1456#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
1457/*****************************************************************************
1458 * IAudioStreamVolume interface
1459 */
1460#ifndef __IAudioStreamVolume_INTERFACE_DEFINED__
1461#define __IAudioStreamVolume_INTERFACE_DEFINED__
1462
1463DEFINE_GUID(IID_IAudioStreamVolume, 0x93014887, 0x242d, 0x4068, 0x8a,0x15, 0xcf,0x5e,0x93,0xb9,0x0f,0xe3);
1464#if defined(__cplusplus) && !defined(CINTERFACE)
1465MIDL_INTERFACE("93014887-242d-4068-8a15-cf5e93b90fe3")
1466IAudioStreamVolume : public IUnknown
1467{
1468 virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
1469 UINT32 *pdwCount) = 0;
1470
1471 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
1472 UINT32 dwIndex,
1473 const float fLevel) = 0;
1474
1475 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
1476 UINT32 dwIndex,
1477 float *pfLevel) = 0;
1478
1479 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
1480 UINT32 dwCount,
1481 const float *pfVolumes) = 0;
1482
1483 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
1484 UINT32 dwCount,
1485 float *pfVolumes) = 0;
1486
1487};
1488#ifdef __CRT_UUID_DECL
1489__CRT_UUID_DECL(IAudioStreamVolume, 0x93014887, 0x242d, 0x4068, 0x8a,0x15, 0xcf,0x5e,0x93,0xb9,0x0f,0xe3)
1490#endif
1491#else
1492typedef struct IAudioStreamVolumeVtbl {
1493 BEGIN_INTERFACE
1494
1495 /*** IUnknown methods ***/
1496 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1497 IAudioStreamVolume *This,
1498 REFIID riid,
1499 void **ppvObject);
1500
1501 ULONG (STDMETHODCALLTYPE *AddRef)(
1502 IAudioStreamVolume *This);
1503
1504 ULONG (STDMETHODCALLTYPE *Release)(
1505 IAudioStreamVolume *This);
1506
1507 /*** IAudioStreamVolume methods ***/
1508 HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
1509 IAudioStreamVolume *This,
1510 UINT32 *pdwCount);
1511
1512 HRESULT (STDMETHODCALLTYPE *SetChannelVolume)(
1513 IAudioStreamVolume *This,
1514 UINT32 dwIndex,
1515 const float fLevel);
1516
1517 HRESULT (STDMETHODCALLTYPE *GetChannelVolume)(
1518 IAudioStreamVolume *This,
1519 UINT32 dwIndex,
1520 float *pfLevel);
1521
1522 HRESULT (STDMETHODCALLTYPE *SetAllVolumes)(
1523 IAudioStreamVolume *This,
1524 UINT32 dwCount,
1525 const float *pfVolumes);
1526
1527 HRESULT (STDMETHODCALLTYPE *GetAllVolumes)(
1528 IAudioStreamVolume *This,
1529 UINT32 dwCount,
1530 float *pfVolumes);
1531
1532 END_INTERFACE
1533} IAudioStreamVolumeVtbl;
1534
1535interface IAudioStreamVolume {
1536 CONST_VTBL IAudioStreamVolumeVtbl* lpVtbl;
1537};
1538
1539#ifdef COBJMACROS
1540#ifndef WIDL_C_INLINE_WRAPPERS
1541/*** IUnknown methods ***/
1542#define IAudioStreamVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1543#define IAudioStreamVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
1544#define IAudioStreamVolume_Release(This) (This)->lpVtbl->Release(This)
1545/*** IAudioStreamVolume methods ***/
1546#define IAudioStreamVolume_GetChannelCount(This,pdwCount) (This)->lpVtbl->GetChannelCount(This,pdwCount)
1547#define IAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel) (This)->lpVtbl->SetChannelVolume(This,dwIndex,fLevel)
1548#define IAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel) (This)->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel)
1549#define IAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes)
1550#define IAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes)
1551#else
1552/*** IUnknown methods ***/
1553static FORCEINLINE HRESULT IAudioStreamVolume_QueryInterface(IAudioStreamVolume* This,REFIID riid,void **ppvObject) {
1554 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1555}
1556static FORCEINLINE ULONG IAudioStreamVolume_AddRef(IAudioStreamVolume* This) {
1557 return This->lpVtbl->AddRef(This);
1558}
1559static FORCEINLINE ULONG IAudioStreamVolume_Release(IAudioStreamVolume* This) {
1560 return This->lpVtbl->Release(This);
1561}
1562/*** IAudioStreamVolume methods ***/
1563static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelCount(IAudioStreamVolume* This,UINT32 *pdwCount) {
1564 return This->lpVtbl->GetChannelCount(This,pdwCount);
1565}
1566static FORCEINLINE HRESULT IAudioStreamVolume_SetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,const float fLevel) {
1567 return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel);
1568}
1569static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,float *pfLevel) {
1570 return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
1571}
1572static FORCEINLINE HRESULT IAudioStreamVolume_SetAllVolumes(IAudioStreamVolume* This,UINT32 dwCount,const float *pfVolumes) {
1573 return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes);
1574}
1575static FORCEINLINE HRESULT IAudioStreamVolume_GetAllVolumes(IAudioStreamVolume* This,UINT32 dwCount,float *pfVolumes) {
1576 return This->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes);
1577}
1578#endif
1579#endif
1580
1581#endif
1582
1583
1584#endif /* __IAudioStreamVolume_INTERFACE_DEFINED__ */
1585
1586/*****************************************************************************
1587 * IAudioAmbisonicsControl interface
1588 */
1589#ifndef __IAudioAmbisonicsControl_INTERFACE_DEFINED__
1590#define __IAudioAmbisonicsControl_INTERFACE_DEFINED__
1591
1592DEFINE_GUID(IID_IAudioAmbisonicsControl, 0x28724c91, 0xdf35, 0x4856, 0x9f,0x76, 0xd6,0xa2,0x64,0x13,0xf3,0xdf);
1593#if defined(__cplusplus) && !defined(CINTERFACE)
1594MIDL_INTERFACE("28724c91-df35-4856-9f76-d6a26413f3df")
1595IAudioAmbisonicsControl : public IUnknown
1596{
1597 virtual HRESULT STDMETHODCALLTYPE SetData(
1598 const AMBISONICS_PARAMS *pAmbisonicsParams,
1599 UINT32 cbAmbisonicsParams) = 0;
1600
1601 virtual HRESULT STDMETHODCALLTYPE SetHeadTracking(
1602 WINBOOL bEnableHeadTracking) = 0;
1603
1604 virtual HRESULT STDMETHODCALLTYPE GetHeadTracking(
1605 WINBOOL *pbEnableHeadTracking) = 0;
1606
1607 virtual HRESULT STDMETHODCALLTYPE SetRotation(
1608 float X,
1609 float Y,
1610 float Z,
1611 float W) = 0;
1612
1613};
1614#ifdef __CRT_UUID_DECL
1615__CRT_UUID_DECL(IAudioAmbisonicsControl, 0x28724c91, 0xdf35, 0x4856, 0x9f,0x76, 0xd6,0xa2,0x64,0x13,0xf3,0xdf)
1616#endif
1617#else
1618typedef struct IAudioAmbisonicsControlVtbl {
1619 BEGIN_INTERFACE
1620
1621 /*** IUnknown methods ***/
1622 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1623 IAudioAmbisonicsControl *This,
1624 REFIID riid,
1625 void **ppvObject);
1626
1627 ULONG (STDMETHODCALLTYPE *AddRef)(
1628 IAudioAmbisonicsControl *This);
1629
1630 ULONG (STDMETHODCALLTYPE *Release)(
1631 IAudioAmbisonicsControl *This);
1632
1633 /*** IAudioAmbisonicsControl methods ***/
1634 HRESULT (STDMETHODCALLTYPE *SetData)(
1635 IAudioAmbisonicsControl *This,
1636 const AMBISONICS_PARAMS *pAmbisonicsParams,
1637 UINT32 cbAmbisonicsParams);
1638
1639 HRESULT (STDMETHODCALLTYPE *SetHeadTracking)(
1640 IAudioAmbisonicsControl *This,
1641 WINBOOL bEnableHeadTracking);
1642
1643 HRESULT (STDMETHODCALLTYPE *GetHeadTracking)(
1644 IAudioAmbisonicsControl *This,
1645 WINBOOL *pbEnableHeadTracking);
1646
1647 HRESULT (STDMETHODCALLTYPE *SetRotation)(
1648 IAudioAmbisonicsControl *This,
1649 float X,
1650 float Y,
1651 float Z,
1652 float W);
1653
1654 END_INTERFACE
1655} IAudioAmbisonicsControlVtbl;
1656
1657interface IAudioAmbisonicsControl {
1658 CONST_VTBL IAudioAmbisonicsControlVtbl* lpVtbl;
1659};
1660
1661#ifdef COBJMACROS
1662#ifndef WIDL_C_INLINE_WRAPPERS
1663/*** IUnknown methods ***/
1664#define IAudioAmbisonicsControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1665#define IAudioAmbisonicsControl_AddRef(This) (This)->lpVtbl->AddRef(This)
1666#define IAudioAmbisonicsControl_Release(This) (This)->lpVtbl->Release(This)
1667/*** IAudioAmbisonicsControl methods ***/
1668#define IAudioAmbisonicsControl_SetData(This,pAmbisonicsParams,cbAmbisonicsParams) (This)->lpVtbl->SetData(This,pAmbisonicsParams,cbAmbisonicsParams)
1669#define IAudioAmbisonicsControl_SetHeadTracking(This,bEnableHeadTracking) (This)->lpVtbl->SetHeadTracking(This,bEnableHeadTracking)
1670#define IAudioAmbisonicsControl_GetHeadTracking(This,pbEnableHeadTracking) (This)->lpVtbl->GetHeadTracking(This,pbEnableHeadTracking)
1671#define IAudioAmbisonicsControl_SetRotation(This,X,Y,Z,W) (This)->lpVtbl->SetRotation(This,X,Y,Z,W)
1672#else
1673/*** IUnknown methods ***/
1674static FORCEINLINE HRESULT IAudioAmbisonicsControl_QueryInterface(IAudioAmbisonicsControl* This,REFIID riid,void **ppvObject) {
1675 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1676}
1677static FORCEINLINE ULONG IAudioAmbisonicsControl_AddRef(IAudioAmbisonicsControl* This) {
1678 return This->lpVtbl->AddRef(This);
1679}
1680static FORCEINLINE ULONG IAudioAmbisonicsControl_Release(IAudioAmbisonicsControl* This) {
1681 return This->lpVtbl->Release(This);
1682}
1683/*** IAudioAmbisonicsControl methods ***/
1684static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetData(IAudioAmbisonicsControl* This,const AMBISONICS_PARAMS *pAmbisonicsParams,UINT32 cbAmbisonicsParams) {
1685 return This->lpVtbl->SetData(This,pAmbisonicsParams,cbAmbisonicsParams);
1686}
1687static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL bEnableHeadTracking) {
1688 return This->lpVtbl->SetHeadTracking(This,bEnableHeadTracking);
1689}
1690static FORCEINLINE HRESULT IAudioAmbisonicsControl_GetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL *pbEnableHeadTracking) {
1691 return This->lpVtbl->GetHeadTracking(This,pbEnableHeadTracking);
1692}
1693static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetRotation(IAudioAmbisonicsControl* This,float X,float Y,float Z,float W) {
1694 return This->lpVtbl->SetRotation(This,X,Y,Z,W);
1695}
1696#endif
1697#endif
1698
1699#endif
1700
1701
1702#endif /* __IAudioAmbisonicsControl_INTERFACE_DEFINED__ */
1703
1704
1705/*****************************************************************************
1706 * IChannelAudioVolume interface
1707 */
1708#ifndef __IChannelAudioVolume_INTERFACE_DEFINED__
1709#define __IChannelAudioVolume_INTERFACE_DEFINED__
1710
1711DEFINE_GUID(IID_IChannelAudioVolume, 0x1c158861, 0xb533, 0x4b30, 0xb1,0xcf, 0xe8,0x53,0xe5,0x1c,0x59,0xb8);
1712#if defined(__cplusplus) && !defined(CINTERFACE)
1713MIDL_INTERFACE("1c158861-b533-4b30-b1cf-e853e51c59b8")
1714IChannelAudioVolume : public IUnknown
1715{
1716 virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
1717 UINT32 *pdwCount) = 0;
1718
1719 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
1720 UINT32 dwIndex,
1721 const float fLevel,
1722 LPCGUID EventContext) = 0;
1723
1724 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
1725 UINT32 dwIndex,
1726 float *pfLevel) = 0;
1727
1728 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
1729 UINT32 dwCount,
1730 const float *pfVolumes,
1731 LPCGUID EventContext) = 0;
1732
1733 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
1734 UINT32 dwCount,
1735 float *pfVolumes) = 0;
1736
1737};
1738#ifdef __CRT_UUID_DECL
1739__CRT_UUID_DECL(IChannelAudioVolume, 0x1c158861, 0xb533, 0x4b30, 0xb1,0xcf, 0xe8,0x53,0xe5,0x1c,0x59,0xb8)
1740#endif
1741#else
1742typedef struct IChannelAudioVolumeVtbl {
1743 BEGIN_INTERFACE
1744
1745 /*** IUnknown methods ***/
1746 HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1747 IChannelAudioVolume *This,
1748 REFIID riid,
1749 void **ppvObject);
1750
1751 ULONG (STDMETHODCALLTYPE *AddRef)(
1752 IChannelAudioVolume *This);
1753
1754 ULONG (STDMETHODCALLTYPE *Release)(
1755 IChannelAudioVolume *This);
1756
1757 /*** IChannelAudioVolume methods ***/
1758 HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
1759 IChannelAudioVolume *This,
1760 UINT32 *pdwCount);
1761
1762 HRESULT (STDMETHODCALLTYPE *SetChannelVolume)(
1763 IChannelAudioVolume *This,
1764 UINT32 dwIndex,
1765 const float fLevel,
1766 LPCGUID EventContext);
1767
1768 HRESULT (STDMETHODCALLTYPE *GetChannelVolume)(
1769 IChannelAudioVolume *This,
1770 UINT32 dwIndex,
1771 float *pfLevel);
1772
1773 HRESULT (STDMETHODCALLTYPE *SetAllVolumes)(
1774 IChannelAudioVolume *This,
1775 UINT32 dwCount,
1776 const float *pfVolumes,
1777 LPCGUID EventContext);
1778
1779 HRESULT (STDMETHODCALLTYPE *GetAllVolumes)(
1780 IChannelAudioVolume *This,
1781 UINT32 dwCount,
1782 float *pfVolumes);
1783
1784 END_INTERFACE
1785} IChannelAudioVolumeVtbl;
1786
1787interface IChannelAudioVolume {
1788 CONST_VTBL IChannelAudioVolumeVtbl* lpVtbl;
1789};
1790
1791#ifdef COBJMACROS
1792#ifndef WIDL_C_INLINE_WRAPPERS
1793/*** IUnknown methods ***/
1794#define IChannelAudioVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1795#define IChannelAudioVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
1796#define IChannelAudioVolume_Release(This) (This)->lpVtbl->Release(This)
1797/*** IChannelAudioVolume methods ***/
1798#define IChannelAudioVolume_GetChannelCount(This,pdwCount) (This)->lpVtbl->GetChannelCount(This,pdwCount)
1799#define IChannelAudioVolume_SetChannelVolume(This,dwIndex,fLevel,EventContext) (This)->lpVtbl->SetChannelVolume(This,dwIndex,fLevel,EventContext)
1800#define IChannelAudioVolume_GetChannelVolume(This,dwIndex,pfLevel) (This)->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel)
1801#define IChannelAudioVolume_SetAllVolumes(This,dwCount,pfVolumes,EventContext) (This)->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes,EventContext)
1802#define IChannelAudioVolume_GetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes)
1803#else
1804/*** IUnknown methods ***/
1805static FORCEINLINE HRESULT IChannelAudioVolume_QueryInterface(IChannelAudioVolume* This,REFIID riid,void **ppvObject) {
1806 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1807}
1808static FORCEINLINE ULONG IChannelAudioVolume_AddRef(IChannelAudioVolume* This) {
1809 return This->lpVtbl->AddRef(This);
1810}
1811static FORCEINLINE ULONG IChannelAudioVolume_Release(IChannelAudioVolume* This) {
1812 return This->lpVtbl->Release(This);
1813}
1814/*** IChannelAudioVolume methods ***/
1815static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelCount(IChannelAudioVolume* This,UINT32 *pdwCount) {
1816 return This->lpVtbl->GetChannelCount(This,pdwCount);
1817}
1818static FORCEINLINE HRESULT IChannelAudioVolume_SetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,const float fLevel,LPCGUID EventContext) {
1819 return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel,EventContext);
1820}
1821static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,float *pfLevel) {
1822 return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
1823}
1824static FORCEINLINE HRESULT IChannelAudioVolume_SetAllVolumes(IChannelAudioVolume* This,UINT32 dwCount,const float *pfVolumes,LPCGUID EventContext) {
1825 return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes,EventContext);
1826}
1827static FORCEINLINE HRESULT IChannelAudioVolume_GetAllVolumes(IChannelAudioVolume* This,UINT32 dwCount,float *pfVolumes) {
1828 return This->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes);
1829}
1830#endif
1831#endif
1832
1833#endif
1834
1835
1836#endif /* __IChannelAudioVolume_INTERFACE_DEFINED__ */
1837
1838#endif
1839
1840#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
1841#define AUDCLNT_ERR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_AUDCLNT, n)
1842#define AUDCLNT_SUCCESS(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_AUDCLNT, n)
1843
1844#define AUDCLNT_E_NOT_INITIALIZED AUDCLNT_ERR(0x1)
1845#define AUDCLNT_E_ALREADY_INITIALIZED AUDCLNT_ERR(0x2)
1846#define AUDCLNT_E_WRONG_ENDPOINT_TYPE AUDCLNT_ERR(0x3)
1847#define AUDCLNT_E_DEVICE_INVALIDATED AUDCLNT_ERR(0x4)
1848#define AUDCLNT_E_NOT_STOPPED AUDCLNT_ERR(0x5)
1849#define AUDCLNT_E_BUFFER_TOO_LARGE AUDCLNT_ERR(0x6)
1850#define AUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(0x7)
1851#define AUDCLNT_E_UNSUPPORTED_FORMAT AUDCLNT_ERR(0x8)
1852#define AUDCLNT_E_INVALID_SIZE AUDCLNT_ERR(0x9)
1853#define AUDCLNT_E_DEVICE_IN_USE AUDCLNT_ERR(0xa)
1854#define AUDCLNT_E_BUFFER_OPERATION_PENDING AUDCLNT_ERR(0xb)
1855#define AUDCLNT_E_THREAD_NOT_REGISTERED AUDCLNT_ERR(0xc)
1856#define AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED AUDCLNT_ERR(0xe)
1857#define AUDCLNT_E_ENDPOINT_CREATE_FAILED AUDCLNT_ERR(0xf)
1858#define AUDCLNT_E_SERVICE_NOT_RUNNING AUDCLNT_ERR(0x10)
1859#define AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED AUDCLNT_ERR(0x11)
1860#define AUDCLNT_E_EXCLUSIVE_MODE_ONLY AUDCLNT_ERR(0x12)
1861#define AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL AUDCLNT_ERR(0x13)
1862#define AUDCLNT_E_EVENTHANDLE_NOT_SET AUDCLNT_ERR(0x14)
1863#define AUDCLNT_E_INCORRECT_BUFFER_SIZE AUDCLNT_ERR(0x15)
1864#define AUDCLNT_E_BUFFER_SIZE_ERROR AUDCLNT_ERR(0x16)
1865#define AUDCLNT_E_CPUUSAGE_EXCEEDED AUDCLNT_ERR(0x17)
1866#define AUDCLNT_E_BUFFER_ERROR AUDCLNT_ERR(0x18)
1867#define AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED AUDCLNT_ERR(0x19)
1868#define AUDCLNT_E_INVALID_DEVICE_PERIOD AUDCLNT_ERR(0x20)
1869#define AUDCLNT_E_INVALID_STREAM_FLAG AUDCLNT_ERR(0x21)
1870#define AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE AUDCLNT_ERR(0x22)
1871#define AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES AUDCLNT_ERR(0x23)
1872#define AUDCLNT_E_OFFLOAD_MODE_ONLY AUDCLNT_ERR(0x24)
1873#define AUDCLNT_E_NONOFFLOAD_MODE_ONLY AUDCLNT_ERR(0x25)
1874#define AUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x26)
1875#define AUDCLNT_E_RAW_MODE_UNSUPPORTED AUDCLNT_ERR(0x027)
1876#define AUDCLNT_E_ENGINE_PERIODICITY_LOCKED AUDCLNT_ERR(0x028)
1877#define AUDCLNT_E_ENGINE_FORMAT_LOCKED AUDCLNT_ERR(0x029)
1878#define AUDCLNT_E_HEADTRACKING_ENABLED AUDCLNT_ERR(0x030)
1879#define AUDCLNT_E_HEADTRACKING_UNSUPPORTED AUDCLNT_ERR(0x040)
1880#define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x1)
1881#define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x2)
1882#define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x3)
1883#endif
1884/* Begin additional prototypes for all interfaces */
1885
1886
1887/* End additional prototypes */
1888
1889#ifdef __cplusplus
1890}
1891#endif
1892
1893#endif /* __audioclient_h__ */
Note: See TracBrowser for help on using the repository browser.