Hex Artifact Content

Not logged in

Artifact 754e428e88f168dc9ba90e01b3aae74c507ebf49:


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                                      ;..}