Hex Artifact Content

Not logged in

Artifact 0c3b20b2cde333d2e642de9b5b81375a8613711c:


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 0a 2a 20 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 6d 73 61 63 6d             msacm
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 2a 0a 2a 20 20 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 2a 0a 2a 20              *.* 
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00f0: 20 20 20 20 20 20 57 69 6e 64 6f 77 73 20 41 50        Windows AP
0100: 49 20 68 65 61 64 65 72 20 6d 6f 64 75 6c 65 20  I header module 
0110: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0120: 20 20 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20        *.*       
0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0170: 2a 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20  *.*             
0180: 20 20 20 20 54 72 61 6e 73 6c 61 74 65 64 20 66      Translated f
0190: 72 6f 6d 20 4d 69 6e 47 57 20 57 69 6e 64 6f 77  rom MinGW Window
01a0: 73 20 68 65 61 64 65 72 73 20 20 20 20 20 20 20  s headers       
01b0: 20 20 20 20 20 20 20 20 20 20 2a 0a 2a 20 20 20            *.*   
01c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
01d0: 20 20 20 20 20 20 20 20 62 79 20 53 74 65 77 61          by Stewa
01e0: 72 74 20 47 6f 72 64 6f 6e 20 20 20 20 20 20 20  rt Gordon       
01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0200: 20 20 20 20 2a 0a 2a 20 20 20 20 20 20 20 20 20      *.*         
0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0220: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0230: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0a                *.
0250: 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  *               
0260: 20 20 20 20 20 20 20 20 50 6c 61 63 65 64 20 69          Placed i
0270: 6e 74 6f 20 70 75 62 6c 69 63 20 64 6f 6d 61 69  nto public domai
0280: 6e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20  n               
0290: 20 20 20 20 20 20 20 20 2a 0a 5c 2a 2a 2a 2a 2a          *.\*****
02a0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02b0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02c0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02d0: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a  ****************
02e0: 2a 2a 2f 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32  **/.module win32
02f0: 2e 6d 73 61 63 6d 3b 0a 0a 70 72 69 76 61 74 65  .msacm;..private
0300: 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 2e 62 61   import win32.ba
0310: 73 65 74 73 64 2c 20 77 69 6e 33 32 2e 6d 6d 73  setsd, win32.mms
0320: 79 73 74 65 6d 2c 20 77 69 6e 33 32 2e 77 69 6e  ystem, win32.win
0330: 64 65 66 3b 0a 0a 61 6c 69 61 73 20 48 41 4e 44  def;..alias HAND
0340: 4c 45 20 48 41 43 4d 44 52 49 56 45 52 49 44 2c  LE HACMDRIVERID,
0350: 20 48 41 43 4d 44 52 49 56 45 52 3b 0a 61 6c 69   HACMDRIVER;.ali
0360: 61 73 20 48 41 4e 44 4c 45 2a 20 4c 50 48 41 43  as HANDLE* LPHAC
0370: 4d 44 52 49 56 45 52 3b 0a 0a 2f 2a 20 43 6f 6d  MDRIVER;../* Com
0380: 6d 65 6e 74 20 66 72 6f 6d 20 4d 69 6e 47 57 0a  ment from MinGW.
0390: 09 66 6f 75 6e 64 20 74 68 72 6f 75 67 68 20 65  .found through e
03a0: 78 70 65 72 69 6d 65 6e 74 61 74 69 6f 6e 0a 20  xperimentation. 
03b0: 2a 2f 0a 63 6f 6e 73 74 20 73 69 7a 65 5f 74 0a  */.const size_t.
03c0: 09 41 43 4d 44 52 49 56 45 52 44 45 54 41 49 4c  .ACMDRIVERDETAIL
03d0: 53 5f 53 48 4f 52 54 4e 41 4d 45 5f 43 48 41 52  S_SHORTNAME_CHAR
03e0: 53 20 3d 20 20 33 32 2c 0a 09 41 43 4d 44 52 49  S =  32,..ACMDRI
03f0: 56 45 52 44 45 54 41 49 4c 53 5f 4c 4f 4e 47 4e  VERDETAILS_LONGN
0400: 41 4d 45 5f 43 48 41 52 53 20 20 3d 20 31 32 38  AME_CHARS  = 128
0410: 2c 0a 09 41 43 4d 44 52 49 56 45 52 44 45 54 41  ,..ACMDRIVERDETA
0420: 49 4c 53 5f 43 4f 50 59 52 49 47 48 54 5f 43 48  ILS_COPYRIGHT_CH
0430: 41 52 53 20 3d 20 20 38 30 2c 0a 09 41 43 4d 44  ARS =  80,..ACMD
0440: 52 49 56 45 52 44 45 54 41 49 4c 53 5f 4c 49 43  RIVERDETAILS_LIC
0450: 45 4e 53 49 4e 47 5f 43 48 41 52 53 20 3d 20 31  ENSING_CHARS = 1
0460: 32 38 3b 0a 0a 2f 2a 20 43 6f 6d 6d 65 6e 74 20  28;../* Comment 
0470: 66 72 6f 6d 20 4d 69 6e 47 57 0a 09 49 20 64 6f  from MinGW..I do
0480: 6e 27 74 20 6b 6e 6f 77 20 74 68 65 20 72 69 67  n't know the rig
0490: 68 74 20 76 61 6c 75 65 73 20 66 6f 72 20 74 68  ht values for th
04a0: 65 73 65 20 6d 61 63 72 6f 73 0a 20 2a 2f 0a 63  ese macros. */.c
04b0: 6f 6e 73 74 20 73 69 7a 65 5f 74 0a 09 41 43 4d  onst size_t..ACM
04c0: 46 4f 52 4d 41 54 44 45 54 41 49 4c 53 5f 46 4f  FORMATDETAILS_FO
04d0: 52 4d 41 54 5f 43 48 41 52 53 20 20 20 20 20 20  RMAT_CHARS      
04e0: 20 3d 20 32 35 36 2c 0a 09 41 43 4d 46 4f 52 4d   = 256,..ACMFORM
04f0: 41 54 54 41 47 44 45 54 41 49 4c 53 5f 46 4f 52  ATTAGDETAILS_FOR
0500: 4d 41 54 54 41 47 5f 43 48 41 52 53 20 3d 20 32  MATTAG_CHARS = 2
0510: 35 36 2c 0a 09 41 43 4d 44 52 49 56 45 52 44 45  56,..ACMDRIVERDE
0520: 54 41 49 4c 53 5f 46 45 41 54 55 52 45 53 5f 43  TAILS_FEATURES_C
0530: 48 41 52 53 20 20 20 20 20 3d 20 32 35 36 3b 0a  HARS     = 256;.
0540: 0a 73 74 72 75 63 74 20 41 43 4d 46 4f 52 4d 41  .struct ACMFORMA
0550: 54 44 45 54 41 49 4c 53 41 20 7b 0a 09 44 57 4f  TDETAILSA {..DWO
0560: 52 44 20 20 20 20 20 20 20 20 20 20 63 62 53 74  RD          cbSt
0570: 72 75 63 74 20 3d 20 41 43 4d 46 4f 52 4d 41 54  ruct = ACMFORMAT
0580: 44 45 54 41 49 4c 53 41 2e 73 69 7a 65 6f 66 3b  DETAILSA.sizeof;
0590: 20 20 2f 2f 20 61 72 65 20 74 68 65 79 3f 0a 09    // are they?..
05a0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 64  DWORD          d
05b0: 77 46 6f 72 6d 61 74 49 6e 64 65 78 3b 0a 09 44  wFormatIndex;..D
05c0: 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 64 77  WORD          dw
05d0: 46 6f 72 6d 61 74 54 61 67 3b 0a 09 44 57 4f 52  FormatTag;..DWOR
05e0: 44 20 20 20 20 20 20 20 20 20 20 66 64 77 53 75  D          fdwSu
05f0: 70 70 6f 72 74 3b 0a 09 4c 50 57 41 56 45 46 4f  pport;..LPWAVEFO
0600: 52 4d 41 54 45 58 20 70 77 66 78 3b 0a 09 44 57  RMATEX pwfx;..DW
0610: 4f 52 44 20 20 20 20 20 20 20 20 20 20 63 62 77  ORD          cbw
0620: 66 78 3b 0a 09 63 68 61 72 5b 41 43 4d 46 4f 52  fx;..char[ACMFOR
0630: 4d 41 54 44 45 54 41 49 4c 53 5f 46 4f 52 4d 41  MATDETAILS_FORMA
0640: 54 5f 43 48 41 52 53 5d 20 73 7a 46 6f 72 6d 61  T_CHARS] szForma
0650: 74 3b 0a 7d 0a 61 6c 69 61 73 20 41 43 4d 46 4f  t;.}.alias ACMFO
0660: 52 4d 41 54 44 45 54 41 49 4c 53 41 2a 20 4c 50  RMATDETAILSA* LP
0670: 41 43 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c 53  ACMFORMATDETAILS
0680: 41 3b 0a 0a 73 74 72 75 63 74 20 41 43 4d 46 4f  A;..struct ACMFO
0690: 52 4d 41 54 44 45 54 41 49 4c 53 57 20 7b 0a 09  RMATDETAILSW {..
06a0: 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 63  DWORD          c
06b0: 62 53 74 72 75 63 74 20 3d 20 41 43 4d 46 4f 52  bStruct = ACMFOR
06c0: 4d 41 54 44 45 54 41 49 4c 53 57 2e 73 69 7a 65  MATDETAILSW.size
06d0: 6f 66 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20  of;..DWORD      
06e0: 20 20 20 20 64 77 46 6f 72 6d 61 74 49 6e 64 65      dwFormatInde
06f0: 78 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20  x;..DWORD       
0700: 20 20 20 64 77 46 6f 72 6d 61 74 54 61 67 3b 0a     dwFormatTag;.
0710: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20  .DWORD          
0720: 66 64 77 53 75 70 70 6f 72 74 3b 0a 09 4c 50 57  fdwSupport;..LPW
0730: 41 56 45 46 4f 52 4d 41 54 45 58 20 70 77 66 78  AVEFORMATEX pwfx
0740: 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20  ;..DWORD        
0750: 20 20 63 62 77 66 78 3b 0a 09 57 43 48 41 52 5b    cbwfx;..WCHAR[
0760: 41 43 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c 53  ACMFORMATDETAILS
0770: 5f 46 4f 52 4d 41 54 5f 43 48 41 52 53 5d 20 73  _FORMAT_CHARS] s
0780: 7a 46 6f 72 6d 61 74 3b 0a 7d 0a 61 6c 69 61 73  zFormat;.}.alias
0790: 20 41 43 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c   ACMFORMATDETAIL
07a0: 53 57 2a 20 4c 50 41 43 4d 46 4f 52 4d 41 54 44  SW* LPACMFORMATD
07b0: 45 54 41 49 4c 53 57 3b 0a 0a 73 74 72 75 63 74  ETAILSW;..struct
07c0: 20 41 43 4d 46 4f 52 4d 41 54 54 41 47 44 45 54   ACMFORMATTAGDET
07d0: 41 49 4c 53 41 20 7b 0a 09 44 57 4f 52 44 20 63  AILSA {..DWORD c
07e0: 62 53 74 72 75 63 74 20 3d 20 41 43 4d 46 4f 52  bStruct = ACMFOR
07f0: 4d 41 54 54 41 47 44 45 54 41 49 4c 53 41 2e 73  MATTAGDETAILSA.s
0800: 69 7a 65 6f 66 3b 0a 09 44 57 4f 52 44 20 64 77  izeof;..DWORD dw
0810: 46 6f 72 6d 61 74 54 61 67 49 6e 64 65 78 3b 0a  FormatTagIndex;.
0820: 09 44 57 4f 52 44 20 64 77 46 6f 72 6d 61 74 54  .DWORD dwFormatT
0830: 61 67 3b 0a 09 44 57 4f 52 44 20 63 62 46 6f 72  ag;..DWORD cbFor
0840: 6d 61 74 53 69 7a 65 3b 0a 09 44 57 4f 52 44 20  matSize;..DWORD 
0850: 66 64 77 53 75 70 70 6f 72 74 3b 0a 09 44 57 4f  fdwSupport;..DWO
0860: 52 44 20 63 53 74 61 6e 64 61 72 64 46 6f 72 6d  RD cStandardForm
0870: 61 74 73 3b 0a 09 63 68 61 72 5b 41 43 4d 46 4f  ats;..char[ACMFO
0880: 52 4d 41 54 54 41 47 44 45 54 41 49 4c 53 5f 46  RMATTAGDETAILS_F
0890: 4f 52 4d 41 54 54 41 47 5f 43 48 41 52 53 5d 20  ORMATTAG_CHARS] 
08a0: 73 7a 46 6f 72 6d 61 74 54 61 67 3b 0a 7d 0a 61  szFormatTag;.}.a
08b0: 6c 69 61 73 20 41 43 4d 46 4f 52 4d 41 54 54 41  lias ACMFORMATTA
08c0: 47 44 45 54 41 49 4c 53 41 2a 20 4c 50 41 43 4d  GDETAILSA* LPACM
08d0: 46 4f 52 4d 41 54 54 41 47 44 45 54 41 49 4c 53  FORMATTAGDETAILS
08e0: 41 3b 0a 0a 73 74 72 75 63 74 20 41 43 4d 46 4f  A;..struct ACMFO
08f0: 52 4d 41 54 54 41 47 44 45 54 41 49 4c 53 57 20  RMATTAGDETAILSW 
0900: 7b 0a 09 44 57 4f 52 44 20 63 62 53 74 72 75 63  {..DWORD cbStruc
0910: 74 20 3d 20 41 43 4d 46 4f 52 4d 41 54 54 41 47  t = ACMFORMATTAG
0920: 44 45 54 41 49 4c 53 57 2e 73 69 7a 65 6f 66 3b  DETAILSW.sizeof;
0930: 0a 09 44 57 4f 52 44 20 64 77 46 6f 72 6d 61 74  ..DWORD dwFormat
0940: 54 61 67 49 6e 64 65 78 3b 0a 09 44 57 4f 52 44  TagIndex;..DWORD
0950: 20 64 77 46 6f 72 6d 61 74 54 61 67 3b 0a 09 44   dwFormatTag;..D
0960: 57 4f 52 44 20 63 62 46 6f 72 6d 61 74 53 69 7a  WORD cbFormatSiz
0970: 65 3b 0a 09 44 57 4f 52 44 20 66 64 77 53 75 70  e;..DWORD fdwSup
0980: 70 6f 72 74 3b 0a 09 44 57 4f 52 44 20 63 53 74  port;..DWORD cSt
0990: 61 6e 64 61 72 64 46 6f 72 6d 61 74 73 3b 0a 09  andardFormats;..
09a0: 57 43 48 41 52 5b 41 43 4d 46 4f 52 4d 41 54 54  WCHAR[ACMFORMATT
09b0: 41 47 44 45 54 41 49 4c 53 5f 46 4f 52 4d 41 54  AGDETAILS_FORMAT
09c0: 54 41 47 5f 43 48 41 52 53 5d 20 73 7a 46 6f 72  TAG_CHARS] szFor
09d0: 6d 61 74 54 61 67 3b 0a 7d 0a 61 6c 69 61 73 20  matTag;.}.alias 
09e0: 41 43 4d 46 4f 52 4d 41 54 54 41 47 44 45 54 41  ACMFORMATTAGDETA
09f0: 49 4c 53 57 2a 20 4c 50 41 43 4d 46 4f 52 4d 41  ILSW* LPACMFORMA
0a00: 54 54 41 47 44 45 54 41 49 4c 53 57 3b 0a 0a 73  TTAGDETAILSW;..s
0a10: 74 72 75 63 74 20 41 43 4d 44 52 49 56 45 52 44  truct ACMDRIVERD
0a20: 45 54 41 49 4c 53 41 20 7b 0a 09 44 57 4f 52 44  ETAILSA {..DWORD
0a30: 20 20 63 62 53 74 72 75 63 74 20 3d 20 41 43 4d    cbStruct = ACM
0a40: 44 52 49 56 45 52 44 45 54 41 49 4c 53 41 2e 73  DRIVERDETAILSA.s
0a50: 69 7a 65 6f 66 3b 0a 09 46 4f 55 52 43 43 20 66  izeof;..FOURCC f
0a60: 63 63 54 79 70 65 3b 0a 09 46 4f 55 52 43 43 20  ccType;..FOURCC 
0a70: 66 63 63 43 6f 6d 70 3b 0a 09 57 4f 52 44 20 20  fccComp;..WORD  
0a80: 20 77 4d 69 64 3b 0a 09 57 4f 52 44 20 20 20 77   wMid;..WORD   w
0a90: 50 69 64 3b 0a 09 44 57 4f 52 44 20 20 76 64 77  Pid;..DWORD  vdw
0aa0: 41 43 4d 3b 0a 09 44 57 4f 52 44 20 20 76 64 77  ACM;..DWORD  vdw
0ab0: 44 72 69 76 65 72 3b 0a 09 44 57 4f 52 44 20 20  Driver;..DWORD  
0ac0: 66 64 77 53 75 70 70 6f 72 74 3b 0a 09 44 57 4f  fdwSupport;..DWO
0ad0: 52 44 20 20 63 46 6f 72 6d 61 74 54 61 67 73 3b  RD  cFormatTags;
0ae0: 0a 09 44 57 4f 52 44 20 20 63 46 69 6c 74 65 72  ..DWORD  cFilter
0af0: 54 61 67 73 3b 0a 09 48 49 43 4f 4e 20 20 68 69  Tags;..HICON  hi
0b00: 63 6f 6e 3b 0a 09 63 68 61 72 5b 41 43 4d 44 52  con;..char[ACMDR
0b10: 49 56 45 52 44 45 54 41 49 4c 53 5f 53 48 4f 52  IVERDETAILS_SHOR
0b20: 54 4e 41 4d 45 5f 43 48 41 52 53 5d 20 73 7a 53  TNAME_CHARS] szS
0b30: 68 6f 72 74 4e 61 6d 65 3b 0a 09 63 68 61 72 5b  hortName;..char[
0b40: 41 43 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53  ACMDRIVERDETAILS
0b50: 5f 4c 4f 4e 47 4e 41 4d 45 5f 43 48 41 52 53 5d  _LONGNAME_CHARS]
0b60: 20 20 73 7a 4c 6f 6e 67 4e 61 6d 65 3b 0a 09 63    szLongName;..c
0b70: 68 61 72 5b 41 43 4d 44 52 49 56 45 52 44 45 54  har[ACMDRIVERDET
0b80: 41 49 4c 53 5f 43 4f 50 59 52 49 47 48 54 5f 43  AILS_COPYRIGHT_C
0b90: 48 41 52 53 5d 20 73 7a 43 6f 70 79 72 69 67 68  HARS] szCopyrigh
0ba0: 74 3b 0a 09 63 68 61 72 5b 41 43 4d 44 52 49 56  t;..char[ACMDRIV
0bb0: 45 52 44 45 54 41 49 4c 53 5f 4c 49 43 45 4e 53  ERDETAILS_LICENS
0bc0: 49 4e 47 5f 43 48 41 52 53 5d 20 73 7a 4c 69 63  ING_CHARS] szLic
0bd0: 65 6e 73 69 6e 67 3b 0a 09 63 68 61 72 5b 41 43  ensing;..char[AC
0be0: 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53 5f 46  MDRIVERDETAILS_F
0bf0: 45 41 54 55 52 45 53 5f 43 48 41 52 53 5d 20 20  EATURES_CHARS]  
0c00: 73 7a 46 65 61 74 75 72 65 73 3b 0a 7d 0a 61 6c  szFeatures;.}.al
0c10: 69 61 73 20 41 43 4d 44 52 49 56 45 52 44 45 54  ias ACMDRIVERDET
0c20: 41 49 4c 53 41 2a 20 4c 50 41 43 4d 44 52 49 56  AILSA* LPACMDRIV
0c30: 45 52 44 45 54 41 49 4c 53 41 3b 0a 0a 73 74 72  ERDETAILSA;..str
0c40: 75 63 74 20 41 43 4d 44 52 49 56 45 52 44 45 54  uct ACMDRIVERDET
0c50: 41 49 4c 53 57 20 7b 0a 09 44 57 4f 52 44 20 20  AILSW {..DWORD  
0c60: 63 62 53 74 72 75 63 74 20 3d 20 41 43 4d 44 52  cbStruct = ACMDR
0c70: 49 56 45 52 44 45 54 41 49 4c 53 57 2e 73 69 7a  IVERDETAILSW.siz
0c80: 65 6f 66 3b 0a 09 46 4f 55 52 43 43 20 66 63 63  eof;..FOURCC fcc
0c90: 54 79 70 65 3b 0a 09 46 4f 55 52 43 43 20 66 63  Type;..FOURCC fc
0ca0: 63 43 6f 6d 70 3b 0a 09 57 4f 52 44 20 20 20 77  cComp;..WORD   w
0cb0: 4d 69 64 3b 0a 09 57 4f 52 44 20 20 20 77 50 69  Mid;..WORD   wPi
0cc0: 64 3b 0a 09 44 57 4f 52 44 20 20 76 64 77 41 43  d;..DWORD  vdwAC
0cd0: 4d 3b 0a 09 44 57 4f 52 44 20 20 76 64 77 44 72  M;..DWORD  vdwDr
0ce0: 69 76 65 72 3b 0a 09 44 57 4f 52 44 20 20 66 64  iver;..DWORD  fd
0cf0: 77 53 75 70 70 6f 72 74 3b 0a 09 44 57 4f 52 44  wSupport;..DWORD
0d00: 20 20 63 46 6f 72 6d 61 74 54 61 67 73 3b 0a 09    cFormatTags;..
0d10: 44 57 4f 52 44 20 20 63 46 69 6c 74 65 72 54 61  DWORD  cFilterTa
0d20: 67 73 3b 0a 09 48 49 43 4f 4e 20 20 68 69 63 6f  gs;..HICON  hico
0d30: 6e 3b 0a 09 57 43 48 41 52 5b 41 43 4d 44 52 49  n;..WCHAR[ACMDRI
0d40: 56 45 52 44 45 54 41 49 4c 53 5f 53 48 4f 52 54  VERDETAILS_SHORT
0d50: 4e 41 4d 45 5f 43 48 41 52 53 5d 20 73 7a 53 68  NAME_CHARS] szSh
0d60: 6f 72 74 4e 61 6d 65 3b 0a 09 57 43 48 41 52 5b  ortName;..WCHAR[
0d70: 41 43 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53  ACMDRIVERDETAILS
0d80: 5f 4c 4f 4e 47 4e 41 4d 45 5f 43 48 41 52 53 5d  _LONGNAME_CHARS]
0d90: 20 20 73 7a 4c 6f 6e 67 4e 61 6d 65 3b 0a 09 57    szLongName;..W
0da0: 43 48 41 52 5b 41 43 4d 44 52 49 56 45 52 44 45  CHAR[ACMDRIVERDE
0db0: 54 41 49 4c 53 5f 43 4f 50 59 52 49 47 48 54 5f  TAILS_COPYRIGHT_
0dc0: 43 48 41 52 53 5d 20 73 7a 43 6f 70 79 72 69 67  CHARS] szCopyrig
0dd0: 68 74 3b 0a 09 57 43 48 41 52 5b 41 43 4d 44 52  ht;..WCHAR[ACMDR
0de0: 49 56 45 52 44 45 54 41 49 4c 53 5f 4c 49 43 45  IVERDETAILS_LICE
0df0: 4e 53 49 4e 47 5f 43 48 41 52 53 5d 20 73 7a 4c  NSING_CHARS] szL
0e00: 69 63 65 6e 73 69 6e 67 3b 0a 09 57 43 48 41 52  icensing;..WCHAR
0e10: 5b 41 43 4d 44 52 49 56 45 52 44 45 54 41 49 4c  [ACMDRIVERDETAIL
0e20: 53 5f 46 45 41 54 55 52 45 53 5f 43 48 41 52 53  S_FEATURES_CHARS
0e30: 5d 20 20 73 7a 46 65 61 74 75 72 65 73 3b 0a 7d  ]  szFeatures;.}
0e40: 0a 61 6c 69 61 73 20 41 43 4d 44 52 49 56 45 52  .alias ACMDRIVER
0e50: 44 45 54 41 49 4c 53 57 2a 20 4c 50 41 43 4d 44  DETAILSW* LPACMD
0e60: 52 49 56 45 52 44 45 54 41 49 4c 53 57 3b 0a 0a  RIVERDETAILSW;..
0e70: 65 78 74 65 72 6e 20 28 57 69 6e 64 6f 77 73 29  extern (Windows)
0e80: 20 7b 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66   {..alias BOOL f
0e90: 75 6e 63 74 69 6f 6e 28 48 41 43 4d 44 52 49 56  unction(HACMDRIV
0ea0: 45 52 49 44 20 68 61 64 69 64 2c 20 4c 50 41 43  ERID hadid, LPAC
0eb0: 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c 53 41 20  MFORMATDETAILSA 
0ec0: 70 61 66 64 2c 0a 09 20 20 44 57 4f 52 44 5f 50  pafd,..  DWORD_P
0ed0: 54 52 20 64 77 49 6e 73 74 61 6e 63 65 2c 20 44  TR dwInstance, D
0ee0: 57 4f 52 44 20 66 64 77 53 75 70 70 6f 72 74 29  WORD fdwSupport)
0ef0: 20 41 43 4d 46 4f 52 4d 41 54 45 4e 55 4d 43 42   ACMFORMATENUMCB
0f00: 41 3b 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66  A;..alias BOOL f
0f10: 75 6e 63 74 69 6f 6e 28 48 41 43 4d 44 52 49 56  unction(HACMDRIV
0f20: 45 52 49 44 20 68 61 64 69 64 2c 20 4c 50 41 43  ERID hadid, LPAC
0f30: 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c 53 57 20  MFORMATDETAILSW 
0f40: 70 61 66 64 2c 0a 09 20 20 44 57 4f 52 44 5f 50  pafd,..  DWORD_P
0f50: 54 52 20 64 77 49 6e 73 74 61 6e 63 65 2c 20 44  TR dwInstance, D
0f60: 57 4f 52 44 20 66 64 77 53 75 70 70 6f 72 74 29  WORD fdwSupport)
0f70: 20 41 43 4d 46 4f 52 4d 41 54 45 4e 55 4d 43 42   ACMFORMATENUMCB
0f80: 57 3b 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66  W;..alias BOOL f
0f90: 75 6e 63 74 69 6f 6e 28 48 41 43 4d 44 52 49 56  unction(HACMDRIV
0fa0: 45 52 49 44 20 68 61 64 69 64 2c 20 4c 50 41 43  ERID hadid, LPAC
0fb0: 4d 46 4f 52 4d 41 54 54 41 47 44 45 54 41 49 4c  MFORMATTAGDETAIL
0fc0: 53 41 20 70 61 66 74 64 2c 0a 09 20 20 44 57 4f  SA paftd,..  DWO
0fd0: 52 44 5f 50 54 52 20 64 77 49 6e 73 74 61 6e 63  RD_PTR dwInstanc
0fe0: 65 2c 20 44 57 4f 52 44 20 66 64 77 53 75 70 70  e, DWORD fdwSupp
0ff0: 6f 72 74 29 20 41 43 4d 46 4f 52 4d 41 54 54 41  ort) ACMFORMATTA
1000: 47 45 4e 55 4d 43 42 41 3b 0a 09 61 6c 69 61 73  GENUMCBA;..alias
1010: 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 48   BOOL function(H
1020: 41 43 4d 44 52 49 56 45 52 49 44 20 68 61 64 69  ACMDRIVERID hadi
1030: 64 2c 20 4c 50 41 43 4d 46 4f 52 4d 41 54 54 41  d, LPACMFORMATTA
1040: 47 44 45 54 41 49 4c 53 57 20 70 61 66 74 64 2c  GDETAILSW paftd,
1050: 0a 09 20 20 44 57 4f 52 44 5f 50 54 52 20 64 77  ..  DWORD_PTR dw
1060: 49 6e 73 74 61 6e 63 65 2c 20 44 57 4f 52 44 20  Instance, DWORD 
1070: 66 64 77 53 75 70 70 6f 72 74 29 20 41 43 4d 46  fdwSupport) ACMF
1080: 4f 52 4d 41 54 54 41 47 45 4e 55 4d 43 42 57 3b  ORMATTAGENUMCBW;
1090: 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66 75 6e  ..alias BOOL fun
10a0: 63 74 69 6f 6e 28 48 41 43 4d 44 52 49 56 45 52  ction(HACMDRIVER
10b0: 49 44 20 68 61 64 69 64 2c 20 44 57 4f 52 44 5f  ID hadid, DWORD_
10c0: 50 54 52 20 64 77 49 6e 73 74 61 6e 63 65 2c 0a  PTR dwInstance,.
10d0: 09 20 20 44 57 4f 52 44 20 66 64 77 53 75 70 70  .  DWORD fdwSupp
10e0: 6f 72 74 29 20 41 43 4d 44 52 49 56 45 52 45 4e  ort) ACMDRIVEREN
10f0: 55 4d 43 42 3b 0a 0a 09 4d 4d 52 45 53 55 4c 54  UMCB;...MMRESULT
1100: 20 61 63 6d 44 72 69 76 65 72 4f 70 65 6e 28 4c   acmDriverOpen(L
1110: 50 48 41 43 4d 44 52 49 56 45 52 20 70 68 61 64  PHACMDRIVER phad
1120: 2c 20 48 41 43 4d 44 52 49 56 45 52 49 44 20 68  , HACMDRIVERID h
1130: 61 64 69 64 2c 0a 09 20 20 44 57 4f 52 44 20 66  adid,..  DWORD f
1140: 64 77 4f 70 65 6e 29 3b 0a 09 4d 4d 52 45 53 55  dwOpen);..MMRESU
1150: 4c 54 20 61 63 6d 44 72 69 76 65 72 45 6e 75 6d  LT acmDriverEnum
1160: 28 41 43 4d 44 52 49 56 45 52 45 4e 55 4d 43 42  (ACMDRIVERENUMCB
1170: 20 66 6e 43 61 6c 6c 62 61 63 6b 2c 20 44 57 4f   fnCallback, DWO
1180: 52 44 5f 50 54 52 20 64 77 49 6e 73 74 61 6e 63  RD_PTR dwInstanc
1190: 65 2c 0a 09 20 20 44 57 4f 52 44 20 66 64 77 45  e,..  DWORD fdwE
11a0: 6e 75 6d 29 3b 0a 09 4d 4d 52 45 53 55 4c 54 20  num);..MMRESULT 
11b0: 61 63 6d 46 6f 72 6d 61 74 45 6e 75 6d 41 28 48  acmFormatEnumA(H
11c0: 41 43 4d 44 52 49 56 45 52 20 68 61 64 2c 20 4c  ACMDRIVER had, L
11d0: 50 41 43 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c  PACMFORMATDETAIL
11e0: 53 41 20 70 61 66 64 2c 0a 09 20 20 41 43 4d 46  SA pafd,..  ACMF
11f0: 4f 52 4d 41 54 45 4e 55 4d 43 42 41 20 66 6e 43  ORMATENUMCBA fnC
1200: 61 6c 6c 62 61 63 6b 2c 20 44 57 4f 52 44 5f 50  allback, DWORD_P
1210: 54 52 20 64 77 49 6e 73 74 61 6e 63 65 2c 20 44  TR dwInstance, D
1220: 57 4f 52 44 20 66 64 77 45 6e 75 6d 29 3b 0a 09  WORD fdwEnum);..
1230: 4d 4d 52 45 53 55 4c 54 20 61 63 6d 46 6f 72 6d  MMRESULT acmForm
1240: 61 74 45 6e 75 6d 57 28 48 41 43 4d 44 52 49 56  atEnumW(HACMDRIV
1250: 45 52 20 68 61 64 2c 20 4c 50 41 43 4d 46 4f 52  ER had, LPACMFOR
1260: 4d 41 54 44 45 54 41 49 4c 53 57 20 70 61 66 64  MATDETAILSW pafd
1270: 2c 0a 09 20 20 41 43 4d 46 4f 52 4d 41 54 45 4e  ,..  ACMFORMATEN
1280: 55 4d 43 42 57 20 66 6e 43 61 6c 6c 62 61 63 6b  UMCBW fnCallback
1290: 2c 20 44 57 4f 52 44 5f 50 54 52 20 64 77 49 6e  , DWORD_PTR dwIn
12a0: 73 74 61 6e 63 65 2c 20 44 57 4f 52 44 20 66 64  stance, DWORD fd
12b0: 77 45 6e 75 6d 29 3b 0a 09 4d 4d 52 45 53 55 4c  wEnum);..MMRESUL
12c0: 54 20 61 63 6d 44 72 69 76 65 72 43 6c 6f 73 65  T acmDriverClose
12d0: 28 48 41 43 4d 44 52 49 56 45 52 20 68 61 64 2c  (HACMDRIVER had,
12e0: 20 44 57 4f 52 44 20 66 64 77 43 6c 6f 73 65 29   DWORD fdwClose)
12f0: 3b 0a 09 4d 4d 52 45 53 55 4c 54 20 61 63 6d 44  ;..MMRESULT acmD
1300: 72 69 76 65 72 44 65 74 61 69 6c 73 41 28 48 41  riverDetailsA(HA
1310: 43 4d 44 52 49 56 45 52 49 44 20 68 61 64 69 64  CMDRIVERID hadid
1320: 2c 20 4c 50 41 43 4d 44 52 49 56 45 52 44 45 54  , LPACMDRIVERDET
1330: 41 49 4c 53 41 20 70 61 64 64 2c 0a 09 20 20 44  AILSA padd,..  D
1340: 57 4f 52 44 20 66 64 77 44 65 74 61 69 6c 73 29  WORD fdwDetails)
1350: 3b 0a 09 4d 4d 52 45 53 55 4c 54 20 61 63 6d 44  ;..MMRESULT acmD
1360: 72 69 76 65 72 44 65 74 61 69 6c 73 57 28 48 41  riverDetailsW(HA
1370: 43 4d 44 52 49 56 45 52 49 44 20 68 61 64 69 64  CMDRIVERID hadid
1380: 2c 20 4c 50 41 43 4d 44 52 49 56 45 52 44 45 54  , LPACMDRIVERDET
1390: 41 49 4c 53 57 20 70 61 64 64 2c 0a 09 20 20 44  AILSW padd,..  D
13a0: 57 4f 52 44 20 66 64 77 44 65 74 61 69 6c 73 29  WORD fdwDetails)
13b0: 3b 0a 09 4d 4d 52 45 53 55 4c 54 20 61 63 6d 46  ;..MMRESULT acmF
13c0: 6f 72 6d 61 74 54 61 67 45 6e 75 6d 41 28 48 41  ormatTagEnumA(HA
13d0: 43 4d 44 52 49 56 45 52 20 68 61 64 2c 20 4c 50  CMDRIVER had, LP
13e0: 41 43 4d 46 4f 52 4d 41 54 54 41 47 44 45 54 41  ACMFORMATTAGDETA
13f0: 49 4c 53 41 20 70 61 66 74 64 2c 0a 09 20 20 41  ILSA paftd,..  A
1400: 43 4d 46 4f 52 4d 41 54 54 41 47 45 4e 55 4d 43  CMFORMATTAGENUMC
1410: 42 41 20 66 6e 43 61 6c 6c 62 61 63 6b 2c 20 44  BA fnCallback, D
1420: 57 4f 52 44 5f 50 54 52 20 64 77 49 6e 73 74 61  WORD_PTR dwInsta
1430: 6e 63 65 2c 20 44 57 4f 52 44 20 66 64 77 45 6e  nce, DWORD fdwEn
1440: 75 6d 29 3b 0a 09 4d 4d 52 45 53 55 4c 54 20 61  um);..MMRESULT a
1450: 63 6d 46 6f 72 6d 61 74 54 61 67 45 6e 75 6d 57  cmFormatTagEnumW
1460: 28 48 41 43 4d 44 52 49 56 45 52 20 68 61 64 2c  (HACMDRIVER had,
1470: 20 4c 50 41 43 4d 46 4f 52 4d 41 54 54 41 47 44   LPACMFORMATTAGD
1480: 45 54 41 49 4c 53 57 20 70 61 66 74 64 2c 0a 09  ETAILSW paftd,..
1490: 20 20 41 43 4d 46 4f 52 4d 41 54 54 41 47 45 4e    ACMFORMATTAGEN
14a0: 55 4d 43 42 57 20 66 6e 43 61 6c 6c 62 61 63 6b  UMCBW fnCallback
14b0: 2c 20 44 57 4f 52 44 5f 50 54 52 20 64 77 49 6e  , DWORD_PTR dwIn
14c0: 73 74 61 6e 63 65 2c 20 44 57 4f 52 44 20 66 64  stance, DWORD fd
14d0: 77 45 6e 75 6d 29 3b 0a 7d 0a 0a 76 65 72 73 69  wEnum);.}..versi
14e0: 6f 6e 20 28 55 6e 69 63 6f 64 65 29 20 7b 0a 09  on (Unicode) {..
14f0: 61 6c 69 61 73 20 41 43 4d 46 4f 52 4d 41 54 44  alias ACMFORMATD
1500: 45 54 41 49 4c 53 57 20 41 43 4d 46 4f 52 4d 41  ETAILSW ACMFORMA
1510: 54 44 45 54 41 49 4c 53 3b 0a 09 61 6c 69 61 73  TDETAILS;..alias
1520: 20 41 43 4d 46 4f 52 4d 41 54 54 41 47 44 45 54   ACMFORMATTAGDET
1530: 41 49 4c 53 57 20 41 43 4d 46 4f 52 4d 41 54 54  AILSW ACMFORMATT
1540: 41 47 44 45 54 41 49 4c 53 3b 0a 09 61 6c 69 61  AGDETAILS;..alia
1550: 73 20 41 43 4d 44 52 49 56 45 52 44 45 54 41 49  s ACMDRIVERDETAI
1560: 4c 53 57 20 41 43 4d 44 52 49 56 45 52 44 45 54  LSW ACMDRIVERDET
1570: 41 49 4c 53 3b 0a 09 61 6c 69 61 73 20 41 43 4d  AILS;..alias ACM
1580: 46 4f 52 4d 41 54 45 4e 55 4d 43 42 57 20 41 43  FORMATENUMCBW AC
1590: 4d 46 4f 52 4d 41 54 45 4e 55 4d 43 42 3b 0a 09  MFORMATENUMCB;..
15a0: 61 6c 69 61 73 20 41 43 4d 46 4f 52 4d 41 54 54  alias ACMFORMATT
15b0: 41 47 45 4e 55 4d 43 42 57 20 41 43 4d 46 4f 52  AGENUMCBW ACMFOR
15c0: 4d 41 54 54 41 47 45 4e 55 4d 43 42 3b 0a 09 61  MATTAGENUMCB;..a
15d0: 6c 69 61 73 20 61 63 6d 46 6f 72 6d 61 74 45 6e  lias acmFormatEn
15e0: 75 6d 57 20 61 63 6d 46 6f 72 6d 61 74 45 6e 75  umW acmFormatEnu
15f0: 6d 3b 0a 09 61 6c 69 61 73 20 61 63 6d 44 72 69  m;..alias acmDri
1600: 76 65 72 44 65 74 61 69 6c 73 57 20 61 63 6d 44  verDetailsW acmD
1610: 72 69 76 65 72 44 65 74 61 69 6c 73 3b 0a 09 61  riverDetails;..a
1620: 6c 69 61 73 20 61 63 6d 46 6f 72 6d 61 74 54 61  lias acmFormatTa
1630: 67 45 6e 75 6d 57 20 61 63 6d 46 6f 72 6d 61 74  gEnumW acmFormat
1640: 54 61 67 45 6e 75 6d 3b 0a 7d 20 65 6c 73 65 20  TagEnum;.} else 
1650: 7b 0a 09 61 6c 69 61 73 20 41 43 4d 46 4f 52 4d  {..alias ACMFORM
1660: 41 54 44 45 54 41 49 4c 53 41 20 41 43 4d 46 4f  ATDETAILSA ACMFO
1670: 52 4d 41 54 44 45 54 41 49 4c 53 3b 0a 09 61 6c  RMATDETAILS;..al
1680: 69 61 73 20 41 43 4d 46 4f 52 4d 41 54 54 41 47  ias ACMFORMATTAG
1690: 44 45 54 41 49 4c 53 41 20 41 43 4d 46 4f 52 4d  DETAILSA ACMFORM
16a0: 41 54 54 41 47 44 45 54 41 49 4c 53 3b 0a 09 61  ATTAGDETAILS;..a
16b0: 6c 69 61 73 20 41 43 4d 44 52 49 56 45 52 44 45  lias ACMDRIVERDE
16c0: 54 41 49 4c 53 41 20 41 43 4d 44 52 49 56 45 52  TAILSA ACMDRIVER
16d0: 44 45 54 41 49 4c 53 3b 0a 09 61 6c 69 61 73 20  DETAILS;..alias 
16e0: 41 43 4d 46 4f 52 4d 41 54 45 4e 55 4d 43 42 41  ACMFORMATENUMCBA
16f0: 20 41 43 4d 46 4f 52 4d 41 54 45 4e 55 4d 43 42   ACMFORMATENUMCB
1700: 3b 0a 09 61 6c 69 61 73 20 41 43 4d 46 4f 52 4d  ;..alias ACMFORM
1710: 41 54 54 41 47 45 4e 55 4d 43 42 41 20 41 43 4d  ATTAGENUMCBA ACM
1720: 46 4f 52 4d 41 54 54 41 47 45 4e 55 4d 43 42 3b  FORMATTAGENUMCB;
1730: 0a 09 61 6c 69 61 73 20 61 63 6d 46 6f 72 6d 61  ..alias acmForma
1740: 74 45 6e 75 6d 41 20 61 63 6d 46 6f 72 6d 61 74  tEnumA acmFormat
1750: 45 6e 75 6d 3b 0a 09 61 6c 69 61 73 20 61 63 6d  Enum;..alias acm
1760: 44 72 69 76 65 72 44 65 74 61 69 6c 73 41 20 61  DriverDetailsA a
1770: 63 6d 44 72 69 76 65 72 44 65 74 61 69 6c 73 3b  cmDriverDetails;
1780: 0a 09 61 6c 69 61 73 20 61 63 6d 46 6f 72 6d 61  ..alias acmForma
1790: 74 54 61 67 45 6e 75 6d 41 20 61 63 6d 46 6f 72  tTagEnumA acmFor
17a0: 6d 61 74 54 61 67 45 6e 75 6d 3b 0a 7d 0a 0a 61  matTagEnum;.}..a
17b0: 6c 69 61 73 20 41 43 4d 46 4f 52 4d 41 54 44 45  lias ACMFORMATDE
17c0: 54 41 49 4c 53 2a 20 4c 50 41 43 4d 46 4f 52 4d  TAILS* LPACMFORM
17d0: 41 54 44 45 54 41 49 4c 53 3b 0a 61 6c 69 61 73  ATDETAILS;.alias
17e0: 20 41 43 4d 46 4f 52 4d 41 54 54 41 47 44 45 54   ACMFORMATTAGDET
17f0: 41 49 4c 53 2a 20 4c 50 41 43 4d 46 4f 52 4d 41  AILS* LPACMFORMA
1800: 54 54 41 47 44 45 54 41 49 4c 53 3b 0a 61 6c 69  TTAGDETAILS;.ali
1810: 61 73 20 41 43 4d 44 52 49 56 45 52 44 45 54 41  as ACMDRIVERDETA
1820: 49 4c 53 2a 20 4c 50 41 43 4d 44 52 49 56 45 52  ILS* LPACMDRIVER
1830: 44 45 54 41 49 4c 53 3b 0a                       DETAILS;.