master
  1/*** Autogenerated by WIDL 10.4 from include/mmstream.idl - Do not edit ***/
  2
  3#ifdef _WIN32
  4#ifndef __REQUIRED_RPCNDR_H_VERSION__
  5#define __REQUIRED_RPCNDR_H_VERSION__ 475
  6#endif
  7#include <rpc.h>
  8#include <rpcndr.h>
  9#endif
 10
 11#ifndef COM_NO_WINDOWS_H
 12#include <windows.h>
 13#include <ole2.h>
 14#endif
 15
 16#ifndef __mmstream_h__
 17#define __mmstream_h__
 18
 19/* Forward declarations */
 20
 21#ifndef __IMultiMediaStream_FWD_DEFINED__
 22#define __IMultiMediaStream_FWD_DEFINED__
 23typedef interface IMultiMediaStream IMultiMediaStream;
 24#ifdef __cplusplus
 25interface IMultiMediaStream;
 26#endif /* __cplusplus */
 27#endif
 28
 29#ifndef __IMediaStream_FWD_DEFINED__
 30#define __IMediaStream_FWD_DEFINED__
 31typedef interface IMediaStream IMediaStream;
 32#ifdef __cplusplus
 33interface IMediaStream;
 34#endif /* __cplusplus */
 35#endif
 36
 37#ifndef __IStreamSample_FWD_DEFINED__
 38#define __IStreamSample_FWD_DEFINED__
 39typedef interface IStreamSample IStreamSample;
 40#ifdef __cplusplus
 41interface IStreamSample;
 42#endif /* __cplusplus */
 43#endif
 44
 45/* Headers for imported files */
 46
 47#include <unknwn.h>
 48
 49#ifdef __cplusplus
 50extern "C" {
 51#endif
 52
 53#define MS_ERROR_CODE(x)                  MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)
 54#define MS_SUCCESS_CODE(x)                MAKE_HRESULT(0, FACILITY_ITF, x)
 55#define MS_S_PENDING                      MS_SUCCESS_CODE(1)
 56#define MS_S_NOUPDATE                     MS_SUCCESS_CODE(2)
 57#define MS_S_ENDOFSTREAM                  MS_SUCCESS_CODE(3)
 58#define MS_E_SAMPLEALLOC                  MS_ERROR_CODE(1)
 59#define MS_E_PURPOSEID                    MS_ERROR_CODE(2)
 60#define MS_E_NOSTREAM                     MS_ERROR_CODE(3)
 61#define MS_E_NOSEEKING                    MS_ERROR_CODE(4)
 62#define MS_E_INCOMPATIBLE                 MS_ERROR_CODE(5)
 63#define MS_E_BUSY                         MS_ERROR_CODE(6)
 64#define MS_E_NOTINIT                      MS_ERROR_CODE(7)
 65#define MS_E_SOURCEALREADYDEFINED         MS_ERROR_CODE(8)
 66#define MS_E_INVALIDSTREAMTYPE            MS_ERROR_CODE(9)
 67#define MS_E_NOTRUNNING                   MS_ERROR_CODE(10)
 68DEFINE_GUID(MSPID_PrimaryVideo,  0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
 69DEFINE_GUID(MSPID_PrimaryAudio,  0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
 70#if 0
 71typedef void *PAPCFUNC;
 72#endif
 73typedef LONGLONG STREAM_TIME;
 74typedef GUID MSPID;
 75typedef REFGUID REFMSPID;
 76typedef enum __WIDL_mmstream_generated_name_0000000C {
 77    STREAMTYPE_READ = 0,
 78    STREAMTYPE_WRITE = 1,
 79    STREAMTYPE_TRANSFORM = 2
 80} STREAM_TYPE;
 81typedef enum __WIDL_mmstream_generated_name_0000000D {
 82    STREAMSTATE_STOP = 0,
 83    STREAMSTATE_RUN = 1
 84} STREAM_STATE;
 85typedef enum __WIDL_mmstream_generated_name_0000000E {
 86    COMPSTAT_NOUPDATEOK = 0x1,
 87    COMPSTAT_WAIT = 0x2,
 88    COMPSTAT_ABORT = 0x4
 89} COMPLETION_STATUS_FLAGS;
 90enum {
 91    MMSSF_HASCLOCK = 0x1,
 92    MMSSF_SUPPORTSEEK = 0x2,
 93    MMSSF_ASYNCHRONOUS = 0x4
 94};
 95enum {
 96    SSUPDATE_ASYNC = 0x1,
 97    SSUPDATE_CONTINUOUS = 0x2
 98};
 99#ifndef __IMultiMediaStream_FWD_DEFINED__
100#define __IMultiMediaStream_FWD_DEFINED__
101typedef interface IMultiMediaStream IMultiMediaStream;
102#ifdef __cplusplus
103interface IMultiMediaStream;
104#endif /* __cplusplus */
105#endif
106
107#ifndef __IMediaStream_FWD_DEFINED__
108#define __IMediaStream_FWD_DEFINED__
109typedef interface IMediaStream IMediaStream;
110#ifdef __cplusplus
111interface IMediaStream;
112#endif /* __cplusplus */
113#endif
114
115#ifndef __IStreamSample_FWD_DEFINED__
116#define __IStreamSample_FWD_DEFINED__
117typedef interface IStreamSample IStreamSample;
118#ifdef __cplusplus
119interface IStreamSample;
120#endif /* __cplusplus */
121#endif
122
123/*****************************************************************************
124 * IMultiMediaStream interface
125 */
126#ifndef __IMultiMediaStream_INTERFACE_DEFINED__
127#define __IMultiMediaStream_INTERFACE_DEFINED__
128
129DEFINE_GUID(IID_IMultiMediaStream, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
130#if defined(__cplusplus) && !defined(CINTERFACE)
131MIDL_INTERFACE("b502d1bc-9a57-11d0-8fde-00c04fd9189d")
132IMultiMediaStream : public IUnknown
133{
134    virtual HRESULT STDMETHODCALLTYPE GetInformation(
135        DWORD *pdwFlags,
136        STREAM_TYPE *pStreamType) = 0;
137
138    virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
139        REFMSPID idPurpose,
140        IMediaStream **ppMediaStream) = 0;
141
142    virtual HRESULT STDMETHODCALLTYPE EnumMediaStreams(
143        LONG Index,
144        IMediaStream **ppMediaStream) = 0;
145
146    virtual HRESULT STDMETHODCALLTYPE GetState(
147        STREAM_STATE *pCurrentState) = 0;
148
149    virtual HRESULT STDMETHODCALLTYPE SetState(
150        STREAM_STATE NewState) = 0;
151
152    virtual HRESULT STDMETHODCALLTYPE GetTime(
153        STREAM_TIME *pCurrentTime) = 0;
154
155    virtual HRESULT STDMETHODCALLTYPE GetDuration(
156        STREAM_TIME *pDuration) = 0;
157
158    virtual HRESULT STDMETHODCALLTYPE Seek(
159        STREAM_TIME SeekTime) = 0;
160
161    virtual HRESULT STDMETHODCALLTYPE GetEndOfStreamEventHandle(
162        HANDLE *phEOS) = 0;
163
164};
165#ifdef __CRT_UUID_DECL
166__CRT_UUID_DECL(IMultiMediaStream, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
167#endif
168#else
169typedef struct IMultiMediaStreamVtbl {
170    BEGIN_INTERFACE
171
172    /*** IUnknown methods ***/
173    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
174        IMultiMediaStream *This,
175        REFIID riid,
176        void **ppvObject);
177
178    ULONG (STDMETHODCALLTYPE *AddRef)(
179        IMultiMediaStream *This);
180
181    ULONG (STDMETHODCALLTYPE *Release)(
182        IMultiMediaStream *This);
183
184    /*** IMultiMediaStream methods ***/
185    HRESULT (STDMETHODCALLTYPE *GetInformation)(
186        IMultiMediaStream *This,
187        DWORD *pdwFlags,
188        STREAM_TYPE *pStreamType);
189
190    HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
191        IMultiMediaStream *This,
192        REFMSPID idPurpose,
193        IMediaStream **ppMediaStream);
194
195    HRESULT (STDMETHODCALLTYPE *EnumMediaStreams)(
196        IMultiMediaStream *This,
197        LONG Index,
198        IMediaStream **ppMediaStream);
199
200    HRESULT (STDMETHODCALLTYPE *GetState)(
201        IMultiMediaStream *This,
202        STREAM_STATE *pCurrentState);
203
204    HRESULT (STDMETHODCALLTYPE *SetState)(
205        IMultiMediaStream *This,
206        STREAM_STATE NewState);
207
208    HRESULT (STDMETHODCALLTYPE *GetTime)(
209        IMultiMediaStream *This,
210        STREAM_TIME *pCurrentTime);
211
212    HRESULT (STDMETHODCALLTYPE *GetDuration)(
213        IMultiMediaStream *This,
214        STREAM_TIME *pDuration);
215
216    HRESULT (STDMETHODCALLTYPE *Seek)(
217        IMultiMediaStream *This,
218        STREAM_TIME SeekTime);
219
220    HRESULT (STDMETHODCALLTYPE *GetEndOfStreamEventHandle)(
221        IMultiMediaStream *This,
222        HANDLE *phEOS);
223
224    END_INTERFACE
225} IMultiMediaStreamVtbl;
226
227interface IMultiMediaStream {
228    CONST_VTBL IMultiMediaStreamVtbl* lpVtbl;
229};
230
231#ifdef COBJMACROS
232#ifndef WIDL_C_INLINE_WRAPPERS
233/*** IUnknown methods ***/
234#define IMultiMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
235#define IMultiMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
236#define IMultiMediaStream_Release(This) (This)->lpVtbl->Release(This)
237/*** IMultiMediaStream methods ***/
238#define IMultiMediaStream_GetInformation(This,pdwFlags,pStreamType) (This)->lpVtbl->GetInformation(This,pdwFlags,pStreamType)
239#define IMultiMediaStream_GetMediaStream(This,idPurpose,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream)
240#define IMultiMediaStream_EnumMediaStreams(This,Index,ppMediaStream) (This)->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream)
241#define IMultiMediaStream_GetState(This,pCurrentState) (This)->lpVtbl->GetState(This,pCurrentState)
242#define IMultiMediaStream_SetState(This,NewState) (This)->lpVtbl->SetState(This,NewState)
243#define IMultiMediaStream_GetTime(This,pCurrentTime) (This)->lpVtbl->GetTime(This,pCurrentTime)
244#define IMultiMediaStream_GetDuration(This,pDuration) (This)->lpVtbl->GetDuration(This,pDuration)
245#define IMultiMediaStream_Seek(This,SeekTime) (This)->lpVtbl->Seek(This,SeekTime)
246#define IMultiMediaStream_GetEndOfStreamEventHandle(This,phEOS) (This)->lpVtbl->GetEndOfStreamEventHandle(This,phEOS)
247#else
248/*** IUnknown methods ***/
249static inline HRESULT IMultiMediaStream_QueryInterface(IMultiMediaStream* This,REFIID riid,void **ppvObject) {
250    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
251}
252static inline ULONG IMultiMediaStream_AddRef(IMultiMediaStream* This) {
253    return This->lpVtbl->AddRef(This);
254}
255static inline ULONG IMultiMediaStream_Release(IMultiMediaStream* This) {
256    return This->lpVtbl->Release(This);
257}
258/*** IMultiMediaStream methods ***/
259static inline HRESULT IMultiMediaStream_GetInformation(IMultiMediaStream* This,DWORD *pdwFlags,STREAM_TYPE *pStreamType) {
260    return This->lpVtbl->GetInformation(This,pdwFlags,pStreamType);
261}
262static inline HRESULT IMultiMediaStream_GetMediaStream(IMultiMediaStream* This,REFMSPID idPurpose,IMediaStream **ppMediaStream) {
263    return This->lpVtbl->GetMediaStream(This,idPurpose,ppMediaStream);
264}
265static inline HRESULT IMultiMediaStream_EnumMediaStreams(IMultiMediaStream* This,LONG Index,IMediaStream **ppMediaStream) {
266    return This->lpVtbl->EnumMediaStreams(This,Index,ppMediaStream);
267}
268static inline HRESULT IMultiMediaStream_GetState(IMultiMediaStream* This,STREAM_STATE *pCurrentState) {
269    return This->lpVtbl->GetState(This,pCurrentState);
270}
271static inline HRESULT IMultiMediaStream_SetState(IMultiMediaStream* This,STREAM_STATE NewState) {
272    return This->lpVtbl->SetState(This,NewState);
273}
274static inline HRESULT IMultiMediaStream_GetTime(IMultiMediaStream* This,STREAM_TIME *pCurrentTime) {
275    return This->lpVtbl->GetTime(This,pCurrentTime);
276}
277static inline HRESULT IMultiMediaStream_GetDuration(IMultiMediaStream* This,STREAM_TIME *pDuration) {
278    return This->lpVtbl->GetDuration(This,pDuration);
279}
280static inline HRESULT IMultiMediaStream_Seek(IMultiMediaStream* This,STREAM_TIME SeekTime) {
281    return This->lpVtbl->Seek(This,SeekTime);
282}
283static inline HRESULT IMultiMediaStream_GetEndOfStreamEventHandle(IMultiMediaStream* This,HANDLE *phEOS) {
284    return This->lpVtbl->GetEndOfStreamEventHandle(This,phEOS);
285}
286#endif
287#endif
288
289#endif
290
291
292#endif  /* __IMultiMediaStream_INTERFACE_DEFINED__ */
293
294/*****************************************************************************
295 * IMediaStream interface
296 */
297#ifndef __IMediaStream_INTERFACE_DEFINED__
298#define __IMediaStream_INTERFACE_DEFINED__
299
300DEFINE_GUID(IID_IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
301#if defined(__cplusplus) && !defined(CINTERFACE)
302MIDL_INTERFACE("b502d1bd-9a57-11d0-8fde-00c04fd9189d")
303IMediaStream : public IUnknown
304{
305    virtual HRESULT STDMETHODCALLTYPE GetMultiMediaStream(
306        IMultiMediaStream **ppMultiMediaStream) = 0;
307
308    virtual HRESULT STDMETHODCALLTYPE GetInformation(
309        MSPID *pPurposeId,
310        STREAM_TYPE *pType) = 0;
311
312    virtual HRESULT STDMETHODCALLTYPE SetSameFormat(
313        IMediaStream *pStreamThatHasDesiredFormat,
314        DWORD dwFlags) = 0;
315
316    virtual HRESULT STDMETHODCALLTYPE AllocateSample(
317        DWORD dwFlags,
318        IStreamSample **ppSample) = 0;
319
320    virtual HRESULT STDMETHODCALLTYPE CreateSharedSample(
321        IStreamSample *pExistingSample,
322        DWORD dwFlags,
323        IStreamSample **ppNewSample) = 0;
324
325    virtual HRESULT STDMETHODCALLTYPE SendEndOfStream(
326        DWORD dwFlags) = 0;
327
328};
329#ifdef __CRT_UUID_DECL
330__CRT_UUID_DECL(IMediaStream, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
331#endif
332#else
333typedef struct IMediaStreamVtbl {
334    BEGIN_INTERFACE
335
336    /*** IUnknown methods ***/
337    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
338        IMediaStream *This,
339        REFIID riid,
340        void **ppvObject);
341
342    ULONG (STDMETHODCALLTYPE *AddRef)(
343        IMediaStream *This);
344
345    ULONG (STDMETHODCALLTYPE *Release)(
346        IMediaStream *This);
347
348    /*** IMediaStream methods ***/
349    HRESULT (STDMETHODCALLTYPE *GetMultiMediaStream)(
350        IMediaStream *This,
351        IMultiMediaStream **ppMultiMediaStream);
352
353    HRESULT (STDMETHODCALLTYPE *GetInformation)(
354        IMediaStream *This,
355        MSPID *pPurposeId,
356        STREAM_TYPE *pType);
357
358    HRESULT (STDMETHODCALLTYPE *SetSameFormat)(
359        IMediaStream *This,
360        IMediaStream *pStreamThatHasDesiredFormat,
361        DWORD dwFlags);
362
363    HRESULT (STDMETHODCALLTYPE *AllocateSample)(
364        IMediaStream *This,
365        DWORD dwFlags,
366        IStreamSample **ppSample);
367
368    HRESULT (STDMETHODCALLTYPE *CreateSharedSample)(
369        IMediaStream *This,
370        IStreamSample *pExistingSample,
371        DWORD dwFlags,
372        IStreamSample **ppNewSample);
373
374    HRESULT (STDMETHODCALLTYPE *SendEndOfStream)(
375        IMediaStream *This,
376        DWORD dwFlags);
377
378    END_INTERFACE
379} IMediaStreamVtbl;
380
381interface IMediaStream {
382    CONST_VTBL IMediaStreamVtbl* lpVtbl;
383};
384
385#ifdef COBJMACROS
386#ifndef WIDL_C_INLINE_WRAPPERS
387/*** IUnknown methods ***/
388#define IMediaStream_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
389#define IMediaStream_AddRef(This) (This)->lpVtbl->AddRef(This)
390#define IMediaStream_Release(This) (This)->lpVtbl->Release(This)
391/*** IMediaStream methods ***/
392#define IMediaStream_GetMultiMediaStream(This,ppMultiMediaStream) (This)->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream)
393#define IMediaStream_GetInformation(This,pPurposeId,pType) (This)->lpVtbl->GetInformation(This,pPurposeId,pType)
394#define IMediaStream_SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags) (This)->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags)
395#define IMediaStream_AllocateSample(This,dwFlags,ppSample) (This)->lpVtbl->AllocateSample(This,dwFlags,ppSample)
396#define IMediaStream_CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample) (This)->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample)
397#define IMediaStream_SendEndOfStream(This,dwFlags) (This)->lpVtbl->SendEndOfStream(This,dwFlags)
398#else
399/*** IUnknown methods ***/
400static inline HRESULT IMediaStream_QueryInterface(IMediaStream* This,REFIID riid,void **ppvObject) {
401    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
402}
403static inline ULONG IMediaStream_AddRef(IMediaStream* This) {
404    return This->lpVtbl->AddRef(This);
405}
406static inline ULONG IMediaStream_Release(IMediaStream* This) {
407    return This->lpVtbl->Release(This);
408}
409/*** IMediaStream methods ***/
410static inline HRESULT IMediaStream_GetMultiMediaStream(IMediaStream* This,IMultiMediaStream **ppMultiMediaStream) {
411    return This->lpVtbl->GetMultiMediaStream(This,ppMultiMediaStream);
412}
413static inline HRESULT IMediaStream_GetInformation(IMediaStream* This,MSPID *pPurposeId,STREAM_TYPE *pType) {
414    return This->lpVtbl->GetInformation(This,pPurposeId,pType);
415}
416static inline HRESULT IMediaStream_SetSameFormat(IMediaStream* This,IMediaStream *pStreamThatHasDesiredFormat,DWORD dwFlags) {
417    return This->lpVtbl->SetSameFormat(This,pStreamThatHasDesiredFormat,dwFlags);
418}
419static inline HRESULT IMediaStream_AllocateSample(IMediaStream* This,DWORD dwFlags,IStreamSample **ppSample) {
420    return This->lpVtbl->AllocateSample(This,dwFlags,ppSample);
421}
422static inline HRESULT IMediaStream_CreateSharedSample(IMediaStream* This,IStreamSample *pExistingSample,DWORD dwFlags,IStreamSample **ppNewSample) {
423    return This->lpVtbl->CreateSharedSample(This,pExistingSample,dwFlags,ppNewSample);
424}
425static inline HRESULT IMediaStream_SendEndOfStream(IMediaStream* This,DWORD dwFlags) {
426    return This->lpVtbl->SendEndOfStream(This,dwFlags);
427}
428#endif
429#endif
430
431#endif
432
433
434#endif  /* __IMediaStream_INTERFACE_DEFINED__ */
435
436/*****************************************************************************
437 * IStreamSample interface
438 */
439#ifndef __IStreamSample_INTERFACE_DEFINED__
440#define __IStreamSample_INTERFACE_DEFINED__
441
442DEFINE_GUID(IID_IStreamSample, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
443#if defined(__cplusplus) && !defined(CINTERFACE)
444MIDL_INTERFACE("b502d1be-9a57-11d0-8fde-00c04fd9189d")
445IStreamSample : public IUnknown
446{
447    virtual HRESULT STDMETHODCALLTYPE GetMediaStream(
448        IMediaStream **ppMediaStream) = 0;
449
450    virtual HRESULT STDMETHODCALLTYPE GetSampleTimes(
451        STREAM_TIME *pStartTime,
452        STREAM_TIME *pEndTime,
453        STREAM_TIME *pCurrentTime) = 0;
454
455    virtual HRESULT STDMETHODCALLTYPE SetSampleTimes(
456        const STREAM_TIME *pStartTime,
457        const STREAM_TIME *pEndTime) = 0;
458
459    virtual HRESULT STDMETHODCALLTYPE Update(
460        DWORD dwFlags,
461        HANDLE hEvent,
462        PAPCFUNC pfnAPC,
463        DWORD dwAPCData) = 0;
464
465    virtual HRESULT STDMETHODCALLTYPE CompletionStatus(
466        DWORD dwFlags,
467        DWORD dwMilliseconds) = 0;
468
469};
470#ifdef __CRT_UUID_DECL
471__CRT_UUID_DECL(IStreamSample, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d)
472#endif
473#else
474typedef struct IStreamSampleVtbl {
475    BEGIN_INTERFACE
476
477    /*** IUnknown methods ***/
478    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
479        IStreamSample *This,
480        REFIID riid,
481        void **ppvObject);
482
483    ULONG (STDMETHODCALLTYPE *AddRef)(
484        IStreamSample *This);
485
486    ULONG (STDMETHODCALLTYPE *Release)(
487        IStreamSample *This);
488
489    /*** IStreamSample methods ***/
490    HRESULT (STDMETHODCALLTYPE *GetMediaStream)(
491        IStreamSample *This,
492        IMediaStream **ppMediaStream);
493
494    HRESULT (STDMETHODCALLTYPE *GetSampleTimes)(
495        IStreamSample *This,
496        STREAM_TIME *pStartTime,
497        STREAM_TIME *pEndTime,
498        STREAM_TIME *pCurrentTime);
499
500    HRESULT (STDMETHODCALLTYPE *SetSampleTimes)(
501        IStreamSample *This,
502        const STREAM_TIME *pStartTime,
503        const STREAM_TIME *pEndTime);
504
505    HRESULT (STDMETHODCALLTYPE *Update)(
506        IStreamSample *This,
507        DWORD dwFlags,
508        HANDLE hEvent,
509        PAPCFUNC pfnAPC,
510        DWORD dwAPCData);
511
512    HRESULT (STDMETHODCALLTYPE *CompletionStatus)(
513        IStreamSample *This,
514        DWORD dwFlags,
515        DWORD dwMilliseconds);
516
517    END_INTERFACE
518} IStreamSampleVtbl;
519
520interface IStreamSample {
521    CONST_VTBL IStreamSampleVtbl* lpVtbl;
522};
523
524#ifdef COBJMACROS
525#ifndef WIDL_C_INLINE_WRAPPERS
526/*** IUnknown methods ***/
527#define IStreamSample_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
528#define IStreamSample_AddRef(This) (This)->lpVtbl->AddRef(This)
529#define IStreamSample_Release(This) (This)->lpVtbl->Release(This)
530/*** IStreamSample methods ***/
531#define IStreamSample_GetMediaStream(This,ppMediaStream) (This)->lpVtbl->GetMediaStream(This,ppMediaStream)
532#define IStreamSample_GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime) (This)->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime)
533#define IStreamSample_SetSampleTimes(This,pStartTime,pEndTime) (This)->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime)
534#define IStreamSample_Update(This,dwFlags,hEvent,pfnAPC,dwAPCData) (This)->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData)
535#define IStreamSample_CompletionStatus(This,dwFlags,dwMilliseconds) (This)->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds)
536#else
537/*** IUnknown methods ***/
538static inline HRESULT IStreamSample_QueryInterface(IStreamSample* This,REFIID riid,void **ppvObject) {
539    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
540}
541static inline ULONG IStreamSample_AddRef(IStreamSample* This) {
542    return This->lpVtbl->AddRef(This);
543}
544static inline ULONG IStreamSample_Release(IStreamSample* This) {
545    return This->lpVtbl->Release(This);
546}
547/*** IStreamSample methods ***/
548static inline HRESULT IStreamSample_GetMediaStream(IStreamSample* This,IMediaStream **ppMediaStream) {
549    return This->lpVtbl->GetMediaStream(This,ppMediaStream);
550}
551static inline HRESULT IStreamSample_GetSampleTimes(IStreamSample* This,STREAM_TIME *pStartTime,STREAM_TIME *pEndTime,STREAM_TIME *pCurrentTime) {
552    return This->lpVtbl->GetSampleTimes(This,pStartTime,pEndTime,pCurrentTime);
553}
554static inline HRESULT IStreamSample_SetSampleTimes(IStreamSample* This,const STREAM_TIME *pStartTime,const STREAM_TIME *pEndTime) {
555    return This->lpVtbl->SetSampleTimes(This,pStartTime,pEndTime);
556}
557static inline HRESULT IStreamSample_Update(IStreamSample* This,DWORD dwFlags,HANDLE hEvent,PAPCFUNC pfnAPC,DWORD dwAPCData) {
558    return This->lpVtbl->Update(This,dwFlags,hEvent,pfnAPC,dwAPCData);
559}
560static inline HRESULT IStreamSample_CompletionStatus(IStreamSample* This,DWORD dwFlags,DWORD dwMilliseconds) {
561    return This->lpVtbl->CompletionStatus(This,dwFlags,dwMilliseconds);
562}
563#endif
564#endif
565
566#endif
567
568
569#endif  /* __IStreamSample_INTERFACE_DEFINED__ */
570
571/* Begin additional prototypes for all interfaces */
572
573
574/* End additional prototypes */
575
576#ifdef __cplusplus
577}
578#endif
579
580#endif /* __mmstream_h__ */