1 
2 
3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
4 
5 
6  /* File created by MIDL compiler version 7.00.0499 */
7 /* Compiler settings for audioclient.idl:
8     Oicf, W1, Zp8, env=Win32 (32b run)
9     protocol : dce , ms_ext, c_ext, robust
10     error checks: allocation ref bounds_check enum stub_data
11     VC __declspec() decoration level:
12          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
13          DECLSPEC_UUID(), MIDL_INTERFACE()
14 */
15 //@@MIDL_FILE_HEADING(  )
16 
17 #pragma warning( disable: 4049 )  /* more than 64k source lines */
18 
19 
20 /* verify that the <rpcndr.h> version is high enough to compile this file*/
21 #ifndef __REQUIRED_RPCNDR_H_VERSION__
22 #define __REQUIRED_RPCNDR_H_VERSION__ 500
23 #endif
24 
25 /* verify that the <rpcsal.h> version is high enough to compile this file*/
26 #ifndef __REQUIRED_RPCSAL_H_VERSION__
27 #define __REQUIRED_RPCSAL_H_VERSION__ 100
28 #endif
29 
30 #include "rpc.h"
31 #include "rpcndr.h"
32 
33 #ifndef __RPCNDR_H_VERSION__
34 #error this stub requires an updated version of <rpcndr.h>
35 #endif // __RPCNDR_H_VERSION__
36 
37 #ifndef COM_NO_WINDOWS_H
38 #include "windows.h"
39 #include "ole2.h"
40 #endif /*COM_NO_WINDOWS_H*/
41 
42 #ifndef __audioclient_h__
43 #define __audioclient_h__
44 
45 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
46 #pragma once
47 #endif
48 
49 /* Forward Declarations */
50 
51 #ifndef __IAudioClient_FWD_DEFINED__
52 #define __IAudioClient_FWD_DEFINED__
53 typedef interface IAudioClient IAudioClient;
54 #endif 	/* __IAudioClient_FWD_DEFINED__ */
55 
56 
57 #ifndef __IAudioRenderClient_FWD_DEFINED__
58 #define __IAudioRenderClient_FWD_DEFINED__
59 typedef interface IAudioRenderClient IAudioRenderClient;
60 #endif 	/* __IAudioRenderClient_FWD_DEFINED__ */
61 
62 
63 #ifndef __IAudioCaptureClient_FWD_DEFINED__
64 #define __IAudioCaptureClient_FWD_DEFINED__
65 typedef interface IAudioCaptureClient IAudioCaptureClient;
66 #endif 	/* __IAudioCaptureClient_FWD_DEFINED__ */
67 
68 
69 #ifndef __IAudioClock_FWD_DEFINED__
70 #define __IAudioClock_FWD_DEFINED__
71 typedef interface IAudioClock IAudioClock;
72 #endif 	/* __IAudioClock_FWD_DEFINED__ */
73 
74 
75 #ifndef __ISimpleAudioVolume_FWD_DEFINED__
76 #define __ISimpleAudioVolume_FWD_DEFINED__
77 typedef interface ISimpleAudioVolume ISimpleAudioVolume;
78 #endif 	/* __ISimpleAudioVolume_FWD_DEFINED__ */
79 
80 
81 #ifndef __IAudioStreamVolume_FWD_DEFINED__
82 #define __IAudioStreamVolume_FWD_DEFINED__
83 typedef interface IAudioStreamVolume IAudioStreamVolume;
84 #endif 	/* __IAudioStreamVolume_FWD_DEFINED__ */
85 
86 
87 #ifndef __IChannelAudioVolume_FWD_DEFINED__
88 #define __IChannelAudioVolume_FWD_DEFINED__
89 typedef interface IChannelAudioVolume IChannelAudioVolume;
90 #endif 	/* __IChannelAudioVolume_FWD_DEFINED__ */
91 
92 
93 /* header files for imported files */
94 #include "wtypes.h"
95 #include "unknwn.h"
96 #include "audiosessiontypes.h"
97 
98 #ifdef __cplusplus
99 extern "C"{
100 #endif
101 
102 
103 /* interface __MIDL_itf_audioclient_0000_0000 */
104 /* [local] */
105 
106 #if 0
107 typedef /* [hidden][restricted] */ struct WAVEFORMATEX
108     {
109     WORD wFormatTag;
110     WORD nChannels;
111     DWORD nSamplesPerSec;
112     DWORD nAvgBytesPerSec;
113     WORD nBlockAlign;
114     WORD wBitsPerSample;
115     WORD cbSize;
116     } 	WAVEFORMATEX;
117 
118 #else
119 #include <mmreg.h>
120 #endif
121 #if 0
122 typedef /* [hidden][restricted] */ LONGLONG REFERENCE_TIME;
123 
124 #else
125 #define _IKsControl_
126 #include <ks.h>
127 #include <ksmedia.h>
128 #endif
129 
130 enum _AUDCLNT_BUFFERFLAGS
131     {	AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY	= 0x1,
132 	AUDCLNT_BUFFERFLAGS_SILENT	= 0x2,
133 	AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR	= 0x4
134     } ;
135 
136 
137 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0000_v0_0_c_ifspec;
138 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0000_v0_0_s_ifspec;
139 
140 #ifndef __IAudioClient_INTERFACE_DEFINED__
141 #define __IAudioClient_INTERFACE_DEFINED__
142 
143 /* interface IAudioClient */
144 /* [local][unique][uuid][object] */
145 
146 
147 EXTERN_C const IID IID_IAudioClient;
148 
149 #if defined(__cplusplus) && !defined(CINTERFACE)
150 
151     MIDL_INTERFACE("1CB9AD4C-DBFA-4c32-B178-C2F568A703B2")
152     IAudioClient : public IUnknown
153     {
154     public:
155         virtual HRESULT STDMETHODCALLTYPE Initialize(
156             /* [in] */
157             __in  AUDCLNT_SHAREMODE ShareMode,
158             /* [in] */
159             __in  DWORD StreamFlags,
160             /* [in] */
161             __in  REFERENCE_TIME hnsBufferDuration,
162             /* [in] */
163             __in  REFERENCE_TIME hnsPeriodicity,
164             /* [in] */
165             __in  const WAVEFORMATEX *pFormat,
166             /* [in] */
167             __in_opt  LPCGUID AudioSessionGuid) = 0;
168 
169         virtual HRESULT STDMETHODCALLTYPE GetBufferSize(
170             /* [out] */
171             __out  UINT32 *pNumBufferFrames) = 0;
172 
173         virtual HRESULT STDMETHODCALLTYPE GetStreamLatency(
174             /* [out] */
175             __out  REFERENCE_TIME *phnsLatency) = 0;
176 
177         virtual HRESULT STDMETHODCALLTYPE GetCurrentPadding(
178             /* [out] */
179             __out  UINT32 *pNumPaddingFrames) = 0;
180 
181         virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
182             /* [in] */
183             __in  AUDCLNT_SHAREMODE ShareMode,
184             /* [in] */
185             __in  const WAVEFORMATEX *pFormat,
186             /* [unique][out] */
187             __out_opt  WAVEFORMATEX **ppClosestMatch) = 0;
188 
189         virtual HRESULT STDMETHODCALLTYPE GetMixFormat(
190             /* [out] */
191             __out  WAVEFORMATEX **ppDeviceFormat) = 0;
192 
193         virtual HRESULT STDMETHODCALLTYPE GetDevicePeriod(
194             /* [out] */
195             __out_opt  REFERENCE_TIME *phnsDefaultDevicePeriod,
196             /* [out] */
197             __out_opt  REFERENCE_TIME *phnsMinimumDevicePeriod) = 0;
198 
199         virtual HRESULT STDMETHODCALLTYPE Start( void) = 0;
200 
201         virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
202 
203         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
204 
205         virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
206             /* [in] */ HANDLE eventHandle) = 0;
207 
208         virtual HRESULT STDMETHODCALLTYPE GetService(
209             /* [in] */
210             __in  REFIID riid,
211             /* [iid_is][out] */
212             __out  void **ppv) = 0;
213 
214     };
215 
216 #else 	/* C style interface */
217 
218     typedef struct IAudioClientVtbl
219     {
220         BEGIN_INTERFACE
221 
222         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
223             IAudioClient * This,
224             /* [in] */ REFIID riid,
225             /* [iid_is][out] */
226             __RPC__deref_out  void **ppvObject);
227 
228         ULONG ( STDMETHODCALLTYPE *AddRef )(
229             IAudioClient * This);
230 
231         ULONG ( STDMETHODCALLTYPE *Release )(
232             IAudioClient * This);
233 
234         HRESULT ( STDMETHODCALLTYPE *Initialize )(
235             IAudioClient * This,
236             /* [in] */
237             __in  AUDCLNT_SHAREMODE ShareMode,
238             /* [in] */
239             __in  DWORD StreamFlags,
240             /* [in] */
241             __in  REFERENCE_TIME hnsBufferDuration,
242             /* [in] */
243             __in  REFERENCE_TIME hnsPeriodicity,
244             /* [in] */
245             __in  const WAVEFORMATEX *pFormat,
246             /* [in] */
247             __in_opt  LPCGUID AudioSessionGuid);
248 
249         HRESULT ( STDMETHODCALLTYPE *GetBufferSize )(
250             IAudioClient * This,
251             /* [out] */
252             __out  UINT32 *pNumBufferFrames);
253 
254         HRESULT ( STDMETHODCALLTYPE *GetStreamLatency )(
255             IAudioClient * This,
256             /* [out] */
257             __out  REFERENCE_TIME *phnsLatency);
258 
259         HRESULT ( STDMETHODCALLTYPE *GetCurrentPadding )(
260             IAudioClient * This,
261             /* [out] */
262             __out  UINT32 *pNumPaddingFrames);
263 
264         HRESULT ( STDMETHODCALLTYPE *IsFormatSupported )(
265             IAudioClient * This,
266             /* [in] */
267             __in  AUDCLNT_SHAREMODE ShareMode,
268             /* [in] */
269             __in  const WAVEFORMATEX *pFormat,
270             /* [unique][out] */
271             __out_opt  WAVEFORMATEX **ppClosestMatch);
272 
273         HRESULT ( STDMETHODCALLTYPE *GetMixFormat )(
274             IAudioClient * This,
275             /* [out] */
276             __out  WAVEFORMATEX **ppDeviceFormat);
277 
278         HRESULT ( STDMETHODCALLTYPE *GetDevicePeriod )(
279             IAudioClient * This,
280             /* [out] */
281             __out_opt  REFERENCE_TIME *phnsDefaultDevicePeriod,
282             /* [out] */
283             __out_opt  REFERENCE_TIME *phnsMinimumDevicePeriod);
284 
285         HRESULT ( STDMETHODCALLTYPE *Start )(
286             IAudioClient * This);
287 
288         HRESULT ( STDMETHODCALLTYPE *Stop )(
289             IAudioClient * This);
290 
291         HRESULT ( STDMETHODCALLTYPE *Reset )(
292             IAudioClient * This);
293 
294         HRESULT ( STDMETHODCALLTYPE *SetEventHandle )(
295             IAudioClient * This,
296             /* [in] */ HANDLE eventHandle);
297 
298         HRESULT ( STDMETHODCALLTYPE *GetService )(
299             IAudioClient * This,
300             /* [in] */
301             __in  REFIID riid,
302             /* [iid_is][out] */
303             __out  void **ppv);
304 
305         END_INTERFACE
306     } IAudioClientVtbl;
307 
308     interface IAudioClient
309     {
310         CONST_VTBL struct IAudioClientVtbl *lpVtbl;
311     };
312 
313 
314 
315 #ifdef COBJMACROS
316 
317 
318 #define IAudioClient_QueryInterface(This,riid,ppvObject)	\
319     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
320 
321 #define IAudioClient_AddRef(This)	\
322     ( (This)->lpVtbl -> AddRef(This) )
323 
324 #define IAudioClient_Release(This)	\
325     ( (This)->lpVtbl -> Release(This) )
326 
327 
328 #define IAudioClient_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid)	\
329     ( (This)->lpVtbl -> Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) )
330 
331 #define IAudioClient_GetBufferSize(This,pNumBufferFrames)	\
332     ( (This)->lpVtbl -> GetBufferSize(This,pNumBufferFrames) )
333 
334 #define IAudioClient_GetStreamLatency(This,phnsLatency)	\
335     ( (This)->lpVtbl -> GetStreamLatency(This,phnsLatency) )
336 
337 #define IAudioClient_GetCurrentPadding(This,pNumPaddingFrames)	\
338     ( (This)->lpVtbl -> GetCurrentPadding(This,pNumPaddingFrames) )
339 
340 #define IAudioClient_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch)	\
341     ( (This)->lpVtbl -> IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) )
342 
343 #define IAudioClient_GetMixFormat(This,ppDeviceFormat)	\
344     ( (This)->lpVtbl -> GetMixFormat(This,ppDeviceFormat) )
345 
346 #define IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod)	\
347     ( (This)->lpVtbl -> GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) )
348 
349 #define IAudioClient_Start(This)	\
350     ( (This)->lpVtbl -> Start(This) )
351 
352 #define IAudioClient_Stop(This)	\
353     ( (This)->lpVtbl -> Stop(This) )
354 
355 #define IAudioClient_Reset(This)	\
356     ( (This)->lpVtbl -> Reset(This) )
357 
358 #define IAudioClient_SetEventHandle(This,eventHandle)	\
359     ( (This)->lpVtbl -> SetEventHandle(This,eventHandle) )
360 
361 #define IAudioClient_GetService(This,riid,ppv)	\
362     ( (This)->lpVtbl -> GetService(This,riid,ppv) )
363 
364 #endif /* COBJMACROS */
365 
366 
367 #endif 	/* C style interface */
368 
369 
370 
371 
372 #endif 	/* __IAudioClient_INTERFACE_DEFINED__ */
373 
374 
375 #ifndef __IAudioRenderClient_INTERFACE_DEFINED__
376 #define __IAudioRenderClient_INTERFACE_DEFINED__
377 
378 /* interface IAudioRenderClient */
379 /* [local][unique][helpstring][uuid][object] */
380 
381 
382 EXTERN_C const IID IID_IAudioRenderClient;
383 
384 #if defined(__cplusplus) && !defined(CINTERFACE)
385 
386     MIDL_INTERFACE("F294ACFC-3146-4483-A7BF-ADDCA7C260E2")
387     IAudioRenderClient : public IUnknown
388     {
389     public:
390         virtual HRESULT STDMETHODCALLTYPE GetBuffer(
391             /* [in] */
392             __in  UINT32 NumFramesRequested,
393             /* [out] */
394             __out  BYTE **ppData) = 0;
395 
396         virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
397             /* [in] */
398             __in  UINT32 NumFramesWritten,
399             /* [in] */
400             __in  DWORD dwFlags) = 0;
401 
402     };
403 
404 #else 	/* C style interface */
405 
406     typedef struct IAudioRenderClientVtbl
407     {
408         BEGIN_INTERFACE
409 
410         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
411             IAudioRenderClient * This,
412             /* [in] */ REFIID riid,
413             /* [iid_is][out] */
414             __RPC__deref_out  void **ppvObject);
415 
416         ULONG ( STDMETHODCALLTYPE *AddRef )(
417             IAudioRenderClient * This);
418 
419         ULONG ( STDMETHODCALLTYPE *Release )(
420             IAudioRenderClient * This);
421 
422         HRESULT ( STDMETHODCALLTYPE *GetBuffer )(
423             IAudioRenderClient * This,
424             /* [in] */
425             __in  UINT32 NumFramesRequested,
426             /* [out] */
427             __out  BYTE **ppData);
428 
429         HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
430             IAudioRenderClient * This,
431             /* [in] */
432             __in  UINT32 NumFramesWritten,
433             /* [in] */
434             __in  DWORD dwFlags);
435 
436         END_INTERFACE
437     } IAudioRenderClientVtbl;
438 
439     interface IAudioRenderClient
440     {
441         CONST_VTBL struct IAudioRenderClientVtbl *lpVtbl;
442     };
443 
444 
445 
446 #ifdef COBJMACROS
447 
448 
449 #define IAudioRenderClient_QueryInterface(This,riid,ppvObject)	\
450     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
451 
452 #define IAudioRenderClient_AddRef(This)	\
453     ( (This)->lpVtbl -> AddRef(This) )
454 
455 #define IAudioRenderClient_Release(This)	\
456     ( (This)->lpVtbl -> Release(This) )
457 
458 
459 #define IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData)	\
460     ( (This)->lpVtbl -> GetBuffer(This,NumFramesRequested,ppData) )
461 
462 #define IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags)	\
463     ( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesWritten,dwFlags) )
464 
465 #endif /* COBJMACROS */
466 
467 
468 #endif 	/* C style interface */
469 
470 
471 
472 
473 #endif 	/* __IAudioRenderClient_INTERFACE_DEFINED__ */
474 
475 
476 #ifndef __IAudioCaptureClient_INTERFACE_DEFINED__
477 #define __IAudioCaptureClient_INTERFACE_DEFINED__
478 
479 /* interface IAudioCaptureClient */
480 /* [local][unique][helpstring][uuid][object] */
481 
482 
483 EXTERN_C const IID IID_IAudioCaptureClient;
484 
485 #if defined(__cplusplus) && !defined(CINTERFACE)
486 
487     MIDL_INTERFACE("C8ADBD64-E71E-48a0-A4DE-185C395CD317")
488     IAudioCaptureClient : public IUnknown
489     {
490     public:
491         virtual HRESULT STDMETHODCALLTYPE GetBuffer(
492             /* [out] */
493             __out  BYTE **ppData,
494             /* [out] */
495             __out  UINT32 *pNumFramesToRead,
496             /* [out] */
497             __out  DWORD *pdwFlags,
498             /* [unique][out] */
499             __out_opt  UINT64 *pu64DevicePosition,
500             /* [unique][out] */
501             __out_opt  UINT64 *pu64QPCPosition) = 0;
502 
503         virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
504             /* [in] */
505             __in  UINT32 NumFramesRead) = 0;
506 
507         virtual HRESULT STDMETHODCALLTYPE GetNextPacketSize(
508             /* [out] */
509             __out  UINT32 *pNumFramesInNextPacket) = 0;
510 
511     };
512 
513 #else 	/* C style interface */
514 
515     typedef struct IAudioCaptureClientVtbl
516     {
517         BEGIN_INTERFACE
518 
519         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
520             IAudioCaptureClient * This,
521             /* [in] */ REFIID riid,
522             /* [iid_is][out] */
523             __RPC__deref_out  void **ppvObject);
524 
525         ULONG ( STDMETHODCALLTYPE *AddRef )(
526             IAudioCaptureClient * This);
527 
528         ULONG ( STDMETHODCALLTYPE *Release )(
529             IAudioCaptureClient * This);
530 
531         HRESULT ( STDMETHODCALLTYPE *GetBuffer )(
532             IAudioCaptureClient * This,
533             /* [out] */
534             __out  BYTE **ppData,
535             /* [out] */
536             __out  UINT32 *pNumFramesToRead,
537             /* [out] */
538             __out  DWORD *pdwFlags,
539             /* [unique][out] */
540             __out_opt  UINT64 *pu64DevicePosition,
541             /* [unique][out] */
542             __out_opt  UINT64 *pu64QPCPosition);
543 
544         HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
545             IAudioCaptureClient * This,
546             /* [in] */
547             __in  UINT32 NumFramesRead);
548 
549         HRESULT ( STDMETHODCALLTYPE *GetNextPacketSize )(
550             IAudioCaptureClient * This,
551             /* [out] */
552             __out  UINT32 *pNumFramesInNextPacket);
553 
554         END_INTERFACE
555     } IAudioCaptureClientVtbl;
556 
557     interface IAudioCaptureClient
558     {
559         CONST_VTBL struct IAudioCaptureClientVtbl *lpVtbl;
560     };
561 
562 
563 
564 #ifdef COBJMACROS
565 
566 
567 #define IAudioCaptureClient_QueryInterface(This,riid,ppvObject)	\
568     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
569 
570 #define IAudioCaptureClient_AddRef(This)	\
571     ( (This)->lpVtbl -> AddRef(This) )
572 
573 #define IAudioCaptureClient_Release(This)	\
574     ( (This)->lpVtbl -> Release(This) )
575 
576 
577 #define IAudioCaptureClient_GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition)	\
578     ( (This)->lpVtbl -> GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) )
579 
580 #define IAudioCaptureClient_ReleaseBuffer(This,NumFramesRead)	\
581     ( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesRead) )
582 
583 #define IAudioCaptureClient_GetNextPacketSize(This,pNumFramesInNextPacket)	\
584     ( (This)->lpVtbl -> GetNextPacketSize(This,pNumFramesInNextPacket) )
585 
586 #endif /* COBJMACROS */
587 
588 
589 #endif 	/* C style interface */
590 
591 
592 
593 
594 #endif 	/* __IAudioCaptureClient_INTERFACE_DEFINED__ */
595 
596 
597 /* interface __MIDL_itf_audioclient_0000_0003 */
598 /* [local] */
599 
600 #define AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ  0x00000001
601 
602 
603 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0003_v0_0_c_ifspec;
604 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0003_v0_0_s_ifspec;
605 
606 #ifndef __IAudioClock_INTERFACE_DEFINED__
607 #define __IAudioClock_INTERFACE_DEFINED__
608 
609 /* interface IAudioClock */
610 /* [local][unique][uuid][object] */
611 
612 
613 EXTERN_C const IID IID_IAudioClock;
614 
615 #if defined(__cplusplus) && !defined(CINTERFACE)
616 
617     MIDL_INTERFACE("CD63314F-3FBA-4a1b-812C-EF96358728E7")
618     IAudioClock : public IUnknown
619     {
620     public:
621         virtual HRESULT STDMETHODCALLTYPE GetFrequency(
622             /* [out] */
623             __out  UINT64 *pu64Frequency) = 0;
624 
625         virtual HRESULT STDMETHODCALLTYPE GetPosition(
626             /* [out] */
627             __out  UINT64 *pu64Position,
628             /* [unique][out] */
629             __out_opt  UINT64 *pu64QPCPosition) = 0;
630 
631         virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
632             /* [out] */
633             __out  DWORD *pdwCharacteristics) = 0;
634 
635     };
636 
637 #else 	/* C style interface */
638 
639     typedef struct IAudioClockVtbl
640     {
641         BEGIN_INTERFACE
642 
643         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
644             IAudioClock * This,
645             /* [in] */ REFIID riid,
646             /* [iid_is][out] */
647             __RPC__deref_out  void **ppvObject);
648 
649         ULONG ( STDMETHODCALLTYPE *AddRef )(
650             IAudioClock * This);
651 
652         ULONG ( STDMETHODCALLTYPE *Release )(
653             IAudioClock * This);
654 
655         HRESULT ( STDMETHODCALLTYPE *GetFrequency )(
656             IAudioClock * This,
657             /* [out] */
658             __out  UINT64 *pu64Frequency);
659 
660         HRESULT ( STDMETHODCALLTYPE *GetPosition )(
661             IAudioClock * This,
662             /* [out] */
663             __out  UINT64 *pu64Position,
664             /* [unique][out] */
665             __out_opt  UINT64 *pu64QPCPosition);
666 
667         HRESULT ( STDMETHODCALLTYPE *GetCharacteristics )(
668             IAudioClock * This,
669             /* [out] */
670             __out  DWORD *pdwCharacteristics);
671 
672         END_INTERFACE
673     } IAudioClockVtbl;
674 
675     interface IAudioClock
676     {
677         CONST_VTBL struct IAudioClockVtbl *lpVtbl;
678     };
679 
680 
681 
682 #ifdef COBJMACROS
683 
684 
685 #define IAudioClock_QueryInterface(This,riid,ppvObject)	\
686     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
687 
688 #define IAudioClock_AddRef(This)	\
689     ( (This)->lpVtbl -> AddRef(This) )
690 
691 #define IAudioClock_Release(This)	\
692     ( (This)->lpVtbl -> Release(This) )
693 
694 
695 #define IAudioClock_GetFrequency(This,pu64Frequency)	\
696     ( (This)->lpVtbl -> GetFrequency(This,pu64Frequency) )
697 
698 #define IAudioClock_GetPosition(This,pu64Position,pu64QPCPosition)	\
699     ( (This)->lpVtbl -> GetPosition(This,pu64Position,pu64QPCPosition) )
700 
701 #define IAudioClock_GetCharacteristics(This,pdwCharacteristics)	\
702     ( (This)->lpVtbl -> GetCharacteristics(This,pdwCharacteristics) )
703 
704 #endif /* COBJMACROS */
705 
706 
707 #endif 	/* C style interface */
708 
709 
710 
711 
712 #endif 	/* __IAudioClock_INTERFACE_DEFINED__ */
713 
714 
715 #ifndef __ISimpleAudioVolume_INTERFACE_DEFINED__
716 #define __ISimpleAudioVolume_INTERFACE_DEFINED__
717 
718 /* interface ISimpleAudioVolume */
719 /* [local][unique][uuid][object] */
720 
721 
722 EXTERN_C const IID IID_ISimpleAudioVolume;
723 
724 #if defined(__cplusplus) && !defined(CINTERFACE)
725 
726     MIDL_INTERFACE("87CE5498-68D6-44E5-9215-6DA47EF883D8")
727     ISimpleAudioVolume : public IUnknown
728     {
729     public:
730         virtual HRESULT STDMETHODCALLTYPE SetMasterVolume(
731             /* [in] */
732             __in  float fLevel,
733             /* [unique][in] */ LPCGUID EventContext) = 0;
734 
735         virtual HRESULT STDMETHODCALLTYPE GetMasterVolume(
736             /* [out] */
737             __out  float *pfLevel) = 0;
738 
739         virtual HRESULT STDMETHODCALLTYPE SetMute(
740             /* [in] */
741             __in  const BOOL bMute,
742             /* [unique][in] */ LPCGUID EventContext) = 0;
743 
744         virtual HRESULT STDMETHODCALLTYPE GetMute(
745             /* [out] */
746             __out  BOOL *pbMute) = 0;
747 
748     };
749 
750 #else 	/* C style interface */
751 
752     typedef struct ISimpleAudioVolumeVtbl
753     {
754         BEGIN_INTERFACE
755 
756         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
757             ISimpleAudioVolume * This,
758             /* [in] */ REFIID riid,
759             /* [iid_is][out] */
760             __RPC__deref_out  void **ppvObject);
761 
762         ULONG ( STDMETHODCALLTYPE *AddRef )(
763             ISimpleAudioVolume * This);
764 
765         ULONG ( STDMETHODCALLTYPE *Release )(
766             ISimpleAudioVolume * This);
767 
768         HRESULT ( STDMETHODCALLTYPE *SetMasterVolume )(
769             ISimpleAudioVolume * This,
770             /* [in] */
771             __in  float fLevel,
772             /* [unique][in] */ LPCGUID EventContext);
773 
774         HRESULT ( STDMETHODCALLTYPE *GetMasterVolume )(
775             ISimpleAudioVolume * This,
776             /* [out] */
777             __out  float *pfLevel);
778 
779         HRESULT ( STDMETHODCALLTYPE *SetMute )(
780             ISimpleAudioVolume * This,
781             /* [in] */
782             __in  const BOOL bMute,
783             /* [unique][in] */ LPCGUID EventContext);
784 
785         HRESULT ( STDMETHODCALLTYPE *GetMute )(
786             ISimpleAudioVolume * This,
787             /* [out] */
788             __out  BOOL *pbMute);
789 
790         END_INTERFACE
791     } ISimpleAudioVolumeVtbl;
792 
793     interface ISimpleAudioVolume
794     {
795         CONST_VTBL struct ISimpleAudioVolumeVtbl *lpVtbl;
796     };
797 
798 
799 
800 #ifdef COBJMACROS
801 
802 
803 #define ISimpleAudioVolume_QueryInterface(This,riid,ppvObject)	\
804     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
805 
806 #define ISimpleAudioVolume_AddRef(This)	\
807     ( (This)->lpVtbl -> AddRef(This) )
808 
809 #define ISimpleAudioVolume_Release(This)	\
810     ( (This)->lpVtbl -> Release(This) )
811 
812 
813 #define ISimpleAudioVolume_SetMasterVolume(This,fLevel,EventContext)	\
814     ( (This)->lpVtbl -> SetMasterVolume(This,fLevel,EventContext) )
815 
816 #define ISimpleAudioVolume_GetMasterVolume(This,pfLevel)	\
817     ( (This)->lpVtbl -> GetMasterVolume(This,pfLevel) )
818 
819 #define ISimpleAudioVolume_SetMute(This,bMute,EventContext)	\
820     ( (This)->lpVtbl -> SetMute(This,bMute,EventContext) )
821 
822 #define ISimpleAudioVolume_GetMute(This,pbMute)	\
823     ( (This)->lpVtbl -> GetMute(This,pbMute) )
824 
825 #endif /* COBJMACROS */
826 
827 
828 #endif 	/* C style interface */
829 
830 
831 
832 
833 #endif 	/* __ISimpleAudioVolume_INTERFACE_DEFINED__ */
834 
835 
836 #ifndef __IAudioStreamVolume_INTERFACE_DEFINED__
837 #define __IAudioStreamVolume_INTERFACE_DEFINED__
838 
839 /* interface IAudioStreamVolume */
840 /* [local][unique][uuid][object] */
841 
842 
843 EXTERN_C const IID IID_IAudioStreamVolume;
844 
845 #if defined(__cplusplus) && !defined(CINTERFACE)
846 
847     MIDL_INTERFACE("93014887-242D-4068-8A15-CF5E93B90FE3")
848     IAudioStreamVolume : public IUnknown
849     {
850     public:
851         virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
852             /* [out] */
853             __out  UINT32 *pdwCount) = 0;
854 
855         virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
856             /* [in] */
857             __in  UINT32 dwIndex,
858             /* [in] */
859             __in  const float fLevel) = 0;
860 
861         virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
862             /* [in] */
863             __in  UINT32 dwIndex,
864             /* [out] */
865             __out  float *pfLevel) = 0;
866 
867         virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
868             /* [in] */
869             __in  UINT32 dwCount,
870             /* [size_is][in] */
871             __in_ecount(dwCount)  const float *pfVolumes) = 0;
872 
873         virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
874             /* [in] */
875             __in  UINT32 dwCount,
876             /* [size_is][out] */
877             __out_ecount(dwCount)  float *pfVolumes) = 0;
878 
879     };
880 
881 #else 	/* C style interface */
882 
883     typedef struct IAudioStreamVolumeVtbl
884     {
885         BEGIN_INTERFACE
886 
887         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
888             IAudioStreamVolume * This,
889             /* [in] */ REFIID riid,
890             /* [iid_is][out] */
891             __RPC__deref_out  void **ppvObject);
892 
893         ULONG ( STDMETHODCALLTYPE *AddRef )(
894             IAudioStreamVolume * This);
895 
896         ULONG ( STDMETHODCALLTYPE *Release )(
897             IAudioStreamVolume * This);
898 
899         HRESULT ( STDMETHODCALLTYPE *GetChannelCount )(
900             IAudioStreamVolume * This,
901             /* [out] */
902             __out  UINT32 *pdwCount);
903 
904         HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )(
905             IAudioStreamVolume * This,
906             /* [in] */
907             __in  UINT32 dwIndex,
908             /* [in] */
909             __in  const float fLevel);
910 
911         HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )(
912             IAudioStreamVolume * This,
913             /* [in] */
914             __in  UINT32 dwIndex,
915             /* [out] */
916             __out  float *pfLevel);
917 
918         HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )(
919             IAudioStreamVolume * This,
920             /* [in] */
921             __in  UINT32 dwCount,
922             /* [size_is][in] */
923             __in_ecount(dwCount)  const float *pfVolumes);
924 
925         HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )(
926             IAudioStreamVolume * This,
927             /* [in] */
928             __in  UINT32 dwCount,
929             /* [size_is][out] */
930             __out_ecount(dwCount)  float *pfVolumes);
931 
932         END_INTERFACE
933     } IAudioStreamVolumeVtbl;
934 
935     interface IAudioStreamVolume
936     {
937         CONST_VTBL struct IAudioStreamVolumeVtbl *lpVtbl;
938     };
939 
940 
941 
942 #ifdef COBJMACROS
943 
944 
945 #define IAudioStreamVolume_QueryInterface(This,riid,ppvObject)	\
946     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
947 
948 #define IAudioStreamVolume_AddRef(This)	\
949     ( (This)->lpVtbl -> AddRef(This) )
950 
951 #define IAudioStreamVolume_Release(This)	\
952     ( (This)->lpVtbl -> Release(This) )
953 
954 
955 #define IAudioStreamVolume_GetChannelCount(This,pdwCount)	\
956     ( (This)->lpVtbl -> GetChannelCount(This,pdwCount) )
957 
958 #define IAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel)	\
959     ( (This)->lpVtbl -> SetChannelVolume(This,dwIndex,fLevel) )
960 
961 #define IAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel)	\
962     ( (This)->lpVtbl -> GetChannelVolume(This,dwIndex,pfLevel) )
963 
964 #define IAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes)	\
965     ( (This)->lpVtbl -> SetAllVolumes(This,dwCount,pfVolumes) )
966 
967 #define IAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes)	\
968     ( (This)->lpVtbl -> GetAllVolumes(This,dwCount,pfVolumes) )
969 
970 #endif /* COBJMACROS */
971 
972 
973 #endif 	/* C style interface */
974 
975 
976 
977 
978 #endif 	/* __IAudioStreamVolume_INTERFACE_DEFINED__ */
979 
980 
981 #ifndef __IChannelAudioVolume_INTERFACE_DEFINED__
982 #define __IChannelAudioVolume_INTERFACE_DEFINED__
983 
984 /* interface IChannelAudioVolume */
985 /* [local][unique][uuid][object] */
986 
987 
988 EXTERN_C const IID IID_IChannelAudioVolume;
989 
990 #if defined(__cplusplus) && !defined(CINTERFACE)
991 
992     MIDL_INTERFACE("1C158861-B533-4B30-B1CF-E853E51C59B8")
993     IChannelAudioVolume : public IUnknown
994     {
995     public:
996         virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
997             /* [out] */
998             __out  UINT32 *pdwCount) = 0;
999 
1000         virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
1001             /* [in] */
1002             __in  UINT32 dwIndex,
1003             /* [in] */
1004             __in  const float fLevel,
1005             /* [unique][in] */ LPCGUID EventContext) = 0;
1006 
1007         virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
1008             /* [in] */
1009             __in  UINT32 dwIndex,
1010             /* [out] */
1011             __out  float *pfLevel) = 0;
1012 
1013         virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
1014             /* [in] */
1015             __in  UINT32 dwCount,
1016             /* [size_is][in] */
1017             __in_ecount(dwCount)  const float *pfVolumes,
1018             /* [unique][in] */ LPCGUID EventContext) = 0;
1019 
1020         virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
1021             /* [in] */
1022             __in  UINT32 dwCount,
1023             /* [size_is][out] */
1024             __out_ecount(dwCount)  float *pfVolumes) = 0;
1025 
1026     };
1027 
1028 #else 	/* C style interface */
1029 
1030     typedef struct IChannelAudioVolumeVtbl
1031     {
1032         BEGIN_INTERFACE
1033 
1034         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1035             IChannelAudioVolume * This,
1036             /* [in] */ REFIID riid,
1037             /* [iid_is][out] */
1038             __RPC__deref_out  void **ppvObject);
1039 
1040         ULONG ( STDMETHODCALLTYPE *AddRef )(
1041             IChannelAudioVolume * This);
1042 
1043         ULONG ( STDMETHODCALLTYPE *Release )(
1044             IChannelAudioVolume * This);
1045 
1046         HRESULT ( STDMETHODCALLTYPE *GetChannelCount )(
1047             IChannelAudioVolume * This,
1048             /* [out] */
1049             __out  UINT32 *pdwCount);
1050 
1051         HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )(
1052             IChannelAudioVolume * This,
1053             /* [in] */
1054             __in  UINT32 dwIndex,
1055             /* [in] */
1056             __in  const float fLevel,
1057             /* [unique][in] */ LPCGUID EventContext);
1058 
1059         HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )(
1060             IChannelAudioVolume * This,
1061             /* [in] */
1062             __in  UINT32 dwIndex,
1063             /* [out] */
1064             __out  float *pfLevel);
1065 
1066         HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )(
1067             IChannelAudioVolume * This,
1068             /* [in] */
1069             __in  UINT32 dwCount,
1070             /* [size_is][in] */
1071             __in_ecount(dwCount)  const float *pfVolumes,
1072             /* [unique][in] */ LPCGUID EventContext);
1073 
1074         HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )(
1075             IChannelAudioVolume * This,
1076             /* [in] */
1077             __in  UINT32 dwCount,
1078             /* [size_is][out] */
1079             __out_ecount(dwCount)  float *pfVolumes);
1080 
1081         END_INTERFACE
1082     } IChannelAudioVolumeVtbl;
1083 
1084     interface IChannelAudioVolume
1085     {
1086         CONST_VTBL struct IChannelAudioVolumeVtbl *lpVtbl;
1087     };
1088 
1089 
1090 
1091 #ifdef COBJMACROS
1092 
1093 
1094 #define IChannelAudioVolume_QueryInterface(This,riid,ppvObject)	\
1095     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1096 
1097 #define IChannelAudioVolume_AddRef(This)	\
1098     ( (This)->lpVtbl -> AddRef(This) )
1099 
1100 #define IChannelAudioVolume_Release(This)	\
1101     ( (This)->lpVtbl -> Release(This) )
1102 
1103 
1104 #define IChannelAudioVolume_GetChannelCount(This,pdwCount)	\
1105     ( (This)->lpVtbl -> GetChannelCount(This,pdwCount) )
1106 
1107 #define IChannelAudioVolume_SetChannelVolume(This,dwIndex,fLevel,EventContext)	\
1108     ( (This)->lpVtbl -> SetChannelVolume(This,dwIndex,fLevel,EventContext) )
1109 
1110 #define IChannelAudioVolume_GetChannelVolume(This,dwIndex,pfLevel)	\
1111     ( (This)->lpVtbl -> GetChannelVolume(This,dwIndex,pfLevel) )
1112 
1113 #define IChannelAudioVolume_SetAllVolumes(This,dwCount,pfVolumes,EventContext)	\
1114     ( (This)->lpVtbl -> SetAllVolumes(This,dwCount,pfVolumes,EventContext) )
1115 
1116 #define IChannelAudioVolume_GetAllVolumes(This,dwCount,pfVolumes)	\
1117     ( (This)->lpVtbl -> GetAllVolumes(This,dwCount,pfVolumes) )
1118 
1119 #endif /* COBJMACROS */
1120 
1121 
1122 #endif 	/* C style interface */
1123 
1124 
1125 
1126 
1127 #endif 	/* __IChannelAudioVolume_INTERFACE_DEFINED__ */
1128 
1129 
1130 /* interface __MIDL_itf_audioclient_0000_0007 */
1131 /* [local] */
1132 
1133 #define AUDCLNT_ERR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_AUDCLNT, n)
1134 #define AUDCLNT_SUCCESS(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_AUDCLNT, n)
1135 #define AUDCLNT_E_NOT_INITIALIZED            AUDCLNT_ERR(0x001)
1136 #define AUDCLNT_E_ALREADY_INITIALIZED        AUDCLNT_ERR(0x002)
1137 #define AUDCLNT_E_WRONG_ENDPOINT_TYPE        AUDCLNT_ERR(0x003)
1138 #define AUDCLNT_E_DEVICE_INVALIDATED         AUDCLNT_ERR(0x004)
1139 #define AUDCLNT_E_NOT_STOPPED                AUDCLNT_ERR(0x005)
1140 #define AUDCLNT_E_BUFFER_TOO_LARGE           AUDCLNT_ERR(0x006)
1141 #define AUDCLNT_E_OUT_OF_ORDER               AUDCLNT_ERR(0x007)
1142 #define AUDCLNT_E_UNSUPPORTED_FORMAT         AUDCLNT_ERR(0x008)
1143 #define AUDCLNT_E_INVALID_SIZE               AUDCLNT_ERR(0x009)
1144 #define AUDCLNT_E_DEVICE_IN_USE              AUDCLNT_ERR(0x00a)
1145 #define AUDCLNT_E_BUFFER_OPERATION_PENDING   AUDCLNT_ERR(0x00b)
1146 #define AUDCLNT_E_THREAD_NOT_REGISTERED      AUDCLNT_ERR(0x00c)
1147 #define AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED AUDCLNT_ERR(0x00e)
1148 #define AUDCLNT_E_ENDPOINT_CREATE_FAILED     AUDCLNT_ERR(0x00f)
1149 #define AUDCLNT_E_SERVICE_NOT_RUNNING        AUDCLNT_ERR(0x010)
1150 #define AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED     AUDCLNT_ERR(0x011)
1151 #define AUDCLNT_E_EXCLUSIVE_MODE_ONLY          AUDCLNT_ERR(0x012)
1152 #define AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL AUDCLNT_ERR(0x013)
1153 #define AUDCLNT_E_EVENTHANDLE_NOT_SET          AUDCLNT_ERR(0x014)
1154 #define AUDCLNT_E_INCORRECT_BUFFER_SIZE        AUDCLNT_ERR(0x015)
1155 #define AUDCLNT_E_BUFFER_SIZE_ERROR            AUDCLNT_ERR(0x016)
1156 #define AUDCLNT_E_CPUUSAGE_EXCEEDED            AUDCLNT_ERR(0x017)
1157 #define AUDCLNT_S_BUFFER_EMPTY              AUDCLNT_SUCCESS(0x001)
1158 #define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x002)
1159 #define AUDCLNT_S_POSITION_STALLED		   AUDCLNT_SUCCESS(0x003)
1160 
1161 
1162 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0007_v0_0_c_ifspec;
1163 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0007_v0_0_s_ifspec;
1164 
1165 /* Additional Prototypes for ALL interfaces */
1166 
1167 /* end of Additional Prototypes */
1168 
1169 #ifdef __cplusplus
1170 }
1171 #endif
1172 
1173 #endif
1174 
1175 
1176 
1177