1 /*** Autogenerated by WIDL 6.4 from include/audioclient.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 __audioclient_h__ 17 #define __audioclient_h__ 18 19 /* Forward declarations */ 20 21 #ifndef __IAudioClient_FWD_DEFINED__ 22 #define __IAudioClient_FWD_DEFINED__ 23 typedef interface IAudioClient IAudioClient; 24 #ifdef __cplusplus 25 interface IAudioClient; 26 #endif /* __cplusplus */ 27 #endif 28 29 #ifndef __IAudioClient2_FWD_DEFINED__ 30 #define __IAudioClient2_FWD_DEFINED__ 31 typedef interface IAudioClient2 IAudioClient2; 32 #ifdef __cplusplus 33 interface IAudioClient2; 34 #endif /* __cplusplus */ 35 #endif 36 37 #ifndef __IAudioClient3_FWD_DEFINED__ 38 #define __IAudioClient3_FWD_DEFINED__ 39 typedef interface IAudioClient3 IAudioClient3; 40 #ifdef __cplusplus 41 interface IAudioClient3; 42 #endif /* __cplusplus */ 43 #endif 44 45 #ifndef __IAudioRenderClient_FWD_DEFINED__ 46 #define __IAudioRenderClient_FWD_DEFINED__ 47 typedef interface IAudioRenderClient IAudioRenderClient; 48 #ifdef __cplusplus 49 interface IAudioRenderClient; 50 #endif /* __cplusplus */ 51 #endif 52 53 #ifndef __IAudioCaptureClient_FWD_DEFINED__ 54 #define __IAudioCaptureClient_FWD_DEFINED__ 55 typedef interface IAudioCaptureClient IAudioCaptureClient; 56 #ifdef __cplusplus 57 interface IAudioCaptureClient; 58 #endif /* __cplusplus */ 59 #endif 60 61 #ifndef __IAudioClock_FWD_DEFINED__ 62 #define __IAudioClock_FWD_DEFINED__ 63 typedef interface IAudioClock IAudioClock; 64 #ifdef __cplusplus 65 interface IAudioClock; 66 #endif /* __cplusplus */ 67 #endif 68 69 #ifndef __IAudioClock2_FWD_DEFINED__ 70 #define __IAudioClock2_FWD_DEFINED__ 71 typedef interface IAudioClock2 IAudioClock2; 72 #ifdef __cplusplus 73 interface IAudioClock2; 74 #endif /* __cplusplus */ 75 #endif 76 77 #ifndef __IAudioClockAdjustment_FWD_DEFINED__ 78 #define __IAudioClockAdjustment_FWD_DEFINED__ 79 typedef interface IAudioClockAdjustment IAudioClockAdjustment; 80 #ifdef __cplusplus 81 interface IAudioClockAdjustment; 82 #endif /* __cplusplus */ 83 #endif 84 85 #ifndef __ISimpleAudioVolume_FWD_DEFINED__ 86 #define __ISimpleAudioVolume_FWD_DEFINED__ 87 typedef interface ISimpleAudioVolume ISimpleAudioVolume; 88 #ifdef __cplusplus 89 interface ISimpleAudioVolume; 90 #endif /* __cplusplus */ 91 #endif 92 93 #ifndef __IAudioStreamVolume_FWD_DEFINED__ 94 #define __IAudioStreamVolume_FWD_DEFINED__ 95 typedef interface IAudioStreamVolume IAudioStreamVolume; 96 #ifdef __cplusplus 97 interface IAudioStreamVolume; 98 #endif /* __cplusplus */ 99 #endif 100 101 #ifndef __IAudioAmbisonicsControl_FWD_DEFINED__ 102 #define __IAudioAmbisonicsControl_FWD_DEFINED__ 103 typedef interface IAudioAmbisonicsControl IAudioAmbisonicsControl; 104 #ifdef __cplusplus 105 interface IAudioAmbisonicsControl; 106 #endif /* __cplusplus */ 107 #endif 108 109 #ifndef __IChannelAudioVolume_FWD_DEFINED__ 110 #define __IChannelAudioVolume_FWD_DEFINED__ 111 typedef interface IChannelAudioVolume IChannelAudioVolume; 112 #ifdef __cplusplus 113 interface IChannelAudioVolume; 114 #endif /* __cplusplus */ 115 #endif 116 117 /* Headers for imported files */ 118 119 #include <wtypes.h> 120 #include <unknwn.h> 121 #include <audiosessiontypes.h> 122 123 #ifdef __cplusplus 124 extern "C" { 125 #endif 126 127 #include <winapifamily.h> 128 129 130 #if 0 131 typedef struct WAVEFORMATEX { 132 WORD wFormatTag; 133 WORD nChannels; 134 DWORD nSamplesPerSec; 135 DWORD nAvgBytesPerSec; 136 WORD nBlockAlign; 137 WORD wBitsPerSample; 138 WORD cbSize; 139 } WAVEFORMATEX; 140 141 typedef LONGLONG REFERENCE_TIME; 142 #else 143 #define _IKsControl_ 144 145 #include <mmreg.h> 146 #include <ks.h> 147 #include <ksmedia.h> 148 #endif 149 150 151 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) 152 enum _AUDCLNT_BUFFERFLAGS { 153 AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY = 0x1, 154 AUDCLNT_BUFFERFLAGS_SILENT = 0x2, 155 AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4 156 }; 157 typedef enum AUDCLNT_STREAMOPTIONS { 158 AUDCLNT_STREAMOPTIONS_NONE = 0x0, 159 AUDCLNT_STREAMOPTIONS_RAW = 0x1, 160 AUDCLNT_STREAMOPTIONS_MATCH_FORMAT = 0x2, 161 AUDCLNT_STREAMOPTIONS_AMBISONICS = 0x4 162 } AUDCLNT_STREAMOPTIONS; 163 DEFINE_ENUM_FLAG_OPERATORS(AUDCLNT_STREAMOPTIONS); 164 typedef enum AMBISONICS_TYPE { 165 AMBISONICS_TYPE_FULL3D = 0x0 166 } AMBISONICS_TYPE; 167 typedef enum AMBISONICS_CHANNEL_ORDERING { 168 AMBISONICS_CHANNEL_ORDERING_ACN = 0x0 169 } AMBISONICS_CHANNEL_ORDERING; 170 typedef enum AMBISONICS_NORMALIZATION { 171 AMBISONICS_NORMALIZATION_SN3D = 0x0, 172 AMBISONICS_NORMALIZATION_N3D = 0x1 173 } AMBISONICS_NORMALIZATION; 174 175 typedef struct AudioClientProperties { 176 UINT32 cbSize; 177 WINBOOL bIsOffload; 178 AUDIO_STREAM_CATEGORY eCategory; 179 AUDCLNT_STREAMOPTIONS Options; 180 } AudioClientProperties; 181 typedef struct AudioClient3ActivationParams { 182 GUID tracingContextId; 183 } AudioClient3ActivationParams; 184 typedef struct AMBISONICS_PARAMS { 185 UINT32 u32Size; 186 UINT32 u32Version; 187 AMBISONICS_TYPE u32Type; 188 AMBISONICS_CHANNEL_ORDERING u32ChannelOrdering; 189 AMBISONICS_NORMALIZATION u32Normalization; 190 UINT32 u32Order; 191 UINT32 u32NumChannels; 192 UINT32 *pu32ChannelMap; 193 } AMBISONICS_PARAMS; 194 195 /***************************************************************************** 196 * IAudioClient interface 197 */ 198 #ifndef __IAudioClient_INTERFACE_DEFINED__ 199 #define __IAudioClient_INTERFACE_DEFINED__ 200 201 DEFINE_GUID(IID_IAudioClient, 0x1cb9ad4c, 0xdbfa, 0x4c32, 0xb1,0x78, 0xc2,0xf5,0x68,0xa7,0x03,0xb2); 202 #if defined(__cplusplus) && !defined(CINTERFACE) 203 MIDL_INTERFACE("1cb9ad4c-dbfa-4c32-b178-c2f568a703b2") 204 IAudioClient : public IUnknown 205 { 206 virtual HRESULT STDMETHODCALLTYPE Initialize( 207 AUDCLNT_SHAREMODE ShareMode, 208 DWORD StreamFlags, 209 REFERENCE_TIME hnsBufferDuration, 210 REFERENCE_TIME hnsPeriodicity, 211 const WAVEFORMATEX *pFormat, 212 LPCGUID AudioSessionGuid) = 0; 213 214 virtual HRESULT STDMETHODCALLTYPE GetBufferSize( 215 UINT32 *pNumBufferFrames) = 0; 216 217 virtual HRESULT STDMETHODCALLTYPE GetStreamLatency( 218 REFERENCE_TIME *phnsLatency) = 0; 219 220 virtual HRESULT STDMETHODCALLTYPE GetCurrentPadding( 221 UINT32 *pNumPaddingFrames) = 0; 222 223 virtual HRESULT STDMETHODCALLTYPE IsFormatSupported( 224 AUDCLNT_SHAREMODE ShareMode, 225 const WAVEFORMATEX *pFormat, 226 WAVEFORMATEX **ppClosestMatch) = 0; 227 228 virtual HRESULT STDMETHODCALLTYPE GetMixFormat( 229 WAVEFORMATEX **ppDeviceFormat) = 0; 230 231 virtual HRESULT STDMETHODCALLTYPE GetDevicePeriod( 232 REFERENCE_TIME *phnsDefaultDevicePeriod, 233 REFERENCE_TIME *phnsMinimumDevicePeriod) = 0; 234 235 virtual HRESULT STDMETHODCALLTYPE Start( 236 ) = 0; 237 238 virtual HRESULT STDMETHODCALLTYPE Stop( 239 ) = 0; 240 241 virtual HRESULT STDMETHODCALLTYPE Reset( 242 ) = 0; 243 244 virtual HRESULT STDMETHODCALLTYPE SetEventHandle( 245 HANDLE eventHandle) = 0; 246 247 virtual HRESULT STDMETHODCALLTYPE GetService( 248 REFIID riid, 249 void **ppv) = 0; 250 251 }; 252 #ifdef __CRT_UUID_DECL 253 __CRT_UUID_DECL(IAudioClient, 0x1cb9ad4c, 0xdbfa, 0x4c32, 0xb1,0x78, 0xc2,0xf5,0x68,0xa7,0x03,0xb2) 254 #endif 255 #else 256 typedef struct IAudioClientVtbl { 257 BEGIN_INTERFACE 258 259 /*** IUnknown methods ***/ 260 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 261 IAudioClient *This, 262 REFIID riid, 263 void **ppvObject); 264 265 ULONG (STDMETHODCALLTYPE *AddRef)( 266 IAudioClient *This); 267 268 ULONG (STDMETHODCALLTYPE *Release)( 269 IAudioClient *This); 270 271 /*** IAudioClient methods ***/ 272 HRESULT (STDMETHODCALLTYPE *Initialize)( 273 IAudioClient *This, 274 AUDCLNT_SHAREMODE ShareMode, 275 DWORD StreamFlags, 276 REFERENCE_TIME hnsBufferDuration, 277 REFERENCE_TIME hnsPeriodicity, 278 const WAVEFORMATEX *pFormat, 279 LPCGUID AudioSessionGuid); 280 281 HRESULT (STDMETHODCALLTYPE *GetBufferSize)( 282 IAudioClient *This, 283 UINT32 *pNumBufferFrames); 284 285 HRESULT (STDMETHODCALLTYPE *GetStreamLatency)( 286 IAudioClient *This, 287 REFERENCE_TIME *phnsLatency); 288 289 HRESULT (STDMETHODCALLTYPE *GetCurrentPadding)( 290 IAudioClient *This, 291 UINT32 *pNumPaddingFrames); 292 293 HRESULT (STDMETHODCALLTYPE *IsFormatSupported)( 294 IAudioClient *This, 295 AUDCLNT_SHAREMODE ShareMode, 296 const WAVEFORMATEX *pFormat, 297 WAVEFORMATEX **ppClosestMatch); 298 299 HRESULT (STDMETHODCALLTYPE *GetMixFormat)( 300 IAudioClient *This, 301 WAVEFORMATEX **ppDeviceFormat); 302 303 HRESULT (STDMETHODCALLTYPE *GetDevicePeriod)( 304 IAudioClient *This, 305 REFERENCE_TIME *phnsDefaultDevicePeriod, 306 REFERENCE_TIME *phnsMinimumDevicePeriod); 307 308 HRESULT (STDMETHODCALLTYPE *Start)( 309 IAudioClient *This); 310 311 HRESULT (STDMETHODCALLTYPE *Stop)( 312 IAudioClient *This); 313 314 HRESULT (STDMETHODCALLTYPE *Reset)( 315 IAudioClient *This); 316 317 HRESULT (STDMETHODCALLTYPE *SetEventHandle)( 318 IAudioClient *This, 319 HANDLE eventHandle); 320 321 HRESULT (STDMETHODCALLTYPE *GetService)( 322 IAudioClient *This, 323 REFIID riid, 324 void **ppv); 325 326 END_INTERFACE 327 } IAudioClientVtbl; 328 329 interface IAudioClient { 330 CONST_VTBL IAudioClientVtbl* lpVtbl; 331 }; 332 333 #ifdef COBJMACROS 334 #ifndef WIDL_C_INLINE_WRAPPERS 335 /*** IUnknown methods ***/ 336 #define IAudioClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 337 #define IAudioClient_AddRef(This) (This)->lpVtbl->AddRef(This) 338 #define IAudioClient_Release(This) (This)->lpVtbl->Release(This) 339 /*** IAudioClient methods ***/ 340 #define IAudioClient_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) 341 #define IAudioClient_GetBufferSize(This,pNumBufferFrames) (This)->lpVtbl->GetBufferSize(This,pNumBufferFrames) 342 #define IAudioClient_GetStreamLatency(This,phnsLatency) (This)->lpVtbl->GetStreamLatency(This,phnsLatency) 343 #define IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) (This)->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames) 344 #define IAudioClient_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) 345 #define IAudioClient_GetMixFormat(This,ppDeviceFormat) (This)->lpVtbl->GetMixFormat(This,ppDeviceFormat) 346 #define IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) (This)->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) 347 #define IAudioClient_Start(This) (This)->lpVtbl->Start(This) 348 #define IAudioClient_Stop(This) (This)->lpVtbl->Stop(This) 349 #define IAudioClient_Reset(This) (This)->lpVtbl->Reset(This) 350 #define IAudioClient_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle) 351 #define IAudioClient_GetService(This,riid,ppv) (This)->lpVtbl->GetService(This,riid,ppv) 352 #else 353 /*** IUnknown methods ***/ 354 static FORCEINLINE HRESULT IAudioClient_QueryInterface(IAudioClient* This,REFIID riid,void **ppvObject) { 355 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 356 } 357 static FORCEINLINE ULONG IAudioClient_AddRef(IAudioClient* This) { 358 return This->lpVtbl->AddRef(This); 359 } 360 static FORCEINLINE ULONG IAudioClient_Release(IAudioClient* This) { 361 return This->lpVtbl->Release(This); 362 } 363 /*** IAudioClient methods ***/ 364 static FORCEINLINE HRESULT IAudioClient_Initialize(IAudioClient* This,AUDCLNT_SHAREMODE ShareMode,DWORD StreamFlags,REFERENCE_TIME hnsBufferDuration,REFERENCE_TIME hnsPeriodicity,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) { 365 return This->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid); 366 } 367 static FORCEINLINE HRESULT IAudioClient_GetBufferSize(IAudioClient* This,UINT32 *pNumBufferFrames) { 368 return This->lpVtbl->GetBufferSize(This,pNumBufferFrames); 369 } 370 static FORCEINLINE HRESULT IAudioClient_GetStreamLatency(IAudioClient* This,REFERENCE_TIME *phnsLatency) { 371 return This->lpVtbl->GetStreamLatency(This,phnsLatency); 372 } 373 static FORCEINLINE HRESULT IAudioClient_GetCurrentPadding(IAudioClient* This,UINT32 *pNumPaddingFrames) { 374 return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames); 375 } 376 static FORCEINLINE HRESULT IAudioClient_IsFormatSupported(IAudioClient* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) { 377 return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch); 378 } 379 static FORCEINLINE HRESULT IAudioClient_GetMixFormat(IAudioClient* This,WAVEFORMATEX **ppDeviceFormat) { 380 return This->lpVtbl->GetMixFormat(This,ppDeviceFormat); 381 } 382 static FORCEINLINE HRESULT IAudioClient_GetDevicePeriod(IAudioClient* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) { 383 return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod); 384 } 385 static FORCEINLINE HRESULT IAudioClient_Start(IAudioClient* This) { 386 return This->lpVtbl->Start(This); 387 } 388 static FORCEINLINE HRESULT IAudioClient_Stop(IAudioClient* This) { 389 return This->lpVtbl->Stop(This); 390 } 391 static FORCEINLINE HRESULT IAudioClient_Reset(IAudioClient* This) { 392 return This->lpVtbl->Reset(This); 393 } 394 static FORCEINLINE HRESULT IAudioClient_SetEventHandle(IAudioClient* This,HANDLE eventHandle) { 395 return This->lpVtbl->SetEventHandle(This,eventHandle); 396 } 397 static FORCEINLINE HRESULT IAudioClient_GetService(IAudioClient* This,REFIID riid,void **ppv) { 398 return This->lpVtbl->GetService(This,riid,ppv); 399 } 400 #endif 401 #endif 402 403 #endif 404 405 406 #endif /* __IAudioClient_INTERFACE_DEFINED__ */ 407 408 409 /***************************************************************************** 410 * IAudioClient2 interface 411 */ 412 #ifndef __IAudioClient2_INTERFACE_DEFINED__ 413 #define __IAudioClient2_INTERFACE_DEFINED__ 414 415 DEFINE_GUID(IID_IAudioClient2, 0x726778cd, 0xf60a, 0x4eda, 0x82,0xde, 0xe4,0x76,0x10,0xcd,0x78,0xaa); 416 #if defined(__cplusplus) && !defined(CINTERFACE) 417 MIDL_INTERFACE("726778cd-f60a-4eda-82de-e47610cd78aa") 418 IAudioClient2 : public IAudioClient 419 { 420 virtual HRESULT STDMETHODCALLTYPE IsOffloadCapable( 421 AUDIO_STREAM_CATEGORY Category, 422 WINBOOL *pbOffloadCapable) = 0; 423 424 virtual HRESULT STDMETHODCALLTYPE SetClientProperties( 425 const AudioClientProperties *pProperties) = 0; 426 427 virtual HRESULT STDMETHODCALLTYPE GetBufferSizeLimits( 428 const WAVEFORMATEX *pFormat, 429 WINBOOL bEventDriven, 430 REFERENCE_TIME *phnsMinBufferDuration, 431 REFERENCE_TIME *phnsMaxBufferDuration) = 0; 432 433 }; 434 #ifdef __CRT_UUID_DECL 435 __CRT_UUID_DECL(IAudioClient2, 0x726778cd, 0xf60a, 0x4eda, 0x82,0xde, 0xe4,0x76,0x10,0xcd,0x78,0xaa) 436 #endif 437 #else 438 typedef struct IAudioClient2Vtbl { 439 BEGIN_INTERFACE 440 441 /*** IUnknown methods ***/ 442 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 443 IAudioClient2 *This, 444 REFIID riid, 445 void **ppvObject); 446 447 ULONG (STDMETHODCALLTYPE *AddRef)( 448 IAudioClient2 *This); 449 450 ULONG (STDMETHODCALLTYPE *Release)( 451 IAudioClient2 *This); 452 453 /*** IAudioClient methods ***/ 454 HRESULT (STDMETHODCALLTYPE *Initialize)( 455 IAudioClient2 *This, 456 AUDCLNT_SHAREMODE ShareMode, 457 DWORD StreamFlags, 458 REFERENCE_TIME hnsBufferDuration, 459 REFERENCE_TIME hnsPeriodicity, 460 const WAVEFORMATEX *pFormat, 461 LPCGUID AudioSessionGuid); 462 463 HRESULT (STDMETHODCALLTYPE *GetBufferSize)( 464 IAudioClient2 *This, 465 UINT32 *pNumBufferFrames); 466 467 HRESULT (STDMETHODCALLTYPE *GetStreamLatency)( 468 IAudioClient2 *This, 469 REFERENCE_TIME *phnsLatency); 470 471 HRESULT (STDMETHODCALLTYPE *GetCurrentPadding)( 472 IAudioClient2 *This, 473 UINT32 *pNumPaddingFrames); 474 475 HRESULT (STDMETHODCALLTYPE *IsFormatSupported)( 476 IAudioClient2 *This, 477 AUDCLNT_SHAREMODE ShareMode, 478 const WAVEFORMATEX *pFormat, 479 WAVEFORMATEX **ppClosestMatch); 480 481 HRESULT (STDMETHODCALLTYPE *GetMixFormat)( 482 IAudioClient2 *This, 483 WAVEFORMATEX **ppDeviceFormat); 484 485 HRESULT (STDMETHODCALLTYPE *GetDevicePeriod)( 486 IAudioClient2 *This, 487 REFERENCE_TIME *phnsDefaultDevicePeriod, 488 REFERENCE_TIME *phnsMinimumDevicePeriod); 489 490 HRESULT (STDMETHODCALLTYPE *Start)( 491 IAudioClient2 *This); 492 493 HRESULT (STDMETHODCALLTYPE *Stop)( 494 IAudioClient2 *This); 495 496 HRESULT (STDMETHODCALLTYPE *Reset)( 497 IAudioClient2 *This); 498 499 HRESULT (STDMETHODCALLTYPE *SetEventHandle)( 500 IAudioClient2 *This, 501 HANDLE eventHandle); 502 503 HRESULT (STDMETHODCALLTYPE *GetService)( 504 IAudioClient2 *This, 505 REFIID riid, 506 void **ppv); 507 508 /*** IAudioClient2 methods ***/ 509 HRESULT (STDMETHODCALLTYPE *IsOffloadCapable)( 510 IAudioClient2 *This, 511 AUDIO_STREAM_CATEGORY Category, 512 WINBOOL *pbOffloadCapable); 513 514 HRESULT (STDMETHODCALLTYPE *SetClientProperties)( 515 IAudioClient2 *This, 516 const AudioClientProperties *pProperties); 517 518 HRESULT (STDMETHODCALLTYPE *GetBufferSizeLimits)( 519 IAudioClient2 *This, 520 const WAVEFORMATEX *pFormat, 521 WINBOOL bEventDriven, 522 REFERENCE_TIME *phnsMinBufferDuration, 523 REFERENCE_TIME *phnsMaxBufferDuration); 524 525 END_INTERFACE 526 } IAudioClient2Vtbl; 527 528 interface IAudioClient2 { 529 CONST_VTBL IAudioClient2Vtbl* lpVtbl; 530 }; 531 532 #ifdef COBJMACROS 533 #ifndef WIDL_C_INLINE_WRAPPERS 534 /*** IUnknown methods ***/ 535 #define IAudioClient2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 536 #define IAudioClient2_AddRef(This) (This)->lpVtbl->AddRef(This) 537 #define IAudioClient2_Release(This) (This)->lpVtbl->Release(This) 538 /*** IAudioClient methods ***/ 539 #define IAudioClient2_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) 540 #define IAudioClient2_GetBufferSize(This,pNumBufferFrames) (This)->lpVtbl->GetBufferSize(This,pNumBufferFrames) 541 #define IAudioClient2_GetStreamLatency(This,phnsLatency) (This)->lpVtbl->GetStreamLatency(This,phnsLatency) 542 #define IAudioClient2_GetCurrentPadding(This,pNumPaddingFrames) (This)->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames) 543 #define IAudioClient2_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) 544 #define IAudioClient2_GetMixFormat(This,ppDeviceFormat) (This)->lpVtbl->GetMixFormat(This,ppDeviceFormat) 545 #define IAudioClient2_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) (This)->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) 546 #define IAudioClient2_Start(This) (This)->lpVtbl->Start(This) 547 #define IAudioClient2_Stop(This) (This)->lpVtbl->Stop(This) 548 #define IAudioClient2_Reset(This) (This)->lpVtbl->Reset(This) 549 #define IAudioClient2_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle) 550 #define IAudioClient2_GetService(This,riid,ppv) (This)->lpVtbl->GetService(This,riid,ppv) 551 /*** IAudioClient2 methods ***/ 552 #define IAudioClient2_IsOffloadCapable(This,Category,pbOffloadCapable) (This)->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable) 553 #define IAudioClient2_SetClientProperties(This,pProperties) (This)->lpVtbl->SetClientProperties(This,pProperties) 554 #define IAudioClient2_GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration) (This)->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration) 555 #else 556 /*** IUnknown methods ***/ 557 static FORCEINLINE HRESULT IAudioClient2_QueryInterface(IAudioClient2* This,REFIID riid,void **ppvObject) { 558 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 559 } 560 static FORCEINLINE ULONG IAudioClient2_AddRef(IAudioClient2* This) { 561 return This->lpVtbl->AddRef(This); 562 } 563 static FORCEINLINE ULONG IAudioClient2_Release(IAudioClient2* This) { 564 return This->lpVtbl->Release(This); 565 } 566 /*** IAudioClient methods ***/ 567 static FORCEINLINE HRESULT IAudioClient2_Initialize(IAudioClient2* This,AUDCLNT_SHAREMODE ShareMode,DWORD StreamFlags,REFERENCE_TIME hnsBufferDuration,REFERENCE_TIME hnsPeriodicity,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) { 568 return This->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid); 569 } 570 static FORCEINLINE HRESULT IAudioClient2_GetBufferSize(IAudioClient2* This,UINT32 *pNumBufferFrames) { 571 return This->lpVtbl->GetBufferSize(This,pNumBufferFrames); 572 } 573 static FORCEINLINE HRESULT IAudioClient2_GetStreamLatency(IAudioClient2* This,REFERENCE_TIME *phnsLatency) { 574 return This->lpVtbl->GetStreamLatency(This,phnsLatency); 575 } 576 static FORCEINLINE HRESULT IAudioClient2_GetCurrentPadding(IAudioClient2* This,UINT32 *pNumPaddingFrames) { 577 return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames); 578 } 579 static FORCEINLINE HRESULT IAudioClient2_IsFormatSupported(IAudioClient2* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) { 580 return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch); 581 } 582 static FORCEINLINE HRESULT IAudioClient2_GetMixFormat(IAudioClient2* This,WAVEFORMATEX **ppDeviceFormat) { 583 return This->lpVtbl->GetMixFormat(This,ppDeviceFormat); 584 } 585 static FORCEINLINE HRESULT IAudioClient2_GetDevicePeriod(IAudioClient2* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) { 586 return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod); 587 } 588 static FORCEINLINE HRESULT IAudioClient2_Start(IAudioClient2* This) { 589 return This->lpVtbl->Start(This); 590 } 591 static FORCEINLINE HRESULT IAudioClient2_Stop(IAudioClient2* This) { 592 return This->lpVtbl->Stop(This); 593 } 594 static FORCEINLINE HRESULT IAudioClient2_Reset(IAudioClient2* This) { 595 return This->lpVtbl->Reset(This); 596 } 597 static FORCEINLINE HRESULT IAudioClient2_SetEventHandle(IAudioClient2* This,HANDLE eventHandle) { 598 return This->lpVtbl->SetEventHandle(This,eventHandle); 599 } 600 static FORCEINLINE HRESULT IAudioClient2_GetService(IAudioClient2* This,REFIID riid,void **ppv) { 601 return This->lpVtbl->GetService(This,riid,ppv); 602 } 603 /*** IAudioClient2 methods ***/ 604 static FORCEINLINE HRESULT IAudioClient2_IsOffloadCapable(IAudioClient2* This,AUDIO_STREAM_CATEGORY Category,WINBOOL *pbOffloadCapable) { 605 return This->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable); 606 } 607 static FORCEINLINE HRESULT IAudioClient2_SetClientProperties(IAudioClient2* This,const AudioClientProperties *pProperties) { 608 return This->lpVtbl->SetClientProperties(This,pProperties); 609 } 610 static FORCEINLINE HRESULT IAudioClient2_GetBufferSizeLimits(IAudioClient2* This,const WAVEFORMATEX *pFormat,WINBOOL bEventDriven,REFERENCE_TIME *phnsMinBufferDuration,REFERENCE_TIME *phnsMaxBufferDuration) { 611 return This->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration); 612 } 613 #endif 614 #endif 615 616 #endif 617 618 619 #endif /* __IAudioClient2_INTERFACE_DEFINED__ */ 620 621 /***************************************************************************** 622 * IAudioClient3 interface 623 */ 624 #ifndef __IAudioClient3_INTERFACE_DEFINED__ 625 #define __IAudioClient3_INTERFACE_DEFINED__ 626 627 DEFINE_GUID(IID_IAudioClient3, 0x7ed4ee07, 0x8e67, 0x4cd4, 0x8c,0x1a, 0x2b,0x7a,0x59,0x87,0xad,0x42); 628 #if defined(__cplusplus) && !defined(CINTERFACE) 629 MIDL_INTERFACE("7ed4ee07-8e67-4cd4-8c1a-2b7a5987ad42") 630 IAudioClient3 : public IAudioClient2 631 { 632 virtual HRESULT STDMETHODCALLTYPE GetSharedModeEnginePeriod( 633 const WAVEFORMATEX *pFormat, 634 UINT32 *pDefaultPeriodInFrames, 635 UINT32 *pFundamentalPeriodInFrames, 636 UINT32 *pMinPeriodInFrames, 637 UINT32 *pMaxPeriodInFrames) = 0; 638 639 virtual HRESULT STDMETHODCALLTYPE GetCurrentSharedModeEnginePeriod( 640 WAVEFORMATEX **ppFormat, 641 UINT32 *pCurrentPeriodInFrames) = 0; 642 643 virtual HRESULT STDMETHODCALLTYPE InitializeSharedAudioStream( 644 DWORD StreamFlags, 645 UINT32 PeriodInFrames, 646 const WAVEFORMATEX *pFormat, 647 LPCGUID AudioSessionGuid) = 0; 648 649 }; 650 #ifdef __CRT_UUID_DECL 651 __CRT_UUID_DECL(IAudioClient3, 0x7ed4ee07, 0x8e67, 0x4cd4, 0x8c,0x1a, 0x2b,0x7a,0x59,0x87,0xad,0x42) 652 #endif 653 #else 654 typedef struct IAudioClient3Vtbl { 655 BEGIN_INTERFACE 656 657 /*** IUnknown methods ***/ 658 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 659 IAudioClient3 *This, 660 REFIID riid, 661 void **ppvObject); 662 663 ULONG (STDMETHODCALLTYPE *AddRef)( 664 IAudioClient3 *This); 665 666 ULONG (STDMETHODCALLTYPE *Release)( 667 IAudioClient3 *This); 668 669 /*** IAudioClient methods ***/ 670 HRESULT (STDMETHODCALLTYPE *Initialize)( 671 IAudioClient3 *This, 672 AUDCLNT_SHAREMODE ShareMode, 673 DWORD StreamFlags, 674 REFERENCE_TIME hnsBufferDuration, 675 REFERENCE_TIME hnsPeriodicity, 676 const WAVEFORMATEX *pFormat, 677 LPCGUID AudioSessionGuid); 678 679 HRESULT (STDMETHODCALLTYPE *GetBufferSize)( 680 IAudioClient3 *This, 681 UINT32 *pNumBufferFrames); 682 683 HRESULT (STDMETHODCALLTYPE *GetStreamLatency)( 684 IAudioClient3 *This, 685 REFERENCE_TIME *phnsLatency); 686 687 HRESULT (STDMETHODCALLTYPE *GetCurrentPadding)( 688 IAudioClient3 *This, 689 UINT32 *pNumPaddingFrames); 690 691 HRESULT (STDMETHODCALLTYPE *IsFormatSupported)( 692 IAudioClient3 *This, 693 AUDCLNT_SHAREMODE ShareMode, 694 const WAVEFORMATEX *pFormat, 695 WAVEFORMATEX **ppClosestMatch); 696 697 HRESULT (STDMETHODCALLTYPE *GetMixFormat)( 698 IAudioClient3 *This, 699 WAVEFORMATEX **ppDeviceFormat); 700 701 HRESULT (STDMETHODCALLTYPE *GetDevicePeriod)( 702 IAudioClient3 *This, 703 REFERENCE_TIME *phnsDefaultDevicePeriod, 704 REFERENCE_TIME *phnsMinimumDevicePeriod); 705 706 HRESULT (STDMETHODCALLTYPE *Start)( 707 IAudioClient3 *This); 708 709 HRESULT (STDMETHODCALLTYPE *Stop)( 710 IAudioClient3 *This); 711 712 HRESULT (STDMETHODCALLTYPE *Reset)( 713 IAudioClient3 *This); 714 715 HRESULT (STDMETHODCALLTYPE *SetEventHandle)( 716 IAudioClient3 *This, 717 HANDLE eventHandle); 718 719 HRESULT (STDMETHODCALLTYPE *GetService)( 720 IAudioClient3 *This, 721 REFIID riid, 722 void **ppv); 723 724 /*** IAudioClient2 methods ***/ 725 HRESULT (STDMETHODCALLTYPE *IsOffloadCapable)( 726 IAudioClient3 *This, 727 AUDIO_STREAM_CATEGORY Category, 728 WINBOOL *pbOffloadCapable); 729 730 HRESULT (STDMETHODCALLTYPE *SetClientProperties)( 731 IAudioClient3 *This, 732 const AudioClientProperties *pProperties); 733 734 HRESULT (STDMETHODCALLTYPE *GetBufferSizeLimits)( 735 IAudioClient3 *This, 736 const WAVEFORMATEX *pFormat, 737 WINBOOL bEventDriven, 738 REFERENCE_TIME *phnsMinBufferDuration, 739 REFERENCE_TIME *phnsMaxBufferDuration); 740 741 /*** IAudioClient3 methods ***/ 742 HRESULT (STDMETHODCALLTYPE *GetSharedModeEnginePeriod)( 743 IAudioClient3 *This, 744 const WAVEFORMATEX *pFormat, 745 UINT32 *pDefaultPeriodInFrames, 746 UINT32 *pFundamentalPeriodInFrames, 747 UINT32 *pMinPeriodInFrames, 748 UINT32 *pMaxPeriodInFrames); 749 750 HRESULT (STDMETHODCALLTYPE *GetCurrentSharedModeEnginePeriod)( 751 IAudioClient3 *This, 752 WAVEFORMATEX **ppFormat, 753 UINT32 *pCurrentPeriodInFrames); 754 755 HRESULT (STDMETHODCALLTYPE *InitializeSharedAudioStream)( 756 IAudioClient3 *This, 757 DWORD StreamFlags, 758 UINT32 PeriodInFrames, 759 const WAVEFORMATEX *pFormat, 760 LPCGUID AudioSessionGuid); 761 762 END_INTERFACE 763 } IAudioClient3Vtbl; 764 765 interface IAudioClient3 { 766 CONST_VTBL IAudioClient3Vtbl* lpVtbl; 767 }; 768 769 #ifdef COBJMACROS 770 #ifndef WIDL_C_INLINE_WRAPPERS 771 /*** IUnknown methods ***/ 772 #define IAudioClient3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 773 #define IAudioClient3_AddRef(This) (This)->lpVtbl->AddRef(This) 774 #define IAudioClient3_Release(This) (This)->lpVtbl->Release(This) 775 /*** IAudioClient methods ***/ 776 #define IAudioClient3_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) (This)->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) 777 #define IAudioClient3_GetBufferSize(This,pNumBufferFrames) (This)->lpVtbl->GetBufferSize(This,pNumBufferFrames) 778 #define IAudioClient3_GetStreamLatency(This,phnsLatency) (This)->lpVtbl->GetStreamLatency(This,phnsLatency) 779 #define IAudioClient3_GetCurrentPadding(This,pNumPaddingFrames) (This)->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames) 780 #define IAudioClient3_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) (This)->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) 781 #define IAudioClient3_GetMixFormat(This,ppDeviceFormat) (This)->lpVtbl->GetMixFormat(This,ppDeviceFormat) 782 #define IAudioClient3_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) (This)->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) 783 #define IAudioClient3_Start(This) (This)->lpVtbl->Start(This) 784 #define IAudioClient3_Stop(This) (This)->lpVtbl->Stop(This) 785 #define IAudioClient3_Reset(This) (This)->lpVtbl->Reset(This) 786 #define IAudioClient3_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle) 787 #define IAudioClient3_GetService(This,riid,ppv) (This)->lpVtbl->GetService(This,riid,ppv) 788 /*** IAudioClient2 methods ***/ 789 #define IAudioClient3_IsOffloadCapable(This,Category,pbOffloadCapable) (This)->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable) 790 #define IAudioClient3_SetClientProperties(This,pProperties) (This)->lpVtbl->SetClientProperties(This,pProperties) 791 #define IAudioClient3_GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration) (This)->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration) 792 /*** IAudioClient3 methods ***/ 793 #define IAudioClient3_GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames) (This)->lpVtbl->GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames) 794 #define IAudioClient3_GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames) (This)->lpVtbl->GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames) 795 #define IAudioClient3_InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid) (This)->lpVtbl->InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid) 796 #else 797 /*** IUnknown methods ***/ 798 static FORCEINLINE HRESULT IAudioClient3_QueryInterface(IAudioClient3* This,REFIID riid,void **ppvObject) { 799 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 800 } 801 static FORCEINLINE ULONG IAudioClient3_AddRef(IAudioClient3* This) { 802 return This->lpVtbl->AddRef(This); 803 } 804 static FORCEINLINE ULONG IAudioClient3_Release(IAudioClient3* This) { 805 return This->lpVtbl->Release(This); 806 } 807 /*** IAudioClient methods ***/ 808 static FORCEINLINE HRESULT IAudioClient3_Initialize(IAudioClient3* This,AUDCLNT_SHAREMODE ShareMode,DWORD StreamFlags,REFERENCE_TIME hnsBufferDuration,REFERENCE_TIME hnsPeriodicity,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) { 809 return This->lpVtbl->Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid); 810 } 811 static FORCEINLINE HRESULT IAudioClient3_GetBufferSize(IAudioClient3* This,UINT32 *pNumBufferFrames) { 812 return This->lpVtbl->GetBufferSize(This,pNumBufferFrames); 813 } 814 static FORCEINLINE HRESULT IAudioClient3_GetStreamLatency(IAudioClient3* This,REFERENCE_TIME *phnsLatency) { 815 return This->lpVtbl->GetStreamLatency(This,phnsLatency); 816 } 817 static FORCEINLINE HRESULT IAudioClient3_GetCurrentPadding(IAudioClient3* This,UINT32 *pNumPaddingFrames) { 818 return This->lpVtbl->GetCurrentPadding(This,pNumPaddingFrames); 819 } 820 static FORCEINLINE HRESULT IAudioClient3_IsFormatSupported(IAudioClient3* This,AUDCLNT_SHAREMODE ShareMode,const WAVEFORMATEX *pFormat,WAVEFORMATEX **ppClosestMatch) { 821 return This->lpVtbl->IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch); 822 } 823 static FORCEINLINE HRESULT IAudioClient3_GetMixFormat(IAudioClient3* This,WAVEFORMATEX **ppDeviceFormat) { 824 return This->lpVtbl->GetMixFormat(This,ppDeviceFormat); 825 } 826 static FORCEINLINE HRESULT IAudioClient3_GetDevicePeriod(IAudioClient3* This,REFERENCE_TIME *phnsDefaultDevicePeriod,REFERENCE_TIME *phnsMinimumDevicePeriod) { 827 return This->lpVtbl->GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod); 828 } 829 static FORCEINLINE HRESULT IAudioClient3_Start(IAudioClient3* This) { 830 return This->lpVtbl->Start(This); 831 } 832 static FORCEINLINE HRESULT IAudioClient3_Stop(IAudioClient3* This) { 833 return This->lpVtbl->Stop(This); 834 } 835 static FORCEINLINE HRESULT IAudioClient3_Reset(IAudioClient3* This) { 836 return This->lpVtbl->Reset(This); 837 } 838 static FORCEINLINE HRESULT IAudioClient3_SetEventHandle(IAudioClient3* This,HANDLE eventHandle) { 839 return This->lpVtbl->SetEventHandle(This,eventHandle); 840 } 841 static FORCEINLINE HRESULT IAudioClient3_GetService(IAudioClient3* This,REFIID riid,void **ppv) { 842 return This->lpVtbl->GetService(This,riid,ppv); 843 } 844 /*** IAudioClient2 methods ***/ 845 static FORCEINLINE HRESULT IAudioClient3_IsOffloadCapable(IAudioClient3* This,AUDIO_STREAM_CATEGORY Category,WINBOOL *pbOffloadCapable) { 846 return This->lpVtbl->IsOffloadCapable(This,Category,pbOffloadCapable); 847 } 848 static FORCEINLINE HRESULT IAudioClient3_SetClientProperties(IAudioClient3* This,const AudioClientProperties *pProperties) { 849 return This->lpVtbl->SetClientProperties(This,pProperties); 850 } 851 static FORCEINLINE HRESULT IAudioClient3_GetBufferSizeLimits(IAudioClient3* This,const WAVEFORMATEX *pFormat,WINBOOL bEventDriven,REFERENCE_TIME *phnsMinBufferDuration,REFERENCE_TIME *phnsMaxBufferDuration) { 852 return This->lpVtbl->GetBufferSizeLimits(This,pFormat,bEventDriven,phnsMinBufferDuration,phnsMaxBufferDuration); 853 } 854 /*** IAudioClient3 methods ***/ 855 static FORCEINLINE HRESULT IAudioClient3_GetSharedModeEnginePeriod(IAudioClient3* This,const WAVEFORMATEX *pFormat,UINT32 *pDefaultPeriodInFrames,UINT32 *pFundamentalPeriodInFrames,UINT32 *pMinPeriodInFrames,UINT32 *pMaxPeriodInFrames) { 856 return This->lpVtbl->GetSharedModeEnginePeriod(This,pFormat,pDefaultPeriodInFrames,pFundamentalPeriodInFrames,pMinPeriodInFrames,pMaxPeriodInFrames); 857 } 858 static FORCEINLINE HRESULT IAudioClient3_GetCurrentSharedModeEnginePeriod(IAudioClient3* This,WAVEFORMATEX **ppFormat,UINT32 *pCurrentPeriodInFrames) { 859 return This->lpVtbl->GetCurrentSharedModeEnginePeriod(This,ppFormat,pCurrentPeriodInFrames); 860 } 861 static FORCEINLINE HRESULT IAudioClient3_InitializeSharedAudioStream(IAudioClient3* This,DWORD StreamFlags,UINT32 PeriodInFrames,const WAVEFORMATEX *pFormat,LPCGUID AudioSessionGuid) { 862 return This->lpVtbl->InitializeSharedAudioStream(This,StreamFlags,PeriodInFrames,pFormat,AudioSessionGuid); 863 } 864 #endif 865 #endif 866 867 #endif 868 869 870 #endif /* __IAudioClient3_INTERFACE_DEFINED__ */ 871 872 873 /***************************************************************************** 874 * IAudioRenderClient interface 875 */ 876 #ifndef __IAudioRenderClient_INTERFACE_DEFINED__ 877 #define __IAudioRenderClient_INTERFACE_DEFINED__ 878 879 DEFINE_GUID(IID_IAudioRenderClient, 0xf294acfc, 0x3146, 0x4483, 0xa7,0xbf, 0xad,0xdc,0xa7,0xc2,0x60,0xe2); 880 #if defined(__cplusplus) && !defined(CINTERFACE) 881 MIDL_INTERFACE("f294acfc-3146-4483-a7bf-addca7c260e2") 882 IAudioRenderClient : public IUnknown 883 { 884 virtual HRESULT STDMETHODCALLTYPE GetBuffer( 885 UINT32 NumFramesRequested, 886 BYTE **ppData) = 0; 887 888 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( 889 UINT32 NumFramesWritten, 890 DWORD dwFlags) = 0; 891 892 }; 893 #ifdef __CRT_UUID_DECL 894 __CRT_UUID_DECL(IAudioRenderClient, 0xf294acfc, 0x3146, 0x4483, 0xa7,0xbf, 0xad,0xdc,0xa7,0xc2,0x60,0xe2) 895 #endif 896 #else 897 typedef struct IAudioRenderClientVtbl { 898 BEGIN_INTERFACE 899 900 /*** IUnknown methods ***/ 901 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 902 IAudioRenderClient *This, 903 REFIID riid, 904 void **ppvObject); 905 906 ULONG (STDMETHODCALLTYPE *AddRef)( 907 IAudioRenderClient *This); 908 909 ULONG (STDMETHODCALLTYPE *Release)( 910 IAudioRenderClient *This); 911 912 /*** IAudioRenderClient methods ***/ 913 HRESULT (STDMETHODCALLTYPE *GetBuffer)( 914 IAudioRenderClient *This, 915 UINT32 NumFramesRequested, 916 BYTE **ppData); 917 918 HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)( 919 IAudioRenderClient *This, 920 UINT32 NumFramesWritten, 921 DWORD dwFlags); 922 923 END_INTERFACE 924 } IAudioRenderClientVtbl; 925 926 interface IAudioRenderClient { 927 CONST_VTBL IAudioRenderClientVtbl* lpVtbl; 928 }; 929 930 #ifdef COBJMACROS 931 #ifndef WIDL_C_INLINE_WRAPPERS 932 /*** IUnknown methods ***/ 933 #define IAudioRenderClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 934 #define IAudioRenderClient_AddRef(This) (This)->lpVtbl->AddRef(This) 935 #define IAudioRenderClient_Release(This) (This)->lpVtbl->Release(This) 936 /*** IAudioRenderClient methods ***/ 937 #define IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) (This)->lpVtbl->GetBuffer(This,NumFramesRequested,ppData) 938 #define IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) (This)->lpVtbl->ReleaseBuffer(This,NumFramesWritten,dwFlags) 939 #else 940 /*** IUnknown methods ***/ 941 static FORCEINLINE HRESULT IAudioRenderClient_QueryInterface(IAudioRenderClient* This,REFIID riid,void **ppvObject) { 942 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 943 } 944 static FORCEINLINE ULONG IAudioRenderClient_AddRef(IAudioRenderClient* This) { 945 return This->lpVtbl->AddRef(This); 946 } 947 static FORCEINLINE ULONG IAudioRenderClient_Release(IAudioRenderClient* This) { 948 return This->lpVtbl->Release(This); 949 } 950 /*** IAudioRenderClient methods ***/ 951 static FORCEINLINE HRESULT IAudioRenderClient_GetBuffer(IAudioRenderClient* This,UINT32 NumFramesRequested,BYTE **ppData) { 952 return This->lpVtbl->GetBuffer(This,NumFramesRequested,ppData); 953 } 954 static FORCEINLINE HRESULT IAudioRenderClient_ReleaseBuffer(IAudioRenderClient* This,UINT32 NumFramesWritten,DWORD dwFlags) { 955 return This->lpVtbl->ReleaseBuffer(This,NumFramesWritten,dwFlags); 956 } 957 #endif 958 #endif 959 960 #endif 961 962 963 #endif /* __IAudioRenderClient_INTERFACE_DEFINED__ */ 964 965 966 /***************************************************************************** 967 * IAudioCaptureClient interface 968 */ 969 #ifndef __IAudioCaptureClient_INTERFACE_DEFINED__ 970 #define __IAudioCaptureClient_INTERFACE_DEFINED__ 971 972 DEFINE_GUID(IID_IAudioCaptureClient, 0xc8adbd64, 0xe71e, 0x48a0, 0xa4,0xde, 0x18,0x5c,0x39,0x5c,0xd3,0x17); 973 #if defined(__cplusplus) && !defined(CINTERFACE) 974 MIDL_INTERFACE("c8adbd64-e71e-48a0-a4de-185c395cd317") 975 IAudioCaptureClient : public IUnknown 976 { 977 virtual HRESULT STDMETHODCALLTYPE GetBuffer( 978 BYTE **ppData, 979 UINT32 *pNumFramesToRead, 980 DWORD *pdwFlags, 981 UINT64 *pu64DevicePosition, 982 UINT64 *pu64QPCPosition) = 0; 983 984 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( 985 UINT32 NumFramesRead) = 0; 986 987 virtual HRESULT STDMETHODCALLTYPE GetNextPacketSize( 988 UINT32 *pNumFramesInNextPacket) = 0; 989 990 }; 991 #ifdef __CRT_UUID_DECL 992 __CRT_UUID_DECL(IAudioCaptureClient, 0xc8adbd64, 0xe71e, 0x48a0, 0xa4,0xde, 0x18,0x5c,0x39,0x5c,0xd3,0x17) 993 #endif 994 #else 995 typedef struct IAudioCaptureClientVtbl { 996 BEGIN_INTERFACE 997 998 /*** IUnknown methods ***/ 999 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1000 IAudioCaptureClient *This, 1001 REFIID riid, 1002 void **ppvObject); 1003 1004 ULONG (STDMETHODCALLTYPE *AddRef)( 1005 IAudioCaptureClient *This); 1006 1007 ULONG (STDMETHODCALLTYPE *Release)( 1008 IAudioCaptureClient *This); 1009 1010 /*** IAudioCaptureClient methods ***/ 1011 HRESULT (STDMETHODCALLTYPE *GetBuffer)( 1012 IAudioCaptureClient *This, 1013 BYTE **ppData, 1014 UINT32 *pNumFramesToRead, 1015 DWORD *pdwFlags, 1016 UINT64 *pu64DevicePosition, 1017 UINT64 *pu64QPCPosition); 1018 1019 HRESULT (STDMETHODCALLTYPE *ReleaseBuffer)( 1020 IAudioCaptureClient *This, 1021 UINT32 NumFramesRead); 1022 1023 HRESULT (STDMETHODCALLTYPE *GetNextPacketSize)( 1024 IAudioCaptureClient *This, 1025 UINT32 *pNumFramesInNextPacket); 1026 1027 END_INTERFACE 1028 } IAudioCaptureClientVtbl; 1029 1030 interface IAudioCaptureClient { 1031 CONST_VTBL IAudioCaptureClientVtbl* lpVtbl; 1032 }; 1033 1034 #ifdef COBJMACROS 1035 #ifndef WIDL_C_INLINE_WRAPPERS 1036 /*** IUnknown methods ***/ 1037 #define IAudioCaptureClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1038 #define IAudioCaptureClient_AddRef(This) (This)->lpVtbl->AddRef(This) 1039 #define IAudioCaptureClient_Release(This) (This)->lpVtbl->Release(This) 1040 /*** IAudioCaptureClient methods ***/ 1041 #define IAudioCaptureClient_GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) (This)->lpVtbl->GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) 1042 #define IAudioCaptureClient_ReleaseBuffer(This,NumFramesRead) (This)->lpVtbl->ReleaseBuffer(This,NumFramesRead) 1043 #define IAudioCaptureClient_GetNextPacketSize(This,pNumFramesInNextPacket) (This)->lpVtbl->GetNextPacketSize(This,pNumFramesInNextPacket) 1044 #else 1045 /*** IUnknown methods ***/ 1046 static FORCEINLINE HRESULT IAudioCaptureClient_QueryInterface(IAudioCaptureClient* This,REFIID riid,void **ppvObject) { 1047 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1048 } 1049 static FORCEINLINE ULONG IAudioCaptureClient_AddRef(IAudioCaptureClient* This) { 1050 return This->lpVtbl->AddRef(This); 1051 } 1052 static FORCEINLINE ULONG IAudioCaptureClient_Release(IAudioCaptureClient* This) { 1053 return This->lpVtbl->Release(This); 1054 } 1055 /*** IAudioCaptureClient methods ***/ 1056 static FORCEINLINE HRESULT IAudioCaptureClient_GetBuffer(IAudioCaptureClient* This,BYTE **ppData,UINT32 *pNumFramesToRead,DWORD *pdwFlags,UINT64 *pu64DevicePosition,UINT64 *pu64QPCPosition) { 1057 return This->lpVtbl->GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition); 1058 } 1059 static FORCEINLINE HRESULT IAudioCaptureClient_ReleaseBuffer(IAudioCaptureClient* This,UINT32 NumFramesRead) { 1060 return This->lpVtbl->ReleaseBuffer(This,NumFramesRead); 1061 } 1062 static FORCEINLINE HRESULT IAudioCaptureClient_GetNextPacketSize(IAudioCaptureClient* This,UINT32 *pNumFramesInNextPacket) { 1063 return This->lpVtbl->GetNextPacketSize(This,pNumFramesInNextPacket); 1064 } 1065 #endif 1066 #endif 1067 1068 #endif 1069 1070 1071 #endif /* __IAudioCaptureClient_INTERFACE_DEFINED__ */ 1072 1073 1074 #define AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ 0x1 1075 1076 /***************************************************************************** 1077 * IAudioClock interface 1078 */ 1079 #ifndef __IAudioClock_INTERFACE_DEFINED__ 1080 #define __IAudioClock_INTERFACE_DEFINED__ 1081 1082 DEFINE_GUID(IID_IAudioClock, 0xcd63314f, 0x3fba, 0x4a1b, 0x81,0x2c, 0xef,0x96,0x35,0x87,0x28,0xe7); 1083 #if defined(__cplusplus) && !defined(CINTERFACE) 1084 MIDL_INTERFACE("cd63314f-3fba-4a1b-812c-ef96358728e7") 1085 IAudioClock : public IUnknown 1086 { 1087 virtual HRESULT STDMETHODCALLTYPE GetFrequency( 1088 UINT64 *pu64Frequency) = 0; 1089 1090 virtual HRESULT STDMETHODCALLTYPE GetPosition( 1091 UINT64 *pu64Position, 1092 UINT64 *pu64QPCPosition) = 0; 1093 1094 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics( 1095 DWORD *pdwCharacteristics) = 0; 1096 1097 }; 1098 #ifdef __CRT_UUID_DECL 1099 __CRT_UUID_DECL(IAudioClock, 0xcd63314f, 0x3fba, 0x4a1b, 0x81,0x2c, 0xef,0x96,0x35,0x87,0x28,0xe7) 1100 #endif 1101 #else 1102 typedef struct IAudioClockVtbl { 1103 BEGIN_INTERFACE 1104 1105 /*** IUnknown methods ***/ 1106 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1107 IAudioClock *This, 1108 REFIID riid, 1109 void **ppvObject); 1110 1111 ULONG (STDMETHODCALLTYPE *AddRef)( 1112 IAudioClock *This); 1113 1114 ULONG (STDMETHODCALLTYPE *Release)( 1115 IAudioClock *This); 1116 1117 /*** IAudioClock methods ***/ 1118 HRESULT (STDMETHODCALLTYPE *GetFrequency)( 1119 IAudioClock *This, 1120 UINT64 *pu64Frequency); 1121 1122 HRESULT (STDMETHODCALLTYPE *GetPosition)( 1123 IAudioClock *This, 1124 UINT64 *pu64Position, 1125 UINT64 *pu64QPCPosition); 1126 1127 HRESULT (STDMETHODCALLTYPE *GetCharacteristics)( 1128 IAudioClock *This, 1129 DWORD *pdwCharacteristics); 1130 1131 END_INTERFACE 1132 } IAudioClockVtbl; 1133 1134 interface IAudioClock { 1135 CONST_VTBL IAudioClockVtbl* lpVtbl; 1136 }; 1137 1138 #ifdef COBJMACROS 1139 #ifndef WIDL_C_INLINE_WRAPPERS 1140 /*** IUnknown methods ***/ 1141 #define IAudioClock_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1142 #define IAudioClock_AddRef(This) (This)->lpVtbl->AddRef(This) 1143 #define IAudioClock_Release(This) (This)->lpVtbl->Release(This) 1144 /*** IAudioClock methods ***/ 1145 #define IAudioClock_GetFrequency(This,pu64Frequency) (This)->lpVtbl->GetFrequency(This,pu64Frequency) 1146 #define IAudioClock_GetPosition(This,pu64Position,pu64QPCPosition) (This)->lpVtbl->GetPosition(This,pu64Position,pu64QPCPosition) 1147 #define IAudioClock_GetCharacteristics(This,pdwCharacteristics) (This)->lpVtbl->GetCharacteristics(This,pdwCharacteristics) 1148 #else 1149 /*** IUnknown methods ***/ 1150 static FORCEINLINE HRESULT IAudioClock_QueryInterface(IAudioClock* This,REFIID riid,void **ppvObject) { 1151 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1152 } 1153 static FORCEINLINE ULONG IAudioClock_AddRef(IAudioClock* This) { 1154 return This->lpVtbl->AddRef(This); 1155 } 1156 static FORCEINLINE ULONG IAudioClock_Release(IAudioClock* This) { 1157 return This->lpVtbl->Release(This); 1158 } 1159 /*** IAudioClock methods ***/ 1160 static FORCEINLINE HRESULT IAudioClock_GetFrequency(IAudioClock* This,UINT64 *pu64Frequency) { 1161 return This->lpVtbl->GetFrequency(This,pu64Frequency); 1162 } 1163 static FORCEINLINE HRESULT IAudioClock_GetPosition(IAudioClock* This,UINT64 *pu64Position,UINT64 *pu64QPCPosition) { 1164 return This->lpVtbl->GetPosition(This,pu64Position,pu64QPCPosition); 1165 } 1166 static FORCEINLINE HRESULT IAudioClock_GetCharacteristics(IAudioClock* This,DWORD *pdwCharacteristics) { 1167 return This->lpVtbl->GetCharacteristics(This,pdwCharacteristics); 1168 } 1169 #endif 1170 #endif 1171 1172 #endif 1173 1174 1175 #endif /* __IAudioClock_INTERFACE_DEFINED__ */ 1176 1177 #endif 1178 1179 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 1180 /***************************************************************************** 1181 * IAudioClock2 interface 1182 */ 1183 #ifndef __IAudioClock2_INTERFACE_DEFINED__ 1184 #define __IAudioClock2_INTERFACE_DEFINED__ 1185 1186 DEFINE_GUID(IID_IAudioClock2, 0x6f49ff73, 0x6727, 0x49ac, 0xa0,0x08, 0xd9,0x8c,0xf5,0xe7,0x00,0x48); 1187 #if defined(__cplusplus) && !defined(CINTERFACE) 1188 MIDL_INTERFACE("6f49ff73-6727-49ac-a008-d98cf5e70048") 1189 IAudioClock2 : public IUnknown 1190 { 1191 virtual HRESULT STDMETHODCALLTYPE GetDevicePosition( 1192 UINT64 *DevicePosition, 1193 UINT64 *QPCPosition) = 0; 1194 1195 }; 1196 #ifdef __CRT_UUID_DECL 1197 __CRT_UUID_DECL(IAudioClock2, 0x6f49ff73, 0x6727, 0x49ac, 0xa0,0x08, 0xd9,0x8c,0xf5,0xe7,0x00,0x48) 1198 #endif 1199 #else 1200 typedef struct IAudioClock2Vtbl { 1201 BEGIN_INTERFACE 1202 1203 /*** IUnknown methods ***/ 1204 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1205 IAudioClock2 *This, 1206 REFIID riid, 1207 void **ppvObject); 1208 1209 ULONG (STDMETHODCALLTYPE *AddRef)( 1210 IAudioClock2 *This); 1211 1212 ULONG (STDMETHODCALLTYPE *Release)( 1213 IAudioClock2 *This); 1214 1215 /*** IAudioClock2 methods ***/ 1216 HRESULT (STDMETHODCALLTYPE *GetDevicePosition)( 1217 IAudioClock2 *This, 1218 UINT64 *DevicePosition, 1219 UINT64 *QPCPosition); 1220 1221 END_INTERFACE 1222 } IAudioClock2Vtbl; 1223 1224 interface IAudioClock2 { 1225 CONST_VTBL IAudioClock2Vtbl* lpVtbl; 1226 }; 1227 1228 #ifdef COBJMACROS 1229 #ifndef WIDL_C_INLINE_WRAPPERS 1230 /*** IUnknown methods ***/ 1231 #define IAudioClock2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1232 #define IAudioClock2_AddRef(This) (This)->lpVtbl->AddRef(This) 1233 #define IAudioClock2_Release(This) (This)->lpVtbl->Release(This) 1234 /*** IAudioClock2 methods ***/ 1235 #define IAudioClock2_GetDevicePosition(This,DevicePosition,QPCPosition) (This)->lpVtbl->GetDevicePosition(This,DevicePosition,QPCPosition) 1236 #else 1237 /*** IUnknown methods ***/ 1238 static FORCEINLINE HRESULT IAudioClock2_QueryInterface(IAudioClock2* This,REFIID riid,void **ppvObject) { 1239 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1240 } 1241 static FORCEINLINE ULONG IAudioClock2_AddRef(IAudioClock2* This) { 1242 return This->lpVtbl->AddRef(This); 1243 } 1244 static FORCEINLINE ULONG IAudioClock2_Release(IAudioClock2* This) { 1245 return This->lpVtbl->Release(This); 1246 } 1247 /*** IAudioClock2 methods ***/ 1248 static FORCEINLINE HRESULT IAudioClock2_GetDevicePosition(IAudioClock2* This,UINT64 *DevicePosition,UINT64 *QPCPosition) { 1249 return This->lpVtbl->GetDevicePosition(This,DevicePosition,QPCPosition); 1250 } 1251 #endif 1252 #endif 1253 1254 #endif 1255 1256 1257 #endif /* __IAudioClock2_INTERFACE_DEFINED__ */ 1258 1259 1260 /***************************************************************************** 1261 * IAudioClockAdjustment interface 1262 */ 1263 #ifndef __IAudioClockAdjustment_INTERFACE_DEFINED__ 1264 #define __IAudioClockAdjustment_INTERFACE_DEFINED__ 1265 1266 DEFINE_GUID(IID_IAudioClockAdjustment, 0xf6e4c0a0, 0x46d9, 0x4fb8, 0xbe,0x21, 0x57,0xa3,0xef,0x2b,0x62,0x6c); 1267 #if defined(__cplusplus) && !defined(CINTERFACE) 1268 MIDL_INTERFACE("f6e4c0a0-46d9-4fb8-be21-57a3ef2b626c") 1269 IAudioClockAdjustment : public IUnknown 1270 { 1271 virtual HRESULT STDMETHODCALLTYPE SetSampleRate( 1272 float flSampleRate) = 0; 1273 1274 }; 1275 #ifdef __CRT_UUID_DECL 1276 __CRT_UUID_DECL(IAudioClockAdjustment, 0xf6e4c0a0, 0x46d9, 0x4fb8, 0xbe,0x21, 0x57,0xa3,0xef,0x2b,0x62,0x6c) 1277 #endif 1278 #else 1279 typedef struct IAudioClockAdjustmentVtbl { 1280 BEGIN_INTERFACE 1281 1282 /*** IUnknown methods ***/ 1283 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1284 IAudioClockAdjustment *This, 1285 REFIID riid, 1286 void **ppvObject); 1287 1288 ULONG (STDMETHODCALLTYPE *AddRef)( 1289 IAudioClockAdjustment *This); 1290 1291 ULONG (STDMETHODCALLTYPE *Release)( 1292 IAudioClockAdjustment *This); 1293 1294 /*** IAudioClockAdjustment methods ***/ 1295 HRESULT (STDMETHODCALLTYPE *SetSampleRate)( 1296 IAudioClockAdjustment *This, 1297 float flSampleRate); 1298 1299 END_INTERFACE 1300 } IAudioClockAdjustmentVtbl; 1301 1302 interface IAudioClockAdjustment { 1303 CONST_VTBL IAudioClockAdjustmentVtbl* lpVtbl; 1304 }; 1305 1306 #ifdef COBJMACROS 1307 #ifndef WIDL_C_INLINE_WRAPPERS 1308 /*** IUnknown methods ***/ 1309 #define IAudioClockAdjustment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1310 #define IAudioClockAdjustment_AddRef(This) (This)->lpVtbl->AddRef(This) 1311 #define IAudioClockAdjustment_Release(This) (This)->lpVtbl->Release(This) 1312 /*** IAudioClockAdjustment methods ***/ 1313 #define IAudioClockAdjustment_SetSampleRate(This,flSampleRate) (This)->lpVtbl->SetSampleRate(This,flSampleRate) 1314 #else 1315 /*** IUnknown methods ***/ 1316 static FORCEINLINE HRESULT IAudioClockAdjustment_QueryInterface(IAudioClockAdjustment* This,REFIID riid,void **ppvObject) { 1317 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1318 } 1319 static FORCEINLINE ULONG IAudioClockAdjustment_AddRef(IAudioClockAdjustment* This) { 1320 return This->lpVtbl->AddRef(This); 1321 } 1322 static FORCEINLINE ULONG IAudioClockAdjustment_Release(IAudioClockAdjustment* This) { 1323 return This->lpVtbl->Release(This); 1324 } 1325 /*** IAudioClockAdjustment methods ***/ 1326 static FORCEINLINE HRESULT IAudioClockAdjustment_SetSampleRate(IAudioClockAdjustment* This,float flSampleRate) { 1327 return This->lpVtbl->SetSampleRate(This,flSampleRate); 1328 } 1329 #endif 1330 #endif 1331 1332 #endif 1333 1334 1335 #endif /* __IAudioClockAdjustment_INTERFACE_DEFINED__ */ 1336 1337 #endif 1338 1339 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) 1340 /***************************************************************************** 1341 * ISimpleAudioVolume interface 1342 */ 1343 #ifndef __ISimpleAudioVolume_INTERFACE_DEFINED__ 1344 #define __ISimpleAudioVolume_INTERFACE_DEFINED__ 1345 1346 DEFINE_GUID(IID_ISimpleAudioVolume, 0x87ce5498, 0x68d6, 0x44e5, 0x92,0x15, 0x6d,0xa4,0x7e,0xf8,0x83,0xd8); 1347 #if defined(__cplusplus) && !defined(CINTERFACE) 1348 MIDL_INTERFACE("87ce5498-68d6-44e5-9215-6da47ef883d8") 1349 ISimpleAudioVolume : public IUnknown 1350 { 1351 virtual HRESULT STDMETHODCALLTYPE SetMasterVolume( 1352 float fLevel, 1353 LPCGUID EventContext) = 0; 1354 1355 virtual HRESULT STDMETHODCALLTYPE GetMasterVolume( 1356 float *pfLevel) = 0; 1357 1358 virtual HRESULT STDMETHODCALLTYPE SetMute( 1359 const WINBOOL bMute, 1360 LPCGUID EventContext) = 0; 1361 1362 virtual HRESULT STDMETHODCALLTYPE GetMute( 1363 WINBOOL *pbMute) = 0; 1364 1365 }; 1366 #ifdef __CRT_UUID_DECL 1367 __CRT_UUID_DECL(ISimpleAudioVolume, 0x87ce5498, 0x68d6, 0x44e5, 0x92,0x15, 0x6d,0xa4,0x7e,0xf8,0x83,0xd8) 1368 #endif 1369 #else 1370 typedef struct ISimpleAudioVolumeVtbl { 1371 BEGIN_INTERFACE 1372 1373 /*** IUnknown methods ***/ 1374 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1375 ISimpleAudioVolume *This, 1376 REFIID riid, 1377 void **ppvObject); 1378 1379 ULONG (STDMETHODCALLTYPE *AddRef)( 1380 ISimpleAudioVolume *This); 1381 1382 ULONG (STDMETHODCALLTYPE *Release)( 1383 ISimpleAudioVolume *This); 1384 1385 /*** ISimpleAudioVolume methods ***/ 1386 HRESULT (STDMETHODCALLTYPE *SetMasterVolume)( 1387 ISimpleAudioVolume *This, 1388 float fLevel, 1389 LPCGUID EventContext); 1390 1391 HRESULT (STDMETHODCALLTYPE *GetMasterVolume)( 1392 ISimpleAudioVolume *This, 1393 float *pfLevel); 1394 1395 HRESULT (STDMETHODCALLTYPE *SetMute)( 1396 ISimpleAudioVolume *This, 1397 const WINBOOL bMute, 1398 LPCGUID EventContext); 1399 1400 HRESULT (STDMETHODCALLTYPE *GetMute)( 1401 ISimpleAudioVolume *This, 1402 WINBOOL *pbMute); 1403 1404 END_INTERFACE 1405 } ISimpleAudioVolumeVtbl; 1406 1407 interface ISimpleAudioVolume { 1408 CONST_VTBL ISimpleAudioVolumeVtbl* lpVtbl; 1409 }; 1410 1411 #ifdef COBJMACROS 1412 #ifndef WIDL_C_INLINE_WRAPPERS 1413 /*** IUnknown methods ***/ 1414 #define ISimpleAudioVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1415 #define ISimpleAudioVolume_AddRef(This) (This)->lpVtbl->AddRef(This) 1416 #define ISimpleAudioVolume_Release(This) (This)->lpVtbl->Release(This) 1417 /*** ISimpleAudioVolume methods ***/ 1418 #define ISimpleAudioVolume_SetMasterVolume(This,fLevel,EventContext) (This)->lpVtbl->SetMasterVolume(This,fLevel,EventContext) 1419 #define ISimpleAudioVolume_GetMasterVolume(This,pfLevel) (This)->lpVtbl->GetMasterVolume(This,pfLevel) 1420 #define ISimpleAudioVolume_SetMute(This,bMute,EventContext) (This)->lpVtbl->SetMute(This,bMute,EventContext) 1421 #define ISimpleAudioVolume_GetMute(This,pbMute) (This)->lpVtbl->GetMute(This,pbMute) 1422 #else 1423 /*** IUnknown methods ***/ 1424 static FORCEINLINE HRESULT ISimpleAudioVolume_QueryInterface(ISimpleAudioVolume* This,REFIID riid,void **ppvObject) { 1425 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1426 } 1427 static FORCEINLINE ULONG ISimpleAudioVolume_AddRef(ISimpleAudioVolume* This) { 1428 return This->lpVtbl->AddRef(This); 1429 } 1430 static FORCEINLINE ULONG ISimpleAudioVolume_Release(ISimpleAudioVolume* This) { 1431 return This->lpVtbl->Release(This); 1432 } 1433 /*** ISimpleAudioVolume methods ***/ 1434 static FORCEINLINE HRESULT ISimpleAudioVolume_SetMasterVolume(ISimpleAudioVolume* This,float fLevel,LPCGUID EventContext) { 1435 return This->lpVtbl->SetMasterVolume(This,fLevel,EventContext); 1436 } 1437 static FORCEINLINE HRESULT ISimpleAudioVolume_GetMasterVolume(ISimpleAudioVolume* This,float *pfLevel) { 1438 return This->lpVtbl->GetMasterVolume(This,pfLevel); 1439 } 1440 static FORCEINLINE HRESULT ISimpleAudioVolume_SetMute(ISimpleAudioVolume* This,const WINBOOL bMute,LPCGUID EventContext) { 1441 return This->lpVtbl->SetMute(This,bMute,EventContext); 1442 } 1443 static FORCEINLINE HRESULT ISimpleAudioVolume_GetMute(ISimpleAudioVolume* This,WINBOOL *pbMute) { 1444 return This->lpVtbl->GetMute(This,pbMute); 1445 } 1446 #endif 1447 #endif 1448 1449 #endif 1450 1451 1452 #endif /* __ISimpleAudioVolume_INTERFACE_DEFINED__ */ 1453 1454 #endif 1455 1456 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 1457 /***************************************************************************** 1458 * IAudioStreamVolume interface 1459 */ 1460 #ifndef __IAudioStreamVolume_INTERFACE_DEFINED__ 1461 #define __IAudioStreamVolume_INTERFACE_DEFINED__ 1462 1463 DEFINE_GUID(IID_IAudioStreamVolume, 0x93014887, 0x242d, 0x4068, 0x8a,0x15, 0xcf,0x5e,0x93,0xb9,0x0f,0xe3); 1464 #if defined(__cplusplus) && !defined(CINTERFACE) 1465 MIDL_INTERFACE("93014887-242d-4068-8a15-cf5e93b90fe3") 1466 IAudioStreamVolume : public IUnknown 1467 { 1468 virtual HRESULT STDMETHODCALLTYPE GetChannelCount( 1469 UINT32 *pdwCount) = 0; 1470 1471 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume( 1472 UINT32 dwIndex, 1473 const float fLevel) = 0; 1474 1475 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume( 1476 UINT32 dwIndex, 1477 float *pfLevel) = 0; 1478 1479 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes( 1480 UINT32 dwCount, 1481 const float *pfVolumes) = 0; 1482 1483 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes( 1484 UINT32 dwCount, 1485 float *pfVolumes) = 0; 1486 1487 }; 1488 #ifdef __CRT_UUID_DECL 1489 __CRT_UUID_DECL(IAudioStreamVolume, 0x93014887, 0x242d, 0x4068, 0x8a,0x15, 0xcf,0x5e,0x93,0xb9,0x0f,0xe3) 1490 #endif 1491 #else 1492 typedef struct IAudioStreamVolumeVtbl { 1493 BEGIN_INTERFACE 1494 1495 /*** IUnknown methods ***/ 1496 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1497 IAudioStreamVolume *This, 1498 REFIID riid, 1499 void **ppvObject); 1500 1501 ULONG (STDMETHODCALLTYPE *AddRef)( 1502 IAudioStreamVolume *This); 1503 1504 ULONG (STDMETHODCALLTYPE *Release)( 1505 IAudioStreamVolume *This); 1506 1507 /*** IAudioStreamVolume methods ***/ 1508 HRESULT (STDMETHODCALLTYPE *GetChannelCount)( 1509 IAudioStreamVolume *This, 1510 UINT32 *pdwCount); 1511 1512 HRESULT (STDMETHODCALLTYPE *SetChannelVolume)( 1513 IAudioStreamVolume *This, 1514 UINT32 dwIndex, 1515 const float fLevel); 1516 1517 HRESULT (STDMETHODCALLTYPE *GetChannelVolume)( 1518 IAudioStreamVolume *This, 1519 UINT32 dwIndex, 1520 float *pfLevel); 1521 1522 HRESULT (STDMETHODCALLTYPE *SetAllVolumes)( 1523 IAudioStreamVolume *This, 1524 UINT32 dwCount, 1525 const float *pfVolumes); 1526 1527 HRESULT (STDMETHODCALLTYPE *GetAllVolumes)( 1528 IAudioStreamVolume *This, 1529 UINT32 dwCount, 1530 float *pfVolumes); 1531 1532 END_INTERFACE 1533 } IAudioStreamVolumeVtbl; 1534 1535 interface IAudioStreamVolume { 1536 CONST_VTBL IAudioStreamVolumeVtbl* lpVtbl; 1537 }; 1538 1539 #ifdef COBJMACROS 1540 #ifndef WIDL_C_INLINE_WRAPPERS 1541 /*** IUnknown methods ***/ 1542 #define IAudioStreamVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1543 #define IAudioStreamVolume_AddRef(This) (This)->lpVtbl->AddRef(This) 1544 #define IAudioStreamVolume_Release(This) (This)->lpVtbl->Release(This) 1545 /*** IAudioStreamVolume methods ***/ 1546 #define IAudioStreamVolume_GetChannelCount(This,pdwCount) (This)->lpVtbl->GetChannelCount(This,pdwCount) 1547 #define IAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel) (This)->lpVtbl->SetChannelVolume(This,dwIndex,fLevel) 1548 #define IAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel) (This)->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel) 1549 #define IAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes) 1550 #define IAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes) 1551 #else 1552 /*** IUnknown methods ***/ 1553 static FORCEINLINE HRESULT IAudioStreamVolume_QueryInterface(IAudioStreamVolume* This,REFIID riid,void **ppvObject) { 1554 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1555 } 1556 static FORCEINLINE ULONG IAudioStreamVolume_AddRef(IAudioStreamVolume* This) { 1557 return This->lpVtbl->AddRef(This); 1558 } 1559 static FORCEINLINE ULONG IAudioStreamVolume_Release(IAudioStreamVolume* This) { 1560 return This->lpVtbl->Release(This); 1561 } 1562 /*** IAudioStreamVolume methods ***/ 1563 static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelCount(IAudioStreamVolume* This,UINT32 *pdwCount) { 1564 return This->lpVtbl->GetChannelCount(This,pdwCount); 1565 } 1566 static FORCEINLINE HRESULT IAudioStreamVolume_SetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,const float fLevel) { 1567 return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel); 1568 } 1569 static FORCEINLINE HRESULT IAudioStreamVolume_GetChannelVolume(IAudioStreamVolume* This,UINT32 dwIndex,float *pfLevel) { 1570 return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel); 1571 } 1572 static FORCEINLINE HRESULT IAudioStreamVolume_SetAllVolumes(IAudioStreamVolume* This,UINT32 dwCount,const float *pfVolumes) { 1573 return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes); 1574 } 1575 static FORCEINLINE HRESULT IAudioStreamVolume_GetAllVolumes(IAudioStreamVolume* This,UINT32 dwCount,float *pfVolumes) { 1576 return This->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes); 1577 } 1578 #endif 1579 #endif 1580 1581 #endif 1582 1583 1584 #endif /* __IAudioStreamVolume_INTERFACE_DEFINED__ */ 1585 1586 /***************************************************************************** 1587 * IAudioAmbisonicsControl interface 1588 */ 1589 #ifndef __IAudioAmbisonicsControl_INTERFACE_DEFINED__ 1590 #define __IAudioAmbisonicsControl_INTERFACE_DEFINED__ 1591 1592 DEFINE_GUID(IID_IAudioAmbisonicsControl, 0x28724c91, 0xdf35, 0x4856, 0x9f,0x76, 0xd6,0xa2,0x64,0x13,0xf3,0xdf); 1593 #if defined(__cplusplus) && !defined(CINTERFACE) 1594 MIDL_INTERFACE("28724c91-df35-4856-9f76-d6a26413f3df") 1595 IAudioAmbisonicsControl : public IUnknown 1596 { 1597 virtual HRESULT STDMETHODCALLTYPE SetData( 1598 const AMBISONICS_PARAMS *pAmbisonicsParams, 1599 UINT32 cbAmbisonicsParams) = 0; 1600 1601 virtual HRESULT STDMETHODCALLTYPE SetHeadTracking( 1602 WINBOOL bEnableHeadTracking) = 0; 1603 1604 virtual HRESULT STDMETHODCALLTYPE GetHeadTracking( 1605 WINBOOL *pbEnableHeadTracking) = 0; 1606 1607 virtual HRESULT STDMETHODCALLTYPE SetRotation( 1608 float X, 1609 float Y, 1610 float Z, 1611 float W) = 0; 1612 1613 }; 1614 #ifdef __CRT_UUID_DECL 1615 __CRT_UUID_DECL(IAudioAmbisonicsControl, 0x28724c91, 0xdf35, 0x4856, 0x9f,0x76, 0xd6,0xa2,0x64,0x13,0xf3,0xdf) 1616 #endif 1617 #else 1618 typedef struct IAudioAmbisonicsControlVtbl { 1619 BEGIN_INTERFACE 1620 1621 /*** IUnknown methods ***/ 1622 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1623 IAudioAmbisonicsControl *This, 1624 REFIID riid, 1625 void **ppvObject); 1626 1627 ULONG (STDMETHODCALLTYPE *AddRef)( 1628 IAudioAmbisonicsControl *This); 1629 1630 ULONG (STDMETHODCALLTYPE *Release)( 1631 IAudioAmbisonicsControl *This); 1632 1633 /*** IAudioAmbisonicsControl methods ***/ 1634 HRESULT (STDMETHODCALLTYPE *SetData)( 1635 IAudioAmbisonicsControl *This, 1636 const AMBISONICS_PARAMS *pAmbisonicsParams, 1637 UINT32 cbAmbisonicsParams); 1638 1639 HRESULT (STDMETHODCALLTYPE *SetHeadTracking)( 1640 IAudioAmbisonicsControl *This, 1641 WINBOOL bEnableHeadTracking); 1642 1643 HRESULT (STDMETHODCALLTYPE *GetHeadTracking)( 1644 IAudioAmbisonicsControl *This, 1645 WINBOOL *pbEnableHeadTracking); 1646 1647 HRESULT (STDMETHODCALLTYPE *SetRotation)( 1648 IAudioAmbisonicsControl *This, 1649 float X, 1650 float Y, 1651 float Z, 1652 float W); 1653 1654 END_INTERFACE 1655 } IAudioAmbisonicsControlVtbl; 1656 1657 interface IAudioAmbisonicsControl { 1658 CONST_VTBL IAudioAmbisonicsControlVtbl* lpVtbl; 1659 }; 1660 1661 #ifdef COBJMACROS 1662 #ifndef WIDL_C_INLINE_WRAPPERS 1663 /*** IUnknown methods ***/ 1664 #define IAudioAmbisonicsControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1665 #define IAudioAmbisonicsControl_AddRef(This) (This)->lpVtbl->AddRef(This) 1666 #define IAudioAmbisonicsControl_Release(This) (This)->lpVtbl->Release(This) 1667 /*** IAudioAmbisonicsControl methods ***/ 1668 #define IAudioAmbisonicsControl_SetData(This,pAmbisonicsParams,cbAmbisonicsParams) (This)->lpVtbl->SetData(This,pAmbisonicsParams,cbAmbisonicsParams) 1669 #define IAudioAmbisonicsControl_SetHeadTracking(This,bEnableHeadTracking) (This)->lpVtbl->SetHeadTracking(This,bEnableHeadTracking) 1670 #define IAudioAmbisonicsControl_GetHeadTracking(This,pbEnableHeadTracking) (This)->lpVtbl->GetHeadTracking(This,pbEnableHeadTracking) 1671 #define IAudioAmbisonicsControl_SetRotation(This,X,Y,Z,W) (This)->lpVtbl->SetRotation(This,X,Y,Z,W) 1672 #else 1673 /*** IUnknown methods ***/ 1674 static FORCEINLINE HRESULT IAudioAmbisonicsControl_QueryInterface(IAudioAmbisonicsControl* This,REFIID riid,void **ppvObject) { 1675 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1676 } 1677 static FORCEINLINE ULONG IAudioAmbisonicsControl_AddRef(IAudioAmbisonicsControl* This) { 1678 return This->lpVtbl->AddRef(This); 1679 } 1680 static FORCEINLINE ULONG IAudioAmbisonicsControl_Release(IAudioAmbisonicsControl* This) { 1681 return This->lpVtbl->Release(This); 1682 } 1683 /*** IAudioAmbisonicsControl methods ***/ 1684 static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetData(IAudioAmbisonicsControl* This,const AMBISONICS_PARAMS *pAmbisonicsParams,UINT32 cbAmbisonicsParams) { 1685 return This->lpVtbl->SetData(This,pAmbisonicsParams,cbAmbisonicsParams); 1686 } 1687 static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL bEnableHeadTracking) { 1688 return This->lpVtbl->SetHeadTracking(This,bEnableHeadTracking); 1689 } 1690 static FORCEINLINE HRESULT IAudioAmbisonicsControl_GetHeadTracking(IAudioAmbisonicsControl* This,WINBOOL *pbEnableHeadTracking) { 1691 return This->lpVtbl->GetHeadTracking(This,pbEnableHeadTracking); 1692 } 1693 static FORCEINLINE HRESULT IAudioAmbisonicsControl_SetRotation(IAudioAmbisonicsControl* This,float X,float Y,float Z,float W) { 1694 return This->lpVtbl->SetRotation(This,X,Y,Z,W); 1695 } 1696 #endif 1697 #endif 1698 1699 #endif 1700 1701 1702 #endif /* __IAudioAmbisonicsControl_INTERFACE_DEFINED__ */ 1703 1704 1705 /***************************************************************************** 1706 * IChannelAudioVolume interface 1707 */ 1708 #ifndef __IChannelAudioVolume_INTERFACE_DEFINED__ 1709 #define __IChannelAudioVolume_INTERFACE_DEFINED__ 1710 1711 DEFINE_GUID(IID_IChannelAudioVolume, 0x1c158861, 0xb533, 0x4b30, 0xb1,0xcf, 0xe8,0x53,0xe5,0x1c,0x59,0xb8); 1712 #if defined(__cplusplus) && !defined(CINTERFACE) 1713 MIDL_INTERFACE("1c158861-b533-4b30-b1cf-e853e51c59b8") 1714 IChannelAudioVolume : public IUnknown 1715 { 1716 virtual HRESULT STDMETHODCALLTYPE GetChannelCount( 1717 UINT32 *pdwCount) = 0; 1718 1719 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume( 1720 UINT32 dwIndex, 1721 const float fLevel, 1722 LPCGUID EventContext) = 0; 1723 1724 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume( 1725 UINT32 dwIndex, 1726 float *pfLevel) = 0; 1727 1728 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes( 1729 UINT32 dwCount, 1730 const float *pfVolumes, 1731 LPCGUID EventContext) = 0; 1732 1733 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes( 1734 UINT32 dwCount, 1735 float *pfVolumes) = 0; 1736 1737 }; 1738 #ifdef __CRT_UUID_DECL 1739 __CRT_UUID_DECL(IChannelAudioVolume, 0x1c158861, 0xb533, 0x4b30, 0xb1,0xcf, 0xe8,0x53,0xe5,0x1c,0x59,0xb8) 1740 #endif 1741 #else 1742 typedef struct IChannelAudioVolumeVtbl { 1743 BEGIN_INTERFACE 1744 1745 /*** IUnknown methods ***/ 1746 HRESULT (STDMETHODCALLTYPE *QueryInterface)( 1747 IChannelAudioVolume *This, 1748 REFIID riid, 1749 void **ppvObject); 1750 1751 ULONG (STDMETHODCALLTYPE *AddRef)( 1752 IChannelAudioVolume *This); 1753 1754 ULONG (STDMETHODCALLTYPE *Release)( 1755 IChannelAudioVolume *This); 1756 1757 /*** IChannelAudioVolume methods ***/ 1758 HRESULT (STDMETHODCALLTYPE *GetChannelCount)( 1759 IChannelAudioVolume *This, 1760 UINT32 *pdwCount); 1761 1762 HRESULT (STDMETHODCALLTYPE *SetChannelVolume)( 1763 IChannelAudioVolume *This, 1764 UINT32 dwIndex, 1765 const float fLevel, 1766 LPCGUID EventContext); 1767 1768 HRESULT (STDMETHODCALLTYPE *GetChannelVolume)( 1769 IChannelAudioVolume *This, 1770 UINT32 dwIndex, 1771 float *pfLevel); 1772 1773 HRESULT (STDMETHODCALLTYPE *SetAllVolumes)( 1774 IChannelAudioVolume *This, 1775 UINT32 dwCount, 1776 const float *pfVolumes, 1777 LPCGUID EventContext); 1778 1779 HRESULT (STDMETHODCALLTYPE *GetAllVolumes)( 1780 IChannelAudioVolume *This, 1781 UINT32 dwCount, 1782 float *pfVolumes); 1783 1784 END_INTERFACE 1785 } IChannelAudioVolumeVtbl; 1786 1787 interface IChannelAudioVolume { 1788 CONST_VTBL IChannelAudioVolumeVtbl* lpVtbl; 1789 }; 1790 1791 #ifdef COBJMACROS 1792 #ifndef WIDL_C_INLINE_WRAPPERS 1793 /*** IUnknown methods ***/ 1794 #define IChannelAudioVolume_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) 1795 #define IChannelAudioVolume_AddRef(This) (This)->lpVtbl->AddRef(This) 1796 #define IChannelAudioVolume_Release(This) (This)->lpVtbl->Release(This) 1797 /*** IChannelAudioVolume methods ***/ 1798 #define IChannelAudioVolume_GetChannelCount(This,pdwCount) (This)->lpVtbl->GetChannelCount(This,pdwCount) 1799 #define IChannelAudioVolume_SetChannelVolume(This,dwIndex,fLevel,EventContext) (This)->lpVtbl->SetChannelVolume(This,dwIndex,fLevel,EventContext) 1800 #define IChannelAudioVolume_GetChannelVolume(This,dwIndex,pfLevel) (This)->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel) 1801 #define IChannelAudioVolume_SetAllVolumes(This,dwCount,pfVolumes,EventContext) (This)->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes,EventContext) 1802 #define IChannelAudioVolume_GetAllVolumes(This,dwCount,pfVolumes) (This)->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes) 1803 #else 1804 /*** IUnknown methods ***/ 1805 static FORCEINLINE HRESULT IChannelAudioVolume_QueryInterface(IChannelAudioVolume* This,REFIID riid,void **ppvObject) { 1806 return This->lpVtbl->QueryInterface(This,riid,ppvObject); 1807 } 1808 static FORCEINLINE ULONG IChannelAudioVolume_AddRef(IChannelAudioVolume* This) { 1809 return This->lpVtbl->AddRef(This); 1810 } 1811 static FORCEINLINE ULONG IChannelAudioVolume_Release(IChannelAudioVolume* This) { 1812 return This->lpVtbl->Release(This); 1813 } 1814 /*** IChannelAudioVolume methods ***/ 1815 static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelCount(IChannelAudioVolume* This,UINT32 *pdwCount) { 1816 return This->lpVtbl->GetChannelCount(This,pdwCount); 1817 } 1818 static FORCEINLINE HRESULT IChannelAudioVolume_SetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,const float fLevel,LPCGUID EventContext) { 1819 return This->lpVtbl->SetChannelVolume(This,dwIndex,fLevel,EventContext); 1820 } 1821 static FORCEINLINE HRESULT IChannelAudioVolume_GetChannelVolume(IChannelAudioVolume* This,UINT32 dwIndex,float *pfLevel) { 1822 return This->lpVtbl->GetChannelVolume(This,dwIndex,pfLevel); 1823 } 1824 static FORCEINLINE HRESULT IChannelAudioVolume_SetAllVolumes(IChannelAudioVolume* This,UINT32 dwCount,const float *pfVolumes,LPCGUID EventContext) { 1825 return This->lpVtbl->SetAllVolumes(This,dwCount,pfVolumes,EventContext); 1826 } 1827 static FORCEINLINE HRESULT IChannelAudioVolume_GetAllVolumes(IChannelAudioVolume* This,UINT32 dwCount,float *pfVolumes) { 1828 return This->lpVtbl->GetAllVolumes(This,dwCount,pfVolumes); 1829 } 1830 #endif 1831 #endif 1832 1833 #endif 1834 1835 1836 #endif /* __IChannelAudioVolume_INTERFACE_DEFINED__ */ 1837 1838 #endif 1839 1840 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) 1841 #define AUDCLNT_ERR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_AUDCLNT, n) 1842 #define AUDCLNT_SUCCESS(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_AUDCLNT, n) 1843 1844 #define AUDCLNT_E_NOT_INITIALIZED AUDCLNT_ERR(0x1) 1845 #define AUDCLNT_E_ALREADY_INITIALIZED AUDCLNT_ERR(0x2) 1846 #define AUDCLNT_E_WRONG_ENDPOINT_TYPE AUDCLNT_ERR(0x3) 1847 #define AUDCLNT_E_DEVICE_INVALIDATED AUDCLNT_ERR(0x4) 1848 #define AUDCLNT_E_NOT_STOPPED AUDCLNT_ERR(0x5) 1849 #define AUDCLNT_E_BUFFER_TOO_LARGE AUDCLNT_ERR(0x6) 1850 #define AUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(0x7) 1851 #define AUDCLNT_E_UNSUPPORTED_FORMAT AUDCLNT_ERR(0x8) 1852 #define AUDCLNT_E_INVALID_SIZE AUDCLNT_ERR(0x9) 1853 #define AUDCLNT_E_DEVICE_IN_USE AUDCLNT_ERR(0xa) 1854 #define AUDCLNT_E_BUFFER_OPERATION_PENDING AUDCLNT_ERR(0xb) 1855 #define AUDCLNT_E_THREAD_NOT_REGISTERED AUDCLNT_ERR(0xc) 1856 #define AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED AUDCLNT_ERR(0xe) 1857 #define AUDCLNT_E_ENDPOINT_CREATE_FAILED AUDCLNT_ERR(0xf) 1858 #define AUDCLNT_E_SERVICE_NOT_RUNNING AUDCLNT_ERR(0x10) 1859 #define AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED AUDCLNT_ERR(0x11) 1860 #define AUDCLNT_E_EXCLUSIVE_MODE_ONLY AUDCLNT_ERR(0x12) 1861 #define AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL AUDCLNT_ERR(0x13) 1862 #define AUDCLNT_E_EVENTHANDLE_NOT_SET AUDCLNT_ERR(0x14) 1863 #define AUDCLNT_E_INCORRECT_BUFFER_SIZE AUDCLNT_ERR(0x15) 1864 #define AUDCLNT_E_BUFFER_SIZE_ERROR AUDCLNT_ERR(0x16) 1865 #define AUDCLNT_E_CPUUSAGE_EXCEEDED AUDCLNT_ERR(0x17) 1866 #define AUDCLNT_E_BUFFER_ERROR AUDCLNT_ERR(0x18) 1867 #define AUDCLNT_E_BUFFER_SIZE_NOT_ALIGNED AUDCLNT_ERR(0x19) 1868 #define AUDCLNT_E_INVALID_DEVICE_PERIOD AUDCLNT_ERR(0x20) 1869 #define AUDCLNT_E_INVALID_STREAM_FLAG AUDCLNT_ERR(0x21) 1870 #define AUDCLNT_E_ENDPOINT_OFFLOAD_NOT_CAPABLE AUDCLNT_ERR(0x22) 1871 #define AUDCLNT_E_OUT_OF_OFFLOAD_RESOURCES AUDCLNT_ERR(0x23) 1872 #define AUDCLNT_E_OFFLOAD_MODE_ONLY AUDCLNT_ERR(0x24) 1873 #define AUDCLNT_E_NONOFFLOAD_MODE_ONLY AUDCLNT_ERR(0x25) 1874 #define AUDCLNT_E_RESOURCES_INVALIDATED AUDCLNT_ERR(0x26) 1875 #define AUDCLNT_E_RAW_MODE_UNSUPPORTED AUDCLNT_ERR(0x027) 1876 #define AUDCLNT_E_ENGINE_PERIODICITY_LOCKED AUDCLNT_ERR(0x028) 1877 #define AUDCLNT_E_ENGINE_FORMAT_LOCKED AUDCLNT_ERR(0x029) 1878 #define AUDCLNT_E_HEADTRACKING_ENABLED AUDCLNT_ERR(0x030) 1879 #define AUDCLNT_E_HEADTRACKING_UNSUPPORTED AUDCLNT_ERR(0x040) 1880 #define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x1) 1881 #define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x2) 1882 #define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x3) 1883 #endif 1884 /* Begin additional prototypes for all interfaces */ 1885 1886 1887 /* End additional prototypes */ 1888 1889 #ifdef __cplusplus 1890 } 1891 #endif 1892 1893 #endif /* __audioclient_h__ */ 1894