endpointvolume.h 30 KB

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