ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/msacm.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 25699 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6 #ifndef _INC_ACM
7 #define _INC_ACM
8
9 #if !defined(_INC_MMREG) || (_INC_MMREG < 142)
10 #ifndef RC_INVOKED
11 #error MMREG.H version 142 or greater to be included first
12 #endif
13 #endif
14
15 #if defined(UNICODE) && !defined(_UNICODE)
16 #ifndef RC_INVOKED
17 #warning MSACM.H: Defining _UNICODE because application defined UNICODE
18 #endif
19 #define _UNICODE
20 #endif
21
22 #include "pshpack1.h"
23
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27
28 #ifndef DRV_MAPPER_PREFERRED_INPUT_GET
29 #define DRV_MAPPER_PREFERRED_INPUT_GET (DRV_USER + 0)
30 #endif
31
32 #ifndef DRV_MAPPER_PREFERRED_OUTPUT_GET
33 #define DRV_MAPPER_PREFERRED_OUTPUT_GET (DRV_USER + 2)
34 #endif
35
36 #ifndef DRVM_MAPPER_STATUS
37 #define DRVM_MAPPER (0x2000)
38 #define DRVM_MAPPER_STATUS (DRVM_MAPPER+0)
39 #endif
40
41 #ifndef WIDM_MAPPER_STATUS
42 #define WIDM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
43 #define WAVEIN_MAPPER_STATUS_DEVICE 0
44 #define WAVEIN_MAPPER_STATUS_MAPPED 1
45 #define WAVEIN_MAPPER_STATUS_FORMAT 2
46 #endif
47
48 #ifndef WODM_MAPPER_STATUS
49 #define WODM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
50 #define WAVEOUT_MAPPER_STATUS_DEVICE 0
51 #define WAVEOUT_MAPPER_STATUS_MAPPED 1
52 #define WAVEOUT_MAPPER_STATUS_FORMAT 2
53 #endif
54
55 #define ACMAPI WINAPI
56
57 DECLARE_HANDLE(HACMDRIVERID);
58
59 typedef HACMDRIVERID *PHACMDRIVERID;
60 typedef HACMDRIVERID *LPHACMDRIVERID;
61
62 DECLARE_HANDLE(HACMDRIVER);
63
64 typedef HACMDRIVER *PHACMDRIVER;
65 typedef HACMDRIVER *LPHACMDRIVER;
66
67 DECLARE_HANDLE(HACMSTREAM);
68
69 typedef HACMSTREAM *PHACMSTREAM;
70 typedef HACMSTREAM *LPHACMSTREAM;
71
72 DECLARE_HANDLE(HACMOBJ);
73
74 typedef HACMOBJ *PHACMOBJ;
75 typedef HACMOBJ *LPHACMOBJ;
76
77 #ifndef _MMRESULT_
78 #define _MMRESULT_
79 typedef UINT MMRESULT;
80 #endif
81
82 #define ACMERR_BASE (512)
83 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
84 #define ACMERR_BUSY (ACMERR_BASE + 1)
85 #define ACMERR_UNPREPARED (ACMERR_BASE + 2)
86 #define ACMERR_CANCELED (ACMERR_BASE + 3)
87
88 #define MM_ACM_OPEN (MM_STREAM_OPEN)
89 #define MM_ACM_CLOSE (MM_STREAM_CLOSE)
90 #define MM_ACM_DONE (MM_STREAM_DONE)
91
92 DWORD ACMAPI acmGetVersion(void);
93 MMRESULT ACMAPI acmMetrics(HACMOBJ hao,UINT uMetric,LPVOID pMetric);
94
95 #define ACM_METRIC_COUNT_DRIVERS 1
96 #define ACM_METRIC_COUNT_CODECS 2
97 #define ACM_METRIC_COUNT_CONVERTERS 3
98 #define ACM_METRIC_COUNT_FILTERS 4
99 #define ACM_METRIC_COUNT_DISABLED 5
100 #define ACM_METRIC_COUNT_HARDWARE 6
101 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
102 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
103 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
104 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
105 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
106 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
107 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
108 #define ACM_METRIC_MAX_SIZE_FORMAT 50
109 #define ACM_METRIC_MAX_SIZE_FILTER 51
110 #define ACM_METRIC_DRIVER_SUPPORT 100
111 #define ACM_METRIC_DRIVER_PRIORITY 101
112
113 typedef WINBOOL (CALLBACK *ACMDRIVERENUMCB)(HACMDRIVERID hadid,DWORD_PTR dwInstance,DWORD fdwSupport);
114
115 MMRESULT ACMAPI acmDriverEnum(ACMDRIVERENUMCB fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
116
117 #define ACM_DRIVERENUMF_NOLOCAL __MSABI_LONG(0x40000000)
118 #define ACM_DRIVERENUMF_DISABLED __MSABI_LONG(0x80000000)
119
120 MMRESULT ACMAPI acmDriverID(HACMOBJ hao,LPHACMDRIVERID phadid,DWORD fdwDriverID);
121 MMRESULT ACMAPI acmDriverAddA(LPHACMDRIVERID phadid,HINSTANCE hinstModule,LPARAM lParam,DWORD dwPriority,DWORD fdwAdd);
122 MMRESULT ACMAPI acmDriverAddW(LPHACMDRIVERID phadid,HINSTANCE hinstModule,LPARAM lParam,DWORD dwPriority,DWORD fdwAdd);
123 #ifdef _UNICODE
124 #define acmDriverAdd acmDriverAddW
125 #else
126 #define acmDriverAdd acmDriverAddA
127 #endif
128
129 #define ACM_DRIVERADDF_NAME __MSABI_LONG(0x00000001)
130 #define ACM_DRIVERADDF_FUNCTION __MSABI_LONG(0x00000003)
131 #define ACM_DRIVERADDF_NOTIFYHWND __MSABI_LONG(0x00000004)
132 #define ACM_DRIVERADDF_TYPEMASK __MSABI_LONG(0x00000007)
133 #define ACM_DRIVERADDF_LOCAL __MSABI_LONG(0x00000000)
134 #define ACM_DRIVERADDF_GLOBAL __MSABI_LONG(0x00000008)
135
136 typedef LRESULT (CALLBACK *ACMDRIVERPROC)(DWORD_PTR,HACMDRIVERID,UINT,LPARAM,LPARAM);
137 typedef ACMDRIVERPROC *LPACMDRIVERPROC;
138
139 MMRESULT ACMAPI acmDriverRemove(HACMDRIVERID hadid,DWORD fdwRemove);
140 MMRESULT ACMAPI acmDriverOpen(LPHACMDRIVER phad,HACMDRIVERID hadid,DWORD fdwOpen);
141 MMRESULT ACMAPI acmDriverClose(HACMDRIVER had,DWORD fdwClose);
142 LRESULT ACMAPI acmDriverMessage(HACMDRIVER had,UINT uMsg,LPARAM lParam1,LPARAM lParam2);
143
144 #define ACMDM_USER (DRV_USER + 0x0000)
145 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
146 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
147
148 #define ACMDM_BASE ACMDM_RESERVED_LOW
149
150 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
151
152 MMRESULT ACMAPI acmDriverPriority(HACMDRIVERID hadid,DWORD dwPriority,DWORD fdwPriority);
153
154 #define ACM_DRIVERPRIORITYF_ENABLE __MSABI_LONG(0x00000001)
155 #define ACM_DRIVERPRIORITYF_DISABLE __MSABI_LONG(0x00000002)
156 #define ACM_DRIVERPRIORITYF_ABLEMASK __MSABI_LONG(0x00000003)
157 #define ACM_DRIVERPRIORITYF_BEGIN __MSABI_LONG(0x00010000)
158 #define ACM_DRIVERPRIORITYF_END __MSABI_LONG(0x00020000)
159 #define ACM_DRIVERPRIORITYF_DEFERMASK __MSABI_LONG(0x00030000)
160
161 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
162 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
163 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
164 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
165 #define ACMDRIVERDETAILS_FEATURES_CHARS 512
166
167 typedef struct tACMDRIVERDETAILSA {
168 DWORD cbStruct;
169 FOURCC fccType;
170 FOURCC fccComp;
171 WORD wMid;
172 WORD wPid;
173 DWORD vdwACM;
174 DWORD vdwDriver;
175 DWORD fdwSupport;
176 DWORD cFormatTags;
177 DWORD cFilterTags;
178 HICON hicon;
179 char szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
180 char szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
181 char szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
182 char szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
183 char szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
184 } ACMDRIVERDETAILSA,*PACMDRIVERDETAILSA,*LPACMDRIVERDETAILSA;
185
186 typedef struct tACMDRIVERDETAILSW {
187 DWORD cbStruct;
188 FOURCC fccType;
189 FOURCC fccComp;
190 WORD wMid;
191 WORD wPid;
192 DWORD vdwACM;
193 DWORD vdwDriver;
194 DWORD fdwSupport;
195 DWORD cFormatTags;
196 DWORD cFilterTags;
197 HICON hicon;
198 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
199 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
200 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
201 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
202 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
203 } ACMDRIVERDETAILSW,*PACMDRIVERDETAILSW,*LPACMDRIVERDETAILSW;
204 #ifdef _UNICODE
205 #define ACMDRIVERDETAILS ACMDRIVERDETAILSW
206 #define PACMDRIVERDETAILS PACMDRIVERDETAILSW
207 #define LPACMDRIVERDETAILS LPACMDRIVERDETAILSW
208 #else
209 #define ACMDRIVERDETAILS ACMDRIVERDETAILSA
210 #define PACMDRIVERDETAILS PACMDRIVERDETAILSA
211 #define LPACMDRIVERDETAILS LPACMDRIVERDETAILSA
212 #endif
213
214 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a','u','d','c')
215 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0','\0','\0','\0')
216
217 #define ACMDRIVERDETAILS_SUPPORTF_CODEC __MSABI_LONG(0x00000001)
218 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER __MSABI_LONG(0x00000002)
219 #define ACMDRIVERDETAILS_SUPPORTF_FILTER __MSABI_LONG(0x00000004)
220 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE __MSABI_LONG(0x00000008)
221 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC __MSABI_LONG(0x00000010)
222 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL __MSABI_LONG(0x40000000)
223 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED __MSABI_LONG(0x80000000)
224
225 MMRESULT ACMAPI acmDriverDetailsA(HACMDRIVERID hadid,LPACMDRIVERDETAILSA padd,DWORD fdwDetails);
226 MMRESULT ACMAPI acmDriverDetailsW(HACMDRIVERID hadid,LPACMDRIVERDETAILSW padd,DWORD fdwDetails);
227 #ifdef _UNICODE
228 #define acmDriverDetails acmDriverDetailsW
229 #else
230 #define acmDriverDetails acmDriverDetailsA
231 #endif
232
233 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
234
235 typedef struct tACMFORMATTAGDETAILSA {
236 DWORD cbStruct;
237 DWORD dwFormatTagIndex;
238 DWORD dwFormatTag;
239 DWORD cbFormatSize;
240 DWORD fdwSupport;
241 DWORD cStandardFormats;
242 char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
243 } ACMFORMATTAGDETAILSA,*PACMFORMATTAGDETAILSA,*LPACMFORMATTAGDETAILSA;
244
245 typedef struct tACMFORMATTAGDETAILSW {
246 DWORD cbStruct;
247 DWORD dwFormatTagIndex;
248 DWORD dwFormatTag;
249 DWORD cbFormatSize;
250 DWORD fdwSupport;
251 DWORD cStandardFormats;
252 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
253 } ACMFORMATTAGDETAILSW,*PACMFORMATTAGDETAILSW,*LPACMFORMATTAGDETAILSW;
254 #ifdef _UNICODE
255 #define ACMFORMATTAGDETAILS ACMFORMATTAGDETAILSW
256 #define PACMFORMATTAGDETAILS PACMFORMATTAGDETAILSW
257 #define LPACMFORMATTAGDETAILS LPACMFORMATTAGDETAILSW
258 #else
259 #define ACMFORMATTAGDETAILS ACMFORMATTAGDETAILSA
260 #define PACMFORMATTAGDETAILS PACMFORMATTAGDETAILSA
261 #define LPACMFORMATTAGDETAILS LPACMFORMATTAGDETAILSA
262 #endif
263
264 MMRESULT ACMAPI acmFormatTagDetailsA(HACMDRIVER had,LPACMFORMATTAGDETAILSA paftd,DWORD fdwDetails);
265 MMRESULT ACMAPI acmFormatTagDetailsW(HACMDRIVER had,LPACMFORMATTAGDETAILSW paftd,DWORD fdwDetails);
266 #ifdef _UNICODE
267 #define acmFormatTagDetails acmFormatTagDetailsW
268 #else
269 #define acmFormatTagDetails acmFormatTagDetailsA
270 #endif
271
272 #define ACM_FORMATTAGDETAILSF_INDEX __MSABI_LONG(0x00000000)
273 #define ACM_FORMATTAGDETAILSF_FORMATTAG __MSABI_LONG(0x00000001)
274 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE __MSABI_LONG(0x00000002)
275 #define ACM_FORMATTAGDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F)
276
277 typedef WINBOOL (CALLBACK *ACMFORMATTAGENUMCBA)(HACMDRIVERID hadid,LPACMFORMATTAGDETAILSA paftd,DWORD_PTR dwInstance,DWORD fdwSupport);
278 typedef WINBOOL (CALLBACK *ACMFORMATTAGENUMCBW)(HACMDRIVERID hadid,LPACMFORMATTAGDETAILSW paftd,DWORD_PTR dwInstance,DWORD fdwSupport);
279
280 MMRESULT ACMAPI acmFormatTagEnumA(HACMDRIVER had,LPACMFORMATTAGDETAILSA paftd,ACMFORMATTAGENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
281 MMRESULT ACMAPI acmFormatTagEnumW(HACMDRIVER had,LPACMFORMATTAGDETAILSW paftd,ACMFORMATTAGENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
282 #ifdef _UNICODE
283 #define ACMFORMATTAGENUMCB ACMFORMATTAGENUMCBW
284 #define acmFormatTagEnum acmFormatTagEnumW
285 #else
286 #define ACMFORMATTAGENUMCB ACMFORMATTAGENUMCBA
287 #define acmFormatTagEnum acmFormatTagEnumA
288 #endif
289
290 #define ACMFORMATDETAILS_FORMAT_CHARS 128
291
292 typedef struct tACMFORMATDETAILSA {
293 DWORD cbStruct;
294 DWORD dwFormatIndex;
295 DWORD dwFormatTag;
296 DWORD fdwSupport;
297 LPWAVEFORMATEX pwfx;
298 DWORD cbwfx;
299 char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
300 } ACMFORMATDETAILSA,*PACMFORMATDETAILSA,*LPACMFORMATDETAILSA;
301
302 typedef struct tACMFORMATDETAILSW {
303 DWORD cbStruct;
304 DWORD dwFormatIndex;
305 DWORD dwFormatTag;
306 DWORD fdwSupport;
307 LPWAVEFORMATEX pwfx;
308 DWORD cbwfx;
309 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
310 } ACMFORMATDETAILSW,*PACMFORMATDETAILSW,*LPACMFORMATDETAILSW;
311 #ifdef _UNICODE
312 #define ACMFORMATDETAILS ACMFORMATDETAILSW
313 #define PACMFORMATDETAILS PACMFORMATDETAILSW
314 #define LPACMFORMATDETAILS LPACMFORMATDETAILSW
315 #else
316 #define ACMFORMATDETAILS ACMFORMATDETAILSA
317 #define PACMFORMATDETAILS PACMFORMATDETAILSA
318 #define LPACMFORMATDETAILS LPACMFORMATDETAILSA
319 #endif
320
321 MMRESULT ACMAPI acmFormatDetailsA(HACMDRIVER had,LPACMFORMATDETAILSA pafd,DWORD fdwDetails);
322 MMRESULT ACMAPI acmFormatDetailsW(HACMDRIVER had,LPACMFORMATDETAILSW pafd,DWORD fdwDetails);
323 #ifdef _UNICODE
324 #define acmFormatDetails acmFormatDetailsW
325 #else
326 #define acmFormatDetails acmFormatDetailsA
327 #endif
328
329 #define ACM_FORMATDETAILSF_INDEX __MSABI_LONG(0x00000000)
330 #define ACM_FORMATDETAILSF_FORMAT __MSABI_LONG(0x00000001)
331 #define ACM_FORMATDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F)
332
333 typedef WINBOOL (CALLBACK *ACMFORMATENUMCBA)(HACMDRIVERID hadid,LPACMFORMATDETAILSA pafd,DWORD_PTR dwInstance,DWORD fdwSupport);
334 typedef WINBOOL (CALLBACK *ACMFORMATENUMCBW)(HACMDRIVERID hadid,LPACMFORMATDETAILSW pafd,DWORD_PTR dwInstance,DWORD fdwSupport);
335
336 MMRESULT ACMAPI acmFormatEnumA(HACMDRIVER had,LPACMFORMATDETAILSA pafd,ACMFORMATENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
337 MMRESULT ACMAPI acmFormatEnumW(HACMDRIVER had,LPACMFORMATDETAILSW pafd,ACMFORMATENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
338 #ifdef _UNICODE
339 #define ACMFORMATENUMCB ACMFORMATENUMCBW
340 #define acmFormatEnum acmFormatEnumW
341 #else
342 #define ACMFORMATENUMCB ACMFORMATENUMCBA
343 #define acmFormatEnum acmFormatEnumA
344 #endif
345
346 #define ACM_FORMATENUMF_WFORMATTAG __MSABI_LONG(0x00010000)
347 #define ACM_FORMATENUMF_NCHANNELS __MSABI_LONG(0x00020000)
348 #define ACM_FORMATENUMF_NSAMPLESPERSEC __MSABI_LONG(0x00040000)
349 #define ACM_FORMATENUMF_WBITSPERSAMPLE __MSABI_LONG(0x00080000)
350 #define ACM_FORMATENUMF_CONVERT __MSABI_LONG(0x00100000)
351 #define ACM_FORMATENUMF_SUGGEST __MSABI_LONG(0x00200000)
352 #define ACM_FORMATENUMF_HARDWARE __MSABI_LONG(0x00400000)
353 #define ACM_FORMATENUMF_INPUT __MSABI_LONG(0x00800000)
354 #define ACM_FORMATENUMF_OUTPUT __MSABI_LONG(0x01000000)
355
356 MMRESULT ACMAPI acmFormatSuggest
357 (HACMDRIVER had,LPWAVEFORMATEX pwfxSrc,LPWAVEFORMATEX pwfxDst,DWORD cbwfxDst,DWORD fdwSuggest);
358
359 #define ACM_FORMATSUGGESTF_WFORMATTAG __MSABI_LONG(0x00010000)
360 #define ACM_FORMATSUGGESTF_NCHANNELS __MSABI_LONG(0x00020000)
361 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC __MSABI_LONG(0x00040000)
362 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE __MSABI_LONG(0x00080000)
363
364 #define ACM_FORMATSUGGESTF_TYPEMASK __MSABI_LONG(0x00FF0000)
365
366 #define ACMHELPMSGSTRINGA "acmchoose_help"
367 #define ACMHELPMSGSTRINGW L"acmchoose_help"
368 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
369 #define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
370 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
371 #define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
372 #ifdef _UNICODE
373 #define ACMHELPMSGSTRING ACMHELPMSGSTRINGW
374 #define ACMHELPMSGCONTEXTMENU ACMHELPMSGCONTEXTMENUW
375 #define ACMHELPMSGCONTEXTHELP ACMHELPMSGCONTEXTHELPW
376 #else
377 #define ACMHELPMSGSTRING ACMHELPMSGSTRINGA
378 #define ACMHELPMSGCONTEXTMENU ACMHELPMSGCONTEXTMENUA
379 #define ACMHELPMSGCONTEXTHELP ACMHELPMSGCONTEXTHELPA
380 #endif
381
382 #define MM_ACM_FORMATCHOOSE (0x8000)
383
384 #define FORMATCHOOSE_MESSAGE 0
385 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
386 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
387 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
388
389 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
390 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
391 #ifdef _UNICODE
392 #define ACMFORMATCHOOSEHOOKPROC ACMFORMATCHOOSEHOOKPROCW
393 #else
394 #define ACMFORMATCHOOSEHOOKPROC ACMFORMATCHOOSEHOOKPROCA
395 #endif
396
397 typedef struct tACMFORMATCHOOSEA {
398 DWORD cbStruct;
399 DWORD fdwStyle;
400 HWND hwndOwner;
401 LPWAVEFORMATEX pwfx;
402 DWORD cbwfx;
403 LPCSTR pszTitle;
404 char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
405 char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
406 LPSTR pszName;
407 DWORD cchName;
408 DWORD fdwEnum;
409 LPWAVEFORMATEX pwfxEnum;
410 HINSTANCE hInstance;
411 LPCSTR pszTemplateName;
412 LPARAM lCustData;
413 ACMFORMATCHOOSEHOOKPROCA pfnHook;
414 } ACMFORMATCHOOSEA,*PACMFORMATCHOOSEA,*LPACMFORMATCHOOSEA;
415
416 typedef struct tACMFORMATCHOOSEW {
417 DWORD cbStruct;
418 DWORD fdwStyle;
419 HWND hwndOwner;
420 LPWAVEFORMATEX pwfx;
421 DWORD cbwfx;
422 LPCWSTR pszTitle;
423 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
424 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
425 LPWSTR pszName;
426 DWORD cchName;
427 DWORD fdwEnum;
428 LPWAVEFORMATEX pwfxEnum;
429 HINSTANCE hInstance;
430 LPCWSTR pszTemplateName;
431 LPARAM lCustData;
432 ACMFORMATCHOOSEHOOKPROCW pfnHook;
433 } ACMFORMATCHOOSEW,*PACMFORMATCHOOSEW,*LPACMFORMATCHOOSEW;
434 #ifdef _UNICODE
435 #define ACMFORMATCHOOSE ACMFORMATCHOOSEW
436 #define PACMFORMATCHOOSE PACMFORMATCHOOSEW
437 #define LPACMFORMATCHOOSE LPACMFORMATCHOOSEW
438 #else
439 #define ACMFORMATCHOOSE ACMFORMATCHOOSEA
440 #define PACMFORMATCHOOSE PACMFORMATCHOOSEA
441 #define LPACMFORMATCHOOSE LPACMFORMATCHOOSEA
442 #endif
443
444 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP __MSABI_LONG(0x00000004)
445 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK __MSABI_LONG(0x00000008)
446 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE __MSABI_LONG(0x00000010)
447 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE __MSABI_LONG(0x00000020)
448 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT __MSABI_LONG(0x00000040)
449 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP __MSABI_LONG(0x00000080)
450
451 MMRESULT ACMAPI acmFormatChooseA(LPACMFORMATCHOOSEA pafmtc);
452 MMRESULT ACMAPI acmFormatChooseW(LPACMFORMATCHOOSEW pafmtc);
453 #ifdef _UNICODE
454 #define acmFormatChoose acmFormatChooseW
455 #else
456 #define acmFormatChoose acmFormatChooseA
457 #endif
458
459 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
460
461 typedef struct tACMFILTERTAGDETAILSA {
462 DWORD cbStruct;
463 DWORD dwFilterTagIndex;
464 DWORD dwFilterTag;
465 DWORD cbFilterSize;
466 DWORD fdwSupport;
467 DWORD cStandardFilters;
468 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
469 } ACMFILTERTAGDETAILSA,*PACMFILTERTAGDETAILSA,*LPACMFILTERTAGDETAILSA;
470
471 typedef struct tACMFILTERTAGDETAILSW {
472 DWORD cbStruct;
473 DWORD dwFilterTagIndex;
474 DWORD dwFilterTag;
475 DWORD cbFilterSize;
476 DWORD fdwSupport;
477 DWORD cStandardFilters;
478 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
479 } ACMFILTERTAGDETAILSW,*PACMFILTERTAGDETAILSW,*LPACMFILTERTAGDETAILSW;
480 #ifdef _UNICODE
481 #define ACMFILTERTAGDETAILS ACMFILTERTAGDETAILSW
482 #define PACMFILTERTAGDETAILS PACMFILTERTAGDETAILSW
483 #define LPACMFILTERTAGDETAILS LPACMFILTERTAGDETAILSW
484 #else
485 #define ACMFILTERTAGDETAILS ACMFILTERTAGDETAILSA
486 #define PACMFILTERTAGDETAILS PACMFILTERTAGDETAILSA
487 #define LPACMFILTERTAGDETAILS LPACMFILTERTAGDETAILSA
488 #endif
489
490 MMRESULT ACMAPI acmFilterTagDetailsA(HACMDRIVER had,LPACMFILTERTAGDETAILSA paftd,DWORD fdwDetails);
491 MMRESULT ACMAPI acmFilterTagDetailsW(HACMDRIVER had,LPACMFILTERTAGDETAILSW paftd,DWORD fdwDetails);
492 #ifdef _UNICODE
493 #define acmFilterTagDetails acmFilterTagDetailsW
494 #else
495 #define acmFilterTagDetails acmFilterTagDetailsA
496 #endif
497
498 #define ACM_FILTERTAGDETAILSF_INDEX __MSABI_LONG(0x00000000)
499 #define ACM_FILTERTAGDETAILSF_FILTERTAG __MSABI_LONG(0x00000001)
500 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE __MSABI_LONG(0x00000002)
501 #define ACM_FILTERTAGDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F)
502
503 typedef WINBOOL (CALLBACK *ACMFILTERTAGENUMCBA)(HACMDRIVERID hadid,LPACMFILTERTAGDETAILSA paftd,DWORD_PTR dwInstance,DWORD fdwSupport);
504 typedef WINBOOL (CALLBACK *ACMFILTERTAGENUMCBW)(HACMDRIVERID hadid,LPACMFILTERTAGDETAILSW paftd,DWORD_PTR dwInstance,DWORD fdwSupport);
505
506 MMRESULT ACMAPI acmFilterTagEnumA(HACMDRIVER had,LPACMFILTERTAGDETAILSA paftd,ACMFILTERTAGENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
507 MMRESULT ACMAPI acmFilterTagEnumW(HACMDRIVER had,LPACMFILTERTAGDETAILSW paftd,ACMFILTERTAGENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
508 #ifdef _UNICODE
509 #define ACMFILTERTAGENUMCB ACMFILTERTAGENUMCBW
510 #define acmFilterTagEnum acmFilterTagEnumW
511 #else
512 #define ACMFILTERTAGENUMCB ACMFILTERTAGENUMCBA
513 #define acmFilterTagEnum acmFilterTagEnumA
514 #endif
515
516 #define ACMFILTERDETAILS_FILTER_CHARS 128
517
518 typedef struct tACMFILTERDETAILSA {
519 DWORD cbStruct;
520 DWORD dwFilterIndex;
521 DWORD dwFilterTag;
522 DWORD fdwSupport;
523 LPWAVEFILTER pwfltr;
524 DWORD cbwfltr;
525 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
526 } ACMFILTERDETAILSA,*PACMFILTERDETAILSA,*LPACMFILTERDETAILSA;
527
528 typedef struct tACMFILTERDETAILSW {
529 DWORD cbStruct;
530 DWORD dwFilterIndex;
531 DWORD dwFilterTag;
532 DWORD fdwSupport;
533 LPWAVEFILTER pwfltr;
534 DWORD cbwfltr;
535 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
536 } ACMFILTERDETAILSW,*PACMFILTERDETAILSW,*LPACMFILTERDETAILSW;
537 #ifdef _UNICODE
538 #define ACMFILTERDETAILS ACMFILTERDETAILSW
539 #define PACMFILTERDETAILS PACMFILTERDETAILSW
540 #define LPACMFILTERDETAILS LPACMFILTERDETAILSW
541 #else
542 #define ACMFILTERDETAILS ACMFILTERDETAILSA
543 #define PACMFILTERDETAILS PACMFILTERDETAILSA
544 #define LPACMFILTERDETAILS LPACMFILTERDETAILSA
545 #endif
546
547 MMRESULT ACMAPI acmFilterDetailsA(HACMDRIVER had,LPACMFILTERDETAILSA pafd,DWORD fdwDetails);
548 MMRESULT ACMAPI acmFilterDetailsW(HACMDRIVER had,LPACMFILTERDETAILSW pafd,DWORD fdwDetails);
549 #ifdef _UNICODE
550 #define acmFilterDetails acmFilterDetailsW
551 #else
552 #define acmFilterDetails acmFilterDetailsA
553 #endif
554
555 #define ACM_FILTERDETAILSF_INDEX __MSABI_LONG(0x00000000)
556 #define ACM_FILTERDETAILSF_FILTER __MSABI_LONG(0x00000001)
557 #define ACM_FILTERDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F)
558
559 typedef WINBOOL (CALLBACK *ACMFILTERENUMCBA)(HACMDRIVERID hadid,LPACMFILTERDETAILSA pafd,DWORD_PTR dwInstance,DWORD fdwSupport);
560 typedef WINBOOL (CALLBACK *ACMFILTERENUMCBW)(HACMDRIVERID hadid,LPACMFILTERDETAILSW pafd,DWORD_PTR dwInstance,DWORD fdwSupport);
561
562 MMRESULT ACMAPI acmFilterEnumA(HACMDRIVER had,LPACMFILTERDETAILSA pafd,ACMFILTERENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
563 MMRESULT ACMAPI acmFilterEnumW(HACMDRIVER had,LPACMFILTERDETAILSW pafd,ACMFILTERENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
564 #ifdef _UNICODE
565 #define ACMFILTERENUMCB ACMFILTERENUMCBW
566 #define acmFilterEnum acmFilterEnumW
567 #else
568 #define ACMFILTERENUMCB ACMFILTERENUMCBA
569 #define acmFilterEnum acmFilterEnumA
570 #endif
571
572 #define ACM_FILTERENUMF_DWFILTERTAG __MSABI_LONG(0x00010000)
573
574 #define MM_ACM_FILTERCHOOSE (0x8000)
575
576 #define FILTERCHOOSE_MESSAGE 0
577 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
578 #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
579 #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
580
581 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
582 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
583 #ifdef _UNICODE
584 #define ACMFILTERCHOOSEHOOKPROC ACMFILTERCHOOSEHOOKPROCW
585 #else
586 #define ACMFILTERCHOOSEHOOKPROC ACMFILTERCHOOSEHOOKPROCA
587 #endif
588
589 typedef struct tACMFILTERCHOOSEA {
590 DWORD cbStruct;
591 DWORD fdwStyle;
592 HWND hwndOwner;
593 LPWAVEFILTER pwfltr;
594 DWORD cbwfltr;
595 LPCSTR pszTitle;
596 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
597 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
598 LPSTR pszName;
599 DWORD cchName;
600 DWORD fdwEnum;
601 LPWAVEFILTER pwfltrEnum;
602 HINSTANCE hInstance;
603 LPCSTR pszTemplateName;
604 LPARAM lCustData;
605 ACMFILTERCHOOSEHOOKPROCA pfnHook;
606 } ACMFILTERCHOOSEA,*PACMFILTERCHOOSEA,*LPACMFILTERCHOOSEA;
607
608 typedef struct tACMFILTERCHOOSEW {
609 DWORD cbStruct;
610 DWORD fdwStyle;
611 HWND hwndOwner;
612 LPWAVEFILTER pwfltr;
613 DWORD cbwfltr;
614 LPCWSTR pszTitle;
615 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
616 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
617 LPWSTR pszName;
618 DWORD cchName;
619 DWORD fdwEnum;
620 LPWAVEFILTER pwfltrEnum;
621 HINSTANCE hInstance;
622 LPCWSTR pszTemplateName;
623 LPARAM lCustData;
624 ACMFILTERCHOOSEHOOKPROCW pfnHook;
625 } ACMFILTERCHOOSEW,*PACMFILTERCHOOSEW,*LPACMFILTERCHOOSEW;
626 #ifdef _UNICODE
627 #define ACMFILTERCHOOSE ACMFILTERCHOOSEW
628 #define PACMFILTERCHOOSE PACMFILTERCHOOSEW
629 #define LPACMFILTERCHOOSE LPACMFILTERCHOOSEW
630 #else
631 #define ACMFILTERCHOOSE ACMFILTERCHOOSEA
632 #define PACMFILTERCHOOSE PACMFILTERCHOOSEA
633 #define LPACMFILTERCHOOSE LPACMFILTERCHOOSEA
634 #endif
635
636 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP __MSABI_LONG(0x00000004)
637 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK __MSABI_LONG(0x00000008)
638 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE __MSABI_LONG(0x00000010)
639 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE __MSABI_LONG(0x00000020)
640 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT __MSABI_LONG(0x00000040)
641 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP __MSABI_LONG(0x00000080)
642
643 MMRESULT ACMAPI acmFilterChooseA(LPACMFILTERCHOOSEA pafltrc);
644 MMRESULT ACMAPI acmFilterChooseW(LPACMFILTERCHOOSEW pafltrc);
645 #ifdef _UNICODE
646 #define acmFilterChoose acmFilterChooseW
647 #else
648 #define acmFilterChoose acmFilterChooseA
649 #endif
650
651 #ifdef _WIN64
652 #define _DRVRESERVED 15
653 #else
654 #define _DRVRESERVED 10
655 #endif
656
657 typedef struct tACMSTREAMHEADER {
658 DWORD cbStruct;
659 DWORD fdwStatus;
660 DWORD_PTR dwUser;
661 LPBYTE pbSrc;
662 DWORD cbSrcLength;
663 DWORD cbSrcLengthUsed;
664 DWORD_PTR dwSrcUser;
665 LPBYTE pbDst;
666 DWORD cbDstLength;
667 DWORD cbDstLengthUsed;
668 DWORD_PTR dwDstUser;
669 DWORD dwReservedDriver[_DRVRESERVED];
670 } ACMSTREAMHEADER,*PACMSTREAMHEADER,*LPACMSTREAMHEADER;
671
672 #define ACMSTREAMHEADER_STATUSF_DONE __MSABI_LONG(0x00010000)
673 #define ACMSTREAMHEADER_STATUSF_PREPARED __MSABI_LONG(0x00020000)
674 #define ACMSTREAMHEADER_STATUSF_INQUEUE __MSABI_LONG(0x00100000)
675
676 MMRESULT ACMAPI acmStreamOpen(LPHACMSTREAM phas,HACMDRIVER had,LPWAVEFORMATEX pwfxSrc,LPWAVEFORMATEX pwfxDst,LPWAVEFILTER pwfltr,DWORD_PTR dwCallback,DWORD_PTR dwInstance,DWORD fdwOpen);
677
678 #define ACM_STREAMOPENF_QUERY 0x00000001
679 #define ACM_STREAMOPENF_ASYNC 0x00000002
680 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
681
682 MMRESULT ACMAPI acmStreamClose
683 (HACMSTREAM has,DWORD fdwClose);
684
685 MMRESULT ACMAPI acmStreamSize(HACMSTREAM has,DWORD cbInput,LPDWORD pdwOutputBytes,DWORD fdwSize);
686
687 #define ACM_STREAMSIZEF_SOURCE __MSABI_LONG(0x00000000)
688 #define ACM_STREAMSIZEF_DESTINATION __MSABI_LONG(0x00000001)
689 #define ACM_STREAMSIZEF_QUERYMASK __MSABI_LONG(0x0000000F)
690
691 MMRESULT ACMAPI acmStreamReset(HACMSTREAM has,DWORD fdwReset);
692 MMRESULT ACMAPI acmStreamMessage(HACMSTREAM has,UINT uMsg,LPARAM lParam1,LPARAM lParam2);
693 MMRESULT ACMAPI acmStreamConvert(HACMSTREAM has,LPACMSTREAMHEADER pash,DWORD fdwConvert);
694
695 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
696 #define ACM_STREAMCONVERTF_START 0x00000010
697 #define ACM_STREAMCONVERTF_END 0x00000020
698
699 MMRESULT ACMAPI acmStreamPrepareHeader(HACMSTREAM has,LPACMSTREAMHEADER pash,DWORD fdwPrepare);
700 MMRESULT ACMAPI acmStreamUnprepareHeader(HACMSTREAM has,LPACMSTREAMHEADER pash,DWORD fdwUnprepare);
701
702 #include "poppack.h"
703
704 #ifdef __cplusplus
705 }
706 #endif
707 #endif