zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

endpointvolume.h (30626B) - Raw


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