Note what to do with the winedefault.reg in the file.
[wine/multimedia.git] / include / msacm.h
blob95bf7aaf5ccad68f2929803bc8747155186ca02f
1 /*
2 * msacm.h - Declarations for MSACM
3 */
5 #ifndef __WINE_MSACM_H
6 #define __WINE_MSACM_H
8 #include "windef.h"
9 #include "driver.h"
10 #include "mmsystem.h"
11 #include "mmreg.h"
13 #ifdef __cplusplus
14 extern "C" {
15 #endif /* defined(__cplusplus) */
17 /***********************************************************************
18 * Defines/Enums
21 #define ACMERR_BASE 512
22 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
23 #define ACMERR_BUSY (ACMERR_BASE + 1)
24 #define ACMERR_UNPREPARED (ACMERR_BASE + 2)
25 #define ACMERR_CANCELED (ACMERR_BASE + 3)
27 #define MM_ACM_OPEN MM_STREAM_OPEN
28 #define MM_ACM_CLOSE MM_STREAM_CLOSE
29 #define MM_ACM_DONE MM_STREAM_DONE
31 #define ACM_DRIVERADDF_FUNCTION 0x00000003L
32 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
33 #define ACM_DRIVERADDF_TYPEMASK 0x00000007L
34 #define ACM_DRIVERADDF_LOCAL 0x00000000L
35 #define ACM_DRIVERADDF_GLOBAL 0x00000008L
37 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
38 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
39 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
40 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
41 #define ACMDRIVERDETAILS_FEATURES_CHARS 512
43 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
44 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
46 #define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
47 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
48 #define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
49 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
50 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
51 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
52 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
54 #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
55 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
57 #define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
58 #define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
59 #define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
60 #define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
61 #define ACM_DRIVERPRIORITYF_END 0x00020000L
62 #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
64 #define MM_ACM_FILTERCHOOSE 0x8000
66 #define FILTERCHOOSE_MESSAGE 0
67 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
68 #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
69 #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
71 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
72 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
73 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
74 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
75 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
76 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
78 #define ACMFILTERDETAILS_FILTER_CHARS 128
80 #define ACM_FILTERDETAILSF_INDEX 0x00000000L
81 #define ACM_FILTERDETAILSF_FILTER 0x00000001L
82 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
84 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
86 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
87 #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
88 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
89 #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
91 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
93 #define ACMHELPMSGSTRINGA "acmchoose_help"
94 #define ACMHELPMSGSTRINGW L"acmchoose_help"
95 #define ACMHELPMSGSTRING16 "acmchoose_help"
97 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
98 #define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
99 #define ACMHELPMSGCONTEXTMENU16 "acmchoose_contextmenu"
101 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
102 #define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
103 #define ACMHELPMSGCONTEXTHELP16 "acmchoose_contexthelp"
105 #define MM_ACM_FORMATCHOOSE 0x8000
107 #define FORMATCHOOSE_MESSAGE 0
108 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
109 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
110 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
112 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
113 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
114 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
115 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
116 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
117 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
119 #define ACMFORMATDETAILS_FORMAT_CHARS 128
121 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
122 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
123 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
125 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
126 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
127 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
128 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
129 #define ACM_FORMATENUMF_CONVERT 0x00100000L
130 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
131 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
132 #define ACM_FORMATENUMF_INPUT 0x00800000L
133 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
135 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
136 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
137 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
138 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
139 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
141 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
143 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
144 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
145 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
146 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
148 #define ACM_METRIC_COUNT_DRIVERS 1
149 #define ACM_METRIC_COUNT_CODECS 2
150 #define ACM_METRIC_COUNT_CONVERTERS 3
151 #define ACM_METRIC_COUNT_FILTERS 4
152 #define ACM_METRIC_COUNT_DISABLED 5
153 #define ACM_METRIC_COUNT_HARDWARE 6
154 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
155 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
156 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
157 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
158 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
159 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
160 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
161 #define ACM_METRIC_MAX_SIZE_FORMAT 50
162 #define ACM_METRIC_MAX_SIZE_FILTER 51
163 #define ACM_METRIC_DRIVER_SUPPORT 100
164 #define ACM_METRIC_DRIVER_PRIORITY 101
166 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
167 #define ACM_STREAMCONVERTF_START 0x00000010
168 #define ACM_STREAMCONVERTF_END 0x00000020
170 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
171 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
172 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
174 #define ACM_STREAMOPENF_QUERY 0x00000001
175 #define ACM_STREAMOPENF_ASYNC 0x00000002
176 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
178 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
179 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
180 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
182 #define ACMDM_USER (DRV_USER + 0x0000)
183 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
184 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
186 #define ACMDM_BASE ACMDM_RESERVED_LOW
188 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
190 /***********************************************************************
191 * Callbacks
194 typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
195 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
198 typedef BOOL16 (CALLBACK *ACMDRIVERENUMCB16)(
199 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
202 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
203 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
206 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
207 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
210 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROC16)(
211 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
214 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
215 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
218 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
219 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
222 typedef UINT16 (CALLBACK *ACMFORMATCHOOSEHOOKPROC16)(
223 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
226 /***********************************************************************
227 * Structures
230 typedef struct _ACMDRIVERDETAILSA
232 DWORD cbStruct;
234 FOURCC fccType;
235 FOURCC fccComp;
237 WORD wMid;
238 WORD wPid;
240 DWORD vdwACM;
241 DWORD vdwDriver;
243 DWORD fdwSupport;
244 DWORD cFormatTags;
245 DWORD cFilterTags;
247 HICON hicon;
249 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
250 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
251 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
252 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
253 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
254 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
256 typedef struct _ACMDRIVERDETAILSW
258 DWORD cbStruct;
260 FOURCC fccType;
261 FOURCC fccComp;
263 WORD wMid;
264 WORD wPid;
266 DWORD vdwACM;
267 DWORD vdwDriver;
269 DWORD fdwSupport;
270 DWORD cFormatTags;
271 DWORD cFilterTags;
273 HICON hicon;
275 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
276 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
277 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
278 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
279 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
280 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
282 typedef struct _ACMDRIVERDETAILS16
284 DWORD cbStruct;
286 FOURCC fccType;
287 FOURCC fccComp;
289 WORD wMid;
290 WORD wPid;
292 DWORD vdwACM;
293 DWORD vdwDriver;
295 DWORD fdwSupport;
296 DWORD cFormatTags;
297 DWORD cFilterTags;
299 HICON16 hicon;
301 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
302 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
303 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
304 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
305 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
306 } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
308 typedef struct _ACMFILTERCHOOSEA
310 DWORD cbStruct;
311 DWORD fdwStyle;
313 HWND hwndOwner;
315 PWAVEFILTER pwfltr;
316 DWORD cbwfltr;
318 LPCSTR pszTitle;
320 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
321 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
322 LPSTR pszName;
323 DWORD cchName;
325 DWORD fdwEnum;
326 PWAVEFILTER pwfltrEnum;
328 HINSTANCE hInstance;
329 LPCSTR pszTemplateName;
330 LPARAM lCustData;
331 ACMFILTERCHOOSEHOOKPROCA pfnHook;
332 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
334 typedef struct _ACMFILTERCHOOSEW
336 DWORD cbStruct;
337 DWORD fdwStyle;
339 HWND hwndOwner;
341 PWAVEFILTER pwfltr;
342 DWORD cbwfltr;
344 LPCWSTR pszTitle;
346 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
347 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
348 LPWSTR pszName;
349 DWORD cchName;
351 DWORD fdwEnum;
352 PWAVEFILTER pwfltrEnum;
354 HINSTANCE hInstance;
355 LPCWSTR pszTemplateName;
356 LPARAM lCustData;
357 ACMFILTERCHOOSEHOOKPROCW pfnHook;
358 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
360 typedef struct _ACMFILTERCHOOSE16
362 DWORD cbStruct;
363 DWORD fdwStyle;
365 HWND16 hwndOwner;
367 LPWAVEFILTER pwfltr;
368 DWORD cbwfltr;
370 LPCSTR pszTitle;
372 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
373 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
374 LPSTR pszName;
375 DWORD cchName;
377 DWORD fdwEnum;
378 LPWAVEFILTER pwfltrEnum;
380 HINSTANCE16 hInstance;
381 LPCSTR pszTemplateName;
382 LPARAM lCustData;
383 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
384 } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
386 typedef struct _ACMFILTERDETAILSA
388 DWORD cbStruct;
389 DWORD dwFilterIndex;
390 DWORD dwFilterTag;
391 DWORD fdwSupport;
392 PWAVEFILTER pwfltr;
393 DWORD cbwfltr;
394 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
395 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
397 typedef struct _ACMFILTERDETAILSW
399 DWORD cbStruct;
400 DWORD dwFilterIndex;
401 DWORD dwFilterTag;
402 DWORD fdwSupport;
403 PWAVEFILTER pwfltr;
404 DWORD cbwfltr;
405 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
406 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
408 typedef struct _ACMFILTERDETAILS16
410 DWORD cbStruct;
411 DWORD dwFilterIndex;
412 DWORD dwFilterTag;
413 DWORD fdwSupport;
414 LPWAVEFILTER pwfltr;
415 DWORD cbwfltr;
416 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
417 } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
419 typedef struct _ACMFILTERTAGDETAILSA
421 DWORD cbStruct;
422 DWORD dwFilterTagIndex;
423 DWORD dwFilterTag;
424 DWORD cbFilterSize;
425 DWORD fdwSupport;
426 DWORD cStandardFilters;
427 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
428 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
430 typedef struct _ACMFILTERTAGDETAILSW
432 DWORD cbStruct;
433 DWORD dwFilterTagIndex;
434 DWORD dwFilterTag;
435 DWORD cbFilterSize;
436 DWORD fdwSupport;
437 DWORD cStandardFilters;
438 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
439 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
441 typedef struct _ACMFILTERTAGDETAILS16
443 DWORD cbStruct;
444 DWORD dwFilterTagIndex;
445 DWORD dwFilterTag;
446 DWORD cbFilterSize;
447 DWORD fdwSupport;
448 DWORD cStandardFilters;
449 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
450 } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
452 typedef struct _ACMFORMATCHOOSEA
454 DWORD cbStruct;
455 DWORD fdwStyle;
457 HWND hwndOwner;
459 PWAVEFORMATEX pwfx;
460 DWORD cbwfx;
461 LPCSTR pszTitle;
463 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
464 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
466 LPSTR pszName;
467 DWORD cchName;
469 DWORD fdwEnum;
470 PWAVEFORMATEX pwfxEnum;
472 HINSTANCE hInstance;
473 LPCSTR pszTemplateName;
474 LPARAM lCustData;
475 ACMFORMATCHOOSEHOOKPROCA pfnHook;
476 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
478 typedef struct _ACMFORMATCHOOSEW
480 DWORD cbStruct;
481 DWORD fdwStyle;
483 HWND hwndOwner;
485 PWAVEFORMATEX pwfx;
486 DWORD cbwfx;
487 LPCWSTR pszTitle;
489 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
490 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
492 LPWSTR pszName;
493 DWORD cchName;
495 DWORD fdwEnum;
496 LPWAVEFORMATEX pwfxEnum;
498 HINSTANCE hInstance;
499 LPCWSTR pszTemplateName;
500 LPARAM lCustData;
501 ACMFORMATCHOOSEHOOKPROCW pfnHook;
502 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
504 typedef struct _ACMFORMATCHOOSE16
506 DWORD cbStruct;
507 DWORD fdwStyle;
509 HWND16 hwndOwner;
511 LPWAVEFORMATEX pwfx;
512 DWORD cbwfx;
513 LPCSTR pszTitle;
515 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
516 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
518 LPSTR pszName;
519 DWORD cchName;
521 DWORD fdwEnum;
522 LPWAVEFORMATEX pwfxEnum;
524 HINSTANCE16 hInstance;
525 LPCSTR pszTemplateName;
526 LPARAM lCustData;
527 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
528 } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
530 typedef struct _ACMFORMATDETAILSA
532 DWORD cbStruct;
533 DWORD dwFormatIndex;
534 DWORD dwFormatTag;
535 DWORD fdwSupport;
536 PWAVEFORMATEX pwfx;
537 DWORD cbwfx;
538 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
539 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
541 typedef struct _ACMFORMATDETAILSW
543 DWORD cbStruct;
544 DWORD dwFormatIndex;
545 DWORD dwFormatTag;
546 DWORD fdwSupport;
547 PWAVEFORMATEX pwfx;
548 DWORD cbwfx;
549 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
550 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
552 typedef struct _ACMFORMATDETAILS16
554 DWORD cbStruct;
555 DWORD dwFormatIndex;
556 DWORD dwFormatTag;
557 DWORD fdwSupport;
558 LPWAVEFORMATEX pwfx;
559 DWORD cbwfx;
560 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
561 } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
563 typedef struct _ACMFORMATTAGDETAILSA
565 DWORD cbStruct;
566 DWORD dwFormatTagIndex;
567 DWORD dwFormatTag;
568 DWORD cbFormatSize;
569 DWORD fdwSupport;
570 DWORD cStandardFormats;
571 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
572 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
574 typedef struct _ACMFORMATTAGDETAILSW
576 DWORD cbStruct;
577 DWORD dwFormatTagIndex;
578 DWORD dwFormatTag;
579 DWORD cbFormatSize;
580 DWORD fdwSupport;
581 DWORD cStandardFormats;
582 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
583 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
585 typedef struct _ACMFORMATTAGDETAILS16
587 DWORD cbStruct;
588 DWORD dwFormatTagIndex;
589 DWORD dwFormatTag;
590 DWORD cbFormatSize;
591 DWORD fdwSupport;
592 DWORD cStandardFormats;
593 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
594 } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
596 typedef struct _ACMSTREAMHEADER
598 DWORD cbStruct;
599 DWORD fdwStatus;
600 DWORD dwUser;
601 LPBYTE pbSrc;
602 DWORD cbSrcLength;
603 DWORD cbSrcLengthUsed;
604 DWORD dwSrcUser;
605 LPBYTE pbDst;
606 DWORD cbDstLength;
607 DWORD cbDstLengthUsed;
608 DWORD dwDstUser;
609 DWORD dwReservedDriver[10];
610 } ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
611 ACMSTREAMHEADER, *PACMSTREAMHEADER;
613 /***********************************************************************
614 * Callbacks 2
617 typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
618 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
619 DWORD dwInstance, DWORD fdwSupport
622 typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
623 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
624 DWORD dwInstance, DWORD fdwSupport
627 typedef BOOL16 (CALLBACK *ACMFILTERENUMCB16)(
628 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
629 DWORD dwInstance, DWORD fdwSupport
632 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
633 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
634 DWORD dwInstance, DWORD fdwSupport
637 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
638 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
639 DWORD dwInstance, DWORD fdwSupport
642 typedef BOOL16 (CALLBACK *ACMFILTERTAGENUMCB16)(
643 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
644 DWORD dwInstance, DWORD fdwSupport
647 typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
648 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
649 DWORD dwInstance, DWORD fdwSupport
652 typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
653 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
654 DWORD dwInstance, DWORD fdwSupport
657 typedef BOOL16 (CALLBACK *ACMFORMATENUMCB16)(
658 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
659 DWORD dwInstance, DWORD fdwSupport
662 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
663 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
664 DWORD dwInstance, DWORD fdwSupport
667 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
668 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
669 DWORD dwInstance, DWORD fdwSupport
672 typedef BOOL16 (CALLBACK *ACMFORMATTAGENUMCB16)(
673 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
674 DWORD dwInstance, DWORD fdwSupport
677 /***********************************************************************
678 * Functions - Win16
681 DWORD WINAPI acmGetVersion16(
683 MMRESULT16 WINAPI acmMetrics16(
684 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
686 MMRESULT16 WINAPI acmDriverEnum16(
687 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
689 MMRESULT16 WINAPI acmDriverDetails16(
690 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
692 MMRESULT16 WINAPI acmDriverAdd16(
693 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
694 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
696 MMRESULT16 WINAPI acmDriverRemove16(
697 HACMDRIVERID16 hadid, DWORD fdwRemove
699 MMRESULT16 WINAPI acmDriverOpen16(
700 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
702 MMRESULT16 WINAPI acmDriverClose16(
703 HACMDRIVER16 had, DWORD fdwClose
705 LRESULT WINAPI acmDriverMessage16(
706 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
708 MMRESULT16 WINAPI acmDriverID16(
709 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
711 MMRESULT16 WINAPI acmDriverPriority16(
712 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
714 MMRESULT16 WINAPI acmFormatTagDetails16(
715 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
717 MMRESULT16 WINAPI acmFormatTagEnum16(
718 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
719 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
721 MMRESULT16 WINAPI acmFormatChoose16(
722 LPACMFORMATCHOOSE16 pafmtc
724 MMRESULT16 WINAPI acmFormatDetails16(
725 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
727 MMRESULT16 WINAPI acmFormatEnum16(
728 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
729 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
731 MMRESULT16 WINAPI acmFormatSuggest16(
732 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
733 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
735 MMRESULT16 WINAPI acmFilterTagDetails16(
736 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
738 MMRESULT16 WINAPI acmFilterTagEnum16(
739 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
740 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
742 MMRESULT16 WINAPI acmFilterChoose16(
743 LPACMFILTERCHOOSE16 pafltrc
745 MMRESULT16 WINAPI acmFilterDetails16(
746 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
748 MMRESULT16 WINAPI acmFilterEnum16(
749 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
750 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
752 MMRESULT16 WINAPI acmStreamOpen16(
753 LPHACMSTREAM16 phas, HACMDRIVER16 had,
754 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
755 LPWAVEFILTER pwfltr, DWORD dwCallback,
756 DWORD dwInstance, DWORD fdwOpen
758 MMRESULT16 WINAPI acmStreamClose16(
759 HACMSTREAM16 has, DWORD fdwClose
761 MMRESULT16 WINAPI acmStreamSize16(
762 HACMSTREAM16 has, DWORD cbInput,
763 LPDWORD pdwOutputBytes, DWORD fdwSize
765 MMRESULT16 WINAPI acmStreamConvert16(
766 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
768 MMRESULT16 WINAPI acmStreamReset16(
769 HACMSTREAM16 has, DWORD fdwReset
771 MMRESULT16 WINAPI acmStreamPrepareHeader16(
772 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
774 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
775 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
778 /***********************************************************************
779 * Functions - Win32
782 MMRESULT WINAPI acmDriverAddA(
783 PHACMDRIVERID phadid, HINSTANCE hinstModule,
784 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
786 MMRESULT WINAPI acmDriverAddW(
787 PHACMDRIVERID phadid, HINSTANCE hinstModule,
788 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
790 MMRESULT WINAPI acmDriverClose(
791 HACMDRIVER had, DWORD fdwClose
793 MMRESULT WINAPI acmDriverDetailsA(
794 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
796 MMRESULT WINAPI acmDriverDetailsW(
797 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
799 MMRESULT WINAPI acmDriverEnum(
800 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
802 MMRESULT WINAPI acmDriverID(
803 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
805 LRESULT WINAPI acmDriverMessage(
806 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
808 MMRESULT WINAPI acmDriverOpen(
809 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
811 MMRESULT WINAPI acmDriverPriority(
812 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
814 MMRESULT WINAPI acmDriverRemove(
815 HACMDRIVERID hadid, DWORD fdwRemove
817 MMRESULT WINAPI acmFilterChooseA(
818 PACMFILTERCHOOSEA pafltrc
820 MMRESULT WINAPI acmFilterChooseW(
821 PACMFILTERCHOOSEW pafltrc
823 MMRESULT WINAPI acmFilterDetailsA(
824 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
826 MMRESULT WINAPI acmFilterDetailsW(
827 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
829 MMRESULT WINAPI acmFilterEnumA(
830 HACMDRIVER had, PACMFILTERDETAILSA pafd,
831 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
833 MMRESULT WINAPI acmFilterEnumW(
834 HACMDRIVER had, PACMFILTERDETAILSW pafd,
835 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
837 MMRESULT WINAPI acmFilterTagDetailsA(
838 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
840 MMRESULT WINAPI acmFilterTagDetailsW(
841 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
843 MMRESULT WINAPI acmFilterTagEnumA(
844 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
845 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
847 MMRESULT WINAPI acmFilterTagEnumW(
848 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
849 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
851 MMRESULT WINAPI acmFormatChooseA(
852 PACMFORMATCHOOSEA pafmtc
854 MMRESULT WINAPI acmFormatChooseW(
855 PACMFORMATCHOOSEW pafmtc
857 MMRESULT WINAPI acmFormatDetailsA(
858 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
860 MMRESULT WINAPI acmFormatDetailsW(
861 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
863 MMRESULT WINAPI acmFormatEnumA(
864 HACMDRIVER had, PACMFORMATDETAILSA pafd,
865 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
867 MMRESULT WINAPI acmFormatEnumW(
868 HACMDRIVER had, PACMFORMATDETAILSW pafd,
869 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
871 MMRESULT WINAPI acmFormatSuggest(
872 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
873 DWORD cbwfxDst, DWORD fdwSuggest
875 MMRESULT WINAPI acmFormatTagDetailsA(
876 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
878 MMRESULT WINAPI acmFormatTagDetailsW(
879 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
881 MMRESULT WINAPI acmFormatTagEnumA(
882 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
883 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
885 MMRESULT WINAPI acmFormatTagEnumW(
886 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
887 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
889 DWORD WINAPI acmGetVersion(
891 MMRESULT WINAPI acmMetrics(
892 HACMOBJ hao, UINT uMetric, LPVOID pMetric
894 MMRESULT WINAPI acmStreamClose(
895 HACMSTREAM has, DWORD fdwClose
897 MMRESULT WINAPI acmStreamConvert(
898 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
900 MMRESULT WINAPI acmStreamMessage(
901 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
903 MMRESULT WINAPI acmStreamOpen(
904 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
905 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
906 DWORD dwInstance, DWORD fdwOpen
908 MMRESULT WINAPI acmStreamPrepareHeader(
909 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
911 MMRESULT WINAPI acmStreamReset(
912 HACMSTREAM has, DWORD fdwReset
914 MMRESULT WINAPI acmStreamSize(
915 HACMSTREAM has, DWORD cbInput,
916 LPDWORD pdwOutputBytes, DWORD fdwSize
918 MMRESULT WINAPI acmStreamUnprepareHeader(
919 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
922 #ifdef __cplusplus
923 } /* extern "C" */
924 #endif /* defined(__cplusplus) */
926 #endif /* __WINE_MSACM_H */