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