comparison win32/msacm.d @ 1:4a9dcbd9e54f

-files of 0.13 beta -fixes so that it now compiles with the current dmd version
author marton@basel.hu
date Tue, 05 Apr 2011 20:44:01 +0200
parents
children
comparison
equal deleted inserted replaced
0:586e4a649642 1:4a9dcbd9e54f
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;