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 endpointvolume.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 __endpointvolume_h__
43 #define __endpointvolume_h__
44 
45 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
46 #pragma once
47 #endif
48 
49 /* Forward Declarations */
50 
51 #ifndef __IAudioEndpointVolumeCallback_FWD_DEFINED__
52 #define __IAudioEndpointVolumeCallback_FWD_DEFINED__
53 typedef interface IAudioEndpointVolumeCallback IAudioEndpointVolumeCallback;
54 #endif 	/* __IAudioEndpointVolumeCallback_FWD_DEFINED__ */
55 
56 
57 #ifndef __IAudioEndpointVolume_FWD_DEFINED__
58 #define __IAudioEndpointVolume_FWD_DEFINED__
59 typedef interface IAudioEndpointVolume IAudioEndpointVolume;
60 #endif 	/* __IAudioEndpointVolume_FWD_DEFINED__ */
61 
62 
63 #ifndef __IAudioMeterInformation_FWD_DEFINED__
64 #define __IAudioMeterInformation_FWD_DEFINED__
65 typedef interface IAudioMeterInformation IAudioMeterInformation;
66 #endif 	/* __IAudioMeterInformation_FWD_DEFINED__ */
67 
68 
69 /* header files for imported files */
70 #include "unknwn.h"
71 #include "devicetopology.h"
72 
73 #ifdef __cplusplus
74 extern "C"{
75 #endif
76 
77 
78 /* interface __MIDL_itf_endpointvolume_0000_0000 */
79 /* [local] */
80 
81 typedef struct AUDIO_VOLUME_NOTIFICATION_DATA
82     {
83     GUID guidEventContext;
84     BOOL bMuted;
85     float fMasterVolume;
86     UINT nChannels;
87     float afChannelVolumes[ 1 ];
88     } 	AUDIO_VOLUME_NOTIFICATION_DATA;
89 
90 typedef struct AUDIO_VOLUME_NOTIFICATION_DATA *PAUDIO_VOLUME_NOTIFICATION_DATA;
91 
92 #define   ENDPOINT_HARDWARE_SUPPORT_VOLUME    0x00000001
93 #define   ENDPOINT_HARDWARE_SUPPORT_MUTE      0x00000002
94 #define   ENDPOINT_HARDWARE_SUPPORT_METER     0x00000004
95 
96 
97 extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0000_v0_0_c_ifspec;
98 extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0000_v0_0_s_ifspec;
99 
100 #ifndef __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__
101 #define __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__
102 
103 /* interface IAudioEndpointVolumeCallback */
104 /* [unique][helpstring][nonextensible][uuid][local][object] */
105 
106 
107 EXTERN_C const IID IID_IAudioEndpointVolumeCallback;
108 
109 #if defined(__cplusplus) && !defined(CINTERFACE)
110 
111     MIDL_INTERFACE("657804FA-D6AD-4496-8A60-352752AF4F89")
112     IAudioEndpointVolumeCallback : public IUnknown
113     {
114     public:
115         virtual HRESULT STDMETHODCALLTYPE OnNotify(
116             PAUDIO_VOLUME_NOTIFICATION_DATA pNotify) = 0;
117 
118     };
119 
120 #else 	/* C style interface */
121 
122     typedef struct IAudioEndpointVolumeCallbackVtbl
123     {
124         BEGIN_INTERFACE
125 
126         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
127             IAudioEndpointVolumeCallback * This,
128             /* [in] */ REFIID riid,
129             /* [iid_is][out] */
130             __RPC__deref_out  void **ppvObject);
131 
132         ULONG ( STDMETHODCALLTYPE *AddRef )(
133             IAudioEndpointVolumeCallback * This);
134 
135         ULONG ( STDMETHODCALLTYPE *Release )(
136             IAudioEndpointVolumeCallback * This);
137 
138         HRESULT ( STDMETHODCALLTYPE *OnNotify )(
139             IAudioEndpointVolumeCallback * This,
140             PAUDIO_VOLUME_NOTIFICATION_DATA pNotify);
141 
142         END_INTERFACE
143     } IAudioEndpointVolumeCallbackVtbl;
144 
145     interface IAudioEndpointVolumeCallback
146     {
147         CONST_VTBL struct IAudioEndpointVolumeCallbackVtbl *lpVtbl;
148     };
149 
150 
151 
152 #ifdef COBJMACROS
153 
154 
155 #define IAudioEndpointVolumeCallback_QueryInterface(This,riid,ppvObject)	\
156     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
157 
158 #define IAudioEndpointVolumeCallback_AddRef(This)	\
159     ( (This)->lpVtbl -> AddRef(This) )
160 
161 #define IAudioEndpointVolumeCallback_Release(This)	\
162     ( (This)->lpVtbl -> Release(This) )
163 
164 
165 #define IAudioEndpointVolumeCallback_OnNotify(This,pNotify)	\
166     ( (This)->lpVtbl -> OnNotify(This,pNotify) )
167 
168 #endif /* COBJMACROS */
169 
170 
171 #endif 	/* C style interface */
172 
173 
174 
175 
176 #endif 	/* __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__ */
177 
178 
179 #ifndef __IAudioEndpointVolume_INTERFACE_DEFINED__
180 #define __IAudioEndpointVolume_INTERFACE_DEFINED__
181 
182 /* interface IAudioEndpointVolume */
183 /* [unique][helpstring][nonextensible][uuid][local][object] */
184 
185 
186 EXTERN_C const IID IID_IAudioEndpointVolume;
187 
188 #if defined(__cplusplus) && !defined(CINTERFACE)
189 
190     MIDL_INTERFACE("5CDF2C82-841E-4546-9722-0CF74078229A")
191     IAudioEndpointVolume : public IUnknown
192     {
193     public:
194         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE RegisterControlChangeNotify(
195             /* [in] */
196             __in  IAudioEndpointVolumeCallback *pNotify) = 0;
197 
198         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE UnregisterControlChangeNotify(
199             /* [in] */
200             __in  IAudioEndpointVolumeCallback *pNotify) = 0;
201 
202         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelCount(
203             /* [out] */
204             __out  UINT *pnChannelCount) = 0;
205 
206         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMasterVolumeLevel(
207             /* [in] */
208             __in  float fLevelDB,
209             /* [unique][in] */ LPCGUID pguidEventContext) = 0;
210 
211         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMasterVolumeLevelScalar(
212             /* [in] */
213             __in  float fLevel,
214             /* [unique][in] */ LPCGUID pguidEventContext) = 0;
215 
216         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMasterVolumeLevel(
217             /* [out] */
218             __out  float *pfLevelDB) = 0;
219 
220         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMasterVolumeLevelScalar(
221             /* [out] */
222             __out  float *pfLevel) = 0;
223 
224         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetChannelVolumeLevel(
225             /* [in] */
226             __in  UINT nChannel,
227             float fLevelDB,
228             /* [unique][in] */ LPCGUID pguidEventContext) = 0;
229 
230         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetChannelVolumeLevelScalar(
231             /* [in] */
232             __in  UINT nChannel,
233             float fLevel,
234             /* [unique][in] */ LPCGUID pguidEventContext) = 0;
235 
236         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelVolumeLevel(
237             /* [in] */
238             __in  UINT nChannel,
239             /* [out] */
240             __out  float *pfLevelDB) = 0;
241 
242         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelVolumeLevelScalar(
243             /* [in] */
244             __in  UINT nChannel,
245             /* [out] */
246             __out  float *pfLevel) = 0;
247 
248         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE SetMute(
249             /* [in] */
250             __in  BOOL bMute,
251             /* [unique][in] */ LPCGUID pguidEventContext) = 0;
252 
253         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMute(
254             /* [out] */
255             __out  BOOL *pbMute) = 0;
256 
257         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVolumeStepInfo(
258             /* [out] */
259             __out  UINT *pnStep,
260             /* [out] */
261             __out  UINT *pnStepCount) = 0;
262 
263         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE VolumeStepUp(
264             /* [unique][in] */ LPCGUID pguidEventContext) = 0;
265 
266         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE VolumeStepDown(
267             /* [unique][in] */ LPCGUID pguidEventContext) = 0;
268 
269         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryHardwareSupport(
270             /* [out] */
271             __out  DWORD *pdwHardwareSupportMask) = 0;
272 
273         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetVolumeRange(
274             /* [out] */
275             __out  float *pflVolumeMindB,
276             /* [out] */
277             __out  float *pflVolumeMaxdB,
278             /* [out] */
279             __out  float *pflVolumeIncrementdB) = 0;
280 
281     };
282 
283 #else 	/* C style interface */
284 
285     typedef struct IAudioEndpointVolumeVtbl
286     {
287         BEGIN_INTERFACE
288 
289         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
290             IAudioEndpointVolume * This,
291             /* [in] */ REFIID riid,
292             /* [iid_is][out] */
293             __RPC__deref_out  void **ppvObject);
294 
295         ULONG ( STDMETHODCALLTYPE *AddRef )(
296             IAudioEndpointVolume * This);
297 
298         ULONG ( STDMETHODCALLTYPE *Release )(
299             IAudioEndpointVolume * This);
300 
301         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *RegisterControlChangeNotify )(
302             IAudioEndpointVolume * This,
303             /* [in] */
304             __in  IAudioEndpointVolumeCallback *pNotify);
305 
306         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *UnregisterControlChangeNotify )(
307             IAudioEndpointVolume * This,
308             /* [in] */
309             __in  IAudioEndpointVolumeCallback *pNotify);
310 
311         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )(
312             IAudioEndpointVolume * This,
313             /* [out] */
314             __out  UINT *pnChannelCount);
315 
316         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevel )(
317             IAudioEndpointVolume * This,
318             /* [in] */
319             __in  float fLevelDB,
320             /* [unique][in] */ LPCGUID pguidEventContext);
321 
322         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevelScalar )(
323             IAudioEndpointVolume * This,
324             /* [in] */
325             __in  float fLevel,
326             /* [unique][in] */ LPCGUID pguidEventContext);
327 
328         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevel )(
329             IAudioEndpointVolume * This,
330             /* [out] */
331             __out  float *pfLevelDB);
332 
333         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevelScalar )(
334             IAudioEndpointVolume * This,
335             /* [out] */
336             __out  float *pfLevel);
337 
338         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevel )(
339             IAudioEndpointVolume * This,
340             /* [in] */
341             __in  UINT nChannel,
342             float fLevelDB,
343             /* [unique][in] */ LPCGUID pguidEventContext);
344 
345         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevelScalar )(
346             IAudioEndpointVolume * This,
347             /* [in] */
348             __in  UINT nChannel,
349             float fLevel,
350             /* [unique][in] */ LPCGUID pguidEventContext);
351 
352         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevel )(
353             IAudioEndpointVolume * This,
354             /* [in] */
355             __in  UINT nChannel,
356             /* [out] */
357             __out  float *pfLevelDB);
358 
359         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevelScalar )(
360             IAudioEndpointVolume * This,
361             /* [in] */
362             __in  UINT nChannel,
363             /* [out] */
364             __out  float *pfLevel);
365 
366         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *SetMute )(
367             IAudioEndpointVolume * This,
368             /* [in] */
369             __in  BOOL bMute,
370             /* [unique][in] */ LPCGUID pguidEventContext);
371 
372         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMute )(
373             IAudioEndpointVolume * This,
374             /* [out] */
375             __out  BOOL *pbMute);
376 
377         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeStepInfo )(
378             IAudioEndpointVolume * This,
379             /* [out] */
380             __out  UINT *pnStep,
381             /* [out] */
382             __out  UINT *pnStepCount);
383 
384         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepUp )(
385             IAudioEndpointVolume * This,
386             /* [unique][in] */ LPCGUID pguidEventContext);
387 
388         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *VolumeStepDown )(
389             IAudioEndpointVolume * This,
390             /* [unique][in] */ LPCGUID pguidEventContext);
391 
392         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )(
393             IAudioEndpointVolume * This,
394             /* [out] */
395             __out  DWORD *pdwHardwareSupportMask);
396 
397         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetVolumeRange )(
398             IAudioEndpointVolume * This,
399             /* [out] */
400             __out  float *pflVolumeMindB,
401             /* [out] */
402             __out  float *pflVolumeMaxdB,
403             /* [out] */
404             __out  float *pflVolumeIncrementdB);
405 
406         END_INTERFACE
407     } IAudioEndpointVolumeVtbl;
408 
409     interface IAudioEndpointVolume
410     {
411         CONST_VTBL struct IAudioEndpointVolumeVtbl *lpVtbl;
412     };
413 
414 
415 
416 #ifdef COBJMACROS
417 
418 
419 #define IAudioEndpointVolume_QueryInterface(This,riid,ppvObject)	\
420     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
421 
422 #define IAudioEndpointVolume_AddRef(This)	\
423     ( (This)->lpVtbl -> AddRef(This) )
424 
425 #define IAudioEndpointVolume_Release(This)	\
426     ( (This)->lpVtbl -> Release(This) )
427 
428 
429 #define IAudioEndpointVolume_RegisterControlChangeNotify(This,pNotify)	\
430     ( (This)->lpVtbl -> RegisterControlChangeNotify(This,pNotify) )
431 
432 #define IAudioEndpointVolume_UnregisterControlChangeNotify(This,pNotify)	\
433     ( (This)->lpVtbl -> UnregisterControlChangeNotify(This,pNotify) )
434 
435 #define IAudioEndpointVolume_GetChannelCount(This,pnChannelCount)	\
436     ( (This)->lpVtbl -> GetChannelCount(This,pnChannelCount) )
437 
438 #define IAudioEndpointVolume_SetMasterVolumeLevel(This,fLevelDB,pguidEventContext)	\
439     ( (This)->lpVtbl -> SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) )
440 
441 #define IAudioEndpointVolume_SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext)	\
442     ( (This)->lpVtbl -> SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) )
443 
444 #define IAudioEndpointVolume_GetMasterVolumeLevel(This,pfLevelDB)	\
445     ( (This)->lpVtbl -> GetMasterVolumeLevel(This,pfLevelDB) )
446 
447 #define IAudioEndpointVolume_GetMasterVolumeLevelScalar(This,pfLevel)	\
448     ( (This)->lpVtbl -> GetMasterVolumeLevelScalar(This,pfLevel) )
449 
450 #define IAudioEndpointVolume_SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext)	\
451     ( (This)->lpVtbl -> SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) )
452 
453 #define IAudioEndpointVolume_SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext)	\
454     ( (This)->lpVtbl -> SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) )
455 
456 #define IAudioEndpointVolume_GetChannelVolumeLevel(This,nChannel,pfLevelDB)	\
457     ( (This)->lpVtbl -> GetChannelVolumeLevel(This,nChannel,pfLevelDB) )
458 
459 #define IAudioEndpointVolume_GetChannelVolumeLevelScalar(This,nChannel,pfLevel)	\
460     ( (This)->lpVtbl -> GetChannelVolumeLevelScalar(This,nChannel,pfLevel) )
461 
462 #define IAudioEndpointVolume_SetMute(This,bMute,pguidEventContext)	\
463     ( (This)->lpVtbl -> SetMute(This,bMute,pguidEventContext) )
464 
465 #define IAudioEndpointVolume_GetMute(This,pbMute)	\
466     ( (This)->lpVtbl -> GetMute(This,pbMute) )
467 
468 #define IAudioEndpointVolume_GetVolumeStepInfo(This,pnStep,pnStepCount)	\
469     ( (This)->lpVtbl -> GetVolumeStepInfo(This,pnStep,pnStepCount) )
470 
471 #define IAudioEndpointVolume_VolumeStepUp(This,pguidEventContext)	\
472     ( (This)->lpVtbl -> VolumeStepUp(This,pguidEventContext) )
473 
474 #define IAudioEndpointVolume_VolumeStepDown(This,pguidEventContext)	\
475     ( (This)->lpVtbl -> VolumeStepDown(This,pguidEventContext) )
476 
477 #define IAudioEndpointVolume_QueryHardwareSupport(This,pdwHardwareSupportMask)	\
478     ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) )
479 
480 #define IAudioEndpointVolume_GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB)	\
481     ( (This)->lpVtbl -> GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) )
482 
483 #endif /* COBJMACROS */
484 
485 
486 #endif 	/* C style interface */
487 
488 
489 
490 
491 #endif 	/* __IAudioEndpointVolume_INTERFACE_DEFINED__ */
492 
493 
494 #ifndef __IAudioMeterInformation_INTERFACE_DEFINED__
495 #define __IAudioMeterInformation_INTERFACE_DEFINED__
496 
497 /* interface IAudioMeterInformation */
498 /* [unique][helpstring][nonextensible][uuid][local][object] */
499 
500 
501 EXTERN_C const IID IID_IAudioMeterInformation;
502 
503 #if defined(__cplusplus) && !defined(CINTERFACE)
504 
505     MIDL_INTERFACE("C02216F6-8C67-4B5B-9D00-D008E73E0064")
506     IAudioMeterInformation : public IUnknown
507     {
508     public:
509         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetPeakValue(
510             /* [out] */ float *pfPeak) = 0;
511 
512         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetMeteringChannelCount(
513             /* [out] */
514             __out  UINT *pnChannelCount) = 0;
515 
516         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE GetChannelsPeakValues(
517             /* [in] */ UINT32 u32ChannelCount,
518             /* [size_is][out] */ float *afPeakValues) = 0;
519 
520         virtual /* [helpstring] */ HRESULT STDMETHODCALLTYPE QueryHardwareSupport(
521             /* [out] */
522             __out  DWORD *pdwHardwareSupportMask) = 0;
523 
524     };
525 
526 #else 	/* C style interface */
527 
528     typedef struct IAudioMeterInformationVtbl
529     {
530         BEGIN_INTERFACE
531 
532         HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
533             IAudioMeterInformation * This,
534             /* [in] */ REFIID riid,
535             /* [iid_is][out] */
536             __RPC__deref_out  void **ppvObject);
537 
538         ULONG ( STDMETHODCALLTYPE *AddRef )(
539             IAudioMeterInformation * This);
540 
541         ULONG ( STDMETHODCALLTYPE *Release )(
542             IAudioMeterInformation * This);
543 
544         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetPeakValue )(
545             IAudioMeterInformation * This,
546             /* [out] */ float *pfPeak);
547 
548         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetMeteringChannelCount )(
549             IAudioMeterInformation * This,
550             /* [out] */
551             __out  UINT *pnChannelCount);
552 
553         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *GetChannelsPeakValues )(
554             IAudioMeterInformation * This,
555             /* [in] */ UINT32 u32ChannelCount,
556             /* [size_is][out] */ float *afPeakValues);
557 
558         /* [helpstring] */ HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )(
559             IAudioMeterInformation * This,
560             /* [out] */
561             __out  DWORD *pdwHardwareSupportMask);
562 
563         END_INTERFACE
564     } IAudioMeterInformationVtbl;
565 
566     interface IAudioMeterInformation
567     {
568         CONST_VTBL struct IAudioMeterInformationVtbl *lpVtbl;
569     };
570 
571 
572 
573 #ifdef COBJMACROS
574 
575 
576 #define IAudioMeterInformation_QueryInterface(This,riid,ppvObject)	\
577     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
578 
579 #define IAudioMeterInformation_AddRef(This)	\
580     ( (This)->lpVtbl -> AddRef(This) )
581 
582 #define IAudioMeterInformation_Release(This)	\
583     ( (This)->lpVtbl -> Release(This) )
584 
585 
586 #define IAudioMeterInformation_GetPeakValue(This,pfPeak)	\
587     ( (This)->lpVtbl -> GetPeakValue(This,pfPeak) )
588 
589 #define IAudioMeterInformation_GetMeteringChannelCount(This,pnChannelCount)	\
590     ( (This)->lpVtbl -> GetMeteringChannelCount(This,pnChannelCount) )
591 
592 #define IAudioMeterInformation_GetChannelsPeakValues(This,u32ChannelCount,afPeakValues)	\
593     ( (This)->lpVtbl -> GetChannelsPeakValues(This,u32ChannelCount,afPeakValues) )
594 
595 #define IAudioMeterInformation_QueryHardwareSupport(This,pdwHardwareSupportMask)	\
596     ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) )
597 
598 #endif /* COBJMACROS */
599 
600 
601 #endif 	/* C style interface */
602 
603 
604 
605 
606 #endif 	/* __IAudioMeterInformation_INTERFACE_DEFINED__ */
607 
608 
609 /* Additional Prototypes for ALL interfaces */
610 
611 /* end of Additional Prototypes */
612 
613 #ifdef __cplusplus
614 }
615 #endif
616 
617 #endif
618 
619 
620 
621