Update tcl to version 8.5.13
[msysgit.git] / mingw / include / vfw.h
blob950340bba6a4fd9155a5e470589f20da7ea71ef0
1 #ifndef _VFW_H
2 #define _VFW_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
7 #ifndef _WINDOWS_H
8 #include <windows.h>
9 #endif
10 #ifndef _MMSYSTEM_H
11 #include <mmsystem.h>
12 #endif
13 #if !defined (_OLE2_H) && !defined (_OBJC_NO_COM)
14 #include <ole2.h>
15 #endif
17 #define VFWAPI WINAPI
18 #define VFWAPIV WINAPIV
20 #include <pshpack8.h>
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
26 #define ICERR_OK 0
27 #define ICERR_DONTDRAW 1
28 #define ICERR_NEWPALETTE 2
29 #define ICERR_GOTOKEYFRAME 3
30 #define ICERR_STOPDRAWING 4
31 #define ICERR_UNSUPPORTED -1
32 #define ICERR_BADFORMAT -2
33 #define ICERR_MEMORY -3
34 #define ICERR_INTERNAL -4
35 #define ICERR_BADFLAGS -5
36 #define ICERR_BADPARAM -6
37 #define ICERR_BADSIZE -7
38 #define ICERR_BADHANDLE -8
39 #define ICERR_CANTUPDATE -9
40 #define ICERR_ABORT -10
41 #define ICERR_ERROR -100
42 #define ICERR_BADBITDEPTH -200
43 #define ICERR_BADIMAGESIZE -201
44 #define ICERR_CUSTOM -400
45 #define ICCOMPRESSFRAMES_PADDING 0x01
46 #define ICM_USER (DRV_USER+0x0000)
47 #define ICM_RESERVED_LOW (DRV_USER+0x1000)
48 #define ICM_RESERVED_HIGH (DRV_USER+0x2000)
49 #define ICM_RESERVED ICM_RESERVED_LOW
50 #define ICM_GETSTATE (ICM_RESERVED+0)
51 #define ICM_SETSTATE (ICM_RESERVED+1)
52 #define ICM_GETINFO (ICM_RESERVED+2)
53 #define ICM_CONFIGURE (ICM_RESERVED+10)
54 #define ICM_ABOUT (ICM_RESERVED+11)
55 #define ICM_GETDEFAULTQUALITY (ICM_RESERVED+30)
56 #define ICM_GETQUALITY (ICM_RESERVED+31)
57 #define ICM_SETQUALITY (ICM_RESERVED+32)
58 #define ICM_SET (ICM_RESERVED+40)
59 #define ICM_GET (ICM_RESERVED+41)
60 #define ICM_FRAMERATE mmioFOURCC('F','r','m','R')
61 #define ICM_KEYFRAMERATE mmioFOURCC('K','e','y','R')
62 #define ICM_COMPRESS_GET_FORMAT (ICM_USER+4)
63 #define ICM_COMPRESS_GET_SIZE (ICM_USER+5)
64 #define ICM_COMPRESS_QUERY (ICM_USER+6)
65 #define ICM_COMPRESS_BEGIN (ICM_USER+7)
66 #define ICM_COMPRESS (ICM_USER+8)
67 #define ICM_COMPRESS_END (ICM_USER+9)
68 #define ICM_DECOMPRESS_GET_FORMAT (ICM_USER+10)
69 #define ICM_DECOMPRESS_QUERY (ICM_USER+11)
70 #define ICM_DECOMPRESS_BEGIN (ICM_USER+12)
71 #define ICM_DECOMPRESS (ICM_USER+13)
72 #define ICM_DECOMPRESS_END (ICM_USER+14)
73 #define ICM_DECOMPRESS_SET_PALETTE (ICM_USER+29)
74 #define ICM_DECOMPRESS_GET_PALETTE (ICM_USER+30)
75 #define ICM_DRAW_QUERY (ICM_USER+31)
76 #define ICM_DRAW_BEGIN (ICM_USER+15)
77 #define ICM_DRAW_GET_PALETTE (ICM_USER+16)
78 #define ICM_DRAW_START (ICM_USER+18)
79 #define ICM_DRAW_STOP (ICM_USER+19)
80 #define ICM_DRAW_END (ICM_USER+21)
81 #define ICM_DRAW_GETTIME (ICM_USER+32)
82 #define ICM_DRAW (ICM_USER+33)
83 #define ICM_DRAW_WINDOW (ICM_USER+34)
84 #define ICM_DRAW_SETTIME (ICM_USER+35)
85 #define ICM_DRAW_REALIZE (ICM_USER+36)
86 #define ICM_DRAW_FLUSH (ICM_USER+37)
87 #define ICM_DRAW_RENDERBUFFER (ICM_USER+38)
88 #define ICM_DRAW_START_PLAY (ICM_USER+39)
89 #define ICM_DRAW_STOP_PLAY (ICM_USER+40)
90 #define ICM_DRAW_SUGGESTFORMAT (ICM_USER+50)
91 #define ICM_DRAW_CHANGEPALETTE (ICM_USER+51)
92 #define ICM_GETBUFFERSWANTED (ICM_USER+41)
93 #define ICM_GETDEFAULTKEYFRAMERATE (ICM_USER+42)
94 #define ICM_DECOMPRESSEX_BEGIN (ICM_USER+60)
95 #define ICM_DECOMPRESSEX_QUERY (ICM_USER+61)
96 #define ICM_DECOMPRESSEX (ICM_USER+62)
97 #define ICM_DECOMPRESSEX_END (ICM_USER+63)
98 #define ICM_COMPRESS_FRAMES_INFO (ICM_USER+70)
99 #define ICM_SET_STATUS_PROC (ICM_USER+72)
100 #define ICMF_CONFIGURE_QUERY 0x01
101 #define ICCOMPRESS_KEYFRAME 0x01
102 #define ICSTATUS_START 0
103 #define ICSTATUS_STATUS 1
104 #define ICSTATUS_END 2
105 #define ICSTATUS_ERROR 3
106 #define ICSTATUS_YIELD 4
107 #define ICMODE_COMPRESS 1
108 #define ICMODE_DECOMPRESS 2
109 #define ICMODE_FASTDECOMPRESS 3
110 #define ICMODE_QUERY 4
111 #define ICMODE_FASTCOMPRESS 5
112 #define ICMODE_DRAW 8
113 #define ICQUALITY_LOW 0
114 #define ICQUALITY_HIGH 10000
115 #define ICQUALITY_DEFAULT -1
116 #define VIDCF_QUALITY 0x01
117 #define VIDCF_CRUNCH 0x02
118 #define VIDCF_TEMPORAL 0x04
119 #define VIDCF_COMPRESSFRAMES 0x08
120 #define VIDCF_DRAW 0x10
121 #define VIDCF_FASTTEMPORALC 0x20
122 #define VIDCF_FASTTEMPORALD 0x80
123 #define VIDCF_QUALITYTIME 0x40
124 #define VIDCF_FASTTEMPORAL (VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD)
125 #define ICMF_ABOUT_QUERY 0x01
126 #define ICDECOMPRESS_HURRYUP 0x80000000
127 #define ICDECOMPRESS_UPDATE 0x40000000
128 #define ICDECOMPRESS_PREROLL 0x20000000
129 #define ICDECOMPRESS_NULLFRAME 0x10000000
130 #define ICDECOMPRESS_NOTKEYFRAME 0x8000000
131 #define ICDRAW_QUERY 0x01L
132 #define ICDRAW_FULLSCREEN 0x02L
133 #define ICDRAW_HDC 0x04L
134 #define ICDRAW_ANIMATE 0x08L
135 #define ICDRAW_CONTINUE 0x10L
136 #define ICDRAW_MEMORYDC 0x20L
137 #define ICDRAW_UPDATING 0x40L
138 #define ICDRAW_RENDER 0x80L
139 #define ICDRAW_BUFFER 0x100L
140 #define ICINSTALL_UNICODE 0x8000
141 #define ICINSTALL_FUNCTION 0x01
142 #define ICINSTALL_DRIVER 0x02
143 #define ICINSTALL_HDRV 0x04
144 #define ICINSTALL_DRIVERW 0x8002
145 #define ICDRAW_HURRYUP 0x80000000L
146 #define ICDRAW_UPDATE 0x40000000L
147 #define ICDRAW_PREROLL 0x20000000L
148 #define ICDRAW_NULLFRAME 0x10000000L
149 #define ICDRAW_NOTKEYFRAME 0x8000000L
150 #define ICMF_COMPVARS_VALID 0x01
151 #define ICMF_CHOOSE_KEYFRAME 0x01
152 #define ICMF_CHOOSE_DATARATE 0x02
153 #define ICMF_CHOOSE_PREVIEW 0x04
154 #define ICMF_CHOOSE_ALLCOMPRESSORS 0x08
155 #define ICTYPE_VIDEO mmioFOURCC('v','i','d','c')
156 #define ICTYPE_AUDIO mmioFOURCC('a','u','d','c')
157 #define formtypeAVI mmioFOURCC('A','V','I',' ')
158 #define listtypeAVIHEADER mmioFOURCC('h','d','r','l')
159 #define ckidAVIMAINHDR mmioFOURCC('a','v','i','h')
160 #define listtypeSTREAMHEADER mmioFOURCC('s','t','r','l')
161 #define ckidSTREAMHEADER mmioFOURCC('s','t','r','h')
162 #define ckidSTREAMFORMAT mmioFOURCC('s','t','r','f')
163 #define ckidSTREAMHANDLERDATA mmioFOURCC('s','t','r','d')
164 #define ckidSTREAMNAME mmioFOURCC('s','t','r','n')
165 #define listtypeAVIMOVIE mmioFOURCC('m','o','v','i')
166 #define listtypeAVIRECORD mmioFOURCC('r','e','c',' ')
167 #define ckidAVINEWINDEX mmioFOURCC('i', 'd', 'x', '1')
168 #define streamtypeANY 0UL
169 #define streamtypeVIDEO mmioFOURCC('v','i','d','s')
170 #define streamtypeAUDIO mmioFOURCC('a','u','d','s')
171 #define streamtypeMIDI mmioFOURCC('m','i','d','s')
172 #define streamtypeTEXT mmioFOURCC('t','x','t','s')
173 #define cktypeDIBbits aviTWOCC('d','b')
174 #define cktypeDIBcompressed aviTWOCC('d','c')
175 #define cktypePALchange aviTWOCC('p','c')
176 #define cktypeWAVEbytes aviTWOCC('w','b')
177 #define ckidAVIPADDING mmioFOURCC('J','U','N','K')
178 #define FromHex(n) (((n)>='A')?((n)+10-'A'):((n)-'0'))
179 #define StreamFromFOURCC(fcc) ((WORD)((FromHex(LOBYTE(LOWORD(fcc)))<<4)+(FromHex(HIBYTE(LOWORD(fcc))))))
180 #define TWOCCFromFOURCC(fcc) HIWORD(fcc)
181 #define ToHex(n) ((BYTE)(((n)>9)?((n)-10+'A'):((n)+'0')))
182 #define MAKEAVICKID(tcc, stream) MAKELONG((ToHex((stream)&0x0f)<<8)|(ToHex(((stream)&0xf0)>>4)),tcc)
183 #define AVIF_HASINDEX 0x10
184 #define AVIF_MUSTUSEINDEX 0x20
185 #define AVIF_ISINTERLEAVED 0x100
186 #define AVIF_TRUSTCKTYPE 0x800
187 #define AVIF_WASCAPTUREFILE 0x10000
188 #define AVIF_COPYRIGHTED 0x20000
189 #define AVI_HEADERSIZE 2048
190 #define AVISF_DISABLED 0x01
191 #define AVISF_VIDEO_PALCHANGES 0x10000
192 #define AVIIF_LIST 0x01
193 #define AVIIF_TWOCC 0x02
194 #define AVIIF_KEYFRAME 0x10
195 #define AVIIF_NOTIME 0x100
196 #define AVIIF_COMPUSE 0xfff0000
197 #define AVIIF_KEYFRAME 0x10
198 #define AVIGETFRAMEF_BESTDISPLAYFMT 1
199 #define AVISTREAMINFO_DISABLED 0x01
200 #define AVISTREAMINFO_FORMATCHANGES 0x10000
201 #define AVIFILEINFO_HASINDEX 0x10
202 #define AVIFILEINFO_MUSTUSEINDEX 0x20
203 #define AVIFILEINFO_ISINTERLEAVED 0x100
204 #define AVIFILEINFO_TRUSTCKTYPE 0x800
205 #define AVIFILEINFO_WASCAPTUREFILE 0x10000
206 #define AVIFILEINFO_COPYRIGHTED 0x20000
207 #define AVIFILECAPS_CANREAD 0x01
208 #define AVIFILECAPS_CANWRITE 0x02
209 #define AVIFILECAPS_ALLKEYFRAMES 0x10
210 #define AVIFILECAPS_NOCOMPRESSION 0x20
211 #define AVICOMPRESSF_INTERLEAVE 0x01
212 #define AVICOMPRESSF_DATARATE 0x02
213 #define AVICOMPRESSF_KEYFRAMES 0x04
214 #define AVICOMPRESSF_VALID 0x08
215 #define FIND_DIR 0x0000000fL
216 #define FIND_NEXT 0x00000001L
217 #define FIND_PREV 0x00000004L
218 #define FIND_FROM_START 0x00000008L
219 #define FIND_TYPE 0x000000f0L
220 #define FIND_KEY 0x00000010L
221 #define FIND_ANY 0x00000020L
222 #define FIND_FORMAT 0x00000040L
223 #define FIND_RET 0x0000f000L
224 #define FIND_POS 0x00000000L
225 #define FIND_LENGTH 0x00001000L
226 #define FIND_OFFSET 0x00002000L
227 #define FIND_SIZE 0x00003000L
228 #define FIND_INDEX 0x00004000L
229 #define AVIERR_OK 0
230 #define MAKE_AVIERR(e) MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000+e)
231 #define AVIERR_UNSUPPORTED MAKE_AVIERR(101)
232 #define AVIERR_BADFORMAT MAKE_AVIERR(102)
233 #define AVIERR_MEMORY MAKE_AVIERR(103)
234 #define AVIERR_INTERNAL MAKE_AVIERR(104)
235 #define AVIERR_BADFLAGS MAKE_AVIERR(105)
236 #define AVIERR_BADPARAM MAKE_AVIERR(106)
237 #define AVIERR_BADSIZE MAKE_AVIERR(107)
238 #define AVIERR_BADHANDLE MAKE_AVIERR(108)
239 #define AVIERR_FILEREAD MAKE_AVIERR(109)
240 #define AVIERR_FILEWRITE MAKE_AVIERR(110)
241 #define AVIERR_FILEOPEN MAKE_AVIERR(111)
242 #define AVIERR_COMPRESSOR MAKE_AVIERR(112)
243 #define AVIERR_NOCOMPRESSOR MAKE_AVIERR(113)
244 #define AVIERR_READONLY MAKE_AVIERR(114)
245 #define AVIERR_NODATA MAKE_AVIERR(115)
246 #define AVIERR_BUFFERTOOSMALL MAKE_AVIERR(116)
247 #define AVIERR_CANTCOMPRESS MAKE_AVIERR(117)
248 #define AVIERR_USERABORT MAKE_AVIERR(198)
249 #define AVIERR_ERROR MAKE_AVIERR(199)
250 #define MCIWNDOPENF_NEW 0x0001
251 #define MCIWNDF_NOAUTOSIZEWINDOW 0x0001
252 #define MCIWNDF_NOPLAYBAR 0x0002
253 #define MCIWNDF_NOAUTOSIZEMOVIE 0x0004
254 #define MCIWNDF_NOMENU 0x0008
255 #define MCIWNDF_SHOWNAME 0x0010
256 #define MCIWNDF_SHOWPOS 0x0020
257 #define MCIWNDF_SHOWMODE 0x0040
258 #define MCIWNDF_SHOWALL 0x0070
259 #define MCIWNDF_NOTIFYMODE 0x0100
260 #define MCIWNDF_NOTIFYPOS 0x0200
261 #define MCIWNDF_NOTIFYSIZE 0x0400
262 #define MCIWNDF_NOTIFYERROR 0x1000
263 #define MCIWNDF_NOTIFYALL 0x1F00
264 #define MCIWNDF_NOTIFYANSI 0x0080
265 #define MCIWNDF_NOTIFYMEDIAA 0x0880
266 #define MCIWNDF_NOTIFYMEDIAW 0x0800
267 #define MCIWNDF_RECORD 0x2000
268 #define MCIWNDF_NOERRORDLG 0x4000
269 #define MCIWNDF_NOOPEN 0x8000
270 #define MCIWNDM_GETDEVICEID (WM_USER + 100)
271 #define MCIWNDM_GETSTART (WM_USER + 103)
272 #define MCIWNDM_GETLENGTH (WM_USER + 104)
273 #define MCIWNDM_GETEND (WM_USER + 105)
274 #define MCIWNDM_EJECT (WM_USER + 107)
275 #define MCIWNDM_SETZOOM (WM_USER + 108)
276 #define MCIWNDM_GETZOOM (WM_USER + 109)
277 #define MCIWNDM_SETVOLUME (WM_USER + 110)
278 #define MCIWNDM_GETVOLUME (WM_USER + 111)
279 #define MCIWNDM_SETSPEED (WM_USER + 112)
280 #define MCIWNDM_GETSPEED (WM_USER + 113)
281 #define MCIWNDM_SETREPEAT (WM_USER + 114)
282 #define MCIWNDM_GETREPEAT (WM_USER + 115)
283 #define MCIWNDM_REALIZE (WM_USER + 118)
284 #define MCIWNDM_VALIDATEMEDIA (WM_USER + 121)
285 #define MCIWNDM_PLAYFROM (WM_USER + 122)
286 #define MCIWNDM_PLAYTO (WM_USER + 123)
287 #define MCIWNDM_GETPALETTE (WM_USER + 126)
288 #define MCIWNDM_SETPALETTE (WM_USER + 127)
289 #define MCIWNDM_SETTIMERS (WM_USER + 129)
290 #define MCIWNDM_SETACTIVETIMER (WM_USER + 130)
291 #define MCIWNDM_SETINACTIVETIMER (WM_USER + 131)
292 #define MCIWNDM_GETACTIVETIMER (WM_USER + 132)
293 #define MCIWNDM_GETINACTIVETIMER (WM_USER + 133)
294 #define MCIWNDM_CHANGESTYLES (WM_USER + 135)
295 #define MCIWNDM_GETSTYLES (WM_USER + 136)
296 #define MCIWNDM_GETALIAS (WM_USER + 137)
297 #define MCIWNDM_PLAYREVERSE (WM_USER + 139)
298 #define MCIWNDM_GET_SOURCE (WM_USER + 140)
299 #define MCIWNDM_PUT_SOURCE (WM_USER + 141)
300 #define MCIWNDM_GET_DEST (WM_USER + 142)
301 #define MCIWNDM_PUT_DEST (WM_USER + 143)
302 #define MCIWNDM_CAN_PLAY (WM_USER + 144)
303 #define MCIWNDM_CAN_WINDOW (WM_USER + 145)
304 #define MCIWNDM_CAN_RECORD (WM_USER + 146)
305 #define MCIWNDM_CAN_SAVE (WM_USER + 147)
306 #define MCIWNDM_CAN_EJECT (WM_USER + 148)
307 #define MCIWNDM_CAN_CONFIG (WM_USER + 149)
308 #define MCIWNDM_PALETTEKICK (WM_USER + 150)
309 #define MCIWNDM_OPENINTERFACE (WM_USER + 151)
310 #define MCIWNDM_SETOWNER (WM_USER + 152)
311 #define MCIWNDM_SENDSTRINGA (WM_USER + 101)
312 #define MCIWNDM_GETPOSITIONA (WM_USER + 102)
313 #define MCIWNDM_GETMODEA (WM_USER + 106)
314 #define MCIWNDM_SETTIMEFORMATA (WM_USER + 119)
315 #define MCIWNDM_GETTIMEFORMATA (WM_USER + 120)
316 #define MCIWNDM_GETFILENAMEA (WM_USER + 124)
317 #define MCIWNDM_GETDEVICEA (WM_USER + 125)
318 #define MCIWNDM_GETERRORA (WM_USER + 128)
319 #define MCIWNDM_NEWA (WM_USER + 134)
320 #define MCIWNDM_RETURNSTRINGA (WM_USER + 138)
321 #define MCIWNDM_OPENA (WM_USER + 153)
322 #define MCIWNDM_SENDSTRINGW (WM_USER + 201)
323 #define MCIWNDM_GETPOSITIONW (WM_USER + 202)
324 #define MCIWNDM_GETMODEW (WM_USER + 206)
325 #define MCIWNDM_SETTIMEFORMATW (WM_USER + 219)
326 #define MCIWNDM_GETTIMEFORMATW (WM_USER + 220)
327 #define MCIWNDM_GETFILENAMEW (WM_USER + 224)
328 #define MCIWNDM_GETDEVICEW (WM_USER + 225)
329 #define MCIWNDM_GETERRORW (WM_USER + 228)
330 #define MCIWNDM_NEWW (WM_USER + 234)
331 #define MCIWNDM_RETURNSTRINGW (WM_USER + 238)
332 #define MCIWNDM_OPENW (WM_USER + 252)
333 #define MCIWNDM_NOTIFYMODE (WM_USER + 200)
334 #define MCIWNDM_NOTIFYPOS (WM_USER + 201)
335 #define MCIWNDM_NOTIFYSIZE (WM_USER + 202)
336 #define MCIWNDM_NOTIFYMEDIA (WM_USER + 203)
337 #define MCIWNDM_NOTIFYERROR (WM_USER + 205)
338 #define MCIWND_START -1
339 #define MCIWND_END -2
340 #define DDF_UPDATE 0x02
341 #define DDF_SAME_HDC 0x04
342 #define DDF_SAME_DRAW 0x08
343 #define DDF_DONTDRAW 0x10
344 #define DDF_ANIMATE 0x20
345 #define DDF_BUFFER 0x40
346 #define DDF_JUSTDRAWIT 0x80
347 #define DDF_FULLSCREEN 0x100
348 #define DDF_BACKGROUNDPAL 0x200
349 #define DDF_NOTKEYFRAME 0x400
350 #define DDF_HURRYUP 0x800
351 #define DDF_HALFTONE 0x1000
352 #define DDF_PREROLL DDF_DONTDRAW
353 #define DDF_SAME_DIB DDF_SAME_DRAW
354 #define DDF_SAME_SIZE DDF_SAME_DRAW
355 #define PD_CAN_DRAW_DIB 0x01
356 #define PD_CAN_STRETCHDIB 0x02
357 #define PD_STRETCHDIB_1_1_OK 0x04
358 #define PD_STRETCHDIB_1_2_OK 0x08
359 #define PD_STRETCHDIB_1_N_OK 0x10
360 #ifndef mmioFOURCC
361 #define mmioFOURCC(c0,c1,c2,c3) ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<<16)|((DWORD)(BYTE)(c3)<<24))
362 #endif
363 #ifndef aviTWOCC
364 #define aviTWOCC(ch0,ch1) ((WORD)(BYTE)(ch0)|((WORD)(BYTE)(ch1)<<8))
365 #endif
367 #ifndef RC_INVOKED
368 DECLARE_HANDLE(HIC);
369 DECLARE_HANDLE(HDRAWDIB);
370 typedef WORD TWOCC;
371 typedef BOOL (CALLBACK *AVISAVECALLBACK)(INT);
372 typedef struct {
373 DWORD dwSize;
374 DWORD fccType;
375 DWORD fccHandler;
376 DWORD dwVersion;
377 DWORD dwFlags;
378 LRESULT dwError;
379 LPVOID pV1Reserved;
380 LPVOID pV2Reserved;
381 DWORD dnDevNode;
382 } ICOPEN,*LPICOPEN;
383 typedef struct {
384 DWORD dwFlags;
385 LPBITMAPINFOHEADER lpbiOutput;
386 LPVOID lpOutput;
387 LPBITMAPINFOHEADER lpbiInput;
388 LPVOID lpInput;
389 LPDWORD lpckid;
390 LPDWORD lpdwFlags;
391 LONG lFrameNum;
392 DWORD dwFrameSize;
393 DWORD dwQuality;
394 LPBITMAPINFOHEADER lpbiPrev;
395 LPVOID lpPrev;
396 } ICCOMPRESS;
397 typedef struct {
398 DWORD dwFlags;
399 LPBITMAPINFOHEADER lpbiOutput;
400 LPARAM lOutput;
401 LPBITMAPINFOHEADER lpbiInput;
402 LPARAM lInput;
403 LONG lStartFrame;
404 LONG lFrameCount;
405 LONG lQuality;
406 LONG lDataRate;
407 LONG lKeyRate;
408 DWORD dwRate;
409 DWORD dwScale;
410 DWORD dwOverheadPerFrame;
411 DWORD dwReserved2;
412 LONG (CALLBACK *GetData)(LPARAM,LONG,LPVOID,LONG);
413 LONG (CALLBACK *PutData)(LPARAM,LONG,LPVOID,LONG);
414 } ICCOMPRESSFRAMES;
415 typedef struct {
416 DWORD dwFlags;
417 LPARAM lParam;
418 LONG (CALLBACK *Status)(LPARAM,UINT,LONG);
419 } ICSETSTATUSPROC;
420 typedef struct {
421 DWORD dwSize;
422 DWORD fccType;
423 DWORD fccHandler;
424 DWORD dwFlags;
425 DWORD dwVersion;
426 DWORD dwVersionICM;
427 WCHAR szName[16];
428 WCHAR szDescription[128];
429 WCHAR szDriver[128];
430 } ICINFO;
431 typedef struct {
432 DWORD dwFlags;
433 LPBITMAPINFOHEADER lpbiInput;
434 LPVOID lpInput;
435 LPBITMAPINFOHEADER lpbiOutput;
436 LPVOID lpOutput;
437 DWORD ckid;
438 } ICDECOMPRESS;
439 typedef struct {
440 DWORD dwFlags;
441 LPBITMAPINFOHEADER lpbiSrc;
442 LPVOID lpSrc;
443 LPBITMAPINFOHEADER lpbiDst;
444 LPVOID lpDst;
445 INT xDst;
446 INT yDst;
447 INT dxDst;
448 INT dyDst;
449 INT xSrc;
450 INT ySrc;
451 INT dxSrc;
452 INT dySrc;
453 } ICDECOMPRESSEX;
454 typedef struct {
455 DWORD dwFlags;
456 LPBITMAPINFOHEADER lpbiIn;
457 LPBITMAPINFOHEADER lpbiSuggest;
458 INT dxSrc;
459 INT dySrc;
460 INT dxDst;
461 INT dyDst;
462 HIC hicDecompressor;
463 } ICDRAWSUGGEST;
464 typedef struct {
465 DWORD dwFlags;
466 INT iStart;
467 INT iLen;
468 LPPALETTEENTRY lppe;
469 } ICPALETTE;
470 typedef struct {
471 DWORD dwFlags;
472 HPALETTE hpal;
473 HWND hwnd;
474 HDC hdc;
475 INT xDst;
476 INT yDst;
477 INT dxDst;
478 INT dyDst;
479 LPBITMAPINFOHEADER lpbi;
480 INT xSrc;
481 INT ySrc;
482 INT dxSrc;
483 INT dySrc;
484 DWORD dwRate;
485 DWORD dwScale;
486 } ICDRAWBEGIN;
487 typedef struct {
488 DWORD dwFlags;
489 LPVOID lpFormat;
490 LPVOID lpData;
491 DWORD cbData;
492 LONG lTime;
493 } ICDRAW;
494 typedef struct {
495 LONG cbSize;
496 DWORD dwFlags;
497 HIC hic;
498 DWORD fccType;
499 DWORD fccHandler;
500 LPBITMAPINFO lpbiIn;
501 LPBITMAPINFO lpbiOut;
502 LPVOID lpBitsOut;
503 LPVOID lpBitsPrev;
504 LONG lFrame;
505 LONG lKey;
506 LONG lDataRate;
507 LONG lQ;
508 LONG lKeyCount;
509 LPVOID lpState;
510 LONG cbState;
511 } COMPVARS, *PCOMPVARS;
512 typedef struct _MainAVIHeader
514 DWORD dwMicroSecPerFrame;
515 DWORD dwMaxBytesPerSec;
516 DWORD dwPaddingGranularity;
517 DWORD dwFlags;
518 DWORD dwTotalFrames;
519 DWORD dwInitialFrames;
520 DWORD dwStreams;
521 DWORD dwSuggestedBufferSize;
522 DWORD dwWidth;
523 DWORD dwHeight;
524 DWORD dwReserved[4];
525 } MainAVIHeader;
526 typedef struct {
527 FOURCC fccType;
528 FOURCC fccHandler;
529 DWORD dwFlags;
530 WORD wPriority;
531 WORD wLanguage;
532 DWORD dwInitialFrames;
533 DWORD dwScale;
534 DWORD dwRate;
535 DWORD dwStart;
536 DWORD dwLength;
537 DWORD dwSuggestedBufferSize;
538 DWORD dwQuality;
539 DWORD dwSampleSize;
540 RECT rcFrame;
541 } AVIStreamHeader;
542 typedef struct _AVIINDEXENTRY {
543 DWORD ckid;
544 DWORD dwFlags;
545 DWORD dwChunkOffset;
546 DWORD dwChunkLength;
547 } AVIINDEXENTRY;
548 typedef struct _AVIPALCHANGE {
549 BYTE bFirstEntry;
550 BYTE bNumEntries;
551 WORD wFlags;
552 PALETTEENTRY peNew[1];
553 } AVIPALCHANGE;
554 typedef struct _AVISTREAMINFOA {
555 DWORD fccType;
556 DWORD fccHandler;
557 DWORD dwFlags;
558 DWORD dwCaps;
559 WORD wPriority;
560 WORD wLanguage;
561 DWORD dwScale;
562 DWORD dwRate;
563 DWORD dwStart;
564 DWORD dwLength;
565 DWORD dwInitialFrames;
566 DWORD dwSuggestedBufferSize;
567 DWORD dwQuality;
568 DWORD dwSampleSize;
569 RECT rcFrame;
570 DWORD dwEditCount;
571 DWORD dwFormatChangeCount;
572 CHAR szName[64];
573 } AVISTREAMINFOA, * LPAVISTREAMINFOA, *PAVISTREAMINFOA;
574 typedef struct _AVISTREAMINFOW {
575 DWORD fccType;
576 DWORD fccHandler;
577 DWORD dwFlags;
578 DWORD dwCaps;
579 WORD wPriority;
580 WORD wLanguage;
581 DWORD dwScale;
582 DWORD dwRate;
583 DWORD dwStart;
584 DWORD dwLength;
585 DWORD dwInitialFrames;
586 DWORD dwSuggestedBufferSize;
587 DWORD dwQuality;
588 DWORD dwSampleSize;
589 RECT rcFrame;
590 DWORD dwEditCount;
591 DWORD dwFormatChangeCount;
592 WCHAR szName[64];
593 } AVISTREAMINFOW, * LPAVISTREAMINFOW, *PAVISTREAMINFOW;
594 typedef struct _AVIFILEINFOW {
595 DWORD dwMaxBytesPerSec;
596 DWORD dwFlags;
597 DWORD dwCaps;
598 DWORD dwStreams;
599 DWORD dwSuggestedBufferSize;
600 DWORD dwWidth;
601 DWORD dwHeight;
602 DWORD dwScale;
603 DWORD dwRate;
604 DWORD dwLength;
605 DWORD dwEditCount;
606 WCHAR szFileType[64];
607 } AVIFILEINFOW, *LPAVIFILEINFOW, *PAVIFILEINFOW;
608 typedef struct _AVIFILEINFOA {
609 DWORD dwMaxBytesPerSec;
610 DWORD dwFlags;
611 DWORD dwCaps;
612 DWORD dwStreams;
613 DWORD dwSuggestedBufferSize;
614 DWORD dwWidth;
615 DWORD dwHeight;
616 DWORD dwScale;
617 DWORD dwRate;
618 DWORD dwLength;
619 DWORD dwEditCount;
620 CHAR szFileType[64];
621 } AVIFILEINFOA, *LPAVIFILEINFOA, *PAVIFILEINFOA;
622 typedef struct _AVICOMPRESSOPTIONS {
623 DWORD fccType;
624 DWORD fccHandler;
625 DWORD dwKeyFrameEvery;
626 DWORD dwQuality;
627 DWORD dwBytesPerSecond;
628 DWORD dwFlags;
629 LPVOID lpFormat;
630 DWORD cbFormat;
631 LPVOID lpParms;
632 DWORD cbParms;
633 DWORD dwInterleaveEvery;
634 } AVICOMPRESSOPTIONS, *LPAVICOMPRESSOPTIONS,*PAVICOMPRESSOPTIONS;
635 typedef struct _CAPDRIVERCAPS {
636 UINT wDeviceIndex;
637 BOOL fHasOverlay;
638 BOOL fHasDlgVideoSource;
639 BOOL fHasDlgVideoFormat;
640 BOOL fHasDlgVideoDisplay;
641 BOOL fCaptureInitialized;
642 BOOL fDriverSuppliesPalettes;
643 HANDLE hVideoIn;
644 HANDLE hVideoOut;
645 HANDLE hVideoExtIn;
646 HANDLE hVideoExtOut;
647 } CAPDRIVERCAPS, *LPCAPDRIVERCAPS;
648 typedef struct _CAPINFOCHUNK {
649 FOURCC fccInfoID;
650 LPVOID lpData;
651 LONG cbData;
652 } CAPINFOCHUNK, *LPCAPINFOCHUNK;
653 typedef struct _CAPSTATUS {
654 UINT uiImageWidth;
655 UINT uiImageHeight;
656 BOOL fLiveWindow;
657 BOOL fOverlayWindow;
658 BOOL fScale;
659 POINT ptScroll;
660 BOOL fUsingDefaultPalette;
661 BOOL fAudioHardware;
662 BOOL fCapFileExists;
663 DWORD dwCurrentVideoFrame;
664 DWORD dwCurrentVideoFramesDropped;
665 DWORD dwCurrentWaveSamples;
666 DWORD dwCurrentTimeElapsedMS;
667 HPALETTE hPalCurrent;
668 BOOL fCapturingNow;
669 DWORD dwReturn;
670 UINT wNumVideoAllocated;
671 UINT wNumAudioAllocated;
672 } CAPSTATUS, *LPCAPSTATUS;
673 typedef struct _CAPTUREPARMS {
674 DWORD dwRequestMicroSecPerFrame;
675 BOOL fMakeUserHitOKToCapture;
676 UINT wPercentDropForError;
677 BOOL fYield;
678 DWORD dwIndexSize;
679 UINT wChunkGranularity;
680 BOOL fUsingDOSMemory;
681 UINT wNumVideoRequested;
682 BOOL fCaptureAudio;
683 UINT wNumAudioRequested;
684 UINT vKeyAbort;
685 BOOL fAbortLeftMouse;
686 BOOL fAbortRightMouse;
687 BOOL fLimitEnabled;
688 UINT wTimeLimit;
689 BOOL fMCIControl;
690 BOOL fStepMCIDevice;
691 DWORD dwMCIStartTime;
692 DWORD dwMCIStopTime;
693 BOOL fStepCaptureAt2x;
694 UINT wStepCaptureAverageFrames;
695 DWORD dwAudioBufferSize;
696 BOOL fDisableWriteCache;
697 UINT AVStreamMaster;
698 } CAPTUREPARMS, *LPCAPTUREPARMS;
700 typedef struct videohdr_tag {
701 LPBYTE lpData;
702 DWORD dwBufferLength;
703 DWORD dwBytesUsed;
704 DWORD dwTimeCaptured;
705 DWORD dwUser;
706 DWORD dwFlags;
707 DWORD_PTR dwReserved[4];
708 } VIDEOHDR, *LPVIDEOHDR;
710 #if !defined (_OBJC_NO_COM)
711 #define DEFINE_AVIGUID(name,l,w1,w2) DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
712 DEFINE_AVIGUID(IID_IAVIFile,0x00020020,0,0);
713 DEFINE_AVIGUID(IID_IAVIStream,0x00020021,0,0);
714 DEFINE_AVIGUID(IID_IAVIStreaming,0x00020022,0,0);
715 DEFINE_AVIGUID(IID_IGetFrame,0x00020023,0,0);
716 DEFINE_AVIGUID(IID_IAVIEditStream,0x00020024,0,0);
717 DEFINE_AVIGUID(CLSID_AVIFile,0x00020000,0,0);
719 #define INTERFACE IAVIStream
720 DECLARE_INTERFACE_(IAVIStream, IUnknown)
722 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
723 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
724 STDMETHOD_(ULONG,Release)(THIS) PURE;
725 STDMETHOD(Create)(THIS_ LPARAM,LPARAM) PURE;
726 STDMETHOD(Info)(THIS_ AVISTREAMINFOW*,LONG) PURE;
727 STDMETHOD_(LONG,FindSample)(THIS_ LONG,LONG) PURE;
728 STDMETHOD(ReadFormat)(THIS_ LONG,LPVOID,LONG*) PURE;
729 STDMETHOD(SetFormat)(THIS_ LONG,LPVOID,LONG) PURE;
730 STDMETHOD(Read)(THIS_ LONG,LONG,LPVOID,LONG,LONG*,LONG*) PURE;
731 STDMETHOD(Write)(THIS_ LONG,LONG,LPVOID,LONG,DWORD,LONG*,LONG*) PURE;
732 STDMETHOD(Delete)(THIS_ LONG,LONG) PURE;
733 STDMETHOD(ReadData)(THIS_ DWORD,LPVOID,LONG*) PURE;
734 STDMETHOD(WriteData)(THIS_ DWORD,LPVOID,LONG) PURE;
735 STDMETHOD(SetInfo)(THIS_ AVISTREAMINFOW*,LONG) PURE;
737 #undef INTERFACE
738 typedef IAVIStream *PAVISTREAM;
740 #define INTERFACE IAVIStreaming
741 DECLARE_INTERFACE_(IAVIStreaming, IUnknown)
743 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
744 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
745 STDMETHOD_(ULONG,Release)(THIS) PURE;
746 STDMETHOD(Begin)(THIS_ LONG,LONG,LONG) PURE;
747 STDMETHOD(End)(THIS) PURE;
749 #undef INTERFACE
750 typedef IAVIStreaming *PAVISTREAMING;
752 #define INTERFACE IAVIEditStream
753 DECLARE_INTERFACE_(IAVIEditStream, IUnknown)
755 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
756 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
757 STDMETHOD_(ULONG,Release)(THIS) PURE;
758 STDMETHOD(Cut)(THIS_ LONG*,LONG*,PAVISTREAM*) PURE;
759 STDMETHOD(Copy)(THIS_ LONG*,LONG*,PAVISTREAM*) PURE;
760 STDMETHOD(Paste)(THIS_ LONG*,LONG*,PAVISTREAM,LONG,LONG) PURE;
761 STDMETHOD(Clone)(THIS_ PAVISTREAM*) PURE;
762 STDMETHOD(SetInfo)(THIS_ LPAVISTREAMINFOW,LONG) PURE;
764 #undef INTERFACE
765 typedef IAVIEditStream *PAVIEDITSTREAM;
767 #define INTERFACE IAVIFile
768 DECLARE_INTERFACE_(IAVIFile, IUnknown)
770 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
771 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
772 STDMETHOD_(ULONG,Release)(THIS) PURE;
773 STDMETHOD(Info)(THIS_ AVIFILEINFOW*,LONG) PURE;
774 STDMETHOD(GetStream)(THIS_ PAVISTREAM*,DWORD,LONG) PURE;
775 STDMETHOD(CreateStream)(THIS_ PAVISTREAM*,AVISTREAMINFOW*) PURE;
776 STDMETHOD(WriteData)(THIS_ DWORD,LPVOID,LONG) PURE;
777 STDMETHOD(ReadData)(THIS_ DWORD,LPVOID,LONG*) PURE;
778 STDMETHOD(EndRecord)(THIS) PURE;
779 STDMETHOD(DeleteStream)(THIS_ DWORD,LONG) PURE;
781 #undef INTERFACE
782 typedef IAVIFile *PAVIFILE;
784 #define INTERFACE IGetFrame
785 DECLARE_INTERFACE_(IGetFrame, IUnknown)
787 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
788 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
789 STDMETHOD_(ULONG,Release)(THIS) PURE;
790 STDMETHOD_(LPVOID,GetFrame)(THIS_ LONG) PURE;
791 STDMETHOD(Begin)(THIS_ LONG,LONG,LONG) PURE;
792 STDMETHOD(End)(THIS) PURE;
793 STDMETHOD(SetFormat)(THIS_ LPBITMAPINFOHEADER,LPVOID,INT,INT,INT,INT) PURE;
795 #undef INTERFACE
796 typedef IGetFrame *PGETFRAME;
797 #endif /* !defined (_OBJC_NO_COM) */
799 DWORD VFWAPI VideoForWindowsVersion(VOID);
800 LONG VFWAPI InitVFW(VOID);
801 LONG VFWAPI TermVFW(VOID);
802 DWORD VFWAPIV ICCompress(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID,LPDWORD,LPDWORD,LONG,DWORD,DWORD,LPBITMAPINFOHEADER,LPVOID);
803 DWORD VFWAPIV ICDecompress(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID);
804 LRESULT VFWAPI ICSendMessage(HIC,UINT,DWORD,DWORD);
805 HANDLE VFWAPI ICImageCompress(HIC,UINT,LPBITMAPINFO,LPVOID,LPBITMAPINFO,LONG,LONG*);
806 HANDLE VFWAPI ICImageDecompress(HIC,UINT,LPBITMAPINFO,LPVOID,LPBITMAPINFO);
807 BOOL VFWAPI ICInfo(DWORD,DWORD,ICINFO*);
808 BOOL VFWAPI ICInstall(DWORD,DWORD,LPARAM,LPSTR,UINT);
809 BOOL VFWAPI ICRemove(DWORD,DWORD,UINT);
810 LRESULT VFWAPI ICGetInfo(HIC,ICINFO*,DWORD);
811 HIC VFWAPI ICOpen(DWORD,DWORD,UINT);
812 HIC VFWAPI ICOpenFunction(DWORD,DWORD,UINT,FARPROC);
813 LRESULT VFWAPI ICClose(HIC hic);
814 HIC VFWAPI ICLocate(DWORD,DWORD,LPBITMAPINFOHEADER,LPBITMAPINFOHEADER,WORD);
815 HIC VFWAPI ICGetDisplayFormat(HIC,LPBITMAPINFOHEADER,LPBITMAPINFOHEADER,INT,INT,INT);
816 DWORD VFWAPIV ICDrawBegin(HIC,DWORD,HPALETTE,HWND,HDC,INT,INT,INT,INT,LPBITMAPINFOHEADER,INT,INT,INT,INT,DWORD,DWORD);
817 DWORD VFWAPIV ICDraw(HIC,DWORD,LPVOID,LPVOID,DWORD,LONG);
818 BOOL VFWAPI ICCompressorChoose(HWND,UINT,LPVOID,LPVOID,PCOMPVARS,LPSTR);
819 BOOL VFWAPI ICSeqCompressFrameStart(PCOMPVARS,LPBITMAPINFO);
820 void VFWAPI ICSeqCompressFrameEnd(PCOMPVARS);
821 LPVOID VFWAPI ICSeqCompressFrame(PCOMPVARS,UINT,LPVOID,BOOL*,LONG*);
822 void VFWAPI ICCompressorFree(PCOMPVARS);
823 #if !defined (_OBJC_NO_COM)
824 ULONG WINAPI AVIStreamAddRef(PAVISTREAM);
825 ULONG WINAPI AVIStreamRelease(PAVISTREAM);
826 HRESULT WINAPI AVIStreamCreate(PAVISTREAM*,LONG,LONG,CLSID*);
827 HRESULT WINAPI AVIStreamInfoA(PAVISTREAM,AVISTREAMINFOA*,LONG);
828 HRESULT WINAPI AVIStreamInfoW(PAVISTREAM,AVISTREAMINFOW*,LONG);
829 HRESULT WINAPI AVIStreamFindSample(PAVISTREAM,LONG,DWORD);
830 HRESULT WINAPI AVIStreamReadFormat(PAVISTREAM,LONG,LPVOID,LONG*);
831 HRESULT WINAPI AVIStreamSetFormat(PAVISTREAM,LONG,LPVOID,LONG);
832 HRESULT WINAPI AVIStreamRead(PAVISTREAM,LONG,LONG,LPVOID,LONG,LONG*,LONG*);
833 HRESULT WINAPI AVIStreamWrite(PAVISTREAM,LONG,LONG,LPVOID,LONG,DWORD,LONG*,LONG*);
834 HRESULT WINAPI AVIStreamReadData(PAVISTREAM,DWORD,LPVOID,LONG*);
835 HRESULT WINAPI AVIStreamWriteData(PAVISTREAM,DWORD,LPVOID,LONG);
836 PGETFRAME WINAPI AVIStreamGetFrameOpen(PAVISTREAM,LPBITMAPINFOHEADER);
837 LPVOID WINAPI AVIStreamGetFrame(PGETFRAME,LONG);
838 HRESULT WINAPI AVIStreamGetFrameClose(PGETFRAME);
839 HRESULT WINAPI AVIMakeCompressedStream(PAVISTREAM*,PAVISTREAM,AVICOMPRESSOPTIONS*,CLSID*);
840 HRESULT WINAPI AVIMakeFileFromStreams(PAVIFILE*,INT,PAVISTREAM*);
841 HRESULT WINAPI AVIStreamOpenFromFileA(PAVISTREAM*,LPCSTR,DWORD,LONG,UINT,CLSID*);
842 HRESULT WINAPI AVIStreamOpenFromFileW(PAVISTREAM*,LPCWSTR,DWORD,LONG,UINT,CLSID*);
843 HRESULT WINAPI AVIBuildFilterA(LPSTR,LONG,BOOL);
844 HRESULT WINAPI AVIBuildFilterW(LPWSTR,LONG,BOOL);
845 BOOL WINAPI AVISaveOptions(HWND,UINT,INT,PAVISTREAM*,LPAVICOMPRESSOPTIONS*);
846 HRESULT WINAPI AVISaveOptionsFree(INT,LPAVICOMPRESSOPTIONS*);
847 HRESULT WINAPI AVISaveVA(LPCSTR,CLSID*,AVISAVECALLBACK,INT,PAVISTREAM*,LPAVICOMPRESSOPTIONS*);
848 HRESULT WINAPI AVISaveVW(LPCWSTR,CLSID*,AVISAVECALLBACK,INT,PAVISTREAM*,LPAVICOMPRESSOPTIONS*);
849 LONG WINAPI AVIStreamStart(PAVISTREAM);
850 LONG WINAPI AVIStreamLength(PAVISTREAM);
851 LONG WINAPI AVIStreamSampleToTime(PAVISTREAM,LONG);
852 LONG WINAPI AVIStreamTimeToSample(PAVISTREAM,LONG);
853 HRESULT WINAPI CreateEditableStream(PAVISTREAM*,PAVISTREAM);
854 HRESULT WINAPI EditStreamClone(PAVISTREAM,PAVISTREAM*);
855 HRESULT WINAPI EditStreamCopy(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
856 HRESULT WINAPI EditStreamCut(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
857 HRESULT WINAPI EditStreamPaste(PAVISTREAM,LONG*,LONG*,PAVISTREAM,LONG,LONG);
858 HRESULT WINAPI EditStreamSetInfoA(PAVISTREAM,LPAVISTREAMINFOA,LONG);
859 HRESULT WINAPI EditStreamSetInfoW(PAVISTREAM,LPAVISTREAMINFOW,LONG);
860 HRESULT WINAPI EditStreamSetNameA(PAVISTREAM,LPCSTR);
861 HRESULT WINAPI EditStreamSetNameW(PAVISTREAM,LPCWSTR);
862 HRESULT WINAPI CreateEditableStream(PAVISTREAM*,PAVISTREAM);
863 HRESULT WINAPI EditStreamClone(PAVISTREAM,PAVISTREAM*);
864 HRESULT WINAPI EditStreamCopy(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
865 HRESULT WINAPI EditStreamCut(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
866 HRESULT WINAPI EditStreamPaste(PAVISTREAM,LONG*,LONG*,PAVISTREAM,LONG,LONG);
867 HRESULT WINAPI EditStreamSetInfoA(PAVISTREAM,LPAVISTREAMINFOA,LONG);
868 HRESULT WINAPI EditStreamSetInfoW(PAVISTREAM,LPAVISTREAMINFOW,LONG);
869 HRESULT WINAPI EditStreamSetNameA(PAVISTREAM,LPCSTR);
870 HRESULT WINAPI EditStreamSetNameW(PAVISTREAM,LPCWSTR);
871 VOID WINAPI AVIFileInit(void);
872 VOID WINAPI AVIFileExit(void);
873 HRESULT WINAPI AVIFileOpenA(PAVIFILE*,LPCSTR,UINT,LPCLSID);
874 HRESULT WINAPI AVIFileOpenW(PAVIFILE*,LPCWSTR,UINT,LPCLSID);
875 ULONG WINAPI AVIFileAddRef(PAVIFILE);
876 ULONG WINAPI AVIFileRelease(PAVIFILE);
877 HRESULT WINAPI AVIFileInfoA(PAVIFILE,PAVIFILEINFOA,LONG);
878 HRESULT WINAPI AVIFileInfoW(PAVIFILE,PAVIFILEINFOW,LONG);
879 HRESULT WINAPI AVIFileGetStream(PAVIFILE,PAVISTREAM*,DWORD,LONG);
880 HRESULT WINAPI AVIFileCreateStreamA(PAVIFILE,PAVISTREAM*,AVISTREAMINFOA*);
881 HRESULT WINAPI AVIFileCreateStreamW(PAVIFILE,PAVISTREAM*,AVISTREAMINFOW*);
882 HRESULT WINAPI AVIFileWriteData(PAVIFILE,DWORD,LPVOID,LONG);
883 HRESULT WINAPI AVIFileReadData(PAVIFILE,DWORD,LPVOID,LPLONG);
884 HRESULT WINAPI AVIFileEndRecord(PAVIFILE);
885 HRESULT WINAPI AVIClearClipboard(VOID);
886 HRESULT WINAPI AVIGetFromClipboard(PAVIFILE*);
887 HRESULT WINAPI AVIPutFileOnClipboard(PAVIFILE);
888 #endif /* _OBJC_NO_COM */
889 #ifdef OFN_READONLY
890 BOOL WINAPI GetOpenFileNamePreviewA(LPOPENFILENAMEA);
891 BOOL WINAPI GetOpenFileNamePreviewW(LPOPENFILENAMEW);
892 BOOL WINAPI GetSaveFileNamePreviewA(LPOPENFILENAMEA);
893 BOOL WINAPI GetSaveFileNamePreviewW(LPOPENFILENAMEW);
894 #endif
895 HWND VFWAPIV MCIWndCreateA(HWND,HINSTANCE,DWORD,LPCSTR);
896 HWND VFWAPIV MCIWndCreateW(HWND,HINSTANCE,DWORD,LPCWSTR);
897 HDRAWDIB VFWAPI DrawDibOpen(VOID);
898 UINT VFWAPI DrawDibRealize(HDRAWDIB,HDC,BOOL);
899 BOOL VFWAPI DrawDibBegin(HDRAWDIB,HDC,INT,INT,LPBITMAPINFOHEADER,INT,INT,UINT);
900 BOOL VFWAPI DrawDibDraw(HDRAWDIB,HDC,INT,INT,INT,INT,LPBITMAPINFOHEADER,LPVOID,INT,INT,INT,INT,UINT);
901 BOOL VFWAPI DrawDibSetPalette(HDRAWDIB,HPALETTE);
902 HPALETTE VFWAPI DrawDibGetPalette(HDRAWDIB);
903 BOOL VFWAPI DrawDibChangePalette(HDRAWDIB,int,int,LPPALETTEENTRY);
904 LPVOID VFWAPI DrawDibGetBuffer(HDRAWDIB,LPBITMAPINFOHEADER,DWORD,DWORD);
905 BOOL VFWAPI DrawDibStart(HDRAWDIB,DWORD);
906 BOOL VFWAPI DrawDibStop(HDRAWDIB);
907 BOOL VFWAPI DrawDibEnd(HDRAWDIB);
908 BOOL VFWAPI DrawDibClose(HDRAWDIB);
909 DWORD VFWAPI DrawDibProfileDisplay(LPBITMAPINFOHEADER);
911 #define ICCompressGetFormat(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_FORMAT,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
912 #define ICCompressGetFormatSize(hic,lpbi) ICCompressGetFormat(hic,lpbi,NULL)
913 #define ICCompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_BEGIN,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
914 #define ICCompressGetSize(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_SIZE,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
915 #define ICCompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_QUERY,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
916 #define ICCompressEnd(hic) ICSendMessage(hic,ICM_COMPRESS_END,0,0)
917 #define ICQueryAbout(hic) (ICSendMessage(hic,ICM_ABOUT,(DWORD)-1,ICMF_ABOUT_QUERY)==ICERR_OK)
918 #define ICAbout(hic,hwnd) ICSendMessage(hic,ICM_ABOUT,(DWORD)(hwnd),0)
919 #define ICQueryConfigure(hic) (ICSendMessage(hic,ICM_CONFIGURE,(DWORD)-1,ICMF_CONFIGURE_QUERY)==ICERR_OK)
920 #define ICConfigure(hic,hwnd) ICSendMessage(hic,ICM_CONFIGURE,(DWORD)(hwnd),0)
921 #define ICDecompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_BEGIN,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
922 #define ICDecompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_QUERY,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
923 #define ICDecompressGetFormat(hic,lpbiInput,lpbiOutput) (LONG)ICSendMessage(hic,ICM_DECOMPRESS_GET_FORMAT,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
924 #define ICDecompressGetFormatSize(hic,lpbi) ICDecompressGetFormat(hic, lpbi, NULL)
925 #define ICDecompressGetPalette(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_GET_PALETTE,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
926 #define ICDecompressSetPalette(hic,lpbiPalette) ICSendMessage(hic,ICM_DECOMPRESS_SET_PALETTE,(DWORD)(lpbiPalette),0)
927 #define ICDecompressEnd(hic) ICSendMessage(hic,ICM_DECOMPRESS_END,0,0)
928 #define ICDecompressExEnd(hic) ICSendMessage(hic,ICM_DECOMPRESSEX_END,0,0)
929 #define ICDecompressOpen(fccType,fccHandler,lpbiIn,lpbiOut) ICLocate(fccType,fccHandler,lpbiIn,lpbiOut,ICMODE_DECOMPRESS)
930 #define ICDrawOpen(fccType,fccHandler,lpbiIn) ICLocate(fccType,fccHandler,lpbiIn,NULL,ICMODE_DRAW)
931 #define ICGetState(hic,pv,cb) ICSendMessage(hic,ICM_GETSTATE,(DWORD)(pv),(DWORD)(cb))
932 #define ICSetState(hic,pv,cb) ICSendMessage(hic,ICM_SETSTATE,(DWORD)(pv),(DWORD)(cb))
933 #define ICGetStateSize(hic) ICGetState(hic,NULL,0)
934 #define ICDrawWindow(hic,prc) ICSendMessage(hic,ICM_DRAW_WINDOW,(DWORD)(prc),sizeof(RECT))
935 #define ICDrawQuery(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_QUERY,(DWORD)(lpbiInput),0)
936 #define ICDrawChangePalette(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_CHANGEPALETTE,(DWORD)(lpbiInput),0)
937 #define ICGetBuffersWanted(hic,lpdwBuffers) ICSendMessage(hic,ICM_GETBUFFERSWANTED,(DWORD)(lpdwBuffers),0)
938 #define ICDrawEnd(hic) ICSendMessage(hic,ICM_DRAW_END,0,0)
939 #define ICDrawStart(hic) ICSendMessage(hic,ICM_DRAW_START,0,0)
940 #define ICDrawStartPlay(hic,lFrom,lTo) ICSendMessage(hic,ICM_DRAW_START_PLAY,(DWORD)(lFrom),(DWORD)(lTo))
941 #define ICDrawStop(hic) ICSendMessage(hic,ICM_DRAW_STOP,0,0)
942 #define ICDrawStopPlay(hic) ICSendMessage(hic,ICM_DRAW_STOP_PLAY,0,0)
943 #define ICDrawGetTime(hic,lplTime) ICSendMessage(hic,ICM_DRAW_GETTIME,(DWORD)(lplTime),0)
944 #define ICDrawSetTime(hic,lTime) ICSendMessage(hic,ICM_DRAW_SETTIME,(DWORD)lTime,0)
945 #define ICDrawRealize(hic,hdc,fBackground) ICSendMessage(hic,ICM_DRAW_REALIZE,(DWORD)(hdc),(DWORD)(fBackground))
946 #define ICDrawFlush(hic) ICSendMessage(hic,ICM_DRAW_FLUSH,0,0)
947 #define ICDrawRenderBuffer(hic) ICSendMessage(hic,ICM_DRAW_RENDERBUFFER,0,0)
948 #define AVIFileClose(pavi) AVIFileRelease(pavi)
949 #define AVIStreamClose(pavi) AVIStreamRelease(pavi);
950 #define AVIStreamEnd(pavi) (AVIStreamStart(pavi)+AVIStreamLength(pavi))
951 #define AVIStreamEndTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamEnd(pavi))
952 #define AVIStreamFormatSize(pavi,lPos,plSize) AVIStreamReadFormat(pavi,lPos,NULL,plSize)
953 #define AVIStreamLengthTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamLength(pavi))
954 #define AVIStreamSampleSize(pavi,pos,psize) AVIStreamRead(pavi,pos,1,NULL,0,psize,NULL)
955 #define AVIStreamSampleToSample(pavi1,pavi2,samp2) AVIStreamTimeToSample(pavi1,AVIStreamSampleToTime(pavi2,samp2))
956 #define AVIStreamStartTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamStart(pavi))
957 #define AVIStreamNextSample(pavi,pos) AVIStreamFindSample(pavi,pos+1,FIND_NEXT|FIND_ANY)
958 #define AVIStreamPrevSample(pavi,pos) AVIStreamFindSample(pavi,pos-1,FIND_PREV|FIND_ANY)
959 #define AVIStreamNearestSample(pavi, pos) AVIStreamFindSample(pavi,pos,FIND_PREV|FIND_ANY)
960 #define AVStreamNextKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos+1,FIND_NEXT|FIND_KEY)
961 #define AVStreamPrevKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos-1,FIND_NEXT|FIND_KEY)
962 #define AVIStreamNearestKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos,FIND_PREV|FIND_KEY)
963 #define AVIStreamIsKeyFrame(pavi, pos) (AVIStreamNearestKeyFrame(pavi,pos) == pos)
964 #ifdef __cplusplus
965 #define MCIWndSM ::SendMessage
966 #else
967 #define MCIWndSM SendMessage
968 #endif
969 #define MCIWndCanPlay(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_PLAY,0,0)
970 #define MCIWndCanRecord(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_RECORD,0,0)
971 #define MCIWndCanSave(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_SAVE,0,0)
972 #define MCIWndCanWindow(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_WINDOW,0,0)
973 #define MCIWndCanEject(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_EJECT,0,0)
974 #define MCIWndCanConfig(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_CONFIG,0,0)
975 #define MCIWndPaletteKick(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_PALETTEKICK,0,0)
976 #define MCIWndSave(hWnd,szFile) (LONG)MCIWndSM(hWnd,MCI_SAVE,0,(LPARAM)(LPVOID)(szFile))
977 #define MCIWndSaveDialog(hWnd) MCIWndSave(hWnd,-1)
978 #define MCIWndNew(hWnd,lp) (LONG)MCIWndSM(hWnd,MCIWNDM_NEW,0,(LPARAM)(LPVOID)(lp))
979 #define MCIWndRecord(hWnd) (LONG)MCIWndSM(hWnd,MCI_RECORD,0,0)
980 #define MCIWndOpen(hWnd,sz,f) (LONG)MCIWndSM(hWnd,MCIWNDM_OPEN,(WPARAM)(UINT)(f),(LPARAM)(LPVOID)(sz))
981 #define MCIWndOpenDialog(hWnd) MCIWndOpen(hWnd,-1,0)
982 #define MCIWndClose(hWnd) (LONG)MCIWndSM(hWnd,MCI_CLOSE,0,0)
983 #define MCIWndPlay(hWnd) (LONG)MCIWndSM(hWnd,MCI_PLAY,0,0)
984 #define MCIWndStop(hWnd) (LONG)MCIWndSM(hWnd,MCI_STOP,0,0)
985 #define MCIWndPause(hWnd) (LONG)MCIWndSM(hWnd,MCI_PAUSE,0,0)
986 #define MCIWndResume(hWnd) (LONG)MCIWndSM(hWnd,MCI_RESUME,0,0)
987 #define MCIWndSeek(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCI_SEEK,0,(LPARAM)(LONG)(lPos))
988 #define MCIWndEject(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_EJECT,0,0)
989 #define MCIWndHome(hWnd) MCIWndSeek(hWnd,MCIWND_START)
990 #define MCIWndEnd(hWnd) MCIWndSeek(hWnd,MCIWND_END)
991 #define MCIWndGetSource(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_GET_SOURCE,0,(LPARAM)(LPRECT)(prc))
992 #define MCIWndPutSource(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_PUT_SOURCE,0,(LPARAM)(LPRECT)(prc))
993 #define MCIWndGetDest(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_GET_DEST,0,(LPARAM)(LPRECT)(prc))
994 #define MCIWndPutDest(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_PUT_DEST,0,(LPARAM)(LPRECT)(prc))
995 #define MCIWndPlayReverse(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYREVERSE,0,0)
996 #define MCIWndPlayFrom(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYFROM,0,(LPARAM)(LONG)(lPos))
997 #define MCIWndPlayTo(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYTO, 0,(LPARAM)(LONG)(lPos))
998 #define MCIWndPlayFromTo(hWnd,lStart,lEnd) (MCIWndSeek(hWnd,lStart),MCIWndPlayTo(hWnd,lEnd))
999 #define MCIWndGetDeviceID(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETDEVICEID,0,0)
1000 #define MCIWndGetAlias(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETALIAS,0,0)
1001 #define MCIWndGetMode(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETMODE,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
1002 #define MCIWndGetPosition(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETPOSITION,0,0)
1003 #define MCIWndGetPositionString(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETPOSITION,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
1004 #define MCIWndGetStart(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETSTART,0,0)
1005 #define MCIWndGetLength(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETLENGTH,0,0)
1006 #define MCIWndGetEnd(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETEND,0,0)
1007 #define MCIWndStep(hWnd,n) (LONG)MCIWndSM(hWnd,MCI_STEP,0,(LPARAM)(long)(n))
1008 #define MCIWndDestroy(hWnd) (VOID)MCIWndSM(hWnd,WM_CLOSE,0,0)
1009 #define MCIWndSetZoom(hWnd,iZoom) (VOID)MCIWndSM(hWnd,MCIWNDM_SETZOOM,0,(LPARAM)(UINT)(iZoom))
1010 #define MCIWndGetZoom(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETZOOM,0,0)
1011 #define MCIWndSetVolume(hWnd,iVol) (LONG)MCIWndSM(hWnd,MCIWNDM_SETVOLUME,0,(LPARAM)(UINT)(iVol))
1012 #define MCIWndGetVolume(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETVOLUME,0,0)
1013 #define MCIWndSetSpeed(hWnd,iSpeed) (LONG)MCIWndSM(hWnd,MCIWNDM_SETSPEED,0,(LPARAM)(UINT)(iSpeed))
1014 #define MCIWndGetSpeed(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETSPEED,0,0)
1015 #define MCIWndSetTimeFormat(hWnd,lp) (LONG)MCIWndSM(hWnd,MCIWNDM_SETTIMEFORMAT,0,(LPARAM)(LPTSTR)(lp))
1016 #define MCIWndGetTimeFormat(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETTIMEFORMAT,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
1017 #define MCIWndValidateMedia(hWnd) (VOID)MCIWndSM(hWnd,MCIWNDM_VALIDATEMEDIA,0,0)
1018 #define MCIWndSetRepeat(hWnd,f) (void)MCIWndSM(hWnd,MCIWNDM_SETREPEAT,0,(LPARAM)(BOOL)(f))
1019 #define MCIWndGetRepeat(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_GETREPEAT,0,0)
1020 #define MCIWndUseFrames(hWnd) MCIWndSetTimeFormat(hWnd,TEXT("frames"))
1021 #define MCIWndUseTime(hWnd) MCIWndSetTimeFormat(hWnd,TEXT("ms"))
1022 #define MCIWndSetActiveTimer(hWnd,active) (VOID)MCIWndSM(hWnd,MCIWNDM_SETACTIVETIMER,(WPARAM)(UINT)(active),0L)
1023 #define MCIWndSetInactiveTimer(hWnd,inactive) (VOID)MCIWndSM(hWnd,MCIWNDM_SETINACTIVETIMER,(WPARAM)(UINT)(inactive),0L)
1024 #define MCIWndSetTimers(hWnd,active,inactive) (VOID)MCIWndSM(hWnd,MCIWNDM_SETTIMERS,(WPARAM)(UINT)(active),(LPARAM)(UINT)(inactive))
1025 #define MCIWndGetActiveTimer(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETACTIVETIMER,0,0L);
1026 #define MCIWndGetInactiveTimer(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETINACTIVETIMER,0,0L);
1027 #define MCIWndRealize(hWnd,fBkgnd) (LONG)MCIWndSM(hWnd,MCIWNDM_REALIZE,(WPARAM)(BOOL)(fBkgnd),0)
1028 #define MCIWndSendString(hWnd,sz) (LONG)MCIWndSM(hWnd,MCIWNDM_SENDSTRING,0,(LPARAM)(LPTSTR)(sz))
1029 #define MCIWndReturnString(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_RETURNSTRING,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
1030 #define MCIWndGetError(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETERROR,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
1031 #define MCIWndGetPalette(hWnd) (HPALETTE)MCIWndSM(hWnd,MCIWNDM_GETPALETTE,0,0)
1032 #define MCIWndSetPalette(hWnd,hpal) (LONG)MCIWndSM(hWnd,MCIWNDM_SETPALETTE,(WPARAM)(HPALETTE)(hpal),0)
1033 #define MCIWndGetFileName(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETFILENAME,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
1034 #define MCIWndGetDevice(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETDEVICE,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
1035 #define MCIWndGetStyles(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETSTYLES,0,0L)
1036 #define MCIWndChangeStyles(hWnd,mask,value) (LONG)MCIWndSM(hWnd,MCIWNDM_CHANGESTYLES,(WPARAM)(UINT)(mask),(LPARAM)(LONG)(value))
1037 #define MCIWndOpenInterface(hWnd,pUnk) (LONG)MCIWndSM(hWnd,MCIWNDM_OPENINTERFACE,0,(LPARAM)(LPUNKNOWN)(pUnk))
1038 #define MCIWndSetOwner(hWnd,hWndP) (LONG)MCIWndSM(hWnd,MCIWNDM_SETOWNER,(WPARAM)(hWndP),0)
1039 #define DrawDibUpdate(hdd,hdc,x,y) DrawDibDraw(hdd,hdc,x,y,0,0,NULL,NULL,0,0,0,0,DDF_UPDATE)
1040 static __inline DWORD
1041 ICGetDefaultQuality(HIC hic)
1043 DWORD dwICValue;
1044 ICSendMessage(hic, ICM_GETDEFAULTQUALITY, (DWORD)(LPVOID)&dwICValue, sizeof(DWORD));
1045 return dwICValue;
1047 static __inline DWORD
1048 ICGetDefaultKeyFrameRate(HIC hic)
1050 DWORD dwICValue;
1051 ICSendMessage(hic, ICM_GETDEFAULTKEYFRAMERATE, (DWORD)(LPVOID)&dwICValue, sizeof(DWORD));
1052 return dwICValue;
1054 static __inline LRESULT
1055 ICDrawSuggestFormat(HIC hic,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,INT dxSrc,INT dySrc,INT dxDst,INT dyDst,HIC hicDecomp)
1057 ICDRAWSUGGEST ic;
1058 ic.lpbiIn = lpbiIn;
1059 ic.lpbiSuggest = lpbiOut;
1060 ic.dxSrc = dxSrc;
1061 ic.dySrc = dySrc;
1062 ic.dxDst = dxDst;
1063 ic.dyDst = dyDst;
1064 ic.hicDecompressor = hicDecomp;
1065 return ICSendMessage(hic,ICM_DRAW_SUGGESTFORMAT,(DWORD)&ic,sizeof(ic));
1067 static __inline LRESULT
1068 ICSetStatusProc(HIC hic,DWORD dwFlags,LRESULT lParam,LONG (CALLBACK *fpfnStatus)(LPARAM,UINT,LONG))
1070 ICSETSTATUSPROC ic;
1071 ic.dwFlags = dwFlags;
1072 ic.lParam = lParam;
1073 ic.Status = fpfnStatus;
1074 return ICSendMessage(hic,ICM_SET_STATUS_PROC,(DWORD)&ic,sizeof(ic));
1076 static __inline LRESULT
1077 ICDecompressEx(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,INT xSrc,INT ySrc,INT dxSrc,INT dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,INT xDst,INT yDst,INT dxDst,INT dyDst)
1079 ICDECOMPRESSEX ic;
1080 ic.dwFlags = dwFlags;
1081 ic.lpbiSrc = lpbiSrc;
1082 ic.lpSrc = lpSrc;
1083 ic.xSrc = xSrc;
1084 ic.ySrc = ySrc;
1085 ic.dxSrc = dxSrc;
1086 ic.dySrc = dySrc;
1087 ic.lpbiDst = lpbiDst;
1088 ic.lpDst = lpDst;
1089 ic.xDst = xDst;
1090 ic.yDst = yDst;
1091 ic.dxDst = dxDst;
1092 ic.dyDst = dyDst;
1093 return ICSendMessage(hic,ICM_DECOMPRESSEX,(DWORD)&ic,sizeof(ic));
1095 static __inline LRESULT
1096 ICDecompressExBegin(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,INT xSrc,INT ySrc,INT dxSrc,INT dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,INT xDst,INT yDst,INT dxDst,INT dyDst)
1098 ICDECOMPRESSEX ic;
1099 ic.dwFlags = dwFlags;
1100 ic.lpbiSrc = lpbiSrc;
1101 ic.lpSrc = lpSrc;
1102 ic.xSrc = xSrc;
1103 ic.ySrc = ySrc;
1104 ic.dxSrc = dxSrc;
1105 ic.dySrc = dySrc;
1106 ic.lpbiDst = lpbiDst;
1107 ic.lpDst = lpDst;
1108 ic.xDst = xDst;
1109 ic.yDst = yDst;
1110 ic.dxDst = dxDst;
1111 ic.dyDst = dyDst;
1112 return ICSendMessage(hic,ICM_DECOMPRESSEX_BEGIN,(DWORD)&ic,sizeof(ic));
1114 static __inline LRESULT
1115 ICDecompressExQuery(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiSrc,LPVOID lpSrc,INT xSrc,INT ySrc,INT dxSrc,INT dySrc,LPBITMAPINFOHEADER lpbiDst,LPVOID lpDst,INT xDst,INT yDst,INT dxDst,INT dyDst)
1117 ICDECOMPRESSEX ic;
1118 ic.dwFlags = dwFlags;
1119 ic.lpbiSrc = lpbiSrc;
1120 ic.lpSrc = lpSrc;
1121 ic.xSrc = xSrc;
1122 ic.ySrc = ySrc;
1123 ic.dxSrc = dxSrc;
1124 ic.dySrc = dySrc;
1125 ic.lpbiDst = lpbiDst;
1126 ic.lpDst = lpDst;
1127 ic.xDst = xDst;
1128 ic.yDst = yDst;
1129 ic.dxDst = dxDst;
1130 ic.dyDst = dyDst;
1131 return ICSendMessage(hic,ICM_DECOMPRESSEX_QUERY,(DWORD)&ic,sizeof(ic));
1134 #define WM_CAP_SET_CALLBACK_ERRORA (WM_USER + 2)
1135 #define WM_CAP_SET_CALLBACK_ERRORW (WM_CAP_SET_CALLBACK_ERRORA + 100)
1136 #define WM_CAP_SET_CALLBACK_STATUS (WM_USER + 3)
1137 #define WM_CAP_SET_CALLBACK_YIELD (WM_USER + 4)
1138 #define WM_CAP_SET_CALLBACK_FRAMEA (WM_USER + 5)
1139 #define WM_CAP_SET_CALLBACK_FRAMEW (WM_CAP_SET_CALLBACK_FRAMEA + 100)
1140 #define WM_CAP_SET_CALLBACK_VIDEOSTREAM (WM_USER + 6)
1141 #define WM_CAP_SET_CALLBACK_WAVESTREAM (WM_USER + 7)
1142 #define WM_CAP_GET_USER_DATA (WM_USER + 8)
1143 #define WM_CAP_SET_USER_DATA (WM_USER + 9)
1144 #define WM_CAP_DRIVER_CONNECT (WM_USER + 10)
1145 #define WM_CAP_DRIVER_DISCONNECT (WM_USER + 11)
1146 #define WM_CAP_DRIVER_GET_NAMEA (WM_USER + 12)
1147 #define WM_CAP_DRIVER_GET_NAMEW (WM_CAP_DRIVER_GET_NAMEA + 100)
1148 #define WM_CAP_DRIVER_GET_VERSIONA (WM_USER + 13)
1149 #define WM_CAP_DRIVER_GET_VERSIONW (WM_CAP_DRIVER_GET_VERSIONA + 100)
1150 #define WM_CAP_DRIVER_GET_CAPS (WM_USER + 14)
1151 #define WM_CAP_FILE_SET_CAPTURE_FILEA (WM_USER + 20)
1152 #define WM_CAP_FILE_SET_CAPTURE_FILEW (WM_CAP_FILE_SET_CAPTURE_FILEA + 100)
1153 #define WM_CAP_FILE_GET_CAPTURE_FILEA (WM_USER + 21)
1154 #define WM_CAP_FILE_GET_CAPTURE_FILEW (WM_CAP_FILE_GET_CAPTURE_FILEA + 100)
1155 #define WM_CAP_FILE_ALLOCATE (WM_USER + 22)
1156 #define WM_CAP_FILE_SAVEASA (WM_USER + 23)
1157 #define WM_CAP_FILE_SAVEASW (WM_CAP_FILE_SAVEASA + 100)
1158 #define WM_CAP_FILE_SET_INFOCHUNK (WM_USER + 24)
1159 #define WM_CAP_FILE_SAVEDIBA (WM_USER + 25)
1160 #define WM_CAP_FILE_SAVEDIBW (WM_CAP_FILE_SAVEDIBA + 100)
1161 #define WM_CAP_EDIT_COPY (WM_USER + 30)
1162 #define WM_CAP_SET_AUDIOFORMAT (WM_USER + 35)
1163 #define WM_CAP_GET_AUDIOFORMAT (WM_USER + 36)
1164 #define WM_CAP_DLG_VIDEOFORMAT (WM_USER + 41)
1165 #define WM_CAP_DLG_VIDEOSOURCE (WM_USER + 42)
1166 #define WM_CAP_DLG_VIDEODISPLAY (WM_USER + 43)
1167 #define WM_CAP_GET_VIDEOFORMAT (WM_USER + 44)
1168 #define WM_CAP_SET_VIDEOFORMAT (WM_USER + 45)
1169 #define WM_CAP_DLG_VIDEOCOMPRESSION (WM_USER + 46)
1170 #define WM_CAP_SET_PREVIEW (WM_USER + 50)
1171 #define WM_CAP_SET_OVERLAY (WM_USER + 51)
1172 #define WM_CAP_SET_PREVIEWRATE (WM_USER + 52)
1173 #define WM_CAP_SET_SCALE (WM_USER + 53)
1174 #define WM_CAP_GET_STATUS (WM_USER + 54)
1175 #define WM_CAP_SET_SCROLL (WM_USER + 55)
1176 #define WM_CAP_GRAB_FRAME (WM_USER + 60)
1177 #define WM_CAP_GRAB_FRAME_NOSTOP (WM_USER + 61)
1178 #define WM_CAP_SEQUENCE (WM_USER + 62)
1179 #define WM_CAP_SEQUENCE_NOFILE (WM_USER + 63)
1180 #define WM_CAP_SET_SEQUENCE_SETUP (WM_USER + 64)
1181 #define WM_CAP_GET_SEQUENCE_SETUP (WM_USER + 65)
1182 #define WM_CAP_SET_MCI_DEVICEA (WM_USER + 66)
1183 #define WM_CAP_SET_MCI_DEVICEW (WM_CAP_SET_MCI_DEVICEA + 100)
1184 #define WM_CAP_GET_MCI_DEVICEA (WM_USER + 67)
1185 #define WM_CAP_GET_MCI_DEVICEW (WM_CAP_GET_MCI_DEVICEA + 100)
1186 #define WM_CAP_STOP (WM_USER + 68)
1187 #define WM_CAP_ABORT (WM_USER + 69)
1188 #define WM_CAP_SINGLE_FRAME_OPEN (WM_USER + 70)
1189 #define WM_CAP_SINGLE_FRAME_CLOSE (WM_USER + 71)
1190 #define WM_CAP_SINGLE_FRAME (WM_USER + 72)
1191 #define WM_CAP_PAL_OPENA (WM_USER + 80)
1192 #define WM_CAP_PAL_OPENW (WM_CAP_PAL_OPENA + 100)
1193 #define WM_CAP_PAL_SAVEA (WM_USER + 81)
1194 #define WM_CAP_PAL_SAVEW (WM_CAP_PAL_SAVEA + 100)
1195 #define WM_CAP_PAL_PASTE (WM_USER + 82)
1196 #define WM_CAP_PAL_AUTOCREATE (WM_USER + 83)
1197 #define WM_CAP_PAL_MANUALCREATE (WM_USER + 84)
1198 #define WM_CAP_SET_CALLBACK_CAPCONTROL (WM_USER + 85)
1200 #ifdef UNICODE
1201 #define WM_CAP_SET_CALLBACK_ERROR WM_CAP_SET_CALLBACK_ERRORW
1202 #define WM_CAP_SET_CALLBACK_FRAME WM_CAP_SET_CALLBACK_FRAMEW
1203 #define WM_CAP_DRIVER_GET_NAME WM_CAP_DRIVER_GET_NAMEW
1204 #define WM_CAP_DRIVER_GET_VERSION WM_CAP_DRIVER_GET_VERSIONW
1205 #define WM_CAP_FILE_SET_CAPTURE_FILE WM_CAP_FILE_SET_CAPTURE_FILEW
1206 #define WM_CAP_FILE_GET_CAPTURE_FILE WM_CAP_FILE_GET_CAPTURE_FILEW
1207 #define WM_CAP_FILE_SAVEAS WM_CAP_FILE_SAVEASW
1208 #define WM_CAP_FILE_SAVEDIB WM_CAP_FILE_SAVEDIBW
1209 #define WM_CAP_SET_MCI_DEVICE WM_CAP_SET_MCI_DEVICEW
1210 #define WM_CAP_GET_MCI_DEVICE WM_CAP_GET_MCI_DEVICEW
1211 #define WM_CAP_PAL_OPEN WM_CAP_PAL_OPENW
1212 #define WM_CAP_PAL_SAVE WM_CAP_PAL_SAVEW
1213 #else
1214 #define WM_CAP_SET_CALLBACK_ERROR WM_CAP_SET_CALLBACK_ERRORA
1215 #define WM_CAP_SET_CALLBACK_FRAME WM_CAP_SET_CALLBACK_FRAMEA
1216 #define WM_CAP_DRIVER_GET_NAME WM_CAP_DRIVER_GET_NAMEA
1217 #define WM_CAP_DRIVER_GET_VERSION WM_CAP_DRIVER_GET_VERSIONA
1218 #define WM_CAP_FILE_SET_CAPTURE_FILE WM_CAP_FILE_SET_CAPTURE_FILEA
1219 #define WM_CAP_FILE_GET_CAPTURE_FILE WM_CAP_FILE_GET_CAPTURE_FILEA
1220 #define WM_CAP_FILE_SAVEAS WM_CAP_FILE_SAVEASA
1221 #define WM_CAP_FILE_SAVEDIB WM_CAP_FILE_SAVEDIBA
1222 #define WM_CAP_SET_MCI_DEVICE WM_CAP_SET_MCI_DEVICEA
1223 #define WM_CAP_GET_MCI_DEVICE WM_CAP_GET_MCI_DEVICEA
1224 #define WM_CAP_PAL_OPEN WM_CAP_PAL_OPENA
1225 #define WM_CAP_PAL_SAVE WM_CAP_PAL_SAVEA
1226 #endif
1228 #define __capSendMessage(hwnd,m,w,l) (IsWindow(hwnd)?SendMessage(hwnd,m,w,l):0)
1230 #define capSetCallbackOnError(hwnd,fpProc) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_CALLBACK_ERROR,0,(LPARAM)(LPVOID)(fpProc)))
1231 #define capSetCallbackOnStatus(hwnd,fpProc) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_CALLBACK_STATUS,0,(LPARAM)(LPVOID)(fpProc)))
1232 #define capSetCallbackOnYield(hwnd,fpProc) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_CALLBACK_YIELD,0,(LPARAM)(LPVOID)(fpProc)))
1233 #define capSetCallbackOnFrame(hwnd,fpProc) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_CALLBACK_FRAME,0,(LPARAM)(LPVOID)(fpProc)))
1234 #define capSetCallbackOnVideoStream(hwnd,fpProc) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_CALLBACK_VIDEOSTREAM,0,(LPARAM)(LPVOID)(fpProc)))
1235 #define capSetCallbackOnWaveStream(hwnd,fpProc) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_CALLBACK_WAVESTREAM,0,(LPARAM)(LPVOID)(fpProc)))
1236 #define capGetUserData(hwnd) ((LONG) __capSendMessage(hwnd,WM_CAP_GET_USER_DATA,0,0))
1237 #define capSetUserData(hwnd,lUser) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_USER_DATA,0,(LPARAM)lUser))
1238 #define capDriverConnect(hwnd,i) ((BOOL) __capSendMessage(hwnd,WM_CAP_DRIVER_CONNECT,(WPARAM)(i),0))
1239 #define capDriverDisconnect(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_DRIVER_DISCONNECT,0,0))
1240 #define capDriverGetName(hwnd,szName,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_DRIVER_GET_NAME,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szName)))
1241 #define capDriverGetVersion(hwnd,szVer,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_DRIVER_GET_VERSION,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szVer)))
1242 #define capDriverGetCaps(hwnd,psCaps,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_DRIVER_GET_CAPS,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPDRIVERCAPS)(psCaps)))
1243 #define capFileSetCaptureFile(hwnd,szName) ((BOOL) __capSendMessage(hwnd,WM_CAP_FILE_SET_CAPTURE_FILE,0,(LPARAM)(LPVOID)(LPTSTR)(szName)))
1244 #define capFileGetCaptureFile(hwnd,szName,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_FILE_GET_CAPTURE_FILE,(WPARAM)(wSize), (LPARAM)(LPVOID)(LPTSTR)(szName)))
1245 #define capFileAlloc(hwnd,dwSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_FILE_ALLOCATE,0,(LPARAM)(DWORD)(dwSize)))
1246 #define capFileSaveAs(hwnd,szName) ((BOOL) __capSendMessage(hwnd,WM_CAP_FILE_SAVEAS,0,(LPARAM)(LPVOID)(LPTSTR)(szName)))
1247 #define capFileSetInfoChunk(hwnd,lpInfoChunk) ((BOOL) __capSendMessage(hwnd,WM_CAP_FILE_SET_INFOCHUNK,0,(LPARAM)(LPCAPINFOCHUNK)(lpInfoChunk)))
1248 #define capFileSaveDIB(hwnd, szName) ((BOOL) __capSendMessage(hwnd,WM_CAP_FILE_SAVEDIB,0,(LPARAM)(LPVOID)(LPTSTR)(szName)))
1249 #define capEditCopy(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_EDIT_COPY,0,0))
1250 #define capSetAudioFormat(hwnd,psAudioFormat,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_AUDIOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPWAVEFORMATEX)(psAudioFormat)))
1251 #define capGetAudioFormat(hwnd,psAudioFormat,wSize) ((DWORD)__capSendMessage(hwnd,WM_CAP_GET_AUDIOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPWAVEFORMATEX)(psAudioFormat)))
1252 #define capGetAudioFormatSize(hwnd) ((DWORD)__capSendMessage(hwnd,WM_CAP_GET_AUDIOFORMAT,0,0))
1253 #define capDlgVideoFormat(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_DLG_VIDEOFORMAT,0,0))
1254 #define capDlgVideoSource(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_DLG_VIDEOSOURCE,0,0))
1255 #define capDlgVideoDisplay(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_DLG_VIDEODISPLAY,0,0))
1256 #define capGetVideoFormat(hwnd,psVideoFormat,wSize) ((DWORD)__capSendMessage(hwnd,WM_CAP_GET_VIDEOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(psVideoFormat)))
1257 #define capGetVideoFormatSize(hwnd) ((DWORD)__capSendMessage(hwnd,WM_CAP_GET_VIDEOFORMAT,0,0))
1258 #define capSetVideoFormat(hwnd,psVideoFormat,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_VIDEOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(psVideoFormat)))
1259 #define capDlgVideoCompression(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_DLG_VIDEOCOMPRESSION,0,0))
1260 #define capPreview(hwnd,f) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_PREVIEW,(WPARAM)(BOOL)(f),0))
1261 #define capOverlay(hwnd,f) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_OVERLAY,(WPARAM)(BOOL)(f),0))
1262 #define capPreviewRate(hwnd,wMS) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_PREVIEWRATE,(WPARAM)(wMS),0))
1263 #define capPreviewScale(hwnd,f) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_SCALE,(WPARAM)(BOOL)f,0))
1264 #define capGetStatus(hwnd,s,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_GET_STATUS,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPSTATUS)(s)))
1265 #define capSetScrollPos(hwnd,lpP) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_SCROLL,0,(LPARAM)(LPPOINT)(lpP)))
1266 #define capGrabFrame(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_GRAB_FRAME,0,0))
1267 #define capGrabFrameNoStop(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_GRAB_FRAME_NOSTOP,0,0))
1268 #define capCaptureSequence(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_SEQUENCE,0,0))
1269 #define capCaptureSequenceNoFile(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_SEQUENCE_NOFILE,0,0))
1270 #define capCaptureSetSetup(hwnd,s,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_SEQUENCE_SETUP,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPTUREPARMS)(s)))
1271 #define capCaptureGetSetup(hwnd,s,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_GET_SEQUENCE_SETUP,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPTUREPARMS)(s)))
1272 #define capSetMCIDeviceName(hwnd,szName) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_MCI_DEVICE,0,(LPARAM)(LPVOID)(LPTSTR)(szName)))
1273 #define capGetMCIDeviceName(hwnd,szName,wSize) ((BOOL) __capSendMessage(hwnd,WM_CAP_GET_MCI_DEVICE,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szName)))
1274 #define capCaptureStop(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_STOP,0,0))
1275 #define capCaptureAbort(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_ABORT,0,0))
1276 #define capCaptureSingleFrameOpen(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_SINGLE_FRAME_OPEN,0,0))
1277 #define capCaptureSingleFrameClose(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_SINGLE_FRAME_CLOSE,0,0))
1278 #define capCaptureSingleFrame(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_SINGLE_FRAME,0,0))
1279 #define capPaletteOpen(hwnd,szName) ((BOOL) __capSendMessage(hwnd,WM_CAP_PAL_OPEN,0,(LPARAM)(LPVOID)(LPTSTR)(szName)))
1280 #define capPaletteSave(hwnd,szName) ((BOOL) __capSendMessage(hwnd,WM_CAP_PAL_SAVE,0,(LPARAM)(LPVOID)(LPTSTR)(szName)))
1281 #define capPalettePaste(hwnd) ((BOOL) __capSendMessage(hwnd,WM_CAP_PAL_PASTE,0,0))
1282 #define capPaletteAuto(hwnd,iFrames,iColors) ((BOOL) __capSendMessage(hwnd,WM_CAP_PAL_AUTOCREATE,(WPARAM)(iFrames),(LPARAM)(DWORD)(iColors)))
1283 #define capPaletteManual(hwnd,fGrab,iColors) ((BOOL) __capSendMessage(hwnd,WM_CAP_PAL_MANUALCREATE,(WPARAM)(fGrab),(LPARAM)(DWORD)(iColors)))
1284 #define capSetCallbackOnCapControl(hwnd,fpProc) ((BOOL) __capSendMessage(hwnd,WM_CAP_SET_CALLBACK_CAPCONTROL,0,(LPARAM)(LPVOID)(fpProc)))
1286 /* AVICAP32 exports */
1287 HWND VFWAPI capCreateCaptureWindowA (LPCSTR,DWORD,int,int,int,int,HWND,int);
1288 HWND VFWAPI capCreateCaptureWindowW (LPCWSTR,DWORD,int,int,int,int,HWND,int);
1289 BOOL VFWAPI capGetDriverDescriptionA (UINT,LPSTR,int,LPSTR,int);
1290 BOOL VFWAPI capGetDriverDescriptionW (UINT,LPWSTR,int,LPWSTR,int);
1292 #ifdef UNICODE
1293 #define AVISTREAMINFO AVISTREAMINFOW
1294 #define LPAVISTREAMINFO LPAVISTREAMINFOW
1295 #define PAVISTREAMINFO PAVISTREAMINFOW
1296 #define AVIFILEINFO AVIFILEINFOW
1297 #define PAVIFILEINFO PAVIFILEINFOW
1298 #define LPAVIFILEINFO LPAVIFILEINFOW
1299 #define AVIStreamInfo AVIStreamInfoW
1300 #define AVIStreamOpenFromFile AVIStreamOpenFromFileW
1301 #define AVIBuildFilter AVIBuildFilterW
1302 #define AVISaveV AVISaveVW
1303 #define EditStreamSetInfo EditStreamSetInfoW
1304 #define EditStreamSetName EditStreamSetNameW
1305 #define AVIFileOpen AVIFileOpenW
1306 #define AVIFileInfo AVIFileInfoW
1307 #define AVIFileCreateStream AVIFileCreateStreamW
1308 #define GetOpenFileNamePreview GetOpenFileNamePreviewW
1309 #define GetSaveFileNamePreview GetSaveFileNamePreviewW
1310 #define MCIWndCreate MCIWndCreateW
1311 #define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAW
1312 #define MCIWNDM_SENDSTRING MCIWNDM_SENDSTRINGW
1313 #define MCIWNDM_GETPOSITION MCIWNDM_GETPOSITIONW
1314 #define MCIWNDM_GETMODE MCIWNDM_GETMODEW
1315 #define MCIWNDM_SETTIMEFORMAT MCIWNDM_SETTIMEFORMATW
1316 #define MCIWNDM_GETTIMEFORMAT MCIWNDM_GETTIMEFORMATW
1317 #define MCIWNDM_GETFILENAME MCIWNDM_GETFILENAMEW
1318 #define MCIWNDM_GETDEVICE MCIWNDM_GETDEVICEW
1319 #define MCIWNDM_GETERROR MCIWNDM_GETERRORW
1320 #define MCIWNDM_NEW MCIWNDM_NEWW
1321 #define MCIWNDM_RETURNSTRING MCIWNDM_RETURNSTRINGW
1322 #define MCIWNDM_OPEN MCIWNDM_OPENW
1324 #define capCreateCaptureWindow capCreateCaptureWindowW
1325 #define capGetDriverDescription capGetDriverDescriptionW
1327 #else
1328 #define AVISTREAMINFO AVISTREAMINFOA
1329 #define LPAVISTREAMINFO LPAVISTREAMINFOA
1330 #define PAVISTREAMINFO PAVISTREAMINFOA
1331 #define AVIFILEINFO AVIFILEINFOA
1332 #define PAVIFILEINFO PAVIFILEINFOA
1333 #define LPAVIFILEINFO LPAVIFILEINFOA
1334 #define AVIStreamInfo AVIStreamInfoA
1335 #define AVIStreamOpenFromFile AVIStreamOpenFromFileA
1336 #define AVIBuildFilter AVIBuildFilterA
1337 #define AVISaveV AVISaveVA
1338 #define EditStreamSetInfo EditStreamSetInfoA
1339 #define EditStreamSetName EditStreamSetNameA
1340 #define AVIFileOpen AVIFileOpenA
1341 #define AVIFileInfo AVIFileInfoA
1342 #define AVIFileCreateStream AVIFileCreateStreamA
1343 #define GetOpenFileNamePreview GetOpenFileNamePreviewA
1344 #define GetSaveFileNamePreview GetSaveFileNamePreviewA
1345 #define MCIWndCreate MCIWndCreateA
1346 #define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAA
1347 #define MCIWNDM_SENDSTRING MCIWNDM_SENDSTRINGA
1348 #define MCIWNDM_GETPOSITION MCIWNDM_GETPOSITIONA
1349 #define MCIWNDM_GETMODE MCIWNDM_GETMODEA
1350 #define MCIWNDM_SETTIMEFORMAT MCIWNDM_SETTIMEFORMATA
1351 #define MCIWNDM_GETTIMEFORMAT MCIWNDM_GETTIMEFORMATA
1352 #define MCIWNDM_GETFILENAME MCIWNDM_GETFILENAMEA
1353 #define MCIWNDM_GETDEVICE MCIWNDM_GETDEVICEA
1354 #define MCIWNDM_GETERROR MCIWNDM_GETERRORA
1355 #define MCIWNDM_NEW MCIWNDM_NEWA
1356 #define MCIWNDM_RETURNSTRING MCIWNDM_RETURNSTRINGA
1357 #define MCIWNDM_OPEN MCIWNDM_OPENA
1359 #define capCreateCaptureWindow capCreateCaptureWindowA
1360 #define capGetDriverDescription capGetDriverDescriptionA
1362 #endif
1364 #endif /* RC_INVOKED */
1366 #ifdef __cplusplus
1368 #endif
1369 #include <poppack.h>
1370 #endif /* _VFW_H */