Added some dshow headers.
[wine/multimedia.git] / include / strmif.h
blob6ebf0ffd4deee0c85ef2433526ae57e6156b8cea
1 #ifndef __WINE_STRMIF_H_
2 #define __WINE_STRMIF_H_
4 #include "ole2.h"
6 /* FIXME - far from complete. */
8 /* forward decls. */
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;
130 /* enums. */
132 typedef enum
134 PINDIR_INPUT = 0,
135 PINDIR_OUTPUT = 1,
136 } PIN_DIRECTION;
138 typedef enum
140 State_Stopped = 0,
141 State_Paused = 1,
142 State_Running = 2,
143 } FILTER_STATE;
145 /* structs. */
147 typedef struct
149 GUID majortype;
150 GUID subtype;
151 BOOL bFixedSizeSamples;
152 BOOL bTemporalCompression;
153 ULONG lSampleSize;
154 GUID formattype;
155 IUnknown* pUnk;
156 ULONG cbFormat;
157 BYTE* pbFormat;
158 } AM_MEDIA_TYPE;
160 typedef struct
162 long cBuffers;
163 long cbBuffer;
164 long cbAlign;
165 long cbPrefix;
166 } ALLOCATOR_PROPERTIES;
168 typedef struct
170 IBaseFilter* pFilter;
171 PIN_DIRECTION dir;
172 WCHAR achName[ 128 ];
173 } PIN_INFO;
175 typedef struct
177 WCHAR achName[ 128 ];
178 IFilterGraph* pGraph;
179 } FILTER_INFO;
181 typedef struct
183 REFERENCE_TIME tStart;
184 REFERENCE_TIME tStop;
185 DWORD dwStartCookie;
186 DWORD dwStopCookie;
187 DWORD dwFlags;
188 } AM_STREAM_INFO;
190 typedef struct tagCOLORKEY
192 DWORD KeyType;
193 DWORD PaletteIndex;
194 COLORREF LowColorValue;
195 COLORREF HighColorValue;
196 } COLORKEY;
200 /* defines. */
202 #define CHARS_IN_GUID 39
203 #define MAX_PIN_NAME 128
204 #define MAX_FILTER_NAME 128
207 /* interfaces. */
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 \
225 IPersist_IMETHODS \
226 IMediaFilter_METHODS
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 \
261 IBaseFilter_METHODS
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 \
300 IUnknown_IMETHODS \
301 IEnumFilters_METHODS
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 \
330 IUnknown_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 \
360 IUnknown_IMETHODS \
361 IEnumPins_METHODS
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 \
388 IUnknown_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 \
420 IUnknown_IMETHODS \
421 IFilterGraph_METHODS
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 \
466 IUnknown_IMETHODS \
467 IMediaSample_METHODS
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 \
553 IUnknown_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 \
615 IUnknown_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 \
644 IUnknown_IMETHODS \
645 IMemInputPin_METHODS
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 /**************************************************************************
664 * IPin interface
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 \
687 IUnknown_IMETHODS \
688 IPin_METHODS
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 \
728 IUnknown_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_ */