This file is indexed.

/usr/x86_64-w64-mingw32/include/audioengineendpoint.h is in mingw-w64-x86-64-dev 2.0.3-1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
/**
 * This file has no copyright assigned and is placed in the Public Domain.
 * This file is part of the w64 mingw-runtime package.
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
 */
#ifndef __INC_AUDIOENGINEENDPOINT__
#define __INC_AUDIOENGINEENDPOINT__

#include <endpointvolume.h>
#include <audioapotypes.h>

#if (_WIN32_WINNT >= 0x0601)
#ifdef __cplusplus
extern "C" {
#endif

typedef LONGLONG HNSTIME;

typedef enum AE_POSITION_FLAGS {
  POSITION_INVALID         = 0,
  POSITION_DISCONTINUOUS   = 1,
  POSITION_CONTINUOUS      = 2,
  POSITION_QPC_ERROR       = 4 
} AE_POSITION_FLAGS;

typedef struct AE_CURRENT_POSITION {
  UINT64            u64DevicePosition;
  UINT64            u64StreamPosition;
  UINT64            u64PaddingFrames;
  HNSTIME           hnsQPCPosition;
  FLOAT32           f32FramesPerSecond;
  AE_POSITION_FLAGS Flag;
} AE_CURRENT_POSITION, *PAE_CURRENT_POSITION;

typedef struct _AUDIO_ENDPOINT_EXCLUSIVE_CREATE_PARAMS {
  UINT32       u32Size;
  LONGLONG     hConnection;
  WINBOOL      bIsRtCapable;
  HNSTIME      hnsBufferDuration;
  HNSTIME      hnsPeriod;
  UINT32       u32LatencyCoefficient;
  WAVEFORMATEX wfxDeviceFormat;
} AUDIO_ENDPOINT_EXCLUSIVE_CREATE_PARAMS, *PAUDIO_ENDPOINT_EXCLUSIVE_CREATE_PARAMS;

typedef struct _AUDIO_ENDPOINT_SHARED_CREATE_PARAMS {
  UINT32 u32Size;
  UINT32 u32TSSessionId;
} AUDIO_ENDPOINT_SHARED_CREATE_PARAMS, *PAUDIO_ENDPOINT_SHARED_CREATE_PARAMS;

#ifdef __cplusplus
}
#endif

#ifndef __IAudioDeviceEndpoint_FWD_DEFINED__
#define __IAudioDeviceEndpoint_FWD_DEFINED__
typedef struct IAudioDeviceEndpoint IAudioDeviceEndpoint;
#endif

#ifndef __IAudioEndpoint_FWD_DEFINED__
#define __IAudioEndpoint_FWD_DEFINED__
typedef struct IAudioEndpoint IAudioEndpoint;
#endif

#ifndef __IAudioEndpointControl_FWD_DEFINED__
#define __IAudioEndpointControl_FWD_DEFINED__
typedef struct IAudioEndpointControl IAudioEndpointControl;
#endif

#ifndef __IAudioEndpointRT_FWD_DEFINED__
#define __IAudioEndpointRT_FWD_DEFINED__
typedef struct IAudioEndpointRT IAudioEndpointRT;
#endif

#ifndef __IAudioEndpointVolumeEx_FWD_DEFINED__
#define __IAudioEndpointVolumeEx_FWD_DEFINED__
typedef struct IAudioEndpointVolumeEx IAudioEndpointVolumeEx;
#endif

#ifndef __IAudioInputEndpointRT_FWD_DEFINED__
#define __IAudioInputEndpointRT_FWD_DEFINED__
typedef struct IAudioInputEndpointRT IAudioInputEndpointRT;
#endif

#ifndef __IAudioInputEndpointRT_FWD_DEFINED__
#define __IAudioInputEndpointRT_FWD_DEFINED__
typedef struct IAudioOutputEndpointRT IAudioOutputEndpointRT;
#endif

#undef  INTERFACE
#define INTERFACE IAudioDeviceEndpoint
#ifdef __GNUC__
#warning COM interfaces layout in this header has not been verified.
#warning COM interfaces with incorrect layout may not work at all.
__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
DECLARE_INTERFACE_(IAudioDeviceEndpoint,IUnknown)
{
    BEGIN_INTERFACE

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IAudioDeviceEndpoint methods */
    STDMETHOD_(HRESULT,GetEventDrivenCapable)(THIS_ WINBOOL *pbIsEventCapable) PURE;
    STDMETHOD_(HRESULT,GetRTCaps)(THIS_ WINBOOL *pbIsRTCapable) PURE;
    STDMETHOD_(HRESULT,SetBuffer)(THIS_ HNSTIME MaxPeriod,UINT32 u32LatencyCoefficient) PURE;
    STDMETHOD_(HRESULT,WriteExclusiveModeParametersToSharedMemory)(THIS_ UINT_PTR hTargetProcess,HNSTIME hnsPeriod,HNSTIME hnsBufferDuration,UINT32 u32LatencyCoefficient,UINT32 *pu32SharedMemorySize,UINT_PTR *phSharedMemory) PURE;

    END_INTERFACE
};
#ifdef COBJMACROS
#define IAudioDeviceEndpoint_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IAudioDeviceEndpoint_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IAudioDeviceEndpoint_Release(This) (This)->lpVtbl->Release(This)
#define IAudioDeviceEndpoint_GetEventDrivenCapable(This,pbIsEventCapable) (This)->lpVtbl->GetEventDrivenCapable(This,pbIsEventCapable)
#define IAudioDeviceEndpoint_GetRTCaps(This,pbIsRTCapable) (This)->lpVtbl->GetRTCaps(This,pbIsRTCapable)
#define IAudioDeviceEndpoint_SetBuffer(This,MaxPeriod,u32LatencyCoefficient) (This)->lpVtbl->SetBuffer(This,MaxPeriod,u32LatencyCoefficient)
#define IAudioDeviceEndpoint_WriteExclusiveModeParametersToSharedMemory(This,hTargetProcess,hnsPeriod,hnsBufferDuration,u32LatencyCoefficient,pu32SharedMemorySize,phSharedMemory) (This)->lpVtbl->WriteExclusiveModeParametersToSharedMemory(This,hTargetProcess,hnsPeriod,hnsBufferDuration,u32LatencyCoefficient,pu32SharedMemorySize,phSharedMemory)
#endif /*COBJMACROS*/

#undef  INTERFACE
#define INTERFACE IAudioEndpoint
#ifdef __GNUC__
#warning COM interfaces layout in this header has not been verified.
#warning COM interfaces with incorrect layout may not work at all.
__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
DECLARE_INTERFACE_(IAudioEndpoint,IUnknown)
{
    BEGIN_INTERFACE

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IAudioEndpoint methods */
    STDMETHOD_(HRESULT,GetFrameFormat)(THIS_ WAVEFORMATEX **ppFormat) PURE;
    STDMETHOD_(HRESULT,GetFramesPerPacket)(THIS_ UINT32 *pFramesPerPacket) PURE;
    STDMETHOD_(HRESULT,GetLatency)(THIS_ HNSTIME *pLatency) PURE;
    STDMETHOD_(HRESULT,SetEventHandle)(THIS_ HANDLE eventHandle) PURE;
    STDMETHOD_(HRESULT,SetStreamFlags)(THIS_ DWORD streamFlags) PURE;

    END_INTERFACE
};
#ifdef COBJMACROS
#define IAudioEndpoint_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IAudioEndpoint_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IAudioEndpoint_Release(This) (This)->lpVtbl->Release(This)
#define IAudioEndpoint_GetFrameFormat(This,ppFormat) (This)->lpVtbl->GetFrameFormat(This,ppFormat)
#define IAudioEndpoint_GetFramesPerPacket(This,pFramesPerPacket) (This)->lpVtbl->GetFramesPerPacket(This,pFramesPerPacket)
#define IAudioEndpoint_GetLatency(This,pLatency) (This)->lpVtbl->GetLatency(This,pLatency)
#define IAudioEndpoint_SetEventHandle(This,eventHandle) (This)->lpVtbl->SetEventHandle(This,eventHandle)
#define IAudioEndpoint_SetStreamFlags(This,streamFlags) (This)->lpVtbl->SetStreamFlags(This,streamFlags)
#endif /*COBJMACROS*/

#undef  INTERFACE
#define INTERFACE IAudioEndpointControl
#ifdef __GNUC__
#warning COM interfaces layout in this header has not been verified.
#warning COM interfaces with incorrect layout may not work at all.
__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
DECLARE_INTERFACE_(IAudioEndpointControl,IUnknown)
{
    BEGIN_INTERFACE

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IAudioEndpointControl methods */
    STDMETHOD_(HRESULT,Reset)(THIS) PURE;
    STDMETHOD_(HRESULT,Start)(THIS) PURE;
    STDMETHOD_(HRESULT,Stop)(THIS) PURE;

    END_INTERFACE
};
#ifdef COBJMACROS
#define IAudioEndpointControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IAudioEndpointControl_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IAudioEndpointControl_Release(This) (This)->lpVtbl->Release(This)
#define IAudioEndpointControl_Reset() (This)->lpVtbl->Reset(This)
#define IAudioEndpointControl_Start() (This)->lpVtbl->Start(This)
#define IAudioEndpointControl_Stop() (This)->lpVtbl->Stop(This)
#endif /*COBJMACROS*/

#undef  INTERFACE
#define INTERFACE IAudioEndpointRT
#ifdef __GNUC__
#warning COM interfaces layout in this header has not been verified.
#warning COM interfaces with incorrect layout may not work at all.
__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
DECLARE_INTERFACE_(IAudioEndpointRT,IUnknown)
{
    BEGIN_INTERFACE

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IAudioEndpointRT methods */
    STDMETHOD(GetCurrentPadding)(THIS_ HNSTIME *pPadding,AE_CURRENT_POSITION *pAeCurrentPosition) PURE;
    STDMETHOD(ProcessingComplete)(THIS) PURE;
    STDMETHOD_(HRESULT,SetPinActive)(THIS) PURE;
    STDMETHOD_(HRESULT,SetPinInactive)(THIS) PURE;

    END_INTERFACE
};
#ifdef COBJMACROS
#define IAudioEndpointRT_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IAudioEndpointRT_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IAudioEndpointRT_Release(This) (This)->lpVtbl->Release(This)
#define IAudioEndpointRT_GetCurrentPadding(This,pPadding,pAeCurrentPosition) (This)->lpVtbl->GetCurrentPadding(This,pPadding,pAeCurrentPosition)
#define IAudioEndpointRT_ProcessingComplete() (This)->lpVtbl->ProcessingComplete(This)
#define IAudioEndpointRT_SetPinActive() (This)->lpVtbl->SetPinActive(This)
#define IAudioEndpointRT_SetPinInactive() (This)->lpVtbl->SetPinInactive(This)
#endif /*COBJMACROS*/

#undef  INTERFACE
#define INTERFACE IAudioEndpointVolumeEx
#ifdef __GNUC__
#warning COM interfaces layout in this header has not been verified.
#warning COM interfaces with incorrect layout may not work at all.
__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
DECLARE_INTERFACE_(IAudioEndpointVolumeEx,IAudioEndpointVolume)
{
    BEGIN_INTERFACE

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IAudioEndpointVolume methods */
    STDMETHOD_(HRESULT,GetChannelCount)(THIS_ UINT *pnChannelCount) PURE;
    STDMETHOD_(HRESULT,GetChannelVolumeLevel)(THIS_ UINT nChannel,float *pfLevelDB) PURE;
    STDMETHOD_(HRESULT,GetChannelVolumeLevelScalar)(THIS_ UINT nChannel,float *pfLevel) PURE;
    STDMETHOD_(HRESULT,GetMasterVolumeLevel)(THIS_ float *pfLevelDB) PURE;
    STDMETHOD_(HRESULT,GetMasterVolumeLevelScalar)(THIS_ float *pfLevel) PURE;
    STDMETHOD_(HRESULT,GetMute)(THIS_ WINBOOL *pbMute) PURE;
    STDMETHOD_(HRESULT,GetVolumeRange)(THIS_ float *pfLevelMinDB,float *pfLevelMaxDB,float *pfVolumeIncrementDB) PURE;
    STDMETHOD_(HRESULT,GetVolumeStepInfo)(THIS_ UINT *pnStep,UINT *pnStepCount) PURE;
    STDMETHOD_(HRESULT,QueryHardwareSupport)(THIS_ DWORD *pdwHardwareSupportMask) PURE;
    STDMETHOD_(HRESULT,RegisterControlChangeNotify)(THIS_ IAudioEndpointVolumeCallback *pNotify) PURE;
    STDMETHOD_(HRESULT,SetChannelVolumeLevel)(THIS_ UINT nChannel,float fLevelDB,LPCGUID pguidEventContext) PURE;
    STDMETHOD_(HRESULT,SetChannelVolumeLevelScalar)(THIS_ UINT nChannel,float fLevel,LPCGUID pguidEventContext) PURE;
    STDMETHOD_(HRESULT,SetMasterVolumeLevel)(THIS_ float fLevelDB,LPCGUID pguidEventContext) PURE;
    STDMETHOD_(HRESULT,SetMasterVolumeLevelScalar)(THIS_ float fLevel,LPCGUID pguidEventContext) PURE;
    STDMETHOD_(HRESULT,SetMute)(THIS_ WINBOOL bMute,LPCGUID pguidEventContext) PURE;
    STDMETHOD_(HRESULT,UnregisterControlChangeNotify)(THIS_ IAudioEndpointVolumeCallback *pNotify) PURE;
    STDMETHOD_(HRESULT,VolumeStepDown)(THIS_ LPCGUID pguidEventContext) PURE;
    STDMETHOD_(HRESULT,VolumeStepUp)(THIS_ LPCGUID pguidEventContext) PURE;

    /* IAudioEndpointVolumeEx methods */
    STDMETHOD_(HRESULT,GetVolumeRangeChannel)(THIS_ UINT iChannel,float *pflVolumeMinDB,float *pflVolumeMaxDB,float *pflVolumeIncrementDB) PURE;

    END_INTERFACE
};
#ifdef COBJMACROS
#define IAudioEndpointVolumeEx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IAudioEndpointVolumeEx_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IAudioEndpointVolumeEx_Release(This) (This)->lpVtbl->Release(This)
#define IAudioEndpointVolumeEx_GetChannelCount(This,pnChannelCount) (This)->lpVtbl->GetChannelCount(This,pnChannelCount)
#define IAudioEndpointVolumeEx_GetChannelVolumeLevel(This,nChannel,pfLevelDB) (This)->lpVtbl->GetChannelVolumeLevel(This,nChannel,pfLevelDB)
#define IAudioEndpointVolumeEx_GetChannelVolumeLevelScalar(This,nChannel,pfLevel) (This)->lpVtbl->GetChannelVolumeLevelScalar(This,nChannel,pfLevel)
#define IAudioEndpointVolumeEx_GetMasterVolumeLevel(This,pfLevelDB) (This)->lpVtbl->GetMasterVolumeLevel(This,pfLevelDB)
#define IAudioEndpointVolumeEx_GetMasterVolumeLevelScalar(This,pfLevel) (This)->lpVtbl->GetMasterVolumeLevelScalar(This,pfLevel)
#define IAudioEndpointVolumeEx_GetMute(This,pbMute) (This)->lpVtbl->GetMute(This,pbMute)
#define IAudioEndpointVolumeEx_GetVolumeRange(This,pfLevelMinDB,pfLevelMaxDB,pfVolumeIncrementDB) (This)->lpVtbl->GetVolumeRange(This,pfLevelMinDB,pfLevelMaxDB,pfVolumeIncrementDB)
#define IAudioEndpointVolumeEx_GetVolumeStepInfo(This,pnStep,pnStepCount) (This)->lpVtbl->GetVolumeStepInfo(This,pnStep,pnStepCount)
#define IAudioEndpointVolumeEx_QueryHardwareSupport(This,pdwHardwareSupportMask) (This)->lpVtbl->QueryHardwareSupport(This,pdwHardwareSupportMask)
#define IAudioEndpointVolumeEx_RegisterControlChangeNotify(This,pNotify) (This)->lpVtbl->RegisterControlChangeNotify(This,pNotify)
#define IAudioEndpointVolumeEx_SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext) (This)->lpVtbl->SetChannelVolumeLevel(This,nChannel,fLevelDB,pguidEventContext)
#define IAudioEndpointVolumeEx_SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext) (This)->lpVtbl->SetChannelVolumeLevelScalar(This,nChannel,fLevel,pguidEventContext)
#define IAudioEndpointVolumeEx_SetMasterVolumeLevel(This,fLevelDB,pguidEventContext) (This)->lpVtbl->SetMasterVolumeLevel(This,fLevelDB,pguidEventContext)
#define IAudioEndpointVolumeEx_SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext) (This)->lpVtbl->SetMasterVolumeLevelScalar(This,fLevel,pguidEventContext)
#define IAudioEndpointVolumeEx_SetMute(This,bMute,pguidEventContext) (This)->lpVtbl->SetMute(This,bMute,pguidEventContext)
#define IAudioEndpointVolumeEx_UnregisterControlChangeNotify(This,pNotify) (This)->lpVtbl->UnregisterControlChangeNotify(This,pNotify)
#define IAudioEndpointVolumeEx_VolumeStepDown(This,pguidEventContext) (This)->lpVtbl->VolumeStepDown(This,pguidEventContext)
#define IAudioEndpointVolumeEx_VolumeStepUp(This,pguidEventContext) (This)->lpVtbl->VolumeStepUp(This,pguidEventContext)
#define IAudioEndpointVolumeEx_GetVolumeRangeChannel(This,iChannel,pflVolumeMinDB,pflVolumeMaxDB,pflVolumeIncrementDB) (This)->lpVtbl->GetVolumeRangeChannel(This,iChannel,pflVolumeMinDB,pflVolumeMaxDB,pflVolumeIncrementDB)
#endif /*COBJMACROS*/

#undef  INTERFACE
#define INTERFACE IAudioInputEndpointRT
#ifdef __GNUC__
#warning COM interfaces layout in this header has not been verified.
#warning COM interfaces with incorrect layout may not work at all.
__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
DECLARE_INTERFACE_(IAudioInputEndpointRT,IUnknown)
{
    BEGIN_INTERFACE

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IAudioInputEndpointRT methods */
    STDMETHOD(GetInputDataPointer)(THIS_ AE_CURRENT_POSITION *pAeTimeStamp) PURE;
    STDMETHOD(PulseEndpoint)(THIS) PURE;
    STDMETHOD(ReleaseInputDataPointer)(THIS_ UINT32 u32FrameCount,UINT_PTR pDataPointer) PURE;

    END_INTERFACE
};
#ifdef COBJMACROS
#define IAudioInputEndpointRT_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IAudioInputEndpointRT_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IAudioInputEndpointRT_Release(This) (This)->lpVtbl->Release(This)
#define IAudioInputEndpointRT_GetInputDataPointer(This,pAeTimeStamp) (This)->lpVtbl->GetInputDataPointer(This,pAeTimeStamp)
#define IAudioInputEndpointRT_PulseEndpoint() (This)->lpVtbl->PulseEndpoint(This)
#define IAudioInputEndpointRT_ReleaseInputDataPointer(This,u32FrameCount,pDataPointer) (This)->lpVtbl->ReleaseInputDataPointer(This,u32FrameCount,pDataPointer)
#endif /*COBJMACROS*/

#undef  INTERFACE
#define INTERFACE IAudioOutputEndpointRT
#ifdef __GNUC__
#warning COM interfaces layout in this header has not been verified.
#warning COM interfaces with incorrect layout may not work at all.
__MINGW_BROKEN_INTERFACE(INTERFACE)
#endif
DECLARE_INTERFACE_(IAudioOutputEndpointRT,IUnknown)
{
    BEGIN_INTERFACE

    /* IUnknown methods */
    STDMETHOD(QueryInterface)(THIS_ REFIID riid, void **ppvObject) PURE;
    STDMETHOD_(ULONG, AddRef)(THIS) PURE;
    STDMETHOD_(ULONG, Release)(THIS) PURE;

    /* IAudioOutputEndpointRT methods */
    STDMETHOD_(UINT_PTR,GetOutputDataPointer)(THIS_ UINT32 u32FrameCount,AE_CURRENT_POSITION *pAeTimeStamp) PURE;
    STDMETHOD(PulseEndpoint)(THIS) PURE;
    STDMETHOD(ReleaseOutputDataPointer)(THIS_ const APO_CONNECTION_PROPERTY *pConnectionProperty) PURE;

    END_INTERFACE
};
#ifdef COBJMACROS
#define IAudioOutputEndpointRT_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
#define IAudioOutputEndpointRT_AddRef(This) (This)->lpVtbl->AddRef(This)
#define IAudioOutputEndpointRT_Release(This) (This)->lpVtbl->Release(This)
#define IAudioOutputEndpointRT_GetOutputDataPointer(This,u32FrameCount,pAeTimeStamp) (This)->lpVtbl->GetOutputDataPointer(This,u32FrameCount,pAeTimeStamp)
#define IAudioOutputEndpointRT_PulseEndpoint() (This)->lpVtbl->PulseEndpoint(This)
#define IAudioOutputEndpointRT_ReleaseOutputDataPointer(This,pConnectionProperty) (This)->lpVtbl->ReleaseOutputDataPointer(This,pConnectionProperty)
#endif /*COBJMACROS*/

#endif /*(_WIN32_WINNT >= 0x0601)*/
#endif /*_INC_AUDIOENGINEENDPOINT*/