00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #pragma warning( disable: 4049 )
00018
00019
00020
00021 #ifndef __REQUIRED_RPCNDR_H_VERSION__
00022 #define __REQUIRED_RPCNDR_H_VERSION__ 500
00023 #endif
00024
00025
00026 #ifndef __REQUIRED_RPCSAL_H_VERSION__
00027 #define __REQUIRED_RPCSAL_H_VERSION__ 100
00028 #endif
00029
00030 #include "rpc.h"
00031 #include "rpcndr.h"
00032
00033 #ifndef __RPCNDR_H_VERSION__
00034 #error this stub requires an updated version of <rpcndr.h>
00035 #endif // __RPCNDR_H_VERSION__
00036
00037 #ifndef COM_NO_WINDOWS_H
00038 #include "windows.h"
00039 #include "ole2.h"
00040 #endif
00041
00042 #ifndef __audioclient_h__
00043 #define __audioclient_h__
00044
00045 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
00046 #pragma once
00047 #endif
00048
00049
00050
00051 #ifndef __IAudioClient_FWD_DEFINED__
00052 #define __IAudioClient_FWD_DEFINED__
00053 typedef interface IAudioClient IAudioClient;
00054 #endif
00055
00056
00057 #ifndef __IAudioRenderClient_FWD_DEFINED__
00058 #define __IAudioRenderClient_FWD_DEFINED__
00059 typedef interface IAudioRenderClient IAudioRenderClient;
00060 #endif
00061
00062
00063 #ifndef __IAudioCaptureClient_FWD_DEFINED__
00064 #define __IAudioCaptureClient_FWD_DEFINED__
00065 typedef interface IAudioCaptureClient IAudioCaptureClient;
00066 #endif
00067
00068
00069 #ifndef __IAudioClock_FWD_DEFINED__
00070 #define __IAudioClock_FWD_DEFINED__
00071 typedef interface IAudioClock IAudioClock;
00072 #endif
00073
00074
00075 #ifndef __ISimpleAudioVolume_FWD_DEFINED__
00076 #define __ISimpleAudioVolume_FWD_DEFINED__
00077 typedef interface ISimpleAudioVolume ISimpleAudioVolume;
00078 #endif
00079
00080
00081 #ifndef __IAudioStreamVolume_FWD_DEFINED__
00082 #define __IAudioStreamVolume_FWD_DEFINED__
00083 typedef interface IAudioStreamVolume IAudioStreamVolume;
00084 #endif
00085
00086
00087 #ifndef __IChannelAudioVolume_FWD_DEFINED__
00088 #define __IChannelAudioVolume_FWD_DEFINED__
00089 typedef interface IChannelAudioVolume IChannelAudioVolume;
00090 #endif
00091
00092
00093
00094 #include "wtypes.h"
00095 #include "unknwn.h"
00096 #include "AudioSessionTypes.h"
00097
00098 #ifdef __cplusplus
00099 extern "C"{
00100 #endif
00101
00102
00103
00104
00105
00106 #if 0
00107 typedef 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 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
00144
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
00157 __in AUDCLNT_SHAREMODE ShareMode,
00158
00159 __in DWORD StreamFlags,
00160
00161 __in REFERENCE_TIME hnsBufferDuration,
00162
00163 __in REFERENCE_TIME hnsPeriodicity,
00164
00165 __in const WAVEFORMATEX *pFormat,
00166
00167 __in_opt LPCGUID AudioSessionGuid) = 0;
00168
00169 virtual HRESULT STDMETHODCALLTYPE GetBufferSize(
00170
00171 __out UINT32 *pNumBufferFrames) = 0;
00172
00173 virtual HRESULT STDMETHODCALLTYPE GetStreamLatency(
00174
00175 __out REFERENCE_TIME *phnsLatency) = 0;
00176
00177 virtual HRESULT STDMETHODCALLTYPE GetCurrentPadding(
00178
00179 __out UINT32 *pNumPaddingFrames) = 0;
00180
00181 virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
00182
00183 __in AUDCLNT_SHAREMODE ShareMode,
00184
00185 __in const WAVEFORMATEX *pFormat,
00186
00187 __out_opt WAVEFORMATEX **ppClosestMatch) = 0;
00188
00189 virtual HRESULT STDMETHODCALLTYPE GetMixFormat(
00190
00191 __out WAVEFORMATEX **ppDeviceFormat) = 0;
00192
00193 virtual HRESULT STDMETHODCALLTYPE GetDevicePeriod(
00194
00195 __out_opt REFERENCE_TIME *phnsDefaultDevicePeriod,
00196
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 HANDLE eventHandle) = 0;
00207
00208 virtual HRESULT STDMETHODCALLTYPE GetService(
00209
00210 __in REFIID riid,
00211
00212 __out void **ppv) = 0;
00213
00214 };
00215
00216 #else
00217
00218 typedef struct IAudioClientVtbl
00219 {
00220 BEGIN_INTERFACE
00221
00222 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
00223 IAudioClient * This,
00224 REFIID riid,
00225
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
00237 __in AUDCLNT_SHAREMODE ShareMode,
00238
00239 __in DWORD StreamFlags,
00240
00241 __in REFERENCE_TIME hnsBufferDuration,
00242
00243 __in REFERENCE_TIME hnsPeriodicity,
00244
00245 __in const WAVEFORMATEX *pFormat,
00246
00247 __in_opt LPCGUID AudioSessionGuid);
00248
00249 HRESULT ( STDMETHODCALLTYPE *GetBufferSize )(
00250 IAudioClient * This,
00251
00252 __out UINT32 *pNumBufferFrames);
00253
00254 HRESULT ( STDMETHODCALLTYPE *GetStreamLatency )(
00255 IAudioClient * This,
00256
00257 __out REFERENCE_TIME *phnsLatency);
00258
00259 HRESULT ( STDMETHODCALLTYPE *GetCurrentPadding )(
00260 IAudioClient * This,
00261
00262 __out UINT32 *pNumPaddingFrames);
00263
00264 HRESULT ( STDMETHODCALLTYPE *IsFormatSupported )(
00265 IAudioClient * This,
00266
00267 __in AUDCLNT_SHAREMODE ShareMode,
00268
00269 __in const WAVEFORMATEX *pFormat,
00270
00271 __out_opt WAVEFORMATEX **ppClosestMatch);
00272
00273 HRESULT ( STDMETHODCALLTYPE *GetMixFormat )(
00274 IAudioClient * This,
00275
00276 __out WAVEFORMATEX **ppDeviceFormat);
00277
00278 HRESULT ( STDMETHODCALLTYPE *GetDevicePeriod )(
00279 IAudioClient * This,
00280
00281 __out_opt REFERENCE_TIME *phnsDefaultDevicePeriod,
00282
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 HANDLE eventHandle);
00297
00298 HRESULT ( STDMETHODCALLTYPE *GetService )(
00299 IAudioClient * This,
00300
00301 __in REFIID riid,
00302
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
00365
00366
00367 #endif
00368
00369
00370
00371
00372 #endif
00373
00374
00375 #ifndef __IAudioRenderClient_INTERFACE_DEFINED__
00376 #define __IAudioRenderClient_INTERFACE_DEFINED__
00377
00378
00379
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
00392 __in UINT32 NumFramesRequested,
00393
00394 __out BYTE **ppData) = 0;
00395
00396 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
00397
00398 __in UINT32 NumFramesWritten,
00399
00400 __in DWORD dwFlags) = 0;
00401
00402 };
00403
00404 #else
00405
00406 typedef struct IAudioRenderClientVtbl
00407 {
00408 BEGIN_INTERFACE
00409
00410 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
00411 IAudioRenderClient * This,
00412 REFIID riid,
00413
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
00425 __in UINT32 NumFramesRequested,
00426
00427 __out BYTE **ppData);
00428
00429 HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
00430 IAudioRenderClient * This,
00431
00432 __in UINT32 NumFramesWritten,
00433
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
00466
00467
00468 #endif
00469
00470
00471
00472
00473 #endif
00474
00475
00476 #ifndef __IAudioCaptureClient_INTERFACE_DEFINED__
00477 #define __IAudioCaptureClient_INTERFACE_DEFINED__
00478
00479
00480
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
00493 __out BYTE **ppData,
00494
00495 __out UINT32 *pNumFramesToRead,
00496
00497 __out DWORD *pdwFlags,
00498
00499 __out_opt UINT64 *pu64DevicePosition,
00500
00501 __out_opt UINT64 *pu64QPCPosition) = 0;
00502
00503 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
00504
00505 __in UINT32 NumFramesRead) = 0;
00506
00507 virtual HRESULT STDMETHODCALLTYPE GetNextPacketSize(
00508
00509 __out UINT32 *pNumFramesInNextPacket) = 0;
00510
00511 };
00512
00513 #else
00514
00515 typedef struct IAudioCaptureClientVtbl
00516 {
00517 BEGIN_INTERFACE
00518
00519 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
00520 IAudioCaptureClient * This,
00521 REFIID riid,
00522
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
00534 __out BYTE **ppData,
00535
00536 __out UINT32 *pNumFramesToRead,
00537
00538 __out DWORD *pdwFlags,
00539
00540 __out_opt UINT64 *pu64DevicePosition,
00541
00542 __out_opt UINT64 *pu64QPCPosition);
00543
00544 HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
00545 IAudioCaptureClient * This,
00546
00547 __in UINT32 NumFramesRead);
00548
00549 HRESULT ( STDMETHODCALLTYPE *GetNextPacketSize )(
00550 IAudioCaptureClient * This,
00551
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
00587
00588
00589 #endif
00590
00591
00592
00593
00594 #endif
00595
00596
00597
00598
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
00610
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
00623 __out UINT64 *pu64Frequency) = 0;
00624
00625 virtual HRESULT STDMETHODCALLTYPE GetPosition(
00626
00627 __out UINT64 *pu64Position,
00628
00629 __out_opt UINT64 *pu64QPCPosition) = 0;
00630
00631 virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
00632
00633 __out DWORD *pdwCharacteristics) = 0;
00634
00635 };
00636
00637 #else
00638
00639 typedef struct IAudioClockVtbl
00640 {
00641 BEGIN_INTERFACE
00642
00643 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
00644 IAudioClock * This,
00645 REFIID riid,
00646
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
00658 __out UINT64 *pu64Frequency);
00659
00660 HRESULT ( STDMETHODCALLTYPE *GetPosition )(
00661 IAudioClock * This,
00662
00663 __out UINT64 *pu64Position,
00664
00665 __out_opt UINT64 *pu64QPCPosition);
00666
00667 HRESULT ( STDMETHODCALLTYPE *GetCharacteristics )(
00668 IAudioClock * This,
00669
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
00705
00706
00707 #endif
00708
00709
00710
00711
00712 #endif
00713
00714
00715 #ifndef __ISimpleAudioVolume_INTERFACE_DEFINED__
00716 #define __ISimpleAudioVolume_INTERFACE_DEFINED__
00717
00718
00719
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
00732 __in float fLevel,
00733 LPCGUID EventContext) = 0;
00734
00735 virtual HRESULT STDMETHODCALLTYPE GetMasterVolume(
00736
00737 __out float *pfLevel) = 0;
00738
00739 virtual HRESULT STDMETHODCALLTYPE SetMute(
00740
00741 __in const BOOL bMute,
00742 LPCGUID EventContext) = 0;
00743
00744 virtual HRESULT STDMETHODCALLTYPE GetMute(
00745
00746 __out BOOL *pbMute) = 0;
00747
00748 };
00749
00750 #else
00751
00752 typedef struct ISimpleAudioVolumeVtbl
00753 {
00754 BEGIN_INTERFACE
00755
00756 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
00757 ISimpleAudioVolume * This,
00758 REFIID riid,
00759
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
00771 __in float fLevel,
00772 LPCGUID EventContext);
00773
00774 HRESULT ( STDMETHODCALLTYPE *GetMasterVolume )(
00775 ISimpleAudioVolume * This,
00776
00777 __out float *pfLevel);
00778
00779 HRESULT ( STDMETHODCALLTYPE *SetMute )(
00780 ISimpleAudioVolume * This,
00781
00782 __in const BOOL bMute,
00783 LPCGUID EventContext);
00784
00785 HRESULT ( STDMETHODCALLTYPE *GetMute )(
00786 ISimpleAudioVolume * This,
00787
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
00826
00827
00828 #endif
00829
00830
00831
00832
00833 #endif
00834
00835
00836 #ifndef __IAudioStreamVolume_INTERFACE_DEFINED__
00837 #define __IAudioStreamVolume_INTERFACE_DEFINED__
00838
00839
00840
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
00853 __out UINT32 *pdwCount) = 0;
00854
00855 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
00856
00857 __in UINT32 dwIndex,
00858
00859 __in const float fLevel) = 0;
00860
00861 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
00862
00863 __in UINT32 dwIndex,
00864
00865 __out float *pfLevel) = 0;
00866
00867 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
00868
00869 __in UINT32 dwCount,
00870
00871 __in_ecount(dwCount) const float *pfVolumes) = 0;
00872
00873 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
00874
00875 __in UINT32 dwCount,
00876
00877 __out_ecount(dwCount) float *pfVolumes) = 0;
00878
00879 };
00880
00881 #else
00882
00883 typedef struct IAudioStreamVolumeVtbl
00884 {
00885 BEGIN_INTERFACE
00886
00887 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
00888 IAudioStreamVolume * This,
00889 REFIID riid,
00890
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
00902 __out UINT32 *pdwCount);
00903
00904 HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )(
00905 IAudioStreamVolume * This,
00906
00907 __in UINT32 dwIndex,
00908
00909 __in const float fLevel);
00910
00911 HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )(
00912 IAudioStreamVolume * This,
00913
00914 __in UINT32 dwIndex,
00915
00916 __out float *pfLevel);
00917
00918 HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )(
00919 IAudioStreamVolume * This,
00920
00921 __in UINT32 dwCount,
00922
00923 __in_ecount(dwCount) const float *pfVolumes);
00924
00925 HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )(
00926 IAudioStreamVolume * This,
00927
00928 __in UINT32 dwCount,
00929
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
00971
00972
00973 #endif
00974
00975
00976
00977
00978 #endif
00979
00980
00981 #ifndef __IChannelAudioVolume_INTERFACE_DEFINED__
00982 #define __IChannelAudioVolume_INTERFACE_DEFINED__
00983
00984
00985
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
00998 __out UINT32 *pdwCount) = 0;
00999
01000 virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
01001
01002 __in UINT32 dwIndex,
01003
01004 __in const float fLevel,
01005 LPCGUID EventContext) = 0;
01006
01007 virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
01008
01009 __in UINT32 dwIndex,
01010
01011 __out float *pfLevel) = 0;
01012
01013 virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
01014
01015 __in UINT32 dwCount,
01016
01017 __in_ecount(dwCount) const float *pfVolumes,
01018 LPCGUID EventContext) = 0;
01019
01020 virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
01021
01022 __in UINT32 dwCount,
01023
01024 __out_ecount(dwCount) float *pfVolumes) = 0;
01025
01026 };
01027
01028 #else
01029
01030 typedef struct IChannelAudioVolumeVtbl
01031 {
01032 BEGIN_INTERFACE
01033
01034 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
01035 IChannelAudioVolume * This,
01036 REFIID riid,
01037
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
01049 __out UINT32 *pdwCount);
01050
01051 HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )(
01052 IChannelAudioVolume * This,
01053
01054 __in UINT32 dwIndex,
01055
01056 __in const float fLevel,
01057 LPCGUID EventContext);
01058
01059 HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )(
01060 IChannelAudioVolume * This,
01061
01062 __in UINT32 dwIndex,
01063
01064 __out float *pfLevel);
01065
01066 HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )(
01067 IChannelAudioVolume * This,
01068
01069 __in UINT32 dwCount,
01070
01071 __in_ecount(dwCount) const float *pfVolumes,
01072 LPCGUID EventContext);
01073
01074 HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )(
01075 IChannelAudioVolume * This,
01076
01077 __in UINT32 dwCount,
01078
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
01120
01121
01122 #endif
01123
01124
01125
01126
01127 #endif
01128
01129
01130
01131
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
01167
01168
01169
01170 #ifdef __cplusplus
01171 }
01172 #endif
01173
01174 #endif
01175
01176
01177