00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #pragma warning( disable: 4049 )
00018
00019
00020
00021 #ifndef __REQUIRED_RPCNDR_H_VERSION__
00022 #define __REQUIRED_RPCNDR_H_VERSION__ 500
00023 #endif
00024
00025
00026 #ifndef __REQUIRED_RPCSAL_H_VERSION__
00027 #define __REQUIRED_RPCSAL_H_VERSION__ 100
00028 #endif
00029
00030 #include "rpc.h"
00031 #include "rpcndr.h"
00032
00033 #ifndef __RPCNDR_H_VERSION__
00034 #error this stub requires an updated version of <rpcndr.h>
00035 #endif // __RPCNDR_H_VERSION__
00036
00037 #ifndef COM_NO_WINDOWS_H
00038 #include "windows.h"
00039 #include "ole2.h"
00040 #endif
00041
00042 #ifndef __endpointvolume_h__
00043 #define __endpointvolume_h__
00044
00045 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
00046 #pragma once
00047 #endif
00048
00049
00050
00051 #ifndef __IAudioEndpointVolumeCallback_FWD_DEFINED__
00052 #define __IAudioEndpointVolumeCallback_FWD_DEFINED__
00053 typedef interface IAudioEndpointVolumeCallback IAudioEndpointVolumeCallback;
00054 #endif
00055
00056
00057 #ifndef __IAudioEndpointVolume_FWD_DEFINED__
00058 #define __IAudioEndpointVolume_FWD_DEFINED__
00059 typedef interface IAudioEndpointVolume IAudioEndpointVolume;
00060 #endif
00061
00062
00063 #ifndef __IAudioMeterInformation_FWD_DEFINED__
00064 #define __IAudioMeterInformation_FWD_DEFINED__
00065 typedef interface IAudioMeterInformation IAudioMeterInformation;
00066 #endif
00067
00068
00069
00070 #include "unknwn.h"
00071 #include "devicetopology.h"
00072
00073 #ifdef __cplusplus
00074 extern "C"{
00075 #endif
00076
00077
00078
00079
00080
00081 typedef struct AUDIO_VOLUME_NOTIFICATION_DATA
00082 {
00083 GUID guidEventContext;
00084 BOOL bMuted;
00085 float fMasterVolume;
00086 UINT nChannels;
00087 float afChannelVolumes[ 1 ];
00088 } AUDIO_VOLUME_NOTIFICATION_DATA;
00089
00090 typedef struct AUDIO_VOLUME_NOTIFICATION_DATA *PAUDIO_VOLUME_NOTIFICATION_DATA;
00091
00092 #define ENDPOINT_HARDWARE_SUPPORT_VOLUME 0x00000001
00093 #define ENDPOINT_HARDWARE_SUPPORT_MUTE 0x00000002
00094 #define ENDPOINT_HARDWARE_SUPPORT_METER 0x00000004
00095
00096
00097 extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0000_v0_0_c_ifspec;
00098 extern RPC_IF_HANDLE __MIDL_itf_endpointvolume_0000_0000_v0_0_s_ifspec;
00099
00100 #ifndef __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__
00101 #define __IAudioEndpointVolumeCallback_INTERFACE_DEFINED__
00102
00103
00104
00105
00106
00107 EXTERN_C const IID IID_IAudioEndpointVolumeCallback;
00108
00109 #if defined(__cplusplus) && !defined(CINTERFACE)
00110
00111 MIDL_INTERFACE("657804FA-D6AD-4496-8A60-352752AF4F89")
00112 IAudioEndpointVolumeCallback : public IUnknown
00113 {
00114 public:
00115 virtual HRESULT STDMETHODCALLTYPE OnNotify(
00116 PAUDIO_VOLUME_NOTIFICATION_DATA pNotify) = 0;
00117
00118 };
00119
00120 #else
00121
00122 typedef struct IAudioEndpointVolumeCallbackVtbl
00123 {
00124 BEGIN_INTERFACE
00125
00126 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
00127 IAudioEndpointVolumeCallback * This,
00128 REFIID riid,
00129
00130 __RPC__deref_out void **ppvObject);
00131
00132 ULONG ( STDMETHODCALLTYPE *AddRef )(
00133 IAudioEndpointVolumeCallback * This);
00134
00135 ULONG ( STDMETHODCALLTYPE *Release )(
00136 IAudioEndpointVolumeCallback * This);
00137
00138 HRESULT ( STDMETHODCALLTYPE *OnNotify )(
00139 IAudioEndpointVolumeCallback * This,
00140 PAUDIO_VOLUME_NOTIFICATION_DATA pNotify);
00141
00142 END_INTERFACE
00143 } IAudioEndpointVolumeCallbackVtbl;
00144
00145 interface IAudioEndpointVolumeCallback
00146 {
00147 CONST_VTBL struct IAudioEndpointVolumeCallbackVtbl *lpVtbl;
00148 };
00149
00150
00151
00152 #ifdef COBJMACROS
00153
00154
00155 #define IAudioEndpointVolumeCallback_QueryInterface(This,riid,ppvObject) \
00156 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
00157
00158 #define IAudioEndpointVolumeCallback_AddRef(This) \
00159 ( (This)->lpVtbl -> AddRef(This) )
00160
00161 #define IAudioEndpointVolumeCallback_Release(This) \
00162 ( (This)->lpVtbl -> Release(This) )
00163
00164
00165 #define IAudioEndpointVolumeCallback_OnNotify(This,pNotify) \
00166 ( (This)->lpVtbl -> OnNotify(This,pNotify) )
00167
00168 #endif
00169
00170
00171 #endif
00172
00173
00174
00175
00176 #endif
00177
00178
00179 #ifndef __IAudioEndpointVolume_INTERFACE_DEFINED__
00180 #define __IAudioEndpointVolume_INTERFACE_DEFINED__
00181
00182
00183
00184
00185
00186 EXTERN_C const IID IID_IAudioEndpointVolume;
00187
00188 #if defined(__cplusplus) && !defined(CINTERFACE)
00189
00190 MIDL_INTERFACE("5CDF2C82-841E-4546-9722-0CF74078229A")
00191 IAudioEndpointVolume : public IUnknown
00192 {
00193 public:
00194 virtual HRESULT STDMETHODCALLTYPE RegisterControlChangeNotify(
00195
00196 __in IAudioEndpointVolumeCallback *pNotify) = 0;
00197
00198 virtual HRESULT STDMETHODCALLTYPE UnregisterControlChangeNotify(
00199
00200 __in IAudioEndpointVolumeCallback *pNotify) = 0;
00201
00202 virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
00203
00204 __out UINT *pnChannelCount) = 0;
00205
00206 virtual HRESULT STDMETHODCALLTYPE SetMasterVolumeLevel(
00207
00208 __in float fLevelDB,
00209 LPCGUID pguidEventContext) = 0;
00210
00211 virtual HRESULT STDMETHODCALLTYPE SetMasterVolumeLevelScalar(
00212
00213 __in float fLevel,
00214 LPCGUID pguidEventContext) = 0;
00215
00216 virtual HRESULT STDMETHODCALLTYPE GetMasterVolumeLevel(
00217
00218 __out float *pfLevelDB) = 0;
00219
00220 virtual HRESULT STDMETHODCALLTYPE GetMasterVolumeLevelScalar(
00221
00222 __out float *pfLevel) = 0;
00223
00224 virtual HRESULT STDMETHODCALLTYPE SetChannelVolumeLevel(
00225
00226 __in UINT nChannel,
00227 float fLevelDB,
00228 LPCGUID pguidEventContext) = 0;
00229
00230 virtual HRESULT STDMETHODCALLTYPE SetChannelVolumeLevelScalar(
00231
00232 __in UINT nChannel,
00233 float fLevel,
00234 LPCGUID pguidEventContext) = 0;
00235
00236 virtual HRESULT STDMETHODCALLTYPE GetChannelVolumeLevel(
00237
00238 __in UINT nChannel,
00239
00240 __out float *pfLevelDB) = 0;
00241
00242 virtual HRESULT STDMETHODCALLTYPE GetChannelVolumeLevelScalar(
00243
00244 __in UINT nChannel,
00245
00246 __out float *pfLevel) = 0;
00247
00248 virtual HRESULT STDMETHODCALLTYPE SetMute(
00249
00250 __in BOOL bMute,
00251 LPCGUID pguidEventContext) = 0;
00252
00253 virtual HRESULT STDMETHODCALLTYPE GetMute(
00254
00255 __out BOOL *pbMute) = 0;
00256
00257 virtual HRESULT STDMETHODCALLTYPE GetVolumeStepInfo(
00258
00259 __out UINT *pnStep,
00260
00261 __out UINT *pnStepCount) = 0;
00262
00263 virtual HRESULT STDMETHODCALLTYPE VolumeStepUp(
00264 LPCGUID pguidEventContext) = 0;
00265
00266 virtual HRESULT STDMETHODCALLTYPE VolumeStepDown(
00267 LPCGUID pguidEventContext) = 0;
00268
00269 virtual HRESULT STDMETHODCALLTYPE QueryHardwareSupport(
00270
00271 __out DWORD *pdwHardwareSupportMask) = 0;
00272
00273 virtual HRESULT STDMETHODCALLTYPE GetVolumeRange(
00274
00275 __out float *pflVolumeMindB,
00276
00277 __out float *pflVolumeMaxdB,
00278
00279 __out float *pflVolumeIncrementdB) = 0;
00280
00281 };
00282
00283 #else
00284
00285 typedef struct IAudioEndpointVolumeVtbl
00286 {
00287 BEGIN_INTERFACE
00288
00289 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
00290 IAudioEndpointVolume * This,
00291 REFIID riid,
00292
00293 __RPC__deref_out void **ppvObject);
00294
00295 ULONG ( STDMETHODCALLTYPE *AddRef )(
00296 IAudioEndpointVolume * This);
00297
00298 ULONG ( STDMETHODCALLTYPE *Release )(
00299 IAudioEndpointVolume * This);
00300
00301 HRESULT ( STDMETHODCALLTYPE *RegisterControlChangeNotify )(
00302 IAudioEndpointVolume * This,
00303
00304 __in IAudioEndpointVolumeCallback *pNotify);
00305
00306 HRESULT ( STDMETHODCALLTYPE *UnregisterControlChangeNotify )(
00307 IAudioEndpointVolume * This,
00308
00309 __in IAudioEndpointVolumeCallback *pNotify);
00310
00311 HRESULT ( STDMETHODCALLTYPE *GetChannelCount )(
00312 IAudioEndpointVolume * This,
00313
00314 __out UINT *pnChannelCount);
00315
00316 HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevel )(
00317 IAudioEndpointVolume * This,
00318
00319 __in float fLevelDB,
00320 LPCGUID pguidEventContext);
00321
00322 HRESULT ( STDMETHODCALLTYPE *SetMasterVolumeLevelScalar )(
00323 IAudioEndpointVolume * This,
00324
00325 __in float fLevel,
00326 LPCGUID pguidEventContext);
00327
00328 HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevel )(
00329 IAudioEndpointVolume * This,
00330
00331 __out float *pfLevelDB);
00332
00333 HRESULT ( STDMETHODCALLTYPE *GetMasterVolumeLevelScalar )(
00334 IAudioEndpointVolume * This,
00335
00336 __out float *pfLevel);
00337
00338 HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevel )(
00339 IAudioEndpointVolume * This,
00340
00341 __in UINT nChannel,
00342 float fLevelDB,
00343 LPCGUID pguidEventContext);
00344
00345 HRESULT ( STDMETHODCALLTYPE *SetChannelVolumeLevelScalar )(
00346 IAudioEndpointVolume * This,
00347
00348 __in UINT nChannel,
00349 float fLevel,
00350 LPCGUID pguidEventContext);
00351
00352 HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevel )(
00353 IAudioEndpointVolume * This,
00354
00355 __in UINT nChannel,
00356
00357 __out float *pfLevelDB);
00358
00359 HRESULT ( STDMETHODCALLTYPE *GetChannelVolumeLevelScalar )(
00360 IAudioEndpointVolume * This,
00361
00362 __in UINT nChannel,
00363
00364 __out float *pfLevel);
00365
00366 HRESULT ( STDMETHODCALLTYPE *SetMute )(
00367 IAudioEndpointVolume * This,
00368
00369 __in BOOL bMute,
00370 LPCGUID pguidEventContext);
00371
00372 HRESULT ( STDMETHODCALLTYPE *GetMute )(
00373 IAudioEndpointVolume * This,
00374
00375 __out BOOL *pbMute);
00376
00377 HRESULT ( STDMETHODCALLTYPE *GetVolumeStepInfo )(
00378 IAudioEndpointVolume * This,
00379
00380 __out UINT *pnStep,
00381
00382 __out UINT *pnStepCount);
00383
00384 HRESULT ( STDMETHODCALLTYPE *VolumeStepUp )(
00385 IAudioEndpointVolume * This,
00386 LPCGUID pguidEventContext);
00387
00388 HRESULT ( STDMETHODCALLTYPE *VolumeStepDown )(
00389 IAudioEndpointVolume * This,
00390 LPCGUID pguidEventContext);
00391
00392 HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )(
00393 IAudioEndpointVolume * This,
00394
00395 __out DWORD *pdwHardwareSupportMask);
00396
00397 HRESULT ( STDMETHODCALLTYPE *GetVolumeRange )(
00398 IAudioEndpointVolume * This,
00399
00400 __out float *pflVolumeMindB,
00401
00402 __out float *pflVolumeMaxdB,
00403
00404 __out float *pflVolumeIncrementdB);
00405
00406 END_INTERFACE
00407 } IAudioEndpointVolumeVtbl;
00408
00409 interface IAudioEndpointVolume
00410 {
00411 CONST_VTBL struct IAudioEndpointVolumeVtbl *lpVtbl;
00412 };
00413
00414
00415
00416 #ifdef COBJMACROS
00417
00418
00419 #define IAudioEndpointVolume_QueryInterface(This,riid,ppvObject) \
00420 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
00421
00422 #define IAudioEndpointVolume_AddRef(This) \
00423 ( (This)->lpVtbl -> AddRef(This) )
00424
00425 #define IAudioEndpointVolume_Release(This) \
00426 ( (This)->lpVtbl -> Release(This) )
00427
00428
00429 #define IAudioEndpointVolume_RegisterControlChangeNotify(This,pNotify) \
00430 ( (This)->lpVtbl -> RegisterControlChangeNotify(This,pNotify) )
00431
00432 #define IAudioEndpointVolume_UnregisterControlChangeNotify(This,pNotify) \
00433 ( (This)->lpVtbl -> UnregisterControlChangeNotify(This,pNotify) )
00434
00435 #define IAudioEndpointVolume_GetChannelCount(This,pnChannelCount) \
00436 ( (This)->lpVtbl -> GetChannelCount(This,pnChannelCount) )
00437
00438 #define IAudioEndpointVolume_SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) \
00439 ( (This)->lpVtbl -> SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) )
00440
00441 #define IAudioEndpointVolume_SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) \
00442 ( (This)->lpVtbl -> SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) )
00443
00444 #define IAudioEndpointVolume_GetMasterVolumeLevel(This,pfLevelDB) \
00445 ( (This)->lpVtbl -> GetMasterVolumeLevel(This,pfLevelDB) )
00446
00447 #define IAudioEndpointVolume_GetMasterVolumeLevelScalar(This,pfLevel) \
00448 ( (This)->lpVtbl -> GetMasterVolumeLevelScalar(This,pfLevel) )
00449
00450 #define IAudioEndpointVolume_SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) \
00451 ( (This)->lpVtbl -> SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) )
00452
00453 #define IAudioEndpointVolume_SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) \
00454 ( (This)->lpVtbl -> SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) )
00455
00456 #define IAudioEndpointVolume_GetChannelVolumeLevel(This,nChannel,pfLevelDB) \
00457 ( (This)->lpVtbl -> GetChannelVolumeLevel(This,nChannel,pfLevelDB) )
00458
00459 #define IAudioEndpointVolume_GetChannelVolumeLevelScalar(This,nChannel,pfLevel) \
00460 ( (This)->lpVtbl -> GetChannelVolumeLevelScalar(This,nChannel,pfLevel) )
00461
00462 #define IAudioEndpointVolume_SetMute(This,bMute,pguidEventContext) \
00463 ( (This)->lpVtbl -> SetMute(This,bMute,pguidEventContext) )
00464
00465 #define IAudioEndpointVolume_GetMute(This,pbMute) \
00466 ( (This)->lpVtbl -> GetMute(This,pbMute) )
00467
00468 #define IAudioEndpointVolume_GetVolumeStepInfo(This,pnStep,pnStepCount) \
00469 ( (This)->lpVtbl -> GetVolumeStepInfo(This,pnStep,pnStepCount) )
00470
00471 #define IAudioEndpointVolume_VolumeStepUp(This,pguidEventContext) \
00472 ( (This)->lpVtbl -> VolumeStepUp(This,pguidEventContext) )
00473
00474 #define IAudioEndpointVolume_VolumeStepDown(This,pguidEventContext) \
00475 ( (This)->lpVtbl -> VolumeStepDown(This,pguidEventContext) )
00476
00477 #define IAudioEndpointVolume_QueryHardwareSupport(This,pdwHardwareSupportMask) \
00478 ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) )
00479
00480 #define IAudioEndpointVolume_GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) \
00481 ( (This)->lpVtbl -> GetVolumeRange(This,pflVolumeMindB,pflVolumeMaxdB,pflVolumeIncrementdB) )
00482
00483 #endif
00484
00485
00486 #endif
00487
00488
00489
00490
00491 #endif
00492
00493
00494 #ifndef __IAudioMeterInformation_INTERFACE_DEFINED__
00495 #define __IAudioMeterInformation_INTERFACE_DEFINED__
00496
00497
00498
00499
00500
00501 EXTERN_C const IID IID_IAudioMeterInformation;
00502
00503 #if defined(__cplusplus) && !defined(CINTERFACE)
00504
00505 MIDL_INTERFACE("C02216F6-8C67-4B5B-9D00-D008E73E0064")
00506 IAudioMeterInformation : public IUnknown
00507 {
00508 public:
00509 virtual HRESULT STDMETHODCALLTYPE GetPeakValue(
00510 float *pfPeak) = 0;
00511
00512 virtual HRESULT STDMETHODCALLTYPE GetMeteringChannelCount(
00513
00514 __out UINT *pnChannelCount) = 0;
00515
00516 virtual HRESULT STDMETHODCALLTYPE GetChannelsPeakValues(
00517 UINT32 u32ChannelCount,
00518 float *afPeakValues) = 0;
00519
00520 virtual HRESULT STDMETHODCALLTYPE QueryHardwareSupport(
00521
00522 __out DWORD *pdwHardwareSupportMask) = 0;
00523
00524 };
00525
00526 #else
00527
00528 typedef struct IAudioMeterInformationVtbl
00529 {
00530 BEGIN_INTERFACE
00531
00532 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
00533 IAudioMeterInformation * This,
00534 REFIID riid,
00535
00536 __RPC__deref_out void **ppvObject);
00537
00538 ULONG ( STDMETHODCALLTYPE *AddRef )(
00539 IAudioMeterInformation * This);
00540
00541 ULONG ( STDMETHODCALLTYPE *Release )(
00542 IAudioMeterInformation * This);
00543
00544 HRESULT ( STDMETHODCALLTYPE *GetPeakValue )(
00545 IAudioMeterInformation * This,
00546 float *pfPeak);
00547
00548 HRESULT ( STDMETHODCALLTYPE *GetMeteringChannelCount )(
00549 IAudioMeterInformation * This,
00550
00551 __out UINT *pnChannelCount);
00552
00553 HRESULT ( STDMETHODCALLTYPE *GetChannelsPeakValues )(
00554 IAudioMeterInformation * This,
00555 UINT32 u32ChannelCount,
00556 float *afPeakValues);
00557
00558 HRESULT ( STDMETHODCALLTYPE *QueryHardwareSupport )(
00559 IAudioMeterInformation * This,
00560
00561 __out DWORD *pdwHardwareSupportMask);
00562
00563 END_INTERFACE
00564 } IAudioMeterInformationVtbl;
00565
00566 interface IAudioMeterInformation
00567 {
00568 CONST_VTBL struct IAudioMeterInformationVtbl *lpVtbl;
00569 };
00570
00571
00572
00573 #ifdef COBJMACROS
00574
00575
00576 #define IAudioMeterInformation_QueryInterface(This,riid,ppvObject) \
00577 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
00578
00579 #define IAudioMeterInformation_AddRef(This) \
00580 ( (This)->lpVtbl -> AddRef(This) )
00581
00582 #define IAudioMeterInformation_Release(This) \
00583 ( (This)->lpVtbl -> Release(This) )
00584
00585
00586 #define IAudioMeterInformation_GetPeakValue(This,pfPeak) \
00587 ( (This)->lpVtbl -> GetPeakValue(This,pfPeak) )
00588
00589 #define IAudioMeterInformation_GetMeteringChannelCount(This,pnChannelCount) \
00590 ( (This)->lpVtbl -> GetMeteringChannelCount(This,pnChannelCount) )
00591
00592 #define IAudioMeterInformation_GetChannelsPeakValues(This,u32ChannelCount,afPeakValues) \
00593 ( (This)->lpVtbl -> GetChannelsPeakValues(This,u32ChannelCount,afPeakValues) )
00594
00595 #define IAudioMeterInformation_QueryHardwareSupport(This,pdwHardwareSupportMask) \
00596 ( (This)->lpVtbl -> QueryHardwareSupport(This,pdwHardwareSupportMask) )
00597
00598 #endif
00599
00600
00601 #endif
00602
00603
00604
00605
00606 #endif
00607
00608
00609
00610
00611
00612
00613 #ifdef __cplusplus
00614 }
00615 #endif
00616
00617 #endif
00618
00619
00620