1
|
1 /***********************************************************************\
|
|
2 * msacm.d *
|
|
3 * *
|
|
4 * Windows API header module *
|
|
5 * *
|
|
6 * Translated from MinGW Windows headers *
|
|
7 * by Stewart Gordon *
|
|
8 * *
|
|
9 * Placed into public domain *
|
|
10 \***********************************************************************/
|
|
11 module win32.msacm;
|
|
12
|
|
13 private import win32.basetsd, win32.mmsystem, win32.windef;
|
|
14
|
|
15 alias HANDLE HACMDRIVERID, HACMDRIVER;
|
|
16 alias HANDLE* LPHACMDRIVER;
|
|
17
|
|
18 /* Comment from MinGW
|
|
19 found through experimentation
|
|
20 */
|
|
21 const size_t
|
|
22 ACMDRIVERDETAILS_SHORTNAME_CHARS = 32,
|
|
23 ACMDRIVERDETAILS_LONGNAME_CHARS = 128,
|
|
24 ACMDRIVERDETAILS_COPYRIGHT_CHARS = 80,
|
|
25 ACMDRIVERDETAILS_LICENSING_CHARS = 128;
|
|
26
|
|
27 /* Comment from MinGW
|
|
28 I don't know the right values for these macros
|
|
29 */
|
|
30 const size_t
|
|
31 ACMFORMATDETAILS_FORMAT_CHARS = 256,
|
|
32 ACMFORMATTAGDETAILS_FORMATTAG_CHARS = 256,
|
|
33 ACMDRIVERDETAILS_FEATURES_CHARS = 256;
|
|
34
|
|
35 struct ACMFORMATDETAILSA {
|
|
36 DWORD cbStruct = ACMFORMATDETAILSA.sizeof; // are they?
|
|
37 DWORD dwFormatIndex;
|
|
38 DWORD dwFormatTag;
|
|
39 DWORD fdwSupport;
|
|
40 LPWAVEFORMATEX pwfx;
|
|
41 DWORD cbwfx;
|
|
42 char[ACMFORMATDETAILS_FORMAT_CHARS] szFormat;
|
|
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;
|
|
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;
|
|
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;
|
|
76 }
|
|
77 alias ACMFORMATTAGDETAILSW* LPACMFORMATTAGDETAILSW;
|
|
78
|
|
79 struct ACMDRIVERDETAILSA {
|
|
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;
|
|
92 char[ACMDRIVERDETAILS_LONGNAME_CHARS] szLongName;
|
|
93 char[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright;
|
|
94 char[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing;
|
|
95 char[ACMDRIVERDETAILS_FEATURES_CHARS] szFeatures;
|
|
96 }
|
|
97 alias ACMDRIVERDETAILSA* LPACMDRIVERDETAILSA;
|
|
98
|
|
99 struct ACMDRIVERDETAILSW {
|
|
100 DWORD cbStruct = ACMDRIVERDETAILSW.sizeof;
|
|
101 FOURCC fccType;
|
|
102 FOURCC fccComp;
|
|
103 WORD wMid;
|
|
104 WORD wPid;
|
|
105 DWORD vdwACM;
|
|
106 DWORD vdwDriver;
|
|
107 DWORD fdwSupport;
|
|
108 DWORD cFormatTags;
|
|
109 DWORD cFilterTags;
|
|
110 HICON hicon;
|
|
111 WCHAR[ACMDRIVERDETAILS_SHORTNAME_CHARS] szShortName;
|
|
112 WCHAR[ACMDRIVERDETAILS_LONGNAME_CHARS] szLongName;
|
|
113 WCHAR[ACMDRIVERDETAILS_COPYRIGHT_CHARS] szCopyright;
|
|
114 WCHAR[ACMDRIVERDETAILS_LICENSING_CHARS] szLicensing;
|
|
115 WCHAR[ACMDRIVERDETAILS_FEATURES_CHARS] szFeatures;
|
|
116 }
|
|
117 alias ACMDRIVERDETAILSW* LPACMDRIVERDETAILSW;
|
|
118
|
|
119 extern (Windows) {
|
|
120 alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSA pafd,
|
|
121 DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBA;
|
|
122 alias BOOL function(HACMDRIVERID hadid, LPACMFORMATDETAILSW pafd,
|
|
123 DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATENUMCBW;
|
|
124 alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSA paftd,
|
|
125 DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBA;
|
|
126 alias BOOL function(HACMDRIVERID hadid, LPACMFORMATTAGDETAILSW paftd,
|
|
127 DWORD_PTR dwInstance, DWORD fdwSupport) ACMFORMATTAGENUMCBW;
|
|
128 alias BOOL function(HACMDRIVERID hadid, DWORD_PTR dwInstance,
|
|
129 DWORD fdwSupport) ACMDRIVERENUMCB;
|
|
130
|
|
131 MMRESULT acmDriverOpen(LPHACMDRIVER phad, HACMDRIVERID hadid,
|
|
132 DWORD fdwOpen);
|
|
133 MMRESULT acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance,
|
|
134 DWORD fdwEnum);
|
|
135 MMRESULT acmFormatEnumA(HACMDRIVER had, LPACMFORMATDETAILSA pafd,
|
|
136 ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
|
|
137 MMRESULT acmFormatEnumW(HACMDRIVER had, LPACMFORMATDETAILSW pafd,
|
|
138 ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
|
|
139 MMRESULT acmDriverClose(HACMDRIVER had, DWORD fdwClose);
|
|
140 MMRESULT acmDriverDetailsA(HACMDRIVERID hadid, LPACMDRIVERDETAILSA padd,
|
|
141 DWORD fdwDetails);
|
|
142 MMRESULT acmDriverDetailsW(HACMDRIVERID hadid, LPACMDRIVERDETAILSW padd,
|
|
143 DWORD fdwDetails);
|
|
144 MMRESULT acmFormatTagEnumA(HACMDRIVER had, LPACMFORMATTAGDETAILSA paftd,
|
|
145 ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
|
|
146 MMRESULT acmFormatTagEnumW(HACMDRIVER had, LPACMFORMATTAGDETAILSW paftd,
|
|
147 ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
|
|
148 }
|
|
149
|
|
150 version (Unicode) {
|
|
151 alias ACMFORMATDETAILSW ACMFORMATDETAILS;
|
|
152 alias ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS;
|
|
153 alias ACMDRIVERDETAILSW ACMDRIVERDETAILS;
|
|
154 alias ACMFORMATENUMCBW ACMFORMATENUMCB;
|
|
155 alias ACMFORMATTAGENUMCBW ACMFORMATTAGENUMCB;
|
|
156 alias acmFormatEnumW acmFormatEnum;
|
|
157 alias acmDriverDetailsW acmDriverDetails;
|
|
158 alias acmFormatTagEnumW acmFormatTagEnum;
|
|
159 } else {
|
|
160 alias ACMFORMATDETAILSA ACMFORMATDETAILS;
|
|
161 alias ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS;
|
|
162 alias ACMDRIVERDETAILSA ACMDRIVERDETAILS;
|
|
163 alias ACMFORMATENUMCBA ACMFORMATENUMCB;
|
|
164 alias ACMFORMATTAGENUMCBA ACMFORMATTAGENUMCB;
|
|
165 alias acmFormatEnumA acmFormatEnum;
|
|
166 alias acmDriverDetailsA acmDriverDetails;
|
|
167 alias acmFormatTagEnumA acmFormatTagEnum;
|
|
168 }
|
|
169
|
|
170 alias ACMFORMATDETAILS* LPACMFORMATDETAILS;
|
|
171 alias ACMFORMATTAGDETAILS* LPACMFORMATTAGDETAILS;
|
|
172 alias ACMDRIVERDETAILS* LPACMDRIVERDETAILS;
|