ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/audioclient.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 72186 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
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__
23 typedef interface IAudioClient IAudioClient;
24 #ifdef __cplusplus
25 interface IAudioClient;
26 #endif /* __cplusplus */
27 #endif
28
29 #ifndef __IAudioClient2_FWD_DEFINED__
30 #define __IAudioClient2_FWD_DEFINED__
31 typedef interface IAudioClient2 IAudioClient2;
32 #ifdef __cplusplus
33 interface IAudioClient2;
34 #endif /* __cplusplus */
35 #endif
36
37 #ifndef __IAudioClient3_FWD_DEFINED__
38 #define __IAudioClient3_FWD_DEFINED__
39 typedef interface IAudioClient3 IAudioClient3;
40 #ifdef __cplusplus
41 interface IAudioClient3;
42 #endif /* __cplusplus */
43 #endif
44
45 #ifndef __IAudioRenderClient_FWD_DEFINED__
46 #define __IAudioRenderClient_FWD_DEFINED__
47 typedef interface IAudioRenderClient IAudioRenderClient;
48 #ifdef __cplusplus
49 interface IAudioRenderClient;
50 #endif /* __cplusplus */
51 #endif
52
53 #ifndef __IAudioCaptureClient_FWD_DEFINED__
54 #define __IAudioCaptureClient_FWD_DEFINED__
55 typedef interface IAudioCaptureClient IAudioCaptureClient;
56 #ifdef __cplusplus
57 interface IAudioCaptureClient;
58 #endif /* __cplusplus */
59 #endif
60
61 #ifndef __IAudioClock_FWD_DEFINED__
62 #define __IAudioClock_FWD_DEFINED__
63 typedef interface IAudioClock IAudioClock;
64 #ifdef __cplusplus
65 interface IAudioClock;
66 #endif /* __cplusplus */
67 #endif
68
69 #ifndef __IAudioClock2_FWD_DEFINED__
70 #define __IAudioClock2_FWD_DEFINED__
71 typedef interface IAudioClock2 IAudioClock2;
72 #ifdef __cplusplus
73 interface IAudioClock2;
74 #endif /* __cplusplus */
75 #endif
76
77 #ifndef __IAudioClockAdjustment_FWD_DEFINED__
78 #define __IAudioClockAdjustment_FWD_DEFINED__
79 typedef interface IAudioClockAdjustment IAudioClockAdjustment;
80 #ifdef __cplusplus
81 interface IAudioClockAdjustment;
82 #endif /* __cplusplus */
83 #endif
84
85 #ifndef __ISimpleAudioVolume_FWD_DEFINED__
86 #define __ISimpleAudioVolume_FWD_DEFINED__
87 typedef interface ISimpleAudioVolume ISimpleAudioVolume;
88 #ifdef __cplusplus
89 interface ISimpleAudioVolume;
90 #endif /* __cplusplus */
91 #endif
92
93 #ifndef __IAudioStreamVolume_FWD_DEFINED__
94 #define __IAudioStreamVolume_FWD_DEFINED__
95 typedef interface IAudioStreamVolume IAudioStreamVolume;
96 #ifdef __cplusplus
97 interface IAudioStreamVolume;
98 #endif /* __cplusplus */
99 #endif
100
101 #ifndef __IAudioAmbisonicsControl_FWD_DEFINED__
102 #define __IAudioAmbisonicsControl_FWD_DEFINED__
103 typedef interface IAudioAmbisonicsControl IAudioAmbisonicsControl;
104 #ifdef __cplusplus
105 interface IAudioAmbisonicsControl;
106 #endif /* __cplusplus */
107 #endif
108
109 #ifndef __IChannelAudioVolume_FWD_DEFINED__
110 #define __IChannelAudioVolume_FWD_DEFINED__
111 typedef interface IChannelAudioVolume IChannelAudioVolume;
112 #ifdef __cplusplus
113 interface 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
124 extern "C" {
125 #endif
126
127 #include <winapifamily.h>
128
129
130 #if 0
131 typedef 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
141 typedef 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)
152 enum _AUDCLNT_BUFFERFLAGS {
153 AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY = 0x1,
154 AUDCLNT_BUFFERFLAGS_SILENT = 0x2,
155 AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4
156 };
157 typedef 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;
163 DEFINE_ENUM_FLAG_OPERATORS(AUDCLNT_STREAMOPTIONS);
164 typedef enum AMBISONICS_TYPE {
165 AMBISONICS_TYPE_FULL3D = 0x0
166 } AMBISONICS_TYPE;
167 typedef enum AMBISONICS_CHANNEL_ORDERING {
168 AMBISONICS_CHANNEL_ORDERING_ACN = 0x0
169 } AMBISONICS_CHANNEL_ORDERING;
170 typedef enum AMBISONICS_NORMALIZATION {
171 AMBISONICS_NORMALIZATION_SN3D = 0x0,
172 AMBISONICS_NORMALIZATION_N3D = 0x1
173 } AMBISONICS_NORMALIZATION;
174
175 typedef struct AudioClientProperties {
176 UINT32 cbSize;
177 WINBOOL bIsOffload;
178 AUDIO_STREAM_CATEGORY eCategory;
179 AUDCLNT_STREAMOPTIONS Options;
180 } AudioClientProperties;
181 typedef struct AudioClient3ActivationParams {
182 GUID tracingContextId;
183 } AudioClient3ActivationParams;
184 typedef 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
201 DEFINE_GUID(IID_IAudioClient, 0x1cb9ad4c, 0xdbfa, 0x4c32, 0xb1,0x78, 0xc2,0xf5,0x68,0xa7,0x03,0xb2);
202 #if defined(__cplusplus) && !defined(CINTERFACE)
203 MIDL_INTERFACE("1cb9ad4c-dbfa-4c32-b178-c2f568a703b2")
204 IAudioClient : 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
256 typedef 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
329 interface 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 ***/
354 static FORCEINLINE HRESULT IAudioClient_QueryInterface(IAudioClient* This,REFIID riid,void **ppvObject) {
355 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
356 }
357 static FORCEINLINE ULONG IAudioClient_AddRef(IAudioClient* This) {
358 return This->lpVtbl->AddRef(This);
359 }
360 static FORCEINLINE ULONG IAudioClient_Release(IAudioClient* This) {
361 return This->lpVtbl->Release(This);
362 }
363 /*** IAudioClient methods ***/
364 static 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 }
367 static FORCEINLINE HRESULT IAudioClient_GetBufferSize(IAudioClient* This,UINT32 *pNumBufferFrames) {
368 return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
369 }
370 static FORCEINLINE HRESULT IAudioClient_GetStreamLatency(IAudioClient* This,REFERENCE_TIME *phnsLatency) {
371 return This->lpVtbl->GetStreamLatency(This,phnsLatency);
372 }
373 static FORCEINLINE HRESULT IAudioClient_GetCurrentPadding(IAudioClient* This,UINT32 *pNumPaddingFrames) {
374 return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
375 }
376 static FORCEINLINE HRESULT IAudioClient_IsFormatSupported(IAudioClient* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
377 return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
378 }
379 static FORCEINLINE HRESULT IAudioClient_GetMixFormat(IAudioClient* This,WAVEFORMATEX **ppDeviceFormat) {
380 return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
381 }
382 static FORCEINLINE HRESULT IAudioClient_GetDevicePeriod(IAudioClient* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
383 return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
384 }
385 static FORCEINLINE HRESULT IAudioClient_Start(IAudioClient* This) {
386 return This->lpVtbl->Start(This);
387 }
388 static FORCEINLINE HRESULT IAudioClient_Stop(IAudioClient* This) {
389 return This->lpVtbl->Stop(This);
390 }
391 static FORCEINLINE HRESULT IAudioClient_Reset(IAudioClient* This) {
392 return This->lpVtbl->Reset(This);
393 }
394 static FORCEINLINE HRESULT IAudioClient_SetEventHandle(IAudioClient* This,HANDLE eventHandle) {
395 return This->lpVtbl->SetEventHandle(This,eventHandle);
396 }
397 static 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
415 DEFINE_GUID(IID_IAudioClient2, 0x726778cd, 0xf60a, 0x4eda, 0x82,0xde, 0xe4,0x76,0x10,0xcd,0x78,0xaa);
416 #if defined(__cplusplus) && !defined(CINTERFACE)
417 MIDL_INTERFACE("726778cd-f60a-4eda-82de-e47610cd78aa")
418 IAudioClient2 : 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
438 typedef 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
528 interface 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 ***/
557 static FORCEINLINE HRESULT IAudioClient2_QueryInterface(IAudioClient2* This,REFIID riid,void **ppvObject) {
558 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
559 }
560 static FORCEINLINE ULONG IAudioClient2_AddRef(IAudioClient2* This) {
561 return This->lpVtbl->AddRef(This);
562 }
563 static FORCEINLINE ULONG IAudioClient2_Release(IAudioClient2* This) {
564 return This->lpVtbl->Release(This);
565 }
566 /*** IAudioClient methods ***/
567 static 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 }
570 static FORCEINLINE HRESULT IAudioClient2_GetBufferSize(IAudioClient2* This,UINT32 *pNumBufferFrames) {
571 return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
572 }
573 static FORCEINLINE HRESULT IAudioClient2_GetStreamLatency(IAudioClient2* This,REFERENCE_TIME *phnsLatency) {
574 return This->lpVtbl->GetStreamLatency(This,phnsLatency);
575 }
576 static FORCEINLINE HRESULT IAudioClient2_GetCurrentPadding(IAudioClient2* This,UINT32 *pNumPaddingFrames) {
577 return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
578 }
579 static FORCEINLINE HRESULT IAudioClient2_IsFormatSupported(IAudioClient2* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
580 return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
581 }
582 static FORCEINLINE HRESULT IAudioClient2_GetMixFormat(IAudioClient2* This,WAVEFORMATEX **ppDeviceFormat) {
583 return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
584 }
585 static FORCEINLINE HRESULT IAudioClient2_GetDevicePeriod(IAudioClient2* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
586 return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
587 }
588 static FORCEINLINE HRESULT IAudioClient2_Start(IAudioClient2* This) {
589 return This->lpVtbl->Start(This);
590 }
591 static FORCEINLINE HRESULT IAudioClient2_Stop(IAudioClient2* This) {
592 return This->lpVtbl->Stop(This);
593 }
594 static FORCEINLINE HRESULT IAudioClient2_Reset(IAudioClient2* This) {
595 return This->lpVtbl->Reset(This);
596 }
597 static FORCEINLINE HRESULT IAudioClient2_SetEventHandle(IAudioClient2* This,HANDLE eventHandle) {
598 return This->lpVtbl->SetEventHandle(This,eventHandle);
599 }
600 static FORCEINLINE HRESULT IAudioClient2_GetService(IAudioClient2* This,REFIID riid,void **ppv) {
601 return This->lpVtbl->GetService(This,riid,ppv);
602 }
603 /*** IAudioClient2 methods ***/
604 static FORCEINLINE HRESULT IAudioClient2_IsOffloadCapable(IAudioClient2* This,AUDIO_STREAM_CATEGORY Category,WINBOOL *pbOffloadCapable) {
605 return This->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable);
606 }
607 static FORCEINLINE HRESULT IAudioClient2_SetClientProperties(IAudioClient2* This,const AudioClientProperties *pProperties) {
608 return This->lpVtbl->SetClientProperties(This,pProperties);
609 }
610 static 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
627 DEFINE_GUID(IID_IAudioClient3, 0x7ed4ee07, 0x8e67, 0x4cd4, 0x8c,0x1a, 0x2b,0x7a,0x59,0x87,0xad,0x42);
628 #if defined(__cplusplus) && !defined(CINTERFACE)
629 MIDL_INTERFACE("7ed4ee07-8e67-4cd4-8c1a-2b7a5987ad42")
630 IAudioClient3 : 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
654 typedef 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
765 interface 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 ***/
798 static FORCEINLINE HRESULT IAudioClient3_QueryInterface(IAudioClient3* This,REFIID riid,void **ppvObject) {
799 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
800 }
801 static FORCEINLINE ULONG IAudioClient3_AddRef(IAudioClient3* This) {
802 return This->lpVtbl->AddRef(This);
803 }
804 static FORCEINLINE ULONG IAudioClient3_Release(IAudioClient3* This) {
805 return This->lpVtbl->Release(This);
806 }
807 /*** IAudioClient methods ***/
808 static 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 }
811 static FORCEINLINE HRESULT IAudioClient3_GetBufferSize(IAudioClient3* This,UINT32 *pNumBufferFrames) {
812 return This->lpVtbl->GetBufferSize(This,pNumBufferFrames);
813 }
814 static FORCEINLINE HRESULT IAudioClient3_GetStreamLatency(IAudioClient3* This,REFERENCE_TIME *phnsLatency) {
815 return This->lpVtbl->GetStreamLatency(This,phnsLatency);
816 }
817 static FORCEINLINE HRESULT IAudioClient3_GetCurrentPadding(IAudioClient3* This,UINT32 *pNumPaddingFrames) {
818 return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames);
819 }
820 static FORCEINLINE HRESULT IAudioClient3_IsFormatSupported(IAudioClient3* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) {
821 return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch);
822 }
823 static FORCEINLINE HRESULT IAudioClient3_GetMixFormat(IAudioClient3* This,WAVEFORMATEX **ppDeviceFormat) {
824 return This->lpVtbl->GetMixFormat(This,ppDeviceFormat);
825 }
826 static FORCEINLINE HRESULT IAudioClient3_GetDevicePeriod(IAudioClient3* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) {
827 return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod);
828 }
829 static FORCEINLINE HRESULT IAudioClient3_Start(IAudioClient3* This) {
830 return This->lpVtbl->Start(This);
831 }
832 static FORCEINLINE HRESULT IAudioClient3_Stop(IAudioClient3* This) {
833 return This->lpVtbl->Stop(This);
834 }
835 static FORCEINLINE HRESULT IAudioClient3_Reset(IAudioClient3* This) {
836 return This->lpVtbl->Reset(This);
837 }
838 static FORCEINLINE HRESULT IAudioClient3_SetEventHandle(IAudioClient3* This,HANDLE eventHandle) {
839 return This->lpVtbl->SetEventHandle(This,eventHandle);
840 }
841 static FORCEINLINE HRESULT IAudioClient3_GetService(IAudioClient3* This,REFIID riid,void **ppv) {
842 return This->lpVtbl->GetService(This,riid,ppv);
843 }
844 /*** IAudioClient2 methods ***/
845 static FORCEINLINE HRESULT IAudioClient3_IsOffloadCapable(IAudioClient3* This,AUDIO_STREAM_CATEGORY Category,WINBOOL *pbOffloadCapable) {
846 return This->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable);
847 }
848 static FORCEINLINE HRESULT IAudioClient3_SetClientProperties(IAudioClient3* This,const AudioClientProperties *pProperties) {
849 return This->lpVtbl->SetClientProperties(This,pProperties);
850 }
851 static 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 ***/
855 static 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 }
858 static FORCEINLINE HRESULT IAudioClient3_GetCurrentSharedModeEnginePeriod(IAudioClient3* This,WAVEFORMATEX **ppFormat,UINT32 *pCurrentPeriodInFrames) {
859 return This->lpVtbl->GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames);
860 }
861 static 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
879 DEFINE_GUID(IID_IAudioRenderClient, 0xf294acfc, 0x3146, 0x4483, 0xa7,0xbf, 0xad,0xdc,0xa7,0xc2,0x60,0xe2);
880 #if defined(__cplusplus) && !defined(CINTERFACE)
881 MIDL_INTERFACE("f294acfc-3146-4483-a7bf-addca7c260e2")
882 IAudioRenderClient : 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
897 typedef 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
926 interface 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 ***/
941 static FORCEINLINE HRESULT IAudioRenderClient_QueryInterface(IAudioRenderClient* This,REFIID riid,void **ppvObject) {
942 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
943 }
944 static FORCEINLINE ULONG IAudioRenderClient_AddRef(IAudioRenderClient* This) {
945 return This->lpVtbl->AddRef(This);
946 }
947 static FORCEINLINE ULONG IAudioRenderClient_Release(IAudioRenderClient* This) {
948 return This->lpVtbl->Release(This);
949 }
950 /*** IAudioRenderClient methods ***/
951 static FORCEINLINE HRESULT IAudioRenderClient_GetBuffer(IAudioRenderClient* This,UINT32 NumFramesRequested,BYTE **ppData) {
952 return This->lpVtbl->GetBuffer(This,NumFramesRequested,ppData);
953 }
954 static 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
972 DEFINE_GUID(IID_IAudioCaptureClient, 0xc8adbd64, 0xe71e, 0x48a0, 0xa4,0xde, 0x18,0x5c,0x39,0x5c,0xd3,0x17);
973 #if defined(__cplusplus) && !defined(CINTERFACE)
974 MIDL_INTERFACE("c8adbd64-e71e-48a0-a4de-185c395cd317")
975 IAudioCaptureClient : 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
995 typedef 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
1030 interface 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 ***/
1046 static FORCEINLINE HRESULT IAudioCaptureClient_QueryInterface(IAudioCaptureClient* This,REFIID riid,void **ppvObject) {
1047 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1048 }
1049 static FORCEINLINE ULONG IAudioCaptureClient_AddRef(IAudioCaptureClient* This) {
1050 return This->lpVtbl->AddRef(This);
1051 }
1052 static FORCEINLINE ULONG IAudioCaptureClient_Release(IAudioCaptureClient* This) {
1053 return This->lpVtbl->Release(This);
1054 }
1055 /*** IAudioCaptureClient methods ***/
1056 static 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 }
1059 static FORCEINLINE HRESULT IAudioCaptureClient_ReleaseBuffer(IAudioCaptureClient* This,UINT32 NumFramesRead) {
1060 return This->lpVtbl->ReleaseBuffer(This,NumFramesRead);
1061 }
1062 static 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
1082 DEFINE_GUID(IID_IAudioClock, 0xcd63314f, 0x3fba, 0x4a1b, 0x81,0x2c, 0xef,0x96,0x35,0x87,0x28,0xe7);
1083 #if defined(__cplusplus) && !defined(CINTERFACE)
1084 MIDL_INTERFACE("cd63314f-3fba-4a1b-812c-ef96358728e7")
1085 IAudioClock : 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
1102 typedef 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
1134 interface 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 ***/
1150 static FORCEINLINE HRESULT IAudioClock_QueryInterface(IAudioClock* This,REFIID riid,void **ppvObject) {
1151 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1152 }
1153 static FORCEINLINE ULONG IAudioClock_AddRef(IAudioClock* This) {
1154 return This->lpVtbl->AddRef(This);
1155 }
1156 static FORCEINLINE ULONG IAudioClock_Release(IAudioClock* This) {
1157 return This->lpVtbl->Release(This);
1158 }
1159 /*** IAudioClock methods ***/
1160 static FORCEINLINE HRESULT IAudioClock_GetFrequency(IAudioClock* This,UINT64 *pu64Frequency) {
1161 return This->lpVtbl->GetFrequency(This,pu64Frequency);
1162 }
1163 static FORCEINLINE HRESULT IAudioClock_GetPosition(IAudioClock* This,UINT64 *pu64Position,UINT64 *pu64QPCPosition) {
1164 return This->lpVtbl->GetPosition(This,pu64Position,pu64QPCPosition);
1165 }
1166 static 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
1186 DEFINE_GUID(IID_IAudioClock2, 0x6f49ff73, 0x6727, 0x49ac, 0xa0,0x08, 0xd9,0x8c,0xf5,0xe7,0x00,0x48);
1187 #if defined(__cplusplus) && !defined(CINTERFACE)
1188 MIDL_INTERFACE("6f49ff73-6727-49ac-a008-d98cf5e70048")
1189 IAudioClock2 : 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
1200 typedef 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
1224 interface 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 ***/
1238 static FORCEINLINE HRESULT IAudioClock2_QueryInterface(IAudioClock2* This,REFIID riid,void **ppvObject) {
1239 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1240 }
1241 static FORCEINLINE ULONG IAudioClock2_AddRef(IAudioClock2* This) {
1242 return This->lpVtbl->AddRef(This);
1243 }
1244 static FORCEINLINE ULONG IAudioClock2_Release(IAudioClock2* This) {
1245 return This->lpVtbl->Release(This);
1246 }
1247 /*** IAudioClock2 methods ***/
1248 static 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
1266 DEFINE_GUID(IID_IAudioClockAdjustment, 0xf6e4c0a0, 0x46d9, 0x4fb8, 0xbe,0x21, 0x57,0xa3,0xef,0x2b,0x62,0x6c);
1267 #if defined(__cplusplus) && !defined(CINTERFACE)
1268 MIDL_INTERFACE("f6e4c0a0-46d9-4fb8-be21-57a3ef2b626c")
1269 IAudioClockAdjustment : 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
1279 typedef 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
1302 interface 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 ***/
1316 static FORCEINLINE HRESULT IAudioClockAdjustment_QueryInterface(IAudioClockAdjustment* This,REFIID riid,void **ppvObject) {
1317 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1318 }
1319 static FORCEINLINE ULONG IAudioClockAdjustment_AddRef(IAudioClockAdjustment* This) {
1320 return This->lpVtbl->AddRef(This);
1321 }
1322 static FORCEINLINE ULONG IAudioClockAdjustment_Release(IAudioClockAdjustment* This) {
1323 return This->lpVtbl->Release(This);
1324 }
1325 /*** IAudioClockAdjustment methods ***/
1326 static 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
1346 DEFINE_GUID(IID_ISimpleAudioVolume, 0x87ce5498, 0x68d6, 0x44e5, 0x92,0x15, 0x6d,0xa4,0x7e,0xf8,0x83,0xd8);
1347 #if defined(__cplusplus) && !defined(CINTERFACE)
1348 MIDL_INTERFACE("87ce5498-68d6-44e5-9215-6da47ef883d8")
1349 ISimpleAudioVolume : 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
1370 typedef 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
1407 interface 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 ***/
1424 static FORCEINLINE HRESULT ISimpleAudioVolume_QueryInterface(ISimpleAudioVolume* This,REFIID riid,void **ppvObject) {
1425 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1426 }
1427 static FORCEINLINE ULONG ISimpleAudioVolume_AddRef(ISimpleAudioVolume* This) {
1428 return This->lpVtbl->AddRef(This);
1429 }
1430 static FORCEINLINE ULONG ISimpleAudioVolume_Release(ISimpleAudioVolume* This) {
1431 return This->lpVtbl->Release(This);
1432 }
1433 /*** ISimpleAudioVolume methods ***/
1434 static FORCEINLINE HRESULT ISimpleAudioVolume_SetMasterVolume(ISimpleAudioVolume* This,float fLevel,LPCGUID EventContext) {
1435 return This->lpVtbl->SetMasterVolume(This,fLevel,EventContext);
1436 }
1437 static FORCEINLINE HRESULT ISimpleAudioVolume_GetMasterVolume(ISimpleAudioVolume* This,float *pfLevel) {
1438 return This->lpVtbl->GetMasterVolume(This,pfLevel);
1439 }
1440 static FORCEINLINE HRESULT ISimpleAudioVolume_SetMute(ISimpleAudioVolume* This,const WINBOOL bMute,LPCGUID EventContext) {
1441 return This->lpVtbl->SetMute(This,bMute,EventContext);
1442 }
1443 static 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
1463 DEFINE_GUID(IID_IAudioStreamVolume, 0x93014887, 0x242d, 0x4068, 0x8a,0x15, 0xcf,0x5e,0x93,0xb9,0x0f,0xe3);
1464 #if defined(__cplusplus) && !defined(CINTERFACE)
1465 MIDL_INTERFACE("93014887-242d-4068-8a15-cf5e93b90fe3")
1466 IAudioStreamVolume : 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
1492 typedef 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
1535 interface 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 ***/
1553 static FORCEINLINE HRESULT IAudioStreamVolume_QueryInterface(IAudioStreamVolume* This,REFIID riid,void **ppvObject) {
1554 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1555 }
1556 static FORCEINLINE ULONG IAudioStreamVolume_AddRef(IAudioStreamVolume* This) {
1557 return This->lpVtbl->AddRef(This);
1558 }
1559 static FORCEINLINE ULONG IAudioStreamVolume_Release(IAudioStreamVolume* This) {
1560 return This->lpVtbl->Release(This);
1561 }
1562 /*** IAudioStreamVolume methods ***/
1563 static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelCount(IAudioStreamVolume* This,UINT32 *pdwCount) {
1564 return This->lpVtbl->GetChannelCount(This,pdwCount);
1565 }
1566 static FORCEINLINE HRESULT IAudioStreamVolume_SetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,const float fLevel) {
1567 return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel);
1568 }
1569 static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,float *pfLevel) {
1570 return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
1571 }
1572 static FORCEINLINE HRESULT IAudioStreamVolume_SetAllVolumes(IAudioStreamVolume* This,UINT32 dwCount,const float *pfVolumes) {
1573 return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes);
1574 }
1575 static 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
1592 DEFINE_GUID(IID_IAudioAmbisonicsControl, 0x28724c91, 0xdf35, 0x4856, 0x9f,0x76, 0xd6,0xa2,0x64,0x13,0xf3,0xdf);
1593 #if defined(__cplusplus) && !defined(CINTERFACE)
1594 MIDL_INTERFACE("28724c91-df35-4856-9f76-d6a26413f3df")
1595 IAudioAmbisonicsControl : 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
1618 typedef 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
1657 interface 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 ***/
1674 static FORCEINLINE HRESULT IAudioAmbisonicsControl_QueryInterface(IAudioAmbisonicsControl* This,REFIID riid,void **ppvObject) {
1675 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1676 }
1677 static FORCEINLINE ULONG IAudioAmbisonicsControl_AddRef(IAudioAmbisonicsControl* This) {
1678 return This->lpVtbl->AddRef(This);
1679 }
1680 static FORCEINLINE ULONG IAudioAmbisonicsControl_Release(IAudioAmbisonicsControl* This) {
1681 return This->lpVtbl->Release(This);
1682 }
1683 /*** IAudioAmbisonicsControl methods ***/
1684 static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetData(IAudioAmbisonicsControl* This,const AMBISONICS_PARAMS *pAmbisonicsParams,UINT32 cbAmbisonicsParams) {
1685 return This->lpVtbl->SetData(This,pAmbisonicsParams,cbAmbisonicsParams);
1686 }
1687 static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL bEnableHeadTracking) {
1688 return This->lpVtbl->SetHeadTracking(This,bEnableHeadTracking);
1689 }
1690 static FORCEINLINE HRESULT IAudioAmbisonicsControl_GetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL *pbEnableHeadTracking) {
1691 return This->lpVtbl->GetHeadTracking(This,pbEnableHeadTracking);
1692 }
1693 static 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
1711 DEFINE_GUID(IID_IChannelAudioVolume, 0x1c158861, 0xb533, 0x4b30, 0xb1,0xcf, 0xe8,0x53,0xe5,0x1c,0x59,0xb8);
1712 #if defined(__cplusplus) && !defined(CINTERFACE)
1713 MIDL_INTERFACE("1c158861-b533-4b30-b1cf-e853e51c59b8")
1714 IChannelAudioVolume : 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
1742 typedef 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
1787 interface 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 ***/
1805 static FORCEINLINE HRESULT IChannelAudioVolume_QueryInterface(IChannelAudioVolume* This,REFIID riid,void **ppvObject) {
1806 return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1807 }
1808 static FORCEINLINE ULONG IChannelAudioVolume_AddRef(IChannelAudioVolume* This) {
1809 return This->lpVtbl->AddRef(This);
1810 }
1811 static FORCEINLINE ULONG IChannelAudioVolume_Release(IChannelAudioVolume* This) {
1812 return This->lpVtbl->Release(This);
1813 }
1814 /*** IChannelAudioVolume methods ***/
1815 static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelCount(IChannelAudioVolume* This,UINT32 *pdwCount) {
1816 return This->lpVtbl->GetChannelCount(This,pdwCount);
1817 }
1818 static FORCEINLINE HRESULT IChannelAudioVolume_SetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,const float fLevel,LPCGUID EventContext) {
1819 return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel,EventContext);
1820 }
1821 static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,float *pfLevel) {
1822 return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel);
1823 }
1824 static FORCEINLINE HRESULT IChannelAudioVolume_SetAllVolumes(IChannelAudioVolume* This,UINT32 dwCount,const float *pfVolumes,LPCGUID EventContext) {
1825 return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes,EventContext);
1826 }
1827 static 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__ */