1 /** 2 * Windows API header module 3 * 4 * Translated from MinGW Windows headers 5 * 6 * Authors: Stewart Gordon 7 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) 8 * Source: $(DRUNTIMESRC core/sys/windows/_msacm.d) 9 */ 10 module nulib.system.win32.msacm; 11 12 13 version (ANSI) {} else version = Unicode; 14 15 import nulib.system.win32.basetsd, nulib.system.win32.mmsystem, nulib.system.win32.windef; 16 17 alias HACMDRIVERID = HANDLE; 18 alias HACMDRIVER = HANDLE; 19 alias LPHACMDRIVER = HACMDRIVER*; 20 21 enum size_t 22 ACMDRIVERDETAILS_SHORTNAME_CHARS = 32, 23 ACMDRIVERDETAILS_LONGNAME_CHARS = 128, 24 ACMDRIVERDETAILS_COPYRIGHT_CHARS = 80, 25 ACMDRIVERDETAILS_LICENSING_CHARS = 128, 26 ACMDRIVERDETAILS_FEATURES_CHARS = 512; 27 28 enum size_t 29 ACMFORMATDETAILS_FORMAT_CHARS = 128, 30 ACMFORMATTAGDETAILS_FORMATTAG_CHARS = 48; 31 32 align(1): 33 34 struct ACMFORMATDETAILSA { 35 DWORD cbStruct = ACMFORMATDETAILSA.sizeof; 36 DWORD dwFormatIndex; 37 DWORD dwFormatTag; 38 DWORD fdwSupport; 39 LPWAVEFORMATEX pwfx; 40 DWORD cbwfx; 41 char[ACMFORMATDETAILS_FORMAT_CHARS] szFormat = 0; 42 } 43 alias LPACMFORMATDETAILSA = ACMFORMATDETAILSA*; 44 45 struct ACMFORMATDETAILSW { 46 DWORD cbStruct = ACMFORMATDETAILSW.sizeof; 47 DWORD dwFormatIndex; 48 DWORD dwFormatTag; 49 DWORD fdwSupport; 50 LPWAVEFORMATEX pwfx; 51 DWORD cbwfx; 52 WCHAR[ACMFORMATDETAILS_FORMAT_CHARS] szFormat = 0; 53 } 54 alias LPACMFORMATDETAILSW = ACMFORMATDETAILSW*; 55 56 struct ACMFORMATTAGDETAILSA { 57 DWORD cbStruct = ACMFORMATTAGDETAILSA.sizeof; 58 DWORD dwFormatTagIndex; 59 DWORD dwFormatTag; 60 DWORD cbFormatSize; 61 DWORD fdwSupport; 62 DWORD cStandardFormats; 63 char[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag = 0; 64 } 65 alias LPACMFORMATTAGDETAILSA = ACMFORMATTAGDETAILSA*; 66 67 struct ACMFORMATTAGDETAILSW { 68 DWORD cbStruct = ACMFORMATTAGDETAILSW.sizeof; 69 DWORD dwFormatTagIndex; 70 DWORD dwFormatTag; 71 DWORD cbFormatSize; 72 DWORD fdwSupport; 73 DWORD cStandardFormats; 74 WCHAR[ACMFORMATTAGDETAILS_FORMATTAG_CHARS] szFormatTag = 0; 75 } 76 alias LPACMFORMATTAGDETAILSW = ACMFORMATTAGDETAILSW*; 77 78 struct ACMDRIVERDETAILSA { 79 align(1): 80 DWORD cbStruct = ACMDRIVERDETAILSA.sizeof; 81 FOURCC fccType; 82 FOURCC fccComp; 83 WORD wMid; 84 WORD wPid; 85 DWORD vdwACM; 86 DWORD vdwDriver; 87 DWORD fdwSupport; 88 DWORD cFormatTags; 89 DWORD cFilterTags; 90 HICON hicon; 91 char[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName = 0; 92 char[ACMDRIVERDETAILS_LONGNAME_CHARS] szLongName = 0; 93 char[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright = 0; 94 char[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing = 0; 95 char[ACMDRIVERDETAILS_FEATURES_CHARS] szFeatures = 0; 96 } 97 alias LPACMDRIVERDETAILSA = ACMDRIVERDETAILSA*; 98 99 struct ACMDRIVERDETAILSW { 100 align(1): 101 DWORD cbStruct = ACMDRIVERDETAILSW.sizeof; 102 FOURCC fccType; 103 FOURCC fccComp; 104 WORD wMid; 105 WORD wPid; 106 DWORD vdwACM; 107 DWORD vdwDriver; 108 DWORD fdwSupport; 109 DWORD cFormatTags; 110 DWORD cFilterTags; 111 HICON hicon; 112 WCHAR[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName = 0; 113 WCHAR[ACMDRIVERDETAILS_LONGNAME_CHARS] szLongName = 0; 114 WCHAR[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright = 0; 115 WCHAR[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing = 0; 116 WCHAR[ACMDRIVERDETAILS_FEATURES_CHARS] szFeatures = 0; 117 } 118 alias LPACMDRIVERDETAILSW = ACMDRIVERDETAILSW*; 119 120 extern (Windows) { 121 alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSA pafd, 122 DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBA; 123 alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSW pafd, 124 DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBW; 125 alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSA paftd, 126 DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBA; 127 alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSW paftd, 128 DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBW; 129 alias BOOL function(HACMDRIVERID hadid, DWORD_PTR dwInstance, 130 DWORD fdwSupport) ACMDRIVERENUMCB; 131 132 MMRESULT acmDriverOpen(LPHACMDRIVER phad, HACMDRIVERID hadid, 133 DWORD fdwOpen); 134 MMRESULT acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, 135 DWORD fdwEnum); 136 MMRESULT acmFormatEnumA(HACMDRIVER had, LPACMFORMATDETAILSA pafd, 137 ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); 138 MMRESULT acmFormatEnumW(HACMDRIVER had, LPACMFORMATDETAILSW pafd, 139 ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); 140 MMRESULT acmDriverClose(HACMDRIVER had, DWORD fdwClose); 141 MMRESULT acmDriverDetailsA(HACMDRIVERID hadid, LPACMDRIVERDETAILSA padd, 142 DWORD fdwDetails); 143 MMRESULT acmDriverDetailsW(HACMDRIVERID hadid, LPACMDRIVERDETAILSW padd, 144 DWORD fdwDetails); 145 MMRESULT acmFormatTagEnumA(HACMDRIVER had, LPACMFORMATTAGDETAILSA paftd, 146 ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); 147 MMRESULT acmFormatTagEnumW(HACMDRIVER had, LPACMFORMATTAGDETAILSW paftd, 148 ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum); 149 } 150 151 version (Unicode) { 152 alias ACMFORMATDETAILS = ACMFORMATDETAILSW; 153 alias ACMFORMATTAGDETAILS = ACMFORMATTAGDETAILSW; 154 alias ACMDRIVERDETAILS = ACMDRIVERDETAILSW; 155 alias ACMFORMATENUMCB = ACMFORMATENUMCBW; 156 alias ACMFORMATTAGENUMCB = ACMFORMATTAGENUMCBW; 157 alias acmFormatEnum = acmFormatEnumW; 158 alias acmDriverDetails = acmDriverDetailsW; 159 alias acmFormatTagEnum = acmFormatTagEnumW; 160 } else { 161 alias ACMFORMATDETAILS = ACMFORMATDETAILSA; 162 alias ACMFORMATTAGDETAILS = ACMFORMATTAGDETAILSA; 163 alias ACMDRIVERDETAILS = ACMDRIVERDETAILSA; 164 alias ACMFORMATENUMCB = ACMFORMATENUMCBA; 165 alias ACMFORMATTAGENUMCB = ACMFORMATTAGENUMCBA; 166 alias acmFormatEnum = acmFormatEnumA; 167 alias acmDriverDetails = acmDriverDetailsA; 168 alias acmFormatTagEnum = acmFormatTagEnumA; 169 } 170 171 alias LPACMFORMATDETAILS = ACMFORMATDETAILS*; 172 alias LPACMFORMATTAGDETAILS = ACMFORMATTAGDETAILS*; 173 alias LPACMDRIVERDETAILS = ACMDRIVERDETAILS*;