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