1/*** Autogenerated by WIDL 1.6 from direct-x/include/mmstream.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 __mmstream_h__
16#define __mmstream_h__
17
18/* Forward declarations */
19
20#ifndef __IMultiMediaStream_FWD_DEFINED__
21#define __IMultiMediaStream_FWD_DEFINED__
22typedef interface IMultiMediaStream IMultiMediaStream;
23#endif
24
25#ifndef __IMediaStream_FWD_DEFINED__
26#define __IMediaStream_FWD_DEFINED__
27typedef interface IMediaStream IMediaStream;
28#endif
29
30#ifndef __IStreamSample_FWD_DEFINED__
31#define __IStreamSample_FWD_DEFINED__
32typedef interface IStreamSample IStreamSample;
33#endif
34
35/* Headers for imported files */
36
37#include <unknwn.h>
38
39#ifdef __cplusplus
40extern "C" {
41#endif
42
43#define MS_ERROR_CODE(x)                  MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)
44#define MS_SUCCESS_CODE(x)                MAKE_HRESULT(0, FACILITY_ITF, x)
45#define MS_S_PENDING                      MS_SUCCESS_CODE(1)
46#define MS_S_NOUPDATE                     MS_SUCCESS_CODE(2)
47#define MS_S_ENDOFSTREAM                  MS_SUCCESS_CODE(3)
48#define MS_E_SAMPLEALLOC                  MS_ERROR_CODE(1)
49#define MS_E_PURPOSEID                    MS_ERROR_CODE(2)
50#define MS_E_NOSTREAM                     MS_ERROR_CODE(3)
51#define MS_E_NOSEEKING                    MS_ERROR_CODE(4)
52#define MS_E_INCOMPATIBLE                 MS_ERROR_CODE(5)
53#define MS_E_BUSY                         MS_ERROR_CODE(6)
54#define MS_E_NOTINIT                      MS_ERROR_CODE(7)
55#define MS_E_SOURCEALREADYDEFINED         MS_ERROR_CODE(8)
56#define MS_E_INVALIDSTREAMTYPE            MS_ERROR_CODE(9)
57#define MS_E_NOTRUNNING                   MS_ERROR_CODE(10)
58DEFINE_GUID(MSPID_PrimaryVideo,  0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
59DEFINE_GUID(MSPID_PrimaryAudio,  0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
60#if 0
61typedef void *PAPCFUNC;
62#endif
63typedef LONGLONG STREAM_TIME;
64typedef GUID MSPID;
65typedef REFGUID REFMSPID;
66typedef enum __WIDL_mmstream_generated_name_00000002 {
67    STREAMTYPE_READ = 0,
68    STREAMTYPE_WRITE = 1,
69    STREAMTYPE_TRANSFORM = 2
70} STREAM_TYPE;
71typedef enum __WIDL_mmstream_generated_name_00000003 {
72    STREAMSTATE_STOP = 0,
73    STREAMSTATE_RUN = 1
74} STREAM_STATE;
75typedef enum __WIDL_mmstream_generated_name_00000004 {
76    COMPSTAT_NOUPDATEOK = 0x1,
77    COMPSTAT_WAIT = 0x2,
78    COMPSTAT_ABORT = 0x4
79} COMPLETION_STATUS_FLAGS;
80enum {
81    MMSSF_HASCLOCK = 0x1,
82    MMSSF_SUPPORTSEEK = 0x2,
83    MMSSF_ASYNCHRONOUS = 0x4
84};
85
86enum {
87    SSUPDATE_ASYNC = 0x1,
88    SSUPDATE_CONTINUOUS = 0x2
89};
90
91#ifndef __IMultiMediaStream_FWD_DEFINED__
92#define __IMultiMediaStream_FWD_DEFINED__
93typedef interface IMultiMediaStream IMultiMediaStream;
94#endif
95
96#ifndef __IMediaStream_FWD_DEFINED__
97#define __IMediaStream_FWD_DEFINED__
98typedef interface IMediaStream IMediaStream;
99#endif
100
101#ifndef __IStreamSample_FWD_DEFINED__
102#define __IStreamSample_FWD_DEFINED__
103typedef interface IStreamSample IStreamSample;
104#endif
105
106/*****************************************************************************
107 * IMultiMediaStream interface
108 */
109#ifndef __IMultiMediaStream_INTERFACE_DEFINED__
110#define __IMultiMediaStream_INTERFACE_DEFINED__
111
112DEFINE_GUID(IID_IMultiMediaStream, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
113#if defined(__cplusplus) && !defined(CINTERFACE)
114MIDL_INTERFACE("b502d1bc-9a57-11d0-8fde-00c04fd9189d")
115IMultiMediaStream : public IUnknown
116{
117    virtual HRESULT STDMETHODCALLTYPE GetInformation(
118        DWORD *pdwFlags,
119        STREAM_TYPE *pStreamType) = 0;
120
121    virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
122        REFMSPID idPurpose,
123        IMediaStream **ppMediaStream) = 0;
124
125    virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams(
126        LONG Index,
127        IMediaStream **ppMediaStream) = 0;
128
129    virtual HRESULT STDMETHODCALLTYPE GetState(
130        STREAM_STATE *pCurrentState) = 0;
131
132    virtual HRESULT STDMETHODCALLTYPE SetState(
133        STREAM_STATE NewState) = 0;
134
135    virtual HRESULT STDMETHODCALLTYPE GetTime(
136        STREAM_TIME *pCurrentTime) = 0;
137
138    virtual HRESULT STDMETHODCALLTYPE GetDuration(
139        STREAM_TIME *pDuration) = 0;
140
141    virtual HRESULT STDMETHODCALLTYPE Seek(
142        STREAM_TIME SeekTime) = 0;
143
144    virtual HRESULT STDMETHODCALLTYPE GetEndOfStreamEventHandle(
145        HANDLE *phEOS) = 0;
146
147};
148#ifdef __CRT_UUID_DECL
149__CRT_UUID_DECL(IMultiMediaStream, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
150#endif
151#else
152typedef struct IMultiMediaStreamVtbl {
153    BEGIN_INTERFACE
154
155    /*** IUnknown methods ***/
156    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
157        IMultiMediaStream* This,
158        REFIID riid,
159        void **ppvObject);
160
161    ULONG (STDMETHODCALLTYPE *AddRef)(
162        IMultiMediaStream* This);
163
164    ULONG (STDMETHODCALLTYPE *Release)(
165        IMultiMediaStream* This);
166
167    /*** IMultiMediaStream methods ***/
168    HRESULT (STDMETHODCALLTYPE *GetInformation)(
169        IMultiMediaStream* This,
170        DWORD *pdwFlags,
171        STREAM_TYPE *pStreamType);
172
173    HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
174        IMultiMediaStream* This,
175        REFMSPID idPurpose,
176        IMediaStream **ppMediaStream);
177
178    HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
179        IMultiMediaStream* This,
180        LONG Index,
181        IMediaStream **ppMediaStream);
182
183    HRESULT (STDMETHODCALLTYPE *GetState)(
184        IMultiMediaStream* This,
185        STREAM_STATE *pCurrentState);
186
187    HRESULT (STDMETHODCALLTYPE *SetState)(
188        IMultiMediaStream* This,
189        STREAM_STATE NewState);
190
191    HRESULT (STDMETHODCALLTYPE *GetTime)(
192        IMultiMediaStream* This,
193        STREAM_TIME *pCurrentTime);
194
195    HRESULT (STDMETHODCALLTYPE *GetDuration)(
196        IMultiMediaStream* This,
197        STREAM_TIME *pDuration);
198
199    HRESULT (STDMETHODCALLTYPE *Seek)(
200        IMultiMediaStream* This,
201        STREAM_TIME SeekTime);
202
203    HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)(
204        IMultiMediaStream* This,
205        HANDLE *phEOS);
206
207    END_INTERFACE
208} IMultiMediaStreamVtbl;
209interface IMultiMediaStream {
210    CONST_VTBL IMultiMediaStreamVtbl* lpVtbl;
211};
212
213#ifdef COBJMACROS
214#ifndef WIDL_C_INLINE_WRAPPERS
215/*** IUnknown methods ***/
216#define IMultiMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
217#define IMultiMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
218#define IMultiMediaStream_Release(This) (This)->lpVtbl->Release(This)
219/*** IMultiMediaStream methods ***/
220#define IMultiMediaStream_GetInformation(This,pdwFlags,pStreamType) (This)->lpVtbl->GetInformation(This,pdwFlags,pStreamType)
221#define IMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream)
222#define IMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream)
223#define IMultiMediaStream_GetState(This,pCurrentState) (This)->lpVtbl->GetState(This,pCurrentState)
224#define IMultiMediaStream_SetState(This,NewState) (This)->lpVtbl->SetState(This,NewState)
225#define IMultiMediaStream_GetTime(This,pCurrentTime) (This)->lpVtbl->GetTime(This,pCurrentTime)
226#define IMultiMediaStream_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
227#define IMultiMediaStream_Seek(This,SeekTime) (This)->lpVtbl->Seek(This,SeekTime)
228#define IMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS) (This)->lpVtbl->GetEndOfStreamEventHandle(This,phEOS)
229#else
230/*** IUnknown methods ***/
231static FORCEINLINE HRESULT IMultiMediaStream_QueryInterface(IMultiMediaStream* This,REFIID riid,void **ppvObject) {
232    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
233}
234static FORCEINLINE ULONG IMultiMediaStream_AddRef(IMultiMediaStream* This) {
235    return This->lpVtbl->AddRef(This);
236}
237static FORCEINLINE ULONG IMultiMediaStream_Release(IMultiMediaStream* This) {
238    return This->lpVtbl->Release(This);
239}
240/*** IMultiMediaStream methods ***/
241static FORCEINLINE HRESULT IMultiMediaStream_GetInformation(IMultiMediaStream* This,DWORD *pdwFlags,STREAM_TYPE *pStreamType) {
242    return This->lpVtbl->GetInformation(This,pdwFlags,pStreamType);
243}
244static FORCEINLINE HRESULT IMultiMediaStream_GetMediaStream(IMultiMediaStream* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) {
245    return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream);
246}
247static FORCEINLINE HRESULT IMultiMediaStream_EnumMediaStreams(IMultiMediaStream* This,LONG Index,IMediaStream **ppMediaStream) {
248    return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream);
249}
250static FORCEINLINE HRESULT IMultiMediaStream_GetState(IMultiMediaStream* This,STREAM_STATE *pCurrentState) {
251    return This->lpVtbl->GetState(This,pCurrentState);
252}
253static FORCEINLINE HRESULT IMultiMediaStream_SetState(IMultiMediaStream* This,STREAM_STATE NewState) {
254    return This->lpVtbl->SetState(This,NewState);
255}
256static FORCEINLINE HRESULT IMultiMediaStream_GetTime(IMultiMediaStream* This,STREAM_TIME *pCurrentTime) {
257    return This->lpVtbl->GetTime(This,pCurrentTime);
258}
259static FORCEINLINE HRESULT IMultiMediaStream_GetDuration(IMultiMediaStream* This,STREAM_TIME *pDuration) {
260    return This->lpVtbl->GetDuration(This,pDuration);
261}
262static FORCEINLINE HRESULT IMultiMediaStream_Seek(IMultiMediaStream* This,STREAM_TIME SeekTime) {
263    return This->lpVtbl->Seek(This,SeekTime);
264}
265static FORCEINLINE HRESULT IMultiMediaStream_GetEndOfStreamEventHandle(IMultiMediaStream* This,HANDLE *phEOS) {
266    return This->lpVtbl->GetEndOfStreamEventHandle(This,phEOS);
267}
268#endif
269#endif
270
271#endif
272
273HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetInformation_Proxy(
274    IMultiMediaStream* This,
275    DWORD *pdwFlags,
276    STREAM_TYPE *pStreamType);
277void __RPC_STUB IMultiMediaStream_GetInformation_Stub(
278    IRpcStubBuffer* This,
279    IRpcChannelBuffer* pRpcChannelBuffer,
280    PRPC_MESSAGE pRpcMessage,
281    DWORD* pdwStubPhase);
282HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetMediaStream_Proxy(
283    IMultiMediaStream* This,
284    REFMSPID idPurpose,
285    IMediaStream **ppMediaStream);
286void __RPC_STUB IMultiMediaStream_GetMediaStream_Stub(
287    IRpcStubBuffer* This,
288    IRpcChannelBuffer* pRpcChannelBuffer,
289    PRPC_MESSAGE pRpcMessage,
290    DWORD* pdwStubPhase);
291HRESULT STDMETHODCALLTYPE IMultiMediaStream_EnumMediaStreams_Proxy(
292    IMultiMediaStream* This,
293    LONG Index,
294    IMediaStream **ppMediaStream);
295void __RPC_STUB IMultiMediaStream_EnumMediaStreams_Stub(
296    IRpcStubBuffer* This,
297    IRpcChannelBuffer* pRpcChannelBuffer,
298    PRPC_MESSAGE pRpcMessage,
299    DWORD* pdwStubPhase);
300HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetState_Proxy(
301    IMultiMediaStream* This,
302    STREAM_STATE *pCurrentState);
303void __RPC_STUB IMultiMediaStream_GetState_Stub(
304    IRpcStubBuffer* This,
305    IRpcChannelBuffer* pRpcChannelBuffer,
306    PRPC_MESSAGE pRpcMessage,
307    DWORD* pdwStubPhase);
308HRESULT STDMETHODCALLTYPE IMultiMediaStream_SetState_Proxy(
309    IMultiMediaStream* This,
310    STREAM_STATE NewState);
311void __RPC_STUB IMultiMediaStream_SetState_Stub(
312    IRpcStubBuffer* This,
313    IRpcChannelBuffer* pRpcChannelBuffer,
314    PRPC_MESSAGE pRpcMessage,
315    DWORD* pdwStubPhase);
316HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetTime_Proxy(
317    IMultiMediaStream* This,
318    STREAM_TIME *pCurrentTime);
319void __RPC_STUB IMultiMediaStream_GetTime_Stub(
320    IRpcStubBuffer* This,
321    IRpcChannelBuffer* pRpcChannelBuffer,
322    PRPC_MESSAGE pRpcMessage,
323    DWORD* pdwStubPhase);
324HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetDuration_Proxy(
325    IMultiMediaStream* This,
326    STREAM_TIME *pDuration);
327void __RPC_STUB IMultiMediaStream_GetDuration_Stub(
328    IRpcStubBuffer* This,
329    IRpcChannelBuffer* pRpcChannelBuffer,
330    PRPC_MESSAGE pRpcMessage,
331    DWORD* pdwStubPhase);
332HRESULT STDMETHODCALLTYPE IMultiMediaStream_Seek_Proxy(
333    IMultiMediaStream* This,
334    STREAM_TIME SeekTime);
335void __RPC_STUB IMultiMediaStream_Seek_Stub(
336    IRpcStubBuffer* This,
337    IRpcChannelBuffer* pRpcChannelBuffer,
338    PRPC_MESSAGE pRpcMessage,
339    DWORD* pdwStubPhase);
340HRESULT STDMETHODCALLTYPE IMultiMediaStream_GetEndOfStreamEventHandle_Proxy(
341    IMultiMediaStream* This,
342    HANDLE *phEOS);
343void __RPC_STUB IMultiMediaStream_GetEndOfStreamEventHandle_Stub(
344    IRpcStubBuffer* This,
345    IRpcChannelBuffer* pRpcChannelBuffer,
346    PRPC_MESSAGE pRpcMessage,
347    DWORD* pdwStubPhase);
348
349#endif  /* __IMultiMediaStream_INTERFACE_DEFINED__ */
350
351/*****************************************************************************
352 * IMediaStream interface
353 */
354#ifndef __IMediaStream_INTERFACE_DEFINED__
355#define __IMediaStream_INTERFACE_DEFINED__
356
357DEFINE_GUID(IID_IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
358#if defined(__cplusplus) && !defined(CINTERFACE)
359MIDL_INTERFACE("b502d1bd-9a57-11d0-8fde-00c04fd9189d")
360IMediaStream : public IUnknown
361{
362    virtual HRESULT STDMETHODCALLTYPE GetMultiMediaStream(
363        IMultiMediaStream **ppMultiMediaStream) = 0;
364
365    virtual HRESULT STDMETHODCALLTYPE GetInformation(
366        MSPID *pPurposeId,
367        STREAM_TYPE *pType) = 0;
368
369    virtual HRESULT STDMETHODCALLTYPE SetSameFormat(
370        IMediaStream *pStreamThatHasDesiredFormat,
371        DWORD dwFlags) = 0;
372
373    virtual HRESULT STDMETHODCALLTYPE AllocateSample(
374        DWORD dwFlags,
375        IStreamSample **ppSample) = 0;
376
377    virtual HRESULT STDMETHODCALLTYPE CreateSharedSample(
378        IStreamSample *pExistingSample,
379        DWORD dwFlags,
380        IStreamSample **ppNewSample) = 0;
381
382    virtual HRESULT STDMETHODCALLTYPE SendEndOfStream(
383        DWORD dwFlags) = 0;
384
385};
386#ifdef __CRT_UUID_DECL
387__CRT_UUID_DECL(IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
388#endif
389#else
390typedef struct IMediaStreamVtbl {
391    BEGIN_INTERFACE
392
393    /*** IUnknown methods ***/
394    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
395        IMediaStream* This,
396        REFIID riid,
397        void **ppvObject);
398
399    ULONG (STDMETHODCALLTYPE *AddRef)(
400        IMediaStream* This);
401
402    ULONG (STDMETHODCALLTYPE *Release)(
403        IMediaStream* This);
404
405    /*** IMediaStream methods ***/
406    HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
407        IMediaStream* This,
408        IMultiMediaStream **ppMultiMediaStream);
409
410    HRESULT (STDMETHODCALLTYPE *GetInformation)(
411        IMediaStream* This,
412        MSPID *pPurposeId,
413        STREAM_TYPE *pType);
414
415    HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
416        IMediaStream* This,
417        IMediaStream *pStreamThatHasDesiredFormat,
418        DWORD dwFlags);
419
420    HRESULT (STDMETHODCALLTYPE *AllocateSample)(
421        IMediaStream* This,
422        DWORD dwFlags,
423        IStreamSample **ppSample);
424
425    HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
426        IMediaStream* This,
427        IStreamSample *pExistingSample,
428        DWORD dwFlags,
429        IStreamSample **ppNewSample);
430
431    HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
432        IMediaStream* This,
433        DWORD dwFlags);
434
435    END_INTERFACE
436} IMediaStreamVtbl;
437interface IMediaStream {
438    CONST_VTBL IMediaStreamVtbl* lpVtbl;
439};
440
441#ifdef COBJMACROS
442#ifndef WIDL_C_INLINE_WRAPPERS
443/*** IUnknown methods ***/
444#define IMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
445#define IMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
446#define IMediaStream_Release(This) (This)->lpVtbl->Release(This)
447/*** IMediaStream methods ***/
448#define IMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
449#define IMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
450#define IMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
451#define IMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
452#define IMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
453#define IMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
454#else
455/*** IUnknown methods ***/
456static FORCEINLINE HRESULT IMediaStream_QueryInterface(IMediaStream* This,REFIID riid,void **ppvObject) {
457    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
458}
459static FORCEINLINE ULONG IMediaStream_AddRef(IMediaStream* This) {
460    return This->lpVtbl->AddRef(This);
461}
462static FORCEINLINE ULONG IMediaStream_Release(IMediaStream* This) {
463    return This->lpVtbl->Release(This);
464}
465/*** IMediaStream methods ***/
466static FORCEINLINE HRESULT IMediaStream_GetMultiMediaStream(IMediaStream* This,IMultiMediaStream **ppMultiMediaStream) {
467    return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
468}
469static FORCEINLINE HRESULT IMediaStream_GetInformation(IMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
470    return This->lpVtbl->GetInformation(This,pPurposeId,pType);
471}
472static FORCEINLINE HRESULT IMediaStream_SetSameFormat(IMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
473    return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
474}
475static FORCEINLINE HRESULT IMediaStream_AllocateSample(IMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) {
476    return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
477}
478static FORCEINLINE HRESULT IMediaStream_CreateSharedSample(IMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
479    return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
480}
481static FORCEINLINE HRESULT IMediaStream_SendEndOfStream(IMediaStream* This,DWORD dwFlags) {
482    return This->lpVtbl->SendEndOfStream(This,dwFlags);
483}
484#endif
485#endif
486
487#endif
488
489HRESULT STDMETHODCALLTYPE IMediaStream_GetMultiMediaStream_Proxy(
490    IMediaStream* This,
491    IMultiMediaStream **ppMultiMediaStream);
492void __RPC_STUB IMediaStream_GetMultiMediaStream_Stub(
493    IRpcStubBuffer* This,
494    IRpcChannelBuffer* pRpcChannelBuffer,
495    PRPC_MESSAGE pRpcMessage,
496    DWORD* pdwStubPhase);
497HRESULT STDMETHODCALLTYPE IMediaStream_GetInformation_Proxy(
498    IMediaStream* This,
499    MSPID *pPurposeId,
500    STREAM_TYPE *pType);
501void __RPC_STUB IMediaStream_GetInformation_Stub(
502    IRpcStubBuffer* This,
503    IRpcChannelBuffer* pRpcChannelBuffer,
504    PRPC_MESSAGE pRpcMessage,
505    DWORD* pdwStubPhase);
506HRESULT STDMETHODCALLTYPE IMediaStream_SetSameFormat_Proxy(
507    IMediaStream* This,
508    IMediaStream *pStreamThatHasDesiredFormat,
509    DWORD dwFlags);
510void __RPC_STUB IMediaStream_SetSameFormat_Stub(
511    IRpcStubBuffer* This,
512    IRpcChannelBuffer* pRpcChannelBuffer,
513    PRPC_MESSAGE pRpcMessage,
514    DWORD* pdwStubPhase);
515HRESULT STDMETHODCALLTYPE IMediaStream_AllocateSample_Proxy(
516    IMediaStream* This,
517    DWORD dwFlags,
518    IStreamSample **ppSample);
519void __RPC_STUB IMediaStream_AllocateSample_Stub(
520    IRpcStubBuffer* This,
521    IRpcChannelBuffer* pRpcChannelBuffer,
522    PRPC_MESSAGE pRpcMessage,
523    DWORD* pdwStubPhase);
524HRESULT STDMETHODCALLTYPE IMediaStream_CreateSharedSample_Proxy(
525    IMediaStream* This,
526    IStreamSample *pExistingSample,
527    DWORD dwFlags,
528    IStreamSample **ppNewSample);
529void __RPC_STUB IMediaStream_CreateSharedSample_Stub(
530    IRpcStubBuffer* This,
531    IRpcChannelBuffer* pRpcChannelBuffer,
532    PRPC_MESSAGE pRpcMessage,
533    DWORD* pdwStubPhase);
534HRESULT STDMETHODCALLTYPE IMediaStream_SendEndOfStream_Proxy(
535    IMediaStream* This,
536    DWORD dwFlags);
537void __RPC_STUB IMediaStream_SendEndOfStream_Stub(
538    IRpcStubBuffer* This,
539    IRpcChannelBuffer* pRpcChannelBuffer,
540    PRPC_MESSAGE pRpcMessage,
541    DWORD* pdwStubPhase);
542
543#endif  /* __IMediaStream_INTERFACE_DEFINED__ */
544
545/*****************************************************************************
546 * IStreamSample interface
547 */
548#ifndef __IStreamSample_INTERFACE_DEFINED__
549#define __IStreamSample_INTERFACE_DEFINED__
550
551DEFINE_GUID(IID_IStreamSample, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
552#if defined(__cplusplus) && !defined(CINTERFACE)
553MIDL_INTERFACE("b502d1be-9a57-11d0-8fde-00c04fd9189d")
554IStreamSample : public IUnknown
555{
556    virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
557        IMediaStream **ppMediaStream) = 0;
558
559    virtual HRESULT STDMETHODCALLTYPE GetSampleTimes(
560        STREAM_TIME *pStartTime,
561        STREAM_TIME *pEndTime,
562        STREAM_TIME *pCurrentTime) = 0;
563
564    virtual HRESULT STDMETHODCALLTYPE SetSampleTimes(
565        const STREAM_TIME *pStartTime,
566        const STREAM_TIME *pEndTime) = 0;
567
568    virtual HRESULT STDMETHODCALLTYPE Update(
569        DWORD dwFlags,
570        HANDLE hEvent,
571        PAPCFUNC pfnAPC,
572        DWORD dwAPCData) = 0;
573
574    virtual HRESULT STDMETHODCALLTYPE CompletionStatus(
575        DWORD dwFlags,
576        DWORD dwMilliseconds) = 0;
577
578};
579#ifdef __CRT_UUID_DECL
580__CRT_UUID_DECL(IStreamSample, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
581#endif
582#else
583typedef struct IStreamSampleVtbl {
584    BEGIN_INTERFACE
585
586    /*** IUnknown methods ***/
587    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
588        IStreamSample* This,
589        REFIID riid,
590        void **ppvObject);
591
592    ULONG (STDMETHODCALLTYPE *AddRef)(
593        IStreamSample* This);
594
595    ULONG (STDMETHODCALLTYPE *Release)(
596        IStreamSample* This);
597
598    /*** IStreamSample methods ***/
599    HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
600        IStreamSample* This,
601        IMediaStream **ppMediaStream);
602
603    HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
604        IStreamSample* This,
605        STREAM_TIME *pStartTime,
606        STREAM_TIME *pEndTime,
607        STREAM_TIME *pCurrentTime);
608
609    HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
610        IStreamSample* This,
611        const STREAM_TIME *pStartTime,
612        const STREAM_TIME *pEndTime);
613
614    HRESULT (STDMETHODCALLTYPE *Update)(
615        IStreamSample* This,
616        DWORD dwFlags,
617        HANDLE hEvent,
618        PAPCFUNC pfnAPC,
619        DWORD dwAPCData);
620
621    HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
622        IStreamSample* This,
623        DWORD dwFlags,
624        DWORD dwMilliseconds);
625
626    END_INTERFACE
627} IStreamSampleVtbl;
628interface IStreamSample {
629    CONST_VTBL IStreamSampleVtbl* lpVtbl;
630};
631
632#ifdef COBJMACROS
633#ifndef WIDL_C_INLINE_WRAPPERS
634/*** IUnknown methods ***/
635#define IStreamSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
636#define IStreamSample_AddRef(This) (This)->lpVtbl->AddRef(This)
637#define IStreamSample_Release(This) (This)->lpVtbl->Release(This)
638/*** IStreamSample methods ***/
639#define IStreamSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream)
640#define IStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
641#define IStreamSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime)
642#define IStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
643#define IStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds)
644#else
645/*** IUnknown methods ***/
646static FORCEINLINE HRESULT IStreamSample_QueryInterface(IStreamSample* This,REFIID riid,void **ppvObject) {
647    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
648}
649static FORCEINLINE ULONG IStreamSample_AddRef(IStreamSample* This) {
650    return This->lpVtbl->AddRef(This);
651}
652static FORCEINLINE ULONG IStreamSample_Release(IStreamSample* This) {
653    return This->lpVtbl->Release(This);
654}
655/*** IStreamSample methods ***/
656static FORCEINLINE HRESULT IStreamSample_GetMediaStream(IStreamSample* This,IMediaStream **ppMediaStream) {
657    return This->lpVtbl->GetMediaStream(This,ppMediaStream);
658}
659static FORCEINLINE HRESULT IStreamSample_GetSampleTimes(IStreamSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) {
660    return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime);
661}
662static FORCEINLINE HRESULT IStreamSample_SetSampleTimes(IStreamSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) {
663    return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime);
664}
665static FORCEINLINE HRESULT IStreamSample_Update(IStreamSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) {
666    return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData);
667}
668static FORCEINLINE HRESULT IStreamSample_CompletionStatus(IStreamSample* This,DWORD dwFlags,DWORD dwMilliseconds) {
669    return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds);
670}
671#endif
672#endif
673
674#endif
675
676HRESULT STDMETHODCALLTYPE IStreamSample_GetMediaStream_Proxy(
677    IStreamSample* This,
678    IMediaStream **ppMediaStream);
679void __RPC_STUB IStreamSample_GetMediaStream_Stub(
680    IRpcStubBuffer* This,
681    IRpcChannelBuffer* pRpcChannelBuffer,
682    PRPC_MESSAGE pRpcMessage,
683    DWORD* pdwStubPhase);
684HRESULT STDMETHODCALLTYPE IStreamSample_GetSampleTimes_Proxy(
685    IStreamSample* This,
686    STREAM_TIME *pStartTime,
687    STREAM_TIME *pEndTime,
688    STREAM_TIME *pCurrentTime);
689void __RPC_STUB IStreamSample_GetSampleTimes_Stub(
690    IRpcStubBuffer* This,
691    IRpcChannelBuffer* pRpcChannelBuffer,
692    PRPC_MESSAGE pRpcMessage,
693    DWORD* pdwStubPhase);
694HRESULT STDMETHODCALLTYPE IStreamSample_SetSampleTimes_Proxy(
695    IStreamSample* This,
696    const STREAM_TIME *pStartTime,
697    const STREAM_TIME *pEndTime);
698void __RPC_STUB IStreamSample_SetSampleTimes_Stub(
699    IRpcStubBuffer* This,
700    IRpcChannelBuffer* pRpcChannelBuffer,
701    PRPC_MESSAGE pRpcMessage,
702    DWORD* pdwStubPhase);
703HRESULT STDMETHODCALLTYPE IStreamSample_Update_Proxy(
704    IStreamSample* This,
705    DWORD dwFlags,
706    HANDLE hEvent,
707    PAPCFUNC pfnAPC,
708    DWORD dwAPCData);
709void __RPC_STUB IStreamSample_Update_Stub(
710    IRpcStubBuffer* This,
711    IRpcChannelBuffer* pRpcChannelBuffer,
712    PRPC_MESSAGE pRpcMessage,
713    DWORD* pdwStubPhase);
714HRESULT STDMETHODCALLTYPE IStreamSample_CompletionStatus_Proxy(
715    IStreamSample* This,
716    DWORD dwFlags,
717    DWORD dwMilliseconds);
718void __RPC_STUB IStreamSample_CompletionStatus_Stub(
719    IRpcStubBuffer* This,
720    IRpcChannelBuffer* pRpcChannelBuffer,
721    PRPC_MESSAGE pRpcMessage,
722    DWORD* pdwStubPhase);
723
724#endif  /* __IStreamSample_INTERFACE_DEFINED__ */
725
726/* Begin additional prototypes for all interfaces */
727
728
729/* End additional prototypes */
730
731#ifdef __cplusplus
732}
733#endif
734
735#endif /* __mmstream_h__ */
736