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