summaryrefslogtreecommitdiff
path: root/portaudio/src/hostapi/wasapi/mingw-include/audioclient.h
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-08-25 14:54:53 -0500
committersanine <sanine.not@pm.me>2022-08-25 14:54:53 -0500
commit37c97e345d12f95dde44e1d1a4c2f2aadd4615bc (patch)
treee1bb25bc855883062bdd7847ff2c04290f71c840 /portaudio/src/hostapi/wasapi/mingw-include/audioclient.h
parent5634c7b04da619669f2f29f6798c03982be05180 (diff)
add initial structure
Diffstat (limited to 'portaudio/src/hostapi/wasapi/mingw-include/audioclient.h')
-rw-r--r--portaudio/src/hostapi/wasapi/mingw-include/audioclient.h1177
1 files changed, 1177 insertions, 0 deletions
diff --git a/portaudio/src/hostapi/wasapi/mingw-include/audioclient.h b/portaudio/src/hostapi/wasapi/mingw-include/audioclient.h
new file mode 100644
index 0000000..60db0cd
--- /dev/null
+++ b/portaudio/src/hostapi/wasapi/mingw-include/audioclient.h
@@ -0,0 +1,1177 @@
+
+
+/* this ALWAYS GENERATED file contains the definitions for the interfaces */
+
+
+ /* File created by MIDL compiler version 7.00.0499 */
+/* Compiler settings for audioclient.idl:
+ Oicf, W1, Zp8, env=Win32 (32b run)
+ protocol : dce , ms_ext, c_ext, robust
+ error checks: allocation ref bounds_check enum stub_data
+ VC __declspec() decoration level:
+ __declspec(uuid()), __declspec(selectany), __declspec(novtable)
+ DECLSPEC_UUID(), MIDL_INTERFACE()
+*/
+//@@MIDL_FILE_HEADING( )
+
+#pragma warning( disable: 4049 ) /* more than 64k source lines */
+
+
+/* verify that the <rpcndr.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCNDR_H_VERSION__
+#define __REQUIRED_RPCNDR_H_VERSION__ 475
+#endif
+
+/* verify that the <rpcsal.h> version is high enough to compile this file*/
+#ifndef __REQUIRED_RPCSAL_H_VERSION__
+#define __REQUIRED_RPCSAL_H_VERSION__ 100
+#endif
+
+#include "rpc.h"
+#include "rpcndr.h"
+
+#ifndef __RPCNDR_H_VERSION__
+#error this stub requires an updated version of <rpcndr.h>
+#endif // __RPCNDR_H_VERSION__
+
+#ifndef COM_NO_WINDOWS_H
+#include "windows.h"
+#include "ole2.h"
+#endif /*COM_NO_WINDOWS_H*/
+
+#ifndef __audioclient_h__
+#define __audioclient_h__
+
+#if defined(_MSC_VER) && (_MSC_VER >= 1020)
+#pragma once
+#endif
+
+/* Forward Declarations */
+
+#ifndef __IAudioClient_FWD_DEFINED__
+#define __IAudioClient_FWD_DEFINED__
+typedef interface IAudioClient IAudioClient;
+#endif /* __IAudioClient_FWD_DEFINED__ */
+
+
+#ifndef __IAudioRenderClient_FWD_DEFINED__
+#define __IAudioRenderClient_FWD_DEFINED__
+typedef interface IAudioRenderClient IAudioRenderClient;
+#endif /* __IAudioRenderClient_FWD_DEFINED__ */
+
+
+#ifndef __IAudioCaptureClient_FWD_DEFINED__
+#define __IAudioCaptureClient_FWD_DEFINED__
+typedef interface IAudioCaptureClient IAudioCaptureClient;
+#endif /* __IAudioCaptureClient_FWD_DEFINED__ */
+
+
+#ifndef __IAudioClock_FWD_DEFINED__
+#define __IAudioClock_FWD_DEFINED__
+typedef interface IAudioClock IAudioClock;
+#endif /* __IAudioClock_FWD_DEFINED__ */
+
+
+#ifndef __ISimpleAudioVolume_FWD_DEFINED__
+#define __ISimpleAudioVolume_FWD_DEFINED__
+typedef interface ISimpleAudioVolume ISimpleAudioVolume;
+#endif /* __ISimpleAudioVolume_FWD_DEFINED__ */
+
+
+#ifndef __IAudioStreamVolume_FWD_DEFINED__
+#define __IAudioStreamVolume_FWD_DEFINED__
+typedef interface IAudioStreamVolume IAudioStreamVolume;
+#endif /* __IAudioStreamVolume_FWD_DEFINED__ */
+
+
+#ifndef __IChannelAudioVolume_FWD_DEFINED__
+#define __IChannelAudioVolume_FWD_DEFINED__
+typedef interface IChannelAudioVolume IChannelAudioVolume;
+#endif /* __IChannelAudioVolume_FWD_DEFINED__ */
+
+
+/* header files for imported files */
+#include "wtypes.h"
+#include "unknwn.h"
+#include "AudioSessionTypes.h"
+
+#ifdef __cplusplus
+extern "C"{
+#endif
+
+
+/* interface __MIDL_itf_audioclient_0000_0000 */
+/* [local] */
+
+#if 0
+typedef /* [hidden][restricted] */ struct WAVEFORMATEX
+ {
+ WORD wFormatTag;
+ WORD nChannels;
+ DWORD nSamplesPerSec;
+ DWORD nAvgBytesPerSec;
+ WORD nBlockAlign;
+ WORD wBitsPerSample;
+ WORD cbSize;
+ } WAVEFORMATEX;
+
+#else
+#include <mmreg.h>
+#endif
+#if 0
+typedef /* [hidden][restricted] */ LONGLONG REFERENCE_TIME;
+
+#else
+#define _IKsControl_
+#include <ks.h>
+#include <ksmedia.h>
+#endif
+
+enum _AUDCLNT_BUFFERFLAGS
+ { AUDCLNT_BUFFERFLAGS_DATA_DISCONTINUITY = 0x1,
+ AUDCLNT_BUFFERFLAGS_SILENT = 0x2,
+ AUDCLNT_BUFFERFLAGS_TIMESTAMP_ERROR = 0x4
+ } ;
+
+
+extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0000_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0000_v0_0_s_ifspec;
+
+#ifndef __IAudioClient_INTERFACE_DEFINED__
+#define __IAudioClient_INTERFACE_DEFINED__
+
+/* interface IAudioClient */
+/* [local][unique][uuid][object] */
+
+
+EXTERN_C const IID IID_IAudioClient;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1CB9AD4C-DBFA-4c32-B178-C2F568A703B2")
+ IAudioClient : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE Initialize(
+ /* [in] */
+ __in AUDCLNT_SHAREMODE ShareMode,
+ /* [in] */
+ __in DWORD StreamFlags,
+ /* [in] */
+ __in REFERENCE_TIME hnsBufferDuration,
+ /* [in] */
+ __in REFERENCE_TIME hnsPeriodicity,
+ /* [in] */
+ __in const WAVEFORMATEX *pFormat,
+ /* [in] */
+ __in_opt LPCGUID AudioSessionGuid) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetBufferSize(
+ /* [out] */
+ __out UINT32 *pNumBufferFrames) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetStreamLatency(
+ /* [out] */
+ __out REFERENCE_TIME *phnsLatency) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCurrentPadding(
+ /* [out] */
+ __out UINT32 *pNumPaddingFrames) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE IsFormatSupported(
+ /* [in] */
+ __in AUDCLNT_SHAREMODE ShareMode,
+ /* [in] */
+ __in const WAVEFORMATEX *pFormat,
+ /* [unique][out] */
+ __out_opt WAVEFORMATEX **ppClosestMatch) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMixFormat(
+ /* [out] */
+ __out WAVEFORMATEX **ppDeviceFormat) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetDevicePeriod(
+ /* [out] */
+ __out_opt REFERENCE_TIME *phnsDefaultDevicePeriod,
+ /* [out] */
+ __out_opt REFERENCE_TIME *phnsMinimumDevicePeriod) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Start( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Stop( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetEventHandle(
+ /* [in] */ HANDLE eventHandle) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetService(
+ /* [in] */
+ __in REFIID riid,
+ /* [iid_is][out] */
+ __out void **ppv) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAudioClientVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAudioClient * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAudioClient * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAudioClient * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Initialize )(
+ IAudioClient * This,
+ /* [in] */
+ __in AUDCLNT_SHAREMODE ShareMode,
+ /* [in] */
+ __in DWORD StreamFlags,
+ /* [in] */
+ __in REFERENCE_TIME hnsBufferDuration,
+ /* [in] */
+ __in REFERENCE_TIME hnsPeriodicity,
+ /* [in] */
+ __in const WAVEFORMATEX *pFormat,
+ /* [in] */
+ __in_opt LPCGUID AudioSessionGuid);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBufferSize )(
+ IAudioClient * This,
+ /* [out] */
+ __out UINT32 *pNumBufferFrames);
+
+ HRESULT ( STDMETHODCALLTYPE *GetStreamLatency )(
+ IAudioClient * This,
+ /* [out] */
+ __out REFERENCE_TIME *phnsLatency);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCurrentPadding )(
+ IAudioClient * This,
+ /* [out] */
+ __out UINT32 *pNumPaddingFrames);
+
+ HRESULT ( STDMETHODCALLTYPE *IsFormatSupported )(
+ IAudioClient * This,
+ /* [in] */
+ __in AUDCLNT_SHAREMODE ShareMode,
+ /* [in] */
+ __in const WAVEFORMATEX *pFormat,
+ /* [unique][out] */
+ __out_opt WAVEFORMATEX **ppClosestMatch);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMixFormat )(
+ IAudioClient * This,
+ /* [out] */
+ __out WAVEFORMATEX **ppDeviceFormat);
+
+ HRESULT ( STDMETHODCALLTYPE *GetDevicePeriod )(
+ IAudioClient * This,
+ /* [out] */
+ __out_opt REFERENCE_TIME *phnsDefaultDevicePeriod,
+ /* [out] */
+ __out_opt REFERENCE_TIME *phnsMinimumDevicePeriod);
+
+ HRESULT ( STDMETHODCALLTYPE *Start )(
+ IAudioClient * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Stop )(
+ IAudioClient * This);
+
+ HRESULT ( STDMETHODCALLTYPE *Reset )(
+ IAudioClient * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetEventHandle )(
+ IAudioClient * This,
+ /* [in] */ HANDLE eventHandle);
+
+ HRESULT ( STDMETHODCALLTYPE *GetService )(
+ IAudioClient * This,
+ /* [in] */
+ __in REFIID riid,
+ /* [iid_is][out] */
+ __out void **ppv);
+
+ END_INTERFACE
+ } IAudioClientVtbl;
+
+ interface IAudioClient
+ {
+ CONST_VTBL struct IAudioClientVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAudioClient_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAudioClient_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAudioClient_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAudioClient_Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) \
+ ( (This)->lpVtbl -> Initialize(This,ShareMode,StreamFlags,hnsBufferDuration,hnsPeriodicity,pFormat,AudioSessionGuid) )
+
+#define IAudioClient_GetBufferSize(This,pNumBufferFrames) \
+ ( (This)->lpVtbl -> GetBufferSize(This,pNumBufferFrames) )
+
+#define IAudioClient_GetStreamLatency(This,phnsLatency) \
+ ( (This)->lpVtbl -> GetStreamLatency(This,phnsLatency) )
+
+#define IAudioClient_GetCurrentPadding(This,pNumPaddingFrames) \
+ ( (This)->lpVtbl -> GetCurrentPadding(This,pNumPaddingFrames) )
+
+#define IAudioClient_IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) \
+ ( (This)->lpVtbl -> IsFormatSupported(This,ShareMode,pFormat,ppClosestMatch) )
+
+#define IAudioClient_GetMixFormat(This,ppDeviceFormat) \
+ ( (This)->lpVtbl -> GetMixFormat(This,ppDeviceFormat) )
+
+#define IAudioClient_GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) \
+ ( (This)->lpVtbl -> GetDevicePeriod(This,phnsDefaultDevicePeriod,phnsMinimumDevicePeriod) )
+
+#define IAudioClient_Start(This) \
+ ( (This)->lpVtbl -> Start(This) )
+
+#define IAudioClient_Stop(This) \
+ ( (This)->lpVtbl -> Stop(This) )
+
+#define IAudioClient_Reset(This) \
+ ( (This)->lpVtbl -> Reset(This) )
+
+#define IAudioClient_SetEventHandle(This,eventHandle) \
+ ( (This)->lpVtbl -> SetEventHandle(This,eventHandle) )
+
+#define IAudioClient_GetService(This,riid,ppv) \
+ ( (This)->lpVtbl -> GetService(This,riid,ppv) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAudioClient_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAudioRenderClient_INTERFACE_DEFINED__
+#define __IAudioRenderClient_INTERFACE_DEFINED__
+
+/* interface IAudioRenderClient */
+/* [local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_IAudioRenderClient;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("F294ACFC-3146-4483-A7BF-ADDCA7C260E2")
+ IAudioRenderClient : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetBuffer(
+ /* [in] */
+ __in UINT32 NumFramesRequested,
+ /* [out] */
+ __out BYTE **ppData) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
+ /* [in] */
+ __in UINT32 NumFramesWritten,
+ /* [in] */
+ __in DWORD dwFlags) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAudioRenderClientVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAudioRenderClient * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAudioRenderClient * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAudioRenderClient * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBuffer )(
+ IAudioRenderClient * This,
+ /* [in] */
+ __in UINT32 NumFramesRequested,
+ /* [out] */
+ __out BYTE **ppData);
+
+ HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
+ IAudioRenderClient * This,
+ /* [in] */
+ __in UINT32 NumFramesWritten,
+ /* [in] */
+ __in DWORD dwFlags);
+
+ END_INTERFACE
+ } IAudioRenderClientVtbl;
+
+ interface IAudioRenderClient
+ {
+ CONST_VTBL struct IAudioRenderClientVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAudioRenderClient_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAudioRenderClient_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAudioRenderClient_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAudioRenderClient_GetBuffer(This,NumFramesRequested,ppData) \
+ ( (This)->lpVtbl -> GetBuffer(This,NumFramesRequested,ppData) )
+
+#define IAudioRenderClient_ReleaseBuffer(This,NumFramesWritten,dwFlags) \
+ ( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesWritten,dwFlags) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAudioRenderClient_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAudioCaptureClient_INTERFACE_DEFINED__
+#define __IAudioCaptureClient_INTERFACE_DEFINED__
+
+/* interface IAudioCaptureClient */
+/* [local][unique][helpstring][uuid][object] */
+
+
+EXTERN_C const IID IID_IAudioCaptureClient;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("C8ADBD64-E71E-48a0-A4DE-185C395CD317")
+ IAudioCaptureClient : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetBuffer(
+ /* [out] */
+ __out BYTE **ppData,
+ /* [out] */
+ __out UINT32 *pNumFramesToRead,
+ /* [out] */
+ __out DWORD *pdwFlags,
+ /* [unique][out] */
+ __out_opt UINT64 *pu64DevicePosition,
+ /* [unique][out] */
+ __out_opt UINT64 *pu64QPCPosition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
+ /* [in] */
+ __in UINT32 NumFramesRead) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetNextPacketSize(
+ /* [out] */
+ __out UINT32 *pNumFramesInNextPacket) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAudioCaptureClientVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAudioCaptureClient * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAudioCaptureClient * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAudioCaptureClient * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetBuffer )(
+ IAudioCaptureClient * This,
+ /* [out] */
+ __out BYTE **ppData,
+ /* [out] */
+ __out UINT32 *pNumFramesToRead,
+ /* [out] */
+ __out DWORD *pdwFlags,
+ /* [unique][out] */
+ __out_opt UINT64 *pu64DevicePosition,
+ /* [unique][out] */
+ __out_opt UINT64 *pu64QPCPosition);
+
+ HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
+ IAudioCaptureClient * This,
+ /* [in] */
+ __in UINT32 NumFramesRead);
+
+ HRESULT ( STDMETHODCALLTYPE *GetNextPacketSize )(
+ IAudioCaptureClient * This,
+ /* [out] */
+ __out UINT32 *pNumFramesInNextPacket);
+
+ END_INTERFACE
+ } IAudioCaptureClientVtbl;
+
+ interface IAudioCaptureClient
+ {
+ CONST_VTBL struct IAudioCaptureClientVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAudioCaptureClient_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAudioCaptureClient_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAudioCaptureClient_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAudioCaptureClient_GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) \
+ ( (This)->lpVtbl -> GetBuffer(This,ppData,pNumFramesToRead,pdwFlags,pu64DevicePosition,pu64QPCPosition) )
+
+#define IAudioCaptureClient_ReleaseBuffer(This,NumFramesRead) \
+ ( (This)->lpVtbl -> ReleaseBuffer(This,NumFramesRead) )
+
+#define IAudioCaptureClient_GetNextPacketSize(This,pNumFramesInNextPacket) \
+ ( (This)->lpVtbl -> GetNextPacketSize(This,pNumFramesInNextPacket) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAudioCaptureClient_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_audioclient_0000_0003 */
+/* [local] */
+
+#define AUDIOCLOCK_CHARACTERISTIC_FIXED_FREQ 0x00000001
+
+
+extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0003_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0003_v0_0_s_ifspec;
+
+#ifndef __IAudioClock_INTERFACE_DEFINED__
+#define __IAudioClock_INTERFACE_DEFINED__
+
+/* interface IAudioClock */
+/* [local][unique][uuid][object] */
+
+
+EXTERN_C const IID IID_IAudioClock;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("CD63314F-3FBA-4a1b-812C-EF96358728E7")
+ IAudioClock : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetFrequency(
+ /* [out] */
+ __out UINT64 *pu64Frequency) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetPosition(
+ /* [out] */
+ __out UINT64 *pu64Position,
+ /* [unique][out] */
+ __out_opt UINT64 *pu64QPCPosition) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetCharacteristics(
+ /* [out] */
+ __out DWORD *pdwCharacteristics) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAudioClockVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAudioClock * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAudioClock * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAudioClock * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetFrequency )(
+ IAudioClock * This,
+ /* [out] */
+ __out UINT64 *pu64Frequency);
+
+ HRESULT ( STDMETHODCALLTYPE *GetPosition )(
+ IAudioClock * This,
+ /* [out] */
+ __out UINT64 *pu64Position,
+ /* [unique][out] */
+ __out_opt UINT64 *pu64QPCPosition);
+
+ HRESULT ( STDMETHODCALLTYPE *GetCharacteristics )(
+ IAudioClock * This,
+ /* [out] */
+ __out DWORD *pdwCharacteristics);
+
+ END_INTERFACE
+ } IAudioClockVtbl;
+
+ interface IAudioClock
+ {
+ CONST_VTBL struct IAudioClockVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAudioClock_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAudioClock_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAudioClock_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAudioClock_GetFrequency(This,pu64Frequency) \
+ ( (This)->lpVtbl -> GetFrequency(This,pu64Frequency) )
+
+#define IAudioClock_GetPosition(This,pu64Position,pu64QPCPosition) \
+ ( (This)->lpVtbl -> GetPosition(This,pu64Position,pu64QPCPosition) )
+
+#define IAudioClock_GetCharacteristics(This,pdwCharacteristics) \
+ ( (This)->lpVtbl -> GetCharacteristics(This,pdwCharacteristics) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAudioClock_INTERFACE_DEFINED__ */
+
+
+#ifndef __ISimpleAudioVolume_INTERFACE_DEFINED__
+#define __ISimpleAudioVolume_INTERFACE_DEFINED__
+
+/* interface ISimpleAudioVolume */
+/* [local][unique][uuid][object] */
+
+
+EXTERN_C const IID IID_ISimpleAudioVolume;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("87CE5498-68D6-44E5-9215-6DA47EF883D8")
+ ISimpleAudioVolume : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE SetMasterVolume(
+ /* [in] */
+ __in float fLevel,
+ /* [unique][in] */ LPCGUID EventContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMasterVolume(
+ /* [out] */
+ __out float *pfLevel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetMute(
+ /* [in] */
+ __in const BOOL bMute,
+ /* [unique][in] */ LPCGUID EventContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetMute(
+ /* [out] */
+ __out BOOL *pbMute) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct ISimpleAudioVolumeVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ ISimpleAudioVolume * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ ISimpleAudioVolume * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ ISimpleAudioVolume * This);
+
+ HRESULT ( STDMETHODCALLTYPE *SetMasterVolume )(
+ ISimpleAudioVolume * This,
+ /* [in] */
+ __in float fLevel,
+ /* [unique][in] */ LPCGUID EventContext);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMasterVolume )(
+ ISimpleAudioVolume * This,
+ /* [out] */
+ __out float *pfLevel);
+
+ HRESULT ( STDMETHODCALLTYPE *SetMute )(
+ ISimpleAudioVolume * This,
+ /* [in] */
+ __in const BOOL bMute,
+ /* [unique][in] */ LPCGUID EventContext);
+
+ HRESULT ( STDMETHODCALLTYPE *GetMute )(
+ ISimpleAudioVolume * This,
+ /* [out] */
+ __out BOOL *pbMute);
+
+ END_INTERFACE
+ } ISimpleAudioVolumeVtbl;
+
+ interface ISimpleAudioVolume
+ {
+ CONST_VTBL struct ISimpleAudioVolumeVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define ISimpleAudioVolume_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define ISimpleAudioVolume_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define ISimpleAudioVolume_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define ISimpleAudioVolume_SetMasterVolume(This,fLevel,EventContext) \
+ ( (This)->lpVtbl -> SetMasterVolume(This,fLevel,EventContext) )
+
+#define ISimpleAudioVolume_GetMasterVolume(This,pfLevel) \
+ ( (This)->lpVtbl -> GetMasterVolume(This,pfLevel) )
+
+#define ISimpleAudioVolume_SetMute(This,bMute,EventContext) \
+ ( (This)->lpVtbl -> SetMute(This,bMute,EventContext) )
+
+#define ISimpleAudioVolume_GetMute(This,pbMute) \
+ ( (This)->lpVtbl -> GetMute(This,pbMute) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __ISimpleAudioVolume_INTERFACE_DEFINED__ */
+
+
+#ifndef __IAudioStreamVolume_INTERFACE_DEFINED__
+#define __IAudioStreamVolume_INTERFACE_DEFINED__
+
+/* interface IAudioStreamVolume */
+/* [local][unique][uuid][object] */
+
+
+EXTERN_C const IID IID_IAudioStreamVolume;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("93014887-242D-4068-8A15-CF5E93B90FE3")
+ IAudioStreamVolume : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
+ /* [out] */
+ __out UINT32 *pdwCount) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
+ /* [in] */
+ __in UINT32 dwIndex,
+ /* [in] */
+ __in const float fLevel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
+ /* [in] */
+ __in UINT32 dwIndex,
+ /* [out] */
+ __out float *pfLevel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
+ /* [in] */
+ __in UINT32 dwCount,
+ /* [size_is][in] */
+ __in_ecount(dwCount) const float *pfVolumes) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
+ /* [in] */
+ __in UINT32 dwCount,
+ /* [size_is][out] */
+ __out_ecount(dwCount) float *pfVolumes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IAudioStreamVolumeVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IAudioStreamVolume * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IAudioStreamVolume * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IAudioStreamVolume * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )(
+ IAudioStreamVolume * This,
+ /* [out] */
+ __out UINT32 *pdwCount);
+
+ HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )(
+ IAudioStreamVolume * This,
+ /* [in] */
+ __in UINT32 dwIndex,
+ /* [in] */
+ __in const float fLevel);
+
+ HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )(
+ IAudioStreamVolume * This,
+ /* [in] */
+ __in UINT32 dwIndex,
+ /* [out] */
+ __out float *pfLevel);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )(
+ IAudioStreamVolume * This,
+ /* [in] */
+ __in UINT32 dwCount,
+ /* [size_is][in] */
+ __in_ecount(dwCount) const float *pfVolumes);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )(
+ IAudioStreamVolume * This,
+ /* [in] */
+ __in UINT32 dwCount,
+ /* [size_is][out] */
+ __out_ecount(dwCount) float *pfVolumes);
+
+ END_INTERFACE
+ } IAudioStreamVolumeVtbl;
+
+ interface IAudioStreamVolume
+ {
+ CONST_VTBL struct IAudioStreamVolumeVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IAudioStreamVolume_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IAudioStreamVolume_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IAudioStreamVolume_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IAudioStreamVolume_GetChannelCount(This,pdwCount) \
+ ( (This)->lpVtbl -> GetChannelCount(This,pdwCount) )
+
+#define IAudioStreamVolume_SetChannelVolume(This,dwIndex,fLevel) \
+ ( (This)->lpVtbl -> SetChannelVolume(This,dwIndex,fLevel) )
+
+#define IAudioStreamVolume_GetChannelVolume(This,dwIndex,pfLevel) \
+ ( (This)->lpVtbl -> GetChannelVolume(This,dwIndex,pfLevel) )
+
+#define IAudioStreamVolume_SetAllVolumes(This,dwCount,pfVolumes) \
+ ( (This)->lpVtbl -> SetAllVolumes(This,dwCount,pfVolumes) )
+
+#define IAudioStreamVolume_GetAllVolumes(This,dwCount,pfVolumes) \
+ ( (This)->lpVtbl -> GetAllVolumes(This,dwCount,pfVolumes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IAudioStreamVolume_INTERFACE_DEFINED__ */
+
+
+#ifndef __IChannelAudioVolume_INTERFACE_DEFINED__
+#define __IChannelAudioVolume_INTERFACE_DEFINED__
+
+/* interface IChannelAudioVolume */
+/* [local][unique][uuid][object] */
+
+
+EXTERN_C const IID IID_IChannelAudioVolume;
+
+#if defined(__cplusplus) && !defined(CINTERFACE)
+
+ MIDL_INTERFACE("1C158861-B533-4B30-B1CF-E853E51C59B8")
+ IChannelAudioVolume : public IUnknown
+ {
+ public:
+ virtual HRESULT STDMETHODCALLTYPE GetChannelCount(
+ /* [out] */
+ __out UINT32 *pdwCount) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetChannelVolume(
+ /* [in] */
+ __in UINT32 dwIndex,
+ /* [in] */
+ __in const float fLevel,
+ /* [unique][in] */ LPCGUID EventContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetChannelVolume(
+ /* [in] */
+ __in UINT32 dwIndex,
+ /* [out] */
+ __out float *pfLevel) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE SetAllVolumes(
+ /* [in] */
+ __in UINT32 dwCount,
+ /* [size_is][in] */
+ __in_ecount(dwCount) const float *pfVolumes,
+ /* [unique][in] */ LPCGUID EventContext) = 0;
+
+ virtual HRESULT STDMETHODCALLTYPE GetAllVolumes(
+ /* [in] */
+ __in UINT32 dwCount,
+ /* [size_is][out] */
+ __out_ecount(dwCount) float *pfVolumes) = 0;
+
+ };
+
+#else /* C style interface */
+
+ typedef struct IChannelAudioVolumeVtbl
+ {
+ BEGIN_INTERFACE
+
+ HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
+ IChannelAudioVolume * This,
+ /* [in] */ REFIID riid,
+ /* [iid_is][out] */
+ __RPC__deref_out void **ppvObject);
+
+ ULONG ( STDMETHODCALLTYPE *AddRef )(
+ IChannelAudioVolume * This);
+
+ ULONG ( STDMETHODCALLTYPE *Release )(
+ IChannelAudioVolume * This);
+
+ HRESULT ( STDMETHODCALLTYPE *GetChannelCount )(
+ IChannelAudioVolume * This,
+ /* [out] */
+ __out UINT32 *pdwCount);
+
+ HRESULT ( STDMETHODCALLTYPE *SetChannelVolume )(
+ IChannelAudioVolume * This,
+ /* [in] */
+ __in UINT32 dwIndex,
+ /* [in] */
+ __in const float fLevel,
+ /* [unique][in] */ LPCGUID EventContext);
+
+ HRESULT ( STDMETHODCALLTYPE *GetChannelVolume )(
+ IChannelAudioVolume * This,
+ /* [in] */
+ __in UINT32 dwIndex,
+ /* [out] */
+ __out float *pfLevel);
+
+ HRESULT ( STDMETHODCALLTYPE *SetAllVolumes )(
+ IChannelAudioVolume * This,
+ /* [in] */
+ __in UINT32 dwCount,
+ /* [size_is][in] */
+ __in_ecount(dwCount) const float *pfVolumes,
+ /* [unique][in] */ LPCGUID EventContext);
+
+ HRESULT ( STDMETHODCALLTYPE *GetAllVolumes )(
+ IChannelAudioVolume * This,
+ /* [in] */
+ __in UINT32 dwCount,
+ /* [size_is][out] */
+ __out_ecount(dwCount) float *pfVolumes);
+
+ END_INTERFACE
+ } IChannelAudioVolumeVtbl;
+
+ interface IChannelAudioVolume
+ {
+ CONST_VTBL struct IChannelAudioVolumeVtbl *lpVtbl;
+ };
+
+
+
+#ifdef COBJMACROS
+
+
+#define IChannelAudioVolume_QueryInterface(This,riid,ppvObject) \
+ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
+
+#define IChannelAudioVolume_AddRef(This) \
+ ( (This)->lpVtbl -> AddRef(This) )
+
+#define IChannelAudioVolume_Release(This) \
+ ( (This)->lpVtbl -> Release(This) )
+
+
+#define IChannelAudioVolume_GetChannelCount(This,pdwCount) \
+ ( (This)->lpVtbl -> GetChannelCount(This,pdwCount) )
+
+#define IChannelAudioVolume_SetChannelVolume(This,dwIndex,fLevel,EventContext) \
+ ( (This)->lpVtbl -> SetChannelVolume(This,dwIndex,fLevel,EventContext) )
+
+#define IChannelAudioVolume_GetChannelVolume(This,dwIndex,pfLevel) \
+ ( (This)->lpVtbl -> GetChannelVolume(This,dwIndex,pfLevel) )
+
+#define IChannelAudioVolume_SetAllVolumes(This,dwCount,pfVolumes,EventContext) \
+ ( (This)->lpVtbl -> SetAllVolumes(This,dwCount,pfVolumes,EventContext) )
+
+#define IChannelAudioVolume_GetAllVolumes(This,dwCount,pfVolumes) \
+ ( (This)->lpVtbl -> GetAllVolumes(This,dwCount,pfVolumes) )
+
+#endif /* COBJMACROS */
+
+
+#endif /* C style interface */
+
+
+
+
+#endif /* __IChannelAudioVolume_INTERFACE_DEFINED__ */
+
+
+/* interface __MIDL_itf_audioclient_0000_0007 */
+/* [local] */
+
+#define FACILITY_AUDCLNT 0x889
+#define AUDCLNT_ERR(n) MAKE_HRESULT(SEVERITY_ERROR, FACILITY_AUDCLNT, n)
+#define AUDCLNT_SUCCESS(n) MAKE_SCODE(SEVERITY_SUCCESS, FACILITY_AUDCLNT, n)
+#define AUDCLNT_E_NOT_INITIALIZED AUDCLNT_ERR(0x001)
+#define AUDCLNT_E_ALREADY_INITIALIZED AUDCLNT_ERR(0x002)
+#define AUDCLNT_E_WRONG_ENDPOINT_TYPE AUDCLNT_ERR(0x003)
+#define AUDCLNT_E_DEVICE_INVALIDATED AUDCLNT_ERR(0x004)
+#define AUDCLNT_E_NOT_STOPPED AUDCLNT_ERR(0x005)
+#define AUDCLNT_E_BUFFER_TOO_LARGE AUDCLNT_ERR(0x006)
+#define AUDCLNT_E_OUT_OF_ORDER AUDCLNT_ERR(0x007)
+#define AUDCLNT_E_UNSUPPORTED_FORMAT AUDCLNT_ERR(0x008)
+#define AUDCLNT_E_INVALID_SIZE AUDCLNT_ERR(0x009)
+#define AUDCLNT_E_DEVICE_IN_USE AUDCLNT_ERR(0x00a)
+#define AUDCLNT_E_BUFFER_OPERATION_PENDING AUDCLNT_ERR(0x00b)
+#define AUDCLNT_E_THREAD_NOT_REGISTERED AUDCLNT_ERR(0x00c)
+#define AUDCLNT_E_EXCLUSIVE_MODE_NOT_ALLOWED AUDCLNT_ERR(0x00e)
+#define AUDCLNT_E_ENDPOINT_CREATE_FAILED AUDCLNT_ERR(0x00f)
+#define AUDCLNT_E_SERVICE_NOT_RUNNING AUDCLNT_ERR(0x010)
+#define AUDCLNT_E_EVENTHANDLE_NOT_EXPECTED AUDCLNT_ERR(0x011)
+#define AUDCLNT_E_EXCLUSIVE_MODE_ONLY AUDCLNT_ERR(0x012)
+#define AUDCLNT_E_BUFDURATION_PERIOD_NOT_EQUAL AUDCLNT_ERR(0x013)
+#define AUDCLNT_E_EVENTHANDLE_NOT_SET AUDCLNT_ERR(0x014)
+#define AUDCLNT_E_INCORRECT_BUFFER_SIZE AUDCLNT_ERR(0x015)
+#define AUDCLNT_E_BUFFER_SIZE_ERROR AUDCLNT_ERR(0x016)
+#define AUDCLNT_E_CPUUSAGE_EXCEEDED AUDCLNT_ERR(0x017)
+#define AUDCLNT_S_BUFFER_EMPTY AUDCLNT_SUCCESS(0x001)
+#define AUDCLNT_S_THREAD_ALREADY_REGISTERED AUDCLNT_SUCCESS(0x002)
+#define AUDCLNT_S_POSITION_STALLED AUDCLNT_SUCCESS(0x003)
+
+
+extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0007_v0_0_c_ifspec;
+extern RPC_IF_HANDLE __MIDL_itf_audioclient_0000_0007_v0_0_s_ifspec;
+
+/* Additional Prototypes for ALL interfaces */
+
+/* end of Additional Prototypes */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
+
+