1 #ifndef __WINE_STRMIF_H_
2 #define __WINE_STRMIF_H_
6 /* FIXME - far from complete. */
10 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder
;
11 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder
;
12 typedef struct IAMAudioInputMixer IAMAudioInputMixer
;
13 typedef struct IAMAudioRendererStats IAMAudioRendererStats
;
14 typedef struct IAMBufferNegotiation IAMBufferNegotiation
;
15 typedef struct IAMCameraControl IAMCameraControl
;
16 typedef struct IAMClockAdjust IAMClockAdjust
;
17 typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress
;
18 typedef struct IAMCrossbar IAMCrossbar
;
19 typedef struct IAMDeviceRemoval IAMDeviceRemoval
;
20 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator
;
21 typedef struct IAMDevMemoryControl IAMDevMemoryControl
;
22 typedef struct IAMDroppedFrames IAMDroppedFrames
;
23 typedef struct IAMExtDevice IAMExtDevice
;
24 typedef struct IAMExtTransport IAMExtTransport
;
25 typedef struct IAMFilterMiscFlags IAMFilterMiscFlags
;
26 typedef struct IAMGraphStreams IAMGraphStreams
;
27 typedef struct IAMLatency IAMLatency
;
28 typedef struct IAMOpenProgress IAMOpenProgress
;
29 typedef struct IAMOverlayFX IAMOverlayFX
;
30 typedef struct IAMovie IAMovie
;
31 typedef struct IAMovieSetup IAMovieSetup
;
32 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo
;
33 typedef struct IAMPushSource IAMPushSource
;
34 typedef struct IAMResourceControl IAMResourceControl
;
35 typedef struct IAMStreamConfig IAMStreamConfig
;
36 typedef struct IAMStreamControl IAMStreamControl
;
37 typedef struct IAMStreamSelect IAMStreamSelect
;
38 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay
;
39 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator
;
40 typedef struct IAMTimecodeReader IAMTimecodeReader
;
41 typedef struct IAMTuner IAMTuner
;
42 typedef struct IAMTunerNotification IAMTunerNotification
;
43 typedef struct IAMTVAudio IAMTVAudio
;
44 typedef struct IAMTVAudioNotification IAMTVAudioNotification
;
45 typedef struct IAMTVTuner IAMTVTuner
;
46 typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs
;
47 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs
;
48 typedef struct IAMVideoCompression IAMVideoCompression
;
49 typedef struct IAMVideoControl IAMVideoControl
;
50 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties
;
51 typedef struct IAMVideoProcAmp IAMVideoProcAmp
;
52 typedef struct IAsyncReader IAsyncReader
;
53 typedef struct IMediaFilter IMediaFilter
;
54 typedef struct IBaseFilter IBaseFilter
;
55 typedef struct IBPCSatelliteTuner IBPCSatelliteTuner
;
56 typedef struct ICaptureGraphBuilder ICaptureGraphBuilder
;
57 typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2
;
58 typedef struct IConfigAviMux IConfigAviMux
;
59 typedef struct IConfigInterleaving IConfigInterleaving
;
60 typedef struct ICreateDevEnum ICreateDevEnum
;
61 typedef struct IDDrawExclModeVideo IDDrawExclModeVideo
;
62 typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback
;
63 typedef struct IDecimateVideoImage IDecimateVideoImage
;
64 typedef struct IDistributorNotify IDistributorNotify
;
65 typedef struct IDrawVideoImage IDrawVideoImage
;
66 typedef struct IDvdCmd IDvdCmd
;
67 typedef struct IDvdControl IDvdControl
;
68 typedef struct IDvdControl2 IDvdControl2
;
69 typedef struct IDvdGraphBuilder IDvdGraphBuilder
;
70 typedef struct IDvdInfo IDvdInfo
;
71 typedef struct IDvdInfo2 IDvdInfo2
;
72 typedef struct IDvdState IDvdState
;
73 typedef struct IDVEnc IDVEnc
;
74 typedef struct IDVSplitter IDVSplitter
;
75 typedef struct IEnumFilters IEnumFilters
;
76 typedef struct IEnumMediaTypes IEnumMediaTypes
;
77 typedef struct IEnumPins IEnumPins
;
78 typedef struct IEnumRegFilters IEnumRegFilters
;
79 typedef struct IEnumStreamIdMap IEnumStreamIdMap
;
80 typedef struct IFileSinkFilter IFileSinkFilter
;
81 typedef struct IFileSinkFilter2 IFileSinkFilter2
;
82 typedef struct IFileSourceFilter IFileSourceFilter
;
83 typedef struct IFilterChain IFilterChain
;
84 typedef struct IFilterGraph IFilterGraph
;
85 typedef struct IFilterGraph2 IFilterGraph2
;
86 typedef struct IFilterMapper IFilterMapper
;
87 typedef struct IFilterMapper2 IFilterMapper2
;
88 typedef struct IFilterMapper3 IFilterMapper3
;
89 typedef struct IGraphBuilder IGraphBuilder
;
90 typedef struct IGraphConfig IGraphConfig
;
91 typedef struct IGraphConfigCallback IGraphConfigCallback
;
92 typedef struct IGraphVersion IGraphVersion
;
93 typedef struct IIPDVDec IIPDVDec
;
94 typedef struct IMediaEventSink IMediaEventSink
;
95 typedef struct IMediaPropertyBag IMediaPropertyBag
;
96 typedef struct IMediaSample IMediaSample
;
97 typedef struct IMediaSample2 IMediaSample2
;
98 typedef struct IMediaSeeking IMediaSeeking
;
99 typedef struct IMemAllocator IMemAllocator
;
100 typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp
;
101 typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp
;
102 typedef struct IMemInputPin IMemInputPin
;
103 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer
;
104 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap
;
105 typedef struct IOverlay IOverlay
;
106 typedef struct IOverlayNotify IOverlayNotify
;
107 typedef struct IOverlayNotify2 IOverlayNotify2
;
108 typedef struct IPersistMediaPropertyBag IPersistMediaPropertyBag
;
109 typedef struct IPin IPin
;
110 typedef struct IPinConnection IPinConnection
;
111 typedef struct IPinFlowControl IPinFlowControl
;
112 typedef struct IQualityControl IQualityControl
;
113 typedef struct IReferenceClock IReferenceClock
;
114 typedef struct IReferenceClock2 IReferenceClock2
;
115 typedef struct IResourceConsumer IResourceConsumer
;
116 typedef struct IResourceManager IResourceManager
;
117 typedef struct ISeekingPassThru ISeekingPassThru
;
118 typedef struct IStreamBuilder IStreamBuilder
;
119 typedef struct IVideoFrameStep IVideoFrameStep
;
121 #ifndef __WINE_REFTIME_DEFINED_
122 #define __WINE_REFTIME_DEFINED_
123 typedef double REFTIME
;
124 #endif /* __WINE_REFTIME_DEFINED_ */
126 typedef LONGLONG REFERENCE_TIME
;
127 typedef DWORD_PTR HSEMAPHORE
;
128 typedef DWORD_PTR HEVENT
;
151 BOOL bFixedSizeSamples
;
152 BOOL bTemporalCompression
;
166 } ALLOCATOR_PROPERTIES
;
170 IBaseFilter
* pFilter
;
172 WCHAR achName
[ 128 ];
177 WCHAR achName
[ 128 ];
178 IFilterGraph
* pGraph
;
183 REFERENCE_TIME tStart
;
184 REFERENCE_TIME tStop
;
190 typedef struct tagCOLORKEY
194 COLORREF LowColorValue
;
195 COLORREF HighColorValue
;
202 #define CHARS_IN_GUID 39
203 #define MAX_PIN_NAME 128
204 #define MAX_FILTER_NAME 128
209 /**************************************************************************
211 * IMediaFilter interface
215 #define ICOM_INTERFACE IMediaFilter
216 #define IMediaFilter_METHODS \
217 ICOM_METHOD (HRESULT,Stop) \
218 ICOM_METHOD (HRESULT,Pause) \
219 ICOM_METHOD1(HRESULT,Run,REFERENCE_TIME,a1) \
220 ICOM_METHOD2(HRESULT,GetState,DWORD,a1,FILTER_STATE*,a2) \
221 ICOM_METHOD1(HRESULT,SetSyncSource,IReferenceClock*,a1) \
222 ICOM_METHOD1(HRESULT,GetSyncSource,IReferenceClock**,a1)
224 #define IMediaFilter_IMETHODS \
228 ICOM_DEFINE(IMediaFilter
,IPersist
)
229 #undef ICOM_INTERFACE
231 /*** IUnknown methods ***/
232 #define IMediaFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
233 #define IMediaFilter_AddRef(p) ICOM_CALL (AddRef,p)
234 #define IMediaFilter_Release(p) ICOM_CALL (Release,p)
235 /*** IPersist methods ***/
236 #define IMediaFilter_GetClassID(p,a1) ICOM_CALL1(GetClassID,p,a1)
237 /*** IMediaFilter methods ***/
238 #define IMediaFilter_Stop(p) ICOM_CALL (Stop,p)
239 #define IMediaFilter_Pause(p) ICOM_CALL (Pause,p)
240 #define IMediaFilter_Run(p,a1) ICOM_CALL1(Run,p,a1)
241 #define IMediaFilter_GetState(p,a1,a2) ICOM_CALL2(GetState,p,a1,a2)
242 #define IMediaFilter_SetSyncSource(p,a1) ICOM_CALL1(SetSyncSource,p,a1)
243 #define IMediaFilter_GetSyncSource(p,a1) ICOM_CALL1(GetSyncSource,p,a1)
245 /**************************************************************************
247 * IBaseFilter interface
251 #define ICOM_INTERFACE IBaseFilter
252 #define IBaseFilter_METHODS \
253 ICOM_METHOD1(HRESULT,EnumPins,IEnumPins**,a1) \
254 ICOM_METHOD2(HRESULT,FindPin,LPCWSTR,a1,IPin**,a2) \
255 ICOM_METHOD1(HRESULT,QueryFilterInfo,FILTER_INFO*,a1) \
256 ICOM_METHOD2(HRESULT,JoinFilterGraph,IFilterGraph*,a1,LPCWSTR,a2) \
257 ICOM_METHOD1(HRESULT,QueryVendorInfo,LPWSTR*,a1)
259 #define IBaseFilter_IMETHODS \
260 IMediaFilter_IMETHODS \
263 ICOM_DEFINE(IBaseFilter
,IMediaFilter
)
264 #undef ICOM_INTERFACE
266 /*** IUnknown methods ***/
267 #define IBaseFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
268 #define IBaseFilter_AddRef(p) ICOM_CALL (AddRef,p)
269 #define IBaseFilter_Release(p) ICOM_CALL (Release,p)
270 /*** IPersist methods ***/
271 #define IBaseFilter_GetClassID(p,a1) ICOM_CALL1(GetClassID,p,a1)
272 /*** IMediaFilter methods ***/
273 #define IBaseFilter_Stop(p,a1) ICOM_CALL1(Stop,p,a1)
274 #define IBaseFilter_Pause(p,a1) ICOM_CALL1(Pause,p,a1)
275 #define IBaseFilter_Run(p,a1) ICOM_CALL1(Run,p,a1)
276 #define IBaseFilter_GetState(p,a1,a2) ICOM_CALL2(GetState,p,a1,a2)
277 #define IBaseFilter_SetSyncSource(p,a1) ICOM_CALL1(SetSyncSource,p,a1)
278 #define IBaseFilter_GetSyncSource(p,a1) ICOM_CALL1(GetSyncSource,p,a1)
279 /*** IBaseFilter methods ***/
280 #define IBaseFilter_EnumPins(p,a1) ICOM_CALL1(EnumPins,p,a1)
281 #define IBaseFilter_FindPin(p,a1,a2) ICOM_CALL2(FindPin,p,a1,a2)
282 #define IBaseFilter_QueryFilterInfo(p,a1) ICOM_CALL1(QueryFilterInfo,p,a1)
283 #define IBaseFilter_JoinFilterGraph(p,a1,a2) ICOM_CALL2(JoinFilterGraph,p,a1,a2)
284 #define IBaseFilter_QueryVendorInfo(p,a1) ICOM_CALL1(QueryVendorInfo,p,a1)
286 /**************************************************************************
288 * IEnumFilters interface
292 #define ICOM_INTERFACE IEnumFilters
293 #define IEnumFilters_METHODS \
294 ICOM_METHOD3(HRESULT,Next,ULONG,a1,IBaseFilter**,a2,ULONG*,a3) \
295 ICOM_METHOD1(HRESULT,Skip,ULONG,a1) \
296 ICOM_METHOD (HRESULT,Reset) \
297 ICOM_METHOD1(HRESULT,Clone,IEnumFilters**,a1)
299 #define IEnumFilters_IMETHODS \
303 ICOM_DEFINE(IEnumFilters
,IUnknown
)
304 #undef ICOM_INTERFACE
306 /*** IUnknown methods ***/
307 #define IEnumFilters_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
308 #define IEnumFilters_AddRef(p) ICOM_CALL (AddRef,p)
309 #define IEnumFilters_Release(p) ICOM_CALL (Release,p)
310 /*** IEnumFilters methods ***/
311 #define IEnumFilters_Next(p,a1,a2,a3) ICOM_CALL3(Next,p,a1,a2,a3)
312 #define IEnumFilters_Skip(p,a1) ICOM_CALL1(Skip,p,a1)
313 #define IEnumFilters_Reset(p) ICOM_CALL (Reset,p)
314 #define IEnumFilters_Clone(p,a1) ICOM_CALL1(Clone,p,a1)
316 /**************************************************************************
318 * IEnumMediaTypes interface
322 #define ICOM_INTERFACE IEnumMediaTypes
323 #define IEnumMediaTypes_METHODS \
324 ICOM_METHOD3(HRESULT,Next,ULONG,a1,AM_MEDIA_TYPE**,a2,ULONG*,a3) \
325 ICOM_METHOD1(HRESULT,Skip,ULONG,a1) \
326 ICOM_METHOD (HRESULT,Reset) \
327 ICOM_METHOD1(HRESULT,Clone,IEnumMediaTypes**,a1)
329 #define IEnumMediaTypes_IMETHODS \
331 IEnumMediaTypes_METHODS
333 ICOM_DEFINE(IEnumMediaTypes
,IUnknown
)
334 #undef ICOM_INTERFACE
336 /*** IUnknown methods ***/
337 #define IEnumMediaTypes_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
338 #define IEnumMediaTypes_AddRef(p) ICOM_CALL (AddRef,p)
339 #define IEnumMediaTypes_Release(p) ICOM_CALL (Release,p)
340 /*** IEnumMediaTypes methods ***/
341 #define IEnumMediaTypes_Next(p,a1,a2,a3) ICOM_CALL3(Next,p,a1,a2,a3)
342 #define IEnumMediaTypes_Skip(p,a1) ICOM_CALL1(Skip,p,a1)
343 #define IEnumMediaTypes_Reset(p) ICOM_CALL (Reset,p)
344 #define IEnumMediaTypes_Clone(p,a1) ICOM_CALL1(Clone,p,a1)
346 /**************************************************************************
348 * IEnumPins interface
352 #define ICOM_INTERFACE IEnumPins
353 #define IEnumPins_METHODS \
354 ICOM_METHOD3(HRESULT,Next,ULONG,a1,IPin**,a2,ULONG*,a3) \
355 ICOM_METHOD1(HRESULT,Skip,ULONG,a1) \
356 ICOM_METHOD (HRESULT,Reset) \
357 ICOM_METHOD1(HRESULT,Clone,IEnumPins**,a1)
359 #define IEnumPins_IMETHODS \
363 ICOM_DEFINE(IEnumPins
,IUnknown
)
364 #undef ICOM_INTERFACE
366 /*** IUnknown methods ***/
367 #define IEnumPins_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
368 #define IEnumPins_AddRef(p) ICOM_CALL (AddRef,p)
369 #define IEnumPins_Release(p) ICOM_CALL (Release,p)
370 /*** IEnumPins methods ***/
371 #define IEnumPins_Next(p,a1,a2,a3) ICOM_CALL3(Next,p,a1,a2,a3)
372 #define IEnumPins_Skip(p,a1) ICOM_CALL1(Skip,p,a1)
373 #define IEnumPins_Reset(p) ICOM_CALL (Reset,p)
374 #define IEnumPins_Clone(p,a1) ICOM_CALL1(Clone,p,a1)
376 /**************************************************************************
378 * IFileSourceFilter interface
382 #define ICOM_INTERFACE IFileSourceFilter
383 #define IFileSourceFilter_METHODS \
384 ICOM_METHOD2(HRESULT,Load,LPCOLESTR,a1,const AM_MEDIA_TYPE*,a2) \
385 ICOM_METHOD2(HRESULT,GetCurFile,LPOLESTR*,a1,AM_MEDIA_TYPE*,a2)
387 #define IFileSourceFilter_IMETHODS \
389 IFileSourceFilter_METHODS
391 ICOM_DEFINE(IFileSourceFilter
,IUnknown
)
392 #undef ICOM_INTERFACE
394 /*** IUnknown methods ***/
395 #define IFileSourceFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
396 #define IFileSourceFilter_AddRef(p) ICOM_CALL (AddRef,p)
397 #define IFileSourceFilter_Release(p) ICOM_CALL (Release,p)
398 /*** IFileSourceFilter methods ***/
399 #define IFileSourceFilter_Load(p,a1,a2) ICOM_CALL2(Load,p,a1,a2)
400 #define IFileSourceFilter_GetCurFile(p,a1,a2) ICOM_CALL2(GetCurFile,p,a1,a2)
402 /**************************************************************************
404 * IFilterGraph interface
408 #define ICOM_INTERFACE IFilterGraph
409 #define IFilterGraph_METHODS \
410 ICOM_METHOD2(HRESULT,AddFilter,IBaseFilter*,a1,LPCWSTR,a2) \
411 ICOM_METHOD1(HRESULT,RemoveFilter,IBaseFilter*,a1) \
412 ICOM_METHOD1(HRESULT,EnumFilters,IEnumFilters**,a1) \
413 ICOM_METHOD2(HRESULT,FindFilterByName,LPCWSTR,a1,IBaseFilter**,a2) \
414 ICOM_METHOD3(HRESULT,ConnectDirect,IPin*,a1,IPin*,a2,const AM_MEDIA_TYPE*,a3) \
415 ICOM_METHOD1(HRESULT,Reconnect,IPin*,a1) \
416 ICOM_METHOD1(HRESULT,Disconnect,IPin*,a1) \
417 ICOM_METHOD (HRESULT,SetDefaultSyncSource)
419 #define IFilterGraph_IMETHODS \
423 ICOM_DEFINE(IFilterGraph
,IUnknown
)
424 #undef ICOM_INTERFACE
426 /*** IUnknown methods ***/
427 #define IFilterGraph_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
428 #define IFilterGraph_AddRef(p) ICOM_CALL (AddRef,p)
429 #define IFilterGraph_Release(p) ICOM_CALL (Release,p)
430 /*** IFilterGraph methods ***/
431 #define IFilterGraph_AddFilter(p,a1,a2) ICOM_CALL2(AddFilter,p,a1,a2)
432 #define IFilterGraph_RemoveFilter(p,a1) ICOM_CALL1(RemoveFilter,p,a1)
433 #define IFilterGraph_EnumFilters(p,a1) ICOM_CALL1(EnumFilters,p,a1)
434 #define IFilterGraph_FindFilterByName(p,a1,a2) ICOM_CALL2(FindFilterByName,p,a1,a2)
435 #define IFilterGraph_ConnectDirect(p,a1,a2,a3) ICOM_CALL3(ConnectDirect,p,a1,a2,a3)
436 #define IFilterGraph_Reconnect(p,a1) ICOM_CALL1(Reconnect,p,a1)
437 #define IFilterGraph_Disconnect(p,a1) ICOM_CALL1(Disconnect,p,a1)
438 #define IFilterGraph_SetDefaultSyncSource(p) ICOM_CALL (SetDefaultSyncSource,p)
440 /**************************************************************************
442 * IMediaSample interface
446 #define ICOM_INTERFACE IMediaSample
447 #define IMediaSample_METHODS \
448 ICOM_METHOD1(HRESULT,GetPointer,BYTE**,a1) \
449 ICOM_METHOD (long,GetSize) \
450 ICOM_METHOD2(HRESULT,GetTime,REFERENCE_TIME*,a1,REFERENCE_TIME*,a2) \
451 ICOM_METHOD2(HRESULT,SetTime,REFERENCE_TIME*,a1,REFERENCE_TIME*,a2) \
452 ICOM_METHOD (HRESULT,IsSyncPoint) \
453 ICOM_METHOD1(HRESULT,SetSyncPoint,BOOL,a1) \
454 ICOM_METHOD (HRESULT,IsPreroll) \
455 ICOM_METHOD1(HRESULT,SetPreroll,BOOL,a1) \
456 ICOM_METHOD (long,GetActualDataLength) \
457 ICOM_METHOD1(HRESULT,SetActualDataLength,long,a1) \
458 ICOM_METHOD1(HRESULT,GetMediaType,AM_MEDIA_TYPE**,a1) \
459 ICOM_METHOD1(HRESULT,SetMediaType,AM_MEDIA_TYPE*,a1) \
460 ICOM_METHOD (HRESULT,IsDiscontinuity) \
461 ICOM_METHOD1(HRESULT,SetDiscontinuity,BOOL,a1) \
462 ICOM_METHOD2(HRESULT,GetMediaTime,LONGLONG*,a1,LONGLONG*,a2) \
463 ICOM_METHOD2(HRESULT,SetMediaTime,LONGLONG*,a1,LONGLONG*,a2)
465 #define IMediaSample_IMETHODS \
469 ICOM_DEFINE(IMediaSample
,IUnknown
)
470 #undef ICOM_INTERFACE
472 /*** IUnknown methods ***/
473 #define IMediaSample_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
474 #define IMediaSample_AddRef(p) ICOM_CALL (AddRef,p)
475 #define IMediaSample_Release(p) ICOM_CALL (Release,p)
476 /*** IMediaSample methods ***/
477 #define IMediaSample_GetPointer(p,a1) ICOM_CALL1(GetPointer,p,a1)
478 #define IMediaSample_GetSize(p) ICOM_CALL (GetSize,p)
479 #define IMediaSample_GetTime(p,a1,a2) ICOM_CALL2(GetTime,p,a1,a2)
480 #define IMediaSample_SetTime(p,a1,a2) ICOM_CALL2(SetTime,p,a1,a2)
481 #define IMediaSample_IsSyncPoint(p) ICOM_CALL (IsSyncPoint,p)
482 #define IMediaSample_SetSyncPoint(p,a1) ICOM_CALL1(SetSyncPoint,p,a1)
483 #define IMediaSample_IsPreroll(p) ICOM_CALL (IsPreroll,p)
484 #define IMediaSample_SetPreroll(p,a1) ICOM_CALL1(SetPreroll,p,a1)
485 #define IMediaSample_GetActualDataLength(p,a1) ICOM_CALL1(GetActualDataLength,p,a1)
486 #define IMediaSample_SetActualDataLength(p,a1) ICOM_CALL1(SetActualDataLength,p,a1)
487 #define IMediaSample_GetMediaType(p,a1) ICOM_CALL1(GetMediaType,p,a1)
488 #define IMediaSample_SetMediaType(p,a1) ICOM_CALL1(SetMediaType,p,a1)
489 #define IMediaSample_IsDiscontinuity(p) ICOM_CALL (IsDiscontinuity,p)
490 #define IMediaSample_SetDiscontinuity(p,a1) ICOM_CALL1(SetDiscontinuity,p,a1)
491 #define IMediaSample_GetMediaTime(p,a1,a2) ICOM_CALL2(GetMediaTime,p,a1,a2)
492 #define IMediaSample_SetMediaTime(p,a1,a2) ICOM_CALL2(SetMediaTime,p,a1,a2)
494 /**************************************************************************
496 * IMediaSample2 interface
500 #define ICOM_INTERFACE IMediaSample2
501 #define IMediaSample2_METHODS \
502 ICOM_METHOD2(HRESULT,GetProperties,DWORD,a1,BYTE*,a2) \
503 ICOM_METHOD2(HRESULT,SetProperties,DWORD,a1,const BYTE*,a2)
505 #define IMediaSample2_IMETHODS \
506 IMediaSample_IMETHODS \
507 IMediaSample2_METHODS
509 ICOM_DEFINE(IMediaSample2
,IMediaSample
)
510 #undef ICOM_INTERFACE
512 /*** IUnknown methods ***/
513 #define IMediaSample2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
514 #define IMediaSample2_AddRef(p) ICOM_CALL (AddRef,p)
515 #define IMediaSample2_Release(p) ICOM_CALL (Release,p)
516 /*** IMediaSample methods ***/
517 #define IMediaSample2_GetPointer(p,a1) ICOM_CALL1(GetPointer,p,a1)
518 #define IMediaSample2_GetSize(p,a1) ICOM_CALL1(GetSize,p,a1)
519 #define IMediaSample2_GetTime(p,a1,a2) ICOM_CALL2(GetTime,p,a1,a2)
520 #define IMediaSample2_SetTime(p,a1,a2) ICOM_CALL2(SetTime,p,a1,a2)
521 #define IMediaSample2_IsSyncPoint(p,a1) ICOM_CALL1(IsSyncPoint,p,a1)
522 #define IMediaSample2_SetSyncPoint(p,a1) ICOM_CALL1(SetSyncPoint,p,a1)
523 #define IMediaSample2_IsPreroll(p,a1) ICOM_CALL1(IsPreroll,p,a1)
524 #define IMediaSample2_SetPreroll(p,a1) ICOM_CALL1(SetPreroll,p,a1)
525 #define IMediaSample2_GetActualDataLength(p,a1) ICOM_CALL1(GetActualDataLength,p,a1)
526 #define IMediaSample2_SetActualDataLength(p,a1) ICOM_CALL1(SetActualDataLength,p,a1)
527 #define IMediaSample2_GetMediaType(p,a1) ICOM_CALL1(GetMediaType,p,a1)
528 #define IMediaSample2_SetMediaType(p,a1) ICOM_CALL1(SetMediaType,p,a1)
529 #define IMediaSample2_IsDiscontinuity(p,a1) ICOM_CALL1(IsDiscontinuity,p,a1)
530 #define IMediaSample2_SetDiscontinuity(p,a1) ICOM_CALL1(SetDiscontinuity,p,a1)
531 #define IMediaSample2_GetMediaTime(p,a1,a2) ICOM_CALL2(GetMediaTime,p,a1,a2)
532 #define IMediaSample2_SetMediaTime(p,a1,a2) ICOM_CALL2(SetMediaTime,p,a1,a2)
533 /*** IMediaSample2 methods ***/
534 #define IMediaSample2_GetProperties(p,a1,a2) ICOM_CALL2(GetProperties,p,a1,a2)
535 #define IMediaSample2_SetProperties(p,a1,a2) ICOM_CALL2(SetProperties,p,a1,a2)
537 /**************************************************************************
539 * IMemAllocator interface
543 #define ICOM_INTERFACE IMemAllocator
544 #define IMemAllocator_METHODS \
545 ICOM_METHOD2(HRESULT,SetProperties,ALLOCATOR_PROPERTIES*,a1,ALLOCATOR_PROPERTIES*,a2) \
546 ICOM_METHOD1(HRESULT,GetProperties,ALLOCATOR_PROPERTIES*,a1) \
547 ICOM_METHOD (HRESULT,Commit) \
548 ICOM_METHOD (HRESULT,Decommit) \
549 ICOM_METHOD4(HRESULT,GetBuffer,IMediaSample**,a1,REFERENCE_TIME*,a2,REFERENCE_TIME*,a3,DWORD,a4) \
550 ICOM_METHOD1(HRESULT,ReleaseBuffer,IMediaSample*,a1)
552 #define IMemAllocator_IMETHODS \
554 IMemAllocator_METHODS
556 ICOM_DEFINE(IMemAllocator
,IUnknown
)
557 #undef ICOM_INTERFACE
559 /*** IUnknown methods ***/
560 #define IMemAllocator_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
561 #define IMemAllocator_AddRef(p) ICOM_CALL (AddRef,p)
562 #define IMemAllocator_Release(p) ICOM_CALL (Release,p)
563 /*** IMemAllocator methods ***/
564 #define IMemAllocator_SetProperties(p,a1,a2) ICOM_CALL2(SetProperties,p,a1,a2)
565 #define IMemAllocator_GetProperties(p,a1) ICOM_CALL1(GetProperties,p,a1)
566 #define IMemAllocator_Commit(p) ICOM_CALL (Commit,p)
567 #define IMemAllocator_Decommit(p) ICOM_CALL (Decommit,p)
568 #define IMemAllocator_GetBuffer(p,a1,a2,a3,a4) ICOM_CALL4(GetBuffer,p,a1,a2,a3,a4)
569 #define IMemAllocator_ReleaseBuffer(p,a1) ICOM_CALL1(ReleaseBuffer,p,a1)
571 /**************************************************************************
573 * IMemAllocatorCallbackTemp interface
577 #define ICOM_INTERFACE IMemAllocatorCallbackTemp
578 #define IMemAllocatorCallbackTemp_METHODS \
579 ICOM_METHOD1(HRESULT,SetNotify,IMemAllocatorNotifyCallbackTemp*,a1) \
580 ICOM_METHOD1(HRESULT,GetFreeCount,LONG*,a1)
582 #define IMemAllocatorCallbackTemp_IMETHODS \
583 IMemAllocator_IMETHODS \
584 IMemAllocatorCallbackTemp_METHODS
586 ICOM_DEFINE(IMemAllocatorCallbackTemp
,IMemAllocator
)
587 #undef ICOM_INTERFACE
589 /*** IUnknown methods ***/
590 #define IMemAllocatorCallbackTemp_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
591 #define IMemAllocatorCallbackTemp_AddRef(p) ICOM_CALL (AddRef,p)
592 #define IMemAllocatorCallbackTemp_Release(p) ICOM_CALL (Release,p)
593 /*** IMemAllocator methods ***/
594 #define IMemAllocatorCallbackTemp_SetProperties(p,a1,a2) ICOM_CALL2(SetProperties,p,a1,a2)
595 #define IMemAllocatorCallbackTemp_GetProperties(p,a1) ICOM_CALL1(GetProperties,p,a1)
596 #define IMemAllocatorCallbackTemp_Commit(p,a1) ICOM_CALL1(Commit,p,a1)
597 #define IMemAllocatorCallbackTemp_Decommit(p,a1) ICOM_CALL1(Decommit,p,a1)
598 #define IMemAllocatorCallbackTemp_GetBuffer(p,a1,a2,a3,a4) ICOM_CALL4(GetBuffer,p,a1,a2,a3,a4)
599 #define IMemAllocatorCallbackTemp_ReleaseBuffer(p,a1) ICOM_CALL1(ReleaseBuffer,p,a1)
600 /*** IMemAllocatorCallbackTemp methods ***/
601 #define IMemAllocatorCallbackTemp_SetNotify(p,a1) ICOM_CALL1(SetNotify,p,a1)
602 #define IMemAllocatorCallbackTemp_GetFreeCount(p,a1) ICOM_CALL1(GetFreeCount,p,a1)
604 /**************************************************************************
606 * IMemAllocatorNotifyCallbackTemp interface
610 #define ICOM_INTERFACE IMemAllocatorNotifyCallbackTemp
611 #define IMemAllocatorNotifyCallbackTemp_METHODS \
612 ICOM_METHOD (HRESULT,NotifyRelease)
614 #define IMemAllocatorNotifyCallbackTemp_IMETHODS \
616 IMemAllocatorNotifyCallbackTemp_METHODS
618 ICOM_DEFINE(IMemAllocatorNotifyCallbackTemp
,IUnknown
)
619 #undef ICOM_INTERFACE
621 /*** IUnknown methods ***/
622 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
623 #define IMemAllocatorNotifyCallbackTemp_AddRef(p) ICOM_CALL (AddRef,p)
624 #define IMemAllocatorNotifyCallbackTemp_Release(p) ICOM_CALL (Release,p)
625 /*** IMemAllocatorNotifyCallbackTemp methods ***/
626 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(p) ICOM_CALL (NotifyRelease,p)
628 /**************************************************************************
630 * IMemInputPin interface
634 #define ICOM_INTERFACE IMemInputPin
635 #define IMemInputPin_METHODS \
636 ICOM_METHOD1(HRESULT,GetAllocator,IMemAllocator**,a1) \
637 ICOM_METHOD2(HRESULT,NotifyAllocator,IMemAllocator*,a1,BOOL,a2) \
638 ICOM_METHOD1(HRESULT,GetAllocatorRequirements,ALLOCATOR_PROPERTIES*,a1) \
639 ICOM_METHOD1(HRESULT,Receive,IMediaSample*,a1) \
640 ICOM_METHOD3(HRESULT,ReceiveMultiple,IMediaSample**,a1,long,a2,long*,a3) \
641 ICOM_METHOD (HRESULT,ReceiveCanBlock)
643 #define IMemInputPin_IMETHODS \
647 ICOM_DEFINE(IMemInputPin
,IUnknown
)
648 #undef ICOM_INTERFACE
650 /*** IUnknown methods ***/
651 #define IMemInputPin_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
652 #define IMemInputPin_AddRef(p) ICOM_CALL (AddRef,p)
653 #define IMemInputPin_Release(p) ICOM_CALL (Release,p)
654 /*** IMemInputPin methods ***/
655 #define IMemInputPin_GetAllocator(p,a1) ICOM_CALL1(GetAllocator,p,a1)
656 #define IMemInputPin_NotifyAllocator(p,a1,a2) ICOM_CALL2(NotifyAllocator,p,a1,a2)
657 #define IMemInputPin_GetAllocatorRequirements(p,a1) ICOM_CALL1(GetAllocatorRequirements,p,a1)
658 #define IMemInputPin_Receive(p,a1) ICOM_CALL1(Receive,p,a1)
659 #define IMemInputPin_ReceiveMultiple(p,a1,a2,a3) ICOM_CALL3(ReceiveMultiple,p,a1,a2,a3)
660 #define IMemInputPin_ReceiveCanBlock(p) ICOM_CALL (ReceiveCanBlock,p)
662 /**************************************************************************
668 #define ICOM_INTERFACE IPin
669 #define IPin_METHODS \
670 ICOM_METHOD2(HRESULT,Connect,IPin*,a1,const AM_MEDIA_TYPE*,a2) \
671 ICOM_METHOD2(HRESULT,ReceiveConnection,IPin*,a1,const AM_MEDIA_TYPE*,a2) \
672 ICOM_METHOD (HRESULT,Disconnect) \
673 ICOM_METHOD1(HRESULT,ConnectedTo,IPin**,a1) \
674 ICOM_METHOD1(HRESULT,ConnectionMediaType,AM_MEDIA_TYPE*,a1) \
675 ICOM_METHOD1(HRESULT,QueryPinInfo,PIN_INFO*,a1) \
676 ICOM_METHOD1(HRESULT,QueryDirection,PIN_DIRECTION*,a1) \
677 ICOM_METHOD1(HRESULT,QueryId,LPWSTR*,a1) \
678 ICOM_METHOD1(HRESULT,QueryAccept,const AM_MEDIA_TYPE*,a1) \
679 ICOM_METHOD1(HRESULT,EnumMediaTypes,IEnumMediaTypes**,a1) \
680 ICOM_METHOD2(HRESULT,QueryInternalConnections,IPin**,a1,ULONG*,a2) \
681 ICOM_METHOD (HRESULT,EndOfStream) \
682 ICOM_METHOD (HRESULT,BeginFlush) \
683 ICOM_METHOD (HRESULT,EndFlush) \
684 ICOM_METHOD3(HRESULT,NewSegment,REFERENCE_TIME,a1,REFERENCE_TIME,a2,double,a3)
686 #define IPin_IMETHODS \
690 ICOM_DEFINE(IPin
,IUnknown
)
691 #undef ICOM_INTERFACE
693 /*** IUnknown methods ***/
694 #define IPin_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
695 #define IPin_AddRef(p) ICOM_CALL (AddRef,p)
696 #define IPin_Release(p) ICOM_CALL (Release,p)
697 /*** IPin methods ***/
698 #define IPin_Connect(p,a1,a2) ICOM_CALL2(Connect,p,a1,a2)
699 #define IPin_ReceiveConnection(p,a1,a2) ICOM_CALL2(ReceiveConnection,p,a1,a2)
700 #define IPin_Disconnect(p) ICOM_CALL (Disconnect,p)
701 #define IPin_ConnectedTo(p,a1) ICOM_CALL1(ConnectedTo,p,a1)
702 #define IPin_ConnectionMediaType(p,a1) ICOM_CALL1(ConnectionMediaType,p,a1)
703 #define IPin_QueryPinInfo(p,a1) ICOM_CALL1(QueryPinInfo,p,a1)
704 #define IPin_QueryDirection(p,a1) ICOM_CALL1(QueryDirection,p,a1)
705 #define IPin_QueryId(p,a1) ICOM_CALL1(QueryId,p,a1)
706 #define IPin_QueryAccept(p,a1) ICOM_CALL1(QueryAccept,p,a1)
707 #define IPin_EnumMediaTypes(p,a1) ICOM_CALL1(EnumMediaTypes,p,a1)
708 #define IPin_QueryInternalConnections(p,a1,a2) ICOM_CALL2(QueryInternalConnections,p,a1,a2)
709 #define IPin_EndOfStream(p) ICOM_CALL (EndOfStream,p)
710 #define IPin_BeginFlush(p) ICOM_CALL (BeginFlush,p)
711 #define IPin_EndFlush(p) ICOM_CALL (EndFlush,p)
712 #define IPin_NewSegment(p,a1,a2,a3) ICOM_CALL3(NewSegment,p,a1,a2,a3)
714 /**************************************************************************
716 * IReferenceClock interface
720 #define ICOM_INTERFACE IReferenceClock
721 #define IReferenceClock_METHODS \
722 ICOM_METHOD1(HRESULT,GetTime,REFERENCE_TIME*,a1) \
723 ICOM_METHOD4(HRESULT,AdviseTime,REFERENCE_TIME,a1,REFERENCE_TIME,a2,HEVENT,a3,DWORD_PTR*,a4) \
724 ICOM_METHOD4(HRESULT,AdvisePeriodic,REFERENCE_TIME,a1,REFERENCE_TIME,a2,HSEMAPHORE,a3,DWORD_PTR*,a4) \
725 ICOM_METHOD1(HRESULT,Unadvise,DWORD_PTR,a1)
727 #define IReferenceClock_IMETHODS \
729 IReferenceClock_METHODS
731 ICOM_DEFINE(IReferenceClock
,IUnknown
)
732 #undef ICOM_INTERFACE
734 /*** IUnknown methods ***/
735 #define IReferenceClock_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
736 #define IReferenceClock_AddRef(p) ICOM_CALL (AddRef,p)
737 #define IReferenceClock_Release(p) ICOM_CALL (Release,p)
738 /*** IReferenceClock methods ***/
739 #define IReferenceClock_GetTime(p,a1) ICOM_CALL1(GetTime,p,a1)
740 #define IReferenceClock_AdviseTime(p,a1,a2,a3,a4) ICOM_CALL4(AdviseTime,p,a1,a2,a3,a4)
741 #define IReferenceClock_AdvisePeriodic(p,a1,a2,a3,a4) ICOM_CALL4(AdvisePeriodic,p,a1,a2,a3,a4)
742 #define IReferenceClock_Unadvise(p,a1) ICOM_CALL1(Unadvise,p,a1)
744 /**************************************************************************
746 * IReferenceClock2 interface
750 #define ICOM_INTERFACE IReferenceClock2
751 #define IReferenceClock2_METHODS
753 #define IReferenceClock2_IMETHODS \
754 IReferenceClock_IMETHODS \
755 IReferenceClock2_METHODS
757 ICOM_DEFINE(IReferenceClock2
,IReferenceClock
)
758 #undef ICOM_INTERFACE
760 /*** IUnknown methods ***/
761 #define IReferenceClock2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
762 #define IReferenceClock2_AddRef(p) ICOM_CALL (AddRef,p)
763 #define IReferenceClock2_Release(p) ICOM_CALL (Release,p)
764 /*** IReferenceClock methods ***/
765 #define IReferenceClock2_GetTime(p,a1) ICOM_CALL1(GetTime,p,a1)
766 #define IReferenceClock2_AdviseTime(p,a1,a2,a3,a4) ICOM_CALL4(AdviseTime,p,a1,a2,a3,a4)
767 #define IReferenceClock2_AdvisePeriodic(p,a1,a2,a3,a4) ICOM_CALL4(AdvisePeriodic,p,a1,a2,a3,a4)
768 #define IReferenceClock2_Unadvise(p,a1) ICOM_CALL1(Unadvise,p,a1)
769 /*** IReferenceClock2 methods ***/
771 #endif /* __WINE_STRMIF_H_ */