Hex Artifact Content

Not logged in

Artifact 7ba0b5397a09dc08f9f948b8af5a1d63f6a65ca2:


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 6d 69 78 69 6e 20 44 45 43 4c  def;..mixin DECL
0340: 41 52 45 5f 48 41 4e 44 4c 45 21 28 22 48 41 43  ARE_HANDLE!("HAC
0350: 4d 44 52 49 56 45 52 49 44 22 29 3b 0a 6d 69 78  MDRIVERID");.mix
0360: 69 6e 20 44 45 43 4c 41 52 45 5f 48 41 4e 44 4c  in DECLARE_HANDL
0370: 45 21 28 22 48 41 43 4d 44 52 49 56 45 52 22 29  E!("HACMDRIVER")
0380: 3b 0a 61 6c 69 61 73 20 48 41 43 4d 44 52 49 56  ;.alias HACMDRIV
0390: 45 52 2a 20 4c 50 48 41 43 4d 44 52 49 56 45 52  ER* LPHACMDRIVER
03a0: 3b 0a 0a 2f 2a 20 43 6f 6d 6d 65 6e 74 20 66 72  ;../* Comment fr
03b0: 6f 6d 20 4d 69 6e 47 57 0a 09 66 6f 75 6e 64 20  om MinGW..found 
03c0: 74 68 72 6f 75 67 68 20 65 78 70 65 72 69 6d 65  through experime
03d0: 6e 74 61 74 69 6f 6e 0a 20 2a 2f 0a 63 6f 6e 73  ntation. */.cons
03e0: 74 20 73 69 7a 65 5f 74 0a 09 41 43 4d 44 52 49  t size_t..ACMDRI
03f0: 56 45 52 44 45 54 41 49 4c 53 5f 53 48 4f 52 54  VERDETAILS_SHORT
0400: 4e 41 4d 45 5f 43 48 41 52 53 20 3d 20 20 33 32  NAME_CHARS =  32
0410: 2c 0a 09 41 43 4d 44 52 49 56 45 52 44 45 54 41  ,..ACMDRIVERDETA
0420: 49 4c 53 5f 4c 4f 4e 47 4e 41 4d 45 5f 43 48 41  ILS_LONGNAME_CHA
0430: 52 53 20 20 3d 20 31 32 38 2c 0a 09 41 43 4d 44  RS  = 128,..ACMD
0440: 52 49 56 45 52 44 45 54 41 49 4c 53 5f 43 4f 50  RIVERDETAILS_COP
0450: 59 52 49 47 48 54 5f 43 48 41 52 53 20 3d 20 20  YRIGHT_CHARS =  
0460: 38 30 2c 0a 09 41 43 4d 44 52 49 56 45 52 44 45  80,..ACMDRIVERDE
0470: 54 41 49 4c 53 5f 4c 49 43 45 4e 53 49 4e 47 5f  TAILS_LICENSING_
0480: 43 48 41 52 53 20 3d 20 31 32 38 3b 0a 0a 2f 2a  CHARS = 128;../*
0490: 20 43 6f 6d 6d 65 6e 74 20 66 72 6f 6d 20 4d 69   Comment from Mi
04a0: 6e 47 57 0a 09 49 20 64 6f 6e 27 74 20 6b 6e 6f  nGW..I don't kno
04b0: 77 20 74 68 65 20 72 69 67 68 74 20 76 61 6c 75  w the right valu
04c0: 65 73 20 66 6f 72 20 74 68 65 73 65 20 6d 61 63  es for these mac
04d0: 72 6f 73 0a 20 2a 2f 0a 63 6f 6e 73 74 20 73 69  ros. */.const si
04e0: 7a 65 5f 74 0a 09 41 43 4d 46 4f 52 4d 41 54 44  ze_t..ACMFORMATD
04f0: 45 54 41 49 4c 53 5f 46 4f 52 4d 41 54 5f 43 48  ETAILS_FORMAT_CH
0500: 41 52 53 20 20 20 20 20 20 20 3d 20 32 35 36 2c  ARS       = 256,
0510: 0a 09 41 43 4d 46 4f 52 4d 41 54 54 41 47 44 45  ..ACMFORMATTAGDE
0520: 54 41 49 4c 53 5f 46 4f 52 4d 41 54 54 41 47 5f  TAILS_FORMATTAG_
0530: 43 48 41 52 53 20 3d 20 32 35 36 2c 0a 09 41 43  CHARS = 256,..AC
0540: 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53 5f 46  MDRIVERDETAILS_F
0550: 45 41 54 55 52 45 53 5f 43 48 41 52 53 20 20 20  EATURES_CHARS   
0560: 20 20 3d 20 32 35 36 3b 0a 0a 73 74 72 75 63 74    = 256;..struct
0570: 20 41 43 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c   ACMFORMATDETAIL
0580: 53 41 20 7b 0a 09 44 57 4f 52 44 20 20 20 20 20  SA {..DWORD     
0590: 20 20 20 20 20 63 62 53 74 72 75 63 74 20 3d 20       cbStruct = 
05a0: 41 43 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c 53  ACMFORMATDETAILS
05b0: 41 2e 73 69 7a 65 6f 66 3b 20 20 2f 2f 20 61 72  A.sizeof;  // ar
05c0: 65 20 74 68 65 79 3f 0a 09 44 57 4f 52 44 20 20  e they?..DWORD  
05d0: 20 20 20 20 20 20 20 20 64 77 46 6f 72 6d 61 74          dwFormat
05e0: 49 6e 64 65 78 3b 0a 09 44 57 4f 52 44 20 20 20  Index;..DWORD   
05f0: 20 20 20 20 20 20 20 64 77 46 6f 72 6d 61 74 54         dwFormatT
0600: 61 67 3b 0a 09 44 57 4f 52 44 20 20 20 20 20 20  ag;..DWORD      
0610: 20 20 20 20 66 64 77 53 75 70 70 6f 72 74 3b 0a      fdwSupport;.
0620: 09 4c 50 57 41 56 45 46 4f 52 4d 41 54 45 58 20  .LPWAVEFORMATEX 
0630: 70 77 66 78 3b 0a 09 44 57 4f 52 44 20 20 20 20  pwfx;..DWORD    
0640: 20 20 20 20 20 20 63 62 77 66 78 3b 0a 09 63 68        cbwfx;..ch
0650: 61 72 5b 41 43 4d 46 4f 52 4d 41 54 44 45 54 41  ar[ACMFORMATDETA
0660: 49 4c 53 5f 46 4f 52 4d 41 54 5f 43 48 41 52 53  ILS_FORMAT_CHARS
0670: 5d 20 73 7a 46 6f 72 6d 61 74 3b 0a 7d 0a 61 6c  ] szFormat;.}.al
0680: 69 61 73 20 41 43 4d 46 4f 52 4d 41 54 44 45 54  ias ACMFORMATDET
0690: 41 49 4c 53 41 2a 20 4c 50 41 43 4d 46 4f 52 4d  AILSA* LPACMFORM
06a0: 41 54 44 45 54 41 49 4c 53 41 3b 0a 0a 73 74 72  ATDETAILSA;..str
06b0: 75 63 74 20 41 43 4d 46 4f 52 4d 41 54 44 45 54  uct ACMFORMATDET
06c0: 41 49 4c 53 57 20 7b 0a 09 44 57 4f 52 44 20 20  AILSW {..DWORD  
06d0: 20 20 20 20 20 20 20 20 63 62 53 74 72 75 63 74          cbStruct
06e0: 20 3d 20 41 43 4d 46 4f 52 4d 41 54 44 45 54 41   = ACMFORMATDETA
06f0: 49 4c 53 57 2e 73 69 7a 65 6f 66 3b 0a 09 44 57  ILSW.sizeof;..DW
0700: 4f 52 44 20 20 20 20 20 20 20 20 20 20 64 77 46  ORD          dwF
0710: 6f 72 6d 61 74 49 6e 64 65 78 3b 0a 09 44 57 4f  ormatIndex;..DWO
0720: 52 44 20 20 20 20 20 20 20 20 20 20 64 77 46 6f  RD          dwFo
0730: 72 6d 61 74 54 61 67 3b 0a 09 44 57 4f 52 44 20  rmatTag;..DWORD 
0740: 20 20 20 20 20 20 20 20 20 66 64 77 53 75 70 70           fdwSupp
0750: 6f 72 74 3b 0a 09 4c 50 57 41 56 45 46 4f 52 4d  ort;..LPWAVEFORM
0760: 41 54 45 58 20 70 77 66 78 3b 0a 09 44 57 4f 52  ATEX pwfx;..DWOR
0770: 44 20 20 20 20 20 20 20 20 20 20 63 62 77 66 78  D          cbwfx
0780: 3b 0a 09 57 43 48 41 52 5b 41 43 4d 46 4f 52 4d  ;..WCHAR[ACMFORM
0790: 41 54 44 45 54 41 49 4c 53 5f 46 4f 52 4d 41 54  ATDETAILS_FORMAT
07a0: 5f 43 48 41 52 53 5d 20 73 7a 46 6f 72 6d 61 74  _CHARS] szFormat
07b0: 3b 0a 7d 0a 61 6c 69 61 73 20 41 43 4d 46 4f 52  ;.}.alias ACMFOR
07c0: 4d 41 54 44 45 54 41 49 4c 53 57 2a 20 4c 50 41  MATDETAILSW* LPA
07d0: 43 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c 53 57  CMFORMATDETAILSW
07e0: 3b 0a 0a 73 74 72 75 63 74 20 41 43 4d 46 4f 52  ;..struct ACMFOR
07f0: 4d 41 54 54 41 47 44 45 54 41 49 4c 53 41 20 7b  MATTAGDETAILSA {
0800: 0a 09 44 57 4f 52 44 20 63 62 53 74 72 75 63 74  ..DWORD cbStruct
0810: 20 3d 20 41 43 4d 46 4f 52 4d 41 54 54 41 47 44   = ACMFORMATTAGD
0820: 45 54 41 49 4c 53 41 2e 73 69 7a 65 6f 66 3b 0a  ETAILSA.sizeof;.
0830: 09 44 57 4f 52 44 20 64 77 46 6f 72 6d 61 74 54  .DWORD dwFormatT
0840: 61 67 49 6e 64 65 78 3b 0a 09 44 57 4f 52 44 20  agIndex;..DWORD 
0850: 64 77 46 6f 72 6d 61 74 54 61 67 3b 0a 09 44 57  dwFormatTag;..DW
0860: 4f 52 44 20 63 62 46 6f 72 6d 61 74 53 69 7a 65  ORD cbFormatSize
0870: 3b 0a 09 44 57 4f 52 44 20 66 64 77 53 75 70 70  ;..DWORD fdwSupp
0880: 6f 72 74 3b 0a 09 44 57 4f 52 44 20 63 53 74 61  ort;..DWORD cSta
0890: 6e 64 61 72 64 46 6f 72 6d 61 74 73 3b 0a 09 63  ndardFormats;..c
08a0: 68 61 72 5b 41 43 4d 46 4f 52 4d 41 54 54 41 47  har[ACMFORMATTAG
08b0: 44 45 54 41 49 4c 53 5f 46 4f 52 4d 41 54 54 41  DETAILS_FORMATTA
08c0: 47 5f 43 48 41 52 53 5d 20 73 7a 46 6f 72 6d 61  G_CHARS] szForma
08d0: 74 54 61 67 3b 0a 7d 0a 61 6c 69 61 73 20 41 43  tTag;.}.alias AC
08e0: 4d 46 4f 52 4d 41 54 54 41 47 44 45 54 41 49 4c  MFORMATTAGDETAIL
08f0: 53 41 2a 20 4c 50 41 43 4d 46 4f 52 4d 41 54 54  SA* LPACMFORMATT
0900: 41 47 44 45 54 41 49 4c 53 41 3b 0a 0a 73 74 72  AGDETAILSA;..str
0910: 75 63 74 20 41 43 4d 46 4f 52 4d 41 54 54 41 47  uct ACMFORMATTAG
0920: 44 45 54 41 49 4c 53 57 20 7b 0a 09 44 57 4f 52  DETAILSW {..DWOR
0930: 44 20 63 62 53 74 72 75 63 74 20 3d 20 41 43 4d  D cbStruct = ACM
0940: 46 4f 52 4d 41 54 54 41 47 44 45 54 41 49 4c 53  FORMATTAGDETAILS
0950: 57 2e 73 69 7a 65 6f 66 3b 0a 09 44 57 4f 52 44  W.sizeof;..DWORD
0960: 20 64 77 46 6f 72 6d 61 74 54 61 67 49 6e 64 65   dwFormatTagInde
0970: 78 3b 0a 09 44 57 4f 52 44 20 64 77 46 6f 72 6d  x;..DWORD dwForm
0980: 61 74 54 61 67 3b 0a 09 44 57 4f 52 44 20 63 62  atTag;..DWORD cb
0990: 46 6f 72 6d 61 74 53 69 7a 65 3b 0a 09 44 57 4f  FormatSize;..DWO
09a0: 52 44 20 66 64 77 53 75 70 70 6f 72 74 3b 0a 09  RD fdwSupport;..
09b0: 44 57 4f 52 44 20 63 53 74 61 6e 64 61 72 64 46  DWORD cStandardF
09c0: 6f 72 6d 61 74 73 3b 0a 09 57 43 48 41 52 5b 41  ormats;..WCHAR[A
09d0: 43 4d 46 4f 52 4d 41 54 54 41 47 44 45 54 41 49  CMFORMATTAGDETAI
09e0: 4c 53 5f 46 4f 52 4d 41 54 54 41 47 5f 43 48 41  LS_FORMATTAG_CHA
09f0: 52 53 5d 20 73 7a 46 6f 72 6d 61 74 54 61 67 3b  RS] szFormatTag;
0a00: 0a 7d 0a 61 6c 69 61 73 20 41 43 4d 46 4f 52 4d  .}.alias ACMFORM
0a10: 41 54 54 41 47 44 45 54 41 49 4c 53 57 2a 20 4c  ATTAGDETAILSW* L
0a20: 50 41 43 4d 46 4f 52 4d 41 54 54 41 47 44 45 54  PACMFORMATTAGDET
0a30: 41 49 4c 53 57 3b 0a 0a 73 74 72 75 63 74 20 41  AILSW;..struct A
0a40: 43 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53 41  CMDRIVERDETAILSA
0a50: 20 7b 0a 09 44 57 4f 52 44 20 20 63 62 53 74 72   {..DWORD  cbStr
0a60: 75 63 74 20 3d 20 41 43 4d 44 52 49 56 45 52 44  uct = ACMDRIVERD
0a70: 45 54 41 49 4c 53 41 2e 73 69 7a 65 6f 66 3b 0a  ETAILSA.sizeof;.
0a80: 09 46 4f 55 52 43 43 20 66 63 63 54 79 70 65 3b  .FOURCC fccType;
0a90: 0a 09 46 4f 55 52 43 43 20 66 63 63 43 6f 6d 70  ..FOURCC fccComp
0aa0: 3b 0a 09 57 4f 52 44 20 20 20 77 4d 69 64 3b 0a  ;..WORD   wMid;.
0ab0: 09 57 4f 52 44 20 20 20 77 50 69 64 3b 0a 09 44  .WORD   wPid;..D
0ac0: 57 4f 52 44 20 20 76 64 77 41 43 4d 3b 0a 09 44  WORD  vdwACM;..D
0ad0: 57 4f 52 44 20 20 76 64 77 44 72 69 76 65 72 3b  WORD  vdwDriver;
0ae0: 0a 09 44 57 4f 52 44 20 20 66 64 77 53 75 70 70  ..DWORD  fdwSupp
0af0: 6f 72 74 3b 0a 09 44 57 4f 52 44 20 20 63 46 6f  ort;..DWORD  cFo
0b00: 72 6d 61 74 54 61 67 73 3b 0a 09 44 57 4f 52 44  rmatTags;..DWORD
0b10: 20 20 63 46 69 6c 74 65 72 54 61 67 73 3b 0a 09    cFilterTags;..
0b20: 48 49 43 4f 4e 20 20 68 69 63 6f 6e 3b 0a 09 63  HICON  hicon;..c
0b30: 68 61 72 5b 41 43 4d 44 52 49 56 45 52 44 45 54  har[ACMDRIVERDET
0b40: 41 49 4c 53 5f 53 48 4f 52 54 4e 41 4d 45 5f 43  AILS_SHORTNAME_C
0b50: 48 41 52 53 5d 20 73 7a 53 68 6f 72 74 4e 61 6d  HARS] szShortNam
0b60: 65 3b 0a 09 63 68 61 72 5b 41 43 4d 44 52 49 56  e;..char[ACMDRIV
0b70: 45 52 44 45 54 41 49 4c 53 5f 4c 4f 4e 47 4e 41  ERDETAILS_LONGNA
0b80: 4d 45 5f 43 48 41 52 53 5d 20 20 73 7a 4c 6f 6e  ME_CHARS]  szLon
0b90: 67 4e 61 6d 65 3b 0a 09 63 68 61 72 5b 41 43 4d  gName;..char[ACM
0ba0: 44 52 49 56 45 52 44 45 54 41 49 4c 53 5f 43 4f  DRIVERDETAILS_CO
0bb0: 50 59 52 49 47 48 54 5f 43 48 41 52 53 5d 20 73  PYRIGHT_CHARS] s
0bc0: 7a 43 6f 70 79 72 69 67 68 74 3b 0a 09 63 68 61  zCopyright;..cha
0bd0: 72 5b 41 43 4d 44 52 49 56 45 52 44 45 54 41 49  r[ACMDRIVERDETAI
0be0: 4c 53 5f 4c 49 43 45 4e 53 49 4e 47 5f 43 48 41  LS_LICENSING_CHA
0bf0: 52 53 5d 20 73 7a 4c 69 63 65 6e 73 69 6e 67 3b  RS] szLicensing;
0c00: 0a 09 63 68 61 72 5b 41 43 4d 44 52 49 56 45 52  ..char[ACMDRIVER
0c10: 44 45 54 41 49 4c 53 5f 46 45 41 54 55 52 45 53  DETAILS_FEATURES
0c20: 5f 43 48 41 52 53 5d 20 20 73 7a 46 65 61 74 75  _CHARS]  szFeatu
0c30: 72 65 73 3b 0a 7d 0a 61 6c 69 61 73 20 41 43 4d  res;.}.alias ACM
0c40: 44 52 49 56 45 52 44 45 54 41 49 4c 53 41 2a 20  DRIVERDETAILSA* 
0c50: 4c 50 41 43 4d 44 52 49 56 45 52 44 45 54 41 49  LPACMDRIVERDETAI
0c60: 4c 53 41 3b 0a 0a 73 74 72 75 63 74 20 41 43 4d  LSA;..struct ACM
0c70: 44 52 49 56 45 52 44 45 54 41 49 4c 53 57 20 7b  DRIVERDETAILSW {
0c80: 0a 09 44 57 4f 52 44 20 20 63 62 53 74 72 75 63  ..DWORD  cbStruc
0c90: 74 20 3d 20 41 43 4d 44 52 49 56 45 52 44 45 54  t = ACMDRIVERDET
0ca0: 41 49 4c 53 57 2e 73 69 7a 65 6f 66 3b 0a 09 46  AILSW.sizeof;..F
0cb0: 4f 55 52 43 43 20 66 63 63 54 79 70 65 3b 0a 09  OURCC fccType;..
0cc0: 46 4f 55 52 43 43 20 66 63 63 43 6f 6d 70 3b 0a  FOURCC fccComp;.
0cd0: 09 57 4f 52 44 20 20 20 77 4d 69 64 3b 0a 09 57  .WORD   wMid;..W
0ce0: 4f 52 44 20 20 20 77 50 69 64 3b 0a 09 44 57 4f  ORD   wPid;..DWO
0cf0: 52 44 20 20 76 64 77 41 43 4d 3b 0a 09 44 57 4f  RD  vdwACM;..DWO
0d00: 52 44 20 20 76 64 77 44 72 69 76 65 72 3b 0a 09  RD  vdwDriver;..
0d10: 44 57 4f 52 44 20 20 66 64 77 53 75 70 70 6f 72  DWORD  fdwSuppor
0d20: 74 3b 0a 09 44 57 4f 52 44 20 20 63 46 6f 72 6d  t;..DWORD  cForm
0d30: 61 74 54 61 67 73 3b 0a 09 44 57 4f 52 44 20 20  atTags;..DWORD  
0d40: 63 46 69 6c 74 65 72 54 61 67 73 3b 0a 09 48 49  cFilterTags;..HI
0d50: 43 4f 4e 20 20 68 69 63 6f 6e 3b 0a 09 57 43 48  CON  hicon;..WCH
0d60: 41 52 5b 41 43 4d 44 52 49 56 45 52 44 45 54 41  AR[ACMDRIVERDETA
0d70: 49 4c 53 5f 53 48 4f 52 54 4e 41 4d 45 5f 43 48  ILS_SHORTNAME_CH
0d80: 41 52 53 5d 20 73 7a 53 68 6f 72 74 4e 61 6d 65  ARS] szShortName
0d90: 3b 0a 09 57 43 48 41 52 5b 41 43 4d 44 52 49 56  ;..WCHAR[ACMDRIV
0da0: 45 52 44 45 54 41 49 4c 53 5f 4c 4f 4e 47 4e 41  ERDETAILS_LONGNA
0db0: 4d 45 5f 43 48 41 52 53 5d 20 20 73 7a 4c 6f 6e  ME_CHARS]  szLon
0dc0: 67 4e 61 6d 65 3b 0a 09 57 43 48 41 52 5b 41 43  gName;..WCHAR[AC
0dd0: 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53 5f 43  MDRIVERDETAILS_C
0de0: 4f 50 59 52 49 47 48 54 5f 43 48 41 52 53 5d 20  OPYRIGHT_CHARS] 
0df0: 73 7a 43 6f 70 79 72 69 67 68 74 3b 0a 09 57 43  szCopyright;..WC
0e00: 48 41 52 5b 41 43 4d 44 52 49 56 45 52 44 45 54  HAR[ACMDRIVERDET
0e10: 41 49 4c 53 5f 4c 49 43 45 4e 53 49 4e 47 5f 43  AILS_LICENSING_C
0e20: 48 41 52 53 5d 20 73 7a 4c 69 63 65 6e 73 69 6e  HARS] szLicensin
0e30: 67 3b 0a 09 57 43 48 41 52 5b 41 43 4d 44 52 49  g;..WCHAR[ACMDRI
0e40: 56 45 52 44 45 54 41 49 4c 53 5f 46 45 41 54 55  VERDETAILS_FEATU
0e50: 52 45 53 5f 43 48 41 52 53 5d 20 20 73 7a 46 65  RES_CHARS]  szFe
0e60: 61 74 75 72 65 73 3b 0a 7d 0a 61 6c 69 61 73 20  atures;.}.alias 
0e70: 41 43 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53  ACMDRIVERDETAILS
0e80: 57 2a 20 4c 50 41 43 4d 44 52 49 56 45 52 44 45  W* LPACMDRIVERDE
0e90: 54 41 49 4c 53 57 3b 0a 0a 65 78 74 65 72 6e 20  TAILSW;..extern 
0ea0: 28 57 69 6e 64 6f 77 73 29 20 7b 0a 09 61 6c 69  (Windows) {..ali
0eb0: 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e  as BOOL function
0ec0: 28 48 41 43 4d 44 52 49 56 45 52 49 44 20 68 61  (HACMDRIVERID ha
0ed0: 64 69 64 2c 20 4c 50 41 43 4d 46 4f 52 4d 41 54  did, LPACMFORMAT
0ee0: 44 45 54 41 49 4c 53 41 20 70 61 66 64 2c 0a 09  DETAILSA pafd,..
0ef0: 20 20 44 57 4f 52 44 5f 50 54 52 20 64 77 49 6e    DWORD_PTR dwIn
0f00: 73 74 61 6e 63 65 2c 20 44 57 4f 52 44 20 66 64  stance, DWORD fd
0f10: 77 53 75 70 70 6f 72 74 29 20 41 43 4d 46 4f 52  wSupport) ACMFOR
0f20: 4d 41 54 45 4e 55 4d 43 42 41 3b 0a 09 61 6c 69  MATENUMCBA;..ali
0f30: 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e  as BOOL function
0f40: 28 48 41 43 4d 44 52 49 56 45 52 49 44 20 68 61  (HACMDRIVERID ha
0f50: 64 69 64 2c 20 4c 50 41 43 4d 46 4f 52 4d 41 54  did, LPACMFORMAT
0f60: 44 45 54 41 49 4c 53 57 20 70 61 66 64 2c 0a 09  DETAILSW pafd,..
0f70: 20 20 44 57 4f 52 44 5f 50 54 52 20 64 77 49 6e    DWORD_PTR dwIn
0f80: 73 74 61 6e 63 65 2c 20 44 57 4f 52 44 20 66 64  stance, DWORD fd
0f90: 77 53 75 70 70 6f 72 74 29 20 41 43 4d 46 4f 52  wSupport) ACMFOR
0fa0: 4d 41 54 45 4e 55 4d 43 42 57 3b 0a 09 61 6c 69  MATENUMCBW;..ali
0fb0: 61 73 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e  as BOOL function
0fc0: 28 48 41 43 4d 44 52 49 56 45 52 49 44 20 68 61  (HACMDRIVERID ha
0fd0: 64 69 64 2c 20 4c 50 41 43 4d 46 4f 52 4d 41 54  did, LPACMFORMAT
0fe0: 54 41 47 44 45 54 41 49 4c 53 41 20 70 61 66 74  TAGDETAILSA paft
0ff0: 64 2c 0a 09 20 20 44 57 4f 52 44 5f 50 54 52 20  d,..  DWORD_PTR 
1000: 64 77 49 6e 73 74 61 6e 63 65 2c 20 44 57 4f 52  dwInstance, DWOR
1010: 44 20 66 64 77 53 75 70 70 6f 72 74 29 20 41 43  D fdwSupport) AC
1020: 4d 46 4f 52 4d 41 54 54 41 47 45 4e 55 4d 43 42  MFORMATTAGENUMCB
1030: 41 3b 0a 09 61 6c 69 61 73 20 42 4f 4f 4c 20 66  A;..alias BOOL f
1040: 75 6e 63 74 69 6f 6e 28 48 41 43 4d 44 52 49 56  unction(HACMDRIV
1050: 45 52 49 44 20 68 61 64 69 64 2c 20 4c 50 41 43  ERID hadid, LPAC
1060: 4d 46 4f 52 4d 41 54 54 41 47 44 45 54 41 49 4c  MFORMATTAGDETAIL
1070: 53 57 20 70 61 66 74 64 2c 0a 09 20 20 44 57 4f  SW paftd,..  DWO
1080: 52 44 5f 50 54 52 20 64 77 49 6e 73 74 61 6e 63  RD_PTR dwInstanc
1090: 65 2c 20 44 57 4f 52 44 20 66 64 77 53 75 70 70  e, DWORD fdwSupp
10a0: 6f 72 74 29 20 41 43 4d 46 4f 52 4d 41 54 54 41  ort) ACMFORMATTA
10b0: 47 45 4e 55 4d 43 42 57 3b 0a 09 61 6c 69 61 73  GENUMCBW;..alias
10c0: 20 42 4f 4f 4c 20 66 75 6e 63 74 69 6f 6e 28 48   BOOL function(H
10d0: 41 43 4d 44 52 49 56 45 52 49 44 20 68 61 64 69  ACMDRIVERID hadi
10e0: 64 2c 20 44 57 4f 52 44 5f 50 54 52 20 64 77 49  d, DWORD_PTR dwI
10f0: 6e 73 74 61 6e 63 65 2c 0a 09 20 20 44 57 4f 52  nstance,..  DWOR
1100: 44 20 66 64 77 53 75 70 70 6f 72 74 29 20 41 43  D fdwSupport) AC
1110: 4d 44 52 49 56 45 52 45 4e 55 4d 43 42 3b 0a 0a  MDRIVERENUMCB;..
1120: 09 4d 4d 52 45 53 55 4c 54 20 61 63 6d 44 72 69  .MMRESULT acmDri
1130: 76 65 72 4f 70 65 6e 28 4c 50 48 41 43 4d 44 52  verOpen(LPHACMDR
1140: 49 56 45 52 20 70 68 61 64 2c 20 48 41 43 4d 44  IVER phad, HACMD
1150: 52 49 56 45 52 49 44 20 68 61 64 69 64 2c 0a 09  RIVERID hadid,..
1160: 20 20 44 57 4f 52 44 20 66 64 77 4f 70 65 6e 29    DWORD fdwOpen)
1170: 3b 0a 09 4d 4d 52 45 53 55 4c 54 20 61 63 6d 44  ;..MMRESULT acmD
1180: 72 69 76 65 72 45 6e 75 6d 28 41 43 4d 44 52 49  riverEnum(ACMDRI
1190: 56 45 52 45 4e 55 4d 43 42 20 66 6e 43 61 6c 6c  VERENUMCB fnCall
11a0: 62 61 63 6b 2c 20 44 57 4f 52 44 5f 50 54 52 20  back, DWORD_PTR 
11b0: 64 77 49 6e 73 74 61 6e 63 65 2c 0a 09 20 20 44  dwInstance,..  D
11c0: 57 4f 52 44 20 66 64 77 45 6e 75 6d 29 3b 0a 09  WORD fdwEnum);..
11d0: 4d 4d 52 45 53 55 4c 54 20 61 63 6d 46 6f 72 6d  MMRESULT acmForm
11e0: 61 74 45 6e 75 6d 41 28 48 41 43 4d 44 52 49 56  atEnumA(HACMDRIV
11f0: 45 52 20 68 61 64 2c 20 4c 50 41 43 4d 46 4f 52  ER had, LPACMFOR
1200: 4d 41 54 44 45 54 41 49 4c 53 41 20 70 61 66 64  MATDETAILSA pafd
1210: 2c 0a 09 20 20 41 43 4d 46 4f 52 4d 41 54 45 4e  ,..  ACMFORMATEN
1220: 55 4d 43 42 41 20 66 6e 43 61 6c 6c 62 61 63 6b  UMCBA fnCallback
1230: 2c 20 44 57 4f 52 44 5f 50 54 52 20 64 77 49 6e  , DWORD_PTR dwIn
1240: 73 74 61 6e 63 65 2c 20 44 57 4f 52 44 20 66 64  stance, DWORD fd
1250: 77 45 6e 75 6d 29 3b 0a 09 4d 4d 52 45 53 55 4c  wEnum);..MMRESUL
1260: 54 20 61 63 6d 46 6f 72 6d 61 74 45 6e 75 6d 57  T acmFormatEnumW
1270: 28 48 41 43 4d 44 52 49 56 45 52 20 68 61 64 2c  (HACMDRIVER had,
1280: 20 4c 50 41 43 4d 46 4f 52 4d 41 54 44 45 54 41   LPACMFORMATDETA
1290: 49 4c 53 57 20 70 61 66 64 2c 0a 09 20 20 41 43  ILSW pafd,..  AC
12a0: 4d 46 4f 52 4d 41 54 45 4e 55 4d 43 42 57 20 66  MFORMATENUMCBW f
12b0: 6e 43 61 6c 6c 62 61 63 6b 2c 20 44 57 4f 52 44  nCallback, DWORD
12c0: 5f 50 54 52 20 64 77 49 6e 73 74 61 6e 63 65 2c  _PTR dwInstance,
12d0: 20 44 57 4f 52 44 20 66 64 77 45 6e 75 6d 29 3b   DWORD fdwEnum);
12e0: 0a 09 4d 4d 52 45 53 55 4c 54 20 61 63 6d 44 72  ..MMRESULT acmDr
12f0: 69 76 65 72 43 6c 6f 73 65 28 48 41 43 4d 44 52  iverClose(HACMDR
1300: 49 56 45 52 20 68 61 64 2c 20 44 57 4f 52 44 20  IVER had, DWORD 
1310: 66 64 77 43 6c 6f 73 65 29 3b 0a 09 4d 4d 52 45  fdwClose);..MMRE
1320: 53 55 4c 54 20 61 63 6d 44 72 69 76 65 72 44 65  SULT acmDriverDe
1330: 74 61 69 6c 73 41 28 48 41 43 4d 44 52 49 56 45  tailsA(HACMDRIVE
1340: 52 49 44 20 68 61 64 69 64 2c 20 4c 50 41 43 4d  RID hadid, LPACM
1350: 44 52 49 56 45 52 44 45 54 41 49 4c 53 41 20 70  DRIVERDETAILSA p
1360: 61 64 64 2c 0a 09 20 20 44 57 4f 52 44 20 66 64  add,..  DWORD fd
1370: 77 44 65 74 61 69 6c 73 29 3b 0a 09 4d 4d 52 45  wDetails);..MMRE
1380: 53 55 4c 54 20 61 63 6d 44 72 69 76 65 72 44 65  SULT acmDriverDe
1390: 74 61 69 6c 73 57 28 48 41 43 4d 44 52 49 56 45  tailsW(HACMDRIVE
13a0: 52 49 44 20 68 61 64 69 64 2c 20 4c 50 41 43 4d  RID hadid, LPACM
13b0: 44 52 49 56 45 52 44 45 54 41 49 4c 53 57 20 70  DRIVERDETAILSW p
13c0: 61 64 64 2c 0a 09 20 20 44 57 4f 52 44 20 66 64  add,..  DWORD fd
13d0: 77 44 65 74 61 69 6c 73 29 3b 0a 09 4d 4d 52 45  wDetails);..MMRE
13e0: 53 55 4c 54 20 61 63 6d 46 6f 72 6d 61 74 54 61  SULT acmFormatTa
13f0: 67 45 6e 75 6d 41 28 48 41 43 4d 44 52 49 56 45  gEnumA(HACMDRIVE
1400: 52 20 68 61 64 2c 20 4c 50 41 43 4d 46 4f 52 4d  R had, LPACMFORM
1410: 41 54 54 41 47 44 45 54 41 49 4c 53 41 20 70 61  ATTAGDETAILSA pa
1420: 66 74 64 2c 0a 09 20 20 41 43 4d 46 4f 52 4d 41  ftd,..  ACMFORMA
1430: 54 54 41 47 45 4e 55 4d 43 42 41 20 66 6e 43 61  TTAGENUMCBA fnCa
1440: 6c 6c 62 61 63 6b 2c 20 44 57 4f 52 44 5f 50 54  llback, DWORD_PT
1450: 52 20 64 77 49 6e 73 74 61 6e 63 65 2c 20 44 57  R dwInstance, DW
1460: 4f 52 44 20 66 64 77 45 6e 75 6d 29 3b 0a 09 4d  ORD fdwEnum);..M
1470: 4d 52 45 53 55 4c 54 20 61 63 6d 46 6f 72 6d 61  MRESULT acmForma
1480: 74 54 61 67 45 6e 75 6d 57 28 48 41 43 4d 44 52  tTagEnumW(HACMDR
1490: 49 56 45 52 20 68 61 64 2c 20 4c 50 41 43 4d 46  IVER had, LPACMF
14a0: 4f 52 4d 41 54 54 41 47 44 45 54 41 49 4c 53 57  ORMATTAGDETAILSW
14b0: 20 70 61 66 74 64 2c 0a 09 20 20 41 43 4d 46 4f   paftd,..  ACMFO
14c0: 52 4d 41 54 54 41 47 45 4e 55 4d 43 42 57 20 66  RMATTAGENUMCBW f
14d0: 6e 43 61 6c 6c 62 61 63 6b 2c 20 44 57 4f 52 44  nCallback, DWORD
14e0: 5f 50 54 52 20 64 77 49 6e 73 74 61 6e 63 65 2c  _PTR dwInstance,
14f0: 20 44 57 4f 52 44 20 66 64 77 45 6e 75 6d 29 3b   DWORD fdwEnum);
1500: 0a 7d 0a 0a 76 65 72 73 69 6f 6e 20 28 55 6e 69  .}..version (Uni
1510: 63 6f 64 65 29 20 7b 0a 09 61 6c 69 61 73 20 41  code) {..alias A
1520: 43 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c 53 57  CMFORMATDETAILSW
1530: 20 41 43 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c   ACMFORMATDETAIL
1540: 53 3b 0a 09 61 6c 69 61 73 20 41 43 4d 46 4f 52  S;..alias ACMFOR
1550: 4d 41 54 54 41 47 44 45 54 41 49 4c 53 57 20 41  MATTAGDETAILSW A
1560: 43 4d 46 4f 52 4d 41 54 54 41 47 44 45 54 41 49  CMFORMATTAGDETAI
1570: 4c 53 3b 0a 09 61 6c 69 61 73 20 41 43 4d 44 52  LS;..alias ACMDR
1580: 49 56 45 52 44 45 54 41 49 4c 53 57 20 41 43 4d  IVERDETAILSW ACM
1590: 44 52 49 56 45 52 44 45 54 41 49 4c 53 3b 0a 09  DRIVERDETAILS;..
15a0: 61 6c 69 61 73 20 41 43 4d 46 4f 52 4d 41 54 45  alias ACMFORMATE
15b0: 4e 55 4d 43 42 57 20 41 43 4d 46 4f 52 4d 41 54  NUMCBW ACMFORMAT
15c0: 45 4e 55 4d 43 42 3b 0a 09 61 6c 69 61 73 20 41  ENUMCB;..alias A
15d0: 43 4d 46 4f 52 4d 41 54 54 41 47 45 4e 55 4d 43  CMFORMATTAGENUMC
15e0: 42 57 20 41 43 4d 46 4f 52 4d 41 54 54 41 47 45  BW ACMFORMATTAGE
15f0: 4e 55 4d 43 42 3b 0a 09 61 6c 69 61 73 20 61 63  NUMCB;..alias ac
1600: 6d 46 6f 72 6d 61 74 45 6e 75 6d 57 20 61 63 6d  mFormatEnumW acm
1610: 46 6f 72 6d 61 74 45 6e 75 6d 3b 0a 09 61 6c 69  FormatEnum;..ali
1620: 61 73 20 61 63 6d 44 72 69 76 65 72 44 65 74 61  as acmDriverDeta
1630: 69 6c 73 57 20 61 63 6d 44 72 69 76 65 72 44 65  ilsW acmDriverDe
1640: 74 61 69 6c 73 3b 0a 09 61 6c 69 61 73 20 61 63  tails;..alias ac
1650: 6d 46 6f 72 6d 61 74 54 61 67 45 6e 75 6d 57 20  mFormatTagEnumW 
1660: 61 63 6d 46 6f 72 6d 61 74 54 61 67 45 6e 75 6d  acmFormatTagEnum
1670: 3b 0a 7d 20 65 6c 73 65 20 7b 0a 09 61 6c 69 61  ;.} else {..alia
1680: 73 20 41 43 4d 46 4f 52 4d 41 54 44 45 54 41 49  s ACMFORMATDETAI
1690: 4c 53 41 20 41 43 4d 46 4f 52 4d 41 54 44 45 54  LSA ACMFORMATDET
16a0: 41 49 4c 53 3b 0a 09 61 6c 69 61 73 20 41 43 4d  AILS;..alias ACM
16b0: 46 4f 52 4d 41 54 54 41 47 44 45 54 41 49 4c 53  FORMATTAGDETAILS
16c0: 41 20 41 43 4d 46 4f 52 4d 41 54 54 41 47 44 45  A ACMFORMATTAGDE
16d0: 54 41 49 4c 53 3b 0a 09 61 6c 69 61 73 20 41 43  TAILS;..alias AC
16e0: 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53 41 20  MDRIVERDETAILSA 
16f0: 41 43 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53  ACMDRIVERDETAILS
1700: 3b 0a 09 61 6c 69 61 73 20 41 43 4d 46 4f 52 4d  ;..alias ACMFORM
1710: 41 54 45 4e 55 4d 43 42 41 20 41 43 4d 46 4f 52  ATENUMCBA ACMFOR
1720: 4d 41 54 45 4e 55 4d 43 42 3b 0a 09 61 6c 69 61  MATENUMCB;..alia
1730: 73 20 41 43 4d 46 4f 52 4d 41 54 54 41 47 45 4e  s ACMFORMATTAGEN
1740: 55 4d 43 42 41 20 41 43 4d 46 4f 52 4d 41 54 54  UMCBA ACMFORMATT
1750: 41 47 45 4e 55 4d 43 42 3b 0a 09 61 6c 69 61 73  AGENUMCB;..alias
1760: 20 61 63 6d 46 6f 72 6d 61 74 45 6e 75 6d 41 20   acmFormatEnumA 
1770: 61 63 6d 46 6f 72 6d 61 74 45 6e 75 6d 3b 0a 09  acmFormatEnum;..
1780: 61 6c 69 61 73 20 61 63 6d 44 72 69 76 65 72 44  alias acmDriverD
1790: 65 74 61 69 6c 73 41 20 61 63 6d 44 72 69 76 65  etailsA acmDrive
17a0: 72 44 65 74 61 69 6c 73 3b 0a 09 61 6c 69 61 73  rDetails;..alias
17b0: 20 61 63 6d 46 6f 72 6d 61 74 54 61 67 45 6e 75   acmFormatTagEnu
17c0: 6d 41 20 61 63 6d 46 6f 72 6d 61 74 54 61 67 45  mA acmFormatTagE
17d0: 6e 75 6d 3b 0a 7d 0a 0a 61 6c 69 61 73 20 41 43  num;.}..alias AC
17e0: 4d 46 4f 52 4d 41 54 44 45 54 41 49 4c 53 2a 20  MFORMATDETAILS* 
17f0: 4c 50 41 43 4d 46 4f 52 4d 41 54 44 45 54 41 49  LPACMFORMATDETAI
1800: 4c 53 3b 0a 61 6c 69 61 73 20 41 43 4d 46 4f 52  LS;.alias ACMFOR
1810: 4d 41 54 54 41 47 44 45 54 41 49 4c 53 2a 20 4c  MATTAGDETAILS* L
1820: 50 41 43 4d 46 4f 52 4d 41 54 54 41 47 44 45 54  PACMFORMATTAGDET
1830: 41 49 4c 53 3b 0a 61 6c 69 61 73 20 41 43 4d 44  AILS;.alias ACMD
1840: 52 49 56 45 52 44 45 54 41 49 4c 53 2a 20 4c 50  RIVERDETAILS* LP
1850: 41 43 4d 44 52 49 56 45 52 44 45 54 41 49 4c 53  ACMDRIVERDETAILS
1860: 3b 0a                                            ;.