1 2 3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */ 4 5 6 /* File created by MIDL compiler version 7.00.0499 */ 7 /* Compiler settings for audioclient.idl: 8 Oicf, W1, Zp8, env=Win32 (32b run) 9 protocol : dce , ms_ext, c_ext, robust 10 error checks: allocation ref bounds_check enum stub_data 11 VC __declspec() decoration level: 12 __declspec(uuid()), __declspec(selectany), __declspec(novtable) 13 DECLSPEC_UUID(), MIDL_INTERFACE() 14 */ 15 //@@MIDL_FILE_HEADING( ) 16 17 #pragma warning( disable: 4049 ) /* more than 64k source lines */ 18 19 20 /* verify that the <rpcndr.h> version is high enough to compile this file*/ 21 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 22 #define __REQUIRED_RPCNDR_H_VERSION__ 500 23 #endif 24 25 /* verify that the <rpcsal.h> version is high enough to compile this file*/ 26 #ifndef __REQUIRED_RPCSAL_H_VERSION__ 27 #define __REQUIRED_RPCSAL_H_VERSION__ 100 28 #endif 29 30 #include "rpc.h" 31 #include "rpcndr.h" 32 33 #ifndef __RPCNDR_H_VERSION__ 34 #error this stub requires an updated version of <rpcndr.h> 35 #endif // __RPCNDR_H_VERSION__ 36 37 #ifndef COM_NO_WINDOWS_H 38 #include "windows.h" 39 #include "ole2.h" 40 #endif /*COM_NO_WINDOWS_H*/ 41 42 #ifndef __audioclient_h__ 43 #define __audioclient_h__ 44 45 #if defined(_MSC_VER) && (_MSC_VER >= 1020) 46 #pragma once 47 #endif 48 49 /* Forward Declarations */ 50 51 #ifndef __IAudioClient_FWD_DEFINED__ 52 #define __IAudioClient_FWD_DEFINED__ 53 typedef interface IAudioClient IAudioClient; 54 #endif /* __IAudioClient_FWD_DEFINED__ */ 55 56 57 #ifndef __IAudioRenderClient_FWD_DEFINED__ 58 #define __IAudioRenderClient_FWD_DEFINED__ 59 typedef interface IAudioRenderClient IAudioRenderClient; 60 #endif /* __IAudioRenderClient_FWD_DEFINED__ */ 61 62 63 #ifndef __IAudioCaptureClient_FWD_DEFINED__ 64 #define __IAudioCaptureClient_FWD_DEFINED__ 65 typedef interface IAudioCaptureClient IAudioCaptureClient; 66 #endif /* __IAudioCaptureClient_FWD_DEFINED__ */ 67 68 69 #ifndef __IAudioClock_FWD_DEFINED__ 70 #define __IAudioClock_FWD_DEFINED__ 71 typedef interface IAudioClock IAudioClock; 72 #endif /* __IAudioClock_FWD_DEFINED__ */ 73 74 75 #ifndef __ISimpleAudioVolume_FWD_DEFINED__ 76 #define __ISimpleAudioVolume_FWD_DEFINED__ 77 typedef interface ISimpleAudioVolume ISimpleAudioVolume; 78 #endif /* __ISimpleAudioVolume_FWD_DEFINED__ */ 79 80 81 #ifndef __IAudioStreamVolume_FWD_DEFINED__ 82 #define __IAudioStreamVolume_FWD_DEFINED__ 83 typedef interface IAudioStreamVolume IAudioStreamVolume; 84 #endif /* __IAudioStreamVolume_FWD_DEFINED__ */ 85 86 87 #ifndef __IChannelAudioVolume_FWD_DEFINED__ 88 #define __IChannelAudioVolume_FWD_DEFINED__ 89 typedef interface IChannelAudioVolume IChannelAudioVolume; 90 #endif /* __IChannelAudioVolume_FWD_DEFINED__ */ 91 92 93 /* header files for imported files */ 94 #include "wtypes.h" 95 #include "unknwn.h" 96 #include "audiosessiontypes.h" 97 98 #ifdef __cplusplus 99 extern "C"{ 100 #endif 101 102 103 /* interface __MIDL_itf_audioclient_0000_0000 */ 104 /* [local] */ 105 106 #if 0 107 typedef /* [hidden][restricted] */ struct WAVEFORMATEX 108 { 109 WORD wFormatTag; 110 WORD nChannels; 111 DWORD nSamplesPerSec; 112 DWORD nAvgBytesPerSec; 113 WORD nBlockAlign; 114 WORD wBitsPerSample; 115 WORD cbSize; 116 } WAVEFORMATEX; 117 118 #else 119 #include <mmreg.h> 120 #endif 121 #if 0 122 typedef /* [hidden][restricted] */ LONGLONG REFERENCE_TIME; 123 124 #else 125 #define _IKsControl_ 126 #include <ks.h> 127 #include <ksmedia.h> 128 #endif 129 130 enum _AUDCLNT_BUFFERFLAGS 131 { AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY = 0x1, 132 AUDCLNT_BUFFERFLAGS_SILENT = 0x2, 133 AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4 134 } ; 135 136 137 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0000_v0_0_c_ifspec; 138 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0000_v0_0_s_ifspec; 139 140 #ifndef __IAudioClient_INTERFACE_DEFINED__ 141 #define __IAudioClient_INTERFACE_DEFINED__ 142 143 /* interface IAudioClient */ 144 /* [local][unique][uuid][object] */ 145 146 147 EXTERN_C const IID IID_IAudioClient; 148 149 #if defined(__cplusplus) && !defined(CINTERFACE) 150 151 MIDL_INTERFACE("1CB9AD4C-DBFA-4c32-B178-C2F568A703B2") 152 IAudioClient : public IUnknown 153 { 154 public: 155 virtual HRESULT STDMETHODCALLTYPE Initialize( 156 /* [in] */ 157 __in AUDCLNT_SHAREMODE ShareMode, 158 /* [in] */ 159 __in DWORD StreamFlags, 160 /* [in] */ 161 __in REFERENCE_TIME hnsBufferDuration, 162 /* [in] */ 163 __in REFERENCE_TIME hnsPeriodicity, 164 /* [in] */ 165 __in const WAVEFORMATEX *pFormat, 166 /* [in] */ 167 __in_opt LPCGUID AudioSessionGuid) = 0; 168 169 virtual HRESULT STDMETHODCALLTYPE GetBufferSize( 170 /* [out] */ 171 __out UINT32 *pNumBufferFrames) = 0; 172 173 virtual HRESULT STDMETHODCALLTYPE GetStreamLatency( 174 /* [out] */ 175 __out REFERENCE_TIME *phnsLatency) = 0; 176 177 virtual HRESULT STDMETHODCALLTYPE GetCurrentPadding( 178 /* [out] */ 179 __out UINT32 *pNumPaddingFrames) = 0; 180 181 virtual HRESULT STDMETHODCALLTYPE IsFormatSupported( 182 /* [in] */ 183 __in AUDCLNT_SHAREMODE ShareMode, 184 /* [in] */ 185 __in const WAVEFORMATEX *pFormat, 186 /* [unique][out] */ 187 __out_opt WAVEFORMATEX **ppClosestMatch) = 0; 188 189 virtual HRESULT STDMETHODCALLTYPE GetMixFormat( 190 /* [out] */ 191 __out WAVEFORMATEX **ppDeviceFormat) = 0; 192 193 virtual HRESULT STDMETHODCALLTYPE GetDevicePeriod( 194 /* [out] */ 195 __out_opt REFERENCE_TIME *phnsDefaultDevicePeriod, 196 /* [out] */ 197 __out_opt REFERENCE_TIME *phnsMinimumDevicePeriod) = 0; 198 199 virtual HRESULT STDMETHODCALLTYPE Start( void) = 0; 200 201 virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0; 202 203 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; 204 205 virtual HRESULT STDMETHODCALLTYPE SetEventHandle( 206 /* [in] */ HANDLE eventHandle) = 0; 207 208 virtual HRESULT STDMETHODCALLTYPE GetService( 209 /* [in] */ 210 __in REFIID riid, 211 /* [iid_is][out] */ 212 __out void **ppv) = 0; 213 214 }; 215 216 #else /* C style interface */ 217 218 typedef struct IAudioClientVtbl 219 { 220 BEGIN_INTERFACE 221 222 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 223 IAudioClient * This, 224 /* [in] */ REFIID riid, 225 /* [iid_is][out] */ 226 __RPC__deref_out void **ppvObject); 227 228 ULONG ( STDMETHODCALLTYPE *AddRef )( 229 IAudioClient * This); 230 231 ULONG ( STDMETHODCALLTYPE *Release )( 232 IAudioClient * This); 233 234 HRESULT ( STDMETHODCALLTYPE *Initialize )( 235 IAudioClient * This, 236 /* [in] */ 237 __in AUDCLNT_SHAREMODE ShareMode, 238 /* [in] */ 239 __in DWORD StreamFlags, 240 /* [in] */ 241 __in REFERENCE_TIME hnsBufferDuration, 242 /* [in] */ 243 __in REFERENCE_TIME hnsPeriodicity, 244 /* [in] */ 245 __in const WAVEFORMATEX *pFormat, 246 /* [in] */ 247 __in_opt LPCGUID AudioSessionGuid); 248 249 HRESULT ( STDMETHODCALLTYPE *GetBufferSize )( 250 IAudioClient * This, 251 /* [out] */ 252 __out UINT32 *pNumBufferFrames); 253 254 HRESULT ( STDMETHODCALLTYPE *GetStreamLatency )( 255 IAudioClient * This, 256 /* [out] */ 257 __out REFERENCE_TIME *phnsLatency); 258 259 HRESULT ( STDMETHODCALLTYPE *GetCurrentPadding )( 260 IAudioClient * This, 261 /* [out] */ 262 __out UINT32 *pNumPaddingFrames); 263 264 HRESULT ( STDMETHODCALLTYPE *IsFormatSupported )( 265 IAudioClient * This, 266 /* [in] */ 267 __in AUDCLNT_SHAREMODE ShareMode, 268 /* [in] */ 269 __in const WAVEFORMATEX *pFormat, 270 /* [unique][out] */ 271 __out_opt WAVEFORMATEX **ppClosestMatch); 272 273 HRESULT ( STDMETHODCALLTYPE *GetMixFormat )( 274 IAudioClient * This, 275 /* [out] */ 276 __out WAVEFORMATEX **ppDeviceFormat); 277 278 HRESULT ( STDMETHODCALLTYPE *GetDevicePeriod )( 279 IAudioClient * This, 280 /* [out] */ 281 __out_opt REFERENCE_TIME *phnsDefaultDevicePeriod, 282 /* [out] */ 283 __out_opt REFERENCE_TIME *phnsMinimumDevicePeriod); 284 285 HRESULT ( STDMETHODCALLTYPE *Start )( 286 IAudioClient * This); 287 288 HRESULT ( STDMETHODCALLTYPE *Stop )( 289 IAudioClient * This); 290 291 HRESULT ( STDMETHODCALLTYPE *Reset )( 292 IAudioClient * This); 293 294 HRESULT ( STDMETHODCALLTYPE *SetEventHandle )( 295 IAudioClient * This, 296 /* [in] */ HANDLE eventHandle); 297 298 HRESULT ( STDMETHODCALLTYPE *GetService )( 299 IAudioClient * This, 300 /* [in] */ 301 __in REFIID riid, 302 /* [iid_is][out] */ 303 __out void **ppv); 304 305 END_INTERFACE 306 } IAudioClientVtbl; 307 308 interface IAudioClient 309 { 310 CONST_VTBL struct IAudioClientVtbl *lpVtbl; 311 }; 312 313 314 315 #ifdef COBJMACROS 316 317 318 #define IAudioClient_QueryInterface(This,riid,ppvObject) \ 319 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 320 321 #define IAudioClient_AddRef(This) \ 322 ( (This)->lpVtbl -> AddRef(This) ) 323 324 #define IAudioClient_Release(This) \ 325 ( (This)->lpVtbl -> Release(This) ) 326 327 328 #define IAudioClient_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) \ 329 ( (This)->lpVtbl -> Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) ) 330 331 #define IAudioClient_GetBufferSize(This,pNumBufferFrames) \ 332 ( (This)->lpVtbl -> GetBufferSize(This,pNumBufferFrames) ) 333 334 #define IAudioClient_GetStreamLatency(This,phnsLatency) \ 335 ( (This)->lpVtbl -> GetStreamLatency(This,phnsLatency) ) 336 337 #define IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) \ 338 ( (This)->lpVtbl -> GetCurrentPadding(This,pNumPaddingFrames) ) 339 340 #define IAudioClient_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) \ 341 ( (This)->lpVtbl -> IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) ) 342 343 #define IAudioClient_GetMixFormat(This,ppDeviceFormat) \ 344 ( (This)->lpVtbl -> GetMixFormat(This,ppDeviceFormat) ) 345 346 #define IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) \ 347 ( (This)->lpVtbl -> GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) ) 348 349 #define IAudioClient_Start(This) \ 350 ( (This)->lpVtbl -> Start(This) ) 351 352 #define IAudioClient_Stop(This) \ 353 ( (This)->lpVtbl -> Stop(This) ) 354 355 #define IAudioClient_Reset(This) \ 356 ( (This)->lpVtbl -> Reset(This) ) 357 358 #define IAudioClient_SetEventHandle(This,eventHandle) \ 359 ( (This)->lpVtbl -> SetEventHandle(This,eventHandle) ) 360 361 #define IAudioClient_GetService(This,riid,ppv) \ 362 ( (This)->lpVtbl -> GetService(This,riid,ppv) ) 363 364 #endif /* COBJMACROS */ 365 366 367 #endif /* C style interface */ 368 369 370 371 372 #endif /* __IAudioClient_INTERFACE_DEFINED__ */ 373 374 375 #ifndef __IAudioRenderClient_INTERFACE_DEFINED__ 376 #define __IAudioRenderClient_INTERFACE_DEFINED__ 377 378 /* interface IAudioRenderClient */ 379 /* [local][unique][helpstring][uuid][object] */ 380 381 382 EXTERN_C const IID IID_IAudioRenderClient; 383 384 #if defined(__cplusplus) && !defined(CINTERFACE) 385 386 MIDL_INTERFACE("F294ACFC-3146-4483-A7BF-ADDCA7C260E2") 387 IAudioRenderClient : public IUnknown 388 { 389 public: 390 virtual HRESULT STDMETHODCALLTYPE GetBuffer( 391 /* [in] */ 392 __in UINT32 NumFramesRequested, 393 /* [out] */ 394 __out BYTE **ppData) = 0; 395 396 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( 397 /* [in] */ 398 __in UINT32 NumFramesWritten, 399 /* [in] */ 400 __in DWORD dwFlags) = 0; 401 402 }; 403 404 #else /* C style interface */ 405 406 typedef struct IAudioRenderClientVtbl 407 { 408 BEGIN_INTERFACE 409 410 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 411 IAudioRenderClient * This, 412 /* [in] */ REFIID riid, 413 /* [iid_is][out] */ 414 __RPC__deref_out void **ppvObject); 415 416 ULONG ( STDMETHODCALLTYPE *AddRef )( 417 IAudioRenderClient * This); 418 419 ULONG ( STDMETHODCALLTYPE *Release )( 420 IAudioRenderClient * This); 421 422 HRESULT ( STDMETHODCALLTYPE *GetBuffer )( 423 IAudioRenderClient * This, 424 /* [in] */ 425 __in UINT32 NumFramesRequested, 426 /* [out] */ 427 __out BYTE **ppData); 428 429 HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( 430 IAudioRenderClient * This, 431 /* [in] */ 432 __in UINT32 NumFramesWritten, 433 /* [in] */ 434 __in DWORD dwFlags); 435 436 END_INTERFACE 437 } IAudioRenderClientVtbl; 438 439 interface IAudioRenderClient 440 { 441 CONST_VTBL struct IAudioRenderClientVtbl *lpVtbl; 442 }; 443 444 445 446 #ifdef COBJMACROS 447 448 449 #define IAudioRenderClient_QueryInterface(This,riid,ppvObject) \ 450 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 451 452 #define IAudioRenderClient_AddRef(This) \ 453 ( (This)->lpVtbl -> AddRef(This) ) 454 455 #define IAudioRenderClient_Release(This) \ 456 ( (This)->lpVtbl -> Release(This) ) 457 458 459 #define IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) \ 460 ( (This)->lpVtbl -> GetBuffer(This,NumFramesRequested,ppData) ) 461 462 #define IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) \ 463 ( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesWritten,dwFlags) ) 464 465 #endif /* COBJMACROS */ 466 467 468 #endif /* C style interface */ 469 470 471 472 473 #endif /* __IAudioRenderClient_INTERFACE_DEFINED__ */ 474 475 476 #ifndef __IAudioCaptureClient_INTERFACE_DEFINED__ 477 #define __IAudioCaptureClient_INTERFACE_DEFINED__ 478 479 /* interface IAudioCaptureClient */ 480 /* [local][unique][helpstring][uuid][object] */ 481 482 483 EXTERN_C const IID IID_IAudioCaptureClient; 484 485 #if defined(__cplusplus) && !defined(CINTERFACE) 486 487 MIDL_INTERFACE("C8ADBD64-E71E-48a0-A4DE-185C395CD317") 488 IAudioCaptureClient : public IUnknown 489 { 490 public: 491 virtual HRESULT STDMETHODCALLTYPE GetBuffer( 492 /* [out] */ 493 __out BYTE **ppData, 494 /* [out] */ 495 __out UINT32 *pNumFramesToRead, 496 /* [out] */ 497 __out DWORD *pdwFlags, 498 /* [unique][out] */ 499 __out_opt UINT64 *pu64DevicePosition, 500 /* [unique][out] */ 501 __out_opt UINT64 *pu64QPCPosition) = 0; 502 503 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( 504 /* [in] */ 505 __in UINT32 NumFramesRead) = 0; 506 507 virtual HRESULT STDMETHODCALLTYPE GetNextPacketSize( 508 /* [out] */ 509 __out UINT32 *pNumFramesInNextPacket) = 0; 510 511 }; 512 513 #else /* C style interface */ 514 515 typedef struct IAudioCaptureClientVtbl 516 { 517 BEGIN_INTERFACE 518 519 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 520 IAudioCaptureClient * This, 521 /* [in] */ REFIID riid, 522 /* [iid_is][out] */ 523 __RPC__deref_out void **ppvObject); 524 525 ULONG ( STDMETHODCALLTYPE *AddRef )( 526 IAudioCaptureClient * This); 527 528 ULONG ( STDMETHODCALLTYPE *Release )( 529 IAudioCaptureClient * This); 530 531 HRESULT ( STDMETHODCALLTYPE *GetBuffer )( 532 IAudioCaptureClient * This, 533 /* [out] */ 534 __out BYTE **ppData, 535 /* [out] */ 536 __out UINT32 *pNumFramesToRead, 537 /* [out] */ 538 __out DWORD *pdwFlags, 539 /* [unique][out] */ 540 __out_opt UINT64 *pu64DevicePosition, 541 /* [unique][out] */ 542 __out_opt UINT64 *pu64QPCPosition); 543 544 HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( 545 IAudioCaptureClient * This, 546 /* [in] */ 547 __in UINT32 NumFramesRead); 548 549 HRESULT ( STDMETHODCALLTYPE *GetNextPacketSize )( 550 IAudioCaptureClient * This, 551 /* [out] */ 552 __out UINT32 *pNumFramesInNextPacket); 553 554 END_INTERFACE 555 } IAudioCaptureClientVtbl; 556 557 interface IAudioCaptureClient 558 { 559 CONST_VTBL struct IAudioCaptureClientVtbl *lpVtbl; 560 }; 561 562 563 564 #ifdef COBJMACROS 565 566 567 #define IAudioCaptureClient_QueryInterface(This,riid,ppvObject) \ 568 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 569 570 #define IAudioCaptureClient_AddRef(This) \ 571 ( (This)->lpVtbl -> AddRef(This) ) 572 573 #define IAudioCaptureClient_Release(This) \ 574 ( (This)->lpVtbl -> Release(This) ) 575 576 577 #define IAudioCaptureClient_GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) \ 578 ( (This)->lpVtbl -> GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) ) 579 580 #define IAudioCaptureClient_ReleaseBuffer(This,NumFramesRead) \ 581 ( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesRead) ) 582 583 #define IAudioCaptureClient_GetNextPacketSize(This,pNumFramesInNextPacket) \ 584 ( (This)->lpVtbl -> GetNextPacketSize(This,pNumFramesInNextPacket) ) 585 586 #endif /* COBJMACROS */ 587 588 589 #endif /* C style interface */ 590 591 592 593 594 #endif /* __IAudioCaptureClient_INTERFACE_DEFINED__ */ 595 596 597 /* interface __MIDL_itf_audioclient_0000_0003 */ 598 /* [local] */ 599 600 #define AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ 0x00000001 601 602 603 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0003_v0_0_c_ifspec; 604 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0003_v0_0_s_ifspec; 605 606 #ifndef __IAudioClock_INTERFACE_DEFINED__ 607 #define __IAudioClock_INTERFACE_DEFINED__ 608 609 /* interface IAudioClock */ 610 /* [local][unique][uuid][object] */ 611 612 613 EXTERN_C const IID IID_IAudioClock; 614 615 #if defined(__cplusplus) && !defined(CINTERFACE) 616 617 MIDL_INTERFACE("CD63314F-3FBA-4a1b-812C-EF96358728E7") 618 IAudioClock : public IUnknown 619 { 620 public: 621 virtual HRESULT STDMETHODCALLTYPE GetFrequency( 622 /* [out] */ 623 __out UINT64 *pu64Frequency) = 0; 624 625 virtual HRESULT STDMETHODCALLTYPE GetPosition( 626 /* [out] */ 627 __out UINT64 *pu64Position, 628 /* [unique][out] */ 629 __out_opt UINT64 *pu64QPCPosition) = 0; 630 631 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics( 632 /* [out] */ 633 __out DWORD *pdwCharacteristics) = 0; 634 635 }; 636 637 #else /* C style interface */ 638 639 typedef struct IAudioClockVtbl 640 { 641 BEGIN_INTERFACE 642 643 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 644 IAudioClock * This, 645 /* [in] */ REFIID riid, 646 /* [iid_is][out] */ 647 __RPC__deref_out void **ppvObject); 648 649 ULONG ( STDMETHODCALLTYPE *AddRef )( 650 IAudioClock * This); 651 652 ULONG ( STDMETHODCALLTYPE *Release )( 653 IAudioClock * This); 654 655 HRESULT ( STDMETHODCALLTYPE *GetFrequency )( 656 IAudioClock * This, 657 /* [out] */ 658 __out UINT64 *pu64Frequency); 659 660 HRESULT ( STDMETHODCALLTYPE *GetPosition )( 661 IAudioClock * This, 662 /* [out] */ 663 __out UINT64 *pu64Position, 664 /* [unique][out] */ 665 __out_opt UINT64 *pu64QPCPosition); 666 667 HRESULT ( STDMETHODCALLTYPE *GetCharacteristics )( 668 IAudioClock * This, 669 /* [out] */ 670 __out DWORD *pdwCharacteristics); 671 672 END_INTERFACE 673 } IAudioClockVtbl; 674 675 interface IAudioClock 676 { 677 CONST_VTBL struct IAudioClockVtbl *lpVtbl; 678 }; 679 680 681 682 #ifdef COBJMACROS 683 684 685 #define IAudioClock_QueryInterface(This,riid,ppvObject) \ 686 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 687 688 #define IAudioClock_AddRef(This) \ 689 ( (This)->lpVtbl -> AddRef(This) ) 690 691 #define IAudioClock_Release(This) \ 692 ( (This)->lpVtbl -> Release(This) ) 693 694 695 #define IAudioClock_GetFrequency(This,pu64Frequency) \ 696 ( (This)->lpVtbl -> GetFrequency(This,pu64Frequency) ) 697 698 #define IAudioClock_GetPosition(This,pu64Position,pu64QPCPosition) \ 699 ( (This)->lpVtbl -> GetPosition(This,pu64Position,pu64QPCPosition) ) 700 701 #define IAudioClock_GetCharacteristics(This,pdwCharacteristics) \ 702 ( (This)->lpVtbl -> GetCharacteristics(This,pdwCharacteristics) ) 703 704 #endif /* COBJMACROS */ 705 706 707 #endif /* C style interface */ 708 709 710 711 712 #endif /* __IAudioClock_INTERFACE_DEFINED__ */ 713 714 715 #ifndef __ISimpleAudioVolume_INTERFACE_DEFINED__ 716 #define __ISimpleAudioVolume_INTERFACE_DEFINED__ 717 718 /* interface ISimpleAudioVolume */ 719 /* [local][unique][uuid][object] */ 720 721 722 EXTERN_C const IID IID_ISimpleAudioVolume; 723 724 #if defined(__cplusplus) && !defined(CINTERFACE) 725 726 MIDL_INTERFACE("87CE5498-68D6-44E5-9215-6DA47EF883D8") 727 ISimpleAudioVolume : public IUnknown 728 { 729 public: 730 virtual HRESULT STDMETHODCALLTYPE SetMasterVolume( 731 /* [in] */ 732 __in float fLevel, 733 /* [unique][in] */ LPCGUID EventContext) = 0; 734 735 virtual HRESULT STDMETHODCALLTYPE GetMasterVolume( 736 /* [out] */ 737 __out float *pfLevel) = 0; 738 739 virtual HRESULT STDMETHODCALLTYPE SetMute( 740 /* [in] */ 741 __in const BOOL bMute, 742 /* [unique][in] */ LPCGUID EventContext) = 0; 743 744 virtual HRESULT STDMETHODCALLTYPE GetMute( 745 /* [out] */ 746 __out BOOL *pbMute) = 0; 747 748 }; 749 750 #else /* C style interface */ 751 752 typedef struct ISimpleAudioVolumeVtbl 753 { 754 BEGIN_INTERFACE 755 756 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 757 ISimpleAudioVolume * This, 758 /* [in] */ REFIID riid, 759 /* [iid_is][out] */ 760 __RPC__deref_out void **ppvObject); 761 762 ULONG ( STDMETHODCALLTYPE *AddRef )( 763 ISimpleAudioVolume * This); 764 765 ULONG ( STDMETHODCALLTYPE *Release )( 766 ISimpleAudioVolume * This); 767 768 HRESULT ( STDMETHODCALLTYPE *SetMasterVolume )( 769 ISimpleAudioVolume * This, 770 /* [in] */ 771 __in float fLevel, 772 /* [unique][in] */ LPCGUID EventContext); 773 774 HRESULT ( STDMETHODCALLTYPE *GetMasterVolume )( 775 ISimpleAudioVolume * This, 776 /* [out] */ 777 __out float *pfLevel); 778 779 HRESULT ( STDMETHODCALLTYPE *SetMute )( 780 ISimpleAudioVolume * This, 781 /* [in] */ 782 __in const BOOL bMute, 783 /* [unique][in] */ LPCGUID EventContext); 784 785 HRESULT ( STDMETHODCALLTYPE *GetMute )( 786 ISimpleAudioVolume * This, 787 /* [out] */ 788 __out BOOL *pbMute); 789 790 END_INTERFACE 791 } ISimpleAudioVolumeVtbl; 792 793 interface ISimpleAudioVolume 794 { 795 CONST_VTBL struct ISimpleAudioVolumeVtbl *lpVtbl; 796 }; 797 798 799 800 #ifdef COBJMACROS 801 802 803 #define ISimpleAudioVolume_QueryInterface(This,riid,ppvObject) \ 804 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 805 806 #define ISimpleAudioVolume_AddRef(This) \ 807 ( (This)->lpVtbl -> AddRef(This) ) 808 809 #define ISimpleAudioVolume_Release(This) \ 810 ( (This)->lpVtbl -> Release(This) ) 811 812 813 #define ISimpleAudioVolume_SetMasterVolume(This,fLevel,EventContext) \ 814 ( (This)->lpVtbl -> SetMasterVolume(This,fLevel,EventContext) ) 815 816 #define ISimpleAudioVolume_GetMasterVolume(This,pfLevel) \ 817 ( (This)->lpVtbl -> GetMasterVolume(This,pfLevel) ) 818 819 #define ISimpleAudioVolume_SetMute(This,bMute,EventContext) \ 820 ( (This)->lpVtbl -> SetMute(This,bMute,EventContext) ) 821 822 #define ISimpleAudioVolume_GetMute(This,pbMute) \ 823 ( (This)->lpVtbl -> GetMute(This,pbMute) ) 824 825 #endif /* COBJMACROS */ 826 827 828 #endif /* C style interface */ 829 830 831 832 833 #endif /* __ISimpleAudioVolume_INTERFACE_DEFINED__ */ 834 835 836 #ifndef __IAudioStreamVolume_INTERFACE_DEFINED__ 837 #define __IAudioStreamVolume_INTERFACE_DEFINED__ 838 839 /* interface IAudioStreamVolume */ 840 /* [local][unique][uuid][object] */ 841 842 843 EXTERN_C const IID IID_IAudioStreamVolume; 844 845 #if defined(__cplusplus) && !defined(CINTERFACE) 846 847 MIDL_INTERFACE("93014887-242D-4068-8A15-CF5E93B90FE3") 848 IAudioStreamVolume : public IUnknown 849 { 850 public: 851 virtual HRESULT STDMETHODCALLTYPE GetChannelCount( 852 /* [out] */ 853 __out UINT32 *pdwCount) = 0; 854 855 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume( 856 /* [in] */ 857 __in UINT32 dwIndex, 858 /* [in] */ 859 __in const float fLevel) = 0; 860 861 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume( 862 /* [in] */ 863 __in UINT32 dwIndex, 864 /* [out] */ 865 __out float *pfLevel) = 0; 866 867 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes( 868 /* [in] */ 869 __in UINT32 dwCount, 870 /* [size_is][in] */ 871 __in_ecount(dwCount) const float *pfVolumes) = 0; 872 873 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes( 874 /* [in] */ 875 __in UINT32 dwCount, 876 /* [size_is][out] */ 877 __out_ecount(dwCount) float *pfVolumes) = 0; 878 879 }; 880 881 #else /* C style interface */ 882 883 typedef struct IAudioStreamVolumeVtbl 884 { 885 BEGIN_INTERFACE 886 887 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 888 IAudioStreamVolume * This, 889 /* [in] */ REFIID riid, 890 /* [iid_is][out] */ 891 __RPC__deref_out void **ppvObject); 892 893 ULONG ( STDMETHODCALLTYPE *AddRef )( 894 IAudioStreamVolume * This); 895 896 ULONG ( STDMETHODCALLTYPE *Release )( 897 IAudioStreamVolume * This); 898 899 HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 900 IAudioStreamVolume * This, 901 /* [out] */ 902 __out UINT32 *pdwCount); 903 904 HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )( 905 IAudioStreamVolume * This, 906 /* [in] */ 907 __in UINT32 dwIndex, 908 /* [in] */ 909 __in const float fLevel); 910 911 HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )( 912 IAudioStreamVolume * This, 913 /* [in] */ 914 __in UINT32 dwIndex, 915 /* [out] */ 916 __out float *pfLevel); 917 918 HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )( 919 IAudioStreamVolume * This, 920 /* [in] */ 921 __in UINT32 dwCount, 922 /* [size_is][in] */ 923 __in_ecount(dwCount) const float *pfVolumes); 924 925 HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )( 926 IAudioStreamVolume * This, 927 /* [in] */ 928 __in UINT32 dwCount, 929 /* [size_is][out] */ 930 __out_ecount(dwCount) float *pfVolumes); 931 932 END_INTERFACE 933 } IAudioStreamVolumeVtbl; 934 935 interface IAudioStreamVolume 936 { 937 CONST_VTBL struct IAudioStreamVolumeVtbl *lpVtbl; 938 }; 939 940 941 942 #ifdef COBJMACROS 943 944 945 #define IAudioStreamVolume_QueryInterface(This,riid,ppvObject) \ 946 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 947 948 #define IAudioStreamVolume_AddRef(This) \ 949 ( (This)->lpVtbl -> AddRef(This) ) 950 951 #define IAudioStreamVolume_Release(This) \ 952 ( (This)->lpVtbl -> Release(This) ) 953 954 955 #define IAudioStreamVolume_GetChannelCount(This,pdwCount) \ 956 ( (This)->lpVtbl -> GetChannelCount(This,pdwCount) ) 957 958 #define IAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel) \ 959 ( (This)->lpVtbl -> SetChannelVolume(This,dwIndex,fLevel) ) 960 961 #define IAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel) \ 962 ( (This)->lpVtbl -> GetChannelVolume(This,dwIndex,pfLevel) ) 963 964 #define IAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes) \ 965 ( (This)->lpVtbl -> SetAllVolumes(This,dwCount,pfVolumes) ) 966 967 #define IAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes) \ 968 ( (This)->lpVtbl -> GetAllVolumes(This,dwCount,pfVolumes) ) 969 970 #endif /* COBJMACROS */ 971 972 973 #endif /* C style interface */ 974 975 976 977 978 #endif /* __IAudioStreamVolume_INTERFACE_DEFINED__ */ 979 980 981 #ifndef __IChannelAudioVolume_INTERFACE_DEFINED__ 982 #define __IChannelAudioVolume_INTERFACE_DEFINED__ 983 984 /* interface IChannelAudioVolume */ 985 /* [local][unique][uuid][object] */ 986 987 988 EXTERN_C const IID IID_IChannelAudioVolume; 989 990 #if defined(__cplusplus) && !defined(CINTERFACE) 991 992 MIDL_INTERFACE("1C158861-B533-4B30-B1CF-E853E51C59B8") 993 IChannelAudioVolume : public IUnknown 994 { 995 public: 996 virtual HRESULT STDMETHODCALLTYPE GetChannelCount( 997 /* [out] */ 998 __out UINT32 *pdwCount) = 0; 999 1000 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume( 1001 /* [in] */ 1002 __in UINT32 dwIndex, 1003 /* [in] */ 1004 __in const float fLevel, 1005 /* [unique][in] */ LPCGUID EventContext) = 0; 1006 1007 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume( 1008 /* [in] */ 1009 __in UINT32 dwIndex, 1010 /* [out] */ 1011 __out float *pfLevel) = 0; 1012 1013 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes( 1014 /* [in] */ 1015 __in UINT32 dwCount, 1016 /* [size_is][in] */ 1017 __in_ecount(dwCount) const float *pfVolumes, 1018 /* [unique][in] */ LPCGUID EventContext) = 0; 1019 1020 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes( 1021 /* [in] */ 1022 __in UINT32 dwCount, 1023 /* [size_is][out] */ 1024 __out_ecount(dwCount) float *pfVolumes) = 0; 1025 1026 }; 1027 1028 #else /* C style interface */ 1029 1030 typedef struct IChannelAudioVolumeVtbl 1031 { 1032 BEGIN_INTERFACE 1033 1034 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 1035 IChannelAudioVolume * This, 1036 /* [in] */ REFIID riid, 1037 /* [iid_is][out] */ 1038 __RPC__deref_out void **ppvObject); 1039 1040 ULONG ( STDMETHODCALLTYPE *AddRef )( 1041 IChannelAudioVolume * This); 1042 1043 ULONG ( STDMETHODCALLTYPE *Release )( 1044 IChannelAudioVolume * This); 1045 1046 HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 1047 IChannelAudioVolume * This, 1048 /* [out] */ 1049 __out UINT32 *pdwCount); 1050 1051 HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )( 1052 IChannelAudioVolume * This, 1053 /* [in] */ 1054 __in UINT32 dwIndex, 1055 /* [in] */ 1056 __in const float fLevel, 1057 /* [unique][in] */ LPCGUID EventContext); 1058 1059 HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )( 1060 IChannelAudioVolume * This, 1061 /* [in] */ 1062 __in UINT32 dwIndex, 1063 /* [out] */ 1064 __out float *pfLevel); 1065 1066 HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )( 1067 IChannelAudioVolume * This, 1068 /* [in] */ 1069 __in UINT32 dwCount, 1070 /* [size_is][in] */ 1071 __in_ecount(dwCount) const float *pfVolumes, 1072 /* [unique][in] */ LPCGUID EventContext); 1073 1074 HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )( 1075 IChannelAudioVolume * This, 1076 /* [in] */ 1077 __in UINT32 dwCount, 1078 /* [size_is][out] */ 1079 __out_ecount(dwCount) float *pfVolumes); 1080 1081 END_INTERFACE 1082 } IChannelAudioVolumeVtbl; 1083 1084 interface IChannelAudioVolume 1085 { 1086 CONST_VTBL struct IChannelAudioVolumeVtbl *lpVtbl; 1087 }; 1088 1089 1090 1091 #ifdef COBJMACROS 1092 1093 1094 #define IChannelAudioVolume_QueryInterface(This,riid,ppvObject) \ 1095 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 1096 1097 #define IChannelAudioVolume_AddRef(This) \ 1098 ( (This)->lpVtbl -> AddRef(This) ) 1099 1100 #define IChannelAudioVolume_Release(This) \ 1101 ( (This)->lpVtbl -> Release(This) ) 1102 1103 1104 #define IChannelAudioVolume_GetChannelCount(This,pdwCount) \ 1105 ( (This)->lpVtbl -> GetChannelCount(This,pdwCount) ) 1106 1107 #define IChannelAudioVolume_SetChannelVolume(This,dwIndex,fLevel,EventContext) \ 1108 ( (This)->lpVtbl -> SetChannelVolume(This,dwIndex,fLevel,EventContext) ) 1109 1110 #define IChannelAudioVolume_GetChannelVolume(This,dwIndex,pfLevel) \ 1111 ( (This)->lpVtbl -> GetChannelVolume(This,dwIndex,pfLevel) ) 1112 1113 #define IChannelAudioVolume_SetAllVolumes(This,dwCount,pfVolumes,EventContext) \ 1114 ( (This)->lpVtbl -> SetAllVolumes(This,dwCount,pfVolumes,EventContext) ) 1115 1116 #define IChannelAudioVolume_GetAllVolumes(This,dwCount,pfVolumes) \ 1117 ( (This)->lpVtbl -> GetAllVolumes(This,dwCount,pfVolumes) ) 1118 1119 #endif /* COBJMACROS */ 1120 1121 1122 #endif /* C style interface */ 1123 1124 1125 1126 1127 #endif /* __IChannelAudioVolume_INTERFACE_DEFINED__ */ 1128 1129 1130 /* interface __MIDL_itf_audioclient_0000_0007 */ 1131 /* [local] */ 1132 1133 #define AUDCLNT_ERR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_AUDCLNT, n) 1134 #define AUDCLNT_SUCCESS(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_AUDCLNT, n) 1135 #define AUDCLNT_E_NOT_INITIALIZED AUDCLNT_ERR(0x001) 1136 #define AUDCLNT_E_ALREADY_INITIALIZED AUDCLNT_ERR(0x002) 1137 #define AUDCLNT_E_WRONG_ENDPOINT_TYPE AUDCLNT_ERR(0x003) 1138 #define AUDCLNT_E_DEVICE_INVALIDATED AUDCLNT_ERR(0x004) 1139 #define AUDCLNT_E_NOT_STOPPED AUDCLNT_ERR(0x005) 1140 #define AUDCLNT_E_BUFFER_TOO_LARGE AUDCLNT_ERR(0x006) 1141 #define AUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(0x007) 1142 #define AUDCLNT_E_UNSUPPORTED_FORMAT AUDCLNT_ERR(0x008) 1143 #define AUDCLNT_E_INVALID_SIZE AUDCLNT_ERR(0x009) 1144 #define AUDCLNT_E_DEVICE_IN_USE AUDCLNT_ERR(0x00a) 1145 #define AUDCLNT_E_BUFFER_OPERATION_PENDING AUDCLNT_ERR(0x00b) 1146 #define AUDCLNT_E_THREAD_NOT_REGISTERED AUDCLNT_ERR(0x00c) 1147 #define AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED AUDCLNT_ERR(0x00e) 1148 #define AUDCLNT_E_ENDPOINT_CREATE_FAILED AUDCLNT_ERR(0x00f) 1149 #define AUDCLNT_E_SERVICE_NOT_RUNNING AUDCLNT_ERR(0x010) 1150 #define AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED AUDCLNT_ERR(0x011) 1151 #define AUDCLNT_E_EXCLUSIVE_MODE_ONLY AUDCLNT_ERR(0x012) 1152 #define AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL AUDCLNT_ERR(0x013) 1153 #define AUDCLNT_E_EVENTHANDLE_NOT_SET AUDCLNT_ERR(0x014) 1154 #define AUDCLNT_E_INCORRECT_BUFFER_SIZE AUDCLNT_ERR(0x015) 1155 #define AUDCLNT_E_BUFFER_SIZE_ERROR AUDCLNT_ERR(0x016) 1156 #define AUDCLNT_E_CPUUSAGE_EXCEEDED AUDCLNT_ERR(0x017) 1157 #define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x001) 1158 #define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x002) 1159 #define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x003) 1160 1161 1162 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0007_v0_0_c_ifspec; 1163 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0007_v0_0_s_ifspec; 1164 1165 /* Additional Prototypes for ALL interfaces */ 1166 1167 /* end of Additional Prototypes */ 1168 1169 #ifdef __cplusplus 1170 } 1171 #endif 1172 1173 #endif 1174 1175 1176 1177