1 /*** Autogenerated by WIDL 0.1 from amstream.idl - Do not edit ***/
5 #ifndef __WIDL_AMSTREAM_H
6 #define __WIDL_AMSTREAM_H
19 #ifndef __IDirectDraw_FWD_DEFINED__
20 #define __IDirectDraw_FWD_DEFINED__
21 typedef struct IDirectDraw IDirectDraw
;
24 #ifndef __IDirectDrawSurface_FWD_DEFINED__
25 #define __IDirectDrawSurface_FWD_DEFINED__
26 typedef struct IDirectDrawSurface IDirectDrawSurface
;
30 #ifndef __IAMMultiMediaStream_FWD_DEFINED__
31 #define __IAMMultiMediaStream_FWD_DEFINED__
32 typedef struct IAMMultiMediaStream IAMMultiMediaStream
;
35 #ifndef __IAMMediaStream_FWD_DEFINED__
36 #define __IAMMediaStream_FWD_DEFINED__
37 typedef struct IAMMediaStream IAMMediaStream
;
40 #ifndef __IMediaStreamFilter_FWD_DEFINED__
41 #define __IMediaStreamFilter_FWD_DEFINED__
42 typedef struct IMediaStreamFilter IMediaStreamFilter
;
45 #ifndef __IAMMediaTypeStream_FWD_DEFINED__
46 #define __IAMMediaTypeStream_FWD_DEFINED__
47 typedef struct IAMMediaTypeStream IAMMediaTypeStream
;
50 #ifndef __IAMMediaTypeSample_FWD_DEFINED__
51 #define __IAMMediaTypeSample_FWD_DEFINED__
52 typedef struct IAMMediaTypeSample IAMMediaTypeSample
;
56 AMMSF_NOGRAPHTHREAD
= 0x1
60 AMMSF_ADDDEFAULTRENDERER
= 0x1,
61 AMMSF_CREATEPEER
= 0x2
65 AMMSF_RENDERTYPEMASK
= 0x3,
66 AMMSF_RENDERTOEXISTING
= 0x0,
67 AMMSF_RENDERALLSTREAMS
= 0x1,
79 /*****************************************************************************
80 * IAMMultiMediaStream interface
82 #ifndef __IAMMultiMediaStream_INTERFACE_DEFINED__
83 #define __IAMMultiMediaStream_INTERFACE_DEFINED__
85 DEFINE_GUID(IID_IAMMultiMediaStream
, 0xbebe595c, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
86 #if defined(__cplusplus) && !defined(CINTERFACE)
87 struct IAMMultiMediaStream
: public IMultiMediaStream
89 virtual HRESULT STDMETHODCALLTYPE
Initialize(
90 STREAM_TYPE StreamType
,
92 IGraphBuilder
* pFilterGraph
) = 0;
94 virtual HRESULT STDMETHODCALLTYPE
GetFilterGraph(
95 IGraphBuilder
** ppGraphBuilder
) = 0;
97 virtual HRESULT STDMETHODCALLTYPE
GetFilter(
98 IMediaStreamFilter
** ppFilter
) = 0;
100 virtual HRESULT STDMETHODCALLTYPE
AddMediaStream(
101 IUnknown
* pStreamObject
,
102 const MSPID
* PurposeId
,
104 IMediaStream
** ppNewStream
) = 0;
106 virtual HRESULT STDMETHODCALLTYPE
OpenFile(
110 virtual HRESULT STDMETHODCALLTYPE
OpenMoniker(
115 virtual HRESULT STDMETHODCALLTYPE
Render(
120 typedef struct IAMMultiMediaStreamVtbl IAMMultiMediaStreamVtbl
;
121 struct IAMMultiMediaStream
{
122 const IAMMultiMediaStreamVtbl
* lpVtbl
;
124 struct IAMMultiMediaStreamVtbl
{
125 ICOM_MSVTABLE_COMPAT_FIELDS
127 /*** IUnknown methods ***/
128 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
129 IAMMultiMediaStream
* This
,
133 ULONG (STDMETHODCALLTYPE
*AddRef
)(
134 IAMMultiMediaStream
* This
);
136 ULONG (STDMETHODCALLTYPE
*Release
)(
137 IAMMultiMediaStream
* This
);
139 /*** IMultiMediaStream methods ***/
140 HRESULT (STDMETHODCALLTYPE
*GetInformation
)(
141 IAMMultiMediaStream
* This
,
143 STREAM_TYPE
* pStreamType
);
145 HRESULT (STDMETHODCALLTYPE
*GetMediaStream
)(
146 IAMMultiMediaStream
* This
,
148 IMediaStream
** ppMediaStream
);
150 HRESULT (STDMETHODCALLTYPE
*EnumMediaStreams
)(
151 IAMMultiMediaStream
* This
,
153 IMediaStream
** ppMediaStream
);
155 HRESULT (STDMETHODCALLTYPE
*GetState
)(
156 IAMMultiMediaStream
* This
,
157 STREAM_STATE
* pCurrentState
);
159 HRESULT (STDMETHODCALLTYPE
*SetState
)(
160 IAMMultiMediaStream
* This
,
161 STREAM_STATE NewState
);
163 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
164 IAMMultiMediaStream
* This
,
165 STREAM_TIME
* pCurrentTime
);
167 HRESULT (STDMETHODCALLTYPE
*GetDuration
)(
168 IAMMultiMediaStream
* This
,
169 STREAM_TIME
* pDuration
);
171 HRESULT (STDMETHODCALLTYPE
*Seek
)(
172 IAMMultiMediaStream
* This
,
173 STREAM_TIME SeekTime
);
175 HRESULT (STDMETHODCALLTYPE
*GetEndOfStreamEventHandle
)(
176 IAMMultiMediaStream
* This
,
179 /*** IAMMultiMediaStream methods ***/
180 HRESULT (STDMETHODCALLTYPE
*Initialize
)(
181 IAMMultiMediaStream
* This
,
182 STREAM_TYPE StreamType
,
184 IGraphBuilder
* pFilterGraph
);
186 HRESULT (STDMETHODCALLTYPE
*GetFilterGraph
)(
187 IAMMultiMediaStream
* This
,
188 IGraphBuilder
** ppGraphBuilder
);
190 HRESULT (STDMETHODCALLTYPE
*GetFilter
)(
191 IAMMultiMediaStream
* This
,
192 IMediaStreamFilter
** ppFilter
);
194 HRESULT (STDMETHODCALLTYPE
*AddMediaStream
)(
195 IAMMultiMediaStream
* This
,
196 IUnknown
* pStreamObject
,
197 const MSPID
* PurposeId
,
199 IMediaStream
** ppNewStream
);
201 HRESULT (STDMETHODCALLTYPE
*OpenFile
)(
202 IAMMultiMediaStream
* This
,
206 HRESULT (STDMETHODCALLTYPE
*OpenMoniker
)(
207 IAMMultiMediaStream
* This
,
212 HRESULT (STDMETHODCALLTYPE
*Render
)(
213 IAMMultiMediaStream
* This
,
218 /*** IUnknown methods ***/
219 #define IAMMultiMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
220 #define IAMMultiMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
221 #define IAMMultiMediaStream_Release(p) (p)->lpVtbl->Release(p)
222 /*** IMultiMediaStream methods ***/
223 #define IAMMultiMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
224 #define IAMMultiMediaStream_GetMediaStream(p,a,b) (p)->lpVtbl->GetMediaStream(p,a,b)
225 #define IAMMultiMediaStream_EnumMediaStreams(p,a,b) (p)->lpVtbl->EnumMediaStreams(p,a,b)
226 #define IAMMultiMediaStream_GetState(p,a) (p)->lpVtbl->GetState(p,a)
227 #define IAMMultiMediaStream_SetState(p,a) (p)->lpVtbl->SetState(p,a)
228 #define IAMMultiMediaStream_GetTime(p,a) (p)->lpVtbl->GetTime(p,a)
229 #define IAMMultiMediaStream_GetDuration(p,a) (p)->lpVtbl->GetDuration(p,a)
230 #define IAMMultiMediaStream_Seek(p,a) (p)->lpVtbl->Seek(p,a)
231 #define IAMMultiMediaStream_GetEndOfStreamEventHandle(p,a) (p)->lpVtbl->GetEndOfStreamEventHandle(p,a)
232 /*** IAMMultiMediaStream methods ***/
233 #define IAMMultiMediaStream_Initialize(p,a,b,c) (p)->lpVtbl->Initialize(p,a,b,c)
234 #define IAMMultiMediaStream_GetFilterGraph(p,a) (p)->lpVtbl->GetFilterGraph(p,a)
235 #define IAMMultiMediaStream_GetFilter(p,a) (p)->lpVtbl->GetFilter(p,a)
236 #define IAMMultiMediaStream_AddMediaStream(p,a,b,c,d) (p)->lpVtbl->AddMediaStream(p,a,b,c,d)
237 #define IAMMultiMediaStream_OpenFile(p,a,b) (p)->lpVtbl->OpenFile(p,a,b)
238 #define IAMMultiMediaStream_OpenMoniker(p,a,b,c) (p)->lpVtbl->OpenMoniker(p,a,b,c)
239 #define IAMMultiMediaStream_Render(p,a) (p)->lpVtbl->Render(p,a)
243 #define IAMMultiMediaStream_METHODS \
244 ICOM_MSVTABLE_COMPAT_FIELDS \
245 /*** IUnknown methods ***/ \
246 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
247 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
248 STDMETHOD_(ULONG,Release)(THIS) PURE; \
249 /*** IMultiMediaStream methods ***/ \
250 STDMETHOD_(HRESULT,GetInformation)(THIS_ char* pdwFlags, STREAM_TYPE* pStreamType) PURE; \
251 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ REFMSPID idPurpose, IMediaStream** ppMediaStream) PURE; \
252 STDMETHOD_(HRESULT,EnumMediaStreams)(THIS_ long Index, IMediaStream** ppMediaStream) PURE; \
253 STDMETHOD_(HRESULT,GetState)(THIS_ STREAM_STATE* pCurrentState) PURE; \
254 STDMETHOD_(HRESULT,SetState)(THIS_ STREAM_STATE NewState) PURE; \
255 STDMETHOD_(HRESULT,GetTime)(THIS_ STREAM_TIME* pCurrentTime) PURE; \
256 STDMETHOD_(HRESULT,GetDuration)(THIS_ STREAM_TIME* pDuration) PURE; \
257 STDMETHOD_(HRESULT,Seek)(THIS_ STREAM_TIME SeekTime) PURE; \
258 STDMETHOD_(HRESULT,GetEndOfStreamEventHandle)(THIS_ HANDLE* phEOS) PURE; \
259 /*** IAMMultiMediaStream methods ***/ \
260 STDMETHOD_(HRESULT,Initialize)(THIS_ STREAM_TYPE StreamType, DWORD dwFlags, IGraphBuilder* pFilterGraph) PURE; \
261 STDMETHOD_(HRESULT,GetFilterGraph)(THIS_ IGraphBuilder** ppGraphBuilder) PURE; \
262 STDMETHOD_(HRESULT,GetFilter)(THIS_ IMediaStreamFilter** ppFilter) PURE; \
263 STDMETHOD_(HRESULT,AddMediaStream)(THIS_ IUnknown* pStreamObject, const MSPID* PurposeId, DWORD dwFlags, IMediaStream** ppNewStream) PURE; \
264 STDMETHOD_(HRESULT,OpenFile)(THIS_ LPCWSTR pszFileName, DWORD dwFlags) PURE; \
265 STDMETHOD_(HRESULT,OpenMoniker)(THIS_ IBindCtx* pCtx, IMoniker* pMoniker, DWORD dwFlags) PURE; \
266 STDMETHOD_(HRESULT,Render)(THIS_ DWORD dwFlags) PURE;
268 HRESULT CALLBACK
IAMMultiMediaStream_Initialize_Proxy(
269 IAMMultiMediaStream
* This
,
270 STREAM_TYPE StreamType
,
272 IGraphBuilder
* pFilterGraph
);
273 void __RPC_STUB
IAMMultiMediaStream_Initialize_Stub(
274 struct IRpcStubBuffer
* This
,
275 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
276 PRPC_MESSAGE pRpcMessage
,
277 DWORD
* pdwStubPhase
);
278 HRESULT CALLBACK
IAMMultiMediaStream_GetFilterGraph_Proxy(
279 IAMMultiMediaStream
* This
,
280 IGraphBuilder
** ppGraphBuilder
);
281 void __RPC_STUB
IAMMultiMediaStream_GetFilterGraph_Stub(
282 struct IRpcStubBuffer
* This
,
283 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
284 PRPC_MESSAGE pRpcMessage
,
285 DWORD
* pdwStubPhase
);
286 HRESULT CALLBACK
IAMMultiMediaStream_GetFilter_Proxy(
287 IAMMultiMediaStream
* This
,
288 IMediaStreamFilter
** ppFilter
);
289 void __RPC_STUB
IAMMultiMediaStream_GetFilter_Stub(
290 struct IRpcStubBuffer
* This
,
291 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
292 PRPC_MESSAGE pRpcMessage
,
293 DWORD
* pdwStubPhase
);
294 HRESULT CALLBACK
IAMMultiMediaStream_AddMediaStream_Proxy(
295 IAMMultiMediaStream
* This
,
296 IUnknown
* pStreamObject
,
297 const MSPID
* PurposeId
,
299 IMediaStream
** ppNewStream
);
300 void __RPC_STUB
IAMMultiMediaStream_AddMediaStream_Stub(
301 struct IRpcStubBuffer
* This
,
302 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
303 PRPC_MESSAGE pRpcMessage
,
304 DWORD
* pdwStubPhase
);
305 HRESULT CALLBACK
IAMMultiMediaStream_OpenFile_Proxy(
306 IAMMultiMediaStream
* This
,
309 void __RPC_STUB
IAMMultiMediaStream_OpenFile_Stub(
310 struct IRpcStubBuffer
* This
,
311 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
312 PRPC_MESSAGE pRpcMessage
,
313 DWORD
* pdwStubPhase
);
314 HRESULT CALLBACK
IAMMultiMediaStream_OpenMoniker_Proxy(
315 IAMMultiMediaStream
* This
,
319 void __RPC_STUB
IAMMultiMediaStream_OpenMoniker_Stub(
320 struct IRpcStubBuffer
* This
,
321 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
322 PRPC_MESSAGE pRpcMessage
,
323 DWORD
* pdwStubPhase
);
324 HRESULT CALLBACK
IAMMultiMediaStream_Render_Proxy(
325 IAMMultiMediaStream
* This
,
327 void __RPC_STUB
IAMMultiMediaStream_Render_Stub(
328 struct IRpcStubBuffer
* This
,
329 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
330 PRPC_MESSAGE pRpcMessage
,
331 DWORD
* pdwStubPhase
);
333 #endif /* __IAMMultiMediaStream_INTERFACE_DEFINED__ */
335 /*****************************************************************************
336 * IAMMediaStream interface
338 #ifndef __IAMMediaStream_INTERFACE_DEFINED__
339 #define __IAMMediaStream_INTERFACE_DEFINED__
341 DEFINE_GUID(IID_IAMMediaStream
, 0xbebe595d, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
342 #if defined(__cplusplus) && !defined(CINTERFACE)
343 struct IAMMediaStream
: public IMediaStream
345 virtual HRESULT STDMETHODCALLTYPE
Initialize(
346 IUnknown
* pSourceObject
,
349 const STREAM_TYPE StreamType
) = 0;
351 virtual HRESULT STDMETHODCALLTYPE
SetState(
352 FILTER_STATE State
) = 0;
354 virtual HRESULT STDMETHODCALLTYPE
JoinAMMultiMediaStream(
355 IAMMultiMediaStream
* pAMMultiMediaStream
) = 0;
357 virtual HRESULT STDMETHODCALLTYPE
JoinFilter(
358 IMediaStreamFilter
* pMediaStreamFilter
) = 0;
360 virtual HRESULT STDMETHODCALLTYPE
JoinFilterGraph(
361 IFilterGraph
* pFilterGraph
) = 0;
365 typedef struct IAMMediaStreamVtbl IAMMediaStreamVtbl
;
366 struct IAMMediaStream
{
367 const IAMMediaStreamVtbl
* lpVtbl
;
369 struct IAMMediaStreamVtbl
{
370 ICOM_MSVTABLE_COMPAT_FIELDS
372 /*** IUnknown methods ***/
373 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
374 IAMMediaStream
* This
,
378 ULONG (STDMETHODCALLTYPE
*AddRef
)(
379 IAMMediaStream
* This
);
381 ULONG (STDMETHODCALLTYPE
*Release
)(
382 IAMMediaStream
* This
);
384 /*** IMediaStream methods ***/
385 HRESULT (STDMETHODCALLTYPE
*GetMultiMediaStream
)(
386 IAMMediaStream
* This
,
387 IMultiMediaStream
** ppMultiMediaStream
);
389 HRESULT (STDMETHODCALLTYPE
*GetInformation
)(
390 IAMMediaStream
* This
,
394 HRESULT (STDMETHODCALLTYPE
*SetSameFormat
)(
395 IAMMediaStream
* This
,
396 IMediaStream
* pStreamThatHasDesiredFormat
,
399 HRESULT (STDMETHODCALLTYPE
*AllocateSample
)(
400 IAMMediaStream
* This
,
402 IStreamSample
** ppSample
);
404 HRESULT (STDMETHODCALLTYPE
*CreateSharedSample
)(
405 IAMMediaStream
* This
,
406 IStreamSample
* pExistingSample
,
408 IStreamSample
** ppNewSample
);
410 HRESULT (STDMETHODCALLTYPE
*SendEndOfStream
)(
411 IAMMediaStream
* This
,
414 /*** IAMMediaStream methods ***/
415 HRESULT (STDMETHODCALLTYPE
*Initialize
)(
416 IAMMediaStream
* This
,
417 IUnknown
* pSourceObject
,
420 const STREAM_TYPE StreamType
);
422 HRESULT (STDMETHODCALLTYPE
*SetState
)(
423 IAMMediaStream
* This
,
426 HRESULT (STDMETHODCALLTYPE
*JoinAMMultiMediaStream
)(
427 IAMMediaStream
* This
,
428 IAMMultiMediaStream
* pAMMultiMediaStream
);
430 HRESULT (STDMETHODCALLTYPE
*JoinFilter
)(
431 IAMMediaStream
* This
,
432 IMediaStreamFilter
* pMediaStreamFilter
);
434 HRESULT (STDMETHODCALLTYPE
*JoinFilterGraph
)(
435 IAMMediaStream
* This
,
436 IFilterGraph
* pFilterGraph
);
440 /*** IUnknown methods ***/
441 #define IAMMediaStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
442 #define IAMMediaStream_AddRef(p) (p)->lpVtbl->AddRef(p)
443 #define IAMMediaStream_Release(p) (p)->lpVtbl->Release(p)
444 /*** IMediaStream methods ***/
445 #define IAMMediaStream_GetMultiMediaStream(p,a) (p)->lpVtbl->GetMultiMediaStream(p,a)
446 #define IAMMediaStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
447 #define IAMMediaStream_SetSameFormat(p,a,b) (p)->lpVtbl->SetSameFormat(p,a,b)
448 #define IAMMediaStream_AllocateSample(p,a,b) (p)->lpVtbl->AllocateSample(p,a,b)
449 #define IAMMediaStream_CreateSharedSample(p,a,b,c) (p)->lpVtbl->CreateSharedSample(p,a,b,c)
450 #define IAMMediaStream_SendEndOfStream(p,a) (p)->lpVtbl->SendEndOfStream(p,a)
451 /*** IAMMediaStream methods ***/
452 #define IAMMediaStream_Initialize(p,a,b,c,d) (p)->lpVtbl->Initialize(p,a,b,c,d)
453 #define IAMMediaStream_SetState(p,a) (p)->lpVtbl->SetState(p,a)
454 #define IAMMediaStream_JoinAMMultiMediaStream(p,a) (p)->lpVtbl->JoinAMMultiMediaStream(p,a)
455 #define IAMMediaStream_JoinFilter(p,a) (p)->lpVtbl->JoinFilter(p,a)
456 #define IAMMediaStream_JoinFilterGraph(p,a) (p)->lpVtbl->JoinFilterGraph(p,a)
460 #define IAMMediaStream_METHODS \
461 ICOM_MSVTABLE_COMPAT_FIELDS \
462 /*** IUnknown methods ***/ \
463 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
464 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
465 STDMETHOD_(ULONG,Release)(THIS) PURE; \
466 /*** IMediaStream methods ***/ \
467 STDMETHOD_(HRESULT,GetMultiMediaStream)(THIS_ IMultiMediaStream** ppMultiMediaStream) PURE; \
468 STDMETHOD_(HRESULT,GetInformation)(THIS_ MSPID* pPurposeId, STREAM_TYPE* pType) PURE; \
469 STDMETHOD_(HRESULT,SetSameFormat)(THIS_ IMediaStream* pStreamThatHasDesiredFormat, DWORD dwFlags) PURE; \
470 STDMETHOD_(HRESULT,AllocateSample)(THIS_ DWORD dwFlags, IStreamSample** ppSample) PURE; \
471 STDMETHOD_(HRESULT,CreateSharedSample)(THIS_ IStreamSample* pExistingSample, DWORD dwFlags, IStreamSample** ppNewSample) PURE; \
472 STDMETHOD_(HRESULT,SendEndOfStream)(THIS_ DWORD dwFlags) PURE; \
473 /*** IAMMediaStream methods ***/ \
474 STDMETHOD_(HRESULT,Initialize)(THIS_ IUnknown* pSourceObject, DWORD dwFlags, REFMSPID PurposeId, const STREAM_TYPE StreamType) PURE; \
475 STDMETHOD_(HRESULT,SetState)(THIS_ FILTER_STATE State) PURE; \
476 STDMETHOD_(HRESULT,JoinAMMultiMediaStream)(THIS_ IAMMultiMediaStream* pAMMultiMediaStream) PURE; \
477 STDMETHOD_(HRESULT,JoinFilter)(THIS_ IMediaStreamFilter* pMediaStreamFilter) PURE; \
478 STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pFilterGraph) PURE;
480 HRESULT CALLBACK
IAMMediaStream_Initialize_Proxy(
481 IAMMediaStream
* This
,
482 IUnknown
* pSourceObject
,
485 const STREAM_TYPE StreamType
);
486 void __RPC_STUB
IAMMediaStream_Initialize_Stub(
487 struct IRpcStubBuffer
* This
,
488 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
489 PRPC_MESSAGE pRpcMessage
,
490 DWORD
* pdwStubPhase
);
491 HRESULT CALLBACK
IAMMediaStream_SetState_Proxy(
492 IAMMediaStream
* This
,
494 void __RPC_STUB
IAMMediaStream_SetState_Stub(
495 struct IRpcStubBuffer
* This
,
496 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
497 PRPC_MESSAGE pRpcMessage
,
498 DWORD
* pdwStubPhase
);
499 HRESULT CALLBACK
IAMMediaStream_JoinAMMultiMediaStream_Proxy(
500 IAMMediaStream
* This
,
501 IAMMultiMediaStream
* pAMMultiMediaStream
);
502 void __RPC_STUB
IAMMediaStream_JoinAMMultiMediaStream_Stub(
503 struct IRpcStubBuffer
* This
,
504 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
505 PRPC_MESSAGE pRpcMessage
,
506 DWORD
* pdwStubPhase
);
507 HRESULT CALLBACK
IAMMediaStream_JoinFilter_Proxy(
508 IAMMediaStream
* This
,
509 IMediaStreamFilter
* pMediaStreamFilter
);
510 void __RPC_STUB
IAMMediaStream_JoinFilter_Stub(
511 struct IRpcStubBuffer
* This
,
512 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
513 PRPC_MESSAGE pRpcMessage
,
514 DWORD
* pdwStubPhase
);
515 HRESULT CALLBACK
IAMMediaStream_JoinFilterGraph_Proxy(
516 IAMMediaStream
* This
,
517 IFilterGraph
* pFilterGraph
);
518 void __RPC_STUB
IAMMediaStream_JoinFilterGraph_Stub(
519 struct IRpcStubBuffer
* This
,
520 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
521 PRPC_MESSAGE pRpcMessage
,
522 DWORD
* pdwStubPhase
);
524 #endif /* __IAMMediaStream_INTERFACE_DEFINED__ */
526 /*****************************************************************************
527 * IMediaStreamFilter interface
529 #ifndef __IMediaStreamFilter_INTERFACE_DEFINED__
530 #define __IMediaStreamFilter_INTERFACE_DEFINED__
532 DEFINE_GUID(IID_IMediaStreamFilter
, 0xbebe595e, 0x9a6f, 0x11d0, 0x8f,0xde, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
533 #if defined(__cplusplus) && !defined(CINTERFACE)
534 struct IMediaStreamFilter
: public IBaseFilter
536 virtual HRESULT STDMETHODCALLTYPE
AddMediaStream(
537 IAMMediaStream
* pAMMediaStream
) = 0;
539 virtual HRESULT STDMETHODCALLTYPE
GetMediaStream(
541 IMediaStream
** ppMediaStream
) = 0;
543 virtual HRESULT STDMETHODCALLTYPE
EnumMediaStreams(
545 IMediaStream
** ppMediaStream
) = 0;
547 virtual HRESULT STDMETHODCALLTYPE
SupportSeeking(
550 virtual HRESULT STDMETHODCALLTYPE
ReferenceTimeToStreamTime(
551 REFERENCE_TIME
* pTime
) = 0;
553 virtual HRESULT STDMETHODCALLTYPE
GetCurrentStreamTime(
554 REFERENCE_TIME
* pCurrentStreamTime
) = 0;
556 virtual HRESULT STDMETHODCALLTYPE
WaitUntil(
557 REFERENCE_TIME WaitStreamTime
) = 0;
559 virtual HRESULT STDMETHODCALLTYPE
Flush(
560 BOOL bCancelEOS
) = 0;
562 virtual HRESULT STDMETHODCALLTYPE
EndOfStream(
567 typedef struct IMediaStreamFilterVtbl IMediaStreamFilterVtbl
;
568 struct IMediaStreamFilter
{
569 const IMediaStreamFilterVtbl
* lpVtbl
;
571 struct IMediaStreamFilterVtbl
{
572 ICOM_MSVTABLE_COMPAT_FIELDS
574 /*** IUnknown methods ***/
575 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
576 IMediaStreamFilter
* This
,
580 ULONG (STDMETHODCALLTYPE
*AddRef
)(
581 IMediaStreamFilter
* This
);
583 ULONG (STDMETHODCALLTYPE
*Release
)(
584 IMediaStreamFilter
* This
);
586 /*** IPersist methods ***/
587 HRESULT (STDMETHODCALLTYPE
*GetClassID
)(
588 IMediaStreamFilter
* This
,
591 /*** IMediaFilter methods ***/
592 HRESULT (STDMETHODCALLTYPE
*Stop
)(
593 IMediaStreamFilter
* This
);
595 HRESULT (STDMETHODCALLTYPE
*Pause
)(
596 IMediaStreamFilter
* This
);
598 HRESULT (STDMETHODCALLTYPE
*Run
)(
599 IMediaStreamFilter
* This
,
600 REFERENCE_TIME tStart
);
602 HRESULT (STDMETHODCALLTYPE
*GetState
)(
603 IMediaStreamFilter
* This
,
604 DWORD dwMilliSecsTimeout
,
605 FILTER_STATE
* State
);
607 HRESULT (STDMETHODCALLTYPE
*SetSyncSource
)(
608 IMediaStreamFilter
* This
,
609 IReferenceClock
* pClock
);
611 HRESULT (STDMETHODCALLTYPE
*GetSyncSource
)(
612 IMediaStreamFilter
* This
,
613 IReferenceClock
** pClock
);
615 /*** IBaseFilter methods ***/
616 HRESULT (STDMETHODCALLTYPE
*EnumPins
)(
617 IMediaStreamFilter
* This
,
620 HRESULT (STDMETHODCALLTYPE
*FindPin
)(
621 IMediaStreamFilter
* This
,
625 HRESULT (STDMETHODCALLTYPE
*QueryFilterInfo
)(
626 IMediaStreamFilter
* This
,
629 HRESULT (STDMETHODCALLTYPE
*JoinFilterGraph
)(
630 IMediaStreamFilter
* This
,
631 IFilterGraph
* pGraph
,
634 HRESULT (STDMETHODCALLTYPE
*QueryVendorInfo
)(
635 IMediaStreamFilter
* This
,
636 LPWSTR
* pVendorInfo
);
638 /*** IMediaStreamFilter methods ***/
639 HRESULT (STDMETHODCALLTYPE
*AddMediaStream
)(
640 IMediaStreamFilter
* This
,
641 IAMMediaStream
* pAMMediaStream
);
643 HRESULT (STDMETHODCALLTYPE
*GetMediaStream
)(
644 IMediaStreamFilter
* This
,
646 IMediaStream
** ppMediaStream
);
648 HRESULT (STDMETHODCALLTYPE
*EnumMediaStreams
)(
649 IMediaStreamFilter
* This
,
651 IMediaStream
** ppMediaStream
);
653 HRESULT (STDMETHODCALLTYPE
*SupportSeeking
)(
654 IMediaStreamFilter
* This
,
657 HRESULT (STDMETHODCALLTYPE
*ReferenceTimeToStreamTime
)(
658 IMediaStreamFilter
* This
,
659 REFERENCE_TIME
* pTime
);
661 HRESULT (STDMETHODCALLTYPE
*GetCurrentStreamTime
)(
662 IMediaStreamFilter
* This
,
663 REFERENCE_TIME
* pCurrentStreamTime
);
665 HRESULT (STDMETHODCALLTYPE
*WaitUntil
)(
666 IMediaStreamFilter
* This
,
667 REFERENCE_TIME WaitStreamTime
);
669 HRESULT (STDMETHODCALLTYPE
*Flush
)(
670 IMediaStreamFilter
* This
,
673 HRESULT (STDMETHODCALLTYPE
*EndOfStream
)(
674 IMediaStreamFilter
* This
);
678 /*** IUnknown methods ***/
679 #define IMediaStreamFilter_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
680 #define IMediaStreamFilter_AddRef(p) (p)->lpVtbl->AddRef(p)
681 #define IMediaStreamFilter_Release(p) (p)->lpVtbl->Release(p)
682 /*** IPersist methods ***/
683 #define IMediaStreamFilter_GetClassID(p,a) (p)->lpVtbl->GetClassID(p,a)
684 /*** IMediaFilter methods ***/
685 #define IMediaStreamFilter_Stop(p) (p)->lpVtbl->Stop(p)
686 #define IMediaStreamFilter_Pause(p) (p)->lpVtbl->Pause(p)
687 #define IMediaStreamFilter_Run(p,a) (p)->lpVtbl->Run(p,a)
688 #define IMediaStreamFilter_GetState(p,a,b) (p)->lpVtbl->GetState(p,a,b)
689 #define IMediaStreamFilter_SetSyncSource(p,a) (p)->lpVtbl->SetSyncSource(p,a)
690 #define IMediaStreamFilter_GetSyncSource(p,a) (p)->lpVtbl->GetSyncSource(p,a)
691 /*** IBaseFilter methods ***/
692 #define IMediaStreamFilter_EnumPins(p,a) (p)->lpVtbl->EnumPins(p,a)
693 #define IMediaStreamFilter_FindPin(p,a,b) (p)->lpVtbl->FindPin(p,a,b)
694 #define IMediaStreamFilter_QueryFilterInfo(p,a) (p)->lpVtbl->QueryFilterInfo(p,a)
695 #define IMediaStreamFilter_JoinFilterGraph(p,a,b) (p)->lpVtbl->JoinFilterGraph(p,a,b)
696 #define IMediaStreamFilter_QueryVendorInfo(p,a) (p)->lpVtbl->QueryVendorInfo(p,a)
697 /*** IMediaStreamFilter methods ***/
698 #define IMediaStreamFilter_AddMediaStream(p,a) (p)->lpVtbl->AddMediaStream(p,a)
699 #define IMediaStreamFilter_GetMediaStream(p,a,b) (p)->lpVtbl->GetMediaStream(p,a,b)
700 #define IMediaStreamFilter_EnumMediaStreams(p,a,b) (p)->lpVtbl->EnumMediaStreams(p,a,b)
701 #define IMediaStreamFilter_SupportSeeking(p,a) (p)->lpVtbl->SupportSeeking(p,a)
702 #define IMediaStreamFilter_ReferenceTimeToStreamTime(p,a) (p)->lpVtbl->ReferenceTimeToStreamTime(p,a)
703 #define IMediaStreamFilter_GetCurrentStreamTime(p,a) (p)->lpVtbl->GetCurrentStreamTime(p,a)
704 #define IMediaStreamFilter_WaitUntil(p,a) (p)->lpVtbl->WaitUntil(p,a)
705 #define IMediaStreamFilter_Flush(p,a) (p)->lpVtbl->Flush(p,a)
706 #define IMediaStreamFilter_EndOfStream(p) (p)->lpVtbl->EndOfStream(p)
710 #define IMediaStreamFilter_METHODS \
711 ICOM_MSVTABLE_COMPAT_FIELDS \
712 /*** IUnknown methods ***/ \
713 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
714 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
715 STDMETHOD_(ULONG,Release)(THIS) PURE; \
716 /*** IPersist methods ***/ \
717 STDMETHOD_(HRESULT,GetClassID)(THIS_ CLSID* pClassID) PURE; \
718 /*** IMediaFilter methods ***/ \
719 STDMETHOD_(HRESULT,Stop)(THIS) PURE; \
720 STDMETHOD_(HRESULT,Pause)(THIS) PURE; \
721 STDMETHOD_(HRESULT,Run)(THIS_ REFERENCE_TIME tStart) PURE; \
722 STDMETHOD_(HRESULT,GetState)(THIS_ DWORD dwMilliSecsTimeout, FILTER_STATE* State) PURE; \
723 STDMETHOD_(HRESULT,SetSyncSource)(THIS_ IReferenceClock* pClock) PURE; \
724 STDMETHOD_(HRESULT,GetSyncSource)(THIS_ IReferenceClock** pClock) PURE; \
725 /*** IBaseFilter methods ***/ \
726 STDMETHOD_(HRESULT,EnumPins)(THIS_ IEnumPins** ppEnum) PURE; \
727 STDMETHOD_(HRESULT,FindPin)(THIS_ LPCWSTR Id, IPin** ppPin) PURE; \
728 STDMETHOD_(HRESULT,QueryFilterInfo)(THIS_ FILTER_INFO* pInfo) PURE; \
729 STDMETHOD_(HRESULT,JoinFilterGraph)(THIS_ IFilterGraph* pGraph, LPCWSTR pName) PURE; \
730 STDMETHOD_(HRESULT,QueryVendorInfo)(THIS_ LPWSTR* pVendorInfo) PURE; \
731 /*** IMediaStreamFilter methods ***/ \
732 STDMETHOD_(HRESULT,AddMediaStream)(THIS_ IAMMediaStream* pAMMediaStream) PURE; \
733 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ REFMSPID idPurpose, IMediaStream** ppMediaStream) PURE; \
734 STDMETHOD_(HRESULT,EnumMediaStreams)(THIS_ long Index, IMediaStream** ppMediaStream) PURE; \
735 STDMETHOD_(HRESULT,SupportSeeking)(THIS_ BOOL bRenderer) PURE; \
736 STDMETHOD_(HRESULT,ReferenceTimeToStreamTime)(THIS_ REFERENCE_TIME* pTime) PURE; \
737 STDMETHOD_(HRESULT,GetCurrentStreamTime)(THIS_ REFERENCE_TIME* pCurrentStreamTime) PURE; \
738 STDMETHOD_(HRESULT,WaitUntil)(THIS_ REFERENCE_TIME WaitStreamTime) PURE; \
739 STDMETHOD_(HRESULT,Flush)(THIS_ BOOL bCancelEOS) PURE; \
740 STDMETHOD_(HRESULT,EndOfStream)(THIS) PURE;
742 HRESULT CALLBACK
IMediaStreamFilter_AddMediaStream_Proxy(
743 IMediaStreamFilter
* This
,
744 IAMMediaStream
* pAMMediaStream
);
745 void __RPC_STUB
IMediaStreamFilter_AddMediaStream_Stub(
746 struct IRpcStubBuffer
* This
,
747 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
748 PRPC_MESSAGE pRpcMessage
,
749 DWORD
* pdwStubPhase
);
750 HRESULT CALLBACK
IMediaStreamFilter_GetMediaStream_Proxy(
751 IMediaStreamFilter
* This
,
753 IMediaStream
** ppMediaStream
);
754 void __RPC_STUB
IMediaStreamFilter_GetMediaStream_Stub(
755 struct IRpcStubBuffer
* This
,
756 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
757 PRPC_MESSAGE pRpcMessage
,
758 DWORD
* pdwStubPhase
);
759 HRESULT CALLBACK
IMediaStreamFilter_EnumMediaStreams_Proxy(
760 IMediaStreamFilter
* This
,
762 IMediaStream
** ppMediaStream
);
763 void __RPC_STUB
IMediaStreamFilter_EnumMediaStreams_Stub(
764 struct IRpcStubBuffer
* This
,
765 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
766 PRPC_MESSAGE pRpcMessage
,
767 DWORD
* pdwStubPhase
);
768 HRESULT CALLBACK
IMediaStreamFilter_SupportSeeking_Proxy(
769 IMediaStreamFilter
* This
,
771 void __RPC_STUB
IMediaStreamFilter_SupportSeeking_Stub(
772 struct IRpcStubBuffer
* This
,
773 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
774 PRPC_MESSAGE pRpcMessage
,
775 DWORD
* pdwStubPhase
);
776 HRESULT CALLBACK
IMediaStreamFilter_ReferenceTimeToStreamTime_Proxy(
777 IMediaStreamFilter
* This
,
778 REFERENCE_TIME
* pTime
);
779 void __RPC_STUB
IMediaStreamFilter_ReferenceTimeToStreamTime_Stub(
780 struct IRpcStubBuffer
* This
,
781 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
782 PRPC_MESSAGE pRpcMessage
,
783 DWORD
* pdwStubPhase
);
784 HRESULT CALLBACK
IMediaStreamFilter_GetCurrentStreamTime_Proxy(
785 IMediaStreamFilter
* This
,
786 REFERENCE_TIME
* pCurrentStreamTime
);
787 void __RPC_STUB
IMediaStreamFilter_GetCurrentStreamTime_Stub(
788 struct IRpcStubBuffer
* This
,
789 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
790 PRPC_MESSAGE pRpcMessage
,
791 DWORD
* pdwStubPhase
);
792 HRESULT CALLBACK
IMediaStreamFilter_WaitUntil_Proxy(
793 IMediaStreamFilter
* This
,
794 REFERENCE_TIME WaitStreamTime
);
795 void __RPC_STUB
IMediaStreamFilter_WaitUntil_Stub(
796 struct IRpcStubBuffer
* This
,
797 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
798 PRPC_MESSAGE pRpcMessage
,
799 DWORD
* pdwStubPhase
);
800 HRESULT CALLBACK
IMediaStreamFilter_Flush_Proxy(
801 IMediaStreamFilter
* This
,
803 void __RPC_STUB
IMediaStreamFilter_Flush_Stub(
804 struct IRpcStubBuffer
* This
,
805 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
806 PRPC_MESSAGE pRpcMessage
,
807 DWORD
* pdwStubPhase
);
808 HRESULT CALLBACK
IMediaStreamFilter_EndOfStream_Proxy(
809 IMediaStreamFilter
* This
);
810 void __RPC_STUB
IMediaStreamFilter_EndOfStream_Stub(
811 struct IRpcStubBuffer
* This
,
812 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
813 PRPC_MESSAGE pRpcMessage
,
814 DWORD
* pdwStubPhase
);
816 #endif /* __IMediaStreamFilter_INTERFACE_DEFINED__ */
818 #ifndef __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
819 #define __IDirectDrawMediaSampleAllocator_FWD_DEFINED__
820 typedef struct IDirectDrawMediaSampleAllocator IDirectDrawMediaSampleAllocator
;
823 /*****************************************************************************
824 * IDirectDrawMediaSampleAllocator interface
826 #ifndef __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
827 #define __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__
829 DEFINE_GUID(IID_IDirectDrawMediaSampleAllocator
, 0xab6b4afc, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
830 #if defined(__cplusplus) && !defined(CINTERFACE)
831 struct IDirectDrawMediaSampleAllocator
: public IUnknown
833 virtual HRESULT STDMETHODCALLTYPE
GetDirectDraw(
834 IDirectDraw
** ppDirectDraw
) = 0;
838 typedef struct IDirectDrawMediaSampleAllocatorVtbl IDirectDrawMediaSampleAllocatorVtbl
;
839 struct IDirectDrawMediaSampleAllocator
{
840 const IDirectDrawMediaSampleAllocatorVtbl
* lpVtbl
;
842 struct IDirectDrawMediaSampleAllocatorVtbl
{
843 ICOM_MSVTABLE_COMPAT_FIELDS
845 /*** IUnknown methods ***/
846 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
847 IDirectDrawMediaSampleAllocator
* This
,
851 ULONG (STDMETHODCALLTYPE
*AddRef
)(
852 IDirectDrawMediaSampleAllocator
* This
);
854 ULONG (STDMETHODCALLTYPE
*Release
)(
855 IDirectDrawMediaSampleAllocator
* This
);
857 /*** IDirectDrawMediaSampleAllocator methods ***/
858 HRESULT (STDMETHODCALLTYPE
*GetDirectDraw
)(
859 IDirectDrawMediaSampleAllocator
* This
,
860 IDirectDraw
** ppDirectDraw
);
864 /*** IUnknown methods ***/
865 #define IDirectDrawMediaSampleAllocator_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
866 #define IDirectDrawMediaSampleAllocator_AddRef(p) (p)->lpVtbl->AddRef(p)
867 #define IDirectDrawMediaSampleAllocator_Release(p) (p)->lpVtbl->Release(p)
868 /*** IDirectDrawMediaSampleAllocator methods ***/
869 #define IDirectDrawMediaSampleAllocator_GetDirectDraw(p,a) (p)->lpVtbl->GetDirectDraw(p,a)
873 #define IDirectDrawMediaSampleAllocator_METHODS \
874 ICOM_MSVTABLE_COMPAT_FIELDS \
875 /*** IUnknown methods ***/ \
876 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
877 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
878 STDMETHOD_(ULONG,Release)(THIS) PURE; \
879 /*** IDirectDrawMediaSampleAllocator methods ***/ \
880 STDMETHOD_(HRESULT,GetDirectDraw)(THIS_ IDirectDraw** ppDirectDraw) PURE;
882 HRESULT CALLBACK
IDirectDrawMediaSampleAllocator_GetDirectDraw_Proxy(
883 IDirectDrawMediaSampleAllocator
* This
,
884 IDirectDraw
** ppDirectDraw
);
885 void __RPC_STUB
IDirectDrawMediaSampleAllocator_GetDirectDraw_Stub(
886 struct IRpcStubBuffer
* This
,
887 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
888 PRPC_MESSAGE pRpcMessage
,
889 DWORD
* pdwStubPhase
);
891 #endif /* __IDirectDrawMediaSampleAllocator_INTERFACE_DEFINED__ */
893 #ifndef __IDirectDrawMediaSample_FWD_DEFINED__
894 #define __IDirectDrawMediaSample_FWD_DEFINED__
895 typedef struct IDirectDrawMediaSample IDirectDrawMediaSample
;
898 /*****************************************************************************
899 * IDirectDrawMediaSample interface
901 #ifndef __IDirectDrawMediaSample_INTERFACE_DEFINED__
902 #define __IDirectDrawMediaSample_INTERFACE_DEFINED__
904 DEFINE_GUID(IID_IDirectDrawMediaSample
, 0xab6b4afe, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
905 #if defined(__cplusplus) && !defined(CINTERFACE)
906 struct IDirectDrawMediaSample
: public IUnknown
908 virtual HRESULT STDMETHODCALLTYPE
GetSurfaceAndReleaseLock(
909 IDirectDrawSurface
** ppDirectDrawSurface
,
912 virtual HRESULT STDMETHODCALLTYPE
LockMediaSamplePointer(
917 typedef struct IDirectDrawMediaSampleVtbl IDirectDrawMediaSampleVtbl
;
918 struct IDirectDrawMediaSample
{
919 const IDirectDrawMediaSampleVtbl
* lpVtbl
;
921 struct IDirectDrawMediaSampleVtbl
{
922 ICOM_MSVTABLE_COMPAT_FIELDS
924 /*** IUnknown methods ***/
925 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
926 IDirectDrawMediaSample
* This
,
930 ULONG (STDMETHODCALLTYPE
*AddRef
)(
931 IDirectDrawMediaSample
* This
);
933 ULONG (STDMETHODCALLTYPE
*Release
)(
934 IDirectDrawMediaSample
* This
);
936 /*** IDirectDrawMediaSample methods ***/
937 HRESULT (STDMETHODCALLTYPE
*GetSurfaceAndReleaseLock
)(
938 IDirectDrawMediaSample
* This
,
939 IDirectDrawSurface
** ppDirectDrawSurface
,
942 HRESULT (STDMETHODCALLTYPE
*LockMediaSamplePointer
)(
943 IDirectDrawMediaSample
* This
);
947 /*** IUnknown methods ***/
948 #define IDirectDrawMediaSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
949 #define IDirectDrawMediaSample_AddRef(p) (p)->lpVtbl->AddRef(p)
950 #define IDirectDrawMediaSample_Release(p) (p)->lpVtbl->Release(p)
951 /*** IDirectDrawMediaSample methods ***/
952 #define IDirectDrawMediaSample_GetSurfaceAndReleaseLock(p,a,b) (p)->lpVtbl->GetSurfaceAndReleaseLock(p,a,b)
953 #define IDirectDrawMediaSample_LockMediaSamplePointer(p) (p)->lpVtbl->LockMediaSamplePointer(p)
957 #define IDirectDrawMediaSample_METHODS \
958 ICOM_MSVTABLE_COMPAT_FIELDS \
959 /*** IUnknown methods ***/ \
960 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
961 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
962 STDMETHOD_(ULONG,Release)(THIS) PURE; \
963 /*** IDirectDrawMediaSample methods ***/ \
964 STDMETHOD_(HRESULT,GetSurfaceAndReleaseLock)(THIS_ IDirectDrawSurface** ppDirectDrawSurface, RECT* pRect) PURE; \
965 STDMETHOD_(HRESULT,LockMediaSamplePointer)(THIS) PURE;
967 HRESULT CALLBACK
IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Proxy(
968 IDirectDrawMediaSample
* This
,
969 IDirectDrawSurface
** ppDirectDrawSurface
,
971 void __RPC_STUB
IDirectDrawMediaSample_GetSurfaceAndReleaseLock_Stub(
972 struct IRpcStubBuffer
* This
,
973 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
974 PRPC_MESSAGE pRpcMessage
,
975 DWORD
* pdwStubPhase
);
976 HRESULT CALLBACK
IDirectDrawMediaSample_LockMediaSamplePointer_Proxy(
977 IDirectDrawMediaSample
* This
);
978 void __RPC_STUB
IDirectDrawMediaSample_LockMediaSamplePointer_Stub(
979 struct IRpcStubBuffer
* This
,
980 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
981 PRPC_MESSAGE pRpcMessage
,
982 DWORD
* pdwStubPhase
);
984 #endif /* __IDirectDrawMediaSample_INTERFACE_DEFINED__ */
986 /*****************************************************************************
987 * IAMMediaTypeStream interface
989 #ifndef __IAMMediaTypeStream_INTERFACE_DEFINED__
990 #define __IAMMediaTypeStream_INTERFACE_DEFINED__
992 DEFINE_GUID(IID_IAMMediaTypeStream
, 0xab6b4afa, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
993 #if defined(__cplusplus) && !defined(CINTERFACE)
994 struct IAMMediaTypeStream
: public IMediaStream
996 virtual HRESULT STDMETHODCALLTYPE
GetFormat(
997 AM_MEDIA_TYPE
* pMediaType
,
1000 virtual HRESULT STDMETHODCALLTYPE
SetFormat(
1001 AM_MEDIA_TYPE
* pMediaType
,
1004 virtual HRESULT STDMETHODCALLTYPE
CreateSample(
1008 IUnknown
* pUnkOuter
,
1009 IAMMediaTypeSample
** ppAMMediaTypeSample
) = 0;
1011 virtual HRESULT STDMETHODCALLTYPE
GetStreamAllocatorRequirements(
1012 ALLOCATOR_PROPERTIES
* pProps
) = 0;
1014 virtual HRESULT STDMETHODCALLTYPE
SetStreamAllocatorRequirements(
1015 ALLOCATOR_PROPERTIES
* pProps
) = 0;
1019 typedef struct IAMMediaTypeStreamVtbl IAMMediaTypeStreamVtbl
;
1020 struct IAMMediaTypeStream
{
1021 const IAMMediaTypeStreamVtbl
* lpVtbl
;
1023 struct IAMMediaTypeStreamVtbl
{
1024 ICOM_MSVTABLE_COMPAT_FIELDS
1026 /*** IUnknown methods ***/
1027 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1028 IAMMediaTypeStream
* This
,
1032 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1033 IAMMediaTypeStream
* This
);
1035 ULONG (STDMETHODCALLTYPE
*Release
)(
1036 IAMMediaTypeStream
* This
);
1038 /*** IMediaStream methods ***/
1039 HRESULT (STDMETHODCALLTYPE
*GetMultiMediaStream
)(
1040 IAMMediaTypeStream
* This
,
1041 IMultiMediaStream
** ppMultiMediaStream
);
1043 HRESULT (STDMETHODCALLTYPE
*GetInformation
)(
1044 IAMMediaTypeStream
* This
,
1046 STREAM_TYPE
* pType
);
1048 HRESULT (STDMETHODCALLTYPE
*SetSameFormat
)(
1049 IAMMediaTypeStream
* This
,
1050 IMediaStream
* pStreamThatHasDesiredFormat
,
1053 HRESULT (STDMETHODCALLTYPE
*AllocateSample
)(
1054 IAMMediaTypeStream
* This
,
1056 IStreamSample
** ppSample
);
1058 HRESULT (STDMETHODCALLTYPE
*CreateSharedSample
)(
1059 IAMMediaTypeStream
* This
,
1060 IStreamSample
* pExistingSample
,
1062 IStreamSample
** ppNewSample
);
1064 HRESULT (STDMETHODCALLTYPE
*SendEndOfStream
)(
1065 IAMMediaTypeStream
* This
,
1068 /*** IAMMediaTypeStream methods ***/
1069 HRESULT (STDMETHODCALLTYPE
*GetFormat
)(
1070 IAMMediaTypeStream
* This
,
1071 AM_MEDIA_TYPE
* pMediaType
,
1074 HRESULT (STDMETHODCALLTYPE
*SetFormat
)(
1075 IAMMediaTypeStream
* This
,
1076 AM_MEDIA_TYPE
* pMediaType
,
1079 HRESULT (STDMETHODCALLTYPE
*CreateSample
)(
1080 IAMMediaTypeStream
* This
,
1084 IUnknown
* pUnkOuter
,
1085 IAMMediaTypeSample
** ppAMMediaTypeSample
);
1087 HRESULT (STDMETHODCALLTYPE
*GetStreamAllocatorRequirements
)(
1088 IAMMediaTypeStream
* This
,
1089 ALLOCATOR_PROPERTIES
* pProps
);
1091 HRESULT (STDMETHODCALLTYPE
*SetStreamAllocatorRequirements
)(
1092 IAMMediaTypeStream
* This
,
1093 ALLOCATOR_PROPERTIES
* pProps
);
1097 /*** IUnknown methods ***/
1098 #define IAMMediaTypeStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1099 #define IAMMediaTypeStream_AddRef(p) (p)->lpVtbl->AddRef(p)
1100 #define IAMMediaTypeStream_Release(p) (p)->lpVtbl->Release(p)
1101 /*** IMediaStream methods ***/
1102 #define IAMMediaTypeStream_GetMultiMediaStream(p,a) (p)->lpVtbl->GetMultiMediaStream(p,a)
1103 #define IAMMediaTypeStream_GetInformation(p,a,b) (p)->lpVtbl->GetInformation(p,a,b)
1104 #define IAMMediaTypeStream_SetSameFormat(p,a,b) (p)->lpVtbl->SetSameFormat(p,a,b)
1105 #define IAMMediaTypeStream_AllocateSample(p,a,b) (p)->lpVtbl->AllocateSample(p,a,b)
1106 #define IAMMediaTypeStream_CreateSharedSample(p,a,b,c) (p)->lpVtbl->CreateSharedSample(p,a,b,c)
1107 #define IAMMediaTypeStream_SendEndOfStream(p,a) (p)->lpVtbl->SendEndOfStream(p,a)
1108 /*** IAMMediaTypeStream methods ***/
1109 #define IAMMediaTypeStream_GetFormat(p,a,b) (p)->lpVtbl->GetFormat(p,a,b)
1110 #define IAMMediaTypeStream_SetFormat(p,a,b) (p)->lpVtbl->SetFormat(p,a,b)
1111 #define IAMMediaTypeStream_CreateSample(p,a,b,c,d,e) (p)->lpVtbl->CreateSample(p,a,b,c,d,e)
1112 #define IAMMediaTypeStream_GetStreamAllocatorRequirements(p,a) (p)->lpVtbl->GetStreamAllocatorRequirements(p,a)
1113 #define IAMMediaTypeStream_SetStreamAllocatorRequirements(p,a) (p)->lpVtbl->SetStreamAllocatorRequirements(p,a)
1117 #define IAMMediaTypeStream_METHODS \
1118 ICOM_MSVTABLE_COMPAT_FIELDS \
1119 /*** IUnknown methods ***/ \
1120 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1121 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1122 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1123 /*** IMediaStream methods ***/ \
1124 STDMETHOD_(HRESULT,GetMultiMediaStream)(THIS_ IMultiMediaStream** ppMultiMediaStream) PURE; \
1125 STDMETHOD_(HRESULT,GetInformation)(THIS_ MSPID* pPurposeId, STREAM_TYPE* pType) PURE; \
1126 STDMETHOD_(HRESULT,SetSameFormat)(THIS_ IMediaStream* pStreamThatHasDesiredFormat, DWORD dwFlags) PURE; \
1127 STDMETHOD_(HRESULT,AllocateSample)(THIS_ DWORD dwFlags, IStreamSample** ppSample) PURE; \
1128 STDMETHOD_(HRESULT,CreateSharedSample)(THIS_ IStreamSample* pExistingSample, DWORD dwFlags, IStreamSample** ppNewSample) PURE; \
1129 STDMETHOD_(HRESULT,SendEndOfStream)(THIS_ DWORD dwFlags) PURE; \
1130 /*** IAMMediaTypeStream methods ***/ \
1131 STDMETHOD_(HRESULT,GetFormat)(THIS_ AM_MEDIA_TYPE* pMediaType, DWORD dwFlags) PURE; \
1132 STDMETHOD_(HRESULT,SetFormat)(THIS_ AM_MEDIA_TYPE* pMediaType, DWORD dwFlags) PURE; \
1133 STDMETHOD_(HRESULT,CreateSample)(THIS_ long lSampleSize, BYTE* pbBuffer, DWORD dwFlags, IUnknown* pUnkOuter, IAMMediaTypeSample** ppAMMediaTypeSample) PURE; \
1134 STDMETHOD_(HRESULT,GetStreamAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE; \
1135 STDMETHOD_(HRESULT,SetStreamAllocatorRequirements)(THIS_ ALLOCATOR_PROPERTIES* pProps) PURE;
1137 HRESULT CALLBACK
IAMMediaTypeStream_GetFormat_Proxy(
1138 IAMMediaTypeStream
* This
,
1139 AM_MEDIA_TYPE
* pMediaType
,
1141 void __RPC_STUB
IAMMediaTypeStream_GetFormat_Stub(
1142 struct IRpcStubBuffer
* This
,
1143 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1144 PRPC_MESSAGE pRpcMessage
,
1145 DWORD
* pdwStubPhase
);
1146 HRESULT CALLBACK
IAMMediaTypeStream_SetFormat_Proxy(
1147 IAMMediaTypeStream
* This
,
1148 AM_MEDIA_TYPE
* pMediaType
,
1150 void __RPC_STUB
IAMMediaTypeStream_SetFormat_Stub(
1151 struct IRpcStubBuffer
* This
,
1152 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1153 PRPC_MESSAGE pRpcMessage
,
1154 DWORD
* pdwStubPhase
);
1155 HRESULT CALLBACK
IAMMediaTypeStream_CreateSample_Proxy(
1156 IAMMediaTypeStream
* This
,
1160 IUnknown
* pUnkOuter
,
1161 IAMMediaTypeSample
** ppAMMediaTypeSample
);
1162 void __RPC_STUB
IAMMediaTypeStream_CreateSample_Stub(
1163 struct IRpcStubBuffer
* This
,
1164 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1165 PRPC_MESSAGE pRpcMessage
,
1166 DWORD
* pdwStubPhase
);
1167 HRESULT CALLBACK
IAMMediaTypeStream_GetStreamAllocatorRequirements_Proxy(
1168 IAMMediaTypeStream
* This
,
1169 ALLOCATOR_PROPERTIES
* pProps
);
1170 void __RPC_STUB
IAMMediaTypeStream_GetStreamAllocatorRequirements_Stub(
1171 struct IRpcStubBuffer
* This
,
1172 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1173 PRPC_MESSAGE pRpcMessage
,
1174 DWORD
* pdwStubPhase
);
1175 HRESULT CALLBACK
IAMMediaTypeStream_SetStreamAllocatorRequirements_Proxy(
1176 IAMMediaTypeStream
* This
,
1177 ALLOCATOR_PROPERTIES
* pProps
);
1178 void __RPC_STUB
IAMMediaTypeStream_SetStreamAllocatorRequirements_Stub(
1179 struct IRpcStubBuffer
* This
,
1180 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1181 PRPC_MESSAGE pRpcMessage
,
1182 DWORD
* pdwStubPhase
);
1184 #endif /* __IAMMediaTypeStream_INTERFACE_DEFINED__ */
1186 /*****************************************************************************
1187 * IAMMediaTypeSample interface
1189 #ifndef __IAMMediaTypeSample_INTERFACE_DEFINED__
1190 #define __IAMMediaTypeSample_INTERFACE_DEFINED__
1192 DEFINE_GUID(IID_IAMMediaTypeSample
, 0xab6b4afb, 0xf6e4, 0x11d0, 0x90,0x0d, 0x00,0xc0,0x4f,0xd9,0x18,0x9d);
1193 #if defined(__cplusplus) && !defined(CINTERFACE)
1194 struct IAMMediaTypeSample
: public IStreamSample
1196 virtual HRESULT STDMETHODCALLTYPE
SetPointer(
1200 virtual HRESULT STDMETHODCALLTYPE
GetPointer(
1201 BYTE
** ppBuffer
) = 0;
1203 virtual long STDMETHODCALLTYPE
GetSize(
1206 virtual HRESULT STDMETHODCALLTYPE
GetTime(
1207 REFERENCE_TIME
* pTimeStart
,
1208 REFERENCE_TIME
* pTimeEnd
) = 0;
1210 virtual HRESULT STDMETHODCALLTYPE
SetTime(
1211 REFERENCE_TIME
* pTimeStart
,
1212 REFERENCE_TIME
* pTimeEnd
) = 0;
1214 virtual HRESULT STDMETHODCALLTYPE
IsSyncPoint(
1217 virtual HRESULT STDMETHODCALLTYPE
SetSyncPoint(
1218 BOOL bIsSyncPoint
) = 0;
1220 virtual HRESULT STDMETHODCALLTYPE
IsPreroll(
1223 virtual HRESULT STDMETHODCALLTYPE
SetPreroll(
1224 BOOL bIsPreroll
) = 0;
1226 virtual long STDMETHODCALLTYPE
GetActualDataLength(
1229 virtual HRESULT STDMETHODCALLTYPE
SetActualDataLength(
1232 virtual HRESULT STDMETHODCALLTYPE
GetMediaType(
1233 AM_MEDIA_TYPE
** ppMediaType
) = 0;
1235 virtual HRESULT STDMETHODCALLTYPE
SetMediaType(
1236 AM_MEDIA_TYPE
* pMediaType
) = 0;
1238 virtual HRESULT STDMETHODCALLTYPE
IsDiscontinuity(
1241 virtual HRESULT STDMETHODCALLTYPE
SetDiscontinuity(
1242 BOOL bDiscontinuity
) = 0;
1244 virtual HRESULT STDMETHODCALLTYPE
GetMediaTime(
1245 LONGLONG
* pTimeStart
,
1246 LONGLONG
* pTimeEnd
) = 0;
1248 virtual HRESULT STDMETHODCALLTYPE
SetMediaTime(
1249 LONGLONG
* pTimeStart
,
1250 LONGLONG
* pTimeEnd
) = 0;
1254 typedef struct IAMMediaTypeSampleVtbl IAMMediaTypeSampleVtbl
;
1255 struct IAMMediaTypeSample
{
1256 const IAMMediaTypeSampleVtbl
* lpVtbl
;
1258 struct IAMMediaTypeSampleVtbl
{
1259 ICOM_MSVTABLE_COMPAT_FIELDS
1261 /*** IUnknown methods ***/
1262 HRESULT (STDMETHODCALLTYPE
*QueryInterface
)(
1263 IAMMediaTypeSample
* This
,
1267 ULONG (STDMETHODCALLTYPE
*AddRef
)(
1268 IAMMediaTypeSample
* This
);
1270 ULONG (STDMETHODCALLTYPE
*Release
)(
1271 IAMMediaTypeSample
* This
);
1273 /*** IStreamSample methods ***/
1274 HRESULT (STDMETHODCALLTYPE
*GetMediaStream
)(
1275 IAMMediaTypeSample
* This
,
1276 IMediaStream
** ppMediaStream
);
1278 HRESULT (STDMETHODCALLTYPE
*GetSampleTimes
)(
1279 IAMMediaTypeSample
* This
,
1280 STREAM_TIME
* pStartTime
,
1281 STREAM_TIME
* pEndTime
,
1282 STREAM_TIME
* pCurrentTime
);
1284 HRESULT (STDMETHODCALLTYPE
*SetSampleTimes
)(
1285 IAMMediaTypeSample
* This
,
1286 const STREAM_TIME
* pStartTime
,
1287 const STREAM_TIME
* pEndTime
);
1289 HRESULT (STDMETHODCALLTYPE
*Update
)(
1290 IAMMediaTypeSample
* This
,
1296 HRESULT (STDMETHODCALLTYPE
*CompletionStatus
)(
1297 IAMMediaTypeSample
* This
,
1299 DWORD dwMilliseconds
);
1301 /*** IAMMediaTypeSample methods ***/
1302 HRESULT (STDMETHODCALLTYPE
*SetPointer
)(
1303 IAMMediaTypeSample
* This
,
1307 HRESULT (STDMETHODCALLTYPE
*GetPointer
)(
1308 IAMMediaTypeSample
* This
,
1311 long (STDMETHODCALLTYPE
*GetSize
)(
1312 IAMMediaTypeSample
* This
);
1314 HRESULT (STDMETHODCALLTYPE
*GetTime
)(
1315 IAMMediaTypeSample
* This
,
1316 REFERENCE_TIME
* pTimeStart
,
1317 REFERENCE_TIME
* pTimeEnd
);
1319 HRESULT (STDMETHODCALLTYPE
*SetTime
)(
1320 IAMMediaTypeSample
* This
,
1321 REFERENCE_TIME
* pTimeStart
,
1322 REFERENCE_TIME
* pTimeEnd
);
1324 HRESULT (STDMETHODCALLTYPE
*IsSyncPoint
)(
1325 IAMMediaTypeSample
* This
);
1327 HRESULT (STDMETHODCALLTYPE
*SetSyncPoint
)(
1328 IAMMediaTypeSample
* This
,
1331 HRESULT (STDMETHODCALLTYPE
*IsPreroll
)(
1332 IAMMediaTypeSample
* This
);
1334 HRESULT (STDMETHODCALLTYPE
*SetPreroll
)(
1335 IAMMediaTypeSample
* This
,
1338 long (STDMETHODCALLTYPE
*GetActualDataLength
)(
1339 IAMMediaTypeSample
* This
);
1341 HRESULT (STDMETHODCALLTYPE
*SetActualDataLength
)(
1342 IAMMediaTypeSample
* This
,
1345 HRESULT (STDMETHODCALLTYPE
*GetMediaType
)(
1346 IAMMediaTypeSample
* This
,
1347 AM_MEDIA_TYPE
** ppMediaType
);
1349 HRESULT (STDMETHODCALLTYPE
*SetMediaType
)(
1350 IAMMediaTypeSample
* This
,
1351 AM_MEDIA_TYPE
* pMediaType
);
1353 HRESULT (STDMETHODCALLTYPE
*IsDiscontinuity
)(
1354 IAMMediaTypeSample
* This
);
1356 HRESULT (STDMETHODCALLTYPE
*SetDiscontinuity
)(
1357 IAMMediaTypeSample
* This
,
1358 BOOL bDiscontinuity
);
1360 HRESULT (STDMETHODCALLTYPE
*GetMediaTime
)(
1361 IAMMediaTypeSample
* This
,
1362 LONGLONG
* pTimeStart
,
1363 LONGLONG
* pTimeEnd
);
1365 HRESULT (STDMETHODCALLTYPE
*SetMediaTime
)(
1366 IAMMediaTypeSample
* This
,
1367 LONGLONG
* pTimeStart
,
1368 LONGLONG
* pTimeEnd
);
1372 /*** IUnknown methods ***/
1373 #define IAMMediaTypeSample_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
1374 #define IAMMediaTypeSample_AddRef(p) (p)->lpVtbl->AddRef(p)
1375 #define IAMMediaTypeSample_Release(p) (p)->lpVtbl->Release(p)
1376 /*** IStreamSample methods ***/
1377 #define IAMMediaTypeSample_GetMediaStream(p,a) (p)->lpVtbl->GetMediaStream(p,a)
1378 #define IAMMediaTypeSample_GetSampleTimes(p,a,b,c) (p)->lpVtbl->GetSampleTimes(p,a,b,c)
1379 #define IAMMediaTypeSample_SetSampleTimes(p,a,b) (p)->lpVtbl->SetSampleTimes(p,a,b)
1380 #define IAMMediaTypeSample_Update(p,a,b,c,d) (p)->lpVtbl->Update(p,a,b,c,d)
1381 #define IAMMediaTypeSample_CompletionStatus(p,a,b) (p)->lpVtbl->CompletionStatus(p,a,b)
1382 /*** IAMMediaTypeSample methods ***/
1383 #define IAMMediaTypeSample_SetPointer(p,a,b) (p)->lpVtbl->SetPointer(p,a,b)
1384 #define IAMMediaTypeSample_GetPointer(p,a) (p)->lpVtbl->GetPointer(p,a)
1385 #define IAMMediaTypeSample_GetSize(p) (p)->lpVtbl->GetSize(p)
1386 #define IAMMediaTypeSample_GetTime(p,a,b) (p)->lpVtbl->GetTime(p,a,b)
1387 #define IAMMediaTypeSample_SetTime(p,a,b) (p)->lpVtbl->SetTime(p,a,b)
1388 #define IAMMediaTypeSample_IsSyncPoint(p) (p)->lpVtbl->IsSyncPoint(p)
1389 #define IAMMediaTypeSample_SetSyncPoint(p,a) (p)->lpVtbl->SetSyncPoint(p,a)
1390 #define IAMMediaTypeSample_IsPreroll(p) (p)->lpVtbl->IsPreroll(p)
1391 #define IAMMediaTypeSample_SetPreroll(p,a) (p)->lpVtbl->SetPreroll(p,a)
1392 #define IAMMediaTypeSample_GetActualDataLength(p) (p)->lpVtbl->GetActualDataLength(p)
1393 #define IAMMediaTypeSample_SetActualDataLength(p,a) (p)->lpVtbl->SetActualDataLength(p,a)
1394 #define IAMMediaTypeSample_GetMediaType(p,a) (p)->lpVtbl->GetMediaType(p,a)
1395 #define IAMMediaTypeSample_SetMediaType(p,a) (p)->lpVtbl->SetMediaType(p,a)
1396 #define IAMMediaTypeSample_IsDiscontinuity(p) (p)->lpVtbl->IsDiscontinuity(p)
1397 #define IAMMediaTypeSample_SetDiscontinuity(p,a) (p)->lpVtbl->SetDiscontinuity(p,a)
1398 #define IAMMediaTypeSample_GetMediaTime(p,a,b) (p)->lpVtbl->GetMediaTime(p,a,b)
1399 #define IAMMediaTypeSample_SetMediaTime(p,a,b) (p)->lpVtbl->SetMediaTime(p,a,b)
1403 #define IAMMediaTypeSample_METHODS \
1404 ICOM_MSVTABLE_COMPAT_FIELDS \
1405 /*** IUnknown methods ***/ \
1406 STDMETHOD_(HRESULT,QueryInterface)(THIS_ REFIID riid, void** ppvObject) PURE; \
1407 STDMETHOD_(ULONG,AddRef)(THIS) PURE; \
1408 STDMETHOD_(ULONG,Release)(THIS) PURE; \
1409 /*** IStreamSample methods ***/ \
1410 STDMETHOD_(HRESULT,GetMediaStream)(THIS_ IMediaStream** ppMediaStream) PURE; \
1411 STDMETHOD_(HRESULT,GetSampleTimes)(THIS_ STREAM_TIME* pStartTime, STREAM_TIME* pEndTime, STREAM_TIME* pCurrentTime) PURE; \
1412 STDMETHOD_(HRESULT,SetSampleTimes)(THIS_ const STREAM_TIME* pStartTime, const STREAM_TIME* pEndTime) PURE; \
1413 STDMETHOD_(HRESULT,Update)(THIS_ DWORD dwFlags, HANDLE hEvent, PAPCFUNC pfnAPC, DWORD dwAPCData) PURE; \
1414 STDMETHOD_(HRESULT,CompletionStatus)(THIS_ DWORD dwFlags, DWORD dwMilliseconds) PURE; \
1415 /*** IAMMediaTypeSample methods ***/ \
1416 STDMETHOD_(HRESULT,SetPointer)(THIS_ BYTE* pBuffer, long lSize) PURE; \
1417 STDMETHOD_(HRESULT,GetPointer)(THIS_ BYTE** ppBuffer) PURE; \
1418 STDMETHOD_(long,GetSize)(THIS) PURE; \
1419 STDMETHOD_(HRESULT,GetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1420 STDMETHOD_(HRESULT,SetTime)(THIS_ REFERENCE_TIME* pTimeStart, REFERENCE_TIME* pTimeEnd) PURE; \
1421 STDMETHOD_(HRESULT,IsSyncPoint)(THIS) PURE; \
1422 STDMETHOD_(HRESULT,SetSyncPoint)(THIS_ BOOL bIsSyncPoint) PURE; \
1423 STDMETHOD_(HRESULT,IsPreroll)(THIS) PURE; \
1424 STDMETHOD_(HRESULT,SetPreroll)(THIS_ BOOL bIsPreroll) PURE; \
1425 STDMETHOD_(long,GetActualDataLength)(THIS) PURE; \
1426 STDMETHOD_(HRESULT,SetActualDataLength)(THIS_ long Len) PURE; \
1427 STDMETHOD_(HRESULT,GetMediaType)(THIS_ AM_MEDIA_TYPE** ppMediaType) PURE; \
1428 STDMETHOD_(HRESULT,SetMediaType)(THIS_ AM_MEDIA_TYPE* pMediaType) PURE; \
1429 STDMETHOD_(HRESULT,IsDiscontinuity)(THIS) PURE; \
1430 STDMETHOD_(HRESULT,SetDiscontinuity)(THIS_ BOOL bDiscontinuity) PURE; \
1431 STDMETHOD_(HRESULT,GetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE; \
1432 STDMETHOD_(HRESULT,SetMediaTime)(THIS_ LONGLONG* pTimeStart, LONGLONG* pTimeEnd) PURE;
1434 HRESULT CALLBACK
IAMMediaTypeSample_SetPointer_Proxy(
1435 IAMMediaTypeSample
* This
,
1438 void __RPC_STUB
IAMMediaTypeSample_SetPointer_Stub(
1439 struct IRpcStubBuffer
* This
,
1440 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1441 PRPC_MESSAGE pRpcMessage
,
1442 DWORD
* pdwStubPhase
);
1443 HRESULT CALLBACK
IAMMediaTypeSample_GetPointer_Proxy(
1444 IAMMediaTypeSample
* This
,
1446 void __RPC_STUB
IAMMediaTypeSample_GetPointer_Stub(
1447 struct IRpcStubBuffer
* This
,
1448 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1449 PRPC_MESSAGE pRpcMessage
,
1450 DWORD
* pdwStubPhase
);
1451 long CALLBACK
IAMMediaTypeSample_GetSize_Proxy(
1452 IAMMediaTypeSample
* This
);
1453 void __RPC_STUB
IAMMediaTypeSample_GetSize_Stub(
1454 struct IRpcStubBuffer
* This
,
1455 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1456 PRPC_MESSAGE pRpcMessage
,
1457 DWORD
* pdwStubPhase
);
1458 HRESULT CALLBACK
IAMMediaTypeSample_GetTime_Proxy(
1459 IAMMediaTypeSample
* This
,
1460 REFERENCE_TIME
* pTimeStart
,
1461 REFERENCE_TIME
* pTimeEnd
);
1462 void __RPC_STUB
IAMMediaTypeSample_GetTime_Stub(
1463 struct IRpcStubBuffer
* This
,
1464 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1465 PRPC_MESSAGE pRpcMessage
,
1466 DWORD
* pdwStubPhase
);
1467 HRESULT CALLBACK
IAMMediaTypeSample_SetTime_Proxy(
1468 IAMMediaTypeSample
* This
,
1469 REFERENCE_TIME
* pTimeStart
,
1470 REFERENCE_TIME
* pTimeEnd
);
1471 void __RPC_STUB
IAMMediaTypeSample_SetTime_Stub(
1472 struct IRpcStubBuffer
* This
,
1473 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1474 PRPC_MESSAGE pRpcMessage
,
1475 DWORD
* pdwStubPhase
);
1476 HRESULT CALLBACK
IAMMediaTypeSample_IsSyncPoint_Proxy(
1477 IAMMediaTypeSample
* This
);
1478 void __RPC_STUB
IAMMediaTypeSample_IsSyncPoint_Stub(
1479 struct IRpcStubBuffer
* This
,
1480 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1481 PRPC_MESSAGE pRpcMessage
,
1482 DWORD
* pdwStubPhase
);
1483 HRESULT CALLBACK
IAMMediaTypeSample_SetSyncPoint_Proxy(
1484 IAMMediaTypeSample
* This
,
1486 void __RPC_STUB
IAMMediaTypeSample_SetSyncPoint_Stub(
1487 struct IRpcStubBuffer
* This
,
1488 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1489 PRPC_MESSAGE pRpcMessage
,
1490 DWORD
* pdwStubPhase
);
1491 HRESULT CALLBACK
IAMMediaTypeSample_IsPreroll_Proxy(
1492 IAMMediaTypeSample
* This
);
1493 void __RPC_STUB
IAMMediaTypeSample_IsPreroll_Stub(
1494 struct IRpcStubBuffer
* This
,
1495 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1496 PRPC_MESSAGE pRpcMessage
,
1497 DWORD
* pdwStubPhase
);
1498 HRESULT CALLBACK
IAMMediaTypeSample_SetPreroll_Proxy(
1499 IAMMediaTypeSample
* This
,
1501 void __RPC_STUB
IAMMediaTypeSample_SetPreroll_Stub(
1502 struct IRpcStubBuffer
* This
,
1503 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1504 PRPC_MESSAGE pRpcMessage
,
1505 DWORD
* pdwStubPhase
);
1506 long CALLBACK
IAMMediaTypeSample_GetActualDataLength_Proxy(
1507 IAMMediaTypeSample
* This
);
1508 void __RPC_STUB
IAMMediaTypeSample_GetActualDataLength_Stub(
1509 struct IRpcStubBuffer
* This
,
1510 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1511 PRPC_MESSAGE pRpcMessage
,
1512 DWORD
* pdwStubPhase
);
1513 HRESULT CALLBACK
IAMMediaTypeSample_SetActualDataLength_Proxy(
1514 IAMMediaTypeSample
* This
,
1516 void __RPC_STUB
IAMMediaTypeSample_SetActualDataLength_Stub(
1517 struct IRpcStubBuffer
* This
,
1518 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1519 PRPC_MESSAGE pRpcMessage
,
1520 DWORD
* pdwStubPhase
);
1521 HRESULT CALLBACK
IAMMediaTypeSample_GetMediaType_Proxy(
1522 IAMMediaTypeSample
* This
,
1523 AM_MEDIA_TYPE
** ppMediaType
);
1524 void __RPC_STUB
IAMMediaTypeSample_GetMediaType_Stub(
1525 struct IRpcStubBuffer
* This
,
1526 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1527 PRPC_MESSAGE pRpcMessage
,
1528 DWORD
* pdwStubPhase
);
1529 HRESULT CALLBACK
IAMMediaTypeSample_SetMediaType_Proxy(
1530 IAMMediaTypeSample
* This
,
1531 AM_MEDIA_TYPE
* pMediaType
);
1532 void __RPC_STUB
IAMMediaTypeSample_SetMediaType_Stub(
1533 struct IRpcStubBuffer
* This
,
1534 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1535 PRPC_MESSAGE pRpcMessage
,
1536 DWORD
* pdwStubPhase
);
1537 HRESULT CALLBACK
IAMMediaTypeSample_IsDiscontinuity_Proxy(
1538 IAMMediaTypeSample
* This
);
1539 void __RPC_STUB
IAMMediaTypeSample_IsDiscontinuity_Stub(
1540 struct IRpcStubBuffer
* This
,
1541 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1542 PRPC_MESSAGE pRpcMessage
,
1543 DWORD
* pdwStubPhase
);
1544 HRESULT CALLBACK
IAMMediaTypeSample_SetDiscontinuity_Proxy(
1545 IAMMediaTypeSample
* This
,
1546 BOOL bDiscontinuity
);
1547 void __RPC_STUB
IAMMediaTypeSample_SetDiscontinuity_Stub(
1548 struct IRpcStubBuffer
* This
,
1549 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1550 PRPC_MESSAGE pRpcMessage
,
1551 DWORD
* pdwStubPhase
);
1552 HRESULT CALLBACK
IAMMediaTypeSample_GetMediaTime_Proxy(
1553 IAMMediaTypeSample
* This
,
1554 LONGLONG
* pTimeStart
,
1555 LONGLONG
* pTimeEnd
);
1556 void __RPC_STUB
IAMMediaTypeSample_GetMediaTime_Stub(
1557 struct IRpcStubBuffer
* This
,
1558 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1559 PRPC_MESSAGE pRpcMessage
,
1560 DWORD
* pdwStubPhase
);
1561 HRESULT CALLBACK
IAMMediaTypeSample_SetMediaTime_Proxy(
1562 IAMMediaTypeSample
* This
,
1563 LONGLONG
* pTimeStart
,
1564 LONGLONG
* pTimeEnd
);
1565 void __RPC_STUB
IAMMediaTypeSample_SetMediaTime_Stub(
1566 struct IRpcStubBuffer
* This
,
1567 struct IRpcChannelBuffer
* pRpcChannelBuffer
,
1568 PRPC_MESSAGE pRpcMessage
,
1569 DWORD
* pdwStubPhase
);
1571 #endif /* __IAMMediaTypeSample_INTERFACE_DEFINED__ */
1573 DEFINE_GUID(CLSID_AMMultiMediaStream
, 0x49c47ce5, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1574 DEFINE_GUID(CLSID_AMDirectDrawStream
, 0x49c47ce4, 0x9ba4, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1575 DEFINE_GUID(CLSID_AMAudioStream
, 0x8496e040, 0xaf4c, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1576 DEFINE_GUID(CLSID_AMAudioData
, 0xf2468580, 0xaf8a, 0x11d0, 0x82, 0x12, 0x00, 0xc0, 0x4f, 0xc3, 0x2c, 0x45);
1577 DEFINE_GUID(CLSID_AMMediaTypeStream
, 0xcf0f2f7c, 0xf7bf, 0x11d0, 0x90, 0x0d, 0x00, 0xc0, 0x4f, 0xd9, 0x18, 0x9d);
1581 #endif /* __WIDL_AMSTREAM_H */