Added IGraphBuilder, IFilterGraph2, IMediaSeeking interfaces.
[wine] / include / strmif.h
1 #ifndef __WINE__
2 #include "rpc.h"
3 #include "rpcndr.h"
4 #ifndef COM_NO_WINDOWS_H
5 #include "windows.h"
6 #include "ole2.h"
7 #endif
8 #endif
9
10 #ifndef __WINE_STRMIF_H_
11 #define __WINE_STRMIF_H_
12
13 #include "ole2.h"
14
15 /* undef GetTimeFormat - FIXME? */
16 #undef GetTimeFormat
17
18 /* FIXME - far from complete. */
19
20 /* forward decls. */
21
22 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
23 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
24 typedef struct IAMAudioInputMixer IAMAudioInputMixer;
25 typedef struct IAMAudioRendererStats IAMAudioRendererStats;
26 typedef struct IAMBufferNegotiation IAMBufferNegotiation;
27 typedef struct IAMCameraControl IAMCameraControl;
28 typedef struct IAMClockAdjust IAMClockAdjust;
29 typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
30 typedef struct IAMCrossbar IAMCrossbar;
31 typedef struct IAMDeviceRemoval IAMDeviceRemoval;
32 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
33 typedef struct IAMDevMemoryControl IAMDevMemoryControl;
34 typedef struct IAMDroppedFrames IAMDroppedFrames;
35 typedef struct IAMExtDevice IAMExtDevice;
36 typedef struct IAMExtTransport IAMExtTransport;
37 typedef struct IAMFilterMiscFlags IAMFilterMiscFlags;
38 typedef struct IAMGraphStreams IAMGraphStreams;
39 typedef struct IAMLatency IAMLatency;
40 typedef struct IAMOpenProgress IAMOpenProgress;
41 typedef struct IAMOverlayFX IAMOverlayFX;
42 typedef struct IAMovie IAMovie;
43 typedef struct IAMovieSetup IAMovieSetup;
44 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
45 typedef struct IAMPushSource IAMPushSource;
46 typedef struct IAMResourceControl IAMResourceControl;
47 typedef struct IAMStreamConfig IAMStreamConfig;
48 typedef struct IAMStreamControl IAMStreamControl;
49 typedef struct IAMStreamSelect IAMStreamSelect;
50 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
51 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
52 typedef struct IAMTimecodeReader IAMTimecodeReader;
53 typedef struct IAMTuner IAMTuner;
54 typedef struct IAMTunerNotification IAMTunerNotification;
55 typedef struct IAMTVAudio IAMTVAudio;
56 typedef struct IAMTVAudioNotification IAMTVAudioNotification;
57 typedef struct IAMTVTuner IAMTVTuner;
58 typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
59 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
60 typedef struct IAMVideoCompression IAMVideoCompression;
61 typedef struct IAMVideoControl IAMVideoControl;
62 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
63 typedef struct IAMVideoProcAmp IAMVideoProcAmp;
64 typedef struct IAsyncReader IAsyncReader;
65 typedef struct IMediaFilter IMediaFilter;
66 typedef struct IBaseFilter IBaseFilter;
67 typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
68 typedef struct ICaptureGraphBuilder ICaptureGraphBuilder;
69 typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2;
70 typedef struct IConfigAviMux IConfigAviMux;
71 typedef struct IConfigInterleaving IConfigInterleaving;
72 typedef struct ICreateDevEnum ICreateDevEnum;
73 typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
74 typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
75 typedef struct IDecimateVideoImage IDecimateVideoImage;
76 typedef struct IDistributorNotify IDistributorNotify;
77 typedef struct IDrawVideoImage IDrawVideoImage;
78 typedef struct IDvdCmd IDvdCmd;
79 typedef struct IDvdControl IDvdControl;
80 typedef struct IDvdControl2 IDvdControl2;
81 typedef struct IDvdGraphBuilder IDvdGraphBuilder;
82 typedef struct IDvdInfo IDvdInfo;
83 typedef struct IDvdInfo2 IDvdInfo2;
84 typedef struct IDvdState IDvdState;
85 typedef struct IDVEnc IDVEnc;
86 typedef struct IDVSplitter IDVSplitter;
87 typedef struct IEnumFilters IEnumFilters;
88 typedef struct IEnumMediaTypes IEnumMediaTypes;
89 typedef struct IEnumPins IEnumPins;
90 typedef struct IEnumRegFilters IEnumRegFilters;
91 typedef struct IEnumStreamIdMap IEnumStreamIdMap;
92 typedef struct IFileSinkFilter IFileSinkFilter;
93 typedef struct IFileSinkFilter2 IFileSinkFilter2;
94 typedef struct IFileSourceFilter IFileSourceFilter;
95 typedef struct IFilterChain IFilterChain;
96 typedef struct IFilterGraph IFilterGraph;
97 typedef struct IFilterGraph2 IFilterGraph2;
98 typedef struct IFilterMapper IFilterMapper;
99 typedef struct IFilterMapper2 IFilterMapper2;
100 typedef struct IFilterMapper3 IFilterMapper3;
101 typedef struct IGraphBuilder IGraphBuilder;
102 typedef struct IGraphConfig IGraphConfig;
103 typedef struct IGraphConfigCallback IGraphConfigCallback;
104 typedef struct IGraphVersion IGraphVersion;
105 typedef struct IIPDVDec IIPDVDec;
106 typedef struct IMediaEventSink IMediaEventSink;
107 typedef struct IMediaPropertyBag IMediaPropertyBag;
108 typedef struct IMediaSample IMediaSample;
109 typedef struct IMediaSample2 IMediaSample2;
110 typedef struct IMediaSeeking IMediaSeeking;
111 typedef struct IMemAllocator IMemAllocator;
112 typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
113 typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
114 typedef struct IMemInputPin IMemInputPin;
115 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
116 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
117 typedef struct IOverlay IOverlay;
118 typedef struct IOverlayNotify IOverlayNotify;
119 typedef struct IOverlayNotify2 IOverlayNotify2;
120 typedef struct IPersistMediaPropertyBag IPersistMediaPropertyBag;
121 typedef struct IPin IPin;
122 typedef struct IPinConnection IPinConnection;
123 typedef struct IPinFlowControl IPinFlowControl;
124 typedef struct IQualityControl IQualityControl;
125 typedef struct IReferenceClock IReferenceClock;
126 typedef struct IReferenceClock2 IReferenceClock2;
127 typedef struct IResourceConsumer IResourceConsumer;
128 typedef struct IResourceManager IResourceManager;
129 typedef struct ISeekingPassThru ISeekingPassThru;
130 typedef struct IStreamBuilder IStreamBuilder;
131 typedef struct IVideoFrameStep IVideoFrameStep;
132
133 /* GUIDs. */
134
135 DEFINE_GUID(IID_IAMAnalogVideoDecoder,0xC6E13350,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
136 DEFINE_GUID(IID_IAMAnalogVideoEncoder,0xC6E133B0,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
137 DEFINE_GUID(IID_IAMAudioInputMixer,0x54C39221,0x8380,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
138 DEFINE_GUID(IID_IAMAudioRendererStats,0x22320CB2,0xD41A,0x11D2,0xBF,0x7C,0xD7,0xCB,0x9D,0xF0,0xBF,0x93);
139 DEFINE_GUID(IID_IAMBufferNegotiation,0x56ED71A0,0xAF5F,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
140 DEFINE_GUID(IID_IAMCameraControl,0xC6E13370,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
141 DEFINE_GUID(IID_IAMClockAdjust,0x4D5466B0,0xA49C,0x11D1,0xAB,0xE8,0x00,0xA0,0xC9,0x05,0xF3,0x75);
142 DEFINE_GUID(IID_IAMCopyCaptureFileProgress,0x670D1D20,0xA068,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
143 DEFINE_GUID(IID_IAMCrossbar,0xC6E13380,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
144 DEFINE_GUID(IID_IAMDeviceRemoval,0xF90A6130,0xB658,0x11D2,0xAE,0x49,0x00,0x00,0xF8,0x75,0x4B,0x99);
145 DEFINE_GUID(IID_IAMDevMemoryAllocator,0xC6545BF0,0xE76B,0x11D0,0xBD,0x52,0x00,0xA0,0xC9,0x11,0xCE,0x86);
146 DEFINE_GUID(IID_IAMDevMemoryControl,0xC6545BF1,0xE76B,0x11D0,0xBD,0x52,0x00,0xA0,0xC9,0x11,0xCE,0x86);
147 DEFINE_GUID(IID_IAMDroppedFrames,0xC6E13344,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
148 DEFINE_GUID(IID_IAMExtDevice,0xB5730A90,0x1A2C,0x11CF,0x8C,0x23,0x00,0xAA,0x00,0x6B,0x68,0x14);
149 DEFINE_GUID(IID_IAMExtTransport,0xA03CD5F0,0x3045,0x11CF,0x8C,0x44,0x00,0xAA,0x00,0x6B,0x68,0x14);
150 DEFINE_GUID(IID_IAMFilterMiscFlags,0x2DD74950,0xA890,0x11D1,0xAB,0xE8,0x00,0xA0,0xC9,0x05,0xF3,0x75);
151 DEFINE_GUID(IID_IAMGraphStreams,0x632105FA,0x072E,0x11D3,0x8A,0xF9,0x00,0xC0,0x4F,0xB6,0xBD,0x3D);
152 DEFINE_GUID(IID_IAMLatency,0x62EA93BA,0xEC62,0x11D2,0xB7,0x70,0x00,0xC0,0x4F,0xB6,0xBD,0x3D);
153 DEFINE_GUID(IID_IAMOpenProgress,0x8E1C39A1,0xDE53,0x11CF,0xAA,0x63,0x00,0x80,0xC7,0x44,0x52,0x8D);
154 DEFINE_GUID(IID_IAMOverlayFX,0x62FAE250,0x7E65,0x4460,0xBF,0xC9,0x63,0x98,0xB3,0x22,0x07,0x3C);
155 DEFINE_GUID(IID_IAMovie,0x359ACE10,0x7688,0x11CF,0x8B,0x23,0x00,0x80,0x5F,0x6C,0xEF,0x60);
156 DEFINE_GUID(IID_IAMovieSetup,0xA3D8CEC0,0x7E5A,0x11CF,0xBB,0xC5,0x00,0x80,0x5F,0x6C,0xEF,0x20);
157 DEFINE_GUID(IID_IAMPhysicalPinInfo,0xF938C991,0x3029,0x11CF,0x8C,0x44,0x00,0xAA,0x00,0x6B,0x68,0x14);
158 DEFINE_GUID(IID_IAMPushSource,0xF185FE76,0xE64E,0x11D2,0xB7,0x6E,0x00,0xC0,0x4F,0xB6,0xBD,0x3D);
159 DEFINE_GUID(IID_IAMResourceControl,0x8389D2D0,0x77D7,0x11D1,0xAB,0xE6,0x00,0xA0,0xC9,0x05,0xF3,0x75);
160 DEFINE_GUID(IID_IAMStreamConfig,0xC6E13340,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
161 DEFINE_GUID(IID_IAMStreamControl,0x36B73881,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
162 DEFINE_GUID(IID_IAMStreamSelect,0xC1960960,0x17F5,0x11D1,0xAB,0xE1,0x00,0xA0,0xC9,0x05,0xF3,0x75);
163 DEFINE_GUID(IID_IAMTimecodeDisplay,0x9B496CE2,0x811B,0x11CF,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14);
164 DEFINE_GUID(IID_IAMTimecodeGenerator,0x9B496CE0,0x811B,0x11CF,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14);
165 DEFINE_GUID(IID_IAMTimecodeReader,0x9B496CE1,0x811B,0x11CF,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14);
166 DEFINE_GUID(IID_IAMTuner,0x211A8761,0x03AC,0x11D1,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
167 DEFINE_GUID(IID_IAMTunerNotification,0x211A8760,0x03AC,0x11D1,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
168 DEFINE_GUID(IID_IAMTVAudio,0x83EC1C30,0x23D1,0x11D1,0x99,0xE6,0x00,0xA0,0xC9,0x56,0x02,0x66);
169 DEFINE_GUID(IID_IAMTVAudioNotification,0x83EC1C33,0x23D1,0x11D1,0x99,0xE6,0x00,0xA0,0xC9,0x56,0x02,0x66);
170 DEFINE_GUID(IID_IAMTVTuner,0x211A8766,0x03AC,0x11D1,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
171 DEFINE_GUID(IID_IAMVfwCaptureDialogs,0xD8D715A0,0x6E5E,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
172 DEFINE_GUID(IID_IAMVfwCompressDialogs,0xD8D715A3,0x6E5E,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
173 DEFINE_GUID(IID_IAMVideoCompression,0xC6E13343,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
174 DEFINE_GUID(IID_IAMVideoControl,0x6A2E0670,0x28E4,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
175 DEFINE_GUID(IID_IAMVideoDecimationProperties,0x60D32930,0x13DA,0x11D3,0x9E,0xC6,0xC4,0xFC,0xAE,0xF5,0xC7,0xBE);
176 DEFINE_GUID(IID_IAMVideoProcAmp,0xC6E13360,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
177 DEFINE_GUID(IID_IAsyncReader,0x56A868AA,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
178 DEFINE_GUID(IID_IMediaFilter,0x56A86899,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
179 DEFINE_GUID(IID_IBaseFilter,0x56A86895,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
180 DEFINE_GUID(IID_IBPCSatelliteTuner,0x211A8765,0x03AC,0x11D1,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
181 DEFINE_GUID(IID_ICaptureGraphBuilder,0xBF87B6E0,0x8C27,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
182 DEFINE_GUID(IID_ICaptureGraphBuilder2,0x93E5A4E0,0x2D50,0x11D2,0xAB,0xFA,0x00,0xA0,0xC9,0xC6,0xE3,0x8D);
183 DEFINE_GUID(IID_IConfigAviMux,0x5ACD6AA0,0xF482,0x11CE,0x8B,0x67,0x00,0xAA,0x00,0xA3,0xF1,0xA6);
184 DEFINE_GUID(IID_IConfigInterleaving,0xBEE3D220,0x157B,0x11D0,0xBD,0x23,0x00,0xA0,0xC9,0x11,0xCE,0x86);
185 DEFINE_GUID(IID_ICreateDevEnum,0x29840822,0x5B84,0x11D0,0xBD,0x3B,0x00,0xA0,0xC9,0x11,0xCE,0x86);
186 DEFINE_GUID(IID_IDDrawExclModeVideo,0x153ACC21,0xD83B,0x11D1,0x82,0xBF,0x00,0xA0,0xC9,0x69,0x6C,0x8F);
187 DEFINE_GUID(IID_IDDrawExclModeVideoCallback,0x913C24A0,0x20AB,0x11D2,0x90,0x38,0x00,0xA0,0xC9,0x69,0x72,0x98);
188 DEFINE_GUID(IID_IDecimateVideoImage,0x2E5EA3E0,0xE924,0x11D2,0xB6,0xDA,0x00,0xA0,0xC9,0x95,0xE8,0xDF);
189 DEFINE_GUID(IID_IDistributorNotify,0x56A868AF,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
190 DEFINE_GUID(IID_IDrawVideoImage,0x48EFB120,0xAB49,0x11D2,0xAE,0xD2,0x00,0xA0,0xC9,0x95,0xE8,0xD5);
191 DEFINE_GUID(IID_IDvdCmd,0x5A4A97E4,0x94EE,0x4A55,0x97,0x51,0x74,0xB5,0x64,0x3A,0xA2,0x7D);
192 DEFINE_GUID(IID_IDvdControl,0xA70EFE61,0xE2A3,0x11D0,0xA9,0xBE,0x00,0xAA,0x00,0x61,0xBE,0x93);
193 DEFINE_GUID(IID_IDvdControl2,0x33BC7430,0xEEC0,0x11D2,0x82,0x01,0x00,0xA0,0xC9,0xD7,0x48,0x42);
194 DEFINE_GUID(IID_IDvdGraphBuilder,0xFCC152B6,0xF372,0x11D0,0x8E,0x00,0x00,0xC0,0x4F,0xD7,0xC0,0x8B);
195 DEFINE_GUID(IID_IDvdInfo,0xA70EFE60,0xE2A3,0x11D0,0xA9,0xBE,0x00,0xAA,0x00,0x61,0xBE,0x93);
196 DEFINE_GUID(IID_IDvdInfo2,0x34151510,0xEEC0,0x11D2,0x82,0x01,0x00,0xA0,0xC9,0xD7,0x48,0x42);
197 DEFINE_GUID(IID_IDvdState,0x86303D6D,0x1C4A,0x4087,0xAB,0x42,0xF7,0x11,0x16,0x70,0x48,0xEF);
198 DEFINE_GUID(IID_IDVEnc,0xD18E17A0,0xAACB,0x11D0,0xAF,0xB0,0x00,0xAA,0x00,0xB6,0x7A,0x42);
199 DEFINE_GUID(IID_IDVSplitter,0x92A3A302,0xDA7C,0x4A1F,0xBA,0x7E,0x18,0x02,0xBB,0x5D,0x2D,0x02);
200 DEFINE_GUID(IID_IEnumFilters,0x56A86893,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
201 DEFINE_GUID(IID_IEnumMediaTypes,0x89C31040,0x846B,0x11CE,0x97,0xD3,0x00,0xAA,0x00,0x55,0x59,0x5A);
202 DEFINE_GUID(IID_IEnumPins,0x56A86892,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
203 DEFINE_GUID(IID_IEnumRegFilters,0x56A868A4,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
204 DEFINE_GUID(IID_IEnumStreamIdMap,0x945C1566,0x6202,0x46FC,0x96,0xC7,0xD8,0x7F,0x28,0x9C,0x65,0x34);
205 DEFINE_GUID(IID_IFileSinkFilter,0xA2104830,0x7C70,0x11CF,0x8B,0xCE,0x00,0xAA,0x00,0xA3,0xF1,0xA6);
206 DEFINE_GUID(IID_IFileSinkFilter2,0x00855B90,0xCE1B,0x11D0,0xBD,0x4F,0x00,0xA0,0xC9,0x11,0xCE,0x86);
207 DEFINE_GUID(IID_IFileSourceFilter,0x56A868A6,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
208 DEFINE_GUID(IID_IFilterChain,0xDCFBDCF6,0x0DC2,0x45F5,0x9A,0xB2,0x7C,0x33,0x0E,0xA0,0x9C,0x29);
209 DEFINE_GUID(IID_IFilterGraph,0x56A8689F,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
210 DEFINE_GUID(IID_IFilterGraph2,0x36B73882,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
211 DEFINE_GUID(IID_IFilterMapper,0x56A868A3,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
212 DEFINE_GUID(IID_IFilterMapper2,0xB79BB0B0,0x33C1,0x11D1,0xAB,0xE1,0x00,0xA0,0xC9,0x05,0xF3,0x75);
213 DEFINE_GUID(IID_IFilterMapper3,0xB79BB0B1,0x33C1,0x11D1,0xAB,0xE1,0x00,0xA0,0xC9,0x05,0xF3,0x75);
214 DEFINE_GUID(IID_IGraphBuilder,0x56A868A9,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
215 DEFINE_GUID(IID_IGraphConfig,0x03A1EB8E,0x32BF,0x4245,0x85,0x02,0x11,0x4D,0x08,0xA9,0xCB,0x88);
216 DEFINE_GUID(IID_IGraphConfigCallback,0xADE0FD60,0xD19D,0x11D2,0xAB,0xF6,0x00,0xA0,0xC9,0x05,0xF3,0x75);
217 DEFINE_GUID(IID_IGraphVersion,0x56A868AB,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
218 DEFINE_GUID(IID_IIPDVDec,0xB8E8BD60,0x0BFE,0x11D0,0xAF,0x91,0x00,0xAA,0x00,0xB6,0x7A,0x42);
219 DEFINE_GUID(IID_IMediaEventSink,0x56A868A2,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
220 DEFINE_GUID(IID_IMediaPropertyBag,0x6025A880,0xC0D5,0x11D0,0xBD,0x4E,0x00,0xA0,0xC9,0x11,0xCE,0x86);
221 DEFINE_GUID(IID_IMediaSample,0x56A8689A,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
222 DEFINE_GUID(IID_IMediaSample2,0x36B73884,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
223 DEFINE_GUID(IID_IMediaSeeking,0x36B73880,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
224 DEFINE_GUID(IID_IMemAllocator,0x56A8689C,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
225 DEFINE_GUID(IID_IMemAllocatorCallbackTemp,0x379A0CF0,0xC1DE,0x11D2,0xAB,0xF5,0x00,0xA0,0xC9,0x05,0xF3,0x75);
226 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp,0x92980B30,0xC1DE,0x11D2,0xAB,0xF5,0x00,0xA0,0xC9,0x05,0xF3,0x75);
227 DEFINE_GUID(IID_IMemInputPin,0x56A8689D,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
228 DEFINE_GUID(IID_IMpeg2Demultiplexer,0x436EEE9C,0x264F,0x4242,0x90,0xE1,0x4E,0x33,0x0C,0x10,0x75,0x12);
229 DEFINE_GUID(IID_IMPEG2StreamIdMap,0xD0E04C47,0x25B8,0x4369,0x92,0x5A,0x36,0x2A,0x01,0xD9,0x54,0x44);
230 DEFINE_GUID(IID_IOverlay,0x56A868A1,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
231 DEFINE_GUID(IID_IOverlayNotify,0x56A868A0,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
232 DEFINE_GUID(IID_IOverlayNotify2,0x680EFA10,0xD535,0x11D1,0x87,0xC8,0x00,0xA0,0xC9,0x22,0x31,0x96);
233 DEFINE_GUID(IID_IPersistMediaPropertyBag,0x5738E040,0xB67F,0x11D0,0xBD,0x4D,0x00,0xA0,0xC9,0x11,0xCE,0x86);
234 DEFINE_GUID(IID_IPin,0x56A86891,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
235 DEFINE_GUID(IID_IPinConnection,0x4A9A62D3,0x27D4,0x403D,0x91,0xE9,0x89,0xF5,0x40,0xE5,0x55,0x34);
236 DEFINE_GUID(IID_IPinFlowControl,0xC56E9858,0xDBF3,0x4F6B,0x81,0x19,0x38,0x4A,0xF2,0x06,0x0D,0xEB);
237 DEFINE_GUID(IID_IQualityControl,0x56A868A5,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
238 DEFINE_GUID(IID_IReferenceClock,0x56A86897,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
239 DEFINE_GUID(IID_IReferenceClock2,0x36B73885,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
240 DEFINE_GUID(IID_IResourceConsumer,0x56A868AD,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
241 DEFINE_GUID(IID_IResourceManager,0x56A868AC,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
242 DEFINE_GUID(IID_ISeekingPassThru,0x36B73883,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
243 DEFINE_GUID(IID_IStreamBuilder,0x56A868BF,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
244 DEFINE_GUID(IID_IVideoFrameStep,0xE46A9787,0x2B71,0x444D,0xA4,0xB5,0x1F,0xAB,0x7B,0x70,0x8D,0x6A);
245
246
247 #ifndef __WINE_REFTIME_DEFINED_
248 #define __WINE_REFTIME_DEFINED_
249 typedef double REFTIME;
250 #endif /* __WINE_REFTIME_DEFINED_ */
251
252 typedef LONGLONG        REFERENCE_TIME;
253 typedef DWORD_PTR       HSEMAPHORE;
254 typedef DWORD_PTR       HEVENT;
255
256 /* enums. */
257
258 typedef enum
259 {
260         PINDIR_INPUT = 0,
261         PINDIR_OUTPUT = 1,
262 } PIN_DIRECTION;
263
264 typedef enum
265 {
266         State_Stopped = 0,
267         State_Paused = 1,
268         State_Running = 2,
269 } FILTER_STATE;
270
271 /* structs. */
272
273 typedef struct
274 {
275         GUID    majortype;
276         GUID    subtype;
277         BOOL    bFixedSizeSamples;
278         BOOL    bTemporalCompression;
279         ULONG   lSampleSize;
280         GUID    formattype;
281         IUnknown*       pUnk;
282         ULONG   cbFormat;
283         BYTE*   pbFormat;
284 } AM_MEDIA_TYPE;
285
286 typedef struct
287 {
288         long    cBuffers;
289         long    cbBuffer;
290         long    cbAlign;
291         long    cbPrefix;
292 } ALLOCATOR_PROPERTIES;
293
294 typedef struct
295 {
296         IBaseFilter*    pFilter;
297         PIN_DIRECTION   dir;
298         WCHAR           achName[ 128 ];
299 } PIN_INFO;
300
301 typedef struct
302 {
303         WCHAR           achName[ 128 ];
304         IFilterGraph*   pGraph;
305 } FILTER_INFO;
306
307 typedef struct
308 {
309         REFERENCE_TIME  tStart;
310         REFERENCE_TIME  tStop;
311         DWORD           dwStartCookie;
312         DWORD           dwStopCookie;
313         DWORD           dwFlags;
314 } AM_STREAM_INFO;
315
316 typedef struct tagCOLORKEY
317 {
318         DWORD           KeyType;
319         DWORD           PaletteIndex;
320         COLORREF        LowColorValue;
321         COLORREF        HighColorValue;
322 } COLORKEY;
323
324
325
326 /* defines. */
327
328 #define CHARS_IN_GUID   39
329 #define MAX_PIN_NAME    128
330 #define MAX_FILTER_NAME 128
331
332
333 /* interfaces. */
334
335 /**************************************************************************
336  *
337  * IMediaFilter interface
338  *
339  */
340
341 #define ICOM_INTERFACE IMediaFilter
342 #define IMediaFilter_METHODS \
343     ICOM_METHOD (HRESULT,Stop) \
344     ICOM_METHOD (HRESULT,Pause) \
345     ICOM_METHOD1(HRESULT,Run,REFERENCE_TIME,a1) \
346     ICOM_METHOD2(HRESULT,GetState,DWORD,a1,FILTER_STATE*,a2) \
347     ICOM_METHOD1(HRESULT,SetSyncSource,IReferenceClock*,a1) \
348     ICOM_METHOD1(HRESULT,GetSyncSource,IReferenceClock**,a1)
349
350 #define IMediaFilter_IMETHODS \
351     IPersist_IMETHODS \
352     IMediaFilter_METHODS
353
354 ICOM_DEFINE(IMediaFilter,IPersist)
355 #undef ICOM_INTERFACE
356
357     /*** IUnknown methods ***/
358 #define IMediaFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
359 #define IMediaFilter_AddRef(p) ICOM_CALL (AddRef,p)
360 #define IMediaFilter_Release(p) ICOM_CALL (Release,p)
361     /*** IPersist methods ***/
362 #define IMediaFilter_GetClassID(p,a1) ICOM_CALL1(GetClassID,p,a1)
363     /*** IMediaFilter methods ***/
364 #define IMediaFilter_Stop(p) ICOM_CALL (Stop,p)
365 #define IMediaFilter_Pause(p) ICOM_CALL (Pause,p)
366 #define IMediaFilter_Run(p,a1) ICOM_CALL1(Run,p,a1)
367 #define IMediaFilter_GetState(p,a1,a2) ICOM_CALL2(GetState,p,a1,a2)
368 #define IMediaFilter_SetSyncSource(p,a1) ICOM_CALL1(SetSyncSource,p,a1)
369 #define IMediaFilter_GetSyncSource(p,a1) ICOM_CALL1(GetSyncSource,p,a1)
370
371 /**************************************************************************
372  *
373  * IBaseFilter interface
374  *
375  */
376
377 #define ICOM_INTERFACE IBaseFilter
378 #define IBaseFilter_METHODS \
379     ICOM_METHOD1(HRESULT,EnumPins,IEnumPins**,a1) \
380     ICOM_METHOD2(HRESULT,FindPin,LPCWSTR,a1,IPin**,a2) \
381     ICOM_METHOD1(HRESULT,QueryFilterInfo,FILTER_INFO*,a1) \
382     ICOM_METHOD2(HRESULT,JoinFilterGraph,IFilterGraph*,a1,LPCWSTR,a2) \
383     ICOM_METHOD1(HRESULT,QueryVendorInfo,LPWSTR*,a1)
384
385 #define IBaseFilter_IMETHODS \
386     IMediaFilter_IMETHODS \
387     IBaseFilter_METHODS
388
389 ICOM_DEFINE(IBaseFilter,IMediaFilter)
390 #undef ICOM_INTERFACE
391
392     /*** IUnknown methods ***/
393 #define IBaseFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
394 #define IBaseFilter_AddRef(p) ICOM_CALL (AddRef,p)
395 #define IBaseFilter_Release(p) ICOM_CALL (Release,p)
396     /*** IPersist methods ***/
397 #define IBaseFilter_GetClassID(p,a1) ICOM_CALL1(GetClassID,p,a1)
398     /*** IMediaFilter methods ***/
399 #define IBaseFilter_Stop(p,a1) ICOM_CALL1(Stop,p,a1)
400 #define IBaseFilter_Pause(p,a1) ICOM_CALL1(Pause,p,a1)
401 #define IBaseFilter_Run(p,a1) ICOM_CALL1(Run,p,a1)
402 #define IBaseFilter_GetState(p,a1,a2) ICOM_CALL2(GetState,p,a1,a2)
403 #define IBaseFilter_SetSyncSource(p,a1) ICOM_CALL1(SetSyncSource,p,a1)
404 #define IBaseFilter_GetSyncSource(p,a1) ICOM_CALL1(GetSyncSource,p,a1)
405     /*** IBaseFilter methods ***/
406 #define IBaseFilter_EnumPins(p,a1) ICOM_CALL1(EnumPins,p,a1)
407 #define IBaseFilter_FindPin(p,a1,a2) ICOM_CALL2(FindPin,p,a1,a2)
408 #define IBaseFilter_QueryFilterInfo(p,a1) ICOM_CALL1(QueryFilterInfo,p,a1)
409 #define IBaseFilter_JoinFilterGraph(p,a1,a2) ICOM_CALL2(JoinFilterGraph,p,a1,a2)
410 #define IBaseFilter_QueryVendorInfo(p,a1) ICOM_CALL1(QueryVendorInfo,p,a1)
411
412 /**************************************************************************
413  *
414  * IEnumFilters interface
415  *
416  */
417
418 #define ICOM_INTERFACE IEnumFilters
419 #define IEnumFilters_METHODS \
420     ICOM_METHOD3(HRESULT,Next,ULONG,a1,IBaseFilter**,a2,ULONG*,a3) \
421     ICOM_METHOD1(HRESULT,Skip,ULONG,a1) \
422     ICOM_METHOD (HRESULT,Reset) \
423     ICOM_METHOD1(HRESULT,Clone,IEnumFilters**,a1)
424
425 #define IEnumFilters_IMETHODS \
426     IUnknown_IMETHODS \
427     IEnumFilters_METHODS
428
429 ICOM_DEFINE(IEnumFilters,IUnknown)
430 #undef ICOM_INTERFACE
431
432     /*** IUnknown methods ***/
433 #define IEnumFilters_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
434 #define IEnumFilters_AddRef(p) ICOM_CALL (AddRef,p)
435 #define IEnumFilters_Release(p) ICOM_CALL (Release,p)
436     /*** IEnumFilters methods ***/
437 #define IEnumFilters_Next(p,a1,a2,a3) ICOM_CALL3(Next,p,a1,a2,a3)
438 #define IEnumFilters_Skip(p,a1) ICOM_CALL1(Skip,p,a1)
439 #define IEnumFilters_Reset(p) ICOM_CALL (Reset,p)
440 #define IEnumFilters_Clone(p,a1) ICOM_CALL1(Clone,p,a1)
441
442 /**************************************************************************
443  *
444  * IEnumMediaTypes interface
445  *
446  */
447
448 #define ICOM_INTERFACE IEnumMediaTypes
449 #define IEnumMediaTypes_METHODS \
450     ICOM_METHOD3(HRESULT,Next,ULONG,a1,AM_MEDIA_TYPE**,a2,ULONG*,a3) \
451     ICOM_METHOD1(HRESULT,Skip,ULONG,a1) \
452     ICOM_METHOD (HRESULT,Reset) \
453     ICOM_METHOD1(HRESULT,Clone,IEnumMediaTypes**,a1)
454
455 #define IEnumMediaTypes_IMETHODS \
456     IUnknown_IMETHODS \
457     IEnumMediaTypes_METHODS
458
459 ICOM_DEFINE(IEnumMediaTypes,IUnknown)
460 #undef ICOM_INTERFACE
461
462     /*** IUnknown methods ***/
463 #define IEnumMediaTypes_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
464 #define IEnumMediaTypes_AddRef(p) ICOM_CALL (AddRef,p)
465 #define IEnumMediaTypes_Release(p) ICOM_CALL (Release,p)
466     /*** IEnumMediaTypes methods ***/
467 #define IEnumMediaTypes_Next(p,a1,a2,a3) ICOM_CALL3(Next,p,a1,a2,a3)
468 #define IEnumMediaTypes_Skip(p,a1) ICOM_CALL1(Skip,p,a1)
469 #define IEnumMediaTypes_Reset(p) ICOM_CALL (Reset,p)
470 #define IEnumMediaTypes_Clone(p,a1) ICOM_CALL1(Clone,p,a1)
471
472 /**************************************************************************
473  *
474  * IEnumPins interface
475  *
476  */
477
478 #define ICOM_INTERFACE IEnumPins
479 #define IEnumPins_METHODS \
480     ICOM_METHOD3(HRESULT,Next,ULONG,a1,IPin**,a2,ULONG*,a3) \
481     ICOM_METHOD1(HRESULT,Skip,ULONG,a1) \
482     ICOM_METHOD (HRESULT,Reset) \
483     ICOM_METHOD1(HRESULT,Clone,IEnumPins**,a1)
484
485 #define IEnumPins_IMETHODS \
486     IUnknown_IMETHODS \
487     IEnumPins_METHODS
488
489 ICOM_DEFINE(IEnumPins,IUnknown)
490 #undef ICOM_INTERFACE
491
492     /*** IUnknown methods ***/
493 #define IEnumPins_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
494 #define IEnumPins_AddRef(p) ICOM_CALL (AddRef,p)
495 #define IEnumPins_Release(p) ICOM_CALL (Release,p)
496     /*** IEnumPins methods ***/
497 #define IEnumPins_Next(p,a1,a2,a3) ICOM_CALL3(Next,p,a1,a2,a3)
498 #define IEnumPins_Skip(p,a1) ICOM_CALL1(Skip,p,a1)
499 #define IEnumPins_Reset(p) ICOM_CALL (Reset,p)
500 #define IEnumPins_Clone(p,a1) ICOM_CALL1(Clone,p,a1)
501
502 /**************************************************************************
503  *
504  * IFileSourceFilter interface
505  *
506  */
507
508 #define ICOM_INTERFACE IFileSourceFilter
509 #define IFileSourceFilter_METHODS \
510     ICOM_METHOD2(HRESULT,Load,LPCOLESTR,a1,const AM_MEDIA_TYPE*,a2) \
511     ICOM_METHOD2(HRESULT,GetCurFile,LPOLESTR*,a1,AM_MEDIA_TYPE*,a2)
512
513 #define IFileSourceFilter_IMETHODS \
514     IUnknown_IMETHODS \
515     IFileSourceFilter_METHODS
516
517 ICOM_DEFINE(IFileSourceFilter,IUnknown)
518 #undef ICOM_INTERFACE
519
520     /*** IUnknown methods ***/
521 #define IFileSourceFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
522 #define IFileSourceFilter_AddRef(p) ICOM_CALL (AddRef,p)
523 #define IFileSourceFilter_Release(p) ICOM_CALL (Release,p)
524     /*** IFileSourceFilter methods ***/
525 #define IFileSourceFilter_Load(p,a1,a2) ICOM_CALL2(Load,p,a1,a2)
526 #define IFileSourceFilter_GetCurFile(p,a1,a2) ICOM_CALL2(GetCurFile,p,a1,a2)
527
528 /**************************************************************************
529  *
530  * IFilterGraph interface
531  *
532  */
533
534 #define ICOM_INTERFACE IFilterGraph
535 #define IFilterGraph_METHODS \
536     ICOM_METHOD2(HRESULT,AddFilter,IBaseFilter*,a1,LPCWSTR,a2) \
537     ICOM_METHOD1(HRESULT,RemoveFilter,IBaseFilter*,a1) \
538     ICOM_METHOD1(HRESULT,EnumFilters,IEnumFilters**,a1) \
539     ICOM_METHOD2(HRESULT,FindFilterByName,LPCWSTR,a1,IBaseFilter**,a2) \
540     ICOM_METHOD3(HRESULT,ConnectDirect,IPin*,a1,IPin*,a2,const AM_MEDIA_TYPE*,a3) \
541     ICOM_METHOD1(HRESULT,Reconnect,IPin*,a1) \
542     ICOM_METHOD1(HRESULT,Disconnect,IPin*,a1) \
543     ICOM_METHOD (HRESULT,SetDefaultSyncSource)
544
545 #define IFilterGraph_IMETHODS \
546     IUnknown_IMETHODS \
547     IFilterGraph_METHODS
548
549 ICOM_DEFINE(IFilterGraph,IUnknown)
550 #undef ICOM_INTERFACE
551
552     /*** IUnknown methods ***/
553 #define IFilterGraph_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
554 #define IFilterGraph_AddRef(p) ICOM_CALL (AddRef,p)
555 #define IFilterGraph_Release(p) ICOM_CALL (Release,p)
556     /*** IFilterGraph methods ***/
557 #define IFilterGraph_AddFilter(p,a1,a2) ICOM_CALL2(AddFilter,p,a1,a2)
558 #define IFilterGraph_RemoveFilter(p,a1) ICOM_CALL1(RemoveFilter,p,a1)
559 #define IFilterGraph_EnumFilters(p,a1) ICOM_CALL1(EnumFilters,p,a1)
560 #define IFilterGraph_FindFilterByName(p,a1,a2) ICOM_CALL2(FindFilterByName,p,a1,a2)
561 #define IFilterGraph_ConnectDirect(p,a1,a2,a3) ICOM_CALL3(ConnectDirect,p,a1,a2,a3)
562 #define IFilterGraph_Reconnect(p,a1) ICOM_CALL1(Reconnect,p,a1)
563 #define IFilterGraph_Disconnect(p,a1) ICOM_CALL1(Disconnect,p,a1)
564 #define IFilterGraph_SetDefaultSyncSource(p) ICOM_CALL (SetDefaultSyncSource,p)
565
566 /**************************************************************************
567  *
568  * IGraphBuilder interface
569  *
570  */
571
572 #define ICOM_INTERFACE IGraphBuilder
573 #define IGraphBuilder_METHODS \
574     ICOM_METHOD2(HRESULT,Connect,IPin*,a1,IPin*,a2) \
575     ICOM_METHOD1(HRESULT,Render,IPin*,a1) \
576     ICOM_METHOD2(HRESULT,RenderFile,LPCWSTR,a1,LPCWSTR,a2) \
577     ICOM_METHOD3(HRESULT,AddSourceFilter,LPCWSTR,a1,LPCWSTR,a2,IBaseFilter**,a3) \
578     ICOM_METHOD1(HRESULT,SetLogFile,DWORD_PTR,a1) \
579     ICOM_METHOD (HRESULT,Abort) \
580     ICOM_METHOD (HRESULT,ShouldOperationContinue)
581
582 #define IGraphBuilder_IMETHODS \
583     IFilterGraph_IMETHODS \
584     IGraphBuilder_METHODS
585
586 ICOM_DEFINE(IGraphBuilder,IFilterGraph)
587 #undef ICOM_INTERFACE
588
589     /*** IUnknown methods ***/
590 #define IGraphBuilder_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
591 #define IGraphBuilder_AddRef(p) ICOM_CALL (AddRef,p)
592 #define IGraphBuilder_Release(p) ICOM_CALL (Release,p)
593     /*** IFilterGraph methods ***/
594 #define IGraphBuilder_AddFilter(p,a1,a2) ICOM_CALL2(AddFilter,p,a1,a2)
595 #define IGraphBuilder_RemoveFilter(p,a1) ICOM_CALL1(RemoveFilter,p,a1)
596 #define IGraphBuilder_EnumFilters(p,a1) ICOM_CALL1(EnumFilters,p,a1)
597 #define IGraphBuilder_FindFilterByName(p,a1,a2) ICOM_CALL2(FindFilterByName,p,a1,a2)
598 #define IGraphBuilder_ConnectDirect(p,a1,a2,a3) ICOM_CALL3(ConnectDirect,p,a1,a2,a3)
599 #define IGraphBuilder_Reconnect(p,a1) ICOM_CALL1(Reconnect,p,a1)
600 #define IGraphBuilder_Disconnect(p,a1) ICOM_CALL1(Disconnect,p,a1)
601 #define IGraphBuilder_SetDefaultSyncSource(p,a1) ICOM_CALL1(SetDefaultSyncSource,p,a1)
602     /*** IGraphBuilder methods ***/
603 #define IGraphBuilder_Connect(p,a1,a2) ICOM_CALL2(Connect,p,a1,a2)
604 #define IGraphBuilder_Render(p,a1) ICOM_CALL1(Render,p,a1)
605 #define IGraphBuilder_RenderFile(p,a1,a2) ICOM_CALL2(RenderFile,p,a1,a2)
606 #define IGraphBuilder_AddSourceFilter(p,a1,a2,a3) ICOM_CALL3(AddSourceFilter,p,a1,a2,a3)
607 #define IGraphBuilder_SetLogFile(p,a1) ICOM_CALL1(SetLogFile,p,a1)
608 #define IGraphBuilder_Abort(p) ICOM_CALL (Abort,p)
609 #define IGraphBuilder_ShouldOperationContinue(p) ICOM_CALL (ShouldOperationContinue,p)
610
611 /**************************************************************************
612  *
613  * IFilterGraph2 interface
614  *
615  */
616
617 #define ICOM_INTERFACE IFilterGraph2
618 #define IFilterGraph2_METHODS \
619     ICOM_METHOD4(HRESULT,AddSourceFilterForMoniker,IMoniker*,a1,IBindCtx*,a2,LPCWSTR,a3,IBaseFilter**,a4) \
620     ICOM_METHOD2(HRESULT,ReconnectEx,IPin*,a1,const AM_MEDIA_TYPE*,a2) \
621     ICOM_METHOD3(HRESULT,RenderEx,IPin*,a1,DWORD,a2,DWORD*,a3)
622
623 #define IFilterGraph2_IMETHODS \
624     IGraphBuilder_IMETHODS \
625     IFilterGraph2_METHODS
626
627 ICOM_DEFINE(IFilterGraph2,IGraphBuilder)
628 #undef ICOM_INTERFACE
629
630     /*** IUnknown methods ***/
631 #define IFilterGraph2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
632 #define IFilterGraph2_AddRef(p) ICOM_CALL (AddRef,p)
633 #define IFilterGraph2_Release(p) ICOM_CALL (Release,p)
634     /*** IFilterGraph methods ***/
635 #define IFilterGraph2_AddFilter(p,a1,a2) ICOM_CALL2(AddFilter,p,a1,a2)
636 #define IFilterGraph2_RemoveFilter(p,a1) ICOM_CALL1(RemoveFilter,p,a1)
637 #define IFilterGraph2_EnumFilters(p,a1) ICOM_CALL1(EnumFilters,p,a1)
638 #define IFilterGraph2_FindFilterByName(p,a1,a2) ICOM_CALL2(FindFilterByName,p,a1,a2)
639 #define IFilterGraph2_ConnectDirect(p,a1,a2,a3) ICOM_CALL3(ConnectDirect,p,a1,a2,a3)
640 #define IFilterGraph2_Reconnect(p,a1) ICOM_CALL1(Reconnect,p,a1)
641 #define IFilterGraph2_Disconnect(p,a1) ICOM_CALL1(Disconnect,p,a1)
642 #define IFilterGraph2_SetDefaultSyncSource(p,a1) ICOM_CALL1(SetDefaultSyncSource,p,a1)
643     /*** IGraphBuilder methods ***/
644 #define IFilterGraph2_Connect(p,a1,a2) ICOM_CALL2(Connect,p,a1,a2)
645 #define IFilterGraph2_Render(p,a1) ICOM_CALL1(Render,p,a1)
646 #define IFilterGraph2_RenderFile(p,a1,a2) ICOM_CALL2(RenderFile,p,a1,a2)
647 #define IFilterGraph2_AddSourceFilter(p,a1,a2,a3) ICOM_CALL3(AddSourceFilter,p,a1,a2,a3)
648 #define IFilterGraph2_SetLogFile(p,a1) ICOM_CALL1(SetLogFile,p,a1)
649 #define IFilterGraph2_Abort(p) ICOM_CALL (Abort,p)
650 #define IFilterGraph2_ShouldOperationContinue(p) ICOM_CALL (ShouldOperationContinue,p)
651     /*** IFilterGraph2 methods ***/
652 #define IFilterGraph2_AddSourceFilterForMoniker(p,a1,a2,a3,a4) ICOM_CALL4(AddSourceFilterForMoniker,p,a1,a2,a3,a4)
653 #define IFilterGraph2_ReconnectEx(p,a1,a2) ICOM_CALL2(ReconnectEx,p,a1,a2)
654 #define IFilterGraph2_RenderEx(p,a1,a2,a3) ICOM_CALL3(RenderEx,p,a1,a2,a3)
655
656 /**************************************************************************
657  *
658  * IMediaSample interface
659  *
660  */
661
662 #define ICOM_INTERFACE IMediaSample
663 #define IMediaSample_METHODS \
664     ICOM_METHOD1(HRESULT,GetPointer,BYTE**,a1) \
665     ICOM_METHOD (long,GetSize) \
666     ICOM_METHOD2(HRESULT,GetTime,REFERENCE_TIME*,a1,REFERENCE_TIME*,a2) \
667     ICOM_METHOD2(HRESULT,SetTime,REFERENCE_TIME*,a1,REFERENCE_TIME*,a2) \
668     ICOM_METHOD (HRESULT,IsSyncPoint) \
669     ICOM_METHOD1(HRESULT,SetSyncPoint,BOOL,a1) \
670     ICOM_METHOD (HRESULT,IsPreroll) \
671     ICOM_METHOD1(HRESULT,SetPreroll,BOOL,a1) \
672     ICOM_METHOD (long,GetActualDataLength) \
673     ICOM_METHOD1(HRESULT,SetActualDataLength,long,a1) \
674     ICOM_METHOD1(HRESULT,GetMediaType,AM_MEDIA_TYPE**,a1) \
675     ICOM_METHOD1(HRESULT,SetMediaType,AM_MEDIA_TYPE*,a1) \
676     ICOM_METHOD (HRESULT,IsDiscontinuity) \
677     ICOM_METHOD1(HRESULT,SetDiscontinuity,BOOL,a1) \
678     ICOM_METHOD2(HRESULT,GetMediaTime,LONGLONG*,a1,LONGLONG*,a2) \
679     ICOM_METHOD2(HRESULT,SetMediaTime,LONGLONG*,a1,LONGLONG*,a2)
680
681 #define IMediaSample_IMETHODS \
682     IUnknown_IMETHODS \
683     IMediaSample_METHODS
684
685 ICOM_DEFINE(IMediaSample,IUnknown)
686 #undef ICOM_INTERFACE
687
688     /*** IUnknown methods ***/
689 #define IMediaSample_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
690 #define IMediaSample_AddRef(p) ICOM_CALL (AddRef,p)
691 #define IMediaSample_Release(p) ICOM_CALL (Release,p)
692     /*** IMediaSample methods ***/
693 #define IMediaSample_GetPointer(p,a1) ICOM_CALL1(GetPointer,p,a1)
694 #define IMediaSample_GetSize(p) ICOM_CALL (GetSize,p)
695 #define IMediaSample_GetTime(p,a1,a2) ICOM_CALL2(GetTime,p,a1,a2)
696 #define IMediaSample_SetTime(p,a1,a2) ICOM_CALL2(SetTime,p,a1,a2)
697 #define IMediaSample_IsSyncPoint(p) ICOM_CALL (IsSyncPoint,p)
698 #define IMediaSample_SetSyncPoint(p,a1) ICOM_CALL1(SetSyncPoint,p,a1)
699 #define IMediaSample_IsPreroll(p) ICOM_CALL (IsPreroll,p)
700 #define IMediaSample_SetPreroll(p,a1) ICOM_CALL1(SetPreroll,p,a1)
701 #define IMediaSample_GetActualDataLength(p,a1) ICOM_CALL1(GetActualDataLength,p,a1)
702 #define IMediaSample_SetActualDataLength(p,a1) ICOM_CALL1(SetActualDataLength,p,a1)
703 #define IMediaSample_GetMediaType(p,a1) ICOM_CALL1(GetMediaType,p,a1)
704 #define IMediaSample_SetMediaType(p,a1) ICOM_CALL1(SetMediaType,p,a1)
705 #define IMediaSample_IsDiscontinuity(p) ICOM_CALL (IsDiscontinuity,p)
706 #define IMediaSample_SetDiscontinuity(p,a1) ICOM_CALL1(SetDiscontinuity,p,a1)
707 #define IMediaSample_GetMediaTime(p,a1,a2) ICOM_CALL2(GetMediaTime,p,a1,a2)
708 #define IMediaSample_SetMediaTime(p,a1,a2) ICOM_CALL2(SetMediaTime,p,a1,a2)
709
710 /**************************************************************************
711  *
712  * IMediaSample2 interface
713  *
714  */
715
716 #define ICOM_INTERFACE IMediaSample2
717 #define IMediaSample2_METHODS \
718     ICOM_METHOD2(HRESULT,GetProperties,DWORD,a1,BYTE*,a2) \
719     ICOM_METHOD2(HRESULT,SetProperties,DWORD,a1,const BYTE*,a2)
720
721 #define IMediaSample2_IMETHODS \
722     IMediaSample_IMETHODS \
723     IMediaSample2_METHODS
724
725 ICOM_DEFINE(IMediaSample2,IMediaSample)
726 #undef ICOM_INTERFACE
727
728     /*** IUnknown methods ***/
729 #define IMediaSample2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
730 #define IMediaSample2_AddRef(p) ICOM_CALL (AddRef,p)
731 #define IMediaSample2_Release(p) ICOM_CALL (Release,p)
732     /*** IMediaSample methods ***/
733 #define IMediaSample2_GetPointer(p,a1) ICOM_CALL1(GetPointer,p,a1)
734 #define IMediaSample2_GetSize(p,a1) ICOM_CALL1(GetSize,p,a1)
735 #define IMediaSample2_GetTime(p,a1,a2) ICOM_CALL2(GetTime,p,a1,a2)
736 #define IMediaSample2_SetTime(p,a1,a2) ICOM_CALL2(SetTime,p,a1,a2)
737 #define IMediaSample2_IsSyncPoint(p,a1) ICOM_CALL1(IsSyncPoint,p,a1)
738 #define IMediaSample2_SetSyncPoint(p,a1) ICOM_CALL1(SetSyncPoint,p,a1)
739 #define IMediaSample2_IsPreroll(p,a1) ICOM_CALL1(IsPreroll,p,a1)
740 #define IMediaSample2_SetPreroll(p,a1) ICOM_CALL1(SetPreroll,p,a1)
741 #define IMediaSample2_GetActualDataLength(p,a1) ICOM_CALL1(GetActualDataLength,p,a1)
742 #define IMediaSample2_SetActualDataLength(p,a1) ICOM_CALL1(SetActualDataLength,p,a1)
743 #define IMediaSample2_GetMediaType(p,a1) ICOM_CALL1(GetMediaType,p,a1)
744 #define IMediaSample2_SetMediaType(p,a1) ICOM_CALL1(SetMediaType,p,a1)
745 #define IMediaSample2_IsDiscontinuity(p,a1) ICOM_CALL1(IsDiscontinuity,p,a1)
746 #define IMediaSample2_SetDiscontinuity(p,a1) ICOM_CALL1(SetDiscontinuity,p,a1)
747 #define IMediaSample2_GetMediaTime(p,a1,a2) ICOM_CALL2(GetMediaTime,p,a1,a2)
748 #define IMediaSample2_SetMediaTime(p,a1,a2) ICOM_CALL2(SetMediaTime,p,a1,a2)
749     /*** IMediaSample2 methods ***/
750 #define IMediaSample2_GetProperties(p,a1,a2) ICOM_CALL2(GetProperties,p,a1,a2)
751 #define IMediaSample2_SetProperties(p,a1,a2) ICOM_CALL2(SetProperties,p,a1,a2)
752
753 /**************************************************************************
754  *
755  * IMediaSeeking interface
756  *
757  */
758
759 #define ICOM_INTERFACE IMediaSeeking
760 #define IMediaSeeking_METHODS \
761     ICOM_METHOD1(HRESULT,GetCapabilities,DWORD*,a1) \
762     ICOM_METHOD1(HRESULT,CheckCapabilities,DWORD*,a1) \
763     ICOM_METHOD1(HRESULT,IsFormatSupported,const GUID*,a1) \
764     ICOM_METHOD1(HRESULT,QueryPreferredFormat,GUID*,a1) \
765     ICOM_METHOD1(HRESULT,GetTimeFormat,GUID*,a1) \
766     ICOM_METHOD1(HRESULT,IsUsingTimeFormat,const GUID*,a1) \
767     ICOM_METHOD1(HRESULT,SetTimeFormat,const GUID*,a1) \
768     ICOM_METHOD1(HRESULT,GetDuration,LONGLONG*,a1) \
769     ICOM_METHOD1(HRESULT,GetStopPosition,LONGLONG*,a1) \
770     ICOM_METHOD1(HRESULT,GetCurrentPosition,LONGLONG*,a1) \
771     ICOM_METHOD4(HRESULT,ConvertTimeFormat,LONGLONG*,a1,const GUID*,a2,LONGLONG,a3,const GUID*,a4) \
772     ICOM_METHOD4(HRESULT,SetPositions,LONGLONG*,a1,DWORD,a2,LONGLONG*,a3,DWORD,a4) \
773     ICOM_METHOD2(HRESULT,GetPositions,LONGLONG*,a1,LONGLONG*,a2) \
774     ICOM_METHOD2(HRESULT,GetAvailable,LONGLONG*,a1,LONGLONG*,a2) \
775     ICOM_METHOD1(HRESULT,SetRate,double,a1) \
776     ICOM_METHOD1(HRESULT,GetRate,double*,a1) \
777     ICOM_METHOD1(HRESULT,GetPreroll,LONGLONG*,a1)
778
779 #define IMediaSeeking_IMETHODS \
780     IUnknown_IMETHODS \
781     IMediaSeeking_METHODS
782
783 ICOM_DEFINE(IMediaSeeking,IUnknown)
784 #undef ICOM_INTERFACE
785
786     /*** IUnknown methods ***/
787 #define IMediaSeeking_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
788 #define IMediaSeeking_AddRef(p) ICOM_CALL (AddRef,p)
789 #define IMediaSeeking_Release(p) ICOM_CALL (Release,p)
790     /*** IMediaSeeking methods ***/
791 #define IMediaSeeking_GetCapabilities(p,a1) ICOM_CALL1(GetCapabilities,p,a1)
792 #define IMediaSeeking_CheckCapabilities(p,a1) ICOM_CALL1(CheckCapabilities,p,a1)
793 #define IMediaSeeking_IsFormatSupported(p,a1) ICOM_CALL1(IsFormatSupported,p,a1)
794 #define IMediaSeeking_QueryPreferredFormat(p,a1) ICOM_CALL1(QueryPreferredFormat,p,a1)
795 #define IMediaSeeking_GetTimeFormat(p,a1) ICOM_CALL1(GetTimeFormat,p,a1)
796 #define IMediaSeeking_IsUsingTimeFormat(p,a1) ICOM_CALL1(IsUsingTimeFormat,p,a1)
797 #define IMediaSeeking_SetTimeFormat(p,a1) ICOM_CALL1(SetTimeFormat,p,a1)
798 #define IMediaSeeking_GetDuration(p,a1) ICOM_CALL1(GetDuration,p,a1)
799 #define IMediaSeeking_GetStopPosition(p,a1) ICOM_CALL1(GetStopPosition,p,a1)
800 #define IMediaSeeking_GetCurrentPosition(p,a1) ICOM_CALL1(GetCurrentPosition,p,a1)
801 #define IMediaSeeking_ConvertTimeFormat(p,a1,a2,a3,a4) ICOM_CALL4(ConvertTimeFormat,p,a1,a2,a3,a4)
802 #define IMediaSeeking_SetPositions(p,a1,a2,a3,a4) ICOM_CALL4(SetPositions,p,a1,a2,a3,a4)
803 #define IMediaSeeking_GetPositions(p,a1,a2) ICOM_CALL2(GetPositions,p,a1,a2)
804 #define IMediaSeeking_GetAvailable(p,a1,a2) ICOM_CALL2(GetAvailable,p,a1,a2)
805 #define IMediaSeeking_SetRate(p,a1) ICOM_CALL1(SetRate,p,a1)
806 #define IMediaSeeking_GetRate(p,a1) ICOM_CALL1(GetRate,p,a1)
807 #define IMediaSeeking_GetPreroll(p,a1) ICOM_CALL1(GetPreroll,p,a1)
808
809 /**************************************************************************
810  *
811  * IMemAllocator interface
812  *
813  */
814
815 #define ICOM_INTERFACE IMemAllocator
816 #define IMemAllocator_METHODS \
817     ICOM_METHOD2(HRESULT,SetProperties,ALLOCATOR_PROPERTIES*,a1,ALLOCATOR_PROPERTIES*,a2) \
818     ICOM_METHOD1(HRESULT,GetProperties,ALLOCATOR_PROPERTIES*,a1) \
819     ICOM_METHOD (HRESULT,Commit) \
820     ICOM_METHOD (HRESULT,Decommit) \
821     ICOM_METHOD4(HRESULT,GetBuffer,IMediaSample**,a1,REFERENCE_TIME*,a2,REFERENCE_TIME*,a3,DWORD,a4) \
822     ICOM_METHOD1(HRESULT,ReleaseBuffer,IMediaSample*,a1)
823
824 #define IMemAllocator_IMETHODS \
825     IUnknown_IMETHODS \
826     IMemAllocator_METHODS
827
828 ICOM_DEFINE(IMemAllocator,IUnknown)
829 #undef ICOM_INTERFACE
830
831     /*** IUnknown methods ***/
832 #define IMemAllocator_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
833 #define IMemAllocator_AddRef(p) ICOM_CALL (AddRef,p)
834 #define IMemAllocator_Release(p) ICOM_CALL (Release,p)
835     /*** IMemAllocator methods ***/
836 #define IMemAllocator_SetProperties(p,a1,a2) ICOM_CALL2(SetProperties,p,a1,a2)
837 #define IMemAllocator_GetProperties(p,a1) ICOM_CALL1(GetProperties,p,a1)
838 #define IMemAllocator_Commit(p) ICOM_CALL (Commit,p)
839 #define IMemAllocator_Decommit(p) ICOM_CALL (Decommit,p)
840 #define IMemAllocator_GetBuffer(p,a1,a2,a3,a4) ICOM_CALL4(GetBuffer,p,a1,a2,a3,a4)
841 #define IMemAllocator_ReleaseBuffer(p,a1) ICOM_CALL1(ReleaseBuffer,p,a1)
842
843 /**************************************************************************
844  *
845  * IMemAllocatorCallbackTemp interface
846  *
847  */
848
849 #define ICOM_INTERFACE IMemAllocatorCallbackTemp
850 #define IMemAllocatorCallbackTemp_METHODS \
851     ICOM_METHOD1(HRESULT,SetNotify,IMemAllocatorNotifyCallbackTemp*,a1) \
852     ICOM_METHOD1(HRESULT,GetFreeCount,LONG*,a1)
853
854 #define IMemAllocatorCallbackTemp_IMETHODS \
855     IMemAllocator_IMETHODS \
856     IMemAllocatorCallbackTemp_METHODS
857
858 ICOM_DEFINE(IMemAllocatorCallbackTemp,IMemAllocator)
859 #undef ICOM_INTERFACE
860
861     /*** IUnknown methods ***/
862 #define IMemAllocatorCallbackTemp_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
863 #define IMemAllocatorCallbackTemp_AddRef(p) ICOM_CALL (AddRef,p)
864 #define IMemAllocatorCallbackTemp_Release(p) ICOM_CALL (Release,p)
865     /*** IMemAllocator methods ***/
866 #define IMemAllocatorCallbackTemp_SetProperties(p,a1,a2) ICOM_CALL2(SetProperties,p,a1,a2)
867 #define IMemAllocatorCallbackTemp_GetProperties(p,a1) ICOM_CALL1(GetProperties,p,a1)
868 #define IMemAllocatorCallbackTemp_Commit(p,a1) ICOM_CALL1(Commit,p,a1)
869 #define IMemAllocatorCallbackTemp_Decommit(p,a1) ICOM_CALL1(Decommit,p,a1)
870 #define IMemAllocatorCallbackTemp_GetBuffer(p,a1,a2,a3,a4) ICOM_CALL4(GetBuffer,p,a1,a2,a3,a4)
871 #define IMemAllocatorCallbackTemp_ReleaseBuffer(p,a1) ICOM_CALL1(ReleaseBuffer,p,a1)
872     /*** IMemAllocatorCallbackTemp methods ***/
873 #define IMemAllocatorCallbackTemp_SetNotify(p,a1) ICOM_CALL1(SetNotify,p,a1)
874 #define IMemAllocatorCallbackTemp_GetFreeCount(p,a1) ICOM_CALL1(GetFreeCount,p,a1)
875
876 /**************************************************************************
877  *
878  * IMemAllocatorNotifyCallbackTemp interface
879  *
880  */
881
882 #define ICOM_INTERFACE IMemAllocatorNotifyCallbackTemp
883 #define IMemAllocatorNotifyCallbackTemp_METHODS \
884     ICOM_METHOD (HRESULT,NotifyRelease)
885
886 #define IMemAllocatorNotifyCallbackTemp_IMETHODS \
887     IUnknown_IMETHODS \
888     IMemAllocatorNotifyCallbackTemp_METHODS
889
890 ICOM_DEFINE(IMemAllocatorNotifyCallbackTemp,IUnknown)
891 #undef ICOM_INTERFACE
892
893     /*** IUnknown methods ***/
894 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
895 #define IMemAllocatorNotifyCallbackTemp_AddRef(p) ICOM_CALL (AddRef,p)
896 #define IMemAllocatorNotifyCallbackTemp_Release(p) ICOM_CALL (Release,p)
897     /*** IMemAllocatorNotifyCallbackTemp methods ***/
898 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(p) ICOM_CALL (NotifyRelease,p)
899
900 /**************************************************************************
901  *
902  * IMemInputPin interface
903  *
904  */
905
906 #define ICOM_INTERFACE IMemInputPin
907 #define IMemInputPin_METHODS \
908     ICOM_METHOD1(HRESULT,GetAllocator,IMemAllocator**,a1) \
909     ICOM_METHOD2(HRESULT,NotifyAllocator,IMemAllocator*,a1,BOOL,a2) \
910     ICOM_METHOD1(HRESULT,GetAllocatorRequirements,ALLOCATOR_PROPERTIES*,a1) \
911     ICOM_METHOD1(HRESULT,Receive,IMediaSample*,a1) \
912     ICOM_METHOD3(HRESULT,ReceiveMultiple,IMediaSample**,a1,long,a2,long*,a3) \
913     ICOM_METHOD (HRESULT,ReceiveCanBlock)
914
915 #define IMemInputPin_IMETHODS \
916     IUnknown_IMETHODS \
917     IMemInputPin_METHODS
918
919 ICOM_DEFINE(IMemInputPin,IUnknown)
920 #undef ICOM_INTERFACE
921
922     /*** IUnknown methods ***/
923 #define IMemInputPin_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
924 #define IMemInputPin_AddRef(p) ICOM_CALL (AddRef,p)
925 #define IMemInputPin_Release(p) ICOM_CALL (Release,p)
926     /*** IMemInputPin methods ***/
927 #define IMemInputPin_GetAllocator(p,a1) ICOM_CALL1(GetAllocator,p,a1)
928 #define IMemInputPin_NotifyAllocator(p,a1,a2) ICOM_CALL2(NotifyAllocator,p,a1,a2)
929 #define IMemInputPin_GetAllocatorRequirements(p,a1) ICOM_CALL1(GetAllocatorRequirements,p,a1)
930 #define IMemInputPin_Receive(p,a1) ICOM_CALL1(Receive,p,a1)
931 #define IMemInputPin_ReceiveMultiple(p,a1,a2,a3) ICOM_CALL3(ReceiveMultiple,p,a1,a2,a3)
932 #define IMemInputPin_ReceiveCanBlock(p) ICOM_CALL (ReceiveCanBlock,p)
933
934 /**************************************************************************
935  *
936  * IPin interface
937  *
938  */
939
940 #define ICOM_INTERFACE IPin
941 #define IPin_METHODS \
942     ICOM_METHOD2(HRESULT,Connect,IPin*,a1,const AM_MEDIA_TYPE*,a2) \
943     ICOM_METHOD2(HRESULT,ReceiveConnection,IPin*,a1,const AM_MEDIA_TYPE*,a2) \
944     ICOM_METHOD (HRESULT,Disconnect) \
945     ICOM_METHOD1(HRESULT,ConnectedTo,IPin**,a1) \
946     ICOM_METHOD1(HRESULT,ConnectionMediaType,AM_MEDIA_TYPE*,a1) \
947     ICOM_METHOD1(HRESULT,QueryPinInfo,PIN_INFO*,a1) \
948     ICOM_METHOD1(HRESULT,QueryDirection,PIN_DIRECTION*,a1) \
949     ICOM_METHOD1(HRESULT,QueryId,LPWSTR*,a1) \
950     ICOM_METHOD1(HRESULT,QueryAccept,const AM_MEDIA_TYPE*,a1) \
951     ICOM_METHOD1(HRESULT,EnumMediaTypes,IEnumMediaTypes**,a1) \
952     ICOM_METHOD2(HRESULT,QueryInternalConnections,IPin**,a1,ULONG*,a2) \
953     ICOM_METHOD (HRESULT,EndOfStream) \
954     ICOM_METHOD (HRESULT,BeginFlush) \
955     ICOM_METHOD (HRESULT,EndFlush) \
956     ICOM_METHOD3(HRESULT,NewSegment,REFERENCE_TIME,a1,REFERENCE_TIME,a2,double,a3)
957
958 #define IPin_IMETHODS \
959     IUnknown_IMETHODS \
960     IPin_METHODS
961
962 ICOM_DEFINE(IPin,IUnknown)
963 #undef ICOM_INTERFACE
964
965     /*** IUnknown methods ***/
966 #define IPin_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
967 #define IPin_AddRef(p) ICOM_CALL (AddRef,p)
968 #define IPin_Release(p) ICOM_CALL (Release,p)
969     /*** IPin methods ***/
970 #define IPin_Connect(p,a1,a2) ICOM_CALL2(Connect,p,a1,a2)
971 #define IPin_ReceiveConnection(p,a1,a2) ICOM_CALL2(ReceiveConnection,p,a1,a2)
972 #define IPin_Disconnect(p) ICOM_CALL (Disconnect,p)
973 #define IPin_ConnectedTo(p,a1) ICOM_CALL1(ConnectedTo,p,a1)
974 #define IPin_ConnectionMediaType(p,a1) ICOM_CALL1(ConnectionMediaType,p,a1)
975 #define IPin_QueryPinInfo(p,a1) ICOM_CALL1(QueryPinInfo,p,a1)
976 #define IPin_QueryDirection(p,a1) ICOM_CALL1(QueryDirection,p,a1)
977 #define IPin_QueryId(p,a1) ICOM_CALL1(QueryId,p,a1)
978 #define IPin_QueryAccept(p,a1) ICOM_CALL1(QueryAccept,p,a1)
979 #define IPin_EnumMediaTypes(p,a1) ICOM_CALL1(EnumMediaTypes,p,a1)
980 #define IPin_QueryInternalConnections(p,a1,a2) ICOM_CALL2(QueryInternalConnections,p,a1,a2)
981 #define IPin_EndOfStream(p) ICOM_CALL (EndOfStream,p)
982 #define IPin_BeginFlush(p) ICOM_CALL (BeginFlush,p)
983 #define IPin_EndFlush(p) ICOM_CALL (EndFlush,p)
984 #define IPin_NewSegment(p,a1,a2,a3) ICOM_CALL3(NewSegment,p,a1,a2,a3)
985
986 /**************************************************************************
987  *
988  * IReferenceClock interface
989  *
990  */
991
992 #define ICOM_INTERFACE IReferenceClock
993 #define IReferenceClock_METHODS \
994     ICOM_METHOD1(HRESULT,GetTime,REFERENCE_TIME*,a1) \
995     ICOM_METHOD4(HRESULT,AdviseTime,REFERENCE_TIME,a1,REFERENCE_TIME,a2,HEVENT,a3,DWORD_PTR*,a4) \
996     ICOM_METHOD4(HRESULT,AdvisePeriodic,REFERENCE_TIME,a1,REFERENCE_TIME,a2,HSEMAPHORE,a3,DWORD_PTR*,a4) \
997     ICOM_METHOD1(HRESULT,Unadvise,DWORD_PTR,a1)
998
999 #define IReferenceClock_IMETHODS \
1000     IUnknown_IMETHODS \
1001     IReferenceClock_METHODS
1002
1003 ICOM_DEFINE(IReferenceClock,IUnknown)
1004 #undef ICOM_INTERFACE
1005
1006     /*** IUnknown methods ***/
1007 #define IReferenceClock_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1008 #define IReferenceClock_AddRef(p) ICOM_CALL (AddRef,p)
1009 #define IReferenceClock_Release(p) ICOM_CALL (Release,p)
1010     /*** IReferenceClock methods ***/
1011 #define IReferenceClock_GetTime(p,a1) ICOM_CALL1(GetTime,p,a1)
1012 #define IReferenceClock_AdviseTime(p,a1,a2,a3,a4) ICOM_CALL4(AdviseTime,p,a1,a2,a3,a4)
1013 #define IReferenceClock_AdvisePeriodic(p,a1,a2,a3,a4) ICOM_CALL4(AdvisePeriodic,p,a1,a2,a3,a4)
1014 #define IReferenceClock_Unadvise(p,a1) ICOM_CALL1(Unadvise,p,a1)
1015
1016 /**************************************************************************
1017  *
1018  * IReferenceClock2 interface
1019  *
1020  */
1021
1022 #define ICOM_INTERFACE IReferenceClock2
1023 #define IReferenceClock2_METHODS
1024
1025 #define IReferenceClock2_IMETHODS \
1026     IReferenceClock_IMETHODS \
1027     IReferenceClock2_METHODS
1028
1029 ICOM_DEFINE(IReferenceClock2,IReferenceClock)
1030 #undef ICOM_INTERFACE
1031
1032     /*** IUnknown methods ***/
1033 #define IReferenceClock2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1034 #define IReferenceClock2_AddRef(p) ICOM_CALL (AddRef,p)
1035 #define IReferenceClock2_Release(p) ICOM_CALL (Release,p)
1036     /*** IReferenceClock methods ***/
1037 #define IReferenceClock2_GetTime(p,a1) ICOM_CALL1(GetTime,p,a1)
1038 #define IReferenceClock2_AdviseTime(p,a1,a2,a3,a4) ICOM_CALL4(AdviseTime,p,a1,a2,a3,a4)
1039 #define IReferenceClock2_AdvisePeriodic(p,a1,a2,a3,a4) ICOM_CALL4(AdvisePeriodic,p,a1,a2,a3,a4)
1040 #define IReferenceClock2_Unadvise(p,a1) ICOM_CALL1(Unadvise,p,a1)
1041     /*** IReferenceClock2 methods ***/
1042
1043 #endif  /* __WINE_STRMIF_H_ */