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