PortAudio
2.0
|
00001 00002 00003 /* this ALWAYS GENERATED file contains the definitions for the interfaces */ 00004 00005 00006 /* File created by MIDL compiler version 7.00.0499 */ 00007 /* Compiler settings for audioclient.idl: 00008 Oicf, W1, Zp8, env=Win32 (32b run) 00009 protocol : dce , ms_ext, c_ext, robust 00010 error checks: allocation ref bounds_check enum stub_data 00011 VC __declspec() decoration level: 00012 __declspec(uuid()), __declspec(selectany), __declspec(novtable) 00013 DECLSPEC_UUID(), MIDL_INTERFACE() 00014 */ 00015 //@@MIDL_FILE_HEADING( ) 00016 00017 #pragma warning( disable: 4049 ) /* more than 64k source lines */ 00018 00019 00020 /* verify that the <rpcndr.h> version is high enough to compile this file*/ 00021 #ifndef __REQUIRED_RPCNDR_H_VERSION__ 00022 #define __REQUIRED_RPCNDR_H_VERSION__ 500 00023 #endif 00024 00025 /* verify that the <rpcsal.h> version is high enough to compile this file*/ 00026 #ifndef __REQUIRED_RPCSAL_H_VERSION__ 00027 #define __REQUIRED_RPCSAL_H_VERSION__ 100 00028 #endif 00029 00030 #include "rpc.h" 00031 #include "rpcndr.h" 00032 00033 #ifndef __RPCNDR_H_VERSION__ 00034 #error this stub requires an updated version of <rpcndr.h> 00035 #endif // __RPCNDR_H_VERSION__ 00036 00037 #ifndef COM_NO_WINDOWS_H 00038 #include "windows.h" 00039 #include "ole2.h" 00040 #endif /*COM_NO_WINDOWS_H*/ 00041 00042 #ifndef __audioclient_h__ 00043 #define __audioclient_h__ 00044 00045 #if defined(_MSC_VER) && (_MSC_VER >= 1020) 00046 #pragma once 00047 #endif 00048 00049 /* Forward Declarations */ 00050 00051 #ifndef __IAudioClient_FWD_DEFINED__ 00052 #define __IAudioClient_FWD_DEFINED__ 00053 typedef interface IAudioClient IAudioClient; 00054 #endif /* __IAudioClient_FWD_DEFINED__ */ 00055 00056 00057 #ifndef __IAudioRenderClient_FWD_DEFINED__ 00058 #define __IAudioRenderClient_FWD_DEFINED__ 00059 typedef interface IAudioRenderClient IAudioRenderClient; 00060 #endif /* __IAudioRenderClient_FWD_DEFINED__ */ 00061 00062 00063 #ifndef __IAudioCaptureClient_FWD_DEFINED__ 00064 #define __IAudioCaptureClient_FWD_DEFINED__ 00065 typedef interface IAudioCaptureClient IAudioCaptureClient; 00066 #endif /* __IAudioCaptureClient_FWD_DEFINED__ */ 00067 00068 00069 #ifndef __IAudioClock_FWD_DEFINED__ 00070 #define __IAudioClock_FWD_DEFINED__ 00071 typedef interface IAudioClock IAudioClock; 00072 #endif /* __IAudioClock_FWD_DEFINED__ */ 00073 00074 00075 #ifndef __ISimpleAudioVolume_FWD_DEFINED__ 00076 #define __ISimpleAudioVolume_FWD_DEFINED__ 00077 typedef interface ISimpleAudioVolume ISimpleAudioVolume; 00078 #endif /* __ISimpleAudioVolume_FWD_DEFINED__ */ 00079 00080 00081 #ifndef __IAudioStreamVolume_FWD_DEFINED__ 00082 #define __IAudioStreamVolume_FWD_DEFINED__ 00083 typedef interface IAudioStreamVolume IAudioStreamVolume; 00084 #endif /* __IAudioStreamVolume_FWD_DEFINED__ */ 00085 00086 00087 #ifndef __IChannelAudioVolume_FWD_DEFINED__ 00088 #define __IChannelAudioVolume_FWD_DEFINED__ 00089 typedef interface IChannelAudioVolume IChannelAudioVolume; 00090 #endif /* __IChannelAudioVolume_FWD_DEFINED__ */ 00091 00092 00093 /* header files for imported files */ 00094 #include "wtypes.h" 00095 #include "unknwn.h" 00096 #include "AudioSessionTypes.h" 00097 00098 #ifdef __cplusplus 00099 extern "C"{ 00100 #endif 00101 00102 00103 /* interface __MIDL_itf_audioclient_0000_0000 */ 00104 /* [local] */ 00105 00106 #if 0 00107 typedef /* [hidden][restricted] */ struct WAVEFORMATEX 00108 { 00109 WORD wFormatTag; 00110 WORD nChannels; 00111 DWORD nSamplesPerSec; 00112 DWORD nAvgBytesPerSec; 00113 WORD nBlockAlign; 00114 WORD wBitsPerSample; 00115 WORD cbSize; 00116 } WAVEFORMATEX; 00117 00118 #else 00119 #include <mmreg.h> 00120 #endif 00121 #if 0 00122 typedef /* [hidden][restricted] */ LONGLONG REFERENCE_TIME; 00123 00124 #else 00125 #define _IKsControl_ 00126 #include <ks.h> 00127 #include <ksmedia.h> 00128 #endif 00129 00130 enum _AUDCLNT_BUFFERFLAGS 00131 { AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY = 0x1, 00132 AUDCLNT_BUFFERFLAGS_SILENT = 0x2, 00133 AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4 00134 } ; 00135 00136 00137 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0000_v0_0_c_ifspec; 00138 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0000_v0_0_s_ifspec; 00139 00140 #ifndef __IAudioClient_INTERFACE_DEFINED__ 00141 #define __IAudioClient_INTERFACE_DEFINED__ 00142 00143 /* interface IAudioClient */ 00144 /* [local][unique][uuid][object] */ 00145 00146 00147 EXTERN_C const IID IID_IAudioClient; 00148 00149 #if defined(__cplusplus) && !defined(CINTERFACE) 00150 00151 MIDL_INTERFACE("1CB9AD4C-DBFA-4c32-B178-C2F568A703B2") 00152 IAudioClient : public IUnknown 00153 { 00154 public: 00155 virtual HRESULT STDMETHODCALLTYPE Initialize( 00156 /* [in] */ 00157 __in AUDCLNT_SHAREMODE ShareMode, 00158 /* [in] */ 00159 __in DWORD StreamFlags, 00160 /* [in] */ 00161 __in REFERENCE_TIME hnsBufferDuration, 00162 /* [in] */ 00163 __in REFERENCE_TIME hnsPeriodicity, 00164 /* [in] */ 00165 __in const WAVEFORMATEX *pFormat, 00166 /* [in] */ 00167 __in_opt LPCGUID AudioSessionGuid) = 0; 00168 00169 virtual HRESULT STDMETHODCALLTYPE GetBufferSize( 00170 /* [out] */ 00171 __out UINT32 *pNumBufferFrames) = 0; 00172 00173 virtual HRESULT STDMETHODCALLTYPE GetStreamLatency( 00174 /* [out] */ 00175 __out REFERENCE_TIME *phnsLatency) = 0; 00176 00177 virtual HRESULT STDMETHODCALLTYPE GetCurrentPadding( 00178 /* [out] */ 00179 __out UINT32 *pNumPaddingFrames) = 0; 00180 00181 virtual HRESULT STDMETHODCALLTYPE IsFormatSupported( 00182 /* [in] */ 00183 __in AUDCLNT_SHAREMODE ShareMode, 00184 /* [in] */ 00185 __in const WAVEFORMATEX *pFormat, 00186 /* [unique][out] */ 00187 __out_opt WAVEFORMATEX **ppClosestMatch) = 0; 00188 00189 virtual HRESULT STDMETHODCALLTYPE GetMixFormat( 00190 /* [out] */ 00191 __out WAVEFORMATEX **ppDeviceFormat) = 0; 00192 00193 virtual HRESULT STDMETHODCALLTYPE GetDevicePeriod( 00194 /* [out] */ 00195 __out_opt REFERENCE_TIME *phnsDefaultDevicePeriod, 00196 /* [out] */ 00197 __out_opt REFERENCE_TIME *phnsMinimumDevicePeriod) = 0; 00198 00199 virtual HRESULT STDMETHODCALLTYPE Start( void) = 0; 00200 00201 virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0; 00202 00203 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0; 00204 00205 virtual HRESULT STDMETHODCALLTYPE SetEventHandle( 00206 /* [in] */ HANDLE eventHandle) = 0; 00207 00208 virtual HRESULT STDMETHODCALLTYPE GetService( 00209 /* [in] */ 00210 __in REFIID riid, 00211 /* [iid_is][out] */ 00212 __out void **ppv) = 0; 00213 00214 }; 00215 00216 #else /* C style interface */ 00217 00218 typedef struct IAudioClientVtbl 00219 { 00220 BEGIN_INTERFACE 00221 00222 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00223 IAudioClient * This, 00224 /* [in] */ REFIID riid, 00225 /* [iid_is][out] */ 00226 __RPC__deref_out void **ppvObject); 00227 00228 ULONG ( STDMETHODCALLTYPE *AddRef )( 00229 IAudioClient * This); 00230 00231 ULONG ( STDMETHODCALLTYPE *Release )( 00232 IAudioClient * This); 00233 00234 HRESULT ( STDMETHODCALLTYPE *Initialize )( 00235 IAudioClient * This, 00236 /* [in] */ 00237 __in AUDCLNT_SHAREMODE ShareMode, 00238 /* [in] */ 00239 __in DWORD StreamFlags, 00240 /* [in] */ 00241 __in REFERENCE_TIME hnsBufferDuration, 00242 /* [in] */ 00243 __in REFERENCE_TIME hnsPeriodicity, 00244 /* [in] */ 00245 __in const WAVEFORMATEX *pFormat, 00246 /* [in] */ 00247 __in_opt LPCGUID AudioSessionGuid); 00248 00249 HRESULT ( STDMETHODCALLTYPE *GetBufferSize )( 00250 IAudioClient * This, 00251 /* [out] */ 00252 __out UINT32 *pNumBufferFrames); 00253 00254 HRESULT ( STDMETHODCALLTYPE *GetStreamLatency )( 00255 IAudioClient * This, 00256 /* [out] */ 00257 __out REFERENCE_TIME *phnsLatency); 00258 00259 HRESULT ( STDMETHODCALLTYPE *GetCurrentPadding )( 00260 IAudioClient * This, 00261 /* [out] */ 00262 __out UINT32 *pNumPaddingFrames); 00263 00264 HRESULT ( STDMETHODCALLTYPE *IsFormatSupported )( 00265 IAudioClient * This, 00266 /* [in] */ 00267 __in AUDCLNT_SHAREMODE ShareMode, 00268 /* [in] */ 00269 __in const WAVEFORMATEX *pFormat, 00270 /* [unique][out] */ 00271 __out_opt WAVEFORMATEX **ppClosestMatch); 00272 00273 HRESULT ( STDMETHODCALLTYPE *GetMixFormat )( 00274 IAudioClient * This, 00275 /* [out] */ 00276 __out WAVEFORMATEX **ppDeviceFormat); 00277 00278 HRESULT ( STDMETHODCALLTYPE *GetDevicePeriod )( 00279 IAudioClient * This, 00280 /* [out] */ 00281 __out_opt REFERENCE_TIME *phnsDefaultDevicePeriod, 00282 /* [out] */ 00283 __out_opt REFERENCE_TIME *phnsMinimumDevicePeriod); 00284 00285 HRESULT ( STDMETHODCALLTYPE *Start )( 00286 IAudioClient * This); 00287 00288 HRESULT ( STDMETHODCALLTYPE *Stop )( 00289 IAudioClient * This); 00290 00291 HRESULT ( STDMETHODCALLTYPE *Reset )( 00292 IAudioClient * This); 00293 00294 HRESULT ( STDMETHODCALLTYPE *SetEventHandle )( 00295 IAudioClient * This, 00296 /* [in] */ HANDLE eventHandle); 00297 00298 HRESULT ( STDMETHODCALLTYPE *GetService )( 00299 IAudioClient * This, 00300 /* [in] */ 00301 __in REFIID riid, 00302 /* [iid_is][out] */ 00303 __out void **ppv); 00304 00305 END_INTERFACE 00306 } IAudioClientVtbl; 00307 00308 interface IAudioClient 00309 { 00310 CONST_VTBL struct IAudioClientVtbl *lpVtbl; 00311 }; 00312 00313 00314 00315 #ifdef COBJMACROS 00316 00317 00318 #define IAudioClient_QueryInterface(This,riid,ppvObject) \ 00319 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00320 00321 #define IAudioClient_AddRef(This) \ 00322 ( (This)->lpVtbl -> AddRef(This) ) 00323 00324 #define IAudioClient_Release(This) \ 00325 ( (This)->lpVtbl -> Release(This) ) 00326 00327 00328 #define IAudioClient_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) \ 00329 ( (This)->lpVtbl -> Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) ) 00330 00331 #define IAudioClient_GetBufferSize(This,pNumBufferFrames) \ 00332 ( (This)->lpVtbl -> GetBufferSize(This,pNumBufferFrames) ) 00333 00334 #define IAudioClient_GetStreamLatency(This,phnsLatency) \ 00335 ( (This)->lpVtbl -> GetStreamLatency(This,phnsLatency) ) 00336 00337 #define IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) \ 00338 ( (This)->lpVtbl -> GetCurrentPadding(This,pNumPaddingFrames) ) 00339 00340 #define IAudioClient_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) \ 00341 ( (This)->lpVtbl -> IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) ) 00342 00343 #define IAudioClient_GetMixFormat(This,ppDeviceFormat) \ 00344 ( (This)->lpVtbl -> GetMixFormat(This,ppDeviceFormat) ) 00345 00346 #define IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) \ 00347 ( (This)->lpVtbl -> GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) ) 00348 00349 #define IAudioClient_Start(This) \ 00350 ( (This)->lpVtbl -> Start(This) ) 00351 00352 #define IAudioClient_Stop(This) \ 00353 ( (This)->lpVtbl -> Stop(This) ) 00354 00355 #define IAudioClient_Reset(This) \ 00356 ( (This)->lpVtbl -> Reset(This) ) 00357 00358 #define IAudioClient_SetEventHandle(This,eventHandle) \ 00359 ( (This)->lpVtbl -> SetEventHandle(This,eventHandle) ) 00360 00361 #define IAudioClient_GetService(This,riid,ppv) \ 00362 ( (This)->lpVtbl -> GetService(This,riid,ppv) ) 00363 00364 #endif /* COBJMACROS */ 00365 00366 00367 #endif /* C style interface */ 00368 00369 00370 00371 00372 #endif /* __IAudioClient_INTERFACE_DEFINED__ */ 00373 00374 00375 #ifndef __IAudioRenderClient_INTERFACE_DEFINED__ 00376 #define __IAudioRenderClient_INTERFACE_DEFINED__ 00377 00378 /* interface IAudioRenderClient */ 00379 /* [local][unique][helpstring][uuid][object] */ 00380 00381 00382 EXTERN_C const IID IID_IAudioRenderClient; 00383 00384 #if defined(__cplusplus) && !defined(CINTERFACE) 00385 00386 MIDL_INTERFACE("F294ACFC-3146-4483-A7BF-ADDCA7C260E2") 00387 IAudioRenderClient : public IUnknown 00388 { 00389 public: 00390 virtual HRESULT STDMETHODCALLTYPE GetBuffer( 00391 /* [in] */ 00392 __in UINT32 NumFramesRequested, 00393 /* [out] */ 00394 __out BYTE **ppData) = 0; 00395 00396 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( 00397 /* [in] */ 00398 __in UINT32 NumFramesWritten, 00399 /* [in] */ 00400 __in DWORD dwFlags) = 0; 00401 00402 }; 00403 00404 #else /* C style interface */ 00405 00406 typedef struct IAudioRenderClientVtbl 00407 { 00408 BEGIN_INTERFACE 00409 00410 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00411 IAudioRenderClient * This, 00412 /* [in] */ REFIID riid, 00413 /* [iid_is][out] */ 00414 __RPC__deref_out void **ppvObject); 00415 00416 ULONG ( STDMETHODCALLTYPE *AddRef )( 00417 IAudioRenderClient * This); 00418 00419 ULONG ( STDMETHODCALLTYPE *Release )( 00420 IAudioRenderClient * This); 00421 00422 HRESULT ( STDMETHODCALLTYPE *GetBuffer )( 00423 IAudioRenderClient * This, 00424 /* [in] */ 00425 __in UINT32 NumFramesRequested, 00426 /* [out] */ 00427 __out BYTE **ppData); 00428 00429 HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( 00430 IAudioRenderClient * This, 00431 /* [in] */ 00432 __in UINT32 NumFramesWritten, 00433 /* [in] */ 00434 __in DWORD dwFlags); 00435 00436 END_INTERFACE 00437 } IAudioRenderClientVtbl; 00438 00439 interface IAudioRenderClient 00440 { 00441 CONST_VTBL struct IAudioRenderClientVtbl *lpVtbl; 00442 }; 00443 00444 00445 00446 #ifdef COBJMACROS 00447 00448 00449 #define IAudioRenderClient_QueryInterface(This,riid,ppvObject) \ 00450 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00451 00452 #define IAudioRenderClient_AddRef(This) \ 00453 ( (This)->lpVtbl -> AddRef(This) ) 00454 00455 #define IAudioRenderClient_Release(This) \ 00456 ( (This)->lpVtbl -> Release(This) ) 00457 00458 00459 #define IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) \ 00460 ( (This)->lpVtbl -> GetBuffer(This,NumFramesRequested,ppData) ) 00461 00462 #define IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) \ 00463 ( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesWritten,dwFlags) ) 00464 00465 #endif /* COBJMACROS */ 00466 00467 00468 #endif /* C style interface */ 00469 00470 00471 00472 00473 #endif /* __IAudioRenderClient_INTERFACE_DEFINED__ */ 00474 00475 00476 #ifndef __IAudioCaptureClient_INTERFACE_DEFINED__ 00477 #define __IAudioCaptureClient_INTERFACE_DEFINED__ 00478 00479 /* interface IAudioCaptureClient */ 00480 /* [local][unique][helpstring][uuid][object] */ 00481 00482 00483 EXTERN_C const IID IID_IAudioCaptureClient; 00484 00485 #if defined(__cplusplus) && !defined(CINTERFACE) 00486 00487 MIDL_INTERFACE("C8ADBD64-E71E-48a0-A4DE-185C395CD317") 00488 IAudioCaptureClient : public IUnknown 00489 { 00490 public: 00491 virtual HRESULT STDMETHODCALLTYPE GetBuffer( 00492 /* [out] */ 00493 __out BYTE **ppData, 00494 /* [out] */ 00495 __out UINT32 *pNumFramesToRead, 00496 /* [out] */ 00497 __out DWORD *pdwFlags, 00498 /* [unique][out] */ 00499 __out_opt UINT64 *pu64DevicePosition, 00500 /* [unique][out] */ 00501 __out_opt UINT64 *pu64QPCPosition) = 0; 00502 00503 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( 00504 /* [in] */ 00505 __in UINT32 NumFramesRead) = 0; 00506 00507 virtual HRESULT STDMETHODCALLTYPE GetNextPacketSize( 00508 /* [out] */ 00509 __out UINT32 *pNumFramesInNextPacket) = 0; 00510 00511 }; 00512 00513 #else /* C style interface */ 00514 00515 typedef struct IAudioCaptureClientVtbl 00516 { 00517 BEGIN_INTERFACE 00518 00519 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00520 IAudioCaptureClient * This, 00521 /* [in] */ REFIID riid, 00522 /* [iid_is][out] */ 00523 __RPC__deref_out void **ppvObject); 00524 00525 ULONG ( STDMETHODCALLTYPE *AddRef )( 00526 IAudioCaptureClient * This); 00527 00528 ULONG ( STDMETHODCALLTYPE *Release )( 00529 IAudioCaptureClient * This); 00530 00531 HRESULT ( STDMETHODCALLTYPE *GetBuffer )( 00532 IAudioCaptureClient * This, 00533 /* [out] */ 00534 __out BYTE **ppData, 00535 /* [out] */ 00536 __out UINT32 *pNumFramesToRead, 00537 /* [out] */ 00538 __out DWORD *pdwFlags, 00539 /* [unique][out] */ 00540 __out_opt UINT64 *pu64DevicePosition, 00541 /* [unique][out] */ 00542 __out_opt UINT64 *pu64QPCPosition); 00543 00544 HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( 00545 IAudioCaptureClient * This, 00546 /* [in] */ 00547 __in UINT32 NumFramesRead); 00548 00549 HRESULT ( STDMETHODCALLTYPE *GetNextPacketSize )( 00550 IAudioCaptureClient * This, 00551 /* [out] */ 00552 __out UINT32 *pNumFramesInNextPacket); 00553 00554 END_INTERFACE 00555 } IAudioCaptureClientVtbl; 00556 00557 interface IAudioCaptureClient 00558 { 00559 CONST_VTBL struct IAudioCaptureClientVtbl *lpVtbl; 00560 }; 00561 00562 00563 00564 #ifdef COBJMACROS 00565 00566 00567 #define IAudioCaptureClient_QueryInterface(This,riid,ppvObject) \ 00568 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00569 00570 #define IAudioCaptureClient_AddRef(This) \ 00571 ( (This)->lpVtbl -> AddRef(This) ) 00572 00573 #define IAudioCaptureClient_Release(This) \ 00574 ( (This)->lpVtbl -> Release(This) ) 00575 00576 00577 #define IAudioCaptureClient_GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) \ 00578 ( (This)->lpVtbl -> GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) ) 00579 00580 #define IAudioCaptureClient_ReleaseBuffer(This,NumFramesRead) \ 00581 ( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesRead) ) 00582 00583 #define IAudioCaptureClient_GetNextPacketSize(This,pNumFramesInNextPacket) \ 00584 ( (This)->lpVtbl -> GetNextPacketSize(This,pNumFramesInNextPacket) ) 00585 00586 #endif /* COBJMACROS */ 00587 00588 00589 #endif /* C style interface */ 00590 00591 00592 00593 00594 #endif /* __IAudioCaptureClient_INTERFACE_DEFINED__ */ 00595 00596 00597 /* interface __MIDL_itf_audioclient_0000_0003 */ 00598 /* [local] */ 00599 00600 #define AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ 0x00000001 00601 00602 00603 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0003_v0_0_c_ifspec; 00604 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0003_v0_0_s_ifspec; 00605 00606 #ifndef __IAudioClock_INTERFACE_DEFINED__ 00607 #define __IAudioClock_INTERFACE_DEFINED__ 00608 00609 /* interface IAudioClock */ 00610 /* [local][unique][uuid][object] */ 00611 00612 00613 EXTERN_C const IID IID_IAudioClock; 00614 00615 #if defined(__cplusplus) && !defined(CINTERFACE) 00616 00617 MIDL_INTERFACE("CD63314F-3FBA-4a1b-812C-EF96358728E7") 00618 IAudioClock : public IUnknown 00619 { 00620 public: 00621 virtual HRESULT STDMETHODCALLTYPE GetFrequency( 00622 /* [out] */ 00623 __out UINT64 *pu64Frequency) = 0; 00624 00625 virtual HRESULT STDMETHODCALLTYPE GetPosition( 00626 /* [out] */ 00627 __out UINT64 *pu64Position, 00628 /* [unique][out] */ 00629 __out_opt UINT64 *pu64QPCPosition) = 0; 00630 00631 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics( 00632 /* [out] */ 00633 __out DWORD *pdwCharacteristics) = 0; 00634 00635 }; 00636 00637 #else /* C style interface */ 00638 00639 typedef struct IAudioClockVtbl 00640 { 00641 BEGIN_INTERFACE 00642 00643 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00644 IAudioClock * This, 00645 /* [in] */ REFIID riid, 00646 /* [iid_is][out] */ 00647 __RPC__deref_out void **ppvObject); 00648 00649 ULONG ( STDMETHODCALLTYPE *AddRef )( 00650 IAudioClock * This); 00651 00652 ULONG ( STDMETHODCALLTYPE *Release )( 00653 IAudioClock * This); 00654 00655 HRESULT ( STDMETHODCALLTYPE *GetFrequency )( 00656 IAudioClock * This, 00657 /* [out] */ 00658 __out UINT64 *pu64Frequency); 00659 00660 HRESULT ( STDMETHODCALLTYPE *GetPosition )( 00661 IAudioClock * This, 00662 /* [out] */ 00663 __out UINT64 *pu64Position, 00664 /* [unique][out] */ 00665 __out_opt UINT64 *pu64QPCPosition); 00666 00667 HRESULT ( STDMETHODCALLTYPE *GetCharacteristics )( 00668 IAudioClock * This, 00669 /* [out] */ 00670 __out DWORD *pdwCharacteristics); 00671 00672 END_INTERFACE 00673 } IAudioClockVtbl; 00674 00675 interface IAudioClock 00676 { 00677 CONST_VTBL struct IAudioClockVtbl *lpVtbl; 00678 }; 00679 00680 00681 00682 #ifdef COBJMACROS 00683 00684 00685 #define IAudioClock_QueryInterface(This,riid,ppvObject) \ 00686 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00687 00688 #define IAudioClock_AddRef(This) \ 00689 ( (This)->lpVtbl -> AddRef(This) ) 00690 00691 #define IAudioClock_Release(This) \ 00692 ( (This)->lpVtbl -> Release(This) ) 00693 00694 00695 #define IAudioClock_GetFrequency(This,pu64Frequency) \ 00696 ( (This)->lpVtbl -> GetFrequency(This,pu64Frequency) ) 00697 00698 #define IAudioClock_GetPosition(This,pu64Position,pu64QPCPosition) \ 00699 ( (This)->lpVtbl -> GetPosition(This,pu64Position,pu64QPCPosition) ) 00700 00701 #define IAudioClock_GetCharacteristics(This,pdwCharacteristics) \ 00702 ( (This)->lpVtbl -> GetCharacteristics(This,pdwCharacteristics) ) 00703 00704 #endif /* COBJMACROS */ 00705 00706 00707 #endif /* C style interface */ 00708 00709 00710 00711 00712 #endif /* __IAudioClock_INTERFACE_DEFINED__ */ 00713 00714 00715 #ifndef __ISimpleAudioVolume_INTERFACE_DEFINED__ 00716 #define __ISimpleAudioVolume_INTERFACE_DEFINED__ 00717 00718 /* interface ISimpleAudioVolume */ 00719 /* [local][unique][uuid][object] */ 00720 00721 00722 EXTERN_C const IID IID_ISimpleAudioVolume; 00723 00724 #if defined(__cplusplus) && !defined(CINTERFACE) 00725 00726 MIDL_INTERFACE("87CE5498-68D6-44E5-9215-6DA47EF883D8") 00727 ISimpleAudioVolume : public IUnknown 00728 { 00729 public: 00730 virtual HRESULT STDMETHODCALLTYPE SetMasterVolume( 00731 /* [in] */ 00732 __in float fLevel, 00733 /* [unique][in] */ LPCGUID EventContext) = 0; 00734 00735 virtual HRESULT STDMETHODCALLTYPE GetMasterVolume( 00736 /* [out] */ 00737 __out float *pfLevel) = 0; 00738 00739 virtual HRESULT STDMETHODCALLTYPE SetMute( 00740 /* [in] */ 00741 __in const BOOL bMute, 00742 /* [unique][in] */ LPCGUID EventContext) = 0; 00743 00744 virtual HRESULT STDMETHODCALLTYPE GetMute( 00745 /* [out] */ 00746 __out BOOL *pbMute) = 0; 00747 00748 }; 00749 00750 #else /* C style interface */ 00751 00752 typedef struct ISimpleAudioVolumeVtbl 00753 { 00754 BEGIN_INTERFACE 00755 00756 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00757 ISimpleAudioVolume * This, 00758 /* [in] */ REFIID riid, 00759 /* [iid_is][out] */ 00760 __RPC__deref_out void **ppvObject); 00761 00762 ULONG ( STDMETHODCALLTYPE *AddRef )( 00763 ISimpleAudioVolume * This); 00764 00765 ULONG ( STDMETHODCALLTYPE *Release )( 00766 ISimpleAudioVolume * This); 00767 00768 HRESULT ( STDMETHODCALLTYPE *SetMasterVolume )( 00769 ISimpleAudioVolume * This, 00770 /* [in] */ 00771 __in float fLevel, 00772 /* [unique][in] */ LPCGUID EventContext); 00773 00774 HRESULT ( STDMETHODCALLTYPE *GetMasterVolume )( 00775 ISimpleAudioVolume * This, 00776 /* [out] */ 00777 __out float *pfLevel); 00778 00779 HRESULT ( STDMETHODCALLTYPE *SetMute )( 00780 ISimpleAudioVolume * This, 00781 /* [in] */ 00782 __in const BOOL bMute, 00783 /* [unique][in] */ LPCGUID EventContext); 00784 00785 HRESULT ( STDMETHODCALLTYPE *GetMute )( 00786 ISimpleAudioVolume * This, 00787 /* [out] */ 00788 __out BOOL *pbMute); 00789 00790 END_INTERFACE 00791 } ISimpleAudioVolumeVtbl; 00792 00793 interface ISimpleAudioVolume 00794 { 00795 CONST_VTBL struct ISimpleAudioVolumeVtbl *lpVtbl; 00796 }; 00797 00798 00799 00800 #ifdef COBJMACROS 00801 00802 00803 #define ISimpleAudioVolume_QueryInterface(This,riid,ppvObject) \ 00804 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00805 00806 #define ISimpleAudioVolume_AddRef(This) \ 00807 ( (This)->lpVtbl -> AddRef(This) ) 00808 00809 #define ISimpleAudioVolume_Release(This) \ 00810 ( (This)->lpVtbl -> Release(This) ) 00811 00812 00813 #define ISimpleAudioVolume_SetMasterVolume(This,fLevel,EventContext) \ 00814 ( (This)->lpVtbl -> SetMasterVolume(This,fLevel,EventContext) ) 00815 00816 #define ISimpleAudioVolume_GetMasterVolume(This,pfLevel) \ 00817 ( (This)->lpVtbl -> GetMasterVolume(This,pfLevel) ) 00818 00819 #define ISimpleAudioVolume_SetMute(This,bMute,EventContext) \ 00820 ( (This)->lpVtbl -> SetMute(This,bMute,EventContext) ) 00821 00822 #define ISimpleAudioVolume_GetMute(This,pbMute) \ 00823 ( (This)->lpVtbl -> GetMute(This,pbMute) ) 00824 00825 #endif /* COBJMACROS */ 00826 00827 00828 #endif /* C style interface */ 00829 00830 00831 00832 00833 #endif /* __ISimpleAudioVolume_INTERFACE_DEFINED__ */ 00834 00835 00836 #ifndef __IAudioStreamVolume_INTERFACE_DEFINED__ 00837 #define __IAudioStreamVolume_INTERFACE_DEFINED__ 00838 00839 /* interface IAudioStreamVolume */ 00840 /* [local][unique][uuid][object] */ 00841 00842 00843 EXTERN_C const IID IID_IAudioStreamVolume; 00844 00845 #if defined(__cplusplus) && !defined(CINTERFACE) 00846 00847 MIDL_INTERFACE("93014887-242D-4068-8A15-CF5E93B90FE3") 00848 IAudioStreamVolume : public IUnknown 00849 { 00850 public: 00851 virtual HRESULT STDMETHODCALLTYPE GetChannelCount( 00852 /* [out] */ 00853 __out UINT32 *pdwCount) = 0; 00854 00855 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume( 00856 /* [in] */ 00857 __in UINT32 dwIndex, 00858 /* [in] */ 00859 __in const float fLevel) = 0; 00860 00861 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume( 00862 /* [in] */ 00863 __in UINT32 dwIndex, 00864 /* [out] */ 00865 __out float *pfLevel) = 0; 00866 00867 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes( 00868 /* [in] */ 00869 __in UINT32 dwCount, 00870 /* [size_is][in] */ 00871 __in_ecount(dwCount) const float *pfVolumes) = 0; 00872 00873 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes( 00874 /* [in] */ 00875 __in UINT32 dwCount, 00876 /* [size_is][out] */ 00877 __out_ecount(dwCount) float *pfVolumes) = 0; 00878 00879 }; 00880 00881 #else /* C style interface */ 00882 00883 typedef struct IAudioStreamVolumeVtbl 00884 { 00885 BEGIN_INTERFACE 00886 00887 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 00888 IAudioStreamVolume * This, 00889 /* [in] */ REFIID riid, 00890 /* [iid_is][out] */ 00891 __RPC__deref_out void **ppvObject); 00892 00893 ULONG ( STDMETHODCALLTYPE *AddRef )( 00894 IAudioStreamVolume * This); 00895 00896 ULONG ( STDMETHODCALLTYPE *Release )( 00897 IAudioStreamVolume * This); 00898 00899 HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 00900 IAudioStreamVolume * This, 00901 /* [out] */ 00902 __out UINT32 *pdwCount); 00903 00904 HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )( 00905 IAudioStreamVolume * This, 00906 /* [in] */ 00907 __in UINT32 dwIndex, 00908 /* [in] */ 00909 __in const float fLevel); 00910 00911 HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )( 00912 IAudioStreamVolume * This, 00913 /* [in] */ 00914 __in UINT32 dwIndex, 00915 /* [out] */ 00916 __out float *pfLevel); 00917 00918 HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )( 00919 IAudioStreamVolume * This, 00920 /* [in] */ 00921 __in UINT32 dwCount, 00922 /* [size_is][in] */ 00923 __in_ecount(dwCount) const float *pfVolumes); 00924 00925 HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )( 00926 IAudioStreamVolume * This, 00927 /* [in] */ 00928 __in UINT32 dwCount, 00929 /* [size_is][out] */ 00930 __out_ecount(dwCount) float *pfVolumes); 00931 00932 END_INTERFACE 00933 } IAudioStreamVolumeVtbl; 00934 00935 interface IAudioStreamVolume 00936 { 00937 CONST_VTBL struct IAudioStreamVolumeVtbl *lpVtbl; 00938 }; 00939 00940 00941 00942 #ifdef COBJMACROS 00943 00944 00945 #define IAudioStreamVolume_QueryInterface(This,riid,ppvObject) \ 00946 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 00947 00948 #define IAudioStreamVolume_AddRef(This) \ 00949 ( (This)->lpVtbl -> AddRef(This) ) 00950 00951 #define IAudioStreamVolume_Release(This) \ 00952 ( (This)->lpVtbl -> Release(This) ) 00953 00954 00955 #define IAudioStreamVolume_GetChannelCount(This,pdwCount) \ 00956 ( (This)->lpVtbl -> GetChannelCount(This,pdwCount) ) 00957 00958 #define IAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel) \ 00959 ( (This)->lpVtbl -> SetChannelVolume(This,dwIndex,fLevel) ) 00960 00961 #define IAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel) \ 00962 ( (This)->lpVtbl -> GetChannelVolume(This,dwIndex,pfLevel) ) 00963 00964 #define IAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes) \ 00965 ( (This)->lpVtbl -> SetAllVolumes(This,dwCount,pfVolumes) ) 00966 00967 #define IAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes) \ 00968 ( (This)->lpVtbl -> GetAllVolumes(This,dwCount,pfVolumes) ) 00969 00970 #endif /* COBJMACROS */ 00971 00972 00973 #endif /* C style interface */ 00974 00975 00976 00977 00978 #endif /* __IAudioStreamVolume_INTERFACE_DEFINED__ */ 00979 00980 00981 #ifndef __IChannelAudioVolume_INTERFACE_DEFINED__ 00982 #define __IChannelAudioVolume_INTERFACE_DEFINED__ 00983 00984 /* interface IChannelAudioVolume */ 00985 /* [local][unique][uuid][object] */ 00986 00987 00988 EXTERN_C const IID IID_IChannelAudioVolume; 00989 00990 #if defined(__cplusplus) && !defined(CINTERFACE) 00991 00992 MIDL_INTERFACE("1C158861-B533-4B30-B1CF-E853E51C59B8") 00993 IChannelAudioVolume : public IUnknown 00994 { 00995 public: 00996 virtual HRESULT STDMETHODCALLTYPE GetChannelCount( 00997 /* [out] */ 00998 __out UINT32 *pdwCount) = 0; 00999 01000 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume( 01001 /* [in] */ 01002 __in UINT32 dwIndex, 01003 /* [in] */ 01004 __in const float fLevel, 01005 /* [unique][in] */ LPCGUID EventContext) = 0; 01006 01007 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume( 01008 /* [in] */ 01009 __in UINT32 dwIndex, 01010 /* [out] */ 01011 __out float *pfLevel) = 0; 01012 01013 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes( 01014 /* [in] */ 01015 __in UINT32 dwCount, 01016 /* [size_is][in] */ 01017 __in_ecount(dwCount) const float *pfVolumes, 01018 /* [unique][in] */ LPCGUID EventContext) = 0; 01019 01020 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes( 01021 /* [in] */ 01022 __in UINT32 dwCount, 01023 /* [size_is][out] */ 01024 __out_ecount(dwCount) float *pfVolumes) = 0; 01025 01026 }; 01027 01028 #else /* C style interface */ 01029 01030 typedef struct IChannelAudioVolumeVtbl 01031 { 01032 BEGIN_INTERFACE 01033 01034 HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 01035 IChannelAudioVolume * This, 01036 /* [in] */ REFIID riid, 01037 /* [iid_is][out] */ 01038 __RPC__deref_out void **ppvObject); 01039 01040 ULONG ( STDMETHODCALLTYPE *AddRef )( 01041 IChannelAudioVolume * This); 01042 01043 ULONG ( STDMETHODCALLTYPE *Release )( 01044 IChannelAudioVolume * This); 01045 01046 HRESULT ( STDMETHODCALLTYPE *GetChannelCount )( 01047 IChannelAudioVolume * This, 01048 /* [out] */ 01049 __out UINT32 *pdwCount); 01050 01051 HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )( 01052 IChannelAudioVolume * This, 01053 /* [in] */ 01054 __in UINT32 dwIndex, 01055 /* [in] */ 01056 __in const float fLevel, 01057 /* [unique][in] */ LPCGUID EventContext); 01058 01059 HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )( 01060 IChannelAudioVolume * This, 01061 /* [in] */ 01062 __in UINT32 dwIndex, 01063 /* [out] */ 01064 __out float *pfLevel); 01065 01066 HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )( 01067 IChannelAudioVolume * This, 01068 /* [in] */ 01069 __in UINT32 dwCount, 01070 /* [size_is][in] */ 01071 __in_ecount(dwCount) const float *pfVolumes, 01072 /* [unique][in] */ LPCGUID EventContext); 01073 01074 HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )( 01075 IChannelAudioVolume * This, 01076 /* [in] */ 01077 __in UINT32 dwCount, 01078 /* [size_is][out] */ 01079 __out_ecount(dwCount) float *pfVolumes); 01080 01081 END_INTERFACE 01082 } IChannelAudioVolumeVtbl; 01083 01084 interface IChannelAudioVolume 01085 { 01086 CONST_VTBL struct IChannelAudioVolumeVtbl *lpVtbl; 01087 }; 01088 01089 01090 01091 #ifdef COBJMACROS 01092 01093 01094 #define IChannelAudioVolume_QueryInterface(This,riid,ppvObject) \ 01095 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 01096 01097 #define IChannelAudioVolume_AddRef(This) \ 01098 ( (This)->lpVtbl -> AddRef(This) ) 01099 01100 #define IChannelAudioVolume_Release(This) \ 01101 ( (This)->lpVtbl -> Release(This) ) 01102 01103 01104 #define IChannelAudioVolume_GetChannelCount(This,pdwCount) \ 01105 ( (This)->lpVtbl -> GetChannelCount(This,pdwCount) ) 01106 01107 #define IChannelAudioVolume_SetChannelVolume(This,dwIndex,fLevel,EventContext) \ 01108 ( (This)->lpVtbl -> SetChannelVolume(This,dwIndex,fLevel,EventContext) ) 01109 01110 #define IChannelAudioVolume_GetChannelVolume(This,dwIndex,pfLevel) \ 01111 ( (This)->lpVtbl -> GetChannelVolume(This,dwIndex,pfLevel) ) 01112 01113 #define IChannelAudioVolume_SetAllVolumes(This,dwCount,pfVolumes,EventContext) \ 01114 ( (This)->lpVtbl -> SetAllVolumes(This,dwCount,pfVolumes,EventContext) ) 01115 01116 #define IChannelAudioVolume_GetAllVolumes(This,dwCount,pfVolumes) \ 01117 ( (This)->lpVtbl -> GetAllVolumes(This,dwCount,pfVolumes) ) 01118 01119 #endif /* COBJMACROS */ 01120 01121 01122 #endif /* C style interface */ 01123 01124 01125 01126 01127 #endif /* __IChannelAudioVolume_INTERFACE_DEFINED__ */ 01128 01129 01130 /* interface __MIDL_itf_audioclient_0000_0007 */ 01131 /* [local] */ 01132 01133 #define FACILITY_AUDCLNT 0x889 01134 #define AUDCLNT_ERR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_AUDCLNT, n) 01135 #define AUDCLNT_SUCCESS(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_AUDCLNT, n) 01136 #define AUDCLNT_E_NOT_INITIALIZED AUDCLNT_ERR(0x001) 01137 #define AUDCLNT_E_ALREADY_INITIALIZED AUDCLNT_ERR(0x002) 01138 #define AUDCLNT_E_WRONG_ENDPOINT_TYPE AUDCLNT_ERR(0x003) 01139 #define AUDCLNT_E_DEVICE_INVALIDATED AUDCLNT_ERR(0x004) 01140 #define AUDCLNT_E_NOT_STOPPED AUDCLNT_ERR(0x005) 01141 #define AUDCLNT_E_BUFFER_TOO_LARGE AUDCLNT_ERR(0x006) 01142 #define AUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(0x007) 01143 #define AUDCLNT_E_UNSUPPORTED_FORMAT AUDCLNT_ERR(0x008) 01144 #define AUDCLNT_E_INVALID_SIZE AUDCLNT_ERR(0x009) 01145 #define AUDCLNT_E_DEVICE_IN_USE AUDCLNT_ERR(0x00a) 01146 #define AUDCLNT_E_BUFFER_OPERATION_PENDING AUDCLNT_ERR(0x00b) 01147 #define AUDCLNT_E_THREAD_NOT_REGISTERED AUDCLNT_ERR(0x00c) 01148 #define AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED AUDCLNT_ERR(0x00e) 01149 #define AUDCLNT_E_ENDPOINT_CREATE_FAILED AUDCLNT_ERR(0x00f) 01150 #define AUDCLNT_E_SERVICE_NOT_RUNNING AUDCLNT_ERR(0x010) 01151 #define AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED AUDCLNT_ERR(0x011) 01152 #define AUDCLNT_E_EXCLUSIVE_MODE_ONLY AUDCLNT_ERR(0x012) 01153 #define AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL AUDCLNT_ERR(0x013) 01154 #define AUDCLNT_E_EVENTHANDLE_NOT_SET AUDCLNT_ERR(0x014) 01155 #define AUDCLNT_E_INCORRECT_BUFFER_SIZE AUDCLNT_ERR(0x015) 01156 #define AUDCLNT_E_BUFFER_SIZE_ERROR AUDCLNT_ERR(0x016) 01157 #define AUDCLNT_E_CPUUSAGE_EXCEEDED AUDCLNT_ERR(0x017) 01158 #define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x001) 01159 #define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x002) 01160 #define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x003) 01161 01162 01163 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0007_v0_0_c_ifspec; 01164 extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0007_v0_0_s_ifspec; 01165 01166 /* Additional Prototypes for ALL interfaces */ 01167 01168 /* end of Additional Prototypes */ 01169 01170 #ifdef __cplusplus 01171 } 01172 #endif 01173 01174 #endif 01175 01176 01177