comparison loader/wine/msacm.h @ 1:3b5f5d1c5041

Initial revision
author arpi_esp
date Sat, 24 Feb 2001 20:28:24 +0000
parents
children 174e2a58b4cd
comparison
equal deleted inserted replaced
0:c1bb2c071d63 1:3b5f5d1c5041
1 /*
2 * msacm.h - Declarations for MSACM
3 */
4
5 #ifndef __WINE_MSACM_H
6 #define __WINE_MSACM_H
7
8 #include "windef.h"
9 #include "driver.h"
10 #include "mmreg.h"
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif /* defined(__cplusplus) */
15
16 //typedef WORD VERSION; /* major (high byte), minor (low byte) */
17
18 typedef UINT16 MMVERSION16;
19 typedef UINT MMVERSION;
20 typedef UINT16 MCIDEVICEID16;
21 typedef UINT MCIDEVICEID;
22 typedef UINT16 MMRESULT16;
23 typedef UINT MMRESULT;
24 typedef DWORD FOURCC; /* a four character code */
25
26
27
28 #define WAVE_FORMAT_PCM 1
29
30 /***********************************************************************
31 * Defines/Enums
32 */
33
34 #define ACMERR_BASE 512
35 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
36 #define ACMERR_BUSY (ACMERR_BASE + 1)
37 #define ACMERR_UNPREPARED (ACMERR_BASE + 2)
38 #define ACMERR_CANCELED (ACMERR_BASE + 3)
39
40 #define MM_ACM_OPEN MM_STREAM_OPEN
41 #define MM_ACM_CLOSE MM_STREAM_CLOSE
42 #define MM_ACM_DONE MM_STREAM_DONE
43
44 #define ACM_DRIVERADDF_FUNCTION 0x00000003L
45 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
46 #define ACM_DRIVERADDF_TYPEMASK 0x00000007L
47 #define ACM_DRIVERADDF_LOCAL 0x00000000L
48 #define ACM_DRIVERADDF_GLOBAL 0x00000008L
49
50 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
51 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
52 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
53 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
54 #define ACMDRIVERDETAILS_FEATURES_CHARS 512
55
56 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
57 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
58
59 #define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
60 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
61 #define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
62 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
63 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
64 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
65 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
66
67 #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
68 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
69
70 #define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
71 #define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
72 #define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
73 #define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
74 #define ACM_DRIVERPRIORITYF_END 0x00020000L
75 #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
76
77 #define MM_ACM_FILTERCHOOSE 0x8000
78
79 #define FILTERCHOOSE_MESSAGE 0
80 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
81 #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
82 #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
83
84 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
85 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
86 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
87 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
88 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
89 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
90
91 #define ACMFILTERDETAILS_FILTER_CHARS 128
92
93 #define ACM_FILTERDETAILSF_INDEX 0x00000000L
94 #define ACM_FILTERDETAILSF_FILTER 0x00000001L
95 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
96
97 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
98
99 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
100 #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
101 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
102 #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
103
104 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
105
106 #define ACMHELPMSGSTRINGA "acmchoose_help"
107 #define ACMHELPMSGSTRINGW L"acmchoose_help"
108 #define ACMHELPMSGSTRING16 "acmchoose_help"
109
110 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
111 #define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
112 #define ACMHELPMSGCONTEXTMENU16 "acmchoose_contextmenu"
113
114 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
115 #define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
116 #define ACMHELPMSGCONTEXTHELP16 "acmchoose_contexthelp"
117
118 #define MM_ACM_FORMATCHOOSE 0x8000
119
120 #define FORMATCHOOSE_MESSAGE 0
121 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
122 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
123 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
124
125 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
126 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
127 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
128 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
129 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
130 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
131
132 #define ACMFORMATDETAILS_FORMAT_CHARS 128
133
134 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
135 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
136 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
137
138 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
139 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
140 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
141 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
142 #define ACM_FORMATENUMF_CONVERT 0x00100000L
143 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
144 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
145 #define ACM_FORMATENUMF_INPUT 0x00800000L
146 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
147
148 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
149 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
150 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
151 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
152 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
153
154 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
155
156 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
157 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
158 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
159 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
160
161 #define ACM_METRIC_COUNT_DRIVERS 1
162 #define ACM_METRIC_COUNT_CODECS 2
163 #define ACM_METRIC_COUNT_CONVERTERS 3
164 #define ACM_METRIC_COUNT_FILTERS 4
165 #define ACM_METRIC_COUNT_DISABLED 5
166 #define ACM_METRIC_COUNT_HARDWARE 6
167 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
168 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
169 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
170 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
171 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
172 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
173 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
174 #define ACM_METRIC_MAX_SIZE_FORMAT 50
175 #define ACM_METRIC_MAX_SIZE_FILTER 51
176 #define ACM_METRIC_DRIVER_SUPPORT 100
177 #define ACM_METRIC_DRIVER_PRIORITY 101
178
179 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
180 #define ACM_STREAMCONVERTF_START 0x00000010
181 #define ACM_STREAMCONVERTF_END 0x00000020
182
183 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
184 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
185 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
186
187 #define ACM_STREAMOPENF_QUERY 0x00000001
188 #define ACM_STREAMOPENF_ASYNC 0x00000002
189 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
190
191 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
192 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
193 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
194
195 #define ACMDM_USER (DRV_USER + 0x0000)
196 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
197 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
198
199 #define ACMDM_BASE ACMDM_RESERVED_LOW
200
201 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
202
203 /***********************************************************************
204 * Callbacks
205 */
206
207 typedef WIN_BOOL CALLBACK ( *ACMDRIVERENUMCB)(
208 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
209 );
210
211 typedef WIN_BOOL16 CALLBACK ( *ACMDRIVERENUMCB16)(
212 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
213 );
214
215 typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCA)(
216 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
217 );
218
219 typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCW)(
220 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
221 );
222
223 typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROC16)(
224 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
225 );
226
227 typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCA)(
228 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
229 );
230
231 typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCW)(
232 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
233 );
234
235 typedef UINT16 CALLBACK ( *ACMFORMATCHOOSEHOOKPROC16)(
236 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
237 );
238
239 /***********************************************************************
240 * Structures
241 */
242
243 typedef struct _ACMDRIVERDETAILSA
244 {
245 DWORD cbStruct;
246
247 FOURCC fccType;
248 FOURCC fccComp;
249
250 WORD wMid;
251 WORD wPid;
252
253 DWORD vdwACM;
254 DWORD vdwDriver;
255
256 DWORD fdwSupport;
257 DWORD cFormatTags;
258 DWORD cFilterTags;
259
260 HICON hicon;
261
262 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
263 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
264 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
265 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
266 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
267 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
268
269 typedef struct _ACMDRIVERDETAILSW
270 {
271 DWORD cbStruct;
272
273 FOURCC fccType;
274 FOURCC fccComp;
275
276 WORD wMid;
277 WORD wPid;
278
279 DWORD vdwACM;
280 DWORD vdwDriver;
281
282 DWORD fdwSupport;
283 DWORD cFormatTags;
284 DWORD cFilterTags;
285
286 HICON hicon;
287
288 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
289 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
290 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
291 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
292 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
293 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
294
295 typedef struct _ACMDRIVERDETAILS16
296 {
297 DWORD cbStruct;
298
299 FOURCC fccType;
300 FOURCC fccComp;
301
302 WORD wMid;
303 WORD wPid;
304
305 DWORD vdwACM;
306 DWORD vdwDriver;
307
308 DWORD fdwSupport;
309 DWORD cFormatTags;
310 DWORD cFilterTags;
311
312 HICON16 hicon;
313
314 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
315 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
316 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
317 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
318 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
319 } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
320
321 typedef struct _ACMFILTERCHOOSEA
322 {
323 DWORD cbStruct;
324 DWORD fdwStyle;
325
326 HWND hwndOwner;
327
328 PWAVEFILTER pwfltr;
329 DWORD cbwfltr;
330
331 LPCSTR pszTitle;
332
333 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
334 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
335 LPSTR pszName;
336 DWORD cchName;
337
338 DWORD fdwEnum;
339 PWAVEFILTER pwfltrEnum;
340
341 HINSTANCE hInstance;
342 LPCSTR pszTemplateName;
343 LPARAM lCustData;
344 ACMFILTERCHOOSEHOOKPROCA pfnHook;
345 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
346
347 typedef struct _ACMFILTERCHOOSEW
348 {
349 DWORD cbStruct;
350 DWORD fdwStyle;
351
352 HWND hwndOwner;
353
354 PWAVEFILTER pwfltr;
355 DWORD cbwfltr;
356
357 LPCWSTR pszTitle;
358
359 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
360 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
361 LPWSTR pszName;
362 DWORD cchName;
363
364 DWORD fdwEnum;
365 PWAVEFILTER pwfltrEnum;
366
367 HINSTANCE hInstance;
368 LPCWSTR pszTemplateName;
369 LPARAM lCustData;
370 ACMFILTERCHOOSEHOOKPROCW pfnHook;
371 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
372
373 typedef struct _ACMFILTERCHOOSE16
374 {
375 DWORD cbStruct;
376 DWORD fdwStyle;
377
378 HWND16 hwndOwner;
379
380 LPWAVEFILTER pwfltr;
381 DWORD cbwfltr;
382
383 LPCSTR pszTitle;
384
385 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
386 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
387 LPSTR pszName;
388 DWORD cchName;
389
390 DWORD fdwEnum;
391 LPWAVEFILTER pwfltrEnum;
392
393 HINSTANCE16 hInstance;
394 LPCSTR pszTemplateName;
395 LPARAM lCustData;
396 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
397 } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
398
399 typedef struct _ACMFILTERDETAILSA
400 {
401 DWORD cbStruct;
402 DWORD dwFilterIndex;
403 DWORD dwFilterTag;
404 DWORD fdwSupport;
405 PWAVEFILTER pwfltr;
406 DWORD cbwfltr;
407 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
408 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
409
410 typedef struct _ACMFILTERDETAILSW
411 {
412 DWORD cbStruct;
413 DWORD dwFilterIndex;
414 DWORD dwFilterTag;
415 DWORD fdwSupport;
416 PWAVEFILTER pwfltr;
417 DWORD cbwfltr;
418 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
419 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
420
421 typedef struct _ACMFILTERDETAILS16
422 {
423 DWORD cbStruct;
424 DWORD dwFilterIndex;
425 DWORD dwFilterTag;
426 DWORD fdwSupport;
427 LPWAVEFILTER pwfltr;
428 DWORD cbwfltr;
429 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
430 } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
431
432 typedef struct _ACMFILTERTAGDETAILSA
433 {
434 DWORD cbStruct;
435 DWORD dwFilterTagIndex;
436 DWORD dwFilterTag;
437 DWORD cbFilterSize;
438 DWORD fdwSupport;
439 DWORD cStandardFilters;
440 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
441 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
442
443 typedef struct _ACMFILTERTAGDETAILSW
444 {
445 DWORD cbStruct;
446 DWORD dwFilterTagIndex;
447 DWORD dwFilterTag;
448 DWORD cbFilterSize;
449 DWORD fdwSupport;
450 DWORD cStandardFilters;
451 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
452 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
453
454 typedef struct _ACMFILTERTAGDETAILS16
455 {
456 DWORD cbStruct;
457 DWORD dwFilterTagIndex;
458 DWORD dwFilterTag;
459 DWORD cbFilterSize;
460 DWORD fdwSupport;
461 DWORD cStandardFilters;
462 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
463 } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
464
465 typedef struct _ACMFORMATCHOOSEA
466 {
467 DWORD cbStruct;
468 DWORD fdwStyle;
469
470 HWND hwndOwner;
471
472 PWAVEFORMATEX pwfx;
473 DWORD cbwfx;
474 LPCSTR pszTitle;
475
476 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
477 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
478
479 LPSTR pszName;
480 DWORD cchName;
481
482 DWORD fdwEnum;
483 PWAVEFORMATEX pwfxEnum;
484
485 HINSTANCE hInstance;
486 LPCSTR pszTemplateName;
487 LPARAM lCustData;
488 ACMFORMATCHOOSEHOOKPROCA pfnHook;
489 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
490
491 typedef struct _ACMFORMATCHOOSEW
492 {
493 DWORD cbStruct;
494 DWORD fdwStyle;
495
496 HWND hwndOwner;
497
498 PWAVEFORMATEX pwfx;
499 DWORD cbwfx;
500 LPCWSTR pszTitle;
501
502 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
503 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
504
505 LPWSTR pszName;
506 DWORD cchName;
507
508 DWORD fdwEnum;
509 LPWAVEFORMATEX pwfxEnum;
510
511 HINSTANCE hInstance;
512 LPCWSTR pszTemplateName;
513 LPARAM lCustData;
514 ACMFORMATCHOOSEHOOKPROCW pfnHook;
515 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
516
517 typedef struct _ACMFORMATCHOOSE16
518 {
519 DWORD cbStruct;
520 DWORD fdwStyle;
521
522 HWND16 hwndOwner;
523
524 LPWAVEFORMATEX pwfx;
525 DWORD cbwfx;
526 LPCSTR pszTitle;
527
528 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
529 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
530
531 LPSTR pszName;
532 DWORD cchName;
533
534 DWORD fdwEnum;
535 LPWAVEFORMATEX pwfxEnum;
536
537 HINSTANCE16 hInstance;
538 LPCSTR pszTemplateName;
539 LPARAM lCustData;
540 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
541 } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
542
543 typedef struct _ACMFORMATDETAILSA
544 {
545 DWORD cbStruct;
546 DWORD dwFormatIndex;
547 DWORD dwFormatTag;
548 DWORD fdwSupport;
549 PWAVEFORMATEX pwfx;
550 DWORD cbwfx;
551 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
552 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
553
554 typedef struct _ACMFORMATDETAILSW
555 {
556 DWORD cbStruct;
557 DWORD dwFormatIndex;
558 DWORD dwFormatTag;
559 DWORD fdwSupport;
560 PWAVEFORMATEX pwfx;
561 DWORD cbwfx;
562 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
563 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
564
565 typedef struct _ACMFORMATDETAILS16
566 {
567 DWORD cbStruct;
568 DWORD dwFormatIndex;
569 DWORD dwFormatTag;
570 DWORD fdwSupport;
571 LPWAVEFORMATEX pwfx;
572 DWORD cbwfx;
573 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
574 } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
575
576 typedef struct _ACMFORMATTAGDETAILSA
577 {
578 DWORD cbStruct;
579 DWORD dwFormatTagIndex;
580 DWORD dwFormatTag;
581 DWORD cbFormatSize;
582 DWORD fdwSupport;
583 DWORD cStandardFormats;
584 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
585 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
586
587 typedef struct _ACMFORMATTAGDETAILSW
588 {
589 DWORD cbStruct;
590 DWORD dwFormatTagIndex;
591 DWORD dwFormatTag;
592 DWORD cbFormatSize;
593 DWORD fdwSupport;
594 DWORD cStandardFormats;
595 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
596 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
597
598 typedef struct _ACMFORMATTAGDETAILS16
599 {
600 DWORD cbStruct;
601 DWORD dwFormatTagIndex;
602 DWORD dwFormatTag;
603 DWORD cbFormatSize;
604 DWORD fdwSupport;
605 DWORD cStandardFormats;
606 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
607 } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
608
609 typedef struct _ACMSTREAMHEADER
610 {
611 DWORD cbStruct;
612 DWORD fdwStatus;
613 DWORD dwUser;
614 LPBYTE pbSrc;
615 DWORD cbSrcLength;
616 DWORD cbSrcLengthUsed;
617 DWORD dwSrcUser;
618 LPBYTE pbDst;
619 DWORD cbDstLength;
620 DWORD cbDstLengthUsed;
621 DWORD dwDstUser;
622 DWORD dwReservedDriver[10];
623 } ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
624 ACMSTREAMHEADER, *PACMSTREAMHEADER;
625
626 /***********************************************************************
627 * Callbacks 2
628 */
629
630 typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBA)(
631 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
632 DWORD dwInstance, DWORD fdwSupport
633 );
634
635 typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBW)(
636 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
637 DWORD dwInstance, DWORD fdwSupport
638 );
639
640 typedef WIN_BOOL16 CALLBACK ( *ACMFILTERENUMCB16)(
641 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
642 DWORD dwInstance, DWORD fdwSupport
643 );
644
645 typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBA)(
646 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
647 DWORD dwInstance, DWORD fdwSupport
648 );
649
650 typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBW)(
651 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
652 DWORD dwInstance, DWORD fdwSupport
653 );
654
655 typedef WIN_BOOL16 CALLBACK ( *ACMFILTERTAGENUMCB16)(
656 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
657 DWORD dwInstance, DWORD fdwSupport
658 );
659
660 typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBA)(
661 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
662 DWORD dwInstance, DWORD fdwSupport
663 );
664
665 typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBW)(
666 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
667 DWORD dwInstance, DWORD fdwSupport
668 );
669
670 typedef WIN_BOOL16 CALLBACK ( *ACMFORMATENUMCB16)(
671 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
672 DWORD dwInstance, DWORD fdwSupport
673 );
674
675 typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBA)(
676 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
677 DWORD dwInstance, DWORD fdwSupport
678 );
679
680 typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBW)(
681 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
682 DWORD dwInstance, DWORD fdwSupport
683 );
684
685 typedef WIN_BOOL16 CALLBACK ( *ACMFORMATTAGENUMCB16)(
686 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
687 DWORD dwInstance, DWORD fdwSupport
688 );
689
690 /***********************************************************************
691 * Functions - Win16
692 */
693
694 DWORD WINAPI acmGetVersion16(
695 );
696 MMRESULT16 WINAPI acmMetrics16(
697 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
698 );
699 MMRESULT16 WINAPI acmDriverEnum16(
700 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
701 );
702 MMRESULT16 WINAPI acmDriverDetails16(
703 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
704 );
705 MMRESULT16 WINAPI acmDriverAdd16(
706 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
707 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
708 );
709 MMRESULT16 WINAPI acmDriverRemove16(
710 HACMDRIVERID16 hadid, DWORD fdwRemove
711 );
712 MMRESULT16 WINAPI acmDriverOpen16(
713 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
714 );
715 MMRESULT16 WINAPI acmDriverClose16(
716 HACMDRIVER16 had, DWORD fdwClose
717 );
718 LRESULT WINAPI acmDriverMessage16(
719 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
720 );
721 MMRESULT16 WINAPI acmDriverID16(
722 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
723 );
724 MMRESULT16 WINAPI acmDriverPriority16(
725 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
726 );
727 MMRESULT16 WINAPI acmFormatTagDetails16(
728 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
729 );
730 MMRESULT16 WINAPI acmFormatTagEnum16(
731 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
732 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
733 );
734 MMRESULT16 WINAPI acmFormatChoose16(
735 LPACMFORMATCHOOSE16 pafmtc
736 );
737 MMRESULT16 WINAPI acmFormatDetails16(
738 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
739 );
740 MMRESULT16 WINAPI acmFormatEnum16(
741 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
742 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
743 );
744 MMRESULT16 WINAPI acmFormatSuggest16(
745 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
746 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
747 );
748 MMRESULT16 WINAPI acmFilterTagDetails16(
749 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
750 );
751 MMRESULT16 WINAPI acmFilterTagEnum16(
752 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
753 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
754 );
755 MMRESULT16 WINAPI acmFilterChoose16(
756 LPACMFILTERCHOOSE16 pafltrc
757 );
758 MMRESULT16 WINAPI acmFilterDetails16(
759 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
760 );
761 MMRESULT16 WINAPI acmFilterEnum16(
762 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
763 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
764 );
765 MMRESULT16 WINAPI acmStreamOpen16(
766 LPHACMSTREAM16 phas, HACMDRIVER16 had,
767 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
768 LPWAVEFILTER pwfltr, DWORD dwCallback,
769 DWORD dwInstance, DWORD fdwOpen
770 );
771 MMRESULT16 WINAPI acmStreamClose16(
772 HACMSTREAM16 has, DWORD fdwClose
773 );
774 MMRESULT16 WINAPI acmStreamSize16(
775 HACMSTREAM16 has, DWORD cbInput,
776 LPDWORD pdwOutputBytes, DWORD fdwSize
777 );
778 MMRESULT16 WINAPI acmStreamConvert16(
779 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
780 );
781 MMRESULT16 WINAPI acmStreamReset16(
782 HACMSTREAM16 has, DWORD fdwReset
783 );
784 MMRESULT16 WINAPI acmStreamPrepareHeader16(
785 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
786 );
787 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
788 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
789 );
790
791 /***********************************************************************
792 * Functions - Win32
793 */
794
795 MMRESULT WINAPI acmDriverAddA(
796 PHACMDRIVERID phadid, HINSTANCE hinstModule,
797 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
798 );
799 MMRESULT WINAPI acmDriverAddW(
800 PHACMDRIVERID phadid, HINSTANCE hinstModule,
801 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
802 );
803 MMRESULT WINAPI acmDriverClose(
804 HACMDRIVER had, DWORD fdwClose
805 );
806 MMRESULT WINAPI acmDriverDetailsA(
807 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
808 );
809 MMRESULT WINAPI acmDriverDetailsW(
810 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
811 );
812 MMRESULT WINAPI acmDriverEnum(
813 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
814 );
815 MMRESULT WINAPI acmDriverID(
816 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
817 );
818 LRESULT WINAPI acmDriverMessage(
819 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
820 );
821 MMRESULT WINAPI acmDriverOpen(
822 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
823 );
824 MMRESULT WINAPI acmDriverPriority(
825 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
826 );
827 MMRESULT WINAPI acmDriverRemove(
828 HACMDRIVERID hadid, DWORD fdwRemove
829 );
830 MMRESULT WINAPI acmFilterChooseA(
831 PACMFILTERCHOOSEA pafltrc
832 );
833 MMRESULT WINAPI acmFilterChooseW(
834 PACMFILTERCHOOSEW pafltrc
835 );
836 MMRESULT WINAPI acmFilterDetailsA(
837 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
838 );
839 MMRESULT WINAPI acmFilterDetailsW(
840 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
841 );
842 MMRESULT WINAPI acmFilterEnumA(
843 HACMDRIVER had, PACMFILTERDETAILSA pafd,
844 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
845 );
846 MMRESULT WINAPI acmFilterEnumW(
847 HACMDRIVER had, PACMFILTERDETAILSW pafd,
848 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
849 );
850 MMRESULT WINAPI acmFilterTagDetailsA(
851 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
852 );
853 MMRESULT WINAPI acmFilterTagDetailsW(
854 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
855 );
856 MMRESULT WINAPI acmFilterTagEnumA(
857 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
858 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
859 );
860 MMRESULT WINAPI acmFilterTagEnumW(
861 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
862 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
863 );
864 MMRESULT WINAPI acmFormatChooseA(
865 PACMFORMATCHOOSEA pafmtc
866 );
867 MMRESULT WINAPI acmFormatChooseW(
868 PACMFORMATCHOOSEW pafmtc
869 );
870 MMRESULT WINAPI acmFormatDetailsA(
871 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
872 );
873 MMRESULT WINAPI acmFormatDetailsW(
874 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
875 );
876 MMRESULT WINAPI acmFormatEnumA(
877 HACMDRIVER had, PACMFORMATDETAILSA pafd,
878 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
879 );
880 MMRESULT WINAPI acmFormatEnumW(
881 HACMDRIVER had, PACMFORMATDETAILSW pafd,
882 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
883 );
884 MMRESULT WINAPI acmFormatSuggest(
885 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
886 DWORD cbwfxDst, DWORD fdwSuggest
887 );
888 MMRESULT WINAPI acmFormatTagDetailsA(
889 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
890 );
891 MMRESULT WINAPI acmFormatTagDetailsW(
892 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
893 );
894 MMRESULT WINAPI acmFormatTagEnumA(
895 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
896 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
897 );
898 MMRESULT WINAPI acmFormatTagEnumW(
899 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
900 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
901 );
902 DWORD WINAPI acmGetVersion(
903 );
904 MMRESULT WINAPI acmMetrics(
905 HACMOBJ hao, UINT uMetric, LPVOID pMetric
906 );
907 MMRESULT WINAPI acmStreamClose(
908 HACMSTREAM has, DWORD fdwClose
909 );
910 MMRESULT WINAPI acmStreamConvert(
911 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
912 );
913 MMRESULT WINAPI acmStreamMessage(
914 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
915 );
916 MMRESULT WINAPI acmStreamOpen(
917 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
918 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
919 DWORD dwInstance, DWORD fdwOpen
920 );
921 MMRESULT WINAPI acmStreamPrepareHeader(
922 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
923 );
924 MMRESULT WINAPI acmStreamReset(
925 HACMSTREAM has, DWORD fdwReset
926 );
927 MMRESULT WINAPI acmStreamSize(
928 HACMSTREAM has, DWORD cbInput,
929 LPDWORD pdwOutputBytes, DWORD fdwSize
930 );
931 MMRESULT WINAPI acmStreamUnprepareHeader(
932 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
933 );
934 void MSACM_RegisterAllDrivers(void);
935
936 #ifdef __cplusplus
937 } /* extern "C" */
938 #endif /* defined(__cplusplus) */
939
940 #endif /* __WINE_MSACM_H */
941
942