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 src/core/sys/windows/_msacm.d)
9 */
10 module core.sys.windows.msacm;
version(Windows)11 version (Windows):
12
13 version (ANSI) {} else version = Unicode;
14
15 private import core.sys.windows.basetsd, core.sys.windows.mmsystem, core.sys.windows.windef;
16
17 mixin DECLARE_HANDLE!("HACMDRIVERID");
18 mixin DECLARE_HANDLE!("HACMDRIVER");
19 alias HACMDRIVER* LPHACMDRIVER;
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 ACMFORMATDETAILSA* LPACMFORMATDETAILSA;
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 ACMFORMATDETAILSW* LPACMFORMATDETAILSW;
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 ACMFORMATTAGDETAILSA* LPACMFORMATTAGDETAILSA;
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 ACMFORMATTAGDETAILSW* LPACMFORMATTAGDETAILSW;
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 ACMDRIVERDETAILSA* LPACMDRIVERDETAILSA;
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 ACMDRIVERDETAILSW* LPACMDRIVERDETAILSW;
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
version(Unicode)151 version (Unicode) {
152 alias ACMFORMATDETAILSW ACMFORMATDETAILS;
153 alias ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS;
154 alias ACMDRIVERDETAILSW ACMDRIVERDETAILS;
155 alias ACMFORMATENUMCBW ACMFORMATENUMCB;
156 alias ACMFORMATTAGENUMCBW ACMFORMATTAGENUMCB;
157 alias acmFormatEnumW acmFormatEnum;
158 alias acmDriverDetailsW acmDriverDetails;
159 alias acmFormatTagEnumW acmFormatTagEnum;
160 } else {
161 alias ACMFORMATDETAILSA ACMFORMATDETAILS;
162 alias ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS;
163 alias ACMDRIVERDETAILSA ACMDRIVERDETAILS;
164 alias ACMFORMATENUMCBA ACMFORMATENUMCB;
165 alias ACMFORMATTAGENUMCBA ACMFORMATTAGENUMCB;
166 alias acmFormatEnumA acmFormatEnum;
167 alias acmDriverDetailsA acmDriverDetails;
168 alias acmFormatTagEnumA acmFormatTagEnum;
169 }
170
171 alias ACMFORMATDETAILS* LPACMFORMATDETAILS;
172 alias ACMFORMATTAGDETAILS* LPACMFORMATTAGDETAILS;
173 alias ACMDRIVERDETAILS* LPACMDRIVERDETAILS;
174