2 * msacm.h - Declarations for MSACM
13 /***********************************************************************
17 /* FIXME: Move to windef.h */
18 #define DECLARE_HANDLE(a) \
19 typedef HANDLE16 a##16; \
21 typedef a##16 *P##a##16; \
22 typedef a##16 *NP##a##16; \
23 typedef a##16 *LP##a##16; \
26 DECLARE_HANDLE(HACMDRIVERID)
27 DECLARE_HANDLE(HACMDRIVER)
28 DECLARE_HANDLE(HACMSTREAM)
29 DECLARE_HANDLE(HACMOBJ)
31 /* FIXME: Remove when define moved to windef.h */
34 /***********************************************************************
38 #define ACMERR_BASE 512
39 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
40 #define ACMERR_BUSY (ACMERR_BASE + 1)
41 #define ACMERR_UNPREPARED (ACMERR_BASE + 2)
42 #define ACMERR_CANCELED (ACMERR_BASE + 3)
44 #define MM_ACM_OPEN MM_STREAM_OPEN
45 #define MM_ACM_CLOSE MM_STREAM_CLOSE
46 #define MM_ACM_DONE MM_STREAM_DONE
48 #define ACM_DRIVERADDF_FUNCTION 0x00000003L
49 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
50 #define ACM_DRIVERADDF_TYPEMASK 0x00000007L
51 #define ACM_DRIVERADDF_LOCAL 0x00000000L
52 #define ACM_DRIVERADDF_GLOBAL 0x00000008L
54 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
55 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
56 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
57 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
58 #define ACMDRIVERDETAILS_FEATURES_CHARS 512
60 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
61 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
63 #define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
64 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
65 #define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
66 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
67 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
68 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
69 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
71 #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
72 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
74 #define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
75 #define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
76 #define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
77 #define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
78 #define ACM_DRIVERPRIORITYF_END 0x00020000L
79 #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
81 #define MM_ACM_FILTERCHOOSE 0x8000
83 #define FILTERCHOOSE_MESSAGE 0
84 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
85 #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
86 #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
88 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
89 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
90 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
91 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
92 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
93 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
95 #define ACMFILTERDETAILS_FILTER_CHARS 128
97 #define ACM_FILTERDETAILSF_INDEX 0x00000000L
98 #define ACM_FILTERDETAILSF_FILTER 0x00000001L
99 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
101 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
103 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
104 #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
105 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
106 #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
108 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
110 #define ACMHELPMSGSTRINGA "acmchoose_help"
111 #define ACMHELPMSGSTRINGW L"acmchoose_help"
112 #define ACMHELPMSGSTRING16 "acmchoose_help"
114 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
115 #define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
116 #define ACMHELPMSGCONTEXTMENU16 "acmchoose_contextmenu"
118 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
119 #define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
120 #define ACMHELPMSGCONTEXTHELP16 "acmchoose_contexthelp"
122 #define MM_ACM_FORMATCHOOSE 0x8000
124 #define FORMATCHOOSE_MESSAGE 0
125 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
126 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
127 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
129 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
130 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
131 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
132 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
133 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
134 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
136 #define ACMFORMATDETAILS_FORMAT_CHARS 128
138 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
139 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
140 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
142 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
143 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
144 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
145 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
146 #define ACM_FORMATENUMF_CONVERT 0x00100000L
147 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
148 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
149 #define ACM_FORMATENUMF_INPUT 0x00800000L
150 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
152 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
153 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
154 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
155 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
156 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
158 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
160 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
161 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
162 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
163 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
165 #define ACM_METRIC_COUNT_DRIVERS 1
166 #define ACM_METRIC_COUNT_CODECS 2
167 #define ACM_METRIC_COUNT_CONVERTERS 3
168 #define ACM_METRIC_COUNT_FILTERS 4
169 #define ACM_METRIC_COUNT_DISABLED 5
170 #define ACM_METRIC_COUNT_HARDWARE 6
171 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
172 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
173 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
174 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
175 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
176 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
177 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
178 #define ACM_METRIC_MAX_SIZE_FORMAT 50
179 #define ACM_METRIC_MAX_SIZE_FILTER 51
180 #define ACM_METRIC_DRIVER_SUPPORT 100
181 #define ACM_METRIC_DRIVER_PRIORITY 101
183 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
184 #define ACM_STREAMCONVERTF_START 0x00000010
185 #define ACM_STREAMCONVERTF_END 0x00000020
187 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
188 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
189 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
191 #define ACM_STREAMOPENF_QUERY 0x00000001
192 #define ACM_STREAMOPENF_ASYNC 0x00000002
193 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
195 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
196 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
197 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
199 #define ACMDM_USER (DRV_USER + 0x0000)
200 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
201 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
203 #define ACMDM_BASE ACMDM_RESERVED_LOW
205 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
207 /***********************************************************************
211 typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
212 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
215 typedef BOOL16 (CALLBACK *ACMDRIVERENUMCB16)(
216 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
219 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
220 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
223 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
224 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
227 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROC16)(
228 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
231 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
232 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
235 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
236 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
239 typedef UINT16 (CALLBACK *ACMFORMATCHOOSEHOOKPROC16)(
240 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
243 /***********************************************************************
247 typedef struct _ACMDRIVERDETAILSA
266 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
267 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
268 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
269 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
270 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
271 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
273 typedef struct _ACMDRIVERDETAILSW
292 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
293 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
294 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
295 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
296 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
297 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
299 typedef struct _ACMDRIVERDETAILS16
318 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
319 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
320 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
321 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
322 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
323 } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
325 typedef struct _ACMFILTERCHOOSEA
337 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
338 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
343 PWAVEFILTER pwfltrEnum;
346 LPCSTR pszTemplateName;
348 ACMFILTERCHOOSEHOOKPROCA pfnHook;
349 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
351 typedef struct _ACMFILTERCHOOSEW
363 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
364 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
369 PWAVEFILTER pwfltrEnum;
372 LPCWSTR pszTemplateName;
374 ACMFILTERCHOOSEHOOKPROCW pfnHook;
375 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
377 typedef struct _ACMFILTERCHOOSE16
389 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
390 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
395 LPWAVEFILTER pwfltrEnum;
397 HINSTANCE16 hInstance;
398 LPCSTR pszTemplateName;
400 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
401 } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
403 typedef struct _ACMFILTERDETAILSA
411 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
412 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
414 typedef struct _ACMFILTERDETAILSW
422 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
423 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
425 typedef struct _ACMFILTERDETAILS16
433 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
434 } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
436 typedef struct _ACMFILTERTAGDETAILSA
439 DWORD dwFilterTagIndex;
443 DWORD cStandardFilters;
444 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
445 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
447 typedef struct _ACMFILTERTAGDETAILSW
450 DWORD dwFilterTagIndex;
454 DWORD cStandardFilters;
455 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
456 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
458 typedef struct _ACMFILTERTAGDETAILS16
461 DWORD dwFilterTagIndex;
465 DWORD cStandardFilters;
466 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
467 } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
469 typedef struct _ACMFORMATCHOOSEA
480 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
481 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
487 PWAVEFORMATEX pwfxEnum;
490 LPCSTR pszTemplateName;
492 ACMFORMATCHOOSEHOOKPROCA pfnHook;
493 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
495 typedef struct _ACMFORMATCHOOSEW
506 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
507 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
513 LPWAVEFORMATEX pwfxEnum;
516 LPCWSTR pszTemplateName;
518 ACMFORMATCHOOSEHOOKPROCW pfnHook;
519 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
521 typedef struct _ACMFORMATCHOOSE16
532 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
533 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
539 LPWAVEFORMATEX pwfxEnum;
541 HINSTANCE16 hInstance;
542 LPCSTR pszTemplateName;
544 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
545 } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
547 typedef struct _ACMFORMATDETAILSA
555 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
556 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
558 typedef struct _ACMFORMATDETAILSW
566 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
567 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
569 typedef struct _ACMFORMATDETAILS16
577 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
578 } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
580 typedef struct _ACMFORMATTAGDETAILSA
583 DWORD dwFormatTagIndex;
587 DWORD cStandardFormats;
588 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
589 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
591 typedef struct _ACMFORMATTAGDETAILSW
594 DWORD dwFormatTagIndex;
598 DWORD cStandardFormats;
599 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
600 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
602 typedef struct _ACMFORMATTAGDETAILS16
605 DWORD dwFormatTagIndex;
609 DWORD cStandardFormats;
610 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
611 } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
613 typedef struct _ACMSTREAMHEADER
620 DWORD cbSrcLengthUsed;
624 DWORD cbDstLengthUsed;
626 DWORD dwReservedDriver[10];
627 } ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
628 ACMSTREAMHEADER, *PACMSTREAMHEADER;
630 /***********************************************************************
634 typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
635 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
636 DWORD dwInstance, DWORD fdwSupport
639 typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
640 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
641 DWORD dwInstance, DWORD fdwSupport
644 typedef BOOL16 (CALLBACK *ACMFILTERENUMCB16)(
645 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
646 DWORD dwInstance, DWORD fdwSupport
649 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
650 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
651 DWORD dwInstance, DWORD fdwSupport
654 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
655 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
656 DWORD dwInstance, DWORD fdwSupport
659 typedef BOOL16 (CALLBACK *ACMFILTERTAGENUMCB16)(
660 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
661 DWORD dwInstance, DWORD fdwSupport
664 typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
665 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
666 DWORD dwInstance, DWORD fdwSupport
669 typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
670 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
671 DWORD dwInstance, DWORD fdwSupport
674 typedef BOOL16 (CALLBACK *ACMFORMATENUMCB16)(
675 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
676 DWORD dwInstance, DWORD fdwSupport
679 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
680 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
681 DWORD dwInstance, DWORD fdwSupport
684 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
685 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
686 DWORD dwInstance, DWORD fdwSupport
689 typedef BOOL16 (CALLBACK *ACMFORMATTAGENUMCB16)(
690 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
691 DWORD dwInstance, DWORD fdwSupport
694 /***********************************************************************
698 DWORD WINAPI acmGetVersion16(
700 MMRESULT16 WINAPI acmMetrics16(
701 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
703 MMRESULT16 WINAPI acmDriverEnum16(
704 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
706 MMRESULT16 WINAPI acmDriverDetails16(
707 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
709 MMRESULT16 WINAPI acmDriverAdd16(
710 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
711 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
713 MMRESULT16 WINAPI acmDriverRemove16(
714 HACMDRIVERID16 hadid, DWORD fdwRemove
716 MMRESULT16 WINAPI acmDriverOpen16(
717 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
719 MMRESULT16 WINAPI acmDriverClose16(
720 HACMDRIVER16 had, DWORD fdwClose
722 LRESULT WINAPI acmDriverMessage16(
723 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
725 MMRESULT16 WINAPI acmDriverID16(
726 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
728 MMRESULT16 WINAPI acmDriverPriority16(
729 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
731 MMRESULT16 WINAPI acmFormatTagDetails16(
732 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
734 MMRESULT16 WINAPI acmFormatTagEnum16(
735 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
736 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
738 MMRESULT16 WINAPI acmFormatChoose16(
739 LPACMFORMATCHOOSE16 pafmtc
741 MMRESULT16 WINAPI acmFormatDetails16(
742 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
744 MMRESULT16 WINAPI acmFormatEnum16(
745 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
746 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
748 MMRESULT16 WINAPI acmFormatSuggest16(
749 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
750 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
752 MMRESULT16 WINAPI acmFilterTagDetails16(
753 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
755 MMRESULT16 WINAPI acmFilterTagEnum16(
756 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
757 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
759 MMRESULT16 WINAPI acmFilterChoose16(
760 LPACMFILTERCHOOSE16 pafltrc
762 MMRESULT16 WINAPI acmFilterDetails16(
763 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
765 MMRESULT16 WINAPI acmFilterEnum16(
766 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
767 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
769 MMRESULT16 WINAPI acmStreamOpen16(
770 LPHACMSTREAM16 phas, HACMDRIVER16 had,
771 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
772 LPWAVEFILTER pwfltr, DWORD dwCallback,
773 DWORD dwInstance, DWORD fdwOpen
775 MMRESULT16 WINAPI acmStreamClose16(
776 HACMSTREAM16 has, DWORD fdwClose
778 MMRESULT16 WINAPI acmStreamSize16(
779 HACMSTREAM16 has, DWORD cbInput,
780 LPDWORD pdwOutputBytes, DWORD fdwSize
782 MMRESULT16 WINAPI acmStreamConvert16(
783 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
785 MMRESULT16 WINAPI acmStreamReset16(
786 HACMSTREAM16 has, DWORD fdwReset
788 MMRESULT16 WINAPI acmStreamPrepareHeader16(
789 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
791 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
792 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
795 /***********************************************************************
799 MMRESULT WINAPI acmDriverAddA(
800 PHACMDRIVERID phadid, HINSTANCE hinstModule,
801 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
803 MMRESULT WINAPI acmDriverAddW(
804 PHACMDRIVERID phadid, HINSTANCE hinstModule,
805 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
807 MMRESULT WINAPI acmDriverClose(
808 HACMDRIVER had, DWORD fdwClose
810 MMRESULT WINAPI acmDriverDetailsA(
811 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
813 MMRESULT WINAPI acmDriverDetailsW(
814 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
816 MMRESULT WINAPI acmDriverEnum(
817 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
819 MMRESULT WINAPI acmDriverID(
820 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
822 LRESULT WINAPI acmDriverMessage(
823 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
825 MMRESULT WINAPI acmDriverOpen(
826 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
828 MMRESULT WINAPI acmDriverPriority(
829 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
831 MMRESULT WINAPI acmDriverRemove(
832 HACMDRIVERID hadid, DWORD fdwRemove
834 MMRESULT WINAPI acmFilterChooseA(
835 PACMFILTERCHOOSEA pafltrc
837 MMRESULT WINAPI acmFilterChooseW(
838 PACMFILTERCHOOSEW pafltrc
840 MMRESULT WINAPI acmFilterDetailsA(
841 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
843 MMRESULT WINAPI acmFilterDetailsW(
844 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
846 MMRESULT WINAPI acmFilterEnumA(
847 HACMDRIVER had, PACMFILTERDETAILSA pafd,
848 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
850 MMRESULT WINAPI acmFilterEnumW(
851 HACMDRIVER had, PACMFILTERDETAILSW pafd,
852 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
854 MMRESULT WINAPI acmFilterTagDetailsA(
855 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
857 MMRESULT WINAPI acmFilterTagDetailsW(
858 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
860 MMRESULT WINAPI acmFilterTagEnumA(
861 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
862 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
864 MMRESULT WINAPI acmFilterTagEnumW(
865 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
866 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
868 MMRESULT WINAPI acmFormatChooseA(
869 PACMFORMATCHOOSEA pafmtc
871 MMRESULT WINAPI acmFormatChooseW(
872 PACMFORMATCHOOSEW pafmtc
874 MMRESULT WINAPI acmFormatDetailsA(
875 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
877 MMRESULT WINAPI acmFormatDetailsW(
878 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
880 MMRESULT WINAPI acmFormatEnumA(
881 HACMDRIVER had, PACMFORMATDETAILSA pafd,
882 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
884 MMRESULT WINAPI acmFormatEnumW(
885 HACMDRIVER had, PACMFORMATDETAILSW pafd,
886 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
888 MMRESULT WINAPI acmFormatSuggest(
889 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
890 DWORD cbwfxDst, DWORD fdwSuggest
892 MMRESULT WINAPI acmFormatTagDetailsA(
893 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
895 MMRESULT WINAPI acmFormatTagDetailsW(
896 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
898 MMRESULT WINAPI acmFormatTagEnumA(
899 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
900 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
902 MMRESULT WINAPI acmFormatTagEnumW(
903 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
904 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
906 DWORD WINAPI acmGetVersion(
908 MMRESULT WINAPI acmMetrics(
909 HACMOBJ hao, UINT uMetric, LPVOID pMetric
911 MMRESULT WINAPI acmStreamClose(
912 HACMSTREAM has, DWORD fdwClose
914 MMRESULT WINAPI acmStreamConvert(
915 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
917 MMRESULT WINAPI acmStreamMessage(
918 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
920 MMRESULT WINAPI acmStreamOpen(
921 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
922 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
923 DWORD dwInstance, DWORD fdwOpen
925 MMRESULT WINAPI acmStreamPrepareHeader(
926 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
928 MMRESULT WINAPI acmStreamReset(
929 HACMSTREAM has, DWORD fdwReset
931 MMRESULT WINAPI acmStreamSize(
932 HACMSTREAM has, DWORD cbInput,
933 LPDWORD pdwOutputBytes, DWORD fdwSize
935 MMRESULT WINAPI acmStreamUnprepareHeader(
936 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
939 /***********************************************************************
940 * Wine specific - Win32
942 typedef struct _WINE_ACMBUILTINDRIVER
944 LPSTR pszDriverAlias;
945 DRIVERPROC pfnDriverProc;
946 } WINE_ACMBUILTINDRIVER, *PWINE_ACMBUILTINDRIVER;
948 typedef struct _WINE_ACMLOCALDRIVER
950 DRIVERPROC pfnDriverProc;
951 } WINE_ACMLOCALDRIVER, *PWINE_ACMLOCALDRIVER;
953 typedef struct _WINE_ACMDRIVERID *PWINE_ACMDRIVERID;
955 typedef struct _WINE_ACMOBJ
957 PWINE_ACMDRIVERID pACMDriverID;
958 } WINE_ACMOBJ, *PWINE_ACMOBJ;
960 typedef struct _WINE_ACMDRIVER
964 } WINE_ACMDRIVER, *PWINE_ACMDRIVER;
966 typedef struct _WINE_ACMSTREAM
969 /* FIME: More fields needed */
970 } WINE_ACMSTREAM, *PWINE_ACMSTREAM;
972 typedef struct _WINE_ACMDRIVERID
974 LPSTR pszDriverAlias;
976 PWINE_ACMLOCALDRIVER pACMLocalDriver;
978 PWINE_ACMDRIVER pACMDriver; /* NULL if not open */
979 PWINE_ACMDRIVERID pNextACMDriverID;
980 PWINE_ACMDRIVERID pPreviousACMDriverID;
984 extern WINE_ACMBUILTINDRIVER MSACM_BuiltinDrivers[];
987 extern HANDLE MSACM_hHeap;
988 extern PWINE_ACMDRIVERID MSACM_pFirstACMDriverID;
989 extern PWINE_ACMDRIVERID MSACM_pLastACMDriverID;
990 PWINE_ACMDRIVERID MSACM_RegisterDriver(
991 LPSTR pszDriverAlias, LPSTR pszFileName,
992 PWINE_ACMLOCALDRIVER pLocalDriver);
993 void MSACM_RegisterAllDrivers();
994 PWINE_ACMDRIVERID MSACM_UnregisterDriver(PWINE_ACMDRIVERID p);
995 void MSACM_UnregisterAllDrivers();
996 PWINE_ACMDRIVERID MSACM_GetDriverID(HACMDRIVERID hDriverID);
997 PWINE_ACMDRIVER MSACM_GetDriver(HACMDRIVER hDriver);
998 PWINE_ACMOBJ MSACM_GetObj(HACMOBJ hObj);
999 HDRVR MSACM_OpenDriverProc(DRIVERPROC pfnDriverProc);
1001 #endif /* __WINE_MSACM_H */