root/trunk/win32/msacm.d

Revision 155, 6.1 kB (checked in by Don Clugston, 6 years ago)

Committed on behalf of Stewart.

  • Property svn:eol-style set to native
Line 
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;
Note: See TracBrowser for help on using the browser.