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