4 #pragma GCC system_header
13 #if !defined (_OLE2_H) && !defined (__OBJC__)
18 #define VFWAPIV WINAPIV
26 typedef struct IAVIStream
*PAVISTREAM
;
27 typedef struct IAVIFile
*PAVIFILE
;
28 typedef struct IGetFrame
*PGETFRAME
;
29 typedef struct IAVIEditStream
*PAVIEDITSTREAM
;
32 #define ICERR_DONTDRAW 1
33 #define ICERR_NEWPALETTE 2
34 #define ICERR_GOTOKEYFRAME 3
35 #define ICERR_STOPDRAWING 4
36 #define ICERR_UNSUPPORTED -1
37 #define ICERR_BADFORMAT -2
38 #define ICERR_MEMORY -3
39 #define ICERR_INTERNAL -4
40 #define ICERR_BADFLAGS -5
41 #define ICERR_BADPARAM -6
42 #define ICERR_BADSIZE -7
43 #define ICERR_BADHANDLE -8
44 #define ICERR_CANTUPDATE -9
45 #define ICERR_ABORT -10
46 #define ICERR_ERROR -100
47 #define ICERR_BADBITDEPTH -200
48 #define ICERR_BADIMAGESIZE -201
49 #define ICERR_CUSTOM -400
50 #define ICCOMPRESSFRAMES_PADDING 0x01
51 #define ICM_USER (DRV_USER+0x0000)
52 #define ICM_RESERVED_LOW (DRV_USER+0x1000)
53 #define ICM_RESERVED_HIGH (DRV_USER+0x2000)
54 #define ICM_RESERVED ICM_RESERVED_LOW
55 #define ICM_GETSTATE (ICM_RESERVED+0)
56 #define ICM_SETSTATE (ICM_RESERVED+1)
57 #define ICM_GETINFO (ICM_RESERVED+2)
58 #define ICM_CONFIGURE (ICM_RESERVED+10)
59 #define ICM_ABOUT (ICM_RESERVED+11)
60 #define ICM_GETDEFAULTQUALITY (ICM_RESERVED+30)
61 #define ICM_GETQUALITY (ICM_RESERVED+31)
62 #define ICM_SETQUALITY (ICM_RESERVED+32)
63 #define ICM_SET (ICM_RESERVED+40)
64 #define ICM_GET (ICM_RESERVED+41)
65 #define ICM_FRAMERATE mmioFOURCC('F','r','m','R')
66 #define ICM_KEYFRAMERATE mmioFOURCC('K','e','y','R')
67 #define ICM_COMPRESS_GET_FORMAT (ICM_USER+4)
68 #define ICM_COMPRESS_GET_SIZE (ICM_USER+5)
69 #define ICM_COMPRESS_QUERY (ICM_USER+6)
70 #define ICM_COMPRESS_BEGIN (ICM_USER+7)
71 #define ICM_COMPRESS (ICM_USER+8)
72 #define ICM_COMPRESS_END (ICM_USER+9)
73 #define ICM_DECOMPRESS_GET_FORMAT (ICM_USER+10)
74 #define ICM_DECOMPRESS_QUERY (ICM_USER+11)
75 #define ICM_DECOMPRESS_BEGIN (ICM_USER+12)
76 #define ICM_DECOMPRESS (ICM_USER+13)
77 #define ICM_DECOMPRESS_END (ICM_USER+14)
78 #define ICM_DECOMPRESS_SET_PALETTE (ICM_USER+29)
79 #define ICM_DECOMPRESS_GET_PALETTE (ICM_USER+30)
80 #define ICM_DRAW_QUERY (ICM_USER+31)
81 #define ICM_DRAW_BEGIN (ICM_USER+15)
82 #define ICM_DRAW_GET_PALETTE (ICM_USER+16)
83 #define ICM_DRAW_START (ICM_USER+18)
84 #define ICM_DRAW_STOP (ICM_USER+19)
85 #define ICM_DRAW_END (ICM_USER+21)
86 #define ICM_DRAW_GETTIME (ICM_USER+32)
87 #define ICM_DRAW (ICM_USER+33)
88 #define ICM_DRAW_WINDOW (ICM_USER+34)
89 #define ICM_DRAW_SETTIME (ICM_USER+35)
90 #define ICM_DRAW_REALIZE (ICM_USER+36)
91 #define ICM_DRAW_FLUSH (ICM_USER+37)
92 #define ICM_DRAW_RENDERBUFFER (ICM_USER+38)
93 #define ICM_DRAW_START_PLAY (ICM_USER+39)
94 #define ICM_DRAW_STOP_PLAY (ICM_USER+40)
95 #define ICM_DRAW_SUGGESTFORMAT (ICM_USER+50)
96 #define ICM_DRAW_CHANGEPALETTE (ICM_USER+51)
97 #define ICM_GETBUFFERSWANTED (ICM_USER+41)
98 #define ICM_GETDEFAULTKEYFRAMERATE (ICM_USER+42)
99 #define ICM_DECOMPRESSEX_BEGIN (ICM_USER+60)
100 #define ICM_DECOMPRESSEX_QUERY (ICM_USER+61)
101 #define ICM_DECOMPRESSEX (ICM_USER+62)
102 #define ICM_DECOMPRESSEX_END (ICM_USER+63)
103 #define ICM_COMPRESS_FRAMES_INFO (ICM_USER+70)
104 #define ICM_SET_STATUS_PROC (ICM_USER+72)
105 #define ICMF_CONFIGURE_QUERY 0x01
106 #define ICCOMPRESS_KEYFRAME 0x01
107 #define ICSTATUS_START 0
108 #define ICSTATUS_STATUS 1
109 #define ICSTATUS_END 2
110 #define ICSTATUS_ERROR 3
111 #define ICSTATUS_YIELD 4
112 #define ICMODE_COMPRESS 1
113 #define ICMODE_DECOMPRESS 2
114 #define ICMODE_FASTDECOMPRESS 3
115 #define ICMODE_QUERY 4
116 #define ICMODE_FASTCOMPRESS 5
117 #define ICMODE_DRAW 8
118 #define ICQUALITY_LOW 0
119 #define ICQUALITY_HIGH 10000
120 #define ICQUALITY_DEFAULT -1
121 #define VIDCF_QUALITY 0x01
122 #define VIDCF_CRUNCH 0x02
123 #define VIDCF_TEMPORAL 0x04
124 #define VIDCF_COMPRESSFRAMES 0x08
125 #define VIDCF_DRAW 0x10
126 #define VIDCF_FASTTEMPORALC 0x20
127 #define VIDCF_FASTTEMPORALD 0x80
128 #define VIDCF_QUALITYTIME 0x40
129 #define VIDCF_FASTTEMPORAL (VIDCF_FASTTEMPORALC|VIDCF_FASTTEMPORALD)
130 #define ICMF_ABOUT_QUERY 0x01
131 #define ICDECOMPRESS_HURRYUP 0x80000000
132 #define ICDECOMPRESS_UPDATE 0x40000000
133 #define ICDECOMPRESS_PREROLL 0x20000000
134 #define ICDECOMPRESS_NULLFRAME 0x10000000
135 #define ICDECOMPRESS_NOTKEYFRAME 0x8000000
136 #define ICDRAW_QUERY 0x01L
137 #define ICDRAW_FULLSCREEN 0x02L
138 #define ICDRAW_HDC 0x04L
139 #define ICDRAW_ANIMATE 0x08L
140 #define ICDRAW_CONTINUE 0x10L
141 #define ICDRAW_MEMORYDC 0x20L
142 #define ICDRAW_UPDATING 0x40L
143 #define ICDRAW_RENDER 0x80L
144 #define ICDRAW_BUFFER 0x100L
145 #define ICINSTALL_UNICODE 0x8000
146 #define ICINSTALL_FUNCTION 0x01
147 #define ICINSTALL_DRIVER 0x02
148 #define ICINSTALL_HDRV 0x04
149 #define ICINSTALL_DRIVERW 0x8002
150 #define ICDRAW_HURRYUP 0x80000000L
151 #define ICDRAW_UPDATE 0x40000000L
152 #define ICDRAW_PREROLL 0x20000000L
153 #define ICDRAW_NULLFRAME 0x10000000L
154 #define ICDRAW_NOTKEYFRAME 0x8000000L
155 #define ICMF_COMPVARS_VALID 0x01
156 #define ICMF_CHOOSE_KEYFRAME 0x01
157 #define ICMF_CHOOSE_DATARATE 0x02
158 #define ICMF_CHOOSE_PREVIEW 0x04
159 #define ICMF_CHOOSE_ALLCOMPRESSORS 0x08
160 #define ICTYPE_VIDEO mmioFOURCC('v','i','d','c')
161 #define ICTYPE_AUDIO mmioFOURCC('a','u','d','c')
162 #define formtypeAVI mmioFOURCC('A','V','I',' ')
163 #define listtypeAVIHEADER mmioFOURCC('h','d','r','l')
164 #define ckidAVIMAINHDR mmioFOURCC('a','v','i','h')
165 #define listtypeSTREAMHEADER mmioFOURCC('s','t','r','l')
166 #define ckidSTREAMHEADER mmioFOURCC('s','t','r','h')
167 #define ckidSTREAMFORMAT mmioFOURCC('s','t','r','f')
168 #define ckidSTREAMHANDLERDATA mmioFOURCC('s','t','r','d')
169 #define ckidSTREAMNAME mmioFOURCC('s','t','r','n')
170 #define listtypeAVIMOVIE mmioFOURCC('m','o','v','i')
171 #define listtypeAVIRECORD mmioFOURCC('r','e','c',' ')
172 #define ckidAVINEWINDEX mmioFOURCC('i', 'd', 'x', '1')
173 #define streamtypeANY 0UL
174 #define streamtypeVIDEO mmioFOURCC('v','i','d','s')
175 #define streamtypeAUDIO mmioFOURCC('a','u','d','s')
176 #define streamtypeMIDI mmioFOURCC('m','i','d','s')
177 #define streamtypeTEXT mmioFOURCC('t','x','t','s')
178 #define cktypeDIBbits aviTWOCC('d','b')
179 #define cktypeDIBcompressed aviTWOCC('d','c')
180 #define cktypePALchange aviTWOCC('p','c')
181 #define cktypeWAVEbytes aviTWOCC('w','b')
182 #define ckidAVIPADDING mmioFOURCC('J','U','N','K')
183 #define FromHex(n) (((n)>='A')?((n)+10-'A'):((n)-'0'))
184 #define StreamFromFOURCC(fcc) ((WORD)((FromHex(LOBYTE(LOWORD(fcc)))<<4)+(FromHex(HIBYTE(LOWORD(fcc))))))
185 #define TWOCCFromFOURCC(fcc) HIWORD(fcc)
186 #define ToHex(n) ((BYTE)(((n)>9)?((n)-10+'A'):((n)+'0')))
187 #define MAKEAVICKID(tcc, stream) MAKELONG((ToHex((stream)&0x0f)<<8)|(ToHex(((stream)&0xf0)>>4)),tcc)
188 #define AVIF_HASINDEX 0x10
189 #define AVIF_MUSTUSEINDEX 0x20
190 #define AVIF_ISINTERLEAVED 0x100
191 #define AVIF_TRUSTCKTYPE 0x800
192 #define AVIF_WASCAPTUREFILE 0x10000
193 #define AVIF_COPYRIGHTED 0x20000
194 #define AVI_HEADERSIZE 2048
195 #define AVISF_DISABLED 0x01
196 #define AVISF_VIDEO_PALCHANGES 0x10000
197 #define AVIIF_LIST 0x01
198 #define AVIIF_TWOCC 0x02
199 #define AVIIF_KEYFRAME 0x10
200 #define AVIIF_NOTIME 0x100
201 #define AVIIF_COMPUSE 0xfff0000
202 #define AVIIF_KEYFRAME 0x10
203 #define AVIGETFRAMEF_BESTDISPLAYFMT 1
204 #define AVISTREAMINFO_DISABLED 0x01
205 #define AVISTREAMINFO_FORMATCHANGES 0x10000
206 #define AVIFILEINFO_HASINDEX 0x10
207 #define AVIFILEINFO_MUSTUSEINDEX 0x20
208 #define AVIFILEINFO_ISINTERLEAVED 0x100
209 #define AVIFILEINFO_TRUSTCKTYPE 0x800
210 #define AVIFILEINFO_WASCAPTUREFILE 0x10000
211 #define AVIFILEINFO_COPYRIGHTED 0x20000
212 #define AVIFILECAPS_CANREAD 0x01
213 #define AVIFILECAPS_CANWRITE 0x02
214 #define AVIFILECAPS_ALLKEYFRAMES 0x10
215 #define AVIFILECAPS_NOCOMPRESSION 0x20
216 #define AVICOMPRESSF_INTERLEAVE 0x01
217 #define AVICOMPRESSF_DATARATE 0x02
218 #define AVICOMPRESSF_KEYFRAMES 0x04
219 #define AVICOMPRESSF_VALID 0x08
220 #define FIND_DIR 0x0000000fL
221 #define FIND_NEXT 0x00000001L
222 #define FIND_PREV 0x00000004L
223 #define FIND_FROM_START 0x00000008L
224 #define FIND_TYPE 0x000000f0L
225 #define FIND_KEY 0x00000010L
226 #define FIND_ANY 0x00000020L
227 #define FIND_FORMAT 0x00000040L
228 #define FIND_RET 0x0000f000L
229 #define FIND_POS 0x00000000L
230 #define FIND_LENGTH 0x00001000L
231 #define FIND_OFFSET 0x00002000L
232 #define FIND_SIZE 0x00003000L
233 #define FIND_INDEX 0x00004000L
235 #define MAKE_AVIERR(e) MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000+e)
236 #define AVIERR_UNSUPPORTED MAKE_AVIERR(101)
237 #define AVIERR_BADFORMAT MAKE_AVIERR(102)
238 #define AVIERR_MEMORY MAKE_AVIERR(103)
239 #define AVIERR_INTERNAL MAKE_AVIERR(104)
240 #define AVIERR_BADFLAGS MAKE_AVIERR(105)
241 #define AVIERR_BADPARAM MAKE_AVIERR(106)
242 #define AVIERR_BADSIZE MAKE_AVIERR(107)
243 #define AVIERR_BADHANDLE MAKE_AVIERR(108)
244 #define AVIERR_FILEREAD MAKE_AVIERR(109)
245 #define AVIERR_FILEWRITE MAKE_AVIERR(110)
246 #define AVIERR_FILEOPEN MAKE_AVIERR(111)
247 #define AVIERR_COMPRESSOR MAKE_AVIERR(112)
248 #define AVIERR_NOCOMPRESSOR MAKE_AVIERR(113)
249 #define AVIERR_READONLY MAKE_AVIERR(114)
250 #define AVIERR_NODATA MAKE_AVIERR(115)
251 #define AVIERR_BUFFERTOOSMALL MAKE_AVIERR(116)
252 #define AVIERR_CANTCOMPRESS MAKE_AVIERR(117)
253 #define AVIERR_USERABORT MAKE_AVIERR(198)
254 #define AVIERR_ERROR MAKE_AVIERR(199)
255 #define MCIWNDOPENF_NEW 0x0001
256 #define MCIWNDF_NOAUTOSIZEWINDOW 0x0001
257 #define MCIWNDF_NOPLAYBAR 0x0002
258 #define MCIWNDF_NOAUTOSIZEMOVIE 0x0004
259 #define MCIWNDF_NOMENU 0x0008
260 #define MCIWNDF_SHOWNAME 0x0010
261 #define MCIWNDF_SHOWPOS 0x0020
262 #define MCIWNDF_SHOWMODE 0x0040
263 #define MCIWNDF_SHOWALL 0x0070
264 #define MCIWNDF_NOTIFYMODE 0x0100
265 #define MCIWNDF_NOTIFYPOS 0x0200
266 #define MCIWNDF_NOTIFYSIZE 0x0400
267 #define MCIWNDF_NOTIFYERROR 0x1000
268 #define MCIWNDF_NOTIFYALL 0x1F00
269 #define MCIWNDF_NOTIFYANSI 0x0080
270 #define MCIWNDF_NOTIFYMEDIAA 0x0880
271 #define MCIWNDF_NOTIFYMEDIAW 0x0800
272 #define MCIWNDF_RECORD 0x2000
273 #define MCIWNDF_NOERRORDLG 0x4000
274 #define MCIWNDF_NOOPEN 0x8000
275 #define MCIWNDM_GETDEVICEID (WM_USER + 100)
276 #define MCIWNDM_GETSTART (WM_USER + 103)
277 #define MCIWNDM_GETLENGTH (WM_USER + 104)
278 #define MCIWNDM_GETEND (WM_USER + 105)
279 #define MCIWNDM_EJECT (WM_USER + 107)
280 #define MCIWNDM_SETZOOM (WM_USER + 108)
281 #define MCIWNDM_GETZOOM (WM_USER + 109)
282 #define MCIWNDM_SETVOLUME (WM_USER + 110)
283 #define MCIWNDM_GETVOLUME (WM_USER + 111)
284 #define MCIWNDM_SETSPEED (WM_USER + 112)
285 #define MCIWNDM_GETSPEED (WM_USER + 113)
286 #define MCIWNDM_SETREPEAT (WM_USER + 114)
287 #define MCIWNDM_GETREPEAT (WM_USER + 115)
288 #define MCIWNDM_REALIZE (WM_USER + 118)
289 #define MCIWNDM_VALIDATEMEDIA (WM_USER + 121)
290 #define MCIWNDM_PLAYFROM (WM_USER + 122)
291 #define MCIWNDM_PLAYTO (WM_USER + 123)
292 #define MCIWNDM_GETPALETTE (WM_USER + 126)
293 #define MCIWNDM_SETPALETTE (WM_USER + 127)
294 #define MCIWNDM_SETTIMERS (WM_USER + 129)
295 #define MCIWNDM_SETACTIVETIMER (WM_USER + 130)
296 #define MCIWNDM_SETINACTIVETIMER (WM_USER + 131)
297 #define MCIWNDM_GETACTIVETIMER (WM_USER + 132)
298 #define MCIWNDM_GETINACTIVETIMER (WM_USER + 133)
299 #define MCIWNDM_CHANGESTYLES (WM_USER + 135)
300 #define MCIWNDM_GETSTYLES (WM_USER + 136)
301 #define MCIWNDM_GETALIAS (WM_USER + 137)
302 #define MCIWNDM_PLAYREVERSE (WM_USER + 139)
303 #define MCIWNDM_GET_SOURCE (WM_USER + 140)
304 #define MCIWNDM_PUT_SOURCE (WM_USER + 141)
305 #define MCIWNDM_GET_DEST (WM_USER + 142)
306 #define MCIWNDM_PUT_DEST (WM_USER + 143)
307 #define MCIWNDM_CAN_PLAY (WM_USER + 144)
308 #define MCIWNDM_CAN_WINDOW (WM_USER + 145)
309 #define MCIWNDM_CAN_RECORD (WM_USER + 146)
310 #define MCIWNDM_CAN_SAVE (WM_USER + 147)
311 #define MCIWNDM_CAN_EJECT (WM_USER + 148)
312 #define MCIWNDM_CAN_CONFIG (WM_USER + 149)
313 #define MCIWNDM_PALETTEKICK (WM_USER + 150)
314 #define MCIWNDM_OPENINTERFACE (WM_USER + 151)
315 #define MCIWNDM_SETOWNER (WM_USER + 152)
316 #define MCIWNDM_SENDSTRINGA (WM_USER + 101)
317 #define MCIWNDM_GETPOSITIONA (WM_USER + 102)
318 #define MCIWNDM_GETMODEA (WM_USER + 106)
319 #define MCIWNDM_SETTIMEFORMATA (WM_USER + 119)
320 #define MCIWNDM_GETTIMEFORMATA (WM_USER + 120)
321 #define MCIWNDM_GETFILENAMEA (WM_USER + 124)
322 #define MCIWNDM_GETDEVICEA (WM_USER + 125)
323 #define MCIWNDM_GETERRORA (WM_USER + 128)
324 #define MCIWNDM_NEWA (WM_USER + 134)
325 #define MCIWNDM_RETURNSTRINGA (WM_USER + 138)
326 #define MCIWNDM_OPENA (WM_USER + 153)
327 #define MCIWNDM_SENDSTRINGW (WM_USER + 201)
328 #define MCIWNDM_GETPOSITIONW (WM_USER + 202)
329 #define MCIWNDM_GETMODEW (WM_USER + 206)
330 #define MCIWNDM_SETTIMEFORMATW (WM_USER + 219)
331 #define MCIWNDM_GETTIMEFORMATW (WM_USER + 220)
332 #define MCIWNDM_GETFILENAMEW (WM_USER + 224)
333 #define MCIWNDM_GETDEVICEW (WM_USER + 225)
334 #define MCIWNDM_GETERRORW (WM_USER + 228)
335 #define MCIWNDM_NEWW (WM_USER + 234)
336 #define MCIWNDM_RETURNSTRINGW (WM_USER + 238)
337 #define MCIWNDM_OPENW (WM_USER + 252)
338 #define MCIWNDM_NOTIFYMODE (WM_USER + 200)
339 #define MCIWNDM_NOTIFYPOS (WM_USER + 201)
340 #define MCIWNDM_NOTIFYSIZE (WM_USER + 202)
341 #define MCIWNDM_NOTIFYMEDIA (WM_USER + 203)
342 #define MCIWNDM_NOTIFYERROR (WM_USER + 205)
343 #define MCIWND_START -1
344 #define MCIWND_END -2
345 #define DDF_UPDATE 0x02
346 #define DDF_SAME_HDC 0x04
347 #define DDF_SAME_DRAW 0x08
348 #define DDF_DONTDRAW 0x10
349 #define DDF_ANIMATE 0x20
350 #define DDF_BUFFER 0x40
351 #define DDF_JUSTDRAWIT 0x80
352 #define DDF_FULLSCREEN 0x100
353 #define DDF_BACKGROUNDPAL 0x200
354 #define DDF_NOTKEYFRAME 0x400
355 #define DDF_HURRYUP 0x800
356 #define DDF_HALFTONE 0x1000
357 #define DDF_PREROLL DDF_DONTDRAW
358 #define DDF_SAME_DIB DDF_SAME_DRAW
359 #define DDF_SAME_SIZE DDF_SAME_DRAW
360 #define PD_CAN_DRAW_DIB 0x01
361 #define PD_CAN_STRETCHDIB 0x02
362 #define PD_STRETCHDIB_1_1_OK 0x04
363 #define PD_STRETCHDIB_1_2_OK 0x08
364 #define PD_STRETCHDIB_1_N_OK 0x10
366 #define mmioFOURCC(c0,c1,c2,c3) ((DWORD)(BYTE)(c0)|((DWORD)(BYTE)(c1)<<8)|((DWORD)(BYTE)(c2)<<16)|((DWORD)(BYTE)(c3)<<24))
369 #define aviTWOCC(ch0,ch1) ((WORD)(BYTE)(ch0)|((WORD)(BYTE)(ch1)<<8))
374 DECLARE_HANDLE(HDRAWDIB
);
376 typedef BOOL (CALLBACK
*AVISAVECALLBACK
)(INT
);
390 LPBITMAPINFOHEADER lpbiOutput
;
392 LPBITMAPINFOHEADER lpbiInput
;
399 LPBITMAPINFOHEADER lpbiPrev
;
404 LPBITMAPINFOHEADER lpbiOutput
;
406 LPBITMAPINFOHEADER lpbiInput
;
415 DWORD dwOverheadPerFrame
;
417 LONG (CALLBACK
*GetData
)(LPARAM
,LONG
,LPVOID
,LONG
);
418 LONG (CALLBACK
*PutData
)(LPARAM
,LONG
,LPVOID
,LONG
);
423 LONG (CALLBACK
*Status
)(LPARAM
,UINT
,LONG
);
433 WCHAR szDescription
[128];
438 LPBITMAPINFOHEADER lpbiInput
;
440 LPBITMAPINFOHEADER lpbiOutput
;
446 LPBITMAPINFOHEADER lpbiSrc
;
448 LPBITMAPINFOHEADER lpbiDst
;
461 LPBITMAPINFOHEADER lpbiIn
;
462 LPBITMAPINFOHEADER lpbiSuggest
;
484 LPBITMAPINFOHEADER lpbi
;
506 LPBITMAPINFO lpbiOut
;
516 } COMPVARS
, *PCOMPVARS
;
517 typedef struct _MainAVIHeader
519 DWORD dwMicroSecPerFrame
;
520 DWORD dwMaxBytesPerSec
;
521 DWORD dwPaddingGranularity
;
524 DWORD dwInitialFrames
;
526 DWORD dwSuggestedBufferSize
;
537 DWORD dwInitialFrames
;
542 DWORD dwSuggestedBufferSize
;
547 typedef struct _AVIINDEXENTRY
{
553 typedef struct _AVIPALCHANGE
{
557 PALETTEENTRY peNew
[1];
559 typedef struct _AVISTREAMINFOA
{
570 DWORD dwInitialFrames
;
571 DWORD dwSuggestedBufferSize
;
576 DWORD dwFormatChangeCount
;
578 } AVISTREAMINFOA
, * LPAVISTREAMINFOA
, *PAVISTREAMINFOA
;
579 typedef struct _AVISTREAMINFOW
{
590 DWORD dwInitialFrames
;
591 DWORD dwSuggestedBufferSize
;
596 DWORD dwFormatChangeCount
;
598 } AVISTREAMINFOW
, * LPAVISTREAMINFOW
, *PAVISTREAMINFOW
;
599 typedef struct _AVIFILEINFOW
{
600 DWORD dwMaxBytesPerSec
;
604 DWORD dwSuggestedBufferSize
;
611 WCHAR szFileType
[64];
612 } AVIFILEINFOW
, *LPAVIFILEINFOW
, *PAVIFILEINFOW
;
613 typedef struct _AVIFILEINFOA
{
614 DWORD dwMaxBytesPerSec
;
618 DWORD dwSuggestedBufferSize
;
626 } AVIFILEINFOA
, *LPAVIFILEINFOA
, *PAVIFILEINFOA
;
627 typedef struct _AVICOMPRESSOPTIONS
{
630 DWORD dwKeyFrameEvery
;
632 DWORD dwBytesPerSecond
;
638 DWORD dwInterleaveEvery
;
639 } AVICOMPRESSOPTIONS
, *LPAVICOMPRESSOPTIONS
,*PAVICOMPRESSOPTIONS
;
641 #if !defined (__OBJC__)
642 #define DEFINE_AVIGUID(name,l,w1,w2) DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46)
643 DEFINE_AVIGUID(IID_IAVIFile
,0x00020020,0,0);
644 DEFINE_AVIGUID(IID_IAVIStream
,0x00020021,0,0);
645 DEFINE_AVIGUID(IID_IAVIStreaming
,0x00020022,0,0);
646 DEFINE_AVIGUID(IID_IGetFrame
,0x00020023,0,0);
647 DEFINE_AVIGUID(IID_IAVIEditStream
,0x00020024,0,0);
648 DEFINE_AVIGUID(CLSID_AVISimpleUnMarshal
,0x00020009, 0, 0);
649 DEFINE_AVIGUID(CLSID_AVIFile
,0x00020000,0,0);
651 /*****************************************************************************
652 * IGetFrame interface
654 #define INTERFACE IGetFrame
655 DECLARE_INTERFACE_(IGetFrame
,IUnknown
)
657 /*** IUnknown methods ***/
658 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
659 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
660 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
661 /*** IGetFrame methods ***/
662 STDMETHOD_(LPVOID
,GetFrame
)(THIS_ LONG lPos
) PURE
;
663 STDMETHOD(Begin
)(THIS_ LONG lStart
, LONG lEnd
, LONG lRate
) PURE
;
664 STDMETHOD(End
)(THIS
) PURE
;
665 STDMETHOD(SetFormat
)(THIS_ LPBITMAPINFOHEADER lpbi
, LPVOID lpBits
, INT x
, INT y
, INT dx
, INT dy
) PURE
;
669 #if !defined(__cplusplus) || defined(CINTERFACE)
670 /*** IUnknown methods ***/
671 #define IGetFrame_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
672 #define IGetFrame_AddRef(p) (p)->lpVtbl->AddRef(p)
673 #define IGetFrame_Release(p) (p)->lpVtbl->Release(p)
674 /*** IGetFrame methods ***/
675 #define IGetFrame_GetFrame(p,a) (p)->lpVtbl->GetFrame(p,a)
676 #define IGetFrame_Begin(p,a,b,c) (p)->lpVtbl->Begin(p,a,b,c)
677 #define IGetFrame_End(p) (p)->lpVtbl->End(p)
678 #define IGetFrame_SetFormat(p,a,b,c,d,e,f) (p)->lpVtbl->SetFormat(p,a,b,c,d,e,f)
681 #define INTERFACE IAVIStream
682 DECLARE_INTERFACE_(IAVIStream
, IUnknown
)
684 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
685 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
686 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
687 STDMETHOD(Create
)(THIS_ LPARAM
,LPARAM
) PURE
;
688 STDMETHOD(Info
)(THIS_ AVISTREAMINFOW
*,LONG
) PURE
;
689 STDMETHOD_(LONG
,FindSample
)(THIS_ LONG
,LONG
) PURE
;
690 STDMETHOD(ReadFormat
)(THIS_ LONG
,LPVOID
,LONG
*) PURE
;
691 STDMETHOD(SetFormat
)(THIS_ LONG
,LPVOID
,LONG
) PURE
;
692 STDMETHOD(Read
)(THIS_ LONG
,LONG
,LPVOID
,LONG
,LONG
*,LONG
*) PURE
;
693 STDMETHOD(Write
)(THIS_ LONG
,LONG
,LPVOID
,LONG
,DWORD
,LONG
*,LONG
*) PURE
;
694 STDMETHOD(Delete
)(THIS_ LONG
,LONG
) PURE
;
695 STDMETHOD(ReadData
)(THIS_ DWORD
,LPVOID
,LONG
*) PURE
;
696 STDMETHOD(WriteData
)(THIS_ DWORD
,LPVOID
,LONG
) PURE
;
697 STDMETHOD(SetInfo
)(THIS_ AVISTREAMINFOW
*,LONG
) PURE
;
699 typedef IAVIStream
*PAVISTREAM
;
701 /*****************************************************************************
702 * IAVIStreaming interface
704 #define INTERFACE IAVIStreaming
705 DECLARE_INTERFACE_(IAVIStreaming
,IUnknown
)
707 /*** IUnknown methods ***/
708 STDMETHOD_(HRESULT
,QueryInterface
)(THIS_ REFIID riid
, void** ppvObject
) PURE
;
709 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
710 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
711 /*** IAVIStreaming methods ***/
712 STDMETHOD(Begin
)(IAVIStreaming
*iface
,LONG lStart
,LONG lEnd
,LONG lRate
) PURE
;
713 STDMETHOD(End
)(IAVIStreaming
*iface
) PURE
;
717 #if !defined(__cplusplus) || defined(CINTERFACE)
718 /*** IUnknown methods ***/
719 #define IAVIStreaming_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
720 #define IAVIStreaming_AddRef(p) (p)->lpVtbl->AddRef(p)
721 #define IAVIStreaming_Release(p) (p)->lpVtbl->Release(p)
722 /*** IAVIStreaming methods ***/
723 #define IAVIStreaming_Begin(p,a,b,c) (p)->lpVtbl->Begin(p,a,b,c)
724 #define IAVIStreaming_End(p) (p)->lpVtbl->End(p)
727 #define INTERFACE IAVIEditStream
728 DECLARE_INTERFACE_(IAVIEditStream
, IUnknown
)
730 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
731 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
732 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
733 STDMETHOD(Cut
)(THIS_ LONG
*,LONG
*,PAVISTREAM
*) PURE
;
734 STDMETHOD(Copy
)(THIS_ LONG
*,LONG
*,PAVISTREAM
*) PURE
;
735 STDMETHOD(Paste
)(THIS_ LONG
*,LONG
*,PAVISTREAM
,LONG
,LONG
) PURE
;
736 STDMETHOD(Clone
)(THIS_ PAVISTREAM
*) PURE
;
737 STDMETHOD(SetInfo
)(THIS_ LPAVISTREAMINFOW
,LONG
) PURE
;
739 typedef IAVIEditStream
*PAVIEDITSTREAM
;
741 #define INTERFACE IAVIFile
742 DECLARE_INTERFACE_(IAVIFile
, IUnknown
)
744 STDMETHOD(QueryInterface
)(THIS_ REFIID
,PVOID
*) PURE
;
745 STDMETHOD_(ULONG
,AddRef
)(THIS
) PURE
;
746 STDMETHOD_(ULONG
,Release
)(THIS
) PURE
;
747 STDMETHOD(Info
)(THIS_ AVIFILEINFOW
*,LONG
) PURE
;
748 STDMETHOD(GetStream
)(THIS_ PAVISTREAM
*,DWORD
,LONG
) PURE
;
749 STDMETHOD(CreateStream
)(THIS_ PAVISTREAM
*,AVISTREAMINFOW
*) PURE
;
750 STDMETHOD(WriteData
)(THIS_ DWORD
,LPVOID
,LONG
) PURE
;
751 STDMETHOD(ReadData
)(THIS_ DWORD
,LPVOID
,LONG
*) PURE
;
752 STDMETHOD(EndRecord
)(THIS
) PURE
;
753 STDMETHOD(DeleteStream
)(THIS_ DWORD
,LONG
) PURE
;
756 typedef IAVIFile
*PAVIFILE
;
758 #if !defined(__cplusplus) || defined(CINTERFACE)
759 /*** IUnknown methods ***/
760 #define IAVIFile_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
761 #define IAVIFile_AddRef(p) (p)->lpVtbl->AddRef(p)
762 #define IAVIFile_Release(p) (p)->lpVtbl->Release(p)
763 /*** IAVIFile methods ***/
764 #define IAVIFile_Info(p,a,b) (p)->lpVtbl->Info(p,a,b)
765 #define IAVIFile_GetStream(p,a,b,c) (p)->lpVtbl->GetStream(p,a,b,c)
766 #define IAVIFile_CreateStream(p,a,b) (p)->lpVtbl->CreateStream(p,a,b)
767 #define IAVIFile_WriteData(p,a,b,c) (p)->lpVtbl->WriteData(p,a,b,c)
768 #define IAVIFile_ReadData(p,a,b,c) (p)->lpVtbl->ReadData(p,a,b,c)
769 #define IAVIFile_EndRecord(p) (p)->lpVtbl->EndRecord(p)
770 #define IAVIFile_DeleteStream(p,a,b) (p)->lpVtbl->DeleteStream(p,a,b)
773 #if !defined(__cplusplus) || defined(CINTERFACE)
774 /*** IUnknown methods ***/
775 #define IAVIEditStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
776 #define IAVIEditStream_AddRef(p) (p)->lpVtbl->AddRef(p)
777 #define IAVIEditStream_Release(p) (p)->lpVtbl->Release(p)
778 /*** IAVIEditStream methods ***/
779 #define IAVIEditStream_Cut(p,a,b,c) (p)->lpVtbl->Cut(p,a,b,c)
780 #define IAVIEditStream_Copy(p,a,b,c) (p)->lpVtbl->Copy(p,a,b,c)
781 #define IAVIEditStream_Paste(p,a,b,c,d,e) (p)->lpVtbl->Paste(p,a,b,c,d,e)
782 #define IAVIEditStream_Clone(p,a) (p)->lpVtbl->Clone(p,a)
783 #define IAVIEditStream_SetInfo(p,a,b) (p)->lpVtbl->SetInfo(p,a,b)
786 #if !defined(__cplusplus) || defined(CINTERFACE)
787 /*** IUnknown methods ***/
788 #define IAVIStream_QueryInterface(p,a,b) (p)->lpVtbl->QueryInterface(p,a,b)
789 #define IAVIStream_AddRef(p) (p)->lpVtbl->AddRef(p)
790 #define IAVIStream_Release(p) (p)->lpVtbl->Release(p)
791 /*** IAVIStream methods ***/
792 #define IAVIStream_Create(p,a,b) (p)->lpVtbl->Create(p,a,b)
793 #define IAVIStream_Info(p,a,b) (p)->lpVtbl->Info(p,a,b)
794 #define IAVIStream_FindSample(p,a,b) (p)->lpVtbl->FindSample(p,a,b)
795 #define IAVIStream_ReadFormat(p,a,b,c) (p)->lpVtbl->ReadFormat(p,a,b,c)
796 #define IAVIStream_SetFormat(p,a,b,c) (p)->lpVtbl->SetFormat(p,a,b,c)
797 #define IAVIStream_Read(p,a,b,c,d,e,f) (p)->lpVtbl->Read(p,a,b,c,d,e,f)
798 #define IAVIStream_Write(p,a,b,c,d,e,f,g) (p)->lpVtbl->Write(p,a,b,c,d,e,f,g)
799 #define IAVIStream_Delete(p,a,b) (p)->lpVtbl->Delete(p,a,b)
800 #define IAVIStream_ReadData(p,a,b,c) (p)->lpVtbl->ReadData(p,a,b,c)
801 #define IAVIStream_WriteData(p,a,b,c) (p)->lpVtbl->WriteData(p,a,b,c)
802 #define IAVIStream_SetInfo(p,a,b) (p)->lpVtbl->SetInfo(p,a,b)
805 #define AVISTREAMREAD_CONVENIENT (-1L)
807 #endif /* !defined (__OBJC__) */
809 DWORD VFWAPI
VideoForWindowsVersion(VOID
);
810 LONG VFWAPI
InitVFW(VOID
);
811 LONG VFWAPI
TermVFW(VOID
);
812 DWORD VFWAPIV
ICCompress(HIC
,DWORD
,LPBITMAPINFOHEADER
,LPVOID
,LPBITMAPINFOHEADER
,LPVOID
,LPDWORD
,LPDWORD
,LONG
,DWORD
,DWORD
,LPBITMAPINFOHEADER
,LPVOID
);
813 DWORD VFWAPIV
ICDecompress(HIC
,DWORD
,LPBITMAPINFOHEADER
,LPVOID
,LPBITMAPINFOHEADER
,LPVOID
);
814 LRESULT VFWAPI
ICSendMessage(HIC
,UINT
,DWORD
,DWORD
);
815 HANDLE VFWAPI
ICImageCompress(HIC
,UINT
,LPBITMAPINFO
,LPVOID
,LPBITMAPINFO
,LONG
,LONG
*);
816 HANDLE VFWAPI
ICImageDecompress(HIC
,UINT
,LPBITMAPINFO
,LPVOID
,LPBITMAPINFO
);
817 BOOL VFWAPI
ICInfo(DWORD
,DWORD
,ICINFO
*);
818 BOOL VFWAPI
ICInstall(DWORD
,DWORD
,LPARAM
,LPSTR
,UINT
);
819 BOOL VFWAPI
ICRemove(DWORD
,DWORD
,UINT
);
820 LRESULT VFWAPI
ICGetInfo(HIC
,ICINFO
*,DWORD
);
821 HIC VFWAPI
ICOpen(DWORD
,DWORD
,UINT
);
822 HIC VFWAPI
ICOpenFunction(DWORD
,DWORD
,UINT
,FARPROC
);
823 LRESULT VFWAPI
ICClose(HIC hic
);
824 HIC VFWAPI
ICLocate(DWORD
,DWORD
,LPBITMAPINFOHEADER
,LPBITMAPINFOHEADER
,WORD
);
825 HIC VFWAPI
ICGetDisplayFormat(HIC
,LPBITMAPINFOHEADER
,LPBITMAPINFOHEADER
,INT
,INT
,INT
);
826 DWORD VFWAPIV
ICDrawBegin(HIC
,DWORD
,HPALETTE
,HWND
,HDC
,INT
,INT
,INT
,INT
,LPBITMAPINFOHEADER
,INT
,INT
,INT
,INT
,DWORD
,DWORD
);
827 DWORD VFWAPIV
ICDraw(HIC
,DWORD
,LPVOID
,LPVOID
,DWORD
,LONG
);
828 BOOL VFWAPI
ICCompressorChoose(HWND
,UINT
,LPVOID
,LPVOID
,PCOMPVARS
,LPSTR
);
829 BOOL VFWAPI
ICSeqCompressFrameStart(PCOMPVARS
,LPBITMAPINFO
);
830 void VFWAPI
ICSeqCompressFrameEnd(PCOMPVARS
);
831 LPVOID VFWAPI
ICSeqCompressFrame(PCOMPVARS
,UINT
,LPVOID
,BOOL
*,LONG
*);
832 void VFWAPI
ICCompressorFree(PCOMPVARS
);
833 #if !defined (__OBJC__)
834 ULONG WINAPI
AVIStreamAddRef(PAVISTREAM
);
835 ULONG WINAPI
AVIStreamRelease(PAVISTREAM
);
836 HRESULT WINAPI
AVIStreamCreate(PAVISTREAM
*,LONG
,LONG
,CLSID
*);
837 HRESULT WINAPI
AVIStreamInfoA(PAVISTREAM
,AVISTREAMINFOA
*,LONG
);
838 HRESULT WINAPI
AVIStreamInfoW(PAVISTREAM
,AVISTREAMINFOW
*,LONG
);
839 HRESULT WINAPI
AVIStreamFindSample(PAVISTREAM
,LONG
,DWORD
);
840 HRESULT WINAPI
AVIStreamReadFormat(PAVISTREAM
,LONG
,LPVOID
,LONG
*);
841 HRESULT WINAPI
AVIStreamSetFormat(PAVISTREAM
,LONG
,LPVOID
,LONG
);
842 HRESULT WINAPI
AVIStreamRead(PAVISTREAM
,LONG
,LONG
,LPVOID
,LONG
,LONG
*,LONG
*);
843 HRESULT WINAPI
AVIStreamWrite(PAVISTREAM
,LONG
,LONG
,LPVOID
,LONG
,DWORD
,LONG
*,LONG
*);
844 HRESULT WINAPI
AVIStreamReadData(PAVISTREAM
,DWORD
,LPVOID
,LONG
*);
845 HRESULT WINAPI
AVIStreamWriteData(PAVISTREAM
,DWORD
,LPVOID
,LONG
);
846 PGETFRAME WINAPI
AVIStreamGetFrameOpen(PAVISTREAM pavi
,LPBITMAPINFOHEADER lpbiWanted
);
847 LPVOID WINAPI
AVIStreamGetFrame(PGETFRAME
,LONG
);
848 HRESULT WINAPI
AVIStreamGetFrameClose(PGETFRAME
);
849 HRESULT WINAPI
AVIMakeCompressedStream(PAVISTREAM
*,PAVISTREAM
,AVICOMPRESSOPTIONS
*,CLSID
*);
850 HRESULT WINAPI
AVIMakeFileFromStreams(PAVIFILE
*,INT
,PAVISTREAM
*);
851 HRESULT WINAPI
AVIStreamOpenFromFileA(PAVISTREAM
*,LPCSTR
,DWORD
,LONG
,UINT
,CLSID
*);
852 HRESULT WINAPI
AVIStreamOpenFromFileW(PAVISTREAM
*,LPCWSTR
,DWORD
,LONG
,UINT
,CLSID
*);
853 HRESULT WINAPI
AVIBuildFilterA(LPSTR
,LONG
,BOOL
);
854 HRESULT WINAPI
AVIBuildFilterW(LPWSTR
,LONG
,BOOL
);
855 BOOL WINAPI
AVISaveOptions(HWND
,UINT
,INT
,PAVISTREAM
*,LPAVICOMPRESSOPTIONS
*);
856 HRESULT WINAPI
AVISaveOptionsFree(INT
,LPAVICOMPRESSOPTIONS
*);
857 HRESULT WINAPI
AVISaveVA(LPCSTR
,CLSID
*,AVISAVECALLBACK
,INT
,PAVISTREAM
*,LPAVICOMPRESSOPTIONS
*);
858 HRESULT WINAPI
AVISaveVW(LPCWSTR
,CLSID
*,AVISAVECALLBACK
,INT
,PAVISTREAM
*,LPAVICOMPRESSOPTIONS
*);
859 LONG WINAPI
AVIStreamStart(PAVISTREAM
);
860 LONG WINAPI
AVIStreamLength(PAVISTREAM
);
861 LONG WINAPI
AVIStreamSampleToTime(PAVISTREAM
,LONG
);
862 LONG WINAPI
AVIStreamTimeToSample(PAVISTREAM
,LONG
);
863 HRESULT WINAPI
CreateEditableStream(PAVISTREAM
*,PAVISTREAM
);
864 HRESULT WINAPI
EditStreamClone(PAVISTREAM
,PAVISTREAM
*);
865 HRESULT WINAPI
EditStreamCopy(PAVISTREAM
,LONG
*,LONG
*,PAVISTREAM
*);
866 HRESULT WINAPI
EditStreamCut(PAVISTREAM
,LONG
*,LONG
*,PAVISTREAM
*);
867 HRESULT WINAPI
EditStreamPaste(PAVISTREAM
,LONG
*,LONG
*,PAVISTREAM
,LONG
,LONG
);
868 HRESULT WINAPI
EditStreamSetInfoA(PAVISTREAM
,LPAVISTREAMINFOA
,LONG
);
869 HRESULT WINAPI
EditStreamSetInfoW(PAVISTREAM
,LPAVISTREAMINFOW
,LONG
);
870 HRESULT WINAPI
EditStreamSetNameA(PAVISTREAM
,LPCSTR
);
871 HRESULT WINAPI
EditStreamSetNameW(PAVISTREAM
,LPCWSTR
);
872 HRESULT WINAPI
CreateEditableStream(PAVISTREAM
*,PAVISTREAM
);
873 HRESULT WINAPI
EditStreamClone(PAVISTREAM
,PAVISTREAM
*);
874 HRESULT WINAPI
EditStreamCopy(PAVISTREAM
,LONG
*,LONG
*,PAVISTREAM
*);
875 HRESULT WINAPI
EditStreamCut(PAVISTREAM
,LONG
*,LONG
*,PAVISTREAM
*);
876 HRESULT WINAPI
EditStreamPaste(PAVISTREAM
,LONG
*,LONG
*,PAVISTREAM
,LONG
,LONG
);
877 HRESULT WINAPI
EditStreamSetInfoA(PAVISTREAM
,LPAVISTREAMINFOA
,LONG
);
878 HRESULT WINAPI
EditStreamSetInfoW(PAVISTREAM
,LPAVISTREAMINFOW
,LONG
);
879 HRESULT WINAPI
EditStreamSetNameA(PAVISTREAM
,LPCSTR
);
880 HRESULT WINAPI
EditStreamSetNameW(PAVISTREAM
,LPCWSTR
);
881 VOID WINAPI
AVIFileInit(void);
882 VOID WINAPI
AVIFileExit(void);
883 HRESULT WINAPI
AVIFileOpenA(PAVIFILE
*,LPCSTR
,UINT
,LPCLSID
);
884 HRESULT WINAPI
AVIFileOpenW(PAVIFILE
*,LPCWSTR
,UINT
,LPCLSID
);
885 ULONG WINAPI
AVIFileAddRef(PAVIFILE
);
886 ULONG WINAPI
AVIFileRelease(PAVIFILE
);
887 HRESULT WINAPI
AVIFileInfoA(PAVIFILE
,PAVIFILEINFOA
,LONG
);
888 HRESULT WINAPI
AVIFileInfoW(PAVIFILE
,PAVIFILEINFOW
,LONG
);
889 HRESULT WINAPI
AVIFileGetStream(PAVIFILE
,PAVISTREAM
*,DWORD
,LONG
);
890 HRESULT WINAPI
AVIFileCreateStreamA(PAVIFILE
,PAVISTREAM
*,AVISTREAMINFOA
*);
891 HRESULT WINAPI
AVIFileCreateStreamW(PAVIFILE
,PAVISTREAM
*,AVISTREAMINFOW
*);
892 HRESULT WINAPI
AVIFileWriteData(PAVIFILE
,DWORD
,LPVOID
,LONG
);
893 HRESULT WINAPI
AVIFileReadData(PAVIFILE
,DWORD
,LPVOID
,LPLONG
);
894 HRESULT WINAPI
AVIFileEndRecord(PAVIFILE
);
895 HRESULT WINAPI
AVIClearClipboard(VOID
);
896 HRESULT WINAPI
AVIGetFromClipboard(PAVIFILE
*);
897 HRESULT WINAPI
AVIPutFileOnClipboard(PAVIFILE
);
898 #endif /* __OBJC__ */
900 BOOL WINAPI
GetOpenFileNamePreviewA(LPOPENFILENAMEA
);
901 BOOL WINAPI
GetOpenFileNamePreviewW(LPOPENFILENAMEW
);
902 BOOL WINAPI
GetSaveFileNamePreviewA(LPOPENFILENAMEA
);
903 BOOL WINAPI
GetSaveFileNamePreviewW(LPOPENFILENAMEW
);
905 HWND VFWAPIV
MCIWndCreateA(HWND
,HINSTANCE
,DWORD
,LPCSTR
);
906 HWND VFWAPIV
MCIWndCreateW(HWND
,HINSTANCE
,DWORD
,LPCWSTR
);
907 HDRAWDIB VFWAPI
DrawDibOpen(VOID
);
908 UINT VFWAPI
DrawDibRealize(HDRAWDIB
,HDC
,BOOL
);
909 BOOL VFWAPI
DrawDibBegin(HDRAWDIB
,HDC
,INT
,INT
,LPBITMAPINFOHEADER
,INT
,INT
,UINT
);
910 BOOL VFWAPI
DrawDibDraw(HDRAWDIB
,HDC
,INT
,INT
,INT
,INT
,LPBITMAPINFOHEADER
,LPVOID
,INT
,INT
,INT
,INT
,UINT
);
911 BOOL VFWAPI
DrawDibSetPalette(HDRAWDIB
,HPALETTE
);
912 HPALETTE VFWAPI
DrawDibGetPalette(HDRAWDIB
);
913 BOOL VFWAPI
DrawDibChangePalette(HDRAWDIB
,int,int,LPPALETTEENTRY
);
914 LPVOID VFWAPI
DrawDibGetBuffer(HDRAWDIB
,LPBITMAPINFOHEADER
,DWORD
,DWORD
);
915 BOOL VFWAPI
DrawDibStart(HDRAWDIB
,DWORD
);
916 BOOL VFWAPI
DrawDibStop(HDRAWDIB
);
917 BOOL VFWAPI
DrawDibEnd(HDRAWDIB
);
918 BOOL VFWAPI
DrawDibClose(HDRAWDIB
);
919 DWORD VFWAPI
DrawDibProfileDisplay(LPBITMAPINFOHEADER
);
921 #define ICCompressGetFormat(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_FORMAT,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
922 #define ICCompressGetFormatSize(hic,lpbi) ICCompressGetFormat(hic,lpbi,NULL)
923 #define ICCompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_BEGIN,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
924 #define ICCompressGetSize(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_SIZE,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
925 #define ICCompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_QUERY,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
926 #define ICCompressEnd(hic) ICSendMessage(hic,ICM_COMPRESS_END,0,0)
927 #define ICQueryAbout(hic) (ICSendMessage(hic,ICM_ABOUT,(DWORD)-1,ICMF_ABOUT_QUERY)==ICERR_OK)
928 #define ICAbout(hic,hwnd) ICSendMessage(hic,ICM_ABOUT,(DWORD)(hwnd),0)
929 #define ICQueryConfigure(hic) (ICSendMessage(hic,ICM_CONFIGURE,(DWORD)-1,ICMF_CONFIGURE_QUERY)==ICERR_OK)
930 #define ICConfigure(hic,hwnd) ICSendMessage(hic,ICM_CONFIGURE,(DWORD)(hwnd),0)
931 #define ICDecompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_BEGIN,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
932 #define ICDecompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_QUERY,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
933 #define ICDecompressGetFormat(hic,lpbiInput,lpbiOutput) (LONG)ICSendMessage(hic,ICM_DECOMPRESS_GET_FORMAT,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
934 #define ICDecompressGetFormatSize(hic,lpbi) ICDecompressGetFormat(hic, lpbi, NULL)
935 #define ICDecompressGetPalette(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_GET_PALETTE,(DWORD)(lpbiInput),(DWORD)(lpbiOutput))
936 #define ICDecompressSetPalette(hic,lpbiPalette) ICSendMessage(hic,ICM_DECOMPRESS_SET_PALETTE,(DWORD)(lpbiPalette),0)
937 #define ICDecompressEnd(hic) ICSendMessage(hic,ICM_DECOMPRESS_END,0,0)
938 #define ICDecompressExEnd(hic) ICSendMessage(hic,ICM_DECOMPRESSEX_END,0,0)
939 #define ICDecompressOpen(fccType,fccHandler,lpbiIn,lpbiOut) ICLocate(fccType,fccHandler,lpbiIn,lpbiOut,ICMODE_DECOMPRESS)
940 #define ICDrawOpen(fccType,fccHandler,lpbiIn) ICLocate(fccType,fccHandler,lpbiIn,NULL,ICMODE_DRAW)
941 #define ICGetState(hic,pv,cb) ICSendMessage(hic,ICM_GETSTATE,(DWORD)(pv),(DWORD)(cb))
942 #define ICSetState(hic,pv,cb) ICSendMessage(hic,ICM_SETSTATE,(DWORD)(pv),(DWORD)(cb))
943 #define ICGetStateSize(hic) ICGetState(hic,NULL,0)
944 #define ICDrawWindow(hic,prc) ICSendMessage(hic,ICM_DRAW_WINDOW,(DWORD)(prc),sizeof(RECT))
945 #define ICDrawQuery(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_QUERY,(DWORD)(lpbiInput),0)
946 #define ICDrawChangePalette(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_CHANGEPALETTE,(DWORD)(lpbiInput),0)
947 #define ICGetBuffersWanted(hic,lpdwBuffers) ICSendMessage(hic,ICM_GETBUFFERSWANTED,(DWORD)(lpdwBuffers),0)
948 #define ICDrawEnd(hic) ICSendMessage(hic,ICM_DRAW_END,0,0)
949 #define ICDrawStart(hic) ICSendMessage(hic,ICM_DRAW_START,0,0)
950 #define ICDrawStartPlay(hic,lFrom,lTo) ICSendMessage(hic,ICM_DRAW_START_PLAY,(DWORD)(lFrom),(DWORD)(lTo))
951 #define ICDrawStop(hic) ICSendMessage(hic,ICM_DRAW_STOP,0,0)
952 #define ICDrawStopPlay(hic) ICSendMessage(hic,ICM_DRAW_STOP_PLAY,0,0)
953 #define ICDrawGetTime(hic,lplTime) ICSendMessage(hic,ICM_DRAW_GETTIME,(DWORD)(lplTime),0)
954 #define ICDrawSetTime(hic,lTime) ICSendMessage(hic,ICM_DRAW_SETTIME,(DWORD)lTime,0)
955 #define ICDrawRealize(hic,hdc,fBackground) ICSendMessage(hic,ICM_DRAW_REALIZE,(DWORD)(hdc),(DWORD)(fBackground))
956 #define ICDrawFlush(hic) ICSendMessage(hic,ICM_DRAW_FLUSH,0,0)
957 #define ICDrawRenderBuffer(hic) ICSendMessage(hic,ICM_DRAW_RENDERBUFFER,0,0)
958 #define AVIFileClose(pavi) AVIFileRelease(pavi)
959 #define AVIStreamClose(pavi) AVIStreamRelease(pavi);
960 #define AVIStreamEnd(pavi) (AVIStreamStart(pavi)+AVIStreamLength(pavi))
961 #define AVIStreamEndTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamEnd(pavi))
962 #define AVIStreamFormatSize(pavi,lPos,plSize) AVIStreamReadFormat(pavi,lPos,NULL,plSize)
963 #define AVIStreamLengthTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamLength(pavi))
964 #define AVIStreamSampleSize(pavi,pos,psize) AVIStreamRead(pavi,pos,1,NULL,0,psize,NULL)
965 #define AVIStreamSampleToSample(pavi1,pavi2,samp2) AVIStreamTimeToSample(pavi1,AVIStreamSampleToTime(pavi2,samp2))
966 #define AVIStreamStartTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamStart(pavi))
967 #define AVIStreamNextSample(pavi,pos) AVIStreamFindSample(pavi,pos+1,FIND_NEXT|FIND_ANY)
968 #define AVIStreamPrevSample(pavi,pos) AVIStreamFindSample(pavi,pos-1,FIND_PREV|FIND_ANY)
969 #define AVIStreamNearestSample(pavi, pos) AVIStreamFindSample(pavi,pos,FIND_PREV|FIND_ANY)
970 #define AVStreamNextKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos+1,FIND_NEXT|FIND_KEY)
971 #define AVStreamPrevKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos-1,FIND_NEXT|FIND_KEY)
972 #define AVIStreamNearestKeyFrame(pavi,pos) AVIStreamFindSample(pavi,pos,FIND_PREV|FIND_KEY)
973 #define AVIStreamIsKeyFrame(pavi, pos) (AVIStreamNearestKeyFrame(pavi,pos) == pos)
975 #define MCIWndSM ::SendMessage
977 #define MCIWndSM SendMessage
979 #define MCIWndCanPlay(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_PLAY,0,0)
980 #define MCIWndCanRecord(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_RECORD,0,0)
981 #define MCIWndCanSave(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_SAVE,0,0)
982 #define MCIWndCanWindow(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_WINDOW,0,0)
983 #define MCIWndCanEject(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_EJECT,0,0)
984 #define MCIWndCanConfig(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_CAN_CONFIG,0,0)
985 #define MCIWndPaletteKick(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_PALETTEKICK,0,0)
986 #define MCIWndSave(hWnd,szFile) (LONG)MCIWndSM(hWnd,MCI_SAVE,0,(LPARAM)(LPVOID)(szFile))
987 #define MCIWndSaveDialog(hWnd) MCIWndSave(hWnd,-1)
988 #define MCIWndNew(hWnd,lp) (LONG)MCIWndSM(hWnd,MCIWNDM_NEW,0,(LPARAM)(LPVOID)(lp))
989 #define MCIWndRecord(hWnd) (LONG)MCIWndSM(hWnd,MCI_RECORD,0,0)
990 #define MCIWndOpen(hWnd,sz,f) (LONG)MCIWndSM(hWnd,MCIWNDM_OPEN,(WPARAM)(UINT)(f),(LPARAM)(LPVOID)(sz))
991 #define MCIWndOpenDialog(hWnd) MCIWndOpen(hWnd,-1,0)
992 #define MCIWndClose(hWnd) (LONG)MCIWndSM(hWnd,MCI_CLOSE,0,0)
993 #define MCIWndPlay(hWnd) (LONG)MCIWndSM(hWnd,MCI_PLAY,0,0)
994 #define MCIWndStop(hWnd) (LONG)MCIWndSM(hWnd,MCI_STOP,0,0)
995 #define MCIWndPause(hWnd) (LONG)MCIWndSM(hWnd,MCI_PAUSE,0,0)
996 #define MCIWndResume(hWnd) (LONG)MCIWndSM(hWnd,MCI_RESUME,0,0)
997 #define MCIWndSeek(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCI_SEEK,0,(LPARAM)(LONG)(lPos))
998 #define MCIWndEject(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_EJECT,0,0)
999 #define MCIWndHome(hWnd) MCIWndSeek(hWnd,MCIWND_START)
1000 #define MCIWndEnd(hWnd) MCIWndSeek(hWnd,MCIWND_END)
1001 #define MCIWndGetSource(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_GET_SOURCE,0,(LPARAM)(LPRECT)(prc))
1002 #define MCIWndPutSource(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_PUT_SOURCE,0,(LPARAM)(LPRECT)(prc))
1003 #define MCIWndGetDest(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_GET_DEST,0,(LPARAM)(LPRECT)(prc))
1004 #define MCIWndPutDest(hWnd,prc) (LONG)MCIWndSM(hWnd,MCIWNDM_PUT_DEST,0,(LPARAM)(LPRECT)(prc))
1005 #define MCIWndPlayReverse(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYREVERSE,0,0)
1006 #define MCIWndPlayFrom(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYFROM,0,(LPARAM)(LONG)(lPos))
1007 #define MCIWndPlayTo(hWnd,lPos) (LONG)MCIWndSM(hWnd,MCIWNDM_PLAYTO, 0,(LPARAM)(LONG)(lPos))
1008 #define MCIWndPlayFromTo(hWnd,lStart,lEnd) (MCIWndSeek(hWnd,lStart),MCIWndPlayTo(hWnd,lEnd))
1009 #define MCIWndGetDeviceID(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETDEVICEID,0,0)
1010 #define MCIWndGetAlias(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETALIAS,0,0)
1011 #define MCIWndGetMode(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETMODE,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
1012 #define MCIWndGetPosition(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETPOSITION,0,0)
1013 #define MCIWndGetPositionString(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETPOSITION,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
1014 #define MCIWndGetStart(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETSTART,0,0)
1015 #define MCIWndGetLength(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETLENGTH,0,0)
1016 #define MCIWndGetEnd(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETEND,0,0)
1017 #define MCIWndStep(hWnd,n) (LONG)MCIWndSM(hWnd,MCI_STEP,0,(LPARAM)(long)(n))
1018 #define MCIWndDestroy(hWnd) (VOID)MCIWndSM(hWnd,WM_CLOSE,0,0)
1019 #define MCIWndSetZoom(hWnd,iZoom) (VOID)MCIWndSM(hWnd,MCIWNDM_SETZOOM,0,(LPARAM)(UINT)(iZoom))
1020 #define MCIWndGetZoom(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETZOOM,0,0)
1021 #define MCIWndSetVolume(hWnd,iVol) (LONG)MCIWndSM(hWnd,MCIWNDM_SETVOLUME,0,(LPARAM)(UINT)(iVol))
1022 #define MCIWndGetVolume(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETVOLUME,0,0)
1023 #define MCIWndSetSpeed(hWnd,iSpeed) (LONG)MCIWndSM(hWnd,MCIWNDM_SETSPEED,0,(LPARAM)(UINT)(iSpeed))
1024 #define MCIWndGetSpeed(hWnd) (LONG)MCIWndSM(hWnd,MCIWNDM_GETSPEED,0,0)
1025 #define MCIWndSetTimeFormat(hWnd,lp) (LONG)MCIWndSM(hWnd,MCIWNDM_SETTIMEFORMAT,0,(LPARAM)(LPTSTR)(lp))
1026 #define MCIWndGetTimeFormat(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETTIMEFORMAT,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp))
1027 #define MCIWndValidateMedia(hWnd) (VOID)MCIWndSM(hWnd,MCIWNDM_VALIDATEMEDIA,0,0)
1028 #define MCIWndSetRepeat(hWnd,f) (void)MCIWndSM(hWnd,MCIWNDM_SETREPEAT,0,(LPARAM)(BOOL)(f))
1029 #define MCIWndGetRepeat(hWnd) (BOOL)MCIWndSM(hWnd,MCIWNDM_GETREPEAT,0,0)
1030 #define MCIWndUseFrames(hWnd) MCIWndSetTimeFormat(hWnd,TEXT("frames"))
1031 #define MCIWndUseTime(hWnd) MCIWndSetTimeFormat(hWnd,TEXT("ms"))
1032 #define MCIWndSetActiveTimer(hWnd,active) (VOID)MCIWndSM(hWnd,MCIWNDM_SETACTIVETIMER,(WPARAM)(UINT)(active),0L)
1033 #define MCIWndSetInactiveTimer(hWnd,inactive) (VOID)MCIWndSM(hWnd,MCIWNDM_SETINACTIVETIMER,(WPARAM)(UINT)(inactive),0L)
1034 #define MCIWndSetTimers(hWnd,active,inactive) (VOID)MCIWndSM(hWnd,MCIWNDM_SETTIMERS,(WPARAM)(UINT)(active),(LPARAM)(UINT)(inactive))
1035 #define MCIWndGetActiveTimer(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETACTIVETIMER,0,0L);
1036 #define MCIWndGetInactiveTimer(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETINACTIVETIMER,0,0L);
1037 #define MCIWndRealize(hWnd,fBkgnd) (LONG)MCIWndSM(hWnd,MCIWNDM_REALIZE,(WPARAM)(BOOL)(fBkgnd),0)
1038 #define MCIWndSendString(hWnd,sz) (LONG)MCIWndSM(hWnd,MCIWNDM_SENDSTRING,0,(LPARAM)(LPTSTR)(sz))
1039 #define MCIWndReturnString(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_RETURNSTRING,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
1040 #define MCIWndGetError(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETERROR,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
1041 #define MCIWndGetPalette(hWnd) (HPALETTE)MCIWndSM(hWnd,MCIWNDM_GETPALETTE,0,0)
1042 #define MCIWndSetPalette(hWnd,hpal) (LONG)MCIWndSM(hWnd,MCIWNDM_SETPALETTE,(WPARAM)(HPALETTE)(hpal),0)
1043 #define MCIWndGetFileName(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETFILENAME,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
1044 #define MCIWndGetDevice(hWnd,lp,len) (LONG)MCIWndSM(hWnd,MCIWNDM_GETDEVICE,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp))
1045 #define MCIWndGetStyles(hWnd) (UINT)MCIWndSM(hWnd,MCIWNDM_GETSTYLES,0,0L)
1046 #define MCIWndChangeStyles(hWnd,mask,value) (LONG)MCIWndSM(hWnd,MCIWNDM_CHANGESTYLES,(WPARAM)(UINT)(mask),(LPARAM)(LONG)(value))
1047 #define MCIWndOpenInterface(hWnd,pUnk) (LONG)MCIWndSM(hWnd,MCIWNDM_OPENINTERFACE,0,(LPARAM)(LPUNKNOWN)(pUnk))
1048 #define MCIWndSetOwner(hWnd,hWndP) (LONG)MCIWndSM(hWnd,MCIWNDM_SETOWNER,(WPARAM)(hWndP),0)
1049 #define DrawDibUpdate(hdd,hdc,x,y) DrawDibDraw(hdd,hdc,x,y,0,0,NULL,NULL,0,0,0,0,DDF_UPDATE)
1050 static __inline DWORD
1051 ICGetDefaultQuality(HIC hic
)
1054 ICSendMessage(hic
, ICM_GETDEFAULTQUALITY
, (DWORD
)(LPVOID
)&dwICValue
, sizeof(DWORD
));
1057 static __inline DWORD
1058 ICGetDefaultKeyFrameRate(HIC hic
)
1061 ICSendMessage(hic
, ICM_GETDEFAULTKEYFRAMERATE
, (DWORD
)(LPVOID
)&dwICValue
, sizeof(DWORD
));
1064 static __inline LRESULT
1065 ICDrawSuggestFormat(HIC hic
,LPBITMAPINFOHEADER lpbiIn
,LPBITMAPINFOHEADER lpbiOut
,INT dxSrc
,INT dySrc
,INT dxDst
,INT dyDst
,HIC hicDecomp
)
1069 ic
.lpbiSuggest
= lpbiOut
;
1074 ic
.hicDecompressor
= hicDecomp
;
1075 return ICSendMessage(hic
,ICM_DRAW_SUGGESTFORMAT
,(DWORD
)&ic
,sizeof(ic
));
1077 static __inline LRESULT
1078 ICSetStatusProc(HIC hic
,DWORD dwFlags
,LRESULT lParam
,LONG (CALLBACK
*fpfnStatus
)(LPARAM
,UINT
,LONG
))
1081 ic
.dwFlags
= dwFlags
;
1083 ic
.Status
= fpfnStatus
;
1084 return ICSendMessage(hic
,ICM_SET_STATUS_PROC
,(DWORD
)&ic
,sizeof(ic
));
1086 static __inline LRESULT
1087 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
)
1090 ic
.dwFlags
= dwFlags
;
1091 ic
.lpbiSrc
= lpbiSrc
;
1097 ic
.lpbiDst
= lpbiDst
;
1103 return ICSendMessage(hic
,ICM_DECOMPRESSEX
,(DWORD
)&ic
,sizeof(ic
));
1105 static __inline LRESULT
1106 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
)
1109 ic
.dwFlags
= dwFlags
;
1110 ic
.lpbiSrc
= lpbiSrc
;
1116 ic
.lpbiDst
= lpbiDst
;
1122 return ICSendMessage(hic
,ICM_DECOMPRESSEX_BEGIN
,(DWORD
)&ic
,sizeof(ic
));
1124 static __inline LRESULT
1125 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
)
1128 ic
.dwFlags
= dwFlags
;
1129 ic
.lpbiSrc
= lpbiSrc
;
1135 ic
.lpbiDst
= lpbiDst
;
1141 return ICSendMessage(hic
,ICM_DECOMPRESSEX_QUERY
,(DWORD
)&ic
,sizeof(ic
));
1145 #define AVISTREAMINFO AVISTREAMINFOW
1146 #define LPAVISTREAMINFO LPAVISTREAMINFOW
1147 #define PAVISTREAMINFO PAVISTREAMINFOW
1148 #define AVIFILEINFO AVIFILEINFOW
1149 #define PAVIFILEINFO PAVIFILEINFOW
1150 #define LPAVIFILEINFO LPAVIFILEINFOW
1151 #define AVIStreamInfo AVIStreamInfoW
1152 #define AVIStreamOpenFromFile AVIStreamOpenFromFileW
1153 #define AVIBuildFilter AVIBuildFilterW
1154 #define AVISaveV AVISaveVW
1155 #define EditStreamSetInfo EditStreamSetInfoW
1156 #define EditStreamSetName EditStreamSetNameW
1157 #define AVIFileOpen AVIFileOpenW
1158 #define AVIFileInfo AVIFileInfoW
1159 #define AVIFileCreateStream AVIFileCreateStreamW
1160 #define GetOpenFileNamePreview GetOpenFileNamePreviewW
1161 #define GetSaveFileNamePreview GetSaveFileNamePreviewW
1162 #define MCIWndCreate MCIWndCreateW
1163 #define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAW
1164 #define MCIWNDM_SENDSTRING MCIWNDM_SENDSTRINGW
1165 #define MCIWNDM_GETPOSITION MCIWNDM_GETPOSITIONW
1166 #define MCIWNDM_GETMODE MCIWNDM_GETMODEW
1167 #define MCIWNDM_SETTIMEFORMAT MCIWNDM_SETTIMEFORMATW
1168 #define MCIWNDM_GETTIMEFORMAT MCIWNDM_GETTIMEFORMATW
1169 #define MCIWNDM_GETFILENAME MCIWNDM_GETFILENAMEW
1170 #define MCIWNDM_GETDEVICE MCIWNDM_GETDEVICEW
1171 #define MCIWNDM_GETERROR MCIWNDM_GETERRORW
1172 #define MCIWNDM_NEW MCIWNDM_NEWW
1173 #define MCIWNDM_RETURNSTRING MCIWNDM_RETURNSTRINGW
1174 #define MCIWNDM_OPEN MCIWNDM_OPENW
1176 #define AVISTREAMINFO AVISTREAMINFOA
1177 #define LPAVISTREAMINFO LPAVISTREAMINFOA
1178 #define PAVISTREAMINFO PAVISTREAMINFOA
1179 #define AVIFILEINFO AVIFILEINFOA
1180 #define PAVIFILEINFO PAVIFILEINFOA
1181 #define LPAVIFILEINFO LPAVIFILEINFOA
1182 #define AVIStreamInfo AVIStreamInfoA
1183 #define AVIStreamOpenFromFile AVIStreamOpenFromFileA
1184 #define AVIBuildFilter AVIBuildFilterA
1185 #define AVISaveV AVISaveVA
1186 #define EditStreamSetInfo EditStreamSetInfoA
1187 #define EditStreamSetName EditStreamSetNameA
1188 #define AVIFileOpen AVIFileOpenA
1189 #define AVIFileInfo AVIFileInfoA
1190 #define AVIFileCreateStream AVIFileCreateStreamA
1191 #define GetOpenFileNamePreview GetOpenFileNamePreviewA
1192 #define GetSaveFileNamePreview GetSaveFileNamePreviewA
1193 #define MCIWndCreate MCIWndCreateA
1194 #define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAA
1195 #define MCIWNDM_SENDSTRING MCIWNDM_SENDSTRINGA
1196 #define MCIWNDM_GETPOSITION MCIWNDM_GETPOSITIONA
1197 #define MCIWNDM_GETMODE MCIWNDM_GETMODEA
1198 #define MCIWNDM_SETTIMEFORMAT MCIWNDM_SETTIMEFORMATA
1199 #define MCIWNDM_GETTIMEFORMAT MCIWNDM_GETTIMEFORMATA
1200 #define MCIWNDM_GETFILENAME MCIWNDM_GETFILENAMEA
1201 #define MCIWNDM_GETDEVICE MCIWNDM_GETDEVICEA
1202 #define MCIWNDM_GETERROR MCIWNDM_GETERRORA
1203 #define MCIWNDM_NEW MCIWNDM_NEWA
1204 #define MCIWNDM_RETURNSTRING MCIWNDM_RETURNSTRINGA
1205 #define MCIWNDM_OPEN MCIWNDM_OPENA
1208 #endif /* RC_INVOKED */
1213 #include <poppack.h>