1 /*** Autogenerated by WIDL 3.19 from direct-x/include/amstream.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 __amstream_h__
16 #define __amstream_h__
17 
18 /* Forward declarations */
19 
20 #ifndef __IDirectShowStream_FWD_DEFINED__
21 #define __IDirectShowStream_FWD_DEFINED__
22 typedef interface IDirectShowStream IDirectShowStream;
23 #ifdef __cplusplus
24 interface IDirectShowStream;
25 #endif /* __cplusplus */
26 #endif
27 
28 #ifndef __IAMMultiMediaStream_FWD_DEFINED__
29 #define __IAMMultiMediaStream_FWD_DEFINED__
30 typedef interface IAMMultiMediaStream IAMMultiMediaStream;
31 #ifdef __cplusplus
32 interface IAMMultiMediaStream;
33 #endif /* __cplusplus */
34 #endif
35 
36 #ifndef __IAMMediaStream_FWD_DEFINED__
37 #define __IAMMediaStream_FWD_DEFINED__
38 typedef interface IAMMediaStream IAMMediaStream;
39 #ifdef __cplusplus
40 interface IAMMediaStream;
41 #endif /* __cplusplus */
42 #endif
43 
44 #ifndef __IMediaStreamFilter_FWD_DEFINED__
45 #define __IMediaStreamFilter_FWD_DEFINED__
46 typedef interface IMediaStreamFilter IMediaStreamFilter;
47 #ifdef __cplusplus
48 interface IMediaStreamFilter;
49 #endif /* __cplusplus */
50 #endif
51 
52 #ifndef __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
53 #define __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
54 typedef interface IDirectDrawMediaSampleAllocator IDirectDrawMediaSampleAllocator;
55 #ifdef __cplusplus
56 interface IDirectDrawMediaSampleAllocator;
57 #endif /* __cplusplus */
58 #endif
59 
60 #ifndef __IDirectDrawMediaSample_FWD_DEFINED__
61 #define __IDirectDrawMediaSample_FWD_DEFINED__
62 typedef interface IDirectDrawMediaSample IDirectDrawMediaSample;
63 #ifdef __cplusplus
64 interface IDirectDrawMediaSample;
65 #endif /* __cplusplus */
66 #endif
67 
68 #ifndef __IAMMediaTypeStream_FWD_DEFINED__
69 #define __IAMMediaTypeStream_FWD_DEFINED__
70 typedef interface IAMMediaTypeStream IAMMediaTypeStream;
71 #ifdef __cplusplus
72 interface IAMMediaTypeStream;
73 #endif /* __cplusplus */
74 #endif
75 
76 #ifndef __IAMMediaTypeSample_FWD_DEFINED__
77 #define __IAMMediaTypeSample_FWD_DEFINED__
78 typedef interface IAMMediaTypeSample IAMMediaTypeSample;
79 #ifdef __cplusplus
80 interface IAMMediaTypeSample;
81 #endif /* __cplusplus */
82 #endif
83 
84 #ifndef __AMMultiMediaStream_FWD_DEFINED__
85 #define __AMMultiMediaStream_FWD_DEFINED__
86 #ifdef __cplusplus
87 typedef class AMMultiMediaStream AMMultiMediaStream;
88 #else
89 typedef struct AMMultiMediaStream AMMultiMediaStream;
90 #endif /* defined __cplusplus */
91 #endif /* defined __AMMultiMediaStream_FWD_DEFINED__ */
92 
93 /* Headers for imported files */
94 
95 #include <unknwn.h>
96 #include <mmstream.h>
97 #include <strmif.h>
98 
99 #ifdef __cplusplus
100 extern "C" {
101 #endif
102 
103 #include <ddraw.h>
104 #include <mmsystem.h>
105 #include <mmstream.h>
106 #include <ddstream.h>
107 #include <austream.h>
108 #if 0
109 #ifndef __IDirectDraw_FWD_DEFINED__
110 #define __IDirectDraw_FWD_DEFINED__
111 typedef interface IDirectDraw IDirectDraw;
112 #ifdef __cplusplus
113 interface IDirectDraw;
114 #endif /* __cplusplus */
115 #endif
116 
117 #ifndef __IDirectDrawSurface_FWD_DEFINED__
118 #define __IDirectDrawSurface_FWD_DEFINED__
119 typedef interface IDirectDrawSurface IDirectDrawSurface;
120 #ifdef __cplusplus
121 interface IDirectDrawSurface;
122 #endif /* __cplusplus */
123 #endif
124 
125 #endif
126 #ifndef __IAMMultiMediaStream_FWD_DEFINED__
127 #define __IAMMultiMediaStream_FWD_DEFINED__
128 typedef interface IAMMultiMediaStream IAMMultiMediaStream;
129 #ifdef __cplusplus
130 interface IAMMultiMediaStream;
131 #endif /* __cplusplus */
132 #endif
133 
134 #ifndef __IAMMediaStream_FWD_DEFINED__
135 #define __IAMMediaStream_FWD_DEFINED__
136 typedef interface IAMMediaStream IAMMediaStream;
137 #ifdef __cplusplus
138 interface IAMMediaStream;
139 #endif /* __cplusplus */
140 #endif
141 
142 #ifndef __IMediaStreamFilter_FWD_DEFINED__
143 #define __IMediaStreamFilter_FWD_DEFINED__
144 typedef interface IMediaStreamFilter IMediaStreamFilter;
145 #ifdef __cplusplus
146 interface IMediaStreamFilter;
147 #endif /* __cplusplus */
148 #endif
149 
150 #ifndef __IAMMediaTypeStream_FWD_DEFINED__
151 #define __IAMMediaTypeStream_FWD_DEFINED__
152 typedef interface IAMMediaTypeStream IAMMediaTypeStream;
153 #ifdef __cplusplus
154 interface IAMMediaTypeStream;
155 #endif /* __cplusplus */
156 #endif
157 
158 #ifndef __IAMMediaTypeSample_FWD_DEFINED__
159 #define __IAMMediaTypeSample_FWD_DEFINED__
160 typedef interface IAMMediaTypeSample IAMMediaTypeSample;
161 #ifdef __cplusplus
162 interface IAMMediaTypeSample;
163 #endif /* __cplusplus */
164 #endif
165 
166 enum {
167     AMMSF_NOGRAPHTHREAD = 0x1
168 };
169 enum {
170     AMMSF_ADDDEFAULTRENDERER = 0x1,
171     AMMSF_CREATEPEER = 0x2,
172     AMMSF_STOPIFNOSAMPLES = 0x4,
173     AMMSF_NOSTALL = 0x8
174 };
175 enum {
176     AMMSF_RENDERTYPEMASK = 0x3,
177     AMMSF_RENDERTOEXISTING = 0x0,
178     AMMSF_RENDERALLSTREAMS = 0x1,
179     AMMSF_NORENDER = 0x2,
180     AMMSF_NOCLOCK = 0x4,
181     AMMSF_RUN = 0x8
182 };
183 typedef enum __WIDL_amstream_generated_name_0000000C {
184     Disabled = 0,
185     ReadData = 1,
186     RenderData = 2
187 } OUTPUT_STATE;
188 /*****************************************************************************
189  * IDirectShowStream interface
190  */
191 #ifndef __IDirectShowStream_INTERFACE_DEFINED__
192 #define __IDirectShowStream_INTERFACE_DEFINED__
193 
194 DEFINE_GUID(IID_IDirectShowStream, 0x7db01c96, 0xc0c3, 0x11d0, 0x8f,0xf1, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
195 #if defined(__cplusplus) && !defined(CINTERFACE)
196 MIDL_INTERFACE("7db01c96-c0c3-11d0-8ff1-00c04fd9189d")
197 IDirectShowStream : public IDispatch
198 {
199     virtual HRESULT STDMETHODCALLTYPE get_FileName(
200         BSTR *pVal) = 0;
201 
202     virtual HRESULT STDMETHODCALLTYPE put_FileName(
203         BSTR newVal) = 0;
204 
205     virtual HRESULT STDMETHODCALLTYPE get_Video(
206         OUTPUT_STATE *pVal) = 0;
207 
208     virtual HRESULT STDMETHODCALLTYPE put_Video(
209         OUTPUT_STATE newVal) = 0;
210 
211     virtual HRESULT STDMETHODCALLTYPE get_Audio(
212         OUTPUT_STATE *pVal) = 0;
213 
214     virtual HRESULT STDMETHODCALLTYPE put_Audio(
215         OUTPUT_STATE newVal) = 0;
216 
217 };
218 #ifdef __CRT_UUID_DECL
219 __CRT_UUID_DECL(IDirectShowStream, 0x7db01c96, 0xc0c3, 0x11d0, 0x8f,0xf1, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
220 #endif
221 #else
222 typedef struct IDirectShowStreamVtbl {
223     BEGIN_INTERFACE
224 
225     /*** IUnknown methods ***/
226     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
227         IDirectShowStream *This,
228         REFIID riid,
229         void **ppvObject);
230 
231     ULONG (STDMETHODCALLTYPE *AddRef)(
232         IDirectShowStream *This);
233 
234     ULONG (STDMETHODCALLTYPE *Release)(
235         IDirectShowStream *This);
236 
237     /*** IDispatch methods ***/
238     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
239         IDirectShowStream *This,
240         UINT *pctinfo);
241 
242     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
243         IDirectShowStream *This,
244         UINT iTInfo,
245         LCID lcid,
246         ITypeInfo **ppTInfo);
247 
248     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
249         IDirectShowStream *This,
250         REFIID riid,
251         LPOLESTR *rgszNames,
252         UINT cNames,
253         LCID lcid,
254         DISPID *rgDispId);
255 
256     HRESULT (STDMETHODCALLTYPE *Invoke)(
257         IDirectShowStream *This,
258         DISPID dispIdMember,
259         REFIID riid,
260         LCID lcid,
261         WORD wFlags,
262         DISPPARAMS *pDispParams,
263         VARIANT *pVarResult,
264         EXCEPINFO *pExcepInfo,
265         UINT *puArgErr);
266 
267     /*** IDirectShowStream methods ***/
268     HRESULT (STDMETHODCALLTYPE *get_FileName)(
269         IDirectShowStream *This,
270         BSTR *pVal);
271 
272     HRESULT (STDMETHODCALLTYPE *put_FileName)(
273         IDirectShowStream *This,
274         BSTR newVal);
275 
276     HRESULT (STDMETHODCALLTYPE *get_Video)(
277         IDirectShowStream *This,
278         OUTPUT_STATE *pVal);
279 
280     HRESULT (STDMETHODCALLTYPE *put_Video)(
281         IDirectShowStream *This,
282         OUTPUT_STATE newVal);
283 
284     HRESULT (STDMETHODCALLTYPE *get_Audio)(
285         IDirectShowStream *This,
286         OUTPUT_STATE *pVal);
287 
288     HRESULT (STDMETHODCALLTYPE *put_Audio)(
289         IDirectShowStream *This,
290         OUTPUT_STATE newVal);
291 
292     END_INTERFACE
293 } IDirectShowStreamVtbl;
294 
295 interface IDirectShowStream {
296     CONST_VTBL IDirectShowStreamVtbl* lpVtbl;
297 };
298 
299 #ifdef COBJMACROS
300 #ifndef WIDL_C_INLINE_WRAPPERS
301 /*** IUnknown methods ***/
302 #define IDirectShowStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
303 #define IDirectShowStream_AddRef(This) (This)->lpVtbl->AddRef(This)
304 #define IDirectShowStream_Release(This) (This)->lpVtbl->Release(This)
305 /*** IDispatch methods ***/
306 #define IDirectShowStream_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
307 #define IDirectShowStream_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
308 #define IDirectShowStream_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
309 #define IDirectShowStream_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
310 /*** IDirectShowStream methods ***/
311 #define IDirectShowStream_get_FileName(This,pVal) (This)->lpVtbl->get_FileName(This,pVal)
312 #define IDirectShowStream_put_FileName(This,newVal) (This)->lpVtbl->put_FileName(This,newVal)
313 #define IDirectShowStream_get_Video(This,pVal) (This)->lpVtbl->get_Video(This,pVal)
314 #define IDirectShowStream_put_Video(This,newVal) (This)->lpVtbl->put_Video(This,newVal)
315 #define IDirectShowStream_get_Audio(This,pVal) (This)->lpVtbl->get_Audio(This,pVal)
316 #define IDirectShowStream_put_Audio(This,newVal) (This)->lpVtbl->put_Audio(This,newVal)
317 #else
318 /*** IUnknown methods ***/
319 static FORCEINLINE HRESULT IDirectShowStream_QueryInterface(IDirectShowStream* This,REFIID riid,void **ppvObject) {
320     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
321 }
322 static FORCEINLINE ULONG IDirectShowStream_AddRef(IDirectShowStream* This) {
323     return This->lpVtbl->AddRef(This);
324 }
325 static FORCEINLINE ULONG IDirectShowStream_Release(IDirectShowStream* This) {
326     return This->lpVtbl->Release(This);
327 }
328 /*** IDispatch methods ***/
329 static FORCEINLINE HRESULT IDirectShowStream_GetTypeInfoCount(IDirectShowStream* This,UINT *pctinfo) {
330     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
331 }
332 static FORCEINLINE HRESULT IDirectShowStream_GetTypeInfo(IDirectShowStream* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
333     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
334 }
335 static FORCEINLINE HRESULT IDirectShowStream_GetIDsOfNames(IDirectShowStream* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
336     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
337 }
338 static FORCEINLINE HRESULT IDirectShowStream_Invoke(IDirectShowStream* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
339     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
340 }
341 /*** IDirectShowStream methods ***/
342 static FORCEINLINE HRESULT IDirectShowStream_get_FileName(IDirectShowStream* This,BSTR *pVal) {
343     return This->lpVtbl->get_FileName(This,pVal);
344 }
345 static FORCEINLINE HRESULT IDirectShowStream_put_FileName(IDirectShowStream* This,BSTR newVal) {
346     return This->lpVtbl->put_FileName(This,newVal);
347 }
348 static FORCEINLINE HRESULT IDirectShowStream_get_Video(IDirectShowStream* This,OUTPUT_STATE *pVal) {
349     return This->lpVtbl->get_Video(This,pVal);
350 }
351 static FORCEINLINE HRESULT IDirectShowStream_put_Video(IDirectShowStream* This,OUTPUT_STATE newVal) {
352     return This->lpVtbl->put_Video(This,newVal);
353 }
354 static FORCEINLINE HRESULT IDirectShowStream_get_Audio(IDirectShowStream* This,OUTPUT_STATE *pVal) {
355     return This->lpVtbl->get_Audio(This,pVal);
356 }
357 static FORCEINLINE HRESULT IDirectShowStream_put_Audio(IDirectShowStream* This,OUTPUT_STATE newVal) {
358     return This->lpVtbl->put_Audio(This,newVal);
359 }
360 #endif
361 #endif
362 
363 #endif
364 
365 
366 #endif  /* __IDirectShowStream_INTERFACE_DEFINED__ */
367 
368 /*****************************************************************************
369  * IAMMultiMediaStream interface
370  */
371 #ifndef __IAMMultiMediaStream_INTERFACE_DEFINED__
372 #define __IAMMultiMediaStream_INTERFACE_DEFINED__
373 
374 DEFINE_GUID(IID_IAMMultiMediaStream, 0xbebe595c, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
375 #if defined(__cplusplus) && !defined(CINTERFACE)
376 MIDL_INTERFACE("bebe595c-9a6f-11d0-8fde-00c04fd9189d")
377 IAMMultiMediaStream : public IMultiMediaStream
378 {
379     virtual HRESULT STDMETHODCALLTYPE Initialize(
380         STREAM_TYPE StreamType,
381         DWORD dwFlags,
382         IGraphBuilder *pFilterGraph) = 0;
383 
384     virtual HRESULT STDMETHODCALLTYPE GetFilterGraph(
385         IGraphBuilder **ppGraphBuilder) = 0;
386 
387     virtual HRESULT STDMETHODCALLTYPE GetFilter(
388         IMediaStreamFilter **ppFilter) = 0;
389 
390     virtual HRESULT STDMETHODCALLTYPE AddMediaStream(
391         IUnknown *pStreamObject,
392         const MSPID *PurposeId,
393         DWORD dwFlags,
394         IMediaStream **ppNewStream) = 0;
395 
396     virtual HRESULT STDMETHODCALLTYPE OpenFile(
397         LPCWSTR pszFileName,
398         DWORD dwFlags) = 0;
399 
400     virtual HRESULT STDMETHODCALLTYPE OpenMoniker(
401         IBindCtx *pCtx,
402         IMoniker *pMoniker,
403         DWORD dwFlags) = 0;
404 
405     virtual HRESULT STDMETHODCALLTYPE Render(
406         DWORD dwFlags) = 0;
407 
408 };
409 #ifdef __CRT_UUID_DECL
410 __CRT_UUID_DECL(IAMMultiMediaStream, 0xbebe595c, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
411 #endif
412 #else
413 typedef struct IAMMultiMediaStreamVtbl {
414     BEGIN_INTERFACE
415 
416     /*** IUnknown methods ***/
417     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
418         IAMMultiMediaStream *This,
419         REFIID riid,
420         void **ppvObject);
421 
422     ULONG (STDMETHODCALLTYPE *AddRef)(
423         IAMMultiMediaStream *This);
424 
425     ULONG (STDMETHODCALLTYPE *Release)(
426         IAMMultiMediaStream *This);
427 
428     /*** IMultiMediaStream methods ***/
429     HRESULT (STDMETHODCALLTYPE *GetInformation)(
430         IAMMultiMediaStream *This,
431         DWORD *pdwFlags,
432         STREAM_TYPE *pStreamType);
433 
434     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
435         IAMMultiMediaStream *This,
436         REFMSPID idPurpose,
437         IMediaStream **ppMediaStream);
438 
439     HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
440         IAMMultiMediaStream *This,
441         LONG Index,
442         IMediaStream **ppMediaStream);
443 
444     HRESULT (STDMETHODCALLTYPE *GetState)(
445         IAMMultiMediaStream *This,
446         STREAM_STATE *pCurrentState);
447 
448     HRESULT (STDMETHODCALLTYPE *SetState)(
449         IAMMultiMediaStream *This,
450         STREAM_STATE NewState);
451 
452     HRESULT (STDMETHODCALLTYPE *GetTime)(
453         IAMMultiMediaStream *This,
454         STREAM_TIME *pCurrentTime);
455 
456     HRESULT (STDMETHODCALLTYPE *GetDuration)(
457         IAMMultiMediaStream *This,
458         STREAM_TIME *pDuration);
459 
460     HRESULT (STDMETHODCALLTYPE *Seek)(
461         IAMMultiMediaStream *This,
462         STREAM_TIME SeekTime);
463 
464     HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)(
465         IAMMultiMediaStream *This,
466         HANDLE *phEOS);
467 
468     /*** IAMMultiMediaStream methods ***/
469     HRESULT (STDMETHODCALLTYPE *Initialize)(
470         IAMMultiMediaStream *This,
471         STREAM_TYPE StreamType,
472         DWORD dwFlags,
473         IGraphBuilder *pFilterGraph);
474 
475     HRESULT (STDMETHODCALLTYPE *GetFilterGraph)(
476         IAMMultiMediaStream *This,
477         IGraphBuilder **ppGraphBuilder);
478 
479     HRESULT (STDMETHODCALLTYPE *GetFilter)(
480         IAMMultiMediaStream *This,
481         IMediaStreamFilter **ppFilter);
482 
483     HRESULT (STDMETHODCALLTYPE *AddMediaStream)(
484         IAMMultiMediaStream *This,
485         IUnknown *pStreamObject,
486         const MSPID *PurposeId,
487         DWORD dwFlags,
488         IMediaStream **ppNewStream);
489 
490     HRESULT (STDMETHODCALLTYPE *OpenFile)(
491         IAMMultiMediaStream *This,
492         LPCWSTR pszFileName,
493         DWORD dwFlags);
494 
495     HRESULT (STDMETHODCALLTYPE *OpenMoniker)(
496         IAMMultiMediaStream *This,
497         IBindCtx *pCtx,
498         IMoniker *pMoniker,
499         DWORD dwFlags);
500 
501     HRESULT (STDMETHODCALLTYPE *Render)(
502         IAMMultiMediaStream *This,
503         DWORD dwFlags);
504 
505     END_INTERFACE
506 } IAMMultiMediaStreamVtbl;
507 
508 interface IAMMultiMediaStream {
509     CONST_VTBL IAMMultiMediaStreamVtbl* lpVtbl;
510 };
511 
512 #ifdef COBJMACROS
513 #ifndef WIDL_C_INLINE_WRAPPERS
514 /*** IUnknown methods ***/
515 #define IAMMultiMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
516 #define IAMMultiMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
517 #define IAMMultiMediaStream_Release(This) (This)->lpVtbl->Release(This)
518 /*** IMultiMediaStream methods ***/
519 #define IAMMultiMediaStream_GetInformation(This,pdwFlags,pStreamType) (This)->lpVtbl->GetInformation(This,pdwFlags,pStreamType)
520 #define IAMMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream)
521 #define IAMMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream)
522 #define IAMMultiMediaStream_GetState(This,pCurrentState) (This)->lpVtbl->GetState(This,pCurrentState)
523 #define IAMMultiMediaStream_SetState(This,NewState) (This)->lpVtbl->SetState(This,NewState)
524 #define IAMMultiMediaStream_GetTime(This,pCurrentTime) (This)->lpVtbl->GetTime(This,pCurrentTime)
525 #define IAMMultiMediaStream_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
526 #define IAMMultiMediaStream_Seek(This,SeekTime) (This)->lpVtbl->Seek(This,SeekTime)
527 #define IAMMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS) (This)->lpVtbl->GetEndOfStreamEventHandle(This,phEOS)
528 /*** IAMMultiMediaStream methods ***/
529 #define IAMMultiMediaStream_Initialize(This,StreamType,dwFlags,pFilterGraph) (This)->lpVtbl->Initialize(This,StreamType,dwFlags,pFilterGraph)
530 #define IAMMultiMediaStream_GetFilterGraph(This,ppGraphBuilder) (This)->lpVtbl->GetFilterGraph(This,ppGraphBuilder)
531 #define IAMMultiMediaStream_GetFilter(This,ppFilter) (This)->lpVtbl->GetFilter(This,ppFilter)
532 #define IAMMultiMediaStream_AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream) (This)->lpVtbl->AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream)
533 #define IAMMultiMediaStream_OpenFile(This,pszFileName,dwFlags) (This)->lpVtbl->OpenFile(This,pszFileName,dwFlags)
534 #define IAMMultiMediaStream_OpenMoniker(This,pCtx,pMoniker,dwFlags) (This)->lpVtbl->OpenMoniker(This,pCtx,pMoniker,dwFlags)
535 #define IAMMultiMediaStream_Render(This,dwFlags) (This)->lpVtbl->Render(This,dwFlags)
536 #else
537 /*** IUnknown methods ***/
538 static FORCEINLINE HRESULT IAMMultiMediaStream_QueryInterface(IAMMultiMediaStream* This,REFIID riid,void **ppvObject) {
539     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
540 }
541 static FORCEINLINE ULONG IAMMultiMediaStream_AddRef(IAMMultiMediaStream* This) {
542     return This->lpVtbl->AddRef(This);
543 }
544 static FORCEINLINE ULONG IAMMultiMediaStream_Release(IAMMultiMediaStream* This) {
545     return This->lpVtbl->Release(This);
546 }
547 /*** IMultiMediaStream methods ***/
548 static FORCEINLINE HRESULT IAMMultiMediaStream_GetInformation(IAMMultiMediaStream* This,DWORD *pdwFlags,STREAM_TYPE *pStreamType) {
549     return This->lpVtbl->GetInformation(This,pdwFlags,pStreamType);
550 }
551 static FORCEINLINE HRESULT IAMMultiMediaStream_GetMediaStream(IAMMultiMediaStream* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) {
552     return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream);
553 }
554 static FORCEINLINE HRESULT IAMMultiMediaStream_EnumMediaStreams(IAMMultiMediaStream* This,LONG Index,IMediaStream **ppMediaStream) {
555     return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream);
556 }
557 static FORCEINLINE HRESULT IAMMultiMediaStream_GetState(IAMMultiMediaStream* This,STREAM_STATE *pCurrentState) {
558     return This->lpVtbl->GetState(This,pCurrentState);
559 }
560 static FORCEINLINE HRESULT IAMMultiMediaStream_SetState(IAMMultiMediaStream* This,STREAM_STATE NewState) {
561     return This->lpVtbl->SetState(This,NewState);
562 }
563 static FORCEINLINE HRESULT IAMMultiMediaStream_GetTime(IAMMultiMediaStream* This,STREAM_TIME *pCurrentTime) {
564     return This->lpVtbl->GetTime(This,pCurrentTime);
565 }
566 static FORCEINLINE HRESULT IAMMultiMediaStream_GetDuration(IAMMultiMediaStream* This,STREAM_TIME *pDuration) {
567     return This->lpVtbl->GetDuration(This,pDuration);
568 }
569 static FORCEINLINE HRESULT IAMMultiMediaStream_Seek(IAMMultiMediaStream* This,STREAM_TIME SeekTime) {
570     return This->lpVtbl->Seek(This,SeekTime);
571 }
572 static FORCEINLINE HRESULT IAMMultiMediaStream_GetEndOfStreamEventHandle(IAMMultiMediaStream* This,HANDLE *phEOS) {
573     return This->lpVtbl->GetEndOfStreamEventHandle(This,phEOS);
574 }
575 /*** IAMMultiMediaStream methods ***/
576 static FORCEINLINE HRESULT IAMMultiMediaStream_Initialize(IAMMultiMediaStream* This,STREAM_TYPE StreamType,DWORD dwFlags,IGraphBuilder *pFilterGraph) {
577     return This->lpVtbl->Initialize(This,StreamType,dwFlags,pFilterGraph);
578 }
579 static FORCEINLINE HRESULT IAMMultiMediaStream_GetFilterGraph(IAMMultiMediaStream* This,IGraphBuilder **ppGraphBuilder) {
580     return This->lpVtbl->GetFilterGraph(This,ppGraphBuilder);
581 }
582 static FORCEINLINE HRESULT IAMMultiMediaStream_GetFilter(IAMMultiMediaStream* This,IMediaStreamFilter **ppFilter) {
583     return This->lpVtbl->GetFilter(This,ppFilter);
584 }
585 static FORCEINLINE HRESULT IAMMultiMediaStream_AddMediaStream(IAMMultiMediaStream* This,IUnknown *pStreamObject,const MSPID *PurposeId,DWORD dwFlags,IMediaStream **ppNewStream) {
586     return This->lpVtbl->AddMediaStream(This,pStreamObject,PurposeId,dwFlags,ppNewStream);
587 }
588 static FORCEINLINE HRESULT IAMMultiMediaStream_OpenFile(IAMMultiMediaStream* This,LPCWSTR pszFileName,DWORD dwFlags) {
589     return This->lpVtbl->OpenFile(This,pszFileName,dwFlags);
590 }
591 static FORCEINLINE HRESULT IAMMultiMediaStream_OpenMoniker(IAMMultiMediaStream* This,IBindCtx *pCtx,IMoniker *pMoniker,DWORD dwFlags) {
592     return This->lpVtbl->OpenMoniker(This,pCtx,pMoniker,dwFlags);
593 }
594 static FORCEINLINE HRESULT IAMMultiMediaStream_Render(IAMMultiMediaStream* This,DWORD dwFlags) {
595     return This->lpVtbl->Render(This,dwFlags);
596 }
597 #endif
598 #endif
599 
600 #endif
601 
602 
603 #endif  /* __IAMMultiMediaStream_INTERFACE_DEFINED__ */
604 
605 /*****************************************************************************
606  * IAMMediaStream interface
607  */
608 #ifndef __IAMMediaStream_INTERFACE_DEFINED__
609 #define __IAMMediaStream_INTERFACE_DEFINED__
610 
611 DEFINE_GUID(IID_IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
612 #if defined(__cplusplus) && !defined(CINTERFACE)
613 MIDL_INTERFACE("bebe595d-9a6f-11d0-8fde-00c04fd9189d")
614 IAMMediaStream : public IMediaStream
615 {
616     virtual HRESULT STDMETHODCALLTYPE Initialize(
617         IUnknown *pSourceObject,
618         DWORD dwFlags,
619         REFMSPID PurposeId,
620         const STREAM_TYPE StreamType) = 0;
621 
622     virtual HRESULT STDMETHODCALLTYPE SetState(
623         FILTER_STATE State) = 0;
624 
625     virtual HRESULT STDMETHODCALLTYPE JoinAMMultiMediaStream(
626         IAMMultiMediaStream *pAMMultiMediaStream) = 0;
627 
628     virtual HRESULT STDMETHODCALLTYPE JoinFilter(
629         IMediaStreamFilter *pMediaStreamFilter) = 0;
630 
631     virtual HRESULT STDMETHODCALLTYPE JoinFilterGraph(
632         IFilterGraph *pFilterGraph) = 0;
633 
634 };
635 #ifdef __CRT_UUID_DECL
636 __CRT_UUID_DECL(IAMMediaStream, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
637 #endif
638 #else
639 typedef struct IAMMediaStreamVtbl {
640     BEGIN_INTERFACE
641 
642     /*** IUnknown methods ***/
643     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
644         IAMMediaStream *This,
645         REFIID riid,
646         void **ppvObject);
647 
648     ULONG (STDMETHODCALLTYPE *AddRef)(
649         IAMMediaStream *This);
650 
651     ULONG (STDMETHODCALLTYPE *Release)(
652         IAMMediaStream *This);
653 
654     /*** IMediaStream methods ***/
655     HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
656         IAMMediaStream *This,
657         IMultiMediaStream **ppMultiMediaStream);
658 
659     HRESULT (STDMETHODCALLTYPE *GetInformation)(
660         IAMMediaStream *This,
661         MSPID *pPurposeId,
662         STREAM_TYPE *pType);
663 
664     HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
665         IAMMediaStream *This,
666         IMediaStream *pStreamThatHasDesiredFormat,
667         DWORD dwFlags);
668 
669     HRESULT (STDMETHODCALLTYPE *AllocateSample)(
670         IAMMediaStream *This,
671         DWORD dwFlags,
672         IStreamSample **ppSample);
673 
674     HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
675         IAMMediaStream *This,
676         IStreamSample *pExistingSample,
677         DWORD dwFlags,
678         IStreamSample **ppNewSample);
679 
680     HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
681         IAMMediaStream *This,
682         DWORD dwFlags);
683 
684     /*** IAMMediaStream methods ***/
685     HRESULT (STDMETHODCALLTYPE *Initialize)(
686         IAMMediaStream *This,
687         IUnknown *pSourceObject,
688         DWORD dwFlags,
689         REFMSPID PurposeId,
690         const STREAM_TYPE StreamType);
691 
692     HRESULT (STDMETHODCALLTYPE *SetState)(
693         IAMMediaStream *This,
694         FILTER_STATE State);
695 
696     HRESULT (STDMETHODCALLTYPE *JoinAMMultiMediaStream)(
697         IAMMediaStream *This,
698         IAMMultiMediaStream *pAMMultiMediaStream);
699 
700     HRESULT (STDMETHODCALLTYPE *JoinFilter)(
701         IAMMediaStream *This,
702         IMediaStreamFilter *pMediaStreamFilter);
703 
704     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
705         IAMMediaStream *This,
706         IFilterGraph *pFilterGraph);
707 
708     END_INTERFACE
709 } IAMMediaStreamVtbl;
710 
711 interface IAMMediaStream {
712     CONST_VTBL IAMMediaStreamVtbl* lpVtbl;
713 };
714 
715 #ifdef COBJMACROS
716 #ifndef WIDL_C_INLINE_WRAPPERS
717 /*** IUnknown methods ***/
718 #define IAMMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
719 #define IAMMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
720 #define IAMMediaStream_Release(This) (This)->lpVtbl->Release(This)
721 /*** IMediaStream methods ***/
722 #define IAMMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
723 #define IAMMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
724 #define IAMMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
725 #define IAMMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
726 #define IAMMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
727 #define IAMMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
728 /*** IAMMediaStream methods ***/
729 #define IAMMediaStream_Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType) (This)->lpVtbl->Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType)
730 #define IAMMediaStream_SetState(This,State) (This)->lpVtbl->SetState(This,State)
731 #define IAMMediaStream_JoinAMMultiMediaStream(This,pAMMultiMediaStream) (This)->lpVtbl->JoinAMMultiMediaStream(This,pAMMultiMediaStream)
732 #define IAMMediaStream_JoinFilter(This,pMediaStreamFilter) (This)->lpVtbl->JoinFilter(This,pMediaStreamFilter)
733 #define IAMMediaStream_JoinFilterGraph(This,pFilterGraph) (This)->lpVtbl->JoinFilterGraph(This,pFilterGraph)
734 #else
735 /*** IUnknown methods ***/
736 static FORCEINLINE HRESULT IAMMediaStream_QueryInterface(IAMMediaStream* This,REFIID riid,void **ppvObject) {
737     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
738 }
739 static FORCEINLINE ULONG IAMMediaStream_AddRef(IAMMediaStream* This) {
740     return This->lpVtbl->AddRef(This);
741 }
742 static FORCEINLINE ULONG IAMMediaStream_Release(IAMMediaStream* This) {
743     return This->lpVtbl->Release(This);
744 }
745 /*** IMediaStream methods ***/
746 static FORCEINLINE HRESULT IAMMediaStream_GetMultiMediaStream(IAMMediaStream* This,IMultiMediaStream **ppMultiMediaStream) {
747     return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
748 }
749 static FORCEINLINE HRESULT IAMMediaStream_GetInformation(IAMMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
750     return This->lpVtbl->GetInformation(This,pPurposeId,pType);
751 }
752 static FORCEINLINE HRESULT IAMMediaStream_SetSameFormat(IAMMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
753     return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
754 }
755 static FORCEINLINE HRESULT IAMMediaStream_AllocateSample(IAMMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) {
756     return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
757 }
758 static FORCEINLINE HRESULT IAMMediaStream_CreateSharedSample(IAMMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
759     return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
760 }
761 static FORCEINLINE HRESULT IAMMediaStream_SendEndOfStream(IAMMediaStream* This,DWORD dwFlags) {
762     return This->lpVtbl->SendEndOfStream(This,dwFlags);
763 }
764 /*** IAMMediaStream methods ***/
765 static FORCEINLINE HRESULT IAMMediaStream_Initialize(IAMMediaStream* This,IUnknown *pSourceObject,DWORD dwFlags,REFMSPID PurposeId,const STREAM_TYPE StreamType) {
766     return This->lpVtbl->Initialize(This,pSourceObject,dwFlags,PurposeId,StreamType);
767 }
768 static FORCEINLINE HRESULT IAMMediaStream_SetState(IAMMediaStream* This,FILTER_STATE State) {
769     return This->lpVtbl->SetState(This,State);
770 }
771 static FORCEINLINE HRESULT IAMMediaStream_JoinAMMultiMediaStream(IAMMediaStream* This,IAMMultiMediaStream *pAMMultiMediaStream) {
772     return This->lpVtbl->JoinAMMultiMediaStream(This,pAMMultiMediaStream);
773 }
774 static FORCEINLINE HRESULT IAMMediaStream_JoinFilter(IAMMediaStream* This,IMediaStreamFilter *pMediaStreamFilter) {
775     return This->lpVtbl->JoinFilter(This,pMediaStreamFilter);
776 }
777 static FORCEINLINE HRESULT IAMMediaStream_JoinFilterGraph(IAMMediaStream* This,IFilterGraph *pFilterGraph) {
778     return This->lpVtbl->JoinFilterGraph(This,pFilterGraph);
779 }
780 #endif
781 #endif
782 
783 #endif
784 
785 
786 #endif  /* __IAMMediaStream_INTERFACE_DEFINED__ */
787 
788 /*****************************************************************************
789  * IMediaStreamFilter interface
790  */
791 #ifndef __IMediaStreamFilter_INTERFACE_DEFINED__
792 #define __IMediaStreamFilter_INTERFACE_DEFINED__
793 
794 DEFINE_GUID(IID_IMediaStreamFilter, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
795 #if defined(__cplusplus) && !defined(CINTERFACE)
796 MIDL_INTERFACE("bebe595e-9a6f-11d0-8fde-00c04fd9189d")
797 IMediaStreamFilter : public IBaseFilter
798 {
799     virtual HRESULT STDMETHODCALLTYPE AddMediaStream(
800         IAMMediaStream *pAMMediaStream) = 0;
801 
802     virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
803         REFMSPID idPurpose,
804         IMediaStream **ppMediaStream) = 0;
805 
806     virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams(
807         LONG Index,
808         IMediaStream **ppMediaStream) = 0;
809 
810     virtual HRESULT STDMETHODCALLTYPE SupportSeeking(
811         WINBOOL bRenderer) = 0;
812 
813     virtual HRESULT STDMETHODCALLTYPE ReferenceTimeToStreamTime(
814         REFERENCE_TIME *pTime) = 0;
815 
816     virtual HRESULT STDMETHODCALLTYPE GetCurrentStreamTime(
817         REFERENCE_TIME *pCurrentStreamTime) = 0;
818 
819     virtual HRESULT STDMETHODCALLTYPE WaitUntil(
820         REFERENCE_TIME WaitStreamTime) = 0;
821 
822     virtual HRESULT STDMETHODCALLTYPE Flush(
823         WINBOOL bCancelEOS) = 0;
824 
825     virtual HRESULT STDMETHODCALLTYPE EndOfStream(
826         ) = 0;
827 
828 };
829 #ifdef __CRT_UUID_DECL
830 __CRT_UUID_DECL(IMediaStreamFilter, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
831 #endif
832 #else
833 typedef struct IMediaStreamFilterVtbl {
834     BEGIN_INTERFACE
835 
836     /*** IUnknown methods ***/
837     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
838         IMediaStreamFilter *This,
839         REFIID riid,
840         void **ppvObject);
841 
842     ULONG (STDMETHODCALLTYPE *AddRef)(
843         IMediaStreamFilter *This);
844 
845     ULONG (STDMETHODCALLTYPE *Release)(
846         IMediaStreamFilter *This);
847 
848     /*** IPersist methods ***/
849     HRESULT (STDMETHODCALLTYPE *GetClassID)(
850         IMediaStreamFilter *This,
851         CLSID *pClassID);
852 
853     /*** IMediaFilter methods ***/
854     HRESULT (STDMETHODCALLTYPE *Stop)(
855         IMediaStreamFilter *This);
856 
857     HRESULT (STDMETHODCALLTYPE *Pause)(
858         IMediaStreamFilter *This);
859 
860     HRESULT (STDMETHODCALLTYPE *Run)(
861         IMediaStreamFilter *This,
862         REFERENCE_TIME tStart);
863 
864     HRESULT (STDMETHODCALLTYPE *GetState)(
865         IMediaStreamFilter *This,
866         DWORD dwMilliSecsTimeout,
867         FILTER_STATE *State);
868 
869     HRESULT (STDMETHODCALLTYPE *SetSyncSource)(
870         IMediaStreamFilter *This,
871         IReferenceClock *pClock);
872 
873     HRESULT (STDMETHODCALLTYPE *GetSyncSource)(
874         IMediaStreamFilter *This,
875         IReferenceClock **pClock);
876 
877     /*** IBaseFilter methods ***/
878     HRESULT (STDMETHODCALLTYPE *EnumPins)(
879         IMediaStreamFilter *This,
880         IEnumPins **ppEnum);
881 
882     HRESULT (STDMETHODCALLTYPE *FindPin)(
883         IMediaStreamFilter *This,
884         LPCWSTR Id,
885         IPin **ppPin);
886 
887     HRESULT (STDMETHODCALLTYPE *QueryFilterInfo)(
888         IMediaStreamFilter *This,
889         FILTER_INFO *pInfo);
890 
891     HRESULT (STDMETHODCALLTYPE *JoinFilterGraph)(
892         IMediaStreamFilter *This,
893         IFilterGraph *pGraph,
894         LPCWSTR pName);
895 
896     HRESULT (STDMETHODCALLTYPE *QueryVendorInfo)(
897         IMediaStreamFilter *This,
898         LPWSTR *pVendorInfo);
899 
900     /*** IMediaStreamFilter methods ***/
901     HRESULT (STDMETHODCALLTYPE *AddMediaStream)(
902         IMediaStreamFilter *This,
903         IAMMediaStream *pAMMediaStream);
904 
905     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
906         IMediaStreamFilter *This,
907         REFMSPID idPurpose,
908         IMediaStream **ppMediaStream);
909 
910     HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
911         IMediaStreamFilter *This,
912         LONG Index,
913         IMediaStream **ppMediaStream);
914 
915     HRESULT (STDMETHODCALLTYPE *SupportSeeking)(
916         IMediaStreamFilter *This,
917         WINBOOL bRenderer);
918 
919     HRESULT (STDMETHODCALLTYPE *ReferenceTimeToStreamTime)(
920         IMediaStreamFilter *This,
921         REFERENCE_TIME *pTime);
922 
923     HRESULT (STDMETHODCALLTYPE *GetCurrentStreamTime)(
924         IMediaStreamFilter *This,
925         REFERENCE_TIME *pCurrentStreamTime);
926 
927     HRESULT (STDMETHODCALLTYPE *WaitUntil)(
928         IMediaStreamFilter *This,
929         REFERENCE_TIME WaitStreamTime);
930 
931     HRESULT (STDMETHODCALLTYPE *Flush)(
932         IMediaStreamFilter *This,
933         WINBOOL bCancelEOS);
934 
935     HRESULT (STDMETHODCALLTYPE *EndOfStream)(
936         IMediaStreamFilter *This);
937 
938     END_INTERFACE
939 } IMediaStreamFilterVtbl;
940 
941 interface IMediaStreamFilter {
942     CONST_VTBL IMediaStreamFilterVtbl* lpVtbl;
943 };
944 
945 #ifdef COBJMACROS
946 #ifndef WIDL_C_INLINE_WRAPPERS
947 /*** IUnknown methods ***/
948 #define IMediaStreamFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
949 #define IMediaStreamFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
950 #define IMediaStreamFilter_Release(This) (This)->lpVtbl->Release(This)
951 /*** IPersist methods ***/
952 #define IMediaStreamFilter_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
953 /*** IMediaFilter methods ***/
954 #define IMediaStreamFilter_Stop(This) (This)->lpVtbl->Stop(This)
955 #define IMediaStreamFilter_Pause(This) (This)->lpVtbl->Pause(This)
956 #define IMediaStreamFilter_Run(This,tStart) (This)->lpVtbl->Run(This,tStart)
957 #define IMediaStreamFilter_GetState(This,dwMilliSecsTimeout,State) (This)->lpVtbl->GetState(This,dwMilliSecsTimeout,State)
958 #define IMediaStreamFilter_SetSyncSource(This,pClock) (This)->lpVtbl->SetSyncSource(This,pClock)
959 #define IMediaStreamFilter_GetSyncSource(This,pClock) (This)->lpVtbl->GetSyncSource(This,pClock)
960 /*** IBaseFilter methods ***/
961 #define IMediaStreamFilter_EnumPins(This,ppEnum) (This)->lpVtbl->EnumPins(This,ppEnum)
962 #define IMediaStreamFilter_FindPin(This,Id,ppPin) (This)->lpVtbl->FindPin(This,Id,ppPin)
963 #define IMediaStreamFilter_QueryFilterInfo(This,pInfo) (This)->lpVtbl->QueryFilterInfo(This,pInfo)
964 #define IMediaStreamFilter_JoinFilterGraph(This,pGraph,pName) (This)->lpVtbl->JoinFilterGraph(This,pGraph,pName)
965 #define IMediaStreamFilter_QueryVendorInfo(This,pVendorInfo) (This)->lpVtbl->QueryVendorInfo(This,pVendorInfo)
966 /*** IMediaStreamFilter methods ***/
967 #define IMediaStreamFilter_AddMediaStream(This,pAMMediaStream) (This)->lpVtbl->AddMediaStream(This,pAMMediaStream)
968 #define IMediaStreamFilter_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream)
969 #define IMediaStreamFilter_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream)
970 #define IMediaStreamFilter_SupportSeeking(This,bRenderer) (This)->lpVtbl->SupportSeeking(This,bRenderer)
971 #define IMediaStreamFilter_ReferenceTimeToStreamTime(This,pTime) (This)->lpVtbl->ReferenceTimeToStreamTime(This,pTime)
972 #define IMediaStreamFilter_GetCurrentStreamTime(This,pCurrentStreamTime) (This)->lpVtbl->GetCurrentStreamTime(This,pCurrentStreamTime)
973 #define IMediaStreamFilter_WaitUntil(This,WaitStreamTime) (This)->lpVtbl->WaitUntil(This,WaitStreamTime)
974 #define IMediaStreamFilter_Flush(This,bCancelEOS) (This)->lpVtbl->Flush(This,bCancelEOS)
975 #define IMediaStreamFilter_EndOfStream(This) (This)->lpVtbl->EndOfStream(This)
976 #else
977 /*** IUnknown methods ***/
978 static FORCEINLINE HRESULT IMediaStreamFilter_QueryInterface(IMediaStreamFilter* This,REFIID riid,void **ppvObject) {
979     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
980 }
981 static FORCEINLINE ULONG IMediaStreamFilter_AddRef(IMediaStreamFilter* This) {
982     return This->lpVtbl->AddRef(This);
983 }
984 static FORCEINLINE ULONG IMediaStreamFilter_Release(IMediaStreamFilter* This) {
985     return This->lpVtbl->Release(This);
986 }
987 /*** IPersist methods ***/
988 static FORCEINLINE HRESULT IMediaStreamFilter_GetClassID(IMediaStreamFilter* This,CLSID *pClassID) {
989     return This->lpVtbl->GetClassID(This,pClassID);
990 }
991 /*** IMediaFilter methods ***/
992 static FORCEINLINE HRESULT IMediaStreamFilter_Stop(IMediaStreamFilter* This) {
993     return This->lpVtbl->Stop(This);
994 }
995 static FORCEINLINE HRESULT IMediaStreamFilter_Pause(IMediaStreamFilter* This) {
996     return This->lpVtbl->Pause(This);
997 }
998 static FORCEINLINE HRESULT IMediaStreamFilter_Run(IMediaStreamFilter* This,REFERENCE_TIME tStart) {
999     return This->lpVtbl->Run(This,tStart);
1000 }
1001 static FORCEINLINE HRESULT IMediaStreamFilter_GetState(IMediaStreamFilter* This,DWORD dwMilliSecsTimeout,FILTER_STATE *State) {
1002     return This->lpVtbl->GetState(This,dwMilliSecsTimeout,State);
1003 }
1004 static FORCEINLINE HRESULT IMediaStreamFilter_SetSyncSource(IMediaStreamFilter* This,IReferenceClock *pClock) {
1005     return This->lpVtbl->SetSyncSource(This,pClock);
1006 }
1007 static FORCEINLINE HRESULT IMediaStreamFilter_GetSyncSource(IMediaStreamFilter* This,IReferenceClock **pClock) {
1008     return This->lpVtbl->GetSyncSource(This,pClock);
1009 }
1010 /*** IBaseFilter methods ***/
1011 static FORCEINLINE HRESULT IMediaStreamFilter_EnumPins(IMediaStreamFilter* This,IEnumPins **ppEnum) {
1012     return This->lpVtbl->EnumPins(This,ppEnum);
1013 }
1014 static FORCEINLINE HRESULT IMediaStreamFilter_FindPin(IMediaStreamFilter* This,LPCWSTR Id,IPin **ppPin) {
1015     return This->lpVtbl->FindPin(This,Id,ppPin);
1016 }
1017 static FORCEINLINE HRESULT IMediaStreamFilter_QueryFilterInfo(IMediaStreamFilter* This,FILTER_INFO *pInfo) {
1018     return This->lpVtbl->QueryFilterInfo(This,pInfo);
1019 }
1020 static FORCEINLINE HRESULT IMediaStreamFilter_JoinFilterGraph(IMediaStreamFilter* This,IFilterGraph *pGraph,LPCWSTR pName) {
1021     return This->lpVtbl->JoinFilterGraph(This,pGraph,pName);
1022 }
1023 static FORCEINLINE HRESULT IMediaStreamFilter_QueryVendorInfo(IMediaStreamFilter* This,LPWSTR *pVendorInfo) {
1024     return This->lpVtbl->QueryVendorInfo(This,pVendorInfo);
1025 }
1026 /*** IMediaStreamFilter methods ***/
1027 static FORCEINLINE HRESULT IMediaStreamFilter_AddMediaStream(IMediaStreamFilter* This,IAMMediaStream *pAMMediaStream) {
1028     return This->lpVtbl->AddMediaStream(This,pAMMediaStream);
1029 }
1030 static FORCEINLINE HRESULT IMediaStreamFilter_GetMediaStream(IMediaStreamFilter* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) {
1031     return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream);
1032 }
1033 static FORCEINLINE HRESULT IMediaStreamFilter_EnumMediaStreams(IMediaStreamFilter* This,LONG Index,IMediaStream **ppMediaStream) {
1034     return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream);
1035 }
1036 static FORCEINLINE HRESULT IMediaStreamFilter_SupportSeeking(IMediaStreamFilter* This,WINBOOL bRenderer) {
1037     return This->lpVtbl->SupportSeeking(This,bRenderer);
1038 }
1039 static FORCEINLINE HRESULT IMediaStreamFilter_ReferenceTimeToStreamTime(IMediaStreamFilter* This,REFERENCE_TIME *pTime) {
1040     return This->lpVtbl->ReferenceTimeToStreamTime(This,pTime);
1041 }
1042 static FORCEINLINE HRESULT IMediaStreamFilter_GetCurrentStreamTime(IMediaStreamFilter* This,REFERENCE_TIME *pCurrentStreamTime) {
1043     return This->lpVtbl->GetCurrentStreamTime(This,pCurrentStreamTime);
1044 }
1045 static FORCEINLINE HRESULT IMediaStreamFilter_WaitUntil(IMediaStreamFilter* This,REFERENCE_TIME WaitStreamTime) {
1046     return This->lpVtbl->WaitUntil(This,WaitStreamTime);
1047 }
1048 static FORCEINLINE HRESULT IMediaStreamFilter_Flush(IMediaStreamFilter* This,WINBOOL bCancelEOS) {
1049     return This->lpVtbl->Flush(This,bCancelEOS);
1050 }
1051 static FORCEINLINE HRESULT IMediaStreamFilter_EndOfStream(IMediaStreamFilter* This) {
1052     return This->lpVtbl->EndOfStream(This);
1053 }
1054 #endif
1055 #endif
1056 
1057 #endif
1058 
1059 
1060 #endif  /* __IMediaStreamFilter_INTERFACE_DEFINED__ */
1061 
1062 /*****************************************************************************
1063  * IDirectDrawMediaSampleAllocator interface
1064  */
1065 #ifndef __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
1066 #define __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
1067 
1068 DEFINE_GUID(IID_IDirectDrawMediaSampleAllocator, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
1069 #if defined(__cplusplus) && !defined(CINTERFACE)
1070 MIDL_INTERFACE("ab6b4afc-f6e4-11d0-900d-00c04fd9189d")
1071 IDirectDrawMediaSampleAllocator : public IUnknown
1072 {
1073     virtual HRESULT STDMETHODCALLTYPE GetDirectDraw(
1074         IDirectDraw **ppDirectDraw) = 0;
1075 
1076 };
1077 #ifdef __CRT_UUID_DECL
1078 __CRT_UUID_DECL(IDirectDrawMediaSampleAllocator, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
1079 #endif
1080 #else
1081 typedef struct IDirectDrawMediaSampleAllocatorVtbl {
1082     BEGIN_INTERFACE
1083 
1084     /*** IUnknown methods ***/
1085     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1086         IDirectDrawMediaSampleAllocator *This,
1087         REFIID riid,
1088         void **ppvObject);
1089 
1090     ULONG (STDMETHODCALLTYPE *AddRef)(
1091         IDirectDrawMediaSampleAllocator *This);
1092 
1093     ULONG (STDMETHODCALLTYPE *Release)(
1094         IDirectDrawMediaSampleAllocator *This);
1095 
1096     /*** IDirectDrawMediaSampleAllocator methods ***/
1097     HRESULT (STDMETHODCALLTYPE *GetDirectDraw)(
1098         IDirectDrawMediaSampleAllocator *This,
1099         IDirectDraw **ppDirectDraw);
1100 
1101     END_INTERFACE
1102 } IDirectDrawMediaSampleAllocatorVtbl;
1103 
1104 interface IDirectDrawMediaSampleAllocator {
1105     CONST_VTBL IDirectDrawMediaSampleAllocatorVtbl* lpVtbl;
1106 };
1107 
1108 #ifdef COBJMACROS
1109 #ifndef WIDL_C_INLINE_WRAPPERS
1110 /*** IUnknown methods ***/
1111 #define IDirectDrawMediaSampleAllocator_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1112 #define IDirectDrawMediaSampleAllocator_AddRef(This) (This)->lpVtbl->AddRef(This)
1113 #define IDirectDrawMediaSampleAllocator_Release(This) (This)->lpVtbl->Release(This)
1114 /*** IDirectDrawMediaSampleAllocator methods ***/
1115 #define IDirectDrawMediaSampleAllocator_GetDirectDraw(This,ppDirectDraw) (This)->lpVtbl->GetDirectDraw(This,ppDirectDraw)
1116 #else
1117 /*** IUnknown methods ***/
1118 static FORCEINLINE HRESULT IDirectDrawMediaSampleAllocator_QueryInterface(IDirectDrawMediaSampleAllocator* This,REFIID riid,void **ppvObject) {
1119     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1120 }
1121 static FORCEINLINE ULONG IDirectDrawMediaSampleAllocator_AddRef(IDirectDrawMediaSampleAllocator* This) {
1122     return This->lpVtbl->AddRef(This);
1123 }
1124 static FORCEINLINE ULONG IDirectDrawMediaSampleAllocator_Release(IDirectDrawMediaSampleAllocator* This) {
1125     return This->lpVtbl->Release(This);
1126 }
1127 /*** IDirectDrawMediaSampleAllocator methods ***/
1128 static FORCEINLINE HRESULT IDirectDrawMediaSampleAllocator_GetDirectDraw(IDirectDrawMediaSampleAllocator* This,IDirectDraw **ppDirectDraw) {
1129     return This->lpVtbl->GetDirectDraw(This,ppDirectDraw);
1130 }
1131 #endif
1132 #endif
1133 
1134 #endif
1135 
1136 
1137 #endif  /* __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ */
1138 
1139 /*****************************************************************************
1140  * IDirectDrawMediaSample interface
1141  */
1142 #ifndef __IDirectDrawMediaSample_INTERFACE_DEFINED__
1143 #define __IDirectDrawMediaSample_INTERFACE_DEFINED__
1144 
1145 DEFINE_GUID(IID_IDirectDrawMediaSample, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
1146 #if defined(__cplusplus) && !defined(CINTERFACE)
1147 MIDL_INTERFACE("ab6b4afe-f6e4-11d0-900d-00c04fd9189d")
1148 IDirectDrawMediaSample : public IUnknown
1149 {
1150     virtual HRESULT STDMETHODCALLTYPE GetSurfaceAndReleaseLock(
1151         IDirectDrawSurface **ppDirectDrawSurface,
1152         RECT *pRect) = 0;
1153 
1154     virtual HRESULT STDMETHODCALLTYPE LockMediaSamplePointer(
1155         ) = 0;
1156 
1157 };
1158 #ifdef __CRT_UUID_DECL
1159 __CRT_UUID_DECL(IDirectDrawMediaSample, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
1160 #endif
1161 #else
1162 typedef struct IDirectDrawMediaSampleVtbl {
1163     BEGIN_INTERFACE
1164 
1165     /*** IUnknown methods ***/
1166     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1167         IDirectDrawMediaSample *This,
1168         REFIID riid,
1169         void **ppvObject);
1170 
1171     ULONG (STDMETHODCALLTYPE *AddRef)(
1172         IDirectDrawMediaSample *This);
1173 
1174     ULONG (STDMETHODCALLTYPE *Release)(
1175         IDirectDrawMediaSample *This);
1176 
1177     /*** IDirectDrawMediaSample methods ***/
1178     HRESULT (STDMETHODCALLTYPE *GetSurfaceAndReleaseLock)(
1179         IDirectDrawMediaSample *This,
1180         IDirectDrawSurface **ppDirectDrawSurface,
1181         RECT *pRect);
1182 
1183     HRESULT (STDMETHODCALLTYPE *LockMediaSamplePointer)(
1184         IDirectDrawMediaSample *This);
1185 
1186     END_INTERFACE
1187 } IDirectDrawMediaSampleVtbl;
1188 
1189 interface IDirectDrawMediaSample {
1190     CONST_VTBL IDirectDrawMediaSampleVtbl* lpVtbl;
1191 };
1192 
1193 #ifdef COBJMACROS
1194 #ifndef WIDL_C_INLINE_WRAPPERS
1195 /*** IUnknown methods ***/
1196 #define IDirectDrawMediaSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1197 #define IDirectDrawMediaSample_AddRef(This) (This)->lpVtbl->AddRef(This)
1198 #define IDirectDrawMediaSample_Release(This) (This)->lpVtbl->Release(This)
1199 /*** IDirectDrawMediaSample methods ***/
1200 #define IDirectDrawMediaSample_GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect) (This)->lpVtbl->GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect)
1201 #define IDirectDrawMediaSample_LockMediaSamplePointer(This) (This)->lpVtbl->LockMediaSamplePointer(This)
1202 #else
1203 /*** IUnknown methods ***/
1204 static FORCEINLINE HRESULT IDirectDrawMediaSample_QueryInterface(IDirectDrawMediaSample* This,REFIID riid,void **ppvObject) {
1205     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1206 }
1207 static FORCEINLINE ULONG IDirectDrawMediaSample_AddRef(IDirectDrawMediaSample* This) {
1208     return This->lpVtbl->AddRef(This);
1209 }
1210 static FORCEINLINE ULONG IDirectDrawMediaSample_Release(IDirectDrawMediaSample* This) {
1211     return This->lpVtbl->Release(This);
1212 }
1213 /*** IDirectDrawMediaSample methods ***/
1214 static FORCEINLINE HRESULT IDirectDrawMediaSample_GetSurfaceAndReleaseLock(IDirectDrawMediaSample* This,IDirectDrawSurface **ppDirectDrawSurface,RECT *pRect) {
1215     return This->lpVtbl->GetSurfaceAndReleaseLock(This,ppDirectDrawSurface,pRect);
1216 }
1217 static FORCEINLINE HRESULT IDirectDrawMediaSample_LockMediaSamplePointer(IDirectDrawMediaSample* This) {
1218     return This->lpVtbl->LockMediaSamplePointer(This);
1219 }
1220 #endif
1221 #endif
1222 
1223 #endif
1224 
1225 
1226 #endif  /* __IDirectDrawMediaSample_INTERFACE_DEFINED__ */
1227 
1228 /*****************************************************************************
1229  * IAMMediaTypeStream interface
1230  */
1231 #ifndef __IAMMediaTypeStream_INTERFACE_DEFINED__
1232 #define __IAMMediaTypeStream_INTERFACE_DEFINED__
1233 
1234 DEFINE_GUID(IID_IAMMediaTypeStream, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
1235 #if defined(__cplusplus) && !defined(CINTERFACE)
1236 MIDL_INTERFACE("ab6b4afa-f6e4-11d0-900d-00c04fd9189d")
1237 IAMMediaTypeStream : public IMediaStream
1238 {
1239     virtual HRESULT STDMETHODCALLTYPE GetFormat(
1240         AM_MEDIA_TYPE *pMediaType,
1241         DWORD dwFlags) = 0;
1242 
1243     virtual HRESULT STDMETHODCALLTYPE SetFormat(
1244         AM_MEDIA_TYPE *pMediaType,
1245         DWORD dwFlags) = 0;
1246 
1247     virtual HRESULT STDMETHODCALLTYPE CreateSample(
1248         LONG lSampleSize,
1249         BYTE *pbBuffer,
1250         DWORD dwFlags,
1251         IUnknown *pUnkOuter,
1252         IAMMediaTypeSample **ppAMMediaTypeSample) = 0;
1253 
1254     virtual HRESULT STDMETHODCALLTYPE GetStreamAllocatorRequirements(
1255         ALLOCATOR_PROPERTIES *pProps) = 0;
1256 
1257     virtual HRESULT STDMETHODCALLTYPE SetStreamAllocatorRequirements(
1258         ALLOCATOR_PROPERTIES *pProps) = 0;
1259 
1260 };
1261 #ifdef __CRT_UUID_DECL
1262 __CRT_UUID_DECL(IAMMediaTypeStream, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
1263 #endif
1264 #else
1265 typedef struct IAMMediaTypeStreamVtbl {
1266     BEGIN_INTERFACE
1267 
1268     /*** IUnknown methods ***/
1269     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1270         IAMMediaTypeStream *This,
1271         REFIID riid,
1272         void **ppvObject);
1273 
1274     ULONG (STDMETHODCALLTYPE *AddRef)(
1275         IAMMediaTypeStream *This);
1276 
1277     ULONG (STDMETHODCALLTYPE *Release)(
1278         IAMMediaTypeStream *This);
1279 
1280     /*** IMediaStream methods ***/
1281     HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
1282         IAMMediaTypeStream *This,
1283         IMultiMediaStream **ppMultiMediaStream);
1284 
1285     HRESULT (STDMETHODCALLTYPE *GetInformation)(
1286         IAMMediaTypeStream *This,
1287         MSPID *pPurposeId,
1288         STREAM_TYPE *pType);
1289 
1290     HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
1291         IAMMediaTypeStream *This,
1292         IMediaStream *pStreamThatHasDesiredFormat,
1293         DWORD dwFlags);
1294 
1295     HRESULT (STDMETHODCALLTYPE *AllocateSample)(
1296         IAMMediaTypeStream *This,
1297         DWORD dwFlags,
1298         IStreamSample **ppSample);
1299 
1300     HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
1301         IAMMediaTypeStream *This,
1302         IStreamSample *pExistingSample,
1303         DWORD dwFlags,
1304         IStreamSample **ppNewSample);
1305 
1306     HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
1307         IAMMediaTypeStream *This,
1308         DWORD dwFlags);
1309 
1310     /*** IAMMediaTypeStream methods ***/
1311     HRESULT (STDMETHODCALLTYPE *GetFormat)(
1312         IAMMediaTypeStream *This,
1313         AM_MEDIA_TYPE *pMediaType,
1314         DWORD dwFlags);
1315 
1316     HRESULT (STDMETHODCALLTYPE *SetFormat)(
1317         IAMMediaTypeStream *This,
1318         AM_MEDIA_TYPE *pMediaType,
1319         DWORD dwFlags);
1320 
1321     HRESULT (STDMETHODCALLTYPE *CreateSample)(
1322         IAMMediaTypeStream *This,
1323         LONG lSampleSize,
1324         BYTE *pbBuffer,
1325         DWORD dwFlags,
1326         IUnknown *pUnkOuter,
1327         IAMMediaTypeSample **ppAMMediaTypeSample);
1328 
1329     HRESULT (STDMETHODCALLTYPE *GetStreamAllocatorRequirements)(
1330         IAMMediaTypeStream *This,
1331         ALLOCATOR_PROPERTIES *pProps);
1332 
1333     HRESULT (STDMETHODCALLTYPE *SetStreamAllocatorRequirements)(
1334         IAMMediaTypeStream *This,
1335         ALLOCATOR_PROPERTIES *pProps);
1336 
1337     END_INTERFACE
1338 } IAMMediaTypeStreamVtbl;
1339 
1340 interface IAMMediaTypeStream {
1341     CONST_VTBL IAMMediaTypeStreamVtbl* lpVtbl;
1342 };
1343 
1344 #ifdef COBJMACROS
1345 #ifndef WIDL_C_INLINE_WRAPPERS
1346 /*** IUnknown methods ***/
1347 #define IAMMediaTypeStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1348 #define IAMMediaTypeStream_AddRef(This) (This)->lpVtbl->AddRef(This)
1349 #define IAMMediaTypeStream_Release(This) (This)->lpVtbl->Release(This)
1350 /*** IMediaStream methods ***/
1351 #define IAMMediaTypeStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
1352 #define IAMMediaTypeStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
1353 #define IAMMediaTypeStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
1354 #define IAMMediaTypeStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
1355 #define IAMMediaTypeStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
1356 #define IAMMediaTypeStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
1357 /*** IAMMediaTypeStream methods ***/
1358 #define IAMMediaTypeStream_GetFormat(This,pMediaType,dwFlags) (This)->lpVtbl->GetFormat(This,pMediaType,dwFlags)
1359 #define IAMMediaTypeStream_SetFormat(This,pMediaType,dwFlags) (This)->lpVtbl->SetFormat(This,pMediaType,dwFlags)
1360 #define IAMMediaTypeStream_CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample) (This)->lpVtbl->CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample)
1361 #define IAMMediaTypeStream_GetStreamAllocatorRequirements(This,pProps) (This)->lpVtbl->GetStreamAllocatorRequirements(This,pProps)
1362 #define IAMMediaTypeStream_SetStreamAllocatorRequirements(This,pProps) (This)->lpVtbl->SetStreamAllocatorRequirements(This,pProps)
1363 #else
1364 /*** IUnknown methods ***/
1365 static FORCEINLINE HRESULT IAMMediaTypeStream_QueryInterface(IAMMediaTypeStream* This,REFIID riid,void **ppvObject) {
1366     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1367 }
1368 static FORCEINLINE ULONG IAMMediaTypeStream_AddRef(IAMMediaTypeStream* This) {
1369     return This->lpVtbl->AddRef(This);
1370 }
1371 static FORCEINLINE ULONG IAMMediaTypeStream_Release(IAMMediaTypeStream* This) {
1372     return This->lpVtbl->Release(This);
1373 }
1374 /*** IMediaStream methods ***/
1375 static FORCEINLINE HRESULT IAMMediaTypeStream_GetMultiMediaStream(IAMMediaTypeStream* This,IMultiMediaStream **ppMultiMediaStream) {
1376     return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
1377 }
1378 static FORCEINLINE HRESULT IAMMediaTypeStream_GetInformation(IAMMediaTypeStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
1379     return This->lpVtbl->GetInformation(This,pPurposeId,pType);
1380 }
1381 static FORCEINLINE HRESULT IAMMediaTypeStream_SetSameFormat(IAMMediaTypeStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
1382     return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
1383 }
1384 static FORCEINLINE HRESULT IAMMediaTypeStream_AllocateSample(IAMMediaTypeStream* This,DWORD dwFlags,IStreamSample **ppSample) {
1385     return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
1386 }
1387 static FORCEINLINE HRESULT IAMMediaTypeStream_CreateSharedSample(IAMMediaTypeStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
1388     return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
1389 }
1390 static FORCEINLINE HRESULT IAMMediaTypeStream_SendEndOfStream(IAMMediaTypeStream* This,DWORD dwFlags) {
1391     return This->lpVtbl->SendEndOfStream(This,dwFlags);
1392 }
1393 /*** IAMMediaTypeStream methods ***/
1394 static FORCEINLINE HRESULT IAMMediaTypeStream_GetFormat(IAMMediaTypeStream* This,AM_MEDIA_TYPE *pMediaType,DWORD dwFlags) {
1395     return This->lpVtbl->GetFormat(This,pMediaType,dwFlags);
1396 }
1397 static FORCEINLINE HRESULT IAMMediaTypeStream_SetFormat(IAMMediaTypeStream* This,AM_MEDIA_TYPE *pMediaType,DWORD dwFlags) {
1398     return This->lpVtbl->SetFormat(This,pMediaType,dwFlags);
1399 }
1400 static FORCEINLINE HRESULT IAMMediaTypeStream_CreateSample(IAMMediaTypeStream* This,LONG lSampleSize,BYTE *pbBuffer,DWORD dwFlags,IUnknown *pUnkOuter,IAMMediaTypeSample **ppAMMediaTypeSample) {
1401     return This->lpVtbl->CreateSample(This,lSampleSize,pbBuffer,dwFlags,pUnkOuter,ppAMMediaTypeSample);
1402 }
1403 static FORCEINLINE HRESULT IAMMediaTypeStream_GetStreamAllocatorRequirements(IAMMediaTypeStream* This,ALLOCATOR_PROPERTIES *pProps) {
1404     return This->lpVtbl->GetStreamAllocatorRequirements(This,pProps);
1405 }
1406 static FORCEINLINE HRESULT IAMMediaTypeStream_SetStreamAllocatorRequirements(IAMMediaTypeStream* This,ALLOCATOR_PROPERTIES *pProps) {
1407     return This->lpVtbl->SetStreamAllocatorRequirements(This,pProps);
1408 }
1409 #endif
1410 #endif
1411 
1412 #endif
1413 
1414 
1415 #endif  /* __IAMMediaTypeStream_INTERFACE_DEFINED__ */
1416 
1417 /*****************************************************************************
1418  * IAMMediaTypeSample interface
1419  */
1420 #ifndef __IAMMediaTypeSample_INTERFACE_DEFINED__
1421 #define __IAMMediaTypeSample_INTERFACE_DEFINED__
1422 
1423 DEFINE_GUID(IID_IAMMediaTypeSample, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
1424 #if defined(__cplusplus) && !defined(CINTERFACE)
1425 MIDL_INTERFACE("ab6b4afb-f6e4-11d0-900d-00c04fd9189d")
1426 IAMMediaTypeSample : public IStreamSample
1427 {
1428     virtual HRESULT STDMETHODCALLTYPE SetPointer(
1429         BYTE *pBuffer,
1430         LONG lSize) = 0;
1431 
1432     virtual HRESULT STDMETHODCALLTYPE GetPointer(
1433         BYTE **ppBuffer) = 0;
1434 
1435     virtual LONG STDMETHODCALLTYPE GetSize(
1436         ) = 0;
1437 
1438     virtual HRESULT STDMETHODCALLTYPE GetTime(
1439         REFERENCE_TIME *pTimeStart,
1440         REFERENCE_TIME *pTimeEnd) = 0;
1441 
1442     virtual HRESULT STDMETHODCALLTYPE SetTime(
1443         REFERENCE_TIME *pTimeStart,
1444         REFERENCE_TIME *pTimeEnd) = 0;
1445 
1446     virtual HRESULT STDMETHODCALLTYPE IsSyncPoint(
1447         ) = 0;
1448 
1449     virtual HRESULT STDMETHODCALLTYPE SetSyncPoint(
1450         WINBOOL bIsSyncPoint) = 0;
1451 
1452     virtual HRESULT STDMETHODCALLTYPE IsPreroll(
1453         ) = 0;
1454 
1455     virtual HRESULT STDMETHODCALLTYPE SetPreroll(
1456         WINBOOL bIsPreroll) = 0;
1457 
1458     virtual LONG STDMETHODCALLTYPE GetActualDataLength(
1459         ) = 0;
1460 
1461     virtual HRESULT STDMETHODCALLTYPE SetActualDataLength(
1462         LONG Len) = 0;
1463 
1464     virtual HRESULT STDMETHODCALLTYPE GetMediaType(
1465         AM_MEDIA_TYPE **ppMediaType) = 0;
1466 
1467     virtual HRESULT STDMETHODCALLTYPE SetMediaType(
1468         AM_MEDIA_TYPE *pMediaType) = 0;
1469 
1470     virtual HRESULT STDMETHODCALLTYPE IsDiscontinuity(
1471         ) = 0;
1472 
1473     virtual HRESULT STDMETHODCALLTYPE SetDiscontinuity(
1474         WINBOOL bDiscontinuity) = 0;
1475 
1476     virtual HRESULT STDMETHODCALLTYPE GetMediaTime(
1477         LONGLONG *pTimeStart,
1478         LONGLONG *pTimeEnd) = 0;
1479 
1480     virtual HRESULT STDMETHODCALLTYPE SetMediaTime(
1481         LONGLONG *pTimeStart,
1482         LONGLONG *pTimeEnd) = 0;
1483 
1484 };
1485 #ifdef __CRT_UUID_DECL
1486 __CRT_UUID_DECL(IAMMediaTypeSample, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
1487 #endif
1488 #else
1489 typedef struct IAMMediaTypeSampleVtbl {
1490     BEGIN_INTERFACE
1491 
1492     /*** IUnknown methods ***/
1493     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
1494         IAMMediaTypeSample *This,
1495         REFIID riid,
1496         void **ppvObject);
1497 
1498     ULONG (STDMETHODCALLTYPE *AddRef)(
1499         IAMMediaTypeSample *This);
1500 
1501     ULONG (STDMETHODCALLTYPE *Release)(
1502         IAMMediaTypeSample *This);
1503 
1504     /*** IStreamSample methods ***/
1505     HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
1506         IAMMediaTypeSample *This,
1507         IMediaStream **ppMediaStream);
1508 
1509     HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
1510         IAMMediaTypeSample *This,
1511         STREAM_TIME *pStartTime,
1512         STREAM_TIME *pEndTime,
1513         STREAM_TIME *pCurrentTime);
1514 
1515     HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
1516         IAMMediaTypeSample *This,
1517         const STREAM_TIME *pStartTime,
1518         const STREAM_TIME *pEndTime);
1519 
1520     HRESULT (STDMETHODCALLTYPE *Update)(
1521         IAMMediaTypeSample *This,
1522         DWORD dwFlags,
1523         HANDLE hEvent,
1524         PAPCFUNC pfnAPC,
1525         DWORD dwAPCData);
1526 
1527     HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
1528         IAMMediaTypeSample *This,
1529         DWORD dwFlags,
1530         DWORD dwMilliseconds);
1531 
1532     /*** IAMMediaTypeSample methods ***/
1533     HRESULT (STDMETHODCALLTYPE *SetPointer)(
1534         IAMMediaTypeSample *This,
1535         BYTE *pBuffer,
1536         LONG lSize);
1537 
1538     HRESULT (STDMETHODCALLTYPE *GetPointer)(
1539         IAMMediaTypeSample *This,
1540         BYTE **ppBuffer);
1541 
1542     LONG (STDMETHODCALLTYPE *GetSize)(
1543         IAMMediaTypeSample *This);
1544 
1545     HRESULT (STDMETHODCALLTYPE *GetTime)(
1546         IAMMediaTypeSample *This,
1547         REFERENCE_TIME *pTimeStart,
1548         REFERENCE_TIME *pTimeEnd);
1549 
1550     HRESULT (STDMETHODCALLTYPE *SetTime)(
1551         IAMMediaTypeSample *This,
1552         REFERENCE_TIME *pTimeStart,
1553         REFERENCE_TIME *pTimeEnd);
1554 
1555     HRESULT (STDMETHODCALLTYPE *IsSyncPoint)(
1556         IAMMediaTypeSample *This);
1557 
1558     HRESULT (STDMETHODCALLTYPE *SetSyncPoint)(
1559         IAMMediaTypeSample *This,
1560         WINBOOL bIsSyncPoint);
1561 
1562     HRESULT (STDMETHODCALLTYPE *IsPreroll)(
1563         IAMMediaTypeSample *This);
1564 
1565     HRESULT (STDMETHODCALLTYPE *SetPreroll)(
1566         IAMMediaTypeSample *This,
1567         WINBOOL bIsPreroll);
1568 
1569     LONG (STDMETHODCALLTYPE *GetActualDataLength)(
1570         IAMMediaTypeSample *This);
1571 
1572     HRESULT (STDMETHODCALLTYPE *SetActualDataLength)(
1573         IAMMediaTypeSample *This,
1574         LONG Len);
1575 
1576     HRESULT (STDMETHODCALLTYPE *GetMediaType)(
1577         IAMMediaTypeSample *This,
1578         AM_MEDIA_TYPE **ppMediaType);
1579 
1580     HRESULT (STDMETHODCALLTYPE *SetMediaType)(
1581         IAMMediaTypeSample *This,
1582         AM_MEDIA_TYPE *pMediaType);
1583 
1584     HRESULT (STDMETHODCALLTYPE *IsDiscontinuity)(
1585         IAMMediaTypeSample *This);
1586 
1587     HRESULT (STDMETHODCALLTYPE *SetDiscontinuity)(
1588         IAMMediaTypeSample *This,
1589         WINBOOL bDiscontinuity);
1590 
1591     HRESULT (STDMETHODCALLTYPE *GetMediaTime)(
1592         IAMMediaTypeSample *This,
1593         LONGLONG *pTimeStart,
1594         LONGLONG *pTimeEnd);
1595 
1596     HRESULT (STDMETHODCALLTYPE *SetMediaTime)(
1597         IAMMediaTypeSample *This,
1598         LONGLONG *pTimeStart,
1599         LONGLONG *pTimeEnd);
1600 
1601     END_INTERFACE
1602 } IAMMediaTypeSampleVtbl;
1603 
1604 interface IAMMediaTypeSample {
1605     CONST_VTBL IAMMediaTypeSampleVtbl* lpVtbl;
1606 };
1607 
1608 #ifdef COBJMACROS
1609 #ifndef WIDL_C_INLINE_WRAPPERS
1610 /*** IUnknown methods ***/
1611 #define IAMMediaTypeSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
1612 #define IAMMediaTypeSample_AddRef(This) (This)->lpVtbl->AddRef(This)
1613 #define IAMMediaTypeSample_Release(This) (This)->lpVtbl->Release(This)
1614 /*** IStreamSample methods ***/
1615 #define IAMMediaTypeSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream)
1616 #define IAMMediaTypeSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
1617 #define IAMMediaTypeSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime)
1618 #define IAMMediaTypeSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
1619 #define IAMMediaTypeSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds)
1620 /*** IAMMediaTypeSample methods ***/
1621 #define IAMMediaTypeSample_SetPointer(This,pBuffer,lSize) (This)->lpVtbl->SetPointer(This,pBuffer,lSize)
1622 #define IAMMediaTypeSample_GetPointer(This,ppBuffer) (This)->lpVtbl->GetPointer(This,ppBuffer)
1623 #define IAMMediaTypeSample_GetSize(This) (This)->lpVtbl->GetSize(This)
1624 #define IAMMediaTypeSample_GetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetTime(This,pTimeStart,pTimeEnd)
1625 #define IAMMediaTypeSample_SetTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetTime(This,pTimeStart,pTimeEnd)
1626 #define IAMMediaTypeSample_IsSyncPoint(This) (This)->lpVtbl->IsSyncPoint(This)
1627 #define IAMMediaTypeSample_SetSyncPoint(This,bIsSyncPoint) (This)->lpVtbl->SetSyncPoint(This,bIsSyncPoint)
1628 #define IAMMediaTypeSample_IsPreroll(This) (This)->lpVtbl->IsPreroll(This)
1629 #define IAMMediaTypeSample_SetPreroll(This,bIsPreroll) (This)->lpVtbl->SetPreroll(This,bIsPreroll)
1630 #define IAMMediaTypeSample_GetActualDataLength(This) (This)->lpVtbl->GetActualDataLength(This)
1631 #define IAMMediaTypeSample_SetActualDataLength(This,Len) (This)->lpVtbl->SetActualDataLength(This,Len)
1632 #define IAMMediaTypeSample_GetMediaType(This,ppMediaType) (This)->lpVtbl->GetMediaType(This,ppMediaType)
1633 #define IAMMediaTypeSample_SetMediaType(This,pMediaType) (This)->lpVtbl->SetMediaType(This,pMediaType)
1634 #define IAMMediaTypeSample_IsDiscontinuity(This) (This)->lpVtbl->IsDiscontinuity(This)
1635 #define IAMMediaTypeSample_SetDiscontinuity(This,bDiscontinuity) (This)->lpVtbl->SetDiscontinuity(This,bDiscontinuity)
1636 #define IAMMediaTypeSample_GetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd)
1637 #define IAMMediaTypeSample_SetMediaTime(This,pTimeStart,pTimeEnd) (This)->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd)
1638 #else
1639 /*** IUnknown methods ***/
1640 static FORCEINLINE HRESULT IAMMediaTypeSample_QueryInterface(IAMMediaTypeSample* This,REFIID riid,void **ppvObject) {
1641     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
1642 }
1643 static FORCEINLINE ULONG IAMMediaTypeSample_AddRef(IAMMediaTypeSample* This) {
1644     return This->lpVtbl->AddRef(This);
1645 }
1646 static FORCEINLINE ULONG IAMMediaTypeSample_Release(IAMMediaTypeSample* This) {
1647     return This->lpVtbl->Release(This);
1648 }
1649 /*** IStreamSample methods ***/
1650 static FORCEINLINE HRESULT IAMMediaTypeSample_GetMediaStream(IAMMediaTypeSample* This,IMediaStream **ppMediaStream) {
1651     return This->lpVtbl->GetMediaStream(This,ppMediaStream);
1652 }
1653 static FORCEINLINE HRESULT IAMMediaTypeSample_GetSampleTimes(IAMMediaTypeSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) {
1654     return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime);
1655 }
1656 static FORCEINLINE HRESULT IAMMediaTypeSample_SetSampleTimes(IAMMediaTypeSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) {
1657     return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime);
1658 }
1659 static FORCEINLINE HRESULT IAMMediaTypeSample_Update(IAMMediaTypeSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) {
1660     return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData);
1661 }
1662 static FORCEINLINE HRESULT IAMMediaTypeSample_CompletionStatus(IAMMediaTypeSample* This,DWORD dwFlags,DWORD dwMilliseconds) {
1663     return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds);
1664 }
1665 /*** IAMMediaTypeSample methods ***/
1666 static FORCEINLINE HRESULT IAMMediaTypeSample_SetPointer(IAMMediaTypeSample* This,BYTE *pBuffer,LONG lSize) {
1667     return This->lpVtbl->SetPointer(This,pBuffer,lSize);
1668 }
1669 static FORCEINLINE HRESULT IAMMediaTypeSample_GetPointer(IAMMediaTypeSample* This,BYTE **ppBuffer) {
1670     return This->lpVtbl->GetPointer(This,ppBuffer);
1671 }
1672 static FORCEINLINE LONG IAMMediaTypeSample_GetSize(IAMMediaTypeSample* This) {
1673     return This->lpVtbl->GetSize(This);
1674 }
1675 static FORCEINLINE HRESULT IAMMediaTypeSample_GetTime(IAMMediaTypeSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
1676     return This->lpVtbl->GetTime(This,pTimeStart,pTimeEnd);
1677 }
1678 static FORCEINLINE HRESULT IAMMediaTypeSample_SetTime(IAMMediaTypeSample* This,REFERENCE_TIME *pTimeStart,REFERENCE_TIME *pTimeEnd) {
1679     return This->lpVtbl->SetTime(This,pTimeStart,pTimeEnd);
1680 }
1681 static FORCEINLINE HRESULT IAMMediaTypeSample_IsSyncPoint(IAMMediaTypeSample* This) {
1682     return This->lpVtbl->IsSyncPoint(This);
1683 }
1684 static FORCEINLINE HRESULT IAMMediaTypeSample_SetSyncPoint(IAMMediaTypeSample* This,WINBOOL bIsSyncPoint) {
1685     return This->lpVtbl->SetSyncPoint(This,bIsSyncPoint);
1686 }
1687 static FORCEINLINE HRESULT IAMMediaTypeSample_IsPreroll(IAMMediaTypeSample* This) {
1688     return This->lpVtbl->IsPreroll(This);
1689 }
1690 static FORCEINLINE HRESULT IAMMediaTypeSample_SetPreroll(IAMMediaTypeSample* This,WINBOOL bIsPreroll) {
1691     return This->lpVtbl->SetPreroll(This,bIsPreroll);
1692 }
1693 static FORCEINLINE LONG IAMMediaTypeSample_GetActualDataLength(IAMMediaTypeSample* This) {
1694     return This->lpVtbl->GetActualDataLength(This);
1695 }
1696 static FORCEINLINE HRESULT IAMMediaTypeSample_SetActualDataLength(IAMMediaTypeSample* This,LONG Len) {
1697     return This->lpVtbl->SetActualDataLength(This,Len);
1698 }
1699 static FORCEINLINE HRESULT IAMMediaTypeSample_GetMediaType(IAMMediaTypeSample* This,AM_MEDIA_TYPE **ppMediaType) {
1700     return This->lpVtbl->GetMediaType(This,ppMediaType);
1701 }
1702 static FORCEINLINE HRESULT IAMMediaTypeSample_SetMediaType(IAMMediaTypeSample* This,AM_MEDIA_TYPE *pMediaType) {
1703     return This->lpVtbl->SetMediaType(This,pMediaType);
1704 }
1705 static FORCEINLINE HRESULT IAMMediaTypeSample_IsDiscontinuity(IAMMediaTypeSample* This) {
1706     return This->lpVtbl->IsDiscontinuity(This);
1707 }
1708 static FORCEINLINE HRESULT IAMMediaTypeSample_SetDiscontinuity(IAMMediaTypeSample* This,WINBOOL bDiscontinuity) {
1709     return This->lpVtbl->SetDiscontinuity(This,bDiscontinuity);
1710 }
1711 static FORCEINLINE HRESULT IAMMediaTypeSample_GetMediaTime(IAMMediaTypeSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
1712     return This->lpVtbl->GetMediaTime(This,pTimeStart,pTimeEnd);
1713 }
1714 static FORCEINLINE HRESULT IAMMediaTypeSample_SetMediaTime(IAMMediaTypeSample* This,LONGLONG *pTimeStart,LONGLONG *pTimeEnd) {
1715     return This->lpVtbl->SetMediaTime(This,pTimeStart,pTimeEnd);
1716 }
1717 #endif
1718 #endif
1719 
1720 #endif
1721 
1722 
1723 #endif  /* __IAMMediaTypeSample_INTERFACE_DEFINED__ */
1724 
1725 /*****************************************************************************
1726  * AMMultiMediaStream coclass
1727  */
1728 
1729 DEFINE_GUID(CLSID_AMMultiMediaStream, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45);
1730 
1731 #ifdef __cplusplus
1732 class DECLSPEC_UUID("49c47ce5-9ba4-11d0-8212-00c04fc32c45") AMMultiMediaStream;
1733 #ifdef __CRT_UUID_DECL
1734 __CRT_UUID_DECL(AMMultiMediaStream, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82,0x12, 0x00,0xc0,0x4f,0xc3,0x2c,0x45)
1735 #endif
1736 #endif
1737 
1738 DEFINE_GUID(CLSID_AMDirectDrawStream,  0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1739 DEFINE_GUID(CLSID_AMAudioStream,       0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1740 DEFINE_GUID(CLSID_AMAudioData,         0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1741 DEFINE_GUID(CLSID_AMMediaTypeStream,   0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
1742 DEFINE_GUID(CLSID_MediaStreamFilter,   0x49c47ce0, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1743 /* Begin additional prototypes for all interfaces */
1744 
1745 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
1746 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
1747 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
1748 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
1749 
1750 /* End additional prototypes */
1751 
1752 #ifdef __cplusplus
1753 }
1754 #endif
1755 
1756 #endif /* __amstream_h__ */
1757