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