Mercurial > games > semicongine
comparison fuhtark_test/include/winapi/vfw.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 1499:1f58458b7ef7 | 1500:91c8c3b7cbf0 |
|---|---|
| 1 /** | |
| 2 * This file has no copyright assigned and is placed in the Public Domain. | |
| 3 * This file is part of the w64 mingw-runtime package. | |
| 4 * No warranty is given; refer to the file DISCLAIMER within this package. | |
| 5 */ | |
| 6 #ifndef _INC_VFW | |
| 7 #define _INC_VFW | |
| 8 | |
| 9 #ifdef __cplusplus | |
| 10 extern "C" { | |
| 11 #endif | |
| 12 | |
| 13 #define VFWAPI WINAPI | |
| 14 #define VFWAPIV WINAPIV | |
| 15 #define VFWAPI_INLINE WINAPI | |
| 16 | |
| 17 DWORD WINAPI VideoForWindowsVersion(void); | |
| 18 LONG WINAPI InitVFW(void); | |
| 19 LONG WINAPI TermVFW(void); | |
| 20 | |
| 21 #ifdef __cplusplus | |
| 22 } | |
| 23 #endif | |
| 24 | |
| 25 #if !defined(_INC_MMSYSTEM) && (!defined(NOVIDEO) || !defined(NOAVICAP)) | |
| 26 #include <mmsystem.h> | |
| 27 #endif | |
| 28 | |
| 29 #ifdef __cplusplus | |
| 30 extern "C" { | |
| 31 #endif | |
| 32 | |
| 33 #ifndef MKFOURCC | |
| 34 #define MKFOURCC(ch0,ch1,ch2,ch3) ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24)) | |
| 35 #endif | |
| 36 | |
| 37 #if !defined(_INC_MMSYSTEM) | |
| 38 #define mmioFOURCC MKFOURCC | |
| 39 #endif | |
| 40 | |
| 41 #ifndef NOCOMPMAN | |
| 42 | |
| 43 #define ICVERSION 0x0104 | |
| 44 | |
| 45 DECLARE_HANDLE(HIC); | |
| 46 | |
| 47 #define BI_1632 0x32333631 | |
| 48 | |
| 49 #ifndef mmioFOURCC | |
| 50 #define mmioFOURCC(ch0,ch1,ch2,ch3) ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24)) | |
| 51 #endif | |
| 52 | |
| 53 #ifndef aviTWOCC | |
| 54 #define aviTWOCC(ch0,ch1) ((WORD)(BYTE)(ch0) | ((WORD)(BYTE)(ch1) << 8)) | |
| 55 #endif | |
| 56 | |
| 57 #ifndef ICTYPE_VIDEO | |
| 58 #define ICTYPE_VIDEO mmioFOURCC('v','i','d','c') | |
| 59 #define ICTYPE_AUDIO mmioFOURCC('a','u','d','c') | |
| 60 #endif | |
| 61 | |
| 62 #ifndef ICERR_OK | |
| 63 #define ICERR_OK 0L | |
| 64 #define ICERR_DONTDRAW 1L | |
| 65 #define ICERR_NEWPALETTE 2L | |
| 66 #define ICERR_GOTOKEYFRAME 3L | |
| 67 #define ICERR_STOPDRAWING 4L | |
| 68 | |
| 69 #define ICERR_UNSUPPORTED -1L | |
| 70 #define ICERR_BADFORMAT -2L | |
| 71 #define ICERR_MEMORY -3L | |
| 72 #define ICERR_INTERNAL -4L | |
| 73 #define ICERR_BADFLAGS -5L | |
| 74 #define ICERR_BADPARAM -6L | |
| 75 #define ICERR_BADSIZE -7L | |
| 76 #define ICERR_BADHANDLE -8L | |
| 77 #define ICERR_CANTUPDATE -9L | |
| 78 #define ICERR_ABORT -10L | |
| 79 #define ICERR_ERROR -100L | |
| 80 #define ICERR_BADBITDEPTH -200L | |
| 81 #define ICERR_BADIMAGESIZE -201L | |
| 82 | |
| 83 #define ICERR_CUSTOM -400L | |
| 84 #endif | |
| 85 | |
| 86 #ifndef ICMODE_COMPRESS | |
| 87 #define ICMODE_COMPRESS 1 | |
| 88 #define ICMODE_DECOMPRESS 2 | |
| 89 #define ICMODE_FASTDECOMPRESS 3 | |
| 90 #define ICMODE_QUERY 4 | |
| 91 #define ICMODE_FASTCOMPRESS 5 | |
| 92 #define ICMODE_DRAW 8 | |
| 93 #endif | |
| 94 | |
| 95 #define AVIIF_LIST 0x00000001L | |
| 96 #define AVIIF_TWOCC 0x00000002L | |
| 97 #define AVIIF_KEYFRAME 0x00000010L | |
| 98 | |
| 99 #define ICQUALITY_LOW 0 | |
| 100 #define ICQUALITY_HIGH 10000 | |
| 101 #define ICQUALITY_DEFAULT -1 | |
| 102 | |
| 103 #define ICM_USER (DRV_USER+0x0000) | |
| 104 | |
| 105 #define ICM_RESERVED ICM_RESERVED_LOW | |
| 106 #define ICM_RESERVED_LOW (DRV_USER+0x1000) | |
| 107 #define ICM_RESERVED_HIGH (DRV_USER+0x2000) | |
| 108 | |
| 109 #define ICM_GETSTATE (ICM_RESERVED+0) | |
| 110 #define ICM_SETSTATE (ICM_RESERVED+1) | |
| 111 #define ICM_GETINFO (ICM_RESERVED+2) | |
| 112 | |
| 113 #define ICM_CONFIGURE (ICM_RESERVED+10) | |
| 114 #define ICM_ABOUT (ICM_RESERVED+11) | |
| 115 | |
| 116 #define ICM_GETERRORTEXT (ICM_RESERVED+12) | |
| 117 #define ICM_GETFORMATNAME (ICM_RESERVED+20) | |
| 118 #define ICM_ENUMFORMATS (ICM_RESERVED+21) | |
| 119 | |
| 120 #define ICM_GETDEFAULTQUALITY (ICM_RESERVED+30) | |
| 121 #define ICM_GETQUALITY (ICM_RESERVED+31) | |
| 122 #define ICM_SETQUALITY (ICM_RESERVED+32) | |
| 123 | |
| 124 #define ICM_SET (ICM_RESERVED+40) | |
| 125 #define ICM_GET (ICM_RESERVED+41) | |
| 126 | |
| 127 #define ICM_FRAMERATE mmioFOURCC('F','r','m','R') | |
| 128 #define ICM_KEYFRAMERATE mmioFOURCC('K','e','y','R') | |
| 129 | |
| 130 #define ICM_COMPRESS_GET_FORMAT (ICM_USER+4) | |
| 131 #define ICM_COMPRESS_GET_SIZE (ICM_USER+5) | |
| 132 #define ICM_COMPRESS_QUERY (ICM_USER+6) | |
| 133 #define ICM_COMPRESS_BEGIN (ICM_USER+7) | |
| 134 #define ICM_COMPRESS (ICM_USER+8) | |
| 135 #define ICM_COMPRESS_END (ICM_USER+9) | |
| 136 | |
| 137 #define ICM_DECOMPRESS_GET_FORMAT (ICM_USER+10) | |
| 138 #define ICM_DECOMPRESS_QUERY (ICM_USER+11) | |
| 139 #define ICM_DECOMPRESS_BEGIN (ICM_USER+12) | |
| 140 #define ICM_DECOMPRESS (ICM_USER+13) | |
| 141 #define ICM_DECOMPRESS_END (ICM_USER+14) | |
| 142 #define ICM_DECOMPRESS_SET_PALETTE (ICM_USER+29) | |
| 143 #define ICM_DECOMPRESS_GET_PALETTE (ICM_USER+30) | |
| 144 | |
| 145 #define ICM_DRAW_QUERY (ICM_USER+31) | |
| 146 #define ICM_DRAW_BEGIN (ICM_USER+15) | |
| 147 #define ICM_DRAW_GET_PALETTE (ICM_USER+16) | |
| 148 #define ICM_DRAW_UPDATE (ICM_USER+17) | |
| 149 #define ICM_DRAW_START (ICM_USER+18) | |
| 150 #define ICM_DRAW_STOP (ICM_USER+19) | |
| 151 #define ICM_DRAW_BITS (ICM_USER+20) | |
| 152 #define ICM_DRAW_END (ICM_USER+21) | |
| 153 #define ICM_DRAW_GETTIME (ICM_USER+32) | |
| 154 #define ICM_DRAW (ICM_USER+33) | |
| 155 #define ICM_DRAW_WINDOW (ICM_USER+34) | |
| 156 #define ICM_DRAW_SETTIME (ICM_USER+35) | |
| 157 #define ICM_DRAW_REALIZE (ICM_USER+36) | |
| 158 #define ICM_DRAW_FLUSH (ICM_USER+37) | |
| 159 #define ICM_DRAW_RENDERBUFFER (ICM_USER+38) | |
| 160 | |
| 161 #define ICM_DRAW_START_PLAY (ICM_USER+39) | |
| 162 #define ICM_DRAW_STOP_PLAY (ICM_USER+40) | |
| 163 | |
| 164 #define ICM_DRAW_SUGGESTFORMAT (ICM_USER+50) | |
| 165 #define ICM_DRAW_CHANGEPALETTE (ICM_USER+51) | |
| 166 | |
| 167 #define ICM_DRAW_IDLE (ICM_USER+52) | |
| 168 | |
| 169 #define ICM_GETBUFFERSWANTED (ICM_USER+41) | |
| 170 | |
| 171 #define ICM_GETDEFAULTKEYFRAMERATE (ICM_USER+42) | |
| 172 | |
| 173 #define ICM_DECOMPRESSEX_BEGIN (ICM_USER+60) | |
| 174 #define ICM_DECOMPRESSEX_QUERY (ICM_USER+61) | |
| 175 #define ICM_DECOMPRESSEX (ICM_USER+62) | |
| 176 #define ICM_DECOMPRESSEX_END (ICM_USER+63) | |
| 177 | |
| 178 #define ICM_COMPRESS_FRAMES_INFO (ICM_USER+70) | |
| 179 #define ICM_COMPRESS_FRAMES (ICM_USER+71) | |
| 180 #define ICM_SET_STATUS_PROC (ICM_USER+72) | |
| 181 | |
| 182 typedef struct { | |
| 183 DWORD dwSize; | |
| 184 DWORD fccType; | |
| 185 DWORD fccHandler; | |
| 186 DWORD dwVersion; | |
| 187 DWORD dwFlags; | |
| 188 LRESULT dwError; | |
| 189 LPVOID pV1Reserved; | |
| 190 LPVOID pV2Reserved; | |
| 191 DWORD dnDevNode; | |
| 192 } ICOPEN; | |
| 193 | |
| 194 typedef struct { | |
| 195 DWORD dwSize; | |
| 196 DWORD fccType; | |
| 197 DWORD fccHandler; | |
| 198 DWORD dwFlags; | |
| 199 DWORD dwVersion; | |
| 200 DWORD dwVersionICM; | |
| 201 | |
| 202 WCHAR szName[16]; | |
| 203 WCHAR szDescription[128]; | |
| 204 WCHAR szDriver[128]; | |
| 205 } ICINFO; | |
| 206 | |
| 207 #define VIDCF_QUALITY 0x0001 | |
| 208 #define VIDCF_CRUNCH 0x0002 | |
| 209 #define VIDCF_TEMPORAL 0x0004 | |
| 210 #define VIDCF_COMPRESSFRAMES 0x0008 | |
| 211 #define VIDCF_DRAW 0x0010 | |
| 212 #define VIDCF_FASTTEMPORALC 0x0020 | |
| 213 #define VIDCF_FASTTEMPORALD 0x0080 | |
| 214 | |
| 215 #define ICCOMPRESS_KEYFRAME 0x00000001L | |
| 216 | |
| 217 typedef struct { | |
| 218 DWORD dwFlags; | |
| 219 LPBITMAPINFOHEADER lpbiOutput; | |
| 220 LPVOID lpOutput; | |
| 221 | |
| 222 LPBITMAPINFOHEADER lpbiInput; | |
| 223 LPVOID lpInput; | |
| 224 LPDWORD lpckid; | |
| 225 LPDWORD lpdwFlags; | |
| 226 LONG lFrameNum; | |
| 227 DWORD dwFrameSize; | |
| 228 DWORD dwQuality; | |
| 229 LPBITMAPINFOHEADER lpbiPrev; | |
| 230 LPVOID lpPrev; | |
| 231 } ICCOMPRESS; | |
| 232 | |
| 233 #define ICCOMPRESSFRAMES_PADDING 0x00000001 | |
| 234 | |
| 235 typedef struct { | |
| 236 DWORD dwFlags; | |
| 237 LPBITMAPINFOHEADER lpbiOutput; | |
| 238 LPARAM lOutput; | |
| 239 LPBITMAPINFOHEADER lpbiInput; | |
| 240 LPARAM lInput; | |
| 241 LONG lStartFrame; | |
| 242 LONG lFrameCount; | |
| 243 LONG lQuality; | |
| 244 LONG lDataRate; | |
| 245 LONG lKeyRate; | |
| 246 DWORD dwRate; | |
| 247 DWORD dwScale; | |
| 248 DWORD dwOverheadPerFrame; | |
| 249 DWORD dwReserved2; | |
| 250 LONG (CALLBACK *GetData)(LPARAM lInput,LONG lFrame,LPVOID lpBits,LONG len); | |
| 251 LONG (CALLBACK *PutData)(LPARAM lOutput,LONG lFrame,LPVOID lpBits,LONG len); | |
| 252 } ICCOMPRESSFRAMES; | |
| 253 | |
| 254 #define ICSTATUS_START 0 | |
| 255 #define ICSTATUS_STATUS 1 | |
| 256 #define ICSTATUS_END 2 | |
| 257 #define ICSTATUS_ERROR 3 | |
| 258 #define ICSTATUS_YIELD 4 | |
| 259 | |
| 260 typedef struct { | |
| 261 DWORD dwFlags; | |
| 262 LPARAM lParam; | |
| 263 LONG (CALLBACK *Status)(LPARAM lParam,UINT message,LONG l); | |
| 264 } ICSETSTATUSPROC; | |
| 265 | |
| 266 #define ICDECOMPRESS_HURRYUP 0x80000000L | |
| 267 #define ICDECOMPRESS_UPDATE 0x40000000L | |
| 268 #define ICDECOMPRESS_PREROLL 0x20000000L | |
| 269 #define ICDECOMPRESS_NULLFRAME 0x10000000L | |
| 270 #define ICDECOMPRESS_NOTKEYFRAME 0x08000000L | |
| 271 | |
| 272 typedef struct { | |
| 273 DWORD dwFlags; | |
| 274 LPBITMAPINFOHEADER lpbiInput; | |
| 275 LPVOID lpInput; | |
| 276 LPBITMAPINFOHEADER lpbiOutput; | |
| 277 LPVOID lpOutput; | |
| 278 DWORD ckid; | |
| 279 } ICDECOMPRESS; | |
| 280 | |
| 281 typedef struct { | |
| 282 DWORD dwFlags; | |
| 283 LPBITMAPINFOHEADER lpbiSrc; | |
| 284 LPVOID lpSrc; | |
| 285 LPBITMAPINFOHEADER lpbiDst; | |
| 286 LPVOID lpDst; | |
| 287 int xDst; | |
| 288 int yDst; | |
| 289 int dxDst; | |
| 290 int dyDst; | |
| 291 | |
| 292 int xSrc; | |
| 293 int ySrc; | |
| 294 int dxSrc; | |
| 295 int dySrc; | |
| 296 } ICDECOMPRESSEX; | |
| 297 | |
| 298 #define ICDRAW_QUERY 0x00000001L | |
| 299 #define ICDRAW_FULLSCREEN 0x00000002L | |
| 300 #define ICDRAW_HDC 0x00000004L | |
| 301 #define ICDRAW_ANIMATE 0x00000008L | |
| 302 #define ICDRAW_CONTINUE 0x00000010L | |
| 303 #define ICDRAW_MEMORYDC 0x00000020L | |
| 304 #define ICDRAW_UPDATING 0x00000040L | |
| 305 #define ICDRAW_RENDER 0x00000080L | |
| 306 #define ICDRAW_BUFFER 0x00000100L | |
| 307 | |
| 308 typedef struct { | |
| 309 DWORD dwFlags; | |
| 310 HPALETTE hpal; | |
| 311 HWND hwnd; | |
| 312 HDC hdc; | |
| 313 int xDst; | |
| 314 int yDst; | |
| 315 int dxDst; | |
| 316 int dyDst; | |
| 317 LPBITMAPINFOHEADER lpbi; | |
| 318 int xSrc; | |
| 319 int ySrc; | |
| 320 int dxSrc; | |
| 321 int dySrc; | |
| 322 DWORD dwRate; | |
| 323 DWORD dwScale; | |
| 324 } ICDRAWBEGIN; | |
| 325 | |
| 326 #define ICDRAW_HURRYUP 0x80000000L | |
| 327 #define ICDRAW_UPDATE 0x40000000L | |
| 328 #define ICDRAW_PREROLL 0x20000000L | |
| 329 #define ICDRAW_NULLFRAME 0x10000000L | |
| 330 #define ICDRAW_NOTKEYFRAME 0x08000000L | |
| 331 | |
| 332 typedef struct { | |
| 333 DWORD dwFlags; | |
| 334 LPVOID lpFormat; | |
| 335 LPVOID lpData; | |
| 336 DWORD cbData; | |
| 337 LONG lTime; | |
| 338 } ICDRAW; | |
| 339 | |
| 340 typedef struct { | |
| 341 LPBITMAPINFOHEADER lpbiIn; | |
| 342 LPBITMAPINFOHEADER lpbiSuggest; | |
| 343 int dxSrc; | |
| 344 int dySrc; | |
| 345 int dxDst; | |
| 346 int dyDst; | |
| 347 HIC hicDecompressor; | |
| 348 } ICDRAWSUGGEST; | |
| 349 | |
| 350 typedef struct { | |
| 351 DWORD dwFlags; | |
| 352 int iStart; | |
| 353 int iLen; | |
| 354 LPPALETTEENTRY lppe; | |
| 355 } ICPALETTE; | |
| 356 | |
| 357 WINBOOL WINAPI ICInfo(DWORD fccType,DWORD fccHandler,ICINFO *lpicinfo); | |
| 358 WINBOOL WINAPI ICInstall(DWORD fccType,DWORD fccHandler,LPARAM lParam,LPSTR szDesc,UINT wFlags); | |
| 359 WINBOOL WINAPI ICRemove(DWORD fccType,DWORD fccHandler,UINT wFlags); | |
| 360 LRESULT WINAPI ICGetInfo(HIC hic,ICINFO *picinfo,DWORD cb); | |
| 361 HIC WINAPI ICOpen(DWORD fccType,DWORD fccHandler,UINT wMode); | |
| 362 HIC WINAPI ICOpenFunction(DWORD fccType,DWORD fccHandler,UINT wMode,FARPROC lpfnHandler); | |
| 363 LRESULT WINAPI ICClose(HIC hic); | |
| 364 LRESULT WINAPI ICSendMessage(HIC hic,UINT msg,DWORD_PTR dw1,DWORD_PTR dw2); | |
| 365 | |
| 366 #define ICINSTALL_UNICODE 0x8000 | |
| 367 #define ICINSTALL_FUNCTION 0x0001 | |
| 368 #define ICINSTALL_DRIVER 0x0002 | |
| 369 #define ICINSTALL_HDRV 0x0004 | |
| 370 #define ICINSTALL_DRIVERW 0x8002 | |
| 371 | |
| 372 #define ICMF_CONFIGURE_QUERY 0x00000001 | |
| 373 #define ICMF_ABOUT_QUERY 0x00000001 | |
| 374 | |
| 375 #define ICQueryAbout(hic) (ICSendMessage(hic,ICM_ABOUT,(DWORD_PTR) -1,ICMF_ABOUT_QUERY)==ICERR_OK) | |
| 376 #define ICAbout(hic,hwnd) ICSendMessage(hic,ICM_ABOUT,(DWORD_PTR)(UINT_PTR)(hwnd),0) | |
| 377 #define ICQueryConfigure(hic) (ICSendMessage(hic,ICM_CONFIGURE,(DWORD_PTR) -1,ICMF_CONFIGURE_QUERY)==ICERR_OK) | |
| 378 #define ICConfigure(hic,hwnd) ICSendMessage(hic,ICM_CONFIGURE,(DWORD_PTR)(UINT_PTR)(hwnd),0) | |
| 379 #define ICGetState(hic,pv,cb) ICSendMessage(hic,ICM_GETSTATE,(DWORD_PTR)(LPVOID)(pv),(DWORD_PTR)(cb)) | |
| 380 #define ICSetState(hic,pv,cb) ICSendMessage(hic,ICM_SETSTATE,(DWORD_PTR)(LPVOID)(pv),(DWORD_PTR)(cb)) | |
| 381 #define ICGetStateSize(hic) (DWORD) ICGetState(hic,NULL,0) | |
| 382 | |
| 383 static DWORD dwICValue; | |
| 384 | |
| 385 #define ICGetDefaultQuality(hic) (ICSendMessage(hic,ICM_GETDEFAULTQUALITY,(DWORD_PTR)(LPVOID)&dwICValue,sizeof(DWORD)),dwICValue) | |
| 386 #define ICGetDefaultKeyFrameRate(hic) (ICSendMessage(hic,ICM_GETDEFAULTKEYFRAMERATE,(DWORD_PTR)(LPVOID)&dwICValue,sizeof(DWORD)),dwICValue) | |
| 387 #define ICDrawWindow(hic,prc) ICSendMessage(hic,ICM_DRAW_WINDOW,(DWORD_PTR)(LPVOID)(prc),sizeof(RECT)) | |
| 388 | |
| 389 DWORD WINAPIV ICCompress(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiOutput,LPVOID lpData,LPBITMAPINFOHEADER lpbiInput,LPVOID lpBits,LPDWORD lpckid,LPDWORD lpdwFlags,LONG lFrameNum,DWORD dwFrameSize,DWORD dwQuality,LPBITMAPINFOHEADER lpbiPrev,LPVOID lpPrev); | |
| 390 | |
| 391 #define ICCompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_BEGIN,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | |
| 392 #define ICCompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_QUERY,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | |
| 393 #define ICCompressGetFormat(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_COMPRESS_GET_FORMAT,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | |
| 394 #define ICCompressGetFormatSize(hic,lpbi) (DWORD) ICCompressGetFormat(hic,lpbi,NULL) | |
| 395 #define ICCompressGetSize(hic,lpbiInput,lpbiOutput) (DWORD) ICSendMessage(hic,ICM_COMPRESS_GET_SIZE,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | |
| 396 #define ICCompressEnd(hic) ICSendMessage(hic,ICM_COMPRESS_END,0,0) | |
| 397 #define ICDECOMPRESS_HURRYUP 0x80000000L | |
| 398 | |
| 399 DWORD WINAPIV ICDecompress(HIC hic,DWORD dwFlags,LPBITMAPINFOHEADER lpbiFormat,LPVOID lpData,LPBITMAPINFOHEADER lpbi,LPVOID lpBits); | |
| 400 | |
| 401 #define ICDecompressBegin(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_BEGIN,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | |
| 402 #define ICDecompressQuery(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_QUERY,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | |
| 403 #define ICDecompressGetFormat(hic,lpbiInput,lpbiOutput) ((LONG) ICSendMessage(hic,ICM_DECOMPRESS_GET_FORMAT,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput))) | |
| 404 #define ICDecompressGetFormatSize(hic,lpbi) ICDecompressGetFormat(hic,lpbi,NULL) | |
| 405 #define ICDecompressGetPalette(hic,lpbiInput,lpbiOutput) ICSendMessage(hic,ICM_DECOMPRESS_GET_PALETTE,(DWORD_PTR)(LPVOID)(lpbiInput),(DWORD_PTR)(LPVOID)(lpbiOutput)) | |
| 406 #define ICDecompressSetPalette(hic,lpbiPalette) ICSendMessage(hic,ICM_DECOMPRESS_SET_PALETTE,(DWORD_PTR)(LPVOID)(lpbiPalette),0) | |
| 407 #define ICDecompressEnd(hic) ICSendMessage(hic,ICM_DECOMPRESS_END,0,0) | |
| 408 | |
| 409 #ifndef __CRT__NO_INLINE | |
| 410 __CRT_INLINE LRESULT WINAPI 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) { | |
| 411 ICDECOMPRESSEX ic; | |
| 412 ic.dwFlags = dwFlags; | |
| 413 ic.lpbiSrc = lpbiSrc; | |
| 414 ic.lpSrc = lpSrc; | |
| 415 ic.xSrc = xSrc; | |
| 416 ic.ySrc = ySrc; | |
| 417 ic.dxSrc = dxSrc; | |
| 418 ic.dySrc = dySrc; | |
| 419 ic.lpbiDst = lpbiDst; | |
| 420 ic.lpDst = lpDst; | |
| 421 ic.xDst = xDst; | |
| 422 ic.yDst = yDst; | |
| 423 ic.dxDst = dxDst; | |
| 424 ic.dyDst = dyDst; | |
| 425 return ICSendMessage(hic,ICM_DECOMPRESSEX,(DWORD_PTR)&ic,sizeof(ic)); | |
| 426 } | |
| 427 | |
| 428 __CRT_INLINE LRESULT WINAPI 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) { | |
| 429 ICDECOMPRESSEX ic; | |
| 430 ic.dwFlags = dwFlags; | |
| 431 ic.lpbiSrc = lpbiSrc; | |
| 432 ic.lpSrc = lpSrc; | |
| 433 ic.xSrc = xSrc; | |
| 434 ic.ySrc = ySrc; | |
| 435 ic.dxSrc = dxSrc; | |
| 436 ic.dySrc = dySrc; | |
| 437 ic.lpbiDst = lpbiDst; | |
| 438 ic.lpDst = lpDst; | |
| 439 ic.xDst = xDst; | |
| 440 ic.yDst = yDst; | |
| 441 ic.dxDst = dxDst; | |
| 442 ic.dyDst = dyDst; | |
| 443 return ICSendMessage(hic,ICM_DECOMPRESSEX_BEGIN,(DWORD_PTR)&ic,sizeof(ic)); | |
| 444 } | |
| 445 | |
| 446 __CRT_INLINE LRESULT WINAPI 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) { | |
| 447 ICDECOMPRESSEX ic; | |
| 448 ic.dwFlags = dwFlags; | |
| 449 ic.lpbiSrc = lpbiSrc; | |
| 450 ic.lpSrc = lpSrc; | |
| 451 ic.xSrc = xSrc; | |
| 452 ic.ySrc = ySrc; | |
| 453 ic.dxSrc = dxSrc; | |
| 454 ic.dySrc = dySrc; | |
| 455 ic.lpbiDst = lpbiDst; | |
| 456 ic.lpDst = lpDst; | |
| 457 ic.xDst = xDst; | |
| 458 ic.yDst = yDst; | |
| 459 ic.dxDst = dxDst; | |
| 460 ic.dyDst = dyDst; | |
| 461 return ICSendMessage(hic,ICM_DECOMPRESSEX_QUERY,(DWORD_PTR)&ic,sizeof(ic)); | |
| 462 } | |
| 463 #endif /* !__CRT__NO_INLINE */ | |
| 464 | |
| 465 #define ICDecompressExEnd(hic) ICSendMessage(hic,ICM_DECOMPRESSEX_END,0,0) | |
| 466 | |
| 467 #define ICDRAW_QUERY 0x00000001L | |
| 468 #define ICDRAW_FULLSCREEN 0x00000002L | |
| 469 #define ICDRAW_HDC 0x00000004L | |
| 470 | |
| 471 DWORD WINAPIV ICDrawBegin(HIC hic,DWORD dwFlags,HPALETTE hpal,HWND hwnd,HDC hdc,int xDst,int yDst,int dxDst,int dyDst,LPBITMAPINFOHEADER lpbi,int xSrc,int ySrc,int dxSrc,int dySrc,DWORD dwRate,DWORD dwScale); | |
| 472 | |
| 473 #define ICDRAW_HURRYUP 0x80000000L | |
| 474 #define ICDRAW_UPDATE 0x40000000L | |
| 475 | |
| 476 DWORD WINAPIV ICDraw(HIC hic,DWORD dwFlags,LPVOID lpFormat,LPVOID lpData,DWORD cbData,LONG lTime); | |
| 477 | |
| 478 #ifndef __CRT__NO_INLINE | |
| 479 __CRT_INLINE LRESULT WINAPI ICDrawSuggestFormat(HIC hic,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,int dxSrc,int dySrc,int dxDst,int dyDst,HIC hicDecomp) { | |
| 480 ICDRAWSUGGEST ic; | |
| 481 ic.lpbiIn = lpbiIn; | |
| 482 ic.lpbiSuggest = lpbiOut; | |
| 483 ic.dxSrc = dxSrc; | |
| 484 ic.dySrc = dySrc; | |
| 485 ic.dxDst = dxDst; | |
| 486 ic.dyDst = dyDst; | |
| 487 ic.hicDecompressor = hicDecomp; | |
| 488 return ICSendMessage(hic,ICM_DRAW_SUGGESTFORMAT,(DWORD_PTR)&ic,sizeof(ic)); | |
| 489 } | |
| 490 #endif /* !__CRT__NO_INLINE */ | |
| 491 | |
| 492 #define ICDrawQuery(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_QUERY,(DWORD_PTR)(LPVOID)(lpbiInput),0L) | |
| 493 #define ICDrawChangePalette(hic,lpbiInput) ICSendMessage(hic,ICM_DRAW_CHANGEPALETTE,(DWORD_PTR)(LPVOID)(lpbiInput),0L) | |
| 494 #define ICGetBuffersWanted(hic,lpdwBuffers) ICSendMessage(hic,ICM_GETBUFFERSWANTED,(DWORD_PTR)(LPVOID)(lpdwBuffers),0) | |
| 495 #define ICDrawEnd(hic) ICSendMessage(hic,ICM_DRAW_END,0,0) | |
| 496 #define ICDrawStart(hic) ICSendMessage(hic,ICM_DRAW_START,0,0) | |
| 497 #define ICDrawStartPlay(hic,lFrom,lTo) ICSendMessage(hic,ICM_DRAW_START_PLAY,(DWORD_PTR)(lFrom),(DWORD_PTR)(lTo)) | |
| 498 #define ICDrawStop(hic) ICSendMessage(hic,ICM_DRAW_STOP,0,0) | |
| 499 #define ICDrawStopPlay(hic) ICSendMessage(hic,ICM_DRAW_STOP_PLAY,0,0) | |
| 500 #define ICDrawGetTime(hic,lplTime) ICSendMessage(hic,ICM_DRAW_GETTIME,(DWORD_PTR)(LPVOID)(lplTime),0) | |
| 501 #define ICDrawSetTime(hic,lTime) ICSendMessage(hic,ICM_DRAW_SETTIME,(DWORD_PTR)lTime,0) | |
| 502 #define ICDrawRealize(hic,hdc,fBackground) ICSendMessage(hic,ICM_DRAW_REALIZE,(DWORD_PTR)(UINT_PTR)(HDC)(hdc),(DWORD_PTR)(WINBOOL)(fBackground)) | |
| 503 #define ICDrawFlush(hic) ICSendMessage(hic,ICM_DRAW_FLUSH,0,0) | |
| 504 #define ICDrawRenderBuffer(hic) ICSendMessage(hic,ICM_DRAW_RENDERBUFFER,0,0) | |
| 505 | |
| 506 #ifndef __CRT__NO_INLINE | |
| 507 __CRT_INLINE LRESULT WINAPI ICSetStatusProc(HIC hic,DWORD dwFlags,LRESULT lParam,LONG (CALLBACK *fpfnStatus)(LPARAM,UINT,LONG)) { | |
| 508 ICSETSTATUSPROC ic; | |
| 509 ic.dwFlags = dwFlags; | |
| 510 ic.lParam = lParam; | |
| 511 ic.Status = fpfnStatus; | |
| 512 return ICSendMessage(hic,ICM_SET_STATUS_PROC,(DWORD_PTR)&ic,sizeof(ic)); | |
| 513 } | |
| 514 #endif /* !__CRT__NO_INLINE */ | |
| 515 | |
| 516 #define ICDecompressOpen(fccType,fccHandler,lpbiIn,lpbiOut) ICLocate(fccType,fccHandler,lpbiIn,lpbiOut,ICMODE_DECOMPRESS) | |
| 517 #define ICDrawOpen(fccType,fccHandler,lpbiIn) ICLocate(fccType,fccHandler,lpbiIn,NULL,ICMODE_DRAW) | |
| 518 | |
| 519 HIC WINAPI ICLocate(DWORD fccType,DWORD fccHandler,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,WORD wFlags); | |
| 520 HIC WINAPI ICGetDisplayFormat(HIC hic,LPBITMAPINFOHEADER lpbiIn,LPBITMAPINFOHEADER lpbiOut,int BitDepth,int dx,int dy); | |
| 521 HANDLE WINAPI ICImageCompress(HIC hic,UINT uiFlags,LPBITMAPINFO lpbiIn,LPVOID lpBits,LPBITMAPINFO lpbiOut,LONG lQuality,LONG *plSize); | |
| 522 HANDLE WINAPI ICImageDecompress(HIC hic,UINT uiFlags,LPBITMAPINFO lpbiIn,LPVOID lpBits,LPBITMAPINFO lpbiOut); | |
| 523 | |
| 524 typedef struct { | |
| 525 LONG cbSize; | |
| 526 DWORD dwFlags; | |
| 527 HIC hic; | |
| 528 DWORD fccType; | |
| 529 DWORD fccHandler; | |
| 530 LPBITMAPINFO lpbiIn; | |
| 531 LPBITMAPINFO lpbiOut; | |
| 532 LPVOID lpBitsOut; | |
| 533 LPVOID lpBitsPrev; | |
| 534 LONG lFrame; | |
| 535 LONG lKey; | |
| 536 LONG lDataRate; | |
| 537 LONG lQ; | |
| 538 LONG lKeyCount; | |
| 539 LPVOID lpState; | |
| 540 LONG cbState; | |
| 541 } COMPVARS,*PCOMPVARS; | |
| 542 | |
| 543 #define ICMF_COMPVARS_VALID 0x00000001 | |
| 544 | |
| 545 WINBOOL WINAPI ICCompressorChoose(HWND hwnd,UINT uiFlags,LPVOID pvIn,LPVOID lpData,PCOMPVARS pc,LPSTR lpszTitle); | |
| 546 | |
| 547 #define ICMF_CHOOSE_KEYFRAME 0x0001 | |
| 548 #define ICMF_CHOOSE_DATARATE 0x0002 | |
| 549 #define ICMF_CHOOSE_PREVIEW 0x0004 | |
| 550 #define ICMF_CHOOSE_ALLCOMPRESSORS 0x0008 | |
| 551 | |
| 552 WINBOOL WINAPI ICSeqCompressFrameStart(PCOMPVARS pc,LPBITMAPINFO lpbiIn); | |
| 553 void WINAPI ICSeqCompressFrameEnd(PCOMPVARS pc); | |
| 554 LPVOID WINAPI ICSeqCompressFrame(PCOMPVARS pc,UINT uiFlags,LPVOID lpBits,WINBOOL *pfKey,LONG *plSize); | |
| 555 void WINAPI ICCompressorFree(PCOMPVARS pc); | |
| 556 #endif | |
| 557 | |
| 558 #ifndef NODRAWDIB | |
| 559 | |
| 560 typedef HANDLE HDRAWDIB; | |
| 561 | |
| 562 #define DDF_0001 0x0001 | |
| 563 #define DDF_UPDATE 0x0002 | |
| 564 #define DDF_SAME_HDC 0x0004 | |
| 565 #define DDF_SAME_DRAW 0x0008 | |
| 566 #define DDF_DONTDRAW 0x0010 | |
| 567 #define DDF_ANIMATE 0x0020 | |
| 568 #define DDF_BUFFER 0x0040 | |
| 569 #define DDF_JUSTDRAWIT 0x0080 | |
| 570 #define DDF_FULLSCREEN 0x0100 | |
| 571 #define DDF_BACKGROUNDPAL 0x0200 | |
| 572 #define DDF_NOTKEYFRAME 0x0400 | |
| 573 #define DDF_HURRYUP 0x0800 | |
| 574 #define DDF_HALFTONE 0x1000 | |
| 575 #define DDF_2000 0x2000 | |
| 576 | |
| 577 #define DDF_PREROLL DDF_DONTDRAW | |
| 578 #define DDF_SAME_DIB DDF_SAME_DRAW | |
| 579 #define DDF_SAME_SIZE DDF_SAME_DRAW | |
| 580 | |
| 581 extern WINBOOL WINAPI DrawDibInit(void); | |
| 582 extern HDRAWDIB WINAPI DrawDibOpen(void); | |
| 583 extern WINBOOL WINAPI DrawDibClose(HDRAWDIB hdd); | |
| 584 extern LPVOID WINAPI DrawDibGetBuffer(HDRAWDIB hdd,LPBITMAPINFOHEADER lpbi,DWORD dwSize,DWORD dwFlags); | |
| 585 extern UINT WINAPI DrawDibError(HDRAWDIB hdd); | |
| 586 extern HPALETTE WINAPI DrawDibGetPalette(HDRAWDIB hdd); | |
| 587 extern WINBOOL WINAPI DrawDibSetPalette(HDRAWDIB hdd,HPALETTE hpal); | |
| 588 extern WINBOOL WINAPI DrawDibChangePalette(HDRAWDIB hdd,int iStart,int iLen,LPPALETTEENTRY lppe); | |
| 589 extern UINT WINAPI DrawDibRealize(HDRAWDIB hdd,HDC hdc,WINBOOL fBackground); | |
| 590 extern WINBOOL WINAPI DrawDibStart(HDRAWDIB hdd,DWORD rate); | |
| 591 extern WINBOOL WINAPI DrawDibStop(HDRAWDIB hdd); | |
| 592 extern WINBOOL WINAPI DrawDibBegin(HDRAWDIB hdd,HDC hdc,int dxDst,int dyDst,LPBITMAPINFOHEADER lpbi,int dxSrc,int dySrc,UINT wFlags); | |
| 593 extern WINBOOL WINAPI DrawDibDraw(HDRAWDIB hdd,HDC hdc,int xDst,int yDst,int dxDst,int dyDst,LPBITMAPINFOHEADER lpbi,LPVOID lpBits,int xSrc,int ySrc,int dxSrc,int dySrc,UINT wFlags); | |
| 594 | |
| 595 #define DrawDibUpdate(hdd,hdc,x,y) DrawDibDraw(hdd,hdc,x,y,0,0,NULL,NULL,0,0,0,0,DDF_UPDATE) | |
| 596 | |
| 597 extern WINBOOL WINAPI DrawDibEnd(HDRAWDIB hdd); | |
| 598 | |
| 599 typedef struct { | |
| 600 LONG timeCount; | |
| 601 LONG timeDraw; | |
| 602 LONG timeDecompress; | |
| 603 LONG timeDither; | |
| 604 LONG timeStretch; | |
| 605 LONG timeBlt; | |
| 606 LONG timeSetDIBits; | |
| 607 } DRAWDIBTIME,*LPDRAWDIBTIME; | |
| 608 | |
| 609 WINBOOL WINAPI DrawDibTime(HDRAWDIB hdd,LPDRAWDIBTIME lpddtime); | |
| 610 | |
| 611 #define PD_CAN_DRAW_DIB 0x0001 | |
| 612 #define PD_CAN_STRETCHDIB 0x0002 | |
| 613 #define PD_STRETCHDIB_1_1_OK 0x0004 | |
| 614 #define PD_STRETCHDIB_1_2_OK 0x0008 | |
| 615 #define PD_STRETCHDIB_1_N_OK 0x0010 | |
| 616 | |
| 617 LRESULT WINAPI DrawDibProfileDisplay(LPBITMAPINFOHEADER lpbi); | |
| 618 | |
| 619 #ifdef DRAWDIB_INCLUDE_STRETCHDIB | |
| 620 void WINAPI StretchDIB(LPBITMAPINFOHEADER biDst,LPVOID lpDst,int DstX,int DstY,int DstXE,int DstYE,LPBITMAPINFOHEADER biSrc,LPVOID lpSrc,int SrcX,int SrcY,int SrcXE,int SrcYE); | |
| 621 #endif | |
| 622 #endif | |
| 623 | |
| 624 #ifndef NOAVIFMT | |
| 625 #ifndef _INC_MMSYSTEM | |
| 626 typedef DWORD FOURCC; | |
| 627 #endif | |
| 628 | |
| 629 #ifndef mmioFOURCC | |
| 630 #define mmioFOURCC(ch0,ch1,ch2,ch3) ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24)) | |
| 631 #endif | |
| 632 | |
| 633 #ifndef aviTWOCC | |
| 634 #define aviTWOCC(ch0,ch1) ((WORD)(BYTE)(ch0) | ((WORD)(BYTE)(ch1) << 8)) | |
| 635 #endif | |
| 636 | |
| 637 typedef WORD TWOCC; | |
| 638 | |
| 639 #define formtypeAVI mmioFOURCC('A','V','I',' ') | |
| 640 #define listtypeAVIHEADER mmioFOURCC('h','d','r','l') | |
| 641 #define ckidAVIMAINHDR mmioFOURCC('a','v','i','h') | |
| 642 #define listtypeSTREAMHEADER mmioFOURCC('s','t','r','l') | |
| 643 #define ckidSTREAMHEADER mmioFOURCC('s','t','r','h') | |
| 644 #define ckidSTREAMFORMAT mmioFOURCC('s','t','r','f') | |
| 645 #define ckidSTREAMHANDLERDATA mmioFOURCC('s','t','r','d') | |
| 646 #define ckidSTREAMNAME mmioFOURCC('s','t','r','n') | |
| 647 | |
| 648 #define listtypeAVIMOVIE mmioFOURCC('m','o','v','i') | |
| 649 #define listtypeAVIRECORD mmioFOURCC('r','e','c',' ') | |
| 650 | |
| 651 #define ckidAVINEWINDEX mmioFOURCC('i','d','x','1') | |
| 652 | |
| 653 #define streamtypeVIDEO mmioFOURCC('v','i','d','s') | |
| 654 #define streamtypeAUDIO mmioFOURCC('a','u','d','s') | |
| 655 #define streamtypeMIDI mmioFOURCC('m','i','d','s') | |
| 656 #define streamtypeTEXT mmioFOURCC('t','x','t','s') | |
| 657 | |
| 658 #define cktypeDIBbits aviTWOCC('d','b') | |
| 659 #define cktypeDIBcompressed aviTWOCC('d','c') | |
| 660 #define cktypePALchange aviTWOCC('p','c') | |
| 661 #define cktypeWAVEbytes aviTWOCC('w','b') | |
| 662 | |
| 663 #define ckidAVIPADDING mmioFOURCC('J','U','N','K') | |
| 664 | |
| 665 #define FromHex(n) (((n) >= 'A') ? ((n) + 10 - 'A') : ((n) - '0')) | |
| 666 #define StreamFromFOURCC(fcc) ((WORD) ((FromHex(LOBYTE(LOWORD(fcc))) << 4) + (FromHex(HIBYTE(LOWORD(fcc)))))) | |
| 667 | |
| 668 #define TWOCCFromFOURCC(fcc) HIWORD(fcc) | |
| 669 | |
| 670 #define ToHex(n) ((BYTE) (((n) > 9) ? ((n) - 10 + 'A') : ((n) + '0'))) | |
| 671 #define MAKEAVICKID(tcc,stream) MAKELONG((ToHex((stream) & 0x0f) << 8) | (ToHex(((stream) & 0xf0) >> 4)),tcc) | |
| 672 | |
| 673 #define AVIF_HASINDEX 0x00000010 | |
| 674 #define AVIF_MUSTUSEINDEX 0x00000020 | |
| 675 #define AVIF_ISINTERLEAVED 0x00000100 | |
| 676 #define AVIF_WASCAPTUREFILE 0x00010000 | |
| 677 #define AVIF_COPYRIGHTED 0x00020000 | |
| 678 | |
| 679 #define AVI_HEADERSIZE 2048 | |
| 680 | |
| 681 typedef struct { | |
| 682 DWORD dwMicroSecPerFrame; | |
| 683 DWORD dwMaxBytesPerSec; | |
| 684 DWORD dwPaddingGranularity; | |
| 685 DWORD dwFlags; | |
| 686 DWORD dwTotalFrames; | |
| 687 DWORD dwInitialFrames; | |
| 688 DWORD dwStreams; | |
| 689 DWORD dwSuggestedBufferSize; | |
| 690 DWORD dwWidth; | |
| 691 DWORD dwHeight; | |
| 692 DWORD dwReserved[4]; | |
| 693 } MainAVIHeader; | |
| 694 | |
| 695 #define AVISF_DISABLED 0x00000001 | |
| 696 #define AVISF_VIDEO_PALCHANGES 0x00010000 | |
| 697 | |
| 698 typedef struct { | |
| 699 FOURCC fccType; | |
| 700 FOURCC fccHandler; | |
| 701 DWORD dwFlags; | |
| 702 WORD wPriority; | |
| 703 WORD wLanguage; | |
| 704 DWORD dwInitialFrames; | |
| 705 DWORD dwScale; | |
| 706 DWORD dwRate; | |
| 707 DWORD dwStart; | |
| 708 DWORD dwLength; | |
| 709 DWORD dwSuggestedBufferSize; | |
| 710 DWORD dwQuality; | |
| 711 DWORD dwSampleSize; | |
| 712 RECT rcFrame; | |
| 713 } AVIStreamHeader; | |
| 714 | |
| 715 #define AVIIF_LIST 0x00000001L | |
| 716 #define AVIIF_KEYFRAME 0x00000010L | |
| 717 #define AVIIF_FIRSTPART 0x00000020L | |
| 718 #define AVIIF_LASTPART 0x00000040L | |
| 719 #define AVIIF_MIDPART (AVIIF_LASTPART|AVIIF_FIRSTPART) | |
| 720 | |
| 721 #define AVIIF_NOTIME 0x00000100L | |
| 722 #define AVIIF_COMPUSE 0x0FFF0000L | |
| 723 | |
| 724 typedef struct { | |
| 725 DWORD ckid; | |
| 726 DWORD dwFlags; | |
| 727 DWORD dwChunkOffset; | |
| 728 DWORD dwChunkLength; | |
| 729 } AVIINDEXENTRY; | |
| 730 | |
| 731 typedef struct { | |
| 732 BYTE bFirstEntry; | |
| 733 BYTE bNumEntries; | |
| 734 WORD wFlags; | |
| 735 PALETTEENTRY peNew[]; | |
| 736 } AVIPALCHANGE; | |
| 737 #endif | |
| 738 | |
| 739 #ifdef __cplusplus | |
| 740 } | |
| 741 #endif | |
| 742 | |
| 743 #ifndef RC_INVOKED | |
| 744 #include "pshpack8.h" | |
| 745 #endif | |
| 746 | |
| 747 #ifndef NOMMREG | |
| 748 #include <mmreg.h> | |
| 749 #endif | |
| 750 | |
| 751 #ifdef __cplusplus | |
| 752 extern "C" { | |
| 753 #endif | |
| 754 | |
| 755 #ifndef NOAVIFILE | |
| 756 #ifndef mmioFOURCC | |
| 757 #define mmioFOURCC(ch0,ch1,ch2,ch3) ((DWORD)(BYTE)(ch0) | ((DWORD)(BYTE)(ch1) << 8) | ((DWORD)(BYTE)(ch2) << 16) | ((DWORD)(BYTE)(ch3) << 24)) | |
| 758 #endif | |
| 759 | |
| 760 #ifndef streamtypeVIDEO | |
| 761 #define streamtypeVIDEO mmioFOURCC('v','i','d','s') | |
| 762 #define streamtypeAUDIO mmioFOURCC('a','u','d','s') | |
| 763 #define streamtypeMIDI mmioFOURCC('m','i','d','s') | |
| 764 #define streamtypeTEXT mmioFOURCC('t','x','t','s') | |
| 765 #endif | |
| 766 | |
| 767 #ifndef AVIIF_KEYFRAME | |
| 768 #define AVIIF_KEYFRAME 0x00000010L | |
| 769 #endif | |
| 770 | |
| 771 #define AVIGETFRAMEF_BESTDISPLAYFMT 1 | |
| 772 | |
| 773 typedef struct _AVISTREAMINFOW { | |
| 774 DWORD fccType; | |
| 775 DWORD fccHandler; | |
| 776 DWORD dwFlags; | |
| 777 DWORD dwCaps; | |
| 778 WORD wPriority; | |
| 779 WORD wLanguage; | |
| 780 DWORD dwScale; | |
| 781 DWORD dwRate; | |
| 782 DWORD dwStart; | |
| 783 DWORD dwLength; | |
| 784 DWORD dwInitialFrames; | |
| 785 DWORD dwSuggestedBufferSize; | |
| 786 DWORD dwQuality; | |
| 787 DWORD dwSampleSize; | |
| 788 RECT rcFrame; | |
| 789 DWORD dwEditCount; | |
| 790 DWORD dwFormatChangeCount; | |
| 791 WCHAR szName[64]; | |
| 792 } AVISTREAMINFOW,*LPAVISTREAMINFOW; | |
| 793 | |
| 794 typedef struct _AVISTREAMINFOA { | |
| 795 DWORD fccType; | |
| 796 DWORD fccHandler; | |
| 797 DWORD dwFlags; | |
| 798 DWORD dwCaps; | |
| 799 WORD wPriority; | |
| 800 WORD wLanguage; | |
| 801 DWORD dwScale; | |
| 802 DWORD dwRate; | |
| 803 DWORD dwStart; | |
| 804 DWORD dwLength; | |
| 805 DWORD dwInitialFrames; | |
| 806 DWORD dwSuggestedBufferSize; | |
| 807 DWORD dwQuality; | |
| 808 DWORD dwSampleSize; | |
| 809 RECT rcFrame; | |
| 810 DWORD dwEditCount; | |
| 811 DWORD dwFormatChangeCount; | |
| 812 char szName[64]; | |
| 813 } AVISTREAMINFOA,*LPAVISTREAMINFOA; | |
| 814 | |
| 815 #ifdef UNICODE | |
| 816 #define AVISTREAMINFO AVISTREAMINFOW | |
| 817 #define LPAVISTREAMINFO LPAVISTREAMINFOW | |
| 818 #else | |
| 819 #define AVISTREAMINFO AVISTREAMINFOA | |
| 820 #define LPAVISTREAMINFO LPAVISTREAMINFOA | |
| 821 #endif | |
| 822 | |
| 823 #define AVISTREAMINFO_DISABLED 0x00000001 | |
| 824 #define AVISTREAMINFO_FORMATCHANGES 0x00010000 | |
| 825 | |
| 826 typedef struct _AVIFILEINFOW { | |
| 827 DWORD dwMaxBytesPerSec; | |
| 828 DWORD dwFlags; | |
| 829 DWORD dwCaps; | |
| 830 DWORD dwStreams; | |
| 831 DWORD dwSuggestedBufferSize; | |
| 832 DWORD dwWidth; | |
| 833 DWORD dwHeight; | |
| 834 DWORD dwScale; | |
| 835 DWORD dwRate; | |
| 836 DWORD dwLength; | |
| 837 DWORD dwEditCount; | |
| 838 WCHAR szFileType[64]; | |
| 839 } AVIFILEINFOW,*LPAVIFILEINFOW; | |
| 840 | |
| 841 typedef struct _AVIFILEINFOA { | |
| 842 DWORD dwMaxBytesPerSec; | |
| 843 DWORD dwFlags; | |
| 844 DWORD dwCaps; | |
| 845 DWORD dwStreams; | |
| 846 DWORD dwSuggestedBufferSize; | |
| 847 DWORD dwWidth; | |
| 848 DWORD dwHeight; | |
| 849 DWORD dwScale; | |
| 850 DWORD dwRate; | |
| 851 DWORD dwLength; | |
| 852 DWORD dwEditCount; | |
| 853 char szFileType[64]; | |
| 854 } AVIFILEINFOA,*LPAVIFILEINFOA; | |
| 855 | |
| 856 #ifdef UNICODE | |
| 857 #define AVIFILEINFO AVIFILEINFOW | |
| 858 #define LPAVIFILEINFO LPAVIFILEINFOW | |
| 859 #else | |
| 860 #define AVIFILEINFO AVIFILEINFOA | |
| 861 #define LPAVIFILEINFO LPAVIFILEINFOA | |
| 862 #endif | |
| 863 | |
| 864 #define AVIFILEINFO_HASINDEX 0x00000010 | |
| 865 #define AVIFILEINFO_MUSTUSEINDEX 0x00000020 | |
| 866 #define AVIFILEINFO_ISINTERLEAVED 0x00000100 | |
| 867 #define AVIFILEINFO_WASCAPTUREFILE 0x00010000 | |
| 868 #define AVIFILEINFO_COPYRIGHTED 0x00020000 | |
| 869 | |
| 870 #define AVIFILECAPS_CANREAD 0x00000001 | |
| 871 #define AVIFILECAPS_CANWRITE 0x00000002 | |
| 872 #define AVIFILECAPS_ALLKEYFRAMES 0x00000010 | |
| 873 #define AVIFILECAPS_NOCOMPRESSION 0x00000020 | |
| 874 | |
| 875 typedef WINBOOL (WINAPI *AVISAVECALLBACK)(int); | |
| 876 | |
| 877 typedef struct { | |
| 878 DWORD fccType; | |
| 879 DWORD fccHandler; | |
| 880 DWORD dwKeyFrameEvery; | |
| 881 DWORD dwQuality; | |
| 882 DWORD dwBytesPerSecond; | |
| 883 DWORD dwFlags; | |
| 884 LPVOID lpFormat; | |
| 885 DWORD cbFormat; | |
| 886 LPVOID lpParms; | |
| 887 DWORD cbParms; | |
| 888 DWORD dwInterleaveEvery; | |
| 889 } AVICOMPRESSOPTIONS,*LPAVICOMPRESSOPTIONS; | |
| 890 | |
| 891 #define AVICOMPRESSF_INTERLEAVE 0x00000001 | |
| 892 #define AVICOMPRESSF_DATARATE 0x00000002 | |
| 893 #define AVICOMPRESSF_KEYFRAMES 0x00000004 | |
| 894 #define AVICOMPRESSF_VALID 0x00000008 | |
| 895 | |
| 896 #ifdef __cplusplus | |
| 897 } | |
| 898 #endif | |
| 899 | |
| 900 #include <ole2.h> | |
| 901 | |
| 902 #ifdef __cplusplus | |
| 903 extern "C" { | |
| 904 #endif | |
| 905 | |
| 906 #undef INTERFACE | |
| 907 #define INTERFACE IAVIStream | |
| 908 DECLARE_INTERFACE_(IAVIStream,IUnknown) { | |
| 909 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | |
| 910 STDMETHOD_(ULONG,AddRef) (THIS) PURE; | |
| 911 STDMETHOD_(ULONG,Release) (THIS) PURE; | |
| 912 STDMETHOD(Create) (THIS_ LPARAM lParam1,LPARAM lParam2) PURE; | |
| 913 STDMETHOD(Info) (THIS_ AVISTREAMINFOW *psi,LONG lSize) PURE; | |
| 914 STDMETHOD_(LONG,FindSample)(THIS_ LONG lPos,LONG lFlags) PURE; | |
| 915 STDMETHOD(ReadFormat) (THIS_ LONG lPos,LPVOID lpFormat,LONG *lpcbFormat) PURE; | |
| 916 STDMETHOD(SetFormat) (THIS_ LONG lPos,LPVOID lpFormat,LONG cbFormat) PURE; | |
| 917 STDMETHOD(Read) (THIS_ LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,LONG *plBytes,LONG *plSamples) PURE; | |
| 918 STDMETHOD(Write) (THIS_ LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,DWORD dwFlags,LONG *plSampWritten,LONG *plBytesWritten) PURE; | |
| 919 STDMETHOD(Delete) (THIS_ LONG lStart,LONG lSamples) PURE; | |
| 920 STDMETHOD(ReadData) (THIS_ DWORD fcc,LPVOID lp,LONG *lpcb) PURE; | |
| 921 STDMETHOD(WriteData) (THIS_ DWORD fcc,LPVOID lp,LONG cb) PURE; | |
| 922 STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW *lpInfo,LONG cbInfo) PURE; | |
| 923 }; | |
| 924 | |
| 925 typedef IAVIStream *PAVISTREAM; | |
| 926 | |
| 927 #undef INTERFACE | |
| 928 #define INTERFACE IAVIStreaming | |
| 929 DECLARE_INTERFACE_(IAVIStreaming,IUnknown) { | |
| 930 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | |
| 931 STDMETHOD_(ULONG,AddRef) (THIS) PURE; | |
| 932 STDMETHOD_(ULONG,Release) (THIS) PURE; | |
| 933 STDMETHOD(Begin) (THIS_ LONG lStart,LONG lEnd,LONG lRate) PURE; | |
| 934 STDMETHOD(End) (THIS) PURE; | |
| 935 }; | |
| 936 | |
| 937 typedef IAVIStreaming *PAVISTREAMING; | |
| 938 | |
| 939 #undef INTERFACE | |
| 940 #define INTERFACE IAVIEditStream | |
| 941 DECLARE_INTERFACE_(IAVIEditStream,IUnknown) { | |
| 942 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | |
| 943 STDMETHOD_(ULONG,AddRef) (THIS) PURE; | |
| 944 STDMETHOD_(ULONG,Release) (THIS) PURE; | |
| 945 STDMETHOD(Cut) (THIS_ LONG *plStart,LONG *plLength,PAVISTREAM *ppResult) PURE; | |
| 946 STDMETHOD(Copy) (THIS_ LONG *plStart,LONG *plLength,PAVISTREAM *ppResult) PURE; | |
| 947 STDMETHOD(Paste) (THIS_ LONG *plPos,LONG *plLength,PAVISTREAM pstream,LONG lStart,LONG lEnd) PURE; | |
| 948 STDMETHOD(Clone) (THIS_ PAVISTREAM *ppResult) PURE; | |
| 949 STDMETHOD(SetInfo) (THIS_ AVISTREAMINFOW *lpInfo,LONG cbInfo) PURE; | |
| 950 }; | |
| 951 | |
| 952 typedef IAVIEditStream *PAVIEDITSTREAM; | |
| 953 | |
| 954 #undef INTERFACE | |
| 955 #define INTERFACE IAVIPersistFile | |
| 956 DECLARE_INTERFACE_(IAVIPersistFile,IPersistFile) { | |
| 957 STDMETHOD(Reserved1)(THIS) PURE; | |
| 958 }; | |
| 959 | |
| 960 typedef IAVIPersistFile *PAVIPERSISTFILE; | |
| 961 | |
| 962 #undef INTERFACE | |
| 963 #define INTERFACE IAVIFile | |
| 964 #define PAVIFILE IAVIFile * | |
| 965 DECLARE_INTERFACE_(IAVIFile,IUnknown) { | |
| 966 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | |
| 967 STDMETHOD_(ULONG,AddRef) (THIS) PURE; | |
| 968 STDMETHOD_(ULONG,Release) (THIS) PURE; | |
| 969 STDMETHOD(Info) (THIS_ AVIFILEINFOW *pfi,LONG lSize) PURE; | |
| 970 STDMETHOD(GetStream) (THIS_ PAVISTREAM *ppStream,DWORD fccType,LONG lParam) PURE; | |
| 971 STDMETHOD(CreateStream) (THIS_ PAVISTREAM *ppStream,AVISTREAMINFOW *psi) PURE; | |
| 972 STDMETHOD(WriteData) (THIS_ DWORD ckid,LPVOID lpData,LONG cbData) PURE; | |
| 973 STDMETHOD(ReadData) (THIS_ DWORD ckid,LPVOID lpData,LONG *lpcbData) PURE; | |
| 974 STDMETHOD(EndRecord) (THIS) PURE; | |
| 975 STDMETHOD(DeleteStream) (THIS_ DWORD fccType,LONG lParam) PURE; | |
| 976 }; | |
| 977 | |
| 978 #undef PAVIFILE | |
| 979 typedef IAVIFile *PAVIFILE; | |
| 980 | |
| 981 #undef INTERFACE | |
| 982 #define INTERFACE IGetFrame | |
| 983 #define PGETFRAME IGetFrame * | |
| 984 DECLARE_INTERFACE_(IGetFrame,IUnknown) { | |
| 985 STDMETHOD(QueryInterface) (THIS_ REFIID riid,LPVOID *ppvObj) PURE; | |
| 986 STDMETHOD_(ULONG,AddRef) (THIS) PURE; | |
| 987 STDMETHOD_(ULONG,Release) (THIS) PURE; | |
| 988 STDMETHOD_(LPVOID,GetFrame) (THIS_ LONG lPos) PURE; | |
| 989 STDMETHOD(Begin) (THIS_ LONG lStart,LONG lEnd,LONG lRate) PURE; | |
| 990 STDMETHOD(End) (THIS) PURE; | |
| 991 STDMETHOD(SetFormat) (THIS_ LPBITMAPINFOHEADER lpbi,LPVOID lpBits,int x,int y,int dx,int dy) PURE; | |
| 992 }; | |
| 993 | |
| 994 #undef PGETFRAME | |
| 995 typedef IGetFrame *PGETFRAME; | |
| 996 | |
| 997 #define DEFINE_AVIGUID(name,l,w1,w2) DEFINE_GUID(name,l,w1,w2,0xC0,0,0,0,0,0,0,0x46) | |
| 998 | |
| 999 DEFINE_AVIGUID(IID_IAVIFile,0x00020020,0,0); | |
| 1000 DEFINE_AVIGUID(IID_IAVIStream,0x00020021,0,0); | |
| 1001 DEFINE_AVIGUID(IID_IAVIStreaming,0x00020022,0,0); | |
| 1002 DEFINE_AVIGUID(IID_IGetFrame,0x00020023,0,0); | |
| 1003 DEFINE_AVIGUID(IID_IAVIEditStream,0x00020024,0,0); | |
| 1004 DEFINE_AVIGUID(IID_IAVIPersistFile,0x00020025,0,0); | |
| 1005 #ifndef UNICODE | |
| 1006 DEFINE_AVIGUID(CLSID_AVISimpleUnMarshal,0x00020009,0,0); | |
| 1007 #endif | |
| 1008 | |
| 1009 DEFINE_AVIGUID(CLSID_AVIFile,0x00020000,0,0); | |
| 1010 | |
| 1011 #define AVIFILEHANDLER_CANREAD 0x0001 | |
| 1012 #define AVIFILEHANDLER_CANWRITE 0x0002 | |
| 1013 #define AVIFILEHANDLER_CANACCEPTNONRGB 0x0004 | |
| 1014 | |
| 1015 #ifdef UNICODE | |
| 1016 #define AVIFileOpen AVIFileOpenW | |
| 1017 #define AVIFileInfo AVIFileInfoW | |
| 1018 #define AVIFileCreateStream AVIFileCreateStreamW | |
| 1019 #define AVIStreamInfo AVIStreamInfoW | |
| 1020 #define AVIStreamOpenFromFile AVIStreamOpenFromFileW | |
| 1021 #else | |
| 1022 #define AVIFileOpen AVIFileOpenA | |
| 1023 #define AVIFileInfo AVIFileInfoA | |
| 1024 #define AVIFileCreateStream AVIFileCreateStreamA | |
| 1025 #define AVIStreamInfo AVIStreamInfoA | |
| 1026 #define AVIStreamOpenFromFile AVIStreamOpenFromFileA | |
| 1027 #endif | |
| 1028 | |
| 1029 STDAPI_(void) AVIFileInit(void); | |
| 1030 STDAPI_(void) AVIFileExit(void); | |
| 1031 STDAPI_(ULONG) AVIFileAddRef (PAVIFILE pfile); | |
| 1032 STDAPI_(ULONG) AVIFileRelease (PAVIFILE pfile); | |
| 1033 STDAPI AVIFileOpenA (PAVIFILE *ppfile,LPCSTR szFile,UINT uMode,LPCLSID lpHandler); | |
| 1034 STDAPI AVIFileOpenW (PAVIFILE *ppfile,LPCWSTR szFile,UINT uMode,LPCLSID lpHandler); | |
| 1035 STDAPI AVIFileInfoW (PAVIFILE pfile,LPAVIFILEINFOW pfi,LONG lSize); | |
| 1036 STDAPI AVIFileInfoA (PAVIFILE pfile,LPAVIFILEINFOA pfi,LONG lSize); | |
| 1037 STDAPI AVIFileGetStream (PAVIFILE pfile,PAVISTREAM *ppavi,DWORD fccType,LONG lParam); | |
| 1038 STDAPI AVIFileCreateStreamW (PAVIFILE pfile,PAVISTREAM *ppavi,AVISTREAMINFOW *psi); | |
| 1039 STDAPI AVIFileCreateStreamA (PAVIFILE pfile,PAVISTREAM *ppavi,AVISTREAMINFOA *psi); | |
| 1040 STDAPI AVIFileWriteData (PAVIFILE pfile,DWORD ckid,LPVOID lpData,LONG cbData); | |
| 1041 STDAPI AVIFileReadData (PAVIFILE pfile,DWORD ckid,LPVOID lpData,LONG *lpcbData); | |
| 1042 STDAPI AVIFileEndRecord (PAVIFILE pfile); | |
| 1043 STDAPI_(ULONG) AVIStreamAddRef (PAVISTREAM pavi); | |
| 1044 STDAPI_(ULONG) AVIStreamRelease (PAVISTREAM pavi); | |
| 1045 STDAPI AVIStreamInfoW (PAVISTREAM pavi,LPAVISTREAMINFOW psi,LONG lSize); | |
| 1046 STDAPI AVIStreamInfoA (PAVISTREAM pavi,LPAVISTREAMINFOA psi,LONG lSize); | |
| 1047 STDAPI_(LONG) AVIStreamFindSample(PAVISTREAM pavi,LONG lPos,LONG lFlags); | |
| 1048 STDAPI AVIStreamReadFormat (PAVISTREAM pavi,LONG lPos,LPVOID lpFormat,LONG *lpcbFormat); | |
| 1049 STDAPI AVIStreamSetFormat (PAVISTREAM pavi,LONG lPos,LPVOID lpFormat,LONG cbFormat); | |
| 1050 STDAPI AVIStreamReadData (PAVISTREAM pavi,DWORD fcc,LPVOID lp,LONG *lpcb); | |
| 1051 STDAPI AVIStreamWriteData (PAVISTREAM pavi,DWORD fcc,LPVOID lp,LONG cb); | |
| 1052 STDAPI AVIStreamRead (PAVISTREAM pavi,LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,LONG *plBytes,LONG *plSamples); | |
| 1053 #define AVISTREAMREAD_CONVENIENT (-1L) | |
| 1054 STDAPI AVIStreamWrite (PAVISTREAM pavi,LONG lStart,LONG lSamples,LPVOID lpBuffer,LONG cbBuffer,DWORD dwFlags,LONG *plSampWritten,LONG *plBytesWritten); | |
| 1055 STDAPI_(LONG) AVIStreamStart (PAVISTREAM pavi); | |
| 1056 STDAPI_(LONG) AVIStreamLength (PAVISTREAM pavi); | |
| 1057 STDAPI_(LONG) AVIStreamTimeToSample (PAVISTREAM pavi,LONG lTime); | |
| 1058 STDAPI_(LONG) AVIStreamSampleToTime (PAVISTREAM pavi,LONG lSample); | |
| 1059 STDAPI AVIStreamBeginStreaming(PAVISTREAM pavi,LONG lStart,LONG lEnd,LONG lRate); | |
| 1060 STDAPI AVIStreamEndStreaming(PAVISTREAM pavi); | |
| 1061 STDAPI_(PGETFRAME) AVIStreamGetFrameOpen(PAVISTREAM pavi,LPBITMAPINFOHEADER lpbiWanted); | |
| 1062 STDAPI_(LPVOID) AVIStreamGetFrame(PGETFRAME pg,LONG lPos); | |
| 1063 STDAPI AVIStreamGetFrameClose(PGETFRAME pg); | |
| 1064 STDAPI AVIStreamOpenFromFileA(PAVISTREAM *ppavi,LPCSTR szFile,DWORD fccType,LONG lParam,UINT mode,CLSID *pclsidHandler); | |
| 1065 STDAPI AVIStreamOpenFromFileW(PAVISTREAM *ppavi,LPCWSTR szFile,DWORD fccType,LONG lParam,UINT mode,CLSID *pclsidHandler); | |
| 1066 STDAPI AVIStreamCreate(PAVISTREAM *ppavi,LONG lParam1,LONG lParam2,CLSID *pclsidHandler); | |
| 1067 | |
| 1068 #define FIND_DIR 0x0000000FL | |
| 1069 #define FIND_NEXT 0x00000001L | |
| 1070 #define FIND_PREV 0x00000004L | |
| 1071 #define FIND_FROM_START 0x00000008L | |
| 1072 | |
| 1073 #define FIND_TYPE 0x000000F0L | |
| 1074 #define FIND_KEY 0x00000010L | |
| 1075 #define FIND_ANY 0x00000020L | |
| 1076 #define FIND_FORMAT 0x00000040L | |
| 1077 | |
| 1078 #define FIND_RET 0x0000F000L | |
| 1079 #define FIND_POS 0x00000000L | |
| 1080 #define FIND_LENGTH 0x00001000L | |
| 1081 #define FIND_OFFSET 0x00002000L | |
| 1082 #define FIND_SIZE 0x00003000L | |
| 1083 #define FIND_INDEX 0x00004000L | |
| 1084 | |
| 1085 #define AVIStreamFindKeyFrame AVIStreamFindSample | |
| 1086 #define FindKeyFrame FindSample | |
| 1087 | |
| 1088 #define AVIStreamClose AVIStreamRelease | |
| 1089 #define AVIFileClose AVIFileRelease | |
| 1090 #define AVIStreamInit AVIFileInit | |
| 1091 #define AVIStreamExit AVIFileExit | |
| 1092 | |
| 1093 #define SEARCH_NEAREST FIND_PREV | |
| 1094 #define SEARCH_BACKWARD FIND_PREV | |
| 1095 #define SEARCH_FORWARD FIND_NEXT | |
| 1096 #define SEARCH_KEY FIND_KEY | |
| 1097 #define SEARCH_ANY FIND_ANY | |
| 1098 | |
| 1099 #define AVIStreamSampleToSample(pavi1,pavi2,l) AVIStreamTimeToSample(pavi1,AVIStreamSampleToTime(pavi2,l)) | |
| 1100 #define AVIStreamNextSample(pavi,l) AVIStreamFindSample(pavi,l+1,FIND_NEXT|FIND_ANY) | |
| 1101 #define AVIStreamPrevSample(pavi,l) AVIStreamFindSample(pavi,l-1,FIND_PREV|FIND_ANY) | |
| 1102 #define AVIStreamNearestSample(pavi,l) AVIStreamFindSample(pavi,l,FIND_PREV|FIND_ANY) | |
| 1103 #define AVIStreamNextKeyFrame(pavi,l) AVIStreamFindSample(pavi,l+1,FIND_NEXT|FIND_KEY) | |
| 1104 #define AVIStreamPrevKeyFrame(pavi,l) AVIStreamFindSample(pavi,l-1,FIND_PREV|FIND_KEY) | |
| 1105 #define AVIStreamNearestKeyFrame(pavi,l) AVIStreamFindSample(pavi,l,FIND_PREV|FIND_KEY) | |
| 1106 #define AVIStreamIsKeyFrame(pavi,l) (AVIStreamNearestKeyFrame(pavi,l)==l) | |
| 1107 #define AVIStreamPrevSampleTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamPrevSample(pavi,AVIStreamTimeToSample(pavi,t))) | |
| 1108 #define AVIStreamNextSampleTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamNextSample(pavi,AVIStreamTimeToSample(pavi,t))) | |
| 1109 #define AVIStreamNearestSampleTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamNearestSample(pavi,AVIStreamTimeToSample(pavi,t))) | |
| 1110 #define AVIStreamNextKeyFrameTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamNextKeyFrame(pavi,AVIStreamTimeToSample(pavi,t))) | |
| 1111 #define AVIStreamPrevKeyFrameTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamPrevKeyFrame(pavi,AVIStreamTimeToSample(pavi,t))) | |
| 1112 #define AVIStreamNearestKeyFrameTime(pavi,t) AVIStreamSampleToTime(pavi,AVIStreamNearestKeyFrame(pavi,AVIStreamTimeToSample(pavi,t))) | |
| 1113 #define AVIStreamStartTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamStart(pavi)) | |
| 1114 #define AVIStreamLengthTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamLength(pavi)) | |
| 1115 #define AVIStreamEnd(pavi) (AVIStreamStart(pavi) + AVIStreamLength(pavi)) | |
| 1116 #define AVIStreamEndTime(pavi) AVIStreamSampleToTime(pavi,AVIStreamEnd(pavi)) | |
| 1117 #define AVIStreamSampleSize(pavi,lPos,plSize) AVIStreamRead(pavi,lPos,1,NULL,0,plSize,NULL) | |
| 1118 #define AVIStreamFormatSize(pavi,lPos,plSize) AVIStreamReadFormat(pavi,lPos,NULL,plSize) | |
| 1119 #define AVIStreamDataSize(pavi,fcc,plSize) AVIStreamReadData(pavi,fcc,NULL,plSize) | |
| 1120 | |
| 1121 #ifndef comptypeDIB | |
| 1122 #define comptypeDIB mmioFOURCC('D','I','B',' ') | |
| 1123 #endif | |
| 1124 | |
| 1125 #ifdef UNICODE | |
| 1126 #define AVISave AVISaveW | |
| 1127 #define AVISaveV AVISaveVW | |
| 1128 #define AVIBuildFilter AVIBuildFilterW | |
| 1129 #define EditStreamSetInfo EditStreamSetInfoW | |
| 1130 #define EditStreamSetName EditStreamSetNameW | |
| 1131 #else | |
| 1132 #define AVISave AVISaveA | |
| 1133 #define AVISaveV AVISaveVA | |
| 1134 #define AVIBuildFilter AVIBuildFilterA | |
| 1135 #define EditStreamSetInfo EditStreamSetInfoA | |
| 1136 #define EditStreamSetName EditStreamSetNameA | |
| 1137 #endif | |
| 1138 | |
| 1139 STDAPI AVIMakeCompressedStream(PAVISTREAM *ppsCompressed,PAVISTREAM ppsSource,AVICOMPRESSOPTIONS *lpOptions,CLSID *pclsidHandler); | |
| 1140 EXTERN_C HRESULT CDECL AVISaveA (LPCSTR szFile,CLSID *pclsidHandler,AVISAVECALLBACK lpfnCallback,int nStreams,PAVISTREAM pfile,LPAVICOMPRESSOPTIONS lpOptions,...); | |
| 1141 STDAPI AVISaveVA(LPCSTR szFile,CLSID *pclsidHandler,AVISAVECALLBACK lpfnCallback,int nStreams,PAVISTREAM *ppavi,LPAVICOMPRESSOPTIONS *plpOptions); | |
| 1142 EXTERN_C HRESULT CDECL AVISaveW (LPCWSTR szFile,CLSID *pclsidHandler,AVISAVECALLBACK lpfnCallback,int nStreams,PAVISTREAM pfile,LPAVICOMPRESSOPTIONS lpOptions,...); | |
| 1143 STDAPI AVISaveVW(LPCWSTR szFile,CLSID *pclsidHandler,AVISAVECALLBACK lpfnCallback,int nStreams,PAVISTREAM *ppavi,LPAVICOMPRESSOPTIONS *plpOptions); | |
| 1144 STDAPI_(INT_PTR) AVISaveOptions(HWND hwnd,UINT uiFlags,int nStreams,PAVISTREAM *ppavi,LPAVICOMPRESSOPTIONS *plpOptions); | |
| 1145 STDAPI AVISaveOptionsFree(int nStreams,LPAVICOMPRESSOPTIONS *plpOptions); | |
| 1146 STDAPI AVIBuildFilterW(LPWSTR lpszFilter,LONG cbFilter,WINBOOL fSaving); | |
| 1147 STDAPI AVIBuildFilterA(LPSTR lpszFilter,LONG cbFilter,WINBOOL fSaving); | |
| 1148 STDAPI AVIMakeFileFromStreams(PAVIFILE *ppfile,int nStreams,PAVISTREAM *papStreams); | |
| 1149 STDAPI AVIMakeStreamFromClipboard(UINT cfFormat,HANDLE hGlobal,PAVISTREAM *ppstream); | |
| 1150 STDAPI AVIPutFileOnClipboard(PAVIFILE pf); | |
| 1151 STDAPI AVIGetFromClipboard(PAVIFILE *lppf); | |
| 1152 STDAPI AVIClearClipboard(void); | |
| 1153 STDAPI CreateEditableStream(PAVISTREAM *ppsEditable,PAVISTREAM psSource); | |
| 1154 STDAPI EditStreamCut(PAVISTREAM pavi,LONG *plStart,LONG *plLength,PAVISTREAM *ppResult); | |
| 1155 STDAPI EditStreamCopy(PAVISTREAM pavi,LONG *plStart,LONG *plLength,PAVISTREAM *ppResult); | |
| 1156 STDAPI EditStreamPaste(PAVISTREAM pavi,LONG *plPos,LONG *plLength,PAVISTREAM pstream,LONG lStart,LONG lEnd); | |
| 1157 STDAPI EditStreamClone(PAVISTREAM pavi,PAVISTREAM *ppResult); | |
| 1158 STDAPI EditStreamSetNameA(PAVISTREAM pavi,LPCSTR lpszName); | |
| 1159 STDAPI EditStreamSetNameW(PAVISTREAM pavi,LPCWSTR lpszName); | |
| 1160 STDAPI EditStreamSetInfoW(PAVISTREAM pavi,LPAVISTREAMINFOW lpInfo,LONG cbInfo); | |
| 1161 STDAPI EditStreamSetInfoA(PAVISTREAM pavi,LPAVISTREAMINFOA lpInfo,LONG cbInfo); | |
| 1162 | |
| 1163 #ifndef AVIERR_OK | |
| 1164 #define AVIERR_OK 0L | |
| 1165 | |
| 1166 #define MAKE_AVIERR(error) MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x4000 + error) | |
| 1167 | |
| 1168 #define AVIERR_UNSUPPORTED MAKE_AVIERR(101) | |
| 1169 #define AVIERR_BADFORMAT MAKE_AVIERR(102) | |
| 1170 #define AVIERR_MEMORY MAKE_AVIERR(103) | |
| 1171 #define AVIERR_INTERNAL MAKE_AVIERR(104) | |
| 1172 #define AVIERR_BADFLAGS MAKE_AVIERR(105) | |
| 1173 #define AVIERR_BADPARAM MAKE_AVIERR(106) | |
| 1174 #define AVIERR_BADSIZE MAKE_AVIERR(107) | |
| 1175 #define AVIERR_BADHANDLE MAKE_AVIERR(108) | |
| 1176 #define AVIERR_FILEREAD MAKE_AVIERR(109) | |
| 1177 #define AVIERR_FILEWRITE MAKE_AVIERR(110) | |
| 1178 #define AVIERR_FILEOPEN MAKE_AVIERR(111) | |
| 1179 #define AVIERR_COMPRESSOR MAKE_AVIERR(112) | |
| 1180 #define AVIERR_NOCOMPRESSOR MAKE_AVIERR(113) | |
| 1181 #define AVIERR_READONLY MAKE_AVIERR(114) | |
| 1182 #define AVIERR_NODATA MAKE_AVIERR(115) | |
| 1183 #define AVIERR_BUFFERTOOSMALL MAKE_AVIERR(116) | |
| 1184 #define AVIERR_CANTCOMPRESS MAKE_AVIERR(117) | |
| 1185 #define AVIERR_USERABORT MAKE_AVIERR(198) | |
| 1186 #define AVIERR_ERROR MAKE_AVIERR(199) | |
| 1187 #endif | |
| 1188 #endif | |
| 1189 | |
| 1190 #ifndef NOMCIWND | |
| 1191 | |
| 1192 #ifdef __cplusplus | |
| 1193 #define MCIWndSM ::SendMessage | |
| 1194 #else | |
| 1195 #define MCIWndSM SendMessage | |
| 1196 #endif | |
| 1197 | |
| 1198 #define MCIWND_WINDOW_CLASS TEXT("MCIWndClass") | |
| 1199 | |
| 1200 #ifdef UNICODE | |
| 1201 #define MCIWndCreate MCIWndCreateW | |
| 1202 #else | |
| 1203 #define MCIWndCreate MCIWndCreateA | |
| 1204 #endif | |
| 1205 | |
| 1206 HWND WINAPIV MCIWndCreateA(HWND hwndParent,HINSTANCE hInstance,DWORD dwStyle,LPCSTR szFile); | |
| 1207 HWND WINAPIV MCIWndCreateW(HWND hwndParent,HINSTANCE hInstance,DWORD dwStyle,LPCWSTR szFile); | |
| 1208 WINBOOL WINAPIV MCIWndRegisterClass(void); | |
| 1209 | |
| 1210 #define MCIWNDOPENF_NEW 0x0001 | |
| 1211 | |
| 1212 #define MCIWNDF_NOAUTOSIZEWINDOW 0x0001 | |
| 1213 #define MCIWNDF_NOPLAYBAR 0x0002 | |
| 1214 #define MCIWNDF_NOAUTOSIZEMOVIE 0x0004 | |
| 1215 #define MCIWNDF_NOMENU 0x0008 | |
| 1216 #define MCIWNDF_SHOWNAME 0x0010 | |
| 1217 #define MCIWNDF_SHOWPOS 0x0020 | |
| 1218 #define MCIWNDF_SHOWMODE 0x0040 | |
| 1219 #define MCIWNDF_SHOWALL 0x0070 | |
| 1220 | |
| 1221 #define MCIWNDF_NOTIFYMODE 0x0100 | |
| 1222 #define MCIWNDF_NOTIFYPOS 0x0200 | |
| 1223 #define MCIWNDF_NOTIFYSIZE 0x0400 | |
| 1224 #define MCIWNDF_NOTIFYERROR 0x1000 | |
| 1225 #define MCIWNDF_NOTIFYALL 0x1F00 | |
| 1226 | |
| 1227 #define MCIWNDF_NOTIFYANSI 0x0080 | |
| 1228 | |
| 1229 #define MCIWNDF_NOTIFYMEDIAA 0x0880 | |
| 1230 #define MCIWNDF_NOTIFYMEDIAW 0x0800 | |
| 1231 | |
| 1232 #ifdef UNICODE | |
| 1233 #define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAW | |
| 1234 #else | |
| 1235 #define MCIWNDF_NOTIFYMEDIA MCIWNDF_NOTIFYMEDIAA | |
| 1236 #endif | |
| 1237 | |
| 1238 #define MCIWNDF_RECORD 0x2000 | |
| 1239 #define MCIWNDF_NOERRORDLG 0x4000 | |
| 1240 #define MCIWNDF_NOOPEN 0x8000 | |
| 1241 | |
| 1242 #define MCIWndCanPlay(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_PLAY,0,0) | |
| 1243 #define MCIWndCanRecord(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_RECORD,0,0) | |
| 1244 #define MCIWndCanSave(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_SAVE,0,0) | |
| 1245 #define MCIWndCanWindow(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_WINDOW,0,0) | |
| 1246 #define MCIWndCanEject(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_EJECT,0,0) | |
| 1247 #define MCIWndCanConfig(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_CAN_CONFIG,0,0) | |
| 1248 #define MCIWndPaletteKick(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_PALETTEKICK,0,0) | |
| 1249 | |
| 1250 #define MCIWndSave(hwnd,szFile) (LONG)MCIWndSM(hwnd,MCI_SAVE,0,(LPARAM)(LPVOID)(szFile)) | |
| 1251 #define MCIWndSaveDialog(hwnd) MCIWndSave(hwnd,-1) | |
| 1252 | |
| 1253 #define MCIWndNew(hwnd,lp) (LONG)MCIWndSM(hwnd,MCIWNDM_NEW,0,(LPARAM)(LPVOID)(lp)) | |
| 1254 | |
| 1255 #define MCIWndRecord(hwnd) (LONG)MCIWndSM(hwnd,MCI_RECORD,0,0) | |
| 1256 #define MCIWndOpen(hwnd,sz,f) (LONG)MCIWndSM(hwnd,MCIWNDM_OPEN,(WPARAM)(UINT)(f),(LPARAM)(LPVOID)(sz)) | |
| 1257 #define MCIWndOpenDialog(hwnd) MCIWndOpen(hwnd,-1,0) | |
| 1258 #define MCIWndClose(hwnd) (LONG)MCIWndSM(hwnd,MCI_CLOSE,0,0) | |
| 1259 #define MCIWndPlay(hwnd) (LONG)MCIWndSM(hwnd,MCI_PLAY,0,0) | |
| 1260 #define MCIWndStop(hwnd) (LONG)MCIWndSM(hwnd,MCI_STOP,0,0) | |
| 1261 #define MCIWndPause(hwnd) (LONG)MCIWndSM(hwnd,MCI_PAUSE,0,0) | |
| 1262 #define MCIWndResume(hwnd) (LONG)MCIWndSM(hwnd,MCI_RESUME,0,0) | |
| 1263 #define MCIWndSeek(hwnd,lPos) (LONG)MCIWndSM(hwnd,MCI_SEEK,0,(LPARAM)(LONG)(lPos)) | |
| 1264 #define MCIWndEject(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_EJECT,0,0) | |
| 1265 | |
| 1266 #define MCIWndHome(hwnd) MCIWndSeek(hwnd,MCIWND_START) | |
| 1267 #define MCIWndEnd(hwnd) MCIWndSeek(hwnd,MCIWND_END) | |
| 1268 | |
| 1269 #define MCIWndGetSource(hwnd,prc) (LONG)MCIWndSM(hwnd,MCIWNDM_GET_SOURCE,0,(LPARAM)(LPRECT)(prc)) | |
| 1270 #define MCIWndPutSource(hwnd,prc) (LONG)MCIWndSM(hwnd,MCIWNDM_PUT_SOURCE,0,(LPARAM)(LPRECT)(prc)) | |
| 1271 | |
| 1272 #define MCIWndGetDest(hwnd,prc) (LONG)MCIWndSM(hwnd,MCIWNDM_GET_DEST,0,(LPARAM)(LPRECT)(prc)) | |
| 1273 #define MCIWndPutDest(hwnd,prc) (LONG)MCIWndSM(hwnd,MCIWNDM_PUT_DEST,0,(LPARAM)(LPRECT)(prc)) | |
| 1274 | |
| 1275 #define MCIWndPlayReverse(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_PLAYREVERSE,0,0) | |
| 1276 #define MCIWndPlayFrom(hwnd,lPos) (LONG)MCIWndSM(hwnd,MCIWNDM_PLAYFROM,0,(LPARAM)(LONG)(lPos)) | |
| 1277 #define MCIWndPlayTo(hwnd,lPos) (LONG)MCIWndSM(hwnd,MCIWNDM_PLAYTO,0,(LPARAM)(LONG)(lPos)) | |
| 1278 #define MCIWndPlayFromTo(hwnd,lStart,lEnd) (MCIWndSeek(hwnd,lStart),MCIWndPlayTo(hwnd,lEnd)) | |
| 1279 | |
| 1280 #define MCIWndGetDeviceID(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETDEVICEID,0,0) | |
| 1281 #define MCIWndGetAlias(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETALIAS,0,0) | |
| 1282 #define MCIWndGetMode(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETMODE,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp)) | |
| 1283 #define MCIWndGetPosition(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETPOSITION,0,0) | |
| 1284 #define MCIWndGetPositionString(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETPOSITION,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp)) | |
| 1285 #define MCIWndGetStart(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETSTART,0,0) | |
| 1286 #define MCIWndGetLength(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETLENGTH,0,0) | |
| 1287 #define MCIWndGetEnd(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETEND,0,0) | |
| 1288 | |
| 1289 #define MCIWndStep(hwnd,n) (LONG)MCIWndSM(hwnd,MCI_STEP,0,(LPARAM)(long)(n)) | |
| 1290 | |
| 1291 #define MCIWndDestroy(hwnd) (VOID)MCIWndSM(hwnd,WM_CLOSE,0,0) | |
| 1292 #define MCIWndSetZoom(hwnd,iZoom) (VOID)MCIWndSM(hwnd,MCIWNDM_SETZOOM,0,(LPARAM)(UINT)(iZoom)) | |
| 1293 #define MCIWndGetZoom(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETZOOM,0,0) | |
| 1294 #define MCIWndSetVolume(hwnd,iVol) (LONG)MCIWndSM(hwnd,MCIWNDM_SETVOLUME,0,(LPARAM)(UINT)(iVol)) | |
| 1295 #define MCIWndGetVolume(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETVOLUME,0,0) | |
| 1296 #define MCIWndSetSpeed(hwnd,iSpeed) (LONG)MCIWndSM(hwnd,MCIWNDM_SETSPEED,0,(LPARAM)(UINT)(iSpeed)) | |
| 1297 #define MCIWndGetSpeed(hwnd) (LONG)MCIWndSM(hwnd,MCIWNDM_GETSPEED,0,0) | |
| 1298 #define MCIWndSetTimeFormat(hwnd,lp) (LONG)MCIWndSM(hwnd,MCIWNDM_SETTIMEFORMAT,0,(LPARAM)(LPTSTR)(lp)) | |
| 1299 #define MCIWndGetTimeFormat(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETTIMEFORMAT,(WPARAM)(UINT)(len),(LPARAM)(LPTSTR)(lp)) | |
| 1300 #define MCIWndValidateMedia(hwnd) (VOID)MCIWndSM(hwnd,MCIWNDM_VALIDATEMEDIA,0,0) | |
| 1301 | |
| 1302 #define MCIWndSetRepeat(hwnd,f) (void)MCIWndSM(hwnd,MCIWNDM_SETREPEAT,0,(LPARAM)(WINBOOL)(f)) | |
| 1303 #define MCIWndGetRepeat(hwnd) (WINBOOL)MCIWndSM(hwnd,MCIWNDM_GETREPEAT,0,0) | |
| 1304 | |
| 1305 #define MCIWndUseFrames(hwnd) MCIWndSetTimeFormat(hwnd,TEXT("frames")) | |
| 1306 #define MCIWndUseTime(hwnd) MCIWndSetTimeFormat(hwnd,TEXT("ms")) | |
| 1307 | |
| 1308 #define MCIWndSetActiveTimer(hwnd,active) (VOID)MCIWndSM(hwnd,MCIWNDM_SETACTIVETIMER,(WPARAM)(UINT)(active),0L) | |
| 1309 #define MCIWndSetInactiveTimer(hwnd,inactive) (VOID)MCIWndSM(hwnd,MCIWNDM_SETINACTIVETIMER,(WPARAM)(UINT)(inactive),0L) | |
| 1310 #define MCIWndSetTimers(hwnd,active,inactive) (VOID)MCIWndSM(hwnd,MCIWNDM_SETTIMERS,(WPARAM)(UINT)(active),(LPARAM)(UINT)(inactive)) | |
| 1311 #define MCIWndGetActiveTimer(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETACTIVETIMER,0,0L); | |
| 1312 #define MCIWndGetInactiveTimer(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETINACTIVETIMER,0,0L); | |
| 1313 | |
| 1314 #define MCIWndRealize(hwnd,fBkgnd) (LONG)MCIWndSM(hwnd,MCIWNDM_REALIZE,(WPARAM)(WINBOOL)(fBkgnd),0) | |
| 1315 | |
| 1316 #define MCIWndSendString(hwnd,sz) (LONG)MCIWndSM(hwnd,MCIWNDM_SENDSTRING,0,(LPARAM)(LPTSTR)(sz)) | |
| 1317 #define MCIWndReturnString(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_RETURNSTRING,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp)) | |
| 1318 #define MCIWndGetError(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETERROR,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp)) | |
| 1319 | |
| 1320 #define MCIWndGetPalette(hwnd) (HPALETTE)MCIWndSM(hwnd,MCIWNDM_GETPALETTE,0,0) | |
| 1321 #define MCIWndSetPalette(hwnd,hpal) (LONG)MCIWndSM(hwnd,MCIWNDM_SETPALETTE,(WPARAM)(HPALETTE)(hpal),0) | |
| 1322 | |
| 1323 #define MCIWndGetFileName(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETFILENAME,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp)) | |
| 1324 #define MCIWndGetDevice(hwnd,lp,len) (LONG)MCIWndSM(hwnd,MCIWNDM_GETDEVICE,(WPARAM)(UINT)(len),(LPARAM)(LPVOID)(lp)) | |
| 1325 | |
| 1326 #define MCIWndGetStyles(hwnd) (UINT)MCIWndSM(hwnd,MCIWNDM_GETSTYLES,0,0L) | |
| 1327 #define MCIWndChangeStyles(hwnd,mask,value) (LONG)MCIWndSM(hwnd,MCIWNDM_CHANGESTYLES,(WPARAM)(UINT)(mask),(LPARAM)(LONG)(value)) | |
| 1328 | |
| 1329 #define MCIWndOpenInterface(hwnd,pUnk) (LONG)MCIWndSM(hwnd,MCIWNDM_OPENINTERFACE,0,(LPARAM)(LPUNKNOWN)(pUnk)) | |
| 1330 | |
| 1331 #define MCIWndSetOwner(hwnd,hwndP) (LONG)MCIWndSM(hwnd,MCIWNDM_SETOWNER,(WPARAM)(hwndP),0) | |
| 1332 | |
| 1333 #define MCIWNDM_GETDEVICEID (WM_USER + 100) | |
| 1334 #define MCIWNDM_GETSTART (WM_USER + 103) | |
| 1335 #define MCIWNDM_GETLENGTH (WM_USER + 104) | |
| 1336 #define MCIWNDM_GETEND (WM_USER + 105) | |
| 1337 #define MCIWNDM_EJECT (WM_USER + 107) | |
| 1338 #define MCIWNDM_SETZOOM (WM_USER + 108) | |
| 1339 #define MCIWNDM_GETZOOM (WM_USER + 109) | |
| 1340 #define MCIWNDM_SETVOLUME (WM_USER + 110) | |
| 1341 #define MCIWNDM_GETVOLUME (WM_USER + 111) | |
| 1342 #define MCIWNDM_SETSPEED (WM_USER + 112) | |
| 1343 #define MCIWNDM_GETSPEED (WM_USER + 113) | |
| 1344 #define MCIWNDM_SETREPEAT (WM_USER + 114) | |
| 1345 #define MCIWNDM_GETREPEAT (WM_USER + 115) | |
| 1346 #define MCIWNDM_REALIZE (WM_USER + 118) | |
| 1347 #define MCIWNDM_VALIDATEMEDIA (WM_USER + 121) | |
| 1348 #define MCIWNDM_PLAYFROM (WM_USER + 122) | |
| 1349 #define MCIWNDM_PLAYTO (WM_USER + 123) | |
| 1350 #define MCIWNDM_GETPALETTE (WM_USER + 126) | |
| 1351 #define MCIWNDM_SETPALETTE (WM_USER + 127) | |
| 1352 #define MCIWNDM_SETTIMERS (WM_USER + 129) | |
| 1353 #define MCIWNDM_SETACTIVETIMER (WM_USER + 130) | |
| 1354 #define MCIWNDM_SETINACTIVETIMER (WM_USER + 131) | |
| 1355 #define MCIWNDM_GETACTIVETIMER (WM_USER + 132) | |
| 1356 #define MCIWNDM_GETINACTIVETIMER (WM_USER + 133) | |
| 1357 #define MCIWNDM_CHANGESTYLES (WM_USER + 135) | |
| 1358 #define MCIWNDM_GETSTYLES (WM_USER + 136) | |
| 1359 #define MCIWNDM_GETALIAS (WM_USER + 137) | |
| 1360 #define MCIWNDM_PLAYREVERSE (WM_USER + 139) | |
| 1361 #define MCIWNDM_GET_SOURCE (WM_USER + 140) | |
| 1362 #define MCIWNDM_PUT_SOURCE (WM_USER + 141) | |
| 1363 #define MCIWNDM_GET_DEST (WM_USER + 142) | |
| 1364 #define MCIWNDM_PUT_DEST (WM_USER + 143) | |
| 1365 #define MCIWNDM_CAN_PLAY (WM_USER + 144) | |
| 1366 #define MCIWNDM_CAN_WINDOW (WM_USER + 145) | |
| 1367 #define MCIWNDM_CAN_RECORD (WM_USER + 146) | |
| 1368 #define MCIWNDM_CAN_SAVE (WM_USER + 147) | |
| 1369 #define MCIWNDM_CAN_EJECT (WM_USER + 148) | |
| 1370 #define MCIWNDM_CAN_CONFIG (WM_USER + 149) | |
| 1371 #define MCIWNDM_PALETTEKICK (WM_USER + 150) | |
| 1372 #define MCIWNDM_OPENINTERFACE (WM_USER + 151) | |
| 1373 #define MCIWNDM_SETOWNER (WM_USER + 152) | |
| 1374 | |
| 1375 #define MCIWNDM_SENDSTRINGA (WM_USER + 101) | |
| 1376 #define MCIWNDM_GETPOSITIONA (WM_USER + 102) | |
| 1377 #define MCIWNDM_GETMODEA (WM_USER + 106) | |
| 1378 #define MCIWNDM_SETTIMEFORMATA (WM_USER + 119) | |
| 1379 #define MCIWNDM_GETTIMEFORMATA (WM_USER + 120) | |
| 1380 #define MCIWNDM_GETFILENAMEA (WM_USER + 124) | |
| 1381 #define MCIWNDM_GETDEVICEA (WM_USER + 125) | |
| 1382 #define MCIWNDM_GETERRORA (WM_USER + 128) | |
| 1383 #define MCIWNDM_NEWA (WM_USER + 134) | |
| 1384 #define MCIWNDM_RETURNSTRINGA (WM_USER + 138) | |
| 1385 #define MCIWNDM_OPENA (WM_USER + 153) | |
| 1386 | |
| 1387 #define MCIWNDM_SENDSTRINGW (WM_USER + 201) | |
| 1388 #define MCIWNDM_GETPOSITIONW (WM_USER + 202) | |
| 1389 #define MCIWNDM_GETMODEW (WM_USER + 206) | |
| 1390 #define MCIWNDM_SETTIMEFORMATW (WM_USER + 219) | |
| 1391 #define MCIWNDM_GETTIMEFORMATW (WM_USER + 220) | |
| 1392 #define MCIWNDM_GETFILENAMEW (WM_USER + 224) | |
| 1393 #define MCIWNDM_GETDEVICEW (WM_USER + 225) | |
| 1394 #define MCIWNDM_GETERRORW (WM_USER + 228) | |
| 1395 #define MCIWNDM_NEWW (WM_USER + 234) | |
| 1396 #define MCIWNDM_RETURNSTRINGW (WM_USER + 238) | |
| 1397 #define MCIWNDM_OPENW (WM_USER + 252) | |
| 1398 | |
| 1399 #ifdef UNICODE | |
| 1400 #define MCIWNDM_SENDSTRING MCIWNDM_SENDSTRINGW | |
| 1401 #define MCIWNDM_GETPOSITION MCIWNDM_GETPOSITIONW | |
| 1402 #define MCIWNDM_GETMODE MCIWNDM_GETMODEW | |
| 1403 #define MCIWNDM_SETTIMEFORMAT MCIWNDM_SETTIMEFORMATW | |
| 1404 #define MCIWNDM_GETTIMEFORMAT MCIWNDM_GETTIMEFORMATW | |
| 1405 #define MCIWNDM_GETFILENAME MCIWNDM_GETFILENAMEW | |
| 1406 #define MCIWNDM_GETDEVICE MCIWNDM_GETDEVICEW | |
| 1407 #define MCIWNDM_GETERROR MCIWNDM_GETERRORW | |
| 1408 #define MCIWNDM_NEW MCIWNDM_NEWW | |
| 1409 #define MCIWNDM_RETURNSTRING MCIWNDM_RETURNSTRINGW | |
| 1410 #define MCIWNDM_OPEN MCIWNDM_OPENW | |
| 1411 #else | |
| 1412 #define MCIWNDM_SENDSTRING MCIWNDM_SENDSTRINGA | |
| 1413 #define MCIWNDM_GETPOSITION MCIWNDM_GETPOSITIONA | |
| 1414 #define MCIWNDM_GETMODE MCIWNDM_GETMODEA | |
| 1415 #define MCIWNDM_SETTIMEFORMAT MCIWNDM_SETTIMEFORMATA | |
| 1416 #define MCIWNDM_GETTIMEFORMAT MCIWNDM_GETTIMEFORMATA | |
| 1417 #define MCIWNDM_GETFILENAME MCIWNDM_GETFILENAMEA | |
| 1418 #define MCIWNDM_GETDEVICE MCIWNDM_GETDEVICEA | |
| 1419 #define MCIWNDM_GETERROR MCIWNDM_GETERRORA | |
| 1420 #define MCIWNDM_NEW MCIWNDM_NEWA | |
| 1421 #define MCIWNDM_RETURNSTRING MCIWNDM_RETURNSTRINGA | |
| 1422 #define MCIWNDM_OPEN MCIWNDM_OPENA | |
| 1423 #endif | |
| 1424 | |
| 1425 #define MCIWNDM_NOTIFYMODE (WM_USER + 200) | |
| 1426 #define MCIWNDM_NOTIFYPOS (WM_USER + 201) | |
| 1427 #define MCIWNDM_NOTIFYSIZE (WM_USER + 202) | |
| 1428 #define MCIWNDM_NOTIFYMEDIA (WM_USER + 203) | |
| 1429 #define MCIWNDM_NOTIFYERROR (WM_USER + 205) | |
| 1430 | |
| 1431 #define MCIWND_START -1 | |
| 1432 #define MCIWND_END -2 | |
| 1433 | |
| 1434 #ifndef MCI_PLAY | |
| 1435 #define MCI_CLOSE 0x0804 | |
| 1436 #define MCI_PLAY 0x0806 | |
| 1437 #define MCI_SEEK 0x0807 | |
| 1438 #define MCI_STOP 0x0808 | |
| 1439 #define MCI_PAUSE 0x0809 | |
| 1440 #define MCI_STEP 0x080E | |
| 1441 #define MCI_RECORD 0x080F | |
| 1442 #define MCI_SAVE 0x0813 | |
| 1443 #define MCI_CUT 0x0851 | |
| 1444 #define MCI_COPY 0x0852 | |
| 1445 #define MCI_PASTE 0x0853 | |
| 1446 #define MCI_RESUME 0x0855 | |
| 1447 #define MCI_DELETE 0x0856 | |
| 1448 #endif | |
| 1449 | |
| 1450 #ifndef MCI_MODE_NOT_READY | |
| 1451 | |
| 1452 #define MCI_MODE_NOT_READY (524) | |
| 1453 #define MCI_MODE_STOP (525) | |
| 1454 #define MCI_MODE_PLAY (526) | |
| 1455 #define MCI_MODE_RECORD (527) | |
| 1456 #define MCI_MODE_SEEK (528) | |
| 1457 #define MCI_MODE_PAUSE (529) | |
| 1458 #define MCI_MODE_OPEN (530) | |
| 1459 #endif | |
| 1460 #endif | |
| 1461 | |
| 1462 #if !defined(NOAVICAP) || !defined(NOVIDEO) | |
| 1463 | |
| 1464 #ifndef _RCINVOKED | |
| 1465 | |
| 1466 DECLARE_HANDLE(HVIDEO); | |
| 1467 typedef HVIDEO *LPHVIDEO; | |
| 1468 #endif | |
| 1469 | |
| 1470 DWORD WINAPI VideoForWindowsVersion(void); | |
| 1471 | |
| 1472 #define DV_ERR_OK (0) | |
| 1473 #define DV_ERR_BASE (1) | |
| 1474 #define DV_ERR_NONSPECIFIC (DV_ERR_BASE) | |
| 1475 #define DV_ERR_BADFORMAT (DV_ERR_BASE + 1) | |
| 1476 | |
| 1477 #define DV_ERR_STILLPLAYING (DV_ERR_BASE + 2) | |
| 1478 | |
| 1479 #define DV_ERR_UNPREPARED (DV_ERR_BASE + 3) | |
| 1480 | |
| 1481 #define DV_ERR_SYNC (DV_ERR_BASE + 4) | |
| 1482 | |
| 1483 #define DV_ERR_TOOMANYCHANNELS (DV_ERR_BASE + 5) | |
| 1484 | |
| 1485 #define DV_ERR_NOTDETECTED (DV_ERR_BASE + 6) | |
| 1486 #define DV_ERR_BADINSTALL (DV_ERR_BASE + 7) | |
| 1487 #define DV_ERR_CREATEPALETTE (DV_ERR_BASE + 8) | |
| 1488 #define DV_ERR_SIZEFIELD (DV_ERR_BASE + 9) | |
| 1489 #define DV_ERR_PARAM1 (DV_ERR_BASE + 10) | |
| 1490 #define DV_ERR_PARAM2 (DV_ERR_BASE + 11) | |
| 1491 #define DV_ERR_CONFIG1 (DV_ERR_BASE + 12) | |
| 1492 #define DV_ERR_CONFIG2 (DV_ERR_BASE + 13) | |
| 1493 #define DV_ERR_FLAGS (DV_ERR_BASE + 14) | |
| 1494 #define DV_ERR_13 (DV_ERR_BASE + 15) | |
| 1495 | |
| 1496 #define DV_ERR_NOTSUPPORTED (DV_ERR_BASE + 16) | |
| 1497 #define DV_ERR_NOMEM (DV_ERR_BASE + 17) | |
| 1498 #define DV_ERR_ALLOCATED (DV_ERR_BASE + 18) | |
| 1499 #define DV_ERR_BADDEVICEID (DV_ERR_BASE + 19) | |
| 1500 #define DV_ERR_INVALHANDLE (DV_ERR_BASE + 20) | |
| 1501 #define DV_ERR_BADERRNUM (DV_ERR_BASE + 21) | |
| 1502 #define DV_ERR_NO_BUFFERS (DV_ERR_BASE + 22) | |
| 1503 | |
| 1504 #define DV_ERR_MEM_CONFLICT (DV_ERR_BASE + 23) | |
| 1505 #define DV_ERR_IO_CONFLICT (DV_ERR_BASE + 24) | |
| 1506 #define DV_ERR_DMA_CONFLICT (DV_ERR_BASE + 25) | |
| 1507 #define DV_ERR_INT_CONFLICT (DV_ERR_BASE + 26) | |
| 1508 #define DV_ERR_PROTECT_ONLY (DV_ERR_BASE + 27) | |
| 1509 #define DV_ERR_LASTERROR (DV_ERR_BASE + 27) | |
| 1510 | |
| 1511 #define DV_ERR_USER_MSG (DV_ERR_BASE + 1000) | |
| 1512 | |
| 1513 #ifndef _RCINVOKED | |
| 1514 | |
| 1515 #ifndef MM_DRVM_OPEN | |
| 1516 #define MM_DRVM_OPEN 0x3D0 | |
| 1517 #define MM_DRVM_CLOSE 0x3D1 | |
| 1518 #define MM_DRVM_DATA 0x3D2 | |
| 1519 #define MM_DRVM_ERROR 0x3D3 | |
| 1520 #endif | |
| 1521 | |
| 1522 #define DV_VM_OPEN MM_DRVM_OPEN | |
| 1523 #define DV_VM_CLOSE MM_DRVM_CLOSE | |
| 1524 #define DV_VM_DATA MM_DRVM_DATA | |
| 1525 #define DV_VM_ERROR MM_DRVM_ERROR | |
| 1526 | |
| 1527 typedef struct videohdr_tag { | |
| 1528 LPBYTE lpData; | |
| 1529 DWORD dwBufferLength; | |
| 1530 DWORD dwBytesUsed; | |
| 1531 DWORD dwTimeCaptured; | |
| 1532 DWORD_PTR dwUser; | |
| 1533 DWORD dwFlags; | |
| 1534 DWORD_PTR dwReserved[4]; | |
| 1535 } VIDEOHDR,NEAR *PVIDEOHDR,*LPVIDEOHDR; | |
| 1536 | |
| 1537 #define VHDR_DONE 0x00000001 | |
| 1538 #define VHDR_PREPARED 0x00000002 | |
| 1539 #define VHDR_INQUEUE 0x00000004 | |
| 1540 #define VHDR_KEYFRAME 0x00000008 | |
| 1541 #define VHDR_VALID 0x0000000F | |
| 1542 | |
| 1543 typedef struct channel_caps_tag { | |
| 1544 DWORD dwFlags; | |
| 1545 DWORD dwSrcRectXMod; | |
| 1546 DWORD dwSrcRectYMod; | |
| 1547 DWORD dwSrcRectWidthMod; | |
| 1548 DWORD dwSrcRectHeightMod; | |
| 1549 DWORD dwDstRectXMod; | |
| 1550 DWORD dwDstRectYMod; | |
| 1551 DWORD dwDstRectWidthMod; | |
| 1552 DWORD dwDstRectHeightMod; | |
| 1553 } CHANNEL_CAPS,NEAR *PCHANNEL_CAPS,*LPCHANNEL_CAPS; | |
| 1554 | |
| 1555 #define VCAPS_OVERLAY 0x00000001 | |
| 1556 #define VCAPS_SRC_CAN_CLIP 0x00000002 | |
| 1557 #define VCAPS_DST_CAN_CLIP 0x00000004 | |
| 1558 #define VCAPS_CAN_SCALE 0x00000008 | |
| 1559 | |
| 1560 #define VIDEO_EXTERNALIN 0x0001 | |
| 1561 #define VIDEO_EXTERNALOUT 0x0002 | |
| 1562 #define VIDEO_IN 0x0004 | |
| 1563 #define VIDEO_OUT 0x0008 | |
| 1564 | |
| 1565 #define VIDEO_DLG_QUERY 0x0010 | |
| 1566 | |
| 1567 #define VIDEO_CONFIGURE_QUERY 0x8000 | |
| 1568 | |
| 1569 #define VIDEO_CONFIGURE_SET 0x1000 | |
| 1570 | |
| 1571 #define VIDEO_CONFIGURE_GET 0x2000 | |
| 1572 #define VIDEO_CONFIGURE_QUERYSIZE 0x0001 | |
| 1573 | |
| 1574 #define VIDEO_CONFIGURE_CURRENT 0x0010 | |
| 1575 #define VIDEO_CONFIGURE_NOMINAL 0x0020 | |
| 1576 #define VIDEO_CONFIGURE_MIN 0x0040 | |
| 1577 #define VIDEO_CONFIGURE_MAX 0x0080 | |
| 1578 | |
| 1579 #define DVM_USER 0X4000 | |
| 1580 | |
| 1581 #define DVM_CONFIGURE_START 0x1000 | |
| 1582 #define DVM_CONFIGURE_END 0x1FFF | |
| 1583 | |
| 1584 #define DVM_PALETTE (DVM_CONFIGURE_START + 1) | |
| 1585 #define DVM_FORMAT (DVM_CONFIGURE_START + 2) | |
| 1586 #define DVM_PALETTERGB555 (DVM_CONFIGURE_START + 3) | |
| 1587 #define DVM_SRC_RECT (DVM_CONFIGURE_START + 4) | |
| 1588 #define DVM_DST_RECT (DVM_CONFIGURE_START + 5) | |
| 1589 #endif | |
| 1590 #endif | |
| 1591 | |
| 1592 #ifndef NOAVICAP | |
| 1593 #ifdef __cplusplus | |
| 1594 | |
| 1595 #define AVICapSM(hwnd,m,w,l) ((::IsWindow(hwnd)) ? ::SendMessage(hwnd,m,w,l) : 0) | |
| 1596 #else | |
| 1597 | |
| 1598 #define AVICapSM(hwnd,m,w,l) ((IsWindow(hwnd)) ? SendMessage(hwnd,m,w,l) : 0) | |
| 1599 #endif | |
| 1600 | |
| 1601 #ifndef RC_INVOKED | |
| 1602 | |
| 1603 #define WM_CAP_START WM_USER | |
| 1604 | |
| 1605 #define WM_CAP_UNICODE_START WM_USER+100 | |
| 1606 | |
| 1607 #define WM_CAP_GET_CAPSTREAMPTR (WM_CAP_START+ 1) | |
| 1608 | |
| 1609 #define WM_CAP_SET_CALLBACK_ERRORW (WM_CAP_UNICODE_START+ 2) | |
| 1610 #define WM_CAP_SET_CALLBACK_STATUSW (WM_CAP_UNICODE_START+ 3) | |
| 1611 #define WM_CAP_SET_CALLBACK_ERRORA (WM_CAP_START+ 2) | |
| 1612 #define WM_CAP_SET_CALLBACK_STATUSA (WM_CAP_START+ 3) | |
| 1613 #ifdef UNICODE | |
| 1614 #define WM_CAP_SET_CALLBACK_ERROR WM_CAP_SET_CALLBACK_ERRORW | |
| 1615 #define WM_CAP_SET_CALLBACK_STATUS WM_CAP_SET_CALLBACK_STATUSW | |
| 1616 #else | |
| 1617 #define WM_CAP_SET_CALLBACK_ERROR WM_CAP_SET_CALLBACK_ERRORA | |
| 1618 #define WM_CAP_SET_CALLBACK_STATUS WM_CAP_SET_CALLBACK_STATUSA | |
| 1619 #endif | |
| 1620 | |
| 1621 #define WM_CAP_SET_CALLBACK_YIELD (WM_CAP_START+ 4) | |
| 1622 #define WM_CAP_SET_CALLBACK_FRAME (WM_CAP_START+ 5) | |
| 1623 #define WM_CAP_SET_CALLBACK_VIDEOSTREAM (WM_CAP_START+ 6) | |
| 1624 #define WM_CAP_SET_CALLBACK_WAVESTREAM (WM_CAP_START+ 7) | |
| 1625 #define WM_CAP_GET_USER_DATA (WM_CAP_START+ 8) | |
| 1626 #define WM_CAP_SET_USER_DATA (WM_CAP_START+ 9) | |
| 1627 | |
| 1628 #define WM_CAP_DRIVER_CONNECT (WM_CAP_START+ 10) | |
| 1629 #define WM_CAP_DRIVER_DISCONNECT (WM_CAP_START+ 11) | |
| 1630 | |
| 1631 #define WM_CAP_DRIVER_GET_NAMEA (WM_CAP_START+ 12) | |
| 1632 #define WM_CAP_DRIVER_GET_VERSIONA (WM_CAP_START+ 13) | |
| 1633 #define WM_CAP_DRIVER_GET_NAMEW (WM_CAP_UNICODE_START+ 12) | |
| 1634 #define WM_CAP_DRIVER_GET_VERSIONW (WM_CAP_UNICODE_START+ 13) | |
| 1635 #ifdef UNICODE | |
| 1636 #define WM_CAP_DRIVER_GET_NAME WM_CAP_DRIVER_GET_NAMEW | |
| 1637 #define WM_CAP_DRIVER_GET_VERSION WM_CAP_DRIVER_GET_VERSIONW | |
| 1638 #else | |
| 1639 #define WM_CAP_DRIVER_GET_NAME WM_CAP_DRIVER_GET_NAMEA | |
| 1640 #define WM_CAP_DRIVER_GET_VERSION WM_CAP_DRIVER_GET_VERSIONA | |
| 1641 #endif | |
| 1642 | |
| 1643 #define WM_CAP_DRIVER_GET_CAPS (WM_CAP_START+ 14) | |
| 1644 | |
| 1645 #define WM_CAP_FILE_SET_CAPTURE_FILEA (WM_CAP_START+ 20) | |
| 1646 #define WM_CAP_FILE_GET_CAPTURE_FILEA (WM_CAP_START+ 21) | |
| 1647 #define WM_CAP_FILE_SAVEASA (WM_CAP_START+ 23) | |
| 1648 #define WM_CAP_FILE_SAVEDIBA (WM_CAP_START+ 25) | |
| 1649 #define WM_CAP_FILE_SET_CAPTURE_FILEW (WM_CAP_UNICODE_START+ 20) | |
| 1650 #define WM_CAP_FILE_GET_CAPTURE_FILEW (WM_CAP_UNICODE_START+ 21) | |
| 1651 #define WM_CAP_FILE_SAVEASW (WM_CAP_UNICODE_START+ 23) | |
| 1652 #define WM_CAP_FILE_SAVEDIBW (WM_CAP_UNICODE_START+ 25) | |
| 1653 #ifdef UNICODE | |
| 1654 #define WM_CAP_FILE_SET_CAPTURE_FILE WM_CAP_FILE_SET_CAPTURE_FILEW | |
| 1655 #define WM_CAP_FILE_GET_CAPTURE_FILE WM_CAP_FILE_GET_CAPTURE_FILEW | |
| 1656 #define WM_CAP_FILE_SAVEAS WM_CAP_FILE_SAVEASW | |
| 1657 #define WM_CAP_FILE_SAVEDIB WM_CAP_FILE_SAVEDIBW | |
| 1658 #else | |
| 1659 #define WM_CAP_FILE_SET_CAPTURE_FILE WM_CAP_FILE_SET_CAPTURE_FILEA | |
| 1660 #define WM_CAP_FILE_GET_CAPTURE_FILE WM_CAP_FILE_GET_CAPTURE_FILEA | |
| 1661 #define WM_CAP_FILE_SAVEAS WM_CAP_FILE_SAVEASA | |
| 1662 #define WM_CAP_FILE_SAVEDIB WM_CAP_FILE_SAVEDIBA | |
| 1663 #endif | |
| 1664 | |
| 1665 #define WM_CAP_FILE_ALLOCATE (WM_CAP_START+ 22) | |
| 1666 #define WM_CAP_FILE_SET_INFOCHUNK (WM_CAP_START+ 24) | |
| 1667 | |
| 1668 #define WM_CAP_EDIT_COPY (WM_CAP_START+ 30) | |
| 1669 | |
| 1670 #define WM_CAP_SET_AUDIOFORMAT (WM_CAP_START+ 35) | |
| 1671 #define WM_CAP_GET_AUDIOFORMAT (WM_CAP_START+ 36) | |
| 1672 | |
| 1673 #define WM_CAP_DLG_VIDEOFORMAT (WM_CAP_START+ 41) | |
| 1674 #define WM_CAP_DLG_VIDEOSOURCE (WM_CAP_START+ 42) | |
| 1675 #define WM_CAP_DLG_VIDEODISPLAY (WM_CAP_START+ 43) | |
| 1676 #define WM_CAP_GET_VIDEOFORMAT (WM_CAP_START+ 44) | |
| 1677 #define WM_CAP_SET_VIDEOFORMAT (WM_CAP_START+ 45) | |
| 1678 #define WM_CAP_DLG_VIDEOCOMPRESSION (WM_CAP_START+ 46) | |
| 1679 | |
| 1680 #define WM_CAP_SET_PREVIEW (WM_CAP_START+ 50) | |
| 1681 #define WM_CAP_SET_OVERLAY (WM_CAP_START+ 51) | |
| 1682 #define WM_CAP_SET_PREVIEWRATE (WM_CAP_START+ 52) | |
| 1683 #define WM_CAP_SET_SCALE (WM_CAP_START+ 53) | |
| 1684 #define WM_CAP_GET_STATUS (WM_CAP_START+ 54) | |
| 1685 #define WM_CAP_SET_SCROLL (WM_CAP_START+ 55) | |
| 1686 | |
| 1687 #define WM_CAP_GRAB_FRAME (WM_CAP_START+ 60) | |
| 1688 #define WM_CAP_GRAB_FRAME_NOSTOP (WM_CAP_START+ 61) | |
| 1689 | |
| 1690 #define WM_CAP_SEQUENCE (WM_CAP_START+ 62) | |
| 1691 #define WM_CAP_SEQUENCE_NOFILE (WM_CAP_START+ 63) | |
| 1692 #define WM_CAP_SET_SEQUENCE_SETUP (WM_CAP_START+ 64) | |
| 1693 #define WM_CAP_GET_SEQUENCE_SETUP (WM_CAP_START+ 65) | |
| 1694 | |
| 1695 #define WM_CAP_SET_MCI_DEVICEA (WM_CAP_START+ 66) | |
| 1696 #define WM_CAP_GET_MCI_DEVICEA (WM_CAP_START+ 67) | |
| 1697 #define WM_CAP_SET_MCI_DEVICEW (WM_CAP_UNICODE_START+ 66) | |
| 1698 #define WM_CAP_GET_MCI_DEVICEW (WM_CAP_UNICODE_START+ 67) | |
| 1699 #ifdef UNICODE | |
| 1700 #define WM_CAP_SET_MCI_DEVICE WM_CAP_SET_MCI_DEVICEW | |
| 1701 #define WM_CAP_GET_MCI_DEVICE WM_CAP_GET_MCI_DEVICEW | |
| 1702 #else | |
| 1703 #define WM_CAP_SET_MCI_DEVICE WM_CAP_SET_MCI_DEVICEA | |
| 1704 #define WM_CAP_GET_MCI_DEVICE WM_CAP_GET_MCI_DEVICEA | |
| 1705 #endif | |
| 1706 | |
| 1707 #define WM_CAP_STOP (WM_CAP_START+ 68) | |
| 1708 #define WM_CAP_ABORT (WM_CAP_START+ 69) | |
| 1709 | |
| 1710 #define WM_CAP_SINGLE_FRAME_OPEN (WM_CAP_START+ 70) | |
| 1711 #define WM_CAP_SINGLE_FRAME_CLOSE (WM_CAP_START+ 71) | |
| 1712 #define WM_CAP_SINGLE_FRAME (WM_CAP_START+ 72) | |
| 1713 | |
| 1714 #define WM_CAP_PAL_OPENA (WM_CAP_START+ 80) | |
| 1715 #define WM_CAP_PAL_SAVEA (WM_CAP_START+ 81) | |
| 1716 #define WM_CAP_PAL_OPENW (WM_CAP_UNICODE_START+ 80) | |
| 1717 #define WM_CAP_PAL_SAVEW (WM_CAP_UNICODE_START+ 81) | |
| 1718 #ifdef UNICODE | |
| 1719 #define WM_CAP_PAL_OPEN WM_CAP_PAL_OPENW | |
| 1720 #define WM_CAP_PAL_SAVE WM_CAP_PAL_SAVEW | |
| 1721 #else | |
| 1722 #define WM_CAP_PAL_OPEN WM_CAP_PAL_OPENA | |
| 1723 #define WM_CAP_PAL_SAVE WM_CAP_PAL_SAVEA | |
| 1724 #endif | |
| 1725 | |
| 1726 #define WM_CAP_PAL_PASTE (WM_CAP_START+ 82) | |
| 1727 #define WM_CAP_PAL_AUTOCREATE (WM_CAP_START+ 83) | |
| 1728 #define WM_CAP_PAL_MANUALCREATE (WM_CAP_START+ 84) | |
| 1729 | |
| 1730 #define WM_CAP_SET_CALLBACK_CAPCONTROL (WM_CAP_START+ 85) | |
| 1731 | |
| 1732 #define WM_CAP_UNICODE_END WM_CAP_PAL_SAVEW | |
| 1733 #define WM_CAP_END WM_CAP_UNICODE_END | |
| 1734 | |
| 1735 #define capSetCallbackOnError(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_ERROR,0,(LPARAM)(LPVOID)(fpProc))) | |
| 1736 #define capSetCallbackOnStatus(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_STATUS,0,(LPARAM)(LPVOID)(fpProc))) | |
| 1737 #define capSetCallbackOnYield(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_YIELD,0,(LPARAM)(LPVOID)(fpProc))) | |
| 1738 #define capSetCallbackOnFrame(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_FRAME,0,(LPARAM)(LPVOID)(fpProc))) | |
| 1739 #define capSetCallbackOnVideoStream(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_VIDEOSTREAM,0,(LPARAM)(LPVOID)(fpProc))) | |
| 1740 #define capSetCallbackOnWaveStream(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_WAVESTREAM,0,(LPARAM)(LPVOID)(fpProc))) | |
| 1741 #define capSetCallbackOnCapControl(hwnd,fpProc) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_CALLBACK_CAPCONTROL,0,(LPARAM)(LPVOID)(fpProc))) | |
| 1742 | |
| 1743 #define capSetUserData(hwnd,lUser) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_USER_DATA,0,(LPARAM)lUser)) | |
| 1744 #define capGetUserData(hwnd) (AVICapSM(hwnd,WM_CAP_GET_USER_DATA,0,0)) | |
| 1745 | |
| 1746 #define capDriverConnect(hwnd,i) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_CONNECT,(WPARAM)(i),0L)) | |
| 1747 #define capDriverDisconnect(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_DISCONNECT,(WPARAM)0,0L)) | |
| 1748 #define capDriverGetName(hwnd,szName,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_GET_NAME,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szName))) | |
| 1749 #define capDriverGetVersion(hwnd,szVer,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_GET_VERSION,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szVer))) | |
| 1750 #define capDriverGetCaps(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DRIVER_GET_CAPS,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPDRIVERCAPS)(s))) | |
| 1751 | |
| 1752 #define capFileSetCaptureFile(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_SET_CAPTURE_FILE,0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | |
| 1753 #define capFileGetCaptureFile(hwnd,szName,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_GET_CAPTURE_FILE,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szName))) | |
| 1754 #define capFileAlloc(hwnd,dwSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_ALLOCATE,0,(LPARAM)(DWORD)(dwSize))) | |
| 1755 #define capFileSaveAs(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_SAVEAS,0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | |
| 1756 #define capFileSetInfoChunk(hwnd,lpInfoChunk) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_SET_INFOCHUNK,(WPARAM)0,(LPARAM)(LPCAPINFOCHUNK)(lpInfoChunk))) | |
| 1757 #define capFileSaveDIB(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_FILE_SAVEDIB,0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | |
| 1758 | |
| 1759 #define capEditCopy(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_EDIT_COPY,0,0L)) | |
| 1760 | |
| 1761 #define capSetAudioFormat(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_AUDIOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPWAVEFORMATEX)(s))) | |
| 1762 #define capGetAudioFormat(hwnd,s,wSize) ((DWORD)AVICapSM(hwnd,WM_CAP_GET_AUDIOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPWAVEFORMATEX)(s))) | |
| 1763 #define capGetAudioFormatSize(hwnd) ((DWORD)AVICapSM(hwnd,WM_CAP_GET_AUDIOFORMAT,(WPARAM)0,(LPARAM)0L)) | |
| 1764 | |
| 1765 #define capDlgVideoFormat(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DLG_VIDEOFORMAT,0,0L)) | |
| 1766 #define capDlgVideoSource(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DLG_VIDEOSOURCE,0,0L)) | |
| 1767 #define capDlgVideoDisplay(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DLG_VIDEODISPLAY,0,0L)) | |
| 1768 #define capDlgVideoCompression(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_DLG_VIDEOCOMPRESSION,0,0L)) | |
| 1769 | |
| 1770 #define capGetVideoFormat(hwnd,s,wSize) ((DWORD)AVICapSM(hwnd,WM_CAP_GET_VIDEOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(s))) | |
| 1771 #define capGetVideoFormatSize(hwnd) ((DWORD)AVICapSM(hwnd,WM_CAP_GET_VIDEOFORMAT,0,0L)) | |
| 1772 #define capSetVideoFormat(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_VIDEOFORMAT,(WPARAM)(wSize),(LPARAM)(LPVOID)(s))) | |
| 1773 | |
| 1774 #define capPreview(hwnd,f) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_PREVIEW,(WPARAM)(WINBOOL)(f),0L)) | |
| 1775 #define capPreviewRate(hwnd,wMS) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_PREVIEWRATE,(WPARAM)(wMS),0)) | |
| 1776 #define capOverlay(hwnd,f) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_OVERLAY,(WPARAM)(WINBOOL)(f),0L)) | |
| 1777 #define capPreviewScale(hwnd,f) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_SCALE,(WPARAM)(WINBOOL)f,0L)) | |
| 1778 #define capGetStatus(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GET_STATUS,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPSTATUS)(s))) | |
| 1779 #define capSetScrollPos(hwnd,lpP) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_SCROLL,(WPARAM)0,(LPARAM)(LPPOINT)(lpP))) | |
| 1780 | |
| 1781 #define capGrabFrame(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GRAB_FRAME,(WPARAM)0,(LPARAM)0L)) | |
| 1782 #define capGrabFrameNoStop(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GRAB_FRAME_NOSTOP,(WPARAM)0,(LPARAM)0L)) | |
| 1783 | |
| 1784 #define capCaptureSequence(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SEQUENCE,(WPARAM)0,(LPARAM)0L)) | |
| 1785 #define capCaptureSequenceNoFile(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SEQUENCE_NOFILE,(WPARAM)0,(LPARAM)0L)) | |
| 1786 #define capCaptureStop(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_STOP,(WPARAM)0,(LPARAM)0L)) | |
| 1787 #define capCaptureAbort(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_ABORT,(WPARAM)0,(LPARAM)0L)) | |
| 1788 | |
| 1789 #define capCaptureSingleFrameOpen(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SINGLE_FRAME_OPEN,(WPARAM)0,(LPARAM)0L)) | |
| 1790 #define capCaptureSingleFrameClose(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SINGLE_FRAME_CLOSE,(WPARAM)0,(LPARAM)0L)) | |
| 1791 #define capCaptureSingleFrame(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SINGLE_FRAME,(WPARAM)0,(LPARAM)0L)) | |
| 1792 | |
| 1793 #define capCaptureGetSetup(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GET_SEQUENCE_SETUP,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPTUREPARMS)(s))) | |
| 1794 #define capCaptureSetSetup(hwnd,s,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_SEQUENCE_SETUP,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPCAPTUREPARMS)(s))) | |
| 1795 | |
| 1796 #define capSetMCIDeviceName(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_SET_MCI_DEVICE,0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | |
| 1797 #define capGetMCIDeviceName(hwnd,szName,wSize) ((WINBOOL)AVICapSM(hwnd,WM_CAP_GET_MCI_DEVICE,(WPARAM)(wSize),(LPARAM)(LPVOID)(LPTSTR)(szName))) | |
| 1798 | |
| 1799 #define capPaletteOpen(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_OPEN,0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | |
| 1800 #define capPaletteSave(hwnd,szName) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_SAVE,0,(LPARAM)(LPVOID)(LPTSTR)(szName))) | |
| 1801 #define capPalettePaste(hwnd) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_PASTE,(WPARAM) 0,(LPARAM)0L)) | |
| 1802 #define capPaletteAuto(hwnd,iFrames,iColors) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_AUTOCREATE,(WPARAM)(iFrames),(LPARAM)(DWORD)(iColors))) | |
| 1803 #define capPaletteManual(hwnd,fGrab,iColors) ((WINBOOL)AVICapSM(hwnd,WM_CAP_PAL_MANUALCREATE,(WPARAM)(fGrab),(LPARAM)(DWORD)(iColors))) | |
| 1804 | |
| 1805 typedef struct tagCapDriverCaps { | |
| 1806 UINT wDeviceIndex; | |
| 1807 WINBOOL fHasOverlay; | |
| 1808 WINBOOL fHasDlgVideoSource; | |
| 1809 WINBOOL fHasDlgVideoFormat; | |
| 1810 WINBOOL fHasDlgVideoDisplay; | |
| 1811 WINBOOL fCaptureInitialized; | |
| 1812 WINBOOL fDriverSuppliesPalettes; | |
| 1813 HANDLE hVideoIn; | |
| 1814 HANDLE hVideoOut; | |
| 1815 HANDLE hVideoExtIn; | |
| 1816 HANDLE hVideoExtOut; | |
| 1817 } CAPDRIVERCAPS,*PCAPDRIVERCAPS,*LPCAPDRIVERCAPS; | |
| 1818 | |
| 1819 typedef struct tagCapStatus { | |
| 1820 UINT uiImageWidth; | |
| 1821 UINT uiImageHeight; | |
| 1822 WINBOOL fLiveWindow; | |
| 1823 WINBOOL fOverlayWindow; | |
| 1824 WINBOOL fScale; | |
| 1825 POINT ptScroll; | |
| 1826 WINBOOL fUsingDefaultPalette; | |
| 1827 WINBOOL fAudioHardware; | |
| 1828 WINBOOL fCapFileExists; | |
| 1829 DWORD dwCurrentVideoFrame; | |
| 1830 DWORD dwCurrentVideoFramesDropped; | |
| 1831 DWORD dwCurrentWaveSamples; | |
| 1832 DWORD dwCurrentTimeElapsedMS; | |
| 1833 HPALETTE hPalCurrent; | |
| 1834 WINBOOL fCapturingNow; | |
| 1835 DWORD dwReturn; | |
| 1836 UINT wNumVideoAllocated; | |
| 1837 UINT wNumAudioAllocated; | |
| 1838 } CAPSTATUS,*PCAPSTATUS,*LPCAPSTATUS; | |
| 1839 | |
| 1840 typedef struct tagCaptureParms { | |
| 1841 DWORD dwRequestMicroSecPerFrame; | |
| 1842 WINBOOL fMakeUserHitOKToCapture; | |
| 1843 UINT wPercentDropForError; | |
| 1844 WINBOOL fYield; | |
| 1845 DWORD dwIndexSize; | |
| 1846 UINT wChunkGranularity; | |
| 1847 WINBOOL fUsingDOSMemory; | |
| 1848 UINT wNumVideoRequested; | |
| 1849 WINBOOL fCaptureAudio; | |
| 1850 UINT wNumAudioRequested; | |
| 1851 UINT vKeyAbort; | |
| 1852 WINBOOL fAbortLeftMouse; | |
| 1853 WINBOOL fAbortRightMouse; | |
| 1854 WINBOOL fLimitEnabled; | |
| 1855 UINT wTimeLimit; | |
| 1856 WINBOOL fMCIControl; | |
| 1857 WINBOOL fStepMCIDevice; | |
| 1858 DWORD dwMCIStartTime; | |
| 1859 DWORD dwMCIStopTime; | |
| 1860 WINBOOL fStepCaptureAt2x; | |
| 1861 UINT wStepCaptureAverageFrames; | |
| 1862 DWORD dwAudioBufferSize; | |
| 1863 WINBOOL fDisableWriteCache; | |
| 1864 UINT AVStreamMaster; | |
| 1865 } CAPTUREPARMS,*PCAPTUREPARMS,*LPCAPTUREPARMS; | |
| 1866 | |
| 1867 #define AVSTREAMMASTER_AUDIO 0 | |
| 1868 #define AVSTREAMMASTER_NONE 1 | |
| 1869 | |
| 1870 typedef struct tagCapInfoChunk { | |
| 1871 FOURCC fccInfoID; | |
| 1872 LPVOID lpData; | |
| 1873 LONG cbData; | |
| 1874 } CAPINFOCHUNK,*PCAPINFOCHUNK,*LPCAPINFOCHUNK; | |
| 1875 | |
| 1876 typedef LRESULT (CALLBACK *CAPYIELDCALLBACK)(HWND hWnd); | |
| 1877 typedef LRESULT (CALLBACK *CAPSTATUSCALLBACKW)(HWND hWnd,int nID,LPCWSTR lpsz); | |
| 1878 typedef LRESULT (CALLBACK *CAPERRORCALLBACKW)(HWND hWnd,int nID,LPCWSTR lpsz); | |
| 1879 typedef LRESULT (CALLBACK *CAPSTATUSCALLBACKA)(HWND hWnd,int nID,LPCSTR lpsz); | |
| 1880 typedef LRESULT (CALLBACK *CAPERRORCALLBACKA)(HWND hWnd,int nID,LPCSTR lpsz); | |
| 1881 #ifdef UNICODE | |
| 1882 #define CAPSTATUSCALLBACK CAPSTATUSCALLBACKW | |
| 1883 #define CAPERRORCALLBACK CAPERRORCALLBACKW | |
| 1884 #else | |
| 1885 #define CAPSTATUSCALLBACK CAPSTATUSCALLBACKA | |
| 1886 #define CAPERRORCALLBACK CAPERRORCALLBACKA | |
| 1887 #endif | |
| 1888 typedef LRESULT (CALLBACK *CAPVIDEOCALLBACK)(HWND hWnd,LPVIDEOHDR lpVHdr); | |
| 1889 typedef LRESULT (CALLBACK *CAPWAVECALLBACK)(HWND hWnd,LPWAVEHDR lpWHdr); | |
| 1890 typedef LRESULT (CALLBACK *CAPCONTROLCALLBACK)(HWND hWnd,int nState); | |
| 1891 | |
| 1892 #define CONTROLCALLBACK_PREROLL 1 | |
| 1893 #define CONTROLCALLBACK_CAPTURING 2 | |
| 1894 | |
| 1895 HWND WINAPI capCreateCaptureWindowA (LPCSTR lpszWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hwndParent,int nID); | |
| 1896 WINBOOL WINAPI capGetDriverDescriptionA (UINT wDriverIndex,LPSTR lpszName,int cbName,LPSTR lpszVer,int cbVer); | |
| 1897 HWND WINAPI capCreateCaptureWindowW (LPCWSTR lpszWindowName,DWORD dwStyle,int x,int y,int nWidth,int nHeight,HWND hwndParent,int nID); | |
| 1898 WINBOOL WINAPI capGetDriverDescriptionW (UINT wDriverIndex,LPWSTR lpszName,int cbName,LPWSTR lpszVer,int cbVer); | |
| 1899 | |
| 1900 #ifdef UNICODE | |
| 1901 #define capCreateCaptureWindow capCreateCaptureWindowW | |
| 1902 #define capGetDriverDescription capGetDriverDescriptionW | |
| 1903 #else | |
| 1904 #define capCreateCaptureWindow capCreateCaptureWindowA | |
| 1905 #define capGetDriverDescription capGetDriverDescriptionA | |
| 1906 #endif | |
| 1907 #endif | |
| 1908 | |
| 1909 #define infotypeDIGITIZATION_TIME mmioFOURCC ('I','D','I','T') | |
| 1910 #define infotypeSMPTE_TIME mmioFOURCC ('I','S','M','P') | |
| 1911 | |
| 1912 #define IDS_CAP_BEGIN 300 | |
| 1913 #define IDS_CAP_END 301 | |
| 1914 | |
| 1915 #define IDS_CAP_INFO 401 | |
| 1916 #define IDS_CAP_OUTOFMEM 402 | |
| 1917 #define IDS_CAP_FILEEXISTS 403 | |
| 1918 #define IDS_CAP_ERRORPALOPEN 404 | |
| 1919 #define IDS_CAP_ERRORPALSAVE 405 | |
| 1920 #define IDS_CAP_ERRORDIBSAVE 406 | |
| 1921 #define IDS_CAP_DEFAVIEXT 407 | |
| 1922 #define IDS_CAP_DEFPALEXT 408 | |
| 1923 #define IDS_CAP_CANTOPEN 409 | |
| 1924 #define IDS_CAP_SEQ_MSGSTART 410 | |
| 1925 #define IDS_CAP_SEQ_MSGSTOP 411 | |
| 1926 | |
| 1927 #define IDS_CAP_VIDEDITERR 412 | |
| 1928 #define IDS_CAP_READONLYFILE 413 | |
| 1929 #define IDS_CAP_WRITEERROR 414 | |
| 1930 #define IDS_CAP_NODISKSPACE 415 | |
| 1931 #define IDS_CAP_SETFILESIZE 416 | |
| 1932 #define IDS_CAP_SAVEASPERCENT 417 | |
| 1933 | |
| 1934 #define IDS_CAP_DRIVER_ERROR 418 | |
| 1935 | |
| 1936 #define IDS_CAP_WAVE_OPEN_ERROR 419 | |
| 1937 #define IDS_CAP_WAVE_ALLOC_ERROR 420 | |
| 1938 #define IDS_CAP_WAVE_PREPARE_ERROR 421 | |
| 1939 #define IDS_CAP_WAVE_ADD_ERROR 422 | |
| 1940 #define IDS_CAP_WAVE_SIZE_ERROR 423 | |
| 1941 | |
| 1942 #define IDS_CAP_VIDEO_OPEN_ERROR 424 | |
| 1943 #define IDS_CAP_VIDEO_ALLOC_ERROR 425 | |
| 1944 #define IDS_CAP_VIDEO_PREPARE_ERROR 426 | |
| 1945 #define IDS_CAP_VIDEO_ADD_ERROR 427 | |
| 1946 #define IDS_CAP_VIDEO_SIZE_ERROR 428 | |
| 1947 | |
| 1948 #define IDS_CAP_FILE_OPEN_ERROR 429 | |
| 1949 #define IDS_CAP_FILE_WRITE_ERROR 430 | |
| 1950 #define IDS_CAP_RECORDING_ERROR 431 | |
| 1951 #define IDS_CAP_RECORDING_ERROR2 432 | |
| 1952 #define IDS_CAP_AVI_INIT_ERROR 433 | |
| 1953 #define IDS_CAP_NO_FRAME_CAP_ERROR 434 | |
| 1954 #define IDS_CAP_NO_PALETTE_WARN 435 | |
| 1955 #define IDS_CAP_MCI_CONTROL_ERROR 436 | |
| 1956 #define IDS_CAP_MCI_CANT_STEP_ERROR 437 | |
| 1957 #define IDS_CAP_NO_AUDIO_CAP_ERROR 438 | |
| 1958 #define IDS_CAP_AVI_DRAWDIB_ERROR 439 | |
| 1959 #define IDS_CAP_COMPRESSOR_ERROR 440 | |
| 1960 #define IDS_CAP_AUDIO_DROP_ERROR 441 | |
| 1961 #define IDS_CAP_AUDIO_DROP_COMPERROR 442 | |
| 1962 | |
| 1963 #define IDS_CAP_STAT_LIVE_MODE 500 | |
| 1964 #define IDS_CAP_STAT_OVERLAY_MODE 501 | |
| 1965 #define IDS_CAP_STAT_CAP_INIT 502 | |
| 1966 #define IDS_CAP_STAT_CAP_FINI 503 | |
| 1967 #define IDS_CAP_STAT_PALETTE_BUILD 504 | |
| 1968 #define IDS_CAP_STAT_OPTPAL_BUILD 505 | |
| 1969 #define IDS_CAP_STAT_I_FRAMES 506 | |
| 1970 #define IDS_CAP_STAT_L_FRAMES 507 | |
| 1971 #define IDS_CAP_STAT_CAP_L_FRAMES 508 | |
| 1972 #define IDS_CAP_STAT_CAP_AUDIO 509 | |
| 1973 #define IDS_CAP_STAT_VIDEOCURRENT 510 | |
| 1974 #define IDS_CAP_STAT_VIDEOAUDIO 511 | |
| 1975 #define IDS_CAP_STAT_VIDEOONLY 512 | |
| 1976 #define IDS_CAP_STAT_FRAMESDROPPED 513 | |
| 1977 #endif | |
| 1978 | |
| 1979 #ifdef __cplusplus | |
| 1980 } | |
| 1981 #endif | |
| 1982 | |
| 1983 #ifndef NOMSACM | |
| 1984 #include <msacm.h> | |
| 1985 #endif | |
| 1986 | |
| 1987 #ifdef __cplusplus | |
| 1988 extern "C" { | |
| 1989 #endif | |
| 1990 | |
| 1991 #ifdef OFN_READONLY | |
| 1992 WINBOOL WINAPI GetOpenFileNamePreviewA(LPOPENFILENAMEA lpofn); | |
| 1993 WINBOOL WINAPI GetSaveFileNamePreviewA(LPOPENFILENAMEA lpofn); | |
| 1994 WINBOOL WINAPI GetOpenFileNamePreviewW(LPOPENFILENAMEW lpofn); | |
| 1995 WINBOOL WINAPI GetSaveFileNamePreviewW(LPOPENFILENAMEW lpofn); | |
| 1996 | |
| 1997 #ifdef UNICODE | |
| 1998 #define GetOpenFileNamePreview GetOpenFileNamePreviewW | |
| 1999 #define GetSaveFileNamePreview GetSaveFileNamePreviewW | |
| 2000 #else | |
| 2001 #define GetOpenFileNamePreview GetOpenFileNamePreviewA | |
| 2002 #define GetSaveFileNamePreview GetSaveFileNamePreviewA | |
| 2003 #endif | |
| 2004 #endif | |
| 2005 | |
| 2006 #ifndef RC_INVOKED | |
| 2007 #include "poppack.h" | |
| 2008 #endif | |
| 2009 | |
| 2010 #ifdef __cplusplus | |
| 2011 } | |
| 2012 #endif | |
| 2013 #endif |
