master
  1/*** Autogenerated by WIDL 10.4 from include/austream.idl - Do not edit ***/
  2
  3#ifdef _WIN32
  4#ifndef __REQUIRED_RPCNDR_H_VERSION__
  5#define __REQUIRED_RPCNDR_H_VERSION__ 475
  6#endif
  7#include <rpc.h>
  8#include <rpcndr.h>
  9#endif
 10
 11#ifndef COM_NO_WINDOWS_H
 12#include <windows.h>
 13#include <ole2.h>
 14#endif
 15
 16#ifndef __austream_h__
 17#define __austream_h__
 18
 19/* Forward declarations */
 20
 21#ifndef __IAudioMediaStream_FWD_DEFINED__
 22#define __IAudioMediaStream_FWD_DEFINED__
 23typedef interface IAudioMediaStream IAudioMediaStream;
 24#ifdef __cplusplus
 25interface IAudioMediaStream;
 26#endif /* __cplusplus */
 27#endif
 28
 29#ifndef __IAudioStreamSample_FWD_DEFINED__
 30#define __IAudioStreamSample_FWD_DEFINED__
 31typedef interface IAudioStreamSample IAudioStreamSample;
 32#ifdef __cplusplus
 33interface IAudioStreamSample;
 34#endif /* __cplusplus */
 35#endif
 36
 37#ifndef __IMemoryData_FWD_DEFINED__
 38#define __IMemoryData_FWD_DEFINED__
 39typedef interface IMemoryData IMemoryData;
 40#ifdef __cplusplus
 41interface IMemoryData;
 42#endif /* __cplusplus */
 43#endif
 44
 45#ifndef __IAudioData_FWD_DEFINED__
 46#define __IAudioData_FWD_DEFINED__
 47typedef interface IAudioData IAudioData;
 48#ifdef __cplusplus
 49interface IAudioData;
 50#endif /* __cplusplus */
 51#endif
 52
 53/* Headers for imported files */
 54
 55#include <unknwn.h>
 56#include <mmstream.h>
 57
 58#ifdef __cplusplus
 59extern "C" {
 60#endif
 61
 62#if 0
 63typedef struct tWAVEFORMATEX WAVEFORMATEX;
 64#endif
 65#ifndef __IAudioMediaStream_FWD_DEFINED__
 66#define __IAudioMediaStream_FWD_DEFINED__
 67typedef interface IAudioMediaStream IAudioMediaStream;
 68#ifdef __cplusplus
 69interface IAudioMediaStream;
 70#endif /* __cplusplus */
 71#endif
 72
 73#ifndef __IAudioStreamSample_FWD_DEFINED__
 74#define __IAudioStreamSample_FWD_DEFINED__
 75typedef interface IAudioStreamSample IAudioStreamSample;
 76#ifdef __cplusplus
 77interface IAudioStreamSample;
 78#endif /* __cplusplus */
 79#endif
 80
 81#ifndef __IMemoryData_FWD_DEFINED__
 82#define __IMemoryData_FWD_DEFINED__
 83typedef interface IMemoryData IMemoryData;
 84#ifdef __cplusplus
 85interface IMemoryData;
 86#endif /* __cplusplus */
 87#endif
 88
 89#ifndef __IAudioData_FWD_DEFINED__
 90#define __IAudioData_FWD_DEFINED__
 91typedef interface IAudioData IAudioData;
 92#ifdef __cplusplus
 93interface IAudioData;
 94#endif /* __cplusplus */
 95#endif
 96
 97/*****************************************************************************
 98 * IAudioMediaStream interface
 99 */
100#ifndef __IAudioMediaStream_INTERFACE_DEFINED__
101#define __IAudioMediaStream_INTERFACE_DEFINED__
102
103DEFINE_GUID(IID_IAudioMediaStream, 0xf7537560, 0xa3be, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
104#if defined(__cplusplus) && !defined(CINTERFACE)
105MIDL_INTERFACE("f7537560-a3be-11d0-8212-00c04fc32c45")
106IAudioMediaStream : public IMediaStream
107{
108    virtual HRESULT STDMETHODCALLTYPE GetFormat(
109        WAVEFORMATEX *pWaveFormatCurrent) = 0;
110
111    virtual HRESULT STDMETHODCALLTYPE SetFormat(
112        const WAVEFORMATEX *lpWaveFormat) = 0;
113
114    virtual HRESULT STDMETHODCALLTYPE CreateSample(
115        IAudioData *pAudioData,
116        DWORD dwFlags,
117        IAudioStreamSample **ppSample) = 0;
118
119};
120#ifdef __CRT_UUID_DECL
121__CRT_UUID_DECL(IAudioMediaStream, 0xf7537560, 0xa3be, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
122#endif
123#else
124typedef struct IAudioMediaStreamVtbl {
125    BEGIN_INTERFACE
126
127    /*** IUnknown methods ***/
128    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
129        IAudioMediaStream *This,
130        REFIID riid,
131        void **ppvObject);
132
133    ULONG (STDMETHODCALLTYPE *AddRef)(
134        IAudioMediaStream *This);
135
136    ULONG (STDMETHODCALLTYPE *Release)(
137        IAudioMediaStream *This);
138
139    /*** IMediaStream methods ***/
140    HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
141        IAudioMediaStream *This,
142        IMultiMediaStream **ppMultiMediaStream);
143
144    HRESULT (STDMETHODCALLTYPE *GetInformation)(
145        IAudioMediaStream *This,
146        MSPID *pPurposeId,
147        STREAM_TYPE *pType);
148
149    HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
150        IAudioMediaStream *This,
151        IMediaStream *pStreamThatHasDesiredFormat,
152        DWORD dwFlags);
153
154    HRESULT (STDMETHODCALLTYPE *AllocateSample)(
155        IAudioMediaStream *This,
156        DWORD dwFlags,
157        IStreamSample **ppSample);
158
159    HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
160        IAudioMediaStream *This,
161        IStreamSample *pExistingSample,
162        DWORD dwFlags,
163        IStreamSample **ppNewSample);
164
165    HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
166        IAudioMediaStream *This,
167        DWORD dwFlags);
168
169    /*** IAudioMediaStream methods ***/
170    HRESULT (STDMETHODCALLTYPE *GetFormat)(
171        IAudioMediaStream *This,
172        WAVEFORMATEX *pWaveFormatCurrent);
173
174    HRESULT (STDMETHODCALLTYPE *SetFormat)(
175        IAudioMediaStream *This,
176        const WAVEFORMATEX *lpWaveFormat);
177
178    HRESULT (STDMETHODCALLTYPE *CreateSample)(
179        IAudioMediaStream *This,
180        IAudioData *pAudioData,
181        DWORD dwFlags,
182        IAudioStreamSample **ppSample);
183
184    END_INTERFACE
185} IAudioMediaStreamVtbl;
186
187interface IAudioMediaStream {
188    CONST_VTBL IAudioMediaStreamVtbl* lpVtbl;
189};
190
191#ifdef COBJMACROS
192#ifndef WIDL_C_INLINE_WRAPPERS
193/*** IUnknown methods ***/
194#define IAudioMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
195#define IAudioMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
196#define IAudioMediaStream_Release(This) (This)->lpVtbl->Release(This)
197/*** IMediaStream methods ***/
198#define IAudioMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
199#define IAudioMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
200#define IAudioMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
201#define IAudioMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
202#define IAudioMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
203#define IAudioMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
204/*** IAudioMediaStream methods ***/
205#define IAudioMediaStream_GetFormat(This,pWaveFormatCurrent) (This)->lpVtbl->GetFormat(This,pWaveFormatCurrent)
206#define IAudioMediaStream_SetFormat(This,lpWaveFormat) (This)->lpVtbl->SetFormat(This,lpWaveFormat)
207#define IAudioMediaStream_CreateSample(This,pAudioData,dwFlags,ppSample) (This)->lpVtbl->CreateSample(This,pAudioData,dwFlags,ppSample)
208#else
209/*** IUnknown methods ***/
210static inline HRESULT IAudioMediaStream_QueryInterface(IAudioMediaStream* This,REFIID riid,void **ppvObject) {
211    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
212}
213static inline ULONG IAudioMediaStream_AddRef(IAudioMediaStream* This) {
214    return This->lpVtbl->AddRef(This);
215}
216static inline ULONG IAudioMediaStream_Release(IAudioMediaStream* This) {
217    return This->lpVtbl->Release(This);
218}
219/*** IMediaStream methods ***/
220static inline HRESULT IAudioMediaStream_GetMultiMediaStream(IAudioMediaStream* This,IMultiMediaStream **ppMultiMediaStream) {
221    return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
222}
223static inline HRESULT IAudioMediaStream_GetInformation(IAudioMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
224    return This->lpVtbl->GetInformation(This,pPurposeId,pType);
225}
226static inline HRESULT IAudioMediaStream_SetSameFormat(IAudioMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
227    return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
228}
229static inline HRESULT IAudioMediaStream_AllocateSample(IAudioMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) {
230    return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
231}
232static inline HRESULT IAudioMediaStream_CreateSharedSample(IAudioMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
233    return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
234}
235static inline HRESULT IAudioMediaStream_SendEndOfStream(IAudioMediaStream* This,DWORD dwFlags) {
236    return This->lpVtbl->SendEndOfStream(This,dwFlags);
237}
238/*** IAudioMediaStream methods ***/
239static inline HRESULT IAudioMediaStream_GetFormat(IAudioMediaStream* This,WAVEFORMATEX *pWaveFormatCurrent) {
240    return This->lpVtbl->GetFormat(This,pWaveFormatCurrent);
241}
242static inline HRESULT IAudioMediaStream_SetFormat(IAudioMediaStream* This,const WAVEFORMATEX *lpWaveFormat) {
243    return This->lpVtbl->SetFormat(This,lpWaveFormat);
244}
245static inline HRESULT IAudioMediaStream_CreateSample(IAudioMediaStream* This,IAudioData *pAudioData,DWORD dwFlags,IAudioStreamSample **ppSample) {
246    return This->lpVtbl->CreateSample(This,pAudioData,dwFlags,ppSample);
247}
248#endif
249#endif
250
251#endif
252
253
254#endif  /* __IAudioMediaStream_INTERFACE_DEFINED__ */
255
256/*****************************************************************************
257 * IAudioStreamSample interface
258 */
259#ifndef __IAudioStreamSample_INTERFACE_DEFINED__
260#define __IAudioStreamSample_INTERFACE_DEFINED__
261
262DEFINE_GUID(IID_IAudioStreamSample, 0x345fee00, 0xaba5, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
263#if defined(__cplusplus) && !defined(CINTERFACE)
264MIDL_INTERFACE("345fee00-aba5-11d0-8212-00c04fc32c45")
265IAudioStreamSample : public IStreamSample
266{
267    virtual HRESULT STDMETHODCALLTYPE GetAudioData(
268        IAudioData **ppAudio) = 0;
269
270};
271#ifdef __CRT_UUID_DECL
272__CRT_UUID_DECL(IAudioStreamSample, 0x345fee00, 0xaba5, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
273#endif
274#else
275typedef struct IAudioStreamSampleVtbl {
276    BEGIN_INTERFACE
277
278    /*** IUnknown methods ***/
279    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
280        IAudioStreamSample *This,
281        REFIID riid,
282        void **ppvObject);
283
284    ULONG (STDMETHODCALLTYPE *AddRef)(
285        IAudioStreamSample *This);
286
287    ULONG (STDMETHODCALLTYPE *Release)(
288        IAudioStreamSample *This);
289
290    /*** IStreamSample methods ***/
291    HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
292        IAudioStreamSample *This,
293        IMediaStream **ppMediaStream);
294
295    HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
296        IAudioStreamSample *This,
297        STREAM_TIME *pStartTime,
298        STREAM_TIME *pEndTime,
299        STREAM_TIME *pCurrentTime);
300
301    HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
302        IAudioStreamSample *This,
303        const STREAM_TIME *pStartTime,
304        const STREAM_TIME *pEndTime);
305
306    HRESULT (STDMETHODCALLTYPE *Update)(
307        IAudioStreamSample *This,
308        DWORD dwFlags,
309        HANDLE hEvent,
310        PAPCFUNC pfnAPC,
311        DWORD dwAPCData);
312
313    HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
314        IAudioStreamSample *This,
315        DWORD dwFlags,
316        DWORD dwMilliseconds);
317
318    /*** IAudioStreamSample methods ***/
319    HRESULT (STDMETHODCALLTYPE *GetAudioData)(
320        IAudioStreamSample *This,
321        IAudioData **ppAudio);
322
323    END_INTERFACE
324} IAudioStreamSampleVtbl;
325
326interface IAudioStreamSample {
327    CONST_VTBL IAudioStreamSampleVtbl* lpVtbl;
328};
329
330#ifdef COBJMACROS
331#ifndef WIDL_C_INLINE_WRAPPERS
332/*** IUnknown methods ***/
333#define IAudioStreamSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
334#define IAudioStreamSample_AddRef(This) (This)->lpVtbl->AddRef(This)
335#define IAudioStreamSample_Release(This) (This)->lpVtbl->Release(This)
336/*** IStreamSample methods ***/
337#define IAudioStreamSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream)
338#define IAudioStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
339#define IAudioStreamSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime)
340#define IAudioStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
341#define IAudioStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds)
342/*** IAudioStreamSample methods ***/
343#define IAudioStreamSample_GetAudioData(This,ppAudio) (This)->lpVtbl->GetAudioData(This,ppAudio)
344#else
345/*** IUnknown methods ***/
346static inline HRESULT IAudioStreamSample_QueryInterface(IAudioStreamSample* This,REFIID riid,void **ppvObject) {
347    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
348}
349static inline ULONG IAudioStreamSample_AddRef(IAudioStreamSample* This) {
350    return This->lpVtbl->AddRef(This);
351}
352static inline ULONG IAudioStreamSample_Release(IAudioStreamSample* This) {
353    return This->lpVtbl->Release(This);
354}
355/*** IStreamSample methods ***/
356static inline HRESULT IAudioStreamSample_GetMediaStream(IAudioStreamSample* This,IMediaStream **ppMediaStream) {
357    return This->lpVtbl->GetMediaStream(This,ppMediaStream);
358}
359static inline HRESULT IAudioStreamSample_GetSampleTimes(IAudioStreamSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) {
360    return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime);
361}
362static inline HRESULT IAudioStreamSample_SetSampleTimes(IAudioStreamSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) {
363    return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime);
364}
365static inline HRESULT IAudioStreamSample_Update(IAudioStreamSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) {
366    return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData);
367}
368static inline HRESULT IAudioStreamSample_CompletionStatus(IAudioStreamSample* This,DWORD dwFlags,DWORD dwMilliseconds) {
369    return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds);
370}
371/*** IAudioStreamSample methods ***/
372static inline HRESULT IAudioStreamSample_GetAudioData(IAudioStreamSample* This,IAudioData **ppAudio) {
373    return This->lpVtbl->GetAudioData(This,ppAudio);
374}
375#endif
376#endif
377
378#endif
379
380
381#endif  /* __IAudioStreamSample_INTERFACE_DEFINED__ */
382
383/*****************************************************************************
384 * IMemoryData interface
385 */
386#ifndef __IMemoryData_INTERFACE_DEFINED__
387#define __IMemoryData_INTERFACE_DEFINED__
388
389DEFINE_GUID(IID_IMemoryData, 0x327fc560, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
390#if defined(__cplusplus) && !defined(CINTERFACE)
391MIDL_INTERFACE("327fc560-af60-11d0-8212-00c04fc32c45")
392IMemoryData : public IUnknown
393{
394    virtual HRESULT STDMETHODCALLTYPE SetBuffer(
395        DWORD cbSize,
396        BYTE *pbData,
397        DWORD dwFlags) = 0;
398
399    virtual HRESULT STDMETHODCALLTYPE GetInfo(
400        DWORD *pdwLength,
401        BYTE **ppbData,
402        DWORD *pcbActualData) = 0;
403
404    virtual HRESULT STDMETHODCALLTYPE SetActual(
405        DWORD cbDataValid) = 0;
406
407};
408#ifdef __CRT_UUID_DECL
409__CRT_UUID_DECL(IMemoryData, 0x327fc560, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
410#endif
411#else
412typedef struct IMemoryDataVtbl {
413    BEGIN_INTERFACE
414
415    /*** IUnknown methods ***/
416    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
417        IMemoryData *This,
418        REFIID riid,
419        void **ppvObject);
420
421    ULONG (STDMETHODCALLTYPE *AddRef)(
422        IMemoryData *This);
423
424    ULONG (STDMETHODCALLTYPE *Release)(
425        IMemoryData *This);
426
427    /*** IMemoryData methods ***/
428    HRESULT (STDMETHODCALLTYPE *SetBuffer)(
429        IMemoryData *This,
430        DWORD cbSize,
431        BYTE *pbData,
432        DWORD dwFlags);
433
434    HRESULT (STDMETHODCALLTYPE *GetInfo)(
435        IMemoryData *This,
436        DWORD *pdwLength,
437        BYTE **ppbData,
438        DWORD *pcbActualData);
439
440    HRESULT (STDMETHODCALLTYPE *SetActual)(
441        IMemoryData *This,
442        DWORD cbDataValid);
443
444    END_INTERFACE
445} IMemoryDataVtbl;
446
447interface IMemoryData {
448    CONST_VTBL IMemoryDataVtbl* lpVtbl;
449};
450
451#ifdef COBJMACROS
452#ifndef WIDL_C_INLINE_WRAPPERS
453/*** IUnknown methods ***/
454#define IMemoryData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
455#define IMemoryData_AddRef(This) (This)->lpVtbl->AddRef(This)
456#define IMemoryData_Release(This) (This)->lpVtbl->Release(This)
457/*** IMemoryData methods ***/
458#define IMemoryData_SetBuffer(This,cbSize,pbData,dwFlags) (This)->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags)
459#define IMemoryData_GetInfo(This,pdwLength,ppbData,pcbActualData) (This)->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData)
460#define IMemoryData_SetActual(This,cbDataValid) (This)->lpVtbl->SetActual(This,cbDataValid)
461#else
462/*** IUnknown methods ***/
463static inline HRESULT IMemoryData_QueryInterface(IMemoryData* This,REFIID riid,void **ppvObject) {
464    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
465}
466static inline ULONG IMemoryData_AddRef(IMemoryData* This) {
467    return This->lpVtbl->AddRef(This);
468}
469static inline ULONG IMemoryData_Release(IMemoryData* This) {
470    return This->lpVtbl->Release(This);
471}
472/*** IMemoryData methods ***/
473static inline HRESULT IMemoryData_SetBuffer(IMemoryData* This,DWORD cbSize,BYTE *pbData,DWORD dwFlags) {
474    return This->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags);
475}
476static inline HRESULT IMemoryData_GetInfo(IMemoryData* This,DWORD *pdwLength,BYTE **ppbData,DWORD *pcbActualData) {
477    return This->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData);
478}
479static inline HRESULT IMemoryData_SetActual(IMemoryData* This,DWORD cbDataValid) {
480    return This->lpVtbl->SetActual(This,cbDataValid);
481}
482#endif
483#endif
484
485#endif
486
487
488#endif  /* __IMemoryData_INTERFACE_DEFINED__ */
489
490/*****************************************************************************
491 * IAudioData interface
492 */
493#ifndef __IAudioData_INTERFACE_DEFINED__
494#define __IAudioData_INTERFACE_DEFINED__
495
496DEFINE_GUID(IID_IAudioData, 0x54c719c0, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
497#if defined(__cplusplus) && !defined(CINTERFACE)
498MIDL_INTERFACE("54c719c0-af60-11d0-8212-00c04fc32c45")
499IAudioData : public IMemoryData
500{
501    virtual HRESULT STDMETHODCALLTYPE GetFormat(
502        WAVEFORMATEX *pWaveFormatCurrent) = 0;
503
504    virtual HRESULT STDMETHODCALLTYPE SetFormat(
505        const WAVEFORMATEX *lpWaveFormat) = 0;
506
507};
508#ifdef __CRT_UUID_DECL
509__CRT_UUID_DECL(IAudioData, 0x54c719c0, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
510#endif
511#else
512typedef struct IAudioDataVtbl {
513    BEGIN_INTERFACE
514
515    /*** IUnknown methods ***/
516    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
517        IAudioData *This,
518        REFIID riid,
519        void **ppvObject);
520
521    ULONG (STDMETHODCALLTYPE *AddRef)(
522        IAudioData *This);
523
524    ULONG (STDMETHODCALLTYPE *Release)(
525        IAudioData *This);
526
527    /*** IMemoryData methods ***/
528    HRESULT (STDMETHODCALLTYPE *SetBuffer)(
529        IAudioData *This,
530        DWORD cbSize,
531        BYTE *pbData,
532        DWORD dwFlags);
533
534    HRESULT (STDMETHODCALLTYPE *GetInfo)(
535        IAudioData *This,
536        DWORD *pdwLength,
537        BYTE **ppbData,
538        DWORD *pcbActualData);
539
540    HRESULT (STDMETHODCALLTYPE *SetActual)(
541        IAudioData *This,
542        DWORD cbDataValid);
543
544    /*** IAudioData methods ***/
545    HRESULT (STDMETHODCALLTYPE *GetFormat)(
546        IAudioData *This,
547        WAVEFORMATEX *pWaveFormatCurrent);
548
549    HRESULT (STDMETHODCALLTYPE *SetFormat)(
550        IAudioData *This,
551        const WAVEFORMATEX *lpWaveFormat);
552
553    END_INTERFACE
554} IAudioDataVtbl;
555
556interface IAudioData {
557    CONST_VTBL IAudioDataVtbl* lpVtbl;
558};
559
560#ifdef COBJMACROS
561#ifndef WIDL_C_INLINE_WRAPPERS
562/*** IUnknown methods ***/
563#define IAudioData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
564#define IAudioData_AddRef(This) (This)->lpVtbl->AddRef(This)
565#define IAudioData_Release(This) (This)->lpVtbl->Release(This)
566/*** IMemoryData methods ***/
567#define IAudioData_SetBuffer(This,cbSize,pbData,dwFlags) (This)->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags)
568#define IAudioData_GetInfo(This,pdwLength,ppbData,pcbActualData) (This)->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData)
569#define IAudioData_SetActual(This,cbDataValid) (This)->lpVtbl->SetActual(This,cbDataValid)
570/*** IAudioData methods ***/
571#define IAudioData_GetFormat(This,pWaveFormatCurrent) (This)->lpVtbl->GetFormat(This,pWaveFormatCurrent)
572#define IAudioData_SetFormat(This,lpWaveFormat) (This)->lpVtbl->SetFormat(This,lpWaveFormat)
573#else
574/*** IUnknown methods ***/
575static inline HRESULT IAudioData_QueryInterface(IAudioData* This,REFIID riid,void **ppvObject) {
576    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
577}
578static inline ULONG IAudioData_AddRef(IAudioData* This) {
579    return This->lpVtbl->AddRef(This);
580}
581static inline ULONG IAudioData_Release(IAudioData* This) {
582    return This->lpVtbl->Release(This);
583}
584/*** IMemoryData methods ***/
585static inline HRESULT IAudioData_SetBuffer(IAudioData* This,DWORD cbSize,BYTE *pbData,DWORD dwFlags) {
586    return This->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags);
587}
588static inline HRESULT IAudioData_GetInfo(IAudioData* This,DWORD *pdwLength,BYTE **ppbData,DWORD *pcbActualData) {
589    return This->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData);
590}
591static inline HRESULT IAudioData_SetActual(IAudioData* This,DWORD cbDataValid) {
592    return This->lpVtbl->SetActual(This,cbDataValid);
593}
594/*** IAudioData methods ***/
595static inline HRESULT IAudioData_GetFormat(IAudioData* This,WAVEFORMATEX *pWaveFormatCurrent) {
596    return This->lpVtbl->GetFormat(This,pWaveFormatCurrent);
597}
598static inline HRESULT IAudioData_SetFormat(IAudioData* This,const WAVEFORMATEX *lpWaveFormat) {
599    return This->lpVtbl->SetFormat(This,lpWaveFormat);
600}
601#endif
602#endif
603
604#endif
605
606
607#endif  /* __IAudioData_INTERFACE_DEFINED__ */
608
609/* Begin additional prototypes for all interfaces */
610
611
612/* End additional prototypes */
613
614#ifdef __cplusplus
615}
616#endif
617
618#endif /* __austream_h__ */