Artifact 754e428e88f168dc9ba90e01b3aae74c507ebf49:
- File
src/win32/vfw.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 20 20 76 66 77 vfw 0070: 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 77 72 wr 0140: 69 74 74 65 6e 20 69 6e 20 74 68 65 20 44 20 70 itten in the D p 0150: 72 6f 67 72 61 6d 6d 69 6e 67 20 6c 61 6e 67 75 rogramming langu 0160: 61 67 65 20 20 20 20 20 20 20 20 20 20 20 20 20 age 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0190: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..* 01d0: 20 20 20 20 20 20 20 20 20 20 50 6c 61 63 65 64 Placed 01e0: 20 69 6e 74 6f 20 70 75 62 6c 69 63 20 64 6f 6d into public dom 01f0: 61 69 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 ain 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 5c 2a 2a *..\** 0210: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0220: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0230: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0240: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0250: 2a 2a 2a 2a 2a 2f 0d 0a 0d 0a 6d 6f 64 75 6c 65 *****/....module 0260: 20 77 69 6e 33 32 2e 76 66 77 3b 0d 0a 70 72 61 win32.vfw;..pra 0270: 67 6d 61 28 6c 69 62 2c 20 22 76 66 77 33 32 22 gma(lib, "vfw32" 0280: 29 3b 0d 0a 0d 0a 70 72 69 76 61 74 65 20 69 6d );....private im 0290: 70 6f 72 74 0d 0a 09 77 69 6e 33 32 2e 63 6f 6d port...win32.com 02a0: 6d 64 6c 67 2c 0d 0a 09 77 69 6e 33 32 2e 77 69 mdlg,...win32.wi 02b0: 6e 67 64 69 2c 0d 0a 09 77 69 6e 33 32 2e 6d 6d ngdi,...win32.mm 02c0: 73 79 73 74 65 6d 2c 0d 0a 09 77 69 6e 33 32 2e system,...win32. 02d0: 75 6e 6b 6e 77 6e 2c 0d 0a 09 77 69 6e 33 32 2e unknwn,...win32. 02e0: 77 33 32 61 70 69 2c 0d 0a 09 77 69 6e 33 32 2e w32api,...win32. 02f0: 77 69 6e 64 65 66 2c 0d 0a 09 77 69 6e 33 32 2e windef,...win32. 0300: 77 69 6e 75 73 65 72 3b 0d 0a 0d 0a 65 78 74 65 winuser;....exte 0310: 72 6e 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 rn(Windows) {... 0320: 44 57 4f 52 44 20 56 69 64 65 6f 46 6f 72 57 69 DWORD VideoForWi 0330: 6e 64 6f 77 73 56 65 72 73 69 6f 6e 28 29 3b 0d ndowsVersion();. 0340: 0a 09 4c 4f 4e 47 20 49 6e 69 74 56 46 57 28 29 ..LONG InitVFW() 0350: 3b 0d 0a 09 4c 4f 4e 47 20 54 65 72 6d 56 46 57 ;...LONG TermVFW 0360: 28 29 3b 0d 0a 7d 0d 0a 0d 0a 44 57 4f 52 44 20 ();..}....DWORD 0370: 4d 4b 46 4f 55 52 43 43 28 63 68 61 72 20 63 68 MKFOURCC(char ch 0380: 30 2c 20 63 68 61 72 20 63 68 31 2c 20 63 68 61 0, char ch1, cha 0390: 72 20 63 68 32 2c 20 63 68 61 72 20 63 68 33 29 r ch2, char ch3) 03a0: 20 7b 0d 0a 09 72 65 74 75 72 6e 20 28 63 61 73 {...return (cas 03b0: 74 28 44 57 4f 52 44 29 63 68 30 29 20 7c 20 28 t(DWORD)ch0) | ( 03c0: 28 63 61 73 74 28 44 57 4f 52 44 29 63 68 31 29 (cast(DWORD)ch1) 03d0: 20 3c 3c 20 38 29 20 7c 20 28 28 63 61 73 74 28 << 8) | ((cast( 03e0: 44 57 4f 52 44 29 63 68 32 29 20 3c 3c 20 31 36 DWORD)ch2) << 16 03f0: 29 20 7c 20 28 28 63 61 73 74 28 44 57 4f 52 44 ) | ((cast(DWORD 0400: 29 63 68 33 29 20 3c 3c 20 32 34 29 3b 0d 0a 7d )ch3) << 24);..} 0410: 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 43 4f 4d 50 ..../**.. * COMP 0420: 4d 41 4e 20 2d 20 49 6e 73 74 61 6c 6c 61 62 6c MAN - Installabl 0430: 65 20 43 6f 6d 70 72 65 73 73 69 6f 6e 20 4d 61 e Compression Ma 0440: 6e 61 67 65 72 2e 0d 0a 20 2a 2f 0d 0a 0d 0a 63 nager... */....c 0450: 6f 6e 73 74 20 49 43 56 45 52 53 49 4f 4e 20 3d onst ICVERSION = 0460: 20 30 78 30 31 30 34 3b 0d 0a 0d 0a 61 6c 69 61 0x0104;....alia 0470: 73 20 54 79 70 65 44 65 66 21 28 48 41 4e 44 4c s TypeDef!(HANDL 0480: 45 29 20 48 49 43 3b 0d 0a 0d 0a 63 6f 6e 73 74 E) HIC;....const 0490: 20 42 49 5f 31 36 33 32 20 3d 20 30 78 33 32 33 BI_1632 = 0x323 04a0: 33 33 36 33 31 3b 0d 0a 0d 0a 74 65 6d 70 6c 61 33631;....templa 04b0: 74 65 20 61 76 69 54 57 4f 43 43 28 63 68 61 72 te aviTWOCC(char 04c0: 20 63 30 2c 20 63 68 61 72 20 63 31 29 20 7b 0d c0, char c1) {. 04d0: 0a 09 63 6f 6e 73 74 20 57 4f 52 44 20 61 76 69 ..const WORD avi 04e0: 54 57 4f 43 43 20 3d 20 63 30 20 7c 20 28 63 31 TWOCC = c0 | (c1 04f0: 20 3c 3c 20 38 29 3b 0d 0a 7d 0d 0a 0d 0a 63 6f << 8);..}....co 0500: 6e 73 74 20 49 43 54 59 50 45 5f 56 49 44 45 4f nst ICTYPE_VIDEO 0510: 09 3d 20 6d 6d 69 6f 46 4f 55 52 43 43 21 28 27 .= mmioFOURCC!(' 0520: 76 27 2c 20 27 69 27 2c 20 27 64 27 2c 20 27 63 v', 'i', 'd', 'c 0530: 27 29 3b 0d 0a 63 6f 6e 73 74 20 49 43 54 59 50 ');..const ICTYP 0540: 45 5f 41 55 44 49 4f 09 3d 20 6d 6d 69 6f 46 4f E_AUDIO.= mmioFO 0550: 55 52 43 43 21 28 27 61 27 2c 20 27 75 27 2c 20 URCC!('a', 'u', 0560: 27 64 27 2c 20 27 63 27 29 3b 0d 0a 0d 0a 65 6e 'd', 'c');....en 0570: 75 6d 20 7b 0d 0a 09 49 43 45 52 52 5f 4f 4b 09 um {...ICERR_OK. 0580: 09 09 3d 20 30 2c 0d 0a 09 49 43 45 52 52 5f 44 ..= 0,...ICERR_D 0590: 4f 4e 54 44 52 41 57 09 09 3d 20 31 2c 0d 0a 09 ONTDRAW..= 1,... 05a0: 49 43 45 52 52 5f 4e 45 57 50 41 4c 45 54 54 45 ICERR_NEWPALETTE 05b0: 09 3d 20 32 2c 0d 0a 09 49 43 45 52 52 5f 47 4f .= 2,...ICERR_GO 05c0: 54 4f 4b 45 59 46 52 41 4d 45 09 3d 20 33 2c 0d TOKEYFRAME.= 3,. 05d0: 0a 09 49 43 45 52 52 5f 53 54 4f 50 44 52 41 57 ..ICERR_STOPDRAW 05e0: 49 4e 47 09 3d 20 34 2c 0d 0a 7d 0d 0a 0d 0a 63 ING.= 4,..}....c 05f0: 6f 6e 73 74 20 49 43 45 52 52 5f 55 4e 53 55 50 onst ICERR_UNSUP 0600: 50 4f 52 54 45 44 09 3d 20 2d 31 3b 0d 0a 63 6f PORTED.= -1;..co 0610: 6e 73 74 20 49 43 45 52 52 5f 42 41 44 46 4f 52 nst ICERR_BADFOR 0620: 4d 41 54 09 3d 20 2d 32 3b 0d 0a 63 6f 6e 73 74 MAT.= -2;..const 0630: 20 49 43 45 52 52 5f 4d 45 4d 4f 52 59 09 09 3d ICERR_MEMORY..= 0640: 20 2d 33 3b 0d 0a 63 6f 6e 73 74 20 49 43 45 52 -3;..const ICER 0650: 52 5f 49 4e 54 45 52 4e 41 4c 09 3d 20 2d 34 3b R_INTERNAL.= -4; 0660: 0d 0a 63 6f 6e 73 74 20 49 43 45 52 52 5f 42 41 ..const ICERR_BA 0670: 44 46 4c 41 47 53 09 3d 20 2d 35 3b 0d 0a 63 6f DFLAGS.= -5;..co 0680: 6e 73 74 20 49 43 45 52 52 5f 42 41 44 50 41 52 nst ICERR_BADPAR 0690: 41 4d 09 3d 20 2d 36 3b 0d 0a 63 6f 6e 73 74 20 AM.= -6;..const 06a0: 49 43 45 52 52 5f 42 41 44 53 49 5a 45 09 09 3d ICERR_BADSIZE..= 06b0: 20 2d 37 3b 0d 0a 63 6f 6e 73 74 20 49 43 45 52 -7;..const ICER 06c0: 52 5f 42 41 44 48 41 4e 44 4c 45 09 3d 20 2d 38 R_BADHANDLE.= -8 06d0: 3b 0d 0a 63 6f 6e 73 74 20 49 43 45 52 52 5f 43 ;..const ICERR_C 06e0: 41 4e 54 55 50 44 41 54 45 09 3d 20 2d 39 3b 0d ANTUPDATE.= -9;. 06f0: 0a 63 6f 6e 73 74 20 49 43 45 52 52 5f 41 42 4f .const ICERR_ABO 0700: 52 54 09 09 3d 20 2d 31 30 3b 0d 0a 63 6f 6e 73 RT..= -10;..cons 0710: 74 20 49 43 45 52 52 5f 45 52 52 4f 52 09 09 3d t ICERR_ERROR..= 0720: 20 2d 31 30 30 3b 0d 0a 63 6f 6e 73 74 20 49 43 -100;..const IC 0730: 45 52 52 5f 42 41 44 42 49 54 44 45 50 54 48 09 ERR_BADBITDEPTH. 0740: 3d 20 2d 32 30 30 3b 0d 0a 63 6f 6e 73 74 20 49 = -200;..const I 0750: 43 45 52 52 5f 42 41 44 49 4d 41 47 45 53 49 5a CERR_BADIMAGESIZ 0760: 45 20 3d 20 2d 32 30 31 3b 0d 0a 0d 0a 63 6f 6e E = -201;....con 0770: 73 74 20 49 43 45 52 52 5f 43 55 53 54 4f 4d 20 st ICERR_CUSTOM 0780: 3d 20 2d 34 30 30 3b 0d 0a 0d 0a 65 6e 75 6d 20 = -400;....enum 0790: 7b 0d 0a 09 49 43 4d 4f 44 45 5f 43 4f 4d 50 52 {...ICMODE_COMPR 07a0: 45 53 53 09 09 09 3d 20 31 2c 0d 0a 09 49 43 4d ESS...= 1,...ICM 07b0: 4f 44 45 5f 44 45 43 4f 4d 50 52 45 53 53 2c 0d ODE_DECOMPRESS,. 07c0: 0a 09 49 43 4d 4f 44 45 5f 46 41 53 54 44 45 43 ..ICMODE_FASTDEC 07d0: 4f 4d 50 52 45 53 53 2c 0d 0a 09 49 43 4d 4f 44 OMPRESS,...ICMOD 07e0: 45 5f 51 55 45 52 59 2c 0d 0a 09 49 43 4d 4f 44 E_QUERY,...ICMOD 07f0: 45 5f 46 41 53 54 43 4f 4d 50 52 45 53 53 2c 0d E_FASTCOMPRESS,. 0800: 0a 09 49 43 4d 4f 44 45 5f 44 52 41 57 09 09 09 ..ICMODE_DRAW... 0810: 09 3d 20 38 2c 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 .= 8,..}....cons 0820: 74 20 49 43 4d 4f 44 45 5f 49 4e 54 45 52 4e 41 t ICMODE_INTERNA 0830: 4c 46 5f 46 55 4e 43 54 49 4f 4e 33 32 09 3d 20 LF_FUNCTION32.= 0840: 30 78 38 30 30 30 3b 0d 0a 63 6f 6e 73 74 20 49 0x8000;..const I 0850: 43 4d 4f 44 45 5f 49 4e 54 45 52 4e 41 4c 46 5f CMODE_INTERNALF_ 0860: 4d 41 53 4b 09 09 09 3d 20 30 78 38 30 30 30 3b MASK...= 0x8000; 0870: 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 41 56 49 ....enum {...AVI 0880: 49 46 5f 4c 49 53 54 09 09 3d 20 30 78 30 30 30 IF_LIST..= 0x000 0890: 30 30 30 30 31 2c 0d 0a 09 41 56 49 49 46 5f 54 00001,...AVIIF_T 08a0: 57 4f 43 43 09 09 3d 20 30 78 30 30 30 30 30 30 WOCC..= 0x000000 08b0: 30 32 2c 0d 0a 09 41 56 49 49 46 5f 4b 45 59 46 02,...AVIIF_KEYF 08c0: 52 41 4d 45 09 3d 20 30 78 30 30 30 30 30 30 31 RAME.= 0x0000001 08d0: 30 2c 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 49 0,..}....const I 08e0: 43 51 55 41 4c 49 54 59 5f 4c 4f 57 09 09 3d 20 CQUALITY_LOW..= 08f0: 30 3b 0d 0a 63 6f 6e 73 74 20 49 43 51 55 41 4c 0;..const ICQUAL 0900: 49 54 59 5f 48 49 47 48 09 3d 20 31 30 30 30 30 ITY_HIGH.= 10000 0910: 3b 0d 0a 63 6f 6e 73 74 20 49 43 51 55 41 4c 49 ;..const ICQUALI 0920: 54 59 5f 44 45 46 41 55 4c 54 20 3d 20 2d 31 3b TY_DEFAULT = -1; 0930: 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 43 4d ....enum {...ICM 0940: 5f 55 53 45 52 09 09 09 3d 20 44 52 56 5f 55 53 _USER...= DRV_US 0950: 45 52 20 2b 20 30 78 30 30 30 30 2c 0d 0a 09 49 ER + 0x0000,...I 0960: 43 4d 5f 52 45 53 45 52 56 45 44 5f 4c 4f 57 09 CM_RESERVED_LOW. 0970: 3d 20 44 52 56 5f 55 53 45 52 20 2b 20 30 78 31 = DRV_USER + 0x1 0980: 30 30 30 2c 0d 0a 09 49 43 4d 5f 52 45 53 45 52 000,...ICM_RESER 0990: 56 45 44 5f 48 49 47 48 09 3d 20 44 52 56 5f 55 VED_HIGH.= DRV_U 09a0: 53 45 52 20 2b 20 30 78 32 30 30 30 2c 0d 0a 09 SER + 0x2000,... 09b0: 49 43 4d 5f 52 45 53 45 52 56 45 44 09 09 3d 20 ICM_RESERVED..= 09c0: 49 43 4d 5f 52 45 53 45 52 56 45 44 5f 4c 4f 57 ICM_RESERVED_LOW 09d0: 2c 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 6d 65 73 73 61 ,..}....// messa 09e0: 67 65 73 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 ges....enum {... 09f0: 49 43 4d 5f 47 45 54 53 54 41 54 45 09 09 09 3d ICM_GETSTATE...= 0a00: 20 49 43 4d 5f 52 45 53 45 52 56 45 44 20 2b 20 ICM_RESERVED + 0a10: 30 2c 0d 0a 09 49 43 4d 5f 53 45 54 53 54 41 54 0,...ICM_SETSTAT 0a20: 45 09 09 09 3d 20 49 43 4d 5f 52 45 53 45 52 56 E...= ICM_RESERV 0a30: 45 44 20 2b 20 31 2c 0d 0a 09 49 43 4d 5f 47 45 ED + 1,...ICM_GE 0a40: 54 49 4e 46 4f 09 09 09 09 3d 20 49 43 4d 5f 52 TINFO....= ICM_R 0a50: 45 53 45 52 56 45 44 20 2b 20 32 2c 0d 0a 09 49 ESERVED + 2,...I 0a60: 43 4d 5f 43 4f 4e 46 49 47 55 52 45 09 09 09 3d CM_CONFIGURE...= 0a70: 20 49 43 4d 5f 52 45 53 45 52 56 45 44 20 2b 20 ICM_RESERVED + 0a80: 31 30 2c 0d 0a 09 49 43 4d 5f 41 42 4f 55 54 09 10,...ICM_ABOUT. 0a90: 09 09 09 3d 20 49 43 4d 5f 52 45 53 45 52 56 45 ...= ICM_RESERVE 0aa0: 44 20 2b 20 31 31 2c 0d 0a 09 49 43 4d 5f 47 45 D + 11,...ICM_GE 0ab0: 54 45 52 52 4f 52 54 45 58 54 09 09 3d 20 49 43 TERRORTEXT..= IC 0ac0: 4d 5f 52 45 53 45 52 56 45 44 20 2b 20 31 32 2c M_RESERVED + 12, 0ad0: 0d 0a 09 49 43 4d 5f 47 45 54 46 4f 52 4d 41 54 ...ICM_GETFORMAT 0ae0: 4e 41 4d 45 09 09 3d 20 49 43 4d 5f 52 45 53 45 NAME..= ICM_RESE 0af0: 52 56 45 44 20 2b 20 32 30 2c 0d 0a 09 49 43 4d RVED + 20,...ICM 0b00: 5f 45 4e 55 4d 46 4f 52 4d 41 54 53 09 09 09 3d _ENUMFORMATS...= 0b10: 20 49 43 4d 5f 52 45 53 45 52 56 45 44 20 2b 20 ICM_RESERVED + 0b20: 32 31 2c 0d 0a 09 49 43 4d 5f 47 45 54 44 45 46 21,...ICM_GETDEF 0b30: 41 55 4c 54 51 55 41 4c 49 54 59 09 3d 20 49 43 AULTQUALITY.= IC 0b40: 4d 5f 52 45 53 45 52 56 45 44 20 2b 20 33 30 2c M_RESERVED + 30, 0b50: 0d 0a 09 49 43 4d 5f 47 45 54 51 55 41 4c 49 54 ...ICM_GETQUALIT 0b60: 59 09 09 09 3d 20 49 43 4d 5f 52 45 53 45 52 56 Y...= ICM_RESERV 0b70: 45 44 20 2b 20 33 31 2c 0d 0a 09 49 43 4d 5f 53 ED + 31,...ICM_S 0b80: 45 54 51 55 41 4c 49 54 59 09 09 09 3d 20 49 43 ETQUALITY...= IC 0b90: 4d 5f 52 45 53 45 52 56 45 44 20 2b 20 33 32 2c M_RESERVED + 32, 0ba0: 0d 0a 09 49 43 4d 5f 53 45 54 09 09 09 09 09 3d ...ICM_SET.....= 0bb0: 20 49 43 4d 5f 52 45 53 45 52 56 45 44 20 2b 20 ICM_RESERVED + 0bc0: 34 30 2c 0d 0a 09 49 43 4d 5f 47 45 54 09 09 09 40,...ICM_GET... 0bd0: 09 09 3d 20 49 43 4d 5f 52 45 53 45 52 56 45 44 ..= ICM_RESERVED 0be0: 20 2b 20 34 31 2c 0d 0a 7d 0d 0a 0d 0a 63 6f 6e + 41,..}....con 0bf0: 73 74 20 49 43 4d 5f 46 52 41 4d 45 52 41 54 45 st ICM_FRAMERATE 0c00: 09 09 3d 20 6d 6d 69 6f 46 4f 55 52 43 43 21 28 ..= mmioFOURCC!( 0c10: 27 46 27 2c 27 72 27 2c 27 6d 27 2c 27 52 27 29 'F','r','m','R') 0c20: 3b 0d 0a 63 6f 6e 73 74 20 49 43 4d 5f 4b 45 59 ;..const ICM_KEY 0c30: 46 52 41 4d 45 52 41 54 45 09 3d 20 6d 6d 69 6f FRAMERATE.= mmio 0c40: 46 4f 55 52 43 43 21 28 27 4b 27 2c 27 65 27 2c FOURCC!('K','e', 0c50: 27 79 27 2c 27 52 27 29 3b 0d 0a 0d 0a 2f 2f 20 'y','R');....// 0c60: 49 43 4d 20 73 70 65 63 69 66 69 63 20 6d 65 73 ICM specific mes 0c70: 73 61 67 65 73 2e 0d 0a 0d 0a 65 6e 75 6d 20 7b sages.....enum { 0c80: 0d 0a 09 49 43 4d 5f 43 4f 4d 50 52 45 53 53 5f ...ICM_COMPRESS_ 0c90: 47 45 54 5f 46 4f 52 4d 41 54 09 09 3d 20 49 43 GET_FORMAT..= IC 0ca0: 4d 5f 55 53 45 52 20 2b 20 34 2c 0d 0a 09 49 43 M_USER + 4,...IC 0cb0: 4d 5f 43 4f 4d 50 52 45 53 53 5f 47 45 54 5f 53 M_COMPRESS_GET_S 0cc0: 49 5a 45 09 09 3d 20 49 43 4d 5f 55 53 45 52 20 IZE..= ICM_USER 0cd0: 2b 20 35 2c 0d 0a 09 49 43 4d 5f 43 4f 4d 50 52 + 5,...ICM_COMPR 0ce0: 45 53 53 5f 51 55 45 52 59 09 09 09 3d 20 49 43 ESS_QUERY...= IC 0cf0: 4d 5f 55 53 45 52 20 2b 20 36 2c 0d 0a 09 49 43 M_USER + 6,...IC 0d00: 4d 5f 43 4f 4d 50 52 45 53 53 5f 42 45 47 49 4e M_COMPRESS_BEGIN 0d10: 09 09 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 ...= ICM_USER + 0d20: 37 2c 0d 0a 09 49 43 4d 5f 43 4f 4d 50 52 45 53 7,...ICM_COMPRES 0d30: 53 09 09 09 09 3d 20 49 43 4d 5f 55 53 45 52 20 S....= ICM_USER 0d40: 2b 20 38 2c 0d 0a 09 49 43 4d 5f 43 4f 4d 50 52 + 8,...ICM_COMPR 0d50: 45 53 53 5f 45 4e 44 09 09 09 3d 20 49 43 4d 5f ESS_END...= ICM_ 0d60: 55 53 45 52 20 2b 20 39 2c 0d 0a 09 49 43 4d 5f USER + 9,...ICM_ 0d70: 44 45 43 4f 4d 50 52 45 53 53 5f 47 45 54 5f 46 DECOMPRESS_GET_F 0d80: 4f 52 4d 41 54 09 3d 20 49 43 4d 5f 55 53 45 52 ORMAT.= ICM_USER 0d90: 20 2b 20 31 30 2c 0d 0a 09 49 43 4d 5f 44 45 43 + 10,...ICM_DEC 0da0: 4f 4d 50 52 45 53 53 5f 51 55 45 52 59 09 09 3d OMPRESS_QUERY..= 0db0: 20 49 43 4d 5f 55 53 45 52 20 2b 20 31 31 2c 0d ICM_USER + 11,. 0dc0: 0a 09 49 43 4d 5f 44 45 43 4f 4d 50 52 45 53 53 ..ICM_DECOMPRESS 0dd0: 5f 42 45 47 49 4e 09 09 3d 20 49 43 4d 5f 55 53 _BEGIN..= ICM_US 0de0: 45 52 20 2b 20 31 32 2c 0d 0a 09 49 43 4d 5f 44 ER + 12,...ICM_D 0df0: 45 43 4f 4d 50 52 45 53 53 09 09 09 09 3d 20 49 ECOMPRESS....= I 0e00: 43 4d 5f 55 53 45 52 20 2b 20 31 33 2c 0d 0a 09 CM_USER + 13,... 0e10: 49 43 4d 5f 44 45 43 4f 4d 50 52 45 53 53 5f 45 ICM_DECOMPRESS_E 0e20: 4e 44 09 09 09 3d 20 49 43 4d 5f 55 53 45 52 20 ND...= ICM_USER 0e30: 2b 20 31 34 2c 0d 0a 09 49 43 4d 5f 44 45 43 4f + 14,...ICM_DECO 0e40: 4d 50 52 45 53 53 5f 53 45 54 5f 50 41 4c 45 54 MPRESS_SET_PALET 0e50: 54 45 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 TE.= ICM_USER + 0e60: 32 39 2c 0d 0a 09 49 43 4d 5f 44 45 43 4f 4d 50 29,...ICM_DECOMP 0e70: 52 45 53 53 5f 47 45 54 5f 50 41 4c 45 54 54 45 RESS_GET_PALETTE 0e80: 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 33 30 .= ICM_USER + 30 0e90: 2c 0d 0a 09 49 43 4d 5f 44 52 41 57 5f 51 55 45 ,...ICM_DRAW_QUE 0ea0: 52 59 09 09 09 09 3d 20 49 43 4d 5f 55 53 45 52 RY....= ICM_USER 0eb0: 20 2b 20 33 31 2c 0d 0a 09 49 43 4d 5f 44 52 41 + 31,...ICM_DRA 0ec0: 57 5f 42 45 47 49 4e 09 09 09 09 3d 20 49 43 4d W_BEGIN....= ICM 0ed0: 5f 55 53 45 52 20 2b 20 31 35 2c 0d 0a 09 49 43 _USER + 15,...IC 0ee0: 4d 5f 44 52 41 57 5f 47 45 54 5f 50 41 4c 45 54 M_DRAW_GET_PALET 0ef0: 54 45 09 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b TE..= ICM_USER + 0f00: 20 31 36 2c 0d 0a 09 49 43 4d 5f 44 52 41 57 5f 16,...ICM_DRAW_ 0f10: 55 50 44 41 54 45 09 09 09 09 3d 20 49 43 4d 5f UPDATE....= ICM_ 0f20: 55 53 45 52 20 2b 20 31 37 2c 0d 0a 09 49 43 4d USER + 17,...ICM 0f30: 5f 44 52 41 57 5f 53 54 41 52 54 09 09 09 09 3d _DRAW_START....= 0f40: 20 49 43 4d 5f 55 53 45 52 20 2b 20 31 38 2c 0d ICM_USER + 18,. 0f50: 0a 09 49 43 4d 5f 44 52 41 57 5f 53 54 4f 50 09 ..ICM_DRAW_STOP. 0f60: 09 09 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 ...= ICM_USER + 0f70: 31 39 2c 0d 0a 09 49 43 4d 5f 44 52 41 57 5f 42 19,...ICM_DRAW_B 0f80: 49 54 53 09 09 09 09 3d 20 49 43 4d 5f 55 53 45 ITS....= ICM_USE 0f90: 52 20 2b 20 32 30 2c 0d 0a 09 49 43 4d 5f 44 52 R + 20,...ICM_DR 0fa0: 41 57 5f 45 4e 44 09 09 09 09 3d 20 49 43 4d 5f AW_END....= ICM_ 0fb0: 55 53 45 52 20 2b 20 32 31 2c 0d 0a 09 49 43 4d USER + 21,...ICM 0fc0: 5f 44 52 41 57 5f 47 45 54 54 49 4d 45 09 09 09 _DRAW_GETTIME... 0fd0: 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 33 32 2c = ICM_USER + 32, 0fe0: 0d 0a 09 49 43 4d 5f 44 52 41 57 09 09 09 09 09 ...ICM_DRAW..... 0ff0: 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 33 33 2c = ICM_USER + 33, 1000: 0d 0a 09 49 43 4d 5f 44 52 41 57 5f 57 49 4e 44 ...ICM_DRAW_WIND 1010: 4f 57 09 09 09 09 3d 20 49 43 4d 5f 55 53 45 52 OW....= ICM_USER 1020: 20 2b 20 33 34 2c 0d 0a 09 49 43 4d 5f 44 52 41 + 34,...ICM_DRA 1030: 57 5f 53 45 54 54 49 4d 45 09 09 09 3d 20 49 43 W_SETTIME...= IC 1040: 4d 5f 55 53 45 52 20 2b 20 33 35 2c 0d 0a 09 49 M_USER + 35,...I 1050: 43 4d 5f 44 52 41 57 5f 52 45 41 4c 49 5a 45 09 CM_DRAW_REALIZE. 1060: 09 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 33 ..= ICM_USER + 3 1070: 36 2c 0d 0a 09 49 43 4d 5f 44 52 41 57 5f 46 4c 6,...ICM_DRAW_FL 1080: 55 53 48 09 09 09 09 3d 20 49 43 4d 5f 55 53 45 USH....= ICM_USE 1090: 52 20 2b 20 33 37 2c 0d 0a 09 49 43 4d 5f 44 52 R + 37,...ICM_DR 10a0: 41 57 5f 52 45 4e 44 45 52 42 55 46 46 45 52 09 AW_RENDERBUFFER. 10b0: 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 33 38 .= ICM_USER + 38 10c0: 2c 0d 0a 09 49 43 4d 5f 44 52 41 57 5f 53 54 41 ,...ICM_DRAW_STA 10d0: 52 54 5f 50 4c 41 59 09 09 09 3d 20 49 43 4d 5f RT_PLAY...= ICM_ 10e0: 55 53 45 52 20 2b 20 33 39 2c 0d 0a 09 49 43 4d USER + 39,...ICM 10f0: 5f 44 52 41 57 5f 53 54 4f 50 5f 50 4c 41 59 09 _DRAW_STOP_PLAY. 1100: 09 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 34 ..= ICM_USER + 4 1110: 30 2c 0d 0a 09 49 43 4d 5f 44 52 41 57 5f 53 55 0,...ICM_DRAW_SU 1120: 47 47 45 53 54 46 4f 52 4d 41 54 09 09 3d 20 49 GGESTFORMAT..= I 1130: 43 4d 5f 55 53 45 52 20 2b 20 35 30 2c 0d 0a 09 CM_USER + 50,... 1140: 49 43 4d 5f 44 52 41 57 5f 43 48 41 4e 47 45 50 ICM_DRAW_CHANGEP 1150: 41 4c 45 54 54 45 09 09 3d 20 49 43 4d 5f 55 53 ALETTE..= ICM_US 1160: 45 52 20 2b 20 35 31 2c 0d 0a 09 49 43 4d 5f 44 ER + 51,...ICM_D 1170: 52 41 57 5f 49 44 4c 45 09 09 09 09 3d 20 49 43 RAW_IDLE....= IC 1180: 4d 5f 55 53 45 52 20 2b 20 35 32 2c 0d 0a 09 49 M_USER + 52,...I 1190: 43 4d 5f 47 45 54 42 55 46 46 45 52 53 57 41 4e CM_GETBUFFERSWAN 11a0: 54 45 44 09 09 3d 20 49 43 4d 5f 55 53 45 52 20 TED..= ICM_USER 11b0: 2b 20 34 31 2c 0d 0a 09 49 43 4d 5f 47 45 54 44 + 41,...ICM_GETD 11c0: 45 46 41 55 4c 54 4b 45 59 46 52 41 4d 45 52 41 EFAULTKEYFRAMERA 11d0: 54 45 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b 20 TE.= ICM_USER + 11e0: 34 32 2c 0d 0a 09 49 43 4d 5f 44 45 43 4f 4d 50 42,...ICM_DECOMP 11f0: 52 45 53 53 45 58 5f 42 45 47 49 4e 09 09 3d 20 RESSEX_BEGIN..= 1200: 49 43 4d 5f 55 53 45 52 20 2b 20 36 30 2c 0d 0a ICM_USER + 60,.. 1210: 09 49 43 4d 5f 44 45 43 4f 4d 50 52 45 53 53 45 .ICM_DECOMPRESSE 1220: 58 5f 51 55 45 52 59 09 09 3d 20 49 43 4d 5f 55 X_QUERY..= ICM_U 1230: 53 45 52 20 2b 20 36 31 2c 0d 0a 09 49 43 4d 5f SER + 61,...ICM_ 1240: 44 45 43 4f 4d 50 52 45 53 53 45 58 09 09 09 3d DECOMPRESSEX...= 1250: 20 49 43 4d 5f 55 53 45 52 20 2b 20 36 32 2c 0d ICM_USER + 62,. 1260: 0a 09 49 43 4d 5f 44 45 43 4f 4d 50 52 45 53 53 ..ICM_DECOMPRESS 1270: 45 58 5f 45 4e 44 09 09 3d 20 49 43 4d 5f 55 53 EX_END..= ICM_US 1280: 45 52 20 2b 20 36 33 2c 0d 0a 09 49 43 4d 5f 43 ER + 63,...ICM_C 1290: 4f 4d 50 52 45 53 53 5f 46 52 41 4d 45 53 5f 49 OMPRESS_FRAMES_I 12a0: 4e 46 4f 09 3d 20 49 43 4d 5f 55 53 45 52 20 2b NFO.= ICM_USER + 12b0: 20 37 30 2c 0d 0a 09 49 43 4d 5f 43 4f 4d 50 52 70,...ICM_COMPR 12c0: 45 53 53 5f 46 52 41 4d 45 53 09 09 09 3d 20 49 ESS_FRAMES...= I 12d0: 43 4d 5f 55 53 45 52 20 2b 20 37 31 2c 0d 0a 09 CM_USER + 71,... 12e0: 49 43 4d 5f 53 45 54 5f 53 54 41 54 55 53 5f 50 ICM_SET_STATUS_P 12f0: 52 4f 43 09 09 09 3d 20 49 43 4d 5f 55 53 45 52 ROC...= ICM_USER 1300: 20 2b 20 37 32 2c 0d 0a 7d 0d 0a 0d 0a 73 74 72 + 72,..}....str 1310: 75 63 74 20 49 43 4f 50 45 4e 20 7b 0d 0a 09 44 uct ICOPEN {...D 1320: 57 4f 52 44 09 64 77 53 69 7a 65 3b 0d 0a 09 44 WORD.dwSize;...D 1330: 57 4f 52 44 09 66 63 63 54 79 70 65 3b 0d 0a 09 WORD.fccType;... 1340: 44 57 4f 52 44 09 66 63 63 48 61 6e 64 6c 65 72 DWORD.fccHandler 1350: 3b 0d 0a 09 44 57 4f 52 44 09 64 77 56 65 72 73 ;...DWORD.dwVers 1360: 69 6f 6e 3b 0d 0a 09 44 57 4f 52 44 09 64 77 46 ion;...DWORD.dwF 1370: 6c 61 67 73 3b 0d 0a 09 4c 52 45 53 55 4c 54 09 lags;...LRESULT. 1380: 64 77 45 72 72 6f 72 3b 0d 0a 09 4c 50 56 4f 49 dwError;...LPVOI 1390: 44 09 70 56 31 52 65 73 65 72 76 65 64 3b 0d 0a D.pV1Reserved;.. 13a0: 09 4c 50 56 4f 49 44 09 70 56 32 52 65 73 65 72 .LPVOID.pV2Reser 13b0: 76 65 64 3b 0d 0a 09 44 57 4f 52 44 09 64 6e 44 ved;...DWORD.dnD 13c0: 65 76 4e 6f 64 65 3b 0d 0a 7d 0d 0a 0d 0a 73 74 evNode;..}....st 13d0: 72 75 63 74 20 49 43 49 4e 46 4f 20 7b 0d 0a 09 ruct ICINFO {... 13e0: 44 57 4f 52 44 09 64 77 53 69 7a 65 3b 0d 0a 09 DWORD.dwSize;... 13f0: 44 57 4f 52 44 09 66 63 63 54 79 70 65 3b 0d 0a DWORD.fccType;.. 1400: 09 44 57 4f 52 44 09 66 63 63 48 61 6e 64 6c 65 .DWORD.fccHandle 1410: 72 3b 0d 0a 09 44 57 4f 52 44 09 64 77 46 6c 61 r;...DWORD.dwFla 1420: 67 73 3b 0d 0a 09 44 57 4f 52 44 09 64 77 56 65 gs;...DWORD.dwVe 1430: 72 73 69 6f 6e 3b 0d 0a 09 44 57 4f 52 44 09 64 rsion;...DWORD.d 1440: 77 56 65 72 73 69 6f 6e 49 43 4d 3b 0d 0a 09 57 wVersionICM;...W 1450: 43 48 41 52 5b 31 36 5d 09 73 7a 4e 61 6d 65 3b CHAR[16].szName; 1460: 0d 0a 09 57 43 48 41 52 5b 31 32 38 5d 09 73 7a ...WCHAR[128].sz 1470: 44 65 73 63 72 69 70 74 69 6f 6e 3b 0d 0a 09 57 Description;...W 1480: 43 48 41 52 5b 31 32 38 5d 09 73 7a 44 72 69 76 CHAR[128].szDriv 1490: 65 72 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b er;..}....enum { 14a0: 0d 0a 09 56 49 44 43 46 5f 51 55 41 4c 49 54 59 ...VIDCF_QUALITY 14b0: 09 09 09 3d 20 30 78 30 30 30 31 2c 0d 0a 09 56 ...= 0x0001,...V 14c0: 49 44 43 46 5f 43 52 55 4e 43 48 09 09 09 3d 20 IDCF_CRUNCH...= 14d0: 30 78 30 30 30 32 2c 0d 0a 09 56 49 44 43 46 5f 0x0002,...VIDCF_ 14e0: 54 45 4d 50 4f 52 41 4c 09 09 09 3d 20 30 78 30 TEMPORAL...= 0x0 14f0: 30 30 34 2c 0d 0a 09 56 49 44 43 46 5f 43 4f 4d 004,...VIDCF_COM 1500: 50 52 45 53 53 46 52 41 4d 45 53 09 3d 20 30 78 PRESSFRAMES.= 0x 1510: 30 30 30 38 2c 0d 0a 09 56 49 44 43 46 5f 44 52 0008,...VIDCF_DR 1520: 41 57 09 09 09 09 3d 20 30 78 30 30 31 30 2c 0d AW....= 0x0010,. 1530: 0a 09 56 49 44 43 46 5f 46 41 53 54 54 45 4d 50 ..VIDCF_FASTTEMP 1540: 4f 52 41 4c 43 09 09 3d 20 30 78 30 30 32 30 2c ORALC..= 0x0020, 1550: 0d 0a 09 56 49 44 43 46 5f 46 41 53 54 54 45 4d ...VIDCF_FASTTEM 1560: 50 4f 52 41 4c 44 09 09 3d 20 30 78 30 30 38 30 PORALD..= 0x0080 1570: 2c 0d 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 49 43 ,..}....const IC 1580: 43 4f 4d 50 52 45 53 53 5f 4b 45 59 46 52 41 4d COMPRESS_KEYFRAM 1590: 45 20 3d 20 30 78 30 30 30 30 30 30 30 31 4c 3b E = 0x00000001L; 15a0: 0d 0a 0d 0a 73 74 72 75 63 74 20 49 43 43 4f 4d ....struct ICCOM 15b0: 50 52 45 53 53 20 7b 0d 0a 09 44 57 4f 52 44 09 PRESS {...DWORD. 15c0: 09 09 09 64 77 46 6c 61 67 73 3b 0d 0a 09 4c 50 ...dwFlags;...LP 15d0: 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 44 45 52 BITMAPINFOHEADER 15e0: 09 6c 70 62 69 4f 75 74 70 75 74 3b 0d 0a 09 4c .lpbiOutput;...L 15f0: 50 56 4f 49 44 09 09 09 09 6c 70 4f 75 74 70 75 PVOID....lpOutpu 1600: 74 3b 0d 0a 09 4c 50 42 49 54 4d 41 50 49 4e 46 t;...LPBITMAPINF 1610: 4f 48 45 41 44 45 52 09 6c 70 62 69 49 6e 70 75 OHEADER.lpbiInpu 1620: 74 3b 0d 0a 09 4c 50 56 4f 49 44 09 09 09 09 6c t;...LPVOID....l 1630: 70 49 6e 70 75 74 3b 0d 0a 09 4c 50 44 57 4f 52 pInput;...LPDWOR 1640: 44 09 09 09 09 6c 70 63 6b 69 64 3b 0d 0a 09 4c D....lpckid;...L 1650: 50 44 57 4f 52 44 09 09 09 09 6c 70 64 77 46 6c PDWORD....lpdwFl 1660: 61 67 73 3b 0d 0a 09 4c 4f 4e 47 09 09 09 09 6c ags;...LONG....l 1670: 46 72 61 6d 65 4e 75 6d 3b 0d 0a 09 44 57 4f 52 FrameNum;...DWOR 1680: 44 09 09 09 09 64 77 46 72 61 6d 65 53 69 7a 65 D....dwFrameSize 1690: 3b 0d 0a 09 44 57 4f 52 44 09 09 09 09 64 77 51 ;...DWORD....dwQ 16a0: 75 61 6c 69 74 79 3b 0d 0a 09 4c 50 42 49 54 4d uality;...LPBITM 16b0: 41 50 49 4e 46 4f 48 45 41 44 45 52 09 6c 70 62 APINFOHEADER.lpb 16c0: 69 50 72 65 76 3b 0d 0a 09 4c 50 56 4f 49 44 09 iPrev;...LPVOID. 16d0: 09 09 09 6c 70 50 72 65 76 3b 0d 0a 7d 0d 0a 0d ...lpPrev;..}... 16e0: 0a 63 6f 6e 73 74 20 49 43 43 4f 4d 50 52 45 53 .const ICCOMPRES 16f0: 53 46 52 41 4d 45 53 5f 50 41 44 44 49 4e 47 20 SFRAMES_PADDING 1700: 3d 20 30 78 30 30 30 30 30 30 30 31 3b 0d 0a 0d = 0x00000001;... 1710: 0a 73 74 72 75 63 74 20 49 43 43 4f 4d 50 52 45 .struct ICCOMPRE 1720: 53 53 46 52 41 4d 45 53 20 7b 0d 0a 09 44 57 4f SSFRAMES {...DWO 1730: 52 44 09 09 09 09 64 77 46 6c 61 67 73 3b 0d 0a RD....dwFlags;.. 1740: 09 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 .LPBITMAPINFOHEA 1750: 44 45 52 09 6c 70 62 69 4f 75 74 70 75 74 3b 0d DER.lpbiOutput;. 1760: 0a 09 4c 50 41 52 41 4d 09 09 09 09 6c 4f 75 74 ..LPARAM....lOut 1770: 70 75 74 3b 0d 0a 09 4c 50 42 49 54 4d 41 50 49 put;...LPBITMAPI 1780: 4e 46 4f 48 45 41 44 45 52 09 6c 70 62 69 49 6e NFOHEADER.lpbiIn 1790: 70 75 74 3b 0d 0a 09 4c 50 41 52 41 4d 09 09 09 put;...LPARAM... 17a0: 09 6c 49 6e 70 75 74 3b 0d 0a 09 4c 4f 4e 47 09 .lInput;...LONG. 17b0: 09 09 09 6c 53 74 61 72 74 46 72 61 6d 65 3b 0d ...lStartFrame;. 17c0: 0a 09 4c 4f 4e 47 09 09 09 09 6c 46 72 61 6d 65 ..LONG....lFrame 17d0: 43 6f 75 6e 74 3b 0d 0a 09 4c 4f 4e 47 09 09 09 Count;...LONG... 17e0: 09 6c 51 75 61 6c 69 74 79 3b 0d 0a 09 4c 4f 4e .lQuality;...LON 17f0: 47 09 09 09 09 6c 44 61 74 61 52 61 74 65 3b 0d G....lDataRate;. 1800: 0a 09 4c 4f 4e 47 09 09 09 09 6c 4b 65 79 52 61 ..LONG....lKeyRa 1810: 74 65 3b 0d 0a 09 44 57 4f 52 44 09 09 09 09 64 te;...DWORD....d 1820: 77 52 61 74 65 3b 0d 0a 09 44 57 4f 52 44 09 09 wRate;...DWORD.. 1830: 09 09 64 77 53 63 61 6c 65 3b 20 20 20 20 44 57 ..dwScale; DW 1840: 4f 52 44 09 09 64 77 4f 76 65 72 68 65 61 64 50 ORD..dwOverheadP 1850: 65 72 46 72 61 6d 65 3b 0d 0a 09 44 57 4f 52 44 erFrame;...DWORD 1860: 09 09 09 09 64 77 52 65 73 65 72 76 65 64 32 3b ....dwReserved2; 1870: 0d 0a 0d 0a 09 4c 4f 4e 47 20 66 75 6e 63 74 69 .....LONG functi 1880: 6f 6e 28 4c 50 41 52 41 4d 20 6c 49 6e 70 75 74 on(LPARAM lInput 1890: 2c 20 4c 4f 4e 47 20 6c 46 72 61 6d 65 2c 20 4c , LONG lFrame, L 18a0: 50 56 4f 49 44 20 6c 70 42 69 74 73 2c 20 4c 4f PVOID lpBits, LO 18b0: 4e 47 20 6c 65 6e 29 20 47 65 74 44 61 74 61 3b NG len) GetData; 18c0: 0d 0a 09 4c 4f 4e 47 20 66 75 6e 63 74 69 6f 6e ...LONG function 18d0: 28 4c 50 41 52 41 4d 20 6c 4f 75 74 70 75 74 2c (LPARAM lOutput, 18e0: 20 4c 4f 4e 47 20 6c 46 72 61 6d 65 2c 20 4c 50 LONG lFrame, LP 18f0: 56 4f 49 44 20 6c 70 42 69 74 73 2c 20 4c 4f 4e VOID lpBits, LON 1900: 47 20 6c 65 6e 29 20 50 75 74 44 61 74 61 3b 0d G len) PutData;. 1910: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 .}....enum {...I 1920: 43 53 54 41 54 55 53 5f 53 54 41 52 54 09 3d 20 CSTATUS_START.= 1930: 30 2c 0d 0a 09 49 43 53 54 41 54 55 53 5f 53 54 0,...ICSTATUS_ST 1940: 41 54 55 53 09 3d 20 31 2c 0d 0a 09 49 43 53 54 ATUS.= 1,...ICST 1950: 41 54 55 53 5f 45 4e 44 09 3d 20 32 2c 0d 0a 09 ATUS_END.= 2,... 1960: 49 43 53 54 41 54 55 53 5f 45 52 52 4f 52 09 3d ICSTATUS_ERROR.= 1970: 20 33 2c 0d 0a 09 49 43 53 54 41 54 55 53 5f 59 3,...ICSTATUS_Y 1980: 49 45 4c 44 09 3d 20 34 2c 0d 0a 7d 0d 0a 0d 0a IELD.= 4,..}.... 1990: 73 74 72 75 63 74 20 49 43 53 45 54 53 54 41 54 struct ICSETSTAT 19a0: 55 53 50 52 4f 43 20 7b 0d 0a 09 44 57 4f 52 44 USPROC {...DWORD 19b0: 09 64 77 46 6c 61 67 73 3b 0d 0a 09 4c 50 41 52 .dwFlags;...LPAR 19c0: 41 4d 09 6c 50 61 72 61 6d 3b 0d 0a 09 4c 4f 4e AM.lParam;...LON 19d0: 47 20 66 75 6e 63 74 69 6f 6e 28 4c 50 41 52 41 G function(LPARA 19e0: 4d 20 6c 50 61 72 61 6d 2c 20 55 49 4e 54 20 6d M lParam, UINT m 19f0: 65 73 73 61 67 65 2c 20 4c 4f 4e 47 20 6c 29 20 essage, LONG l) 1a00: 53 74 61 74 75 73 3b 0d 0a 7d 0d 0a 0d 0a 65 6e Status;..}....en 1a10: 75 6d 20 7b 0d 0a 09 49 43 44 45 43 4f 4d 50 52 um {...ICDECOMPR 1a20: 45 53 53 5f 4e 4f 54 4b 45 59 46 52 41 4d 45 09 ESS_NOTKEYFRAME. 1a30: 3d 20 30 78 30 38 30 30 30 30 30 30 2c 0d 0a 09 = 0x08000000,... 1a40: 49 43 44 45 43 4f 4d 50 52 45 53 53 5f 4e 55 4c ICDECOMPRESS_NUL 1a50: 4c 46 52 41 4d 45 09 09 3d 20 30 78 31 30 30 30 LFRAME..= 0x1000 1a60: 30 30 30 30 2c 0d 0a 09 49 43 44 45 43 4f 4d 50 0000,...ICDECOMP 1a70: 52 45 53 53 5f 50 52 45 52 4f 4c 4c 09 09 3d 20 RESS_PREROLL..= 1a80: 30 78 32 30 30 30 30 30 30 30 2c 0d 0a 09 49 43 0x20000000,...IC 1a90: 44 45 43 4f 4d 50 52 45 53 53 5f 55 50 44 41 54 DECOMPRESS_UPDAT 1aa0: 45 09 09 09 3d 20 30 78 34 30 30 30 30 30 30 30 E...= 0x40000000 1ab0: 2c 0d 0a 09 49 43 44 45 43 4f 4d 50 52 45 53 53 ,...ICDECOMPRESS 1ac0: 5f 48 55 52 52 59 55 50 09 09 3d 20 30 78 38 30 _HURRYUP..= 0x80 1ad0: 30 30 30 30 30 30 2c 0d 0a 7d 0d 0a 0d 0a 73 74 000000,..}....st 1ae0: 72 75 63 74 20 49 43 44 45 43 4f 4d 50 52 45 53 ruct ICDECOMPRES 1af0: 53 20 7b 0d 0a 09 44 57 4f 52 44 09 09 09 09 64 S {...DWORD....d 1b00: 77 46 6c 61 67 73 3b 0d 0a 09 4c 50 42 49 54 4d wFlags;...LPBITM 1b10: 41 50 49 4e 46 4f 48 45 41 44 45 52 09 6c 70 62 APINFOHEADER.lpb 1b20: 69 49 6e 70 75 74 3b 0d 0a 09 4c 50 56 4f 49 44 iInput;...LPVOID 1b30: 09 09 09 09 6c 70 49 6e 70 75 74 3b 0d 0a 09 4c ....lpInput;...L 1b40: 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 44 45 PBITMAPINFOHEADE 1b50: 52 09 6c 70 62 69 4f 75 74 70 75 74 3b 0d 0a 09 R.lpbiOutput;... 1b60: 4c 50 56 4f 49 44 09 09 09 09 6c 70 4f 75 74 70 LPVOID....lpOutp 1b70: 75 74 3b 0d 0a 09 44 57 4f 52 44 09 09 09 09 63 ut;...DWORD....c 1b80: 6b 69 64 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 kid;..}....struc 1b90: 74 20 49 43 44 45 43 4f 4d 50 52 45 53 53 45 58 t ICDECOMPRESSEX 1ba0: 20 7b 0d 0a 09 44 57 4f 52 44 09 09 09 09 64 77 {...DWORD....dw 1bb0: 46 6c 61 67 73 3b 0d 0a 09 4c 50 42 49 54 4d 41 Flags;...LPBITMA 1bc0: 50 49 4e 46 4f 48 45 41 44 45 52 20 20 6c 70 62 PINFOHEADER lpb 1bd0: 69 53 72 63 3b 0d 0a 09 4c 50 56 4f 49 44 09 09 iSrc;...LPVOID.. 1be0: 09 09 6c 70 53 72 63 3b 0d 0a 09 4c 50 42 49 54 ..lpSrc;...LPBIT 1bf0: 4d 41 50 49 4e 46 4f 48 45 41 44 45 52 09 6c 70 MAPINFOHEADER.lp 1c00: 62 69 44 73 74 3b 0d 0a 09 4c 50 56 4f 49 44 09 biDst;...LPVOID. 1c10: 09 09 09 6c 70 44 73 74 3b 0d 0a 09 69 6e 74 09 ...lpDst;...int. 1c20: 09 09 09 09 78 44 73 74 3b 0d 0a 09 69 6e 74 09 ....xDst;...int. 1c30: 09 09 09 09 79 44 73 74 3b 0d 0a 09 69 6e 74 09 ....yDst;...int. 1c40: 09 09 09 09 64 78 44 73 74 3b 0d 0a 09 69 6e 74 ....dxDst;...int 1c50: 09 09 09 09 09 64 79 44 73 74 3b 0d 0a 09 69 6e .....dyDst;...in 1c60: 74 09 09 09 09 09 78 53 72 63 3b 0d 0a 09 69 6e t.....xSrc;...in 1c70: 74 09 09 09 09 09 79 53 72 63 3b 0d 0a 09 69 6e t.....ySrc;...in 1c80: 74 09 09 09 09 09 64 78 53 72 63 3b 0d 0a 09 69 t.....dxSrc;...i 1c90: 6e 74 09 09 09 09 09 64 79 53 72 63 3b 0d 0a 7d nt.....dySrc;..} 1ca0: 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 43 44 ....enum {...ICD 1cb0: 52 41 57 5f 51 55 45 52 59 09 09 3d 20 30 78 30 RAW_QUERY..= 0x0 1cc0: 30 30 30 30 30 30 31 2c 0d 0a 09 49 43 44 52 41 0000001,...ICDRA 1cd0: 57 5f 46 55 4c 4c 53 43 52 45 45 4e 09 3d 20 30 W_FULLSCREEN.= 0 1ce0: 78 30 30 30 30 30 30 30 32 2c 0d 0a 09 49 43 44 x00000002,...ICD 1cf0: 52 41 57 5f 48 44 43 09 09 09 3d 20 30 78 30 30 RAW_HDC...= 0x00 1d00: 30 30 30 30 30 34 2c 0d 0a 09 49 43 44 52 41 57 000004,...ICDRAW 1d10: 5f 41 4e 49 4d 41 54 45 09 09 3d 20 30 78 30 30 _ANIMATE..= 0x00 1d20: 30 30 30 30 30 38 2c 0d 0a 09 49 43 44 52 41 57 000008,...ICDRAW 1d30: 5f 43 4f 4e 54 49 4e 55 45 09 09 3d 20 30 78 30 _CONTINUE..= 0x0 1d40: 30 30 30 30 30 31 30 2c 0d 0a 09 49 43 44 52 41 0000010,...ICDRA 1d50: 57 5f 4d 45 4d 4f 52 59 44 43 09 09 3d 20 30 78 W_MEMORYDC..= 0x 1d60: 30 30 30 30 30 30 32 30 2c 0d 0a 09 49 43 44 52 00000020,...ICDR 1d70: 41 57 5f 55 50 44 41 54 49 4e 47 09 09 3d 20 30 AW_UPDATING..= 0 1d80: 78 30 30 30 30 30 30 34 30 2c 0d 0a 09 49 43 44 x00000040,...ICD 1d90: 52 41 57 5f 52 45 4e 44 45 52 09 09 3d 20 30 78 RAW_RENDER..= 0x 1da0: 30 30 30 30 30 30 38 30 2c 0d 0a 09 49 43 44 52 00000080,...ICDR 1db0: 41 57 5f 42 55 46 46 45 52 09 09 3d 20 30 78 30 AW_BUFFER..= 0x0 1dc0: 30 30 30 30 31 30 30 2c 0d 0a 7d 0d 0a 0d 0a 73 0000100,..}....s 1dd0: 74 72 75 63 74 20 49 43 44 52 41 57 42 45 47 49 truct ICDRAWBEGI 1de0: 4e 20 7b 0d 0a 09 44 57 4f 52 44 09 09 09 09 64 N {...DWORD....d 1df0: 77 46 6c 61 67 73 3b 0d 0a 09 48 50 41 4c 45 54 wFlags;...HPALET 1e00: 54 45 09 09 09 68 70 61 6c 3b 0d 0a 09 48 57 4e TE...hpal;...HWN 1e10: 44 09 09 09 09 68 77 6e 64 3b 0d 0a 09 48 44 43 D....hwnd;...HDC 1e20: 09 09 09 09 09 68 64 63 3b 0d 0a 09 69 6e 74 09 .....hdc;...int. 1e30: 09 09 09 09 78 44 73 74 3b 0d 0a 09 69 6e 74 09 ....xDst;...int. 1e40: 09 09 09 09 79 44 73 74 3b 0d 0a 09 69 6e 74 09 ....yDst;...int. 1e50: 09 09 09 09 64 78 44 73 74 3b 0d 0a 09 69 6e 74 ....dxDst;...int 1e60: 09 09 09 09 09 64 79 44 73 74 3b 0d 0a 09 4c 50 .....dyDst;...LP 1e70: 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 44 45 52 BITMAPINFOHEADER 1e80: 09 6c 70 62 69 3b 0d 0a 09 69 6e 74 09 09 09 09 .lpbi;...int.... 1e90: 09 78 53 72 63 3b 0d 0a 09 69 6e 74 09 09 09 09 .xSrc;...int.... 1ea0: 09 79 53 72 63 3b 0d 0a 09 69 6e 74 09 09 09 09 .ySrc;...int.... 1eb0: 09 64 78 53 72 63 3b 0d 0a 09 69 6e 74 09 09 09 .dxSrc;...int... 1ec0: 09 09 64 79 53 72 63 3b 0d 0a 09 44 57 4f 52 44 ..dySrc;...DWORD 1ed0: 09 09 09 09 64 77 52 61 74 65 3b 0d 0a 09 44 57 ....dwRate;...DW 1ee0: 4f 52 44 09 09 09 09 64 77 53 63 61 6c 65 3b 0d ORD....dwScale;. 1ef0: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 .}....enum {...I 1f00: 43 44 52 41 57 5f 4e 4f 54 4b 45 59 46 52 41 4d CDRAW_NOTKEYFRAM 1f10: 45 09 3d 20 30 78 30 38 30 30 30 30 30 30 2c 0d E.= 0x08000000,. 1f20: 0a 09 49 43 44 52 41 57 5f 4e 55 4c 4c 46 52 41 ..ICDRAW_NULLFRA 1f30: 4d 45 09 3d 20 30 78 31 30 30 30 30 30 30 30 2c ME.= 0x10000000, 1f40: 0d 0a 09 49 43 44 52 41 57 5f 50 52 45 52 4f 4c ...ICDRAW_PREROL 1f50: 4c 09 09 3d 20 30 78 32 30 30 30 30 30 30 30 2c L..= 0x20000000, 1f60: 0d 0a 09 49 43 44 52 41 57 5f 55 50 44 41 54 45 ...ICDRAW_UPDATE 1f70: 09 09 3d 20 30 78 34 30 30 30 30 30 30 30 2c 0d ..= 0x40000000,. 1f80: 0a 09 49 43 44 52 41 57 5f 48 55 52 52 59 55 50 ..ICDRAW_HURRYUP 1f90: 09 09 3d 20 30 78 38 30 30 30 30 30 30 30 2c 0d ..= 0x80000000,. 1fa0: 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 49 43 44 .}....struct ICD 1fb0: 52 41 57 20 7b 0d 0a 09 44 57 4f 52 44 09 09 09 RAW {...DWORD... 1fc0: 64 77 46 6c 61 67 73 3b 0d 0a 09 4c 50 56 4f 49 dwFlags;...LPVOI 1fd0: 44 09 09 09 6c 70 46 6f 72 6d 61 74 3b 0d 0a 09 D...lpFormat;... 1fe0: 4c 50 56 4f 49 44 09 09 09 6c 70 44 61 74 61 3b LPVOID...lpData; 1ff0: 0d 0a 09 44 57 4f 52 44 09 09 09 63 62 44 61 74 ...DWORD...cbDat 2000: 61 3b 0d 0a 09 4c 4f 4e 47 09 09 09 6c 54 69 6d a;...LONG...lTim 2010: 65 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 e;..}....struct 2020: 49 43 44 52 41 57 53 55 47 47 45 53 54 20 7b 0d ICDRAWSUGGEST {. 2030: 0a 09 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 ..LPBITMAPINFOHE 2040: 41 44 45 52 09 6c 70 62 69 49 6e 3b 0d 0a 09 4c ADER.lpbiIn;...L 2050: 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 44 45 PBITMAPINFOHEADE 2060: 52 09 6c 70 62 69 53 75 67 67 65 73 74 3b 0d 0a R.lpbiSuggest;.. 2070: 09 69 6e 74 09 09 09 09 09 64 78 53 72 63 3b 0d .int.....dxSrc;. 2080: 0a 09 69 6e 74 09 09 09 09 09 64 79 53 72 63 3b ..int.....dySrc; 2090: 0d 0a 09 69 6e 74 09 09 09 09 09 64 78 44 73 74 ...int.....dxDst 20a0: 3b 0d 0a 09 69 6e 74 09 09 09 09 09 64 79 44 73 ;...int.....dyDs 20b0: 74 3b 0d 0a 09 48 49 43 09 09 09 09 09 68 69 63 t;...HIC.....hic 20c0: 44 65 63 6f 6d 70 72 65 73 73 6f 72 3b 0d 0a 7d Decompressor;..} 20d0: 0d 0a 0d 0a 73 74 72 75 63 74 20 49 43 50 41 4c ....struct ICPAL 20e0: 45 54 54 45 20 7b 0d 0a 09 44 57 4f 52 44 09 09 ETTE {...DWORD.. 20f0: 09 64 77 46 6c 61 67 73 3b 0d 0a 09 69 6e 74 09 .dwFlags;...int. 2100: 09 09 09 69 53 74 61 72 74 3b 0d 0a 09 69 6e 74 ...iStart;...int 2110: 09 09 09 09 69 4c 65 6e 3b 0d 0a 09 4c 50 50 41 ....iLen;...LPPA 2120: 4c 45 54 54 45 45 4e 54 52 59 09 6c 70 70 65 3b LETTEENTRY.lppe; 2130: 0d 0a 7d 0d 0a 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a ..}....../**.. * 2140: 20 49 43 4d 20 66 75 6e 63 74 69 6f 6e 20 64 65 ICM function de 2150: 63 6c 61 72 61 74 69 6f 6e 73 0d 0a 20 2a 2f 0d clarations.. */. 2160: 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f ...extern (Windo 2170: 77 73 29 20 7b 0d 0a 09 42 4f 4f 4c 20 49 43 49 ws) {...BOOL ICI 2180: 6e 66 6f 28 44 57 4f 52 44 20 66 63 63 54 79 70 nfo(DWORD fccTyp 2190: 65 2c 20 44 57 4f 52 44 20 66 63 63 48 61 6e 64 e, DWORD fccHand 21a0: 6c 65 72 2c 20 49 43 49 4e 46 4f 20 2a 6c 70 69 ler, ICINFO *lpi 21b0: 63 69 6e 66 6f 29 3b 0d 0a 09 42 4f 4f 4c 20 49 cinfo);...BOOL I 21c0: 43 49 6e 73 74 61 6c 6c 28 44 57 4f 52 44 20 66 CInstall(DWORD f 21d0: 63 63 54 79 70 65 2c 20 44 57 4f 52 44 20 66 63 ccType, DWORD fc 21e0: 63 48 61 6e 64 6c 65 72 2c 20 4c 50 41 52 41 4d cHandler, LPARAM 21f0: 20 6c 50 61 72 61 6d 2c 20 4c 50 53 54 52 20 73 lParam, LPSTR s 2200: 7a 44 65 73 63 2c 20 55 49 4e 54 20 77 46 6c 61 zDesc, UINT wFla 2210: 67 73 29 3b 0d 0a 09 42 4f 4f 4c 20 49 43 52 65 gs);...BOOL ICRe 2220: 6d 6f 76 65 28 44 57 4f 52 44 20 66 63 63 54 79 move(DWORD fccTy 2230: 70 65 2c 20 44 57 4f 52 44 20 66 63 63 48 61 6e pe, DWORD fccHan 2240: 64 6c 65 72 2c 20 55 49 4e 54 20 77 46 6c 61 67 dler, UINT wFlag 2250: 73 29 3b 0d 0a 09 4c 52 45 53 55 4c 54 20 49 43 s);...LRESULT IC 2260: 47 65 74 49 6e 66 6f 28 48 49 43 20 68 69 63 2c GetInfo(HIC hic, 2270: 20 49 43 49 4e 46 4f 20 2a 70 69 63 69 6e 66 6f ICINFO *picinfo 2280: 2c 20 44 57 4f 52 44 20 63 62 29 3b 0d 0a 09 48 , DWORD cb);...H 2290: 49 43 20 49 43 4f 70 65 6e 28 44 57 4f 52 44 20 IC ICOpen(DWORD 22a0: 66 63 63 54 79 70 65 2c 20 44 57 4f 52 44 20 66 fccType, DWORD f 22b0: 63 63 48 61 6e 64 6c 65 72 2c 20 55 49 4e 54 20 ccHandler, UINT 22c0: 77 4d 6f 64 65 29 3b 0d 0a 09 48 49 43 20 49 43 wMode);...HIC IC 22d0: 4f 70 65 6e 46 75 6e 63 74 69 6f 6e 28 44 57 4f OpenFunction(DWO 22e0: 52 44 20 66 63 63 54 79 70 65 2c 20 44 57 4f 52 RD fccType, DWOR 22f0: 44 20 66 63 63 48 61 6e 64 6c 65 72 2c 20 55 49 D fccHandler, UI 2300: 4e 54 20 77 4d 6f 64 65 2c 20 46 41 52 50 52 4f NT wMode, FARPRO 2310: 43 20 6c 70 66 6e 48 61 6e 64 6c 65 72 29 3b 0d C lpfnHandler);. 2320: 0a 09 4c 52 45 53 55 4c 54 20 49 43 43 6c 6f 73 ..LRESULT ICClos 2330: 65 28 48 49 43 20 68 69 63 29 3b 0d 0a 09 4c 52 e(HIC hic);...LR 2340: 45 53 55 4c 54 20 49 43 53 65 6e 64 4d 65 73 73 ESULT ICSendMess 2350: 61 67 65 28 48 49 43 20 68 69 63 2c 20 55 49 4e age(HIC hic, UIN 2360: 54 20 6d 73 67 2c 20 44 57 4f 52 44 5f 50 54 52 T msg, DWORD_PTR 2370: 20 64 77 31 2c 20 44 57 4f 52 44 5f 50 54 52 20 dw1, DWORD_PTR 2380: 64 77 32 29 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d dw2);..}....enum 2390: 20 7b 0d 0a 09 49 43 49 4e 53 54 41 4c 4c 5f 46 {...ICINSTALL_F 23a0: 55 4e 43 54 49 4f 4e 09 3d 20 30 78 30 30 30 31 UNCTION.= 0x0001 23b0: 2c 0d 0a 09 49 43 49 4e 53 54 41 4c 4c 5f 44 52 ,...ICINSTALL_DR 23c0: 49 56 45 52 09 3d 20 30 78 30 30 30 32 2c 0d 0a IVER.= 0x0002,.. 23d0: 09 49 43 49 4e 53 54 41 4c 4c 5f 48 44 52 56 09 .ICINSTALL_HDRV. 23e0: 09 3d 20 30 78 30 30 30 34 2c 0d 0a 09 49 43 49 .= 0x0004,...ICI 23f0: 4e 53 54 41 4c 4c 5f 55 4e 49 43 4f 44 45 09 3d NSTALL_UNICODE.= 2400: 20 30 78 38 30 30 30 2c 0d 0a 09 49 43 49 4e 53 0x8000,...ICINS 2410: 54 41 4c 4c 5f 44 52 49 56 45 52 57 09 3d 20 30 TALL_DRIVERW.= 0 2420: 78 38 30 30 32 2c 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 x8002,..}....// 2430: 71 75 65 72 79 20 6d 61 63 72 6f 73 0d 0a 0d 0a query macros.... 2440: 63 6f 6e 73 74 20 49 43 4d 46 5f 43 4f 4e 46 49 const ICMF_CONFI 2450: 47 55 52 45 5f 51 55 45 52 59 09 3d 20 30 78 30 GURE_QUERY.= 0x0 2460: 30 30 30 30 30 30 31 3b 0d 0a 63 6f 6e 73 74 20 0000001;..const 2470: 49 43 4d 46 5f 41 42 4f 55 54 5f 51 55 45 52 59 ICMF_ABOUT_QUERY 2480: 09 09 3d 20 30 78 30 30 30 30 30 30 30 31 3b 0d ..= 0x00000001;. 2490: 0a 0d 0a 44 57 4f 52 44 20 49 43 51 75 65 72 79 ...DWORD ICQuery 24a0: 41 62 6f 75 74 28 48 49 43 20 68 69 63 29 20 7b About(HIC hic) { 24b0: 0d 0a 09 72 65 74 75 72 6e 20 49 43 53 65 6e 64 ...return ICSend 24c0: 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d Message(hic, ICM 24d0: 5f 41 42 4f 55 54 2c 20 2d 31 2c 20 49 43 4d 46 _ABOUT, -1, ICMF 24e0: 5f 41 42 4f 55 54 5f 51 55 45 52 59 29 20 3d 3d _ABOUT_QUERY) == 24f0: 20 49 43 45 52 52 5f 4f 4b 3b 0d 0a 7d 0d 0a 0d ICERR_OK;..}... 2500: 0a 44 57 4f 52 44 20 49 43 41 62 6f 75 74 28 48 .DWORD ICAbout(H 2510: 49 43 20 68 69 63 2c 20 48 57 4e 44 20 68 77 6e IC hic, HWND hwn 2520: 64 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 63 61 d) {...return ca 2530: 73 74 28 44 57 4f 52 44 29 20 49 43 53 65 6e 64 st(DWORD) ICSend 2540: 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d Message(hic, ICM 2550: 5f 41 42 4f 55 54 2c 20 63 61 73 74 28 44 57 4f _ABOUT, cast(DWO 2560: 52 44 5f 50 54 52 29 20 63 61 73 74 28 55 49 4e RD_PTR) cast(UIN 2570: 54 5f 50 54 52 29 20 68 77 6e 64 2c 20 30 29 3b T_PTR) hwnd, 0); 2580: 0d 0a 7d 0d 0a 0d 0a 44 57 4f 52 44 20 49 43 51 ..}....DWORD ICQ 2590: 75 65 72 79 43 6f 6e 66 69 67 75 72 65 28 48 49 ueryConfigure(HI 25a0: 43 20 68 69 63 29 20 7b 0d 0a 09 72 65 74 75 72 C hic) {...retur 25b0: 6e 20 28 49 43 53 65 6e 64 4d 65 73 73 61 67 65 n (ICSendMessage 25c0: 28 68 69 63 2c 20 49 43 4d 5f 43 4f 4e 46 49 47 (hic, ICM_CONFIG 25d0: 55 52 45 2c 20 2d 31 2c 20 49 43 4d 46 5f 43 4f URE, -1, ICMF_CO 25e0: 4e 46 49 47 55 52 45 5f 51 55 45 52 59 29 20 3d NFIGURE_QUERY) = 25f0: 3d 20 49 43 45 52 52 5f 4f 4b 29 3b 0d 0a 7d 0d = ICERR_OK);..}. 2600: 0a 0d 0a 44 57 4f 52 44 20 49 43 43 6f 6e 66 69 ...DWORD ICConfi 2610: 67 75 72 65 28 48 49 43 20 68 69 63 2c 20 48 57 gure(HIC hic, HW 2620: 4e 44 20 68 77 6e 64 29 20 7b 0d 0a 09 72 65 74 ND hwnd) {...ret 2630: 75 72 6e 20 63 61 73 74 28 44 57 4f 52 44 29 20 urn cast(DWORD) 2640: 49 43 53 65 6e 64 4d 65 73 73 61 67 65 28 68 69 ICSendMessage(hi 2650: 63 2c 20 49 43 4d 5f 43 4f 4e 46 49 47 55 52 45 c, ICM_CONFIGURE 2660: 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 54 52 , cast(DWORD_PTR 2670: 29 20 63 61 73 74 28 55 49 4e 54 5f 50 54 52 29 ) cast(UINT_PTR) 2680: 20 68 77 6e 64 2c 20 30 29 3b 0d 0a 7d 0d 0a 0d hwnd, 0);..}... 2690: 0a 44 57 4f 52 44 20 49 43 47 65 74 53 74 61 74 .DWORD ICGetStat 26a0: 65 28 48 49 43 20 68 69 63 2c 20 4c 50 56 4f 49 e(HIC hic, LPVOI 26b0: 44 20 70 76 2c 20 44 57 4f 52 44 5f 50 54 52 20 D pv, DWORD_PTR 26c0: 63 62 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 63 cb) {...return c 26d0: 61 73 74 28 44 57 4f 52 44 29 20 49 43 53 65 6e ast(DWORD) ICSen 26e0: 64 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 dMessage(hic, IC 26f0: 4d 5f 47 45 54 53 54 41 54 45 2c 20 63 61 73 74 M_GETSTATE, cast 2700: 28 44 57 4f 52 44 5f 50 54 52 29 20 70 76 2c 20 (DWORD_PTR) pv, 2710: 63 62 29 3b 0d 0a 7d 0d 0a 0d 0a 44 57 4f 52 44 cb);..}....DWORD 2720: 20 49 43 53 65 74 53 74 61 74 65 28 48 49 43 20 ICSetState(HIC 2730: 68 69 63 2c 20 4c 50 56 4f 49 44 20 70 76 2c 20 hic, LPVOID pv, 2740: 44 57 4f 52 44 5f 50 54 52 20 63 62 29 20 7b 0d DWORD_PTR cb) {. 2750: 0a 09 72 65 74 75 72 6e 20 63 61 73 74 28 44 57 ..return cast(DW 2760: 4f 52 44 29 20 49 43 53 65 6e 64 4d 65 73 73 61 ORD) ICSendMessa 2770: 67 65 28 68 69 63 2c 20 49 43 4d 5f 53 45 54 53 ge(hic, ICM_SETS 2780: 54 41 54 45 2c 20 63 61 73 74 28 44 57 4f 52 44 TATE, cast(DWORD 2790: 5f 50 54 52 29 20 70 76 2c 20 63 62 29 3b 0d 0a _PTR) pv, cb);.. 27a0: 7d 0d 0a 0d 0a 44 57 4f 52 44 20 49 43 47 65 74 }....DWORD ICGet 27b0: 53 74 61 74 65 53 69 7a 65 28 48 49 43 20 68 69 StateSize(HIC hi 27c0: 63 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 43 c) {...return IC 27d0: 47 65 74 53 74 61 74 65 28 68 69 63 2c 20 6e 75 GetState(hic, nu 27e0: 6c 6c 2c 20 30 29 3b 0d 0a 7d 0d 0a 0d 0a 44 57 ll, 0);..}....DW 27f0: 4f 52 44 20 64 77 49 43 56 61 6c 75 65 3b 0d 0a ORD dwICValue;.. 2800: 0d 0a 44 57 4f 52 44 20 49 43 47 65 74 44 65 66 ..DWORD ICGetDef 2810: 61 75 6c 74 51 75 61 6c 69 74 79 28 48 49 43 20 aultQuality(HIC 2820: 68 69 63 29 20 7b 0d 0a 09 49 43 53 65 6e 64 4d hic) {...ICSendM 2830: 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d 5f essage(hic, ICM_ 2840: 47 45 54 44 45 46 41 55 4c 54 51 55 41 4c 49 54 GETDEFAULTQUALIT 2850: 59 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 54 Y, cast(DWORD_PT 2860: 52 29 26 64 77 49 43 56 61 6c 75 65 2c 20 44 57 R)&dwICValue, DW 2870: 4f 52 44 2e 73 69 7a 65 6f 66 29 3b 0d 0a 09 72 ORD.sizeof);...r 2880: 65 74 75 72 6e 20 64 77 49 43 56 61 6c 75 65 3b eturn dwICValue; 2890: 0d 0a 7d 0d 0a 0d 0a 44 57 4f 52 44 20 49 43 47 ..}....DWORD ICG 28a0: 65 74 44 65 66 61 75 6c 74 4b 65 79 46 72 61 6d etDefaultKeyFram 28b0: 65 52 61 74 65 28 48 49 43 20 68 69 63 29 20 7b eRate(HIC hic) { 28c0: 0d 0a 09 49 43 53 65 6e 64 4d 65 73 73 61 67 65 ...ICSendMessage 28d0: 28 68 69 63 2c 20 49 43 4d 5f 47 45 54 44 45 46 (hic, ICM_GETDEF 28e0: 41 55 4c 54 4b 45 59 46 52 41 4d 45 52 41 54 45 AULTKEYFRAMERATE 28f0: 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 54 52 , cast(DWORD_PTR 2900: 29 26 64 77 49 43 56 61 6c 75 65 2c 20 44 57 4f )&dwICValue, DWO 2910: 52 44 2e 73 69 7a 65 6f 66 29 3b 0d 0a 09 72 65 RD.sizeof);...re 2920: 74 75 72 6e 20 64 77 49 43 56 61 6c 75 65 3b 0d turn dwICValue;. 2930: 0a 7d 0d 0a 0d 0a 44 57 4f 52 44 20 49 43 44 72 .}....DWORD ICDr 2940: 61 77 57 69 6e 64 6f 77 28 48 49 43 20 68 69 63 awWindow(HIC hic 2950: 2c 20 4c 50 56 4f 49 44 20 70 72 63 29 20 7b 0d , LPVOID prc) {. 2960: 0a 09 72 65 74 75 72 6e 20 63 61 73 74 28 44 57 ..return cast(DW 2970: 4f 52 44 29 20 49 43 53 65 6e 64 4d 65 73 73 61 ORD) ICSendMessa 2980: 67 65 28 68 69 63 2c 20 49 43 4d 5f 44 52 41 57 ge(hic, ICM_DRAW 2990: 5f 57 49 4e 44 4f 57 2c 20 63 61 73 74 28 44 57 _WINDOW, cast(DW 29a0: 4f 52 44 5f 50 54 52 29 20 70 72 63 2c 20 52 45 ORD_PTR) prc, RE 29b0: 43 54 2e 73 69 7a 65 6f 66 29 3b 0d 0a 7d 0d 0a CT.sizeof);..}.. 29c0: 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 ..extern (Window 29d0: 73 29 20 7b 0d 0a 09 44 57 4f 52 44 20 49 43 43 s) {...DWORD ICC 29e0: 6f 6d 70 72 65 73 73 28 48 49 43 20 68 69 63 2c ompress(HIC hic, 29f0: 20 44 57 4f 52 44 20 64 77 46 6c 61 67 73 2c 20 DWORD dwFlags, 2a00: 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 44 LPBITMAPINFOHEAD 2a10: 45 52 20 6c 70 62 69 4f 75 74 70 75 74 2c 20 4c ER lpbiOutput, L 2a20: 50 56 4f 49 44 20 6c 70 44 61 74 61 2c 0d 0a 09 PVOID lpData,... 2a30: 09 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 .LPBITMAPINFOHEA 2a40: 44 45 52 20 6c 70 62 69 49 6e 70 75 74 2c 20 4c DER lpbiInput, L 2a50: 50 56 4f 49 44 20 6c 70 42 69 74 73 2c 20 4c 50 PVOID lpBits, LP 2a60: 44 57 4f 52 44 20 6c 70 63 6b 69 64 2c 20 4c 50 DWORD lpckid, LP 2a70: 44 57 4f 52 44 20 6c 70 64 77 46 6c 61 67 73 2c DWORD lpdwFlags, 2a80: 0d 0a 09 09 4c 4f 4e 47 20 6c 46 72 61 6d 65 4e ....LONG lFrameN 2a90: 75 6d 2c 20 44 57 4f 52 44 20 64 77 46 72 61 6d um, DWORD dwFram 2aa0: 65 53 69 7a 65 2c 20 44 57 4f 52 44 20 64 77 51 eSize, DWORD dwQ 2ab0: 75 61 6c 69 74 79 2c 20 4c 50 42 49 54 4d 41 50 uality, LPBITMAP 2ac0: 49 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 69 50 INFOHEADER lpbiP 2ad0: 72 65 76 2c 20 4c 50 56 4f 49 44 20 6c 70 50 72 rev, LPVOID lpPr 2ae0: 65 76 29 3b 0d 0a 7d 0d 0a 0d 0a 4c 52 45 53 55 ev);..}....LRESU 2af0: 4c 54 20 49 43 43 6f 6d 70 72 65 73 73 42 65 67 LT ICCompressBeg 2b00: 69 6e 28 48 49 43 20 68 69 63 2c 20 4c 50 56 4f in(HIC hic, LPVO 2b10: 49 44 20 6c 70 62 69 49 6e 70 75 74 2c 20 4c 50 ID lpbiInput, LP 2b20: 56 4f 49 44 20 6c 70 62 69 4f 75 74 70 75 74 29 VOID lpbiOutput) 2b30: 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 43 53 65 {...return ICSe 2b40: 6e 64 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 ndMessage(hic, I 2b50: 43 4d 5f 43 4f 4d 50 52 45 53 53 5f 42 45 47 49 CM_COMPRESS_BEGI 2b60: 4e 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 54 N, cast(DWORD_PT 2b70: 52 29 6c 70 62 69 49 6e 70 75 74 2c 20 63 61 73 R)lpbiInput, cas 2b80: 74 28 44 57 4f 52 44 5f 50 54 52 29 6c 70 62 69 t(DWORD_PTR)lpbi 2b90: 4f 75 74 70 75 74 29 3b 0d 0a 7d 0d 0a 4c 52 45 Output);..}..LRE 2ba0: 53 55 4c 54 20 49 43 43 6f 6d 70 72 65 73 73 51 SULT ICCompressQ 2bb0: 75 65 72 79 28 48 49 43 20 68 69 63 2c 20 4c 50 uery(HIC hic, LP 2bc0: 56 4f 49 44 20 6c 70 62 69 49 6e 70 75 74 2c 20 VOID lpbiInput, 2bd0: 4c 50 56 4f 49 44 20 6c 70 62 69 4f 75 74 70 75 LPVOID lpbiOutpu 2be0: 74 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 43 t) {...return IC 2bf0: 53 65 6e 64 4d 65 73 73 61 67 65 28 68 69 63 2c SendMessage(hic, 2c00: 20 49 43 4d 5f 43 4f 4d 50 52 45 53 53 5f 51 55 ICM_COMPRESS_QU 2c10: 45 52 59 2c 20 63 61 73 74 28 44 57 4f 52 44 5f ERY, cast(DWORD_ 2c20: 50 54 52 29 6c 70 62 69 49 6e 70 75 74 2c 20 63 PTR)lpbiInput, c 2c30: 61 73 74 28 44 57 4f 52 44 5f 50 54 52 29 6c 70 ast(DWORD_PTR)lp 2c40: 62 69 4f 75 74 70 75 74 29 3b 0d 0a 7d 0d 0a 4c biOutput);..}..L 2c50: 52 45 53 55 4c 54 20 49 43 43 6f 6d 70 72 65 73 RESULT ICCompres 2c60: 73 47 65 74 46 6f 72 6d 61 74 28 48 49 43 20 68 sGetFormat(HIC h 2c70: 69 63 2c 20 4c 50 56 4f 49 44 20 6c 70 62 69 49 ic, LPVOID lpbiI 2c80: 6e 70 75 74 2c 20 4c 50 56 4f 49 44 20 6c 70 62 nput, LPVOID lpb 2c90: 69 4f 75 74 70 75 74 29 20 7b 0d 0a 09 72 65 74 iOutput) {...ret 2ca0: 75 72 6e 20 49 43 53 65 6e 64 4d 65 73 73 61 67 urn ICSendMessag 2cb0: 65 28 68 69 63 2c 20 49 43 4d 5f 43 4f 4d 50 52 e(hic, ICM_COMPR 2cc0: 45 53 53 5f 47 45 54 5f 46 4f 52 4d 41 54 2c 20 ESS_GET_FORMAT, 2cd0: 63 61 73 74 28 44 57 4f 52 44 5f 50 54 52 29 6c cast(DWORD_PTR)l 2ce0: 70 62 69 49 6e 70 75 74 2c 20 63 61 73 74 28 44 pbiInput, cast(D 2cf0: 57 4f 52 44 5f 50 54 52 29 6c 70 62 69 4f 75 74 WORD_PTR)lpbiOut 2d00: 70 75 74 29 3b 0d 0a 7d 0d 0a 44 57 4f 52 44 20 put);..}..DWORD 2d10: 49 43 43 6f 6d 70 72 65 73 73 47 65 74 46 6f 72 ICCompressGetFor 2d20: 6d 61 74 53 69 7a 65 28 48 49 43 20 68 69 63 2c matSize(HIC hic, 2d30: 20 4c 50 56 4f 49 44 20 6c 70 62 69 29 20 7b 0d LPVOID lpbi) {. 2d40: 0a 09 72 65 74 75 72 6e 20 63 61 73 74 28 44 57 ..return cast(DW 2d50: 4f 52 44 29 49 43 43 6f 6d 70 72 65 73 73 47 65 ORD)ICCompressGe 2d60: 74 46 6f 72 6d 61 74 28 68 69 63 2c 20 6c 70 62 tFormat(hic, lpb 2d70: 69 2c 20 6e 75 6c 6c 29 3b 0d 0a 7d 0d 0a 44 57 i, null);..}..DW 2d80: 4f 52 44 20 49 43 43 6f 6d 70 72 65 73 73 47 65 ORD ICCompressGe 2d90: 74 53 69 7a 65 28 48 49 43 20 68 69 63 2c 20 4c tSize(HIC hic, L 2da0: 50 56 4f 49 44 20 6c 70 62 69 49 6e 70 75 74 2c PVOID lpbiInput, 2db0: 20 4c 50 56 4f 49 44 20 6c 70 62 69 4f 75 74 70 LPVOID lpbiOutp 2dc0: 75 74 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 63 ut) {...return c 2dd0: 61 73 74 28 44 57 4f 52 44 29 49 43 53 65 6e 64 ast(DWORD)ICSend 2de0: 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d Message(hic, ICM 2df0: 5f 43 4f 4d 50 52 45 53 53 5f 47 45 54 5f 53 49 _COMPRESS_GET_SI 2e00: 5a 45 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 ZE, cast(DWORD_P 2e10: 54 52 29 6c 70 62 69 49 6e 70 75 74 2c 20 63 61 TR)lpbiInput, ca 2e20: 73 74 28 44 57 4f 52 44 5f 50 54 52 29 6c 70 62 st(DWORD_PTR)lpb 2e30: 69 4f 75 74 70 75 74 29 3b 0d 0a 7d 0d 0a 4c 52 iOutput);..}..LR 2e40: 45 53 55 4c 54 20 49 43 43 6f 6d 70 72 65 73 73 ESULT ICCompress 2e50: 45 6e 64 28 48 49 43 20 68 69 63 29 20 7b 0d 0a End(HIC hic) {.. 2e60: 09 72 65 74 75 72 6e 20 49 43 53 65 6e 64 4d 65 .return ICSendMe 2e70: 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d 5f 43 ssage(hic, ICM_C 2e80: 4f 4d 50 52 45 53 53 5f 45 4e 44 2c 20 30 2c 20 OMPRESS_END, 0, 2e90: 30 29 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 0);..}....extern 2ea0: 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 44 (Windows) {...D 2eb0: 57 4f 52 44 20 49 43 44 65 63 6f 6d 70 72 65 73 WORD ICDecompres 2ec0: 73 28 48 49 43 20 68 69 63 2c 20 44 57 4f 52 44 s(HIC hic, DWORD 2ed0: 20 64 77 46 6c 61 67 73 2c 20 4c 50 42 49 54 4d dwFlags, LPBITM 2ee0: 41 50 49 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 APINFOHEADER lpb 2ef0: 69 46 6f 72 6d 61 74 2c 20 4c 50 56 4f 49 44 20 iFormat, LPVOID 2f00: 6c 70 44 61 74 61 2c 20 4c 50 42 49 54 4d 41 50 lpData, LPBITMAP 2f10: 49 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 69 2c INFOHEADER lpbi, 2f20: 20 4c 50 56 4f 49 44 20 6c 70 42 69 74 73 29 3b LPVOID lpBits); 2f30: 0d 0a 7d 0d 0a 0d 0a 4c 52 45 53 55 4c 54 20 49 ..}....LRESULT I 2f40: 43 44 65 63 6f 6d 70 72 65 73 73 42 65 67 69 6e CDecompressBegin 2f50: 28 48 49 43 20 68 69 63 2c 20 4c 50 56 4f 49 44 (HIC hic, LPVOID 2f60: 20 6c 70 62 69 49 6e 70 75 74 2c 20 4c 50 56 4f lpbiInput, LPVO 2f70: 49 44 20 6c 70 62 69 4f 75 74 70 75 74 29 20 7b ID lpbiOutput) { 2f80: 0d 0a 09 72 65 74 75 72 6e 20 49 43 53 65 6e 64 ...return ICSend 2f90: 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d Message(hic, ICM 2fa0: 5f 44 45 43 4f 4d 50 52 45 53 53 5f 42 45 47 49 _DECOMPRESS_BEGI 2fb0: 4e 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 54 N, cast(DWORD_PT 2fc0: 52 29 6c 70 62 69 49 6e 70 75 74 2c 20 63 61 73 R)lpbiInput, cas 2fd0: 74 28 44 57 4f 52 44 5f 50 54 52 29 6c 70 62 69 t(DWORD_PTR)lpbi 2fe0: 4f 75 74 70 75 74 29 3b 0d 0a 7d 0d 0a 4c 52 45 Output);..}..LRE 2ff0: 53 55 4c 54 20 49 43 44 65 63 6f 6d 70 72 65 73 SULT ICDecompres 3000: 73 51 75 65 72 79 28 48 49 43 20 68 69 63 2c 20 sQuery(HIC hic, 3010: 4c 50 56 4f 49 44 20 6c 70 62 69 49 6e 70 75 74 LPVOID lpbiInput 3020: 2c 20 4c 50 56 4f 49 44 20 6c 70 62 69 4f 75 74 , LPVOID lpbiOut 3030: 70 75 74 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 put) {...return 3040: 49 43 53 65 6e 64 4d 65 73 73 61 67 65 28 68 69 ICSendMessage(hi 3050: 63 2c 20 49 43 4d 5f 44 45 43 4f 4d 50 52 45 53 c, ICM_DECOMPRES 3060: 53 5f 51 55 45 52 59 2c 20 63 61 73 74 28 44 57 S_QUERY, cast(DW 3070: 4f 52 44 5f 50 54 52 29 6c 70 62 69 49 6e 70 75 ORD_PTR)lpbiInpu 3080: 74 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 54 t, cast(DWORD_PT 3090: 52 29 6c 70 62 69 4f 75 74 70 75 74 29 3b 0d 0a R)lpbiOutput);.. 30a0: 7d 0d 0a 4c 4f 4e 47 20 49 43 44 65 63 6f 6d 70 }..LONG ICDecomp 30b0: 72 65 73 73 47 65 74 46 6f 72 6d 61 74 28 48 49 ressGetFormat(HI 30c0: 43 20 68 69 63 2c 20 4c 50 56 4f 49 44 20 6c 70 C hic, LPVOID lp 30d0: 62 69 49 6e 70 75 74 2c 20 4c 50 56 4f 49 44 20 biInput, LPVOID 30e0: 6c 70 62 69 4f 75 74 70 75 74 29 20 7b 0d 0a 09 lpbiOutput) {... 30f0: 72 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 return cast(LONG 3100: 29 49 43 53 65 6e 64 4d 65 73 73 61 67 65 28 68 )ICSendMessage(h 3110: 69 63 2c 20 49 43 4d 5f 44 45 43 4f 4d 50 52 45 ic, ICM_DECOMPRE 3120: 53 53 5f 47 45 54 5f 46 4f 52 4d 41 54 2c 20 63 SS_GET_FORMAT, c 3130: 61 73 74 28 44 57 4f 52 44 5f 50 54 52 29 6c 70 ast(DWORD_PTR)lp 3140: 62 69 49 6e 70 75 74 2c 20 63 61 73 74 28 44 57 biInput, cast(DW 3150: 4f 52 44 5f 50 54 52 29 6c 70 62 69 4f 75 74 70 ORD_PTR)lpbiOutp 3160: 75 74 29 3b 0d 0a 7d 0d 0a 4c 4f 4e 47 20 49 43 ut);..}..LONG IC 3170: 44 65 63 6f 6d 70 72 65 73 73 47 65 74 46 6f 72 DecompressGetFor 3180: 6d 61 74 53 69 7a 65 28 48 49 43 20 68 69 63 2c matSize(HIC hic, 3190: 20 4c 50 56 4f 49 44 20 6c 70 62 69 29 20 7b 0d LPVOID lpbi) {. 31a0: 0a 09 72 65 74 75 72 6e 20 49 43 44 65 63 6f 6d ..return ICDecom 31b0: 70 72 65 73 73 47 65 74 46 6f 72 6d 61 74 28 68 pressGetFormat(h 31c0: 69 63 2c 20 6c 70 62 69 2c 20 6e 75 6c 6c 29 3b ic, lpbi, null); 31d0: 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 20 49 43 44 ..}..LRESULT ICD 31e0: 65 63 6f 6d 70 72 65 73 73 47 65 74 50 61 6c 65 ecompressGetPale 31f0: 74 74 65 28 48 49 43 20 68 69 63 2c 20 4c 50 56 tte(HIC hic, LPV 3200: 4f 49 44 20 6c 70 62 69 49 6e 70 75 74 2c 20 4c OID lpbiInput, L 3210: 50 56 4f 49 44 20 6c 70 62 69 4f 75 74 70 75 74 PVOID lpbiOutput 3220: 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 43 53 ) {...return ICS 3230: 65 6e 64 4d 65 73 73 61 67 65 28 68 69 63 2c 20 endMessage(hic, 3240: 49 43 4d 5f 44 45 43 4f 4d 50 52 45 53 53 5f 47 ICM_DECOMPRESS_G 3250: 45 54 5f 50 41 4c 45 54 54 45 2c 20 63 61 73 74 ET_PALETTE, cast 3260: 28 44 57 4f 52 44 5f 50 54 52 29 6c 70 62 69 49 (DWORD_PTR)lpbiI 3270: 6e 70 75 74 2c 20 63 61 73 74 28 44 57 4f 52 44 nput, cast(DWORD 3280: 5f 50 54 52 29 6c 70 62 69 4f 75 74 70 75 74 29 _PTR)lpbiOutput) 3290: 3b 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 20 49 43 ;..}..LRESULT IC 32a0: 44 65 63 6f 6d 70 72 65 73 73 53 65 74 50 61 6c DecompressSetPal 32b0: 65 74 74 65 28 48 49 43 20 68 69 63 2c 20 4c 50 ette(HIC hic, LP 32c0: 56 4f 49 44 20 6c 70 62 69 50 61 6c 65 74 74 65 VOID lpbiPalette 32d0: 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 43 53 ) {...return ICS 32e0: 65 6e 64 4d 65 73 73 61 67 65 28 68 69 63 2c 20 endMessage(hic, 32f0: 49 43 4d 5f 44 45 43 4f 4d 50 52 45 53 53 5f 53 ICM_DECOMPRESS_S 3300: 45 54 5f 50 41 4c 45 54 54 45 2c 20 63 61 73 74 ET_PALETTE, cast 3310: 28 44 57 4f 52 44 5f 50 54 52 29 6c 70 62 69 50 (DWORD_PTR)lpbiP 3320: 61 6c 65 74 74 65 2c 20 30 29 3b 0d 0a 7d 0d 0a alette, 0);..}.. 3330: 4c 52 45 53 55 4c 54 20 49 43 44 65 63 6f 6d 70 LRESULT ICDecomp 3340: 72 65 73 73 45 6e 64 28 48 49 43 20 68 69 63 29 ressEnd(HIC hic) 3350: 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 43 53 65 {...return ICSe 3360: 6e 64 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 ndMessage(hic, I 3370: 43 4d 5f 44 45 43 4f 4d 50 52 45 53 53 5f 45 4e CM_DECOMPRESS_EN 3380: 44 2c 20 30 2c 20 30 29 3b 0d 0a 7d 0d 0a 0d 0a D, 0, 0);..}.... 3390: 4c 52 45 53 55 4c 54 20 49 43 44 65 63 6f 6d 70 LRESULT ICDecomp 33a0: 72 65 73 73 45 78 28 48 49 43 20 68 69 63 2c 20 ressEx(HIC hic, 33b0: 44 57 4f 52 44 20 64 77 46 6c 61 67 73 2c 20 4c DWORD dwFlags, L 33c0: 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 44 45 PBITMAPINFOHEADE 33d0: 52 20 6c 70 62 69 53 72 63 2c 0d 0a 09 4c 50 56 R lpbiSrc,...LPV 33e0: 4f 49 44 20 6c 70 53 72 63 2c 20 69 6e 74 20 78 OID lpSrc, int x 33f0: 53 72 63 2c 20 69 6e 74 20 79 53 72 63 2c 20 69 Src, int ySrc, i 3400: 6e 74 20 64 78 53 72 63 2c 20 69 6e 74 20 64 79 nt dxSrc, int dy 3410: 53 72 63 2c 09 4c 50 42 49 54 4d 41 50 49 4e 46 Src,.LPBITMAPINF 3420: 4f 48 45 41 44 45 52 20 6c 70 62 69 44 73 74 2c OHEADER lpbiDst, 3430: 0d 0a 09 4c 50 56 4f 49 44 20 6c 70 44 73 74 2c ...LPVOID lpDst, 3440: 20 69 6e 74 20 78 44 73 74 2c 20 69 6e 74 20 79 int xDst, int y 3450: 44 73 74 2c 20 69 6e 74 20 64 78 44 73 74 2c 20 Dst, int dxDst, 3460: 69 6e 74 20 64 79 44 73 74 29 20 7b 0d 0a 09 49 int dyDst) {...I 3470: 43 44 45 43 4f 4d 50 52 45 53 53 45 58 20 69 63 CDECOMPRESSEX ic 3480: 3b 0d 0a 0d 0a 09 69 63 2e 64 77 46 6c 61 67 73 ;.....ic.dwFlags 3490: 20 3d 20 64 77 46 6c 61 67 73 3b 0d 0a 09 69 63 = dwFlags;...ic 34a0: 2e 6c 70 62 69 53 72 63 20 3d 20 6c 70 62 69 53 .lpbiSrc = lpbiS 34b0: 72 63 3b 0d 0a 09 69 63 2e 6c 70 53 72 63 20 3d rc;...ic.lpSrc = 34c0: 20 6c 70 53 72 63 3b 0d 0a 09 69 63 2e 78 53 72 lpSrc;...ic.xSr 34d0: 63 20 3d 20 78 53 72 63 3b 0d 0a 09 69 63 2e 79 c = xSrc;...ic.y 34e0: 53 72 63 20 3d 20 79 53 72 63 3b 0d 0a 09 69 63 Src = ySrc;...ic 34f0: 2e 64 78 53 72 63 20 3d 20 64 78 53 72 63 3b 0d .dxSrc = dxSrc;. 3500: 0a 09 69 63 2e 64 79 53 72 63 20 3d 20 64 79 53 ..ic.dySrc = dyS 3510: 72 63 3b 0d 0a 09 69 63 2e 6c 70 62 69 44 73 74 rc;...ic.lpbiDst 3520: 20 3d 20 6c 70 62 69 44 73 74 3b 0d 0a 09 69 63 = lpbiDst;...ic 3530: 2e 6c 70 44 73 74 20 3d 20 6c 70 44 73 74 3b 0d .lpDst = lpDst;. 3540: 0a 09 69 63 2e 78 44 73 74 20 3d 20 78 44 73 74 ..ic.xDst = xDst 3550: 3b 0d 0a 09 69 63 2e 79 44 73 74 20 3d 20 79 44 ;...ic.yDst = yD 3560: 73 74 3b 0d 0a 09 69 63 2e 64 78 44 73 74 20 3d st;...ic.dxDst = 3570: 20 64 78 44 73 74 3b 0d 0a 09 69 63 2e 64 79 44 dxDst;...ic.dyD 3580: 73 74 20 3d 20 64 79 44 73 74 3b 0d 0a 0d 0a 09 st = dyDst;..... 3590: 72 65 74 75 72 6e 20 49 43 53 65 6e 64 4d 65 73 return ICSendMes 35a0: 73 61 67 65 28 68 69 63 2c 20 49 43 4d 5f 44 45 sage(hic, ICM_DE 35b0: 43 4f 4d 50 52 45 53 53 45 58 2c 20 63 61 73 74 COMPRESSEX, cast 35c0: 28 44 57 4f 52 44 5f 50 54 52 29 26 69 63 2c 20 (DWORD_PTR)&ic, 35d0: 69 63 2e 73 69 7a 65 6f 66 29 3b 0d 0a 7d 0d 0a ic.sizeof);..}.. 35e0: 0d 0a 4c 52 45 53 55 4c 54 20 49 43 44 65 63 6f ..LRESULT ICDeco 35f0: 6d 70 72 65 73 73 45 78 42 65 67 69 6e 28 48 49 mpressExBegin(HI 3600: 43 20 68 69 63 2c 20 44 57 4f 52 44 20 64 77 46 C hic, DWORD dwF 3610: 6c 61 67 73 2c 20 4c 50 42 49 54 4d 41 50 49 4e lags, LPBITMAPIN 3620: 46 4f 48 45 41 44 45 52 20 6c 70 62 69 53 72 63 FOHEADER lpbiSrc 3630: 2c 0d 0a 09 4c 50 56 4f 49 44 20 6c 70 53 72 63 ,...LPVOID lpSrc 3640: 2c 20 69 6e 74 20 78 53 72 63 2c 20 69 6e 74 20 , int xSrc, int 3650: 79 53 72 63 2c 20 69 6e 74 20 64 78 53 72 63 2c ySrc, int dxSrc, 3660: 20 69 6e 74 20 64 79 53 72 63 2c 20 4c 50 42 49 int dySrc, LPBI 3670: 54 4d 41 50 49 4e 46 4f 48 45 41 44 45 52 20 6c TMAPINFOHEADER l 3680: 70 62 69 44 73 74 2c 0d 0a 09 4c 50 56 4f 49 44 pbiDst,...LPVOID 3690: 20 6c 70 44 73 74 2c 20 69 6e 74 20 78 44 73 74 lpDst, int xDst 36a0: 2c 20 69 6e 74 20 79 44 73 74 2c 20 69 6e 74 20 , int yDst, int 36b0: 64 78 44 73 74 2c 20 69 6e 74 20 64 79 44 73 74 dxDst, int dyDst 36c0: 29 20 7b 0d 0a 09 49 43 44 45 43 4f 4d 50 52 45 ) {...ICDECOMPRE 36d0: 53 53 45 58 20 69 63 3b 0d 0a 0d 0a 09 69 63 2e SSEX ic;.....ic. 36e0: 64 77 46 6c 61 67 73 20 3d 20 64 77 46 6c 61 67 dwFlags = dwFlag 36f0: 73 3b 0d 0a 09 69 63 2e 6c 70 62 69 53 72 63 20 s;...ic.lpbiSrc 3700: 3d 20 6c 70 62 69 53 72 63 3b 0d 0a 09 69 63 2e = lpbiSrc;...ic. 3710: 6c 70 53 72 63 20 3d 20 6c 70 53 72 63 3b 0d 0a lpSrc = lpSrc;.. 3720: 09 69 63 2e 78 53 72 63 20 3d 20 78 53 72 63 3b .ic.xSrc = xSrc; 3730: 0d 0a 09 69 63 2e 79 53 72 63 20 3d 20 79 53 72 ...ic.ySrc = ySr 3740: 63 3b 0d 0a 09 69 63 2e 64 78 53 72 63 20 3d 20 c;...ic.dxSrc = 3750: 64 78 53 72 63 3b 0d 0a 09 69 63 2e 64 79 53 72 dxSrc;...ic.dySr 3760: 63 20 3d 20 64 79 53 72 63 3b 0d 0a 09 69 63 2e c = dySrc;...ic. 3770: 6c 70 62 69 44 73 74 20 3d 20 6c 70 62 69 44 73 lpbiDst = lpbiDs 3780: 74 3b 0d 0a 09 69 63 2e 6c 70 44 73 74 20 3d 20 t;...ic.lpDst = 3790: 6c 70 44 73 74 3b 0d 0a 09 69 63 2e 78 44 73 74 lpDst;...ic.xDst 37a0: 20 3d 20 78 44 73 74 3b 0d 0a 09 69 63 2e 79 44 = xDst;...ic.yD 37b0: 73 74 20 3d 20 79 44 73 74 3b 0d 0a 09 69 63 2e st = yDst;...ic. 37c0: 64 78 44 73 74 20 3d 20 64 78 44 73 74 3b 0d 0a dxDst = dxDst;.. 37d0: 09 69 63 2e 64 79 44 73 74 20 3d 20 64 79 44 73 .ic.dyDst = dyDs 37e0: 74 3b 0d 0a 0d 0a 09 72 65 74 75 72 6e 20 49 43 t;.....return IC 37f0: 53 65 6e 64 4d 65 73 73 61 67 65 28 68 69 63 2c SendMessage(hic, 3800: 20 49 43 4d 5f 44 45 43 4f 4d 50 52 45 53 53 45 ICM_DECOMPRESSE 3810: 58 5f 42 45 47 49 4e 2c 20 63 61 73 74 28 44 57 X_BEGIN, cast(DW 3820: 4f 52 44 5f 50 54 52 29 26 69 63 2c 20 69 63 2e ORD_PTR)&ic, ic. 3830: 73 69 7a 65 6f 66 29 3b 0d 0a 7d 0d 0a 0d 0a 4c sizeof);..}....L 3840: 52 45 53 55 4c 54 20 49 43 44 65 63 6f 6d 70 72 RESULT ICDecompr 3850: 65 73 73 45 78 51 75 65 72 79 28 48 49 43 20 68 essExQuery(HIC h 3860: 69 63 2c 20 44 57 4f 52 44 20 64 77 46 6c 61 67 ic, DWORD dwFlag 3870: 73 2c 20 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 s, LPBITMAPINFOH 3880: 45 41 44 45 52 20 6c 70 62 69 53 72 63 2c 0d 0a EADER lpbiSrc,.. 3890: 09 4c 50 56 4f 49 44 20 6c 70 53 72 63 2c 20 69 .LPVOID lpSrc, i 38a0: 6e 74 20 78 53 72 63 2c 20 69 6e 74 20 79 53 72 nt xSrc, int ySr 38b0: 63 2c 20 69 6e 74 20 64 78 53 72 63 2c 20 69 6e c, int dxSrc, in 38c0: 74 20 64 79 53 72 63 2c 20 4c 50 42 49 54 4d 41 t dySrc, LPBITMA 38d0: 50 49 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 69 PINFOHEADER lpbi 38e0: 44 73 74 2c 0d 0a 09 4c 50 56 4f 49 44 20 6c 70 Dst,...LPVOID lp 38f0: 44 73 74 2c 20 69 6e 74 20 78 44 73 74 2c 20 69 Dst, int xDst, i 3900: 6e 74 20 79 44 73 74 2c 20 69 6e 74 20 64 78 44 nt yDst, int dxD 3910: 73 74 2c 20 69 6e 74 20 64 79 44 73 74 29 20 7b st, int dyDst) { 3920: 0d 0a 09 49 43 44 45 43 4f 4d 50 52 45 53 53 45 ...ICDECOMPRESSE 3930: 58 20 69 63 3b 0d 0a 0d 0a 09 69 63 2e 64 77 46 X ic;.....ic.dwF 3940: 6c 61 67 73 20 3d 20 64 77 46 6c 61 67 73 3b 0d lags = dwFlags;. 3950: 0a 09 69 63 2e 6c 70 62 69 53 72 63 20 3d 20 6c ..ic.lpbiSrc = l 3960: 70 62 69 53 72 63 3b 0d 0a 09 69 63 2e 6c 70 53 pbiSrc;...ic.lpS 3970: 72 63 20 3d 20 6c 70 53 72 63 3b 0d 0a 09 69 63 rc = lpSrc;...ic 3980: 2e 78 53 72 63 20 3d 20 78 53 72 63 3b 0d 0a 09 .xSrc = xSrc;... 3990: 69 63 2e 79 53 72 63 20 3d 20 79 53 72 63 3b 0d ic.ySrc = ySrc;. 39a0: 0a 09 69 63 2e 64 78 53 72 63 20 3d 20 64 78 53 ..ic.dxSrc = dxS 39b0: 72 63 3b 0d 0a 09 69 63 2e 64 79 53 72 63 20 3d rc;...ic.dySrc = 39c0: 20 64 79 53 72 63 3b 0d 0a 09 69 63 2e 6c 70 62 dySrc;...ic.lpb 39d0: 69 44 73 74 20 3d 20 6c 70 62 69 44 73 74 3b 0d iDst = lpbiDst;. 39e0: 0a 09 69 63 2e 6c 70 44 73 74 20 3d 20 6c 70 44 ..ic.lpDst = lpD 39f0: 73 74 3b 0d 0a 09 69 63 2e 78 44 73 74 20 3d 20 st;...ic.xDst = 3a00: 78 44 73 74 3b 0d 0a 09 69 63 2e 79 44 73 74 20 xDst;...ic.yDst 3a10: 3d 20 79 44 73 74 3b 0d 0a 09 69 63 2e 64 78 44 = yDst;...ic.dxD 3a20: 73 74 20 3d 20 64 78 44 73 74 3b 0d 0a 09 69 63 st = dxDst;...ic 3a30: 2e 64 79 44 73 74 20 3d 20 64 79 44 73 74 3b 0d .dyDst = dyDst;. 3a40: 0a 0d 0a 09 72 65 74 75 72 6e 20 49 43 53 65 6e ....return ICSen 3a50: 64 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 dMessage(hic, IC 3a60: 4d 5f 44 45 43 4f 4d 50 52 45 53 53 45 58 5f 51 M_DECOMPRESSEX_Q 3a70: 55 45 52 59 2c 20 63 61 73 74 28 44 57 4f 52 44 UERY, cast(DWORD 3a80: 5f 50 54 52 29 26 69 63 2c 20 69 63 2e 73 69 7a _PTR)&ic, ic.siz 3a90: 65 6f 66 29 3b 0d 0a 7d 0d 0a 0d 0a 4c 52 45 53 eof);..}....LRES 3aa0: 55 4c 54 20 49 43 44 65 63 6f 6d 70 72 65 73 73 ULT ICDecompress 3ab0: 45 78 45 6e 64 28 48 49 43 20 68 69 63 29 20 7b ExEnd(HIC hic) { 3ac0: 0d 0a 09 72 65 74 75 72 6e 20 49 43 53 65 6e 64 ...return ICSend 3ad0: 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d Message(hic, ICM 3ae0: 5f 44 45 43 4f 4d 50 52 45 53 53 45 58 5f 45 4e _DECOMPRESSEX_EN 3af0: 44 2c 20 30 2c 20 30 29 3b 0d 0a 7d 0d 0a 0d 0a D, 0, 0);..}.... 3b00: 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73 29 extern (Windows) 3b10: 20 7b 0d 0a 09 44 57 4f 52 44 20 49 43 44 72 61 {...DWORD ICDra 3b20: 77 42 65 67 69 6e 28 48 49 43 20 68 69 63 2c 20 wBegin(HIC hic, 3b30: 44 57 4f 52 44 20 64 77 46 6c 61 67 73 2c 20 48 DWORD dwFlags, H 3b40: 50 41 4c 45 54 54 45 20 68 70 61 6c 2c 20 48 57 PALETTE hpal, HW 3b50: 4e 44 20 68 77 6e 64 2c 20 48 44 43 20 68 64 63 ND hwnd, HDC hdc 3b60: 2c 0d 0a 09 09 69 6e 74 20 78 44 73 74 2c 20 69 ,....int xDst, i 3b70: 6e 74 20 79 44 73 74 2c 20 69 6e 74 20 64 78 44 nt yDst, int dxD 3b80: 73 74 2c 20 69 6e 74 20 64 79 44 73 74 2c 20 4c st, int dyDst, L 3b90: 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 44 45 PBITMAPINFOHEADE 3ba0: 52 20 6c 70 62 69 2c 0d 0a 09 09 69 6e 74 20 78 R lpbi,....int x 3bb0: 53 72 63 2c 20 69 6e 74 20 79 53 72 63 2c 20 69 Src, int ySrc, i 3bc0: 6e 74 20 64 78 53 72 63 2c 20 69 6e 74 20 64 79 nt dxSrc, int dy 3bd0: 53 72 63 2c 20 44 57 4f 52 44 20 64 77 52 61 74 Src, DWORD dwRat 3be0: 65 2c 20 44 57 4f 52 44 20 64 77 53 63 61 6c 65 e, DWORD dwScale 3bf0: 29 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 );..}....extern 3c00: 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 44 57 (Windows) {...DW 3c10: 4f 52 44 20 49 43 44 72 61 77 28 48 49 43 20 68 ORD ICDraw(HIC h 3c20: 69 63 2c 20 44 57 4f 52 44 20 64 77 46 6c 61 67 ic, DWORD dwFlag 3c30: 73 2c 20 4c 50 56 4f 49 44 20 6c 70 46 6f 72 6d s, LPVOID lpForm 3c40: 61 74 2c 20 4c 50 56 4f 49 44 20 6c 70 44 61 74 at, LPVOID lpDat 3c50: 61 2c 20 44 57 4f 52 44 20 63 62 44 61 74 61 2c a, DWORD cbData, 3c60: 20 4c 4f 4e 47 20 6c 54 69 6d 65 29 3b 0d 0a 7d LONG lTime);..} 3c70: 0d 0a 0d 0a 4c 52 45 53 55 4c 54 20 49 43 44 72 ....LRESULT ICDr 3c80: 61 77 53 75 67 67 65 73 74 46 6f 72 6d 61 74 28 awSuggestFormat( 3c90: 48 49 43 20 68 69 63 2c 20 4c 50 42 49 54 4d 41 HIC hic, LPBITMA 3ca0: 50 49 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 69 PINFOHEADER lpbi 3cb0: 49 6e 2c 20 4c 50 42 49 54 4d 41 50 49 4e 46 4f In, LPBITMAPINFO 3cc0: 48 45 41 44 45 52 20 6c 70 62 69 4f 75 74 2c 0d HEADER lpbiOut,. 3cd0: 0a 09 69 6e 74 20 64 78 53 72 63 2c 20 69 6e 74 ..int dxSrc, int 3ce0: 20 64 79 53 72 63 2c 20 69 6e 74 20 64 78 44 73 dySrc, int dxDs 3cf0: 74 2c 20 69 6e 74 20 64 79 44 73 74 2c 20 48 49 t, int dyDst, HI 3d00: 43 20 68 69 63 44 65 63 6f 6d 70 29 20 7b 0d 0a C hicDecomp) {.. 3d10: 09 49 43 44 52 41 57 53 55 47 47 45 53 54 20 69 .ICDRAWSUGGEST i 3d20: 63 3b 0d 0a 0d 0a 09 69 63 2e 6c 70 62 69 49 6e c;.....ic.lpbiIn 3d30: 20 3d 20 6c 70 62 69 49 6e 3b 0d 0a 09 69 63 2e = lpbiIn;...ic. 3d40: 6c 70 62 69 53 75 67 67 65 73 74 20 3d 20 6c 70 lpbiSuggest = lp 3d50: 62 69 4f 75 74 3b 0d 0a 09 69 63 2e 64 78 53 72 biOut;...ic.dxSr 3d60: 63 20 3d 20 64 78 53 72 63 3b 0d 0a 09 69 63 2e c = dxSrc;...ic. 3d70: 64 79 53 72 63 20 3d 20 64 79 53 72 63 3b 0d 0a dySrc = dySrc;.. 3d80: 09 69 63 2e 64 78 44 73 74 20 3d 20 64 78 44 73 .ic.dxDst = dxDs 3d90: 74 3b 0d 0a 09 69 63 2e 64 79 44 73 74 20 3d 20 t;...ic.dyDst = 3da0: 64 79 44 73 74 3b 0d 0a 09 69 63 2e 68 69 63 44 dyDst;...ic.hicD 3db0: 65 63 6f 6d 70 72 65 73 73 6f 72 20 3d 20 68 69 ecompressor = hi 3dc0: 63 44 65 63 6f 6d 70 3b 0d 0a 0d 0a 09 72 65 74 cDecomp;.....ret 3dd0: 75 72 6e 20 49 43 53 65 6e 64 4d 65 73 73 61 67 urn ICSendMessag 3de0: 65 28 68 69 63 2c 20 49 43 4d 5f 44 52 41 57 5f e(hic, ICM_DRAW_ 3df0: 53 55 47 47 45 53 54 46 4f 52 4d 41 54 2c 20 63 SUGGESTFORMAT, c 3e00: 61 73 74 28 44 57 4f 52 44 5f 50 54 52 29 26 69 ast(DWORD_PTR)&i 3e10: 63 2c 20 69 63 2e 73 69 7a 65 6f 66 29 3b 0d 0a c, ic.sizeof);.. 3e20: 7d 0d 0a 0d 0a 4c 52 45 53 55 4c 54 20 49 43 44 }....LRESULT ICD 3e30: 72 61 77 51 75 65 72 79 28 48 49 43 20 68 69 63 rawQuery(HIC hic 3e40: 2c 20 4c 50 56 4f 49 44 20 6c 70 62 69 49 6e 70 , LPVOID lpbiInp 3e50: 75 74 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 ut) {...return I 3e60: 43 53 65 6e 64 4d 65 73 73 61 67 65 28 68 69 63 CSendMessage(hic 3e70: 2c 20 49 43 4d 5f 44 52 41 57 5f 51 55 45 52 59 , ICM_DRAW_QUERY 3e80: 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 54 52 , cast(DWORD_PTR 3e90: 29 6c 70 62 69 49 6e 70 75 74 2c 20 30 4c 29 3b )lpbiInput, 0L); 3ea0: 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 20 49 43 44 ..}..LRESULT ICD 3eb0: 72 61 77 43 68 61 6e 67 65 50 61 6c 65 74 74 65 rawChangePalette 3ec0: 28 48 49 43 20 68 69 63 2c 20 4c 50 56 4f 49 44 (HIC hic, LPVOID 3ed0: 20 6c 70 62 69 49 6e 70 75 74 29 20 7b 0d 0a 09 lpbiInput) {... 3ee0: 72 65 74 75 72 6e 20 49 43 53 65 6e 64 4d 65 73 return ICSendMes 3ef0: 73 61 67 65 28 68 69 63 2c 20 49 43 4d 5f 44 52 sage(hic, ICM_DR 3f00: 41 57 5f 43 48 41 4e 47 45 50 41 4c 45 54 54 45 AW_CHANGEPALETTE 3f10: 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 54 52 , cast(DWORD_PTR 3f20: 29 6c 70 62 69 49 6e 70 75 74 2c 20 30 4c 29 3b )lpbiInput, 0L); 3f30: 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 20 49 43 47 ..}..LRESULT ICG 3f40: 65 74 42 75 66 66 65 72 73 57 61 6e 74 65 64 28 etBuffersWanted( 3f50: 48 49 43 20 68 69 63 2c 20 4c 50 56 4f 49 44 20 HIC hic, LPVOID 3f60: 6c 70 64 77 42 75 66 66 65 72 73 29 20 7b 0d 0a lpdwBuffers) {.. 3f70: 09 72 65 74 75 72 6e 20 49 43 53 65 6e 64 4d 65 .return ICSendMe 3f80: 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d 5f 47 ssage(hic, ICM_G 3f90: 45 54 42 55 46 46 45 52 53 57 41 4e 54 45 44 2c ETBUFFERSWANTED, 3fa0: 20 63 61 73 74 28 44 57 4f 52 44 5f 50 54 52 29 cast(DWORD_PTR) 3fb0: 6c 70 64 77 42 75 66 66 65 72 73 2c 20 30 29 3b lpdwBuffers, 0); 3fc0: 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 20 49 43 44 ..}..LRESULT ICD 3fd0: 72 61 77 45 6e 64 28 48 49 43 20 68 69 63 29 20 rawEnd(HIC hic) 3fe0: 7b 0d 0a 09 72 65 74 75 72 6e 20 49 43 53 65 6e {...return ICSen 3ff0: 64 4d 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 dMessage(hic, IC 4000: 4d 5f 44 52 41 57 5f 45 4e 44 2c 20 30 2c 20 30 M_DRAW_END, 0, 0 4010: 29 3b 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 20 49 );..}..LRESULT I 4020: 43 44 72 61 77 53 74 61 72 74 28 48 49 43 20 68 CDrawStart(HIC h 4030: 69 63 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 ic) {...return I 4040: 43 53 65 6e 64 4d 65 73 73 61 67 65 28 68 69 63 CSendMessage(hic 4050: 2c 20 49 43 4d 5f 44 52 41 57 5f 53 54 41 52 54 , ICM_DRAW_START 4060: 2c 20 30 2c 20 30 29 3b 0d 0a 7d 0d 0a 4c 52 45 , 0, 0);..}..LRE 4070: 53 55 4c 54 20 49 43 44 72 61 77 53 74 61 72 74 SULT ICDrawStart 4080: 50 6c 61 79 28 48 49 43 20 68 69 63 2c 20 44 57 Play(HIC hic, DW 4090: 4f 52 44 20 6c 46 72 6f 6d 2c 20 44 57 4f 52 44 ORD lFrom, DWORD 40a0: 20 6c 54 6f 29 20 7b 0d 0a 09 72 65 74 75 72 6e lTo) {...return 40b0: 20 49 43 53 65 6e 64 4d 65 73 73 61 67 65 28 68 ICSendMessage(h 40c0: 69 63 2c 20 49 43 4d 5f 44 52 41 57 5f 53 54 41 ic, ICM_DRAW_STA 40d0: 52 54 5f 50 4c 41 59 2c 20 63 61 73 74 28 44 57 RT_PLAY, cast(DW 40e0: 4f 52 44 5f 50 54 52 29 6c 46 72 6f 6d 2c 20 63 ORD_PTR)lFrom, c 40f0: 61 73 74 28 44 57 4f 52 44 5f 50 54 52 29 6c 54 ast(DWORD_PTR)lT 4100: 6f 29 3b 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 20 o);..}..LRESULT 4110: 49 43 44 72 61 77 53 74 6f 70 28 48 49 43 20 68 ICDrawStop(HIC h 4120: 69 63 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 ic) {...return I 4130: 43 53 65 6e 64 4d 65 73 73 61 67 65 28 68 69 63 CSendMessage(hic 4140: 2c 20 49 43 4d 5f 44 52 41 57 5f 53 54 4f 50 2c , ICM_DRAW_STOP, 4150: 20 30 2c 20 30 29 3b 0d 0a 7d 0d 0a 4c 52 45 53 0, 0);..}..LRES 4160: 55 4c 54 20 49 43 44 72 61 77 53 74 6f 70 50 6c ULT ICDrawStopPl 4170: 61 79 28 48 49 43 20 68 69 63 29 20 7b 0d 0a 09 ay(HIC hic) {... 4180: 72 65 74 75 72 6e 20 49 43 53 65 6e 64 4d 65 73 return ICSendMes 4190: 73 61 67 65 28 68 69 63 2c 20 49 43 4d 5f 44 52 sage(hic, ICM_DR 41a0: 41 57 5f 53 54 4f 50 5f 50 4c 41 59 2c 20 30 2c AW_STOP_PLAY, 0, 41b0: 20 30 29 3b 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 0);..}..LRESULT 41c0: 20 49 43 44 72 61 77 47 65 74 54 69 6d 65 28 48 ICDrawGetTime(H 41d0: 49 43 20 68 69 63 2c 20 4c 50 56 4f 49 44 20 6c IC hic, LPVOID l 41e0: 70 6c 54 69 6d 65 29 20 7b 0d 0a 09 72 65 74 75 plTime) {...retu 41f0: 72 6e 20 49 43 53 65 6e 64 4d 65 73 73 61 67 65 rn ICSendMessage 4200: 28 68 69 63 2c 20 49 43 4d 5f 44 52 41 57 5f 47 (hic, ICM_DRAW_G 4210: 45 54 54 49 4d 45 2c 20 63 61 73 74 28 44 57 4f ETTIME, cast(DWO 4220: 52 44 5f 50 54 52 29 6c 70 6c 54 69 6d 65 2c 20 RD_PTR)lplTime, 4230: 30 29 3b 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 20 0);..}..LRESULT 4240: 49 43 44 72 61 77 53 65 74 54 69 6d 65 28 48 49 ICDrawSetTime(HI 4250: 43 20 68 69 63 2c 20 44 57 4f 52 44 20 6c 54 69 C hic, DWORD lTi 4260: 6d 65 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 me) {...return I 4270: 43 53 65 6e 64 4d 65 73 73 61 67 65 28 68 69 63 CSendMessage(hic 4280: 2c 20 49 43 4d 5f 44 52 41 57 5f 53 45 54 54 49 , ICM_DRAW_SETTI 4290: 4d 45 2c 20 63 61 73 74 28 44 57 4f 52 44 5f 50 ME, cast(DWORD_P 42a0: 54 52 29 6c 54 69 6d 65 2c 20 30 29 3b 0d 0a 7d TR)lTime, 0);..} 42b0: 0d 0a 4c 52 45 53 55 4c 54 20 49 43 44 72 61 77 ..LRESULT ICDraw 42c0: 52 65 61 6c 69 7a 65 28 48 49 43 20 68 69 63 2c Realize(HIC hic, 42d0: 20 48 44 43 20 68 64 63 2c 20 42 4f 4f 4c 20 66 HDC hdc, BOOL f 42e0: 42 61 63 6b 67 72 6f 75 6e 64 29 20 7b 0d 0a 09 Background) {... 42f0: 72 65 74 75 72 6e 20 49 43 53 65 6e 64 4d 65 73 return ICSendMes 4300: 73 61 67 65 28 68 69 63 2c 20 49 43 4d 5f 44 52 sage(hic, ICM_DR 4310: 41 57 5f 52 45 41 4c 49 5a 45 2c 20 63 61 73 74 AW_REALIZE, cast 4320: 28 44 57 4f 52 44 5f 50 54 52 29 68 64 63 2c 20 (DWORD_PTR)hdc, 4330: 63 61 73 74 28 44 57 4f 52 44 5f 50 54 52 29 66 cast(DWORD_PTR)f 4340: 42 61 63 6b 67 72 6f 75 6e 64 29 3b 0d 0a 7d 0d Background);..}. 4350: 0a 4c 52 45 53 55 4c 54 20 49 43 44 72 61 77 46 .LRESULT ICDrawF 4360: 6c 75 73 68 28 48 49 43 20 68 69 63 29 20 7b 0d lush(HIC hic) {. 4370: 0a 09 72 65 74 75 72 6e 20 49 43 53 65 6e 64 4d ..return ICSendM 4380: 65 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d 5f essage(hic, ICM_ 4390: 44 52 41 57 5f 46 4c 55 53 48 2c 20 30 2c 20 30 DRAW_FLUSH, 0, 0 43a0: 29 3b 0d 0a 7d 0d 0a 4c 52 45 53 55 4c 54 20 49 );..}..LRESULT I 43b0: 43 44 72 61 77 52 65 6e 64 65 72 42 75 66 66 65 CDrawRenderBuffe 43c0: 72 28 48 49 43 20 68 69 63 29 20 7b 0d 0a 09 72 r(HIC hic) {...r 43d0: 65 74 75 72 6e 20 49 43 53 65 6e 64 4d 65 73 73 eturn ICSendMess 43e0: 61 67 65 28 68 69 63 2c 20 49 43 4d 5f 44 52 41 age(hic, ICM_DRA 43f0: 57 5f 52 45 4e 44 45 52 42 55 46 46 45 52 2c 20 W_RENDERBUFFER, 4400: 30 2c 20 30 29 3b 0d 0a 7d 0d 0a 0d 0a 4c 52 45 0, 0);..}....LRE 4410: 53 55 4c 54 20 49 43 53 65 74 53 74 61 74 75 73 SULT ICSetStatus 4420: 50 72 6f 63 28 48 49 43 20 68 69 63 2c 20 44 57 Proc(HIC hic, DW 4430: 4f 52 44 20 64 77 46 6c 61 67 73 2c 20 4c 52 45 ORD dwFlags, LRE 4440: 53 55 4c 54 20 6c 50 61 72 61 6d 2c 20 4c 4f 4e SULT lParam, LON 4450: 47 20 66 75 6e 63 74 69 6f 6e 28 4c 50 41 52 41 G function(LPARA 4460: 4d 2c 20 55 49 4e 54 2c 20 4c 4f 4e 47 29 20 66 M, UINT, LONG) f 4470: 70 66 6e 53 74 61 74 75 73 29 20 7b 0d 0a 09 49 pfnStatus) {...I 4480: 43 53 45 54 53 54 41 54 55 53 50 52 4f 43 20 69 CSETSTATUSPROC i 4490: 63 3b 0d 0a 0d 0a 09 69 63 2e 64 77 46 6c 61 67 c;.....ic.dwFlag 44a0: 73 20 3d 20 64 77 46 6c 61 67 73 3b 0d 0a 09 69 s = dwFlags;...i 44b0: 63 2e 6c 50 61 72 61 6d 20 3d 20 6c 50 61 72 61 c.lParam = lPara 44c0: 6d 3b 0d 0a 09 69 63 2e 53 74 61 74 75 73 20 3d m;...ic.Status = 44d0: 20 66 70 66 6e 53 74 61 74 75 73 3b 0d 0a 0d 0a fpfnStatus;.... 44e0: 09 72 65 74 75 72 6e 20 49 43 53 65 6e 64 4d 65 .return ICSendMe 44f0: 73 73 61 67 65 28 68 69 63 2c 20 49 43 4d 5f 53 ssage(hic, ICM_S 4500: 45 54 5f 53 54 41 54 55 53 5f 50 52 4f 43 2c 20 ET_STATUS_PROC, 4510: 63 61 73 74 28 44 57 4f 52 44 5f 50 54 52 29 26 cast(DWORD_PTR)& 4520: 69 63 2c 20 69 63 2e 73 69 7a 65 6f 66 29 3b 0d ic, ic.sizeof);. 4530: 0a 7d 0d 0a 0d 0a 48 49 43 20 49 43 44 65 63 6f .}....HIC ICDeco 4540: 6d 70 72 65 73 73 4f 70 65 6e 28 44 57 4f 52 44 mpressOpen(DWORD 4550: 20 66 63 63 54 79 70 65 2c 20 44 57 4f 52 44 20 fccType, DWORD 4560: 66 63 63 48 61 6e 64 6c 65 72 2c 20 4c 50 42 49 fccHandler, LPBI 4570: 54 4d 41 50 49 4e 46 4f 48 45 41 44 45 52 20 6c TMAPINFOHEADER l 4580: 70 62 69 49 6e 2c 20 4c 50 42 49 54 4d 41 50 49 pbiIn, LPBITMAPI 4590: 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 69 4f 75 NFOHEADER lpbiOu 45a0: 74 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 43 t) {...return IC 45b0: 4c 6f 63 61 74 65 28 66 63 63 54 79 70 65 2c 20 Locate(fccType, 45c0: 66 63 63 48 61 6e 64 6c 65 72 2c 20 6c 70 62 69 fccHandler, lpbi 45d0: 49 6e 2c 20 6c 70 62 69 4f 75 74 2c 20 49 43 4d In, lpbiOut, ICM 45e0: 4f 44 45 5f 44 45 43 4f 4d 50 52 45 53 53 29 3b ODE_DECOMPRESS); 45f0: 0d 0a 7d 0d 0a 0d 0a 48 49 43 20 49 43 44 72 61 ..}....HIC ICDra 4600: 77 4f 70 65 6e 28 44 57 4f 52 44 20 66 63 63 54 wOpen(DWORD fccT 4610: 79 70 65 2c 20 44 57 4f 52 44 20 66 63 63 48 61 ype, DWORD fccHa 4620: 6e 64 6c 65 72 2c 20 4c 50 42 49 54 4d 41 50 49 ndler, LPBITMAPI 4630: 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 69 49 6e NFOHEADER lpbiIn 4640: 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 49 43 4c ) {...return ICL 4650: 6f 63 61 74 65 28 66 63 63 54 79 70 65 2c 20 66 ocate(fccType, f 4660: 63 63 48 61 6e 64 6c 65 72 2c 20 6c 70 62 69 49 ccHandler, lpbiI 4670: 6e 2c 20 6e 75 6c 6c 2c 20 49 43 4d 4f 44 45 5f n, null, ICMODE_ 4680: 44 52 41 57 29 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 DRAW);..}....ext 4690: 65 72 6e 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d ern (Windows) {. 46a0: 0a 09 48 49 43 20 49 43 4c 6f 63 61 74 65 28 44 ..HIC ICLocate(D 46b0: 57 4f 52 44 20 66 63 63 54 79 70 65 2c 20 44 57 WORD fccType, DW 46c0: 4f 52 44 20 66 63 63 48 61 6e 64 6c 65 72 2c 20 ORD fccHandler, 46d0: 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 44 LPBITMAPINFOHEAD 46e0: 45 52 20 6c 70 62 69 49 6e 2c 20 4c 50 42 49 54 ER lpbiIn, LPBIT 46f0: 4d 41 50 49 4e 46 4f 48 45 41 44 45 52 20 6c 70 MAPINFOHEADER lp 4700: 62 69 4f 75 74 2c 20 57 4f 52 44 20 77 46 6c 61 biOut, WORD wFla 4710: 67 73 29 3b 0d 0a 09 48 49 43 20 49 43 47 65 74 gs);...HIC ICGet 4720: 44 69 73 70 6c 61 79 46 6f 72 6d 61 74 28 48 49 DisplayFormat(HI 4730: 43 20 68 69 63 2c 20 4c 50 42 49 54 4d 41 50 49 C hic, LPBITMAPI 4740: 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 69 49 6e NFOHEADER lpbiIn 4750: 2c 20 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 , LPBITMAPINFOHE 4760: 41 44 45 52 20 6c 70 62 69 4f 75 74 2c 20 69 6e ADER lpbiOut, in 4770: 74 20 42 69 74 44 65 70 74 68 2c 20 69 6e 74 20 t BitDepth, int 4780: 64 78 2c 20 69 6e 74 20 64 79 29 3b 0d 0a 09 48 dx, int dy);...H 4790: 41 4e 44 4c 45 20 49 43 49 6d 61 67 65 43 6f 6d ANDLE ICImageCom 47a0: 70 72 65 73 73 28 48 49 43 20 68 69 63 2c 20 55 press(HIC hic, U 47b0: 49 4e 54 20 75 69 46 6c 61 67 73 2c 20 4c 50 42 INT uiFlags, LPB 47c0: 49 54 4d 41 50 49 4e 46 4f 20 6c 70 62 69 49 6e ITMAPINFO lpbiIn 47d0: 2c 20 4c 50 56 4f 49 44 20 6c 70 42 69 74 73 2c , LPVOID lpBits, 47e0: 20 4c 50 42 49 54 4d 41 50 49 4e 46 4f 20 6c 70 LPBITMAPINFO lp 47f0: 62 69 4f 75 74 2c 20 4c 4f 4e 47 20 6c 51 75 61 biOut, LONG lQua 4800: 6c 69 74 79 2c 20 4c 4f 4e 47 2a 20 70 6c 53 69 lity, LONG* plSi 4810: 7a 65 29 3b 0d 0a 09 48 41 4e 44 4c 45 20 49 43 ze);...HANDLE IC 4820: 49 6d 61 67 65 44 65 63 6f 6d 70 72 65 73 73 28 ImageDecompress( 4830: 48 49 43 20 68 69 63 2c 20 55 49 4e 54 20 75 69 HIC hic, UINT ui 4840: 46 6c 61 67 73 2c 20 4c 50 42 49 54 4d 41 50 49 Flags, LPBITMAPI 4850: 4e 46 4f 20 6c 70 62 69 49 6e 2c 20 4c 50 56 4f NFO lpbiIn, LPVO 4860: 49 44 20 6c 70 42 69 74 73 2c 20 4c 50 42 49 54 ID lpBits, LPBIT 4870: 4d 41 50 49 4e 46 4f 20 6c 70 62 69 4f 75 74 29 MAPINFO lpbiOut) 4880: 3b 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 43 ;..}....struct C 4890: 4f 4d 50 56 41 52 53 20 7b 0d 0a 09 4c 4f 4e 47 OMPVARS {...LONG 48a0: 09 09 63 62 53 69 7a 65 20 3d 20 74 68 69 73 2e ..cbSize = this. 48b0: 73 69 7a 65 6f 66 3b 0d 0a 09 44 57 4f 52 44 09 sizeof;...DWORD. 48c0: 09 64 77 46 6c 61 67 73 3b 0d 0a 09 48 49 43 09 .dwFlags;...HIC. 48d0: 09 09 68 69 63 3b 0d 0a 09 44 57 4f 52 44 20 20 ..hic;...DWORD 48e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 66 63 63 fcc 48f0: 54 79 70 65 3b 0d 0a 09 44 57 4f 52 44 20 20 20 Type;...DWORD 4900: 20 20 20 20 20 20 20 20 20 20 20 20 66 63 63 48 fccH 4910: 61 6e 64 6c 65 72 3b 0d 0a 09 4c 50 42 49 54 4d andler;...LPBITM 4920: 41 50 49 4e 46 4f 09 6c 70 62 69 49 6e 3b 0d 0a APINFO.lpbiIn;.. 4930: 09 4c 50 42 49 54 4d 41 50 49 4e 46 4f 09 6c 70 .LPBITMAPINFO.lp 4940: 62 69 4f 75 74 3b 0d 0a 09 4c 50 56 4f 49 44 09 biOut;...LPVOID. 4950: 09 6c 70 42 69 74 73 4f 75 74 3b 0d 0a 09 4c 50 .lpBitsOut;...LP 4960: 56 4f 49 44 09 09 6c 70 42 69 74 73 50 72 65 76 VOID..lpBitsPrev 4970: 3b 0d 0a 09 4c 4f 4e 47 09 09 6c 46 72 61 6d 65 ;...LONG..lFrame 4980: 3b 0d 0a 09 4c 4f 4e 47 09 09 6c 4b 65 79 3b 0d ;...LONG..lKey;. 4990: 0a 09 4c 4f 4e 47 09 09 6c 44 61 74 61 52 61 74 ..LONG..lDataRat 49a0: 65 3b 0d 0a 09 4c 4f 4e 47 09 09 6c 51 3b 0d 0a e;...LONG..lQ;.. 49b0: 09 4c 4f 4e 47 09 09 6c 4b 65 79 43 6f 75 6e 74 .LONG..lKeyCount 49c0: 3b 0d 0a 09 4c 50 56 4f 49 44 09 09 6c 70 53 74 ;...LPVOID..lpSt 49d0: 61 74 65 3b 0d 0a 09 4c 4f 4e 47 09 09 63 62 53 ate;...LONG..cbS 49e0: 74 61 74 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 tate;..}..alias 49f0: 43 4f 4d 50 56 41 52 53 2a 20 50 43 4f 4d 50 56 COMPVARS* PCOMPV 4a00: 41 52 53 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 49 43 ARS;....const IC 4a10: 4d 46 5f 43 4f 4d 50 56 41 52 53 5f 56 41 4c 49 MF_COMPVARS_VALI 4a20: 44 20 3d 20 30 78 30 30 30 30 30 30 30 31 3b 0d D = 0x00000001;. 4a30: 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f ...extern (Windo 4a40: 77 73 29 20 7b 0d 0a 09 42 4f 4f 4c 20 49 43 43 ws) {...BOOL ICC 4a50: 6f 6d 70 72 65 73 73 6f 72 43 68 6f 6f 73 65 28 ompressorChoose( 4a60: 48 57 4e 44 20 68 77 6e 64 2c 20 55 49 4e 54 20 HWND hwnd, UINT 4a70: 75 69 46 6c 61 67 73 2c 20 4c 50 56 4f 49 44 20 uiFlags, LPVOID 4a80: 70 76 49 6e 2c 20 4c 50 56 4f 49 44 20 6c 70 44 pvIn, LPVOID lpD 4a90: 61 74 61 2c 20 50 43 4f 4d 50 56 41 52 53 20 70 ata, PCOMPVARS p 4aa0: 63 2c 20 4c 50 53 54 52 20 6c 70 73 7a 54 69 74 c, LPSTR lpszTit 4ab0: 6c 65 29 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 le);..}....enum 4ac0: 7b 0d 0a 09 49 43 4d 46 5f 43 48 4f 4f 53 45 5f {...ICMF_CHOOSE_ 4ad0: 4b 45 59 46 52 41 4d 45 09 09 3d 20 30 78 30 30 KEYFRAME..= 0x00 4ae0: 30 31 2c 0d 0a 09 49 43 4d 46 5f 43 48 4f 4f 53 01,...ICMF_CHOOS 4af0: 45 5f 44 41 54 41 52 41 54 45 09 09 3d 20 30 78 E_DATARATE..= 0x 4b00: 30 30 30 32 2c 0d 0a 09 49 43 4d 46 5f 43 48 4f 0002,...ICMF_CHO 4b10: 4f 53 45 5f 50 52 45 56 49 45 57 09 09 09 3d 20 OSE_PREVIEW...= 4b20: 30 78 30 30 30 34 2c 0d 0a 09 49 43 4d 46 5f 43 0x0004,...ICMF_C 4b30: 48 4f 4f 53 45 5f 41 4c 4c 43 4f 4d 50 52 45 53 HOOSE_ALLCOMPRES 4b40: 53 4f 52 53 09 3d 20 30 78 30 30 30 38 2c 0d 0a SORS.= 0x0008,.. 4b50: 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e }....extern (Win 4b60: 64 6f 77 73 29 20 7b 0d 0a 09 42 4f 4f 4c 20 49 dows) {...BOOL I 4b70: 43 53 65 71 43 6f 6d 70 72 65 73 73 46 72 61 6d CSeqCompressFram 4b80: 65 53 74 61 72 74 28 50 43 4f 4d 50 56 41 52 53 eStart(PCOMPVARS 4b90: 20 70 63 2c 20 4c 50 42 49 54 4d 41 50 49 4e 46 pc, LPBITMAPINF 4ba0: 4f 20 6c 70 62 69 49 6e 29 3b 0d 0a 09 76 6f 69 O lpbiIn);...voi 4bb0: 64 20 49 43 53 65 71 43 6f 6d 70 72 65 73 73 46 d ICSeqCompressF 4bc0: 72 61 6d 65 45 6e 64 28 50 43 4f 4d 50 56 41 52 rameEnd(PCOMPVAR 4bd0: 53 20 70 63 29 3b 0d 0a 09 4c 50 56 4f 49 44 20 S pc);...LPVOID 4be0: 49 43 53 65 71 43 6f 6d 70 72 65 73 73 46 72 61 ICSeqCompressFra 4bf0: 6d 65 28 50 43 4f 4d 50 56 41 52 53 20 70 63 2c me(PCOMPVARS pc, 4c00: 20 55 49 4e 54 20 75 69 46 6c 61 67 73 2c 20 4c UINT uiFlags, L 4c10: 50 56 4f 49 44 20 6c 70 42 69 74 73 2c 20 42 4f PVOID lpBits, BO 4c20: 4f 4c 2a 20 70 66 4b 65 79 2c 20 4c 4f 4e 47 2a OL* pfKey, LONG* 4c30: 20 70 6c 53 69 7a 65 29 3b 0d 0a 09 76 6f 69 64 plSize);...void 4c40: 20 49 43 43 6f 6d 70 72 65 73 73 6f 72 46 72 65 ICCompressorFre 4c50: 65 28 50 43 4f 4d 50 56 41 52 53 20 70 63 29 3b e(PCOMPVARS pc); 4c60: 0d 0a 7d 0d 0a 0d 0a 6d 69 78 69 6e 20 44 45 43 ..}....mixin DEC 4c70: 4c 41 52 45 5f 48 41 4e 44 4c 45 21 28 22 48 44 LARE_HANDLE!("HD 4c80: 52 41 57 44 49 42 22 29 3b 0d 0a 0d 0a 65 6e 75 RAWDIB");....enu 4c90: 6d 20 7b 0d 0a 09 44 44 46 5f 30 30 30 31 09 09 m {...DDF_0001.. 4ca0: 09 3d 20 30 78 30 30 30 31 2c 0d 0a 09 44 44 46 .= 0x0001,...DDF 4cb0: 5f 55 50 44 41 54 45 09 09 09 3d 20 30 78 30 30 _UPDATE...= 0x00 4cc0: 30 32 2c 0d 0a 09 44 44 46 5f 53 41 4d 45 5f 48 02,...DDF_SAME_H 4cd0: 44 43 09 09 3d 20 30 78 30 30 30 34 2c 0d 0a 09 DC..= 0x0004,... 4ce0: 44 44 46 5f 53 41 4d 45 5f 44 52 41 57 09 09 3d DDF_SAME_DRAW..= 4cf0: 20 30 78 30 30 30 38 2c 0d 0a 09 44 44 46 5f 44 0x0008,...DDF_D 4d00: 4f 4e 54 44 52 41 57 09 09 3d 20 30 78 30 30 31 ONTDRAW..= 0x001 4d10: 30 2c 0d 0a 09 44 44 46 5f 41 4e 49 4d 41 54 45 0,...DDF_ANIMATE 4d20: 09 09 09 3d 20 30 78 30 30 32 30 2c 0d 0a 09 44 ...= 0x0020,...D 4d30: 44 46 5f 42 55 46 46 45 52 09 09 09 3d 20 30 78 DF_BUFFER...= 0x 4d40: 30 30 34 30 2c 0d 0a 09 44 44 46 5f 4a 55 53 54 0040,...DDF_JUST 4d50: 44 52 41 57 49 54 09 09 3d 20 30 78 30 30 38 30 DRAWIT..= 0x0080 4d60: 2c 0d 0a 09 44 44 46 5f 46 55 4c 4c 53 43 52 45 ,...DDF_FULLSCRE 4d70: 45 4e 09 09 3d 20 30 78 30 31 30 30 2c 0d 0a 09 EN..= 0x0100,... 4d80: 44 44 46 5f 42 41 43 4b 47 52 4f 55 4e 44 50 41 DDF_BACKGROUNDPA 4d90: 4c 09 3d 20 30 78 30 32 30 30 2c 0d 0a 09 44 44 L.= 0x0200,...DD 4da0: 46 5f 4e 4f 54 4b 45 59 46 52 41 4d 45 09 09 3d F_NOTKEYFRAME..= 4db0: 20 30 78 30 34 30 30 2c 0d 0a 09 44 44 46 5f 48 0x0400,...DDF_H 4dc0: 55 52 52 59 55 50 09 09 09 3d 20 30 78 30 38 30 URRYUP...= 0x080 4dd0: 30 2c 0d 0a 09 44 44 46 5f 48 41 4c 46 54 4f 4e 0,...DDF_HALFTON 4de0: 45 09 09 3d 20 30 78 31 30 30 30 2c 0d 0a 09 44 E..= 0x1000,...D 4df0: 44 46 5f 32 30 30 30 09 09 09 3d 20 30 78 32 30 DF_2000...= 0x20 4e00: 30 30 2c 0d 0a 09 44 44 46 5f 50 52 45 52 4f 4c 00,...DDF_PREROL 4e10: 4c 09 09 09 3d 20 44 44 46 5f 44 4f 4e 54 44 52 L...= DDF_DONTDR 4e20: 41 57 2c 0d 0a 09 44 44 46 5f 53 41 4d 45 5f 44 AW,...DDF_SAME_D 4e30: 49 42 09 09 3d 20 44 44 46 5f 53 41 4d 45 5f 44 IB..= DDF_SAME_D 4e40: 52 41 57 2c 0d 0a 09 44 44 46 5f 53 41 4d 45 5f RAW,...DDF_SAME_ 4e50: 53 49 5a 45 09 09 3d 20 44 44 46 5f 53 41 4d 45 SIZE..= DDF_SAME 4e60: 5f 44 52 41 57 2c 0d 0a 7d 0d 0a 0d 0a 65 78 74 _DRAW,..}....ext 4e70: 65 72 6e 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d ern (Windows) {. 4e80: 0a 09 42 4f 4f 4c 20 44 72 61 77 44 69 62 49 6e ..BOOL DrawDibIn 4e90: 69 74 28 29 3b 0d 0a 09 48 44 52 41 57 44 49 42 it();...HDRAWDIB 4ea0: 20 44 72 61 77 44 69 62 4f 70 65 6e 28 29 3b 0d DrawDibOpen();. 4eb0: 0a 09 42 4f 4f 4c 20 44 72 61 77 44 69 62 43 6c ..BOOL DrawDibCl 4ec0: 6f 73 65 28 48 44 52 41 57 44 49 42 20 68 64 64 ose(HDRAWDIB hdd 4ed0: 29 3b 0d 0a 09 4c 50 56 4f 49 44 20 44 72 61 77 );...LPVOID Draw 4ee0: 44 69 62 47 65 74 42 75 66 66 65 72 28 48 44 52 DibGetBuffer(HDR 4ef0: 41 57 44 49 42 20 68 64 64 2c 20 4c 50 42 49 54 AWDIB hdd, LPBIT 4f00: 4d 41 50 49 4e 46 4f 48 45 41 44 45 52 20 6c 70 MAPINFOHEADER lp 4f10: 62 69 2c 20 44 57 4f 52 44 20 64 77 53 69 7a 65 bi, DWORD dwSize 4f20: 2c 20 44 57 4f 52 44 20 64 77 46 6c 61 67 73 29 , DWORD dwFlags) 4f30: 3b 0d 0a 09 55 49 4e 54 20 44 72 61 77 44 69 62 ;...UINT DrawDib 4f40: 45 72 72 6f 72 28 48 44 52 41 57 44 49 42 20 68 Error(HDRAWDIB h 4f50: 64 64 29 3b 0d 0a 09 48 50 41 4c 45 54 54 45 20 dd);...HPALETTE 4f60: 44 72 61 77 44 69 62 47 65 74 50 61 6c 65 74 74 DrawDibGetPalett 4f70: 65 28 48 44 52 41 57 44 49 42 20 68 64 64 29 3b e(HDRAWDIB hdd); 4f80: 0d 0a 09 42 4f 4f 4c 20 44 72 61 77 44 69 62 53 ...BOOL DrawDibS 4f90: 65 74 50 61 6c 65 74 74 65 28 48 44 52 41 57 44 etPalette(HDRAWD 4fa0: 49 42 20 68 64 64 2c 20 48 50 41 4c 45 54 54 45 IB hdd, HPALETTE 4fb0: 20 68 70 61 6c 29 3b 0d 0a 09 42 4f 4f 4c 20 44 hpal);...BOOL D 4fc0: 72 61 77 44 69 62 43 68 61 6e 67 65 50 61 6c 65 rawDibChangePale 4fd0: 74 74 65 28 48 44 52 41 57 44 49 42 20 68 64 64 tte(HDRAWDIB hdd 4fe0: 2c 20 69 6e 74 20 69 53 74 61 72 74 2c 20 69 6e , int iStart, in 4ff0: 74 20 69 4c 65 6e 2c 20 4c 50 50 41 4c 45 54 54 t iLen, LPPALETT 5000: 45 45 4e 54 52 59 20 6c 70 70 65 29 3b 0d 0a 09 EENTRY lppe);... 5010: 55 49 4e 54 20 44 72 61 77 44 69 62 52 65 61 6c UINT DrawDibReal 5020: 69 7a 65 28 48 44 52 41 57 44 49 42 20 68 64 64 ize(HDRAWDIB hdd 5030: 2c 20 48 44 43 20 68 64 63 2c 20 42 4f 4f 4c 20 , HDC hdc, BOOL 5040: 66 42 61 63 6b 67 72 6f 75 6e 64 29 3b 0d 0a 09 fBackground);... 5050: 42 4f 4f 4c 20 44 72 61 77 44 69 62 53 74 61 72 BOOL DrawDibStar 5060: 74 28 48 44 52 41 57 44 49 42 20 68 64 64 2c 20 t(HDRAWDIB hdd, 5070: 44 57 4f 52 44 20 72 61 74 65 29 3b 0d 0a 09 42 DWORD rate);...B 5080: 4f 4f 4c 20 44 72 61 77 44 69 62 53 74 6f 70 28 OOL DrawDibStop( 5090: 48 44 52 41 57 44 49 42 20 68 64 64 29 3b 0d 0a HDRAWDIB hdd);.. 50a0: 09 42 4f 4f 4c 20 44 72 61 77 44 69 62 42 65 67 .BOOL DrawDibBeg 50b0: 69 6e 28 48 44 52 41 57 44 49 42 20 68 64 64 2c in(HDRAWDIB hdd, 50c0: 20 48 44 43 20 68 64 63 2c 20 69 6e 74 20 64 78 HDC hdc, int dx 50d0: 44 73 74 2c 20 69 6e 74 20 64 79 44 73 74 2c 20 Dst, int dyDst, 50e0: 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 44 LPBITMAPINFOHEAD 50f0: 45 52 20 6c 70 62 69 2c 20 69 6e 74 20 64 78 53 ER lpbi, int dxS 5100: 72 63 2c 20 69 6e 74 20 64 79 53 72 63 2c 20 55 rc, int dySrc, U 5110: 49 4e 54 20 77 46 6c 61 67 73 29 3b 0d 0a 09 42 INT wFlags);...B 5120: 4f 4f 4c 20 44 72 61 77 44 69 62 44 72 61 77 28 OOL DrawDibDraw( 5130: 48 44 52 41 57 44 49 42 20 68 64 64 2c 20 48 44 HDRAWDIB hdd, HD 5140: 43 20 68 64 63 2c 20 69 6e 74 20 78 44 73 74 2c C hdc, int xDst, 5150: 20 69 6e 74 20 79 44 73 74 2c 20 69 6e 74 20 64 int yDst, int d 5160: 78 44 73 74 2c 20 69 6e 74 20 64 79 44 73 74 2c xDst, int dyDst, 5170: 20 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 41 LPBITMAPINFOHEA 5180: 44 45 52 20 6c 70 62 69 2c 0d 0a 09 09 4c 50 56 DER lpbi,....LPV 5190: 4f 49 44 20 6c 70 42 69 74 73 2c 20 69 6e 74 20 OID lpBits, int 51a0: 78 53 72 63 2c 20 69 6e 74 20 79 53 72 63 2c 20 xSrc, int ySrc, 51b0: 69 6e 74 20 64 78 53 72 63 2c 20 69 6e 74 20 64 int dxSrc, int d 51c0: 79 53 72 63 2c 20 55 49 4e 54 20 77 46 6c 61 67 ySrc, UINT wFlag 51d0: 73 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 44 s);..}....BOOL D 51e0: 72 61 77 44 69 62 55 70 64 61 74 65 28 48 44 52 rawDibUpdate(HDR 51f0: 41 57 44 49 42 20 68 64 64 2c 20 48 44 43 20 68 AWDIB hdd, HDC h 5200: 64 63 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 dc, int x, int y 5210: 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 44 72 61 ) {...return Dra 5220: 77 44 69 62 44 72 61 77 28 68 64 64 2c 20 68 64 wDibDraw(hdd, hd 5230: 63 2c 20 78 2c 20 79 2c 20 30 2c 20 30 2c 20 6e c, x, y, 0, 0, n 5240: 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 30 2c 20 30 2c ull, null, 0, 0, 5250: 20 30 2c 20 30 2c 20 44 44 46 5f 55 50 44 41 54 0, 0, DDF_UPDAT 5260: 45 29 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e E);..}....extern 5270: 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 42 (Windows) {...B 5280: 4f 4f 4c 20 44 72 61 77 44 69 62 45 6e 64 28 48 OOL DrawDibEnd(H 5290: 44 52 41 57 44 49 42 20 68 64 64 29 3b 0d 0a 7d DRAWDIB hdd);..} 52a0: 0d 0a 0d 0a 73 74 72 75 63 74 20 44 52 41 57 44 ....struct DRAWD 52b0: 49 42 54 49 4d 45 20 7b 0d 0a 20 20 20 20 4c 4f IBTIME {.. LO 52c0: 4e 47 20 20 20 20 74 69 6d 65 43 6f 75 6e 74 3b NG timeCount; 52d0: 0d 0a 20 20 20 20 4c 4f 4e 47 20 20 20 20 74 69 .. LONG ti 52e0: 6d 65 44 72 61 77 3b 0d 0a 20 20 20 20 4c 4f 4e meDraw;.. LON 52f0: 47 20 20 20 20 74 69 6d 65 44 65 63 6f 6d 70 72 G timeDecompr 5300: 65 73 73 3b 0d 0a 20 20 20 20 4c 4f 4e 47 20 20 ess;.. LONG 5310: 20 20 74 69 6d 65 44 69 74 68 65 72 3b 0d 0a 20 timeDither;.. 5320: 20 20 20 4c 4f 4e 47 20 20 20 20 74 69 6d 65 53 LONG timeS 5330: 74 72 65 74 63 68 3b 0d 0a 20 20 20 20 4c 4f 4e tretch;.. LON 5340: 47 20 20 20 20 74 69 6d 65 42 6c 74 3b 0d 0a 20 G timeBlt;.. 5350: 20 20 20 4c 4f 4e 47 20 20 20 20 74 69 6d 65 53 LONG timeS 5360: 65 74 44 49 42 69 74 73 3b 0d 0a 7d 0d 0a 61 6c etDIBits;..}..al 5370: 69 61 73 20 44 52 41 57 44 49 42 54 49 4d 45 2a ias DRAWDIBTIME* 5380: 20 4c 50 44 52 41 57 44 49 42 54 49 4d 45 3b 0d LPDRAWDIBTIME;. 5390: 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f ...extern (Windo 53a0: 77 73 29 20 7b 0d 0a 09 42 4f 4f 4c 20 44 72 61 ws) {...BOOL Dra 53b0: 77 44 69 62 54 69 6d 65 28 48 44 52 41 57 44 49 wDibTime(HDRAWDI 53c0: 42 20 68 64 64 2c 20 4c 50 44 52 41 57 44 49 42 B hdd, LPDRAWDIB 53d0: 54 49 4d 45 20 6c 70 64 64 74 69 6d 65 29 3b 0d TIME lpddtime);. 53e0: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 50 .}....enum {...P 53f0: 44 5f 43 41 4e 5f 44 52 41 57 5f 44 49 42 09 09 D_CAN_DRAW_DIB.. 5400: 09 3d 20 30 78 30 30 30 31 2c 0d 0a 09 50 44 5f .= 0x0001,...PD_ 5410: 43 41 4e 5f 53 54 52 45 54 43 48 44 49 42 09 09 CAN_STRETCHDIB.. 5420: 3d 20 30 78 30 30 30 32 2c 0d 0a 09 50 44 5f 53 = 0x0002,...PD_S 5430: 54 52 45 54 43 48 44 49 42 5f 31 5f 31 5f 4f 4b TRETCHDIB_1_1_OK 5440: 09 3d 20 30 78 30 30 30 34 2c 0d 0a 09 50 44 5f .= 0x0004,...PD_ 5450: 53 54 52 45 54 43 48 44 49 42 5f 31 5f 32 5f 4f STRETCHDIB_1_2_O 5460: 4b 09 3d 20 30 78 30 30 30 38 2c 0d 0a 09 50 44 K.= 0x0008,...PD 5470: 5f 53 54 52 45 54 43 48 44 49 42 5f 31 5f 4e 5f _STRETCHDIB_1_N_ 5480: 4f 4b 09 3d 20 30 78 30 30 31 30 2c 0d 0a 7d 0d OK.= 0x0010,..}. 5490: 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f ...extern (Windo 54a0: 77 73 29 20 7b 0d 0a 09 4c 52 45 53 55 4c 54 20 ws) {...LRESULT 54b0: 44 72 61 77 44 69 62 50 72 6f 66 69 6c 65 44 69 DrawDibProfileDi 54c0: 73 70 6c 61 79 28 4c 50 42 49 54 4d 41 50 49 4e splay(LPBITMAPIN 54d0: 46 4f 48 45 41 44 45 52 20 6c 70 62 69 29 3b 0d FOHEADER lpbi);. 54e0: 0a 09 76 6f 69 64 20 53 74 72 65 74 63 68 44 49 ..void StretchDI 54f0: 42 28 4c 50 42 49 54 4d 41 50 49 4e 46 4f 48 45 B(LPBITMAPINFOHE 5500: 41 44 45 52 20 62 69 44 73 74 2c 20 4c 50 56 4f ADER biDst, LPVO 5510: 49 44 20 6c 70 44 73 74 2c 20 69 6e 74 09 44 73 ID lpDst, int.Ds 5520: 74 58 2c 20 69 6e 74 20 44 73 74 59 2c 0d 0a 09 tX, int DstY,... 5530: 09 69 6e 74 20 44 73 74 58 45 2c 20 69 6e 74 20 .int DstXE, int 5540: 44 73 74 59 45 2c 20 4c 50 42 49 54 4d 41 50 49 DstYE, LPBITMAPI 5550: 4e 46 4f 48 45 41 44 45 52 20 62 69 53 72 63 2c NFOHEADER biSrc, 5560: 20 4c 50 56 4f 49 44 20 6c 70 53 72 63 2c 0d 0a LPVOID lpSrc,.. 5570: 09 09 69 6e 74 20 53 72 63 58 2c 20 69 6e 74 20 ..int SrcX, int 5580: 53 72 63 59 2c 20 69 6e 74 20 53 72 63 58 45 2c SrcY, int SrcXE, 5590: 20 69 6e 74 20 53 72 63 59 45 29 3b 0d 0a 7d 20 int SrcYE);..} 55a0: 09 0d 0a 0d 0a 61 6c 69 61 73 20 44 57 4f 52 44 .....alias DWORD 55b0: 20 46 4f 55 52 43 43 3b 0d 0a 0d 0a 61 6c 69 61 FOURCC;....alia 55c0: 73 20 57 4f 52 44 20 54 57 4f 43 43 3b 0d 0a 0d s WORD TWOCC;... 55d0: 0a 63 6f 6e 73 74 20 66 6f 72 6d 74 79 70 65 41 .const formtypeA 55e0: 56 49 09 09 09 3d 20 6d 6d 69 6f 46 4f 55 52 43 VI...= mmioFOURC 55f0: 43 21 28 27 41 27 2c 20 27 56 27 2c 20 27 49 27 C!('A', 'V', 'I' 5600: 2c 20 27 20 27 29 3b 0d 0a 63 6f 6e 73 74 20 6c , ' ');..const l 5610: 69 73 74 74 79 70 65 41 56 49 48 45 41 44 45 52 isttypeAVIHEADER 5620: 09 09 3d 20 6d 6d 69 6f 46 4f 55 52 43 43 21 28 ..= mmioFOURCC!( 5630: 27 68 27 2c 20 27 64 27 2c 20 27 72 27 2c 20 27 'h', 'd', 'r', ' 5640: 6c 27 29 3b 0d 0a 63 6f 6e 73 74 20 63 6b 69 64 l');..const ckid 5650: 41 56 49 4d 41 49 4e 48 44 52 09 09 3d 20 6d 6d AVIMAINHDR..= mm 5660: 69 6f 46 4f 55 52 43 43 21 28 27 61 27 2c 20 27 ioFOURCC!('a', ' 5670: 76 27 2c 20 27 69 27 2c 20 27 68 27 29 3b 0d 0a v', 'i', 'h');.. 5680: 63 6f 6e 73 74 20 6c 69 73 74 74 79 70 65 53 54 const listtypeST 5690: 52 45 41 4d 48 45 41 44 45 52 09 3d 20 6d 6d 69 REAMHEADER.= mmi 56a0: 6f 46 4f 55 52 43 43 21 28 27 73 27 2c 20 27 74 oFOURCC!('s', 't 56b0: 27 2c 20 27 72 27 2c 20 27 6c 27 29 3b 0d 0a 63 ', 'r', 'l');..c 56c0: 6f 6e 73 74 20 63 6b 69 64 53 54 52 45 41 4d 48 onst ckidSTREAMH 56d0: 45 41 44 45 52 09 09 3d 20 6d 6d 69 6f 46 4f 55 EADER..= mmioFOU 56e0: 52 43 43 21 28 27 73 27 2c 20 27 74 27 2c 20 27 RCC!('s', 't', ' 56f0: 72 27 2c 20 27 68 27 29 3b 0d 0a 63 6f 6e 73 74 r', 'h');..const 5700: 20 63 6b 69 64 53 54 52 45 41 4d 46 4f 52 4d 41 ckidSTREAMFORMA 5710: 54 09 09 3d 20 6d 6d 69 6f 46 4f 55 52 43 43 21 T..= mmioFOURCC! 5720: 28 27 73 27 2c 20 27 74 27 2c 20 27 72 27 2c 20 ('s', 't', 'r', 5730: 27 66 27 29 3b 0d 0a 63 6f 6e 73 74 20 63 6b 69 'f');..const cki 5740: 64 53 54 52 45 41 4d 48 41 4e 44 4c 45 52 44 41 dSTREAMHANDLERDA 5750: 54 41 09 3d 20 6d 6d 69 6f 46 4f 55 52 43 43 21 TA.= mmioFOURCC! 5760: 28 27 73 27 2c 20 27 74 27 2c 20 27 72 27 2c 20 ('s', 't', 'r', 5770: 27 64 27 29 3b 0d 0a 63 6f 6e 73 74 20 63 6b 69 'd');..const cki 5780: 64 53 54 52 45 41 4d 4e 41 4d 45 09 09 3d 20 6d dSTREAMNAME..= m 5790: 6d 69 6f 46 4f 55 52 43 43 21 28 27 73 27 2c 20 mioFOURCC!('s', 57a0: 27 74 27 2c 20 27 72 27 2c 20 27 6e 27 29 3b 0d 't', 'r', 'n');. 57b0: 0a 63 6f 6e 73 74 20 6c 69 73 74 74 79 70 65 41 .const listtypeA 57c0: 56 49 4d 4f 56 49 45 09 09 3d 20 6d 6d 69 6f 46 VIMOVIE..= mmioF 57d0: 4f 55 52 43 43 21 28 27 6d 27 2c 20 27 6f 27 2c OURCC!('m', 'o', 57e0: 20 27 76 27 2c 20 27 69 27 29 3b 0d 0a 63 6f 6e 'v', 'i');..con 57f0: 73 74 20 6c 69 73 74 74 79 70 65 41 56 49 52 45 st listtypeAVIRE 5800: 43 4f 52 44 09 09 3d 20 6d 6d 69 6f 46 4f 55 52 CORD..= mmioFOUR 5810: 43 43 21 28 27 72 27 2c 20 27 65 27 2c 20 27 63 CC!('r', 'e', 'c 5820: 27 2c 20 27 20 27 29 3b 0d 0a 63 6f 6e 73 74 20 ', ' ');..const 5830: 63 6b 69 64 41 56 49 4e 45 57 49 4e 44 45 58 09 ckidAVINEWINDEX. 5840: 09 3d 20 6d 6d 69 6f 46 4f 55 52 43 43 21 28 27 .= mmioFOURCC!(' 5850: 69 27 2c 20 27 64 27 2c 20 27 78 27 2c 20 27 31 i', 'd', 'x', '1 5860: 27 29 3b 0d 0a 63 6f 6e 73 74 20 73 74 72 65 61 ');..const strea 5870: 6d 74 79 70 65 56 49 44 45 4f 09 09 3d 20 6d 6d mtypeVIDEO..= mm 5880: 69 6f 46 4f 55 52 43 43 21 28 27 76 27 2c 20 27 ioFOURCC!('v', ' 5890: 69 27 2c 20 27 64 27 2c 20 27 73 27 29 3b 0d 0a i', 'd', 's');.. 58a0: 63 6f 6e 73 74 20 73 74 72 65 61 6d 74 79 70 65 const streamtype 58b0: 41 55 44 49 4f 09 09 3d 20 6d 6d 69 6f 46 4f 55 AUDIO..= mmioFOU 58c0: 52 43 43 21 28 27 61 27 2c 20 27 75 27 2c 20 27 RCC!('a', 'u', ' 58d0: 64 27 2c 20 27 73 27 29 3b 0d 0a 63 6f 6e 73 74 d', 's');..const 58e0: 20 73 74 72 65 61 6d 74 79 70 65 4d 49 44 49 09 streamtypeMIDI. 58f0: 09 3d 20 6d 6d 69 6f 46 4f 55 52 43 43 21 28 27 .= mmioFOURCC!(' 5900: 6d 27 2c 20 27 69 27 2c 20 27 64 27 2c 20 27 73 m', 'i', 'd', 's 5910: 27 29 3b 0d 0a 63 6f 6e 73 74 20 73 74 72 65 61 ');..const strea 5920: 6d 74 79 70 65 54 45 58 54 09 09 3d 20 6d 6d 69 mtypeTEXT..= mmi 5930: 6f 46 4f 55 52 43 43 21 28 27 74 27 2c 20 27 78 oFOURCC!('t', 'x 5940: 27 2c 20 27 74 27 2c 20 27 73 27 29 3b 0d 0a 0d ', 't', 's');... 5950: 0a 63 6f 6e 73 74 20 63 6b 74 79 70 65 44 49 42 .const cktypeDIB 5960: 62 69 74 73 09 09 09 3d 20 61 76 69 54 57 4f 43 bits...= aviTWOC 5970: 43 21 28 27 64 27 2c 20 27 62 27 29 3b 0d 0a 63 C!('d', 'b');..c 5980: 6f 6e 73 74 20 63 6b 74 79 70 65 44 49 42 63 6f onst cktypeDIBco 5990: 6d 70 72 65 73 73 65 64 09 3d 20 61 76 69 54 57 mpressed.= aviTW 59a0: 4f 43 43 21 28 27 64 27 2c 20 27 63 27 29 3b 0d OCC!('d', 'c');. 59b0: 0a 63 6f 6e 73 74 20 63 6b 74 79 70 65 50 41 4c .const cktypePAL 59c0: 63 68 61 6e 67 65 09 09 3d 20 61 76 69 54 57 4f change..= aviTWO 59d0: 43 43 21 28 27 70 27 2c 20 27 63 27 29 3b 0d 0a CC!('p', 'c');.. 59e0: 63 6f 6e 73 74 20 63 6b 74 79 70 65 57 41 56 45 const cktypeWAVE 59f0: 62 79 74 65 73 09 09 3d 20 61 76 69 54 57 4f 43 bytes..= aviTWOC 5a00: 43 21 28 27 77 27 2c 20 27 62 27 29 3b 0d 0a 0d C!('w', 'b');... 5a10: 0a 63 6f 6e 73 74 20 63 6b 69 64 41 56 49 50 41 .const ckidAVIPA 5a20: 44 44 49 4e 47 09 09 3d 20 6d 6d 69 6f 46 4f 55 DDING..= mmioFOU 5a30: 52 43 43 21 28 27 4a 27 2c 20 27 55 27 2c 20 27 RCC!('J', 'U', ' 5a40: 4e 27 2c 20 27 4b 27 29 3b 0d 0a 0d 0a 44 57 4f N', 'K');....DWO 5a50: 52 44 20 46 72 6f 6d 48 65 78 28 63 68 61 72 20 RD FromHex(char 5a60: 6e 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 28 6e n) {...return (n 5a70: 20 3e 3d 20 27 41 27 29 20 3f 20 6e 20 2b 20 31 >= 'A') ? n + 1 5a80: 30 20 2d 20 27 41 27 20 3a 20 6e 20 2d 20 27 30 0 - 'A' : n - '0 5a90: 27 3b 0d 0a 7d 0d 0a 0d 0a 57 4f 52 44 20 53 74 ';..}....WORD St 5aa0: 72 65 61 6d 46 72 6f 6d 46 4f 55 52 43 43 28 44 reamFromFOURCC(D 5ab0: 57 4f 52 44 20 66 63 63 29 20 7b 0d 0a 09 72 65 WORD fcc) {...re 5ac0: 74 75 72 6e 20 63 61 73 74 28 57 4f 52 44 29 28 turn cast(WORD)( 5ad0: 28 46 72 6f 6d 48 65 78 28 4c 4f 42 59 54 45 28 (FromHex(LOBYTE( 5ae0: 4c 4f 57 4f 52 44 28 66 63 63 29 29 29 20 3c 3c LOWORD(fcc))) << 5af0: 20 34 29 20 2b 20 28 46 72 6f 6d 48 65 78 28 48 4) + (FromHex(H 5b00: 49 42 59 54 45 28 4c 4f 57 4f 52 44 28 66 63 63 IBYTE(LOWORD(fcc 5b10: 29 29 29 29 29 3b 0d 0a 7d 0d 0a 0d 0a 57 4f 52 )))));..}....WOR 5b20: 44 20 54 57 4f 43 43 46 72 6f 6d 46 4f 55 52 43 D TWOCCFromFOURC 5b30: 43 28 44 57 4f 52 44 20 66 63 63 29 20 7b 0d 0a C(DWORD fcc) {.. 5b40: 09 72 65 74 75 72 6e 20 48 49 57 4f 52 44 28 66 .return HIWORD(f 5b50: 63 63 29 3b 0d 0a 7d 0d 0a 0d 0a 42 59 54 45 20 cc);..}....BYTE 5b60: 54 6f 48 65 78 28 44 57 4f 52 44 20 6e 29 20 7b ToHex(DWORD n) { 5b70: 0d 0a 09 72 65 74 75 72 6e 20 63 61 73 74 28 42 ...return cast(B 5b80: 59 54 45 29 28 28 6e 20 3e 20 39 29 20 3f 20 6e YTE)((n > 9) ? n 5b90: 20 2d 20 31 30 20 2b 20 27 41 27 20 3a 20 6e 20 - 10 + 'A' : n 5ba0: 2b 20 27 30 27 29 3b 0d 0a 7d 0d 0a 0d 0a 44 57 + '0');..}....DW 5bb0: 4f 52 44 20 4d 41 4b 45 41 56 49 43 4b 49 44 28 ORD MAKEAVICKID( 5bc0: 57 4f 52 44 20 74 63 63 2c 20 57 4f 52 44 20 73 WORD tcc, WORD s 5bd0: 74 72 65 61 6d 29 20 7b 0d 0a 09 72 65 74 75 72 tream) {...retur 5be0: 6e 20 4d 41 4b 45 4c 4f 4e 47 28 63 61 73 74 28 n MAKELONG(cast( 5bf0: 57 4f 52 44 29 28 28 54 6f 48 65 78 28 73 74 72 WORD)((ToHex(str 5c00: 65 61 6d 20 26 20 30 78 30 66 29 20 3c 3c 20 38 eam & 0x0f) << 8 5c10: 29 20 7c 20 28 54 6f 48 65 78 28 28 73 74 72 65 ) | (ToHex((stre 5c20: 61 6d 20 26 20 30 78 66 30 29 20 3e 3e 20 34 29 am & 0xf0) >> 4) 5c30: 29 29 2c 20 74 63 63 29 3b 0d 0a 7d 0d 0a 0d 0a )), tcc);..}.... 5c40: 65 6e 75 6d 20 7b 0d 0a 09 41 56 49 46 5f 48 41 enum {...AVIF_HA 5c50: 53 49 4e 44 45 58 09 09 3d 20 30 78 30 30 30 30 SINDEX..= 0x0000 5c60: 30 30 31 30 2c 0d 0a 09 41 56 49 46 5f 4d 55 53 0010,...AVIF_MUS 5c70: 54 55 53 45 49 4e 44 45 58 09 3d 20 30 78 30 30 TUSEINDEX.= 0x00 5c80: 30 30 30 30 32 30 2c 0d 0a 09 41 56 49 46 5f 49 000020,...AVIF_I 5c90: 53 49 4e 54 45 52 4c 45 41 56 45 44 09 3d 20 30 SINTERLEAVED.= 0 5ca0: 78 30 30 30 30 30 31 30 30 2c 0d 0a 09 41 56 49 x00000100,...AVI 5cb0: 46 5f 57 41 53 43 41 50 54 55 52 45 46 49 4c 45 F_WASCAPTUREFILE 5cc0: 09 3d 20 30 78 30 30 30 31 30 30 30 30 2c 0d 0a .= 0x00010000,.. 5cd0: 09 41 56 49 46 5f 43 4f 50 59 52 49 47 48 54 45 .AVIF_COPYRIGHTE 5ce0: 44 09 3d 20 30 78 30 30 30 32 30 30 30 30 2c 0d D.= 0x00020000,. 5cf0: 0a 7d 0d 0a 0d 0a 63 6f 6e 73 74 20 41 56 49 5f .}....const AVI_ 5d00: 48 45 41 44 45 52 53 49 5a 45 20 3d 20 32 30 34 HEADERSIZE = 204 5d10: 38 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 4d 61 69 8;....struct Mai 5d20: 6e 41 56 49 48 65 61 64 65 72 20 7b 0d 0a 09 44 nAVIHeader {...D 5d30: 57 4f 52 44 20 64 77 4d 69 63 72 6f 53 65 63 50 WORD dwMicroSecP 5d40: 65 72 46 72 61 6d 65 3b 0d 0a 09 44 57 4f 52 44 erFrame;...DWORD 5d50: 20 64 77 4d 61 78 42 79 74 65 73 50 65 72 53 65 dwMaxBytesPerSe 5d60: 63 3b 0d 0a 09 44 57 4f 52 44 20 64 77 50 61 64 c;...DWORD dwPad 5d70: 64 69 6e 67 47 72 61 6e 75 6c 61 72 69 74 79 3b dingGranularity; 5d80: 0d 0a 09 44 57 4f 52 44 20 64 77 46 6c 61 67 73 ...DWORD dwFlags 5d90: 3b 0d 0a 09 44 57 4f 52 44 20 64 77 54 6f 74 61 ;...DWORD dwTota 5da0: 6c 46 72 61 6d 65 73 3b 0d 0a 09 44 57 4f 52 44 lFrames;...DWORD 5db0: 20 64 77 49 6e 69 74 69 61 6c 46 72 61 6d 65 73 dwInitialFrames 5dc0: 3b 0d 0a 09 44 57 4f 52 44 20 64 77 53 74 72 65 ;...DWORD dwStre 5dd0: 61 6d 73 3b 0d 0a 09 44 57 4f 52 44 20 64 77 53 ams;...DWORD dwS 5de0: 75 67 67 65 73 74 65 64 42 75 66 66 65 72 53 69 uggestedBufferSi 5df0: 7a 65 3b 0d 0a 09 44 57 4f 52 44 20 64 77 57 69 ze;...DWORD dwWi 5e00: 64 74 68 3b 0d 0a 09 44 57 4f 52 44 20 64 77 48 dth;...DWORD dwH 5e10: 65 69 67 68 74 3b 0d 0a 09 44 57 4f 52 44 5b 34 eight;...DWORD[4 5e20: 5d 20 64 77 52 65 73 65 72 76 65 64 3b 0d 0a 7d ] dwReserved;..} 5e30: 0d 0a 0d 0a 63 6f 6e 73 74 20 41 56 49 53 46 5f ....const AVISF_ 5e40: 44 49 53 41 42 4c 45 44 20 3d 20 30 78 30 30 30 DISABLED = 0x000 5e50: 30 30 30 30 31 3b 0d 0a 0d 0a 63 6f 6e 73 74 20 00001;....const 5e60: 41 56 49 53 46 5f 56 49 44 45 4f 5f 50 41 4c 43 AVISF_VIDEO_PALC 5e70: 48 41 4e 47 45 53 20 3d 20 30 78 30 30 30 31 30 HANGES = 0x00010 5e80: 30 30 30 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 41 000;....struct A 5e90: 56 49 53 74 72 65 61 6d 48 65 61 64 65 72 20 7b VIStreamHeader { 5ea0: 0d 0a 09 46 4f 55 52 43 43 09 09 66 63 63 54 79 ...FOURCC..fccTy 5eb0: 70 65 3b 0d 0a 09 46 4f 55 52 43 43 09 09 66 63 pe;...FOURCC..fc 5ec0: 63 48 61 6e 64 6c 65 72 3b 0d 0a 09 44 57 4f 52 cHandler;...DWOR 5ed0: 44 09 09 64 77 46 6c 61 67 73 3b 0d 0a 09 57 4f D..dwFlags;...WO 5ee0: 52 44 09 09 77 50 72 69 6f 72 69 74 79 3b 0d 0a RD..wPriority;.. 5ef0: 09 57 4f 52 44 09 09 77 4c 61 6e 67 75 61 67 65 .WORD..wLanguage 5f00: 3b 0d 0a 09 44 57 4f 52 44 09 09 64 77 49 6e 69 ;...DWORD..dwIni 5f10: 74 69 61 6c 46 72 61 6d 65 73 3b 0d 0a 09 44 57 tialFrames;...DW 5f20: 4f 52 44 09 09 64 77 53 63 61 6c 65 3b 09 0d 0a ORD..dwScale;... 5f30: 09 44 57 4f 52 44 09 09 64 77 52 61 74 65 3b 0d .DWORD..dwRate;. 5f40: 0a 09 44 57 4f 52 44 09 09 64 77 53 74 61 72 74 ..DWORD..dwStart 5f50: 3b 0d 0a 09 44 57 4f 52 44 09 09 64 77 4c 65 6e ;...DWORD..dwLen 5f60: 67 74 68 3b 0d 0a 09 44 57 4f 52 44 09 09 64 77 gth;...DWORD..dw 5f70: 53 75 67 67 65 73 74 65 64 42 75 66 66 65 72 53 SuggestedBufferS 5f80: 69 7a 65 3b 0d 0a 09 44 57 4f 52 44 09 09 64 77 ize;...DWORD..dw 5f90: 51 75 61 6c 69 74 79 3b 0d 0a 09 44 57 4f 52 44 Quality;...DWORD 5fa0: 09 09 64 77 53 61 6d 70 6c 65 53 69 7a 65 3b 0d ..dwSampleSize;. 5fb0: 0a 09 52 45 43 54 09 09 72 63 46 72 61 6d 65 3b ..RECT..rcFrame; 5fc0: 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 ..}....enum {... 5fd0: 41 56 49 49 46 5f 46 49 52 53 54 50 41 52 54 09 AVIIF_FIRSTPART. 5fe0: 3d 20 30 78 30 30 30 30 30 30 32 30 4c 2c 0d 0a = 0x00000020L,.. 5ff0: 09 41 56 49 49 46 5f 4c 41 53 54 50 41 52 54 09 .AVIIF_LASTPART. 6000: 3d 20 30 78 30 30 30 30 30 30 34 30 4c 2c 0d 0a = 0x00000040L,.. 6010: 09 41 56 49 49 46 5f 4d 49 44 50 41 52 54 09 3d .AVIIF_MIDPART.= 6020: 20 28 41 56 49 49 46 5f 4c 41 53 54 50 41 52 54 (AVIIF_LASTPART 6030: 7c 41 56 49 49 46 5f 46 49 52 53 54 50 41 52 54 |AVIIF_FIRSTPART 6040: 29 2c 0d 0a 09 41 56 49 49 46 5f 4e 4f 54 49 4d ),...AVIIF_NOTIM 6050: 45 09 3d 20 30 78 30 30 30 30 30 31 30 30 4c 2c E.= 0x00000100L, 6060: 0d 0a 09 41 56 49 49 46 5f 43 4f 4d 50 55 53 45 ...AVIIF_COMPUSE 6070: 09 3d 20 30 78 30 46 46 46 30 30 30 30 4c 2c 0d .= 0x0FFF0000L,. 6080: 0a 7d 0d 0a 0d 0a 73 74 72 75 63 74 20 41 56 49 .}....struct AVI 6090: 49 4e 44 45 58 45 4e 54 52 59 20 7b 0d 0a 09 44 INDEXENTRY {...D 60a0: 57 4f 52 44 09 09 63 6b 69 64 3b 0d 0a 09 44 57 WORD..ckid;...DW 60b0: 4f 52 44 09 09 64 77 46 6c 61 67 73 3b 0d 0a 09 ORD..dwFlags;... 60c0: 44 57 4f 52 44 09 09 64 77 43 68 75 6e 6b 4f 66 DWORD..dwChunkOf 60d0: 66 73 65 74 3b 0d 0a 09 44 57 4f 52 44 09 09 64 fset;...DWORD..d 60e0: 77 43 68 75 6e 6b 4c 65 6e 67 74 68 3b 0d 0a 7d wChunkLength;..} 60f0: 0d 0a 0d 0a 73 74 72 75 63 74 20 41 56 49 50 41 ....struct AVIPA 6100: 4c 43 48 41 4e 47 45 20 7b 0d 0a 09 42 59 54 45 LCHANGE {...BYTE 6110: 09 09 62 46 69 72 73 74 45 6e 74 72 79 3b 0d 0a ..bFirstEntry;.. 6120: 09 42 59 54 45 09 09 62 4e 75 6d 45 6e 74 72 69 .BYTE..bNumEntri 6130: 65 73 3b 0d 0a 09 57 4f 52 44 09 09 77 46 6c 61 es;...WORD..wFla 6140: 67 73 3b 0d 0a 09 50 41 4c 45 54 54 45 45 4e 54 gs;...PALETTEENT 6150: 52 59 5b 31 5d 09 5f 70 65 4e 65 77 3b 0d 0a 09 RY[1]._peNew;... 6160: 50 41 4c 45 54 54 45 45 4e 54 52 59 2a 20 70 65 PALETTEENTRY* pe 6170: 4e 65 77 28 29 20 7b 20 72 65 74 75 72 6e 20 5f New() { return _ 6180: 70 65 4e 65 77 2e 70 74 72 3b 20 7d 0d 0a 7d 0d peNew.ptr; }..}. 6190: 0a 0d 0a 63 6f 6e 73 74 20 41 56 49 47 45 54 46 ...const AVIGETF 61a0: 52 41 4d 45 46 5f 42 45 53 54 44 49 53 50 4c 41 RAMEF_BESTDISPLA 61b0: 59 46 4d 54 20 3d 20 31 3b 0d 0a 0d 0a 73 74 72 YFMT = 1;....str 61c0: 75 63 74 20 41 56 49 53 54 52 45 41 4d 49 4e 46 uct AVISTREAMINF 61d0: 4f 57 20 7b 0d 0a 09 44 57 4f 52 44 09 66 63 63 OW {...DWORD.fcc 61e0: 54 79 70 65 3b 0d 0a 09 44 57 4f 52 44 09 66 63 Type;...DWORD.fc 61f0: 63 48 61 6e 64 6c 65 72 3b 0d 0a 09 44 57 4f 52 cHandler;...DWOR 6200: 44 09 64 77 46 6c 61 67 73 3b 0d 0a 09 44 57 4f D.dwFlags;...DWO 6210: 52 44 09 64 77 43 61 70 73 3b 0d 0a 09 57 4f 52 RD.dwCaps;...WOR 6220: 44 09 77 50 72 69 6f 72 69 74 79 3b 0d 0a 09 57 D.wPriority;...W 6230: 4f 52 44 09 77 4c 61 6e 67 75 61 67 65 3b 0d 0a ORD.wLanguage;.. 6240: 09 44 57 4f 52 44 09 64 77 53 63 61 6c 65 3b 0d .DWORD.dwScale;. 6250: 0a 09 44 57 4f 52 44 09 64 77 52 61 74 65 3b 0d ..DWORD.dwRate;. 6260: 0a 09 44 57 4f 52 44 09 64 77 53 74 61 72 74 3b ..DWORD.dwStart; 6270: 0d 0a 09 44 57 4f 52 44 09 64 77 4c 65 6e 67 74 ...DWORD.dwLengt 6280: 68 3b 0d 0a 09 44 57 4f 52 44 09 64 77 49 6e 69 h;...DWORD.dwIni 6290: 74 69 61 6c 46 72 61 6d 65 73 3b 0d 0a 09 44 57 tialFrames;...DW 62a0: 4f 52 44 09 64 77 53 75 67 67 65 73 74 65 64 42 ORD.dwSuggestedB 62b0: 75 66 66 65 72 53 69 7a 65 3b 0d 0a 09 44 57 4f ufferSize;...DWO 62c0: 52 44 09 64 77 51 75 61 6c 69 74 79 3b 0d 0a 09 RD.dwQuality;... 62d0: 44 57 4f 52 44 09 64 77 53 61 6d 70 6c 65 53 69 DWORD.dwSampleSi 62e0: 7a 65 3b 0d 0a 09 52 45 43 54 09 72 63 46 72 61 ze;...RECT.rcFra 62f0: 6d 65 3b 0d 0a 09 44 57 4f 52 44 09 64 77 45 64 me;...DWORD.dwEd 6300: 69 74 43 6f 75 6e 74 3b 0d 0a 09 44 57 4f 52 44 itCount;...DWORD 6310: 09 64 77 46 6f 72 6d 61 74 43 68 61 6e 67 65 43 .dwFormatChangeC 6320: 6f 75 6e 74 3b 0d 0a 09 57 43 48 41 52 5b 36 34 ount;...WCHAR[64 6330: 5d 09 73 7a 4e 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c ].szName;..}..al 6340: 69 61 73 20 41 56 49 53 54 52 45 41 4d 49 4e 46 ias AVISTREAMINF 6350: 4f 57 2a 20 4c 50 41 56 49 53 54 52 45 41 4d 49 OW* LPAVISTREAMI 6360: 4e 46 4f 57 3b 0d 0a 0d 0a 73 74 72 75 63 74 20 NFOW;....struct 6370: 41 56 49 53 54 52 45 41 4d 49 4e 46 4f 41 20 7b AVISTREAMINFOA { 6380: 0d 0a 09 44 57 4f 52 44 09 66 63 63 54 79 70 65 ...DWORD.fccType 6390: 3b 0d 0a 09 44 57 4f 52 44 09 66 63 63 48 61 6e ;...DWORD.fccHan 63a0: 64 6c 65 72 3b 0d 0a 09 44 57 4f 52 44 09 64 77 dler;...DWORD.dw 63b0: 46 6c 61 67 73 3b 0d 0a 09 44 57 4f 52 44 09 64 Flags;...DWORD.d 63c0: 77 43 61 70 73 3b 0d 0a 09 57 4f 52 44 09 77 50 wCaps;...WORD.wP 63d0: 72 69 6f 72 69 74 79 3b 0d 0a 09 57 4f 52 44 09 riority;...WORD. 63e0: 77 4c 61 6e 67 75 61 67 65 3b 0d 0a 09 44 57 4f wLanguage;...DWO 63f0: 52 44 09 64 77 53 63 61 6c 65 3b 0d 0a 09 44 57 RD.dwScale;...DW 6400: 4f 52 44 09 64 77 52 61 74 65 3b 0d 0a 09 44 57 ORD.dwRate;...DW 6410: 4f 52 44 09 64 77 53 74 61 72 74 3b 0d 0a 09 44 ORD.dwStart;...D 6420: 57 4f 52 44 09 64 77 4c 65 6e 67 74 68 3b 0d 0a WORD.dwLength;.. 6430: 09 44 57 4f 52 44 09 64 77 49 6e 69 74 69 61 6c .DWORD.dwInitial 6440: 46 72 61 6d 65 73 3b 0d 0a 09 44 57 4f 52 44 09 Frames;...DWORD. 6450: 64 77 53 75 67 67 65 73 74 65 64 42 75 66 66 65 dwSuggestedBuffe 6460: 72 53 69 7a 65 3b 0d 0a 09 44 57 4f 52 44 09 64 rSize;...DWORD.d 6470: 77 51 75 61 6c 69 74 79 3b 0d 0a 09 44 57 4f 52 wQuality;...DWOR 6480: 44 09 64 77 53 61 6d 70 6c 65 53 69 7a 65 3b 0d D.dwSampleSize;. 6490: 0a 09 52 45 43 54 09 72 63 46 72 61 6d 65 3b 0d ..RECT.rcFrame;. 64a0: 0a 09 44 57 4f 52 44 09 64 77 45 64 69 74 43 6f ..DWORD.dwEditCo 64b0: 75 6e 74 3b 0d 0a 09 44 57 4f 52 44 09 64 77 46 unt;...DWORD.dwF 64c0: 6f 72 6d 61 74 43 68 61 6e 67 65 43 6f 75 6e 74 ormatChangeCount 64d0: 3b 0d 0a 09 63 68 61 72 5b 36 34 5d 09 73 7a 4e ;...char[64].szN 64e0: 61 6d 65 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 41 ame;..}..alias A 64f0: 56 49 53 54 52 45 41 4d 49 4e 46 4f 41 2a 20 4c VISTREAMINFOA* L 6500: 50 41 56 49 53 54 52 45 41 4d 49 4e 46 4f 41 3b PAVISTREAMINFOA; 6510: 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 6e 69 63 ....version(Unic 6520: 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20 41 ode) {...alias A 6530: 56 49 53 54 52 45 41 4d 49 4e 46 4f 57 09 41 56 VISTREAMINFOW.AV 6540: 49 53 54 52 45 41 4d 49 4e 46 4f 3b 0d 0a 09 61 ISTREAMINFO;...a 6550: 6c 69 61 73 20 4c 50 41 56 49 53 54 52 45 41 4d lias LPAVISTREAM 6560: 49 4e 46 4f 57 09 4c 50 41 56 49 53 54 52 45 41 INFOW.LPAVISTREA 6570: 4d 49 4e 46 4f 3b 0d 0a 7d 20 65 6c 73 65 20 7b MINFO;..} else { 6580: 20 2f 2f 20 55 6e 69 63 6f 64 65 0d 0a 09 61 6c // Unicode...al 6590: 69 61 73 20 41 56 49 53 54 52 45 41 4d 49 4e 46 ias AVISTREAMINF 65a0: 4f 41 09 41 56 49 53 54 52 45 41 4d 49 4e 46 4f OA.AVISTREAMINFO 65b0: 3b 0d 0a 09 61 6c 69 61 73 20 4c 50 41 56 49 53 ;...alias LPAVIS 65c0: 54 52 45 41 4d 49 4e 46 4f 41 09 4c 50 41 56 49 TREAMINFOA.LPAVI 65d0: 53 54 52 45 41 4d 49 4e 46 4f 3b 0d 0a 7d 0d 0a STREAMINFO;..}.. 65e0: 0d 0a 63 6f 6e 73 74 20 41 56 49 53 54 52 45 41 ..const AVISTREA 65f0: 4d 49 4e 46 4f 5f 44 49 53 41 42 4c 45 44 09 09 MINFO_DISABLED.. 6600: 3d 20 30 78 30 30 30 30 30 30 30 31 3b 0d 0a 63 = 0x00000001;..c 6610: 6f 6e 73 74 20 41 56 49 53 54 52 45 41 4d 49 4e onst AVISTREAMIN 6620: 46 4f 5f 46 4f 52 4d 41 54 43 48 41 4e 47 45 53 FO_FORMATCHANGES 6630: 09 3d 20 30 78 30 30 30 31 30 30 30 30 3b 0d 0a .= 0x00010000;.. 6640: 0d 0a 73 74 72 75 63 74 20 41 56 49 46 49 4c 45 ..struct AVIFILE 6650: 49 4e 46 4f 57 20 7b 0d 0a 09 44 57 4f 52 44 09 INFOW {...DWORD. 6660: 64 77 4d 61 78 42 79 74 65 73 50 65 72 53 65 63 dwMaxBytesPerSec 6670: 3b 0d 0a 09 44 57 4f 52 44 09 64 77 46 6c 61 67 ;...DWORD.dwFlag 6680: 73 3b 0d 0a 09 44 57 4f 52 44 09 64 77 43 61 70 s;...DWORD.dwCap 6690: 73 3b 0d 0a 09 44 57 4f 52 44 09 64 77 53 74 72 s;...DWORD.dwStr 66a0: 65 61 6d 73 3b 0d 0a 09 44 57 4f 52 44 09 64 77 eams;...DWORD.dw 66b0: 53 75 67 67 65 73 74 65 64 42 75 66 66 65 72 53 SuggestedBufferS 66c0: 69 7a 65 3b 0d 0a 09 44 57 4f 52 44 09 64 77 57 ize;...DWORD.dwW 66d0: 69 64 74 68 3b 0d 0a 09 44 57 4f 52 44 09 64 77 idth;...DWORD.dw 66e0: 48 65 69 67 68 74 3b 0d 0a 09 44 57 4f 52 44 09 Height;...DWORD. 66f0: 64 77 53 63 61 6c 65 3b 09 0d 0a 09 44 57 4f 52 dwScale;....DWOR 6700: 44 09 64 77 52 61 74 65 3b 0d 0a 09 44 57 4f 52 D.dwRate;...DWOR 6710: 44 09 64 77 4c 65 6e 67 74 68 3b 0d 0a 09 44 57 D.dwLength;...DW 6720: 4f 52 44 09 64 77 45 64 69 74 43 6f 75 6e 74 3b ORD.dwEditCount; 6730: 0d 0a 09 57 43 48 41 52 5b 36 34 5d 09 73 7a 46 ...WCHAR[64].szF 6740: 69 6c 65 54 79 70 65 3b 0d 0a 7d 0d 0a 61 6c 69 ileType;..}..ali 6750: 61 73 20 41 56 49 46 49 4c 45 49 4e 46 4f 57 2a as AVIFILEINFOW* 6760: 20 4c 50 41 56 49 46 49 4c 45 49 4e 46 4f 57 3b LPAVIFILEINFOW; 6770: 0d 0a 0d 0a 73 74 72 75 63 74 20 41 56 49 46 49 ....struct AVIFI 6780: 4c 45 49 4e 46 4f 41 20 7b 0d 0a 09 44 57 4f 52 LEINFOA {...DWOR 6790: 44 09 64 77 4d 61 78 42 79 74 65 73 50 65 72 53 D.dwMaxBytesPerS 67a0: 65 63 3b 0d 0a 09 44 57 4f 52 44 09 64 77 46 6c ec;...DWORD.dwFl 67b0: 61 67 73 3b 0d 0a 09 44 57 4f 52 44 09 64 77 43 ags;...DWORD.dwC 67c0: 61 70 73 3b 0d 0a 09 44 57 4f 52 44 09 64 77 53 aps;...DWORD.dwS 67d0: 74 72 65 61 6d 73 3b 0d 0a 09 44 57 4f 52 44 09 treams;...DWORD. 67e0: 64 77 53 75 67 67 65 73 74 65 64 42 75 66 66 65 dwSuggestedBuffe 67f0: 72 53 69 7a 65 3b 0d 0a 09 44 57 4f 52 44 09 64 rSize;...DWORD.d 6800: 77 57 69 64 74 68 3b 0d 0a 09 44 57 4f 52 44 09 wWidth;...DWORD. 6810: 64 77 48 65 69 67 68 74 3b 0d 0a 09 44 57 4f 52 dwHeight;...DWOR 6820: 44 09 64 77 53 63 61 6c 65 3b 09 0d 0a 09 44 57 D.dwScale;....DW 6830: 4f 52 44 09 64 77 52 61 74 65 3b 0d 0a 09 44 57 ORD.dwRate;...DW 6840: 4f 52 44 09 64 77 4c 65 6e 67 74 68 3b 0d 0a 09 ORD.dwLength;... 6850: 44 57 4f 52 44 09 64 77 45 64 69 74 43 6f 75 6e DWORD.dwEditCoun 6860: 74 3b 0d 0a 09 63 68 61 72 5b 36 34 5d 09 73 7a t;...char[64].sz 6870: 46 69 6c 65 54 79 70 65 3b 0d 0a 7d 0d 0a 61 6c FileType;..}..al 6880: 69 61 73 20 41 56 49 46 49 4c 45 49 4e 46 4f 41 ias AVIFILEINFOA 6890: 2a 20 4c 50 41 56 49 46 49 4c 45 49 4e 46 4f 41 * LPAVIFILEINFOA 68a0: 3b 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 6e 69 ;....version(Uni 68b0: 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20 code) {...alias 68c0: 41 56 49 46 49 4c 45 49 4e 46 4f 57 09 41 56 49 AVIFILEINFOW.AVI 68d0: 46 49 4c 45 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 FILEINFO;...alia 68e0: 73 20 4c 50 41 56 49 46 49 4c 45 49 4e 46 4f 57 s LPAVIFILEINFOW 68f0: 09 4c 50 41 56 49 46 49 4c 45 49 4e 46 4f 3b 0d .LPAVIFILEINFO;. 6900: 0a 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 55 6e 69 .} else { // Uni 6910: 63 6f 64 65 0d 0a 09 61 6c 69 61 73 20 41 56 49 code...alias AVI 6920: 46 49 4c 45 49 4e 46 4f 41 09 41 56 49 46 49 4c FILEINFOA.AVIFIL 6930: 45 49 4e 46 4f 3b 0d 0a 09 61 6c 69 61 73 20 4c EINFO;...alias L 6940: 50 41 56 49 46 49 4c 45 49 4e 46 4f 41 09 4c 50 PAVIFILEINFOA.LP 6950: 41 56 49 46 49 4c 45 49 4e 46 4f 3b 0d 0a 7d 0d AVIFILEINFO;..}. 6960: 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 41 56 49 46 ...enum {...AVIF 6970: 49 4c 45 49 4e 46 4f 5f 48 41 53 49 4e 44 45 58 ILEINFO_HASINDEX 6980: 09 09 3d 20 30 78 30 30 30 30 30 30 31 30 2c 0d ..= 0x00000010,. 6990: 0a 09 41 56 49 46 49 4c 45 49 4e 46 4f 5f 4d 55 ..AVIFILEINFO_MU 69a0: 53 54 55 53 45 49 4e 44 45 58 09 3d 20 30 78 30 STUSEINDEX.= 0x0 69b0: 30 30 30 30 30 32 30 2c 0d 0a 09 41 56 49 46 49 0000020,...AVIFI 69c0: 4c 45 49 4e 46 4f 5f 49 53 49 4e 54 45 52 4c 45 LEINFO_ISINTERLE 69d0: 41 56 45 44 09 3d 20 30 78 30 30 30 30 30 31 30 AVED.= 0x0000010 69e0: 30 2c 0d 0a 09 41 56 49 46 49 4c 45 49 4e 46 4f 0,...AVIFILEINFO 69f0: 5f 57 41 53 43 41 50 54 55 52 45 46 49 4c 45 09 _WASCAPTUREFILE. 6a00: 3d 20 30 78 30 30 30 31 30 30 30 30 2c 0d 0a 09 = 0x00010000,... 6a10: 41 56 49 46 49 4c 45 49 4e 46 4f 5f 43 4f 50 59 AVIFILEINFO_COPY 6a20: 52 49 47 48 54 45 44 09 09 3d 20 30 78 30 30 30 RIGHTED..= 0x000 6a30: 32 30 30 30 30 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 20000,..}....enu 6a40: 6d 20 7b 0d 0a 09 41 56 49 46 49 4c 45 43 41 50 m {...AVIFILECAP 6a50: 53 5f 43 41 4e 52 45 41 44 09 09 09 3d 20 30 78 S_CANREAD...= 0x 6a60: 30 30 30 30 30 30 30 31 2c 0d 0a 09 41 56 49 46 00000001,...AVIF 6a70: 49 4c 45 43 41 50 53 5f 43 41 4e 57 52 49 54 45 ILECAPS_CANWRITE 6a80: 09 09 3d 20 30 78 30 30 30 30 30 30 30 32 2c 0d ..= 0x00000002,. 6a90: 0a 09 41 56 49 46 49 4c 45 43 41 50 53 5f 41 4c ..AVIFILECAPS_AL 6aa0: 4c 4b 45 59 46 52 41 4d 45 53 09 3d 20 30 78 30 LKEYFRAMES.= 0x0 6ab0: 30 30 30 30 30 31 30 2c 0d 0a 09 41 56 49 46 49 0000010,...AVIFI 6ac0: 4c 45 43 41 50 53 5f 4e 4f 43 4f 4d 50 52 45 53 LECAPS_NOCOMPRES 6ad0: 53 49 4f 4e 09 3d 20 30 78 30 30 30 30 30 30 32 SION.= 0x0000002 6ae0: 30 2c 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 6e 20 0,..}....extern 6af0: 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 61 6c (Windows) {...al 6b00: 69 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f ias BOOL functio 6b10: 6e 28 69 6e 74 29 20 41 56 49 53 41 56 45 43 41 n(int) AVISAVECA 6b20: 4c 4c 42 41 43 4b 3b 0d 0a 7d 0d 0a 0d 0a 73 74 LLBACK;..}....st 6b30: 72 75 63 74 20 41 56 49 43 4f 4d 50 52 45 53 53 ruct AVICOMPRESS 6b40: 4f 50 54 49 4f 4e 53 20 7b 0d 0a 09 44 57 4f 52 OPTIONS {...DWOR 6b50: 44 09 66 63 63 54 79 70 65 3b 0d 0a 09 44 57 4f D.fccType;...DWO 6b60: 52 44 09 66 63 63 48 61 6e 64 6c 65 72 3b 0d 0a RD.fccHandler;.. 6b70: 09 44 57 4f 52 44 09 64 77 4b 65 79 46 72 61 6d .DWORD.dwKeyFram 6b80: 65 45 76 65 72 79 3b 0d 0a 09 44 57 4f 52 44 09 eEvery;...DWORD. 6b90: 64 77 51 75 61 6c 69 74 79 3b 0d 0a 09 44 57 4f dwQuality;...DWO 6ba0: 52 44 09 64 77 42 79 74 65 73 50 65 72 53 65 63 RD.dwBytesPerSec 6bb0: 6f 6e 64 3b 0d 0a 09 44 57 4f 52 44 09 64 77 46 ond;...DWORD.dwF 6bc0: 6c 61 67 73 3b 0d 0a 09 4c 50 56 4f 49 44 09 6c lags;...LPVOID.l 6bd0: 70 46 6f 72 6d 61 74 3b 0d 0a 09 44 57 4f 52 44 pFormat;...DWORD 6be0: 09 63 62 46 6f 72 6d 61 74 3b 0d 0a 09 4c 50 56 .cbFormat;...LPV 6bf0: 4f 49 44 09 6c 70 50 61 72 6d 73 3b 0d 0a 09 44 OID.lpParms;...D 6c00: 57 4f 52 44 09 63 62 50 61 72 6d 73 3b 0d 0a 09 WORD.cbParms;... 6c10: 44 57 4f 52 44 09 64 77 49 6e 74 65 72 6c 65 61 DWORD.dwInterlea 6c20: 76 65 45 76 65 72 79 3b 0d 0a 7d 0d 0a 61 6c 69 veEvery;..}..ali 6c30: 61 73 20 41 56 49 43 4f 4d 50 52 45 53 53 4f 50 as AVICOMPRESSOP 6c40: 54 49 4f 4e 53 2a 20 4c 50 41 56 49 43 4f 4d 50 TIONS* LPAVICOMP 6c50: 52 45 53 53 4f 50 54 49 4f 4e 53 3b 0d 0a 0d 0a RESSOPTIONS;.... 6c60: 65 6e 75 6d 20 7b 0d 0a 09 41 56 49 43 4f 4d 50 enum {...AVICOMP 6c70: 52 45 53 53 46 5f 49 4e 54 45 52 4c 45 41 56 45 RESSF_INTERLEAVE 6c80: 09 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d 0a .= 0x00000001,.. 6c90: 09 41 56 49 43 4f 4d 50 52 45 53 53 46 5f 44 41 .AVICOMPRESSF_DA 6ca0: 54 41 52 41 54 45 09 3d 20 30 78 30 30 30 30 30 TARATE.= 0x00000 6cb0: 30 30 32 2c 0d 0a 09 41 56 49 43 4f 4d 50 52 45 002,...AVICOMPRE 6cc0: 53 53 46 5f 4b 45 59 46 52 41 4d 45 53 09 3d 20 SSF_KEYFRAMES.= 6cd0: 30 78 30 30 30 30 30 30 30 34 2c 0d 0a 09 41 56 0x00000004,...AV 6ce0: 49 43 4f 4d 50 52 45 53 53 46 5f 56 41 4c 49 44 ICOMPRESSF_VALID 6cf0: 09 09 3d 20 30 78 30 30 30 30 30 30 30 38 2c 0d ..= 0x00000008,. 6d00: 0a 7d 0d 0a 0d 0a 2f 2b 20 54 4f 44 4f 3a 0d 0a .}..../+ TODO:.. 6d10: 44 45 43 4c 41 52 45 5f 49 4e 54 45 52 46 41 43 DECLARE_INTERFAC 6d20: 45 5f 28 49 41 56 49 53 74 72 65 61 6d 2c 20 49 E_(IAVIStream, I 6d30: 55 6e 6b 6e 6f 77 6e 29 0d 0a 7b 0d 0a 20 20 20 Unknown)..{.. 6d40: 20 53 54 44 4d 45 54 48 4f 44 28 51 75 65 72 79 STDMETHOD(Query 6d50: 49 6e 74 65 72 66 61 63 65 29 20 28 54 48 49 53 Interface) (THIS 6d60: 5f 20 52 45 46 49 49 44 20 72 69 69 64 2c 20 4c _ REFIID riid, L 6d70: 50 56 4f 49 44 20 46 41 52 2a 20 70 70 76 4f 62 PVOID FAR* ppvOb 6d80: 6a 29 20 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 j) PURE;.. ST 6d90: 44 4d 45 54 48 4f 44 5f 28 55 4c 4f 4e 47 2c 41 DMETHOD_(ULONG,A 6da0: 64 64 52 65 66 29 20 28 54 48 49 53 29 20 20 50 ddRef) (THIS) P 6db0: 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 URE;.. STDMET 6dc0: 48 4f 44 5f 28 55 4c 4f 4e 47 2c 52 65 6c 65 61 HOD_(ULONG,Relea 6dd0: 73 65 29 20 28 54 48 49 53 29 20 50 55 52 45 3b se) (THIS) PURE; 6de0: 0d 0a 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 4f .... STDMETHO 6df0: 44 28 43 72 65 61 74 65 29 20 20 20 20 20 20 28 D(Create) ( 6e00: 54 48 49 53 5f 20 4c 50 41 52 41 4d 20 6c 50 61 THIS_ LPARAM lPa 6e10: 72 61 6d 31 2c 20 4c 50 41 52 41 4d 20 6c 50 61 ram1, LPARAM lPa 6e20: 72 61 6d 32 29 20 50 55 52 45 20 3b 0d 0a 20 20 ram2) PURE ;.. 6e30: 20 20 53 54 44 4d 45 54 48 4f 44 28 49 6e 66 6f STDMETHOD(Info 6e40: 29 20 20 20 20 20 20 20 20 28 54 48 49 53 5f 20 ) (THIS_ 6e50: 41 56 49 53 54 52 45 41 4d 49 4e 46 4f 57 20 46 AVISTREAMINFOW F 6e60: 41 52 20 2a 20 70 73 69 2c 20 4c 4f 4e 47 20 6c AR * psi, LONG l 6e70: 53 69 7a 65 29 20 50 55 52 45 20 3b 0d 0a 20 20 Size) PURE ;.. 6e80: 20 20 53 54 44 4d 45 54 48 4f 44 5f 28 4c 4f 4e STDMETHOD_(LON 6e90: 47 2c 20 46 69 6e 64 53 61 6d 70 6c 65 29 28 54 G, FindSample)(T 6ea0: 48 49 53 5f 20 4c 4f 4e 47 20 6c 50 6f 73 2c 20 HIS_ LONG lPos, 6eb0: 4c 4f 4e 47 20 6c 46 6c 61 67 73 29 20 50 55 52 LONG lFlags) PUR 6ec0: 45 20 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 E ;.. STDMETH 6ed0: 4f 44 28 52 65 61 64 46 6f 72 6d 61 74 29 20 20 OD(ReadFormat) 6ee0: 28 54 48 49 53 5f 20 4c 4f 4e 47 20 6c 50 6f 73 (THIS_ LONG lPos 6ef0: 2c 0d 0a 09 09 09 20 20 20 20 4c 50 56 4f 49 44 ,..... LPVOID 6f00: 20 6c 70 46 6f 72 6d 61 74 2c 20 4c 4f 4e 47 20 lpFormat, LONG 6f10: 46 41 52 20 2a 6c 70 63 62 46 6f 72 6d 61 74 29 FAR *lpcbFormat) 6f20: 20 50 55 52 45 20 3b 0d 0a 20 20 20 20 53 54 44 PURE ;.. STD 6f30: 4d 45 54 48 4f 44 28 53 65 74 46 6f 72 6d 61 74 METHOD(SetFormat 6f40: 29 20 20 20 28 54 48 49 53 5f 20 4c 4f 4e 47 20 ) (THIS_ LONG 6f50: 6c 50 6f 73 2c 0d 0a 09 09 09 20 20 20 20 4c 50 lPos,..... LP 6f60: 56 4f 49 44 20 6c 70 46 6f 72 6d 61 74 2c 20 4c VOID lpFormat, L 6f70: 4f 4e 47 20 63 62 46 6f 72 6d 61 74 29 20 50 55 ONG cbFormat) PU 6f80: 52 45 20 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 RE ;.. STDMET 6f90: 48 4f 44 28 52 65 61 64 29 20 20 20 20 20 20 20 HOD(Read) 6fa0: 20 28 54 48 49 53 5f 20 4c 4f 4e 47 20 6c 53 74 (THIS_ LONG lSt 6fb0: 61 72 74 2c 20 4c 4f 4e 47 20 6c 53 61 6d 70 6c art, LONG lSampl 6fc0: 65 73 2c 0d 0a 09 09 09 20 20 20 20 4c 50 56 4f es,..... LPVO 6fd0: 49 44 20 6c 70 42 75 66 66 65 72 2c 20 4c 4f 4e ID lpBuffer, LON 6fe0: 47 20 63 62 42 75 66 66 65 72 2c 0d 0a 09 09 09 G cbBuffer,..... 6ff0: 20 20 20 20 4c 4f 4e 47 20 46 41 52 20 2a 20 70 LONG FAR * p 7000: 6c 42 79 74 65 73 2c 20 4c 4f 4e 47 20 46 41 52 lBytes, LONG FAR 7010: 20 2a 20 70 6c 53 61 6d 70 6c 65 73 29 20 50 55 * plSamples) PU 7020: 52 45 20 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 RE ;.. STDMET 7030: 48 4f 44 28 57 72 69 74 65 29 20 20 20 20 20 20 HOD(Write) 7040: 20 28 54 48 49 53 5f 20 4c 4f 4e 47 20 6c 53 74 (THIS_ LONG lSt 7050: 61 72 74 2c 20 4c 4f 4e 47 20 6c 53 61 6d 70 6c art, LONG lSampl 7060: 65 73 2c 0d 0a 09 09 09 20 20 20 20 4c 50 56 4f es,..... LPVO 7070: 49 44 20 6c 70 42 75 66 66 65 72 2c 20 4c 4f 4e ID lpBuffer, LON 7080: 47 20 63 62 42 75 66 66 65 72 2c 0d 0a 09 09 09 G cbBuffer,..... 7090: 20 20 20 20 44 57 4f 52 44 20 64 77 46 6c 61 67 DWORD dwFlag 70a0: 73 2c 0d 0a 09 09 09 20 20 20 20 4c 4f 4e 47 20 s,..... LONG 70b0: 46 41 52 20 2a 70 6c 53 61 6d 70 57 72 69 74 74 FAR *plSampWritt 70c0: 65 6e 2c 0d 0a 09 09 09 20 20 20 20 4c 4f 4e 47 en,..... LONG 70d0: 20 46 41 52 20 2a 70 6c 42 79 74 65 73 57 72 69 FAR *plBytesWri 70e0: 74 74 65 6e 29 20 50 55 52 45 20 3b 0d 0a 20 20 tten) PURE ;.. 70f0: 20 20 53 54 44 4d 45 54 48 4f 44 28 44 65 6c 65 STDMETHOD(Dele 7100: 74 65 29 20 20 20 20 20 20 28 54 48 49 53 5f 20 te) (THIS_ 7110: 4c 4f 4e 47 20 6c 53 74 61 72 74 2c 20 4c 4f 4e LONG lStart, LON 7120: 47 20 6c 53 61 6d 70 6c 65 73 29 20 50 55 52 45 G lSamples) PURE 7130: 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 4f 44 ;.. STDMETHOD 7140: 28 52 65 61 64 44 61 74 61 29 20 20 20 20 28 54 (ReadData) (T 7150: 48 49 53 5f 20 44 57 4f 52 44 20 66 63 63 2c 20 HIS_ DWORD fcc, 7160: 4c 50 56 4f 49 44 20 6c 70 2c 20 4c 4f 4e 47 20 LPVOID lp, LONG 7170: 46 41 52 20 2a 6c 70 63 62 29 20 50 55 52 45 20 FAR *lpcb) PURE 7180: 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 4f 44 ;.. STDMETHOD 7190: 28 57 72 69 74 65 44 61 74 61 29 20 20 20 28 54 (WriteData) (T 71a0: 48 49 53 5f 20 44 57 4f 52 44 20 66 63 63 2c 20 HIS_ DWORD fcc, 71b0: 4c 50 56 4f 49 44 20 6c 70 2c 20 4c 4f 4e 47 20 LPVOID lp, LONG 71c0: 63 62 29 20 50 55 52 45 20 3b 0d 0a 23 69 66 64 cb) PURE ;..#ifd 71d0: 65 66 20 5f 57 49 4e 33 32 0d 0a 20 20 20 20 53 ef _WIN32.. S 71e0: 54 44 4d 45 54 48 4f 44 28 53 65 74 49 6e 66 6f TDMETHOD(SetInfo 71f0: 29 20 28 54 48 49 53 5f 20 41 56 49 53 54 52 45 ) (THIS_ AVISTRE 7200: 41 4d 49 4e 46 4f 57 20 46 41 52 20 2a 20 6c 70 AMINFOW FAR * lp 7210: 49 6e 66 6f 2c 0d 0a 09 09 09 20 20 20 20 4c 4f Info,..... LO 7220: 4e 47 20 63 62 49 6e 66 6f 29 20 50 55 52 45 3b NG cbInfo) PURE; 7230: 0d 0a 23 65 6c 73 65 0d 0a 20 20 20 20 53 54 44 ..#else.. STD 7240: 4d 45 54 48 4f 44 28 52 65 73 65 72 76 65 64 31 METHOD(Reserved1 7250: 29 20 20 20 20 20 20 20 20 20 20 20 20 28 54 48 ) (TH 7260: 49 53 29 20 50 55 52 45 3b 0d 0a 20 20 20 20 53 IS) PURE;.. S 7270: 54 44 4d 45 54 48 4f 44 28 52 65 73 65 72 76 65 TDMETHOD(Reserve 7280: 64 32 29 20 20 20 20 20 20 20 20 20 20 20 20 28 d2) ( 7290: 54 48 49 53 29 20 50 55 52 45 3b 0d 0a 20 20 20 THIS) PURE;.. 72a0: 20 53 54 44 4d 45 54 48 4f 44 28 52 65 73 65 72 STDMETHOD(Reser 72b0: 76 65 64 33 29 20 20 20 20 20 20 20 20 20 20 20 ved3) 72c0: 20 28 54 48 49 53 29 20 50 55 52 45 3b 0d 0a 20 (THIS) PURE;.. 72d0: 20 20 20 53 54 44 4d 45 54 48 4f 44 28 52 65 73 STDMETHOD(Res 72e0: 65 72 76 65 64 34 29 20 20 20 20 20 20 20 20 20 erved4) 72f0: 20 20 20 28 54 48 49 53 29 20 50 55 52 45 3b 0d (THIS) PURE;. 7300: 0a 20 20 20 20 53 54 44 4d 45 54 48 4f 44 28 52 . STDMETHOD(R 7310: 65 73 65 72 76 65 64 35 29 20 20 20 20 20 20 20 eserved5) 7320: 20 20 20 20 20 28 54 48 49 53 29 20 50 55 52 45 (THIS) PURE 7330: 3b 0d 0a 23 65 6e 64 69 66 0d 0a 7d 3b 0d 0a 0d ;..#endif..};... 7340: 0a 61 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 .alias TypeDef!( 7350: 49 41 56 49 53 74 72 65 61 6d 20 46 41 52 2a 29 IAVIStream FAR*) 7360: 20 50 41 56 49 53 54 52 45 41 4d 3b 0d 0a 0d 0a PAVISTREAM;.... 7370: 23 75 6e 64 65 66 20 20 49 4e 54 45 52 46 41 43 #undef INTERFAC 7380: 45 0d 0a 23 64 65 66 69 6e 65 20 49 4e 54 45 52 E..#define INTER 7390: 46 41 43 45 20 20 20 49 41 56 49 53 74 72 65 61 FACE IAVIStrea 73a0: 6d 69 6e 67 0d 0a 0d 0a 44 45 43 4c 41 52 45 5f ming....DECLARE_ 73b0: 49 4e 54 45 52 46 41 43 45 5f 28 49 41 56 49 53 INTERFACE_(IAVIS 73c0: 74 72 65 61 6d 69 6e 67 2c 20 49 55 6e 6b 6e 6f treaming, IUnkno 73d0: 77 6e 29 0d 0a 7b 0d 0a 20 20 20 20 53 54 44 4d wn)..{.. STDM 73e0: 45 54 48 4f 44 28 51 75 65 72 79 49 6e 74 65 72 ETHOD(QueryInter 73f0: 66 61 63 65 29 20 28 54 48 49 53 5f 20 52 45 46 face) (THIS_ REF 7400: 49 49 44 20 72 69 69 64 2c 20 4c 50 56 4f 49 44 IID riid, LPVOID 7410: 20 46 41 52 2a 20 70 70 76 4f 62 6a 29 20 50 55 FAR* ppvObj) PU 7420: 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 RE;.. STDMETH 7430: 4f 44 5f 28 55 4c 4f 4e 47 2c 41 64 64 52 65 66 OD_(ULONG,AddRef 7440: 29 20 28 54 48 49 53 29 20 20 50 55 52 45 3b 0d ) (THIS) PURE;. 7450: 0a 20 20 20 20 53 54 44 4d 45 54 48 4f 44 5f 28 . STDMETHOD_( 7460: 55 4c 4f 4e 47 2c 52 65 6c 65 61 73 65 29 20 28 ULONG,Release) ( 7470: 54 48 49 53 29 20 50 55 52 45 3b 0d 0a 0d 0a 20 THIS) PURE;.... 7480: 20 20 20 53 54 44 4d 45 54 48 4f 44 28 42 65 67 STDMETHOD(Beg 7490: 69 6e 29 20 28 54 48 49 53 5f 0d 0a 09 09 20 20 in) (THIS_.... 74a0: 20 20 20 20 4c 4f 4e 47 20 20 6c 53 74 61 72 74 LONG lStart 74b0: 2c 0d 0a 09 09 20 20 20 20 20 20 4c 4f 4e 47 20 ,.... LONG 74c0: 20 6c 45 6e 64 2c 0d 0a 09 09 20 20 20 20 20 20 lEnd,.... 74d0: 4c 4f 4e 47 20 20 6c 52 61 74 65 29 20 50 55 52 LONG lRate) PUR 74e0: 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 4f E;.. STDMETHO 74f0: 44 28 45 6e 64 29 20 20 20 28 54 48 49 53 29 20 D(End) (THIS) 7500: 50 55 52 45 3b 0d 0a 7d 3b 0d 0a 0d 0a 61 6c 69 PURE;..};....ali 7510: 61 73 20 54 79 70 65 44 65 66 21 28 49 41 56 49 as TypeDef!(IAVI 7520: 53 74 72 65 61 6d 69 6e 67 20 46 41 52 2a 29 20 Streaming FAR*) 7530: 50 41 56 49 53 54 52 45 41 4d 49 4e 47 3b 0d 0a PAVISTREAMING;.. 7540: 0d 0a 0d 0a 23 75 6e 64 65 66 20 20 49 4e 54 45 ....#undef INTE 7550: 52 46 41 43 45 0d 0a 23 64 65 66 69 6e 65 20 49 RFACE..#define I 7560: 4e 54 45 52 46 41 43 45 20 20 20 49 41 56 49 45 NTERFACE IAVIE 7570: 64 69 74 53 74 72 65 61 6d 0d 0a 0d 0a 44 45 43 ditStream....DEC 7580: 4c 41 52 45 5f 49 4e 54 45 52 46 41 43 45 5f 28 LARE_INTERFACE_( 7590: 49 41 56 49 45 64 69 74 53 74 72 65 61 6d 2c 20 IAVIEditStream, 75a0: 49 55 6e 6b 6e 6f 77 6e 29 0d 0a 7b 0d 0a 20 20 IUnknown)..{.. 75b0: 20 20 53 54 44 4d 45 54 48 4f 44 28 51 75 65 72 STDMETHOD(Quer 75c0: 79 49 6e 74 65 72 66 61 63 65 29 20 28 54 48 49 yInterface) (THI 75d0: 53 5f 20 52 45 46 49 49 44 20 72 69 69 64 2c 20 S_ REFIID riid, 75e0: 4c 50 56 4f 49 44 20 46 41 52 2a 20 70 70 76 4f LPVOID FAR* ppvO 75f0: 62 6a 29 20 50 55 52 45 3b 0d 0a 20 20 20 20 53 bj) PURE;.. S 7600: 54 44 4d 45 54 48 4f 44 5f 28 55 4c 4f 4e 47 2c TDMETHOD_(ULONG, 7610: 41 64 64 52 65 66 29 20 28 54 48 49 53 29 20 20 AddRef) (THIS) 7620: 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 PURE;.. STDME 7630: 54 48 4f 44 5f 28 55 4c 4f 4e 47 2c 52 65 6c 65 THOD_(ULONG,Rele 7640: 61 73 65 29 20 28 54 48 49 53 29 20 50 55 52 45 ase) (THIS) PURE 7650: 3b 0d 0a 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 ;.... STDMETH 7660: 4f 44 28 43 75 74 29 20 28 54 48 49 53 5f 20 4c OD(Cut) (THIS_ L 7670: 4f 4e 47 20 46 41 52 20 2a 70 6c 53 74 61 72 74 ONG FAR *plStart 7680: 2c 0d 0a 09 09 09 20 20 4c 4f 4e 47 20 46 41 52 ,..... LONG FAR 7690: 20 2a 70 6c 4c 65 6e 67 74 68 2c 0d 0a 09 09 09 *plLength,..... 76a0: 20 20 50 41 56 49 53 54 52 45 41 4d 20 46 41 52 PAVISTREAM FAR 76b0: 20 2a 20 70 70 52 65 73 75 6c 74 29 20 50 55 52 * ppResult) PUR 76c0: 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 4f E;.. STDMETHO 76d0: 44 28 43 6f 70 79 29 20 28 54 48 49 53 5f 20 4c D(Copy) (THIS_ L 76e0: 4f 4e 47 20 46 41 52 20 2a 70 6c 53 74 61 72 74 ONG FAR *plStart 76f0: 2c 0d 0a 09 09 09 20 20 20 4c 4f 4e 47 20 46 41 ,..... LONG FA 7700: 52 20 2a 70 6c 4c 65 6e 67 74 68 2c 0d 0a 09 09 R *plLength,.... 7710: 09 20 20 20 50 41 56 49 53 54 52 45 41 4d 20 46 . PAVISTREAM F 7720: 41 52 20 2a 20 70 70 52 65 73 75 6c 74 29 20 50 AR * ppResult) P 7730: 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 URE;.. STDMET 7740: 48 4f 44 28 50 61 73 74 65 29 20 28 54 48 49 53 HOD(Paste) (THIS 7750: 5f 20 4c 4f 4e 47 20 46 41 52 20 2a 70 6c 50 6f _ LONG FAR *plPo 7760: 73 2c 0d 0a 09 09 09 20 20 20 20 4c 4f 4e 47 20 s,..... LONG 7770: 46 41 52 20 2a 70 6c 4c 65 6e 67 74 68 2c 0d 0a FAR *plLength,.. 7780: 09 09 09 20 20 20 20 50 41 56 49 53 54 52 45 41 ... PAVISTREA 7790: 4d 20 70 73 74 72 65 61 6d 2c 0d 0a 09 09 09 20 M pstream,..... 77a0: 20 20 20 4c 4f 4e 47 20 6c 53 74 61 72 74 2c 0d LONG lStart,. 77b0: 0a 09 09 09 20 20 20 20 4c 4f 4e 47 20 6c 45 6e .... LONG lEn 77c0: 64 29 20 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 d) PURE;.. ST 77d0: 44 4d 45 54 48 4f 44 28 43 6c 6f 6e 65 29 20 28 DMETHOD(Clone) ( 77e0: 54 48 49 53 5f 20 50 41 56 49 53 54 52 45 41 4d THIS_ PAVISTREAM 77f0: 20 46 41 52 20 2a 70 70 52 65 73 75 6c 74 29 20 FAR *ppResult) 7800: 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 PURE;.. STDME 7810: 54 48 4f 44 28 53 65 74 49 6e 66 6f 29 20 28 54 THOD(SetInfo) (T 7820: 48 49 53 5f 20 41 56 49 53 54 52 45 41 4d 49 4e HIS_ AVISTREAMIN 7830: 46 4f 57 20 46 41 52 20 2a 20 6c 70 49 6e 66 6f FOW FAR * lpInfo 7840: 2c 0d 0a 09 09 09 20 20 20 20 4c 4f 4e 47 20 63 ,..... LONG c 7850: 62 49 6e 66 6f 29 20 50 55 52 45 3b 0d 0a 7d 3b bInfo) PURE;..}; 7860: 0d 0a 0d 0a 61 6c 69 61 73 20 54 79 70 65 44 65 ....alias TypeDe 7870: 66 21 28 49 41 56 49 45 64 69 74 53 74 72 65 61 f!(IAVIEditStrea 7880: 6d 20 46 41 52 2a 29 20 50 41 56 49 45 44 49 54 m FAR*) PAVIEDIT 7890: 53 54 52 45 41 4d 3b 0d 0a 0d 0a 23 75 6e 64 65 STREAM;....#unde 78a0: 66 20 20 49 4e 54 45 52 46 41 43 45 0d 0a 23 64 f INTERFACE..#d 78b0: 65 66 69 6e 65 20 49 4e 54 45 52 46 41 43 45 20 efine INTERFACE 78c0: 20 20 49 41 56 49 50 65 72 73 69 73 74 46 69 6c IAVIPersistFil 78d0: 65 0d 0a 0d 0a 44 45 43 4c 41 52 45 5f 49 4e 54 e....DECLARE_INT 78e0: 45 52 46 41 43 45 5f 28 49 41 56 49 50 65 72 73 ERFACE_(IAVIPers 78f0: 69 73 74 46 69 6c 65 2c 20 49 50 65 72 73 69 73 istFile, IPersis 7900: 74 46 69 6c 65 29 0d 0a 7b 0d 0a 20 20 20 20 53 tFile)..{.. S 7910: 54 44 4d 45 54 48 4f 44 28 52 65 73 65 72 76 65 TDMETHOD(Reserve 7920: 64 31 29 28 54 48 49 53 29 20 50 55 52 45 3b 0d d1)(THIS) PURE;. 7930: 0a 7d 3b 0d 0a 0d 0a 61 6c 69 61 73 20 54 79 70 .};....alias Typ 7940: 65 44 65 66 21 28 49 41 56 49 50 65 72 73 69 73 eDef!(IAVIPersis 7950: 74 46 69 6c 65 20 46 41 52 2a 29 20 50 41 56 49 tFile FAR*) PAVI 7960: 50 45 52 53 49 53 54 46 49 4c 45 3b 0d 0a 0d 0a PERSISTFILE;.... 7970: 23 75 6e 64 65 66 20 20 49 4e 54 45 52 46 41 43 #undef INTERFAC 7980: 45 0d 0a 23 64 65 66 69 6e 65 20 49 4e 54 45 52 E..#define INTER 7990: 46 41 43 45 20 20 20 49 41 56 49 46 69 6c 65 0d FACE IAVIFile. 79a0: 0a 23 64 65 66 69 6e 65 20 50 41 56 49 46 49 4c .#define PAVIFIL 79b0: 45 20 49 41 56 49 46 69 6c 65 20 46 41 52 2a 0d E IAVIFile FAR*. 79c0: 0a 0d 0a 44 45 43 4c 41 52 45 5f 49 4e 54 45 52 ...DECLARE_INTER 79d0: 46 41 43 45 5f 28 49 41 56 49 46 69 6c 65 2c 20 FACE_(IAVIFile, 79e0: 49 55 6e 6b 6e 6f 77 6e 29 0d 0a 7b 0d 0a 20 20 IUnknown)..{.. 79f0: 20 20 53 54 44 4d 45 54 48 4f 44 28 51 75 65 72 STDMETHOD(Quer 7a00: 79 49 6e 74 65 72 66 61 63 65 29 20 28 54 48 49 yInterface) (THI 7a10: 53 5f 20 52 45 46 49 49 44 20 72 69 69 64 2c 20 S_ REFIID riid, 7a20: 4c 50 56 4f 49 44 20 46 41 52 2a 20 70 70 76 4f LPVOID FAR* ppvO 7a30: 62 6a 29 20 50 55 52 45 3b 0d 0a 20 20 20 20 53 bj) PURE;.. S 7a40: 54 44 4d 45 54 48 4f 44 5f 28 55 4c 4f 4e 47 2c TDMETHOD_(ULONG, 7a50: 41 64 64 52 65 66 29 20 28 54 48 49 53 29 20 20 AddRef) (THIS) 7a60: 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 PURE;.. STDME 7a70: 54 48 4f 44 5f 28 55 4c 4f 4e 47 2c 52 65 6c 65 THOD_(ULONG,Rele 7a80: 61 73 65 29 20 28 54 48 49 53 29 20 50 55 52 45 ase) (THIS) PURE 7a90: 3b 0d 0a 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 ;.... STDMETH 7aa0: 4f 44 28 49 6e 66 6f 29 20 20 20 20 20 20 20 20 OD(Info) 7ab0: 20 20 20 20 20 20 20 20 20 28 54 48 49 53 5f 0d (THIS_. 7ac0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 . 7ad0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7ae0: 20 20 20 20 20 20 41 56 49 46 49 4c 45 49 4e 46 AVIFILEINF 7af0: 4f 57 20 46 41 52 20 2a 20 70 66 69 2c 0d 0a 20 OW FAR * pfi,.. 7b00: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b20: 20 20 20 20 4c 4f 4e 47 20 6c 53 69 7a 65 29 20 LONG lSize) 7b30: 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 PURE;.. STDME 7b40: 54 48 4f 44 28 47 65 74 53 74 72 65 61 6d 29 20 THOD(GetStream) 7b50: 20 20 20 20 20 20 20 20 20 20 20 28 54 48 49 53 (THIS 7b60: 5f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 _.. 7b70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7b80: 20 20 20 20 20 20 20 20 50 41 56 49 53 54 52 45 PAVISTRE 7b90: 41 4d 20 46 41 52 20 2a 20 70 70 53 74 72 65 61 AM FAR * ppStrea 7ba0: 6d 2c 0d 0a 09 09 09 09 20 20 20 20 20 44 57 4f m,...... DWO 7bb0: 52 44 20 66 63 63 54 79 70 65 2c 0d 0a 20 20 20 RD fccType,.. 7bc0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7bd0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7be0: 20 20 4c 4f 4e 47 20 6c 50 61 72 61 6d 29 20 50 LONG lParam) P 7bf0: 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 URE;.. STDMET 7c00: 48 4f 44 28 43 72 65 61 74 65 53 74 72 65 61 6d HOD(CreateStream 7c10: 29 20 20 20 20 20 20 20 20 20 28 54 48 49 53 5f ) (THIS_ 7c20: 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .. 7c30: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c40: 20 20 20 20 20 20 20 50 41 56 49 53 54 52 45 41 PAVISTREA 7c50: 4d 20 46 41 52 20 2a 20 70 70 53 74 72 65 61 6d M FAR * ppStream 7c60: 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.. 7c70: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c80: 20 20 20 20 20 20 20 20 41 56 49 53 54 52 45 41 AVISTREA 7c90: 4d 49 4e 46 4f 57 20 46 41 52 20 2a 20 70 73 69 MINFOW FAR * psi 7ca0: 29 20 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 ) PURE;.. STD 7cb0: 4d 45 54 48 4f 44 28 57 72 69 74 65 44 61 74 61 METHOD(WriteData 7cc0: 29 20 20 20 20 20 20 20 20 20 20 20 20 28 54 48 ) (TH 7cd0: 49 53 5f 0d 0a 20 20 20 20 20 20 20 20 20 20 20 IS_.. 7ce0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7cf0: 20 20 20 20 20 20 20 20 20 20 44 57 4f 52 44 20 DWORD 7d00: 63 6b 69 64 2c 0d 0a 20 20 20 20 20 20 20 20 20 ckid,.. 7d10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d20: 20 20 20 20 20 20 20 20 20 20 20 20 4c 50 56 4f LPVO 7d30: 49 44 20 6c 70 44 61 74 61 2c 0d 0a 20 20 20 20 ID lpData,.. 7d40: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d50: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d60: 20 4c 4f 4e 47 20 63 62 44 61 74 61 29 20 50 55 LONG cbData) PU 7d70: 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 RE;.. STDMETH 7d80: 4f 44 28 52 65 61 64 44 61 74 61 29 20 20 20 20 OD(ReadData) 7d90: 20 20 20 20 20 20 20 20 20 28 54 48 49 53 5f 0d (THIS_. 7da0: 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 . 7db0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7dc0: 20 20 20 20 20 20 44 57 4f 52 44 20 63 6b 69 64 DWORD ckid 7dd0: 2c 0d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.. 7de0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7df0: 20 20 20 20 20 20 20 20 4c 50 56 4f 49 44 20 6c LPVOID l 7e00: 70 44 61 74 61 2c 0d 0a 20 20 20 20 20 20 20 20 pData,.. 7e10: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7e20: 20 20 20 20 20 20 20 20 20 20 20 20 20 4c 4f 4e LON 7e30: 47 20 46 41 52 20 2a 6c 70 63 62 44 61 74 61 29 G FAR *lpcbData) 7e40: 20 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d PURE;.. STDM 7e50: 45 54 48 4f 44 28 45 6e 64 52 65 63 6f 72 64 29 ETHOD(EndRecord) 7e60: 20 20 20 20 20 20 20 20 20 20 20 20 28 54 48 49 (THI 7e70: 53 29 20 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 S) PURE;.. ST 7e80: 44 4d 45 54 48 4f 44 28 44 65 6c 65 74 65 53 74 DMETHOD(DeleteSt 7e90: 72 65 61 6d 29 20 20 20 20 20 20 20 20 20 28 54 ream) (T 7ea0: 48 49 53 5f 0d 0a 09 09 09 09 20 20 20 20 20 44 HIS_...... D 7eb0: 57 4f 52 44 20 66 63 63 54 79 70 65 2c 0d 0a 20 WORD fccType,.. 7ec0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7ed0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7ee0: 20 20 20 20 4c 4f 4e 47 20 6c 50 61 72 61 6d 29 LONG lParam) 7ef0: 20 50 55 52 45 3b 0d 0a 7d 3b 0d 0a 0d 0a 23 75 PURE;..};....#u 7f00: 6e 64 65 66 20 50 41 56 49 46 49 4c 45 0d 0a 61 ndef PAVIFILE..a 7f10: 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 49 41 lias TypeDef!(IA 7f20: 56 49 46 69 6c 65 20 46 41 52 2a 29 20 50 41 56 VIFile FAR*) PAV 7f30: 49 46 49 4c 45 3b 0d 0a 0d 0a 23 75 6e 64 65 66 IFILE;....#undef 7f40: 20 20 49 4e 54 45 52 46 41 43 45 0d 0a 23 64 65 INTERFACE..#de 7f50: 66 69 6e 65 20 49 4e 54 45 52 46 41 43 45 20 20 fine INTERFACE 7f60: 20 49 47 65 74 46 72 61 6d 65 0d 0a 23 64 65 66 IGetFrame..#def 7f70: 69 6e 65 20 50 47 45 54 46 52 41 4d 45 20 20 20 ine PGETFRAME 7f80: 49 47 65 74 46 72 61 6d 65 20 46 41 52 2a 0d 0a IGetFrame FAR*.. 7f90: 0d 0a 44 45 43 4c 41 52 45 5f 49 4e 54 45 52 46 ..DECLARE_INTERF 7fa0: 41 43 45 5f 28 49 47 65 74 46 72 61 6d 65 2c 20 ACE_(IGetFrame, 7fb0: 49 55 6e 6b 6e 6f 77 6e 29 0d 0a 7b 0d 0a 20 20 IUnknown)..{.. 7fc0: 20 20 53 54 44 4d 45 54 48 4f 44 28 51 75 65 72 STDMETHOD(Quer 7fd0: 79 49 6e 74 65 72 66 61 63 65 29 20 28 54 48 49 yInterface) (THI 7fe0: 53 5f 20 52 45 46 49 49 44 20 72 69 69 64 2c 20 S_ REFIID riid, 7ff0: 4c 50 56 4f 49 44 20 46 41 52 2a 20 70 70 76 4f LPVOID FAR* ppvO 8000: 62 6a 29 20 50 55 52 45 3b 0d 0a 20 20 20 20 53 bj) PURE;.. S 8010: 54 44 4d 45 54 48 4f 44 5f 28 55 4c 4f 4e 47 2c TDMETHOD_(ULONG, 8020: 41 64 64 52 65 66 29 20 28 54 48 49 53 29 20 20 AddRef) (THIS) 8030: 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 PURE;.. STDME 8040: 54 48 4f 44 5f 28 55 4c 4f 4e 47 2c 52 65 6c 65 THOD_(ULONG,Rele 8050: 61 73 65 29 20 28 54 48 49 53 29 20 50 55 52 45 ase) (THIS) PURE 8060: 3b 0d 0a 0d 0a 20 20 20 20 53 54 44 4d 45 54 48 ;.... STDMETH 8070: 4f 44 5f 28 4c 50 56 4f 49 44 2c 47 65 74 46 72 OD_(LPVOID,GetFr 8080: 61 6d 65 29 20 28 54 48 49 53 5f 20 4c 4f 4e 47 ame) (THIS_ LONG 8090: 20 6c 50 6f 73 29 20 50 55 52 45 3b 0d 0a 0d 0a lPos) PURE;.... 80a0: 20 20 20 20 53 54 44 4d 45 54 48 4f 44 28 42 65 STDMETHOD(Be 80b0: 67 69 6e 29 20 28 54 48 49 53 5f 20 4c 4f 4e 47 gin) (THIS_ LONG 80c0: 20 6c 53 74 61 72 74 2c 20 4c 4f 4e 47 20 6c 45 lStart, LONG lE 80d0: 6e 64 2c 20 4c 4f 4e 47 20 6c 52 61 74 65 29 20 nd, LONG lRate) 80e0: 50 55 52 45 3b 0d 0a 20 20 20 20 53 54 44 4d 45 PURE;.. STDME 80f0: 54 48 4f 44 28 45 6e 64 29 20 28 54 48 49 53 29 THOD(End) (THIS) 8100: 20 50 55 52 45 3b 0d 0a 0d 0a 20 20 20 20 53 54 PURE;.... ST 8110: 44 4d 45 54 48 4f 44 28 53 65 74 46 6f 72 6d 61 DMETHOD(SetForma 8120: 74 29 20 28 54 48 49 53 5f 20 4c 50 42 49 54 4d t) (THIS_ LPBITM 8130: 41 50 49 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 APINFOHEADER lpb 8140: 69 2c 20 4c 50 56 4f 49 44 20 6c 70 42 69 74 73 i, LPVOID lpBits 8150: 2c 20 69 6e 74 20 78 2c 20 69 6e 74 20 79 2c 20 , int x, int y, 8160: 69 6e 74 20 64 78 2c 20 69 6e 74 20 64 79 29 20 int dx, int dy) 8170: 50 55 52 45 3b 0d 0a 7d 3b 0d 0a 0d 0a 23 75 6e PURE;..};....#un 8180: 64 65 66 20 50 47 45 54 46 52 41 4d 45 0d 0a 61 def PGETFRAME..a 8190: 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 49 47 lias TypeDef!(IG 81a0: 65 74 46 72 61 6d 65 20 46 41 52 2a 29 20 50 47 etFrame FAR*) PG 81b0: 45 54 46 52 41 4d 45 3b 0d 0a 0d 0a 23 64 65 66 ETFRAME;....#def 81c0: 69 6e 65 20 44 45 46 49 4e 45 5f 41 56 49 47 55 ine DEFINE_AVIGU 81d0: 49 44 28 6e 61 6d 65 2c 20 6c 2c 20 77 31 2c 20 ID(name, l, w1, 81e0: 77 32 29 20 20 20 20 44 45 46 49 4e 45 5f 47 55 w2) DEFINE_GU 81f0: 49 44 28 6e 61 6d 65 2c 20 6c 2c 20 77 31 2c 20 ID(name, l, w1, 8200: 77 32 2c 20 30 78 43 30 2c 30 2c 30 2c 30 2c 30 w2, 0xC0,0,0,0,0 8210: 2c 30 2c 30 2c 30 78 34 36 29 0d 0a 0d 0a 44 45 ,0,0,0x46)....DE 8220: 46 49 4e 45 5f 41 56 49 47 55 49 44 28 49 49 44 FINE_AVIGUID(IID 8230: 5f 49 41 56 49 46 69 6c 65 2c 20 20 20 20 20 20 _IAVIFile, 8240: 20 20 20 20 20 20 30 78 30 30 30 32 30 30 32 30 0x00020020 8250: 2c 20 30 2c 20 30 29 3b 0d 0a 44 45 46 49 4e 45 , 0, 0);..DEFINE 8260: 5f 41 56 49 47 55 49 44 28 49 49 44 5f 49 41 56 _AVIGUID(IID_IAV 8270: 49 53 74 72 65 61 6d 2c 20 20 20 20 20 20 20 20 IStream, 8280: 20 20 30 78 30 30 30 32 30 30 32 31 2c 20 30 2c 0x00020021, 0, 8290: 20 30 29 3b 0d 0a 44 45 46 49 4e 45 5f 41 56 49 0);..DEFINE_AVI 82a0: 47 55 49 44 28 49 49 44 5f 49 41 56 49 53 74 72 GUID(IID_IAVIStr 82b0: 65 61 6d 69 6e 67 2c 20 20 20 20 20 20 20 30 78 eaming, 0x 82c0: 30 30 30 32 30 30 32 32 2c 20 30 2c 20 30 29 3b 00020022, 0, 0); 82d0: 0d 0a 44 45 46 49 4e 45 5f 41 56 49 47 55 49 44 ..DEFINE_AVIGUID 82e0: 28 49 49 44 5f 49 47 65 74 46 72 61 6d 65 2c 20 (IID_IGetFrame, 82f0: 20 20 20 20 20 20 20 20 20 20 30 78 30 30 30 32 0x0002 8300: 30 30 32 33 2c 20 30 2c 20 30 29 3b 0d 0a 44 45 0023, 0, 0);..DE 8310: 46 49 4e 45 5f 41 56 49 47 55 49 44 28 49 49 44 FINE_AVIGUID(IID 8320: 5f 49 41 56 49 45 64 69 74 53 74 72 65 61 6d 2c _IAVIEditStream, 8330: 20 20 20 20 20 20 30 78 30 30 30 32 30 30 32 34 0x00020024 8340: 2c 20 30 2c 20 30 29 3b 0d 0a 44 45 46 49 4e 45 , 0, 0);..DEFINE 8350: 5f 41 56 49 47 55 49 44 28 49 49 44 5f 49 41 56 _AVIGUID(IID_IAV 8360: 49 50 65 72 73 69 73 74 46 69 6c 65 2c 20 20 20 IPersistFile, 8370: 20 20 30 78 30 30 30 32 30 30 32 35 2c 20 30 2c 0x00020025, 0, 8380: 20 30 29 3b 0d 0a 23 69 66 6e 64 65 66 20 55 4e 0);..#ifndef UN 8390: 49 43 4f 44 45 0d 0a 44 45 46 49 4e 45 5f 41 56 ICODE..DEFINE_AV 83a0: 49 47 55 49 44 28 43 4c 53 49 44 5f 41 56 49 53 IGUID(CLSID_AVIS 83b0: 69 6d 70 6c 65 55 6e 4d 61 72 73 68 61 6c 2c 20 impleUnMarshal, 83c0: 20 20 20 20 20 20 20 30 78 30 30 30 32 30 30 30 0x0002000 83d0: 39 2c 20 30 2c 20 30 29 3b 0d 0a 23 65 6e 64 69 9, 0, 0);..#endi 83e0: 66 0d 0a 0d 0a 44 45 46 49 4e 45 5f 41 56 49 47 f....DEFINE_AVIG 83f0: 55 49 44 28 43 4c 53 49 44 5f 41 56 49 46 69 6c UID(CLSID_AVIFil 8400: 65 2c 20 20 20 20 20 20 20 20 20 20 20 30 78 30 e, 0x0 8410: 30 30 32 30 30 30 30 2c 20 30 2c 20 30 29 3b 0d 0020000, 0, 0);. 8420: 0a 0d 0a 23 64 65 66 69 6e 65 09 41 56 49 46 49 ...#define.AVIFI 8430: 4c 45 48 41 4e 44 4c 45 52 5f 43 41 4e 52 45 41 LEHANDLER_CANREA 8440: 44 09 09 30 78 30 30 30 31 0d 0a 23 64 65 66 69 D..0x0001..#defi 8450: 6e 65 09 41 56 49 46 49 4c 45 48 41 4e 44 4c 45 ne.AVIFILEHANDLE 8460: 52 5f 43 41 4e 57 52 49 54 45 09 09 30 78 30 30 R_CANWRITE..0x00 8470: 30 32 0d 0a 23 64 65 66 69 6e 65 09 41 56 49 46 02..#define.AVIF 8480: 49 4c 45 48 41 4e 44 4c 45 52 5f 43 41 4e 41 43 ILEHANDLER_CANAC 8490: 43 45 50 54 4e 4f 4e 52 47 42 09 30 78 30 30 30 CEPTNONRGB.0x000 84a0: 34 0d 0a 0d 0a 53 54 44 41 50 49 5f 28 76 6f 69 4....STDAPI_(voi 84b0: 64 29 20 41 56 49 46 69 6c 65 49 6e 69 74 28 76 d) AVIFileInit(v 84c0: 6f 69 64 29 3b 0d 0a 53 54 44 41 50 49 5f 28 76 oid);..STDAPI_(v 84d0: 6f 69 64 29 20 41 56 49 46 69 6c 65 45 78 69 74 oid) AVIFileExit 84e0: 28 76 6f 69 64 29 3b 0d 0a 0d 0a 53 54 44 41 50 (void);....STDAP 84f0: 49 5f 28 55 4c 4f 4e 47 29 20 41 56 49 46 69 6c I_(ULONG) AVIFil 8500: 65 41 64 64 52 65 66 20 20 20 20 20 20 20 28 50 eAddRef (P 8510: 41 56 49 46 49 4c 45 20 70 66 69 6c 65 29 3b 0d AVIFILE pfile);. 8520: 0a 53 54 44 41 50 49 5f 28 55 4c 4f 4e 47 29 20 .STDAPI_(ULONG) 8530: 41 56 49 46 69 6c 65 52 65 6c 65 61 73 65 20 20 AVIFileRelease 8540: 20 20 20 20 28 50 41 56 49 46 49 4c 45 20 70 66 (PAVIFILE pf 8550: 69 6c 65 29 3b 0d 0a 0d 0a 23 69 66 64 65 66 20 ile);....#ifdef 8560: 5f 57 49 4e 33 32 0d 0a 53 54 44 41 50 49 20 41 _WIN32..STDAPI A 8570: 56 49 46 69 6c 65 4f 70 65 6e 41 20 20 20 20 20 VIFileOpenA 8580: 20 20 28 50 41 56 49 46 49 4c 45 20 46 41 52 20 (PAVIFILE FAR 8590: 2a 20 70 70 66 69 6c 65 2c 20 4c 50 43 53 54 52 * ppfile, LPCSTR 85a0: 20 73 7a 46 69 6c 65 2c 0d 0a 09 09 09 20 20 55 szFile,..... U 85b0: 49 4e 54 20 75 4d 6f 64 65 2c 20 4c 50 43 4c 53 INT uMode, LPCLS 85c0: 49 44 20 6c 70 48 61 6e 64 6c 65 72 29 3b 0d 0a ID lpHandler);.. 85d0: 53 54 44 41 50 49 20 41 56 49 46 69 6c 65 4f 70 STDAPI AVIFileOp 85e0: 65 6e 57 20 20 20 20 20 20 20 28 50 41 56 49 46 enW (PAVIF 85f0: 49 4c 45 20 46 41 52 20 2a 20 70 70 66 69 6c 65 ILE FAR * ppfile 8600: 2c 20 4c 50 43 57 53 54 52 20 73 7a 46 69 6c 65 , LPCWSTR szFile 8610: 2c 0d 0a 09 09 09 20 20 55 49 4e 54 20 75 4d 6f ,..... UINT uMo 8620: 64 65 2c 20 4c 50 43 4c 53 49 44 20 6c 70 48 61 de, LPCLSID lpHa 8630: 6e 64 6c 65 72 29 3b 0d 0a 23 69 66 64 65 66 20 ndler);..#ifdef 8640: 55 4e 49 43 4f 44 45 0d 0a 23 64 65 66 69 6e 65 UNICODE..#define 8650: 20 41 56 49 46 69 6c 65 4f 70 65 6e 09 20 20 41 AVIFileOpen. A 8660: 56 49 46 69 6c 65 4f 70 65 6e 57 09 0d 0a 23 65 VIFileOpenW...#e 8670: 6c 73 65 0d 0a 23 64 65 66 69 6e 65 20 41 56 49 lse..#define AVI 8680: 46 69 6c 65 4f 70 65 6e 09 20 20 41 56 49 46 69 FileOpen. AVIFi 8690: 6c 65 4f 70 65 6e 41 09 0d 0a 23 65 6e 64 69 66 leOpenA...#endif 86a0: 0d 0a 23 65 6c 73 65 0d 0a 53 54 44 41 50 49 20 ..#else..STDAPI 86b0: 41 56 49 46 69 6c 65 4f 70 65 6e 20 20 20 20 20 AVIFileOpen 86c0: 20 20 28 50 41 56 49 46 49 4c 45 20 46 41 52 20 (PAVIFILE FAR 86d0: 2a 20 70 70 66 69 6c 65 2c 20 4c 50 43 53 54 52 * ppfile, LPCSTR 86e0: 20 73 7a 46 69 6c 65 2c 0d 0a 09 09 09 20 20 55 szFile,..... U 86f0: 49 4e 54 20 75 4d 6f 64 65 2c 20 4c 50 43 4c 53 INT uMode, LPCLS 8700: 49 44 20 6c 70 48 61 6e 64 6c 65 72 29 3b 0d 0a ID lpHandler);.. 8710: 23 64 65 66 69 6e 65 20 41 56 49 46 69 6c 65 4f #define AVIFileO 8720: 70 65 6e 57 09 41 56 49 46 69 6c 65 4f 70 65 6e penW.AVIFileOpen 8730: 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 23 69 66 64 ..#endif....#ifd 8740: 65 66 20 5f 57 49 4e 33 32 0d 0a 53 54 44 41 50 ef _WIN32..STDAP 8750: 49 20 41 56 49 46 69 6c 65 49 6e 66 6f 57 20 28 I AVIFileInfoW ( 8760: 50 41 56 49 46 49 4c 45 20 70 66 69 6c 65 2c 20 PAVIFILE pfile, 8770: 4c 50 41 56 49 46 49 4c 45 49 4e 46 4f 57 20 70 LPAVIFILEINFOW p 8780: 66 69 2c 20 4c 4f 4e 47 20 6c 53 69 7a 65 29 3b fi, LONG lSize); 8790: 0d 0a 53 54 44 41 50 49 20 41 56 49 46 69 6c 65 ..STDAPI AVIFile 87a0: 49 6e 66 6f 41 20 28 50 41 56 49 46 49 4c 45 20 InfoA (PAVIFILE 87b0: 70 66 69 6c 65 2c 20 4c 50 41 56 49 46 49 4c 45 pfile, LPAVIFILE 87c0: 49 4e 46 4f 41 20 70 66 69 2c 20 4c 4f 4e 47 20 INFOA pfi, LONG 87d0: 6c 53 69 7a 65 29 3b 0d 0a 23 69 66 64 65 66 20 lSize);..#ifdef 87e0: 55 4e 49 43 4f 44 45 0d 0a 23 64 65 66 69 6e 65 UNICODE..#define 87f0: 20 41 56 49 46 69 6c 65 49 6e 66 6f 09 41 56 49 AVIFileInfo.AVI 8800: 46 69 6c 65 49 6e 66 6f 57 0d 0a 23 65 6c 73 65 FileInfoW..#else 8810: 0d 0a 23 64 65 66 69 6e 65 20 41 56 49 46 69 6c ..#define AVIFil 8820: 65 49 6e 66 6f 09 41 56 49 46 69 6c 65 49 6e 66 eInfo.AVIFileInf 8830: 6f 41 0d 0a 23 65 6e 64 69 66 0d 0a 23 65 6c 73 oA..#endif..#els 8840: 65 0d 0a 53 54 44 41 50 49 20 41 56 49 46 69 6c e..STDAPI AVIFil 8850: 65 49 6e 66 6f 20 28 50 41 56 49 46 49 4c 45 20 eInfo (PAVIFILE 8860: 70 66 69 6c 65 2c 20 4c 50 41 56 49 46 49 4c 45 pfile, LPAVIFILE 8870: 49 4e 46 4f 20 70 66 69 2c 20 4c 4f 4e 47 20 6c INFO pfi, LONG l 8880: 53 69 7a 65 29 3b 0d 0a 23 64 65 66 69 6e 65 20 Size);..#define 8890: 41 56 49 46 69 6c 65 49 6e 66 6f 57 20 41 56 49 AVIFileInfoW AVI 88a0: 46 69 6c 65 49 6e 66 6f 0d 0a 23 65 6e 64 69 66 FileInfo..#endif 88b0: 0d 0a 0d 0a 0d 0a 53 54 44 41 50 49 20 41 56 49 ......STDAPI AVI 88c0: 46 69 6c 65 47 65 74 53 74 72 65 61 6d 20 20 20 FileGetStream 88d0: 20 20 28 50 41 56 49 46 49 4c 45 20 70 66 69 6c (PAVIFILE pfil 88e0: 65 2c 20 50 41 56 49 53 54 52 45 41 4d 20 46 41 e, PAVISTREAM FA 88f0: 52 20 2a 20 70 70 61 76 69 2c 20 44 57 4f 52 44 R * ppavi, DWORD 8900: 20 66 63 63 54 79 70 65 2c 20 4c 4f 4e 47 20 6c fccType, LONG l 8910: 50 61 72 61 6d 29 3b 0d 0a 0d 0a 0d 0a 23 69 66 Param);......#if 8920: 64 65 66 20 5f 57 49 4e 33 32 0d 0a 53 54 44 41 def _WIN32..STDA 8930: 50 49 20 41 56 49 46 69 6c 65 43 72 65 61 74 65 PI AVIFileCreate 8940: 53 74 72 65 61 6d 57 20 28 50 41 56 49 46 49 4c StreamW (PAVIFIL 8950: 45 20 70 66 69 6c 65 2c 20 50 41 56 49 53 54 52 E pfile, PAVISTR 8960: 45 41 4d 20 46 41 52 20 2a 70 70 61 76 69 2c 20 EAM FAR *ppavi, 8970: 41 56 49 53 54 52 45 41 4d 49 4e 46 4f 57 20 46 AVISTREAMINFOW F 8980: 41 52 20 2a 20 70 73 69 29 3b 0d 0a 53 54 44 41 AR * psi);..STDA 8990: 50 49 20 41 56 49 46 69 6c 65 43 72 65 61 74 65 PI AVIFileCreate 89a0: 53 74 72 65 61 6d 41 20 28 50 41 56 49 46 49 4c StreamA (PAVIFIL 89b0: 45 20 70 66 69 6c 65 2c 20 50 41 56 49 53 54 52 E pfile, PAVISTR 89c0: 45 41 4d 20 46 41 52 20 2a 70 70 61 76 69 2c 20 EAM FAR *ppavi, 89d0: 41 56 49 53 54 52 45 41 4d 49 4e 46 4f 41 20 46 AVISTREAMINFOA F 89e0: 41 52 20 2a 20 70 73 69 29 3b 0d 0a 23 69 66 64 AR * psi);..#ifd 89f0: 65 66 20 55 4e 49 43 4f 44 45 0d 0a 23 64 65 66 ef UNICODE..#def 8a00: 69 6e 65 20 41 56 49 46 69 6c 65 43 72 65 61 74 ine AVIFileCreat 8a10: 65 53 74 72 65 61 6d 09 41 56 49 46 69 6c 65 43 eStream.AVIFileC 8a20: 72 65 61 74 65 53 74 72 65 61 6d 57 0d 0a 23 65 reateStreamW..#e 8a30: 6c 73 65 0d 0a 23 64 65 66 69 6e 65 20 41 56 49 lse..#define AVI 8a40: 46 69 6c 65 43 72 65 61 74 65 53 74 72 65 61 6d FileCreateStream 8a50: 09 41 56 49 46 69 6c 65 43 72 65 61 74 65 53 74 .AVIFileCreateSt 8a60: 72 65 61 6d 41 0d 0a 23 65 6e 64 69 66 0d 0a 23 reamA..#endif..# 8a70: 65 6c 73 65 0d 0a 53 54 44 41 50 49 20 41 56 49 else..STDAPI AVI 8a80: 46 69 6c 65 43 72 65 61 74 65 53 74 72 65 61 6d FileCreateStream 8a90: 28 50 41 56 49 46 49 4c 45 20 70 66 69 6c 65 2c (PAVIFILE pfile, 8aa0: 20 50 41 56 49 53 54 52 45 41 4d 20 46 41 52 20 PAVISTREAM FAR 8ab0: 2a 70 70 61 76 69 2c 20 41 56 49 53 54 52 45 41 *ppavi, AVISTREA 8ac0: 4d 49 4e 46 4f 20 46 41 52 20 2a 20 70 73 69 29 MINFO FAR * psi) 8ad0: 3b 0d 0a 23 64 65 66 69 6e 65 20 41 56 49 46 69 ;..#define AVIFi 8ae0: 6c 65 43 72 65 61 74 65 53 74 72 65 61 6d 57 20 leCreateStreamW 8af0: 41 56 49 46 69 6c 65 43 72 65 61 74 65 53 74 72 AVIFileCreateStr 8b00: 65 61 6d 0d 0a 23 65 6e 64 69 66 0d 0a 0d 0a 53 eam..#endif....S 8b10: 54 44 41 50 49 20 41 56 49 46 69 6c 65 57 72 69 TDAPI AVIFileWri 8b20: 74 65 44 61 74 61 09 28 50 41 56 49 46 49 4c 45 teData.(PAVIFILE 8b30: 20 70 66 69 6c 65 2c 0d 0a 09 09 09 09 09 20 44 pfile,....... D 8b40: 57 4f 52 44 20 63 6b 69 64 2c 0d 0a 09 09 09 09 WORD ckid,...... 8b50: 09 20 4c 50 56 4f 49 44 20 6c 70 44 61 74 61 2c . LPVOID lpData, 8b60: 0d 0a 09 09 09 09 09 20 4c 4f 4e 47 20 63 62 44 ....... LONG cbD 8b70: 61 74 61 29 3b 0d 0a 53 54 44 41 50 49 20 41 56 ata);..STDAPI AV 8b80: 49 46 69 6c 65 52 65 61 64 44 61 74 61 09 28 50 IFileReadData.(P 8b90: 41 56 49 46 49 4c 45 20 70 66 69 6c 65 2c 0d 0a AVIFILE pfile,.. 8ba0: 09 09 09 09 09 20 44 57 4f 52 44 20 63 6b 69 64 ..... DWORD ckid 8bb0: 2c 0d 0a 09 09 09 09 09 20 4c 50 56 4f 49 44 20 ,....... LPVOID 8bc0: 6c 70 44 61 74 61 2c 0d 0a 09 09 09 09 09 20 4c lpData,....... L 8bd0: 4f 4e 47 20 46 41 52 20 2a 6c 70 63 62 44 61 74 ONG FAR *lpcbDat 8be0: 61 29 3b 0d 0a 53 54 44 41 50 49 20 41 56 49 46 a);..STDAPI AVIF 8bf0: 69 6c 65 45 6e 64 52 65 63 6f 72 64 09 28 50 41 ileEndRecord.(PA 8c00: 56 49 46 49 4c 45 20 70 66 69 6c 65 29 3b 0d 0a VIFILE pfile);.. 8c10: 0d 0a 53 54 44 41 50 49 5f 28 55 4c 4f 4e 47 29 ..STDAPI_(ULONG) 8c20: 20 41 56 49 53 74 72 65 61 6d 41 64 64 52 65 66 AVIStreamAddRef 8c30: 20 20 20 20 20 20 20 28 50 41 56 49 53 54 52 45 (PAVISTRE 8c40: 41 4d 20 70 61 76 69 29 3b 0d 0a 53 54 44 41 50 AM pavi);..STDAP 8c50: 49 5f 28 55 4c 4f 4e 47 29 20 41 56 49 53 74 72 I_(ULONG) AVIStr 8c60: 65 61 6d 52 65 6c 65 61 73 65 20 20 20 20 20 20 eamRelease 8c70: 28 50 41 56 49 53 54 52 45 41 4d 20 70 61 76 69 (PAVISTREAM pavi 8c80: 29 3b 0d 0a 0d 0a 53 54 44 41 50 49 20 41 56 49 );....STDAPI AVI 8c90: 53 74 72 65 61 6d 49 6e 66 6f 57 20 28 50 41 56 StreamInfoW (PAV 8ca0: 49 53 54 52 45 41 4d 20 70 61 76 69 2c 20 4c 50 ISTREAM pavi, LP 8cb0: 41 56 49 53 54 52 45 41 4d 49 4e 46 4f 57 20 70 AVISTREAMINFOW p 8cc0: 73 69 2c 20 4c 4f 4e 47 20 6c 53 69 7a 65 29 3b si, LONG lSize); 8cd0: 0d 0a 53 54 44 41 50 49 20 41 56 49 53 74 72 65 ..STDAPI AVIStre 8ce0: 61 6d 49 6e 66 6f 41 20 28 50 41 56 49 53 54 52 amInfoA (PAVISTR 8cf0: 45 41 4d 20 70 61 76 69 2c 20 4c 50 41 56 49 53 EAM pavi, LPAVIS 8d00: 54 52 45 41 4d 49 4e 46 4f 41 20 70 73 69 2c 20 TREAMINFOA psi, 8d10: 4c 4f 4e 47 20 6c 53 69 7a 65 29 3b 0d 0a 23 69 LONG lSize);..#i 8d20: 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 23 64 fdef UNICODE..#d 8d30: 65 66 69 6e 65 20 41 56 49 53 74 72 65 61 6d 49 efine AVIStreamI 8d40: 6e 66 6f 09 41 56 49 53 74 72 65 61 6d 49 6e 66 nfo.AVIStreamInf 8d50: 6f 57 0d 0a 23 65 6c 73 65 0d 0a 23 64 65 66 69 oW..#else..#defi 8d60: 6e 65 20 41 56 49 53 74 72 65 61 6d 49 6e 66 6f ne AVIStreamInfo 8d70: 09 41 56 49 53 74 72 65 61 6d 49 6e 66 6f 41 0d .AVIStreamInfoA. 8d80: 0a 23 65 6e 64 69 66 0d 0a 0d 0a 53 54 44 41 50 .#endif....STDAP 8d90: 49 5f 28 4c 4f 4e 47 29 20 41 56 49 53 74 72 65 I_(LONG) AVIStre 8da0: 61 6d 46 69 6e 64 53 61 6d 70 6c 65 28 50 41 56 amFindSample(PAV 8db0: 49 53 54 52 45 41 4d 20 70 61 76 69 2c 20 4c 4f ISTREAM pavi, LO 8dc0: 4e 47 20 6c 50 6f 73 2c 20 4c 4f 4e 47 20 6c 46 NG lPos, LONG lF 8dd0: 6c 61 67 73 29 3b 0d 0a 53 54 44 41 50 49 20 41 lags);..STDAPI A 8de0: 56 49 53 74 72 65 61 6d 52 65 61 64 46 6f 72 6d VIStreamReadForm 8df0: 61 74 20 20 20 28 50 41 56 49 53 54 52 45 41 4d at (PAVISTREAM 8e00: 20 70 61 76 69 2c 20 4c 4f 4e 47 20 6c 50 6f 73 pavi, LONG lPos 8e10: 2c 4c 50 56 4f 49 44 20 6c 70 46 6f 72 6d 61 74 ,LPVOID lpFormat 8e20: 2c 4c 4f 4e 47 20 46 41 52 20 2a 6c 70 63 62 46 ,LONG FAR *lpcbF 8e30: 6f 72 6d 61 74 29 3b 0d 0a 53 54 44 41 50 49 20 ormat);..STDAPI 8e40: 41 56 49 53 74 72 65 61 6d 53 65 74 46 6f 72 6d AVIStreamSetForm 8e50: 61 74 20 20 20 20 28 50 41 56 49 53 54 52 45 41 at (PAVISTREA 8e60: 4d 20 70 61 76 69 2c 20 4c 4f 4e 47 20 6c 50 6f M pavi, LONG lPo 8e70: 73 2c 4c 50 56 4f 49 44 20 6c 70 46 6f 72 6d 61 s,LPVOID lpForma 8e80: 74 2c 4c 4f 4e 47 20 63 62 46 6f 72 6d 61 74 29 t,LONG cbFormat) 8e90: 3b 0d 0a 53 54 44 41 50 49 20 41 56 49 53 74 72 ;..STDAPI AVIStr 8ea0: 65 61 6d 52 65 61 64 44 61 74 61 20 20 20 20 20 eamReadData 8eb0: 28 50 41 56 49 53 54 52 45 41 4d 20 70 61 76 69 (PAVISTREAM pavi 8ec0: 2c 20 44 57 4f 52 44 20 66 63 63 2c 20 4c 50 56 , DWORD fcc, LPV 8ed0: 4f 49 44 20 6c 70 2c 20 4c 4f 4e 47 20 46 41 52 OID lp, LONG FAR 8ee0: 20 2a 6c 70 63 62 29 3b 0d 0a 53 54 44 41 50 49 *lpcb);..STDAPI 8ef0: 20 41 56 49 53 74 72 65 61 6d 57 72 69 74 65 44 AVIStreamWriteD 8f00: 61 74 61 20 20 20 20 28 50 41 56 49 53 54 52 45 ata (PAVISTRE 8f10: 41 4d 20 70 61 76 69 2c 20 44 57 4f 52 44 20 66 AM pavi, DWORD f 8f20: 63 63 2c 20 4c 50 56 4f 49 44 20 6c 70 2c 20 4c cc, LPVOID lp, L 8f30: 4f 4e 47 20 63 62 29 3b 0d 0a 0d 0a 53 54 44 41 ONG cb);....STDA 8f40: 50 49 20 41 56 49 53 74 72 65 61 6d 52 65 61 64 PI AVIStreamRead 8f50: 20 20 20 20 20 20 20 20 20 28 50 41 56 49 53 54 (PAVIST 8f60: 52 45 41 4d 20 70 61 76 69 2c 0d 0a 09 09 09 20 REAM pavi,..... 8f70: 20 20 20 20 20 4c 4f 4e 47 20 6c 53 74 61 72 74 LONG lStart 8f80: 2c 0d 0a 09 09 09 20 20 20 20 20 20 4c 4f 4e 47 ,..... LONG 8f90: 20 6c 53 61 6d 70 6c 65 73 2c 0d 0a 09 09 09 20 lSamples,..... 8fa0: 20 20 20 20 20 4c 50 56 4f 49 44 20 6c 70 42 75 LPVOID lpBu 8fb0: 66 66 65 72 2c 0d 0a 09 09 09 20 20 20 20 20 20 ffer,..... 8fc0: 4c 4f 4e 47 20 63 62 42 75 66 66 65 72 2c 0d 0a LONG cbBuffer,.. 8fd0: 09 09 09 20 20 20 20 20 20 4c 4f 4e 47 20 46 41 ... LONG FA 8fe0: 52 20 2a 20 70 6c 42 79 74 65 73 2c 0d 0a 09 09 R * plBytes,.... 8ff0: 09 20 20 20 20 20 20 4c 4f 4e 47 20 46 41 52 20 . LONG FAR 9000: 2a 20 70 6c 53 61 6d 70 6c 65 73 29 3b 0d 0a 23 * plSamples);..# 9010: 64 65 66 69 6e 65 20 41 56 49 53 54 52 45 41 4d define AVISTREAM 9020: 52 45 41 44 5f 43 4f 4e 56 45 4e 49 45 4e 54 09 READ_CONVENIENT. 9030: 28 2d 31 4c 29 0d 0a 0d 0a 53 54 44 41 50 49 20 (-1L)....STDAPI 9040: 41 56 49 53 74 72 65 61 6d 57 72 69 74 65 20 20 AVIStreamWrite 9050: 20 20 20 20 20 20 28 50 41 56 49 53 54 52 45 41 (PAVISTREA 9060: 4d 20 70 61 76 69 2c 0d 0a 09 09 09 20 20 20 20 M pavi,..... 9070: 20 20 4c 4f 4e 47 20 6c 53 74 61 72 74 2c 20 4c LONG lStart, L 9080: 4f 4e 47 20 6c 53 61 6d 70 6c 65 73 2c 0d 0a 09 ONG lSamples,... 9090: 09 09 20 20 20 20 20 20 4c 50 56 4f 49 44 20 6c .. LPVOID l 90a0: 70 42 75 66 66 65 72 2c 20 4c 4f 4e 47 20 63 62 pBuffer, LONG cb 90b0: 42 75 66 66 65 72 2c 20 44 57 4f 52 44 20 64 77 Buffer, DWORD dw 90c0: 46 6c 61 67 73 2c 0d 0a 09 09 09 20 20 20 20 20 Flags,..... 90d0: 20 4c 4f 4e 47 20 46 41 52 20 2a 70 6c 53 61 6d LONG FAR *plSam 90e0: 70 57 72 69 74 74 65 6e 2c 0d 0a 09 09 09 20 20 pWritten,..... 90f0: 20 20 20 20 4c 4f 4e 47 20 46 41 52 20 2a 70 6c LONG FAR *pl 9100: 42 79 74 65 73 57 72 69 74 74 65 6e 29 3b 0d 0a BytesWritten);.. 9110: 0d 0a 53 54 44 41 50 49 5f 28 4c 4f 4e 47 29 20 ..STDAPI_(LONG) 9120: 41 56 49 53 74 72 65 61 6d 53 74 61 72 74 20 20 AVIStreamStart 9130: 20 20 20 20 20 20 28 50 41 56 49 53 54 52 45 41 (PAVISTREA 9140: 4d 20 70 61 76 69 29 3b 0d 0a 53 54 44 41 50 49 M pavi);..STDAPI 9150: 5f 28 4c 4f 4e 47 29 20 41 56 49 53 74 72 65 61 _(LONG) AVIStrea 9160: 6d 4c 65 6e 67 74 68 20 20 20 20 20 20 20 28 50 mLength (P 9170: 41 56 49 53 54 52 45 41 4d 20 70 61 76 69 29 3b AVISTREAM pavi); 9180: 0d 0a 53 54 44 41 50 49 5f 28 4c 4f 4e 47 29 20 ..STDAPI_(LONG) 9190: 41 56 49 53 74 72 65 61 6d 54 69 6d 65 54 6f 53 AVIStreamTimeToS 91a0: 61 6d 70 6c 65 20 28 50 41 56 49 53 54 52 45 41 ample (PAVISTREA 91b0: 4d 20 70 61 76 69 2c 20 4c 4f 4e 47 20 6c 54 69 M pavi, LONG lTi 91c0: 6d 65 29 3b 0d 0a 53 54 44 41 50 49 5f 28 4c 4f me);..STDAPI_(LO 91d0: 4e 47 29 20 41 56 49 53 74 72 65 61 6d 53 61 6d NG) AVIStreamSam 91e0: 70 6c 65 54 6f 54 69 6d 65 20 28 50 41 56 49 53 pleToTime (PAVIS 91f0: 54 52 45 41 4d 20 70 61 76 69 2c 20 4c 4f 4e 47 TREAM pavi, LONG 9200: 20 6c 53 61 6d 70 6c 65 29 3b 0d 0a 0d 0a 0d 0a lSample);...... 9210: 53 54 44 41 50 49 20 41 56 49 53 74 72 65 61 6d STDAPI AVIStream 9220: 42 65 67 69 6e 53 74 72 65 61 6d 69 6e 67 28 50 BeginStreaming(P 9230: 41 56 49 53 54 52 45 41 4d 20 70 61 76 69 2c 20 AVISTREAM pavi, 9240: 4c 4f 4e 47 20 6c 53 74 61 72 74 2c 20 4c 4f 4e LONG lStart, LON 9250: 47 20 6c 45 6e 64 2c 20 4c 4f 4e 47 20 6c 52 61 G lEnd, LONG lRa 9260: 74 65 29 3b 0d 0a 53 54 44 41 50 49 20 41 56 49 te);..STDAPI AVI 9270: 53 74 72 65 61 6d 45 6e 64 53 74 72 65 61 6d 69 StreamEndStreami 9280: 6e 67 28 50 41 56 49 53 54 52 45 41 4d 20 70 61 ng(PAVISTREAM pa 9290: 76 69 29 3b 0d 0a 0d 0a 53 54 44 41 50 49 5f 28 vi);....STDAPI_( 92a0: 50 47 45 54 46 52 41 4d 45 29 20 41 56 49 53 74 PGETFRAME) AVISt 92b0: 72 65 61 6d 47 65 74 46 72 61 6d 65 4f 70 65 6e reamGetFrameOpen 92c0: 28 50 41 56 49 53 54 52 45 41 4d 20 70 61 76 69 (PAVISTREAM pavi 92d0: 2c 0d 0a 09 09 09 09 09 20 4c 50 42 49 54 4d 41 ,....... LPBITMA 92e0: 50 49 4e 46 4f 48 45 41 44 45 52 20 6c 70 62 69 PINFOHEADER lpbi 92f0: 57 61 6e 74 65 64 29 3b 0d 0a 53 54 44 41 50 49 Wanted);..STDAPI 9300: 5f 28 4c 50 56 4f 49 44 29 20 41 56 49 53 74 72 _(LPVOID) AVIStr 9310: 65 61 6d 47 65 74 46 72 61 6d 65 28 50 47 45 54 eamGetFrame(PGET 9320: 46 52 41 4d 45 20 70 67 2c 20 4c 4f 4e 47 20 6c FRAME pg, LONG l 9330: 50 6f 73 29 3b 0d 0a 53 54 44 41 50 49 20 41 56 Pos);..STDAPI AV 9340: 49 53 74 72 65 61 6d 47 65 74 46 72 61 6d 65 43 IStreamGetFrameC 9350: 6c 6f 73 65 28 50 47 45 54 46 52 41 4d 45 20 70 lose(PGETFRAME p 9360: 67 29 3b 0d 0a 0d 0a 53 54 44 41 50 49 20 41 56 g);....STDAPI AV 9370: 49 53 74 72 65 61 6d 4f 70 65 6e 46 72 6f 6d 46 IStreamOpenFromF 9380: 69 6c 65 41 28 50 41 56 49 53 54 52 45 41 4d 20 ileA(PAVISTREAM 9390: 46 41 52 20 2a 70 70 61 76 69 2c 20 4c 50 43 53 FAR *ppavi, LPCS 93a0: 54 52 20 73 7a 46 69 6c 65 2c 0d 0a 09 09 09 20 TR szFile,..... 93b0: 20 20 20 20 44 57 4f 52 44 20 66 63 63 54 79 70 DWORD fccTyp 93c0: 65 2c 20 4c 4f 4e 47 20 6c 50 61 72 61 6d 2c 0d e, LONG lParam,. 93d0: 0a 09 09 09 20 20 20 20 20 55 49 4e 54 20 6d 6f .... UINT mo 93e0: 64 65 2c 20 43 4c 53 49 44 20 46 41 52 20 2a 70 de, CLSID FAR *p 93f0: 63 6c 73 69 64 48 61 6e 64 6c 65 72 29 3b 0d 0a clsidHandler);.. 9400: 53 54 44 41 50 49 20 41 56 49 53 74 72 65 61 6d STDAPI AVIStream 9410: 4f 70 65 6e 46 72 6f 6d 46 69 6c 65 57 28 50 41 OpenFromFileW(PA 9420: 56 49 53 54 52 45 41 4d 20 46 41 52 20 2a 70 70 VISTREAM FAR *pp 9430: 61 76 69 2c 20 4c 50 43 57 53 54 52 20 73 7a 46 avi, LPCWSTR szF 9440: 69 6c 65 2c 0d 0a 09 09 09 20 20 20 20 20 44 57 ile,..... DW 9450: 4f 52 44 20 66 63 63 54 79 70 65 2c 20 4c 4f 4e ORD fccType, LON 9460: 47 20 6c 50 61 72 61 6d 2c 0d 0a 09 09 09 20 20 G lParam,..... 9470: 20 20 20 55 49 4e 54 20 6d 6f 64 65 2c 20 43 4c UINT mode, CL 9480: 53 49 44 20 46 41 52 20 2a 70 63 6c 73 69 64 48 SID FAR *pclsidH 9490: 61 6e 64 6c 65 72 29 3b 0d 0a 23 69 66 64 65 66 andler);..#ifdef 94a0: 20 55 4e 49 43 4f 44 45 0d 0a 23 64 65 66 69 6e UNICODE..#defin 94b0: 65 20 41 56 49 53 74 72 65 61 6d 4f 70 65 6e 46 e AVIStreamOpenF 94c0: 72 6f 6d 46 69 6c 65 09 41 56 49 53 74 72 65 61 romFile.AVIStrea 94d0: 6d 4f 70 65 6e 46 72 6f 6d 46 69 6c 65 57 0d 0a mOpenFromFileW.. 94e0: 23 65 6c 73 65 0d 0a 23 64 65 66 69 6e 65 20 41 #else..#define A 94f0: 56 49 53 74 72 65 61 6d 4f 70 65 6e 46 72 6f 6d VIStreamOpenFrom 9500: 46 69 6c 65 09 41 56 49 53 74 72 65 61 6d 4f 70 File.AVIStreamOp 9510: 65 6e 46 72 6f 6d 46 69 6c 65 41 0d 0a 23 65 6e enFromFileA..#en 9520: 64 69 66 0d 0a 0d 0a 53 54 44 41 50 49 20 41 56 dif....STDAPI AV 9530: 49 53 74 72 65 61 6d 43 72 65 61 74 65 28 50 41 IStreamCreate(PA 9540: 56 49 53 54 52 45 41 4d 20 46 41 52 20 2a 70 70 VISTREAM FAR *pp 9550: 61 76 69 2c 20 4c 4f 4e 47 20 6c 50 61 72 61 6d avi, LONG lParam 9560: 31 2c 20 4c 4f 4e 47 20 6c 50 61 72 61 6d 32 2c 1, LONG lParam2, 9570: 0d 0a 09 09 20 20 20 20 20 20 20 43 4c 53 49 44 .... CLSID 9580: 20 46 41 52 20 2a 70 63 6c 73 69 64 48 61 6e 64 FAR *pclsidHand 9590: 6c 65 72 29 3b 0d 0a 0d 0a 0d 0a 0d 0a 23 64 65 ler);........#de 95a0: 66 69 6e 65 20 46 49 4e 44 5f 44 49 52 20 20 20 fine FIND_DIR 95b0: 20 20 20 20 20 30 78 30 30 30 30 30 30 30 46 4c 0x0000000FL 95c0: 0d 0a 23 64 65 66 69 6e 65 20 46 49 4e 44 5f 4e ..#define FIND_N 95d0: 45 58 54 20 20 20 20 20 20 20 30 78 30 30 30 30 EXT 0x0000 95e0: 30 30 30 31 4c 0d 0a 23 64 65 66 69 6e 65 20 46 0001L..#define F 95f0: 49 4e 44 5f 50 52 45 56 20 20 20 20 20 20 20 30 IND_PREV 0 9600: 78 30 30 30 30 30 30 30 34 4c 0d 0a 23 64 65 66 x00000004L..#def 9610: 69 6e 65 20 46 49 4e 44 5f 46 52 4f 4d 5f 53 54 ine FIND_FROM_ST 9620: 41 52 54 20 30 78 30 30 30 30 30 30 30 38 4c 0d ART 0x00000008L. 9630: 0a 0d 0a 23 64 65 66 69 6e 65 20 46 49 4e 44 5f ...#define FIND_ 9640: 54 59 50 45 20 20 20 20 20 20 20 30 78 30 30 30 TYPE 0x000 9650: 30 30 30 46 30 4c 0d 0a 23 64 65 66 69 6e 65 20 000F0L..#define 9660: 46 49 4e 44 5f 4b 45 59 20 20 20 20 20 20 20 20 FIND_KEY 9670: 30 78 30 30 30 30 30 30 31 30 4c 0d 0a 23 64 65 0x00000010L..#de 9680: 66 69 6e 65 20 46 49 4e 44 5f 41 4e 59 20 20 20 fine FIND_ANY 9690: 20 20 20 20 20 30 78 30 30 30 30 30 30 32 30 4c 0x00000020L 96a0: 0d 0a 23 64 65 66 69 6e 65 20 46 49 4e 44 5f 46 ..#define FIND_F 96b0: 4f 52 4d 41 54 20 20 20 20 20 30 78 30 30 30 30 ORMAT 0x0000 96c0: 30 30 34 30 4c 0d 0a 0d 0a 23 64 65 66 69 6e 65 0040L....#define 96d0: 20 46 49 4e 44 5f 52 45 54 20 20 20 20 20 20 20 FIND_RET 96e0: 20 30 78 30 30 30 30 46 30 30 30 4c 0d 0a 23 64 0x0000F000L..#d 96f0: 65 66 69 6e 65 20 46 49 4e 44 5f 50 4f 53 20 20 efine FIND_POS 9700: 20 20 20 20 20 20 30 78 30 30 30 30 30 30 30 30 0x00000000 9710: 4c 0d 0a 23 64 65 66 69 6e 65 20 46 49 4e 44 5f L..#define FIND_ 9720: 4c 45 4e 47 54 48 20 20 20 20 20 30 78 30 30 30 LENGTH 0x000 9730: 30 31 30 30 30 4c 0d 0a 23 64 65 66 69 6e 65 20 01000L..#define 9740: 46 49 4e 44 5f 4f 46 46 53 45 54 20 20 20 20 20 FIND_OFFSET 9750: 30 78 30 30 30 30 32 30 30 30 4c 0d 0a 23 64 65 0x00002000L..#de 9760: 66 69 6e 65 20 46 49 4e 44 5f 53 49 5a 45 20 20 fine FIND_SIZE 9770: 20 20 20 20 20 30 78 30 30 30 30 33 30 30 30 4c 0x00003000L 9780: 0d 0a 23 64 65 66 69 6e 65 20 46 49 4e 44 5f 49 ..#define FIND_I 9790: 4e 44 45 58 20 20 20 20 20 20 30 78 30 30 30 30 NDEX 0x0000 97a0: 34 30 30 30 4c 0d 0a 0d 0a 23 64 65 66 69 6e 65 4000L....#define 97b0: 20 41 56 49 53 74 72 65 61 6d 46 69 6e 64 4b 65 AVIStreamFindKe 97c0: 79 46 72 61 6d 65 20 41 56 49 53 74 72 65 61 6d yFrame AVIStream 97d0: 46 69 6e 64 53 61 6d 70 6c 65 0d 0a 23 64 65 66 FindSample..#def 97e0: 69 6e 65 20 46 69 6e 64 4b 65 79 46 72 61 6d 65 ine FindKeyFrame 97f0: 09 46 69 6e 64 53 61 6d 70 6c 65 0d 0a 0d 0a 23 .FindSample....# 9800: 64 65 66 69 6e 65 20 41 56 49 53 74 72 65 61 6d define AVIStream 9810: 43 6c 6f 73 65 20 41 56 49 53 74 72 65 61 6d 52 Close AVIStreamR 9820: 65 6c 65 61 73 65 0d 0a 23 64 65 66 69 6e 65 20 elease..#define 9830: 41 56 49 46 69 6c 65 43 6c 6f 73 65 20 20 20 41 AVIFileClose A 9840: 56 49 46 69 6c 65 52 65 6c 65 61 73 65 0d 0a 23 VIFileRelease..# 9850: 64 65 66 69 6e 65 20 41 56 49 53 74 72 65 61 6d define AVIStream 9860: 49 6e 69 74 20 20 41 56 49 46 69 6c 65 49 6e 69 Init AVIFileIni 9870: 74 0d 0a 23 64 65 66 69 6e 65 20 41 56 49 53 74 t..#define AVISt 9880: 72 65 61 6d 45 78 69 74 20 20 41 56 49 46 69 6c reamExit AVIFil 9890: 65 45 78 69 74 0d 0a 0d 0a 23 64 65 66 69 6e 65 eExit....#define 98a0: 20 53 45 41 52 43 48 5f 4e 45 41 52 45 53 54 20 SEARCH_NEAREST 98b0: 20 46 49 4e 44 5f 50 52 45 56 0d 0a 23 64 65 66 FIND_PREV..#def 98c0: 69 6e 65 20 53 45 41 52 43 48 5f 42 41 43 4b 57 ine SEARCH_BACKW 98d0: 41 52 44 20 46 49 4e 44 5f 50 52 45 56 0d 0a 23 ARD FIND_PREV..# 98e0: 64 65 66 69 6e 65 20 53 45 41 52 43 48 5f 46 4f define SEARCH_FO 98f0: 52 57 41 52 44 20 20 46 49 4e 44 5f 4e 45 58 54 RWARD FIND_NEXT 9900: 0d 0a 23 64 65 66 69 6e 65 20 53 45 41 52 43 48 ..#define SEARCH 9910: 5f 4b 45 59 20 20 20 20 20 20 46 49 4e 44 5f 4b _KEY FIND_K 9920: 45 59 0d 0a 23 64 65 66 69 6e 65 20 53 45 41 52 EY..#define SEAR 9930: 43 48 5f 41 4e 59 20 20 20 20 20 20 46 49 4e 44 CH_ANY FIND 9940: 5f 41 4e 59 0d 0a 0d 0a 23 64 65 66 69 6e 65 20 _ANY....#define 9950: 20 20 20 20 41 56 49 53 74 72 65 61 6d 53 61 6d AVIStreamSam 9960: 70 6c 65 54 6f 53 61 6d 70 6c 65 28 70 61 76 69 pleToSample(pavi 9970: 31 2c 20 70 61 76 69 32 2c 20 6c 29 20 20 20 20 1, pavi2, l) 9980: 20 20 20 20 20 20 20 20 41 56 49 53 74 72 65 61 AVIStrea 9990: 6d 54 69 6d 65 54 6f 53 61 6d 70 6c 65 28 70 61 mTimeToSample(pa 99a0: 76 69 31 2c 41 56 49 53 74 72 65 61 6d 53 61 6d vi1,AVIStreamSam 99b0: 70 6c 65 54 6f 54 69 6d 65 28 70 61 76 69 32 2c pleToTime(pavi2, 99c0: 20 6c 29 29 0d 0a 0d 0a 23 64 65 66 69 6e 65 20 l))....#define 99d0: 20 20 20 20 41 56 49 53 74 72 65 61 6d 4e 65 78 AVIStreamNex 99e0: 74 53 61 6d 70 6c 65 28 70 61 76 69 2c 20 6c 29 tSample(pavi, l) 99f0: 20 20 20 20 20 20 20 20 20 20 20 20 41 56 49 53 AVIS 9a00: 74 72 65 61 6d 46 69 6e 64 53 61 6d 70 6c 65 28 treamFindSample( 9a10: 70 61 76 69 2c 6c 2b 31 2c 46 49 4e 44 5f 4e 45 pavi,l+1,FIND_NE 9a20: 58 54 7c 46 49 4e 44 5f 41 4e 59 29 0d 0a 0d 0a XT|FIND_ANY).... 9a30: 23 64 65 66 69 6e 65 20 20 20 20 20 41 56 49 53 #define AVIS 9a40: 74 72 65 61 6d 50 72 65 76 53 61 6d 70 6c 65 28 treamPrevSample( 9a50: 70 61 76 69 2c 20 6c 29 20 20 20 20 20 20 20 20 pavi, l) 9a60: 20 20 20 20 41 56 49 53 74 72 65 61 6d 46 69 6e AVIStreamFin 9a70: 64 53 61 6d 70 6c 65 28 70 61 76 69 2c 6c 2d 31 dSample(pavi,l-1 9a80: 2c 46 49 4e 44 5f 50 52 45 56 7c 46 49 4e 44 5f ,FIND_PREV|FIND_ 9a90: 41 4e 59 29 0d 0a 0d 0a 23 64 65 66 69 6e 65 20 ANY)....#define 9aa0: 20 20 20 20 41 56 49 53 74 72 65 61 6d 4e 65 61 AVIStreamNea 9ab0: 72 65 73 74 53 61 6d 70 6c 65 28 70 61 76 69 2c restSample(pavi, 9ac0: 20 6c 29 20 20 20 20 20 20 20 20 20 20 20 20 41 l) A 9ad0: 56 49 53 74 72 65 61 6d 46 69 6e 64 53 61 6d 70 VIStreamFindSamp 9ae0: 6c 65 28 70 61 76 69 2c 6c 2c 46 49 4e 44 5f 50 le(pavi,l,FIND_P 9af0: 52 45 56 7c 46 49 4e 44 5f 41 4e 59 29 0d 0a 0d REV|FIND_ANY)... 9b00: 0a 23 64 65 66 69 6e 65 20 20 20 20 20 41 56 49 .#define AVI 9b10: 53 74 72 65 61 6d 4e 65 78 74 4b 65 79 46 72 61 StreamNextKeyFra 9b20: 6d 65 28 70 61 76 69 2c 6c 29 20 20 20 20 20 20 me(pavi,l) 9b30: 20 20 20 20 20 20 41 56 49 53 74 72 65 61 6d 46 AVIStreamF 9b40: 69 6e 64 53 61 6d 70 6c 65 28 70 61 76 69 2c 6c indSample(pavi,l 9b50: 2b 31 2c 46 49 4e 44 5f 4e 45 58 54 7c 46 49 4e +1,FIND_NEXT|FIN 9b60: 44 5f 4b 45 59 29 0d 0a 0d 0a 23 64 65 66 69 6e D_KEY)....#defin 9b70: 65 20 20 20 20 20 41 56 49 53 74 72 65 61 6d 50 e AVIStreamP 9b80: 72 65 76 4b 65 79 46 72 61 6d 65 28 70 61 76 69 revKeyFrame(pavi 9b90: 2c 20 6c 29 20 20 20 20 20 20 20 20 20 20 20 20 , l) 9ba0: 41 56 49 53 74 72 65 61 6d 46 69 6e 64 53 61 6d AVIStreamFindSam 9bb0: 70 6c 65 28 70 61 76 69 2c 6c 2d 31 2c 46 49 4e ple(pavi,l-1,FIN 9bc0: 44 5f 50 52 45 56 7c 46 49 4e 44 5f 4b 45 59 29 D_PREV|FIND_KEY) 9bd0: 0d 0a 0d 0a 23 64 65 66 69 6e 65 20 20 20 20 20 ....#define 9be0: 41 56 49 53 74 72 65 61 6d 4e 65 61 72 65 73 74 AVIStreamNearest 9bf0: 4b 65 79 46 72 61 6d 65 28 70 61 76 69 2c 20 6c KeyFrame(pavi, l 9c00: 29 20 20 20 20 20 20 20 20 20 20 20 20 41 56 49 ) AVI 9c10: 53 74 72 65 61 6d 46 69 6e 64 53 61 6d 70 6c 65 StreamFindSample 9c20: 28 70 61 76 69 2c 6c 2c 46 49 4e 44 5f 50 52 45 (pavi,l,FIND_PRE 9c30: 56 7c 46 49 4e 44 5f 4b 45 59 29 0d 0a 0d 0a 23 V|FIND_KEY)....# 9c40: 64 65 66 69 6e 65 20 20 20 20 20 41 56 49 53 74 define AVISt 9c50: 72 65 61 6d 49 73 4b 65 79 46 72 61 6d 65 28 70 reamIsKeyFrame(p 9c60: 61 76 69 2c 20 6c 29 20 20 20 20 20 20 20 20 20 avi, l) 9c70: 20 20 20 28 41 56 49 53 74 72 65 61 6d 4e 65 61 (AVIStreamNea 9c80: 72 65 73 74 4b 65 79 46 72 61 6d 65 28 70 61 76 restKeyFrame(pav 9c90: 69 2c 6c 29 20 3d 3d 20 6c 29 0d 0a 0d 0a 23 64 i,l) == l)....#d 9ca0: 65 66 69 6e 65 20 20 20 20 20 41 56 49 53 74 72 efine AVIStr 9cb0: 65 61 6d 50 72 65 76 53 61 6d 70 6c 65 54 69 6d eamPrevSampleTim 9cc0: 65 28 70 61 76 69 2c 20 74 29 20 20 20 20 20 20 e(pavi, t) 9cd0: 20 20 20 20 20 20 41 56 49 53 74 72 65 61 6d 53 AVIStreamS 9ce0: 61 6d 70 6c 65 54 6f 54 69 6d 65 28 70 61 76 69 ampleToTime(pavi 9cf0: 2c 20 41 56 49 53 74 72 65 61 6d 50 72 65 76 53 , AVIStreamPrevS 9d00: 61 6d 70 6c 65 28 70 61 76 69 2c 41 56 49 53 74 ample(pavi,AVISt 9d10: 72 65 61 6d 54 69 6d 65 54 6f 53 61 6d 70 6c 65 reamTimeToSample 9d20: 28 70 61 76 69 2c 74 29 29 29 0d 0a 0d 0a 23 64 (pavi,t)))....#d 9d30: 65 66 69 6e 65 20 20 20 20 20 41 56 49 53 74 72 efine AVIStr 9d40: 65 61 6d 4e 65 78 74 53 61 6d 70 6c 65 54 69 6d eamNextSampleTim 9d50: 65 28 70 61 76 69 2c 20 74 29 20 20 20 20 20 20 e(pavi, t) 9d60: 20 20 20 20 20 20 41 56 49 53 74 72 65 61 6d 53 AVIStreamS 9d70: 61 6d 70 6c 65 54 6f 54 69 6d 65 28 70 61 76 69 ampleToTime(pavi 9d80: 2c 20 41 56 49 53 74 72 65 61 6d 4e 65 78 74 53 , AVIStreamNextS 9d90: 61 6d 70 6c 65 28 70 61 76 69 2c 41 56 49 53 74 ample(pavi,AVISt 9da0: 72 65 61 6d 54 69 6d 65 54 6f 53 61 6d 70 6c 65 reamTimeToSample 9db0: 28 70 61 76 69 2c 74 29 29 29 0d 0a 0d 0a 23 64 (pavi,t)))....#d 9dc0: 65 66 69 6e 65 20 20 20 20 20 41 56 49 53 74 72 efine AVIStr 9dd0: 65 61 6d 4e 65 61 72 65 73 74 53 61 6d 70 6c 65 eamNearestSample 9de0: 54 69 6d 65 28 70 61 76 69 2c 20 74 29 20 20 20 Time(pavi, t) 9df0: 20 20 20 20 20 20 20 20 20 41 56 49 53 74 72 65 AVIStre 9e00: 61 6d 53 61 6d 70 6c 65 54 6f 54 69 6d 65 28 70 amSampleToTime(p 9e10: 61 76 69 2c 20 41 56 49 53 74 72 65 61 6d 4e 65 avi, AVIStreamNe 9e20: 61 72 65 73 74 53 61 6d 70 6c 65 28 70 61 76 69 arestSample(pavi 9e30: 2c 41 56 49 53 74 72 65 61 6d 54 69 6d 65 54 6f ,AVIStreamTimeTo 9e40: 53 61 6d 70 6c 65 28 70 61 76 69 2c 74 29 29 29 Sample(pavi,t))) 9e50: 0d 0a 0d 0a 23 64 65 66 69 6e 65 20 20 20 20 20 ....#define 9e60: 41 56 49 53 74 72 65 61 6d 4e 65 78 74 4b 65 79 AVIStreamNextKey 9e70: 46 72 61 6d 65 54 69 6d 65 28 70 61 76 69 2c 20 FrameTime(pavi, 9e80: 74 29 20 20 20 20 20 20 20 20 20 20 20 20 41 56 t) AV 9e90: 49 53 74 72 65 61 6d 53 61 6d 70 6c 65 54 6f 54 IStreamSampleToT 9ea0: 69 6d 65 28 70 61 76 69 2c 20 41 56 49 53 74 72 ime(pavi, AVIStr 9eb0: 65 61 6d 4e 65 78 74 4b 65 79 46 72 61 6d 65 28 eamNextKeyFrame( 9ec0: 70 61 76 69 2c 41 56 49 53 74 72 65 61 6d 54 69 pavi,AVIStreamTi 9ed0: 6d 65 54 6f 53 61 6d 70 6c 65 28 70 61 76 69 2c meToSample(pavi, 9ee0: 20 74 29 29 29 0d 0a 0d 0a 23 64 65 66 69 6e 65 t)))....#define 9ef0: 20 20 20 20 20 41 56 49 53 74 72 65 61 6d 50 72 AVIStreamPr 9f00: 65 76 4b 65 79 46 72 61 6d 65 54 69 6d 65 28 70 evKeyFrameTime(p 9f10: 61 76 69 2c 20 74 29 20 20 20 20 20 20 20 20 20 avi, t) 9f20: 20 20 20 41 56 49 53 74 72 65 61 6d 53 61 6d 70 AVIStreamSamp 9f30: 6c 65 54 6f 54 69 6d 65 28 70 61 76 69 2c 20 41 leToTime(pavi, A 9f40: 56 49 53 74 72 65 61 6d 50 72 65 76 4b 65 79 46 VIStreamPrevKeyF 9f50: 72 61 6d 65 28 70 61 76 69 2c 41 56 49 53 74 72 rame(pavi,AVIStr 9f60: 65 61 6d 54 69 6d 65 54 6f 53 61 6d 70 6c 65 28 eamTimeToSample( 9f70: 70 61 76 69 2c 20 74 29 29 29 0d 0a 0d 0a 23 64 pavi, t)))....#d 9f80: 65 66 69 6e 65 20 20 20 20 20 41 56 49 53 74 72 efine AVIStr 9f90: 65 61 6d 4e 65 61 72 65 73 74 4b 65 79 46 72 61 eamNearestKeyFra 9fa0: 6d 65 54 69 6d 65 28 70 61 76 69 2c 20 74 29 20 meTime(pavi, t) 9fb0: 20 20 20 20 20 20 20 20 20 20 20 41 56 49 53 74 AVISt 9fc0: 72 65 61 6d 53 61 6d 70 6c 65 54 6f 54 69 6d 65 reamSampleToTime 9fd0: 28 70 61 76 69 2c 20 41 56 49 53 74 72 65 61 6d (pavi, AVIStream 9fe0: 4e 65 61 72 65 73 74 4b 65 79 46 72 61 6d 65 28 NearestKeyFrame( 9ff0: 70 61 76 69 2c 41 56 49 53 74 72 65 61 6d 54 69 pavi,AVIStreamTi a000: 6d 65 54 6f 53 61 6d 70 6c 65 28 70 61 76 69 2c meToSample(pavi, a010: 20 74 29 29 29 0d 0a 0d 0a 23 64 65 66 69 6e 65 t)))....#define a020: 20 20 20 20 20 41 56 49 53 74 72 65 61 6d 53 74 AVIStreamSt a030: 61 72 74 54 69 6d 65 28 70 61 76 69 29 20 20 20 artTime(pavi) a040: 20 20 20 20 20 20 20 20 20 41 56 49 53 74 72 65 AVIStre a050: 61 6d 53 61 6d 70 6c 65 54 6f 54 69 6d 65 28 70 amSampleToTime(p a060: 61 76 69 2c 20 41 56 49 53 74 72 65 61 6d 53 74 avi, AVIStreamSt a070: 61 72 74 28 70 61 76 69 29 29 0d 0a 0d 0a 23 64 art(pavi))....#d a080: 65 66 69 6e 65 20 20 20 20 20 41 56 49 53 74 72 efine AVIStr a090: 65 61 6d 4c 65 6e 67 74 68 54 69 6d 65 28 70 61 eamLengthTime(pa a0a0: 76 69 29 20 20 20 20 20 20 20 20 20 20 20 20 41 vi) A a0b0: 56 49 53 74 72 65 61 6d 53 61 6d 70 6c 65 54 6f VIStreamSampleTo a0c0: 54 69 6d 65 28 70 61 76 69 2c 20 41 56 49 53 74 Time(pavi, AVISt a0d0: 72 65 61 6d 4c 65 6e 67 74 68 28 70 61 76 69 29 reamLength(pavi) a0e0: 29 0d 0a 0d 0a 23 64 65 66 69 6e 65 20 20 20 20 )....#define a0f0: 20 41 56 49 53 74 72 65 61 6d 45 6e 64 28 70 61 AVIStreamEnd(pa a100: 76 69 29 20 20 20 20 20 20 20 20 20 20 20 20 28 vi) ( a110: 41 56 49 53 74 72 65 61 6d 53 74 61 72 74 28 70 AVIStreamStart(p a120: 61 76 69 29 20 2b 20 41 56 49 53 74 72 65 61 6d avi) + AVIStream a130: 4c 65 6e 67 74 68 28 70 61 76 69 29 29 0d 0a 0d Length(pavi))... a140: 0a 23 64 65 66 69 6e 65 20 20 20 20 20 41 56 49 .#define AVI a150: 53 74 72 65 61 6d 45 6e 64 54 69 6d 65 28 70 61 StreamEndTime(pa a160: 76 69 29 20 20 20 20 20 20 20 20 20 20 20 20 41 vi) A a170: 56 49 53 74 72 65 61 6d 53 61 6d 70 6c 65 54 6f VIStreamSampleTo a180: 54 69 6d 65 28 70 61 76 69 2c 20 41 56 49 53 74 Time(pavi, AVISt a190: 72 65 61 6d 45 6e 64 28 70 61 76 69 29 29 0d 0a reamEnd(pavi)).. a1a0: 0d 0a 23 64 65 66 69 6e 65 20 20 20 20 20 41 56 ..#define AV a1b0: 49 53 74 72 65 61 6d 53 61 6d 70 6c 65 53 69 7a IStreamSampleSiz a1c0: 65 28 70 61 76 69 2c 20 6c 50 6f 73 2c 20 70 6c e(pavi, lPos, pl a1d0: 53 69 7a 65 29 09 20 20 20 20 41 56 49 53 74 72 Size). AVIStr a1e0: 65 61 6d 52 65 61 64 28 70 61 76 69 2c 6c 50 6f eamRead(pavi,lPo a1f0: 73 2c 31 2c 4e 55 4c 4c 2c 30 2c 70 6c 53 69 7a s,1,NULL,0,plSiz a200: 65 2c 4e 55 4c 4c 29 0d 0a 0d 0a 23 64 65 66 69 e,NULL)....#defi a210: 6e 65 20 20 20 20 20 41 56 49 53 74 72 65 61 6d ne AVIStream a220: 46 6f 72 6d 61 74 53 69 7a 65 28 70 61 76 69 2c FormatSize(pavi, a230: 20 6c 50 6f 73 2c 20 70 6c 53 69 7a 65 29 20 20 lPos, plSize) a240: 20 20 20 20 20 20 20 20 20 20 41 56 49 53 74 72 AVIStr a250: 65 61 6d 52 65 61 64 46 6f 72 6d 61 74 28 70 61 eamReadFormat(pa a260: 76 69 2c 6c 50 6f 73 2c 4e 55 4c 4c 2c 70 6c 53 vi,lPos,NULL,plS a270: 69 7a 65 29 0d 0a 0d 0a 23 64 65 66 69 6e 65 20 ize)....#define a280: 20 20 20 20 41 56 49 53 74 72 65 61 6d 44 61 74 AVIStreamDat a290: 61 53 69 7a 65 28 70 61 76 69 2c 20 66 63 63 2c aSize(pavi, fcc, a2a0: 20 70 6c 53 69 7a 65 29 20 20 20 20 20 20 20 20 plSize) a2b0: 20 20 20 20 41 56 49 53 74 72 65 61 6d 52 65 61 AVIStreamRea a2c0: 64 44 61 74 61 28 70 61 76 69 2c 66 63 63 2c 4e dData(pavi,fcc,N a2d0: 55 4c 4c 2c 70 6c 53 69 7a 65 29 0d 0a 0d 0a 23 ULL,plSize)....# a2e0: 69 66 6e 64 65 66 20 63 6f 6d 70 74 79 70 65 44 ifndef comptypeD a2f0: 49 42 0d 0a 23 64 65 66 69 6e 65 20 63 6f 6d 70 IB..#define comp a300: 74 79 70 65 44 49 42 20 20 20 20 20 20 20 20 20 typeDIB a310: 6d 6d 69 6f 46 4f 55 52 43 43 28 27 44 27 2c 20 mmioFOURCC('D', a320: 27 49 27 2c 20 27 42 27 2c 20 27 20 27 29 0d 0a 'I', 'B', ' ').. a330: 23 65 6e 64 69 66 0d 0a 0d 0a 53 54 44 41 50 49 #endif....STDAPI a340: 20 41 56 49 4d 61 6b 65 43 6f 6d 70 72 65 73 73 AVIMakeCompress a350: 65 64 53 74 72 65 61 6d 28 0d 0a 09 09 50 41 56 edStream(....PAV a360: 49 53 54 52 45 41 4d 20 46 41 52 20 2a 09 20 20 ISTREAM FAR *. a370: 20 20 70 70 73 43 6f 6d 70 72 65 73 73 65 64 2c ppsCompressed, a380: 0d 0a 09 09 50 41 56 49 53 54 52 45 41 4d 09 09 ....PAVISTREAM.. a390: 20 20 20 20 70 70 73 53 6f 75 72 63 65 2c 0d 0a ppsSource,.. a3a0: 09 09 41 56 49 43 4f 4d 50 52 45 53 53 4f 50 54 ..AVICOMPRESSOPT a3b0: 49 4f 4e 53 20 46 41 52 20 2a 20 20 20 20 6c 70 IONS FAR * lp a3c0: 4f 70 74 69 6f 6e 73 2c 0d 0a 09 09 43 4c 53 49 Options,....CLSI a3d0: 44 20 46 41 52 20 2a 70 63 6c 73 69 64 48 61 6e D FAR *pclsidHan a3e0: 64 6c 65 72 29 3b 0d 0a 0d 0a 45 58 54 45 52 4e dler);....EXTERN a3f0: 5f 43 20 48 52 45 53 55 4c 54 20 43 44 45 43 4c _C HRESULT CDECL a400: 20 41 56 49 53 61 76 65 41 20 28 4c 50 43 53 54 AVISaveA (LPCST a410: 52 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 R a420: 73 7a 46 69 6c 65 2c 0d 0a 09 09 43 4c 53 49 44 szFile,....CLSID a430: 20 46 41 52 20 2a 70 63 6c 73 69 64 48 61 6e 64 FAR *pclsidHand a440: 6c 65 72 2c 0d 0a 09 09 41 56 49 53 41 56 45 43 ler,....AVISAVEC a450: 41 4c 4c 42 41 43 4b 20 20 20 20 20 6c 70 66 6e ALLBACK lpfn a460: 43 61 6c 6c 62 61 63 6b 2c 0d 0a 09 09 69 6e 74 Callback,....int a470: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 a480: 20 6e 53 74 72 65 61 6d 73 2c 0d 0a 09 09 50 41 nStreams,....PA a490: 56 49 53 54 52 45 41 4d 09 20 20 20 20 70 66 69 VISTREAM. pfi a4a0: 6c 65 2c 0d 0a 09 09 4c 50 41 56 49 43 4f 4d 50 le,....LPAVICOMP a4b0: 52 45 53 53 4f 50 54 49 4f 4e 53 20 6c 70 4f 70 RESSOPTIONS lpOp a4c0: 74 69 6f 6e 73 2c 0d 0a 09 09 2e 2e 2e 29 3b 0d tions,.......);. a4d0: 0a 0d 0a 53 54 44 41 50 49 20 41 56 49 53 61 76 ...STDAPI AVISav a4e0: 65 56 41 28 4c 50 43 53 54 52 20 20 20 20 20 20 eVA(LPCSTR a4f0: 20 20 20 20 20 20 20 20 20 73 7a 46 69 6c 65 2c szFile, a500: 0d 0a 09 09 43 4c 53 49 44 20 46 41 52 20 2a 70 ....CLSID FAR *p a510: 63 6c 73 69 64 48 61 6e 64 6c 65 72 2c 0d 0a 09 clsidHandler,... a520: 09 41 56 49 53 41 56 45 43 41 4c 4c 42 41 43 4b .AVISAVECALLBACK a530: 20 20 20 20 20 6c 70 66 6e 43 61 6c 6c 62 61 63 lpfnCallbac a540: 6b 2c 0d 0a 09 09 69 6e 74 20 20 20 20 20 20 20 k,....int a550: 20 20 20 20 20 20 20 20 20 20 6e 53 74 72 65 61 nStrea a560: 6d 73 2c 0d 0a 09 09 50 41 56 49 53 54 52 45 41 ms,....PAVISTREA a570: 4d 20 46 41 52 20 2a 20 20 20 20 70 70 61 76 69 M FAR * ppavi a580: 2c 0d 0a 09 09 4c 50 41 56 49 43 4f 4d 50 52 45 ,....LPAVICOMPRE a590: 53 53 4f 50 54 49 4f 4e 53 20 46 41 52 20 2a 70 SSOPTIONS FAR *p a5a0: 6c 70 4f 70 74 69 6f 6e 73 29 3b 0d 0a 45 58 54 lpOptions);..EXT a5b0: 45 52 4e 5f 43 20 48 52 45 53 55 4c 54 20 43 44 ERN_C HRESULT CD a5c0: 45 43 4c 20 41 56 49 53 61 76 65 57 20 28 4c 50 ECL AVISaveW (LP a5d0: 43 57 53 54 52 20 20 20 20 20 20 20 20 20 20 20 CWSTR a5e0: 20 20 20 20 73 7a 46 69 6c 65 2c 0d 0a 09 09 43 szFile,....C a5f0: 4c 53 49 44 20 46 41 52 20 2a 70 63 6c 73 69 64 LSID FAR *pclsid a600: 48 61 6e 64 6c 65 72 2c 0d 0a 09 09 41 56 49 53 Handler,....AVIS a610: 41 56 45 43 41 4c 4c 42 41 43 4b 20 20 20 20 20 AVECALLBACK a620: 6c 70 66 6e 43 61 6c 6c 62 61 63 6b 2c 0d 0a 09 lpfnCallback,... a630: 09 69 6e 74 20 20 20 20 20 20 20 20 20 20 20 20 .int a640: 20 20 20 20 20 6e 53 74 72 65 61 6d 73 2c 0d 0a nStreams,.. a650: 09 09 50 41 56 49 53 54 52 45 41 4d 09 20 20 20 ..PAVISTREAM. a660: 20 70 66 69 6c 65 2c 0d 0a 09 09 4c 50 41 56 49 pfile,....LPAVI a670: 43 4f 4d 50 52 45 53 53 4f 50 54 49 4f 4e 53 20 COMPRESSOPTIONS a680: 6c 70 4f 70 74 69 6f 6e 73 2c 0d 0a 09 09 2e 2e lpOptions,...... a690: 2e 29 3b 0d 0a 0d 0a 53 54 44 41 50 49 20 41 56 .);....STDAPI AV a6a0: 49 53 61 76 65 56 57 28 4c 50 43 57 53 54 52 20 ISaveVW(LPCWSTR a6b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 73 7a sz a6c0: 46 69 6c 65 2c 0d 0a 09 09 43 4c 53 49 44 20 46 File,....CLSID F a6d0: 41 52 20 2a 70 63 6c 73 69 64 48 61 6e 64 6c 65 AR *pclsidHandle a6e0: 72 2c 0d 0a 09 09 41 56 49 53 41 56 45 43 41 4c r,....AVISAVECAL a6f0: 4c 42 41 43 4b 20 20 20 20 20 6c 70 66 6e 43 61 LBACK lpfnCa a700: 6c 6c 62 61 63 6b 2c 0d 0a 09 09 69 6e 74 20 20 llback,....int a710: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 6e n a720: 53 74 72 65 61 6d 73 2c 0d 0a 09 09 50 41 56 49 Streams,....PAVI a730: 53 54 52 45 41 4d 20 46 41 52 20 2a 20 20 20 20 STREAM FAR * a740: 70 70 61 76 69 2c 0d 0a 09 09 4c 50 41 56 49 43 ppavi,....LPAVIC a750: 4f 4d 50 52 45 53 53 4f 50 54 49 4f 4e 53 20 46 OMPRESSOPTIONS F a760: 41 52 20 2a 70 6c 70 4f 70 74 69 6f 6e 73 29 3b AR *plpOptions); a770: 0d 0a 23 69 66 64 65 66 20 55 4e 49 43 4f 44 45 ..#ifdef UNICODE a780: 0d 0a 23 64 65 66 69 6e 65 20 41 56 49 53 61 76 ..#define AVISav a790: 65 09 09 41 56 49 53 61 76 65 57 0d 0a 23 64 65 e..AVISaveW..#de a7a0: 66 69 6e 65 20 41 56 49 53 61 76 65 56 09 41 56 fine AVISaveV.AV a7b0: 49 53 61 76 65 56 57 0d 0a 23 65 6c 73 65 0d 0a ISaveVW..#else.. a7c0: 23 64 65 66 69 6e 65 20 41 56 49 53 61 76 65 09 #define AVISave. a7d0: 09 41 56 49 53 61 76 65 41 0d 0a 23 64 65 66 69 .AVISaveA..#defi a7e0: 6e 65 20 41 56 49 53 61 76 65 56 09 41 56 49 53 ne AVISaveV.AVIS a7f0: 61 76 65 56 41 0d 0a 23 65 6e 64 69 66 0d 0a 0d aveVA..#endif... a800: 0a 0d 0a 0d 0a 53 54 44 41 50 49 5f 28 49 4e 54 .....STDAPI_(INT a810: 5f 50 54 52 29 20 41 56 49 53 61 76 65 4f 70 74 _PTR) AVISaveOpt a820: 69 6f 6e 73 28 48 57 4e 44 20 68 77 6e 64 2c 0d ions(HWND hwnd,. a830: 0a 09 09 09 20 20 20 20 20 55 49 4e 54 09 75 69 .... UINT.ui a840: 46 6c 61 67 73 2c 0d 0a 09 09 09 20 20 20 20 20 Flags,..... a850: 69 6e 74 09 6e 53 74 72 65 61 6d 73 2c 0d 0a 09 int.nStreams,... a860: 09 09 20 20 20 20 20 50 41 56 49 53 54 52 45 41 .. PAVISTREA a870: 4d 20 46 41 52 20 2a 70 70 61 76 69 2c 0d 0a 09 M FAR *ppavi,... a880: 09 09 20 20 20 20 20 4c 50 41 56 49 43 4f 4d 50 .. LPAVICOMP a890: 52 45 53 53 4f 50 54 49 4f 4e 53 20 46 41 52 20 RESSOPTIONS FAR a8a0: 2a 70 6c 70 4f 70 74 69 6f 6e 73 29 3b 0d 0a 0d *plpOptions);... a8b0: 0a 53 54 44 41 50 49 20 41 56 49 53 61 76 65 4f .STDAPI AVISaveO a8c0: 70 74 69 6f 6e 73 46 72 65 65 28 69 6e 74 20 6e ptionsFree(int n a8d0: 53 74 72 65 61 6d 73 2c 0d 0a 09 09 09 20 20 20 Streams,..... a8e0: 20 20 4c 50 41 56 49 43 4f 4d 50 52 45 53 53 4f LPAVICOMPRESSO a8f0: 50 54 49 4f 4e 53 20 46 41 52 20 2a 70 6c 70 4f PTIONS FAR *plpO a900: 70 74 69 6f 6e 73 29 3b 0d 0a 0d 0a 53 54 44 41 ptions);....STDA a910: 50 49 20 41 56 49 42 75 69 6c 64 46 69 6c 74 65 PI AVIBuildFilte a920: 72 57 28 4c 50 57 53 54 52 20 6c 70 73 7a 46 69 rW(LPWSTR lpszFi a930: 6c 74 65 72 2c 20 4c 4f 4e 47 20 63 62 46 69 6c lter, LONG cbFil a940: 74 65 72 2c 20 42 4f 4f 4c 20 66 53 61 76 69 6e ter, BOOL fSavin a950: 67 29 3b 0d 0a 53 54 44 41 50 49 20 41 56 49 42 g);..STDAPI AVIB a960: 75 69 6c 64 46 69 6c 74 65 72 41 28 4c 50 53 54 uildFilterA(LPST a970: 52 20 6c 70 73 7a 46 69 6c 74 65 72 2c 20 4c 4f R lpszFilter, LO a980: 4e 47 20 63 62 46 69 6c 74 65 72 2c 20 42 4f 4f NG cbFilter, BOO a990: 4c 20 66 53 61 76 69 6e 67 29 3b 0d 0a 23 69 66 L fSaving);..#if a9a0: 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 23 64 65 def UNICODE..#de a9b0: 66 69 6e 65 20 41 56 49 42 75 69 6c 64 46 69 6c fine AVIBuildFil a9c0: 74 65 72 09 41 56 49 42 75 69 6c 64 46 69 6c 74 ter.AVIBuildFilt a9d0: 65 72 57 0d 0a 23 65 6c 73 65 0d 0a 23 64 65 66 erW..#else..#def a9e0: 69 6e 65 20 41 56 49 42 75 69 6c 64 46 69 6c 74 ine AVIBuildFilt a9f0: 65 72 09 41 56 49 42 75 69 6c 64 46 69 6c 74 65 er.AVIBuildFilte aa00: 72 41 0d 0a 23 65 6e 64 69 66 0d 0a 53 54 44 41 rA..#endif..STDA aa10: 50 49 20 41 56 49 4d 61 6b 65 46 69 6c 65 46 72 PI AVIMakeFileFr aa20: 6f 6d 53 74 72 65 61 6d 73 28 50 41 56 49 46 49 omStreams(PAVIFI aa30: 4c 45 20 46 41 52 20 2a 09 70 70 66 69 6c 65 2c LE FAR *.ppfile, aa40: 0d 0a 09 09 09 20 20 20 20 20 20 20 69 6e 74 09 ..... int. aa50: 09 6e 53 74 72 65 61 6d 73 2c 0d 0a 09 09 09 20 .nStreams,..... aa60: 20 20 20 20 20 20 50 41 56 49 53 54 52 45 41 4d PAVISTREAM aa70: 20 46 41 52 20 2a 09 70 61 70 53 74 72 65 61 6d FAR *.papStream aa80: 73 29 3b 0d 0a 0d 0a 53 54 44 41 50 49 20 41 56 s);....STDAPI AV aa90: 49 4d 61 6b 65 53 74 72 65 61 6d 46 72 6f 6d 43 IMakeStreamFromC aaa0: 6c 69 70 62 6f 61 72 64 28 55 49 4e 54 20 63 66 lipboard(UINT cf aab0: 46 6f 72 6d 61 74 2c 20 48 41 4e 44 4c 45 20 68 Format, HANDLE h aac0: 47 6c 6f 62 61 6c 2c 20 50 41 56 49 53 54 52 45 Global, PAVISTRE aad0: 41 4d 20 46 41 52 20 2a 70 70 73 74 72 65 61 6d AM FAR *ppstream aae0: 29 3b 0d 0a 0d 0a 53 54 44 41 50 49 20 41 56 49 );....STDAPI AVI aaf0: 50 75 74 46 69 6c 65 4f 6e 43 6c 69 70 62 6f 61 PutFileOnClipboa ab00: 72 64 28 50 41 56 49 46 49 4c 45 20 70 66 29 3b rd(PAVIFILE pf); ab10: 0d 0a 0d 0a 53 54 44 41 50 49 20 41 56 49 47 65 ....STDAPI AVIGe ab20: 74 46 72 6f 6d 43 6c 69 70 62 6f 61 72 64 28 50 tFromClipboard(P ab30: 41 56 49 46 49 4c 45 20 46 41 52 20 2a 20 6c 70 AVIFILE FAR * lp ab40: 70 66 29 3b 0d 0a 0d 0a 53 54 44 41 50 49 20 41 pf);....STDAPI A ab50: 56 49 43 6c 65 61 72 43 6c 69 70 62 6f 61 72 64 VIClearClipboard ab60: 28 76 6f 69 64 29 3b 0d 0a 0d 0a 53 54 44 41 50 (void);....STDAP ab70: 49 20 43 72 65 61 74 65 45 64 69 74 61 62 6c 65 I CreateEditable ab80: 53 74 72 65 61 6d 28 0d 0a 09 09 50 41 56 49 53 Stream(....PAVIS ab90: 54 52 45 41 4d 20 46 41 52 20 2a 09 20 20 20 20 TREAM FAR *. aba0: 70 70 73 45 64 69 74 61 62 6c 65 2c 0d 0a 09 09 ppsEditable,.... abb0: 50 41 56 49 53 54 52 45 41 4d 09 09 20 20 20 20 PAVISTREAM.. abc0: 70 73 53 6f 75 72 63 65 29 3b 0d 0a 0d 0a 53 54 psSource);....ST abd0: 44 41 50 49 20 45 64 69 74 53 74 72 65 61 6d 43 DAPI EditStreamC abe0: 75 74 28 50 41 56 49 53 54 52 45 41 4d 20 70 61 ut(PAVISTREAM pa abf0: 76 69 2c 20 4c 4f 4e 47 20 46 41 52 20 2a 70 6c vi, LONG FAR *pl ac00: 53 74 61 72 74 2c 20 4c 4f 4e 47 20 46 41 52 20 Start, LONG FAR ac10: 2a 70 6c 4c 65 6e 67 74 68 2c 20 50 41 56 49 53 *plLength, PAVIS ac20: 54 52 45 41 4d 20 46 41 52 20 2a 20 70 70 52 65 TREAM FAR * ppRe ac30: 73 75 6c 74 29 3b 0d 0a 0d 0a 53 54 44 41 50 49 sult);....STDAPI ac40: 20 45 64 69 74 53 74 72 65 61 6d 43 6f 70 79 28 EditStreamCopy( ac50: 50 41 56 49 53 54 52 45 41 4d 20 70 61 76 69 2c PAVISTREAM pavi, ac60: 20 4c 4f 4e 47 20 46 41 52 20 2a 70 6c 53 74 61 LONG FAR *plSta ac70: 72 74 2c 20 4c 4f 4e 47 20 46 41 52 20 2a 70 6c rt, LONG FAR *pl ac80: 4c 65 6e 67 74 68 2c 20 50 41 56 49 53 54 52 45 Length, PAVISTRE ac90: 41 4d 20 46 41 52 20 2a 20 70 70 52 65 73 75 6c AM FAR * ppResul aca0: 74 29 3b 0d 0a 0d 0a 53 54 44 41 50 49 20 45 64 t);....STDAPI Ed acb0: 69 74 53 74 72 65 61 6d 50 61 73 74 65 28 50 41 itStreamPaste(PA acc0: 56 49 53 54 52 45 41 4d 20 70 61 76 69 2c 20 4c VISTREAM pavi, L acd0: 4f 4e 47 20 46 41 52 20 2a 70 6c 50 6f 73 2c 20 ONG FAR *plPos, ace0: 4c 4f 4e 47 20 46 41 52 20 2a 70 6c 4c 65 6e 67 LONG FAR *plLeng acf0: 74 68 2c 20 50 41 56 49 53 54 52 45 41 4d 20 70 th, PAVISTREAM p ad00: 73 74 72 65 61 6d 2c 20 4c 4f 4e 47 20 6c 53 74 stream, LONG lSt ad10: 61 72 74 2c 20 4c 4f 4e 47 20 6c 45 6e 64 29 3b art, LONG lEnd); ad20: 0d 0a 0d 0a 53 54 44 41 50 49 20 45 64 69 74 53 ....STDAPI EditS ad30: 74 72 65 61 6d 43 6c 6f 6e 65 28 50 41 56 49 53 treamClone(PAVIS ad40: 54 52 45 41 4d 20 70 61 76 69 2c 20 50 41 56 49 TREAM pavi, PAVI ad50: 53 54 52 45 41 4d 20 46 41 52 20 2a 70 70 52 65 STREAM FAR *ppRe ad60: 73 75 6c 74 29 3b 0d 0a 0d 0a 0d 0a 53 54 44 41 sult);......STDA ad70: 50 49 20 45 64 69 74 53 74 72 65 61 6d 53 65 74 PI EditStreamSet ad80: 4e 61 6d 65 41 28 50 41 56 49 53 54 52 45 41 4d NameA(PAVISTREAM ad90: 20 70 61 76 69 2c 20 4c 50 43 53 54 52 20 6c 70 pavi, LPCSTR lp ada0: 73 7a 4e 61 6d 65 29 3b 0d 0a 53 54 44 41 50 49 szName);..STDAPI adb0: 20 45 64 69 74 53 74 72 65 61 6d 53 65 74 4e 61 EditStreamSetNa adc0: 6d 65 57 28 50 41 56 49 53 54 52 45 41 4d 20 70 meW(PAVISTREAM p add0: 61 76 69 2c 20 4c 50 43 57 53 54 52 20 6c 70 73 avi, LPCWSTR lps ade0: 7a 4e 61 6d 65 29 3b 0d 0a 53 54 44 41 50 49 20 zName);..STDAPI adf0: 45 64 69 74 53 74 72 65 61 6d 53 65 74 49 6e 66 EditStreamSetInf ae00: 6f 57 28 50 41 56 49 53 54 52 45 41 4d 20 70 61 oW(PAVISTREAM pa ae10: 76 69 2c 20 4c 50 41 56 49 53 54 52 45 41 4d 49 vi, LPAVISTREAMI ae20: 4e 46 4f 57 20 6c 70 49 6e 66 6f 2c 20 4c 4f 4e NFOW lpInfo, LON ae30: 47 20 63 62 49 6e 66 6f 29 3b 0d 0a 53 54 44 41 G cbInfo);..STDA ae40: 50 49 20 45 64 69 74 53 74 72 65 61 6d 53 65 74 PI EditStreamSet ae50: 49 6e 66 6f 41 28 50 41 56 49 53 54 52 45 41 4d InfoA(PAVISTREAM ae60: 20 70 61 76 69 2c 20 4c 50 41 56 49 53 54 52 45 pavi, LPAVISTRE ae70: 41 4d 49 4e 46 4f 41 20 6c 70 49 6e 66 6f 2c 20 AMINFOA lpInfo, ae80: 4c 4f 4e 47 20 63 62 49 6e 66 6f 29 3b 0d 0a 23 LONG cbInfo);..# ae90: 69 66 64 65 66 20 55 4e 49 43 4f 44 45 0d 0a 23 ifdef UNICODE..# aea0: 64 65 66 69 6e 65 20 45 64 69 74 53 74 72 65 61 define EditStrea aeb0: 6d 53 65 74 49 6e 66 6f 09 45 64 69 74 53 74 72 mSetInfo.EditStr aec0: 65 61 6d 53 65 74 49 6e 66 6f 57 0d 0a 23 64 65 eamSetInfoW..#de aed0: 66 69 6e 65 20 45 64 69 74 53 74 72 65 61 6d 53 fine EditStreamS aee0: 65 74 4e 61 6d 65 09 45 64 69 74 53 74 72 65 61 etName.EditStrea aef0: 6d 53 65 74 4e 61 6d 65 57 0d 0a 23 65 6c 73 65 mSetNameW..#else af00: 0d 0a 23 64 65 66 69 6e 65 20 45 64 69 74 53 74 ..#define EditSt af10: 72 65 61 6d 53 65 74 49 6e 66 6f 09 45 64 69 74 reamSetInfo.Edit af20: 53 74 72 65 61 6d 53 65 74 49 6e 66 6f 41 0d 0a StreamSetInfoA.. af30: 23 64 65 66 69 6e 65 20 45 64 69 74 53 74 72 65 #define EditStre af40: 61 6d 53 65 74 4e 61 6d 65 09 45 64 69 74 53 74 amSetName.EditSt af50: 72 65 61 6d 53 65 74 4e 61 6d 65 41 0d 0a 23 65 reamSetNameA..#e af60: 6e 64 69 66 0d 0a 2b 2f 0d 0a 63 6f 6e 73 74 20 ndif..+/..const af70: 41 56 49 45 52 52 5f 4f 4b 20 3d 20 30 4c 3b 0d AVIERR_OK = 0L;. af80: 0a 0d 0a 53 43 4f 44 45 20 4d 41 4b 45 5f 41 56 ...SCODE MAKE_AV af90: 49 45 52 52 28 44 57 4f 52 44 20 65 72 72 6f 72 IERR(DWORD error afa0: 29 20 7b 0d 0a 09 72 65 74 75 72 6e 20 4d 41 4b ) {...return MAK afb0: 45 5f 53 43 4f 44 45 28 53 45 56 45 52 49 54 59 E_SCODE(SEVERITY afc0: 5f 45 52 52 4f 52 2c 20 46 41 43 49 4c 49 54 59 _ERROR, FACILITY afd0: 5f 49 54 46 2c 20 30 78 34 30 30 30 20 2b 20 65 _ITF, 0x4000 + e afe0: 72 72 6f 72 29 3b 0d 0a 7d 0d 0a 0d 0a 63 6f 6e rror);..}....con aff0: 73 74 20 41 56 49 45 52 52 5f 55 4e 53 55 50 50 st AVIERR_UNSUPP b000: 4f 52 54 45 44 09 3d 20 4d 41 4b 45 5f 41 56 49 ORTED.= MAKE_AVI b010: 45 52 52 28 31 30 31 29 3b 0d 0a 63 6f 6e 73 74 ERR(101);..const b020: 20 41 56 49 45 52 52 5f 42 41 44 46 4f 52 4d 41 AVIERR_BADFORMA b030: 54 09 09 3d 20 4d 41 4b 45 5f 41 56 49 45 52 52 T..= MAKE_AVIERR b040: 28 31 30 32 29 3b 0d 0a 63 6f 6e 73 74 20 41 56 (102);..const AV b050: 49 45 52 52 5f 4d 45 4d 4f 52 59 09 09 09 3d 20 IERR_MEMORY...= b060: 4d 41 4b 45 5f 41 56 49 45 52 52 28 31 30 33 29 MAKE_AVIERR(103) b070: 3b 0d 0a 63 6f 6e 73 74 20 41 56 49 45 52 52 5f ;..const AVIERR_ b080: 49 4e 54 45 52 4e 41 4c 09 09 3d 20 4d 41 4b 45 INTERNAL..= MAKE b090: 5f 41 56 49 45 52 52 28 31 30 34 29 3b 0d 0a 63 _AVIERR(104);..c b0a0: 6f 6e 73 74 20 41 56 49 45 52 52 5f 42 41 44 46 onst AVIERR_BADF b0b0: 4c 41 47 53 09 09 3d 20 4d 41 4b 45 5f 41 56 49 LAGS..= MAKE_AVI b0c0: 45 52 52 28 31 30 35 29 3b 0d 0a 63 6f 6e 73 74 ERR(105);..const b0d0: 20 41 56 49 45 52 52 5f 42 41 44 50 41 52 41 4d AVIERR_BADPARAM b0e0: 09 09 3d 20 4d 41 4b 45 5f 41 56 49 45 52 52 28 ..= MAKE_AVIERR( b0f0: 31 30 36 29 3b 0d 0a 63 6f 6e 73 74 20 41 56 49 106);..const AVI b100: 45 52 52 5f 42 41 44 53 49 5a 45 09 09 3d 20 4d ERR_BADSIZE..= M b110: 41 4b 45 5f 41 56 49 45 52 52 28 31 30 37 29 3b AKE_AVIERR(107); b120: 0d 0a 63 6f 6e 73 74 20 41 56 49 45 52 52 5f 42 ..const AVIERR_B b130: 41 44 48 41 4e 44 4c 45 09 09 3d 20 4d 41 4b 45 ADHANDLE..= MAKE b140: 5f 41 56 49 45 52 52 28 31 30 38 29 3b 0d 0a 63 _AVIERR(108);..c b150: 6f 6e 73 74 20 41 56 49 45 52 52 5f 46 49 4c 45 onst AVIERR_FILE b160: 52 45 41 44 09 09 3d 20 4d 41 4b 45 5f 41 56 49 READ..= MAKE_AVI b170: 45 52 52 28 31 30 39 29 3b 0d 0a 63 6f 6e 73 74 ERR(109);..const b180: 20 41 56 49 45 52 52 5f 46 49 4c 45 57 52 49 54 AVIERR_FILEWRIT b190: 45 09 09 3d 20 4d 41 4b 45 5f 41 56 49 45 52 52 E..= MAKE_AVIERR b1a0: 28 31 31 30 29 3b 0d 0a 63 6f 6e 73 74 20 41 56 (110);..const AV b1b0: 49 45 52 52 5f 46 49 4c 45 4f 50 45 4e 09 09 3d IERR_FILEOPEN..= b1c0: 20 4d 41 4b 45 5f 41 56 49 45 52 52 28 31 31 31 MAKE_AVIERR(111 b1d0: 29 3b 0d 0a 63 6f 6e 73 74 20 41 56 49 45 52 52 );..const AVIERR b1e0: 5f 43 4f 4d 50 52 45 53 53 4f 52 09 09 3d 20 4d _COMPRESSOR..= M b1f0: 41 4b 45 5f 41 56 49 45 52 52 28 31 31 32 29 3b AKE_AVIERR(112); b200: 0d 0a 63 6f 6e 73 74 20 41 56 49 45 52 52 5f 4e ..const AVIERR_N b210: 4f 43 4f 4d 50 52 45 53 53 4f 52 09 3d 20 4d 41 OCOMPRESSOR.= MA b220: 4b 45 5f 41 56 49 45 52 52 28 31 31 33 29 3b 0d KE_AVIERR(113);. b230: 0a 63 6f 6e 73 74 20 41 56 49 45 52 52 5f 52 45 .const AVIERR_RE b240: 41 44 4f 4e 4c 59 09 09 3d 20 4d 41 4b 45 5f 41 ADONLY..= MAKE_A b250: 56 49 45 52 52 28 31 31 34 29 3b 0d 0a 63 6f 6e VIERR(114);..con b260: 73 74 20 41 56 49 45 52 52 5f 4e 4f 44 41 54 41 st AVIERR_NODATA b270: 09 09 09 3d 20 4d 41 4b 45 5f 41 56 49 45 52 52 ...= MAKE_AVIERR b280: 28 31 31 35 29 3b 0d 0a 63 6f 6e 73 74 20 41 56 (115);..const AV b290: 49 45 52 52 5f 42 55 46 46 45 52 54 4f 4f 53 4d IERR_BUFFERTOOSM b2a0: 41 4c 4c 09 3d 20 4d 41 4b 45 5f 41 56 49 45 52 ALL.= MAKE_AVIER b2b0: 52 28 31 31 36 29 3b 0d 0a 63 6f 6e 73 74 20 41 R(116);..const A b2c0: 56 49 45 52 52 5f 43 41 4e 54 43 4f 4d 50 52 45 VIERR_CANTCOMPRE b2d0: 53 53 09 3d 20 4d 41 4b 45 5f 41 56 49 45 52 52 SS.= MAKE_AVIERR b2e0: 28 31 31 37 29 3b 0d 0a 63 6f 6e 73 74 20 41 56 (117);..const AV b2f0: 49 45 52 52 5f 55 53 45 52 41 42 4f 52 54 09 09 IERR_USERABORT.. b300: 3d 20 4d 41 4b 45 5f 41 56 49 45 52 52 28 31 39 = MAKE_AVIERR(19 b310: 38 29 3b 0d 0a 63 6f 6e 73 74 20 41 56 49 45 52 8);..const AVIER b320: 52 5f 45 52 52 4f 52 09 09 09 3d 20 4d 41 4b 45 R_ERROR...= MAKE b330: 5f 41 56 49 45 52 52 28 31 39 39 29 3b 0d 0a 0d _AVIERR(199);... b340: 0a 63 6f 6e 73 74 20 54 43 48 41 52 5b 5d 20 4d .const TCHAR[] M b350: 43 49 57 4e 44 5f 57 49 4e 44 4f 57 5f 43 4c 41 CIWND_WINDOW_CLA b360: 53 53 20 3d 20 22 4d 43 49 57 6e 64 43 6c 61 73 SS = "MCIWndClas b370: 73 22 3b 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 s";....extern (W b380: 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 48 57 4e 44 indows) {...HWND b390: 20 4d 43 49 57 6e 64 43 72 65 61 74 65 41 28 48 MCIWndCreateA(H b3a0: 57 4e 44 20 68 77 6e 64 50 61 72 65 6e 74 2c 20 WND hwndParent, b3b0: 48 49 4e 53 54 41 4e 43 45 20 68 49 6e 73 74 61 HINSTANCE hInsta b3c0: 6e 63 65 2c 20 44 57 4f 52 44 20 64 77 53 74 79 nce, DWORD dwSty b3d0: 6c 65 2c 20 4c 50 43 53 54 52 20 73 7a 46 69 6c le, LPCSTR szFil b3e0: 65 29 3b 0d 0a 09 48 57 4e 44 20 4d 43 49 57 6e e);...HWND MCIWn b3f0: 64 43 72 65 61 74 65 57 28 48 57 4e 44 20 68 77 dCreateW(HWND hw b400: 6e 64 50 61 72 65 6e 74 2c 20 48 49 4e 53 54 41 ndParent, HINSTA b410: 4e 43 45 20 68 49 6e 73 74 61 6e 63 65 2c 20 44 NCE hInstance, D b420: 57 4f 52 44 20 64 77 53 74 79 6c 65 2c 20 4c 50 WORD dwStyle, LP b430: 43 57 53 54 52 20 73 7a 46 69 6c 65 29 3b 0d 0a CWSTR szFile);.. b440: 7d 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 6e 69 }....version(Uni b450: 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20 code) {...alias b460: 4d 43 49 57 6e 64 43 72 65 61 74 65 57 09 4d 43 MCIWndCreateW.MC b470: 49 57 6e 64 43 72 65 61 74 65 3b 0d 0a 7d 20 65 IWndCreate;..} e b480: 6c 73 65 20 7b 20 2f 2f 20 55 6e 69 63 6f 64 65 lse { // Unicode b490: 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 6e 64 43 ...alias MCIWndC b4a0: 72 65 61 74 65 41 09 4d 43 49 57 6e 64 43 72 65 reateA.MCIWndCre b4b0: 61 74 65 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 ate;..}....exter b4c0: 6e 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 42 n(Windows) {...B b4d0: 4f 4f 4c 20 4d 43 49 57 6e 64 52 65 67 69 73 74 OOL MCIWndRegist b4e0: 65 72 43 6c 61 73 73 28 29 3b 0d 0a 7d 0d 0a 0d erClass();..}... b4f0: 0a 65 6e 75 6d 20 7b 0d 0a 09 4d 43 49 57 4e 44 .enum {...MCIWND b500: 4f 50 45 4e 46 5f 4e 45 57 09 09 09 09 3d 20 30 OPENF_NEW....= 0 b510: 78 30 30 30 31 2c 0d 0a 09 4d 43 49 57 4e 44 46 x0001,...MCIWNDF b520: 5f 4e 4f 41 55 54 4f 53 49 5a 45 57 49 4e 44 4f _NOAUTOSIZEWINDO b530: 57 09 3d 20 30 78 30 30 30 31 2c 0d 0a 09 4d 43 W.= 0x0001,...MC b540: 49 57 4e 44 46 5f 4e 4f 50 4c 41 59 42 41 52 09 IWNDF_NOPLAYBAR. b550: 09 09 3d 20 30 78 30 30 30 32 2c 0d 0a 09 4d 43 ..= 0x0002,...MC b560: 49 57 4e 44 46 5f 4e 4f 41 55 54 4f 53 49 5a 45 IWNDF_NOAUTOSIZE b570: 4d 4f 56 49 45 09 09 3d 20 30 78 30 30 30 34 2c MOVIE..= 0x0004, b580: 0d 0a 09 4d 43 49 57 4e 44 46 5f 4e 4f 4d 45 4e ...MCIWNDF_NOMEN b590: 55 09 09 09 09 3d 20 30 78 30 30 30 38 2c 0d 0a U....= 0x0008,.. b5a0: 09 4d 43 49 57 4e 44 46 5f 53 48 4f 57 4e 41 4d .MCIWNDF_SHOWNAM b5b0: 45 09 09 09 3d 20 30 78 30 30 31 30 2c 0d 0a 09 E...= 0x0010,... b5c0: 4d 43 49 57 4e 44 46 5f 53 48 4f 57 50 4f 53 09 MCIWNDF_SHOWPOS. b5d0: 09 09 09 3d 20 30 78 30 30 32 30 2c 0d 0a 09 4d ...= 0x0020,...M b5e0: 43 49 57 4e 44 46 5f 53 48 4f 57 4d 4f 44 45 09 CIWNDF_SHOWMODE. b5f0: 09 09 3d 20 30 78 30 30 34 30 2c 0d 0a 09 4d 43 ..= 0x0040,...MC b600: 49 57 4e 44 46 5f 53 48 4f 57 41 4c 4c 09 09 09 IWNDF_SHOWALL... b610: 09 3d 20 30 78 30 30 37 30 2c 0d 0a 09 4d 43 49 .= 0x0070,...MCI b620: 57 4e 44 46 5f 4e 4f 54 49 46 59 4d 4f 44 45 09 WNDF_NOTIFYMODE. b630: 09 09 3d 20 30 78 30 31 30 30 2c 0d 0a 09 4d 43 ..= 0x0100,...MC b640: 49 57 4e 44 46 5f 4e 4f 54 49 46 59 50 4f 53 09 IWNDF_NOTIFYPOS. b650: 09 09 3d 20 30 78 30 32 30 30 2c 0d 0a 09 4d 43 ..= 0x0200,...MC b660: 49 57 4e 44 46 5f 4e 4f 54 49 46 59 53 49 5a 45 IWNDF_NOTIFYSIZE b670: 09 09 09 3d 20 30 78 30 34 30 30 2c 0d 0a 09 4d ...= 0x0400,...M b680: 43 49 57 4e 44 46 5f 4e 4f 54 49 46 59 45 52 52 CIWNDF_NOTIFYERR b690: 4f 52 09 09 09 3d 20 30 78 31 30 30 30 2c 0d 0a OR...= 0x1000,.. b6a0: 09 4d 43 49 57 4e 44 46 5f 4e 4f 54 49 46 59 41 .MCIWNDF_NOTIFYA b6b0: 4c 4c 09 09 09 3d 20 30 78 31 46 30 30 2c 0d 0a LL...= 0x1F00,.. b6c0: 09 4d 43 49 57 4e 44 46 5f 4e 4f 54 49 46 59 41 .MCIWNDF_NOTIFYA b6d0: 4e 53 49 09 09 09 3d 20 30 78 30 30 38 30 2c 0d NSI...= 0x0080,. b6e0: 0a 09 4d 43 49 57 4e 44 46 5f 4e 4f 54 49 46 59 ..MCIWNDF_NOTIFY b6f0: 4d 45 44 49 41 41 09 09 3d 20 30 78 30 38 38 30 MEDIAA..= 0x0880 b700: 2c 0d 0a 09 4d 43 49 57 4e 44 46 5f 4e 4f 54 49 ,...MCIWNDF_NOTI b710: 46 59 4d 45 44 49 41 57 09 09 3d 20 30 78 30 38 FYMEDIAW..= 0x08 b720: 30 30 2c 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 69 6f 00,..}....versio b730: 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61 n(Unicode) {...a b740: 6c 69 61 73 20 4d 43 49 57 4e 44 46 5f 4e 4f 54 lias MCIWNDF_NOT b750: 49 46 59 4d 45 44 49 41 57 09 4d 43 49 57 4e 44 IFYMEDIAW.MCIWND b760: 46 5f 4e 4f 54 49 46 59 4d 45 44 49 41 3b 0d 0a F_NOTIFYMEDIA;.. b770: 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 55 6e 69 63 } else { // Unic b780: 6f 64 65 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 ode...alias MCIW b790: 4e 44 46 5f 4e 4f 54 49 46 59 4d 45 44 49 41 41 NDF_NOTIFYMEDIAA b7a0: 09 4d 43 49 57 4e 44 46 5f 4e 4f 54 49 46 59 4d .MCIWNDF_NOTIFYM b7b0: 45 44 49 41 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d EDIA;..}....enum b7c0: 20 7b 0d 0a 09 4d 43 49 57 4e 44 46 5f 52 45 43 {...MCIWNDF_REC b7d0: 4f 52 44 09 09 3d 20 30 78 32 30 30 30 2c 0d 0a ORD..= 0x2000,.. b7e0: 09 4d 43 49 57 4e 44 46 5f 4e 4f 45 52 52 4f 52 .MCIWNDF_NOERROR b7f0: 44 4c 47 09 3d 20 30 78 34 30 30 30 2c 0d 0a 09 DLG.= 0x4000,... b800: 4d 43 49 57 4e 44 46 5f 4e 4f 4f 50 45 4e 09 09 MCIWNDF_NOOPEN.. b810: 3d 20 30 78 38 30 30 30 2c 0d 0a 7d 0d 0a 0d 0a = 0x8000,..}.... b820: 2f 2f 20 63 61 6e 20 6d 61 63 72 6f 73 0d 0a 0d // can macros... b830: 0a 42 4f 4f 4c 20 4d 43 49 57 6e 64 43 61 6e 50 .BOOL MCIWndCanP b840: 6c 61 79 28 48 57 4e 44 20 68 77 6e 64 29 0d 0a lay(HWND hwnd).. b850: 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 .{ return cast(B b860: 4f 4f 4c 29 53 65 6e 64 4d 65 73 73 61 67 65 28 OOL)SendMessage( b870: 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 43 41 hwnd, MCIWNDM_CA b880: 4e 5f 50 4c 41 59 2c 20 30 2c 20 30 29 3b 20 7d N_PLAY, 0, 0); } b890: 0d 0a 42 4f 4f 4c 20 4d 43 49 57 6e 64 43 61 6e ..BOOL MCIWndCan b8a0: 52 65 63 6f 72 64 28 48 57 4e 44 20 68 77 6e 64 Record(HWND hwnd b8b0: 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 )...{ return cas b8c0: 74 28 42 4f 4f 4c 29 53 65 6e 64 4d 65 73 73 61 t(BOOL)SendMessa b8d0: 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d ge(hwnd, MCIWNDM b8e0: 5f 43 41 4e 5f 52 45 43 4f 52 44 2c 20 30 2c 20 _CAN_RECORD, 0, b8f0: 30 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 4d 43 49 57 0); }..BOOL MCIW b900: 6e 64 43 61 6e 53 61 76 65 28 48 57 4e 44 20 68 ndCanSave(HWND h b910: 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 wnd)...{ return b920: 63 61 73 74 28 42 4f 4f 4c 29 53 65 6e 64 4d 65 cast(BOOL)SendMe b930: 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 ssage(hwnd, MCIW b940: 4e 44 4d 5f 43 41 4e 5f 53 41 56 45 2c 20 30 2c NDM_CAN_SAVE, 0, b950: 20 30 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 4d 43 49 0); }..BOOL MCI b960: 57 6e 64 43 61 6e 57 69 6e 64 6f 77 28 48 57 4e WndCanWindow(HWN b970: 44 20 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 D hwnd)...{ retu b980: 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 53 65 6e rn cast(BOOL)Sen b990: 64 4d 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d dMessage(hwnd, M b9a0: 43 49 57 4e 44 4d 5f 43 41 4e 5f 57 49 4e 44 4f CIWNDM_CAN_WINDO b9b0: 57 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 42 4f 4f W, 0, 0); }..BOO b9c0: 4c 20 4d 43 49 57 6e 64 43 61 6e 45 6a 65 63 74 L MCIWndCanEject b9d0: 28 48 57 4e 44 20 68 77 6e 64 29 0d 0a 09 7b 20 (HWND hwnd)...{ b9e0: 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c return cast(BOOL b9f0: 29 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e )SendMessage(hwn ba00: 64 2c 20 4d 43 49 57 4e 44 4d 5f 43 41 4e 5f 45 d, MCIWNDM_CAN_E ba10: 4a 45 43 54 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a JECT, 0, 0); }.. ba20: 42 4f 4f 4c 20 4d 43 49 57 6e 64 43 61 6e 43 6f BOOL MCIWndCanCo ba30: 6e 66 69 67 28 48 57 4e 44 20 68 77 6e 64 29 0d nfig(HWND hwnd). ba40: 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 ..{ return cast( ba50: 42 4f 4f 4c 29 53 65 6e 64 4d 65 73 73 61 67 65 BOOL)SendMessage ba60: 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 43 (hwnd, MCIWNDM_C ba70: 41 4e 5f 43 4f 4e 46 49 47 2c 20 30 2c 20 30 29 AN_CONFIG, 0, 0) ba80: 3b 20 7d 0d 0a 42 4f 4f 4c 20 4d 43 49 57 6e 64 ; }..BOOL MCIWnd ba90: 50 61 6c 65 74 74 65 4b 69 63 6b 28 48 57 4e 44 PaletteKick(HWND baa0: 20 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 hwnd)...{ retur bab0: 6e 20 63 61 73 74 28 42 4f 4f 4c 29 53 65 6e 64 n cast(BOOL)Send bac0: 4d 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 Message(hwnd, MC bad0: 49 57 4e 44 4d 5f 50 41 4c 45 54 54 45 4b 49 43 IWNDM_PALETTEKIC bae0: 4b 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 4c 4f 4e K, 0, 0); }..LON baf0: 47 20 4d 43 49 57 6e 64 53 61 76 65 28 48 57 4e G MCIWndSave(HWN bb00: 44 20 68 77 6e 64 2c 20 4c 50 56 4f 49 44 20 73 D hwnd, LPVOID s bb10: 7a 46 69 6c 65 29 0d 0a 09 7b 20 72 65 74 75 72 zFile)...{ retur bb20: 6e 20 63 61 73 74 28 4c 4f 4e 47 29 53 65 6e 64 n cast(LONG)Send bb30: 4d 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 Message(hwnd, MC bb40: 49 5f 53 41 56 45 2c 20 30 2c 20 63 61 73 74 28 I_SAVE, 0, cast( bb50: 4c 50 41 52 41 4d 29 73 7a 46 69 6c 65 29 3b 20 LPARAM)szFile); bb60: 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 53 61 }..LONG MCIWndSa bb70: 76 65 44 69 61 6c 6f 67 28 48 57 4e 44 20 68 77 veDialog(HWND hw bb80: 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 4d nd)...{ return M bb90: 43 49 57 6e 64 53 61 76 65 28 68 77 6e 64 2c 20 CIWndSave(hwnd, bba0: 63 61 73 74 28 4c 50 56 4f 49 44 29 2d 31 29 3b cast(LPVOID)-1); bbb0: 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 4e }..LONG MCIWndN bbc0: 65 77 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 50 ew(HWND hwnd, LP bbd0: 56 4f 49 44 20 6c 70 29 0d 0a 09 7b 20 72 65 74 VOID lp)...{ ret bbe0: 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 29 53 65 urn cast(LONG)Se bbf0: 6e 64 4d 65 73 73 61 67 65 28 68 77 6e 64 2c 20 ndMessage(hwnd, bc00: 4d 43 49 57 4e 44 4d 5f 4e 45 57 2c 20 30 2c 20 MCIWNDM_NEW, 0, bc10: 63 61 73 74 28 4c 50 41 52 41 4d 29 6c 70 29 3b cast(LPARAM)lp); bc20: 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 52 }..LONG MCIWndR bc30: 65 63 6f 72 64 28 48 57 4e 44 20 68 77 6e 64 29 ecord(HWND hwnd) bc40: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast bc50: 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 61 67 (LONG)SendMessag bc60: 65 28 68 77 6e 64 2c 20 4d 43 49 5f 52 45 43 4f e(hwnd, MCI_RECO bc70: 52 44 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 4c 4f RD, 0, 0); }..LO bc80: 4e 47 20 4d 43 49 57 6e 64 4f 70 65 6e 28 48 57 NG MCIWndOpen(HW bc90: 4e 44 20 68 77 6e 64 2c 20 4c 50 56 4f 49 44 20 ND hwnd, LPVOID bca0: 73 7a 2c 20 55 49 4e 54 20 66 29 0d 0a 09 7b 20 sz, UINT f)...{ bcb0: 72 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 return cast(LONG bcc0: 29 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e )SendMessage(hwn bcd0: 64 2c 20 4d 43 49 57 4e 44 4d 5f 4f 50 45 4e 2c d, MCIWNDM_OPEN, bce0: 20 63 61 73 74 28 57 50 41 52 41 4d 29 66 2c 20 cast(WPARAM)f, bcf0: 63 61 73 74 28 4c 50 41 52 41 4d 29 73 7a 29 3b cast(LPARAM)sz); bd00: 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 4f }..LONG MCIWndO bd10: 70 65 6e 44 69 61 6c 6f 67 28 48 57 4e 44 20 68 penDialog(HWND h bd20: 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 wnd)...{ return bd30: 4d 43 49 57 6e 64 4f 70 65 6e 28 68 77 6e 64 2c MCIWndOpen(hwnd, bd40: 20 63 61 73 74 28 4c 50 56 4f 49 44 29 2d 31 2c cast(LPVOID)-1, bd50: 20 30 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 0); }..LONG MCI bd60: 57 6e 64 43 6c 6f 73 65 28 48 57 4e 44 20 68 77 WndClose(HWND hw bd70: 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 nd)...{ return c bd80: 61 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 ast(LONG)SendMes bd90: 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 5f 43 sage(hwnd, MCI_C bda0: 4c 4f 53 45 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a LOSE, 0, 0); }.. bdb0: 4c 4f 4e 47 20 4d 43 49 57 6e 64 50 6c 61 79 28 LONG MCIWndPlay( bdc0: 48 57 4e 44 20 68 77 6e 64 29 0d 0a 09 7b 20 72 HWND hwnd)...{ r bdd0: 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 29 eturn cast(LONG) bde0: 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e 64 SendMessage(hwnd bdf0: 2c 20 4d 43 49 5f 50 4c 41 59 2c 20 30 2c 20 30 , MCI_PLAY, 0, 0 be00: 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e ); }..LONG MCIWn be10: 64 53 74 6f 70 28 48 57 4e 44 20 68 77 6e 64 29 dStop(HWND hwnd) be20: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast be30: 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 61 67 (LONG)SendMessag be40: 65 28 68 77 6e 64 2c 20 4d 43 49 5f 53 54 4f 50 e(hwnd, MCI_STOP be50: 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 4c 4f 4e 47 , 0, 0); }..LONG be60: 20 4d 43 49 57 6e 64 50 61 75 73 65 28 48 57 4e MCIWndPause(HWN be70: 44 20 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 D hwnd)...{ retu be80: 72 6e 20 63 61 73 74 28 4c 4f 4e 47 29 53 65 6e rn cast(LONG)Sen be90: 64 4d 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d dMessage(hwnd, M bea0: 43 49 5f 50 41 55 53 45 2c 20 30 2c 20 30 29 3b CI_PAUSE, 0, 0); beb0: 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 52 }..LONG MCIWndR bec0: 65 73 75 6d 65 28 48 57 4e 44 20 68 77 6e 64 29 esume(HWND hwnd) bed0: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast bee0: 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 61 67 (LONG)SendMessag bef0: 65 28 68 77 6e 64 2c 20 4d 43 49 5f 52 45 53 55 e(hwnd, MCI_RESU bf00: 4d 45 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 4c 4f ME, 0, 0); }..LO bf10: 4e 47 20 4d 43 49 57 6e 64 53 65 65 6b 28 48 57 NG MCIWndSeek(HW bf20: 4e 44 20 68 77 6e 64 2c 20 4c 4f 4e 47 20 6c 50 ND hwnd, LONG lP bf30: 6f 73 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 os)...{ return c bf40: 61 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 ast(LONG)SendMes bf50: 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 5f 53 sage(hwnd, MCI_S bf60: 45 45 4b 2c 20 30 2c 20 63 61 73 74 28 4c 50 41 EEK, 0, cast(LPA bf70: 52 41 4d 29 6c 50 6f 73 29 3b 20 7d 0d 0a 4c 4f RAM)lPos); }..LO bf80: 4e 47 20 4d 43 49 57 6e 64 48 6f 6d 65 28 48 57 NG MCIWndHome(HW bf90: 4e 44 20 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 ND hwnd)...{ ret bfa0: 75 72 6e 20 4d 43 49 57 6e 64 53 65 65 6b 28 68 urn MCIWndSeek(h bfb0: 77 6e 64 2c 20 4d 43 49 57 4e 44 5f 53 54 41 52 wnd, MCIWND_STAR bfc0: 54 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 T); }..LONG MCIW bfd0: 6e 64 45 6e 64 28 48 57 4e 44 20 68 77 6e 64 29 ndEnd(HWND hwnd) bfe0: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 4d 43 49 57 ...{ return MCIW bff0: 6e 64 53 65 65 6b 28 68 77 6e 64 2c 20 4d 43 49 ndSeek(hwnd, MCI c000: 57 4e 44 5f 45 4e 44 29 3b 20 7d 0d 0a 4c 4f 4e WND_END); }..LON c010: 47 20 4d 43 49 57 6e 64 45 6a 65 63 74 28 48 57 G MCIWndEject(HW c020: 4e 44 20 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 ND hwnd)...{ ret c030: 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 29 53 65 urn cast(LONG)Se c040: 6e 64 4d 65 73 73 61 67 65 28 68 77 6e 64 2c 20 ndMessage(hwnd, c050: 4d 43 49 57 4e 44 4d 5f 45 4a 45 43 54 2c 20 30 MCIWNDM_EJECT, 0 c060: 2c 20 30 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 , 0); }..LONG MC c070: 49 57 6e 64 47 65 74 53 6f 75 72 63 65 28 48 57 IWndGetSource(HW c080: 4e 44 20 68 77 6e 64 2c 20 4c 50 52 45 43 54 20 ND hwnd, LPRECT c090: 70 72 63 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 prc)...{ return c0a0: 63 61 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 cast(LONG)SendMe c0b0: 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 ssage(hwnd, MCIW c0c0: 4e 44 4d 5f 47 45 54 5f 53 4f 55 52 43 45 2c 20 NDM_GET_SOURCE, c0d0: 30 2c 20 63 61 73 74 28 4c 50 41 52 41 4d 29 70 0, cast(LPARAM)p c0e0: 72 63 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 rc); }..LONG MCI c0f0: 57 6e 64 50 75 74 53 6f 75 72 63 65 28 48 57 4e WndPutSource(HWN c100: 44 20 68 77 6e 64 2c 20 4c 50 52 45 43 54 20 70 D hwnd, LPRECT p c110: 72 63 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 rc)...{ return c c120: 61 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 ast(LONG)SendMes c130: 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e sage(hwnd, MCIWN c140: 44 4d 5f 50 55 54 5f 53 4f 55 52 43 45 2c 20 30 DM_PUT_SOURCE, 0 c150: 2c 20 63 61 73 74 28 4c 50 41 52 41 4d 29 70 72 , cast(LPARAM)pr c160: 63 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 c); }..LONG MCIW c170: 6e 64 47 65 74 44 65 73 74 28 48 57 4e 44 20 68 ndGetDest(HWND h c180: 77 6e 64 2c 20 4c 50 52 45 43 54 20 70 72 63 29 wnd, LPRECT prc) c190: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast c1a0: 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 61 67 (LONG)SendMessag c1b0: 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f e(hwnd, MCIWNDM_ c1c0: 47 45 54 5f 44 45 53 54 2c 20 30 2c 20 63 61 73 GET_DEST, 0, cas c1d0: 74 28 4c 50 41 52 41 4d 29 70 72 63 29 3b 20 7d t(LPARAM)prc); } c1e0: 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 50 75 74 ..LONG MCIWndPut c1f0: 44 65 73 74 28 48 57 4e 44 20 68 77 6e 64 2c 20 Dest(HWND hwnd, c200: 4c 50 52 45 43 54 20 70 72 63 29 0d 0a 09 7b 20 LPRECT prc)...{ c210: 72 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 return cast(LONG c220: 29 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e )SendMessage(hwn c230: 64 2c 20 4d 43 49 57 4e 44 4d 5f 50 55 54 5f 44 d, MCIWNDM_PUT_D c240: 45 53 54 2c 20 30 2c 20 63 61 73 74 28 4c 50 41 EST, 0, cast(LPA c250: 52 41 4d 29 70 72 63 29 3b 20 7d 0d 0a 4c 4f 4e RAM)prc); }..LON c260: 47 20 4d 43 49 57 6e 64 50 6c 61 79 52 65 76 65 G MCIWndPlayReve c270: 72 73 65 28 48 57 4e 44 20 68 77 6e 64 29 0d 0a rse(HWND hwnd).. c280: 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 4c .{ return cast(L c290: 4f 4e 47 29 53 65 6e 64 4d 65 73 73 61 67 65 28 ONG)SendMessage( c2a0: 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 50 4c hwnd, MCIWNDM_PL c2b0: 41 59 52 45 56 45 52 53 45 2c 20 30 2c 20 30 29 AYREVERSE, 0, 0) c2c0: 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 ; }..LONG MCIWnd c2d0: 50 6c 61 79 46 72 6f 6d 28 48 57 4e 44 20 68 77 PlayFrom(HWND hw c2e0: 6e 64 2c 20 4c 4f 4e 47 20 6c 50 6f 73 29 0d 0a nd, LONG lPos).. c2f0: 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 4c .{ return cast(L c300: 4f 4e 47 29 53 65 6e 64 4d 65 73 73 61 67 65 28 ONG)SendMessage( c310: 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 50 4c hwnd, MCIWNDM_PL c320: 41 59 46 52 4f 4d 2c 20 30 2c 20 63 61 73 74 28 AYFROM, 0, cast( c330: 4c 50 41 52 41 4d 29 6c 50 6f 73 29 3b 20 7d 0d LPARAM)lPos); }. c340: 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 50 6c 61 79 .LONG MCIWndPlay c350: 54 6f 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 4f To(HWND hwnd, LO c360: 4e 47 20 6c 50 6f 73 29 0d 0a 09 7b 20 72 65 74 NG lPos)...{ ret c370: 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 29 53 65 urn cast(LONG)Se c380: 6e 64 4d 65 73 73 61 67 65 28 68 77 6e 64 2c 20 ndMessage(hwnd, c390: 4d 43 49 57 4e 44 4d 5f 50 4c 41 59 54 4f 2c 20 MCIWNDM_PLAYTO, c3a0: 30 2c 20 63 61 73 74 28 4c 50 41 52 41 4d 29 6c 0, cast(LPARAM)l c3b0: 50 6f 73 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 Pos); }..LONG MC c3c0: 49 57 6e 64 50 6c 61 79 46 72 6f 6d 54 6f 28 48 IWndPlayFromTo(H c3d0: 57 4e 44 20 68 77 6e 64 2c 20 4c 4f 4e 47 20 6c WND hwnd, LONG l c3e0: 53 74 61 72 74 2c 20 4c 4f 4e 47 20 6c 45 6e 64 Start, LONG lEnd c3f0: 29 0d 0a 09 7b 20 4d 43 49 57 6e 64 53 65 65 6b )...{ MCIWndSeek c400: 28 68 77 6e 64 2c 20 6c 53 74 61 72 74 29 3b 20 (hwnd, lStart); c410: 72 65 74 75 72 6e 20 4d 43 49 57 6e 64 50 6c 61 return MCIWndPla c420: 79 54 6f 28 68 77 6e 64 2c 20 6c 45 6e 64 29 3b yTo(hwnd, lEnd); c430: 20 7d 0d 0a 55 49 4e 54 20 4d 43 49 57 6e 64 47 }..UINT MCIWndG c440: 65 74 44 65 76 69 63 65 49 44 28 48 57 4e 44 20 etDeviceID(HWND c450: 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e hwnd)...{ return c460: 20 63 61 73 74 28 55 49 4e 54 29 53 65 6e 64 4d cast(UINT)SendM c470: 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 essage(hwnd, MCI c480: 57 4e 44 4d 5f 47 45 54 44 45 56 49 43 45 49 44 WNDM_GETDEVICEID c490: 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 55 49 4e 54 , 0, 0); }..UINT c4a0: 20 4d 43 49 57 6e 64 47 65 74 41 6c 69 61 73 28 MCIWndGetAlias( c4b0: 48 57 4e 44 20 68 77 6e 64 29 0d 0a 09 7b 20 72 HWND hwnd)...{ r c4c0: 65 74 75 72 6e 20 63 61 73 74 28 55 49 4e 54 29 eturn cast(UINT) c4d0: 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e 64 SendMessage(hwnd c4e0: 2c 20 4d 43 49 57 4e 44 4d 5f 47 45 54 41 4c 49 , MCIWNDM_GETALI c4f0: 41 53 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 4c 4f AS, 0, 0); }..LO c500: 4e 47 20 4d 43 49 57 6e 64 47 65 74 4d 6f 64 65 NG MCIWndGetMode c510: 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 50 54 53 (HWND hwnd, LPTS c520: 54 52 20 6c 70 2c 20 55 49 4e 54 20 6c 65 6e 29 TR lp, UINT len) c530: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast c540: 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 61 67 (LONG)SendMessag c550: 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f e(hwnd, MCIWNDM_ c560: 47 45 54 4d 4f 44 45 2c 20 63 61 73 74 28 57 50 GETMODE, cast(WP c570: 41 52 41 4d 29 6c 65 6e 2c 20 63 61 73 74 28 4c ARAM)len, cast(L c580: 50 41 52 41 4d 29 6c 70 29 3b 20 7d 0d 0a 4c 4f PARAM)lp); }..LO c590: 4e 47 20 4d 43 49 57 6e 64 47 65 74 50 6f 73 69 NG MCIWndGetPosi c5a0: 74 69 6f 6e 28 48 57 4e 44 20 68 77 6e 64 29 0d tion(HWND hwnd). c5b0: 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 ..{ return cast( c5c0: 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 61 67 65 LONG)SendMessage c5d0: 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 47 (hwnd, MCIWNDM_G c5e0: 45 54 50 4f 53 49 54 49 4f 4e 2c 20 30 2c 20 30 ETPOSITION, 0, 0 c5f0: 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e ); }..LONG MCIWn c600: 64 47 65 74 50 6f 73 69 74 69 6f 6e 53 74 72 69 dGetPositionStri c610: 6e 67 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 50 ng(HWND hwnd, LP c620: 54 53 54 52 20 6c 70 2c 20 55 49 4e 54 20 6c 65 TSTR lp, UINT le c630: 6e 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 n)...{ return ca c640: 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 st(LONG)SendMess c650: 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 age(hwnd, MCIWND c660: 4d 5f 47 45 54 50 4f 53 49 54 49 4f 4e 2c 20 63 M_GETPOSITION, c c670: 61 73 74 28 57 50 41 52 41 4d 29 6c 65 6e 2c 20 ast(WPARAM)len, c680: 63 61 73 74 28 4c 50 41 52 41 4d 29 6c 70 29 3b cast(LPARAM)lp); c690: 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 47 }..LONG MCIWndG c6a0: 65 74 53 74 61 72 74 28 48 57 4e 44 20 68 77 6e etStart(HWND hwn c6b0: 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 d)...{ return ca c6c0: 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 st(LONG)SendMess c6d0: 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 age(hwnd, MCIWND c6e0: 4d 5f 47 45 54 53 54 41 52 54 2c 20 30 2c 20 30 M_GETSTART, 0, 0 c6f0: 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e ); }..LONG MCIWn c700: 64 47 65 74 4c 65 6e 67 74 68 28 48 57 4e 44 20 dGetLength(HWND c710: 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e hwnd)...{ return c720: 20 63 61 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d cast(LONG)SendM c730: 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 essage(hwnd, MCI c740: 57 4e 44 4d 5f 47 45 54 4c 45 4e 47 54 48 2c 20 WNDM_GETLENGTH, c750: 30 2c 20 30 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 0, 0); }..LONG M c760: 43 49 57 6e 64 47 65 74 45 6e 64 28 48 57 4e 44 CIWndGetEnd(HWND c770: 20 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 hwnd)...{ retur c780: 6e 20 63 61 73 74 28 4c 4f 4e 47 29 53 65 6e 64 n cast(LONG)Send c790: 4d 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 Message(hwnd, MC c7a0: 49 57 4e 44 4d 5f 47 45 54 45 4e 44 2c 20 30 2c IWNDM_GETEND, 0, c7b0: 20 30 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 0); }..LONG MCI c7c0: 57 6e 64 53 74 65 70 28 48 57 4e 44 20 68 77 6e WndStep(HWND hwn c7d0: 64 2c 20 4c 4f 4e 47 20 6e 29 0d 0a 09 7b 20 72 d, LONG n)...{ r c7e0: 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 29 eturn cast(LONG) c7f0: 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e 64 SendMessage(hwnd c800: 2c 20 4d 43 49 5f 53 54 45 50 2c 20 30 2c 20 63 , MCI_STEP, 0, c c810: 61 73 74 28 4c 50 41 52 41 4d 29 6e 29 3b 20 7d ast(LPARAM)n); } c820: 0d 0a 76 6f 69 64 20 4d 43 49 57 6e 64 44 65 73 ..void MCIWndDes c830: 74 72 6f 79 28 48 57 4e 44 20 68 77 6e 64 29 0d troy(HWND hwnd). c840: 0a 09 7b 20 53 65 6e 64 4d 65 73 73 61 67 65 28 ..{ SendMessage( c850: 68 77 6e 64 2c 20 57 4d 5f 43 4c 4f 53 45 2c 20 hwnd, WM_CLOSE, c860: 30 2c 20 30 29 3b 20 7d 0d 0a 76 6f 69 64 20 4d 0, 0); }..void M c870: 43 49 57 6e 64 53 65 74 5a 6f 6f 6d 28 48 57 4e CIWndSetZoom(HWN c880: 44 20 68 77 6e 64 2c 20 55 49 4e 54 20 69 5a 6f D hwnd, UINT iZo c890: 6f 6d 29 0d 0a 09 7b 20 53 65 6e 64 4d 65 73 73 om)...{ SendMess c8a0: 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 age(hwnd, MCIWND c8b0: 4d 5f 53 45 54 5a 4f 4f 4d 2c 20 30 2c 20 63 61 M_SETZOOM, 0, ca c8c0: 73 74 28 4c 50 41 52 41 4d 29 69 5a 6f 6f 6d 29 st(LPARAM)iZoom) c8d0: 3b 20 7d 0d 0a 55 49 4e 54 20 4d 43 49 57 6e 64 ; }..UINT MCIWnd c8e0: 47 65 74 5a 6f 6f 6d 28 48 57 4e 44 20 68 77 6e GetZoom(HWND hwn c8f0: 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 d)...{ return ca c900: 73 74 28 55 49 4e 54 29 53 65 6e 64 4d 65 73 73 st(UINT)SendMess c910: 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 age(hwnd, MCIWND c920: 4d 5f 47 45 54 5a 4f 4f 4d 2c 20 30 2c 20 30 29 M_GETZOOM, 0, 0) c930: 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 ; }..LONG MCIWnd c940: 53 65 74 56 6f 6c 75 6d 65 28 48 57 4e 44 20 68 SetVolume(HWND h c950: 77 6e 64 2c 20 55 49 4e 54 20 69 56 6f 6c 29 0d wnd, UINT iVol). c960: 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 ..{ return cast( c970: 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 61 67 65 LONG)SendMessage c980: 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 53 (hwnd, MCIWNDM_S c990: 45 54 56 4f 4c 55 4d 45 2c 20 30 2c 20 63 61 73 ETVOLUME, 0, cas c9a0: 74 28 4c 50 41 52 41 4d 29 69 56 6f 6c 29 3b 20 t(LPARAM)iVol); c9b0: 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 47 65 }..LONG MCIWndGe c9c0: 74 56 6f 6c 75 6d 65 28 48 57 4e 44 20 68 77 6e tVolume(HWND hwn c9d0: 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 d)...{ return ca c9e0: 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 st(LONG)SendMess c9f0: 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 age(hwnd, MCIWND ca00: 4d 5f 47 45 54 56 4f 4c 55 4d 45 2c 20 30 2c 20 M_GETVOLUME, 0, ca10: 30 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 0); }..LONG MCIW ca20: 6e 64 53 65 74 53 70 65 65 64 28 48 57 4e 44 20 ndSetSpeed(HWND ca30: 68 77 6e 64 2c 20 55 49 4e 54 20 69 53 70 65 65 hwnd, UINT iSpee ca40: 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 d)...{ return ca ca50: 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d 65 73 73 st(LONG)SendMess ca60: 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 age(hwnd, MCIWND ca70: 4d 5f 53 45 54 53 50 45 45 44 2c 20 30 2c 20 63 M_SETSPEED, 0, c ca80: 61 73 74 28 4c 50 41 52 41 4d 29 69 53 70 65 65 ast(LPARAM)iSpee ca90: 64 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 d); }..LONG MCIW caa0: 6e 64 47 65 74 53 70 65 65 64 28 48 57 4e 44 20 ndGetSpeed(HWND cab0: 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e hwnd)...{ return cac0: 20 63 61 73 74 28 4c 4f 4e 47 29 53 65 6e 64 4d cast(LONG)SendM cad0: 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 essage(hwnd, MCI cae0: 57 4e 44 4d 5f 47 45 54 53 50 45 45 44 2c 20 30 WNDM_GETSPEED, 0 caf0: 2c 20 30 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 , 0); }..LONG MC cb00: 49 57 6e 64 53 65 74 54 69 6d 65 46 6f 72 6d 61 IWndSetTimeForma cb10: 74 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 50 54 t(HWND hwnd, LPT cb20: 53 54 52 20 6c 70 29 0d 0a 09 7b 20 72 65 74 75 STR lp)...{ retu cb30: 72 6e 20 63 61 73 74 28 4c 4f 4e 47 29 53 65 6e rn cast(LONG)Sen cb40: 64 4d 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d dMessage(hwnd, M cb50: 43 49 57 4e 44 4d 5f 53 45 54 54 49 4d 45 46 4f CIWNDM_SETTIMEFO cb60: 52 4d 41 54 2c 20 30 2c 20 63 61 73 74 28 4c 50 RMAT, 0, cast(LP cb70: 41 52 41 4d 29 6c 70 29 3b 20 7d 0d 0a 4c 4f 4e ARAM)lp); }..LON cb80: 47 20 4d 43 49 57 6e 64 55 73 65 46 72 61 6d 65 G MCIWndUseFrame cb90: 73 28 48 57 4e 44 20 68 77 6e 64 29 0d 0a 09 7b s(HWND hwnd)...{ cba0: 20 72 65 74 75 72 6e 20 4d 43 49 57 6e 64 53 65 return MCIWndSe cbb0: 74 54 69 6d 65 46 6f 72 6d 61 74 28 68 77 6e 64 tTimeFormat(hwnd cbc0: 2c 20 28 63 61 73 74 28 54 43 48 41 52 5b 5d 29 , (cast(TCHAR[]) cbd0: 22 66 72 61 6d 65 73 22 29 2e 70 74 72 29 3b 20 "frames").ptr); cbe0: 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 55 73 }..LONG MCIWndUs cbf0: 65 54 69 6d 65 28 48 57 4e 44 20 68 77 6e 64 29 eTime(HWND hwnd) cc00: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 4d 43 49 57 ...{ return MCIW cc10: 6e 64 53 65 74 54 69 6d 65 46 6f 72 6d 61 74 28 ndSetTimeFormat( cc20: 68 77 6e 64 2c 20 28 63 61 73 74 28 54 43 48 41 hwnd, (cast(TCHA cc30: 52 5b 5d 29 22 6d 73 22 29 2e 70 74 72 29 3b 20 R[])"ms").ptr); cc40: 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 47 65 }..LONG MCIWndGe cc50: 74 54 69 6d 65 46 6f 72 6d 61 74 28 48 57 4e 44 tTimeFormat(HWND cc60: 20 68 77 6e 64 2c 20 4c 50 54 53 54 52 20 6c 70 hwnd, LPTSTR lp cc70: 2c 20 55 49 4e 54 20 6c 65 6e 29 0d 0a 09 7b 20 , UINT len)...{ cc80: 72 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 return cast(LONG cc90: 29 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e )SendMessage(hwn cca0: 64 2c 20 4d 43 49 57 4e 44 4d 5f 47 45 54 54 49 d, MCIWNDM_GETTI ccb0: 4d 45 46 4f 52 4d 41 54 2c 20 63 61 73 74 28 57 MEFORMAT, cast(W ccc0: 50 41 52 41 4d 29 6c 65 6e 2c 20 63 61 73 74 28 PARAM)len, cast( ccd0: 4c 50 41 52 41 4d 29 6c 70 29 3b 20 7d 0d 0a 76 LPARAM)lp); }..v cce0: 6f 69 64 20 4d 43 49 57 6e 64 56 61 6c 69 64 61 oid MCIWndValida ccf0: 74 65 4d 65 64 69 61 28 48 57 4e 44 20 68 77 6e teMedia(HWND hwn cd00: 64 29 0d 0a 09 7b 20 53 65 6e 64 4d 65 73 73 61 d)...{ SendMessa cd10: 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d ge(hwnd, MCIWNDM cd20: 5f 56 41 4c 49 44 41 54 45 4d 45 44 49 41 2c 20 _VALIDATEMEDIA, cd30: 30 2c 20 30 29 3b 20 7d 0d 0a 76 6f 69 64 20 4d 0, 0); }..void M cd40: 43 49 57 6e 64 53 65 74 52 65 70 65 61 74 28 48 CIWndSetRepeat(H cd50: 57 4e 44 20 68 77 6e 64 2c 20 42 4f 4f 4c 20 66 WND hwnd, BOOL f cd60: 29 0d 0a 09 7b 20 53 65 6e 64 4d 65 73 73 61 67 )...{ SendMessag cd70: 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f e(hwnd, MCIWNDM_ cd80: 53 45 54 52 45 50 45 41 54 2c 20 30 2c 20 63 61 SETREPEAT, 0, ca cd90: 73 74 28 4c 50 41 52 41 4d 29 66 29 3b 20 7d 0d st(LPARAM)f); }. cda0: 0a 42 4f 4f 4c 20 4d 43 49 57 6e 64 47 65 74 52 .BOOL MCIWndGetR cdb0: 65 70 65 61 74 28 48 57 4e 44 20 68 77 6e 64 29 epeat(HWND hwnd) cdc0: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast cdd0: 28 42 4f 4f 4c 29 53 65 6e 64 4d 65 73 73 61 67 (BOOL)SendMessag cde0: 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f e(hwnd, MCIWNDM_ cdf0: 47 45 54 52 45 50 45 41 54 2c 20 30 2c 20 30 29 GETREPEAT, 0, 0) ce00: 3b 20 7d 0d 0a 76 6f 69 64 20 4d 43 49 57 6e 64 ; }..void MCIWnd ce10: 53 65 74 41 63 74 69 76 65 54 69 6d 65 72 28 48 SetActiveTimer(H ce20: 57 4e 44 20 68 77 6e 64 2c 20 55 49 4e 54 20 61 WND hwnd, UINT a ce30: 63 74 69 76 65 29 0d 0a 09 7b 20 53 65 6e 64 4d ctive)...{ SendM ce40: 65 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 essage(hwnd, MCI ce50: 57 4e 44 4d 5f 53 45 54 41 43 54 49 56 45 54 49 WNDM_SETACTIVETI ce60: 4d 45 52 2c 20 63 61 73 74 28 57 50 41 52 41 4d MER, cast(WPARAM ce70: 29 61 63 74 69 76 65 2c 20 30 29 3b 20 7d 0d 0a )active, 0); }.. ce80: 76 6f 69 64 20 4d 43 49 57 6e 64 53 65 74 49 6e void MCIWndSetIn ce90: 61 63 74 69 76 65 54 69 6d 65 72 28 48 57 4e 44 activeTimer(HWND cea0: 20 68 77 6e 64 2c 20 55 49 4e 54 20 69 6e 61 63 hwnd, UINT inac ceb0: 74 69 76 65 29 0d 0a 09 7b 20 53 65 6e 64 4d 65 tive)...{ SendMe cec0: 73 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 ssage(hwnd, MCIW ced0: 4e 44 4d 5f 53 45 54 49 4e 41 43 54 49 56 45 54 NDM_SETINACTIVET cee0: 49 4d 45 52 2c 20 63 61 73 74 28 57 50 41 52 41 IMER, cast(WPARA cef0: 4d 29 69 6e 61 63 74 69 76 65 2c 20 30 29 3b 20 M)inactive, 0); cf00: 7d 0d 0a 76 6f 69 64 20 4d 43 49 57 6e 64 53 65 }..void MCIWndSe cf10: 74 54 69 6d 65 72 73 28 48 57 4e 44 20 68 77 6e tTimers(HWND hwn cf20: 64 2c 20 55 49 4e 54 20 61 63 74 69 76 65 2c 20 d, UINT active, cf30: 55 49 4e 54 20 69 6e 61 63 74 69 76 65 29 0d 0a UINT inactive).. cf40: 09 7b 20 53 65 6e 64 4d 65 73 73 61 67 65 28 68 .{ SendMessage(h cf50: 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 53 45 54 wnd, MCIWNDM_SET cf60: 54 49 4d 45 52 53 2c 20 63 61 73 74 28 57 50 41 TIMERS, cast(WPA cf70: 52 41 4d 29 61 63 74 69 76 65 2c 20 63 61 73 74 RAM)active, cast cf80: 28 4c 50 41 52 41 4d 29 69 6e 61 63 74 69 76 65 (LPARAM)inactive cf90: 29 3b 20 7d 0d 0a 55 49 4e 54 20 4d 43 49 57 6e ); }..UINT MCIWn cfa0: 64 47 65 74 41 63 74 69 76 65 54 69 6d 65 72 28 dGetActiveTimer( cfb0: 48 57 4e 44 20 68 77 6e 64 29 0d 0a 09 7b 20 72 HWND hwnd)...{ r cfc0: 65 74 75 72 6e 20 63 61 73 74 28 55 49 4e 54 29 eturn cast(UINT) cfd0: 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e 64 SendMessage(hwnd cfe0: 2c 20 4d 43 49 57 4e 44 4d 5f 47 45 54 41 43 54 , MCIWNDM_GETACT cff0: 49 56 45 54 49 4d 45 52 2c 20 30 2c 20 30 29 3b IVETIMER, 0, 0); d000: 20 7d 0d 0a 55 49 4e 54 20 4d 43 49 57 6e 64 47 }..UINT MCIWndG d010: 65 74 49 6e 61 63 74 69 76 65 54 69 6d 65 72 28 etInactiveTimer( d020: 48 57 4e 44 20 68 77 6e 64 29 0d 0a 09 7b 20 72 HWND hwnd)...{ r d030: 65 74 75 72 6e 20 63 61 73 74 28 55 49 4e 54 29 eturn cast(UINT) d040: 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e 64 SendMessage(hwnd d050: 2c 20 4d 43 49 57 4e 44 4d 5f 47 45 54 49 4e 41 , MCIWNDM_GETINA d060: 43 54 49 56 45 54 49 4d 45 52 2c 20 30 2c 20 30 CTIVETIMER, 0, 0 d070: 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e ); }..LONG MCIWn d080: 64 52 65 61 6c 69 7a 65 28 48 57 4e 44 20 68 77 dRealize(HWND hw d090: 6e 64 2c 20 42 4f 4f 4c 20 66 42 6b 67 6e 64 29 nd, BOOL fBkgnd) d0a0: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast d0b0: 28 4c 4f 4e 47 29 20 53 65 6e 64 4d 65 73 73 61 (LONG) SendMessa d0c0: 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d ge(hwnd, MCIWNDM d0d0: 5f 52 45 41 4c 49 5a 45 2c 20 63 61 73 74 28 57 _REALIZE, cast(W d0e0: 50 41 52 41 4d 29 66 42 6b 67 6e 64 2c 20 30 29 PARAM)fBkgnd, 0) d0f0: 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 ; }..LONG MCIWnd d100: 53 65 6e 64 53 74 72 69 6e 67 28 48 57 4e 44 20 SendString(HWND d110: 68 77 6e 64 2c 20 4c 50 54 53 54 52 20 73 7a 29 hwnd, LPTSTR sz) d120: 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast d130: 28 4c 4f 4e 47 29 20 53 65 6e 64 4d 65 73 73 61 (LONG) SendMessa d140: 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d ge(hwnd, MCIWNDM d150: 5f 53 45 4e 44 53 54 52 49 4e 47 2c 20 30 2c 20 _SENDSTRING, 0, d160: 63 61 73 74 28 4c 50 41 52 41 4d 29 73 7a 29 3b cast(LPARAM)sz); d170: 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 52 }..LONG MCIWndR d180: 65 74 75 72 6e 53 74 72 69 6e 67 28 48 57 4e 44 eturnString(HWND d190: 20 68 77 6e 64 2c 20 4c 50 56 4f 49 44 20 6c 70 hwnd, LPVOID lp d1a0: 2c 20 55 49 4e 54 20 6c 65 6e 29 0d 0a 09 7b 20 , UINT len)...{ d1b0: 72 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 return cast(LONG d1c0: 29 20 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 ) SendMessage(hw d1d0: 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 52 45 54 55 nd, MCIWNDM_RETU d1e0: 52 4e 53 54 52 49 4e 47 2c 20 63 61 73 74 28 57 RNSTRING, cast(W d1f0: 50 41 52 41 4d 29 6c 65 6e 2c 20 63 61 73 74 28 PARAM)len, cast( d200: 4c 50 41 52 41 4d 29 6c 70 29 3b 20 7d 0d 0a 4c LPARAM)lp); }..L d210: 4f 4e 47 20 4d 43 49 57 6e 64 47 65 74 45 72 72 ONG MCIWndGetErr d220: 6f 72 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 50 or(HWND hwnd, LP d230: 56 4f 49 44 20 6c 70 2c 20 55 49 4e 54 20 6c 65 VOID lp, UINT le d240: 6e 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 n)...{ return ca d250: 73 74 28 4c 4f 4e 47 29 20 53 65 6e 64 4d 65 73 st(LONG) SendMes d260: 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e sage(hwnd, MCIWN d270: 44 4d 5f 47 45 54 45 52 52 4f 52 2c 20 63 61 73 DM_GETERROR, cas d280: 74 28 57 50 41 52 41 4d 29 6c 65 6e 2c 20 63 61 t(WPARAM)len, ca d290: 73 74 28 4c 50 41 52 41 4d 29 6c 70 29 3b 20 7d st(LPARAM)lp); } d2a0: 0d 0a 48 50 41 4c 45 54 54 45 20 4d 43 49 57 6e ..HPALETTE MCIWn d2b0: 64 47 65 74 50 61 6c 65 74 74 65 28 48 57 4e 44 dGetPalette(HWND d2c0: 20 68 77 6e 64 29 0d 0a 09 7b 20 72 65 74 75 72 hwnd)...{ retur d2d0: 6e 20 63 61 73 74 28 48 50 41 4c 45 54 54 45 29 n cast(HPALETTE) d2e0: 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e 64 SendMessage(hwnd d2f0: 2c 20 4d 43 49 57 4e 44 4d 5f 47 45 54 50 41 4c , MCIWNDM_GETPAL d300: 45 54 54 45 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a ETTE, 0, 0); }.. d310: 4c 4f 4e 47 20 4d 43 49 57 6e 64 53 65 74 50 61 LONG MCIWndSetPa d320: 6c 65 74 74 65 28 48 57 4e 44 20 68 77 6e 64 2c lette(HWND hwnd, d330: 20 48 50 41 4c 45 54 54 45 20 68 70 61 6c 29 0d HPALETTE hpal). d340: 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 ..{ return cast( d350: 4c 4f 4e 47 29 20 53 65 6e 64 4d 65 73 73 61 67 LONG) SendMessag d360: 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f e(hwnd, MCIWNDM_ d370: 53 45 54 50 41 4c 45 54 54 45 2c 20 63 61 73 74 SETPALETTE, cast d380: 28 57 50 41 52 41 4d 29 68 70 61 6c 2c 20 30 29 (WPARAM)hpal, 0) d390: 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 57 6e 64 ; }..LONG MCIWnd d3a0: 47 65 74 46 69 6c 65 4e 61 6d 65 28 48 57 4e 44 GetFileName(HWND d3b0: 20 68 77 6e 64 2c 20 4c 50 56 4f 49 44 20 6c 70 hwnd, LPVOID lp d3c0: 2c 20 55 49 4e 54 20 6c 65 6e 29 0d 0a 09 7b 20 , UINT len)...{ d3d0: 72 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 return cast(LONG d3e0: 29 20 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 ) SendMessage(hw d3f0: 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 47 45 54 46 nd, MCIWNDM_GETF d400: 49 4c 45 4e 41 4d 45 2c 20 63 61 73 74 28 57 50 ILENAME, cast(WP d410: 41 52 41 4d 29 6c 65 6e 2c 20 63 61 73 74 28 4c ARAM)len, cast(L d420: 50 41 52 41 4d 29 6c 70 29 3b 20 7d 0d 0a 4c 4f PARAM)lp); }..LO d430: 4e 47 20 4d 43 49 57 6e 64 47 65 74 44 65 76 69 NG MCIWndGetDevi d440: 63 65 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 50 ce(HWND hwnd, LP d450: 56 4f 49 44 20 6c 70 2c 20 55 49 4e 54 20 6c 65 VOID lp, UINT le d460: 6e 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 n)...{ return ca d470: 73 74 28 4c 4f 4e 47 29 20 53 65 6e 64 4d 65 73 st(LONG) SendMes d480: 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e sage(hwnd, MCIWN d490: 44 4d 5f 47 45 54 44 45 56 49 43 45 2c 20 63 61 DM_GETDEVICE, ca d4a0: 73 74 28 57 50 41 52 41 4d 29 6c 65 6e 2c 20 63 st(WPARAM)len, c d4b0: 61 73 74 28 4c 50 41 52 41 4d 29 6c 70 29 3b 20 ast(LPARAM)lp); d4c0: 7d 0d 0a 55 49 4e 54 20 4d 43 49 57 6e 64 47 65 }..UINT MCIWndGe d4d0: 74 53 74 79 6c 65 73 28 48 57 4e 44 20 68 77 6e tStyles(HWND hwn d4e0: 64 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 d)...{ return ca d4f0: 73 74 28 55 49 4e 54 29 20 53 65 6e 64 4d 65 73 st(UINT) SendMes d500: 73 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e sage(hwnd, MCIWN d510: 44 4d 5f 47 45 54 53 54 59 4c 45 53 2c 20 30 2c DM_GETSTYLES, 0, d520: 20 30 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 49 0); }..LONG MCI d530: 57 6e 64 43 68 61 6e 67 65 53 74 79 6c 65 73 28 WndChangeStyles( d540: 48 57 4e 44 20 68 77 6e 64 2c 20 55 49 4e 54 20 HWND hwnd, UINT d550: 6d 61 73 6b 2c 20 4c 4f 4e 47 20 76 61 6c 75 65 mask, LONG value d560: 29 0d 0a 09 7b 20 72 65 74 75 72 6e 20 63 61 73 )...{ return cas d570: 74 28 4c 4f 4e 47 29 20 53 65 6e 64 4d 65 73 73 t(LONG) SendMess d580: 61 67 65 28 68 77 6e 64 2c 20 4d 43 49 57 4e 44 age(hwnd, MCIWND d590: 4d 5f 43 48 41 4e 47 45 53 54 59 4c 45 53 2c 20 M_CHANGESTYLES, d5a0: 63 61 73 74 28 57 50 41 52 41 4d 29 6d 61 73 6b cast(WPARAM)mask d5b0: 2c 20 63 61 73 74 28 4c 50 41 52 41 4d 29 76 61 , cast(LPARAM)va d5c0: 6c 75 65 29 3b 20 7d 0d 0a 4c 4f 4e 47 20 4d 43 lue); }..LONG MC d5d0: 49 57 6e 64 4f 70 65 6e 49 6e 74 65 72 66 61 63 IWndOpenInterfac d5e0: 65 28 48 57 4e 44 20 68 77 6e 64 2c 20 4c 50 55 e(HWND hwnd, LPU d5f0: 4e 4b 4e 4f 57 4e 20 70 55 6e 6b 29 0d 0a 09 7b NKNOWN pUnk)...{ d600: 20 72 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e return cast(LON d610: 47 29 20 53 65 6e 64 4d 65 73 73 61 67 65 28 68 G) SendMessage(h d620: 77 6e 64 2c 20 4d 43 49 57 4e 44 4d 5f 4f 50 45 wnd, MCIWNDM_OPE d630: 4e 49 4e 54 45 52 46 41 43 45 2c 20 30 2c 20 63 NINTERFACE, 0, c d640: 61 73 74 28 4c 50 41 52 41 4d 29 63 61 73 74 28 ast(LPARAM)cast( d650: 76 6f 69 64 2a 29 70 55 6e 6b 29 3b 20 7d 0d 0a void*)pUnk); }.. d660: 4c 4f 4e 47 20 4d 43 49 57 6e 64 53 65 74 4f 77 LONG MCIWndSetOw d670: 6e 65 72 28 48 57 4e 44 20 68 77 6e 64 2c 20 48 ner(HWND hwnd, H d680: 57 4e 44 20 68 77 6e 64 50 29 0d 0a 09 7b 20 72 WND hwndP)...{ r d690: 65 74 75 72 6e 20 63 61 73 74 28 4c 4f 4e 47 29 eturn cast(LONG) d6a0: 20 53 65 6e 64 4d 65 73 73 61 67 65 28 68 77 6e SendMessage(hwn d6b0: 64 2c 20 4d 43 49 57 4e 44 4d 5f 53 45 54 4f 57 d, MCIWNDM_SETOW d6c0: 4e 45 52 2c 20 63 61 73 74 28 57 50 41 52 41 4d NER, cast(WPARAM d6d0: 29 68 77 6e 64 50 2c 20 30 29 3b 20 7d 0d 0a 0d )hwndP, 0); }... d6e0: 0a 65 6e 75 6d 20 7b 0d 0a 09 4d 43 49 57 4e 44 .enum {...MCIWND d6f0: 4d 5f 47 45 54 44 45 56 49 43 45 49 44 09 09 09 M_GETDEVICEID... d700: 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 30 30 2c = WM_USER + 100, d710: 0d 0a 09 4d 43 49 57 4e 44 4d 5f 53 45 4e 44 53 ...MCIWNDM_SENDS d720: 54 52 49 4e 47 41 09 09 09 3d 20 57 4d 5f 55 53 TRINGA...= WM_US d730: 45 52 20 2b 20 31 30 31 2c 0d 0a 09 4d 43 49 57 ER + 101,...MCIW d740: 4e 44 4d 5f 47 45 54 50 4f 53 49 54 49 4f 4e 41 NDM_GETPOSITIONA d750: 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 30 ..= WM_USER + 10 d760: 32 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 45 54 2,...MCIWNDM_GET d770: 53 54 41 52 54 09 09 09 3d 20 57 4d 5f 55 53 45 START...= WM_USE d780: 52 20 2b 20 31 30 33 2c 0d 0a 09 4d 43 49 57 4e R + 103,...MCIWN d790: 44 4d 5f 47 45 54 4c 45 4e 47 54 48 09 09 09 3d DM_GETLENGTH...= d7a0: 20 57 4d 5f 55 53 45 52 20 2b 20 31 30 34 2c 0d WM_USER + 104,. d7b0: 0a 09 4d 43 49 57 4e 44 4d 5f 47 45 54 45 4e 44 ..MCIWNDM_GETEND d7c0: 09 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 ....= WM_USER + d7d0: 31 30 35 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 105,...MCIWNDM_G d7e0: 45 54 4d 4f 44 45 41 09 09 09 3d 20 57 4d 5f 55 ETMODEA...= WM_U d7f0: 53 45 52 20 2b 20 31 30 36 2c 0d 0a 09 4d 43 49 SER + 106,...MCI d800: 57 4e 44 4d 5f 45 4a 45 43 54 09 09 09 09 3d 20 WNDM_EJECT....= d810: 57 4d 5f 55 53 45 52 20 2b 20 31 30 37 2c 0d 0a WM_USER + 107,.. d820: 09 4d 43 49 57 4e 44 4d 5f 53 45 54 5a 4f 4f 4d .MCIWNDM_SETZOOM d830: 09 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 ....= WM_USER + d840: 31 30 38 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 108,...MCIWNDM_G d850: 45 54 5a 4f 4f 4d 09 09 09 09 3d 20 57 4d 5f 55 ETZOOM....= WM_U d860: 53 45 52 20 2b 20 31 30 39 2c 0d 0a 09 4d 43 49 SER + 109,...MCI d870: 57 4e 44 4d 5f 53 45 54 56 4f 4c 55 4d 45 09 09 WNDM_SETVOLUME.. d880: 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 31 30 .= WM_USER + 110 d890: 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 45 54 56 ,...MCIWNDM_GETV d8a0: 4f 4c 55 4d 45 09 09 09 3d 20 57 4d 5f 55 53 45 OLUME...= WM_USE d8b0: 52 20 2b 20 31 31 31 2c 0d 0a 09 4d 43 49 57 4e R + 111,...MCIWN d8c0: 44 4d 5f 53 45 54 53 50 45 45 44 09 09 09 3d 20 DM_SETSPEED...= d8d0: 57 4d 5f 55 53 45 52 20 2b 20 31 31 32 2c 0d 0a WM_USER + 112,.. d8e0: 09 4d 43 49 57 4e 44 4d 5f 47 45 54 53 50 45 45 .MCIWNDM_GETSPEE d8f0: 44 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 D...= WM_USER + d900: 31 31 33 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 53 113,...MCIWNDM_S d910: 45 54 52 45 50 45 41 54 09 09 09 3d 20 57 4d 5f ETREPEAT...= WM_ d920: 55 53 45 52 20 2b 20 31 31 34 2c 0d 0a 09 4d 43 USER + 114,...MC d930: 49 57 4e 44 4d 5f 47 45 54 52 45 50 45 41 54 09 IWNDM_GETREPEAT. d940: 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 31 ..= WM_USER + 11 d950: 35 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 52 45 41 5,...MCIWNDM_REA d960: 4c 49 5a 45 09 09 09 09 3d 20 57 4d 5f 55 53 45 LIZE....= WM_USE d970: 52 20 2b 20 31 31 38 2c 0d 0a 09 4d 43 49 57 4e R + 118,...MCIWN d980: 44 4d 5f 53 45 54 54 49 4d 45 46 4f 52 4d 41 54 DM_SETTIMEFORMAT d990: 41 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 A..= WM_USER + 1 d9a0: 31 39 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 45 19,...MCIWNDM_GE d9b0: 54 54 49 4d 45 46 4f 52 4d 41 54 41 09 09 3d 20 TTIMEFORMATA..= d9c0: 57 4d 5f 55 53 45 52 20 2b 20 31 32 30 2c 0d 0a WM_USER + 120,.. d9d0: 09 4d 43 49 57 4e 44 4d 5f 56 41 4c 49 44 41 54 .MCIWNDM_VALIDAT d9e0: 45 4d 45 44 49 41 09 09 3d 20 57 4d 5f 55 53 45 EMEDIA..= WM_USE d9f0: 52 20 2b 20 31 32 31 2c 0d 0a 09 4d 43 49 57 4e R + 121,...MCIWN da00: 44 4d 5f 50 4c 41 59 46 52 4f 4d 09 09 09 3d 20 DM_PLAYFROM...= da10: 57 4d 5f 55 53 45 52 20 2b 20 31 32 32 2c 0d 0a WM_USER + 122,.. da20: 09 4d 43 49 57 4e 44 4d 5f 50 4c 41 59 54 4f 09 .MCIWNDM_PLAYTO. da30: 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 ...= WM_USER + 1 da40: 32 33 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 45 23,...MCIWNDM_GE da50: 54 46 49 4c 45 4e 41 4d 45 41 09 09 3d 20 57 4d TFILENAMEA..= WM da60: 5f 55 53 45 52 20 2b 20 31 32 34 2c 0d 0a 09 4d _USER + 124,...M da70: 43 49 57 4e 44 4d 5f 47 45 54 44 45 56 49 43 45 CIWNDM_GETDEVICE da80: 41 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 A...= WM_USER + da90: 31 32 35 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 125,...MCIWNDM_G daa0: 45 54 50 41 4c 45 54 54 45 09 09 09 3d 20 57 4d ETPALETTE...= WM dab0: 5f 55 53 45 52 20 2b 20 31 32 36 2c 0d 0a 09 4d _USER + 126,...M dac0: 43 49 57 4e 44 4d 5f 53 45 54 50 41 4c 45 54 54 CIWNDM_SETPALETT dad0: 45 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 E...= WM_USER + dae0: 31 32 37 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 127,...MCIWNDM_G daf0: 45 54 45 52 52 4f 52 41 09 09 09 3d 20 57 4d 5f ETERRORA...= WM_ db00: 55 53 45 52 20 2b 20 31 32 38 2c 0d 0a 09 4d 43 USER + 128,...MC db10: 49 57 4e 44 4d 5f 53 45 54 54 49 4d 45 52 53 09 IWNDM_SETTIMERS. db20: 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 32 ..= WM_USER + 12 db30: 39 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 53 45 54 9,...MCIWNDM_SET db40: 41 43 54 49 56 45 54 49 4d 45 52 09 09 3d 20 57 ACTIVETIMER..= W db50: 4d 5f 55 53 45 52 20 2b 20 31 33 30 2c 0d 0a 09 M_USER + 130,... db60: 4d 43 49 57 4e 44 4d 5f 53 45 54 49 4e 41 43 54 MCIWNDM_SETINACT db70: 49 56 45 54 49 4d 45 52 09 3d 20 57 4d 5f 55 53 IVETIMER.= WM_US db80: 45 52 20 2b 20 31 33 31 2c 0d 0a 09 4d 43 49 57 ER + 131,...MCIW db90: 4e 44 4d 5f 47 45 54 41 43 54 49 56 45 54 49 4d NDM_GETACTIVETIM dba0: 45 52 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 ER..= WM_USER + dbb0: 31 33 32 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 132,...MCIWNDM_G dbc0: 45 54 49 4e 41 43 54 49 56 45 54 49 4d 45 52 09 ETINACTIVETIMER. dbd0: 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 33 33 2c = WM_USER + 133, dbe0: 0d 0a 09 4d 43 49 57 4e 44 4d 5f 4e 45 57 41 09 ...MCIWNDM_NEWA. dbf0: 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 ...= WM_USER + 1 dc00: 33 34 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 43 48 34,...MCIWNDM_CH dc10: 41 4e 47 45 53 54 59 4c 45 53 09 09 3d 20 57 4d ANGESTYLES..= WM dc20: 5f 55 53 45 52 20 2b 20 31 33 35 2c 0d 0a 09 4d _USER + 135,...M dc30: 43 49 57 4e 44 4d 5f 47 45 54 53 54 59 4c 45 53 CIWNDM_GETSTYLES dc40: 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 ...= WM_USER + 1 dc50: 33 36 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 45 36,...MCIWNDM_GE dc60: 54 41 4c 49 41 53 09 09 09 3d 20 57 4d 5f 55 53 TALIAS...= WM_US dc70: 45 52 20 2b 20 31 33 37 2c 0d 0a 09 4d 43 49 57 ER + 137,...MCIW dc80: 4e 44 4d 5f 52 45 54 55 52 4e 53 54 52 49 4e 47 NDM_RETURNSTRING dc90: 41 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 A..= WM_USER + 1 dca0: 33 38 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 50 4c 38,...MCIWNDM_PL dcb0: 41 59 52 45 56 45 52 53 45 09 09 09 3d 20 57 4d AYREVERSE...= WM dcc0: 5f 55 53 45 52 20 2b 20 31 33 39 2c 0d 0a 09 4d _USER + 139,...M dcd0: 43 49 57 4e 44 4d 5f 47 45 54 5f 53 4f 55 52 43 CIWNDM_GET_SOURC dce0: 45 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 E...= WM_USER + dcf0: 31 34 30 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 50 140,...MCIWNDM_P dd00: 55 54 5f 53 4f 55 52 43 45 09 09 09 3d 20 57 4d UT_SOURCE...= WM dd10: 5f 55 53 45 52 20 2b 20 31 34 31 2c 0d 0a 09 4d _USER + 141,...M dd20: 43 49 57 4e 44 4d 5f 47 45 54 5f 44 45 53 54 09 CIWNDM_GET_DEST. dd30: 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 34 ..= WM_USER + 14 dd40: 32 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 50 55 54 2,...MCIWNDM_PUT dd50: 5f 44 45 53 54 09 09 09 3d 20 57 4d 5f 55 53 45 _DEST...= WM_USE dd60: 52 20 2b 20 31 34 33 2c 0d 0a 09 4d 43 49 57 4e R + 143,...MCIWN dd70: 44 4d 5f 43 41 4e 5f 50 4c 41 59 09 09 09 3d 20 DM_CAN_PLAY...= dd80: 57 4d 5f 55 53 45 52 20 2b 20 31 34 34 2c 0d 0a WM_USER + 144,.. dd90: 09 4d 43 49 57 4e 44 4d 5f 43 41 4e 5f 57 49 4e .MCIWNDM_CAN_WIN dda0: 44 4f 57 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 DOW...= WM_USER ddb0: 2b 20 31 34 35 2c 0d 0a 09 4d 43 49 57 4e 44 4d + 145,...MCIWNDM ddc0: 5f 43 41 4e 5f 52 45 43 4f 52 44 09 09 09 3d 20 _CAN_RECORD...= ddd0: 57 4d 5f 55 53 45 52 20 2b 20 31 34 36 2c 0d 0a WM_USER + 146,.. dde0: 09 4d 43 49 57 4e 44 4d 5f 43 41 4e 5f 53 41 56 .MCIWNDM_CAN_SAV ddf0: 45 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 E...= WM_USER + de00: 31 34 37 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 43 147,...MCIWNDM_C de10: 41 4e 5f 45 4a 45 43 54 09 09 09 3d 20 57 4d 5f AN_EJECT...= WM_ de20: 55 53 45 52 20 2b 20 31 34 38 2c 0d 0a 09 4d 43 USER + 148,...MC de30: 49 57 4e 44 4d 5f 43 41 4e 5f 43 4f 4e 46 49 47 IWNDM_CAN_CONFIG de40: 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 ...= WM_USER + 1 de50: 34 39 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 50 41 49,...MCIWNDM_PA de60: 4c 45 54 54 45 4b 49 43 4b 09 09 09 3d 20 57 4d LETTEKICK...= WM de70: 5f 55 53 45 52 20 2b 20 31 35 30 2c 0d 0a 09 4d _USER + 150,...M de80: 43 49 57 4e 44 4d 5f 4f 50 45 4e 49 4e 54 45 52 CIWNDM_OPENINTER de90: 46 41 43 45 09 09 3d 20 57 4d 5f 55 53 45 52 20 FACE..= WM_USER dea0: 2b 20 31 35 31 2c 0d 0a 09 4d 43 49 57 4e 44 4d + 151,...MCIWNDM deb0: 5f 53 45 54 4f 57 4e 45 52 09 09 09 3d 20 57 4d _SETOWNER...= WM dec0: 5f 55 53 45 52 20 2b 20 31 35 32 2c 0d 0a 09 4d _USER + 152,...M ded0: 43 49 57 4e 44 4d 5f 4f 50 45 4e 41 09 09 09 09 CIWNDM_OPENA.... dee0: 3d 20 57 4d 5f 55 53 45 52 20 2b 20 31 35 33 2c = WM_USER + 153, def0: 0d 0a 09 4d 43 49 57 4e 44 4d 5f 53 45 4e 44 53 ...MCIWNDM_SENDS df00: 54 52 49 4e 47 57 09 09 09 3d 20 57 4d 5f 55 53 TRINGW...= WM_US df10: 45 52 20 2b 20 32 30 31 2c 0d 0a 09 4d 43 49 57 ER + 201,...MCIW df20: 4e 44 4d 5f 47 45 54 50 4f 53 49 54 49 4f 4e 57 NDM_GETPOSITIONW df30: 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 32 30 ..= WM_USER + 20 df40: 32 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 45 54 2,...MCIWNDM_GET df50: 4d 4f 44 45 57 09 09 09 3d 20 57 4d 5f 55 53 45 MODEW...= WM_USE df60: 52 20 2b 20 32 30 36 2c 0d 0a 09 4d 43 49 57 4e R + 206,...MCIWN df70: 44 4d 5f 53 45 54 54 49 4d 45 46 4f 52 4d 41 54 DM_SETTIMEFORMAT df80: 57 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 32 W..= WM_USER + 2 df90: 31 39 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 47 45 19,...MCIWNDM_GE dfa0: 54 54 49 4d 45 46 4f 52 4d 41 54 57 09 09 3d 20 TTIMEFORMATW..= dfb0: 57 4d 5f 55 53 45 52 20 2b 20 32 32 30 2c 0d 0a WM_USER + 220,.. dfc0: 09 4d 43 49 57 4e 44 4d 5f 47 45 54 46 49 4c 45 .MCIWNDM_GETFILE dfd0: 4e 41 4d 45 57 09 09 3d 20 57 4d 5f 55 53 45 52 NAMEW..= WM_USER dfe0: 20 2b 20 32 32 34 2c 0d 0a 09 4d 43 49 57 4e 44 + 224,...MCIWND dff0: 4d 5f 47 45 54 44 45 56 49 43 45 57 09 09 09 3d M_GETDEVICEW...= e000: 20 57 4d 5f 55 53 45 52 20 2b 20 32 32 35 2c 0d WM_USER + 225,. e010: 0a 09 4d 43 49 57 4e 44 4d 5f 47 45 54 45 52 52 ..MCIWNDM_GETERR e020: 4f 52 57 09 09 09 3d 20 57 4d 5f 55 53 45 52 20 ORW...= WM_USER e030: 2b 20 32 32 38 2c 0d 0a 09 4d 43 49 57 4e 44 4d + 228,...MCIWNDM e040: 5f 4e 45 57 57 09 09 09 09 3d 20 57 4d 5f 55 53 _NEWW....= WM_US e050: 45 52 20 2b 20 32 33 34 2c 0d 0a 09 4d 43 49 57 ER + 234,...MCIW e060: 4e 44 4d 5f 52 45 54 55 52 4e 53 54 52 49 4e 47 NDM_RETURNSTRING e070: 57 09 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 32 W..= WM_USER + 2 e080: 33 38 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 4f 50 38,...MCIWNDM_OP e090: 45 4e 57 09 09 09 09 3d 20 57 4d 5f 55 53 45 52 ENW....= WM_USER e0a0: 20 2b 20 32 35 32 2c 0d 0a 7d 0d 0a 0d 0a 76 65 + 252,..}....ve e0b0: 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b rsion(Unicode) { e0c0: 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 4d ...alias MCIWNDM e0d0: 5f 53 45 4e 44 53 54 52 49 4e 47 57 09 09 4d 43 _SENDSTRINGW..MC e0e0: 49 57 4e 44 4d 5f 53 45 4e 44 53 54 52 49 4e 47 IWNDM_SENDSTRING e0f0: 3b 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 ;...alias MCIWND e100: 4d 5f 47 45 54 50 4f 53 49 54 49 4f 4e 57 09 09 M_GETPOSITIONW.. e110: 4d 43 49 57 4e 44 4d 5f 47 45 54 50 4f 53 49 54 MCIWNDM_GETPOSIT e120: 49 4f 4e 3b 0d 0a 09 61 6c 69 61 73 20 4d 43 49 ION;...alias MCI e130: 57 4e 44 4d 5f 47 45 54 4d 4f 44 45 57 09 09 09 WNDM_GETMODEW... e140: 4d 43 49 57 4e 44 4d 5f 47 45 54 4d 4f 44 45 3b MCIWNDM_GETMODE; e150: 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 4d ...alias MCIWNDM e160: 5f 53 45 54 54 49 4d 45 46 4f 52 4d 41 54 57 09 _SETTIMEFORMATW. e170: 4d 43 49 57 4e 44 4d 5f 53 45 54 54 49 4d 45 46 MCIWNDM_SETTIMEF e180: 4f 52 4d 41 54 3b 0d 0a 09 61 6c 69 61 73 20 4d ORMAT;...alias M e190: 43 49 57 4e 44 4d 5f 47 45 54 54 49 4d 45 46 4f CIWNDM_GETTIMEFO e1a0: 52 4d 41 54 57 09 4d 43 49 57 4e 44 4d 5f 47 45 RMATW.MCIWNDM_GE e1b0: 54 54 49 4d 45 46 4f 52 4d 41 54 3b 0d 0a 09 61 TTIMEFORMAT;...a e1c0: 6c 69 61 73 20 4d 43 49 57 4e 44 4d 5f 47 45 54 lias MCIWNDM_GET e1d0: 46 49 4c 45 4e 41 4d 45 57 09 09 4d 43 49 57 4e FILENAMEW..MCIWN e1e0: 44 4d 5f 47 45 54 46 49 4c 45 4e 41 4d 45 3b 0d DM_GETFILENAME;. e1f0: 0a 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 4d 5f ..alias MCIWNDM_ e200: 47 45 54 44 45 56 49 43 45 57 09 09 4d 43 49 57 GETDEVICEW..MCIW e210: 4e 44 4d 5f 47 45 54 44 45 56 49 43 45 3b 0d 0a NDM_GETDEVICE;.. e220: 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 4d 5f 47 .alias MCIWNDM_G e230: 45 54 45 52 52 4f 52 57 09 09 09 4d 43 49 57 4e ETERRORW...MCIWN e240: 44 4d 5f 47 45 54 45 52 52 4f 52 3b 0d 0a 09 61 DM_GETERROR;...a e250: 6c 69 61 73 20 4d 43 49 57 4e 44 4d 5f 4e 45 57 lias MCIWNDM_NEW e260: 57 09 09 09 09 4d 43 49 57 4e 44 4d 5f 4e 45 57 W....MCIWNDM_NEW e270: 3b 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 ;...alias MCIWND e280: 4d 5f 52 45 54 55 52 4e 53 54 52 49 4e 47 57 09 M_RETURNSTRINGW. e290: 09 4d 43 49 57 4e 44 4d 5f 52 45 54 55 52 4e 53 .MCIWNDM_RETURNS e2a0: 54 52 49 4e 47 3b 0d 0a 09 61 6c 69 61 73 20 4d TRING;...alias M e2b0: 43 49 57 4e 44 4d 5f 4f 50 45 4e 57 09 09 09 09 CIWNDM_OPENW.... e2c0: 4d 43 49 57 4e 44 4d 5f 4f 50 45 4e 3b 0d 0a 7d MCIWNDM_OPEN;..} e2d0: 20 65 6c 73 65 20 7b 20 2f 2f 20 55 6e 69 63 6f else { // Unico e2e0: 64 65 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 4e de...alias MCIWN e2f0: 44 4d 5f 53 45 4e 44 53 54 52 49 4e 47 41 09 09 DM_SENDSTRINGA.. e300: 4d 43 49 57 4e 44 4d 5f 53 45 4e 44 53 54 52 49 MCIWNDM_SENDSTRI e310: 4e 47 3b 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 NG;...alias MCIW e320: 4e 44 4d 5f 47 45 54 50 4f 53 49 54 49 4f 4e 41 NDM_GETPOSITIONA e330: 09 09 4d 43 49 57 4e 44 4d 5f 47 45 54 50 4f 53 ..MCIWNDM_GETPOS e340: 49 54 49 4f 4e 3b 0d 0a 09 61 6c 69 61 73 20 4d ITION;...alias M e350: 43 49 57 4e 44 4d 5f 47 45 54 4d 4f 44 45 41 09 CIWNDM_GETMODEA. e360: 09 09 4d 43 49 57 4e 44 4d 5f 47 45 54 4d 4f 44 ..MCIWNDM_GETMOD e370: 45 3b 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 4e E;...alias MCIWN e380: 44 4d 5f 53 45 54 54 49 4d 45 46 4f 52 4d 41 54 DM_SETTIMEFORMAT e390: 41 09 4d 43 49 57 4e 44 4d 5f 53 45 54 54 49 4d A.MCIWNDM_SETTIM e3a0: 45 46 4f 52 4d 41 54 3b 0d 0a 09 61 6c 69 61 73 EFORMAT;...alias e3b0: 20 4d 43 49 57 4e 44 4d 5f 47 45 54 54 49 4d 45 MCIWNDM_GETTIME e3c0: 46 4f 52 4d 41 54 41 09 4d 43 49 57 4e 44 4d 5f FORMATA.MCIWNDM_ e3d0: 47 45 54 54 49 4d 45 46 4f 52 4d 41 54 3b 0d 0a GETTIMEFORMAT;.. e3e0: 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 4d 5f 47 .alias MCIWNDM_G e3f0: 45 54 46 49 4c 45 4e 41 4d 45 41 09 09 4d 43 49 ETFILENAMEA..MCI e400: 57 4e 44 4d 5f 47 45 54 46 49 4c 45 4e 41 4d 45 WNDM_GETFILENAME e410: 3b 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 ;...alias MCIWND e420: 4d 5f 47 45 54 44 45 56 49 43 45 41 09 09 4d 43 M_GETDEVICEA..MC e430: 49 57 4e 44 4d 5f 47 45 54 44 45 56 49 43 45 3b IWNDM_GETDEVICE; e440: 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 4d ...alias MCIWNDM e450: 5f 47 45 54 45 52 52 4f 52 41 09 09 09 4d 43 49 _GETERRORA...MCI e460: 57 4e 44 4d 5f 47 45 54 45 52 52 4f 52 3b 0d 0a WNDM_GETERROR;.. e470: 09 61 6c 69 61 73 20 4d 43 49 57 4e 44 4d 5f 4e .alias MCIWNDM_N e480: 45 57 41 09 09 09 09 4d 43 49 57 4e 44 4d 5f 4e EWA....MCIWNDM_N e490: 45 57 3b 0d 0a 09 61 6c 69 61 73 20 4d 43 49 57 EW;...alias MCIW e4a0: 4e 44 4d 5f 52 45 54 55 52 4e 53 54 52 49 4e 47 NDM_RETURNSTRING e4b0: 41 09 09 4d 43 49 57 4e 44 4d 5f 52 45 54 55 52 A..MCIWNDM_RETUR e4c0: 4e 53 54 52 49 4e 47 3b 0d 0a 09 61 6c 69 61 73 NSTRING;...alias e4d0: 20 4d 43 49 57 4e 44 4d 5f 4f 50 45 4e 41 09 09 MCIWNDM_OPENA.. e4e0: 09 09 4d 43 49 57 4e 44 4d 5f 4f 50 45 4e 3b 0d ..MCIWNDM_OPEN;. e4f0: 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 4d .}....enum {...M e500: 43 49 57 4e 44 4d 5f 4e 4f 54 49 46 59 4d 4f 44 CIWNDM_NOTIFYMOD e510: 45 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 32 30 E.= WM_USER + 20 e520: 30 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 4e 4f 54 0,...MCIWNDM_NOT e530: 49 46 59 50 4f 53 09 3d 20 57 4d 5f 55 53 45 52 IFYPOS.= WM_USER e540: 20 2b 20 32 30 31 2c 0d 0a 09 4d 43 49 57 4e 44 + 201,...MCIWND e550: 4d 5f 4e 4f 54 49 46 59 53 49 5a 45 09 3d 20 57 M_NOTIFYSIZE.= W e560: 4d 5f 55 53 45 52 20 2b 20 32 30 32 2c 0d 0a 09 M_USER + 202,... e570: 4d 43 49 57 4e 44 4d 5f 4e 4f 54 49 46 59 4d 45 MCIWNDM_NOTIFYME e580: 44 49 41 09 3d 20 57 4d 5f 55 53 45 52 20 2b 20 DIA.= WM_USER + e590: 32 30 33 2c 0d 0a 09 4d 43 49 57 4e 44 4d 5f 4e 203,...MCIWNDM_N e5a0: 4f 54 49 46 59 45 52 52 4f 52 09 3d 20 57 4d 5f OTIFYERROR.= WM_ e5b0: 55 53 45 52 20 2b 20 32 30 35 2c 0d 0a 7d 0d 0a USER + 205,..}.. e5c0: 0d 0a 63 6f 6e 73 74 20 4d 43 49 57 4e 44 5f 53 ..const MCIWND_S e5d0: 54 41 52 54 09 3d 20 2d 31 3b 0d 0a 63 6f 6e 73 TART.= -1;..cons e5e0: 74 20 4d 43 49 57 4e 44 5f 45 4e 44 09 3d 20 2d t MCIWND_END.= - e5f0: 32 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 4d 2;....enum {...M e600: 43 49 5f 43 4c 4f 53 45 09 3d 20 30 78 30 38 30 CI_CLOSE.= 0x080 e610: 34 2c 0d 0a 09 4d 43 49 5f 50 4c 41 59 09 3d 20 4,...MCI_PLAY.= e620: 30 78 30 38 30 36 2c 0d 0a 09 4d 43 49 5f 53 45 0x0806,...MCI_SE e630: 45 4b 09 3d 20 30 78 30 38 30 37 2c 0d 0a 09 4d EK.= 0x0807,...M e640: 43 49 5f 53 54 4f 50 09 3d 20 30 78 30 38 30 38 CI_STOP.= 0x0808 e650: 2c 0d 0a 09 4d 43 49 5f 50 41 55 53 45 09 3d 20 ,...MCI_PAUSE.= e660: 30 78 30 38 30 39 2c 0d 0a 09 4d 43 49 5f 53 54 0x0809,...MCI_ST e670: 45 50 09 3d 20 30 78 30 38 30 45 2c 0d 0a 09 4d EP.= 0x080E,...M e680: 43 49 5f 52 45 43 4f 52 44 09 3d 20 30 78 30 38 CI_RECORD.= 0x08 e690: 30 46 2c 0d 0a 09 4d 43 49 5f 53 41 56 45 09 3d 0F,...MCI_SAVE.= e6a0: 20 30 78 30 38 31 33 2c 0d 0a 09 4d 43 49 5f 43 0x0813,...MCI_C e6b0: 55 54 09 09 3d 20 30 78 30 38 35 31 2c 0d 0a 09 UT..= 0x0851,... e6c0: 4d 43 49 5f 43 4f 50 59 09 3d 20 30 78 30 38 35 MCI_COPY.= 0x085 e6d0: 32 2c 0d 0a 09 4d 43 49 5f 50 41 53 54 45 09 3d 2,...MCI_PASTE.= e6e0: 20 30 78 30 38 35 33 2c 0d 0a 09 4d 43 49 5f 52 0x0853,...MCI_R e6f0: 45 53 55 4d 45 09 3d 20 30 78 30 38 35 35 2c 0d ESUME.= 0x0855,. e700: 0a 09 4d 43 49 5f 44 45 4c 45 54 45 09 3d 20 30 ..MCI_DELETE.= 0 e710: 78 30 38 35 36 2c 0d 0a 7d 0d 0a 0d 0a 65 6e 75 x0856,..}....enu e720: 6d 20 7b 0d 0a 09 4d 43 49 5f 4d 4f 44 45 5f 4e m {...MCI_MODE_N e730: 4f 54 5f 52 45 41 44 59 09 3d 20 35 32 34 2c 0d OT_READY.= 524,. e740: 0a 09 4d 43 49 5f 4d 4f 44 45 5f 53 54 4f 50 2c ..MCI_MODE_STOP, e750: 0d 0a 09 4d 43 49 5f 4d 4f 44 45 5f 50 4c 41 59 ...MCI_MODE_PLAY e760: 2c 0d 0a 09 4d 43 49 5f 4d 4f 44 45 5f 52 45 43 ,...MCI_MODE_REC e770: 4f 52 44 2c 0d 0a 09 4d 43 49 5f 4d 4f 44 45 5f ORD,...MCI_MODE_ e780: 53 45 45 4b 2c 0d 0a 09 4d 43 49 5f 4d 4f 44 45 SEEK,...MCI_MODE e790: 5f 50 41 55 53 45 2c 0d 0a 09 4d 43 49 5f 4d 4f _PAUSE,...MCI_MO e7a0: 44 45 5f 4f 50 45 4e 2c 0d 0a 7d 0d 0a 0d 0a 61 DE_OPEN,..}....a e7b0: 6c 69 61 73 20 54 79 70 65 44 65 66 21 28 48 41 lias TypeDef!(HA e7c0: 4e 44 4c 45 29 20 48 56 49 44 45 4f 3b 0d 0a 61 NDLE) HVIDEO;..a e7d0: 6c 69 61 73 20 48 56 49 44 45 4f 2a 20 4c 50 48 lias HVIDEO* LPH e7e0: 56 49 44 45 4f 3b 0d 0a 0d 0a 2f 2f 20 45 72 72 VIDEO;....// Err e7f0: 6f 72 20 52 65 74 75 72 6e 20 56 61 6c 75 65 73 or Return Values e800: 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 44 56 5f ....enum {...DV_ e810: 45 52 52 5f 4f 4b 09 09 09 09 3d 20 30 2c 0d 0a ERR_OK....= 0,.. e820: 09 44 56 5f 45 52 52 5f 42 41 53 45 09 09 09 09 .DV_ERR_BASE.... e830: 3d 20 31 2c 0d 0a 09 44 56 5f 45 52 52 5f 4e 4f = 1,...DV_ERR_NO e840: 4e 53 50 45 43 49 46 49 43 09 09 3d 20 44 56 5f NSPECIFIC..= DV_ e850: 45 52 52 5f 42 41 53 45 2c 0d 0a 09 44 56 5f 45 ERR_BASE,...DV_E e860: 52 52 5f 42 41 44 46 4f 52 4d 41 54 09 09 3d 20 RR_BADFORMAT..= e870: 44 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 31 2c DV_ERR_BASE + 1, e880: 0d 0a 09 44 56 5f 45 52 52 5f 53 54 49 4c 4c 50 ...DV_ERR_STILLP e890: 4c 41 59 49 4e 47 09 09 3d 20 44 56 5f 45 52 52 LAYING..= DV_ERR e8a0: 5f 42 41 53 45 20 2b 20 32 2c 0d 0a 09 44 56 5f _BASE + 2,...DV_ e8b0: 45 52 52 5f 55 4e 50 52 45 50 41 52 45 44 09 09 ERR_UNPREPARED.. e8c0: 3d 20 44 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 = DV_ERR_BASE + e8d0: 33 2c 0d 0a 09 44 56 5f 45 52 52 5f 53 59 4e 43 3,...DV_ERR_SYNC e8e0: 09 09 09 09 3d 20 44 56 5f 45 52 52 5f 42 41 53 ....= DV_ERR_BAS e8f0: 45 20 2b 20 34 2c 0d 0a 09 44 56 5f 45 52 52 5f E + 4,...DV_ERR_ e900: 54 4f 4f 4d 41 4e 59 43 48 41 4e 4e 45 4c 53 09 TOOMANYCHANNELS. e910: 3d 20 44 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 = DV_ERR_BASE + e920: 35 2c 0d 0a 09 44 56 5f 45 52 52 5f 4e 4f 54 44 5,...DV_ERR_NOTD e930: 45 54 45 43 54 45 44 09 09 3d 20 44 56 5f 45 52 ETECTED..= DV_ER e940: 52 5f 42 41 53 45 20 2b 20 36 2c 0d 0a 09 44 56 R_BASE + 6,...DV e950: 5f 45 52 52 5f 42 41 44 49 4e 53 54 41 4c 4c 09 _ERR_BADINSTALL. e960: 09 3d 20 44 56 5f 45 52 52 5f 42 41 53 45 20 2b .= DV_ERR_BASE + e970: 20 37 2c 0d 0a 09 44 56 5f 45 52 52 5f 43 52 45 7,...DV_ERR_CRE e980: 41 54 45 50 41 4c 45 54 54 45 09 3d 20 44 56 5f ATEPALETTE.= DV_ e990: 45 52 52 5f 42 41 53 45 20 2b 20 38 2c 0d 0a 09 ERR_BASE + 8,... e9a0: 44 56 5f 45 52 52 5f 53 49 5a 45 46 49 45 4c 44 DV_ERR_SIZEFIELD e9b0: 09 09 3d 20 44 56 5f 45 52 52 5f 42 41 53 45 20 ..= DV_ERR_BASE e9c0: 2b 20 39 2c 0d 0a 09 44 56 5f 45 52 52 5f 50 41 + 9,...DV_ERR_PA e9d0: 52 41 4d 31 09 09 09 3d 20 44 56 5f 45 52 52 5f RAM1...= DV_ERR_ e9e0: 42 41 53 45 20 2b 20 31 30 2c 0d 0a 09 44 56 5f BASE + 10,...DV_ e9f0: 45 52 52 5f 50 41 52 41 4d 32 09 09 09 3d 20 44 ERR_PARAM2...= D ea00: 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 31 31 2c V_ERR_BASE + 11, ea10: 0d 0a 09 44 56 5f 45 52 52 5f 43 4f 4e 46 49 47 ...DV_ERR_CONFIG ea20: 31 09 09 09 3d 20 44 56 5f 45 52 52 5f 42 41 53 1...= DV_ERR_BAS ea30: 45 20 2b 20 31 32 2c 0d 0a 09 44 56 5f 45 52 52 E + 12,...DV_ERR ea40: 5f 43 4f 4e 46 49 47 32 09 09 09 3d 20 44 56 5f _CONFIG2...= DV_ ea50: 45 52 52 5f 42 41 53 45 20 2b 20 31 33 2c 0d 0a ERR_BASE + 13,.. ea60: 09 44 56 5f 45 52 52 5f 46 4c 41 47 53 09 09 09 .DV_ERR_FLAGS... ea70: 3d 20 44 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 = DV_ERR_BASE + ea80: 31 34 2c 0d 0a 09 44 56 5f 45 52 52 5f 31 33 09 14,...DV_ERR_13. ea90: 09 09 09 3d 20 44 56 5f 45 52 52 5f 42 41 53 45 ...= DV_ERR_BASE eaa0: 20 2b 20 31 35 2c 0d 0a 09 44 56 5f 45 52 52 5f + 15,...DV_ERR_ eab0: 4e 4f 54 53 55 50 50 4f 52 54 45 44 09 09 3d 20 NOTSUPPORTED..= eac0: 44 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 31 36 DV_ERR_BASE + 16 ead0: 2c 0d 0a 09 44 56 5f 45 52 52 5f 4e 4f 4d 45 4d ,...DV_ERR_NOMEM eae0: 09 09 09 3d 20 44 56 5f 45 52 52 5f 42 41 53 45 ...= DV_ERR_BASE eaf0: 20 2b 20 31 37 2c 0d 0a 09 44 56 5f 45 52 52 5f + 17,...DV_ERR_ eb00: 41 4c 4c 4f 43 41 54 45 44 09 09 3d 20 44 56 5f ALLOCATED..= DV_ eb10: 45 52 52 5f 42 41 53 45 20 2b 20 31 38 2c 0d 0a ERR_BASE + 18,.. eb20: 09 44 56 5f 45 52 52 5f 42 41 44 44 45 56 49 43 .DV_ERR_BADDEVIC eb30: 45 49 44 09 09 3d 20 44 56 5f 45 52 52 5f 42 41 EID..= DV_ERR_BA eb40: 53 45 20 2b 20 31 39 2c 0d 0a 09 44 56 5f 45 52 SE + 19,...DV_ER eb50: 52 5f 49 4e 56 41 4c 48 41 4e 44 4c 45 09 09 3d R_INVALHANDLE..= eb60: 20 44 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 32 DV_ERR_BASE + 2 eb70: 30 2c 0d 0a 09 44 56 5f 45 52 52 5f 42 41 44 45 0,...DV_ERR_BADE eb80: 52 52 4e 55 4d 09 09 3d 20 44 56 5f 45 52 52 5f RRNUM..= DV_ERR_ eb90: 42 41 53 45 20 2b 20 32 31 2c 0d 0a 09 44 56 5f BASE + 21,...DV_ eba0: 45 52 52 5f 4e 4f 5f 42 55 46 46 45 52 53 09 09 ERR_NO_BUFFERS.. ebb0: 3d 20 44 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 = DV_ERR_BASE + ebc0: 32 32 2c 0d 0a 09 44 56 5f 45 52 52 5f 4d 45 4d 22,...DV_ERR_MEM ebd0: 5f 43 4f 4e 46 4c 49 43 54 09 09 3d 20 44 56 5f _CONFLICT..= DV_ ebe0: 45 52 52 5f 42 41 53 45 20 2b 20 32 33 2c 0d 0a ERR_BASE + 23,.. ebf0: 09 44 56 5f 45 52 52 5f 49 4f 5f 43 4f 4e 46 4c .DV_ERR_IO_CONFL ec00: 49 43 54 09 09 3d 20 44 56 5f 45 52 52 5f 42 41 ICT..= DV_ERR_BA ec10: 53 45 20 2b 20 32 34 2c 0d 0a 09 44 56 5f 45 52 SE + 24,...DV_ER ec20: 52 5f 44 4d 41 5f 43 4f 4e 46 4c 49 43 54 09 09 R_DMA_CONFLICT.. ec30: 3d 20 44 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 = DV_ERR_BASE + ec40: 32 35 2c 0d 0a 09 44 56 5f 45 52 52 5f 49 4e 54 25,...DV_ERR_INT ec50: 5f 43 4f 4e 46 4c 49 43 54 09 09 3d 20 44 56 5f _CONFLICT..= DV_ ec60: 45 52 52 5f 42 41 53 45 20 2b 20 32 36 2c 0d 0a ERR_BASE + 26,.. ec70: 09 44 56 5f 45 52 52 5f 50 52 4f 54 45 43 54 5f .DV_ERR_PROTECT_ ec80: 4f 4e 4c 59 09 09 3d 20 44 56 5f 45 52 52 5f 42 ONLY..= DV_ERR_B ec90: 41 53 45 20 2b 20 32 37 2c 0d 0a 09 44 56 5f 45 ASE + 27,...DV_E eca0: 52 52 5f 4c 41 53 54 45 52 52 4f 52 09 09 3d 20 RR_LASTERROR..= ecb0: 44 56 5f 45 52 52 5f 42 41 53 45 20 2b 20 32 37 DV_ERR_BASE + 27 ecc0: 2c 0d 0a 09 44 56 5f 45 52 52 5f 55 53 45 52 5f ,...DV_ERR_USER_ ecd0: 4d 53 47 09 09 09 3d 20 44 56 5f 45 52 52 5f 42 MSG...= DV_ERR_B ece0: 41 53 45 20 2b 20 31 30 30 30 2c 0d 0a 7d 0d 0a ASE + 1000,..}.. ecf0: 0d 0a 2f 2f 20 43 61 6c 6c 62 61 63 6b 20 4d 65 ..// Callback Me ed00: 73 73 61 67 65 73 0d 0a 0d 0a 65 6e 75 6d 20 7b ssages....enum { ed10: 0d 0a 09 4d 4d 5f 44 52 56 4d 5f 4f 50 45 4e 09 ...MM_DRVM_OPEN. ed20: 3d 20 30 78 33 44 30 2c 0d 0a 09 4d 4d 5f 44 52 = 0x3D0,...MM_DR ed30: 56 4d 5f 43 4c 4f 53 45 2c 0d 0a 09 4d 4d 5f 44 VM_CLOSE,...MM_D ed40: 52 56 4d 5f 44 41 54 41 2c 0d 0a 09 4d 4d 5f 44 RVM_DATA,...MM_D ed50: 52 56 4d 5f 45 52 52 4f 52 2c 0d 0a 7d 0d 0a 0d RVM_ERROR,..}... ed60: 0a 65 6e 75 6d 20 7b 0d 0a 09 44 56 5f 56 4d 5f .enum {...DV_VM_ ed70: 4f 50 45 4e 09 3d 20 4d 4d 5f 44 52 56 4d 5f 4f OPEN.= MM_DRVM_O ed80: 50 45 4e 2c 0d 0a 09 44 56 5f 56 4d 5f 43 4c 4f PEN,...DV_VM_CLO ed90: 53 45 09 3d 20 4d 4d 5f 44 52 56 4d 5f 43 4c 4f SE.= MM_DRVM_CLO eda0: 53 45 2c 0d 0a 09 44 56 5f 56 4d 5f 44 41 54 41 SE,...DV_VM_DATA edb0: 09 3d 20 4d 4d 5f 44 52 56 4d 5f 44 41 54 41 2c .= MM_DRVM_DATA, edc0: 0d 0a 09 44 56 5f 56 4d 5f 45 52 52 4f 52 09 3d ...DV_VM_ERROR.= edd0: 20 4d 4d 5f 44 52 56 4d 5f 45 52 52 4f 52 2c 0d MM_DRVM_ERROR,. ede0: 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 53 74 .}..../**.. * St edf0: 72 75 63 74 75 72 65 73 0d 0a 20 2a 2f 0d 0a 0d ructures.. */... ee00: 0a 73 74 72 75 63 74 20 56 49 44 45 4f 48 44 52 .struct VIDEOHDR ee10: 20 7b 0d 0a 09 4c 50 42 59 54 45 09 09 6c 70 44 {...LPBYTE..lpD ee20: 61 74 61 3b 0d 0a 09 44 57 4f 52 44 09 09 64 77 ata;...DWORD..dw ee30: 42 75 66 66 65 72 4c 65 6e 67 74 68 3b 0d 0a 09 BufferLength;... ee40: 44 57 4f 52 44 09 09 64 77 42 79 74 65 73 55 73 DWORD..dwBytesUs ee50: 65 64 3b 0d 0a 09 44 57 4f 52 44 09 09 64 77 54 ed;...DWORD..dwT ee60: 69 6d 65 43 61 70 74 75 72 65 64 3b 0d 0a 09 44 imeCaptured;...D ee70: 57 4f 52 44 5f 50 54 52 09 64 77 55 73 65 72 3b WORD_PTR.dwUser; ee80: 0d 0a 09 44 57 4f 52 44 09 09 64 77 46 6c 61 67 ...DWORD..dwFlag ee90: 73 3b 0d 0a 20 20 20 20 44 57 4f 52 44 5f 50 54 s;.. DWORD_PT eea0: 52 5b 34 5d 64 77 52 65 73 65 72 76 65 64 3b 0d R[4]dwReserved;. eeb0: 0a 7d 0d 0a 61 6c 69 61 73 20 56 49 44 45 4f 48 .}..alias VIDEOH eec0: 44 52 2a 20 50 56 49 44 45 4f 48 44 52 2c 20 4c DR* PVIDEOHDR, L eed0: 50 56 49 44 45 4f 48 44 52 3b 0d 0a 0d 0a 65 6e PVIDEOHDR;....en eee0: 75 6d 20 7b 0d 0a 09 56 48 44 52 5f 44 4f 4e 45 um {...VHDR_DONE eef0: 09 09 3d 20 30 78 30 30 30 30 30 30 30 31 2c 0d ..= 0x00000001,. ef00: 0a 09 56 48 44 52 5f 50 52 45 50 41 52 45 44 09 ..VHDR_PREPARED. ef10: 3d 20 30 78 30 30 30 30 30 30 30 32 2c 0d 0a 09 = 0x00000002,... ef20: 56 48 44 52 5f 49 4e 51 55 45 55 45 09 3d 20 30 VHDR_INQUEUE.= 0 ef30: 78 30 30 30 30 30 30 30 34 2c 0d 0a 09 56 48 44 x00000004,...VHD ef40: 52 5f 4b 45 59 46 52 41 4d 45 09 3d 20 30 78 30 R_KEYFRAME.= 0x0 ef50: 30 30 30 30 30 30 38 2c 0d 0a 09 56 48 44 52 5f 0000008,...VHDR_ ef60: 56 41 4c 49 44 09 09 3d 20 30 78 30 30 30 30 30 VALID..= 0x00000 ef70: 30 30 46 2c 0d 0a 7d 0d 0a 0d 0a 73 74 72 75 63 00F,..}....struc ef80: 74 20 43 48 41 4e 4e 45 4c 5f 43 41 50 53 20 7b t CHANNEL_CAPS { ef90: 0d 0a 09 44 57 4f 52 44 09 64 77 46 6c 61 67 73 ...DWORD.dwFlags efa0: 3b 0d 0a 09 44 57 4f 52 44 09 64 77 53 72 63 52 ;...DWORD.dwSrcR efb0: 65 63 74 58 4d 6f 64 3b 0d 0a 09 44 57 4f 52 44 ectXMod;...DWORD efc0: 09 64 77 53 72 63 52 65 63 74 59 4d 6f 64 3b 0d .dwSrcRectYMod;. efd0: 0a 09 44 57 4f 52 44 09 64 77 53 72 63 52 65 63 ..DWORD.dwSrcRec efe0: 74 57 69 64 74 68 4d 6f 64 3b 0d 0a 09 44 57 4f tWidthMod;...DWO eff0: 52 44 09 64 77 53 72 63 52 65 63 74 48 65 69 67 RD.dwSrcRectHeig f000: 68 74 4d 6f 64 3b 0d 0a 09 44 57 4f 52 44 09 64 htMod;...DWORD.d f010: 77 44 73 74 52 65 63 74 58 4d 6f 64 3b 0d 0a 09 wDstRectXMod;... f020: 44 57 4f 52 44 09 64 77 44 73 74 52 65 63 74 59 DWORD.dwDstRectY f030: 4d 6f 64 3b 0d 0a 09 44 57 4f 52 44 09 64 77 44 Mod;...DWORD.dwD f040: 73 74 52 65 63 74 57 69 64 74 68 4d 6f 64 3b 0d stRectWidthMod;. f050: 0a 09 44 57 4f 52 44 09 64 77 44 73 74 52 65 63 ..DWORD.dwDstRec f060: 74 48 65 69 67 68 74 4d 6f 64 3b 0d 0a 7d 0d 0a tHeightMod;..}.. f070: 61 6c 69 61 73 20 43 48 41 4e 4e 45 4c 5f 43 41 alias CHANNEL_CA f080: 50 53 2a 20 50 43 48 41 4e 4e 45 4c 5f 43 41 50 PS* PCHANNEL_CAP f090: 53 2c 20 4c 50 43 48 41 4e 4e 45 4c 5f 43 41 50 S, LPCHANNEL_CAP f0a0: 53 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 56 S;....enum {...V f0b0: 43 41 50 53 5f 4f 56 45 52 4c 41 59 09 09 3d 20 CAPS_OVERLAY..= f0c0: 30 78 30 30 30 30 30 30 30 31 2c 0d 0a 09 56 43 0x00000001,...VC f0d0: 41 50 53 5f 53 52 43 5f 43 41 4e 5f 43 4c 49 50 APS_SRC_CAN_CLIP f0e0: 09 3d 20 30 78 30 30 30 30 30 30 30 32 2c 0d 0a .= 0x00000002,.. f0f0: 09 56 43 41 50 53 5f 44 53 54 5f 43 41 4e 5f 43 .VCAPS_DST_CAN_C f100: 4c 49 50 09 3d 20 30 78 30 30 30 30 30 30 30 34 LIP.= 0x00000004 f110: 2c 0d 0a 09 56 43 41 50 53 5f 43 41 4e 5f 53 43 ,...VCAPS_CAN_SC f120: 41 4c 45 09 09 3d 20 30 78 30 30 30 30 30 30 30 ALE..= 0x0000000 f130: 38 2c 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 8,..}..../**.. * f140: 20 41 50 49 20 46 6c 61 67 73 0d 0a 20 2a 2f 0d API Flags.. */. f150: 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 56 49 44 45 ...enum {...VIDE f160: 4f 5f 45 58 54 45 52 4e 41 4c 49 4e 09 09 09 3d O_EXTERNALIN...= f170: 20 30 78 30 30 30 31 2c 0d 0a 09 56 49 44 45 4f 0x0001,...VIDEO f180: 5f 45 58 54 45 52 4e 41 4c 4f 55 54 09 09 09 3d _EXTERNALOUT...= f190: 20 30 78 30 30 30 32 2c 0d 0a 09 56 49 44 45 4f 0x0002,...VIDEO f1a0: 5f 49 4e 09 09 09 09 09 3d 20 30 78 30 30 30 34 _IN.....= 0x0004 f1b0: 2c 0d 0a 09 56 49 44 45 4f 5f 4f 55 54 09 09 09 ,...VIDEO_OUT... f1c0: 09 09 3d 20 30 78 30 30 30 38 2c 0d 0a 09 56 49 ..= 0x0008,...VI f1d0: 44 45 4f 5f 44 4c 47 5f 51 55 45 52 59 09 09 09 DEO_DLG_QUERY... f1e0: 09 3d 20 30 78 30 30 31 30 2c 0d 0a 7d 0d 0a 0d .= 0x0010,..}... f1f0: 0a 65 6e 75 6d 20 7b 0d 0a 09 56 49 44 45 4f 5f .enum {...VIDEO_ f200: 43 4f 4e 46 49 47 55 52 45 5f 51 55 45 52 59 53 CONFIGURE_QUERYS f210: 49 5a 45 09 3d 20 30 78 30 30 30 31 2c 0d 0a 09 IZE.= 0x0001,... f220: 56 49 44 45 4f 5f 43 4f 4e 46 49 47 55 52 45 5f VIDEO_CONFIGURE_ f230: 43 55 52 52 45 4e 54 09 09 3d 20 30 78 30 30 31 CURRENT..= 0x001 f240: 30 2c 0d 0a 09 56 49 44 45 4f 5f 43 4f 4e 46 49 0,...VIDEO_CONFI f250: 47 55 52 45 5f 4e 4f 4d 49 4e 41 4c 09 09 3d 20 GURE_NOMINAL..= f260: 30 78 30 30 32 30 2c 0d 0a 09 56 49 44 45 4f 5f 0x0020,...VIDEO_ f270: 43 4f 4e 46 49 47 55 52 45 5f 4d 49 4e 09 09 09 CONFIGURE_MIN... f280: 3d 20 30 78 30 30 34 30 2c 0d 0a 09 56 49 44 45 = 0x0040,...VIDE f290: 4f 5f 43 4f 4e 46 49 47 55 52 45 5f 4d 41 58 09 O_CONFIGURE_MAX. f2a0: 09 09 3d 20 30 78 30 30 38 30 2c 0d 0a 09 56 49 ..= 0x0080,...VI f2b0: 44 45 4f 5f 43 4f 4e 46 49 47 55 52 45 5f 53 45 DEO_CONFIGURE_SE f2c0: 54 09 09 09 3d 20 30 78 31 30 30 30 2c 0d 0a 09 T...= 0x1000,... f2d0: 56 49 44 45 4f 5f 43 4f 4e 46 49 47 55 52 45 5f VIDEO_CONFIGURE_ f2e0: 47 45 54 09 09 09 3d 20 30 78 32 30 30 30 2c 0d GET...= 0x2000,. f2f0: 0a 09 56 49 44 45 4f 5f 43 4f 4e 46 49 47 55 52 ..VIDEO_CONFIGUR f300: 45 5f 51 55 45 52 59 09 09 3d 20 30 78 38 30 30 E_QUERY..= 0x800 f310: 30 2c 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 0,..}..../**.. * f320: 20 43 4f 4e 46 49 47 55 52 45 20 4d 45 53 53 41 CONFIGURE MESSA f330: 47 45 53 0d 0a 20 2a 2f 0d 0a 0d 0a 65 6e 75 6d GES.. */....enum f340: 20 7b 0d 0a 09 44 56 4d 5f 55 53 45 52 09 09 09 {...DVM_USER... f350: 3d 20 30 78 34 30 30 30 2c 0d 0a 09 44 56 4d 5f = 0x4000,...DVM_ f360: 43 4f 4e 46 49 47 55 52 45 5f 53 54 41 52 54 09 CONFIGURE_START. f370: 3d 20 30 78 31 30 30 30 2c 0d 0a 09 44 56 4d 5f = 0x1000,...DVM_ f380: 43 4f 4e 46 49 47 55 52 45 5f 45 4e 44 09 3d 20 CONFIGURE_END.= f390: 30 78 31 46 46 46 2c 0d 0a 09 44 56 4d 5f 50 41 0x1FFF,...DVM_PA f3a0: 4c 45 54 54 45 09 09 09 3d 20 44 56 4d 5f 43 4f LETTE...= DVM_CO f3b0: 4e 46 49 47 55 52 45 5f 53 54 41 52 54 20 2b 20 NFIGURE_START + f3c0: 31 2c 0d 0a 09 44 56 4d 5f 46 4f 52 4d 41 54 09 1,...DVM_FORMAT. f3d0: 09 09 3d 20 44 56 4d 5f 43 4f 4e 46 49 47 55 52 ..= DVM_CONFIGUR f3e0: 45 5f 53 54 41 52 54 20 2b 20 32 2c 0d 0a 09 44 E_START + 2,...D f3f0: 56 4d 5f 50 41 4c 45 54 54 45 52 47 42 35 35 35 VM_PALETTERGB555 f400: 09 3d 20 44 56 4d 5f 43 4f 4e 46 49 47 55 52 45 .= DVM_CONFIGURE f410: 5f 53 54 41 52 54 20 2b 20 33 2c 0d 0a 09 44 56 _START + 3,...DV f420: 4d 5f 53 52 43 5f 52 45 43 54 09 09 3d 20 44 56 M_SRC_RECT..= DV f430: 4d 5f 43 4f 4e 46 49 47 55 52 45 5f 53 54 41 52 M_CONFIGURE_STAR f440: 54 20 2b 20 34 2c 0d 0a 09 44 56 4d 5f 44 53 54 T + 4,...DVM_DST f450: 5f 52 45 43 54 09 09 3d 20 44 56 4d 5f 43 4f 4e _RECT..= DVM_CON f460: 46 49 47 55 52 45 5f 53 54 41 52 54 20 2b 20 35 FIGURE_START + 5 f470: 2c 0d 0a 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 ,..}..../**.. * f480: 41 56 49 43 61 70 20 77 69 6e 64 6f 77 20 63 6c AVICap window cl f490: 61 73 73 0d 0a 20 2a 2f 0d 0a 0d 0a 4c 52 45 53 ass.. */....LRES f4a0: 55 4c 54 20 41 56 49 43 61 70 53 4d 28 48 57 4e ULT AVICapSM(HWN f4b0: 44 20 68 57 6e 64 2c 20 55 49 4e 54 20 6d 73 67 D hWnd, UINT msg f4c0: 2c 20 57 50 41 52 41 4d 20 77 50 61 72 61 6d 2c , WPARAM wParam, f4d0: 20 4c 50 41 52 41 4d 20 6c 50 61 72 61 6d 29 20 LPARAM lParam) f4e0: 7b 0d 0a 09 69 66 20 28 49 73 57 69 6e 64 6f 77 {...if (IsWindow f4f0: 28 68 57 6e 64 29 29 20 7b 0d 0a 09 09 72 65 74 (hWnd)) {....ret f500: 75 72 6e 20 53 65 6e 64 4d 65 73 73 61 67 65 28 urn SendMessage( f510: 68 57 6e 64 2c 20 6d 73 67 2c 20 77 50 61 72 61 hWnd, msg, wPara f520: 6d 2c 20 6c 50 61 72 61 6d 29 3b 0d 0a 09 7d 0d m, lParam);...}. f530: 0a 09 72 65 74 75 72 6e 20 30 3b 0d 0a 7d 0d 0a ..return 0;..}.. f540: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 57 4d 5f 43 41 ..enum {...WM_CA f550: 50 5f 53 54 41 52 54 09 09 09 09 3d 20 57 4d 5f P_START....= WM_ f560: 55 53 45 52 2c 0d 0a 09 57 4d 5f 43 41 50 5f 55 USER,...WM_CAP_U f570: 4e 49 43 4f 44 45 5f 53 54 41 52 54 09 09 3d 20 NICODE_START..= f580: 57 4d 5f 55 53 45 52 20 2b 20 31 30 30 2c 0d 0a WM_USER + 100,.. f590: 0d 0a 09 57 4d 5f 43 41 50 5f 47 45 54 5f 43 41 ...WM_CAP_GET_CA f5a0: 50 53 54 52 45 41 4d 50 54 52 09 09 3d 20 57 4d PSTREAMPTR..= WM f5b0: 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 31 2c 0d _CAP_START + 1,. f5c0: 0a 09 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 4c ..WM_CAP_SET_CAL f5d0: 4c 42 41 43 4b 5f 45 52 52 4f 52 41 09 3d 20 57 LBACK_ERRORA.= W f5e0: 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 32 2c M_CAP_START + 2, f5f0: 0d 0a 09 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 ...WM_CAP_SET_CA f600: 4c 4c 42 41 43 4b 5f 53 54 41 54 55 53 41 09 3d LLBACK_STATUSA.= f610: 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 WM_CAP_START + f620: 33 2c 0d 0a 0d 0a 09 57 4d 5f 43 41 50 5f 53 45 3,.....WM_CAP_SE f630: 54 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 T_CALLBACK_ERROR f640: 57 09 3d 20 57 4d 5f 43 41 50 5f 55 4e 49 43 4f W.= WM_CAP_UNICO f650: 44 45 5f 53 54 41 52 54 20 2b 20 32 2c 0d 0a 09 DE_START + 2,... f660: 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 4c 4c 42 WM_CAP_SET_CALLB f670: 41 43 4b 5f 53 54 41 54 55 53 57 09 3d 20 57 4d ACK_STATUSW.= WM f680: 5f 43 41 50 5f 55 4e 49 43 4f 44 45 5f 53 54 41 _CAP_UNICODE_STA f690: 52 54 20 2b 20 33 2c 0d 0a 7d 0d 0a 0d 0a 76 65 RT + 3,..}....ve f6a0: 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b rsion(Unicode) { f6b0: 0d 0a 09 61 6c 69 61 73 20 57 4d 5f 43 41 50 5f ...alias WM_CAP_ f6c0: 53 45 54 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 SET_CALLBACK_ERR f6d0: 4f 52 57 09 57 4d 5f 43 41 50 5f 53 45 54 5f 43 ORW.WM_CAP_SET_C f6e0: 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 3b 0d 0a ALLBACK_ERROR;.. f6f0: 09 61 6c 69 61 73 20 57 4d 5f 43 41 50 5f 53 45 .alias WM_CAP_SE f700: 54 5f 43 41 4c 4c 42 41 43 4b 5f 53 54 41 54 55 T_CALLBACK_STATU f710: 53 57 09 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 SW.WM_CAP_SET_CA f720: 4c 4c 42 41 43 4b 5f 53 54 41 54 55 53 3b 0d 0a LLBACK_STATUS;.. f730: 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 55 6e 69 63 } else { // Unic f740: 6f 64 65 0d 0a 09 61 6c 69 61 73 20 57 4d 5f 43 ode...alias WM_C f750: 41 50 5f 53 45 54 5f 43 41 4c 4c 42 41 43 4b 5f AP_SET_CALLBACK_ f760: 45 52 52 4f 52 41 09 57 4d 5f 43 41 50 5f 53 45 ERRORA.WM_CAP_SE f770: 54 5f 43 41 4c 4c 42 41 43 4b 5f 45 52 52 4f 52 T_CALLBACK_ERROR f780: 3b 0d 0a 09 61 6c 69 61 73 20 57 4d 5f 43 41 50 ;...alias WM_CAP f790: 5f 53 45 54 5f 43 41 4c 4c 42 41 43 4b 5f 53 54 _SET_CALLBACK_ST f7a0: 41 54 55 53 41 09 57 4d 5f 43 41 50 5f 53 45 54 ATUSA.WM_CAP_SET f7b0: 5f 43 41 4c 4c 42 41 43 4b 5f 53 54 41 54 55 53 _CALLBACK_STATUS f7c0: 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a ;..}....enum {.. f7d0: 09 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 4c 4c .WM_CAP_SET_CALL f7e0: 42 41 43 4b 5f 59 49 45 4c 44 09 09 3d 20 57 4d BACK_YIELD..= WM f7f0: 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 34 2c 0d _CAP_START + 4,. f800: 0a 09 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 4c ..WM_CAP_SET_CAL f810: 4c 42 41 43 4b 5f 46 52 41 4d 45 09 09 3d 20 57 LBACK_FRAME..= W f820: 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 35 2c M_CAP_START + 5, f830: 0d 0a 09 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 ...WM_CAP_SET_CA f840: 4c 4c 42 41 43 4b 5f 56 49 44 45 4f 53 54 52 45 LLBACK_VIDEOSTRE f850: 41 4d 09 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 AM.= WM_CAP_STAR f860: 54 20 2b 20 36 2c 0d 0a 09 57 4d 5f 43 41 50 5f T + 6,...WM_CAP_ f870: 53 45 54 5f 43 41 4c 4c 42 41 43 4b 5f 57 41 56 SET_CALLBACK_WAV f880: 45 53 54 52 45 41 4d 09 3d 20 57 4d 5f 43 41 50 ESTREAM.= WM_CAP f890: 5f 53 54 41 52 54 20 2b 20 37 2c 0d 0a 09 57 4d _START + 7,...WM f8a0: 5f 43 41 50 5f 47 45 54 5f 55 53 45 52 5f 44 41 _CAP_GET_USER_DA f8b0: 54 41 09 09 09 3d 20 57 4d 5f 43 41 50 5f 53 54 TA...= WM_CAP_ST f8c0: 41 52 54 20 2b 20 38 2c 0d 0a 09 57 4d 5f 43 41 ART + 8,...WM_CA f8d0: 50 5f 53 45 54 5f 55 53 45 52 5f 44 41 54 41 09 P_SET_USER_DATA. f8e0: 09 09 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 ..= WM_CAP_START f8f0: 20 2b 20 39 2c 0d 0a 09 57 4d 5f 43 41 50 5f 44 + 9,...WM_CAP_D f900: 52 49 56 45 52 5f 43 4f 4e 4e 45 43 54 09 09 09 RIVER_CONNECT... f910: 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b = WM_CAP_START + f920: 20 31 30 2c 0d 0a 09 57 4d 5f 43 41 50 5f 44 52 10,...WM_CAP_DR f930: 49 56 45 52 5f 44 49 53 43 4f 4e 4e 45 43 54 09 IVER_DISCONNECT. f940: 09 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 .= WM_CAP_START f950: 2b 20 31 31 2c 0d 0a 09 57 4d 5f 43 41 50 5f 44 + 11,...WM_CAP_D f960: 52 49 56 45 52 5f 47 45 54 5f 4e 41 4d 45 41 09 RIVER_GET_NAMEA. f970: 09 09 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 ..= WM_CAP_START f980: 20 2b 20 31 32 2c 0d 0a 09 57 4d 5f 43 41 50 5f + 12,...WM_CAP_ f990: 44 52 49 56 45 52 5f 47 45 54 5f 56 45 52 53 49 DRIVER_GET_VERSI f9a0: 4f 4e 41 09 09 3d 20 57 4d 5f 43 41 50 5f 53 54 ONA..= WM_CAP_ST f9b0: 41 52 54 20 2b 20 31 33 2c 0d 0a 0d 0a 09 57 4d ART + 13,.....WM f9c0: 5f 43 41 50 5f 44 52 49 56 45 52 5f 47 45 54 5f _CAP_DRIVER_GET_ f9d0: 4e 41 4d 45 57 09 09 09 3d 20 57 4d 5f 43 41 50 NAMEW...= WM_CAP f9e0: 5f 55 4e 49 43 4f 44 45 5f 53 54 41 52 54 20 2b _UNICODE_START + f9f0: 20 31 32 2c 0d 0a 09 57 4d 5f 43 41 50 5f 44 52 12,...WM_CAP_DR fa00: 49 56 45 52 5f 47 45 54 5f 56 45 52 53 49 4f 4e IVER_GET_VERSION fa10: 57 09 09 3d 20 57 4d 5f 43 41 50 5f 55 4e 49 43 W..= WM_CAP_UNIC fa20: 4f 44 45 5f 53 54 41 52 54 20 2b 20 31 33 2c 0d ODE_START + 13,. fa30: 0a 7d 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 6e .}....version(Un fa40: 69 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 icode) {...alias fa50: 20 57 4d 5f 43 41 50 5f 44 52 49 56 45 52 5f 47 WM_CAP_DRIVER_G fa60: 45 54 5f 4e 41 4d 45 57 09 09 57 4d 5f 43 41 50 ET_NAMEW..WM_CAP fa70: 5f 44 52 49 56 45 52 5f 47 45 54 5f 4e 41 4d 45 _DRIVER_GET_NAME fa80: 3b 0d 0a 09 61 6c 69 61 73 20 57 4d 5f 43 41 50 ;...alias WM_CAP fa90: 5f 44 52 49 56 45 52 5f 47 45 54 5f 56 45 52 53 _DRIVER_GET_VERS faa0: 49 4f 4e 57 09 57 4d 5f 43 41 50 5f 44 52 49 56 IONW.WM_CAP_DRIV fab0: 45 52 5f 47 45 54 5f 56 45 52 53 49 4f 4e 3b 0d ER_GET_VERSION;. fac0: 0a 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 55 6e 69 .} else { // Uni fad0: 63 6f 64 65 0d 0a 09 61 6c 69 61 73 20 57 4d 5f code...alias WM_ fae0: 43 41 50 5f 44 52 49 56 45 52 5f 47 45 54 5f 4e CAP_DRIVER_GET_N faf0: 41 4d 45 41 09 09 57 4d 5f 43 41 50 5f 44 52 49 AMEA..WM_CAP_DRI fb00: 56 45 52 5f 47 45 54 5f 4e 41 4d 45 3b 0d 0a 09 VER_GET_NAME;... fb10: 61 6c 69 61 73 20 57 4d 5f 43 41 50 5f 44 52 49 alias WM_CAP_DRI fb20: 56 45 52 5f 47 45 54 5f 56 45 52 53 49 4f 4e 41 VER_GET_VERSIONA fb30: 09 57 4d 5f 43 41 50 5f 44 52 49 56 45 52 5f 47 .WM_CAP_DRIVER_G fb40: 45 54 5f 56 45 52 53 49 4f 4e 3b 0d 0a 7d 0d 0a ET_VERSION;..}.. fb50: 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 57 4d 5f 43 41 ..enum {...WM_CA fb60: 50 5f 44 52 49 56 45 52 5f 47 45 54 5f 43 41 50 P_DRIVER_GET_CAP fb70: 53 09 09 09 3d 20 57 4d 5f 43 41 50 5f 53 54 41 S...= WM_CAP_STA fb80: 52 54 20 2b 20 31 34 2c 0d 0a 09 57 4d 5f 43 41 RT + 14,...WM_CA fb90: 50 5f 46 49 4c 45 5f 53 45 54 5f 43 41 50 54 55 P_FILE_SET_CAPTU fba0: 52 45 5f 46 49 4c 45 41 09 3d 20 57 4d 5f 43 41 RE_FILEA.= WM_CA fbb0: 50 5f 53 54 41 52 54 20 2b 20 32 30 2c 0d 0a 09 P_START + 20,... fbc0: 57 4d 5f 43 41 50 5f 46 49 4c 45 5f 47 45 54 5f WM_CAP_FILE_GET_ fbd0: 43 41 50 54 55 52 45 5f 46 49 4c 45 41 09 3d 20 CAPTURE_FILEA.= fbe0: 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 32 WM_CAP_START + 2 fbf0: 31 2c 0d 0a 09 57 4d 5f 43 41 50 5f 46 49 4c 45 1,...WM_CAP_FILE fc00: 5f 53 41 56 45 41 53 41 09 09 09 09 3d 20 57 4d _SAVEASA....= WM fc10: 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 32 33 2c _CAP_START + 23, fc20: 0d 0a 09 57 4d 5f 43 41 50 5f 46 49 4c 45 5f 53 ...WM_CAP_FILE_S fc30: 41 56 45 44 49 42 41 09 09 09 3d 20 57 4d 5f 43 AVEDIBA...= WM_C fc40: 41 50 5f 53 54 41 52 54 20 2b 20 32 35 2c 0d 0a AP_START + 25,.. fc50: 0d 0a 09 57 4d 5f 43 41 50 5f 46 49 4c 45 5f 53 ...WM_CAP_FILE_S fc60: 45 54 5f 43 41 50 54 55 52 45 5f 46 49 4c 45 57 ET_CAPTURE_FILEW fc70: 09 3d 20 57 4d 5f 43 41 50 5f 55 4e 49 43 4f 44 .= WM_CAP_UNICOD fc80: 45 5f 53 54 41 52 54 20 2b 20 32 30 2c 0d 0a 09 E_START + 20,... fc90: 57 4d 5f 43 41 50 5f 46 49 4c 45 5f 47 45 54 5f WM_CAP_FILE_GET_ fca0: 43 41 50 54 55 52 45 5f 46 49 4c 45 57 09 3d 20 CAPTURE_FILEW.= fcb0: 57 4d 5f 43 41 50 5f 55 4e 49 43 4f 44 45 5f 53 WM_CAP_UNICODE_S fcc0: 54 41 52 54 20 2b 20 32 31 2c 0d 0a 09 57 4d 5f TART + 21,...WM_ fcd0: 43 41 50 5f 46 49 4c 45 5f 53 41 56 45 41 53 57 CAP_FILE_SAVEASW fce0: 09 09 09 09 3d 20 57 4d 5f 43 41 50 5f 55 4e 49 ....= WM_CAP_UNI fcf0: 43 4f 44 45 5f 53 54 41 52 54 20 2b 20 32 33 2c CODE_START + 23, fd00: 0d 0a 09 57 4d 5f 43 41 50 5f 46 49 4c 45 5f 53 ...WM_CAP_FILE_S fd10: 41 56 45 44 49 42 57 09 09 09 3d 20 57 4d 5f 43 AVEDIBW...= WM_C fd20: 41 50 5f 55 4e 49 43 4f 44 45 5f 53 54 41 52 54 AP_UNICODE_START fd30: 20 2b 20 32 35 2c 0d 0a 7d 0d 0a 0d 0a 76 65 72 + 25,..}....ver fd40: 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d sion(Unicode) {. fd50: 0a 09 61 6c 69 61 73 20 57 4d 5f 43 41 50 5f 46 ..alias WM_CAP_F fd60: 49 4c 45 5f 53 45 54 5f 43 41 50 54 55 52 45 5f ILE_SET_CAPTURE_ fd70: 46 49 4c 45 57 09 57 4d 5f 43 41 50 5f 46 49 4c FILEW.WM_CAP_FIL fd80: 45 5f 53 45 54 5f 43 41 50 54 55 52 45 5f 46 49 E_SET_CAPTURE_FI fd90: 4c 45 3b 0d 0a 09 61 6c 69 61 73 20 57 4d 5f 43 LE;...alias WM_C fda0: 41 50 5f 46 49 4c 45 5f 47 45 54 5f 43 41 50 54 AP_FILE_GET_CAPT fdb0: 55 52 45 5f 46 49 4c 45 57 09 57 4d 5f 43 41 50 URE_FILEW.WM_CAP fdc0: 5f 46 49 4c 45 5f 47 45 54 5f 43 41 50 54 55 52 _FILE_GET_CAPTUR fdd0: 45 5f 46 49 4c 45 3b 0d 0a 09 61 6c 69 61 73 20 E_FILE;...alias fde0: 57 4d 5f 43 41 50 5f 46 49 4c 45 5f 53 41 56 45 WM_CAP_FILE_SAVE fdf0: 41 53 57 09 09 09 57 4d 5f 43 41 50 5f 46 49 4c ASW...WM_CAP_FIL fe00: 45 5f 53 41 56 45 41 53 3b 0d 0a 09 61 6c 69 61 E_SAVEAS;...alia fe10: 73 20 57 4d 5f 43 41 50 5f 46 49 4c 45 5f 53 41 s WM_CAP_FILE_SA fe20: 56 45 44 49 42 57 09 09 09 57 4d 5f 43 41 50 5f VEDIBW...WM_CAP_ fe30: 46 49 4c 45 5f 53 41 56 45 44 49 42 3b 0d 0a 7d FILE_SAVEDIB;..} fe40: 20 65 6c 73 65 20 7b 20 2f 2f 20 55 6e 69 63 6f else { // Unico fe50: 64 65 0d 0a 09 61 6c 69 61 73 20 57 4d 5f 43 41 de...alias WM_CA fe60: 50 5f 46 49 4c 45 5f 53 45 54 5f 43 41 50 54 55 P_FILE_SET_CAPTU fe70: 52 45 5f 46 49 4c 45 41 09 57 4d 5f 43 41 50 5f RE_FILEA.WM_CAP_ fe80: 46 49 4c 45 5f 53 45 54 5f 43 41 50 54 55 52 45 FILE_SET_CAPTURE fe90: 5f 46 49 4c 45 3b 0d 0a 09 61 6c 69 61 73 20 57 _FILE;...alias W fea0: 4d 5f 43 41 50 5f 46 49 4c 45 5f 47 45 54 5f 43 M_CAP_FILE_GET_C feb0: 41 50 54 55 52 45 5f 46 49 4c 45 41 09 57 4d 5f APTURE_FILEA.WM_ fec0: 43 41 50 5f 46 49 4c 45 5f 47 45 54 5f 43 41 50 CAP_FILE_GET_CAP fed0: 54 55 52 45 5f 46 49 4c 45 3b 0d 0a 09 61 6c 69 TURE_FILE;...ali fee0: 61 73 20 57 4d 5f 43 41 50 5f 46 49 4c 45 5f 53 as WM_CAP_FILE_S fef0: 41 56 45 41 53 41 09 09 09 57 4d 5f 43 41 50 5f AVEASA...WM_CAP_ ff00: 46 49 4c 45 5f 53 41 56 45 41 53 3b 0d 0a 09 61 FILE_SAVEAS;...a ff10: 6c 69 61 73 20 57 4d 5f 43 41 50 5f 46 49 4c 45 lias WM_CAP_FILE ff20: 5f 53 41 56 45 44 49 42 41 09 09 09 57 4d 5f 43 _SAVEDIBA...WM_C ff30: 41 50 5f 46 49 4c 45 5f 53 41 56 45 44 49 42 3b AP_FILE_SAVEDIB; ff40: 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 ..}....enum {... ff50: 57 4d 5f 43 41 50 5f 46 49 4c 45 5f 41 4c 4c 4f WM_CAP_FILE_ALLO ff60: 43 41 54 45 09 09 3d 20 57 4d 5f 43 41 50 5f 53 CATE..= WM_CAP_S ff70: 54 41 52 54 20 2b 20 32 32 2c 0d 0a 09 57 4d 5f TART + 22,...WM_ ff80: 43 41 50 5f 46 49 4c 45 5f 53 45 54 5f 49 4e 46 CAP_FILE_SET_INF ff90: 4f 43 48 55 4e 4b 09 3d 20 57 4d 5f 43 41 50 5f OCHUNK.= WM_CAP_ ffa0: 53 54 41 52 54 20 2b 20 32 34 2c 0d 0a 09 57 4d START + 24,...WM ffb0: 5f 43 41 50 5f 45 44 49 54 5f 43 4f 50 59 09 09 _CAP_EDIT_COPY.. ffc0: 09 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 .= WM_CAP_START ffd0: 2b 20 33 30 2c 0d 0a 09 57 4d 5f 43 41 50 5f 53 + 30,...WM_CAP_S ffe0: 45 54 5f 41 55 44 49 4f 46 4f 52 4d 41 54 09 09 ET_AUDIOFORMAT.. fff0: 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b = WM_CAP_START + 10000 20 33 35 2c 0d 0a 09 57 4d 5f 43 41 50 5f 47 45 35,...WM_CAP_GE 10010 54 5f 41 55 44 49 4f 46 4f 52 4d 41 54 09 09 3d T_AUDIOFORMAT..= 10020 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 WM_CAP_START + 10030 33 36 2c 0d 0a 09 57 4d 5f 43 41 50 5f 44 4c 47 36,...WM_CAP_DLG 10040 5f 56 49 44 45 4f 46 4f 52 4d 41 54 09 09 3d 20 _VIDEOFORMAT..= 10050 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 34 WM_CAP_START + 4 10060 31 2c 0d 0a 09 57 4d 5f 43 41 50 5f 44 4c 47 5f 1,...WM_CAP_DLG_ 10070 56 49 44 45 4f 53 4f 55 52 43 45 09 09 3d 20 57 VIDEOSOURCE..= W 10080 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 34 32 M_CAP_START + 42 10090 2c 0d 0a 09 57 4d 5f 43 41 50 5f 44 4c 47 5f 56 ,...WM_CAP_DLG_V 100a0 49 44 45 4f 44 49 53 50 4c 41 59 09 09 3d 20 57 IDEODISPLAY..= W 100b0 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 34 33 M_CAP_START + 43 100c0 2c 0d 0a 09 57 4d 5f 43 41 50 5f 47 45 54 5f 56 ,...WM_CAP_GET_V 100d0 49 44 45 4f 46 4f 52 4d 41 54 09 09 3d 20 57 4d IDEOFORMAT..= WM 100e0 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 34 34 2c _CAP_START + 44, 100f0 0d 0a 09 57 4d 5f 43 41 50 5f 53 45 54 5f 56 49 ...WM_CAP_SET_VI 10100 44 45 4f 46 4f 52 4d 41 54 09 09 3d 20 57 4d 5f DEOFORMAT..= WM_ 10110 43 41 50 5f 53 54 41 52 54 20 2b 20 34 35 2c 0d CAP_START + 45,. 10120 0a 09 57 4d 5f 43 41 50 5f 44 4c 47 5f 56 49 44 ..WM_CAP_DLG_VID 10130 45 4f 43 4f 4d 50 52 45 53 53 49 4f 4e 09 3d 20 EOCOMPRESSION.= 10140 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 34 WM_CAP_START + 4 10150 36 2c 0d 0a 09 57 4d 5f 43 41 50 5f 53 45 54 5f 6,...WM_CAP_SET_ 10160 50 52 45 56 49 45 57 09 09 09 3d 20 57 4d 5f 43 PREVIEW...= WM_C 10170 41 50 5f 53 54 41 52 54 20 2b 20 35 30 2c 0d 0a AP_START + 50,.. 10180 09 57 4d 5f 43 41 50 5f 53 45 54 5f 4f 56 45 52 .WM_CAP_SET_OVER 10190 4c 41 59 09 09 09 3d 20 57 4d 5f 43 41 50 5f 53 LAY...= WM_CAP_S 101a0 54 41 52 54 20 2b 20 35 31 2c 0d 0a 09 57 4d 5f TART + 51,...WM_ 101b0 43 41 50 5f 53 45 54 5f 50 52 45 56 49 45 57 52 CAP_SET_PREVIEWR 101c0 41 54 45 09 09 3d 20 57 4d 5f 43 41 50 5f 53 54 ATE..= WM_CAP_ST 101d0 41 52 54 20 2b 20 35 32 2c 0d 0a 09 57 4d 5f 43 ART + 52,...WM_C 101e0 41 50 5f 53 45 54 5f 53 43 41 4c 45 09 09 09 3d AP_SET_SCALE...= 101f0 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 WM_CAP_START + 10200 35 33 2c 0d 0a 09 57 4d 5f 43 41 50 5f 47 45 54 53,...WM_CAP_GET 10210 5f 53 54 41 54 55 53 09 09 09 3d 20 57 4d 5f 43 _STATUS...= WM_C 10220 41 50 5f 53 54 41 52 54 20 2b 20 35 34 2c 0d 0a AP_START + 54,.. 10230 09 57 4d 5f 43 41 50 5f 53 45 54 5f 53 43 52 4f .WM_CAP_SET_SCRO 10240 4c 4c 09 09 09 3d 20 57 4d 5f 43 41 50 5f 53 54 LL...= WM_CAP_ST 10250 41 52 54 20 2b 20 35 35 2c 0d 0a 09 57 4d 5f 43 ART + 55,...WM_C 10260 41 50 5f 47 52 41 42 5f 46 52 41 4d 45 09 09 09 AP_GRAB_FRAME... 10270 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b = WM_CAP_START + 10280 20 36 30 2c 0d 0a 09 57 4d 5f 43 41 50 5f 47 52 60,...WM_CAP_GR 10290 41 42 5f 46 52 41 4d 45 5f 4e 4f 53 54 4f 50 09 AB_FRAME_NOSTOP. 102a0 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b = WM_CAP_START + 102b0 20 36 31 2c 0d 0a 09 57 4d 5f 43 41 50 5f 53 45 61,...WM_CAP_SE 102c0 51 55 45 4e 43 45 09 09 09 09 3d 20 57 4d 5f 43 QUENCE....= WM_C 102d0 41 50 5f 53 54 41 52 54 20 2b 20 36 32 2c 0d 0a AP_START + 62,.. 102e0 09 57 4d 5f 43 41 50 5f 53 45 51 55 45 4e 43 45 .WM_CAP_SEQUENCE 102f0 5f 4e 4f 46 49 4c 45 09 09 3d 20 57 4d 5f 43 41 _NOFILE..= WM_CA 10300 50 5f 53 54 41 52 54 20 2b 20 36 33 2c 0d 0a 09 P_START + 63,... 10310 57 4d 5f 43 41 50 5f 53 45 54 5f 53 45 51 55 45 WM_CAP_SET_SEQUE 10320 4e 43 45 5f 53 45 54 55 50 09 3d 20 57 4d 5f 43 NCE_SETUP.= WM_C 10330 41 50 5f 53 54 41 52 54 20 2b 20 36 34 2c 0d 0a AP_START + 64,.. 10340 09 57 4d 5f 43 41 50 5f 47 45 54 5f 53 45 51 55 .WM_CAP_GET_SEQU 10350 45 4e 43 45 5f 53 45 54 55 50 09 3d 20 57 4d 5f ENCE_SETUP.= WM_ 10360 43 41 50 5f 53 54 41 52 54 20 2b 20 36 35 2c 0d CAP_START + 65,. 10370 0a 09 57 4d 5f 43 41 50 5f 53 45 54 5f 4d 43 49 ..WM_CAP_SET_MCI 10380 5f 44 45 56 49 43 45 41 09 09 3d 20 57 4d 5f 43 _DEVICEA..= WM_C 10390 41 50 5f 53 54 41 52 54 20 2b 20 36 36 2c 0d 0a AP_START + 66,.. 103a0 09 57 4d 5f 43 41 50 5f 47 45 54 5f 4d 43 49 5f .WM_CAP_GET_MCI_ 103b0 44 45 56 49 43 45 41 09 09 3d 20 57 4d 5f 43 41 DEVICEA..= WM_CA 103c0 50 5f 53 54 41 52 54 20 2b 20 36 37 2c 0d 0a 0d P_START + 67,... 103d0 0a 09 57 4d 5f 43 41 50 5f 53 45 54 5f 4d 43 49 ..WM_CAP_SET_MCI 103e0 5f 44 45 56 49 43 45 57 09 09 3d 20 57 4d 5f 43 _DEVICEW..= WM_C 103f0 41 50 5f 55 4e 49 43 4f 44 45 5f 53 54 41 52 54 AP_UNICODE_START 10400 20 2b 20 36 36 2c 0d 0a 09 57 4d 5f 43 41 50 5f + 66,...WM_CAP_ 10410 47 45 54 5f 4d 43 49 5f 44 45 56 49 43 45 57 09 GET_MCI_DEVICEW. 10420 09 3d 20 57 4d 5f 43 41 50 5f 55 4e 49 43 4f 44 .= WM_CAP_UNICOD 10430 45 5f 53 54 41 52 54 20 2b 20 36 37 2c 0d 0a 7d E_START + 67,..} 10440 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 6e 69 63 ....version(Unic 10450 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 73 20 57 ode) {...alias W 10460 4d 5f 43 41 50 5f 53 45 54 5f 4d 43 49 5f 44 45 M_CAP_SET_MCI_DE 10470 56 49 43 45 57 09 57 4d 5f 43 41 50 5f 53 45 54 VICEW.WM_CAP_SET 10480 5f 4d 43 49 5f 44 45 56 49 43 45 3b 0d 0a 09 61 _MCI_DEVICE;...a 10490 6c 69 61 73 20 57 4d 5f 43 41 50 5f 47 45 54 5f lias WM_CAP_GET_ 104a0 4d 43 49 5f 44 45 56 49 43 45 57 09 57 4d 5f 43 MCI_DEVICEW.WM_C 104b0 41 50 5f 47 45 54 5f 4d 43 49 5f 44 45 56 49 43 AP_GET_MCI_DEVIC 104c0 45 3b 0d 0a 7d 20 65 6c 73 65 20 7b 20 2f 2f 20 E;..} else { // 104d0 55 6e 69 63 6f 64 65 0d 0a 09 61 6c 69 61 73 20 Unicode...alias 104e0 57 4d 5f 43 41 50 5f 53 45 54 5f 4d 43 49 5f 44 WM_CAP_SET_MCI_D 104f0 45 56 49 43 45 41 09 57 4d 5f 43 41 50 5f 53 45 EVICEA.WM_CAP_SE 10500 54 5f 4d 43 49 5f 44 45 56 49 43 45 3b 0d 0a 09 T_MCI_DEVICE;... 10510 61 6c 69 61 73 20 57 4d 5f 43 41 50 5f 47 45 54 alias WM_CAP_GET 10520 5f 4d 43 49 5f 44 45 56 49 43 45 41 09 57 4d 5f _MCI_DEVICEA.WM_ 10530 43 41 50 5f 47 45 54 5f 4d 43 49 5f 44 45 56 49 CAP_GET_MCI_DEVI 10540 43 45 3b 0d 0a 7d 0d 0a 0d 0a 65 6e 75 6d 20 7b CE;..}....enum { 10550 0d 0a 09 57 4d 5f 43 41 50 5f 53 54 4f 50 09 09 ...WM_CAP_STOP.. 10560 09 09 09 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 ...= WM_CAP_STAR 10570 54 20 2b 20 36 38 2c 0d 0a 09 57 4d 5f 43 41 50 T + 68,...WM_CAP 10580 5f 41 42 4f 52 54 09 09 09 09 3d 20 57 4d 5f 43 _ABORT....= WM_C 10590 41 50 5f 53 54 41 52 54 20 2b 20 36 39 2c 0d 0a AP_START + 69,.. 105a0 09 57 4d 5f 43 41 50 5f 53 49 4e 47 4c 45 5f 46 .WM_CAP_SINGLE_F 105b0 52 41 4d 45 5f 4f 50 45 4e 09 3d 20 57 4d 5f 43 RAME_OPEN.= WM_C 105c0 41 50 5f 53 54 41 52 54 20 2b 20 37 30 2c 0d 0a AP_START + 70,.. 105d0 09 57 4d 5f 43 41 50 5f 53 49 4e 47 4c 45 5f 46 .WM_CAP_SINGLE_F 105e0 52 41 4d 45 5f 43 4c 4f 53 45 09 3d 20 57 4d 5f RAME_CLOSE.= WM_ 105f0 43 41 50 5f 53 54 41 52 54 20 2b 20 37 31 2c 0d CAP_START + 71,. 10600 0a 09 57 4d 5f 43 41 50 5f 53 49 4e 47 4c 45 5f ..WM_CAP_SINGLE_ 10610 46 52 41 4d 45 09 09 09 3d 20 57 4d 5f 43 41 50 FRAME...= WM_CAP 10620 5f 53 54 41 52 54 20 2b 20 37 32 2c 0d 0a 09 57 _START + 72,...W 10630 4d 5f 43 41 50 5f 50 41 4c 5f 4f 50 45 4e 41 09 M_CAP_PAL_OPENA. 10640 09 09 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 ..= WM_CAP_START 10650 20 2b 20 38 30 2c 0d 0a 09 57 4d 5f 43 41 50 5f + 80,...WM_CAP_ 10660 50 41 4c 5f 53 41 56 45 41 09 09 09 3d 20 57 4d PAL_SAVEA...= WM 10670 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 38 31 2c _CAP_START + 81, 10680 0d 0a 0d 0a 09 57 4d 5f 43 41 50 5f 50 41 4c 5f .....WM_CAP_PAL_ 10690 4f 50 45 4e 57 09 09 09 3d 20 57 4d 5f 43 41 50 OPENW...= WM_CAP 106a0 5f 55 4e 49 43 4f 44 45 5f 53 54 41 52 54 20 2b _UNICODE_START + 106b0 20 38 30 2c 0d 0a 09 57 4d 5f 43 41 50 5f 50 41 80,...WM_CAP_PA 106c0 4c 5f 53 41 56 45 57 09 09 09 3d 20 57 4d 5f 43 L_SAVEW...= WM_C 106d0 41 50 5f 55 4e 49 43 4f 44 45 5f 53 54 41 52 54 AP_UNICODE_START 106e0 20 2b 20 38 31 2c 0d 0a 7d 0d 0a 0d 0a 76 65 72 + 81,..}....ver 106f0 73 69 6f 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d sion(Unicode) {. 10700 0a 09 61 6c 69 61 73 20 57 4d 5f 43 41 50 5f 50 ..alias WM_CAP_P 10710 41 4c 5f 4f 50 45 4e 57 09 57 4d 5f 43 41 50 5f AL_OPENW.WM_CAP_ 10720 50 41 4c 5f 4f 50 45 4e 3b 0d 0a 09 61 6c 69 61 PAL_OPEN;...alia 10730 73 20 57 4d 5f 43 41 50 5f 50 41 4c 5f 53 41 56 s WM_CAP_PAL_SAV 10740 45 57 09 57 4d 5f 43 41 50 5f 50 41 4c 5f 53 41 EW.WM_CAP_PAL_SA 10750 56 45 3b 0d 0a 7d 20 65 6c 73 65 20 7b 20 2f 2f VE;..} else { // 10760 20 55 6e 69 63 6f 64 65 0d 0a 09 61 6c 69 61 73 Unicode...alias 10770 20 57 4d 5f 43 41 50 5f 50 41 4c 5f 4f 50 45 4e WM_CAP_PAL_OPEN 10780 41 09 57 4d 5f 43 41 50 5f 50 41 4c 5f 4f 50 45 A.WM_CAP_PAL_OPE 10790 4e 3b 0d 0a 09 61 6c 69 61 73 20 57 4d 5f 43 41 N;...alias WM_CA 107a0 50 5f 50 41 4c 5f 53 41 56 45 41 09 57 4d 5f 43 P_PAL_SAVEA.WM_C 107b0 41 50 5f 50 41 4c 5f 53 41 56 45 3b 0d 0a 7d 0d AP_PAL_SAVE;..}. 107c0 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 57 4d 5f 43 ...enum {...WM_C 107d0 41 50 5f 50 41 4c 5f 50 41 53 54 45 09 09 09 09 AP_PAL_PASTE.... 107e0 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b = WM_CAP_START + 107f0 20 38 32 2c 0d 0a 09 57 4d 5f 43 41 50 5f 50 41 82,...WM_CAP_PA 10800 4c 5f 41 55 54 4f 43 52 45 41 54 45 09 09 09 3d L_AUTOCREATE...= 10810 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b 20 WM_CAP_START + 10820 38 33 2c 0d 0a 09 57 4d 5f 43 41 50 5f 50 41 4c 83,...WM_CAP_PAL 10830 5f 4d 41 4e 55 41 4c 43 52 45 41 54 45 09 09 09 _MANUALCREATE... 10840 3d 20 57 4d 5f 43 41 50 5f 53 54 41 52 54 20 2b = WM_CAP_START + 10850 20 38 34 2c 0d 0a 09 57 4d 5f 43 41 50 5f 53 45 84,...WM_CAP_SE 10860 54 5f 43 41 4c 4c 42 41 43 4b 5f 43 41 50 43 4f T_CALLBACK_CAPCO 10870 4e 54 52 4f 4c 09 3d 20 57 4d 5f 43 41 50 5f 53 NTROL.= WM_CAP_S 10880 54 41 52 54 20 2b 20 38 35 2c 0d 0a 09 57 4d 5f TART + 85,...WM_ 10890 43 41 50 5f 55 4e 49 43 4f 44 45 5f 45 4e 44 09 CAP_UNICODE_END. 108a0 09 09 09 3d 20 57 4d 5f 43 41 50 5f 50 41 4c 5f ...= WM_CAP_PAL_ 108b0 53 41 56 45 57 2c 0d 0a 09 57 4d 5f 43 41 50 5f SAVEW,...WM_CAP_ 108c0 45 4e 44 09 09 09 09 09 09 3d 20 57 4d 5f 43 41 END......= WM_CA 108d0 50 5f 55 4e 49 43 4f 44 45 5f 45 4e 44 2c 0d 0a P_UNICODE_END,.. 108e0 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a 20 6d 65 73 }..../**.. * mes 108f0 73 61 67 65 20 77 72 61 70 70 65 72 0d 0a 20 2a sage wrapper.. * 10900 2f 0d 0a 0d 0a 42 4f 4f 4c 20 63 61 70 53 65 74 /....BOOL capSet 10910 43 61 6c 6c 62 61 63 6b 4f 6e 45 72 72 6f 72 28 CallbackOnError( 10920 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 56 4f 49 HWND hWnd, LPVOI 10930 44 20 66 70 50 72 6f 63 29 09 09 09 09 7b 20 72 D fpProc)....{ r 10940 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 eturn cast(BOOL) 10950 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 AVICapSM(hWnd, W 10960 4d 5f 43 41 50 5f 53 45 54 5f 43 41 4c 4c 42 41 M_CAP_SET_CALLBA 10970 43 4b 5f 45 52 52 4f 52 2c 20 30 2c 20 63 61 73 CK_ERROR, 0, cas 10980 74 28 4c 50 41 52 41 4d 29 66 70 50 72 6f 63 29 t(LPARAM)fpProc) 10990 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 53 65 74 ; }..BOOL capSet 109a0 43 61 6c 6c 62 61 63 6b 4f 6e 53 74 61 74 75 73 CallbackOnStatus 109b0 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 56 4f (HWND hWnd, LPVO 109c0 49 44 20 66 70 50 72 6f 63 29 09 09 09 09 7b 20 ID fpProc)....{ 109d0 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c return cast(BOOL 109e0 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 )AVICapSM(hWnd, 109f0 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 4c 4c 42 WM_CAP_SET_CALLB 10a00 41 43 4b 5f 53 54 41 54 55 53 2c 20 30 2c 20 63 ACK_STATUS, 0, c 10a10 61 73 74 28 4c 50 41 52 41 4d 29 66 70 50 72 6f ast(LPARAM)fpPro 10a20 63 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 53 c); }..BOOL capS 10a30 65 74 43 61 6c 6c 62 61 63 6b 4f 6e 59 69 65 6c etCallbackOnYiel 10a40 64 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 56 d(HWND hWnd, LPV 10a50 4f 49 44 20 66 70 50 72 6f 63 29 09 09 09 09 7b OID fpProc)....{ 10a60 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f return cast(BOO 10a70 4c 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c L)AVICapSM(hWnd, 10a80 20 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 4c 4c WM_CAP_SET_CALL 10a90 42 41 43 4b 5f 59 49 45 4c 44 2c 20 30 2c 20 63 BACK_YIELD, 0, c 10aa0 61 73 74 28 4c 50 41 52 41 4d 29 66 70 50 72 6f ast(LPARAM)fpPro 10ab0 63 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 53 c); }..BOOL capS 10ac0 65 74 43 61 6c 6c 62 61 63 6b 4f 6e 46 72 61 6d etCallbackOnFram 10ad0 65 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 56 e(HWND hWnd, LPV 10ae0 4f 49 44 20 66 70 50 72 6f 63 29 09 09 09 09 7b OID fpProc)....{ 10af0 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f return cast(BOO 10b00 4c 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c L)AVICapSM(hWnd, 10b10 20 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 4c 4c WM_CAP_SET_CALL 10b20 42 41 43 4b 5f 46 52 41 4d 45 2c 20 30 2c 20 63 BACK_FRAME, 0, c 10b30 61 73 74 28 4c 50 41 52 41 4d 29 66 70 50 72 6f ast(LPARAM)fpPro 10b40 63 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 53 c); }..BOOL capS 10b50 65 74 43 61 6c 6c 62 61 63 6b 4f 6e 56 69 64 65 etCallbackOnVide 10b60 6f 53 74 72 65 61 6d 28 48 57 4e 44 20 68 57 6e oStream(HWND hWn 10b70 64 2c 20 4c 50 56 4f 49 44 20 66 70 50 72 6f 63 d, LPVOID fpProc 10b80 29 09 09 09 7b 20 72 65 74 75 72 6e 20 63 61 73 )...{ return cas 10b90 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 t(BOOL)AVICapSM( 10ba0 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 53 45 54 hWnd, WM_CAP_SET 10bb0 5f 43 41 4c 4c 42 41 43 4b 5f 56 49 44 45 4f 53 _CALLBACK_VIDEOS 10bc0 54 52 45 41 4d 2c 20 30 2c 20 63 61 73 74 28 4c TREAM, 0, cast(L 10bd0 50 41 52 41 4d 29 66 70 50 72 6f 63 29 3b 20 7d PARAM)fpProc); } 10be0 0d 0a 42 4f 4f 4c 20 63 61 70 53 65 74 43 61 6c ..BOOL capSetCal 10bf0 6c 62 61 63 6b 4f 6e 57 61 76 65 53 74 72 65 61 lbackOnWaveStrea 10c00 6d 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 56 m(HWND hWnd, LPV 10c10 4f 49 44 20 66 70 50 72 6f 63 29 09 09 09 7b 20 OID fpProc)...{ 10c20 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c return cast(BOOL 10c30 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 )AVICapSM(hWnd, 10c40 57 4d 5f 43 41 50 5f 53 45 54 5f 43 41 4c 4c 42 WM_CAP_SET_CALLB 10c50 41 43 4b 5f 57 41 56 45 53 54 52 45 41 4d 2c 20 ACK_WAVESTREAM, 10c60 30 2c 20 63 61 73 74 28 4c 50 41 52 41 4d 29 66 0, cast(LPARAM)f 10c70 70 50 72 6f 63 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 pProc); }..BOOL 10c80 63 61 70 53 65 74 43 61 6c 6c 62 61 63 6b 4f 6e capSetCallbackOn 10c90 43 61 70 43 6f 6e 74 72 6f 6c 28 48 57 4e 44 20 CapControl(HWND 10ca0 68 57 6e 64 2c 20 4c 50 56 4f 49 44 20 66 70 50 hWnd, LPVOID fpP 10cb0 72 6f 63 29 09 09 09 7b 20 72 65 74 75 72 6e 20 roc)...{ return 10cc0 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 cast(BOOL)AVICap 10cd0 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f SM(hWnd, WM_CAP_ 10ce0 53 45 54 5f 43 41 4c 4c 42 41 43 4b 5f 43 41 50 SET_CALLBACK_CAP 10cf0 43 4f 4e 54 52 4f 4c 2c 20 30 2c 20 63 61 73 74 CONTROL, 0, cast 10d00 28 4c 50 41 52 41 4d 29 66 70 50 72 6f 63 29 3b (LPARAM)fpProc); 10d10 20 7d 0d 0a 0d 0a 42 4f 4f 4c 20 63 61 70 53 65 }....BOOL capSe 10d20 74 55 73 65 72 44 61 74 61 28 48 57 4e 44 20 68 tUserData(HWND h 10d30 57 6e 64 2c 20 4c 50 41 52 41 4d 20 6c 55 73 65 Wnd, LPARAM lUse 10d40 72 29 09 09 09 09 09 09 7b 20 72 65 74 75 72 6e r)......{ return 10d50 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 cast(BOOL)AVICa 10d60 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 pSM(hWnd, WM_CAP 10d70 5f 53 45 54 5f 55 53 45 52 5f 44 41 54 41 2c 20 _SET_USER_DATA, 10d80 30 2c 20 6c 55 73 65 72 29 3b 20 7d 0d 0a 42 4f 0, lUser); }..BO 10d90 4f 4c 20 63 61 70 47 65 74 55 73 65 72 44 61 74 OL capGetUserDat 10da0 61 28 48 57 4e 44 20 68 57 6e 64 29 09 09 09 09 a(HWND hWnd).... 10db0 09 09 09 09 09 09 7b 20 72 65 74 75 72 6e 20 63 ......{ return c 10dc0 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 ast(BOOL)AVICapS 10dd0 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 47 M(hWnd, WM_CAP_G 10de0 45 54 5f 55 53 45 52 5f 44 41 54 41 2c 20 30 2c ET_USER_DATA, 0, 10df0 20 30 29 3b 20 7d 0d 0a 0d 0a 42 4f 4f 4c 20 63 0); }....BOOL c 10e00 61 70 44 72 69 76 65 72 43 6f 6e 6e 65 63 74 28 apDriverConnect( 10e10 48 57 4e 44 20 68 57 6e 64 2c 20 57 50 41 52 41 HWND hWnd, WPARA 10e20 4d 20 69 29 09 09 09 09 09 09 09 7b 20 72 65 74 M i).......{ ret 10e30 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 urn cast(BOOL)AV 10e40 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f ICapSM(hWnd, WM_ 10e50 43 41 50 5f 44 52 49 56 45 52 5f 43 4f 4e 4e 45 CAP_DRIVER_CONNE 10e60 43 54 2c 20 69 2c 20 30 29 3b 20 7d 0d 0a 42 4f CT, i, 0); }..BO 10e70 4f 4c 20 63 61 70 44 72 69 76 65 72 44 69 73 63 OL capDriverDisc 10e80 6f 6e 6e 65 63 74 28 48 57 4e 44 20 68 57 6e 64 onnect(HWND hWnd 10e90 29 09 09 09 09 09 09 09 09 09 7b 20 72 65 74 75 ).........{ retu 10ea0 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 rn cast(BOOL)AVI 10eb0 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 CapSM(hWnd, WM_C 10ec0 41 50 5f 44 52 49 56 45 52 5f 44 49 53 43 4f 4e AP_DRIVER_DISCON 10ed0 4e 45 43 54 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a NECT, 0, 0); }.. 10ee0 42 4f 4f 4c 20 63 61 70 44 72 69 76 65 72 47 65 BOOL capDriverGe 10ef0 74 4e 61 6d 65 28 48 57 4e 44 20 68 57 6e 64 2c tName(HWND hWnd, 10f00 20 4c 50 54 53 54 52 20 73 7a 4e 61 6d 65 2c 20 LPTSTR szName, 10f10 57 50 41 52 41 4d 20 77 53 69 7a 65 29 09 09 7b WPARAM wSize)..{ 10f20 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f return cast(BOO 10f30 4c 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c L)AVICapSM(hWnd, 10f40 20 57 4d 5f 43 41 50 5f 44 52 49 56 45 52 5f 47 WM_CAP_DRIVER_G 10f50 45 54 5f 4e 41 4d 45 2c 20 77 53 69 7a 65 2c 20 ET_NAME, wSize, 10f60 63 61 73 74 28 4c 50 41 52 41 4d 29 73 7a 4e 61 cast(LPARAM)szNa 10f70 6d 65 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 me); }..BOOL cap 10f80 44 72 69 76 65 72 47 65 74 56 65 72 73 69 6f 6e DriverGetVersion 10f90 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 54 53 (HWND hWnd, LPTS 10fa0 54 52 20 73 7a 56 65 72 2c 20 57 50 41 52 41 4d TR szVer, WPARAM 10fb0 20 77 53 69 7a 65 29 09 09 7b 20 72 65 74 75 72 wSize)..{ retur 10fc0 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 n cast(BOOL)AVIC 10fd0 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 apSM(hWnd, WM_CA 10fe0 50 5f 44 52 49 56 45 52 5f 47 45 54 5f 56 45 52 P_DRIVER_GET_VER 10ff0 53 49 4f 4e 2c 20 77 53 69 7a 65 2c 20 63 61 73 SION, wSize, cas 11000 74 28 4c 50 41 52 41 4d 29 73 7a 56 65 72 29 3b t(LPARAM)szVer); 11010 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 44 72 69 76 }..BOOL capDriv 11020 65 72 47 65 74 43 61 70 73 28 48 57 4e 44 20 68 erGetCaps(HWND h 11030 57 6e 64 2c 20 4c 50 43 41 50 44 52 49 56 45 52 Wnd, LPCAPDRIVER 11040 43 41 50 53 20 73 2c 20 57 50 41 52 41 4d 20 77 CAPS s, WPARAM w 11050 53 69 7a 65 29 09 7b 20 72 65 74 75 72 6e 20 63 Size).{ return c 11060 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 ast(BOOL)AVICapS 11070 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 44 M(hWnd, WM_CAP_D 11080 52 49 56 45 52 5f 47 45 54 5f 43 41 50 53 2c 20 RIVER_GET_CAPS, 11090 77 53 69 7a 65 2c 20 63 61 73 74 28 4c 50 41 52 wSize, cast(LPAR 110a0 41 4d 29 73 29 3b 20 7d 0d 0a 0d 0a 42 4f 4f 4c AM)s); }....BOOL 110b0 20 63 61 70 46 69 6c 65 53 65 74 43 61 70 74 75 capFileSetCaptu 110c0 72 65 46 69 6c 65 28 48 57 4e 44 20 68 57 6e 64 reFile(HWND hWnd 110d0 2c 20 4c 50 54 53 54 52 20 73 7a 4e 61 6d 65 29 , LPTSTR szName) 110e0 09 09 09 09 7b 20 72 65 74 75 72 6e 20 63 61 73 ....{ return cas 110f0 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 t(BOOL)AVICapSM( 11100 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 46 49 4c hWnd, WM_CAP_FIL 11110 45 5f 53 45 54 5f 43 41 50 54 55 52 45 5f 46 49 E_SET_CAPTURE_FI 11120 4c 45 2c 20 30 2c 20 63 61 73 74 28 4c 50 41 52 LE, 0, cast(LPAR 11130 41 4d 29 73 7a 4e 61 6d 65 29 3b 20 7d 0d 0a 42 AM)szName); }..B 11140 4f 4f 4c 20 63 61 70 46 69 6c 65 47 65 74 43 61 OOL capFileGetCa 11150 70 74 75 72 65 46 69 6c 65 28 48 57 4e 44 20 68 ptureFile(HWND h 11160 57 6e 64 2c 20 4c 50 54 53 54 52 20 73 7a 4e 61 Wnd, LPTSTR szNa 11170 6d 65 2c 20 57 50 41 52 41 4d 20 77 53 69 7a 65 me, WPARAM wSize 11180 29 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 ).{ return cast( 11190 42 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 57 BOOL)AVICapSM(hW 111a0 6e 64 2c 20 57 4d 5f 43 41 50 5f 46 49 4c 45 5f nd, WM_CAP_FILE_ 111b0 47 45 54 5f 43 41 50 54 55 52 45 5f 46 49 4c 45 GET_CAPTURE_FILE 111c0 2c 20 77 53 69 7a 65 2c 20 63 61 73 74 28 4c 50 , wSize, cast(LP 111d0 41 52 41 4d 29 73 7a 4e 61 6d 65 29 3b 20 7d 0d ARAM)szName); }. 111e0 0a 42 4f 4f 4c 20 63 61 70 46 69 6c 65 41 6c 6c .BOOL capFileAll 111f0 6f 63 28 48 57 4e 44 20 68 57 6e 64 2c 20 57 50 oc(HWND hWnd, WP 11200 41 52 41 4d 20 77 53 69 7a 65 29 09 09 09 09 09 ARAM wSize)..... 11210 09 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 ..{ return cast( 11220 42 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 57 BOOL)AVICapSM(hW 11230 6e 64 2c 20 57 4d 5f 43 41 50 5f 46 49 4c 45 5f nd, WM_CAP_FILE_ 11240 41 4c 4c 4f 43 41 54 45 2c 20 77 53 69 7a 65 2c ALLOCATE, wSize, 11250 20 30 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 0); }..BOOL cap 11260 46 69 6c 65 53 61 76 65 41 73 28 48 57 4e 44 20 FileSaveAs(HWND 11270 68 57 6e 64 2c 20 4c 50 54 53 54 52 20 73 7a 4e hWnd, LPTSTR szN 11280 61 6d 65 29 09 09 09 09 09 09 7b 20 72 65 74 75 ame)......{ retu 11290 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 rn cast(BOOL)AVI 112a0 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 CapSM(hWnd, WM_C 112b0 41 50 5f 46 49 4c 45 5f 53 41 56 45 41 53 2c 20 AP_FILE_SAVEAS, 112c0 30 2c 20 63 61 73 74 28 4c 50 41 52 41 4d 29 73 0, cast(LPARAM)s 112d0 7a 4e 61 6d 65 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 zName); }..BOOL 112e0 63 61 70 46 69 6c 65 53 65 74 49 6e 66 6f 43 68 capFileSetInfoCh 112f0 75 6e 6b 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c unk(HWND hWnd, L 11300 50 43 41 50 49 4e 46 4f 43 48 55 4e 4b 20 6c 70 PCAPINFOCHUNK lp 11310 49 6e 66 6f 43 68 75 6e 6b 29 09 09 7b 20 72 65 InfoChunk)..{ re 11320 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 turn cast(BOOL)A 11330 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d VICapSM(hWnd, WM 11340 5f 43 41 50 5f 46 49 4c 45 5f 53 45 54 5f 49 4e _CAP_FILE_SET_IN 11350 46 4f 43 48 55 4e 4b 2c 20 30 2c 20 63 61 73 74 FOCHUNK, 0, cast 11360 28 4c 50 41 52 41 4d 29 6c 70 49 6e 66 6f 43 68 (LPARAM)lpInfoCh 11370 75 6e 6b 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 unk); }..BOOL ca 11380 70 46 69 6c 65 53 61 76 65 44 49 42 28 48 57 4e pFileSaveDIB(HWN 11390 44 20 68 57 6e 64 2c 20 4c 50 54 53 54 52 20 73 D hWnd, LPTSTR s 113a0 7a 4e 61 6d 65 29 09 09 09 09 09 09 7b 20 72 65 zName)......{ re 113b0 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 turn cast(BOOL)A 113c0 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d VICapSM(hWnd, WM 113d0 5f 43 41 50 5f 46 49 4c 45 5f 53 41 56 45 44 49 _CAP_FILE_SAVEDI 113e0 42 2c 20 30 2c 20 63 61 73 74 28 4c 50 41 52 41 B, 0, cast(LPARA 113f0 4d 29 73 7a 4e 61 6d 65 29 3b 20 7d 0d 0a 0d 0a M)szName); }.... 11400 42 4f 4f 4c 20 63 61 70 45 64 69 74 43 6f 70 79 BOOL capEditCopy 11410 28 48 57 4e 44 20 68 57 6e 64 29 09 09 09 09 09 (HWND hWnd)..... 11420 09 09 09 09 09 09 7b 20 72 65 74 75 72 6e 20 63 ......{ return c 11430 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 ast(BOOL)AVICapS 11440 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 45 M(hWnd, WM_CAP_E 11450 44 49 54 5f 43 4f 50 59 2c 20 30 2c 20 30 29 3b DIT_COPY, 0, 0); 11460 20 7d 0d 0a 0d 0a 42 4f 4f 4c 20 63 61 70 53 65 }....BOOL capSe 11470 74 41 75 64 69 6f 46 6f 72 6d 61 74 28 48 57 4e tAudioFormat(HWN 11480 44 20 68 57 6e 64 2c 20 4c 50 57 41 56 45 46 4f D hWnd, LPWAVEFO 11490 52 4d 41 54 45 58 20 73 2c 20 57 50 41 52 41 4d RMATEX s, WPARAM 114a0 20 77 53 69 7a 65 29 09 7b 20 72 65 74 75 72 6e wSize).{ return 114b0 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 cast(BOOL)AVICa 114c0 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 pSM(hWnd, WM_CAP 114d0 5f 53 45 54 5f 41 55 44 49 4f 46 4f 52 4d 41 54 _SET_AUDIOFORMAT 114e0 2c 20 77 53 69 7a 65 2c 20 63 61 73 74 28 4c 50 , wSize, cast(LP 114f0 41 52 41 4d 29 73 29 3b 20 7d 0d 0a 44 57 4f 52 ARAM)s); }..DWOR 11500 44 20 63 61 70 47 65 74 41 75 64 69 6f 46 6f 72 D capGetAudioFor 11510 6d 61 74 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c mat(HWND hWnd, L 11520 50 57 41 56 45 46 4f 52 4d 41 54 45 58 20 73 2c PWAVEFORMATEX s, 11530 20 57 50 41 52 41 4d 20 77 53 69 7a 65 29 09 7b WPARAM wSize).{ 11540 20 72 65 74 75 72 6e 20 63 61 73 74 28 44 57 4f return cast(DWO 11550 52 44 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 RD)AVICapSM(hWnd 11560 2c 20 57 4d 5f 43 41 50 5f 47 45 54 5f 41 55 44 , WM_CAP_GET_AUD 11570 49 4f 46 4f 52 4d 41 54 2c 20 77 53 69 7a 65 2c IOFORMAT, wSize, 11580 20 63 61 73 74 28 4c 50 41 52 41 4d 29 73 29 3b cast(LPARAM)s); 11590 20 7d 0d 0a 44 57 4f 52 44 20 63 61 70 47 65 74 }..DWORD capGet 115a0 41 75 64 69 6f 46 6f 72 6d 61 74 53 69 7a 65 28 AudioFormatSize( 115b0 48 57 4e 44 20 68 57 6e 64 29 09 09 09 09 09 09 HWND hWnd)...... 115c0 09 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 ..{ return cast( 115d0 44 57 4f 52 44 29 41 56 49 43 61 70 53 4d 28 68 DWORD)AVICapSM(h 115e0 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 47 45 54 5f Wnd, WM_CAP_GET_ 115f0 41 55 44 49 4f 46 4f 52 4d 41 54 2c 20 30 2c 20 AUDIOFORMAT, 0, 11600 30 29 3b 20 7d 0d 0a 0d 0a 42 4f 4f 4c 20 63 61 0); }....BOOL ca 11610 70 44 6c 67 56 69 64 65 6f 46 6f 72 6d 61 74 28 pDlgVideoFormat( 11620 48 57 4e 44 20 68 57 6e 64 29 09 09 09 09 09 09 HWND hWnd)...... 11630 09 09 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast 11640 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 (BOOL)AVICapSM(h 11650 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 44 4c 47 5f Wnd, WM_CAP_DLG_ 11660 56 49 44 45 4f 46 4f 52 4d 41 54 2c 20 30 2c 20 VIDEOFORMAT, 0, 11670 30 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 44 0); }..BOOL capD 11680 6c 67 56 69 64 65 6f 53 6f 75 72 63 65 28 48 57 lgVideoSource(HW 11690 4e 44 20 68 57 6e 64 29 09 09 09 09 09 09 09 09 ND hWnd)........ 116a0 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 .{ return cast(B 116b0 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 57 6e OOL)AVICapSM(hWn 116c0 64 2c 20 57 4d 5f 43 41 50 5f 44 4c 47 5f 56 49 d, WM_CAP_DLG_VI 116d0 44 45 4f 53 4f 55 52 43 45 2c 20 30 2c 20 30 29 DEOSOURCE, 0, 0) 116e0 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 44 6c 67 ; }..BOOL capDlg 116f0 56 69 64 65 6f 44 69 73 70 6c 61 79 28 48 57 4e VideoDisplay(HWN 11700 44 20 68 57 6e 64 29 09 09 09 09 09 09 09 09 09 D hWnd)......... 11710 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f { return cast(BO 11720 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 OL)AVICapSM(hWnd 11730 2c 20 57 4d 5f 43 41 50 5f 44 4c 47 5f 56 49 44 , WM_CAP_DLG_VID 11740 45 4f 44 49 53 50 4c 41 59 2c 20 30 2c 20 30 29 EODISPLAY, 0, 0) 11750 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 44 6c 67 ; }..BOOL capDlg 11760 56 69 64 65 6f 43 6f 6d 70 72 65 73 73 69 6f 6e VideoCompression 11770 28 48 57 4e 44 20 68 57 6e 64 29 09 09 09 09 09 (HWND hWnd)..... 11780 09 09 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast 11790 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 (BOOL)AVICapSM(h 117a0 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 44 4c 47 5f Wnd, WM_CAP_DLG_ 117b0 56 49 44 45 4f 43 4f 4d 50 52 45 53 53 49 4f 4e VIDEOCOMPRESSION 117c0 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 0d 0a 44 57 , 0, 0); }....DW 117d0 4f 52 44 20 63 61 70 47 65 74 56 69 64 65 6f 46 ORD capGetVideoF 117e0 6f 72 6d 61 74 28 48 57 4e 44 20 68 57 6e 64 2c ormat(HWND hWnd, 117f0 20 76 6f 69 64 2a 20 73 2c 20 57 50 41 52 41 4d void* s, WPARAM 11800 20 77 53 69 7a 65 29 09 09 09 7b 20 72 65 74 75 wSize)...{ retu 11810 72 6e 20 63 61 73 74 28 44 57 4f 52 44 29 41 56 rn cast(DWORD)AV 11820 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f ICapSM(hWnd, WM_ 11830 43 41 50 5f 47 45 54 5f 56 49 44 45 4f 46 4f 52 CAP_GET_VIDEOFOR 11840 4d 41 54 2c 20 77 53 69 7a 65 2c 20 63 61 73 74 MAT, wSize, cast 11850 28 4c 50 41 52 41 4d 29 73 29 3b 20 7d 0d 0a 44 (LPARAM)s); }..D 11860 57 4f 52 44 20 63 61 70 47 65 74 56 69 64 65 6f WORD capGetVideo 11870 46 6f 72 6d 61 74 53 69 7a 65 28 48 57 4e 44 20 FormatSize(HWND 11880 68 57 6e 64 29 09 09 09 09 09 09 09 09 7b 20 72 hWnd)........{ r 11890 65 74 75 72 6e 20 63 61 73 74 28 44 57 4f 52 44 eturn cast(DWORD 118a0 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 )AVICapSM(hWnd, 118b0 57 4d 5f 43 41 50 5f 47 45 54 5f 56 49 44 45 4f WM_CAP_GET_VIDEO 118c0 46 4f 52 4d 41 54 2c 20 30 2c 20 30 29 3b 20 7d FORMAT, 0, 0); } 118d0 0d 0a 42 4f 4f 4c 20 63 61 70 53 65 74 56 69 64 ..BOOL capSetVid 118e0 65 6f 46 6f 72 6d 61 74 28 48 57 4e 44 20 68 57 eoFormat(HWND hW 118f0 6e 64 2c 20 76 6f 69 64 2a 20 73 2c 20 57 50 41 nd, void* s, WPA 11900 52 41 4d 20 77 53 69 7a 65 29 09 09 09 7b 20 72 RAM wSize)...{ r 11910 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 eturn cast(BOOL) 11920 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 AVICapSM(hWnd, W 11930 4d 5f 43 41 50 5f 53 45 54 5f 56 49 44 45 4f 46 M_CAP_SET_VIDEOF 11940 4f 52 4d 41 54 2c 20 77 53 69 7a 65 2c 20 63 61 ORMAT, wSize, ca 11950 73 74 28 4c 50 41 52 41 4d 29 73 29 3b 20 7d 0d st(LPARAM)s); }. 11960 0a 0d 0a 42 4f 4f 4c 20 63 61 70 50 72 65 76 69 ...BOOL capPrevi 11970 65 77 28 48 57 4e 44 20 68 57 6e 64 2c 20 42 4f ew(HWND hWnd, BO 11980 4f 4c 20 66 29 09 09 09 09 09 09 09 09 09 7b 20 OL f).........{ 11990 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c return cast(BOOL 119a0 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 )AVICapSM(hWnd, 119b0 57 4d 5f 43 41 50 5f 53 45 54 5f 50 52 45 56 49 WM_CAP_SET_PREVI 119c0 45 57 2c 20 63 61 73 74 28 57 50 41 52 41 4d 29 EW, cast(WPARAM) 119d0 66 2c 20 30 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 f, 0); }..BOOL c 119e0 61 70 50 72 65 76 69 65 77 52 61 74 65 28 48 57 apPreviewRate(HW 119f0 4e 44 20 68 57 6e 64 2c 20 57 50 41 52 41 4d 20 ND hWnd, WPARAM 11a00 77 4d 53 29 09 09 09 09 09 09 09 7b 20 72 65 74 wMS).......{ ret 11a10 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 urn cast(BOOL)AV 11a20 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f ICapSM(hWnd, WM_ 11a30 43 41 50 5f 53 45 54 5f 50 52 45 56 49 45 57 52 CAP_SET_PREVIEWR 11a40 41 54 45 2c 20 77 4d 53 2c 20 30 29 3b 20 7d 0d ATE, wMS, 0); }. 11a50 0a 42 4f 4f 4c 20 63 61 70 4f 76 65 72 6c 61 79 .BOOL capOverlay 11a60 28 48 57 4e 44 20 68 57 6e 64 2c 20 42 4f 4f 4c (HWND hWnd, BOOL 11a70 20 66 29 09 09 09 09 09 09 09 09 09 7b 20 72 65 f).........{ re 11a80 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 turn cast(BOOL)A 11a90 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d VICapSM(hWnd, WM 11aa0 5f 43 41 50 5f 53 45 54 5f 4f 56 45 52 4c 41 59 _CAP_SET_OVERLAY 11ab0 2c 20 63 61 73 74 28 57 50 41 52 41 4d 29 66 2c , cast(WPARAM)f, 11ac0 20 30 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 0); }..BOOL cap 11ad0 50 72 65 76 69 65 77 53 63 61 6c 65 28 48 57 4e PreviewScale(HWN 11ae0 44 20 68 57 6e 64 2c 20 42 4f 4f 4c 20 66 29 09 D hWnd, BOOL f). 11af0 09 09 09 09 09 09 09 7b 20 72 65 74 75 72 6e 20 .......{ return 11b00 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 cast(BOOL)AVICap 11b10 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f SM(hWnd, WM_CAP_ 11b20 53 45 54 5f 53 43 41 4c 45 2c 20 63 61 73 74 28 SET_SCALE, cast( 11b30 57 50 41 52 41 4d 29 66 2c 20 30 29 3b 20 7d 0d WPARAM)f, 0); }. 11b40 0a 42 4f 4f 4c 20 63 61 70 47 65 74 53 74 61 74 .BOOL capGetStat 11b50 75 73 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 us(HWND hWnd, LP 11b60 43 41 50 53 54 41 54 55 53 20 73 2c 20 57 50 41 CAPSTATUS s, WPA 11b70 52 41 4d 20 77 53 69 7a 65 29 09 09 09 7b 20 72 RAM wSize)...{ r 11b80 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 eturn cast(BOOL) 11b90 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 AVICapSM(hWnd, W 11ba0 4d 5f 43 41 50 5f 47 45 54 5f 53 54 41 54 55 53 M_CAP_GET_STATUS 11bb0 2c 20 77 53 69 7a 65 2c 20 63 61 73 74 28 4c 50 , wSize, cast(LP 11bc0 41 52 41 4d 29 73 29 3b 20 7d 0d 0a 42 4f 4f 4c ARAM)s); }..BOOL 11bd0 20 63 61 70 53 65 74 53 63 72 6f 6c 6c 50 6f 73 capSetScrollPos 11be0 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 50 4f (HWND hWnd, LPPO 11bf0 49 4e 54 20 6c 70 50 29 09 09 09 09 09 09 7b 20 INT lpP)......{ 11c00 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c return cast(BOOL 11c10 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 )AVICapSM(hWnd, 11c20 57 4d 5f 43 41 50 5f 53 45 54 5f 53 43 52 4f 4c WM_CAP_SET_SCROL 11c30 4c 2c 20 30 2c 20 63 61 73 74 28 4c 50 41 52 41 L, 0, cast(LPARA 11c40 4d 29 6c 70 50 29 3b 20 7d 0d 0a 0d 0a 42 4f 4f M)lpP); }....BOO 11c50 4c 20 63 61 70 47 72 61 62 46 72 61 6d 65 28 48 L capGrabFrame(H 11c60 57 4e 44 20 68 57 6e 64 29 09 09 09 09 09 09 09 WND hWnd)....... 11c70 09 09 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast 11c80 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 (BOOL)AVICapSM(h 11c90 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 47 52 41 42 Wnd, WM_CAP_GRAB 11ca0 5f 46 52 41 4d 45 2c 20 30 2c 20 30 29 3b 20 7d _FRAME, 0, 0); } 11cb0 0d 0a 42 4f 4f 4c 20 63 61 70 47 72 61 62 46 72 ..BOOL capGrabFr 11cc0 61 6d 65 4e 6f 53 74 6f 70 28 48 57 4e 44 20 68 ameNoStop(HWND h 11cd0 57 6e 64 29 09 09 09 09 09 09 09 09 09 7b 20 72 Wnd).........{ r 11ce0 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 eturn cast(BOOL) 11cf0 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 AVICapSM(hWnd, W 11d00 4d 5f 43 41 50 5f 47 52 41 42 5f 46 52 41 4d 45 M_CAP_GRAB_FRAME 11d10 5f 4e 4f 53 54 4f 50 2c 20 30 2c 20 30 29 3b 20 _NOSTOP, 0, 0); 11d20 7d 0d 0a 0d 0a 42 4f 4f 4c 20 63 61 70 43 61 70 }....BOOL capCap 11d30 74 75 72 65 53 65 71 75 65 6e 63 65 28 48 57 4e tureSequence(HWN 11d40 44 20 68 57 6e 64 29 09 09 09 09 09 09 09 09 09 D hWnd)......... 11d50 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 4f { return cast(BO 11d60 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 57 6e 64 OL)AVICapSM(hWnd 11d70 2c 20 57 4d 5f 43 41 50 5f 53 45 51 55 45 4e 43 , WM_CAP_SEQUENC 11d80 45 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 42 4f 4f E, 0, 0); }..BOO 11d90 4c 20 63 61 70 43 61 70 74 75 72 65 53 65 71 75 L capCaptureSequ 11da0 65 6e 63 65 4e 6f 46 69 6c 65 28 48 57 4e 44 20 enceNoFile(HWND 11db0 68 57 6e 64 29 09 09 09 09 09 09 09 7b 20 72 65 hWnd).......{ re 11dc0 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 turn cast(BOOL)A 11dd0 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d VICapSM(hWnd, WM 11de0 5f 43 41 50 5f 53 45 51 55 45 4e 43 45 5f 4e 4f _CAP_SEQUENCE_NO 11df0 46 49 4c 45 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a FILE, 0, 0); }.. 11e00 42 4f 4f 4c 20 63 61 70 43 61 70 74 75 72 65 53 BOOL capCaptureS 11e10 74 6f 70 28 48 57 4e 44 20 68 57 6e 64 29 09 09 top(HWND hWnd).. 11e20 09 09 09 09 09 09 09 09 7b 20 72 65 74 75 72 6e ........{ return 11e30 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 cast(BOOL)AVICa 11e40 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 pSM(hWnd, WM_CAP 11e50 5f 53 54 4f 50 2c 20 30 2c 20 30 29 3b 20 7d 0d _STOP, 0, 0); }. 11e60 0a 42 4f 4f 4c 20 63 61 70 43 61 70 74 75 72 65 .BOOL capCapture 11e70 41 62 6f 72 74 28 48 57 4e 44 20 68 57 6e 64 29 Abort(HWND hWnd) 11e80 09 09 09 09 09 09 09 09 09 09 7b 20 72 65 74 75 ..........{ retu 11e90 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 rn cast(BOOL)AVI 11ea0 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 CapSM(hWnd, WM_C 11eb0 41 50 5f 41 42 4f 52 54 2c 20 30 2c 20 30 29 3b AP_ABORT, 0, 0); 11ec0 20 7d 0d 0a 0d 0a 42 4f 4f 4c 20 63 61 70 43 61 }....BOOL capCa 11ed0 70 74 75 72 65 53 69 6e 67 6c 65 46 72 61 6d 65 ptureSingleFrame 11ee0 4f 70 65 6e 28 48 57 4e 44 20 68 57 6e 64 29 09 Open(HWND hWnd). 11ef0 09 09 09 09 09 09 7b 20 72 65 74 75 72 6e 20 63 ......{ return c 11f00 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 ast(BOOL)AVICapS 11f10 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 53 M(hWnd, WM_CAP_S 11f20 49 4e 47 4c 45 5f 46 52 41 4d 45 5f 4f 50 45 4e INGLE_FRAME_OPEN 11f30 2c 20 30 2c 20 30 29 3b 20 7d 0d 0a 42 4f 4f 4c , 0, 0); }..BOOL 11f40 20 63 61 70 43 61 70 74 75 72 65 53 69 6e 67 6c capCaptureSingl 11f50 65 46 72 61 6d 65 43 6c 6f 73 65 28 48 57 4e 44 eFrameClose(HWND 11f60 20 68 57 6e 64 29 09 09 09 09 09 09 09 7b 20 72 hWnd).......{ r 11f70 65 74 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 eturn cast(BOOL) 11f80 41 56 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 AVICapSM(hWnd, W 11f90 4d 5f 43 41 50 5f 53 49 4e 47 4c 45 5f 46 52 41 M_CAP_SINGLE_FRA 11fa0 4d 45 5f 43 4c 4f 53 45 2c 20 30 2c 20 30 29 3b ME_CLOSE, 0, 0); 11fb0 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 43 61 70 74 }..BOOL capCapt 11fc0 75 72 65 53 69 6e 67 6c 65 46 72 61 6d 65 28 48 ureSingleFrame(H 11fd0 57 4e 44 20 68 57 6e 64 29 09 09 09 09 09 09 09 WND hWnd)....... 11fe0 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 .{ return cast(B 11ff0 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 57 6e OOL)AVICapSM(hWn 12000 64 2c 20 57 4d 5f 43 41 50 5f 53 49 4e 47 4c 45 d, WM_CAP_SINGLE 12010 5f 46 52 41 4d 45 2c 20 30 2c 20 30 29 3b 20 7d _FRAME, 0, 0); } 12020 0d 0a 0d 0a 42 4f 4f 4c 20 63 61 70 43 61 70 74 ....BOOL capCapt 12030 75 72 65 47 65 74 53 65 74 75 70 28 48 57 4e 44 ureGetSetup(HWND 12040 20 68 57 6e 64 2c 20 4c 50 43 41 50 54 55 52 45 hWnd, LPCAPTURE 12050 50 41 52 4d 53 20 73 2c 20 57 50 41 52 41 4d 20 PARMS s, WPARAM 12060 77 53 69 7a 65 29 09 7b 20 72 65 74 75 72 6e 20 wSize).{ return 12070 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 cast(BOOL)AVICap 12080 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f SM(hWnd, WM_CAP_ 12090 47 45 54 5f 53 45 51 55 45 4e 43 45 5f 53 45 54 GET_SEQUENCE_SET 120a0 55 50 2c 20 77 53 69 7a 65 2c 20 63 61 73 74 28 UP, wSize, cast( 120b0 4c 50 41 52 41 4d 29 73 29 3b 20 7d 0d 0a 42 4f LPARAM)s); }..BO 120c0 4f 4c 20 63 61 70 43 61 70 74 75 72 65 53 65 74 OL capCaptureSet 120d0 53 65 74 75 70 28 48 57 4e 44 20 68 57 6e 64 2c Setup(HWND hWnd, 120e0 20 4c 50 43 41 50 54 55 52 45 50 41 52 4d 53 20 LPCAPTUREPARMS 120f0 73 2c 20 57 50 41 52 41 4d 20 77 53 69 7a 65 29 s, WPARAM wSize) 12100 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 .{ return cast(B 12110 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 57 6e OOL)AVICapSM(hWn 12120 64 2c 20 57 4d 5f 43 41 50 5f 53 45 54 5f 53 45 d, WM_CAP_SET_SE 12130 51 55 45 4e 43 45 5f 53 45 54 55 50 2c 20 77 53 QUENCE_SETUP, wS 12140 69 7a 65 2c 20 63 61 73 74 28 4c 50 41 52 41 4d ize, cast(LPARAM 12150 29 73 29 3b 20 7d 0d 0a 0d 0a 42 4f 4f 4c 20 63 )s); }....BOOL c 12160 61 70 53 65 74 4d 43 49 44 65 76 69 63 65 4e 61 apSetMCIDeviceNa 12170 6d 65 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 me(HWND hWnd, LP 12180 54 53 54 52 20 73 7a 4e 61 6d 65 29 09 09 09 09 TSTR szName).... 12190 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 28 42 .{ return cast(B 121a0 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 57 6e OOL)AVICapSM(hWn 121b0 64 2c 20 57 4d 5f 43 41 50 5f 53 45 54 5f 4d 43 d, WM_CAP_SET_MC 121c0 49 5f 44 45 56 49 43 45 2c 20 30 2c 20 63 61 73 I_DEVICE, 0, cas 121d0 74 28 4c 50 41 52 41 4d 29 73 7a 4e 61 6d 65 29 t(LPARAM)szName) 121e0 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 47 65 74 ; }..BOOL capGet 121f0 4d 43 49 44 65 76 69 63 65 4e 61 6d 65 28 48 57 MCIDeviceName(HW 12200 4e 44 20 68 57 6e 64 2c 20 4c 50 54 53 54 52 20 ND hWnd, LPTSTR 12210 73 7a 4e 61 6d 65 2c 20 57 50 41 52 41 4d 20 77 szName, WPARAM w 12220 53 69 7a 65 29 09 7b 20 72 65 74 75 72 6e 20 63 Size).{ return c 12230 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 ast(BOOL)AVICapS 12240 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 47 M(hWnd, WM_CAP_G 12250 45 54 5f 4d 43 49 5f 44 45 56 49 43 45 2c 20 77 ET_MCI_DEVICE, w 12260 53 69 7a 65 2c 20 63 61 73 74 28 4c 50 41 52 41 Size, cast(LPARA 12270 4d 29 73 7a 4e 61 6d 65 29 3b 20 7d 0d 0a 0d 0a M)szName); }.... 12280 42 4f 4f 4c 20 63 61 70 50 61 6c 65 74 74 65 4f BOOL capPaletteO 12290 70 65 6e 28 48 57 4e 44 20 68 57 6e 64 2c 20 4c pen(HWND hWnd, L 122a0 50 54 53 54 52 20 73 7a 4e 61 6d 65 29 09 09 09 PTSTR szName)... 122b0 09 09 09 7b 20 72 65 74 75 72 6e 20 63 61 73 74 ...{ return cast 122c0 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 68 (BOOL)AVICapSM(h 122d0 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 50 41 4c 5f Wnd, WM_CAP_PAL_ 122e0 4f 50 45 4e 2c 20 30 2c 20 63 61 73 74 28 4c 50 OPEN, 0, cast(LP 122f0 41 52 41 4d 29 73 7a 4e 61 6d 65 29 3b 20 7d 0d ARAM)szName); }. 12300 0a 42 4f 4f 4c 20 63 61 70 50 61 6c 65 74 74 65 .BOOL capPalette 12310 53 61 76 65 28 48 57 4e 44 20 68 57 6e 64 2c 20 Save(HWND hWnd, 12320 4c 50 54 53 54 52 20 73 7a 4e 61 6d 65 29 09 09 LPTSTR szName).. 12330 09 09 09 09 7b 20 72 65 74 75 72 6e 20 63 61 73 ....{ return cas 12340 74 28 42 4f 4f 4c 29 41 56 49 43 61 70 53 4d 28 t(BOOL)AVICapSM( 12350 68 57 6e 64 2c 20 57 4d 5f 43 41 50 5f 50 41 4c hWnd, WM_CAP_PAL 12360 5f 53 41 56 45 2c 20 30 2c 20 63 61 73 74 28 4c _SAVE, 0, cast(L 12370 50 41 52 41 4d 29 73 7a 4e 61 6d 65 29 3b 20 7d PARAM)szName); } 12380 0d 0a 42 4f 4f 4c 20 63 61 70 50 61 6c 65 74 74 ..BOOL capPalett 12390 65 50 61 73 74 65 28 48 57 4e 44 20 68 57 6e 64 ePaste(HWND hWnd 123a0 29 09 09 09 09 09 09 09 09 09 09 7b 20 72 65 74 )..........{ ret 123b0 75 72 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 urn cast(BOOL)AV 123c0 49 43 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f ICapSM(hWnd, WM_ 123d0 43 41 50 5f 50 41 4c 5f 50 41 53 54 45 2c 20 30 CAP_PAL_PASTE, 0 123e0 2c 20 30 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 , 0); }..BOOL ca 123f0 70 50 61 6c 65 74 74 65 41 75 74 6f 28 48 57 4e pPaletteAuto(HWN 12400 44 20 68 57 6e 64 2c 20 57 50 41 52 41 4d 20 69 D hWnd, WPARAM i 12410 46 72 61 6d 65 73 2c 20 4c 50 41 52 41 4d 20 69 Frames, LPARAM i 12420 43 6f 6c 6f 72 73 29 09 09 7b 20 72 65 74 75 72 Colors)..{ retur 12430 6e 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 n cast(BOOL)AVIC 12440 61 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 apSM(hWnd, WM_CA 12450 50 5f 50 41 4c 5f 41 55 54 4f 43 52 45 41 54 45 P_PAL_AUTOCREATE 12460 2c 20 69 46 72 61 6d 65 73 2c 20 69 43 6f 6c 6f , iFrames, iColo 12470 72 73 29 3b 20 7d 0d 0a 42 4f 4f 4c 20 63 61 70 rs); }..BOOL cap 12480 50 61 6c 65 74 74 65 4d 61 6e 75 61 6c 28 48 57 PaletteManual(HW 12490 4e 44 20 68 57 6e 64 2c 20 57 50 41 52 41 4d 20 ND hWnd, WPARAM 124a0 66 47 72 61 62 2c 20 4c 50 41 52 41 4d 20 69 43 fGrab, LPARAM iC 124b0 6f 6c 6f 72 73 29 09 09 7b 20 72 65 74 75 72 6e olors)..{ return 124c0 20 63 61 73 74 28 42 4f 4f 4c 29 41 56 49 43 61 cast(BOOL)AVICa 124d0 70 53 4d 28 68 57 6e 64 2c 20 57 4d 5f 43 41 50 pSM(hWnd, WM_CAP 124e0 5f 50 41 4c 5f 4d 41 4e 55 41 4c 43 52 45 41 54 _PAL_MANUALCREAT 124f0 45 2c 20 66 47 72 61 62 2c 20 69 43 6f 6c 6f 72 E, fGrab, iColor 12500 73 29 3b 20 7d 0d 0a 0d 0a 2f 2a 2a 0d 0a 20 2a s); }..../**.. * 12510 20 73 74 72 75 63 74 73 0d 0a 20 2a 2f 0d 0a 0d structs.. */... 12520 0a 73 74 72 75 63 74 20 43 41 50 44 52 49 56 45 .struct CAPDRIVE 12530 52 43 41 50 53 20 7b 0d 0a 09 55 49 4e 54 09 77 RCAPS {...UINT.w 12540 44 65 76 69 63 65 49 6e 64 65 78 3b 0d 0a 09 42 DeviceIndex;...B 12550 4f 4f 4c 09 66 48 61 73 4f 76 65 72 6c 61 79 3b OOL.fHasOverlay; 12560 0d 0a 09 42 4f 4f 4c 09 66 48 61 73 44 6c 67 56 ...BOOL.fHasDlgV 12570 69 64 65 6f 53 6f 75 72 63 65 3b 0d 0a 09 42 4f ideoSource;...BO 12580 4f 4c 09 66 48 61 73 44 6c 67 56 69 64 65 6f 46 OL.fHasDlgVideoF 12590 6f 72 6d 61 74 3b 0d 0a 09 42 4f 4f 4c 09 66 48 ormat;...BOOL.fH 125a0 61 73 44 6c 67 56 69 64 65 6f 44 69 73 70 6c 61 asDlgVideoDispla 125b0 79 3b 0d 0a 09 42 4f 4f 4c 09 66 43 61 70 74 75 y;...BOOL.fCaptu 125c0 72 65 49 6e 69 74 69 61 6c 69 7a 65 64 3b 0d 0a reInitialized;.. 125d0 09 42 4f 4f 4c 09 66 44 72 69 76 65 72 53 75 70 .BOOL.fDriverSup 125e0 70 6c 69 65 73 50 61 6c 65 74 74 65 73 3b 0d 0a pliesPalettes;.. 125f0 09 48 41 4e 44 4c 45 09 68 56 69 64 65 6f 49 6e .HANDLE.hVideoIn 12600 3b 0d 0a 09 48 41 4e 44 4c 45 09 68 56 69 64 65 ;...HANDLE.hVide 12610 6f 4f 75 74 3b 0d 0a 09 48 41 4e 44 4c 45 09 68 oOut;...HANDLE.h 12620 56 69 64 65 6f 45 78 74 49 6e 3b 0d 0a 09 48 41 VideoExtIn;...HA 12630 4e 44 4c 45 09 68 56 69 64 65 6f 45 78 74 4f 75 NDLE.hVideoExtOu 12640 74 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 41 50 t;..}..alias CAP 12650 44 52 49 56 45 52 43 41 50 53 2a 20 50 43 41 50 DRIVERCAPS* PCAP 12660 44 52 49 56 45 52 43 41 50 53 2c 20 4c 50 43 41 DRIVERCAPS, LPCA 12670 50 44 52 49 56 45 52 43 41 50 53 3b 0d 0a 0d 0a PDRIVERCAPS;.... 12680 73 74 72 75 63 74 20 43 41 50 53 54 41 54 55 53 struct CAPSTATUS 12690 20 7b 0d 0a 09 55 49 4e 54 09 09 75 69 49 6d 61 {...UINT..uiIma 126a0 67 65 57 69 64 74 68 3b 0d 0a 09 55 49 4e 54 09 geWidth;...UINT. 126b0 09 75 69 49 6d 61 67 65 48 65 69 67 68 74 3b 0d .uiImageHeight;. 126c0 0a 09 42 4f 4f 4c 09 09 66 4c 69 76 65 57 69 6e ..BOOL..fLiveWin 126d0 64 6f 77 3b 0d 0a 09 42 4f 4f 4c 09 09 66 4f 76 dow;...BOOL..fOv 126e0 65 72 6c 61 79 57 69 6e 64 6f 77 3b 0d 0a 09 42 erlayWindow;...B 126f0 4f 4f 4c 09 09 66 53 63 61 6c 65 3b 0d 0a 09 50 OOL..fScale;...P 12700 4f 49 4e 54 09 09 70 74 53 63 72 6f 6c 6c 3b 0d OINT..ptScroll;. 12710 0a 09 42 4f 4f 4c 09 09 66 55 73 69 6e 67 44 65 ..BOOL..fUsingDe 12720 66 61 75 6c 74 50 61 6c 65 74 74 65 3b 0d 0a 09 faultPalette;... 12730 42 4f 4f 4c 09 09 66 41 75 64 69 6f 48 61 72 64 BOOL..fAudioHard 12740 77 61 72 65 3b 0d 0a 09 42 4f 4f 4c 09 09 66 43 ware;...BOOL..fC 12750 61 70 46 69 6c 65 45 78 69 73 74 73 3b 0d 0a 09 apFileExists;... 12760 44 57 4f 52 44 09 09 64 77 43 75 72 72 65 6e 74 DWORD..dwCurrent 12770 56 69 64 65 6f 46 72 61 6d 65 3b 0d 0a 09 44 57 VideoFrame;...DW 12780 4f 52 44 09 09 64 77 43 75 72 72 65 6e 74 56 69 ORD..dwCurrentVi 12790 64 65 6f 46 72 61 6d 65 73 44 72 6f 70 70 65 64 deoFramesDropped 127a0 3b 0d 0a 09 44 57 4f 52 44 09 09 64 77 43 75 72 ;...DWORD..dwCur 127b0 72 65 6e 74 57 61 76 65 53 61 6d 70 6c 65 73 3b rentWaveSamples; 127c0 0d 0a 09 44 57 4f 52 44 09 09 64 77 43 75 72 72 ...DWORD..dwCurr 127d0 65 6e 74 54 69 6d 65 45 6c 61 70 73 65 64 4d 53 entTimeElapsedMS 127e0 3b 0d 0a 09 48 50 41 4c 45 54 54 45 09 68 50 61 ;...HPALETTE.hPa 127f0 6c 43 75 72 72 65 6e 74 3b 0d 0a 09 42 4f 4f 4c lCurrent;...BOOL 12800 09 09 66 43 61 70 74 75 72 69 6e 67 4e 6f 77 3b ..fCapturingNow; 12810 0d 0a 09 44 57 4f 52 44 09 09 64 77 52 65 74 75 ...DWORD..dwRetu 12820 72 6e 3b 0d 0a 09 55 49 4e 54 09 09 77 4e 75 6d rn;...UINT..wNum 12830 56 69 64 65 6f 41 6c 6c 6f 63 61 74 65 64 3b 0d VideoAllocated;. 12840 0a 09 55 49 4e 54 09 09 77 4e 75 6d 41 75 64 69 ..UINT..wNumAudi 12850 6f 41 6c 6c 6f 63 61 74 65 64 3b 0d 0a 7d 0d 0a oAllocated;..}.. 12860 61 6c 69 61 73 20 43 41 50 53 54 41 54 55 53 2a alias CAPSTATUS* 12870 20 50 43 41 50 53 54 41 54 55 53 2c 20 4c 50 43 PCAPSTATUS, LPC 12880 41 50 53 54 41 54 55 53 3b 0d 0a 0d 0a 73 74 72 APSTATUS;....str 12890 75 63 74 20 43 41 50 54 55 52 45 50 41 52 4d 53 uct CAPTUREPARMS 128a0 20 7b 0d 0a 09 44 57 4f 52 44 09 64 77 52 65 71 {...DWORD.dwReq 128b0 75 65 73 74 4d 69 63 72 6f 53 65 63 50 65 72 46 uestMicroSecPerF 128c0 72 61 6d 65 3b 0d 0a 09 42 4f 4f 4c 09 66 4d 61 rame;...BOOL.fMa 128d0 6b 65 55 73 65 72 48 69 74 4f 4b 54 6f 43 61 70 keUserHitOKToCap 128e0 74 75 72 65 3b 0d 0a 09 55 49 4e 54 09 77 50 65 ture;...UINT.wPe 128f0 72 63 65 6e 74 44 72 6f 70 46 6f 72 45 72 72 6f rcentDropForErro 12900 72 3b 0d 0a 09 42 4f 4f 4c 09 66 59 69 65 6c 64 r;...BOOL.fYield 12910 3b 0d 0a 09 44 57 4f 52 44 09 64 77 49 6e 64 65 ;...DWORD.dwInde 12920 78 53 69 7a 65 3b 0d 0a 09 55 49 4e 54 09 77 43 xSize;...UINT.wC 12930 68 75 6e 6b 47 72 61 6e 75 6c 61 72 69 74 79 3b hunkGranularity; 12940 0d 0a 09 42 4f 4f 4c 09 66 55 73 69 6e 67 44 4f ...BOOL.fUsingDO 12950 53 4d 65 6d 6f 72 79 3b 0d 0a 09 55 49 4e 54 09 SMemory;...UINT. 12960 77 4e 75 6d 56 69 64 65 6f 52 65 71 75 65 73 74 wNumVideoRequest 12970 65 64 3b 0d 0a 09 42 4f 4f 4c 09 66 43 61 70 74 ed;...BOOL.fCapt 12980 75 72 65 41 75 64 69 6f 3b 0d 0a 09 55 49 4e 54 ureAudio;...UINT 12990 09 77 4e 75 6d 41 75 64 69 6f 52 65 71 75 65 73 .wNumAudioReques 129a0 74 65 64 3b 0d 0a 09 55 49 4e 54 09 76 4b 65 79 ted;...UINT.vKey 129b0 41 62 6f 72 74 3b 0d 0a 09 42 4f 4f 4c 09 66 41 Abort;...BOOL.fA 129c0 62 6f 72 74 4c 65 66 74 4d 6f 75 73 65 3b 0d 0a bortLeftMouse;.. 129d0 09 42 4f 4f 4c 09 66 41 62 6f 72 74 52 69 67 68 .BOOL.fAbortRigh 129e0 74 4d 6f 75 73 65 3b 0d 0a 09 42 4f 4f 4c 09 66 tMouse;...BOOL.f 129f0 4c 69 6d 69 74 45 6e 61 62 6c 65 64 3b 0d 0a 09 LimitEnabled;... 12a00 55 49 4e 54 09 77 54 69 6d 65 4c 69 6d 69 74 3b UINT.wTimeLimit; 12a10 0d 0a 09 42 4f 4f 4c 09 66 4d 43 49 43 6f 6e 74 ...BOOL.fMCICont 12a20 72 6f 6c 3b 0d 0a 09 42 4f 4f 4c 09 66 53 74 65 rol;...BOOL.fSte 12a30 70 4d 43 49 44 65 76 69 63 65 3b 0d 0a 09 44 57 pMCIDevice;...DW 12a40 4f 52 44 09 64 77 4d 43 49 53 74 61 72 74 54 69 ORD.dwMCIStartTi 12a50 6d 65 3b 0d 0a 09 44 57 4f 52 44 09 64 77 4d 43 me;...DWORD.dwMC 12a60 49 53 74 6f 70 54 69 6d 65 3b 0d 0a 09 42 4f 4f IStopTime;...BOO 12a70 4c 09 66 53 74 65 70 43 61 70 74 75 72 65 41 74 L.fStepCaptureAt 12a80 32 78 3b 0d 0a 09 55 49 4e 54 09 77 53 74 65 70 2x;...UINT.wStep 12a90 43 61 70 74 75 72 65 41 76 65 72 61 67 65 46 72 CaptureAverageFr 12aa0 61 6d 65 73 3b 0d 0a 09 44 57 4f 52 44 09 64 77 ames;...DWORD.dw 12ab0 41 75 64 69 6f 42 75 66 66 65 72 53 69 7a 65 3b AudioBufferSize; 12ac0 0d 0a 09 42 4f 4f 4c 09 66 44 69 73 61 62 6c 65 ...BOOL.fDisable 12ad0 57 72 69 74 65 43 61 63 68 65 3b 0d 0a 09 55 49 WriteCache;...UI 12ae0 4e 54 09 41 56 53 74 72 65 61 6d 4d 61 73 74 65 NT.AVStreamMaste 12af0 72 3b 0d 0a 7d 0d 0a 61 6c 69 61 73 20 43 41 50 r;..}..alias CAP 12b00 54 55 52 45 50 41 52 4d 53 2a 20 50 43 41 50 54 TUREPARMS* PCAPT 12b10 55 52 45 50 41 52 4d 53 2c 20 4c 50 43 41 50 54 UREPARMS, LPCAPT 12b20 55 52 45 50 41 52 4d 53 3b 0d 0a 0d 0a 63 6f 6e UREPARMS;....con 12b30 73 74 20 41 56 53 54 52 45 41 4d 4d 41 53 54 45 st AVSTREAMMASTE 12b40 52 5f 41 55 44 49 4f 20 3d 20 30 3b 0d 0a 63 6f R_AUDIO = 0;..co 12b50 6e 73 74 20 41 56 53 54 52 45 41 4d 4d 41 53 54 nst AVSTREAMMAST 12b60 45 52 5f 4e 4f 4e 45 20 20 3d 20 31 3b 0d 0a 0d ER_NONE = 1;... 12b70 0a 73 74 72 75 63 74 20 43 41 50 49 4e 46 4f 43 .struct CAPINFOC 12b80 48 55 4e 4b 20 7b 0d 0a 09 46 4f 55 52 43 43 09 HUNK {...FOURCC. 12b90 66 63 63 49 6e 66 6f 49 44 3b 0d 0a 09 4c 50 56 fccInfoID;...LPV 12ba0 4f 49 44 09 6c 70 44 61 74 61 3b 0d 0a 09 4c 4f OID.lpData;...LO 12bb0 4e 47 09 63 62 44 61 74 61 3b 0d 0a 7d 0d 0a 61 NG.cbData;..}..a 12bc0 6c 69 61 73 20 43 41 50 49 4e 46 4f 43 48 55 4e lias CAPINFOCHUN 12bd0 4b 2a 20 50 43 41 50 49 4e 46 4f 43 48 55 4e 4b K* PCAPINFOCHUNK 12be0 2c 20 4c 50 43 41 50 49 4e 46 4f 43 48 55 4e 4b , LPCAPINFOCHUNK 12bf0 3b 0d 0a 0d 0a 2f 2f 20 43 61 6c 6c 62 61 63 6b ;....// Callback 12c00 20 44 65 66 69 6e 69 74 69 6f 6e 73 0d 0a 0d 0a Definitions.... 12c10 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73 29 extern (Windows) 12c20 20 7b 0d 0a 09 61 6c 69 61 73 20 4c 52 45 53 55 {...alias LRESU 12c30 4c 54 20 66 75 6e 63 74 69 6f 6e 28 48 57 4e 44 LT function(HWND 12c40 20 68 57 6e 64 29 20 43 41 50 59 49 45 4c 44 43 hWnd) CAPYIELDC 12c50 41 4c 4c 42 41 43 4b 3b 0d 0a 09 61 6c 69 61 73 ALLBACK;...alias 12c60 20 4c 52 45 53 55 4c 54 20 66 75 6e 63 74 69 6f LRESULT functio 12c70 6e 28 48 57 4e 44 20 68 57 6e 64 2c 20 69 6e 74 n(HWND hWnd, int 12c80 20 6e 49 44 2c 20 4c 50 43 57 53 54 52 20 6c 70 nID, LPCWSTR lp 12c90 73 7a 29 20 43 41 50 53 54 41 54 55 53 43 41 4c sz) CAPSTATUSCAL 12ca0 4c 42 41 43 4b 57 3b 0d 0a 09 61 6c 69 61 73 20 LBACKW;...alias 12cb0 4c 52 45 53 55 4c 54 20 66 75 6e 63 74 69 6f 6e LRESULT function 12cc0 28 48 57 4e 44 20 68 57 6e 64 2c 20 69 6e 74 20 (HWND hWnd, int 12cd0 6e 49 44 2c 20 4c 50 43 57 53 54 52 20 6c 70 73 nID, LPCWSTR lps 12ce0 7a 29 20 43 41 50 45 52 52 4f 52 43 41 4c 4c 42 z) CAPERRORCALLB 12cf0 41 43 4b 57 3b 0d 0a 09 61 6c 69 61 73 20 4c 52 ACKW;...alias LR 12d00 45 53 55 4c 54 20 66 75 6e 63 74 69 6f 6e 28 48 ESULT function(H 12d10 57 4e 44 20 68 57 6e 64 2c 20 69 6e 74 20 6e 49 WND hWnd, int nI 12d20 44 2c 20 4c 50 43 53 54 52 20 6c 70 73 7a 29 20 D, LPCSTR lpsz) 12d30 43 41 50 53 54 41 54 55 53 43 41 4c 4c 42 41 43 CAPSTATUSCALLBAC 12d40 4b 41 3b 0d 0a 09 61 6c 69 61 73 20 4c 52 45 53 KA;...alias LRES 12d50 55 4c 54 20 66 75 6e 63 74 69 6f 6e 28 48 57 4e ULT function(HWN 12d60 44 20 68 57 6e 64 2c 20 69 6e 74 20 6e 49 44 2c D hWnd, int nID, 12d70 20 4c 50 43 53 54 52 20 6c 70 73 7a 29 20 43 41 LPCSTR lpsz) CA 12d80 50 45 52 52 4f 52 43 41 4c 4c 42 41 43 4b 41 3b PERRORCALLBACKA; 12d90 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 69 6f 6e 28 55 ..}....version(U 12da0 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61 6c 69 61 nicode) {...alia 12db0 73 20 43 41 50 53 54 41 54 55 53 43 41 4c 4c 42 s CAPSTATUSCALLB 12dc0 41 43 4b 57 09 43 41 50 53 54 41 54 55 53 43 41 ACKW.CAPSTATUSCA 12dd0 4c 4c 42 41 43 4b 3b 0d 0a 09 61 6c 69 61 73 20 LLBACK;...alias 12de0 43 41 50 45 52 52 4f 52 43 41 4c 4c 42 41 43 4b CAPERRORCALLBACK 12df0 57 09 09 43 41 50 45 52 52 4f 52 43 41 4c 4c 42 W..CAPERRORCALLB 12e00 41 43 4b 3b 0d 0a 7d 20 65 6c 73 65 20 7b 20 2f ACK;..} else { / 12e10 2f 20 55 6e 69 63 6f 64 65 0d 0a 09 61 6c 69 61 / Unicode...alia 12e20 73 20 43 41 50 53 54 41 54 55 53 43 41 4c 4c 42 s CAPSTATUSCALLB 12e30 41 43 4b 41 09 43 41 50 53 54 41 54 55 53 43 41 ACKA.CAPSTATUSCA 12e40 4c 4c 42 41 43 4b 3b 0d 0a 09 61 6c 69 61 73 20 LLBACK;...alias 12e50 43 41 50 45 52 52 4f 52 43 41 4c 4c 42 41 43 4b CAPERRORCALLBACK 12e60 41 09 09 43 41 50 45 52 52 4f 52 43 41 4c 4c 42 A..CAPERRORCALLB 12e70 41 43 4b 3b 0d 0a 7d 0d 0a 0d 0a 65 78 74 65 72 ACK;..}....exter 12e80 6e 20 28 57 69 6e 64 6f 77 73 29 20 7b 0d 0a 09 n (Windows) {... 12e90 61 6c 69 61 73 20 4c 52 45 53 55 4c 54 20 66 75 alias LRESULT fu 12ea0 6e 63 74 69 6f 6e 28 48 57 4e 44 20 68 57 6e 64 nction(HWND hWnd 12eb0 2c 20 4c 50 56 49 44 45 4f 48 44 52 20 6c 70 56 , LPVIDEOHDR lpV 12ec0 48 64 72 29 20 43 41 50 56 49 44 45 4f 43 41 4c Hdr) CAPVIDEOCAL 12ed0 4c 42 41 43 4b 3b 0d 0a 09 61 6c 69 61 73 20 4c LBACK;...alias L 12ee0 52 45 53 55 4c 54 20 66 75 6e 63 74 69 6f 6e 28 RESULT function( 12ef0 48 57 4e 44 20 68 57 6e 64 2c 20 4c 50 57 41 56 HWND hWnd, LPWAV 12f00 45 48 44 52 20 6c 70 57 48 64 72 29 20 43 41 50 EHDR lpWHdr) CAP 12f10 57 41 56 45 43 41 4c 4c 42 41 43 4b 3b 0d 0a 09 WAVECALLBACK;... 12f20 61 6c 69 61 73 20 4c 52 45 53 55 4c 54 20 66 75 alias LRESULT fu 12f30 6e 63 74 69 6f 6e 28 48 57 4e 44 20 68 57 6e 64 nction(HWND hWnd 12f40 2c 20 69 6e 74 20 6e 53 74 61 74 65 29 20 43 41 , int nState) CA 12f50 50 43 4f 4e 54 52 4f 4c 43 41 4c 4c 42 41 43 4b PCONTROLCALLBACK 12f60 3b 0d 0a 7d 0d 0a 0d 0a 2f 2f 20 20 43 61 70 43 ;..}....// CapC 12f70 6f 6e 74 72 6f 6c 43 61 6c 6c 62 61 63 6b 20 73 ontrolCallback s 12f80 74 61 74 65 73 0d 0a 63 6f 6e 73 74 20 43 4f 4e tates..const CON 12f90 54 52 4f 4c 43 41 4c 4c 42 41 43 4b 5f 50 52 45 TROLCALLBACK_PRE 12fa0 52 4f 4c 4c 09 3d 20 31 3b 0d 0a 63 6f 6e 73 74 ROLL.= 1;..const 12fb0 20 43 4f 4e 54 52 4f 4c 43 41 4c 4c 42 41 43 4b CONTROLCALLBACK 12fc0 5f 43 41 50 54 55 52 49 4e 47 09 3d 20 32 3b 0d _CAPTURING.= 2;. 12fd0 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e 64 6f ...extern (Windo 12fe0 77 73 29 20 7b 0d 0a 09 48 57 4e 44 20 63 61 70 ws) {...HWND cap 12ff0 43 72 65 61 74 65 43 61 70 74 75 72 65 57 69 6e CreateCaptureWin 13000 64 6f 77 41 28 4c 50 43 53 54 52 20 6c 70 73 7a dowA(LPCSTR lpsz 13010 57 69 6e 64 6f 77 4e 61 6d 65 2c 20 44 57 4f 52 WindowName, DWOR 13020 44 20 64 77 53 74 79 6c 65 2c 20 69 6e 74 20 78 D dwStyle, int x 13030 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 6e 57 69 , int y, int nWi 13040 64 74 68 2c 20 69 6e 74 20 6e 48 65 69 67 68 74 dth, int nHeight 13050 2c 20 48 57 4e 44 20 68 77 6e 64 50 61 72 65 6e , HWND hwndParen 13060 74 2c 20 69 6e 74 20 6e 49 44 29 3b 0d 0a 09 42 t, int nID);...B 13070 4f 4f 4c 20 63 61 70 47 65 74 44 72 69 76 65 72 OOL capGetDriver 13080 44 65 73 63 72 69 70 74 69 6f 6e 41 28 55 49 4e DescriptionA(UIN 13090 54 20 77 44 72 69 76 65 72 49 6e 64 65 78 2c 20 T wDriverIndex, 130a0 4c 50 53 54 52 20 6c 70 73 7a 4e 61 6d 65 2c 20 LPSTR lpszName, 130b0 69 6e 74 20 63 62 4e 61 6d 65 2c 20 4c 50 53 54 int cbName, LPST 130c0 52 20 6c 70 73 7a 56 65 72 2c 20 69 6e 74 20 63 R lpszVer, int c 130d0 62 56 65 72 29 3b 0d 0a 09 48 57 4e 44 20 63 61 bVer);...HWND ca 130e0 70 43 72 65 61 74 65 43 61 70 74 75 72 65 57 69 pCreateCaptureWi 130f0 6e 64 6f 77 57 28 4c 50 43 57 53 54 52 20 6c 70 ndowW(LPCWSTR lp 13100 73 7a 57 69 6e 64 6f 77 4e 61 6d 65 2c 20 44 57 szWindowName, DW 13110 4f 52 44 20 64 77 53 74 79 6c 65 2c 20 69 6e 74 ORD dwStyle, int 13120 20 78 2c 20 69 6e 74 20 79 2c 20 69 6e 74 20 6e x, int y, int n 13130 57 69 64 74 68 2c 20 69 6e 74 20 6e 48 65 69 67 Width, int nHeig 13140 68 74 2c 20 48 57 4e 44 20 68 77 6e 64 50 61 72 ht, HWND hwndPar 13150 65 6e 74 2c 20 69 6e 74 20 6e 49 44 29 3b 0d 0a ent, int nID);.. 13160 09 42 4f 4f 4c 20 63 61 70 47 65 74 44 72 69 76 .BOOL capGetDriv 13170 65 72 44 65 73 63 72 69 70 74 69 6f 6e 57 28 55 erDescriptionW(U 13180 49 4e 54 20 77 44 72 69 76 65 72 49 6e 64 65 78 INT wDriverIndex 13190 2c 20 4c 50 57 53 54 52 20 6c 70 73 7a 4e 61 6d , LPWSTR lpszNam 131a0 65 2c 20 69 6e 74 20 63 62 4e 61 6d 65 2c 20 4c e, int cbName, L 131b0 50 57 53 54 52 20 6c 70 73 7a 56 65 72 2c 20 69 PWSTR lpszVer, i 131c0 6e 74 20 63 62 56 65 72 29 3b 0d 0a 7d 0d 0a 0d nt cbVer);..}... 131d0 0a 76 65 72 73 69 6f 6e 28 55 6e 69 63 6f 64 65 .version(Unicode 131e0 29 20 7b 0d 0a 09 61 6c 69 61 73 20 63 61 70 43 ) {...alias capC 131f0 72 65 61 74 65 43 61 70 74 75 72 65 57 69 6e 64 reateCaptureWind 13200 6f 77 57 09 63 61 70 43 72 65 61 74 65 43 61 70 owW.capCreateCap 13210 74 75 72 65 57 69 6e 64 6f 77 3b 0d 0a 09 61 6c tureWindow;...al 13220 69 61 73 20 63 61 70 47 65 74 44 72 69 76 65 72 ias capGetDriver 13230 44 65 73 63 72 69 70 74 69 6f 6e 57 09 63 61 70 DescriptionW.cap 13240 47 65 74 44 72 69 76 65 72 44 65 73 63 72 69 70 GetDriverDescrip 13250 74 69 6f 6e 3b 0d 0a 7d 20 65 6c 73 65 20 7b 20 tion;..} else { 13260 2f 2f 20 55 6e 69 63 6f 64 65 0d 0a 09 61 6c 69 // Unicode...ali 13270 61 73 20 63 61 70 43 72 65 61 74 65 43 61 70 74 as capCreateCapt 13280 75 72 65 57 69 6e 64 6f 77 41 09 63 61 70 43 72 ureWindowA.capCr 13290 65 61 74 65 43 61 70 74 75 72 65 57 69 6e 64 6f eateCaptureWindo 132a0 77 3b 0d 0a 09 61 6c 69 61 73 20 63 61 70 47 65 w;...alias capGe 132b0 74 44 72 69 76 65 72 44 65 73 63 72 69 70 74 69 tDriverDescripti 132c0 6f 6e 41 09 63 61 70 47 65 74 44 72 69 76 65 72 onA.capGetDriver 132d0 44 65 73 63 72 69 70 74 69 6f 6e 3b 0d 0a 7d 0d Description;..}. 132e0 0a 0d 0a 2f 2f 20 4e 65 77 20 49 6e 66 6f 72 6d ...// New Inform 132f0 61 74 69 6f 6e 20 63 68 75 6e 6b 20 49 44 73 0d ation chunk IDs. 13300 0a 63 6f 6e 73 74 20 69 6e 66 6f 74 79 70 65 44 .const infotypeD 13310 49 47 49 54 49 5a 41 54 49 4f 4e 5f 54 49 4d 45 IGITIZATION_TIME 13320 09 3d 20 6d 6d 69 6f 46 4f 55 52 43 43 21 28 27 .= mmioFOURCC!(' 13330 49 27 2c 20 27 44 27 2c 20 27 49 27 2c 20 27 54 I', 'D', 'I', 'T 13340 27 29 3b 0d 0a 63 6f 6e 73 74 20 69 6e 66 6f 74 ');..const infot 13350 79 70 65 53 4d 50 54 45 5f 54 49 4d 45 09 09 3d ypeSMPTE_TIME..= 13360 20 6d 6d 69 6f 46 4f 55 52 43 43 21 28 27 49 27 mmioFOURCC!('I' 13370 2c 20 27 53 27 2c 20 27 4d 27 2c 20 27 50 27 29 , 'S', 'M', 'P') 13380 3b 0d 0a 0d 0a 2f 2f 20 73 74 61 74 75 73 20 61 ;....// status a 13390 6e 64 20 65 72 72 6f 72 20 63 61 6c 6c 62 61 63 nd error callbac 133a0 6b 73 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 49 44 53 ks..enum {...IDS 133b0 5f 43 41 50 5f 42 45 47 49 4e 09 09 09 09 09 3d _CAP_BEGIN.....= 133c0 20 33 30 30 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 300,...IDS_CAP_ 133d0 45 4e 44 09 09 09 09 09 09 3d 20 33 30 31 2c 0d END......= 301,. 133e0 0a 0d 0a 09 49 44 53 5f 43 41 50 5f 49 4e 46 4f ....IDS_CAP_INFO 133f0 09 09 09 09 09 3d 20 34 30 31 2c 0d 0a 09 49 44 .....= 401,...ID 13400 53 5f 43 41 50 5f 4f 55 54 4f 46 4d 45 4d 09 09 S_CAP_OUTOFMEM.. 13410 09 09 3d 20 34 30 32 2c 0d 0a 09 49 44 53 5f 43 ..= 402,...IDS_C 13420 41 50 5f 46 49 4c 45 45 58 49 53 54 53 09 09 09 AP_FILEEXISTS... 13430 09 3d 20 34 30 33 2c 0d 0a 09 49 44 53 5f 43 41 .= 403,...IDS_CA 13440 50 5f 45 52 52 4f 52 50 41 4c 4f 50 45 4e 09 09 P_ERRORPALOPEN.. 13450 09 3d 20 34 30 34 2c 0d 0a 09 49 44 53 5f 43 41 .= 404,...IDS_CA 13460 50 5f 45 52 52 4f 52 50 41 4c 53 41 56 45 09 09 P_ERRORPALSAVE.. 13470 09 3d 20 34 30 35 2c 0d 0a 09 49 44 53 5f 43 41 .= 405,...IDS_CA 13480 50 5f 45 52 52 4f 52 44 49 42 53 41 56 45 09 09 P_ERRORDIBSAVE.. 13490 09 3d 20 34 30 36 2c 0d 0a 09 49 44 53 5f 43 41 .= 406,...IDS_CA 134a0 50 5f 44 45 46 41 56 49 45 58 54 09 09 09 09 3d P_DEFAVIEXT....= 134b0 20 34 30 37 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 407,...IDS_CAP_ 134c0 44 45 46 50 41 4c 45 58 54 09 09 09 09 3d 20 34 DEFPALEXT....= 4 134d0 30 38 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 43 41 08,...IDS_CAP_CA 134e0 4e 54 4f 50 45 4e 09 09 09 09 3d 20 34 30 39 2c NTOPEN....= 409, 134f0 0d 0a 09 49 44 53 5f 43 41 50 5f 53 45 51 5f 4d ...IDS_CAP_SEQ_M 13500 53 47 53 54 41 52 54 09 09 09 3d 20 34 31 30 2c SGSTART...= 410, 13510 0d 0a 09 49 44 53 5f 43 41 50 5f 53 45 51 5f 4d ...IDS_CAP_SEQ_M 13520 53 47 53 54 4f 50 09 09 09 09 3d 20 34 31 31 2c SGSTOP....= 411, 13530 0d 0a 0d 0a 09 49 44 53 5f 43 41 50 5f 56 49 44 .....IDS_CAP_VID 13540 45 44 49 54 45 52 52 09 09 09 09 3d 20 34 31 32 EDITERR....= 412 13550 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 52 45 41 44 ,...IDS_CAP_READ 13560 4f 4e 4c 59 46 49 4c 45 09 09 09 3d 20 34 31 33 ONLYFILE...= 413 13570 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 57 52 49 54 ,...IDS_CAP_WRIT 13580 45 45 52 52 4f 52 09 09 09 09 3d 20 34 31 34 2c EERROR....= 414, 13590 0d 0a 09 49 44 53 5f 43 41 50 5f 4e 4f 44 49 53 ...IDS_CAP_NODIS 135a0 4b 53 50 41 43 45 09 09 09 09 3d 20 34 31 35 2c KSPACE....= 415, 135b0 0d 0a 09 49 44 53 5f 43 41 50 5f 53 45 54 46 49 ...IDS_CAP_SETFI 135c0 4c 45 53 49 5a 45 09 09 09 09 3d 20 34 31 36 2c LESIZE....= 416, 135d0 0d 0a 09 49 44 53 5f 43 41 50 5f 53 41 56 45 41 ...IDS_CAP_SAVEA 135e0 53 50 45 52 43 45 4e 54 09 09 09 3d 20 34 31 37 SPERCENT...= 417 135f0 2c 0d 0a 0d 0a 09 49 44 53 5f 43 41 50 5f 44 52 ,.....IDS_CAP_DR 13600 49 56 45 52 5f 45 52 52 4f 52 09 09 09 3d 20 34 IVER_ERROR...= 4 13610 31 38 2c 0d 0a 0d 0a 09 49 44 53 5f 43 41 50 5f 18,.....IDS_CAP_ 13620 57 41 56 45 5f 4f 50 45 4e 5f 45 52 52 4f 52 09 WAVE_OPEN_ERROR. 13630 09 09 3d 20 34 31 39 2c 0d 0a 09 49 44 53 5f 43 ..= 419,...IDS_C 13640 41 50 5f 57 41 56 45 5f 41 4c 4c 4f 43 5f 45 52 AP_WAVE_ALLOC_ER 13650 52 4f 52 09 09 3d 20 34 32 30 2c 0d 0a 09 49 44 ROR..= 420,...ID 13660 53 5f 43 41 50 5f 57 41 56 45 5f 50 52 45 50 41 S_CAP_WAVE_PREPA 13670 52 45 5f 45 52 52 4f 52 09 09 3d 20 34 32 31 2c RE_ERROR..= 421, 13680 0d 0a 09 49 44 53 5f 43 41 50 5f 57 41 56 45 5f ...IDS_CAP_WAVE_ 13690 41 44 44 5f 45 52 52 4f 52 09 09 09 3d 20 34 32 ADD_ERROR...= 42 136a0 32 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 57 41 56 2,...IDS_CAP_WAV 136b0 45 5f 53 49 5a 45 5f 45 52 52 4f 52 09 09 09 3d E_SIZE_ERROR...= 136c0 20 34 32 33 2c 0d 0a 0d 0a 09 49 44 53 5f 43 41 423,.....IDS_CA 136d0 50 5f 56 49 44 45 4f 5f 4f 50 45 4e 5f 45 52 52 P_VIDEO_OPEN_ERR 136e0 4f 52 09 09 3d 20 34 32 34 2c 0d 0a 09 49 44 53 OR..= 424,...IDS 136f0 5f 43 41 50 5f 56 49 44 45 4f 5f 41 4c 4c 4f 43 _CAP_VIDEO_ALLOC 13700 5f 45 52 52 4f 52 09 09 3d 20 34 32 35 2c 0d 0a _ERROR..= 425,.. 13710 09 49 44 53 5f 43 41 50 5f 56 49 44 45 4f 5f 50 .IDS_CAP_VIDEO_P 13720 52 45 50 41 52 45 5f 45 52 52 4f 52 09 09 3d 20 REPARE_ERROR..= 13730 34 32 36 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 56 426,...IDS_CAP_V 13740 49 44 45 4f 5f 41 44 44 5f 45 52 52 4f 52 09 09 IDEO_ADD_ERROR.. 13750 09 3d 20 34 32 37 2c 0d 0a 09 49 44 53 5f 43 41 .= 427,...IDS_CA 13760 50 5f 56 49 44 45 4f 5f 53 49 5a 45 5f 45 52 52 P_VIDEO_SIZE_ERR 13770 4f 52 09 09 3d 20 34 32 38 2c 0d 0a 0d 0a 09 49 OR..= 428,.....I 13780 44 53 5f 43 41 50 5f 46 49 4c 45 5f 4f 50 45 4e DS_CAP_FILE_OPEN 13790 5f 45 52 52 4f 52 09 09 09 3d 20 34 32 39 2c 0d _ERROR...= 429,. 137a0 0a 09 49 44 53 5f 43 41 50 5f 46 49 4c 45 5f 57 ..IDS_CAP_FILE_W 137b0 52 49 54 45 5f 45 52 52 4f 52 09 09 3d 20 34 33 RITE_ERROR..= 43 137c0 30 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 52 45 43 0,...IDS_CAP_REC 137d0 4f 52 44 49 4e 47 5f 45 52 52 4f 52 09 09 09 3d ORDING_ERROR...= 137e0 20 34 33 31 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 431,...IDS_CAP_ 137f0 52 45 43 4f 52 44 49 4e 47 5f 45 52 52 4f 52 32 RECORDING_ERROR2 13800 09 09 3d 20 34 33 32 2c 0d 0a 09 49 44 53 5f 43 ..= 432,...IDS_C 13810 41 50 5f 41 56 49 5f 49 4e 49 54 5f 45 52 52 4f AP_AVI_INIT_ERRO 13820 52 09 09 09 3d 20 34 33 33 2c 0d 0a 09 49 44 53 R...= 433,...IDS 13830 5f 43 41 50 5f 4e 4f 5f 46 52 41 4d 45 5f 43 41 _CAP_NO_FRAME_CA 13840 50 5f 45 52 52 4f 52 09 09 3d 20 34 33 34 2c 0d P_ERROR..= 434,. 13850 0a 09 49 44 53 5f 43 41 50 5f 4e 4f 5f 50 41 4c ..IDS_CAP_NO_PAL 13860 45 54 54 45 5f 57 41 52 4e 09 09 09 3d 20 34 33 ETTE_WARN...= 43 13870 35 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 4d 43 49 5,...IDS_CAP_MCI 13880 5f 43 4f 4e 54 52 4f 4c 5f 45 52 52 4f 52 09 09 _CONTROL_ERROR.. 13890 3d 20 34 33 36 2c 0d 0a 09 49 44 53 5f 43 41 50 = 436,...IDS_CAP 138a0 5f 4d 43 49 5f 43 41 4e 54 5f 53 54 45 50 5f 45 _MCI_CANT_STEP_E 138b0 52 52 4f 52 09 09 3d 20 34 33 37 2c 0d 0a 09 49 RROR..= 437,...I 138c0 44 53 5f 43 41 50 5f 4e 4f 5f 41 55 44 49 4f 5f DS_CAP_NO_AUDIO_ 138d0 43 41 50 5f 45 52 52 4f 52 09 09 3d 20 34 33 38 CAP_ERROR..= 438 138e0 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 41 56 49 5f ,...IDS_CAP_AVI_ 138f0 44 52 41 57 44 49 42 5f 45 52 52 4f 52 09 09 3d DRAWDIB_ERROR..= 13900 20 34 33 39 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 439,...IDS_CAP_ 13910 43 4f 4d 50 52 45 53 53 4f 52 5f 45 52 52 4f 52 COMPRESSOR_ERROR 13920 09 09 3d 20 34 34 30 2c 0d 0a 09 49 44 53 5f 43 ..= 440,...IDS_C 13930 41 50 5f 41 55 44 49 4f 5f 44 52 4f 50 5f 45 52 AP_AUDIO_DROP_ER 13940 52 4f 52 09 09 3d 20 34 34 31 2c 0d 0a 09 49 44 ROR..= 441,...ID 13950 53 5f 43 41 50 5f 41 55 44 49 4f 5f 44 52 4f 50 S_CAP_AUDIO_DROP 13960 5f 43 4f 4d 50 45 52 52 4f 52 09 3d 20 34 34 32 _COMPERROR.= 442 13970 2c 0d 0a 0d 0a 09 49 44 53 5f 43 41 50 5f 53 54 ,.....IDS_CAP_ST 13980 41 54 5f 4c 49 56 45 5f 4d 4f 44 45 09 09 09 3d AT_LIVE_MODE...= 13990 20 35 30 30 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 500,...IDS_CAP_ 139a0 53 54 41 54 5f 4f 56 45 52 4c 41 59 5f 4d 4f 44 STAT_OVERLAY_MOD 139b0 45 09 09 3d 20 35 30 31 2c 0d 0a 09 49 44 53 5f E..= 501,...IDS_ 139c0 43 41 50 5f 53 54 41 54 5f 43 41 50 5f 49 4e 49 CAP_STAT_CAP_INI 139d0 54 09 09 09 3d 20 35 30 32 2c 0d 0a 09 49 44 53 T...= 502,...IDS 139e0 5f 43 41 50 5f 53 54 41 54 5f 43 41 50 5f 46 49 _CAP_STAT_CAP_FI 139f0 4e 49 09 09 09 3d 20 35 30 33 2c 0d 0a 09 49 44 NI...= 503,...ID 13a00 53 5f 43 41 50 5f 53 54 41 54 5f 50 41 4c 45 54 S_CAP_STAT_PALET 13a10 54 45 5f 42 55 49 4c 44 09 09 3d 20 35 30 34 2c TE_BUILD..= 504, 13a20 0d 0a 09 49 44 53 5f 43 41 50 5f 53 54 41 54 5f ...IDS_CAP_STAT_ 13a30 4f 50 54 50 41 4c 5f 42 55 49 4c 44 09 09 3d 20 OPTPAL_BUILD..= 13a40 35 30 35 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 53 505,...IDS_CAP_S 13a50 54 41 54 5f 49 5f 46 52 41 4d 45 53 09 09 09 3d TAT_I_FRAMES...= 13a60 20 35 30 36 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 506,...IDS_CAP_ 13a70 53 54 41 54 5f 4c 5f 46 52 41 4d 45 53 09 09 09 STAT_L_FRAMES... 13a80 3d 20 35 30 37 2c 0d 0a 09 49 44 53 5f 43 41 50 = 507,...IDS_CAP 13a90 5f 53 54 41 54 5f 43 41 50 5f 4c 5f 46 52 41 4d _STAT_CAP_L_FRAM 13aa0 45 53 09 09 3d 20 35 30 38 2c 0d 0a 09 49 44 53 ES..= 508,...IDS 13ab0 5f 43 41 50 5f 53 54 41 54 5f 43 41 50 5f 41 55 _CAP_STAT_CAP_AU 13ac0 44 49 4f 09 09 09 3d 20 35 30 39 2c 0d 0a 09 49 DIO...= 509,...I 13ad0 44 53 5f 43 41 50 5f 53 54 41 54 5f 56 49 44 45 DS_CAP_STAT_VIDE 13ae0 4f 43 55 52 52 45 4e 54 09 09 3d 20 35 31 30 2c OCURRENT..= 510, 13af0 0d 0a 09 49 44 53 5f 43 41 50 5f 53 54 41 54 5f ...IDS_CAP_STAT_ 13b00 56 49 44 45 4f 41 55 44 49 4f 09 09 09 3d 20 35 VIDEOAUDIO...= 5 13b10 31 31 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 53 54 11,...IDS_CAP_ST 13b20 41 54 5f 56 49 44 45 4f 4f 4e 4c 59 09 09 09 3d AT_VIDEOONLY...= 13b30 20 35 31 32 2c 0d 0a 09 49 44 53 5f 43 41 50 5f 512,...IDS_CAP_ 13b40 53 54 41 54 5f 46 52 41 4d 45 53 44 52 4f 50 50 STAT_FRAMESDROPP 13b50 45 44 09 09 3d 20 35 31 33 2c 0d 0a 7d 0d 0a 0d ED..= 513,..}... 13b60 0a 2f 2a 2a 0d 0a 20 2a 20 46 69 6c 65 50 72 65 ./**.. * FilePre 13b70 76 69 65 77 20 64 69 61 6c 6f 67 2e 0d 0a 20 2a view dialog... * 13b80 2f 0d 0a 0d 0a 65 78 74 65 72 6e 20 28 57 69 6e /....extern (Win 13b90 64 6f 77 73 29 20 7b 0d 0a 09 42 4f 4f 4c 20 47 dows) {...BOOL G 13ba0 65 74 4f 70 65 6e 46 69 6c 65 4e 61 6d 65 50 72 etOpenFileNamePr 13bb0 65 76 69 65 77 41 28 4c 50 4f 50 45 4e 46 49 4c eviewA(LPOPENFIL 13bc0 45 4e 41 4d 45 41 20 6c 70 6f 66 6e 29 3b 0d 0a ENAMEA lpofn);.. 13bd0 09 42 4f 4f 4c 20 47 65 74 53 61 76 65 46 69 6c .BOOL GetSaveFil 13be0 65 4e 61 6d 65 50 72 65 76 69 65 77 41 28 4c 50 eNamePreviewA(LP 13bf0 4f 50 45 4e 46 49 4c 45 4e 41 4d 45 41 20 6c 70 OPENFILENAMEA lp 13c00 6f 66 6e 29 3b 0d 0a 09 42 4f 4f 4c 20 47 65 74 ofn);...BOOL Get 13c10 4f 70 65 6e 46 69 6c 65 4e 61 6d 65 50 72 65 76 OpenFileNamePrev 13c20 69 65 77 57 28 4c 50 4f 50 45 4e 46 49 4c 45 4e iewW(LPOPENFILEN 13c30 41 4d 45 57 20 6c 70 6f 66 6e 29 3b 0d 0a 09 42 AMEW lpofn);...B 13c40 4f 4f 4c 20 47 65 74 53 61 76 65 46 69 6c 65 4e OOL GetSaveFileN 13c50 61 6d 65 50 72 65 76 69 65 77 57 28 4c 50 4f 50 amePreviewW(LPOP 13c60 45 4e 46 49 4c 45 4e 41 4d 45 57 20 6c 70 6f 66 ENFILENAMEW lpof 13c70 6e 29 3b 0d 0a 7d 0d 0a 0d 0a 76 65 72 73 69 6f n);..}....versio 13c80 6e 28 55 6e 69 63 6f 64 65 29 20 7b 0d 0a 09 61 n(Unicode) {...a 13c90 6c 69 61 73 20 47 65 74 4f 70 65 6e 46 69 6c 65 lias GetOpenFile 13ca0 4e 61 6d 65 50 72 65 76 69 65 77 57 09 47 65 74 NamePreviewW.Get 13cb0 4f 70 65 6e 46 69 6c 65 4e 61 6d 65 50 72 65 76 OpenFileNamePrev 13cc0 69 65 77 3b 0d 0a 09 61 6c 69 61 73 20 47 65 74 iew;...alias Get 13cd0 53 61 76 65 46 69 6c 65 4e 61 6d 65 50 72 65 76 SaveFileNamePrev 13ce0 69 65 77 57 09 47 65 74 53 61 76 65 46 69 6c 65 iewW.GetSaveFile 13cf0 4e 61 6d 65 50 72 65 76 69 65 77 3b 0d 0a 7d 20 NamePreview;..} 13d00 65 6c 73 65 20 7b 20 2f 2f 20 55 6e 69 63 6f 64 else { // Unicod 13d10 65 0d 0a 09 61 6c 69 61 73 20 47 65 74 4f 70 65 e...alias GetOpe 13d20 6e 46 69 6c 65 4e 61 6d 65 50 72 65 76 69 65 77 nFileNamePreview 13d30 41 09 47 65 74 4f 70 65 6e 46 69 6c 65 4e 61 6d A.GetOpenFileNam 13d40 65 50 72 65 76 69 65 77 3b 0d 0a 09 61 6c 69 61 ePreview;...alia 13d50 73 20 47 65 74 53 61 76 65 46 69 6c 65 4e 61 6d s GetSaveFileNam 13d60 65 50 72 65 76 69 65 77 41 09 47 65 74 53 61 76 ePreviewA.GetSav 13d70 65 46 69 6c 65 4e 61 6d 65 50 72 65 76 69 65 77 eFileNamePreview 13d80 3b 0d 0a 7d ;..}