1/*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-digit/src/mingw-w64-svn-r5861/mingw-w64-headers/include/endpointvolume.idl - Do not edit ***/
2
3#ifndef __REQUIRED_RPCNDR_H_VERSION__
4#define __REQUIRED_RPCNDR_H_VERSION__ 475
5#endif
6
7#include <rpc.h>
8#include <rpcndr.h>
9
10#ifndef COM_NO_WINDOWS_H
11#include <windows.h>
12#include <ole2.h>
13#endif
14
15#ifndef __endpointvolume_h__
16#define __endpointvolume_h__
17
18/* Forward declarations */
19
20#ifndef __IAudioEndpointVolumeCallback_FWD_DEFINED__
21#define __IAudioEndpointVolumeCallback_FWD_DEFINED__
22typedef interface IAudioEndpointVolumeCallback IAudioEndpointVolumeCallback;
23#endif
24
25#ifndef __IAudioEndpointVolume_FWD_DEFINED__
26#define __IAudioEndpointVolume_FWD_DEFINED__
27typedef interface IAudioEndpointVolume IAudioEndpointVolume;
28#endif
29
30#ifndef __IAudioEndpointVolumeEx_FWD_DEFINED__
31#define __IAudioEndpointVolumeEx_FWD_DEFINED__
32typedef interface IAudioEndpointVolumeEx IAudioEndpointVolumeEx;
33#endif
34
35/* Headers for imported files */
36
37#include <unknwn.h>
38#include <devicetopology.h>
39
40#ifdef __cplusplus
41extern "C" {
42#endif
43
44typedef struct AUDIO_VOLUME_NOTIFICATION_DATA {
45    GUID guidEventContext;
46    WINBOOL bMuted;
47    FLOAT fMasterVolume;
48    UINT nChannels;
49    FLOAT afChannelVolumes[1];
50} AUDIO_VOLUME_NOTIFICATION_DATA;
51typedef struct AUDIO_VOLUME_NOTIFICATION_DATA *PAUDIO_VOLUME_NOTIFICATION_DATA;
52#define ENDPOINT_HARDWARE_SUPPORT_VOLUME 0x1
53#define ENDPOINT_HARDWARE_SUPPORT_MUTE 0x2
54#define ENDPOINT_HARDWARE_SUPPORT_METER 0x4
55#ifndef __IAudioEndpointVolumeCallback_FWD_DEFINED__
56#define __IAudioEndpointVolumeCallback_FWD_DEFINED__
57typedef interface IAudioEndpointVolumeCallback IAudioEndpointVolumeCallback;
58#endif
59
60#ifndef __IAudioEndpointVolume_FWD_DEFINED__
61#define __IAudioEndpointVolume_FWD_DEFINED__
62typedef interface IAudioEndpointVolume IAudioEndpointVolume;
63#endif
64
65#ifndef __IAudioEndpointVolumeEx_FWD_DEFINED__
66#define __IAudioEndpointVolumeEx_FWD_DEFINED__
67typedef interface IAudioEndpointVolumeEx IAudioEndpointVolumeEx;
68#endif
69
70#ifndef __IAudioMeterInformation_FWD_DEFINED__
71#define __IAudioMeterInformation_FWD_DEFINED__
72typedef interface IAudioMeterInformation IAudioMeterInformation;
73#endif
74
75/*****************************************************************************
76 * IAudioEndpointVolumeCallback interface
77 */
78#ifndef __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__
79#define __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__
80
81DEFINE_GUID(IID_IAudioEndpointVolumeCallback, 0x657804fa, 0xd6ad, 0x4496, 0x8a,0x60, 0x35,0x27,0x52,0xaf,0x4f,0x89);
82#if defined(__cplusplus) && !defined(CINTERFACE)
83MIDL_INTERFACE("657804fa-d6ad-4496-8a60-352752af4f89")
84IAudioEndpointVolumeCallback : public IUnknown
85{
86    virtual HRESULT STDMETHODCALLTYPE OnNotify(
87        AUDIO_VOLUME_NOTIFICATION_DATA *pNotify) = 0;
88
89};
90#ifdef __CRT_UUID_DECL
91__CRT_UUID_DECL(IAudioEndpointVolumeCallback, 0x657804fa, 0xd6ad, 0x4496, 0x8a,0x60, 0x35,0x27,0x52,0xaf,0x4f,0x89)
92#endif
93#else
94typedef struct IAudioEndpointVolumeCallbackVtbl {
95    BEGIN_INTERFACE
96
97    /*** IUnknown methods ***/
98    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
99        IAudioEndpointVolumeCallback* This,
100        REFIID riid,
101        void **ppvObject);
102
103    ULONG (STDMETHODCALLTYPE *AddRef)(
104        IAudioEndpointVolumeCallback* This);
105
106    ULONG (STDMETHODCALLTYPE *Release)(
107        IAudioEndpointVolumeCallback* This);
108
109    /*** IAudioEndpointVolumeCallback methods ***/
110    HRESULT (STDMETHODCALLTYPE *OnNotify)(
111        IAudioEndpointVolumeCallback* This,
112        AUDIO_VOLUME_NOTIFICATION_DATA *pNotify);
113
114    END_INTERFACE
115} IAudioEndpointVolumeCallbackVtbl;
116interface IAudioEndpointVolumeCallback {
117    CONST_VTBL IAudioEndpointVolumeCallbackVtbl* lpVtbl;
118};
119
120#ifdef COBJMACROS
121#ifndef WIDL_C_INLINE_WRAPPERS
122/*** IUnknown methods ***/
123#define IAudioEndpointVolumeCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
124#define IAudioEndpointVolumeCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
125#define IAudioEndpointVolumeCallback_Release(This) (This)->lpVtbl->Release(This)
126/*** IAudioEndpointVolumeCallback methods ***/
127#define IAudioEndpointVolumeCallback_OnNotify(This,pNotify) (This)->lpVtbl->OnNotify(This,pNotify)
128#else
129/*** IUnknown methods ***/
130static FORCEINLINE HRESULT IAudioEndpointVolumeCallback_QueryInterface(IAudioEndpointVolumeCallback* This,REFIID riid,void **ppvObject) {
131    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
132}
133static FORCEINLINE ULONG IAudioEndpointVolumeCallback_AddRef(IAudioEndpointVolumeCallback* This) {
134    return This->lpVtbl->AddRef(This);
135}
136static FORCEINLINE ULONG IAudioEndpointVolumeCallback_Release(IAudioEndpointVolumeCallback* This) {
137    return This->lpVtbl->Release(This);
138}
139/*** IAudioEndpointVolumeCallback methods ***/
140static FORCEINLINE HRESULT IAudioEndpointVolumeCallback_OnNotify(IAudioEndpointVolumeCallback* This,AUDIO_VOLUME_NOTIFICATION_DATA *pNotify) {
141    return This->lpVtbl->OnNotify(This,pNotify);
142}
143#endif
144#endif
145
146#endif
147
148HRESULT STDMETHODCALLTYPE IAudioEndpointVolumeCallback_OnNotify_Proxy(
149    IAudioEndpointVolumeCallback* This,
150    AUDIO_VOLUME_NOTIFICATION_DATA *pNotify);
151void __RPC_STUB IAudioEndpointVolumeCallback_OnNotify_Stub(
152    IRpcStubBuffer* This,
153    IRpcChannelBuffer* pRpcChannelBuffer,
154    PRPC_MESSAGE pRpcMessage,
155    DWORD* pdwStubPhase);
156
157#endif  /* __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__ */
158
159/*****************************************************************************
160 * IAudioEndpointVolume interface
161 */
162#ifndef __IAudioEndpointVolume_INTERFACE_DEFINED__
163#define __IAudioEndpointVolume_INTERFACE_DEFINED__
164
165DEFINE_GUID(IID_IAudioEndpointVolume, 0x5cdf2c82, 0x841e, 0x4546, 0x97,0x22, 0x0c,0xf7,0x40,0x78,0x22,0x9a);
166#if defined(__cplusplus) && !defined(CINTERFACE)
167MIDL_INTERFACE("5cdf2c82-841e-4546-9722-0cf74078229a")
168IAudioEndpointVolume : public IUnknown
169{
170    virtual HRESULT STDMETHODCALLTYPE RegisterControlChangeNotify(
171        IAudioEndpointVolumeCallback *pNotify) = 0;
172
173    virtual HRESULT STDMETHODCALLTYPE UnregisterControlChangeNotify(
174        IAudioEndpointVolumeCallback *pNotify) = 0;
175
176    virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
177        UINT *pnChannelCount) = 0;
178
179    virtual HRESULT STDMETHODCALLTYPE SetMasterVolumeLevel(
180        FLOAT fLevelDB,
181        LPCGUID pguidEventContext) = 0;
182
183    virtual HRESULT STDMETHODCALLTYPE SetMasterVolumeLevelScalar(
184        FLOAT fLevel,
185        LPCGUID pguidEventContext) = 0;
186
187    virtual HRESULT STDMETHODCALLTYPE GetMasterVolumeLevel(
188        FLOAT *fLevelDB) = 0;
189
190    virtual HRESULT STDMETHODCALLTYPE GetMasterVolumeLevelScalar(
191        FLOAT *fLevel) = 0;
192
193    virtual HRESULT STDMETHODCALLTYPE SetChannelVolumeLevel(
194        UINT nChannel,
195        FLOAT fLevelDB,
196        LPCGUID pguidEventContext) = 0;
197
198    virtual HRESULT STDMETHODCALLTYPE SetChannelVolumeLevelScalar(
199        UINT nChannel,
200        FLOAT fLevel,
201        LPCGUID pguidEventContext) = 0;
202
203    virtual HRESULT STDMETHODCALLTYPE GetChannelVolumeLevel(
204        UINT nChannel,
205        FLOAT *fLevelDB) = 0;
206
207    virtual HRESULT STDMETHODCALLTYPE GetChannelVolumeLevelScalar(
208        UINT nChannel,
209        FLOAT *fLevel) = 0;
210
211    virtual HRESULT STDMETHODCALLTYPE SetMute(
212        WINBOOL bMute,
213        LPCGUID pguidEventContext) = 0;
214
215    virtual HRESULT STDMETHODCALLTYPE GetMute(
216        WINBOOL *bMute) = 0;
217
218    virtual HRESULT STDMETHODCALLTYPE GetVolumeStepInfo(
219        UINT *pnStep,
220        UINT *pnStepCount) = 0;
221
222    virtual HRESULT STDMETHODCALLTYPE VolumeStepUp(
223        LPCGUID pguidEventContext) = 0;
224
225    virtual HRESULT STDMETHODCALLTYPE VolumeStepDown(
226        LPCGUID pguidEventContext) = 0;
227
228    virtual HRESULT STDMETHODCALLTYPE QueryHardwareSupport(
229        DWORD *pdwHardwareSupportMask) = 0;
230
231    virtual HRESULT STDMETHODCALLTYPE GetVolumeRange(
232        FLOAT *pflVolumeMindB,
233        FLOAT *pflVolumeMaxdB,
234        FLOAT *pflVolumeIncrementdB) = 0;
235
236};
237#ifdef __CRT_UUID_DECL
238__CRT_UUID_DECL(IAudioEndpointVolume, 0x5cdf2c82, 0x841e, 0x4546, 0x97,0x22, 0x0c,0xf7,0x40,0x78,0x22,0x9a)
239#endif
240#else
241typedef struct IAudioEndpointVolumeVtbl {
242    BEGIN_INTERFACE
243
244    /*** IUnknown methods ***/
245    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
246        IAudioEndpointVolume* This,
247        REFIID riid,
248        void **ppvObject);
249
250    ULONG (STDMETHODCALLTYPE *AddRef)(
251        IAudioEndpointVolume* This);
252
253    ULONG (STDMETHODCALLTYPE *Release)(
254        IAudioEndpointVolume* This);
255
256    /*** IAudioEndpointVolume methods ***/
257    HRESULT (STDMETHODCALLTYPE *RegisterControlChangeNotify)(
258        IAudioEndpointVolume* This,
259        IAudioEndpointVolumeCallback *pNotify);
260
261    HRESULT (STDMETHODCALLTYPE *UnregisterControlChangeNotify)(
262        IAudioEndpointVolume* This,
263        IAudioEndpointVolumeCallback *pNotify);
264
265    HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
266        IAudioEndpointVolume* This,
267        UINT *pnChannelCount);
268
269    HRESULT (STDMETHODCALLTYPE *SetMasterVolumeLevel)(
270        IAudioEndpointVolume* This,
271        FLOAT fLevelDB,
272        LPCGUID pguidEventContext);
273
274    HRESULT (STDMETHODCALLTYPE *SetMasterVolumeLevelScalar)(
275        IAudioEndpointVolume* This,
276        FLOAT fLevel,
277        LPCGUID pguidEventContext);
278
279    HRESULT (STDMETHODCALLTYPE *GetMasterVolumeLevel)(
280        IAudioEndpointVolume* This,
281        FLOAT *fLevelDB);
282
283    HRESULT (STDMETHODCALLTYPE *GetMasterVolumeLevelScalar)(
284        IAudioEndpointVolume* This,
285        FLOAT *fLevel);
286
287    HRESULT (STDMETHODCALLTYPE *SetChannelVolumeLevel)(
288        IAudioEndpointVolume* This,
289        UINT nChannel,
290        FLOAT fLevelDB,
291        LPCGUID pguidEventContext);
292
293    HRESULT (STDMETHODCALLTYPE *SetChannelVolumeLevelScalar)(
294        IAudioEndpointVolume* This,
295        UINT nChannel,
296        FLOAT fLevel,
297        LPCGUID pguidEventContext);
298
299    HRESULT (STDMETHODCALLTYPE *GetChannelVolumeLevel)(
300        IAudioEndpointVolume* This,
301        UINT nChannel,
302        FLOAT *fLevelDB);
303
304    HRESULT (STDMETHODCALLTYPE *GetChannelVolumeLevelScalar)(
305        IAudioEndpointVolume* This,
306        UINT nChannel,
307        FLOAT *fLevel);
308
309    HRESULT (STDMETHODCALLTYPE *SetMute)(
310        IAudioEndpointVolume* This,
311        WINBOOL bMute,
312        LPCGUID pguidEventContext);
313
314    HRESULT (STDMETHODCALLTYPE *GetMute)(
315        IAudioEndpointVolume* This,
316        WINBOOL *bMute);
317
318    HRESULT (STDMETHODCALLTYPE *GetVolumeStepInfo)(
319        IAudioEndpointVolume* This,
320        UINT *pnStep,
321        UINT *pnStepCount);
322
323    HRESULT (STDMETHODCALLTYPE *VolumeStepUp)(
324        IAudioEndpointVolume* This,
325        LPCGUID pguidEventContext);
326
327    HRESULT (STDMETHODCALLTYPE *VolumeStepDown)(
328        IAudioEndpointVolume* This,
329        LPCGUID pguidEventContext);
330
331    HRESULT (STDMETHODCALLTYPE *QueryHardwareSupport)(
332        IAudioEndpointVolume* This,
333        DWORD *pdwHardwareSupportMask);
334
335    HRESULT (STDMETHODCALLTYPE *GetVolumeRange)(
336        IAudioEndpointVolume* This,
337        FLOAT *pflVolumeMindB,
338        FLOAT *pflVolumeMaxdB,
339        FLOAT *pflVolumeIncrementdB);
340
341    END_INTERFACE
342} IAudioEndpointVolumeVtbl;
343interface IAudioEndpointVolume {
344    CONST_VTBL IAudioEndpointVolumeVtbl* lpVtbl;
345};
346
347#ifdef COBJMACROS
348#ifndef WIDL_C_INLINE_WRAPPERS
349/*** IUnknown methods ***/
350#define IAudioEndpointVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
351#define IAudioEndpointVolume_AddRef(This) (This)->lpVtbl->AddRef(This)
352#define IAudioEndpointVolume_Release(This) (This)->lpVtbl->Release(This)
353/*** IAudioEndpointVolume methods ***/
354#define IAudioEndpointVolume_RegisterControlChangeNotify(This,pNotify) (This)->lpVtbl->RegisterControlChangeNotify(This,pNotify)
355#define IAudioEndpointVolume_UnregisterControlChangeNotify(This,pNotify) (This)->lpVtbl->UnregisterControlChangeNotify(This,pNotify)
356#define IAudioEndpointVolume_GetChannelCount(This,pnChannelCount) (This)->lpVtbl->GetChannelCount(This,pnChannelCount)
357#define IAudioEndpointVolume_SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetMasterVolumeLevel(This,fLevelDB,pguidEventContext)
358#define IAudioEndpointVolume_SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) (This)->lpVtbl->SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext)
359#define IAudioEndpointVolume_GetMasterVolumeLevel(This,fLevelDB) (This)->lpVtbl->GetMasterVolumeLevel(This,fLevelDB)
360#define IAudioEndpointVolume_GetMasterVolumeLevelScalar(This,fLevel) (This)->lpVtbl->GetMasterVolumeLevelScalar(This,fLevel)
361#define IAudioEndpointVolume_SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext)
362#define IAudioEndpointVolume_SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) (This)->lpVtbl->SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext)
363#define IAudioEndpointVolume_GetChannelVolumeLevel(This,nChannel,fLevelDB) (This)->lpVtbl->GetChannelVolumeLevel(This,nChannel,fLevelDB)
364#define IAudioEndpointVolume_GetChannelVolumeLevelScalar(This,nChannel,fLevel) (This)->lpVtbl->GetChannelVolumeLevelScalar(This,nChannel,fLevel)
365#define IAudioEndpointVolume_SetMute(This,bMute,pguidEventContext) (This)->lpVtbl->SetMute(This,bMute,pguidEventContext)
366#define IAudioEndpointVolume_GetMute(This,bMute) (This)->lpVtbl->GetMute(This,bMute)
367#define IAudioEndpointVolume_GetVolumeStepInfo(This,pnStep,pnStepCount) (This)->lpVtbl->GetVolumeStepInfo(This,pnStep,pnStepCount)
368#define IAudioEndpointVolume_VolumeStepUp(This,pguidEventContext) (This)->lpVtbl->VolumeStepUp(This,pguidEventContext)
369#define IAudioEndpointVolume_VolumeStepDown(This,pguidEventContext) (This)->lpVtbl->VolumeStepDown(This,pguidEventContext)
370#define IAudioEndpointVolume_QueryHardwareSupport(This,pdwHardwareSupportMask) (This)->lpVtbl->QueryHardwareSupport(This,pdwHardwareSupportMask)
371#define IAudioEndpointVolume_GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) (This)->lpVtbl->GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB)
372#else
373/*** IUnknown methods ***/
374static FORCEINLINE HRESULT IAudioEndpointVolume_QueryInterface(IAudioEndpointVolume* This,REFIID riid,void **ppvObject) {
375    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
376}
377static FORCEINLINE ULONG IAudioEndpointVolume_AddRef(IAudioEndpointVolume* This) {
378    return This->lpVtbl->AddRef(This);
379}
380static FORCEINLINE ULONG IAudioEndpointVolume_Release(IAudioEndpointVolume* This) {
381    return This->lpVtbl->Release(This);
382}
383/*** IAudioEndpointVolume methods ***/
384static FORCEINLINE HRESULT IAudioEndpointVolume_RegisterControlChangeNotify(IAudioEndpointVolume* This,IAudioEndpointVolumeCallback *pNotify) {
385    return This->lpVtbl->RegisterControlChangeNotify(This,pNotify);
386}
387static FORCEINLINE HRESULT IAudioEndpointVolume_UnregisterControlChangeNotify(IAudioEndpointVolume* This,IAudioEndpointVolumeCallback *pNotify) {
388    return This->lpVtbl->UnregisterControlChangeNotify(This,pNotify);
389}
390static FORCEINLINE HRESULT IAudioEndpointVolume_GetChannelCount(IAudioEndpointVolume* This,UINT *pnChannelCount) {
391    return This->lpVtbl->GetChannelCount(This,pnChannelCount);
392}
393static FORCEINLINE HRESULT IAudioEndpointVolume_SetMasterVolumeLevel(IAudioEndpointVolume* This,FLOAT fLevelDB,LPCGUID pguidEventContext) {
394    return This->lpVtbl->SetMasterVolumeLevel(This,fLevelDB,pguidEventContext);
395}
396static FORCEINLINE HRESULT IAudioEndpointVolume_SetMasterVolumeLevelScalar(IAudioEndpointVolume* This,FLOAT fLevel,LPCGUID pguidEventContext) {
397    return This->lpVtbl->SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext);
398}
399static FORCEINLINE HRESULT IAudioEndpointVolume_GetMasterVolumeLevel(IAudioEndpointVolume* This,FLOAT *fLevelDB) {
400    return This->lpVtbl->GetMasterVolumeLevel(This,fLevelDB);
401}
402static FORCEINLINE HRESULT IAudioEndpointVolume_GetMasterVolumeLevelScalar(IAudioEndpointVolume* This,FLOAT *fLevel) {
403    return This->lpVtbl->GetMasterVolumeLevelScalar(This,fLevel);
404}
405static FORCEINLINE HRESULT IAudioEndpointVolume_SetChannelVolumeLevel(IAudioEndpointVolume* This,UINT nChannel,FLOAT fLevelDB,LPCGUID pguidEventContext) {
406    return This->lpVtbl->SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext);
407}
408static FORCEINLINE HRESULT IAudioEndpointVolume_SetChannelVolumeLevelScalar(IAudioEndpointVolume* This,UINT nChannel,FLOAT fLevel,LPCGUID pguidEventContext) {
409    return This->lpVtbl->SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext);
410}
411static FORCEINLINE HRESULT IAudioEndpointVolume_GetChannelVolumeLevel(IAudioEndpointVolume* This,UINT nChannel,FLOAT *fLevelDB) {
412    return This->lpVtbl->GetChannelVolumeLevel(This,nChannel,fLevelDB);
413}
414static FORCEINLINE HRESULT IAudioEndpointVolume_GetChannelVolumeLevelScalar(IAudioEndpointVolume* This,UINT nChannel,FLOAT *fLevel) {
415    return This->lpVtbl->GetChannelVolumeLevelScalar(This,nChannel,fLevel);
416}
417static FORCEINLINE HRESULT IAudioEndpointVolume_SetMute(IAudioEndpointVolume* This,WINBOOL bMute,LPCGUID pguidEventContext) {
418    return This->lpVtbl->SetMute(This,bMute,pguidEventContext);
419}
420static FORCEINLINE HRESULT IAudioEndpointVolume_GetMute(IAudioEndpointVolume* This,WINBOOL *bMute) {
421    return This->lpVtbl->GetMute(This,bMute);
422}
423static FORCEINLINE HRESULT IAudioEndpointVolume_GetVolumeStepInfo(IAudioEndpointVolume* This,UINT *pnStep,UINT *pnStepCount) {
424    return This->lpVtbl->GetVolumeStepInfo(This,pnStep,pnStepCount);
425}
426static FORCEINLINE HRESULT IAudioEndpointVolume_VolumeStepUp(IAudioEndpointVolume* This,LPCGUID pguidEventContext) {
427    return This->lpVtbl->VolumeStepUp(This,pguidEventContext);
428}
429static FORCEINLINE HRESULT IAudioEndpointVolume_VolumeStepDown(IAudioEndpointVolume* This,LPCGUID pguidEventContext) {
430    return This->lpVtbl->VolumeStepDown(This,pguidEventContext);
431}
432static FORCEINLINE HRESULT IAudioEndpointVolume_QueryHardwareSupport(IAudioEndpointVolume* This,DWORD *pdwHardwareSupportMask) {
433    return This->lpVtbl->QueryHardwareSupport(This,pdwHardwareSupportMask);
434}
435static FORCEINLINE HRESULT IAudioEndpointVolume_GetVolumeRange(IAudioEndpointVolume* This,FLOAT *pflVolumeMindB,FLOAT *pflVolumeMaxdB,FLOAT *pflVolumeIncrementdB) {
436    return This->lpVtbl->GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB);
437}
438#endif
439#endif
440
441#endif
442
443HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_RegisterControlChangeNotify_Proxy(
444    IAudioEndpointVolume* This,
445    IAudioEndpointVolumeCallback *pNotify);
446void __RPC_STUB IAudioEndpointVolume_RegisterControlChangeNotify_Stub(
447    IRpcStubBuffer* This,
448    IRpcChannelBuffer* pRpcChannelBuffer,
449    PRPC_MESSAGE pRpcMessage,
450    DWORD* pdwStubPhase);
451HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_UnregisterControlChangeNotify_Proxy(
452    IAudioEndpointVolume* This,
453    IAudioEndpointVolumeCallback *pNotify);
454void __RPC_STUB IAudioEndpointVolume_UnregisterControlChangeNotify_Stub(
455    IRpcStubBuffer* This,
456    IRpcChannelBuffer* pRpcChannelBuffer,
457    PRPC_MESSAGE pRpcMessage,
458    DWORD* pdwStubPhase);
459HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_GetChannelCount_Proxy(
460    IAudioEndpointVolume* This,
461    UINT *pnChannelCount);
462void __RPC_STUB IAudioEndpointVolume_GetChannelCount_Stub(
463    IRpcStubBuffer* This,
464    IRpcChannelBuffer* pRpcChannelBuffer,
465    PRPC_MESSAGE pRpcMessage,
466    DWORD* pdwStubPhase);
467HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_SetMasterVolumeLevel_Proxy(
468    IAudioEndpointVolume* This,
469    FLOAT fLevelDB,
470    LPCGUID pguidEventContext);
471void __RPC_STUB IAudioEndpointVolume_SetMasterVolumeLevel_Stub(
472    IRpcStubBuffer* This,
473    IRpcChannelBuffer* pRpcChannelBuffer,
474    PRPC_MESSAGE pRpcMessage,
475    DWORD* pdwStubPhase);
476HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_SetMasterVolumeLevelScalar_Proxy(
477    IAudioEndpointVolume* This,
478    FLOAT fLevel,
479    LPCGUID pguidEventContext);
480void __RPC_STUB IAudioEndpointVolume_SetMasterVolumeLevelScalar_Stub(
481    IRpcStubBuffer* This,
482    IRpcChannelBuffer* pRpcChannelBuffer,
483    PRPC_MESSAGE pRpcMessage,
484    DWORD* pdwStubPhase);
485HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_GetMasterVolumeLevel_Proxy(
486    IAudioEndpointVolume* This,
487    FLOAT *fLevelDB);
488void __RPC_STUB IAudioEndpointVolume_GetMasterVolumeLevel_Stub(
489    IRpcStubBuffer* This,
490    IRpcChannelBuffer* pRpcChannelBuffer,
491    PRPC_MESSAGE pRpcMessage,
492    DWORD* pdwStubPhase);
493HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_GetMasterVolumeLevelScalar_Proxy(
494    IAudioEndpointVolume* This,
495    FLOAT *fLevel);
496void __RPC_STUB IAudioEndpointVolume_GetMasterVolumeLevelScalar_Stub(
497    IRpcStubBuffer* This,
498    IRpcChannelBuffer* pRpcChannelBuffer,
499    PRPC_MESSAGE pRpcMessage,
500    DWORD* pdwStubPhase);
501HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_SetChannelVolumeLevel_Proxy(
502    IAudioEndpointVolume* This,
503    UINT nChannel,
504    FLOAT fLevelDB,
505    LPCGUID pguidEventContext);
506void __RPC_STUB IAudioEndpointVolume_SetChannelVolumeLevel_Stub(
507    IRpcStubBuffer* This,
508    IRpcChannelBuffer* pRpcChannelBuffer,
509    PRPC_MESSAGE pRpcMessage,
510    DWORD* pdwStubPhase);
511HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_SetChannelVolumeLevelScalar_Proxy(
512    IAudioEndpointVolume* This,
513    UINT nChannel,
514    FLOAT fLevel,
515    LPCGUID pguidEventContext);
516void __RPC_STUB IAudioEndpointVolume_SetChannelVolumeLevelScalar_Stub(
517    IRpcStubBuffer* This,
518    IRpcChannelBuffer* pRpcChannelBuffer,
519    PRPC_MESSAGE pRpcMessage,
520    DWORD* pdwStubPhase);
521HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_GetChannelVolumeLevel_Proxy(
522    IAudioEndpointVolume* This,
523    UINT nChannel,
524    FLOAT *fLevelDB);
525void __RPC_STUB IAudioEndpointVolume_GetChannelVolumeLevel_Stub(
526    IRpcStubBuffer* This,
527    IRpcChannelBuffer* pRpcChannelBuffer,
528    PRPC_MESSAGE pRpcMessage,
529    DWORD* pdwStubPhase);
530HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_GetChannelVolumeLevelScalar_Proxy(
531    IAudioEndpointVolume* This,
532    UINT nChannel,
533    FLOAT *fLevel);
534void __RPC_STUB IAudioEndpointVolume_GetChannelVolumeLevelScalar_Stub(
535    IRpcStubBuffer* This,
536    IRpcChannelBuffer* pRpcChannelBuffer,
537    PRPC_MESSAGE pRpcMessage,
538    DWORD* pdwStubPhase);
539HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_SetMute_Proxy(
540    IAudioEndpointVolume* This,
541    WINBOOL bMute,
542    LPCGUID pguidEventContext);
543void __RPC_STUB IAudioEndpointVolume_SetMute_Stub(
544    IRpcStubBuffer* This,
545    IRpcChannelBuffer* pRpcChannelBuffer,
546    PRPC_MESSAGE pRpcMessage,
547    DWORD* pdwStubPhase);
548HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_GetMute_Proxy(
549    IAudioEndpointVolume* This,
550    WINBOOL *bMute);
551void __RPC_STUB IAudioEndpointVolume_GetMute_Stub(
552    IRpcStubBuffer* This,
553    IRpcChannelBuffer* pRpcChannelBuffer,
554    PRPC_MESSAGE pRpcMessage,
555    DWORD* pdwStubPhase);
556HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_GetVolumeStepInfo_Proxy(
557    IAudioEndpointVolume* This,
558    UINT *pnStep,
559    UINT *pnStepCount);
560void __RPC_STUB IAudioEndpointVolume_GetVolumeStepInfo_Stub(
561    IRpcStubBuffer* This,
562    IRpcChannelBuffer* pRpcChannelBuffer,
563    PRPC_MESSAGE pRpcMessage,
564    DWORD* pdwStubPhase);
565HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_VolumeStepUp_Proxy(
566    IAudioEndpointVolume* This,
567    LPCGUID pguidEventContext);
568void __RPC_STUB IAudioEndpointVolume_VolumeStepUp_Stub(
569    IRpcStubBuffer* This,
570    IRpcChannelBuffer* pRpcChannelBuffer,
571    PRPC_MESSAGE pRpcMessage,
572    DWORD* pdwStubPhase);
573HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_VolumeStepDown_Proxy(
574    IAudioEndpointVolume* This,
575    LPCGUID pguidEventContext);
576void __RPC_STUB IAudioEndpointVolume_VolumeStepDown_Stub(
577    IRpcStubBuffer* This,
578    IRpcChannelBuffer* pRpcChannelBuffer,
579    PRPC_MESSAGE pRpcMessage,
580    DWORD* pdwStubPhase);
581HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_QueryHardwareSupport_Proxy(
582    IAudioEndpointVolume* This,
583    DWORD *pdwHardwareSupportMask);
584void __RPC_STUB IAudioEndpointVolume_QueryHardwareSupport_Stub(
585    IRpcStubBuffer* This,
586    IRpcChannelBuffer* pRpcChannelBuffer,
587    PRPC_MESSAGE pRpcMessage,
588    DWORD* pdwStubPhase);
589HRESULT STDMETHODCALLTYPE IAudioEndpointVolume_GetVolumeRange_Proxy(
590    IAudioEndpointVolume* This,
591    FLOAT *pflVolumeMindB,
592    FLOAT *pflVolumeMaxdB,
593    FLOAT *pflVolumeIncrementdB);
594void __RPC_STUB IAudioEndpointVolume_GetVolumeRange_Stub(
595    IRpcStubBuffer* This,
596    IRpcChannelBuffer* pRpcChannelBuffer,
597    PRPC_MESSAGE pRpcMessage,
598    DWORD* pdwStubPhase);
599
600#endif  /* __IAudioEndpointVolume_INTERFACE_DEFINED__ */
601
602/*****************************************************************************
603 * IAudioEndpointVolumeEx interface
604 */
605#ifndef __IAudioEndpointVolumeEx_INTERFACE_DEFINED__
606#define __IAudioEndpointVolumeEx_INTERFACE_DEFINED__
607
608DEFINE_GUID(IID_IAudioEndpointVolumeEx, 0x66e11784, 0xf695, 0x4f28, 0xa5,0x05, 0xa7,0x08,0x00,0x81,0xa7,0x8f);
609#if defined(__cplusplus) && !defined(CINTERFACE)
610MIDL_INTERFACE("66e11784-f695-4f28-a505-a7080081a78f")
611IAudioEndpointVolumeEx : public IAudioEndpointVolume
612{
613    virtual HRESULT STDMETHODCALLTYPE GetVolumeRangeChannel(
614        UINT iChannel,
615        FLOAT *pflVolumeMindB,
616        FLOAT *pflVolumeMaxdB,
617        FLOAT *pflVolumeIncrementdB) = 0;
618
619};
620#ifdef __CRT_UUID_DECL
621__CRT_UUID_DECL(IAudioEndpointVolumeEx, 0x66e11784, 0xf695, 0x4f28, 0xa5,0x05, 0xa7,0x08,0x00,0x81,0xa7,0x8f)
622#endif
623#else
624typedef struct IAudioEndpointVolumeExVtbl {
625    BEGIN_INTERFACE
626
627    /*** IUnknown methods ***/
628    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
629        IAudioEndpointVolumeEx* This,
630        REFIID riid,
631        void **ppvObject);
632
633    ULONG (STDMETHODCALLTYPE *AddRef)(
634        IAudioEndpointVolumeEx* This);
635
636    ULONG (STDMETHODCALLTYPE *Release)(
637        IAudioEndpointVolumeEx* This);
638
639    /*** IAudioEndpointVolume methods ***/
640    HRESULT (STDMETHODCALLTYPE *RegisterControlChangeNotify)(
641        IAudioEndpointVolumeEx* This,
642        IAudioEndpointVolumeCallback *pNotify);
643
644    HRESULT (STDMETHODCALLTYPE *UnregisterControlChangeNotify)(
645        IAudioEndpointVolumeEx* This,
646        IAudioEndpointVolumeCallback *pNotify);
647
648    HRESULT (STDMETHODCALLTYPE *GetChannelCount)(
649        IAudioEndpointVolumeEx* This,
650        UINT *pnChannelCount);
651
652    HRESULT (STDMETHODCALLTYPE *SetMasterVolumeLevel)(
653        IAudioEndpointVolumeEx* This,
654        FLOAT fLevelDB,
655        LPCGUID pguidEventContext);
656
657    HRESULT (STDMETHODCALLTYPE *SetMasterVolumeLevelScalar)(
658        IAudioEndpointVolumeEx* This,
659        FLOAT fLevel,
660        LPCGUID pguidEventContext);
661
662    HRESULT (STDMETHODCALLTYPE *GetMasterVolumeLevel)(
663        IAudioEndpointVolumeEx* This,
664        FLOAT *fLevelDB);
665
666    HRESULT (STDMETHODCALLTYPE *GetMasterVolumeLevelScalar)(
667        IAudioEndpointVolumeEx* This,
668        FLOAT *fLevel);
669
670    HRESULT (STDMETHODCALLTYPE *SetChannelVolumeLevel)(
671        IAudioEndpointVolumeEx* This,
672        UINT nChannel,
673        FLOAT fLevelDB,
674        LPCGUID pguidEventContext);
675
676    HRESULT (STDMETHODCALLTYPE *SetChannelVolumeLevelScalar)(
677        IAudioEndpointVolumeEx* This,
678        UINT nChannel,
679        FLOAT fLevel,
680        LPCGUID pguidEventContext);
681
682    HRESULT (STDMETHODCALLTYPE *GetChannelVolumeLevel)(
683        IAudioEndpointVolumeEx* This,
684        UINT nChannel,
685        FLOAT *fLevelDB);
686
687    HRESULT (STDMETHODCALLTYPE *GetChannelVolumeLevelScalar)(
688        IAudioEndpointVolumeEx* This,
689        UINT nChannel,
690        FLOAT *fLevel);
691
692    HRESULT (STDMETHODCALLTYPE *SetMute)(
693        IAudioEndpointVolumeEx* This,
694        WINBOOL bMute,
695        LPCGUID pguidEventContext);
696
697    HRESULT (STDMETHODCALLTYPE *GetMute)(
698        IAudioEndpointVolumeEx* This,
699        WINBOOL *bMute);
700
701    HRESULT (STDMETHODCALLTYPE *GetVolumeStepInfo)(
702        IAudioEndpointVolumeEx* This,
703        UINT *pnStep,
704        UINT *pnStepCount);
705
706    HRESULT (STDMETHODCALLTYPE *VolumeStepUp)(
707        IAudioEndpointVolumeEx* This,
708        LPCGUID pguidEventContext);
709
710    HRESULT (STDMETHODCALLTYPE *VolumeStepDown)(
711        IAudioEndpointVolumeEx* This,
712        LPCGUID pguidEventContext);
713
714    HRESULT (STDMETHODCALLTYPE *QueryHardwareSupport)(
715        IAudioEndpointVolumeEx* This,
716        DWORD *pdwHardwareSupportMask);
717
718    HRESULT (STDMETHODCALLTYPE *GetVolumeRange)(
719        IAudioEndpointVolumeEx* This,
720        FLOAT *pflVolumeMindB,
721        FLOAT *pflVolumeMaxdB,
722        FLOAT *pflVolumeIncrementdB);
723
724    /*** IAudioEndpointVolumeEx methods ***/
725    HRESULT (STDMETHODCALLTYPE *GetVolumeRangeChannel)(
726        IAudioEndpointVolumeEx* This,
727        UINT iChannel,
728        FLOAT *pflVolumeMindB,
729        FLOAT *pflVolumeMaxdB,
730        FLOAT *pflVolumeIncrementdB);
731
732    END_INTERFACE
733} IAudioEndpointVolumeExVtbl;
734interface IAudioEndpointVolumeEx {
735    CONST_VTBL IAudioEndpointVolumeExVtbl* lpVtbl;
736};
737
738#ifdef COBJMACROS
739#ifndef WIDL_C_INLINE_WRAPPERS
740/*** IUnknown methods ***/
741#define IAudioEndpointVolumeEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
742#define IAudioEndpointVolumeEx_AddRef(This) (This)->lpVtbl->AddRef(This)
743#define IAudioEndpointVolumeEx_Release(This) (This)->lpVtbl->Release(This)
744/*** IAudioEndpointVolume methods ***/
745#define IAudioEndpointVolumeEx_RegisterControlChangeNotify(This,pNotify) (This)->lpVtbl->RegisterControlChangeNotify(This,pNotify)
746#define IAudioEndpointVolumeEx_UnregisterControlChangeNotify(This,pNotify) (This)->lpVtbl->UnregisterControlChangeNotify(This,pNotify)
747#define IAudioEndpointVolumeEx_GetChannelCount(This,pnChannelCount) (This)->lpVtbl->GetChannelCount(This,pnChannelCount)
748#define IAudioEndpointVolumeEx_SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetMasterVolumeLevel(This,fLevelDB,pguidEventContext)
749#define IAudioEndpointVolumeEx_SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) (This)->lpVtbl->SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext)
750#define IAudioEndpointVolumeEx_GetMasterVolumeLevel(This,fLevelDB) (This)->lpVtbl->GetMasterVolumeLevel(This,fLevelDB)
751#define IAudioEndpointVolumeEx_GetMasterVolumeLevelScalar(This,fLevel) (This)->lpVtbl->GetMasterVolumeLevelScalar(This,fLevel)
752#define IAudioEndpointVolumeEx_SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext)
753#define IAudioEndpointVolumeEx_SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) (This)->lpVtbl->SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext)
754#define IAudioEndpointVolumeEx_GetChannelVolumeLevel(This,nChannel,fLevelDB) (This)->lpVtbl->GetChannelVolumeLevel(This,nChannel,fLevelDB)
755#define IAudioEndpointVolumeEx_GetChannelVolumeLevelScalar(This,nChannel,fLevel) (This)->lpVtbl->GetChannelVolumeLevelScalar(This,nChannel,fLevel)
756#define IAudioEndpointVolumeEx_SetMute(This,bMute,pguidEventContext) (This)->lpVtbl->SetMute(This,bMute,pguidEventContext)
757#define IAudioEndpointVolumeEx_GetMute(This,bMute) (This)->lpVtbl->GetMute(This,bMute)
758#define IAudioEndpointVolumeEx_GetVolumeStepInfo(This,pnStep,pnStepCount) (This)->lpVtbl->GetVolumeStepInfo(This,pnStep,pnStepCount)
759#define IAudioEndpointVolumeEx_VolumeStepUp(This,pguidEventContext) (This)->lpVtbl->VolumeStepUp(This,pguidEventContext)
760#define IAudioEndpointVolumeEx_VolumeStepDown(This,pguidEventContext) (This)->lpVtbl->VolumeStepDown(This,pguidEventContext)
761#define IAudioEndpointVolumeEx_QueryHardwareSupport(This,pdwHardwareSupportMask) (This)->lpVtbl->QueryHardwareSupport(This,pdwHardwareSupportMask)
762#define IAudioEndpointVolumeEx_GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) (This)->lpVtbl->GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB)
763/*** IAudioEndpointVolumeEx methods ***/
764#define IAudioEndpointVolumeEx_GetVolumeRangeChannel(This,iChannel,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) (This)->lpVtbl->GetVolumeRangeChannel(This,iChannel,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB)
765#else
766/*** IUnknown methods ***/
767static FORCEINLINE HRESULT IAudioEndpointVolumeEx_QueryInterface(IAudioEndpointVolumeEx* This,REFIID riid,void **ppvObject) {
768    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
769}
770static FORCEINLINE ULONG IAudioEndpointVolumeEx_AddRef(IAudioEndpointVolumeEx* This) {
771    return This->lpVtbl->AddRef(This);
772}
773static FORCEINLINE ULONG IAudioEndpointVolumeEx_Release(IAudioEndpointVolumeEx* This) {
774    return This->lpVtbl->Release(This);
775}
776/*** IAudioEndpointVolume methods ***/
777static FORCEINLINE HRESULT IAudioEndpointVolumeEx_RegisterControlChangeNotify(IAudioEndpointVolumeEx* This,IAudioEndpointVolumeCallback *pNotify) {
778    return This->lpVtbl->RegisterControlChangeNotify(This,pNotify);
779}
780static FORCEINLINE HRESULT IAudioEndpointVolumeEx_UnregisterControlChangeNotify(IAudioEndpointVolumeEx* This,IAudioEndpointVolumeCallback *pNotify) {
781    return This->lpVtbl->UnregisterControlChangeNotify(This,pNotify);
782}
783static FORCEINLINE HRESULT IAudioEndpointVolumeEx_GetChannelCount(IAudioEndpointVolumeEx* This,UINT *pnChannelCount) {
784    return This->lpVtbl->GetChannelCount(This,pnChannelCount);
785}
786static FORCEINLINE HRESULT IAudioEndpointVolumeEx_SetMasterVolumeLevel(IAudioEndpointVolumeEx* This,FLOAT fLevelDB,LPCGUID pguidEventContext) {
787    return This->lpVtbl->SetMasterVolumeLevel(This,fLevelDB,pguidEventContext);
788}
789static FORCEINLINE HRESULT IAudioEndpointVolumeEx_SetMasterVolumeLevelScalar(IAudioEndpointVolumeEx* This,FLOAT fLevel,LPCGUID pguidEventContext) {
790    return This->lpVtbl->SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext);
791}
792static FORCEINLINE HRESULT IAudioEndpointVolumeEx_GetMasterVolumeLevel(IAudioEndpointVolumeEx* This,FLOAT *fLevelDB) {
793    return This->lpVtbl->GetMasterVolumeLevel(This,fLevelDB);
794}
795static FORCEINLINE HRESULT IAudioEndpointVolumeEx_GetMasterVolumeLevelScalar(IAudioEndpointVolumeEx* This,FLOAT *fLevel) {
796    return This->lpVtbl->GetMasterVolumeLevelScalar(This,fLevel);
797}
798static FORCEINLINE HRESULT IAudioEndpointVolumeEx_SetChannelVolumeLevel(IAudioEndpointVolumeEx* This,UINT nChannel,FLOAT fLevelDB,LPCGUID pguidEventContext) {
799    return This->lpVtbl->SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext);
800}
801static FORCEINLINE HRESULT IAudioEndpointVolumeEx_SetChannelVolumeLevelScalar(IAudioEndpointVolumeEx* This,UINT nChannel,FLOAT fLevel,LPCGUID pguidEventContext) {
802    return This->lpVtbl->SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext);
803}
804static FORCEINLINE HRESULT IAudioEndpointVolumeEx_GetChannelVolumeLevel(IAudioEndpointVolumeEx* This,UINT nChannel,FLOAT *fLevelDB) {
805    return This->lpVtbl->GetChannelVolumeLevel(This,nChannel,fLevelDB);
806}
807static FORCEINLINE HRESULT IAudioEndpointVolumeEx_GetChannelVolumeLevelScalar(IAudioEndpointVolumeEx* This,UINT nChannel,FLOAT *fLevel) {
808    return This->lpVtbl->GetChannelVolumeLevelScalar(This,nChannel,fLevel);
809}
810static FORCEINLINE HRESULT IAudioEndpointVolumeEx_SetMute(IAudioEndpointVolumeEx* This,WINBOOL bMute,LPCGUID pguidEventContext) {
811    return This->lpVtbl->SetMute(This,bMute,pguidEventContext);
812}
813static FORCEINLINE HRESULT IAudioEndpointVolumeEx_GetMute(IAudioEndpointVolumeEx* This,WINBOOL *bMute) {
814    return This->lpVtbl->GetMute(This,bMute);
815}
816static FORCEINLINE HRESULT IAudioEndpointVolumeEx_GetVolumeStepInfo(IAudioEndpointVolumeEx* This,UINT *pnStep,UINT *pnStepCount) {
817    return This->lpVtbl->GetVolumeStepInfo(This,pnStep,pnStepCount);
818}
819static FORCEINLINE HRESULT IAudioEndpointVolumeEx_VolumeStepUp(IAudioEndpointVolumeEx* This,LPCGUID pguidEventContext) {
820    return This->lpVtbl->VolumeStepUp(This,pguidEventContext);
821}
822static FORCEINLINE HRESULT IAudioEndpointVolumeEx_VolumeStepDown(IAudioEndpointVolumeEx* This,LPCGUID pguidEventContext) {
823    return This->lpVtbl->VolumeStepDown(This,pguidEventContext);
824}
825static FORCEINLINE HRESULT IAudioEndpointVolumeEx_QueryHardwareSupport(IAudioEndpointVolumeEx* This,DWORD *pdwHardwareSupportMask) {
826    return This->lpVtbl->QueryHardwareSupport(This,pdwHardwareSupportMask);
827}
828static FORCEINLINE HRESULT IAudioEndpointVolumeEx_GetVolumeRange(IAudioEndpointVolumeEx* This,FLOAT *pflVolumeMindB,FLOAT *pflVolumeMaxdB,FLOAT *pflVolumeIncrementdB) {
829    return This->lpVtbl->GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB);
830}
831/*** IAudioEndpointVolumeEx methods ***/
832static FORCEINLINE HRESULT IAudioEndpointVolumeEx_GetVolumeRangeChannel(IAudioEndpointVolumeEx* This,UINT iChannel,FLOAT *pflVolumeMindB,FLOAT *pflVolumeMaxdB,FLOAT *pflVolumeIncrementdB) {
833    return This->lpVtbl->GetVolumeRangeChannel(This,iChannel,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB);
834}
835#endif
836#endif
837
838#endif
839
840HRESULT STDMETHODCALLTYPE IAudioEndpointVolumeEx_GetVolumeRangeChannel_Proxy(
841    IAudioEndpointVolumeEx* This,
842    UINT iChannel,
843    FLOAT *pflVolumeMindB,
844    FLOAT *pflVolumeMaxdB,
845    FLOAT *pflVolumeIncrementdB);
846void __RPC_STUB IAudioEndpointVolumeEx_GetVolumeRangeChannel_Stub(
847    IRpcStubBuffer* This,
848    IRpcChannelBuffer* pRpcChannelBuffer,
849    PRPC_MESSAGE pRpcMessage,
850    DWORD* pdwStubPhase);
851
852#endif  /* __IAudioEndpointVolumeEx_INTERFACE_DEFINED__ */
853
854/* Begin additional prototypes for all interfaces */
855
856
857/* End additional prototypes */
858
859#ifdef __cplusplus
860}
861#endif
862
863#endif /* __endpointvolume_h__ */
864