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