4 #pragma GCC system_header
13 #if !defined (_OLE2_H) && !defined (_OBJC_NO_COM)
18 #define VFWAPIV WINAPIV
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
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
361 #define mmioFOURCC(c0,c1,c2,c3) ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<<16)|((DWORD)(BYTE)(c3)<<24))
364 #define aviTWOCC(ch0,ch1) ((WORD)(BYTE)(ch0)|((WORD)(BYTE)(ch1)<<8))
369 DECLARE_HANDLE(HDRAWDIB
);
371 typedef BOOL (CALLBACK
*AVISAVECALLBACK
)(INT
);
385 LPBITMAPINFOHEADER lpbiOutput
;
387 LPBITMAPINFOHEADER lpbiInput
;
394 LPBITMAPINFOHEADER lpbiPrev
;
399 LPBITMAPINFOHEADER lpbiOutput
;
401 LPBITMAPINFOHEADER lpbiInput
;
410 DWORD dwOverheadPerFrame
;
412 LONG (CALLBACK
*GetData
)(LPARAM
,LONG
,LPVOID
,LONG
);
413 LONG (CALLBACK
*PutData
)(LPARAM
,LONG
,LPVOID
,LONG
);
418 LONG (CALLBACK
*Status
)(LPARAM
,UINT
,LONG
);
428 WCHAR szDescription
[128];
433 LPBITMAPINFOHEADER lpbiInput
;
435 LPBITMAPINFOHEADER lpbiOutput
;
441 LPBITMAPINFOHEADER lpbiSrc
;
443 LPBITMAPINFOHEADER lpbiDst
;
456 LPBITMAPINFOHEADER lpbiIn
;
457 LPBITMAPINFOHEADER lpbiSuggest
;
479 LPBITMAPINFOHEADER lpbi
;
501 LPBITMAPINFO lpbiOut
;
511 } COMPVARS
, *PCOMPVARS
;
512 typedef struct _MainAVIHeader
514 DWORD dwMicroSecPerFrame
;
515 DWORD dwMaxBytesPerSec
;
516 DWORD dwPaddingGranularity
;
519 DWORD dwInitialFrames
;
521 DWORD dwSuggestedBufferSize
;
532 DWORD dwInitialFrames
;
537 DWORD dwSuggestedBufferSize
;
542 typedef struct _AVIINDEXENTRY
{
548 typedef struct _AVIPALCHANGE
{
552 PALETTEENTRY peNew
[1];
554 typedef struct _AVISTREAMINFOA
{
565 DWORD dwInitialFrames
;
566 DWORD dwSuggestedBufferSize
;
571 DWORD dwFormatChangeCount
;
573 } AVISTREAMINFOA
, * LPAVISTREAMINFOA
, *PAVISTREAMINFOA
;
574 typedef struct _AVISTREAMINFOW
{
585 DWORD dwInitialFrames
;
586 DWORD dwSuggestedBufferSize
;
591 DWORD dwFormatChangeCount
;
593 } AVISTREAMINFOW
, * LPAVISTREAMINFOW
, *PAVISTREAMINFOW
;
594 typedef struct _AVIFILEINFOW
{
595 DWORD dwMaxBytesPerSec
;
599 DWORD dwSuggestedBufferSize
;
606 WCHAR szFileType
[64];
607 } AVIFILEINFOW
, *LPAVIFILEINFOW
, *PAVIFILEINFOW
;
608 typedef struct _AVIFILEINFOA
{
609 DWORD dwMaxBytesPerSec
;
613 DWORD dwSuggestedBufferSize
;
621 } AVIFILEINFOA
, *LPAVIFILEINFOA
, *PAVIFILEINFOA
;
622 typedef struct _AVICOMPRESSOPTIONS
{
625 DWORD dwKeyFrameEvery
;
627 DWORD dwBytesPerSecond
;
633 DWORD dwInterleaveEvery
;
634 } AVICOMPRESSOPTIONS
, *LPAVICOMPRESSOPTIONS
,*PAVICOMPRESSOPTIONS
;
635 typedef struct _CAPDRIVERCAPS
{
638 BOOL fHasDlgVideoSource
;
639 BOOL fHasDlgVideoFormat
;
640 BOOL fHasDlgVideoDisplay
;
641 BOOL fCaptureInitialized
;
642 BOOL fDriverSuppliesPalettes
;
647 } CAPDRIVERCAPS
, *LPCAPDRIVERCAPS
;
648 typedef struct _CAPINFOCHUNK
{
652 } CAPINFOCHUNK
, *LPCAPINFOCHUNK
;
653 typedef struct _CAPSTATUS
{
660 BOOL fUsingDefaultPalette
;
663 DWORD dwCurrentVideoFrame
;
664 DWORD dwCurrentVideoFramesDropped
;
665 DWORD dwCurrentWaveSamples
;
666 DWORD dwCurrentTimeElapsedMS
;
667 HPALETTE hPalCurrent
;
670 UINT wNumVideoAllocated
;
671 UINT wNumAudioAllocated
;
672 } CAPSTATUS
, *LPCAPSTATUS
;
673 typedef struct _CAPTUREPARMS
{
674 DWORD dwRequestMicroSecPerFrame
;
675 BOOL fMakeUserHitOKToCapture
;
676 UINT wPercentDropForError
;
679 UINT wChunkGranularity
;
680 BOOL fUsingDOSMemory
;
681 UINT wNumVideoRequested
;
683 UINT wNumAudioRequested
;
685 BOOL fAbortLeftMouse
;
686 BOOL fAbortRightMouse
;
691 DWORD dwMCIStartTime
;
693 BOOL fStepCaptureAt2x
;
694 UINT wStepCaptureAverageFrames
;
695 DWORD dwAudioBufferSize
;
696 BOOL fDisableWriteCache
;
698 } CAPTUREPARMS
, *LPCAPTUREPARMS
;
700 typedef struct videohdr_tag
{
702 DWORD dwBufferLength
;
704 DWORD dwTimeCaptured
;
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
;
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
;
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
;
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
;
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
;
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 */
890 BOOL WINAPI
GetOpenFileNamePreviewA(LPOPENFILENAMEA
);
891 BOOL WINAPI
GetOpenFileNamePreviewW(LPOPENFILENAMEW
);
892 BOOL WINAPI
GetSaveFileNamePreviewA(LPOPENFILENAMEA
);
893 BOOL WINAPI
GetSaveFileNamePreviewW(LPOPENFILENAMEW
);
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)
965 #define MCIWndSM ::SendMessage
967 #define MCIWndSM SendMessage
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
)
1044 ICSendMessage(hic
, ICM_GETDEFAULTQUALITY
, (DWORD
)(LPVOID
)&dwICValue
, sizeof(DWORD
));
1047 static __inline DWORD
1048 ICGetDefaultKeyFrameRate(HIC hic
)
1051 ICSendMessage(hic
, ICM_GETDEFAULTKEYFRAMERATE
, (DWORD
)(LPVOID
)&dwICValue
, sizeof(DWORD
));
1054 static __inline LRESULT
1055 ICDrawSuggestFormat(HIC hic
,LPBITMAPINFOHEADER lpbiIn
,LPBITMAPINFOHEADER lpbiOut
,INT dxSrc
,INT dySrc
,INT dxDst
,INT dyDst
,HIC hicDecomp
)
1059 ic
.lpbiSuggest
= lpbiOut
;
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
))
1071 ic
.dwFlags
= dwFlags
;
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
)
1080 ic
.dwFlags
= dwFlags
;
1081 ic
.lpbiSrc
= lpbiSrc
;
1087 ic
.lpbiDst
= lpbiDst
;
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
)
1099 ic
.dwFlags
= dwFlags
;
1100 ic
.lpbiSrc
= lpbiSrc
;
1106 ic
.lpbiDst
= lpbiDst
;
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
)
1118 ic
.dwFlags
= dwFlags
;
1119 ic
.lpbiSrc
= lpbiSrc
;
1125 ic
.lpbiDst
= lpbiDst
;
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)
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
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
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);
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
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
1364 #endif /* RC_INVOKED */
1369 #include <poppack.h>