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