Added some missing enums.
[wine] / include / strmif.h
1 /*
2  * Copyright (C) 2001 Hidenori Takeshima
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
17  */
18
19 #ifndef __WINE__
20 #include "rpc.h"
21 #include "rpcndr.h"
22 #ifndef COM_NO_WINDOWS_H
23 #include "windows.h"
24 #include "ole2.h"
25 #endif
26 #endif
27
28 #ifndef __WINE_STRMIF_H_
29 #define __WINE_STRMIF_H_
30
31 #include "wine/obj_base.h"
32 #include "wine/obj_misc.h"
33 #include "wine/obj_storage.h"
34 #include "wine/obj_moniker.h"
35 #include "wine/obj_oleaut.h"
36 #include "wine/obj_property.h"
37 #include "wine/obj_ksproperty.h"
38
39 /* undef GetTimeFormat - FIXME? */
40 #undef GetTimeFormat
41
42 /* FIXME - far from complete. */
43
44 /* forward decls. */
45
46 typedef struct IAMAnalogVideoDecoder IAMAnalogVideoDecoder;
47 typedef struct IAMAnalogVideoEncoder IAMAnalogVideoEncoder;
48 typedef struct IAMAudioInputMixer IAMAudioInputMixer;
49 typedef struct IAMAudioRendererStats IAMAudioRendererStats;
50 typedef struct IAMBufferNegotiation IAMBufferNegotiation;
51 typedef struct IAMCameraControl IAMCameraControl;
52 typedef struct IAMClockAdjust IAMClockAdjust;
53 typedef struct IAMCopyCaptureFileProgress IAMCopyCaptureFileProgress;
54 typedef struct IAMCrossbar IAMCrossbar;
55 typedef struct IAMDeviceRemoval IAMDeviceRemoval;
56 typedef struct IAMDevMemoryAllocator IAMDevMemoryAllocator;
57 typedef struct IAMDevMemoryControl IAMDevMemoryControl;
58 typedef struct IAMDroppedFrames IAMDroppedFrames;
59 typedef struct IAMExtDevice IAMExtDevice;
60 typedef struct IAMExtTransport IAMExtTransport;
61 typedef struct IAMFilterMiscFlags IAMFilterMiscFlags;
62 typedef struct IAMGraphStreams IAMGraphStreams;
63 typedef struct IAMLatency IAMLatency;
64 typedef struct IAMOpenProgress IAMOpenProgress;
65 typedef struct IAMOverlayFX IAMOverlayFX;
66 typedef struct IAMovie IAMovie;
67 typedef struct IAMovieSetup IAMovieSetup;
68 typedef struct IAMPhysicalPinInfo IAMPhysicalPinInfo;
69 typedef struct IAMPushSource IAMPushSource;
70 typedef struct IAMResourceControl IAMResourceControl;
71 typedef struct IAMStreamConfig IAMStreamConfig;
72 typedef struct IAMStreamControl IAMStreamControl;
73 typedef struct IAMStreamSelect IAMStreamSelect;
74 typedef struct IAMTimecodeDisplay IAMTimecodeDisplay;
75 typedef struct IAMTimecodeGenerator IAMTimecodeGenerator;
76 typedef struct IAMTimecodeReader IAMTimecodeReader;
77 typedef struct IAMTuner IAMTuner;
78 typedef struct IAMTunerNotification IAMTunerNotification;
79 typedef struct IAMTVAudio IAMTVAudio;
80 typedef struct IAMTVAudioNotification IAMTVAudioNotification;
81 typedef struct IAMTVTuner IAMTVTuner;
82 typedef struct IAMVfwCaptureDialogs IAMVfwCaptureDialogs;
83 typedef struct IAMVfwCompressDialogs IAMVfwCompressDialogs;
84 typedef struct IAMVideoCompression IAMVideoCompression;
85 typedef struct IAMVideoControl IAMVideoControl;
86 typedef struct IAMVideoDecimationProperties IAMVideoDecimationProperties;
87 typedef struct IAMVideoProcAmp IAMVideoProcAmp;
88 typedef struct IAsyncReader IAsyncReader;
89 typedef struct IMediaFilter IMediaFilter;
90 typedef struct IBaseFilter IBaseFilter;
91 typedef struct IBPCSatelliteTuner IBPCSatelliteTuner;
92 typedef struct ICaptureGraphBuilder ICaptureGraphBuilder;
93 typedef struct ICaptureGraphBuilder2 ICaptureGraphBuilder2;
94 typedef struct IConfigAviMux IConfigAviMux;
95 typedef struct IConfigInterleaving IConfigInterleaving;
96 typedef struct ICreateDevEnum ICreateDevEnum;
97 typedef struct IDDrawExclModeVideo IDDrawExclModeVideo;
98 typedef struct IDDrawExclModeVideoCallback IDDrawExclModeVideoCallback;
99 typedef struct IDecimateVideoImage IDecimateVideoImage;
100 typedef struct IDistributorNotify IDistributorNotify;
101 typedef struct IDrawVideoImage IDrawVideoImage;
102 typedef struct IDvdCmd IDvdCmd;
103 typedef struct IDvdControl IDvdControl;
104 typedef struct IDvdControl2 IDvdControl2;
105 typedef struct IDvdGraphBuilder IDvdGraphBuilder;
106 typedef struct IDvdInfo IDvdInfo;
107 typedef struct IDvdInfo2 IDvdInfo2;
108 typedef struct IDvdState IDvdState;
109 typedef struct IDVEnc IDVEnc;
110 typedef struct IDVSplitter IDVSplitter;
111 typedef struct IEnumFilters IEnumFilters;
112 typedef struct IEnumMediaTypes IEnumMediaTypes;
113 typedef struct IEnumPins IEnumPins;
114 typedef struct IEnumRegFilters IEnumRegFilters;
115 typedef struct IEnumStreamIdMap IEnumStreamIdMap;
116 typedef struct IFileSinkFilter IFileSinkFilter;
117 typedef struct IFileSinkFilter2 IFileSinkFilter2;
118 typedef struct IFileSourceFilter IFileSourceFilter;
119 typedef struct IFilterChain IFilterChain;
120 typedef struct IFilterGraph IFilterGraph;
121 typedef struct IFilterGraph2 IFilterGraph2;
122 typedef struct IFilterMapper IFilterMapper;
123 typedef struct IFilterMapper2 IFilterMapper2;
124 typedef struct IFilterMapper3 IFilterMapper3;
125 typedef struct IGraphBuilder IGraphBuilder;
126 typedef struct IGraphConfig IGraphConfig;
127 typedef struct IGraphConfigCallback IGraphConfigCallback;
128 typedef struct IGraphVersion IGraphVersion;
129 typedef struct IIPDVDec IIPDVDec;
130 typedef struct IMediaEventSink IMediaEventSink;
131 typedef struct IMediaPropertyBag IMediaPropertyBag;
132 typedef struct IMediaSample IMediaSample;
133 typedef struct IMediaSample2 IMediaSample2;
134 typedef struct IMediaSeeking IMediaSeeking;
135 typedef struct IMemAllocator IMemAllocator;
136 typedef struct IMemAllocatorCallbackTemp IMemAllocatorCallbackTemp;
137 typedef struct IMemAllocatorNotifyCallbackTemp IMemAllocatorNotifyCallbackTemp;
138 typedef struct IMemInputPin IMemInputPin;
139 typedef struct IMpeg2Demultiplexer IMpeg2Demultiplexer;
140 typedef struct IMPEG2StreamIdMap IMPEG2StreamIdMap;
141 typedef struct IOverlay IOverlay;
142 typedef struct IOverlayNotify IOverlayNotify;
143 typedef struct IOverlayNotify2 IOverlayNotify2;
144 typedef struct IPersistMediaPropertyBag IPersistMediaPropertyBag;
145 typedef struct IPin IPin;
146 typedef struct IPinConnection IPinConnection;
147 typedef struct IPinFlowControl IPinFlowControl;
148 typedef struct IQualityControl IQualityControl;
149 typedef struct IReferenceClock IReferenceClock;
150 typedef struct IReferenceClock2 IReferenceClock2;
151 typedef struct IResourceConsumer IResourceConsumer;
152 typedef struct IResourceManager IResourceManager;
153 typedef struct ISeekingPassThru ISeekingPassThru;
154 typedef struct IStreamBuilder IStreamBuilder;
155 typedef struct IVideoFrameStep IVideoFrameStep;
156
157 /* GUIDs. */
158
159 DEFINE_GUID(IID_IAMAnalogVideoDecoder,0xC6E13350,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
160 DEFINE_GUID(IID_IAMAnalogVideoEncoder,0xC6E133B0,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
161 DEFINE_GUID(IID_IAMAudioInputMixer,0x54C39221,0x8380,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
162 DEFINE_GUID(IID_IAMAudioRendererStats,0x22320CB2,0xD41A,0x11D2,0xBF,0x7C,0xD7,0xCB,0x9D,0xF0,0xBF,0x93);
163 DEFINE_GUID(IID_IAMBufferNegotiation,0x56ED71A0,0xAF5F,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
164 DEFINE_GUID(IID_IAMCameraControl,0xC6E13370,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
165 DEFINE_GUID(IID_IAMClockAdjust,0x4D5466B0,0xA49C,0x11D1,0xAB,0xE8,0x00,0xA0,0xC9,0x05,0xF3,0x75);
166 DEFINE_GUID(IID_IAMCopyCaptureFileProgress,0x670D1D20,0xA068,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
167 DEFINE_GUID(IID_IAMCrossbar,0xC6E13380,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
168 DEFINE_GUID(IID_IAMDeviceRemoval,0xF90A6130,0xB658,0x11D2,0xAE,0x49,0x00,0x00,0xF8,0x75,0x4B,0x99);
169 DEFINE_GUID(IID_IAMDevMemoryAllocator,0xC6545BF0,0xE76B,0x11D0,0xBD,0x52,0x00,0xA0,0xC9,0x11,0xCE,0x86);
170 DEFINE_GUID(IID_IAMDevMemoryControl,0xC6545BF1,0xE76B,0x11D0,0xBD,0x52,0x00,0xA0,0xC9,0x11,0xCE,0x86);
171 DEFINE_GUID(IID_IAMDroppedFrames,0xC6E13344,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
172 DEFINE_GUID(IID_IAMExtDevice,0xB5730A90,0x1A2C,0x11CF,0x8C,0x23,0x00,0xAA,0x00,0x6B,0x68,0x14);
173 DEFINE_GUID(IID_IAMExtTransport,0xA03CD5F0,0x3045,0x11CF,0x8C,0x44,0x00,0xAA,0x00,0x6B,0x68,0x14);
174 DEFINE_GUID(IID_IAMFilterMiscFlags,0x2DD74950,0xA890,0x11D1,0xAB,0xE8,0x00,0xA0,0xC9,0x05,0xF3,0x75);
175 DEFINE_GUID(IID_IAMGraphStreams,0x632105FA,0x072E,0x11D3,0x8A,0xF9,0x00,0xC0,0x4F,0xB6,0xBD,0x3D);
176 DEFINE_GUID(IID_IAMLatency,0x62EA93BA,0xEC62,0x11D2,0xB7,0x70,0x00,0xC0,0x4F,0xB6,0xBD,0x3D);
177 DEFINE_GUID(IID_IAMOpenProgress,0x8E1C39A1,0xDE53,0x11CF,0xAA,0x63,0x00,0x80,0xC7,0x44,0x52,0x8D);
178 DEFINE_GUID(IID_IAMOverlayFX,0x62FAE250,0x7E65,0x4460,0xBF,0xC9,0x63,0x98,0xB3,0x22,0x07,0x3C);
179 DEFINE_GUID(IID_IAMovie,0x359ACE10,0x7688,0x11CF,0x8B,0x23,0x00,0x80,0x5F,0x6C,0xEF,0x60);
180 DEFINE_GUID(IID_IAMovieSetup,0xA3D8CEC0,0x7E5A,0x11CF,0xBB,0xC5,0x00,0x80,0x5F,0x6C,0xEF,0x20);
181 DEFINE_GUID(IID_IAMPhysicalPinInfo,0xF938C991,0x3029,0x11CF,0x8C,0x44,0x00,0xAA,0x00,0x6B,0x68,0x14);
182 DEFINE_GUID(IID_IAMPushSource,0xF185FE76,0xE64E,0x11D2,0xB7,0x6E,0x00,0xC0,0x4F,0xB6,0xBD,0x3D);
183 DEFINE_GUID(IID_IAMResourceControl,0x8389D2D0,0x77D7,0x11D1,0xAB,0xE6,0x00,0xA0,0xC9,0x05,0xF3,0x75);
184 DEFINE_GUID(IID_IAMStreamConfig,0xC6E13340,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
185 DEFINE_GUID(IID_IAMStreamControl,0x36B73881,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
186 DEFINE_GUID(IID_IAMStreamSelect,0xC1960960,0x17F5,0x11D1,0xAB,0xE1,0x00,0xA0,0xC9,0x05,0xF3,0x75);
187 DEFINE_GUID(IID_IAMTimecodeDisplay,0x9B496CE2,0x811B,0x11CF,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14);
188 DEFINE_GUID(IID_IAMTimecodeGenerator,0x9B496CE0,0x811B,0x11CF,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14);
189 DEFINE_GUID(IID_IAMTimecodeReader,0x9B496CE1,0x811B,0x11CF,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14);
190 DEFINE_GUID(IID_IAMTuner,0x211A8761,0x03AC,0x11D1,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
191 DEFINE_GUID(IID_IAMTunerNotification,0x211A8760,0x03AC,0x11D1,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
192 DEFINE_GUID(IID_IAMTVAudio,0x83EC1C30,0x23D1,0x11D1,0x99,0xE6,0x00,0xA0,0xC9,0x56,0x02,0x66);
193 DEFINE_GUID(IID_IAMTVAudioNotification,0x83EC1C33,0x23D1,0x11D1,0x99,0xE6,0x00,0xA0,0xC9,0x56,0x02,0x66);
194 DEFINE_GUID(IID_IAMTVTuner,0x211A8766,0x03AC,0x11D1,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
195 DEFINE_GUID(IID_IAMVfwCaptureDialogs,0xD8D715A0,0x6E5E,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
196 DEFINE_GUID(IID_IAMVfwCompressDialogs,0xD8D715A3,0x6E5E,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
197 DEFINE_GUID(IID_IAMVideoCompression,0xC6E13343,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
198 DEFINE_GUID(IID_IAMVideoControl,0x6A2E0670,0x28E4,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
199 DEFINE_GUID(IID_IAMVideoDecimationProperties,0x60D32930,0x13DA,0x11D3,0x9E,0xC6,0xC4,0xFC,0xAE,0xF5,0xC7,0xBE);
200 DEFINE_GUID(IID_IAMVideoProcAmp,0xC6E13360,0x30AC,0x11D0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56);
201 DEFINE_GUID(IID_IAsyncReader,0x56A868AA,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
202 DEFINE_GUID(IID_IMediaFilter,0x56A86899,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
203 DEFINE_GUID(IID_IBaseFilter,0x56A86895,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
204 DEFINE_GUID(IID_IBPCSatelliteTuner,0x211A8765,0x03AC,0x11D1,0x8D,0x13,0x00,0xAA,0x00,0xBD,0x83,0x39);
205 DEFINE_GUID(IID_ICaptureGraphBuilder,0xBF87B6E0,0x8C27,0x11D0,0xB3,0xF0,0x00,0xAA,0x00,0x37,0x61,0xC5);
206 DEFINE_GUID(IID_ICaptureGraphBuilder2,0x93E5A4E0,0x2D50,0x11D2,0xAB,0xFA,0x00,0xA0,0xC9,0xC6,0xE3,0x8D);
207 DEFINE_GUID(IID_IConfigAviMux,0x5ACD6AA0,0xF482,0x11CE,0x8B,0x67,0x00,0xAA,0x00,0xA3,0xF1,0xA6);
208 DEFINE_GUID(IID_IConfigInterleaving,0xBEE3D220,0x157B,0x11D0,0xBD,0x23,0x00,0xA0,0xC9,0x11,0xCE,0x86);
209 DEFINE_GUID(IID_ICreateDevEnum,0x29840822,0x5B84,0x11D0,0xBD,0x3B,0x00,0xA0,0xC9,0x11,0xCE,0x86);
210 DEFINE_GUID(IID_IDDrawExclModeVideo,0x153ACC21,0xD83B,0x11D1,0x82,0xBF,0x00,0xA0,0xC9,0x69,0x6C,0x8F);
211 DEFINE_GUID(IID_IDDrawExclModeVideoCallback,0x913C24A0,0x20AB,0x11D2,0x90,0x38,0x00,0xA0,0xC9,0x69,0x72,0x98);
212 DEFINE_GUID(IID_IDecimateVideoImage,0x2E5EA3E0,0xE924,0x11D2,0xB6,0xDA,0x00,0xA0,0xC9,0x95,0xE8,0xDF);
213 DEFINE_GUID(IID_IDistributorNotify,0x56A868AF,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
214 DEFINE_GUID(IID_IDrawVideoImage,0x48EFB120,0xAB49,0x11D2,0xAE,0xD2,0x00,0xA0,0xC9,0x95,0xE8,0xD5);
215 DEFINE_GUID(IID_IDvdCmd,0x5A4A97E4,0x94EE,0x4A55,0x97,0x51,0x74,0xB5,0x64,0x3A,0xA2,0x7D);
216 DEFINE_GUID(IID_IDvdControl,0xA70EFE61,0xE2A3,0x11D0,0xA9,0xBE,0x00,0xAA,0x00,0x61,0xBE,0x93);
217 DEFINE_GUID(IID_IDvdControl2,0x33BC7430,0xEEC0,0x11D2,0x82,0x01,0x00,0xA0,0xC9,0xD7,0x48,0x42);
218 DEFINE_GUID(IID_IDvdGraphBuilder,0xFCC152B6,0xF372,0x11D0,0x8E,0x00,0x00,0xC0,0x4F,0xD7,0xC0,0x8B);
219 DEFINE_GUID(IID_IDvdInfo,0xA70EFE60,0xE2A3,0x11D0,0xA9,0xBE,0x00,0xAA,0x00,0x61,0xBE,0x93);
220 DEFINE_GUID(IID_IDvdInfo2,0x34151510,0xEEC0,0x11D2,0x82,0x01,0x00,0xA0,0xC9,0xD7,0x48,0x42);
221 DEFINE_GUID(IID_IDvdState,0x86303D6D,0x1C4A,0x4087,0xAB,0x42,0xF7,0x11,0x16,0x70,0x48,0xEF);
222 DEFINE_GUID(IID_IDVEnc,0xD18E17A0,0xAACB,0x11D0,0xAF,0xB0,0x00,0xAA,0x00,0xB6,0x7A,0x42);
223 DEFINE_GUID(IID_IDVSplitter,0x92A3A302,0xDA7C,0x4A1F,0xBA,0x7E,0x18,0x02,0xBB,0x5D,0x2D,0x02);
224 DEFINE_GUID(IID_IEnumFilters,0x56A86893,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
225 DEFINE_GUID(IID_IEnumMediaTypes,0x89C31040,0x846B,0x11CE,0x97,0xD3,0x00,0xAA,0x00,0x55,0x59,0x5A);
226 DEFINE_GUID(IID_IEnumPins,0x56A86892,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
227 DEFINE_GUID(IID_IEnumRegFilters,0x56A868A4,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
228 DEFINE_GUID(IID_IEnumStreamIdMap,0x945C1566,0x6202,0x46FC,0x96,0xC7,0xD8,0x7F,0x28,0x9C,0x65,0x34);
229 DEFINE_GUID(IID_IFileSinkFilter,0xA2104830,0x7C70,0x11CF,0x8B,0xCE,0x00,0xAA,0x00,0xA3,0xF1,0xA6);
230 DEFINE_GUID(IID_IFileSinkFilter2,0x00855B90,0xCE1B,0x11D0,0xBD,0x4F,0x00,0xA0,0xC9,0x11,0xCE,0x86);
231 DEFINE_GUID(IID_IFileSourceFilter,0x56A868A6,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
232 DEFINE_GUID(IID_IFilterChain,0xDCFBDCF6,0x0DC2,0x45F5,0x9A,0xB2,0x7C,0x33,0x0E,0xA0,0x9C,0x29);
233 DEFINE_GUID(IID_IFilterGraph,0x56A8689F,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
234 DEFINE_GUID(IID_IFilterGraph2,0x36B73882,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
235 DEFINE_GUID(IID_IFilterMapper,0x56A868A3,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
236 DEFINE_GUID(IID_IFilterMapper2,0xB79BB0B0,0x33C1,0x11D1,0xAB,0xE1,0x00,0xA0,0xC9,0x05,0xF3,0x75);
237 DEFINE_GUID(IID_IFilterMapper3,0xB79BB0B1,0x33C1,0x11D1,0xAB,0xE1,0x00,0xA0,0xC9,0x05,0xF3,0x75);
238 DEFINE_GUID(IID_IGraphBuilder,0x56A868A9,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
239 DEFINE_GUID(IID_IGraphConfig,0x03A1EB8E,0x32BF,0x4245,0x85,0x02,0x11,0x4D,0x08,0xA9,0xCB,0x88);
240 DEFINE_GUID(IID_IGraphConfigCallback,0xADE0FD60,0xD19D,0x11D2,0xAB,0xF6,0x00,0xA0,0xC9,0x05,0xF3,0x75);
241 DEFINE_GUID(IID_IGraphVersion,0x56A868AB,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
242 DEFINE_GUID(IID_IIPDVDec,0xB8E8BD60,0x0BFE,0x11D0,0xAF,0x91,0x00,0xAA,0x00,0xB6,0x7A,0x42);
243 DEFINE_GUID(IID_IMediaEventSink,0x56A868A2,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
244 DEFINE_GUID(IID_IMediaPropertyBag,0x6025A880,0xC0D5,0x11D0,0xBD,0x4E,0x00,0xA0,0xC9,0x11,0xCE,0x86);
245 DEFINE_GUID(IID_IMediaSample,0x56A8689A,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
246 DEFINE_GUID(IID_IMediaSample2,0x36B73884,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
247 DEFINE_GUID(IID_IMediaSeeking,0x36B73880,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
248 DEFINE_GUID(IID_IMemAllocator,0x56A8689C,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
249 DEFINE_GUID(IID_IMemAllocatorCallbackTemp,0x379A0CF0,0xC1DE,0x11D2,0xAB,0xF5,0x00,0xA0,0xC9,0x05,0xF3,0x75);
250 DEFINE_GUID(IID_IMemAllocatorNotifyCallbackTemp,0x92980B30,0xC1DE,0x11D2,0xAB,0xF5,0x00,0xA0,0xC9,0x05,0xF3,0x75);
251 DEFINE_GUID(IID_IMemInputPin,0x56A8689D,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
252 DEFINE_GUID(IID_IMpeg2Demultiplexer,0x436EEE9C,0x264F,0x4242,0x90,0xE1,0x4E,0x33,0x0C,0x10,0x75,0x12);
253 DEFINE_GUID(IID_IMPEG2StreamIdMap,0xD0E04C47,0x25B8,0x4369,0x92,0x5A,0x36,0x2A,0x01,0xD9,0x54,0x44);
254 DEFINE_GUID(IID_IOverlay,0x56A868A1,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
255 DEFINE_GUID(IID_IOverlayNotify,0x56A868A0,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
256 DEFINE_GUID(IID_IOverlayNotify2,0x680EFA10,0xD535,0x11D1,0x87,0xC8,0x00,0xA0,0xC9,0x22,0x31,0x96);
257 DEFINE_GUID(IID_IPersistMediaPropertyBag,0x5738E040,0xB67F,0x11D0,0xBD,0x4D,0x00,0xA0,0xC9,0x11,0xCE,0x86);
258 DEFINE_GUID(IID_IPin,0x56A86891,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
259 DEFINE_GUID(IID_IPinConnection,0x4A9A62D3,0x27D4,0x403D,0x91,0xE9,0x89,0xF5,0x40,0xE5,0x55,0x34);
260 DEFINE_GUID(IID_IPinFlowControl,0xC56E9858,0xDBF3,0x4F6B,0x81,0x19,0x38,0x4A,0xF2,0x06,0x0D,0xEB);
261 DEFINE_GUID(IID_IQualityControl,0x56A868A5,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
262 DEFINE_GUID(IID_IReferenceClock,0x56A86897,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
263 DEFINE_GUID(IID_IReferenceClock2,0x36B73885,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
264 DEFINE_GUID(IID_IResourceConsumer,0x56A868AD,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
265 DEFINE_GUID(IID_IResourceManager,0x56A868AC,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
266 DEFINE_GUID(IID_ISeekingPassThru,0x36B73883,0xC2C8,0x11CF,0x8B,0x46,0x00,0x80,0x5F,0x6C,0xEF,0x60);
267 DEFINE_GUID(IID_IStreamBuilder,0x56A868BF,0x0AD4,0x11CE,0xB0,0x3A,0x00,0x20,0xAF,0x0B,0xA7,0x70);
268 DEFINE_GUID(IID_IVideoFrameStep,0xE46A9787,0x2B71,0x444D,0xA4,0xB5,0x1F,0xAB,0x7B,0x70,0x8D,0x6A);
269
270
271 #ifndef __WINE_REFTIME_DEFINED_
272 #define __WINE_REFTIME_DEFINED_
273 typedef double REFTIME;
274 #endif /* __WINE_REFTIME_DEFINED_ */
275
276 typedef LONGLONG        REFERENCE_TIME;
277 typedef DWORD_PTR       HSEMAPHORE;
278 typedef DWORD_PTR       HEVENT;
279
280 /* enums. */
281
282 typedef enum
283 {
284         PINDIR_INPUT = 0,
285         PINDIR_OUTPUT = 1,
286 } PIN_DIRECTION;
287
288 typedef enum
289 {
290         State_Stopped = 0,
291         State_Paused = 1,
292         State_Running = 2,
293 } FILTER_STATE;
294
295 typedef enum
296 {
297         Famine = 0,
298         Flood = 1,
299 } QualityMessageType;
300
301 typedef enum
302 {
303         REG_PINFLAG_B_ZERO = 0x1,
304         REG_PINFLAG_B_RENDERER = 0x2,
305         REG_PINFLAG_B_MANY = 0x4,
306         REG_PINFLAG_B_OUTPUT = 0x8,
307 } REG_PINFLAG;
308
309 typedef enum
310 {
311         AM_SAMPLE_SPLICEPOINT           = 0x1,
312         AM_SAMPLE_PREROLL               = 0x2,
313         AM_SAMPLE_DATADISCONTINUITY     = 0x4,
314         AM_SAMPLE_TYPECHANGED           = 0x8,
315         AM_SAMPLE_TIMEVALID             = 0x10,
316         AM_SAMPLE_TIMEDISCONTINUITY     = 0x40,
317         AM_SAMPLE_FLUSH_ON_PAUSE        = 0x80,
318         AM_SAMPLE_STOPVALID             = 0x100,
319         AM_SAMPLE_ENDOFSTREAM           = 0x200,
320
321         AM_STREAM_MEDIA                 = 0,
322         AM_STREAM_CONTROL               = 1
323 } AM_SAMPLE_PROPERTY_FLAGS;
324
325 enum __MIDL_IFilterMapper_0001
326 {
327         MERIT_PREFERRED = 0x800000,
328         MERIT_NORMAL    = 0x600000,
329         MERIT_UNLIKELY  = 0x400000,
330         MERIT_DO_NOT_USE        = 0x200000,
331         MERIT_HW_COMPRESSOR     = 0x100050,
332         MERIT_SW_COMPRESSOR     = 0x100000,
333 };
334
335 typedef enum
336 {
337         AM_FILE_OVERWRITE = 0x0001,
338 } AM_FILESINK_FLAGS;
339
340 typedef enum
341 {
342         AM_SEEKING_NoPositioning                = 0x0000,
343         AM_SEEKING_AbsolutePositioning          = 0x0001,
344         AM_SEEKING_RelativePositioning          = 0x0002,
345         AM_SEEKING_IncrementalPositioning       = 0x0003,
346         AM_SEEKING_PositioningBitsMask          = 0x0003,
347
348         AM_SEEKING_SeekToKeyFrame               = 0x0004,
349         AM_SEEKING_ReturnTime                   = 0x0008,
350         AM_SEEKING_Segment                      = 0x0010,
351         AM_SEEKING_NoFlush                      = 0x0020,
352 } AM_SEEKING_SEEKING_FLAGS;
353
354 typedef enum
355 {
356         AM_SEEKING_CanSeekAbsolute      = 0x0001,
357         AM_SEEKING_CanSeekForwards      = 0x0002,
358         AM_SEEKING_CanSeekBackwards     = 0x0004,
359         AM_SEEKING_CanGetCurrentPos     = 0x0008,
360         AM_SEEKING_CanGetStopPos        = 0x0010,
361         AM_SEEKING_CanGetDuration       = 0x0020,
362         AM_SEEKING_CanPlayBackwards     = 0x0040,
363         AM_SEEKING_CanDoSegments        = 0x0080,
364         AM_SEEKING_Source               = 0x0100,
365 } AM_SEEKING_SEEKING_CAPABILITIES;
366
367 enum _AM_RENSDEREXFLAGS
368 {
369         AM_RENDEREX_RENDERTOEXISTINGRENDERERS = 0x0001,
370 };
371
372
373
374 /* structs. */
375
376 typedef struct
377 {
378         GUID    majortype;
379         GUID    subtype;
380         BOOL    bFixedSizeSamples;
381         BOOL    bTemporalCompression;
382         ULONG   lSampleSize;
383         GUID    formattype;
384         IUnknown*       pUnk;
385         ULONG   cbFormat;
386         BYTE*   pbFormat;
387 } AM_MEDIA_TYPE;
388
389 typedef struct
390 {
391         long    cBuffers;
392         long    cbBuffer;
393         long    cbAlign;
394         long    cbPrefix;
395 } ALLOCATOR_PROPERTIES;
396
397 typedef struct
398 {
399         IBaseFilter*    pFilter;
400         PIN_DIRECTION   dir;
401         WCHAR           achName[ 128 ];
402 } PIN_INFO;
403
404 typedef struct
405 {
406         WCHAR           achName[ 128 ];
407         IFilterGraph*   pGraph;
408 } FILTER_INFO;
409
410 typedef struct
411 {
412         REFERENCE_TIME  tStart;
413         REFERENCE_TIME  tStop;
414         DWORD           dwStartCookie;
415         DWORD           dwStopCookie;
416         DWORD           dwFlags;
417 } AM_STREAM_INFO;
418
419 typedef struct tagCOLORKEY
420 {
421         DWORD           KeyType;
422         DWORD           PaletteIndex;
423         COLORREF        LowColorValue;
424         COLORREF        HighColorValue;
425 } COLORKEY;
426
427 typedef struct
428 {
429         QualityMessageType      Type;
430         long                    Proportion;
431         REFERENCE_TIME          Late;
432         REFERENCE_TIME          TimeStamp;
433 } Quality;
434
435 typedef struct
436 {
437         const CLSID*    clsMajorType;
438         const CLSID*    clsMinorType;
439 } REGPINTYPES;
440
441 typedef struct
442 {
443         LPWSTR  strName;
444         BOOL    bRendered;
445         BOOL    bOutput;
446         BOOL    bZero;
447         BOOL    bMany;
448         const CLSID*    clsConnectsToFilter;
449         const WCHAR*    strConnectsToPin;
450         UINT    nMediaTypes;
451         const REGPINTYPES*      lpMediaType;
452 } REGFILTERPINS;
453
454 typedef struct
455 {
456         CLSID   clsMedium;
457         DWORD   dw1;
458         DWORD   dw2;
459 } REGPINMEDIUM;
460
461 typedef struct
462 {
463         DWORD   dwFlags;
464         UINT    cInstances;
465         UINT    nMediaTypes;
466         const REGPINTYPES*      lpMediaType;
467         UINT    nMediums;
468         const REGPINMEDIUM*     lpMedium;
469         const CLSID*    clsPinCategory;
470 } REGFILTERPINS2;
471
472 typedef struct
473 {
474         DWORD   dwVersion;
475         DWORD   dwMerit;
476         union {
477                 struct {
478                         ULONG   cPins;
479                         const REGFILTERPINS*    rgPins;
480                 } DUMMYSTRUCTNAME1;
481                 struct {
482                         ULONG   cPins2;
483                         const REGFILTERPINS2*   rgPins2;
484                 } DUMMYSTRUCTNAME2;
485         } DUMMYUNIONNAME;
486 } REGFILTER2;
487
488 typedef struct
489 {
490         DWORD           cbData;
491         DWORD           dwTypeSpecificFlags;
492         DWORD           dwSampleFlags;
493         LONG            lActual;
494         REFERENCE_TIME  tStart;
495         REFERENCE_TIME  tStop;
496         DWORD           dwStreamId;
497         AM_MEDIA_TYPE*  pMediaType;
498         BYTE*           pbBuffer;
499         LONG            cbBuffer;
500 } AM_SAMPLE2_PROPERTIES;
501
502
503
504 /* defines. */
505
506 #define CHARS_IN_GUID   39
507 #define MAX_PIN_NAME    128
508 #define MAX_FILTER_NAME 128
509
510 #define AM_GBF_PREVFRAMESKIPPED         1
511 #define AM_GBF_NOTASYNCPOINT            2
512 #define AM_GBF_NOWAIT                   4
513
514
515 /* interfaces. */
516
517 /**************************************************************************
518  *
519  * IAsyncReader interface
520  *
521  */
522
523 #define ICOM_INTERFACE IAsyncReader
524 #define IAsyncReader_METHODS \
525     ICOM_METHOD3(HRESULT,RequestAllocator,IMemAllocator*,a1,ALLOCATOR_PROPERTIES*,a2,IMemAllocator**,a3) \
526     ICOM_METHOD2(HRESULT,Request,IMediaSample*,a1,DWORD_PTR,a2) \
527     ICOM_METHOD3(HRESULT,WaitForNext,DWORD,a1,IMediaSample**,a2,DWORD_PTR*,a3) \
528     ICOM_METHOD1(HRESULT,SyncReadAligned,IMediaSample*,a1) \
529     ICOM_METHOD3(HRESULT,SyncRead,LONGLONG,a1,LONG,a2,BYTE*,a3) \
530     ICOM_METHOD2(HRESULT,Length,LONGLONG*,a1,LONGLONG*,a2) \
531     ICOM_METHOD (HRESULT,BeginFlush) \
532     ICOM_METHOD (HRESULT,EndFlush)
533
534 #define IAsyncReader_IMETHODS \
535     IUnknown_IMETHODS \
536     IAsyncReader_METHODS
537
538 ICOM_DEFINE(IAsyncReader,IUnknown)
539 #undef ICOM_INTERFACE
540
541     /*** IUnknown methods ***/
542 #define IAsyncReader_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
543 #define IAsyncReader_AddRef(p) ICOM_CALL (AddRef,p)
544 #define IAsyncReader_Release(p) ICOM_CALL (Release,p)
545     /*** IAsyncReader methods ***/
546 #define IAsyncReader_RequestAllocator(p,a1,a2,a3) ICOM_CALL3(RequestAllocator,p,a1,a2,a3)
547 #define IAsyncReader_Request(p,a1,a2) ICOM_CALL2(Request,p,a1,a2)
548 #define IAsyncReader_WaitForNext(p,a1,a2,a3) ICOM_CALL3(WaitForNext,p,a1,a2,a3)
549 #define IAsyncReader_SyncReadAligned(p,a1) ICOM_CALL1(SyncReadAligned,p,a1)
550 #define IAsyncReader_SyncRead(p,a1,a2,a3) ICOM_CALL3(SyncRead,p,a1,a2,a3)
551 #define IAsyncReader_Length(p,a1,a2) ICOM_CALL2(Length,p,a1,a2)
552 #define IAsyncReader_BeginFlush(p) ICOM_CALL (BeginFlush,p)
553 #define IAsyncReader_EndFlush(p) ICOM_CALL (EndFlush,p)
554
555 /**************************************************************************
556  *
557  * IMediaFilter interface
558  *
559  */
560
561 #define ICOM_INTERFACE IMediaFilter
562 #define IMediaFilter_METHODS \
563     ICOM_METHOD (HRESULT,Stop) \
564     ICOM_METHOD (HRESULT,Pause) \
565     ICOM_METHOD1(HRESULT,Run,REFERENCE_TIME,a1) \
566     ICOM_METHOD2(HRESULT,GetState,DWORD,a1,FILTER_STATE*,a2) \
567     ICOM_METHOD1(HRESULT,SetSyncSource,IReferenceClock*,a1) \
568     ICOM_METHOD1(HRESULT,GetSyncSource,IReferenceClock**,a1)
569
570 #define IMediaFilter_IMETHODS \
571     IPersist_IMETHODS \
572     IMediaFilter_METHODS
573
574 ICOM_DEFINE(IMediaFilter,IPersist)
575 #undef ICOM_INTERFACE
576
577     /*** IUnknown methods ***/
578 #define IMediaFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
579 #define IMediaFilter_AddRef(p) ICOM_CALL (AddRef,p)
580 #define IMediaFilter_Release(p) ICOM_CALL (Release,p)
581     /*** IPersist methods ***/
582 #define IMediaFilter_GetClassID(p,a1) ICOM_CALL1(GetClassID,p,a1)
583     /*** IMediaFilter methods ***/
584 #define IMediaFilter_Stop(p) ICOM_CALL (Stop,p)
585 #define IMediaFilter_Pause(p) ICOM_CALL (Pause,p)
586 #define IMediaFilter_Run(p,a1) ICOM_CALL1(Run,p,a1)
587 #define IMediaFilter_GetState(p,a1,a2) ICOM_CALL2(GetState,p,a1,a2)
588 #define IMediaFilter_SetSyncSource(p,a1) ICOM_CALL1(SetSyncSource,p,a1)
589 #define IMediaFilter_GetSyncSource(p,a1) ICOM_CALL1(GetSyncSource,p,a1)
590
591 /**************************************************************************
592  *
593  * IBaseFilter interface
594  *
595  */
596
597 #define ICOM_INTERFACE IBaseFilter
598 #define IBaseFilter_METHODS \
599     ICOM_METHOD1(HRESULT,EnumPins,IEnumPins**,a1) \
600     ICOM_METHOD2(HRESULT,FindPin,LPCWSTR,a1,IPin**,a2) \
601     ICOM_METHOD1(HRESULT,QueryFilterInfo,FILTER_INFO*,a1) \
602     ICOM_METHOD2(HRESULT,JoinFilterGraph,IFilterGraph*,a1,LPCWSTR,a2) \
603     ICOM_METHOD1(HRESULT,QueryVendorInfo,LPWSTR*,a1)
604
605 #define IBaseFilter_IMETHODS \
606     IMediaFilter_IMETHODS \
607     IBaseFilter_METHODS
608
609 ICOM_DEFINE(IBaseFilter,IMediaFilter)
610 #undef ICOM_INTERFACE
611
612     /*** IUnknown methods ***/
613 #define IBaseFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
614 #define IBaseFilter_AddRef(p) ICOM_CALL (AddRef,p)
615 #define IBaseFilter_Release(p) ICOM_CALL (Release,p)
616     /*** IPersist methods ***/
617 #define IBaseFilter_GetClassID(p,a1) ICOM_CALL1(GetClassID,p,a1)
618     /*** IMediaFilter methods ***/
619 #define IBaseFilter_Stop(p) ICOM_CALL (Stop,p)
620 #define IBaseFilter_Pause(p) ICOM_CALL (Pause,p)
621 #define IBaseFilter_Run(p,a1) ICOM_CALL1(Run,p,a1)
622 #define IBaseFilter_GetState(p,a1,a2) ICOM_CALL2(GetState,p,a1,a2)
623 #define IBaseFilter_SetSyncSource(p,a1) ICOM_CALL1(SetSyncSource,p,a1)
624 #define IBaseFilter_GetSyncSource(p,a1) ICOM_CALL1(GetSyncSource,p,a1)
625     /*** IBaseFilter methods ***/
626 #define IBaseFilter_EnumPins(p,a1) ICOM_CALL1(EnumPins,p,a1)
627 #define IBaseFilter_FindPin(p,a1,a2) ICOM_CALL2(FindPin,p,a1,a2)
628 #define IBaseFilter_QueryFilterInfo(p,a1) ICOM_CALL1(QueryFilterInfo,p,a1)
629 #define IBaseFilter_JoinFilterGraph(p,a1,a2) ICOM_CALL2(JoinFilterGraph,p,a1,a2)
630 #define IBaseFilter_QueryVendorInfo(p,a1) ICOM_CALL1(QueryVendorInfo,p,a1)
631
632 /**************************************************************************
633  *
634  * ICaptureGraphBuilder interface
635  *
636  */
637
638 #define ICOM_INTERFACE ICaptureGraphBuilder
639 #define ICaptureGraphBuilder_METHODS \
640     ICOM_METHOD1(HRESULT,SetFiltergraph,IGraphBuilder*,a1) \
641     ICOM_METHOD1(HRESULT,GetFiltergraph,IGraphBuilder**,a1) \
642     ICOM_METHOD4(HRESULT,SetOutputFileName,const GUID*,a1,LPCOLESTR,a2,IBaseFilter**,a3,IFileSinkFilter**,a4) \
643     ICOM_METHOD4(HRESULT,FindInterface,const GUID*,a1,IBaseFilter*,a2,REFIID,a3,void**,a4) \
644     ICOM_METHOD4(HRESULT,RenderStream,const GUID*,a1,IUnknown*,a2,IBaseFilter*,a3,IBaseFilter*,a4) \
645     ICOM_METHOD6(HRESULT,ControlStream,const GUID*,a1,IBaseFilter*,a2,REFERENCE_TIME*,a3,REFERENCE_TIME*,a4,WORD,a5,WORD,a6) \
646     ICOM_METHOD2(HRESULT,AllocCapFile,LPCOLESTR,a1,DWORDLONG,a2) \
647     ICOM_METHOD4(HRESULT,CopyCaptureFile,LPOLESTR,a1,LPOLESTR,a2,int,a3,IAMCopyCaptureFileProgress*,a4)
648
649 #define ICaptureGraphBuilder_IMETHODS \
650     IUnknown_IMETHODS \
651     ICaptureGraphBuilder_METHODS
652
653 ICOM_DEFINE(ICaptureGraphBuilder,IUnknown)
654 #undef ICOM_INTERFACE
655
656     /*** IUnknown methods ***/
657 #define ICaptureGraphBuilder_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
658 #define ICaptureGraphBuilder_AddRef(p) ICOM_CALL (AddRef,p)
659 #define ICaptureGraphBuilder_Release(p) ICOM_CALL (Release,p)
660     /*** ICaptureGraphBuilder methods ***/
661 #define ICaptureGraphBuilder_SetFiltergraph(p,a1) ICOM_CALL1(SetFiltergraph,p,a1)
662 #define ICaptureGraphBuilder_GetFiltergraph(p,a1) ICOM_CALL1(GetFiltergraph,p,a1)
663 #define ICaptureGraphBuilder_SetOutputFileName(p,a1,a2,a3,a4) ICOM_CALL4(SetOutputFileName,p,a1,a2,a3,a4)
664 #define ICaptureGraphBuilder_FindInterface(p,a1,a2,a3,a4) ICOM_CALL4(FindInterface,p,a1,a2,a3,a4)
665 #define ICaptureGraphBuilder_RenderStream(p,a1,a2,a3,a4) ICOM_CALL4(RenderStream,p,a1,a2,a3,a4)
666 #define ICaptureGraphBuilder_ControlStream(p,a1,a2,a3,a4,a5,a6) ICOM_CALL6(ControlStream,p,a1,a2,a3,a4,a5,a6)
667 #define ICaptureGraphBuilder_AllocCapFile(p,a1,a2) ICOM_CALL2(AllocCapFile,p,a1,a2)
668 #define ICaptureGraphBuilder_CopyCaptureFile(p,a1,a2,a3,a4) ICOM_CALL4(CopyCaptureFile,p,a1,a2,a3,a4)
669
670 /**************************************************************************
671  *
672  * ICaptureGraphBuilder2 interface
673  *
674  */
675
676 #define ICOM_INTERFACE ICaptureGraphBuilder2
677 #define ICaptureGraphBuilder2_METHODS \
678     ICOM_METHOD1(HRESULT,SetFiltergraph,IGraphBuilder*,a1) \
679     ICOM_METHOD1(HRESULT,GetFiltergraph,IGraphBuilder**,a1) \
680     ICOM_METHOD4(HRESULT,SetOutputFileName,const GUID*,a1,LPCOLESTR,a2,IBaseFilter**,a3,IFileSinkFilter**,a4) \
681     ICOM_METHOD5(HRESULT,FindInterface,const GUID*,a1,const GUID*,a2,IBaseFilter*,a3,REFIID,a4,void**,a5) \
682     ICOM_METHOD5(HRESULT,RenderStream,const GUID*,a1,const GUID*,a2,IUnknown*,a3,IBaseFilter*,a4,IBaseFilter*,a5) \
683     ICOM_METHOD7(HRESULT,ControlStream,const GUID*,a1,const GUID*,a2,IBaseFilter*,a3,REFERENCE_TIME*,a4,REFERENCE_TIME*,a5,WORD,a6,WORD,a7) \
684     ICOM_METHOD2(HRESULT,AllocCapFile,LPCOLESTR,a1,DWORDLONG,a2) \
685     ICOM_METHOD4(HRESULT,CopyCaptureFile,LPOLESTR,a1,LPOLESTR,a2,int,a3,IAMCopyCaptureFileProgress*,a4) \
686     ICOM_METHOD7(HRESULT,FindPin,IUnknown*,a1,PIN_DIRECTION,a2,const GUID*,a3,const GUID*,a4,BOOL,a5,int,a6,IPin**,a7)
687
688 #define ICaptureGraphBuilder2_IMETHODS \
689     IUnknown_IMETHODS \
690     ICaptureGraphBuilder2_METHODS
691
692 ICOM_DEFINE(ICaptureGraphBuilder2,IUnknown)
693 #undef ICOM_INTERFACE
694
695     /*** IUnknown methods ***/
696 #define ICaptureGraphBuilder2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
697 #define ICaptureGraphBuilder2_AddRef(p) ICOM_CALL (AddRef,p)
698 #define ICaptureGraphBuilder2_Release(p) ICOM_CALL (Release,p)
699     /*** ICaptureGraphBuilder2 methods ***/
700 #define ICaptureGraphBuilder2_SetFiltergraph(p,a1) ICOM_CALL1(SetFiltergraph,p,a1)
701 #define ICaptureGraphBuilder2_GetFiltergraph(p,a1) ICOM_CALL1(GetFiltergraph,p,a1)
702 #define ICaptureGraphBuilder2_SetOutputFileName(p,a1,a2,a3,a4) ICOM_CALL4(SetOutputFileName,p,a1,a2,a3,a4)
703 #define ICaptureGraphBuilder2_FindInterface(p,a1,a2,a3,a4,a5) ICOM_CALL5(FindInterface,p,a1,a2,a3,a4,a5)
704 #define ICaptureGraphBuilder2_RenderStream(p,a1,a2,a3,a4,a5) ICOM_CALL5(RenderStream,p,a1,a2,a3,a4,a5)
705 #define ICaptureGraphBuilder2_ControlStream(p,a1,a2,a3,a4,a5,a6,a7) ICOM_CALL7(ControlStream,p,a1,a2,a3,a4,a5,a6,a7)
706 #define ICaptureGraphBuilder2_AllocCapFile(p,a1,a2) ICOM_CALL2(AllocCapFile,p,a1,a2)
707 #define ICaptureGraphBuilder2_CopyCaptureFile(p,a1,a2,a3,a4) ICOM_CALL4(CopyCaptureFile,p,a1,a2,a3,a4)
708 #define ICaptureGraphBuilder2_FindPin(p,a1,a2,a3,a4,a5,a6,a7) ICOM_CALL7(FindPin,p,a1,a2,a3,a4,a5,a6,a7)
709
710 /**************************************************************************
711  *
712  * ICreateDevEnum interface
713  *
714  */
715
716 #define ICOM_INTERFACE ICreateDevEnum
717 #define ICreateDevEnum_METHODS \
718     ICOM_METHOD3(HRESULT,CreateClassEnumerator,REFCLSID,a1,IEnumMoniker**,a2,DWORD,a3)
719
720 #define ICreateDevEnum_IMETHODS \
721     IUnknown_IMETHODS \
722     ICreateDevEnum_METHODS
723
724 ICOM_DEFINE(ICreateDevEnum,IUnknown)
725 #undef ICOM_INTERFACE
726
727     /*** IUnknown methods ***/
728 #define ICreateDevEnum_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
729 #define ICreateDevEnum_AddRef(p) ICOM_CALL (AddRef,p)
730 #define ICreateDevEnum_Release(p) ICOM_CALL (Release,p)
731     /*** ICreateDevEnum methods ***/
732 #define ICreateDevEnum_CreateClassEnumerator(p,a1,a2,a3) ICOM_CALL3(CreateClassEnumerator,p,a1,a2,a3)
733
734 /**************************************************************************
735  *
736  * IDistributorNotify interface
737  *
738  */
739
740 #define ICOM_INTERFACE IDistributorNotify
741 #define IDistributorNotify_METHODS \
742     ICOM_METHOD (HRESULT,Stop) \
743     ICOM_METHOD (HRESULT,Pause) \
744     ICOM_METHOD1(HRESULT,Run,REFERENCE_TIME,a1) \
745     ICOM_METHOD1(HRESULT,SetSyncSource,IReferenceClock*,a1) \
746     ICOM_METHOD (HRESULT,NotifyGraphChange)
747
748 #define IDistributorNotify_IMETHODS \
749     IUnknown_IMETHODS \
750     IDistributorNotify_METHODS
751
752 ICOM_DEFINE(IDistributorNotify,IUnknown)
753 #undef ICOM_INTERFACE
754
755     /*** IUnknown methods ***/
756 #define IDistributorNotify_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
757 #define IDistributorNotify_AddRef(p) ICOM_CALL (AddRef,p)
758 #define IDistributorNotify_Release(p) ICOM_CALL (Release,p)
759     /*** IDistributorNotify methods ***/
760 #define IDistributorNotify_Stop(p) ICOM_CALL (Stop,p)
761 #define IDistributorNotify_Pause(p) ICOM_CALL (Pause,p)
762 #define IDistributorNotify_Run(p,a1) ICOM_CALL1(Run,p,a1)
763 #define IDistributorNotify_SetSyncSource(p,a1) ICOM_CALL1(SetSyncSource,p,a1)
764 #define IDistributorNotify_NotifyGraphChange(p) ICOM_CALL (NotifyGraphChange,p)
765
766 /**************************************************************************
767  *
768  * IDVSplitter interface
769  *
770  */
771
772 #define ICOM_INTERFACE IDVSplitter
773 #define IDVSplitter_METHODS \
774     ICOM_METHOD1(HRESULT,DiscardAlternateVideoFrames,int,a1)
775
776 #define IDVSplitter_IMETHODS \
777     IUnknown_IMETHODS \
778     IDVSplitter_METHODS
779
780 ICOM_DEFINE(IDVSplitter,IUnknown)
781 #undef ICOM_INTERFACE
782
783     /*** IUnknown methods ***/
784 #define IDVSplitter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
785 #define IDVSplitter_AddRef(p) ICOM_CALL (AddRef,p)
786 #define IDVSplitter_Release(p) ICOM_CALL (Release,p)
787     /*** IDVSplitter methods ***/
788 #define IDVSplitter_DiscardAlternateVideoFrames(p,a1) ICOM_CALL1(DiscardAlternateVideoFrames,p,a1)
789
790 /**************************************************************************
791  *
792  * IEnumFilters interface
793  *
794  */
795
796 #define ICOM_INTERFACE IEnumFilters
797 #define IEnumFilters_METHODS \
798     ICOM_METHOD3(HRESULT,Next,ULONG,a1,IBaseFilter**,a2,ULONG*,a3) \
799     ICOM_METHOD1(HRESULT,Skip,ULONG,a1) \
800     ICOM_METHOD (HRESULT,Reset) \
801     ICOM_METHOD1(HRESULT,Clone,IEnumFilters**,a1)
802
803 #define IEnumFilters_IMETHODS \
804     IUnknown_IMETHODS \
805     IEnumFilters_METHODS
806
807 ICOM_DEFINE(IEnumFilters,IUnknown)
808 #undef ICOM_INTERFACE
809
810     /*** IUnknown methods ***/
811 #define IEnumFilters_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
812 #define IEnumFilters_AddRef(p) ICOM_CALL (AddRef,p)
813 #define IEnumFilters_Release(p) ICOM_CALL (Release,p)
814     /*** IEnumFilters methods ***/
815 #define IEnumFilters_Next(p,a1,a2,a3) ICOM_CALL3(Next,p,a1,a2,a3)
816 #define IEnumFilters_Skip(p,a1) ICOM_CALL1(Skip,p,a1)
817 #define IEnumFilters_Reset(p) ICOM_CALL (Reset,p)
818 #define IEnumFilters_Clone(p,a1) ICOM_CALL1(Clone,p,a1)
819
820 /**************************************************************************
821  *
822  * IEnumMediaTypes interface
823  *
824  */
825
826 #define ICOM_INTERFACE IEnumMediaTypes
827 #define IEnumMediaTypes_METHODS \
828     ICOM_METHOD3(HRESULT,Next,ULONG,a1,AM_MEDIA_TYPE**,a2,ULONG*,a3) \
829     ICOM_METHOD1(HRESULT,Skip,ULONG,a1) \
830     ICOM_METHOD (HRESULT,Reset) \
831     ICOM_METHOD1(HRESULT,Clone,IEnumMediaTypes**,a1)
832
833 #define IEnumMediaTypes_IMETHODS \
834     IUnknown_IMETHODS \
835     IEnumMediaTypes_METHODS
836
837 ICOM_DEFINE(IEnumMediaTypes,IUnknown)
838 #undef ICOM_INTERFACE
839
840     /*** IUnknown methods ***/
841 #define IEnumMediaTypes_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
842 #define IEnumMediaTypes_AddRef(p) ICOM_CALL (AddRef,p)
843 #define IEnumMediaTypes_Release(p) ICOM_CALL (Release,p)
844     /*** IEnumMediaTypes methods ***/
845 #define IEnumMediaTypes_Next(p,a1,a2,a3) ICOM_CALL3(Next,p,a1,a2,a3)
846 #define IEnumMediaTypes_Skip(p,a1) ICOM_CALL1(Skip,p,a1)
847 #define IEnumMediaTypes_Reset(p) ICOM_CALL (Reset,p)
848 #define IEnumMediaTypes_Clone(p,a1) ICOM_CALL1(Clone,p,a1)
849
850 /**************************************************************************
851  *
852  * IEnumPins interface
853  *
854  */
855
856 #define ICOM_INTERFACE IEnumPins
857 #define IEnumPins_METHODS \
858     ICOM_METHOD3(HRESULT,Next,ULONG,a1,IPin**,a2,ULONG*,a3) \
859     ICOM_METHOD1(HRESULT,Skip,ULONG,a1) \
860     ICOM_METHOD (HRESULT,Reset) \
861     ICOM_METHOD1(HRESULT,Clone,IEnumPins**,a1)
862
863 #define IEnumPins_IMETHODS \
864     IUnknown_IMETHODS \
865     IEnumPins_METHODS
866
867 ICOM_DEFINE(IEnumPins,IUnknown)
868 #undef ICOM_INTERFACE
869
870     /*** IUnknown methods ***/
871 #define IEnumPins_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
872 #define IEnumPins_AddRef(p) ICOM_CALL (AddRef,p)
873 #define IEnumPins_Release(p) ICOM_CALL (Release,p)
874     /*** IEnumPins methods ***/
875 #define IEnumPins_Next(p,a1,a2,a3) ICOM_CALL3(Next,p,a1,a2,a3)
876 #define IEnumPins_Skip(p,a1) ICOM_CALL1(Skip,p,a1)
877 #define IEnumPins_Reset(p) ICOM_CALL (Reset,p)
878 #define IEnumPins_Clone(p,a1) ICOM_CALL1(Clone,p,a1)
879
880 /**************************************************************************
881  *
882  * IFileSinkFilter interface
883  *
884  */
885
886 #define ICOM_INTERFACE IFileSinkFilter
887 #define IFileSinkFilter_METHODS \
888     ICOM_METHOD2(HRESULT,SetFileName,LPCOLESTR,a1,const AM_MEDIA_TYPE*,a2) \
889     ICOM_METHOD2(HRESULT,GetCurFile,LPOLESTR*,a1,AM_MEDIA_TYPE*,a2)
890
891 #define IFileSinkFilter_IMETHODS \
892     IUnknown_IMETHODS \
893     IFileSinkFilter_METHODS
894
895 ICOM_DEFINE(IFileSinkFilter,IUnknown)
896 #undef ICOM_INTERFACE
897
898     /*** IUnknown methods ***/
899 #define IFileSinkFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
900 #define IFileSinkFilter_AddRef(p) ICOM_CALL (AddRef,p)
901 #define IFileSinkFilter_Release(p) ICOM_CALL (Release,p)
902     /*** IFileSinkFilter methods ***/
903 #define IFileSinkFilter_SetFileName(p,a1,a2) ICOM_CALL2(SetFileName,p,a1,a2)
904 #define IFileSinkFilter_GetCurFile(p,a1,a2) ICOM_CALL2(GetCurFile,p,a1,a2)
905
906 /**************************************************************************
907  *
908  * IFileSinkFilter2 interface
909  *
910  */
911
912 #define ICOM_INTERFACE IFileSinkFilter2
913 #define IFileSinkFilter2_METHODS \
914     ICOM_METHOD1(HRESULT,SetMode,DWORD,a1) \
915     ICOM_METHOD1(HRESULT,GetMode,DWORD*,a1)
916
917 #define IFileSinkFilter2_IMETHODS \
918     IFileSinkFilter_IMETHODS \
919     IFileSinkFilter2_METHODS
920
921 ICOM_DEFINE(IFileSinkFilter2,IFileSinkFilter)
922 #undef ICOM_INTERFACE
923
924     /*** IUnknown methods ***/
925 #define IFileSinkFilter2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
926 #define IFileSinkFilter2_AddRef(p) ICOM_CALL (AddRef,p)
927 #define IFileSinkFilter2_Release(p) ICOM_CALL (Release,p)
928     /*** IFileSinkFilter methods ***/
929 #define IFileSinkFilter2_SetFileName(p,a1,a2) ICOM_CALL2(SetFileName,p,a1,a2)
930 #define IFileSinkFilter2_GetCurFile(p,a1,a2) ICOM_CALL2(GetCurFile,p,a1,a2)
931     /*** IFileSinkFilter2 methods ***/
932 #define IFileSinkFilter2_SetMode(p,a1) ICOM_CALL1(SetMode,p,a1)
933 #define IFileSinkFilter2_GetMode(p,a1) ICOM_CALL1(GetMode,p,a1)
934
935 /**************************************************************************
936  *
937  * IFileSourceFilter interface
938  *
939  */
940
941 #define ICOM_INTERFACE IFileSourceFilter
942 #define IFileSourceFilter_METHODS \
943     ICOM_METHOD2(HRESULT,Load,LPCOLESTR,a1,const AM_MEDIA_TYPE*,a2) \
944     ICOM_METHOD2(HRESULT,GetCurFile,LPOLESTR*,a1,AM_MEDIA_TYPE*,a2)
945
946 #define IFileSourceFilter_IMETHODS \
947     IUnknown_IMETHODS \
948     IFileSourceFilter_METHODS
949
950 ICOM_DEFINE(IFileSourceFilter,IUnknown)
951 #undef ICOM_INTERFACE
952
953     /*** IUnknown methods ***/
954 #define IFileSourceFilter_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
955 #define IFileSourceFilter_AddRef(p) ICOM_CALL (AddRef,p)
956 #define IFileSourceFilter_Release(p) ICOM_CALL (Release,p)
957     /*** IFileSourceFilter methods ***/
958 #define IFileSourceFilter_Load(p,a1,a2) ICOM_CALL2(Load,p,a1,a2)
959 #define IFileSourceFilter_GetCurFile(p,a1,a2) ICOM_CALL2(GetCurFile,p,a1,a2)
960
961 /**************************************************************************
962  *
963  * IFilterChain interface
964  *
965  */
966
967 #define ICOM_INTERFACE IFilterChain
968 #define IFilterChain_METHODS \
969     ICOM_METHOD2(HRESULT,StartChain,IBaseFilter*,a1,IBaseFilter*,a2) \
970     ICOM_METHOD2(HRESULT,PauseChain,IBaseFilter*,a1,IBaseFilter*,a2) \
971     ICOM_METHOD2(HRESULT,StopChain,IBaseFilter*,a1,IBaseFilter*,a2) \
972     ICOM_METHOD2(HRESULT,RemoveChain,IBaseFilter*,a1,IBaseFilter*,a2)
973
974 #define IFilterChain_IMETHODS \
975     IUnknown_IMETHODS \
976     IFilterChain_METHODS
977
978 ICOM_DEFINE(IFilterChain,IUnknown)
979 #undef ICOM_INTERFACE
980
981     /*** IUnknown methods ***/
982 #define IFilterChain_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
983 #define IFilterChain_AddRef(p) ICOM_CALL (AddRef,p)
984 #define IFilterChain_Release(p) ICOM_CALL (Release,p)
985     /*** IFilterChain methods ***/
986 #define IFilterChain_StartChain(p,a1,a2) ICOM_CALL2(StartChain,p,a1,a2)
987 #define IFilterChain_PauseChain(p,a1,a2) ICOM_CALL2(PauseChain,p,a1,a2)
988 #define IFilterChain_StopChain(p,a1,a2) ICOM_CALL2(StopChain,p,a1,a2)
989 #define IFilterChain_RemoveChain(p,a1,a2) ICOM_CALL2(RemoveChain,p,a1,a2)
990
991 /**************************************************************************
992  *
993  * IFilterMapper interface
994  *
995  */
996
997 #define ICOM_INTERFACE IFilterMapper
998 #define IFilterMapper_METHODS \
999     ICOM_METHOD3(HRESULT,RegisterFilter,CLSID,a1,LPCWSTR,a2,DWORD,a3) \
1000     ICOM_METHOD3(HRESULT,RegisterFilterInstance,CLSID,a1,LPCWSTR,a2,CLSID*,a3) \
1001     ICOM_METHOD8(HRESULT,RegisterPin,CLSID,a1,LPCWSTR,a2,BOOL,a3,BOOL,a4,BOOL,a5,BOOL,a6,CLSID,a7,LPCWSTR,a8) \
1002     ICOM_METHOD4(HRESULT,RegisterPinType,CLSID,a1,LPCWSTR,a2,CLSID,a3,CLSID,a4) \
1003     ICOM_METHOD1(HRESULT,UnregisterFilter,CLSID,a1) \
1004     ICOM_METHOD1(HRESULT,UnregisterFilterInstance,CLSID,a1) \
1005     ICOM_METHOD2(HRESULT,UnregisterPin,CLSID,a1,LPCWSTR,a2) \
1006     ICOM_METHOD9(HRESULT,EnumMatchingFilters,IEnumRegFilters**,a1,DWORD,a2,BOOL,a3,CLSID,a4,CLSID,a5,BOOL,a6,BOOL,a7,CLSID,a8,CLSID,a9)
1007
1008 #define IFilterMapper_IMETHODS \
1009     IUnknown_IMETHODS \
1010     IFilterMapper_METHODS
1011
1012 ICOM_DEFINE(IFilterMapper,IUnknown)
1013 #undef ICOM_INTERFACE
1014
1015     /*** IUnknown methods ***/
1016 #define IFilterMapper_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1017 #define IFilterMapper_AddRef(p) ICOM_CALL (AddRef,p)
1018 #define IFilterMapper_Release(p) ICOM_CALL (Release,p)
1019     /*** IFilterMapper methods ***/
1020 #define IFilterMapper_RegisterFilter(p,a1,a2,a3) ICOM_CALL3(RegisterFilter,p,a1,a2,a3)
1021 #define IFilterMapper_RegisterFilterInstance(p,a1,a2,a3) ICOM_CALL3(RegisterFilterInstance,p,a1,a2,a3)
1022 #define IFilterMapper_RegisterPin(p,a1,a2,a3,a4,a5,a6,a7,a8) ICOM_CALL8(RegisterPin,p,a1,a2,a3,a4,a5,a6,a7,a8)
1023 #define IFilterMapper_RegisterPinType(p,a1,a2,a3,a4) ICOM_CALL4(RegisterPinType,p,a1,a2,a3,a4)
1024 #define IFilterMapper_UnregisterFilter(p,a1) ICOM_CALL1(UnregisterFilter,p,a1)
1025 #define IFilterMapper_UnregisterFilterInstance(p,a1) ICOM_CALL1(UnregisterFilterInstance,p,a1)
1026 #define IFilterMapper_UnregisterPin(p,a1,a2) ICOM_CALL2(UnregisterPin,p,a1,a2)
1027 #define IFilterMapper_EnumMatchingFilters(p,a1,a2,a3,a4,a5,a6,a7,a8,a9) ICOM_CALL9(EnumMatchingFilters,p,a1,a2,a3,a4,a5,a6,a7,a8,a9)
1028
1029 /**************************************************************************
1030  *
1031  * IFilterMapper2 interface
1032  *
1033  */
1034
1035 #define ICOM_INTERFACE IFilterMapper2
1036 #define IFilterMapper2_METHODS \
1037     ICOM_METHOD3(HRESULT,CreateCategory,REFCLSID,a1,DWORD,a2,LPCWSTR,a3) \
1038     ICOM_METHOD3(HRESULT,UnregisterFilter,const CLSID*,a1,const OLECHAR*,a2,REFCLSID,a3) \
1039     ICOM_METHOD6(HRESULT,RegisterFilter,REFCLSID,a1,LPCWSTR,a2,IMoniker**,a3,const CLSID*,a4,const OLECHAR*,a5,const REGFILTER2*,a6) \
1040     ICOM_METHOD15(HRESULT,EnumMatchingFilters,IEnumMoniker**,a1,DWORD,a2,BOOL,a3,DWORD,a4,BOOL,a5,DWORD,a6,const GUID*,a7,const REGPINMEDIUM*,a8,const CLSID*,a9,BOOL,a10,BOOL,a11,DWORD,a12,const GUID*,a13,const REGPINMEDIUM*,a14,const CLSID*,a15)
1041
1042 #define IFilterMapper2_IMETHODS \
1043     IUnknown_IMETHODS \
1044     IFilterMapper2_METHODS
1045
1046 ICOM_DEFINE(IFilterMapper2,IUnknown)
1047 #undef ICOM_INTERFACE
1048
1049     /*** IUnknown methods ***/
1050 #define IFilterMapper2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1051 #define IFilterMapper2_AddRef(p) ICOM_CALL (AddRef,p)
1052 #define IFilterMapper2_Release(p) ICOM_CALL (Release,p)
1053     /*** IFilterMapper2 methods ***/
1054 #define IFilterMapper2_CreateCategory(p,a1,a2,a3) ICOM_CALL3(CreateCategory,p,a1,a2,a3)
1055 #define IFilterMapper2_UnregisterFilter(p,a1,a2,a3) ICOM_CALL3(UnregisterFilter,p,a1,a2,a3)
1056 #define IFilterMapper2_RegisterFilter(p,a1,a2,a3,a4,a5,a6) ICOM_CALL6(RegisterFilter,p,a1,a2,a3,a4,a5,a6)
1057 #define IFilterMapper2_EnumMatchingFilters(p,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) ICOM_CALL15(EnumMatchingFilters,p,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
1058
1059 /**************************************************************************
1060  *
1061  * IFilterMapper3 interface
1062  *
1063  */
1064
1065 #define ICOM_INTERFACE IFilterMapper3
1066 #define IFilterMapper3_METHODS \
1067     ICOM_METHOD1(HRESULT,GetICreateDevEnum,ICreateDevEnum**,a1)
1068
1069 #define IFilterMapper3_IMETHODS \
1070     IFilterMapper2_IMETHODS \
1071     IFilterMapper3_METHODS
1072
1073 ICOM_DEFINE(IFilterMapper3,IFilterMapper2)
1074 #undef ICOM_INTERFACE
1075
1076     /*** IUnknown methods ***/
1077 #define IFilterMapper3_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1078 #define IFilterMapper3_AddRef(p) ICOM_CALL (AddRef,p)
1079 #define IFilterMapper3_Release(p) ICOM_CALL (Release,p)
1080     /*** IFilterMapper2 methods ***/
1081 #define IFilterMapper3_CreateCategory(p,a1,a2,a3) ICOM_CALL3(CreateCategory,p,a1,a2,a3)
1082 #define IFilterMapper3_UnregisterFilter(p,a1,a2,a3) ICOM_CALL3(UnregisterFilter,p,a1,a2,a3)
1083 #define IFilterMapper3_RegisterFilter(p,a1,a2,a3,a4,a5,a6) ICOM_CALL6(RegisterFilter,p,a1,a2,a3,a4,a5,a6)
1084 #define IFilterMapper3_EnumMatchingFilters(p,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) ICOM_CALL15(EnumMatchingFilters,p,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15)
1085     /*** IFilterMapper3 methods ***/
1086 #define IFilterMapper3_GetICreateDevEnum(p,a1) ICOM_CALL1(GetICreateDevEnum,p,a1)
1087
1088 /**************************************************************************
1089  *
1090  * IFilterGraph interface
1091  *
1092  */
1093
1094 #define ICOM_INTERFACE IFilterGraph
1095 #define IFilterGraph_METHODS \
1096     ICOM_METHOD2(HRESULT,AddFilter,IBaseFilter*,a1,LPCWSTR,a2) \
1097     ICOM_METHOD1(HRESULT,RemoveFilter,IBaseFilter*,a1) \
1098     ICOM_METHOD1(HRESULT,EnumFilters,IEnumFilters**,a1) \
1099     ICOM_METHOD2(HRESULT,FindFilterByName,LPCWSTR,a1,IBaseFilter**,a2) \
1100     ICOM_METHOD3(HRESULT,ConnectDirect,IPin*,a1,IPin*,a2,const AM_MEDIA_TYPE*,a3) \
1101     ICOM_METHOD1(HRESULT,Reconnect,IPin*,a1) \
1102     ICOM_METHOD1(HRESULT,Disconnect,IPin*,a1) \
1103     ICOM_METHOD (HRESULT,SetDefaultSyncSource)
1104
1105 #define IFilterGraph_IMETHODS \
1106     IUnknown_IMETHODS \
1107     IFilterGraph_METHODS
1108
1109 ICOM_DEFINE(IFilterGraph,IUnknown)
1110 #undef ICOM_INTERFACE
1111
1112     /*** IUnknown methods ***/
1113 #define IFilterGraph_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1114 #define IFilterGraph_AddRef(p) ICOM_CALL (AddRef,p)
1115 #define IFilterGraph_Release(p) ICOM_CALL (Release,p)
1116     /*** IFilterGraph methods ***/
1117 #define IFilterGraph_AddFilter(p,a1,a2) ICOM_CALL2(AddFilter,p,a1,a2)
1118 #define IFilterGraph_RemoveFilter(p,a1) ICOM_CALL1(RemoveFilter,p,a1)
1119 #define IFilterGraph_EnumFilters(p,a1) ICOM_CALL1(EnumFilters,p,a1)
1120 #define IFilterGraph_FindFilterByName(p,a1,a2) ICOM_CALL2(FindFilterByName,p,a1,a2)
1121 #define IFilterGraph_ConnectDirect(p,a1,a2,a3) ICOM_CALL3(ConnectDirect,p,a1,a2,a3)
1122 #define IFilterGraph_Reconnect(p,a1) ICOM_CALL1(Reconnect,p,a1)
1123 #define IFilterGraph_Disconnect(p,a1) ICOM_CALL1(Disconnect,p,a1)
1124 #define IFilterGraph_SetDefaultSyncSource(p) ICOM_CALL (SetDefaultSyncSource,p)
1125
1126 /**************************************************************************
1127  *
1128  * IGraphBuilder interface
1129  *
1130  */
1131
1132 #define ICOM_INTERFACE IGraphBuilder
1133 #define IGraphBuilder_METHODS \
1134     ICOM_METHOD2(HRESULT,Connect,IPin*,a1,IPin*,a2) \
1135     ICOM_METHOD1(HRESULT,Render,IPin*,a1) \
1136     ICOM_METHOD2(HRESULT,RenderFile,LPCWSTR,a1,LPCWSTR,a2) \
1137     ICOM_METHOD3(HRESULT,AddSourceFilter,LPCWSTR,a1,LPCWSTR,a2,IBaseFilter**,a3) \
1138     ICOM_METHOD1(HRESULT,SetLogFile,DWORD_PTR,a1) \
1139     ICOM_METHOD (HRESULT,Abort) \
1140     ICOM_METHOD (HRESULT,ShouldOperationContinue)
1141
1142 #define IGraphBuilder_IMETHODS \
1143     IFilterGraph_IMETHODS \
1144     IGraphBuilder_METHODS
1145
1146 ICOM_DEFINE(IGraphBuilder,IFilterGraph)
1147 #undef ICOM_INTERFACE
1148
1149     /*** IUnknown methods ***/
1150 #define IGraphBuilder_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1151 #define IGraphBuilder_AddRef(p) ICOM_CALL (AddRef,p)
1152 #define IGraphBuilder_Release(p) ICOM_CALL (Release,p)
1153     /*** IFilterGraph methods ***/
1154 #define IGraphBuilder_AddFilter(p,a1,a2) ICOM_CALL2(AddFilter,p,a1,a2)
1155 #define IGraphBuilder_RemoveFilter(p,a1) ICOM_CALL1(RemoveFilter,p,a1)
1156 #define IGraphBuilder_EnumFilters(p,a1) ICOM_CALL1(EnumFilters,p,a1)
1157 #define IGraphBuilder_FindFilterByName(p,a1,a2) ICOM_CALL2(FindFilterByName,p,a1,a2)
1158 #define IGraphBuilder_ConnectDirect(p,a1,a2,a3) ICOM_CALL3(ConnectDirect,p,a1,a2,a3)
1159 #define IGraphBuilder_Reconnect(p,a1) ICOM_CALL1(Reconnect,p,a1)
1160 #define IGraphBuilder_Disconnect(p,a1) ICOM_CALL1(Disconnect,p,a1)
1161 #define IGraphBuilder_SetDefaultSyncSource(p,a1) ICOM_CALL1(SetDefaultSyncSource,p,a1)
1162     /*** IGraphBuilder methods ***/
1163 #define IGraphBuilder_Connect(p,a1,a2) ICOM_CALL2(Connect,p,a1,a2)
1164 #define IGraphBuilder_Render(p,a1) ICOM_CALL1(Render,p,a1)
1165 #define IGraphBuilder_RenderFile(p,a1,a2) ICOM_CALL2(RenderFile,p,a1,a2)
1166 #define IGraphBuilder_AddSourceFilter(p,a1,a2,a3) ICOM_CALL3(AddSourceFilter,p,a1,a2,a3)
1167 #define IGraphBuilder_SetLogFile(p,a1) ICOM_CALL1(SetLogFile,p,a1)
1168 #define IGraphBuilder_Abort(p) ICOM_CALL (Abort,p)
1169 #define IGraphBuilder_ShouldOperationContinue(p) ICOM_CALL (ShouldOperationContinue,p)
1170
1171 /**************************************************************************
1172  *
1173  * IFilterGraph2 interface
1174  *
1175  */
1176
1177 #define ICOM_INTERFACE IFilterGraph2
1178 #define IFilterGraph2_METHODS \
1179     ICOM_METHOD4(HRESULT,AddSourceFilterForMoniker,IMoniker*,a1,IBindCtx*,a2,LPCWSTR,a3,IBaseFilter**,a4) \
1180     ICOM_METHOD2(HRESULT,ReconnectEx,IPin*,a1,const AM_MEDIA_TYPE*,a2) \
1181     ICOM_METHOD3(HRESULT,RenderEx,IPin*,a1,DWORD,a2,DWORD*,a3)
1182
1183 #define IFilterGraph2_IMETHODS \
1184     IGraphBuilder_IMETHODS \
1185     IFilterGraph2_METHODS
1186
1187 ICOM_DEFINE(IFilterGraph2,IGraphBuilder)
1188 #undef ICOM_INTERFACE
1189
1190     /*** IUnknown methods ***/
1191 #define IFilterGraph2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1192 #define IFilterGraph2_AddRef(p) ICOM_CALL (AddRef,p)
1193 #define IFilterGraph2_Release(p) ICOM_CALL (Release,p)
1194     /*** IFilterGraph methods ***/
1195 #define IFilterGraph2_AddFilter(p,a1,a2) ICOM_CALL2(AddFilter,p,a1,a2)
1196 #define IFilterGraph2_RemoveFilter(p,a1) ICOM_CALL1(RemoveFilter,p,a1)
1197 #define IFilterGraph2_EnumFilters(p,a1) ICOM_CALL1(EnumFilters,p,a1)
1198 #define IFilterGraph2_FindFilterByName(p,a1,a2) ICOM_CALL2(FindFilterByName,p,a1,a2)
1199 #define IFilterGraph2_ConnectDirect(p,a1,a2,a3) ICOM_CALL3(ConnectDirect,p,a1,a2,a3)
1200 #define IFilterGraph2_Reconnect(p,a1) ICOM_CALL1(Reconnect,p,a1)
1201 #define IFilterGraph2_Disconnect(p,a1) ICOM_CALL1(Disconnect,p,a1)
1202 #define IFilterGraph2_SetDefaultSyncSource(p,a1) ICOM_CALL1(SetDefaultSyncSource,p,a1)
1203     /*** IGraphBuilder methods ***/
1204 #define IFilterGraph2_Connect(p,a1,a2) ICOM_CALL2(Connect,p,a1,a2)
1205 #define IFilterGraph2_Render(p,a1) ICOM_CALL1(Render,p,a1)
1206 #define IFilterGraph2_RenderFile(p,a1,a2) ICOM_CALL2(RenderFile,p,a1,a2)
1207 #define IFilterGraph2_AddSourceFilter(p,a1,a2,a3) ICOM_CALL3(AddSourceFilter,p,a1,a2,a3)
1208 #define IFilterGraph2_SetLogFile(p,a1) ICOM_CALL1(SetLogFile,p,a1)
1209 #define IFilterGraph2_Abort(p) ICOM_CALL (Abort,p)
1210 #define IFilterGraph2_ShouldOperationContinue(p) ICOM_CALL (ShouldOperationContinue,p)
1211     /*** IFilterGraph2 methods ***/
1212 #define IFilterGraph2_AddSourceFilterForMoniker(p,a1,a2,a3,a4) ICOM_CALL4(AddSourceFilterForMoniker,p,a1,a2,a3,a4)
1213 #define IFilterGraph2_ReconnectEx(p,a1,a2) ICOM_CALL2(ReconnectEx,p,a1,a2)
1214 #define IFilterGraph2_RenderEx(p,a1,a2,a3) ICOM_CALL3(RenderEx,p,a1,a2,a3)
1215
1216 /**************************************************************************
1217  *
1218  * IGraphConfig interface
1219  *
1220  */
1221
1222 #define ICOM_INTERFACE IGraphConfig
1223 #define IGraphConfig_METHODS \
1224     ICOM_METHOD6(HRESULT,Reconnect,IPin*,a1,IPin*,a2,const AM_MEDIA_TYPE*,a3,IBaseFilter*,a4,HANDLE,a5,DWORD,a6) \
1225     ICOM_METHOD4(HRESULT,Reconfigure,IGraphConfigCallback*,a1,PVOID,a2,DWORD,a3,HANDLE,a4) \
1226     ICOM_METHOD1(HRESULT,AddFilterToCache,IBaseFilter*,a1) \
1227     ICOM_METHOD1(HRESULT,EnumCacheFilter,IEnumFilters**,a1) \
1228     ICOM_METHOD1(HRESULT,RemoveFilterFromCache,IBaseFilter*,a1) \
1229     ICOM_METHOD1(HRESULT,GetStartTime,REFERENCE_TIME*,a1) \
1230     ICOM_METHOD3(HRESULT,PushThroughData,IPin*,a1,IPinConnection*,a2,HANDLE,a3) \
1231     ICOM_METHOD2(HRESULT,SetFilterFlags,IBaseFilter*,a1,DWORD,a2) \
1232     ICOM_METHOD2(HRESULT,GetFilterFlags,IBaseFilter*,a1,DWORD*,a2) \
1233     ICOM_METHOD2(HRESULT,RemoveFilterEx,IBaseFilter*,a1,DWORD,a2)
1234
1235 #define IGraphConfig_IMETHODS \
1236     IUnknown_IMETHODS \
1237     IGraphConfig_METHODS
1238
1239 ICOM_DEFINE(IGraphConfig,IUnknown)
1240 #undef ICOM_INTERFACE
1241
1242     /*** IUnknown methods ***/
1243 #define IGraphConfig_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1244 #define IGraphConfig_AddRef(p) ICOM_CALL (AddRef,p)
1245 #define IGraphConfig_Release(p) ICOM_CALL (Release,p)
1246     /*** IGraphConfig methods ***/
1247 #define IGraphConfig_Reconnect(p,a1,a2,a3,a4,a5,a6) ICOM_CALL6(Reconnect,p,a1,a2,a3,a4,a5,a6)
1248 #define IGraphConfig_Reconfigure(p,a1,a2,a3,a4) ICOM_CALL4(Reconfigure,p,a1,a2,a3,a4)
1249 #define IGraphConfig_AddFilterToCache(p,a1) ICOM_CALL1(AddFilterToCache,p,a1)
1250 #define IGraphConfig_EnumCacheFilter(p,a1) ICOM_CALL1(EnumCacheFilter,p,a1)
1251 #define IGraphConfig_RemoveFilterFromCache(p,a1) ICOM_CALL1(RemoveFilterFromCache,p,a1)
1252 #define IGraphConfig_GetStartTime(p,a1) ICOM_CALL1(GetStartTime,p,a1)
1253 #define IGraphConfig_PushThroughData(p,a1,a2,a3) ICOM_CALL3(PushThroughData,p,a1,a2,a3)
1254 #define IGraphConfig_SetFilterFlags(p,a1,a2) ICOM_CALL2(SetFilterFlags,p,a1,a2)
1255 #define IGraphConfig_GetFilterFlags(p,a1,a2) ICOM_CALL2(GetFilterFlags,p,a1,a2)
1256 #define IGraphConfig_RemoveFilterEx(p,a1,a2) ICOM_CALL2(RemoveFilterEx,p,a1,a2)
1257
1258 /**************************************************************************
1259  *
1260  * IGraphConfigCallback interface
1261  *
1262  */
1263
1264 #define ICOM_INTERFACE IGraphConfigCallback
1265 #define IGraphConfigCallback_METHODS \
1266     ICOM_METHOD2(HRESULT,Reconfigure,PVOID,a1,DWORD,a2)
1267
1268 #define IGraphConfigCallback_IMETHODS \
1269     IUnknown_IMETHODS \
1270     IGraphConfigCallback_METHODS
1271
1272 ICOM_DEFINE(IGraphConfigCallback,IUnknown)
1273 #undef ICOM_INTERFACE
1274
1275     /*** IUnknown methods ***/
1276 #define IGraphConfigCallback_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1277 #define IGraphConfigCallback_AddRef(p) ICOM_CALL (AddRef,p)
1278 #define IGraphConfigCallback_Release(p) ICOM_CALL (Release,p)
1279     /*** IGraphConfigCallback methods ***/
1280 #define IGraphConfigCallback_Reconfigure(p,a1,a2) ICOM_CALL2(Reconfigure,p,a1,a2)
1281
1282 /**************************************************************************
1283  *
1284  * IGraphVersion interface
1285  *
1286  */
1287
1288 #define ICOM_INTERFACE IGraphVersion
1289 #define IGraphVersion_METHODS \
1290     ICOM_METHOD1(HRESULT,QueryVersion,LONG*,a1)
1291
1292 #define IGraphVersion_IMETHODS \
1293     IUnknown_IMETHODS \
1294     IGraphVersion_METHODS
1295
1296 ICOM_DEFINE(IGraphVersion,IUnknown)
1297 #undef ICOM_INTERFACE
1298
1299     /*** IUnknown methods ***/
1300 #define IGraphVersion_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1301 #define IGraphVersion_AddRef(p) ICOM_CALL (AddRef,p)
1302 #define IGraphVersion_Release(p) ICOM_CALL (Release,p)
1303     /*** IGraphVersion methods ***/
1304 #define IGraphVersion_QueryVersion(p,a1) ICOM_CALL1(QueryVersion,p,a1)
1305
1306
1307 /**************************************************************************
1308  *
1309  * IMediaEventSink interface
1310  *
1311  */
1312
1313 #define ICOM_INTERFACE IMediaEventSink
1314 #define IMediaEventSink_METHODS \
1315     ICOM_METHOD3(HRESULT,Notify,long,a1,LONG_PTR,a2,LONG_PTR,a3)
1316
1317 #define IMediaEventSink_IMETHODS \
1318     IUnknown_IMETHODS \
1319     IMediaEventSink_METHODS
1320
1321 ICOM_DEFINE(IMediaEventSink,IUnknown)
1322 #undef ICOM_INTERFACE
1323
1324     /*** IUnknown methods ***/
1325 #define IMediaEventSink_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1326 #define IMediaEventSink_AddRef(p) ICOM_CALL (AddRef,p)
1327 #define IMediaEventSink_Release(p) ICOM_CALL (Release,p)
1328     /*** IMediaEventSink methods ***/
1329 #define IMediaEventSink_Notify(p,a1,a2,a3) ICOM_CALL3(Notify,p,a1,a2,a3)
1330
1331 /**************************************************************************
1332  *
1333  * IMediaPropertyBag interface
1334  *
1335  */
1336
1337 #define ICOM_INTERFACE IMediaPropertyBag
1338 #define IMediaPropertyBag_METHODS \
1339     ICOM_METHOD3(HRESULT,EnumProperty,ULONG,a1,VARIANT*,a2,VARIANT*,a3)
1340
1341 #define IMediaPropertyBag_IMETHODS \
1342     IPropertyBag_IMETHODS \
1343     IMediaPropertyBag_METHODS
1344
1345 ICOM_DEFINE(IMediaPropertyBag,IPropertyBag)
1346 #undef ICOM_INTERFACE
1347
1348     /*** IUnknown methods ***/
1349 #define IMediaPropertyBag_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1350 #define IMediaPropertyBag_AddRef(p) ICOM_CALL (AddRef,p)
1351 #define IMediaPropertyBag_Release(p) ICOM_CALL (Release,p)
1352     /*** IPropertyBag methods ***/
1353 #define IMediaPropertyBag_Read(p,a1,a2,a3) ICOM_CALL3(Read,p,a1,a2,a3)
1354 #define IMediaPropertyBag_Write(p,a1,a2) ICOM_CALL2(Write,p,a1,a2)
1355     /*** IMediaPropertyBag methods ***/
1356 #define IMediaPropertyBag_EnumProperty(p,a1,a2,a3) ICOM_CALL3(EnumProperty,p,a1,a2,a3)
1357
1358 /**************************************************************************
1359  *
1360  * IMediaSample interface
1361  *
1362  */
1363
1364 #define ICOM_INTERFACE IMediaSample
1365 #define IMediaSample_METHODS \
1366     ICOM_METHOD1(HRESULT,GetPointer,BYTE**,a1) \
1367     ICOM_METHOD (long,GetSize) \
1368     ICOM_METHOD2(HRESULT,GetTime,REFERENCE_TIME*,a1,REFERENCE_TIME*,a2) \
1369     ICOM_METHOD2(HRESULT,SetTime,REFERENCE_TIME*,a1,REFERENCE_TIME*,a2) \
1370     ICOM_METHOD (HRESULT,IsSyncPoint) \
1371     ICOM_METHOD1(HRESULT,SetSyncPoint,BOOL,a1) \
1372     ICOM_METHOD (HRESULT,IsPreroll) \
1373     ICOM_METHOD1(HRESULT,SetPreroll,BOOL,a1) \
1374     ICOM_METHOD (long,GetActualDataLength) \
1375     ICOM_METHOD1(HRESULT,SetActualDataLength,long,a1) \
1376     ICOM_METHOD1(HRESULT,GetMediaType,AM_MEDIA_TYPE**,a1) \
1377     ICOM_METHOD1(HRESULT,SetMediaType,AM_MEDIA_TYPE*,a1) \
1378     ICOM_METHOD (HRESULT,IsDiscontinuity) \
1379     ICOM_METHOD1(HRESULT,SetDiscontinuity,BOOL,a1) \
1380     ICOM_METHOD2(HRESULT,GetMediaTime,LONGLONG*,a1,LONGLONG*,a2) \
1381     ICOM_METHOD2(HRESULT,SetMediaTime,LONGLONG*,a1,LONGLONG*,a2)
1382
1383 #define IMediaSample_IMETHODS \
1384     IUnknown_IMETHODS \
1385     IMediaSample_METHODS
1386
1387 ICOM_DEFINE(IMediaSample,IUnknown)
1388 #undef ICOM_INTERFACE
1389
1390     /*** IUnknown methods ***/
1391 #define IMediaSample_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1392 #define IMediaSample_AddRef(p) ICOM_CALL (AddRef,p)
1393 #define IMediaSample_Release(p) ICOM_CALL (Release,p)
1394     /*** IMediaSample methods ***/
1395 #define IMediaSample_GetPointer(p,a1) ICOM_CALL1(GetPointer,p,a1)
1396 #define IMediaSample_GetSize(p) ICOM_CALL (GetSize,p)
1397 #define IMediaSample_GetTime(p,a1,a2) ICOM_CALL2(GetTime,p,a1,a2)
1398 #define IMediaSample_SetTime(p,a1,a2) ICOM_CALL2(SetTime,p,a1,a2)
1399 #define IMediaSample_IsSyncPoint(p) ICOM_CALL (IsSyncPoint,p)
1400 #define IMediaSample_SetSyncPoint(p,a1) ICOM_CALL1(SetSyncPoint,p,a1)
1401 #define IMediaSample_IsPreroll(p) ICOM_CALL (IsPreroll,p)
1402 #define IMediaSample_SetPreroll(p,a1) ICOM_CALL1(SetPreroll,p,a1)
1403 #define IMediaSample_GetActualDataLength(p) ICOM_CALL (GetActualDataLength,p)
1404 #define IMediaSample_SetActualDataLength(p,a1) ICOM_CALL1(SetActualDataLength,p,a1)
1405 #define IMediaSample_GetMediaType(p,a1) ICOM_CALL1(GetMediaType,p,a1)
1406 #define IMediaSample_SetMediaType(p,a1) ICOM_CALL1(SetMediaType,p,a1)
1407 #define IMediaSample_IsDiscontinuity(p) ICOM_CALL (IsDiscontinuity,p)
1408 #define IMediaSample_SetDiscontinuity(p,a1) ICOM_CALL1(SetDiscontinuity,p,a1)
1409 #define IMediaSample_GetMediaTime(p,a1,a2) ICOM_CALL2(GetMediaTime,p,a1,a2)
1410 #define IMediaSample_SetMediaTime(p,a1,a2) ICOM_CALL2(SetMediaTime,p,a1,a2)
1411
1412 /**************************************************************************
1413  *
1414  * IMediaSample2 interface
1415  *
1416  */
1417
1418 #define ICOM_INTERFACE IMediaSample2
1419 #define IMediaSample2_METHODS \
1420     ICOM_METHOD2(HRESULT,GetProperties,DWORD,a1,BYTE*,a2) \
1421     ICOM_METHOD2(HRESULT,SetProperties,DWORD,a1,const BYTE*,a2)
1422
1423 #define IMediaSample2_IMETHODS \
1424     IMediaSample_IMETHODS \
1425     IMediaSample2_METHODS
1426
1427 ICOM_DEFINE(IMediaSample2,IMediaSample)
1428 #undef ICOM_INTERFACE
1429
1430     /*** IUnknown methods ***/
1431 #define IMediaSample2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1432 #define IMediaSample2_AddRef(p) ICOM_CALL (AddRef,p)
1433 #define IMediaSample2_Release(p) ICOM_CALL (Release,p)
1434     /*** IMediaSample methods ***/
1435 #define IMediaSample2_GetPointer(p,a1) ICOM_CALL1(GetPointer,p,a1)
1436 #define IMediaSample2_GetSize(p,a1) ICOM_CALL1(GetSize,p,a1)
1437 #define IMediaSample2_GetTime(p,a1,a2) ICOM_CALL2(GetTime,p,a1,a2)
1438 #define IMediaSample2_SetTime(p,a1,a2) ICOM_CALL2(SetTime,p,a1,a2)
1439 #define IMediaSample2_IsSyncPoint(p,a1) ICOM_CALL1(IsSyncPoint,p,a1)
1440 #define IMediaSample2_SetSyncPoint(p,a1) ICOM_CALL1(SetSyncPoint,p,a1)
1441 #define IMediaSample2_IsPreroll(p,a1) ICOM_CALL1(IsPreroll,p,a1)
1442 #define IMediaSample2_SetPreroll(p,a1) ICOM_CALL1(SetPreroll,p,a1)
1443 #define IMediaSample2_GetActualDataLength(p,a1) ICOM_CALL1(GetActualDataLength,p,a1)
1444 #define IMediaSample2_SetActualDataLength(p,a1) ICOM_CALL1(SetActualDataLength,p,a1)
1445 #define IMediaSample2_GetMediaType(p,a1) ICOM_CALL1(GetMediaType,p,a1)
1446 #define IMediaSample2_SetMediaType(p,a1) ICOM_CALL1(SetMediaType,p,a1)
1447 #define IMediaSample2_IsDiscontinuity(p,a1) ICOM_CALL1(IsDiscontinuity,p,a1)
1448 #define IMediaSample2_SetDiscontinuity(p,a1) ICOM_CALL1(SetDiscontinuity,p,a1)
1449 #define IMediaSample2_GetMediaTime(p,a1,a2) ICOM_CALL2(GetMediaTime,p,a1,a2)
1450 #define IMediaSample2_SetMediaTime(p,a1,a2) ICOM_CALL2(SetMediaTime,p,a1,a2)
1451     /*** IMediaSample2 methods ***/
1452 #define IMediaSample2_GetProperties(p,a1,a2) ICOM_CALL2(GetProperties,p,a1,a2)
1453 #define IMediaSample2_SetProperties(p,a1,a2) ICOM_CALL2(SetProperties,p,a1,a2)
1454
1455 /**************************************************************************
1456  *
1457  * IMediaSeeking interface
1458  *
1459  */
1460
1461 #define ICOM_INTERFACE IMediaSeeking
1462 #define IMediaSeeking_METHODS \
1463     ICOM_METHOD1(HRESULT,GetCapabilities,DWORD*,a1) \
1464     ICOM_METHOD1(HRESULT,CheckCapabilities,DWORD*,a1) \
1465     ICOM_METHOD1(HRESULT,IsFormatSupported,const GUID*,a1) \
1466     ICOM_METHOD1(HRESULT,QueryPreferredFormat,GUID*,a1) \
1467     ICOM_METHOD1(HRESULT,GetTimeFormat,GUID*,a1) \
1468     ICOM_METHOD1(HRESULT,IsUsingTimeFormat,const GUID*,a1) \
1469     ICOM_METHOD1(HRESULT,SetTimeFormat,const GUID*,a1) \
1470     ICOM_METHOD1(HRESULT,GetDuration,LONGLONG*,a1) \
1471     ICOM_METHOD1(HRESULT,GetStopPosition,LONGLONG*,a1) \
1472     ICOM_METHOD1(HRESULT,GetCurrentPosition,LONGLONG*,a1) \
1473     ICOM_METHOD4(HRESULT,ConvertTimeFormat,LONGLONG*,a1,const GUID*,a2,LONGLONG,a3,const GUID*,a4) \
1474     ICOM_METHOD4(HRESULT,SetPositions,LONGLONG*,a1,DWORD,a2,LONGLONG*,a3,DWORD,a4) \
1475     ICOM_METHOD2(HRESULT,GetPositions,LONGLONG*,a1,LONGLONG*,a2) \
1476     ICOM_METHOD2(HRESULT,GetAvailable,LONGLONG*,a1,LONGLONG*,a2) \
1477     ICOM_METHOD1(HRESULT,SetRate,double,a1) \
1478     ICOM_METHOD1(HRESULT,GetRate,double*,a1) \
1479     ICOM_METHOD1(HRESULT,GetPreroll,LONGLONG*,a1)
1480
1481 #define IMediaSeeking_IMETHODS \
1482     IUnknown_IMETHODS \
1483     IMediaSeeking_METHODS
1484
1485 ICOM_DEFINE(IMediaSeeking,IUnknown)
1486 #undef ICOM_INTERFACE
1487
1488     /*** IUnknown methods ***/
1489 #define IMediaSeeking_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1490 #define IMediaSeeking_AddRef(p) ICOM_CALL (AddRef,p)
1491 #define IMediaSeeking_Release(p) ICOM_CALL (Release,p)
1492     /*** IMediaSeeking methods ***/
1493 #define IMediaSeeking_GetCapabilities(p,a1) ICOM_CALL1(GetCapabilities,p,a1)
1494 #define IMediaSeeking_CheckCapabilities(p,a1) ICOM_CALL1(CheckCapabilities,p,a1)
1495 #define IMediaSeeking_IsFormatSupported(p,a1) ICOM_CALL1(IsFormatSupported,p,a1)
1496 #define IMediaSeeking_QueryPreferredFormat(p,a1) ICOM_CALL1(QueryPreferredFormat,p,a1)
1497 #define IMediaSeeking_GetTimeFormat(p,a1) ICOM_CALL1(GetTimeFormat,p,a1)
1498 #define IMediaSeeking_IsUsingTimeFormat(p,a1) ICOM_CALL1(IsUsingTimeFormat,p,a1)
1499 #define IMediaSeeking_SetTimeFormat(p,a1) ICOM_CALL1(SetTimeFormat,p,a1)
1500 #define IMediaSeeking_GetDuration(p,a1) ICOM_CALL1(GetDuration,p,a1)
1501 #define IMediaSeeking_GetStopPosition(p,a1) ICOM_CALL1(GetStopPosition,p,a1)
1502 #define IMediaSeeking_GetCurrentPosition(p,a1) ICOM_CALL1(GetCurrentPosition,p,a1)
1503 #define IMediaSeeking_ConvertTimeFormat(p,a1,a2,a3,a4) ICOM_CALL4(ConvertTimeFormat,p,a1,a2,a3,a4)
1504 #define IMediaSeeking_SetPositions(p,a1,a2,a3,a4) ICOM_CALL4(SetPositions,p,a1,a2,a3,a4)
1505 #define IMediaSeeking_GetPositions(p,a1,a2) ICOM_CALL2(GetPositions,p,a1,a2)
1506 #define IMediaSeeking_GetAvailable(p,a1,a2) ICOM_CALL2(GetAvailable,p,a1,a2)
1507 #define IMediaSeeking_SetRate(p,a1) ICOM_CALL1(SetRate,p,a1)
1508 #define IMediaSeeking_GetRate(p,a1) ICOM_CALL1(GetRate,p,a1)
1509 #define IMediaSeeking_GetPreroll(p,a1) ICOM_CALL1(GetPreroll,p,a1)
1510
1511 /**************************************************************************
1512  *
1513  * IMemAllocator interface
1514  *
1515  */
1516
1517 #define ICOM_INTERFACE IMemAllocator
1518 #define IMemAllocator_METHODS \
1519     ICOM_METHOD2(HRESULT,SetProperties,ALLOCATOR_PROPERTIES*,a1,ALLOCATOR_PROPERTIES*,a2) \
1520     ICOM_METHOD1(HRESULT,GetProperties,ALLOCATOR_PROPERTIES*,a1) \
1521     ICOM_METHOD (HRESULT,Commit) \
1522     ICOM_METHOD (HRESULT,Decommit) \
1523     ICOM_METHOD4(HRESULT,GetBuffer,IMediaSample**,a1,REFERENCE_TIME*,a2,REFERENCE_TIME*,a3,DWORD,a4) \
1524     ICOM_METHOD1(HRESULT,ReleaseBuffer,IMediaSample*,a1)
1525
1526 #define IMemAllocator_IMETHODS \
1527     IUnknown_IMETHODS \
1528     IMemAllocator_METHODS
1529
1530 ICOM_DEFINE(IMemAllocator,IUnknown)
1531 #undef ICOM_INTERFACE
1532
1533     /*** IUnknown methods ***/
1534 #define IMemAllocator_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1535 #define IMemAllocator_AddRef(p) ICOM_CALL (AddRef,p)
1536 #define IMemAllocator_Release(p) ICOM_CALL (Release,p)
1537     /*** IMemAllocator methods ***/
1538 #define IMemAllocator_SetProperties(p,a1,a2) ICOM_CALL2(SetProperties,p,a1,a2)
1539 #define IMemAllocator_GetProperties(p,a1) ICOM_CALL1(GetProperties,p,a1)
1540 #define IMemAllocator_Commit(p) ICOM_CALL (Commit,p)
1541 #define IMemAllocator_Decommit(p) ICOM_CALL (Decommit,p)
1542 #define IMemAllocator_GetBuffer(p,a1,a2,a3,a4) ICOM_CALL4(GetBuffer,p,a1,a2,a3,a4)
1543 #define IMemAllocator_ReleaseBuffer(p,a1) ICOM_CALL1(ReleaseBuffer,p,a1)
1544
1545 /**************************************************************************
1546  *
1547  * IMemAllocatorCallbackTemp interface
1548  *
1549  */
1550
1551 #define ICOM_INTERFACE IMemAllocatorCallbackTemp
1552 #define IMemAllocatorCallbackTemp_METHODS \
1553     ICOM_METHOD1(HRESULT,SetNotify,IMemAllocatorNotifyCallbackTemp*,a1) \
1554     ICOM_METHOD1(HRESULT,GetFreeCount,LONG*,a1)
1555
1556 #define IMemAllocatorCallbackTemp_IMETHODS \
1557     IMemAllocator_IMETHODS \
1558     IMemAllocatorCallbackTemp_METHODS
1559
1560 ICOM_DEFINE(IMemAllocatorCallbackTemp,IMemAllocator)
1561 #undef ICOM_INTERFACE
1562
1563     /*** IUnknown methods ***/
1564 #define IMemAllocatorCallbackTemp_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1565 #define IMemAllocatorCallbackTemp_AddRef(p) ICOM_CALL (AddRef,p)
1566 #define IMemAllocatorCallbackTemp_Release(p) ICOM_CALL (Release,p)
1567     /*** IMemAllocator methods ***/
1568 #define IMemAllocatorCallbackTemp_SetProperties(p,a1,a2) ICOM_CALL2(SetProperties,p,a1,a2)
1569 #define IMemAllocatorCallbackTemp_GetProperties(p,a1) ICOM_CALL1(GetProperties,p,a1)
1570 #define IMemAllocatorCallbackTemp_Commit(p,a1) ICOM_CALL1(Commit,p,a1)
1571 #define IMemAllocatorCallbackTemp_Decommit(p,a1) ICOM_CALL1(Decommit,p,a1)
1572 #define IMemAllocatorCallbackTemp_GetBuffer(p,a1,a2,a3,a4) ICOM_CALL4(GetBuffer,p,a1,a2,a3,a4)
1573 #define IMemAllocatorCallbackTemp_ReleaseBuffer(p,a1) ICOM_CALL1(ReleaseBuffer,p,a1)
1574     /*** IMemAllocatorCallbackTemp methods ***/
1575 #define IMemAllocatorCallbackTemp_SetNotify(p,a1) ICOM_CALL1(SetNotify,p,a1)
1576 #define IMemAllocatorCallbackTemp_GetFreeCount(p,a1) ICOM_CALL1(GetFreeCount,p,a1)
1577
1578 /**************************************************************************
1579  *
1580  * IMemAllocatorNotifyCallbackTemp interface
1581  *
1582  */
1583
1584 #define ICOM_INTERFACE IMemAllocatorNotifyCallbackTemp
1585 #define IMemAllocatorNotifyCallbackTemp_METHODS \
1586     ICOM_METHOD (HRESULT,NotifyRelease)
1587
1588 #define IMemAllocatorNotifyCallbackTemp_IMETHODS \
1589     IUnknown_IMETHODS \
1590     IMemAllocatorNotifyCallbackTemp_METHODS
1591
1592 ICOM_DEFINE(IMemAllocatorNotifyCallbackTemp,IUnknown)
1593 #undef ICOM_INTERFACE
1594
1595     /*** IUnknown methods ***/
1596 #define IMemAllocatorNotifyCallbackTemp_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1597 #define IMemAllocatorNotifyCallbackTemp_AddRef(p) ICOM_CALL (AddRef,p)
1598 #define IMemAllocatorNotifyCallbackTemp_Release(p) ICOM_CALL (Release,p)
1599     /*** IMemAllocatorNotifyCallbackTemp methods ***/
1600 #define IMemAllocatorNotifyCallbackTemp_NotifyRelease(p) ICOM_CALL (NotifyRelease,p)
1601
1602 /**************************************************************************
1603  *
1604  * IMemInputPin interface
1605  *
1606  */
1607
1608 #define ICOM_INTERFACE IMemInputPin
1609 #define IMemInputPin_METHODS \
1610     ICOM_METHOD1(HRESULT,GetAllocator,IMemAllocator**,a1) \
1611     ICOM_METHOD2(HRESULT,NotifyAllocator,IMemAllocator*,a1,BOOL,a2) \
1612     ICOM_METHOD1(HRESULT,GetAllocatorRequirements,ALLOCATOR_PROPERTIES*,a1) \
1613     ICOM_METHOD1(HRESULT,Receive,IMediaSample*,a1) \
1614     ICOM_METHOD3(HRESULT,ReceiveMultiple,IMediaSample**,a1,long,a2,long*,a3) \
1615     ICOM_METHOD (HRESULT,ReceiveCanBlock)
1616
1617 #define IMemInputPin_IMETHODS \
1618     IUnknown_IMETHODS \
1619     IMemInputPin_METHODS
1620
1621 ICOM_DEFINE(IMemInputPin,IUnknown)
1622 #undef ICOM_INTERFACE
1623
1624     /*** IUnknown methods ***/
1625 #define IMemInputPin_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1626 #define IMemInputPin_AddRef(p) ICOM_CALL (AddRef,p)
1627 #define IMemInputPin_Release(p) ICOM_CALL (Release,p)
1628     /*** IMemInputPin methods ***/
1629 #define IMemInputPin_GetAllocator(p,a1) ICOM_CALL1(GetAllocator,p,a1)
1630 #define IMemInputPin_NotifyAllocator(p,a1,a2) ICOM_CALL2(NotifyAllocator,p,a1,a2)
1631 #define IMemInputPin_GetAllocatorRequirements(p,a1) ICOM_CALL1(GetAllocatorRequirements,p,a1)
1632 #define IMemInputPin_Receive(p,a1) ICOM_CALL1(Receive,p,a1)
1633 #define IMemInputPin_ReceiveMultiple(p,a1,a2,a3) ICOM_CALL3(ReceiveMultiple,p,a1,a2,a3)
1634 #define IMemInputPin_ReceiveCanBlock(p) ICOM_CALL (ReceiveCanBlock,p)
1635
1636 /**************************************************************************
1637  *
1638  * IOverlay interface
1639  *
1640  */
1641
1642 #define ICOM_INTERFACE IOverlay
1643 #define IOverlay_METHODS \
1644     ICOM_METHOD2(HRESULT,GetPalette,DWORD*,a1,PALETTEENTRY**,a2) \
1645     ICOM_METHOD2(HRESULT,SetPalette,DWORD,a1,PALETTEENTRY*,a2) \
1646     ICOM_METHOD1(HRESULT,GetDefaultColorKey,COLORKEY*,a1) \
1647     ICOM_METHOD1(HRESULT,GetColorKey,COLORKEY*,a1) \
1648     ICOM_METHOD1(HRESULT,SetColorKey,COLORKEY*,a1) \
1649     ICOM_METHOD1(HRESULT,GetWindowHandle,HWND*,a1) \
1650     ICOM_METHOD3(HRESULT,GetClipList,RECT*,a1,RECT*,a2,RGNDATA**,a3) \
1651     ICOM_METHOD2(HRESULT,GetVideoPosition,RECT*,a1,RECT*,a2) \
1652     ICOM_METHOD2(HRESULT,Advise,IOverlayNotify*,a1,DWORD,a2) \
1653     ICOM_METHOD (HRESULT,Unadvise)
1654
1655 #define IOverlay_IMETHODS \
1656     IUnknown_IMETHODS \
1657     IOverlay_METHODS
1658
1659 ICOM_DEFINE(IOverlay,IUnknown)
1660 #undef ICOM_INTERFACE
1661
1662     /*** IUnknown methods ***/
1663 #define IOverlay_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1664 #define IOverlay_AddRef(p) ICOM_CALL (AddRef,p)
1665 #define IOverlay_Release(p) ICOM_CALL (Release,p)
1666     /*** IOverlay methods ***/
1667 #define IOverlay_GetPalette(p,a1,a2) ICOM_CALL2(GetPalette,p,a1,a2)
1668 #define IOverlay_SetPalette(p,a1,a2) ICOM_CALL2(SetPalette,p,a1,a2)
1669 #define IOverlay_GetDefaultColorKey(p,a1) ICOM_CALL1(GetDefaultColorKey,p,a1)
1670 #define IOverlay_GetColorKey(p,a1) ICOM_CALL1(GetColorKey,p,a1)
1671 #define IOverlay_SetColorKey(p,a1) ICOM_CALL1(SetColorKey,p,a1)
1672 #define IOverlay_GetWindowHandle(p,a1) ICOM_CALL1(GetWindowHandle,p,a1)
1673 #define IOverlay_GetClipList(p,a1,a2,a3) ICOM_CALL3(GetClipList,p,a1,a2,a3)
1674 #define IOverlay_GetVideoPosition(p,a1,a2) ICOM_CALL2(GetVideoPosition,p,a1,a2)
1675 #define IOverlay_Advise(p,a1,a2) ICOM_CALL2(Advise,p,a1,a2)
1676 #define IOverlay_Unadvise(p) ICOM_CALL1(Unadvise,p)
1677
1678 /**************************************************************************
1679  *
1680  * IPin interface
1681  *
1682  */
1683
1684 #define ICOM_INTERFACE IPin
1685 #define IPin_METHODS \
1686     ICOM_METHOD2(HRESULT,Connect,IPin*,a1,const AM_MEDIA_TYPE*,a2) \
1687     ICOM_METHOD2(HRESULT,ReceiveConnection,IPin*,a1,const AM_MEDIA_TYPE*,a2) \
1688     ICOM_METHOD (HRESULT,Disconnect) \
1689     ICOM_METHOD1(HRESULT,ConnectedTo,IPin**,a1) \
1690     ICOM_METHOD1(HRESULT,ConnectionMediaType,AM_MEDIA_TYPE*,a1) \
1691     ICOM_METHOD1(HRESULT,QueryPinInfo,PIN_INFO*,a1) \
1692     ICOM_METHOD1(HRESULT,QueryDirection,PIN_DIRECTION*,a1) \
1693     ICOM_METHOD1(HRESULT,QueryId,LPWSTR*,a1) \
1694     ICOM_METHOD1(HRESULT,QueryAccept,const AM_MEDIA_TYPE*,a1) \
1695     ICOM_METHOD1(HRESULT,EnumMediaTypes,IEnumMediaTypes**,a1) \
1696     ICOM_METHOD2(HRESULT,QueryInternalConnections,IPin**,a1,ULONG*,a2) \
1697     ICOM_METHOD (HRESULT,EndOfStream) \
1698     ICOM_METHOD (HRESULT,BeginFlush) \
1699     ICOM_METHOD (HRESULT,EndFlush) \
1700     ICOM_METHOD3(HRESULT,NewSegment,REFERENCE_TIME,a1,REFERENCE_TIME,a2,double,a3)
1701
1702 #define IPin_IMETHODS \
1703     IUnknown_IMETHODS \
1704     IPin_METHODS
1705
1706 ICOM_DEFINE(IPin,IUnknown)
1707 #undef ICOM_INTERFACE
1708
1709     /*** IUnknown methods ***/
1710 #define IPin_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1711 #define IPin_AddRef(p) ICOM_CALL (AddRef,p)
1712 #define IPin_Release(p) ICOM_CALL (Release,p)
1713     /*** IPin methods ***/
1714 #define IPin_Connect(p,a1,a2) ICOM_CALL2(Connect,p,a1,a2)
1715 #define IPin_ReceiveConnection(p,a1,a2) ICOM_CALL2(ReceiveConnection,p,a1,a2)
1716 #define IPin_Disconnect(p) ICOM_CALL (Disconnect,p)
1717 #define IPin_ConnectedTo(p,a1) ICOM_CALL1(ConnectedTo,p,a1)
1718 #define IPin_ConnectionMediaType(p,a1) ICOM_CALL1(ConnectionMediaType,p,a1)
1719 #define IPin_QueryPinInfo(p,a1) ICOM_CALL1(QueryPinInfo,p,a1)
1720 #define IPin_QueryDirection(p,a1) ICOM_CALL1(QueryDirection,p,a1)
1721 #define IPin_QueryId(p,a1) ICOM_CALL1(QueryId,p,a1)
1722 #define IPin_QueryAccept(p,a1) ICOM_CALL1(QueryAccept,p,a1)
1723 #define IPin_EnumMediaTypes(p,a1) ICOM_CALL1(EnumMediaTypes,p,a1)
1724 #define IPin_QueryInternalConnections(p,a1,a2) ICOM_CALL2(QueryInternalConnections,p,a1,a2)
1725 #define IPin_EndOfStream(p) ICOM_CALL (EndOfStream,p)
1726 #define IPin_BeginFlush(p) ICOM_CALL (BeginFlush,p)
1727 #define IPin_EndFlush(p) ICOM_CALL (EndFlush,p)
1728 #define IPin_NewSegment(p,a1,a2,a3) ICOM_CALL3(NewSegment,p,a1,a2,a3)
1729
1730 /**************************************************************************
1731  *
1732  * IQualityControl interface
1733  *
1734  */
1735
1736 #define ICOM_INTERFACE IQualityControl
1737 #define IQualityControl_METHODS \
1738     ICOM_METHOD2(HRESULT,Notify,IBaseFilter*,a1,Quality,a2) \
1739     ICOM_METHOD1(HRESULT,SetSink,IQualityControl*,a1)
1740
1741 #define IQualityControl_IMETHODS \
1742     IUnknown_IMETHODS \
1743     IQualityControl_METHODS
1744
1745 ICOM_DEFINE(IQualityControl,IUnknown)
1746 #undef ICOM_INTERFACE
1747
1748     /*** IUnknown methods ***/
1749 #define IQualityControl_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1750 #define IQualityControl_AddRef(p) ICOM_CALL (AddRef,p)
1751 #define IQualityControl_Release(p) ICOM_CALL (Release,p)
1752     /*** IQualityControl methods ***/
1753 #define IQualityControl_Notify(p,a1,a2) ICOM_CALL2(Notify,p,a1,a2)
1754 #define IQualityControl_SetSink(p,a1) ICOM_CALL1(SetSink,p,a1)
1755
1756 /**************************************************************************
1757  *
1758  * IReferenceClock interface
1759  *
1760  */
1761
1762 #define ICOM_INTERFACE IReferenceClock
1763 #define IReferenceClock_METHODS \
1764     ICOM_METHOD1(HRESULT,GetTime,REFERENCE_TIME*,a1) \
1765     ICOM_METHOD4(HRESULT,AdviseTime,REFERENCE_TIME,a1,REFERENCE_TIME,a2,HEVENT,a3,DWORD_PTR*,a4) \
1766     ICOM_METHOD4(HRESULT,AdvisePeriodic,REFERENCE_TIME,a1,REFERENCE_TIME,a2,HSEMAPHORE,a3,DWORD_PTR*,a4) \
1767     ICOM_METHOD1(HRESULT,Unadvise,DWORD_PTR,a1)
1768
1769 #define IReferenceClock_IMETHODS \
1770     IUnknown_IMETHODS \
1771     IReferenceClock_METHODS
1772
1773 ICOM_DEFINE(IReferenceClock,IUnknown)
1774 #undef ICOM_INTERFACE
1775
1776     /*** IUnknown methods ***/
1777 #define IReferenceClock_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1778 #define IReferenceClock_AddRef(p) ICOM_CALL (AddRef,p)
1779 #define IReferenceClock_Release(p) ICOM_CALL (Release,p)
1780     /*** IReferenceClock methods ***/
1781 #define IReferenceClock_GetTime(p,a1) ICOM_CALL1(GetTime,p,a1)
1782 #define IReferenceClock_AdviseTime(p,a1,a2,a3,a4) ICOM_CALL4(AdviseTime,p,a1,a2,a3,a4)
1783 #define IReferenceClock_AdvisePeriodic(p,a1,a2,a3,a4) ICOM_CALL4(AdvisePeriodic,p,a1,a2,a3,a4)
1784 #define IReferenceClock_Unadvise(p,a1) ICOM_CALL1(Unadvise,p,a1)
1785
1786 /**************************************************************************
1787  *
1788  * IReferenceClock2 interface
1789  *
1790  */
1791
1792 #define ICOM_INTERFACE IReferenceClock2
1793 #define IReferenceClock2_METHODS
1794
1795 #define IReferenceClock2_IMETHODS \
1796     IReferenceClock_IMETHODS \
1797     IReferenceClock2_METHODS
1798
1799 ICOM_DEFINE(IReferenceClock2,IReferenceClock)
1800 #undef ICOM_INTERFACE
1801
1802     /*** IUnknown methods ***/
1803 #define IReferenceClock2_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1804 #define IReferenceClock2_AddRef(p) ICOM_CALL (AddRef,p)
1805 #define IReferenceClock2_Release(p) ICOM_CALL (Release,p)
1806     /*** IReferenceClock methods ***/
1807 #define IReferenceClock2_GetTime(p,a1) ICOM_CALL1(GetTime,p,a1)
1808 #define IReferenceClock2_AdviseTime(p,a1,a2,a3,a4) ICOM_CALL4(AdviseTime,p,a1,a2,a3,a4)
1809 #define IReferenceClock2_AdvisePeriodic(p,a1,a2,a3,a4) ICOM_CALL4(AdvisePeriodic,p,a1,a2,a3,a4)
1810 #define IReferenceClock2_Unadvise(p,a1) ICOM_CALL1(Unadvise,p,a1)
1811     /*** IReferenceClock2 methods ***/
1812
1813 /**************************************************************************
1814  *
1815  * ISeekingPassThru interface
1816  *
1817  */
1818
1819 #define ICOM_INTERFACE ISeekingPassThru
1820 #define ISeekingPassThru_METHODS \
1821     ICOM_METHOD2(HRESULT,Init,BOOL,a1,IPin*,a2)
1822
1823 #define ISeekingPassThru_IMETHODS \
1824     IUnknown_IMETHODS \
1825     ISeekingPassThru_METHODS
1826
1827 ICOM_DEFINE(ISeekingPassThru,IUnknown)
1828 #undef ICOM_INTERFACE
1829
1830     /*** IUnknown methods ***/
1831 #define ISeekingPassThru_QueryInterface(p,a1,a2) ICOM_CALL2(QueryInterface,p,a1,a2)
1832 #define ISeekingPassThru_AddRef(p) ICOM_CALL (AddRef,p)
1833 #define ISeekingPassThru_Release(p) ICOM_CALL (Release,p)
1834     /*** ISeekingPassThru methods ***/
1835 #define ISeekingPassThru_Init(p,a1,a2) ICOM_CALL2(Init,p,a1,a2)
1836
1837
1838
1839
1840 #endif  /* __WINE_STRMIF_H_ */