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