Artifact 7ba0b5397a09dc08f9f948b8af5a1d63f6a65ca2:
- File
src/win32/msacm.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 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 ;.