source: trunk/include/win/strmif.h@ 6715

Last change on this file since 6715 was 6715, checked in by sandervl, 24 years ago

header updates

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