1 /*** Autogenerated by WIDL 6.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__
23 typedef interface IAudioMediaStream IAudioMediaStream;
24 #ifdef __cplusplus
25 interface IAudioMediaStream;
26 #endif /* __cplusplus */
27 #endif
28 
29 #ifndef __IAudioStreamSample_FWD_DEFINED__
30 #define __IAudioStreamSample_FWD_DEFINED__
31 typedef interface IAudioStreamSample IAudioStreamSample;
32 #ifdef __cplusplus
33 interface IAudioStreamSample;
34 #endif /* __cplusplus */
35 #endif
36 
37 #ifndef __IMemoryData_FWD_DEFINED__
38 #define __IMemoryData_FWD_DEFINED__
39 typedef interface IMemoryData IMemoryData;
40 #ifdef __cplusplus
41 interface IMemoryData;
42 #endif /* __cplusplus */
43 #endif
44 
45 #ifndef __IAudioData_FWD_DEFINED__
46 #define __IAudioData_FWD_DEFINED__
47 typedef interface IAudioData IAudioData;
48 #ifdef __cplusplus
49 interface 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
59 extern "C" {
60 #endif
61 
62 #if 0
63 typedef struct tWAVEFORMATEX WAVEFORMATEX;
64 #endif
65 #ifndef __IAudioMediaStream_FWD_DEFINED__
66 #define __IAudioMediaStream_FWD_DEFINED__
67 typedef interface IAudioMediaStream IAudioMediaStream;
68 #ifdef __cplusplus
69 interface IAudioMediaStream;
70 #endif /* __cplusplus */
71 #endif
72 
73 #ifndef __IAudioStreamSample_FWD_DEFINED__
74 #define __IAudioStreamSample_FWD_DEFINED__
75 typedef interface IAudioStreamSample IAudioStreamSample;
76 #ifdef __cplusplus
77 interface IAudioStreamSample;
78 #endif /* __cplusplus */
79 #endif
80 
81 #ifndef __IMemoryData_FWD_DEFINED__
82 #define __IMemoryData_FWD_DEFINED__
83 typedef interface IMemoryData IMemoryData;
84 #ifdef __cplusplus
85 interface IMemoryData;
86 #endif /* __cplusplus */
87 #endif
88 
89 #ifndef __IAudioData_FWD_DEFINED__
90 #define __IAudioData_FWD_DEFINED__
91 typedef interface IAudioData IAudioData;
92 #ifdef __cplusplus
93 interface IAudioData;
94 #endif /* __cplusplus */
95 #endif
96 
97 /*****************************************************************************
98  * IAudioMediaStream interface
99  */
100 #ifndef __IAudioMediaStream_INTERFACE_DEFINED__
101 #define __IAudioMediaStream_INTERFACE_DEFINED__
102 
103 DEFINE_GUID(IID_IAudioMediaStream, 0xf7537560, 0xa3be, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
104 #if defined(__cplusplus) && !defined(CINTERFACE)
105 MIDL_INTERFACE("f7537560-a3be-11d0-8212-00c04fc32c45")
106 IAudioMediaStream : 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
124 typedef 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 
187 interface 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 ***/
210 static FORCEINLINE HRESULT IAudioMediaStream_QueryInterface(IAudioMediaStream* This,REFIID riid,void **ppvObject) {
211     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
212 }
213 static FORCEINLINE ULONG IAudioMediaStream_AddRef(IAudioMediaStream* This) {
214     return This->lpVtbl->AddRef(This);
215 }
216 static FORCEINLINE ULONG IAudioMediaStream_Release(IAudioMediaStream* This) {
217     return This->lpVtbl->Release(This);
218 }
219 /*** IMediaStream methods ***/
220 static FORCEINLINE HRESULT IAudioMediaStream_GetMultiMediaStream(IAudioMediaStream* This,IMultiMediaStream **ppMultiMediaStream) {
221     return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
222 }
223 static FORCEINLINE HRESULT IAudioMediaStream_GetInformation(IAudioMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
224     return This->lpVtbl->GetInformation(This,pPurposeId,pType);
225 }
226 static FORCEINLINE HRESULT IAudioMediaStream_SetSameFormat(IAudioMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
227     return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
228 }
229 static FORCEINLINE HRESULT IAudioMediaStream_AllocateSample(IAudioMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) {
230     return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
231 }
232 static FORCEINLINE HRESULT IAudioMediaStream_CreateSharedSample(IAudioMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
233     return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
234 }
235 static FORCEINLINE HRESULT IAudioMediaStream_SendEndOfStream(IAudioMediaStream* This,DWORD dwFlags) {
236     return This->lpVtbl->SendEndOfStream(This,dwFlags);
237 }
238 /*** IAudioMediaStream methods ***/
239 static FORCEINLINE HRESULT IAudioMediaStream_GetFormat(IAudioMediaStream* This,WAVEFORMATEX *pWaveFormatCurrent) {
240     return This->lpVtbl->GetFormat(This,pWaveFormatCurrent);
241 }
242 static FORCEINLINE HRESULT IAudioMediaStream_SetFormat(IAudioMediaStream* This,const WAVEFORMATEX *lpWaveFormat) {
243     return This->lpVtbl->SetFormat(This,lpWaveFormat);
244 }
245 static FORCEINLINE 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 
262 DEFINE_GUID(IID_IAudioStreamSample, 0x345fee00, 0xaba5, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
263 #if defined(__cplusplus) && !defined(CINTERFACE)
264 MIDL_INTERFACE("345fee00-aba5-11d0-8212-00c04fc32c45")
265 IAudioStreamSample : 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
275 typedef 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 
326 interface 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 ***/
346 static FORCEINLINE HRESULT IAudioStreamSample_QueryInterface(IAudioStreamSample* This,REFIID riid,void **ppvObject) {
347     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
348 }
349 static FORCEINLINE ULONG IAudioStreamSample_AddRef(IAudioStreamSample* This) {
350     return This->lpVtbl->AddRef(This);
351 }
352 static FORCEINLINE ULONG IAudioStreamSample_Release(IAudioStreamSample* This) {
353     return This->lpVtbl->Release(This);
354 }
355 /*** IStreamSample methods ***/
356 static FORCEINLINE HRESULT IAudioStreamSample_GetMediaStream(IAudioStreamSample* This,IMediaStream **ppMediaStream) {
357     return This->lpVtbl->GetMediaStream(This,ppMediaStream);
358 }
359 static FORCEINLINE HRESULT IAudioStreamSample_GetSampleTimes(IAudioStreamSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) {
360     return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime);
361 }
362 static FORCEINLINE HRESULT IAudioStreamSample_SetSampleTimes(IAudioStreamSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) {
363     return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime);
364 }
365 static FORCEINLINE HRESULT IAudioStreamSample_Update(IAudioStreamSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) {
366     return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData);
367 }
368 static FORCEINLINE HRESULT IAudioStreamSample_CompletionStatus(IAudioStreamSample* This,DWORD dwFlags,DWORD dwMilliseconds) {
369     return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds);
370 }
371 /*** IAudioStreamSample methods ***/
372 static FORCEINLINE 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 
389 DEFINE_GUID(IID_IMemoryData, 0x327fc560, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
390 #if defined(__cplusplus) && !defined(CINTERFACE)
391 MIDL_INTERFACE("327fc560-af60-11d0-8212-00c04fc32c45")
392 IMemoryData : 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
412 typedef 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 
447 interface 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 ***/
463 static FORCEINLINE HRESULT IMemoryData_QueryInterface(IMemoryData* This,REFIID riid,void **ppvObject) {
464     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
465 }
466 static FORCEINLINE ULONG IMemoryData_AddRef(IMemoryData* This) {
467     return This->lpVtbl->AddRef(This);
468 }
469 static FORCEINLINE ULONG IMemoryData_Release(IMemoryData* This) {
470     return This->lpVtbl->Release(This);
471 }
472 /*** IMemoryData methods ***/
473 static FORCEINLINE HRESULT IMemoryData_SetBuffer(IMemoryData* This,DWORD cbSize,BYTE *pbData,DWORD dwFlags) {
474     return This->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags);
475 }
476 static FORCEINLINE HRESULT IMemoryData_GetInfo(IMemoryData* This,DWORD *pdwLength,BYTE **ppbData,DWORD *pcbActualData) {
477     return This->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData);
478 }
479 static FORCEINLINE 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 
496 DEFINE_GUID(IID_IAudioData, 0x54c719c0, 0xaf60, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
497 #if defined(__cplusplus) && !defined(CINTERFACE)
498 MIDL_INTERFACE("54c719c0-af60-11d0-8212-00c04fc32c45")
499 IAudioData : 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
512 typedef 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 
556 interface 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 ***/
575 static FORCEINLINE HRESULT IAudioData_QueryInterface(IAudioData* This,REFIID riid,void **ppvObject) {
576     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
577 }
578 static FORCEINLINE ULONG IAudioData_AddRef(IAudioData* This) {
579     return This->lpVtbl->AddRef(This);
580 }
581 static FORCEINLINE ULONG IAudioData_Release(IAudioData* This) {
582     return This->lpVtbl->Release(This);
583 }
584 /*** IMemoryData methods ***/
585 static FORCEINLINE HRESULT IAudioData_SetBuffer(IAudioData* This,DWORD cbSize,BYTE *pbData,DWORD dwFlags) {
586     return This->lpVtbl->SetBuffer(This,cbSize,pbData,dwFlags);
587 }
588 static FORCEINLINE HRESULT IAudioData_GetInfo(IAudioData* This,DWORD *pdwLength,BYTE **ppbData,DWORD *pcbActualData) {
589     return This->lpVtbl->GetInfo(This,pdwLength,ppbData,pcbActualData);
590 }
591 static FORCEINLINE HRESULT IAudioData_SetActual(IAudioData* This,DWORD cbDataValid) {
592     return This->lpVtbl->SetActual(This,cbDataValid);
593 }
594 /*** IAudioData methods ***/
595 static FORCEINLINE HRESULT IAudioData_GetFormat(IAudioData* This,WAVEFORMATEX *pWaveFormatCurrent) {
596     return This->lpVtbl->GetFormat(This,pWaveFormatCurrent);
597 }
598 static FORCEINLINE 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__ */
619