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