source: vendor/w32api/current/include/vfw.h

Last change on this file was 2720, checked in by bird, 19 years ago

w32api v3.6

File size: 44.2 KB
Line 
1#ifndef _VFW_H
2#define _VFW_H
3#if __GNUC__ >= 3
4#pragma GCC system_header
5#endif
6
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__)
14#include <ole2.h>
15#endif
16
17#define VFWAPI WINAPI
18#define VFWAPIV WINAPIV
19
20#include <pshpack8.h>
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
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
366
367#ifndef RC_INVOKED
368DECLARE_HANDLE(HIC);
369DECLARE_HANDLE(HDRAWDIB);
370typedef WORD TWOCC;
371typedef BOOL (CALLBACK *AVISAVECALLBACK)(INT);
372typedef 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;
383typedef 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;
397typedef 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;
415typedef struct {
416 DWORD dwFlags;
417 LPARAM lParam;
418 LONG (CALLBACK *Status)(LPARAM,UINT,LONG);
419} ICSETSTATUSPROC;
420typedef 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;
431typedef struct {
432 DWORD dwFlags;
433 LPBITMAPINFOHEADER lpbiInput;
434 LPVOID lpInput;
435 LPBITMAPINFOHEADER lpbiOutput;
436 LPVOID lpOutput;
437 DWORD ckid;
438} ICDECOMPRESS;
439typedef 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;
454typedef 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;
464typedef struct {
465 DWORD dwFlags;
466 INT iStart;
467 INT iLen;
468 LPPALETTEENTRY lppe;
469} ICPALETTE;
470typedef 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;
487typedef struct {
488 DWORD dwFlags;
489 LPVOID lpFormat;
490 LPVOID lpData;
491 DWORD cbData;
492 LONG lTime;
493} ICDRAW;
494typedef 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;
512typedef struct _MainAVIHeader
513{
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;
526typedef 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;
542typedef struct _AVIINDEXENTRY {
543 DWORD ckid;
544 DWORD dwFlags;
545 DWORD dwChunkOffset;
546 DWORD dwChunkLength;
547} AVIINDEXENTRY;
548typedef struct _AVIPALCHANGE {
549 BYTE bFirstEntry;
550 BYTE bNumEntries;
551 WORD wFlags;
552 PALETTEENTRY peNew[1];
553} AVIPALCHANGE;
554typedef 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;
574typedef 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;
594typedef 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;
608typedef 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;
622typedef 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
636#if !defined (__OBJC__)
637#define DEFINE_AVIGUID(name,l,w1,w2) DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
638DEFINE_AVIGUID(IID_IAVIFile,0x00020020,0,0);
639DEFINE_AVIGUID(IID_IAVIStream,0x00020021,0,0);
640DEFINE_AVIGUID(IID_IAVIStreaming,0x00020022,0,0);
641DEFINE_AVIGUID(IID_IGetFrame,0x00020023,0,0);
642DEFINE_AVIGUID(IID_IAVIEditStream,0x00020024,0,0);
643DEFINE_AVIGUID(CLSID_AVIFile,0x00020000,0,0);
644
645#undef INTERFACE
646#define INTERFACE IAVIStream
647DECLARE_INTERFACE_(IAVIStream, IUnknown)
648{
649 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
650 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
651 STDMETHOD_(ULONG,Release)(THIS) PURE;
652 STDMETHOD(Create)(THIS_ LPARAM,LPARAM) PURE;
653 STDMETHOD(Info)(THIS_ AVISTREAMINFOW*,LONG) PURE;
654 STDMETHOD_(LONG,FindSample)(THIS_ LONG,LONG) PURE;
655 STDMETHOD(ReadFormat)(THIS_ LONG,LPVOID,LONG*) PURE;
656 STDMETHOD(SetFormat)(THIS_ LONG,LPVOID,LONG) PURE;
657 STDMETHOD(Read)(THIS_ LONG,LONG,LPVOID,LONG,LONG*,LONG*) PURE;
658 STDMETHOD(Write)(THIS_ LONG,LONG,LPVOID,LONG,DWORD,LONG*,LONG*) PURE;
659 STDMETHOD(Delete)(THIS_ LONG,LONG) PURE;
660 STDMETHOD(ReadData)(THIS_ DWORD,LPVOID,LONG*) PURE;
661 STDMETHOD(WriteData)(THIS_ DWORD,LPVOID,LONG) PURE;
662 STDMETHOD(SetInfo)(THIS_ AVISTREAMINFOW*,LONG) PURE;
663};
664typedef IAVIStream *PAVISTREAM;
665
666#undef INTERFACE
667#define INTERFACE IAVIStreaming
668DECLARE_INTERFACE_(IAVIStreaming, IUnknown)
669{
670 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
671 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
672 STDMETHOD_(ULONG,Release)(THIS) PURE;
673 STDMETHOD(Begin)(THIS_ LONG,LONG,LONG) PURE;
674 STDMETHOD(End)(THIS) PURE;
675};
676typedef IAVIStreaming *PAVISTREAMING;
677
678#undef INTERFACE
679#define INTERFACE IAVIEditStream
680DECLARE_INTERFACE_(IAVIEditStream, IUnknown)
681{
682 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
683 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
684 STDMETHOD_(ULONG,Release)(THIS) PURE;
685 STDMETHOD(Cut)(THIS_ LONG*,LONG*,PAVISTREAM*) PURE;
686 STDMETHOD(Copy)(THIS_ LONG*,LONG*,PAVISTREAM*) PURE;
687 STDMETHOD(Paste)(THIS_ LONG*,LONG*,PAVISTREAM,LONG,LONG) PURE;
688 STDMETHOD(Clone)(THIS_ PAVISTREAM*) PURE;
689 STDMETHOD(SetInfo)(THIS_ LPAVISTREAMINFOW,LONG) PURE;
690};
691typedef IAVIEditStream *PAVIEDITSTREAM;
692
693#undef INTERFACE
694#define INTERFACE IAVIFile
695DECLARE_INTERFACE_(IAVIFile, IUnknown)
696{
697 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
698 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
699 STDMETHOD_(ULONG,Release)(THIS) PURE;
700 STDMETHOD(Info)(THIS_ AVIFILEINFOW*,LONG) PURE;
701 STDMETHOD(GetStream)(THIS_ PAVISTREAM*,DWORD,LONG) PURE;
702 STDMETHOD(CreateStream)(THIS_ PAVISTREAM*,AVISTREAMINFOW*) PURE;
703 STDMETHOD(WriteData)(THIS_ DWORD,LPVOID,LONG) PURE;
704 STDMETHOD(ReadData)(THIS_ DWORD,LPVOID,LONG*) PURE;
705 STDMETHOD(EndRecord)(THIS) PURE;
706 STDMETHOD(DeleteStream)(THIS_ DWORD,LONG) PURE;
707};
708typedef IAVIFile *PAVIFILE;
709
710#undef INTERFACE
711#define INTERFACE IGetFrame
712DECLARE_INTERFACE_(IGetFrame, IUnknown)
713{
714 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
715 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
716 STDMETHOD_(ULONG,Release)(THIS) PURE;
717 STDMETHOD_(LPVOID,GetFrame)(THIS_ LONG) PURE;
718 STDMETHOD(Begin)(THIS_ LONG,LONG,LONG) PURE;
719 STDMETHOD(End)(THIS) PURE;
720 STDMETHOD(SetFormat)(THIS_ LPBITMAPINFOHEADER,LPVOID,INT,INT,INT,INT) PURE;
721};
722typedef IGetFrame *PGETFRAME;
723#endif /* !defined (__OBJC__) */
724
725DWORD VFWAPI VideoForWindowsVersion(VOID);
726LONG VFWAPI InitVFW(VOID);
727LONG VFWAPI TermVFW(VOID);
728DWORD VFWAPIV ICCompress(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID,LPDWORD,LPDWORD,LONG,DWORD,DWORD,LPBITMAPINFOHEADER,LPVOID);
729DWORD VFWAPIV ICDecompress(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID);
730LRESULT VFWAPI ICSendMessage(HIC,UINT,DWORD,DWORD);
731HANDLE VFWAPI ICImageCompress(HIC,UINT,LPBITMAPINFO,LPVOID,LPBITMAPINFO,LONG,LONG*);
732HANDLE VFWAPI ICImageDecompress(HIC,UINT,LPBITMAPINFO,LPVOID,LPBITMAPINFO);
733BOOL VFWAPI ICInfo(DWORD,DWORD,ICINFO*);
734BOOL VFWAPI ICInstall(DWORD,DWORD,LPARAM,LPSTR,UINT);
735BOOL VFWAPI ICRemove(DWORD,DWORD,UINT);
736LRESULT VFWAPI ICGetInfo(HIC,ICINFO*,DWORD);
737HIC VFWAPI ICOpen(DWORD,DWORD,UINT);
738HIC VFWAPI ICOpenFunction(DWORD,DWORD,UINT,FARPROC);
739LRESULT VFWAPI ICClose(HIC hic);
740HIC VFWAPI ICLocate(DWORD,DWORD,LPBITMAPINFOHEADER,LPBITMAPINFOHEADER,WORD);
741HIC VFWAPI ICGetDisplayFormat(HIC,LPBITMAPINFOHEADER,LPBITMAPINFOHEADER,INT,INT,INT);
742DWORD VFWAPIV ICDrawBegin(HIC,DWORD,HPALETTE,HWND,HDC,INT,INT,INT,INT,LPBITMAPINFOHEADER,INT,INT,INT,INT,DWORD,DWORD);
743DWORD VFWAPIV ICDraw(HIC,DWORD,LPVOID,LPVOID,DWORD,LONG);
744BOOL VFWAPI ICCompressorChoose(HWND,UINT,LPVOID,LPVOID,PCOMPVARS,LPSTR);
745BOOL VFWAPI ICSeqCompressFrameStart(PCOMPVARS,LPBITMAPINFO);
746void VFWAPI ICSeqCompressFrameEnd(PCOMPVARS);
747LPVOID VFWAPI ICSeqCompressFrame(PCOMPVARS,UINT,LPVOID,BOOL*,LONG*);
748void VFWAPI ICCompressorFree(PCOMPVARS);
749#if !defined (__OBJC__)
750ULONG WINAPI AVIStreamAddRef(PAVISTREAM);
751ULONG WINAPI AVIStreamRelease(PAVISTREAM);
752HRESULT WINAPI AVIStreamCreate(PAVISTREAM*,LONG,LONG,CLSID*);
753HRESULT WINAPI AVIStreamInfoA(PAVISTREAM,AVISTREAMINFOA*,LONG);
754HRESULT WINAPI AVIStreamInfoW(PAVISTREAM,AVISTREAMINFOW*,LONG);
755HRESULT WINAPI AVIStreamFindSample(PAVISTREAM,LONG,DWORD);
756HRESULT WINAPI AVIStreamReadFormat(PAVISTREAM,LONG,LPVOID,LONG*);
757HRESULT WINAPI AVIStreamSetFormat(PAVISTREAM,LONG,LPVOID,LONG);
758HRESULT WINAPI AVIStreamRead(PAVISTREAM,LONG,LONG,LPVOID,LONG,LONG*,LONG*);
759HRESULT WINAPI AVIStreamWrite(PAVISTREAM,LONG,LONG,LPVOID,LONG,DWORD,LONG*,LONG*);
760HRESULT WINAPI AVIStreamReadData(PAVISTREAM,DWORD,LPVOID,LONG*);
761HRESULT WINAPI AVIStreamWriteData(PAVISTREAM,DWORD,LPVOID,LONG);
762PGETFRAME WINAPI AVIStreamGetFrameOpen(PAVISTREAM,LPBITMAPINFOHEADER);
763LPVOID WINAPI AVIStreamGetFrame(PGETFRAME,LONG);
764HRESULT WINAPI AVIStreamGetFrameClose(PGETFRAME);
765HRESULT WINAPI AVIMakeCompressedStream(PAVISTREAM*,PAVISTREAM,AVICOMPRESSOPTIONS*,CLSID*);
766HRESULT WINAPI AVIMakeFileFromStreams(PAVIFILE*,INT,PAVISTREAM*);
767HRESULT WINAPI AVIStreamOpenFromFileA(PAVISTREAM*,LPCSTR,DWORD,LONG,UINT,CLSID*);
768HRESULT WINAPI AVIStreamOpenFromFileW(PAVISTREAM*,LPCWSTR,DWORD,LONG,UINT,CLSID*);
769HRESULT WINAPI AVIBuildFilterA(LPSTR,LONG,BOOL);
770HRESULT WINAPI AVIBuildFilterW(LPWSTR,LONG,BOOL);
771BOOL WINAPI AVISaveOptions(HWND,UINT,INT,PAVISTREAM*,LPAVICOMPRESSOPTIONS*);
772HRESULT WINAPI AVISaveOptionsFree(INT,LPAVICOMPRESSOPTIONS*);
773HRESULT WINAPI AVISaveVA(LPCSTR,CLSID*,AVISAVECALLBACK,INT,PAVISTREAM*,LPAVICOMPRESSOPTIONS*);
774HRESULT WINAPI AVISaveVW(LPCWSTR,CLSID*,AVISAVECALLBACK,INT,PAVISTREAM*,LPAVICOMPRESSOPTIONS*);
775LONG WINAPI AVIStreamStart(PAVISTREAM);
776LONG WINAPI AVIStreamLength(PAVISTREAM);
777LONG WINAPI AVIStreamSampleToTime(PAVISTREAM,LONG);
778LONG WINAPI AVIStreamTimeToSample(PAVISTREAM,LONG);
779HRESULT WINAPI CreateEditableStream(PAVISTREAM*,PAVISTREAM);
780HRESULT WINAPI EditStreamClone(PAVISTREAM,PAVISTREAM*);
781HRESULT WINAPI EditStreamCopy(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
782HRESULT WINAPI EditStreamCut(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
783HRESULT WINAPI EditStreamPaste(PAVISTREAM,LONG*,LONG*,PAVISTREAM,LONG,LONG);
784HRESULT WINAPI EditStreamSetInfoA(PAVISTREAM,LPAVISTREAMINFOA,LONG);
785HRESULT WINAPI EditStreamSetInfoW(PAVISTREAM,LPAVISTREAMINFOW,LONG);
786HRESULT WINAPI EditStreamSetNameA(PAVISTREAM,LPCSTR);
787HRESULT WINAPI EditStreamSetNameW(PAVISTREAM,LPCWSTR);
788HRESULT WINAPI CreateEditableStream(PAVISTREAM*,PAVISTREAM);
789HRESULT WINAPI EditStreamClone(PAVISTREAM,PAVISTREAM*);
790HRESULT WINAPI EditStreamCopy(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
791HRESULT WINAPI EditStreamCut(PAVISTREAM,LONG*,LONG*,PAVISTREAM*);
792HRESULT WINAPI EditStreamPaste(PAVISTREAM,LONG*,LONG*,PAVISTREAM,LONG,LONG);
793HRESULT WINAPI EditStreamSetInfoA(PAVISTREAM,LPAVISTREAMINFOA,LONG);
794HRESULT WINAPI EditStreamSetInfoW(PAVISTREAM,LPAVISTREAMINFOW,LONG);
795HRESULT WINAPI EditStreamSetNameA(PAVISTREAM,LPCSTR);
796HRESULT WINAPI EditStreamSetNameW(PAVISTREAM,LPCWSTR);
797VOID WINAPI AVIFileInit(void);
798VOID WINAPI AVIFileExit(void);
799HRESULT WINAPI AVIFileOpenA(PAVIFILE*,LPCSTR,UINT,LPCLSID);
800HRESULT WINAPI AVIFileOpenW(PAVIFILE*,LPCWSTR,UINT,LPCLSID);
801ULONG WINAPI AVIFileAddRef(PAVIFILE);
802ULONG WINAPI AVIFileRelease(PAVIFILE);
803HRESULT WINAPI AVIFileInfoA(PAVIFILE,PAVIFILEINFOA,LONG);
804HRESULT WINAPI AVIFileInfoW(PAVIFILE,PAVIFILEINFOW,LONG);
805HRESULT WINAPI AVIFileGetStream(PAVIFILE,PAVISTREAM*,DWORD,LONG);
806HRESULT WINAPI AVIFileCreateStreamA(PAVIFILE,PAVISTREAM*,AVISTREAMINFOA*);
807HRESULT WINAPI AVIFileCreateStreamW(PAVIFILE,PAVISTREAM*,AVISTREAMINFOW*);
808HRESULT WINAPI AVIFileWriteData(PAVIFILE,DWORD,LPVOID,LONG);
809HRESULT WINAPI AVIFileReadData(PAVIFILE,DWORD,LPVOID,LPLONG);
810HRESULT WINAPI AVIFileEndRecord(PAVIFILE);
811HRESULT WINAPI AVIClearClipboard(VOID);
812HRESULT WINAPI AVIGetFromClipboard(PAVIFILE*);
813HRESULT WINAPI AVIPutFileOnClipboard(PAVIFILE);
814#endif /* __OBJC__ */
815#ifdef OFN_READONLY
816BOOL WINAPI GetOpenFileNamePreviewA(LPOPENFILENAMEA);
817BOOL WINAPI GetOpenFileNamePreviewW(LPOPENFILENAMEW);
818BOOL WINAPI GetSaveFileNamePreviewA(LPOPENFILENAMEA);
819BOOL WINAPI GetSaveFileNamePreviewW(LPOPENFILENAMEW);
820#endif
821HWND VFWAPIV MCIWndCreateA(HWND,HINSTANCE,DWORD,LPCSTR);
822HWND VFWAPIV MCIWndCreateW(HWND,HINSTANCE,DWORD,LPCWSTR);
823HDRAWDIB VFWAPI DrawDibOpen(VOID);
824UINT VFWAPI DrawDibRealize(HDRAWDIB,HDC,BOOL);
825BOOL VFWAPI DrawDibBegin(HDRAWDIB,HDC,INT,INT,LPBITMAPINFOHEADER,INT,INT,UINT);
826BOOL VFWAPI DrawDibDraw(HDRAWDIB,HDC,INT,INT,INT,INT,LPBITMAPINFOHEADER,LPVOID,INT,INT,INT,INT,UINT);
827BOOL VFWAPI DrawDibSetPalette(HDRAWDIB,HPALETTE);
828HPALETTE VFWAPI DrawDibGetPalette(HDRAWDIB);
829BOOL VFWAPI DrawDibChangePalette(HDRAWDIB,int,int,LPPALETTEENTRY);
830LPVOID VFWAPI DrawDibGetBuffer(HDRAWDIB,LPBITMAPINFOHEADER,DWORD,DWORD);
831BOOL VFWAPI DrawDibStart(HDRAWDIB,DWORD);
832BOOL VFWAPI DrawDibStop(HDRAWDIB);
833BOOL VFWAPI DrawDibEnd(HDRAWDIB);
834BOOL VFWAPI DrawDibClose(HDRAWDIB);
835DWORD VFWAPI DrawDibProfileDisplay(LPBITMAPINFOHEADER);
836
837#define ICCompressGetFormat(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_FORMAT,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
838#define ICCompressGetFormatSize(hic,lpbi) ICCompressGetFormat(hic,lpbi,NULL)
839#define ICCompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_BEGIN,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
840#define ICCompressGetSize(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_SIZE,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
841#define ICCompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_QUERY,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
842#define ICCompressEnd(hic) ICSendMessage(hic,ICM_COMPRESS_END,0,0)
843#define ICQueryAbout(hic) (ICSendMessage(hic,ICM_ABOUT,(DWORD)-1,ICMF_ABOUT_QUERY)==ICERR_OK)
844#define ICAbout(hic,hwnd) ICSendMessage(hic,ICM_ABOUT,(DWORD)(hwnd),0)
845#define ICQueryConfigure(hic) (ICSendMessage(hic,ICM_CONFIGURE,(DWORD)-1,ICMF_CONFIGURE_QUERY)==ICERR_OK)
846#define ICConfigure(hic,hwnd) ICSendMessage(hic,ICM_CONFIGURE,(DWORD)(hwnd),0)
847#define ICDecompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_BEGIN,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
848#define ICDecompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_QUERY,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
849#define ICDecompressGetFormat(hic,lpbiInput,lpbiOutput) (LONG)ICSendMessage(hic,ICM_DECOMPRESS_GET_FORMAT,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
850#define ICDecompressGetFormatSize(hic,lpbi) ICDecompressGetFormat(hic, lpbi, NULL)
851#define ICDecompressGetPalette(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_GET_PALETTE,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
852#define ICDecompressSetPalette(hic,lpbiPalette) ICSendMessage(hic,ICM_DECOMPRESS_SET_PALETTE,(DWORD)(lpbiPalette),0)
853#define ICDecompressEnd(hic) ICSendMessage(hic,ICM_DECOMPRESS_END,0,0)
854#define ICDecompressExEnd(hic) ICSendMessage(hic,ICM_DECOMPRESSEX_END,0,0)
855#define ICDecompressOpen(fccType,fccHandler,lpbiIn,lpbiOut) ICLocate(fccType,fccHandler,lpbiIn,lpbiOut,ICMODE_DECOMPRESS)
856#define ICDrawOpen(fccType,fccHandler,lpbiIn) ICLocate(fccType,fccHandler,lpbiIn,NULL,ICMODE_DRAW)
857#define ICGetState(hic,pv,cb) ICSendMessage(hic,ICM_GETSTATE,(DWORD)(pv),(DWORD)(cb))
858#define ICSetState(hic,pv,cb) ICSendMessage(hic,ICM_SETSTATE,(DWORD)(pv),(DWORD)(cb))
859#define ICGetStateSize(hic) ICGetState(hic,NULL,0)
860#define ICDrawWindow(hic,prc) ICSendMessage(hic,ICM_DRAW_WINDOW,(DWORD)(prc),sizeof(RECT))
861#define ICDrawQuery(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_QUERY,(DWORD)(lpbiInput),0)
862#define ICDrawChangePalette(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_CHANGEPALETTE,(DWORD)(lpbiInput),0)
863#define ICGetBuffersWanted(hic,lpdwBuffers) ICSendMessage(hic,ICM_GETBUFFERSWANTED,(DWORD)(lpdwBuffers),0)
864#define ICDrawEnd(hic) ICSendMessage(hic,ICM_DRAW_END,0,0)
865#define ICDrawStart(hic) ICSendMessage(hic,ICM_DRAW_START,0,0)
866#define ICDrawStartPlay(hic,lFrom,lTo) ICSendMessage(hic,ICM_DRAW_START_PLAY,(DWORD)(lFrom),(DWORD)(lTo))
867#define ICDrawStop(hic) ICSendMessage(hic,ICM_DRAW_STOP,0,0)
868#define ICDrawStopPlay(hic) ICSendMessage(hic,ICM_DRAW_STOP_PLAY,0,0)
869#define ICDrawGetTime(hic,lplTime) ICSendMessage(hic,ICM_DRAW_GETTIME,(DWORD)(lplTime),0)
870#define ICDrawSetTime(hic,lTime) ICSendMessage(hic,ICM_DRAW_SETTIME,(DWORD)lTime,0)
871#define ICDrawRealize(hic,hdc,fBackground) ICSendMessage(hic,ICM_DRAW_REALIZE,(DWORD)(hdc),(DWORD)(fBackground))
872#define ICDrawFlush(hic) ICSendMessage(hic,ICM_DRAW_FLUSH,0,0)
873#define ICDrawRenderBuffer(hic) ICSendMessage(hic,ICM_DRAW_RENDERBUFFER,0,0)
874#define AVIFileClose(pavi) AVIFileRelease(pavi)
875#define AVIStreamClose(pavi) AVIStreamRelease(pavi);
876#define AVIStreamEnd(pavi) (AVIStreamStart(pavi)+AVIStreamLength(pavi))
877#define AVIStreamEndTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamEnd(pavi))
878#define AVIStreamFormatSize(pavi,lPos,plSize) AVIStreamReadFormat(pavi,lPos,NULL,plSize)
879#define AVIStreamLengthTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamLength(pavi))
880#define AVIStreamSampleSize(pavi,pos,psize) AVIStreamRead(pavi,pos,1,NULL,0,psize,NULL)
881#define AVIStreamSampleToSample(pavi1,pavi2,samp2) AVIStreamTimeToSample(pavi1,AVIStreamSampleToTime(pavi2,samp2))
882#define AVIStreamStartTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamStart(pavi))
883#define AVIStreamNextSample(pavi,pos) AVIStreamFindSample(pavi,pos+1,FIND_NEXT|FIND_ANY)
884#define AVIStreamPrevSample(pavi,pos) AVIStreamFindSample(pavi,pos-1,FIND_PREV|FIND_ANY)
885#define AVIStreamNearestSample(pavi, pos) AVIStreamFindSample(pavi,pos,FIND_PREV|FIND_ANY)
886#define AVStreamNextKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos+1,FIND_NEXT|FIND_KEY)
887#define AVStreamPrevKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos-1,FIND_NEXT|FIND_KEY)
888#define AVIStreamNearestKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos,FIND_PREV|FIND_KEY)
889#define AVIStreamIsKeyFrame(pavi, pos) (AVIStreamNearestKeyFrame(pavi,pos) == pos)
890#ifdef __cplusplus
891#define MCIWndSM ::SendMessage
892#else
893#define MCIWndSM SendMessage
894#endif
895#define MCIWndCanPlay(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_PLAY,0,0)
896#define MCIWndCanRecord(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_RECORD,0,0)
897#define MCIWndCanSave(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_SAVE,0,0)
898#define MCIWndCanWindow(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_WINDOW,0,0)
899#define MCIWndCanEject(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_EJECT,0,0)
900#define MCIWndCanConfig(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_CONFIG,0,0)
901#define MCIWndPaletteKick(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_PALETTEKICK,0,0)
902#define MCIWndSave(hWnd,szFile) (LONG)MCIWndSM(hWnd,MCI_SAVE,0,(LPARAM)(LPVOID)(szFile))
903#define MCIWndSaveDialog(hWnd) MCIWndSave(hWnd,-1)
904#define MCIWndNew(hWnd,lp) (LONG)MCIWndSM(hWnd,MCIWNDM_NEW,0,(LPARAM)(LPVOID)(lp))
905#define MCIWndRecord(hWnd) (LONG)MCIWndSM(hWnd,MCI_RECORD,0,0)
906#define MCIWndOpen(hWnd,sz,f) (LONG)MCIWndSM(hWnd,MCIWNDM_OPEN,(WPARAM)(UINT)(f),(LPARAM)(LPVOID)(sz))
907#define MCIWndOpenDialog(hWnd) MCIWndOpen(hWnd,-1,0)
908#define MCIWndClose(hWnd) (LONG)MCIWndSM(hWnd,MCI_CLOSE,0,0)
909#define MCIWndPlay(hWnd) (LONG)MCIWndSM(hWnd,MCI_PLAY,0,0)
910#define MCIWndStop(hWnd) (LONG)MCIWndSM(hWnd,MCI_STOP,0,0)
911#define MCIWndPause(hWnd) (LONG)MCIWndSM(hWnd,MCI_PAUSE,0,0)
912#define MCIWndResume(hWnd) (LONG)MCIWndSM(hWnd,MCI_RESUME,0,0)
913#define MCIWndSeek(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCI_SEEK,0,(LPARAM)(LONG)(lPos))
914#define MCIWndEject(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_EJECT,0,0)
915#define MCIWndHome(hWnd) MCIWndSeek(hWnd,MCIWND_START)
916#define MCIWndEnd(hWnd) MCIWndSeek(hWnd,MCIWND_END)
917#define MCIWndGetSource(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_GET_SOURCE,0,(LPARAM)(LPRECT)(prc))
918#define MCIWndPutSource(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_PUT_SOURCE,0,(LPARAM)(LPRECT)(prc))
919#define MCIWndGetDest(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_GET_DEST,0,(LPARAM)(LPRECT)(prc))
920#define MCIWndPutDest(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_PUT_DEST,0,(LPARAM)(LPRECT)(prc))
921#define MCIWndPlayReverse(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYREVERSE,0,0)
922#define MCIWndPlayFrom(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYFROM,0,(LPARAM)(LONG)(lPos))
923#define MCIWndPlayTo(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYTO, 0,(LPARAM)(LONG)(lPos))
924#define MCIWndPlayFromTo(hWnd,lStart,lEnd) (MCIWndSeek(hWnd,lStart),MCIWndPlayTo(hWnd,lEnd))
925#define MCIWndGetDeviceID(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETDEVICEID,0,0)
926#define MCIWndGetAlias(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETALIAS,0,0)
927#define MCIWndGetMode(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETMODE,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
928#define MCIWndGetPosition(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETPOSITION,0,0)
929#define MCIWndGetPositionString(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETPOSITION,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
930#define MCIWndGetStart(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETSTART,0,0)
931#define MCIWndGetLength(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETLENGTH,0,0)
932#define MCIWndGetEnd(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETEND,0,0)
933#define MCIWndStep(hWnd,n) (LONG)MCIWndSM(hWnd,MCI_STEP,0,(LPARAM)(long)(n))
934#define MCIWndDestroy(hWnd) (VOID)MCIWndSM(hWnd,WM_CLOSE,0,0)
935#define MCIWndSetZoom(hWnd,iZoom) (VOID)MCIWndSM(hWnd,MCIWNDM_SETZOOM,0,(LPARAM)(UINT)(iZoom))
936#define MCIWndGetZoom(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETZOOM,0,0)
937#define MCIWndSetVolume(hWnd,iVol) (LONG)MCIWndSM(hWnd,MCIWNDM_SETVOLUME,0,(LPARAM)(UINT)(iVol))
938#define MCIWndGetVolume(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETVOLUME,0,0)
939#define MCIWndSetSpeed(hWnd,iSpeed) (LONG)MCIWndSM(hWnd,MCIWNDM_SETSPEED,0,(LPARAM)(UINT)(iSpeed))
940#define MCIWndGetSpeed(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETSPEED,0,0)
941#define MCIWndSetTimeFormat(hWnd,lp) (LONG)MCIWndSM(hWnd,MCIWNDM_SETTIMEFORMAT,0,(LPARAM)(LPTSTR)(lp))
942#define MCIWndGetTimeFormat(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETTIMEFORMAT,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
943#define MCIWndValidateMedia(hWnd) (VOID)MCIWndSM(hWnd,MCIWNDM_VALIDATEMEDIA,0,0)
944#define MCIWndSetRepeat(hWnd,f) (void)MCIWndSM(hWnd,MCIWNDM_SETREPEAT,0,(LPARAM)(BOOL)(f))
945#define MCIWndGetRepeat(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_GETREPEAT,0,0)
946#define MCIWndUseFrames(hWnd) MCIWndSetTimeFormat(hWnd,TEXT("frames"))
947#define MCIWndUseTime(hWnd) MCIWndSetTimeFormat(hWnd,TEXT("ms"))
948#define MCIWndSetActiveTimer(hWnd,active) (VOID)MCIWndSM(hWnd,MCIWNDM_SETACTIVETIMER,(WPARAM)(UINT)(active),0L)
949#define MCIWndSetInactiveTimer(hWnd,inactive) (VOID)MCIWndSM(hWnd,MCIWNDM_SETINACTIVETIMER,(WPARAM)(UINT)(inactive),0L)
950#define MCIWndSetTimers(hWnd,active,inactive) (VOID)MCIWndSM(hWnd,MCIWNDM_SETTIMERS,(WPARAM)(UINT)(active),(LPARAM)(UINT)(inactive))
951#define MCIWndGetActiveTimer(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETACTIVETIMER,0,0L);
952#define MCIWndGetInactiveTimer(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETINACTIVETIMER,0,0L);
953#define MCIWndRealize(hWnd,fBkgnd) (LONG)MCIWndSM(hWnd,MCIWNDM_REALIZE,(WPARAM)(BOOL)(fBkgnd),0)
954#define MCIWndSendString(hWnd,sz) (LONG)MCIWndSM(hWnd,MCIWNDM_SENDSTRING,0,(LPARAM)(LPTSTR)(sz))
955#define MCIWndReturnString(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_RETURNSTRING,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
956#define MCIWndGetError(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETERROR,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
957#define MCIWndGetPalette(hWnd) (HPALETTE)MCIWndSM(hWnd,MCIWNDM_GETPALETTE,0,0)
958#define MCIWndSetPalette(hWnd,hpal) (LONG)MCIWndSM(hWnd,MCIWNDM_SETPALETTE,(WPARAM)(HPALETTE)(hpal),0)
959#define MCIWndGetFileName(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETFILENAME,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
960#define MCIWndGetDevice(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETDEVICE,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
961#define MCIWndGetStyles(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETSTYLES,0,0L)
962#define MCIWndChangeStyles(hWnd,mask,value) (LONG)MCIWndSM(hWnd,MCIWNDM_CHANGESTYLES,(WPARAM)(UINT)(mask),(LPARAM)(LONG)(value))
963#define MCIWndOpenInterface(hWnd,pUnk) (LONG)MCIWndSM(hWnd,MCIWNDM_OPENINTERFACE,0,(LPARAM)(LPUNKNOWN)(pUnk))
964#define MCIWndSetOwner(hWnd,hWndP) (LONG)MCIWndSM(hWnd,MCIWNDM_SETOWNER,(WPARAM)(hWndP),0)
965#define DrawDibUpdate(hdd,hdc,x,y) DrawDibDraw(hdd,hdc,x,y,0,0,NULL,NULL,0,0,0,0,DDF_UPDATE)
966static __inline DWORD
967ICGetDefaultQuality(HIC hic)
968{
969 DWORD dwICValue;
970 ICSendMessage(hic, ICM_GETDEFAULTQUALITY, (DWORD)(LPVOID)&dwICValue, sizeof(DWORD));
971 return dwICValue;
972}
973static __inline DWORD
974ICGetDefaultKeyFrameRate(HIC hic)
975{
976 DWORD dwICValue;
977 ICSendMessage(hic, ICM_GETDEFAULTKEYFRAMERATE, (DWORD)(LPVOID)&dwICValue, sizeof(DWORD));
978 return dwICValue;
979}
980static __inline LRESULT
981ICDrawSuggestFormat(HIC hic,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,INT dxSrc,INT dySrc,INT dxDst,INT dyDst,HIC hicDecomp)
982{
983 ICDRAWSUGGEST ic;
984 ic.lpbiIn = lpbiIn;
985 ic.lpbiSuggest = lpbiOut;
986 ic.dxSrc = dxSrc;
987 ic.dySrc = dySrc;
988 ic.dxDst = dxDst;
989 ic.dyDst = dyDst;
990 ic.hicDecompressor = hicDecomp;
991 return ICSendMessage(hic,ICM_DRAW_SUGGESTFORMAT,(DWORD)&ic,sizeof(ic));
992}
993static __inline LRESULT
994ICSetStatusProc(HIC hic,DWORD dwFlags,LRESULT lParam,LONG (CALLBACK *fpfnStatus)(LPARAM,UINT,LONG))
995{
996 ICSETSTATUSPROC ic;
997 ic.dwFlags = dwFlags;
998 ic.lParam = lParam;
999 ic.Status = fpfnStatus;
1000 return ICSendMessage(hic,ICM_SET_STATUS_PROC,(DWORD)&ic,sizeof(ic));
1001}
1002static __inline LRESULT
1003ICDecompressEx(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)
1004{
1005 ICDECOMPRESSEX ic;
1006 ic.dwFlags = dwFlags;
1007 ic.lpbiSrc = lpbiSrc;
1008 ic.lpSrc = lpSrc;
1009 ic.xSrc = xSrc;
1010 ic.ySrc = ySrc;
1011 ic.dxSrc = dxSrc;
1012 ic.dySrc = dySrc;
1013 ic.lpbiDst = lpbiDst;
1014 ic.lpDst = lpDst;
1015 ic.xDst = xDst;
1016 ic.yDst = yDst;
1017 ic.dxDst = dxDst;
1018 ic.dyDst = dyDst;
1019 return ICSendMessage(hic,ICM_DECOMPRESSEX,(DWORD)&ic,sizeof(ic));
1020}
1021static __inline LRESULT
1022ICDecompressExBegin(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)
1023{
1024 ICDECOMPRESSEX ic;
1025 ic.dwFlags = dwFlags;
1026 ic.lpbiSrc = lpbiSrc;
1027 ic.lpSrc = lpSrc;
1028 ic.xSrc = xSrc;
1029 ic.ySrc = ySrc;
1030 ic.dxSrc = dxSrc;
1031 ic.dySrc = dySrc;
1032 ic.lpbiDst = lpbiDst;
1033 ic.lpDst = lpDst;
1034 ic.xDst = xDst;
1035 ic.yDst = yDst;
1036 ic.dxDst = dxDst;
1037 ic.dyDst = dyDst;
1038 return ICSendMessage(hic,ICM_DECOMPRESSEX_BEGIN,(DWORD)&ic,sizeof(ic));
1039}
1040static __inline LRESULT
1041ICDecompressExQuery(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)
1042{
1043 ICDECOMPRESSEX ic;
1044 ic.dwFlags = dwFlags;
1045 ic.lpbiSrc = lpbiSrc;
1046 ic.lpSrc = lpSrc;
1047 ic.xSrc = xSrc;
1048 ic.ySrc = ySrc;
1049 ic.dxSrc = dxSrc;
1050 ic.dySrc = dySrc;
1051 ic.lpbiDst = lpbiDst;
1052 ic.lpDst = lpDst;
1053 ic.xDst = xDst;
1054 ic.yDst = yDst;
1055 ic.dxDst = dxDst;
1056 ic.dyDst = dyDst;
1057 return ICSendMessage(hic,ICM_DECOMPRESSEX_QUERY,(DWORD)&ic,sizeof(ic));
1058}
1059
1060/* AVICAP32 exports */
1061HWND VFWAPI capCreateCaptureWindowA (LPCSTR,DWORD,int,int,int,int,HWND,int);
1062HWND VFWAPI capCreateCaptureWindowW (LPCWSTR,DWORD,int,int,int,int,HWND,int);
1063BOOL VFWAPI capGetDriverDescriptionA (UINT,LPSTR,int,LPSTR,int);
1064BOOL VFWAPI capGetDriverDescriptionW (UINT,LPWSTR,int,LPWSTR,int);
1065
1066#ifdef UNICODE
1067#define AVISTREAMINFO AVISTREAMINFOW
1068#define LPAVISTREAMINFO LPAVISTREAMINFOW
1069#define PAVISTREAMINFO PAVISTREAMINFOW
1070#define AVIFILEINFO AVIFILEINFOW
1071#define PAVIFILEINFO PAVIFILEINFOW
1072#define LPAVIFILEINFO LPAVIFILEINFOW
1073#define AVIStreamInfo AVIStreamInfoW
1074#define AVIStreamOpenFromFile AVIStreamOpenFromFileW
1075#define AVIBuildFilter AVIBuildFilterW
1076#define AVISaveV AVISaveVW
1077#define EditStreamSetInfo EditStreamSetInfoW
1078#define EditStreamSetName EditStreamSetNameW
1079#define AVIFileOpen AVIFileOpenW
1080#define AVIFileInfo AVIFileInfoW
1081#define AVIFileCreateStream AVIFileCreateStreamW
1082#define GetOpenFileNamePreview GetOpenFileNamePreviewW
1083#define GetSaveFileNamePreview GetSaveFileNamePreviewW
1084#define MCIWndCreate MCIWndCreateW
1085#define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAW
1086#define MCIWNDM_SENDSTRING MCIWNDM_SENDSTRINGW
1087#define MCIWNDM_GETPOSITION MCIWNDM_GETPOSITIONW
1088#define MCIWNDM_GETMODE MCIWNDM_GETMODEW
1089#define MCIWNDM_SETTIMEFORMAT MCIWNDM_SETTIMEFORMATW
1090#define MCIWNDM_GETTIMEFORMAT MCIWNDM_GETTIMEFORMATW
1091#define MCIWNDM_GETFILENAME MCIWNDM_GETFILENAMEW
1092#define MCIWNDM_GETDEVICE MCIWNDM_GETDEVICEW
1093#define MCIWNDM_GETERROR MCIWNDM_GETERRORW
1094#define MCIWNDM_NEW MCIWNDM_NEWW
1095#define MCIWNDM_RETURNSTRING MCIWNDM_RETURNSTRINGW
1096#define MCIWNDM_OPEN MCIWNDM_OPENW
1097
1098#define capCreateCaptureWindow capCreateCaptureWindowW
1099#define capGetDriverDescription capGetDriverDescriptionW
1100
1101#else
1102#define AVISTREAMINFO AVISTREAMINFOA
1103#define LPAVISTREAMINFO LPAVISTREAMINFOA
1104#define PAVISTREAMINFO PAVISTREAMINFOA
1105#define AVIFILEINFO AVIFILEINFOA
1106#define PAVIFILEINFO PAVIFILEINFOA
1107#define LPAVIFILEINFO LPAVIFILEINFOA
1108#define AVIStreamInfo AVIStreamInfoA
1109#define AVIStreamOpenFromFile AVIStreamOpenFromFileA
1110#define AVIBuildFilter AVIBuildFilterA
1111#define AVISaveV AVISaveVA
1112#define EditStreamSetInfo EditStreamSetInfoA
1113#define EditStreamSetName EditStreamSetNameA
1114#define AVIFileOpen AVIFileOpenA
1115#define AVIFileInfo AVIFileInfoA
1116#define AVIFileCreateStream AVIFileCreateStreamA
1117#define GetOpenFileNamePreview GetOpenFileNamePreviewA
1118#define GetSaveFileNamePreview GetSaveFileNamePreviewA
1119#define MCIWndCreate MCIWndCreateA
1120#define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAA
1121#define MCIWNDM_SENDSTRING MCIWNDM_SENDSTRINGA
1122#define MCIWNDM_GETPOSITION MCIWNDM_GETPOSITIONA
1123#define MCIWNDM_GETMODE MCIWNDM_GETMODEA
1124#define MCIWNDM_SETTIMEFORMAT MCIWNDM_SETTIMEFORMATA
1125#define MCIWNDM_GETTIMEFORMAT MCIWNDM_GETTIMEFORMATA
1126#define MCIWNDM_GETFILENAME MCIWNDM_GETFILENAMEA
1127#define MCIWNDM_GETDEVICE MCIWNDM_GETDEVICEA
1128#define MCIWNDM_GETERROR MCIWNDM_GETERRORA
1129#define MCIWNDM_NEW MCIWNDM_NEWA
1130#define MCIWNDM_RETURNSTRING MCIWNDM_RETURNSTRINGA
1131#define MCIWNDM_OPEN MCIWNDM_OPENA
1132
1133#define capCreateCaptureWindow capCreateCaptureWindowA
1134#define capGetDriverDescription capGetDriverDescriptionA
1135
1136#endif
1137
1138#endif /* RC_INVOKED */
1139
1140#ifdef __cplusplus
1141}
1142#endif
1143#include <poppack.h>
1144#endif /* _VFW_H */
Note: See TracBrowser for help on using the repository browser.