1 /*** Autogenerated by WIDL 0.1 from mmstream.idl - Do not edit ***/
5 #ifndef __WIDL_MMSTREAM_H
6 #define __WIDL_MMSTREAM_H
11 #define MS_ERROR_CODE(x) MAKE_HRESULT(1, FACILITY_ITF, (x) + 0x400)
12 #define MS_SUCCESS_CODE(x) MAKE_HRESULT(0, FACILITY_ITF, x)
13 #define MS_S_PENDING MS_SUCCESS_CODE(1)
14 #define MS_S_NOUPDATE MS_SUCCESS_CODE(2)
15 #define MS_S_ENDOFSTREAM MS_SUCCESS_CODE(3)
16 #define MS_E_SAMPLEALLOC MS_ERROR_CODE(1)
17 #define MS_E_PURPOSEID MS_ERROR_CODE(2)
18 #define MS_E_NOSTREAM MS_ERROR_CODE(3)
19 #define MS_E_NOSEEKING MS_ERROR_CODE(4)
20 #define MS_E_INCOMPATIBLE MS_ERROR_CODE(5)
21 #define MS_E_BUSY MS_ERROR_CODE(6)
22 #define MS_E_NOTINIT MS_ERROR_CODE(7)
23 #define MS_E_SOURCEALREADYDEFINED MS_ERROR_CODE(8)
24 #define MS_E_INVALIDSTREAMTYPE MS_ERROR_CODE(9)
25 #define MS_E_NOTRUNNING MS_ERROR_CODE(10)
26 DEFINE_GUID(MSPID_PrimaryVideo
, 0xa35ff56a, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
27 DEFINE_GUID(MSPID_PrimaryAudio
, 0xa35ff56b, 0x9fda, 0x11d0, 0x8f, 0xdf, 0x0, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
29 typedef void *PAPCFUNC
;
32 typedef LONGLONG STREAM_TIME
;
36 typedef REFGUID REFMSPID
;
41 STREAMTYPE_TRANSFORM
= 2
50 COMPSTAT_NOUPDATEOK
= 0x1,
53 } COMPLETION_STATUS_FLAGS
;
57 MMSSF_SUPPORTSEEK
= 0x2,
58 MMSSF_ASYNCHRONOUS
= 0x4
63 SSUPDATE_CONTINUOUS
= 0x2
66 #ifndef __IMultiMediaStream_FWD_DEFINED__
67 #define __IMultiMediaStream_FWD_DEFINED__
68 typedef struct IMultiMediaStream IMultiMediaStream
;
71 #ifndef __IMediaStream_FWD_DEFINED__
72 #define __IMediaStream_FWD_DEFINED__
73 typedef struct IMediaStream IMediaStream
;
76 #ifndef __IStreamSample_FWD_DEFINED__
77 #define __IStreamSample_FWD_DEFINED__
78 typedef struct IStreamSample IStreamSample
;
81 /*****************************************************************************
82 * IMultiMediaStream interface
84 #ifndef __IMultiMediaStream_INTERFACE_DEFINED__
85 #define __IMultiMediaStream_INTERFACE_DEFINED__
87 DEFINE_GUID(IID_IMultiMediaStream
, 0xb502d1bc, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
88 #if defined(__cplusplus) && !defined(CINTERFACE)
89 struct IMultiMediaStream
: public IUnknown
91 virtual HRESULT STDMETHODCALLTYPE
GetInformation(
93 STREAM_TYPE
* pStreamType
) = 0;
95 virtual HRESULT STDMETHODCALLTYPE
GetMediaStream(
97 IMediaStream
** ppMediaStream
) = 0;
99 virtual HRESULT STDMETHODCALLTYPE
EnumMediaStreams(
101 IMediaStream
** ppMediaStream
) = 0;
103 virtual HRESULT STDMETHODCALLTYPE
GetState(
104 STREAM_STATE
* pCurrentState
) = 0;
106 virtual HRESULT STDMETHODCALLTYPE
SetState(
107 STREAM_STATE NewState
) = 0;
109 virtual HRESULT STDMETHODCALLTYPE
GetTime(
110 STREAM_TIME
* pCurrentTime
) = 0;
112 virtual HRESULT STDMETHODCALLTYPE
GetDuration(
113 STREAM_TIME
* pDuration
) = 0;
115 virtual HRESULT STDMETHODCALLTYPE
Seek(
116 STREAM_TIME SeekTime
) = 0;
118 virtual HRESULT STDMETHODCALLTYPE
GetEndOfStreamEventHandle(
123 typedef struct IMultiMediaStreamVtbl IMultiMediaStreamVtbl
;
124 struct IMultiMediaStream
{
125 const IMultiMediaStreamVtbl
* lpVtbl
;
127 struct IMultiMediaStreamVtbl
{
130 /*** IUnknown methods ***/
131 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
132 IMultiMediaStream
* This
,
136 ULONG (STDMETHODCALLTYPE
*AddRef
)(
137 IMultiMediaStream
* This
);
139 ULONG (STDMETHODCALLTYPE
*Release
)(
140 IMultiMediaStream
* This
);
142 /*** IMultiMediaStream methods ***/
143 HRESULT (STDMETHODCALLTYPE
*GetInformation
)(
144 IMultiMediaStream
* This
,
146 STREAM_TYPE
* pStreamType
);
148 HRESULT (STDMETHODCALLTYPE
*GetMediaStream
)(
149 IMultiMediaStream
* This
,
151 IMediaStream
** ppMediaStream
);
153 HRESULT (STDMETHODCALLTYPE
*EnumMediaStreams
)(
154 IMultiMediaStream
* This
,
156 IMediaStream
** ppMediaStream
);
158 HRESULT (STDMETHODCALLTYPE
*GetState
)(
159 IMultiMediaStream
* This
,
160 STREAM_STATE
* pCurrentState
);
162 HRESULT (STDMETHODCALLTYPE
*SetState
)(
163 IMultiMediaStream
* This
,
164 STREAM_STATE NewState
);
166 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
167 IMultiMediaStream
* This
,
168 STREAM_TIME
* pCurrentTime
);
170 HRESULT (STDMETHODCALLTYPE
*GetDuration
)(
171 IMultiMediaStream
* This
,
172 STREAM_TIME
* pDuration
);
174 HRESULT (STDMETHODCALLTYPE
*Seek
)(
175 IMultiMediaStream
* This
,
176 STREAM_TIME SeekTime
);
178 HRESULT (STDMETHODCALLTYPE
*GetEndOfStreamEventHandle
)(
179 IMultiMediaStream
* This
,
186 /*** IUnknown methods ***/
187 #define IMultiMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
188 #define IMultiMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
189 #define IMultiMediaStream_Release(p) (p)->lpVtbl->Release(p)
190 /*** IMultiMediaStream methods ***/
191 #define IMultiMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
192 #define IMultiMediaStream_GetMediaStream(p,a,b) (p)->lpVtbl->GetMediaStream(p,a,b)
193 #define IMultiMediaStream_EnumMediaStreams(p,a,b) (p)->lpVtbl->EnumMediaStreams(p,a,b)
194 #define IMultiMediaStream_GetState(p,a) (p)->lpVtbl->GetState(p,a)
195 #define IMultiMediaStream_SetState(p,a) (p)->lpVtbl->SetState(p,a)
196 #define IMultiMediaStream_GetTime(p,a) (p)->lpVtbl->GetTime(p,a)
197 #define IMultiMediaStream_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a)
198 #define IMultiMediaStream_Seek(p,a) (p)->lpVtbl->Seek(p,a)
199 #define IMultiMediaStream_GetEndOfStreamEventHandle(p,a) (p)->lpVtbl->GetEndOfStreamEventHandle(p,a)
204 #define IMultiMediaStream_METHODS \
205 ICOM_MSVTABLE_COMPAT_FIELDS \
206 /*** IUnknown methods ***/ \
207 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
208 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
209 STDMETHOD_(ULONG,Release)(THIS) PURE; \
210 /*** IMultiMediaStream methods ***/ \
211 STDMETHOD_(HRESULT,GetInformation)(THIS_ char* pdwFlags, STREAM_TYPE* pStreamType) PURE; \
212 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ REFMSPID idPurpose, IMediaStream** ppMediaStream) PURE; \
213 STDMETHOD_(HRESULT,EnumMediaStreams)(THIS_ long Index, IMediaStream** ppMediaStream) PURE; \
214 STDMETHOD_(HRESULT,GetState)(THIS_ STREAM_STATE* pCurrentState) PURE; \
215 STDMETHOD_(HRESULT,SetState)(THIS_ STREAM_STATE NewState) PURE; \
216 STDMETHOD_(HRESULT,GetTime)(THIS_ STREAM_TIME* pCurrentTime) PURE; \
217 STDMETHOD_(HRESULT,GetDuration)(THIS_ STREAM_TIME* pDuration) PURE; \
218 STDMETHOD_(HRESULT,Seek)(THIS_ STREAM_TIME SeekTime) PURE; \
219 STDMETHOD_(HRESULT,GetEndOfStreamEventHandle)(THIS_ HANDLE* phEOS) PURE;
221 HRESULT CALLBACK
IMultiMediaStream_GetInformation_Proxy(
222 IMultiMediaStream
* This
,
224 STREAM_TYPE
* pStreamType
);
225 void __RPC_STUB
IMultiMediaStream_GetInformation_Stub(
226 struct IRpcStubBuffer
* This
,
227 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
228 PRPC_MESSAGE pRpcMessage
,
229 DWORD
* pdwStubPhase
);
230 HRESULT CALLBACK
IMultiMediaStream_GetMediaStream_Proxy(
231 IMultiMediaStream
* This
,
233 IMediaStream
** ppMediaStream
);
234 void __RPC_STUB
IMultiMediaStream_GetMediaStream_Stub(
235 struct IRpcStubBuffer
* This
,
236 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
237 PRPC_MESSAGE pRpcMessage
,
238 DWORD
* pdwStubPhase
);
239 HRESULT CALLBACK
IMultiMediaStream_EnumMediaStreams_Proxy(
240 IMultiMediaStream
* This
,
242 IMediaStream
** ppMediaStream
);
243 void __RPC_STUB
IMultiMediaStream_EnumMediaStreams_Stub(
244 struct IRpcStubBuffer
* This
,
245 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
246 PRPC_MESSAGE pRpcMessage
,
247 DWORD
* pdwStubPhase
);
248 HRESULT CALLBACK
IMultiMediaStream_GetState_Proxy(
249 IMultiMediaStream
* This
,
250 STREAM_STATE
* pCurrentState
);
251 void __RPC_STUB
IMultiMediaStream_GetState_Stub(
252 struct IRpcStubBuffer
* This
,
253 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
254 PRPC_MESSAGE pRpcMessage
,
255 DWORD
* pdwStubPhase
);
256 HRESULT CALLBACK
IMultiMediaStream_SetState_Proxy(
257 IMultiMediaStream
* This
,
258 STREAM_STATE NewState
);
259 void __RPC_STUB
IMultiMediaStream_SetState_Stub(
260 struct IRpcStubBuffer
* This
,
261 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
262 PRPC_MESSAGE pRpcMessage
,
263 DWORD
* pdwStubPhase
);
264 HRESULT CALLBACK
IMultiMediaStream_GetTime_Proxy(
265 IMultiMediaStream
* This
,
266 STREAM_TIME
* pCurrentTime
);
267 void __RPC_STUB
IMultiMediaStream_GetTime_Stub(
268 struct IRpcStubBuffer
* This
,
269 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
270 PRPC_MESSAGE pRpcMessage
,
271 DWORD
* pdwStubPhase
);
272 HRESULT CALLBACK
IMultiMediaStream_GetDuration_Proxy(
273 IMultiMediaStream
* This
,
274 STREAM_TIME
* pDuration
);
275 void __RPC_STUB
IMultiMediaStream_GetDuration_Stub(
276 struct IRpcStubBuffer
* This
,
277 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
278 PRPC_MESSAGE pRpcMessage
,
279 DWORD
* pdwStubPhase
);
280 HRESULT CALLBACK
IMultiMediaStream_Seek_Proxy(
281 IMultiMediaStream
* This
,
282 STREAM_TIME SeekTime
);
283 void __RPC_STUB
IMultiMediaStream_Seek_Stub(
284 struct IRpcStubBuffer
* This
,
285 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
286 PRPC_MESSAGE pRpcMessage
,
287 DWORD
* pdwStubPhase
);
288 HRESULT CALLBACK
IMultiMediaStream_GetEndOfStreamEventHandle_Proxy(
289 IMultiMediaStream
* This
,
291 void __RPC_STUB
IMultiMediaStream_GetEndOfStreamEventHandle_Stub(
292 struct IRpcStubBuffer
* This
,
293 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
294 PRPC_MESSAGE pRpcMessage
,
295 DWORD
* pdwStubPhase
);
297 #endif /* __IMultiMediaStream_INTERFACE_DEFINED__ */
299 /*****************************************************************************
300 * IMediaStream interface
302 #ifndef __IMediaStream_INTERFACE_DEFINED__
303 #define __IMediaStream_INTERFACE_DEFINED__
305 DEFINE_GUID(IID_IMediaStream
, 0xb502d1bd, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
306 #if defined(__cplusplus) && !defined(CINTERFACE)
307 struct IMediaStream
: public IUnknown
309 virtual HRESULT STDMETHODCALLTYPE
GetMultiMediaStream(
310 IMultiMediaStream
** ppMultiMediaStream
) = 0;
312 virtual HRESULT STDMETHODCALLTYPE
GetInformation(
314 STREAM_TYPE
* pType
) = 0;
316 virtual HRESULT STDMETHODCALLTYPE
SetSameFormat(
317 IMediaStream
* pStreamThatHasDesiredFormat
,
320 virtual HRESULT STDMETHODCALLTYPE
AllocateSample(
322 IStreamSample
** ppSample
) = 0;
324 virtual HRESULT STDMETHODCALLTYPE
CreateSharedSample(
325 IStreamSample
* pExistingSample
,
327 IStreamSample
** ppNewSample
) = 0;
329 virtual HRESULT STDMETHODCALLTYPE
SendEndOfStream(
334 typedef struct IMediaStreamVtbl IMediaStreamVtbl
;
335 struct IMediaStream
{
336 const IMediaStreamVtbl
* lpVtbl
;
338 struct IMediaStreamVtbl
{
341 /*** IUnknown methods ***/
342 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
347 ULONG (STDMETHODCALLTYPE
*AddRef
)(
350 ULONG (STDMETHODCALLTYPE
*Release
)(
353 /*** IMediaStream methods ***/
354 HRESULT (STDMETHODCALLTYPE
*GetMultiMediaStream
)(
356 IMultiMediaStream
** ppMultiMediaStream
);
358 HRESULT (STDMETHODCALLTYPE
*GetInformation
)(
363 HRESULT (STDMETHODCALLTYPE
*SetSameFormat
)(
365 IMediaStream
* pStreamThatHasDesiredFormat
,
368 HRESULT (STDMETHODCALLTYPE
*AllocateSample
)(
371 IStreamSample
** ppSample
);
373 HRESULT (STDMETHODCALLTYPE
*CreateSharedSample
)(
375 IStreamSample
* pExistingSample
,
377 IStreamSample
** ppNewSample
);
379 HRESULT (STDMETHODCALLTYPE
*SendEndOfStream
)(
387 /*** IUnknown methods ***/
388 #define IMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
389 #define IMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
390 #define IMediaStream_Release(p) (p)->lpVtbl->Release(p)
391 /*** IMediaStream methods ***/
392 #define IMediaStream_GetMultiMediaStream(p,a) (p)->lpVtbl->GetMultiMediaStream(p,a)
393 #define IMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
394 #define IMediaStream_SetSameFormat(p,a,b) (p)->lpVtbl->SetSameFormat(p,a,b)
395 #define IMediaStream_AllocateSample(p,a,b) (p)->lpVtbl->AllocateSample(p,a,b)
396 #define IMediaStream_CreateSharedSample(p,a,b,c) (p)->lpVtbl->CreateSharedSample(p,a,b,c)
397 #define IMediaStream_SendEndOfStream(p,a) (p)->lpVtbl->SendEndOfStream(p,a)
402 #define IMediaStream_METHODS \
403 ICOM_MSVTABLE_COMPAT_FIELDS \
404 /*** IUnknown methods ***/ \
405 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
406 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
407 STDMETHOD_(ULONG,Release)(THIS) PURE; \
408 /*** IMediaStream methods ***/ \
409 STDMETHOD_(HRESULT,GetMultiMediaStream)(THIS_ IMultiMediaStream** ppMultiMediaStream) PURE; \
410 STDMETHOD_(HRESULT,GetInformation)(THIS_ MSPID* pPurposeId, STREAM_TYPE* pType) PURE; \
411 STDMETHOD_(HRESULT,SetSameFormat)(THIS_ IMediaStream* pStreamThatHasDesiredFormat, DWORD dwFlags) PURE; \
412 STDMETHOD_(HRESULT,AllocateSample)(THIS_ DWORD dwFlags, IStreamSample** ppSample) PURE; \
413 STDMETHOD_(HRESULT,CreateSharedSample)(THIS_ IStreamSample* pExistingSample, DWORD dwFlags, IStreamSample** ppNewSample) PURE; \
414 STDMETHOD_(HRESULT,SendEndOfStream)(THIS_ DWORD dwFlags) PURE;
416 HRESULT CALLBACK
IMediaStream_GetMultiMediaStream_Proxy(
418 IMultiMediaStream
** ppMultiMediaStream
);
419 void __RPC_STUB
IMediaStream_GetMultiMediaStream_Stub(
420 struct IRpcStubBuffer
* This
,
421 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
422 PRPC_MESSAGE pRpcMessage
,
423 DWORD
* pdwStubPhase
);
424 HRESULT CALLBACK
IMediaStream_GetInformation_Proxy(
428 void __RPC_STUB
IMediaStream_GetInformation_Stub(
429 struct IRpcStubBuffer
* This
,
430 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
431 PRPC_MESSAGE pRpcMessage
,
432 DWORD
* pdwStubPhase
);
433 HRESULT CALLBACK
IMediaStream_SetSameFormat_Proxy(
435 IMediaStream
* pStreamThatHasDesiredFormat
,
437 void __RPC_STUB
IMediaStream_SetSameFormat_Stub(
438 struct IRpcStubBuffer
* This
,
439 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
440 PRPC_MESSAGE pRpcMessage
,
441 DWORD
* pdwStubPhase
);
442 HRESULT CALLBACK
IMediaStream_AllocateSample_Proxy(
445 IStreamSample
** ppSample
);
446 void __RPC_STUB
IMediaStream_AllocateSample_Stub(
447 struct IRpcStubBuffer
* This
,
448 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
449 PRPC_MESSAGE pRpcMessage
,
450 DWORD
* pdwStubPhase
);
451 HRESULT CALLBACK
IMediaStream_CreateSharedSample_Proxy(
453 IStreamSample
* pExistingSample
,
455 IStreamSample
** ppNewSample
);
456 void __RPC_STUB
IMediaStream_CreateSharedSample_Stub(
457 struct IRpcStubBuffer
* This
,
458 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
459 PRPC_MESSAGE pRpcMessage
,
460 DWORD
* pdwStubPhase
);
461 HRESULT CALLBACK
IMediaStream_SendEndOfStream_Proxy(
464 void __RPC_STUB
IMediaStream_SendEndOfStream_Stub(
465 struct IRpcStubBuffer
* This
,
466 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
467 PRPC_MESSAGE pRpcMessage
,
468 DWORD
* pdwStubPhase
);
470 #endif /* __IMediaStream_INTERFACE_DEFINED__ */
472 /*****************************************************************************
473 * IStreamSample interface
475 #ifndef __IStreamSample_INTERFACE_DEFINED__
476 #define __IStreamSample_INTERFACE_DEFINED__
478 DEFINE_GUID(IID_IStreamSample
, 0xb502d1be, 0x9a57, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
479 #if defined(__cplusplus) && !defined(CINTERFACE)
480 struct IStreamSample
: public IUnknown
482 virtual HRESULT STDMETHODCALLTYPE
GetMediaStream(
483 IMediaStream
** ppMediaStream
) = 0;
485 virtual HRESULT STDMETHODCALLTYPE
GetSampleTimes(
486 STREAM_TIME
* pStartTime
,
487 STREAM_TIME
* pEndTime
,
488 STREAM_TIME
* pCurrentTime
) = 0;
490 virtual HRESULT STDMETHODCALLTYPE
SetSampleTimes(
491 const STREAM_TIME
* pStartTime
,
492 const STREAM_TIME
* pEndTime
) = 0;
494 virtual HRESULT STDMETHODCALLTYPE
Update(
498 DWORD dwAPCData
) = 0;
500 virtual HRESULT STDMETHODCALLTYPE
CompletionStatus(
502 DWORD dwMilliseconds
) = 0;
506 typedef struct IStreamSampleVtbl IStreamSampleVtbl
;
507 struct IStreamSample
{
508 const IStreamSampleVtbl
* lpVtbl
;
510 struct IStreamSampleVtbl
{
513 /*** IUnknown methods ***/
514 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
519 ULONG (STDMETHODCALLTYPE
*AddRef
)(
520 IStreamSample
* This
);
522 ULONG (STDMETHODCALLTYPE
*Release
)(
523 IStreamSample
* This
);
525 /*** IStreamSample methods ***/
526 HRESULT (STDMETHODCALLTYPE
*GetMediaStream
)(
528 IMediaStream
** ppMediaStream
);
530 HRESULT (STDMETHODCALLTYPE
*GetSampleTimes
)(
532 STREAM_TIME
* pStartTime
,
533 STREAM_TIME
* pEndTime
,
534 STREAM_TIME
* pCurrentTime
);
536 HRESULT (STDMETHODCALLTYPE
*SetSampleTimes
)(
538 const STREAM_TIME
* pStartTime
,
539 const STREAM_TIME
* pEndTime
);
541 HRESULT (STDMETHODCALLTYPE
*Update
)(
548 HRESULT (STDMETHODCALLTYPE
*CompletionStatus
)(
551 DWORD dwMilliseconds
);
557 /*** IUnknown methods ***/
558 #define IStreamSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
559 #define IStreamSample_AddRef(p) (p)->lpVtbl->AddRef(p)
560 #define IStreamSample_Release(p) (p)->lpVtbl->Release(p)
561 /*** IStreamSample methods ***/
562 #define IStreamSample_GetMediaStream(p,a) (p)->lpVtbl->GetMediaStream(p,a)
563 #define IStreamSample_GetSampleTimes(p,a,b,c) (p)->lpVtbl->GetSampleTimes(p,a,b,c)
564 #define IStreamSample_SetSampleTimes(p,a,b) (p)->lpVtbl->SetSampleTimes(p,a,b)
565 #define IStreamSample_Update(p,a,b,c,d) (p)->lpVtbl->Update(p,a,b,c,d)
566 #define IStreamSample_CompletionStatus(p,a,b) (p)->lpVtbl->CompletionStatus(p,a,b)
571 #define IStreamSample_METHODS \
572 ICOM_MSVTABLE_COMPAT_FIELDS \
573 /*** IUnknown methods ***/ \
574 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
575 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
576 STDMETHOD_(ULONG,Release)(THIS) PURE; \
577 /*** IStreamSample methods ***/ \
578 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ IMediaStream** ppMediaStream) PURE; \
579 STDMETHOD_(HRESULT,GetSampleTimes)(THIS_ STREAM_TIME* pStartTime, STREAM_TIME* pEndTime, STREAM_TIME* pCurrentTime) PURE; \
580 STDMETHOD_(HRESULT,SetSampleTimes)(THIS_ const STREAM_TIME* pStartTime, const STREAM_TIME* pEndTime) PURE; \
581 STDMETHOD_(HRESULT,Update)(THIS_ DWORD dwFlags, HANDLE hEvent, PAPCFUNC pfnAPC, DWORD dwAPCData) PURE; \
582 STDMETHOD_(HRESULT,CompletionStatus)(THIS_ DWORD dwFlags, DWORD dwMilliseconds) PURE;
584 HRESULT CALLBACK
IStreamSample_GetMediaStream_Proxy(
586 IMediaStream
** ppMediaStream
);
587 void __RPC_STUB
IStreamSample_GetMediaStream_Stub(
588 struct IRpcStubBuffer
* This
,
589 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
590 PRPC_MESSAGE pRpcMessage
,
591 DWORD
* pdwStubPhase
);
592 HRESULT CALLBACK
IStreamSample_GetSampleTimes_Proxy(
594 STREAM_TIME
* pStartTime
,
595 STREAM_TIME
* pEndTime
,
596 STREAM_TIME
* pCurrentTime
);
597 void __RPC_STUB
IStreamSample_GetSampleTimes_Stub(
598 struct IRpcStubBuffer
* This
,
599 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
600 PRPC_MESSAGE pRpcMessage
,
601 DWORD
* pdwStubPhase
);
602 HRESULT CALLBACK
IStreamSample_SetSampleTimes_Proxy(
604 const STREAM_TIME
* pStartTime
,
605 const STREAM_TIME
* pEndTime
);
606 void __RPC_STUB
IStreamSample_SetSampleTimes_Stub(
607 struct IRpcStubBuffer
* This
,
608 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
609 PRPC_MESSAGE pRpcMessage
,
610 DWORD
* pdwStubPhase
);
611 HRESULT CALLBACK
IStreamSample_Update_Proxy(
617 void __RPC_STUB
IStreamSample_Update_Stub(
618 struct IRpcStubBuffer
* This
,
619 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
620 PRPC_MESSAGE pRpcMessage
,
621 DWORD
* pdwStubPhase
);
622 HRESULT CALLBACK
IStreamSample_CompletionStatus_Proxy(
625 DWORD dwMilliseconds
);
626 void __RPC_STUB
IStreamSample_CompletionStatus_Stub(
627 struct IRpcStubBuffer
* This
,
628 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
629 PRPC_MESSAGE pRpcMessage
,
630 DWORD
* pdwStubPhase
);
632 #endif /* __IStreamSample_INTERFACE_DEFINED__ */
637 #endif /* __WIDL_MMSTREAM_H */