Install w32api-3.13-mingw32-dev.tar.gz
[git/jnareb-git.git] / mingw / include / msacm.h
blob4f215367ec801599503a6cfa768daff5c137738b
1 /*author: Adrian Sandor
2 written for MinGW*/
3 #ifndef _MSACM_H
4 #define _MSACM_H
6 #if __GNUC__ >= 3
7 #pragma GCC system_header
8 #endif
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
14 typedef HANDLE HACMDRIVERID, HACMDRIVER, *LPHACMDRIVER; /*they're handles, right?*/
16 /*found through experimentation*/
17 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
18 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
19 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
20 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
22 /*I don't know the right values for these macros*/
23 #define ACMFORMATDETAILS_FORMAT_CHARS 256
24 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 256
25 #define ACMDRIVERDETAILS_FEATURES_CHARS 256
27 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformatdetails_str.asp*/
28 typedef struct {
29 DWORD cbStruct;
30 DWORD dwFormatIndex;
31 DWORD dwFormatTag;
32 DWORD fdwSupport;
33 LPWAVEFORMATEX pwfx;
34 DWORD cbwfx;
35 char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
36 } ACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
37 typedef struct {
38 DWORD cbStruct;
39 DWORD dwFormatIndex;
40 DWORD dwFormatTag;
41 DWORD fdwSupport;
42 LPWAVEFORMATEX pwfx;
43 DWORD cbwfx;
44 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
45 } ACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
47 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformattagdetails_str.asp*/
48 typedef struct {
49 DWORD cbStruct;
50 DWORD dwFormatTagIndex;
51 DWORD dwFormatTag;
52 DWORD cbFormatSize;
53 DWORD fdwSupport;
54 DWORD cStandardFormats;
55 char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
56 } ACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
57 typedef struct {
58 DWORD cbStruct;
59 DWORD dwFormatTagIndex;
60 DWORD dwFormatTag;
61 DWORD cbFormatSize;
62 DWORD fdwSupport;
63 DWORD cStandardFormats;
64 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
65 } ACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
67 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverdetails_str.asp*/
68 typedef struct {
69 DWORD cbStruct;
70 FOURCC fccType;
71 FOURCC fccComp;
72 WORD wMid;
73 WORD wPid;
74 DWORD vdwACM;
75 DWORD vdwDriver;
76 DWORD fdwSupport;
77 DWORD cFormatTags;
78 DWORD cFilterTags;
79 HICON hicon;
80 char szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
81 char szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
82 char szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
83 char szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
84 char szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
85 } ACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
86 typedef struct {
87 DWORD cbStruct;
88 FOURCC fccType;
89 FOURCC fccComp;
90 WORD wMid;
91 WORD wPid;
92 DWORD vdwACM;
93 DWORD vdwDriver;
94 DWORD fdwSupport;
95 DWORD cFormatTags;
96 DWORD cFilterTags;
97 HICON hicon;
98 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
99 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
100 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
101 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
102 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
103 } ACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
105 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformatenumcallback.asp*/
106 typedef BOOL (CALLBACK *ACMFORMATENUMCBA) (
107 HACMDRIVERID hadid,
108 LPACMFORMATDETAILSA pafd,
109 DWORD_PTR dwInstance,
110 DWORD fdwSupport
112 typedef BOOL (CALLBACK *ACMFORMATENUMCBW) (
113 HACMDRIVERID hadid,
114 LPACMFORMATDETAILSW pafd,
115 DWORD_PTR dwInstance,
116 DWORD fdwSupport
119 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformattagenumcallback.asp*/
120 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA) (
121 HACMDRIVERID hadid,
122 LPACMFORMATTAGDETAILSA paftd,
123 DWORD_PTR dwInstance,
124 DWORD fdwSupport
126 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW) (
127 HACMDRIVERID hadid,
128 LPACMFORMATTAGDETAILSW paftd,
129 DWORD_PTR dwInstance,
130 DWORD fdwSupport
133 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverenumcallback.asp*/
134 typedef BOOL (CALLBACK *ACMDRIVERENUMCB) (
135 HACMDRIVERID hadid,
136 DWORD_PTR dwInstance,
137 DWORD fdwSupport
140 /*and now the functions...*/
142 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriveropen.asp*/
143 MMRESULT WINAPI acmDriverOpen(LPHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen);
144 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverenum.asp*/
145 MMRESULT WINAPI acmDriverEnum(ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
146 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformatenum.asp*/
147 MMRESULT WINAPI acmFormatEnumA(HACMDRIVER had, LPACMFORMATDETAILSA pafd, ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
148 MMRESULT WINAPI acmFormatEnumW(HACMDRIVER had, LPACMFORMATDETAILSW pafd, ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
149 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverclose.asp*/
150 MMRESULT WINAPI acmDriverClose(HACMDRIVER had, DWORD fdwClose);
151 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmdriverdetails.asp*/
152 MMRESULT WINAPI acmDriverDetailsA(HACMDRIVERID hadid, LPACMDRIVERDETAILSA padd, DWORD fdwDetails);
153 MMRESULT WINAPI acmDriverDetailsW(HACMDRIVERID hadid, LPACMDRIVERDETAILSW padd, DWORD fdwDetails);
154 /*msdn.microsoft.com/library/default.asp?url=/library/en-us/multimed/htm/_win32_acmformattagenum.asp*/
155 MMRESULT WINAPI acmFormatTagEnumA(HACMDRIVER had, LPACMFORMATTAGDETAILSA paftd, ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
156 MMRESULT WINAPI acmFormatTagEnumW(HACMDRIVER had, LPACMFORMATTAGDETAILSW paftd, ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum);
158 #ifdef UNICODE
160 typedef ACMFORMATDETAILSW ACMFORMATDETAILS, *LPACMFORMATDETAILS;
161 typedef ACMFORMATTAGDETAILSW ACMFORMATTAGDETAILS, *LPACMFORMATTAGDETAILS;
162 typedef ACMDRIVERDETAILSW ACMDRIVERDETAILS, *LPACMDRIVERDETAILS;
163 typedef ACMFORMATENUMCBW ACMFORMATENUMCB;
164 typedef ACMFORMATTAGENUMCBW ACMFORMATTAGENUMCB;
165 #define acmFormatEnum acmFormatEnumW
166 #define acmDriverDetails acmDriverDetailsW
167 #define acmFormatTagEnum acmFormatTagEnumW
169 #else /*ifdef UNICODE*/
171 typedef ACMFORMATDETAILSA ACMFORMATDETAILS, *LPACMFORMATDETAILS;
172 typedef ACMFORMATTAGDETAILSA ACMFORMATTAGDETAILS, *LPACMFORMATTAGDETAILS;
173 typedef ACMDRIVERDETAILSA ACMDRIVERDETAILS, *LPACMDRIVERDETAILS;
174 typedef ACMFORMATENUMCBA ACMFORMATENUMCB;
175 typedef ACMFORMATTAGENUMCBA ACMFORMATTAGENUMCB;
176 #define acmFormatEnum acmFormatEnumA
177 #define acmDriverDetails acmDriverDetailsA
178 #define acmFormatTagEnum acmFormatTagEnumA
180 #endif /*ifdef UNICODE*/
182 #ifdef __cplusplus
184 #endif
186 #endif