xref: /reactos/sdk/include/psdk/msacm.h (revision c2c66aff)
1*c2c66affSColin Finck /*
2*c2c66affSColin Finck  * Declarations for MSACM
3*c2c66affSColin Finck  *
4*c2c66affSColin Finck  * Copyright (C) the Wine project
5*c2c66affSColin Finck  *
6*c2c66affSColin Finck  * This library is free software; you can redistribute it and/or
7*c2c66affSColin Finck  * modify it under the terms of the GNU Lesser General Public
8*c2c66affSColin Finck  * License as published by the Free Software Foundation; either
9*c2c66affSColin Finck  * version 2.1 of the License, or (at your option) any later version.
10*c2c66affSColin Finck  *
11*c2c66affSColin Finck  * This library is distributed in the hope that it will be useful,
12*c2c66affSColin Finck  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13*c2c66affSColin Finck  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14*c2c66affSColin Finck  * Lesser General Public License for more details.
15*c2c66affSColin Finck  *
16*c2c66affSColin Finck  * You should have received a copy of the GNU Lesser General Public
17*c2c66affSColin Finck  * License along with this library; if not, write to the Free Software
18*c2c66affSColin Finck  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19*c2c66affSColin Finck  */
20*c2c66affSColin Finck 
21*c2c66affSColin Finck #ifndef __WINE_MSACM_H
22*c2c66affSColin Finck #define __WINE_MSACM_H
23*c2c66affSColin Finck 
24*c2c66affSColin Finck #ifdef __cplusplus
25*c2c66affSColin Finck extern "C" {
26*c2c66affSColin Finck #endif /* defined(__cplusplus) */
27*c2c66affSColin Finck 
28*c2c66affSColin Finck #include <pshpack1.h>
29*c2c66affSColin Finck 
30*c2c66affSColin Finck #define ACMAPI              WINAPI
31*c2c66affSColin Finck 
32*c2c66affSColin Finck /***********************************************************************
33*c2c66affSColin Finck  * Defines/Enums
34*c2c66affSColin Finck  */
35*c2c66affSColin Finck #define ACMERR_BASE        512
36*c2c66affSColin Finck #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
37*c2c66affSColin Finck #define ACMERR_BUSY        (ACMERR_BASE + 1)
38*c2c66affSColin Finck #define ACMERR_UNPREPARED  (ACMERR_BASE + 2)
39*c2c66affSColin Finck #define ACMERR_CANCELED    (ACMERR_BASE + 3)
40*c2c66affSColin Finck 
41*c2c66affSColin Finck #define MM_ACM_OPEN  MM_STREAM_OPEN
42*c2c66affSColin Finck #define MM_ACM_CLOSE MM_STREAM_CLOSE
43*c2c66affSColin Finck #define MM_ACM_DONE  MM_STREAM_DONE
44*c2c66affSColin Finck 
45*c2c66affSColin Finck #define ACM_DRIVERADDF_NAME       0x00000001L
46*c2c66affSColin Finck #define ACM_DRIVERADDF_FUNCTION   0x00000003L
47*c2c66affSColin Finck #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
48*c2c66affSColin Finck #define ACM_DRIVERADDF_TYPEMASK   0x00000007L
49*c2c66affSColin Finck #define ACM_DRIVERADDF_LOCAL      0x00000000L
50*c2c66affSColin Finck #define ACM_DRIVERADDF_GLOBAL     0x00000008L
51*c2c66affSColin Finck 
52*c2c66affSColin Finck #define ACMDRIVERDETAILS_SHORTNAME_CHARS  32
53*c2c66affSColin Finck #define ACMDRIVERDETAILS_LONGNAME_CHARS  128
54*c2c66affSColin Finck #define ACMDRIVERDETAILS_COPYRIGHT_CHARS  80
55*c2c66affSColin Finck #define ACMDRIVERDETAILS_LICENSING_CHARS 128
56*c2c66affSColin Finck #define ACMDRIVERDETAILS_FEATURES_CHARS  512
57*c2c66affSColin Finck 
58*c2c66affSColin Finck #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
59*c2c66affSColin Finck #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED  mmioFOURCC('\0', '\0', '\0', '\0')
60*c2c66affSColin Finck 
61*c2c66affSColin Finck #define ACMDRIVERDETAILS_SUPPORTF_CODEC     0x00000001L
62*c2c66affSColin Finck #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
63*c2c66affSColin Finck #define ACMDRIVERDETAILS_SUPPORTF_FILTER    0x00000004L
64*c2c66affSColin Finck #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE  0x00000008L
65*c2c66affSColin Finck #define ACMDRIVERDETAILS_SUPPORTF_ASYNC     0x00000010L
66*c2c66affSColin Finck #define ACMDRIVERDETAILS_SUPPORTF_LOCAL     0x40000000L
67*c2c66affSColin Finck #define ACMDRIVERDETAILS_SUPPORTF_DISABLED  0x80000000L
68*c2c66affSColin Finck 
69*c2c66affSColin Finck #define ACM_DRIVERENUMF_NOLOCAL  0x40000000L
70*c2c66affSColin Finck #define ACM_DRIVERENUMF_DISABLED 0x80000000L
71*c2c66affSColin Finck 
72*c2c66affSColin Finck #define ACM_DRIVERPRIORITYF_ENABLE    0x00000001L
73*c2c66affSColin Finck #define ACM_DRIVERPRIORITYF_DISABLE   0x00000002L
74*c2c66affSColin Finck #define ACM_DRIVERPRIORITYF_ABLEMASK  0x00000003L
75*c2c66affSColin Finck #define ACM_DRIVERPRIORITYF_BEGIN     0x00010000L
76*c2c66affSColin Finck #define ACM_DRIVERPRIORITYF_END       0x00020000L
77*c2c66affSColin Finck #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
78*c2c66affSColin Finck 
79*c2c66affSColin Finck #define MM_ACM_FILTERCHOOSE 0x8000
80*c2c66affSColin Finck 
81*c2c66affSColin Finck #define FILTERCHOOSE_MESSAGE          0
82*c2c66affSColin Finck #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
83*c2c66affSColin Finck #define FILTERCHOOSE_FILTER_VERIFY    (FILTERCHOOSE_MESSAGE+1)
84*c2c66affSColin Finck #define FILTERCHOOSE_CUSTOM_VERIFY    (FILTERCHOOSE_MESSAGE+2)
85*c2c66affSColin Finck 
86*c2c66affSColin Finck #define ACMFILTERCHOOSE_STYLEF_SHOWHELP             0x00000004L
87*c2c66affSColin Finck #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK           0x00000008L
88*c2c66affSColin Finck #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE       0x00000010L
89*c2c66affSColin Finck #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
90*c2c66affSColin Finck #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT   0x00000040L
91*c2c66affSColin Finck #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP          0x00000080L
92*c2c66affSColin Finck 
93*c2c66affSColin Finck #define ACMFILTERDETAILS_FILTER_CHARS 128
94*c2c66affSColin Finck 
95*c2c66affSColin Finck #define ACM_FILTERDETAILSF_INDEX     0x00000000L
96*c2c66affSColin Finck #define ACM_FILTERDETAILSF_FILTER    0x00000001L
97*c2c66affSColin Finck #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
98*c2c66affSColin Finck 
99*c2c66affSColin Finck #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
100*c2c66affSColin Finck 
101*c2c66affSColin Finck #define ACM_FILTERTAGDETAILSF_INDEX       0x00000000L
102*c2c66affSColin Finck #define ACM_FILTERTAGDETAILSF_FILTERTAG   0x00000001L
103*c2c66affSColin Finck #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
104*c2c66affSColin Finck #define ACM_FILTERTAGDETAILSF_QUERYMASK   0x0000000FL
105*c2c66affSColin Finck 
106*c2c66affSColin Finck #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
107*c2c66affSColin Finck 
108*c2c66affSColin Finck #define ACMHELPMSGSTRINGA       "acmchoose_help"
109*c2c66affSColin Finck #if defined(__GNUC__)
110*c2c66affSColin Finck # define ACMHELPMSGSTRINGW (const WCHAR []){ 'a','c','m', \
111*c2c66affSColin Finck   'c','h','o','o','s','e','_','h','e','l','p',0 }
112*c2c66affSColin Finck #elif defined(_MSC_VER)
113*c2c66affSColin Finck # define ACMHELPMSGSTRINGW      L"acmchoose_help"
114*c2c66affSColin Finck #else
115*c2c66affSColin Finck static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
116*c2c66affSColin Finck   'c','h','o','o','s','e','_','h','e','l','p',0 };
117*c2c66affSColin Finck #endif
118*c2c66affSColin Finck #define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING)
119*c2c66affSColin Finck 
120*c2c66affSColin Finck #define ACMHELPMSGCONTEXTMENUA  "acmchoose_contextmenu"
121*c2c66affSColin Finck #if defined(__GNUC__)
122*c2c66affSColin Finck # define ACMHELPMSGCONTEXTMENUW (const WCHAR []){ 'a','c','m', \
123*c2c66affSColin Finck   'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 }
124*c2c66affSColin Finck #elif defined(_MSC_VER)
125*c2c66affSColin Finck # define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
126*c2c66affSColin Finck #else
127*c2c66affSColin Finck static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
128*c2c66affSColin Finck   'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 };
129*c2c66affSColin Finck #endif
130*c2c66affSColin Finck #define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU)
131*c2c66affSColin Finck 
132*c2c66affSColin Finck #define ACMHELPMSGCONTEXTHELPA  "acmchoose_contexthelp"
133*c2c66affSColin Finck #if defined(__GNUC__)
134*c2c66affSColin Finck # define ACMHELPMSGCONTEXTHELPW (const WCHAR []){ 'a','c','m', \
135*c2c66affSColin Finck   'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 }
136*c2c66affSColin Finck #elif defined(_MSC_VER)
137*c2c66affSColin Finck # define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
138*c2c66affSColin Finck #else
139*c2c66affSColin Finck static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m',
140*c2c66affSColin Finck   'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 };
141*c2c66affSColin Finck #endif
142*c2c66affSColin Finck #define ACMHELPMSGCONTEXTHELP WINELIB_NAME_AW(ACMHELPMSGCONTEXTHELP)
143*c2c66affSColin Finck 
144*c2c66affSColin Finck #define MM_ACM_FORMATCHOOSE 0x8000
145*c2c66affSColin Finck 
146*c2c66affSColin Finck #define FORMATCHOOSE_MESSAGE          0
147*c2c66affSColin Finck #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
148*c2c66affSColin Finck #define FORMATCHOOSE_FORMAT_VERIFY    (FORMATCHOOSE_MESSAGE+1)
149*c2c66affSColin Finck #define FORMATCHOOSE_CUSTOM_VERIFY    (FORMATCHOOSE_MESSAGE+2)
150*c2c66affSColin Finck 
151*c2c66affSColin Finck #define ACMFORMATCHOOSE_STYLEF_SHOWHELP             0x00000004L
152*c2c66affSColin Finck #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK           0x00000008L
153*c2c66affSColin Finck #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE       0x00000010L
154*c2c66affSColin Finck #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
155*c2c66affSColin Finck #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT      0x00000040L
156*c2c66affSColin Finck #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP          0x00000080L
157*c2c66affSColin Finck 
158*c2c66affSColin Finck #define ACMFORMATDETAILS_FORMAT_CHARS   128
159*c2c66affSColin Finck 
160*c2c66affSColin Finck #define ACM_FORMATDETAILSF_INDEX     0x00000000L
161*c2c66affSColin Finck #define ACM_FORMATDETAILSF_FORMAT    0x00000001L
162*c2c66affSColin Finck #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
163*c2c66affSColin Finck 
164*c2c66affSColin Finck #define ACM_FORMATENUMF_WFORMATTAG     0x00010000L
165*c2c66affSColin Finck #define ACM_FORMATENUMF_NCHANNELS      0x00020000L
166*c2c66affSColin Finck #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
167*c2c66affSColin Finck #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
168*c2c66affSColin Finck #define ACM_FORMATENUMF_CONVERT        0x00100000L
169*c2c66affSColin Finck #define ACM_FORMATENUMF_SUGGEST        0x00200000L
170*c2c66affSColin Finck #define ACM_FORMATENUMF_HARDWARE       0x00400000L
171*c2c66affSColin Finck #define ACM_FORMATENUMF_INPUT          0x00800000L
172*c2c66affSColin Finck #define ACM_FORMATENUMF_OUTPUT         0x01000000L
173*c2c66affSColin Finck 
174*c2c66affSColin Finck #define ACM_FORMATSUGGESTF_WFORMATTAG     0x00010000L
175*c2c66affSColin Finck #define ACM_FORMATSUGGESTF_NCHANNELS      0x00020000L
176*c2c66affSColin Finck #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
177*c2c66affSColin Finck #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
178*c2c66affSColin Finck #define ACM_FORMATSUGGESTF_TYPEMASK       0x00FF0000L
179*c2c66affSColin Finck 
180*c2c66affSColin Finck #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
181*c2c66affSColin Finck 
182*c2c66affSColin Finck #define ACM_FORMATTAGDETAILSF_INDEX       0x00000000L
183*c2c66affSColin Finck #define ACM_FORMATTAGDETAILSF_FORMATTAG   0x00000001L
184*c2c66affSColin Finck #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
185*c2c66affSColin Finck #define ACM_FORMATTAGDETAILSF_QUERYMASK   0x0000000FL
186*c2c66affSColin Finck 
187*c2c66affSColin Finck #define ACM_METRIC_COUNT_DRIVERS            1
188*c2c66affSColin Finck #define ACM_METRIC_COUNT_CODECS             2
189*c2c66affSColin Finck #define ACM_METRIC_COUNT_CONVERTERS         3
190*c2c66affSColin Finck #define ACM_METRIC_COUNT_FILTERS            4
191*c2c66affSColin Finck #define ACM_METRIC_COUNT_DISABLED           5
192*c2c66affSColin Finck #define ACM_METRIC_COUNT_HARDWARE           6
193*c2c66affSColin Finck #define ACM_METRIC_COUNT_LOCAL_DRIVERS     20
194*c2c66affSColin Finck #define ACM_METRIC_COUNT_LOCAL_CODECS      21
195*c2c66affSColin Finck #define ACM_METRIC_COUNT_LOCAL_CONVERTERS  22
196*c2c66affSColin Finck #define ACM_METRIC_COUNT_LOCAL_FILTERS     23
197*c2c66affSColin Finck #define ACM_METRIC_COUNT_LOCAL_DISABLED    24
198*c2c66affSColin Finck #define ACM_METRIC_HARDWARE_WAVE_INPUT     30
199*c2c66affSColin Finck #define ACM_METRIC_HARDWARE_WAVE_OUTPUT    31
200*c2c66affSColin Finck #define ACM_METRIC_MAX_SIZE_FORMAT         50
201*c2c66affSColin Finck #define ACM_METRIC_MAX_SIZE_FILTER         51
202*c2c66affSColin Finck #define ACM_METRIC_DRIVER_SUPPORT         100
203*c2c66affSColin Finck #define ACM_METRIC_DRIVER_PRIORITY        101
204*c2c66affSColin Finck 
205*c2c66affSColin Finck #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
206*c2c66affSColin Finck #define ACM_STREAMCONVERTF_START      0x00000010
207*c2c66affSColin Finck #define ACM_STREAMCONVERTF_END        0x00000020
208*c2c66affSColin Finck 
209*c2c66affSColin Finck #define ACMSTREAMHEADER_STATUSF_DONE     0x00010000L
210*c2c66affSColin Finck #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
211*c2c66affSColin Finck #define ACMSTREAMHEADER_STATUSF_INQUEUE  0x00100000L
212*c2c66affSColin Finck 
213*c2c66affSColin Finck #define ACM_STREAMOPENF_QUERY       0x00000001
214*c2c66affSColin Finck #define ACM_STREAMOPENF_ASYNC       0x00000002
215*c2c66affSColin Finck #define ACM_STREAMOPENF_NONREALTIME 0x00000004
216*c2c66affSColin Finck 
217*c2c66affSColin Finck #define ACM_STREAMSIZEF_SOURCE      0x00000000L
218*c2c66affSColin Finck #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
219*c2c66affSColin Finck #define ACM_STREAMSIZEF_QUERYMASK   0x0000000FL
220*c2c66affSColin Finck 
221*c2c66affSColin Finck #define ACMDM_USER                  (DRV_USER + 0x0000)
222*c2c66affSColin Finck #define ACMDM_RESERVED_LOW          (DRV_USER + 0x2000)
223*c2c66affSColin Finck #define ACMDM_RESERVED_HIGH         (DRV_USER + 0x2FFF)
224*c2c66affSColin Finck 
225*c2c66affSColin Finck #define ACMDM_BASE                  ACMDM_RESERVED_LOW
226*c2c66affSColin Finck 
227*c2c66affSColin Finck #define ACMDM_DRIVER_ABOUT          (ACMDM_BASE + 11)
228*c2c66affSColin Finck 
229*c2c66affSColin Finck /* handles */
230*c2c66affSColin Finck 
231*c2c66affSColin Finck DECLARE_HANDLE(HACMDRIVERID);
232*c2c66affSColin Finck DECLARE_HANDLE(HACMDRIVER);
233*c2c66affSColin Finck DECLARE_HANDLE(HACMSTREAM);
234*c2c66affSColin Finck DECLARE_HANDLE(HACMOBJ);
235*c2c66affSColin Finck typedef HACMDRIVERID *PHACMDRIVERID, *LPHACMDRIVERID;
236*c2c66affSColin Finck typedef HACMDRIVER   *PHACMDRIVER, *LPHACMDRIVER;
237*c2c66affSColin Finck typedef HACMSTREAM   *PHACMSTREAM, *LPHACMSTREAM;
238*c2c66affSColin Finck typedef HACMOBJ      *PHACMOBJ, *LPHACMOBJ;
239*c2c66affSColin Finck 
240*c2c66affSColin Finck /***********************************************************************
241*c2c66affSColin Finck  * Callbacks
242*c2c66affSColin Finck  */
243*c2c66affSColin Finck 
244*c2c66affSColin Finck typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
245*c2c66affSColin Finck   HACMDRIVERID hadid, DWORD_PTR dwInstance, DWORD fdwSupport
246*c2c66affSColin Finck );
247*c2c66affSColin Finck 
248*c2c66affSColin Finck typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
249*c2c66affSColin Finck   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
250*c2c66affSColin Finck );
251*c2c66affSColin Finck 
252*c2c66affSColin Finck typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
253*c2c66affSColin Finck   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
254*c2c66affSColin Finck );
255*c2c66affSColin Finck #define	ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC)
256*c2c66affSColin Finck 
257*c2c66affSColin Finck typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
258*c2c66affSColin Finck   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
259*c2c66affSColin Finck );
260*c2c66affSColin Finck 
261*c2c66affSColin Finck typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
262*c2c66affSColin Finck   HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
263*c2c66affSColin Finck );
264*c2c66affSColin Finck #define	ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
265*c2c66affSColin Finck 
266*c2c66affSColin Finck /***********************************************************************
267*c2c66affSColin Finck  * Structures
268*c2c66affSColin Finck  */
269*c2c66affSColin Finck 
270*c2c66affSColin Finck typedef struct _ACMDRIVERDETAILSA
271*c2c66affSColin Finck {
272*c2c66affSColin Finck   DWORD    cbStruct;
273*c2c66affSColin Finck 
274*c2c66affSColin Finck   FOURCC   fccType;
275*c2c66affSColin Finck   FOURCC   fccComp;
276*c2c66affSColin Finck 
277*c2c66affSColin Finck   WORD     wMid;
278*c2c66affSColin Finck   WORD     wPid;
279*c2c66affSColin Finck 
280*c2c66affSColin Finck   DWORD    vdwACM;
281*c2c66affSColin Finck   DWORD    vdwDriver;
282*c2c66affSColin Finck 
283*c2c66affSColin Finck   DWORD    fdwSupport;
284*c2c66affSColin Finck   DWORD    cFormatTags;
285*c2c66affSColin Finck   DWORD    cFilterTags;
286*c2c66affSColin Finck 
287*c2c66affSColin Finck   HICON  hicon;
288*c2c66affSColin Finck 
289*c2c66affSColin Finck   CHAR     szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
290*c2c66affSColin Finck   CHAR     szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
291*c2c66affSColin Finck   CHAR     szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
292*c2c66affSColin Finck   CHAR     szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
293*c2c66affSColin Finck   CHAR     szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
294*c2c66affSColin Finck } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
295*c2c66affSColin Finck 
296*c2c66affSColin Finck typedef struct _ACMDRIVERDETAILSW
297*c2c66affSColin Finck {
298*c2c66affSColin Finck   DWORD    cbStruct;
299*c2c66affSColin Finck 
300*c2c66affSColin Finck   FOURCC   fccType;
301*c2c66affSColin Finck   FOURCC   fccComp;
302*c2c66affSColin Finck 
303*c2c66affSColin Finck   WORD     wMid;
304*c2c66affSColin Finck   WORD     wPid;
305*c2c66affSColin Finck 
306*c2c66affSColin Finck   DWORD    vdwACM;
307*c2c66affSColin Finck   DWORD    vdwDriver;
308*c2c66affSColin Finck 
309*c2c66affSColin Finck   DWORD    fdwSupport;
310*c2c66affSColin Finck   DWORD    cFormatTags;
311*c2c66affSColin Finck   DWORD    cFilterTags;
312*c2c66affSColin Finck 
313*c2c66affSColin Finck   HICON  hicon;
314*c2c66affSColin Finck 
315*c2c66affSColin Finck   WCHAR    szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
316*c2c66affSColin Finck   WCHAR    szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
317*c2c66affSColin Finck   WCHAR    szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
318*c2c66affSColin Finck   WCHAR    szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
319*c2c66affSColin Finck   WCHAR    szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
320*c2c66affSColin Finck } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
321*c2c66affSColin Finck 
322*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS)
323*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS)
324*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(LPACMDRIVERDETAILS)
325*c2c66affSColin Finck 
326*c2c66affSColin Finck typedef struct tACMFILTERCHOOSEA
327*c2c66affSColin Finck {
328*c2c66affSColin Finck   DWORD         cbStruct;
329*c2c66affSColin Finck   DWORD         fdwStyle;
330*c2c66affSColin Finck 
331*c2c66affSColin Finck   HWND        hwndOwner;
332*c2c66affSColin Finck 
333*c2c66affSColin Finck   PWAVEFILTER   pwfltr;
334*c2c66affSColin Finck   DWORD         cbwfltr;
335*c2c66affSColin Finck 
336*c2c66affSColin Finck   LPCSTR        pszTitle;
337*c2c66affSColin Finck 
338*c2c66affSColin Finck   CHAR          szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
339*c2c66affSColin Finck   CHAR          szFilter[ACMFILTERDETAILS_FILTER_CHARS];
340*c2c66affSColin Finck   LPSTR         pszName;
341*c2c66affSColin Finck   DWORD         cchName;
342*c2c66affSColin Finck 
343*c2c66affSColin Finck   DWORD         fdwEnum;
344*c2c66affSColin Finck   PWAVEFILTER   pwfltrEnum;
345*c2c66affSColin Finck 
346*c2c66affSColin Finck   HINSTANCE   hInstance;
347*c2c66affSColin Finck   LPCSTR        pszTemplateName;
348*c2c66affSColin Finck   LPARAM        lCustData;
349*c2c66affSColin Finck   ACMFILTERCHOOSEHOOKPROCA pfnHook;
350*c2c66affSColin Finck } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA, *LPACMFILTERCHOOSEA;
351*c2c66affSColin Finck 
352*c2c66affSColin Finck typedef struct _ACMFILTERCHOOSEW
353*c2c66affSColin Finck {
354*c2c66affSColin Finck   DWORD         cbStruct;
355*c2c66affSColin Finck   DWORD         fdwStyle;
356*c2c66affSColin Finck 
357*c2c66affSColin Finck   HWND        hwndOwner;
358*c2c66affSColin Finck 
359*c2c66affSColin Finck   PWAVEFILTER   pwfltr;
360*c2c66affSColin Finck   DWORD         cbwfltr;
361*c2c66affSColin Finck 
362*c2c66affSColin Finck   LPCWSTR       pszTitle;
363*c2c66affSColin Finck 
364*c2c66affSColin Finck   WCHAR         szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
365*c2c66affSColin Finck   WCHAR         szFilter[ACMFILTERDETAILS_FILTER_CHARS];
366*c2c66affSColin Finck   LPWSTR        pszName;
367*c2c66affSColin Finck   DWORD         cchName;
368*c2c66affSColin Finck 
369*c2c66affSColin Finck   DWORD         fdwEnum;
370*c2c66affSColin Finck   PWAVEFILTER   pwfltrEnum;
371*c2c66affSColin Finck 
372*c2c66affSColin Finck   HINSTANCE   hInstance;
373*c2c66affSColin Finck   LPCWSTR       pszTemplateName;
374*c2c66affSColin Finck   LPARAM        lCustData;
375*c2c66affSColin Finck   ACMFILTERCHOOSEHOOKPROCW pfnHook;
376*c2c66affSColin Finck } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW, *LPACMFILTERCHOOSEW;
377*c2c66affSColin Finck 
378*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE)
379*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE)
380*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(LPACMFILTERCHOOSE)
381*c2c66affSColin Finck 
382*c2c66affSColin Finck typedef struct _ACMFILTERDETAILSA
383*c2c66affSColin Finck {
384*c2c66affSColin Finck   DWORD           cbStruct;
385*c2c66affSColin Finck   DWORD           dwFilterIndex;
386*c2c66affSColin Finck   DWORD           dwFilterTag;
387*c2c66affSColin Finck   DWORD           fdwSupport;
388*c2c66affSColin Finck   PWAVEFILTER     pwfltr;
389*c2c66affSColin Finck   DWORD           cbwfltr;
390*c2c66affSColin Finck   CHAR            szFilter[ACMFILTERDETAILS_FILTER_CHARS];
391*c2c66affSColin Finck } ACMFILTERDETAILSA, *PACMFILTERDETAILSA, *LPACMFILTERDETAILSA;
392*c2c66affSColin Finck 
393*c2c66affSColin Finck typedef struct _ACMFILTERDETAILSW
394*c2c66affSColin Finck {
395*c2c66affSColin Finck   DWORD          cbStruct;
396*c2c66affSColin Finck   DWORD          dwFilterIndex;
397*c2c66affSColin Finck   DWORD          dwFilterTag;
398*c2c66affSColin Finck   DWORD          fdwSupport;
399*c2c66affSColin Finck   PWAVEFILTER    pwfltr;
400*c2c66affSColin Finck   DWORD          cbwfltr;
401*c2c66affSColin Finck   WCHAR          szFilter[ACMFILTERDETAILS_FILTER_CHARS];
402*c2c66affSColin Finck } ACMFILTERDETAILSW, *PACMFILTERDETAILSW, *LPACMFILTERDETAILSW;
403*c2c66affSColin Finck 
404*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS)
405*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS)
406*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(LPACMFILTERDETAILS)
407*c2c66affSColin Finck 
408*c2c66affSColin Finck typedef struct _ACMFILTERTAGDETAILSA
409*c2c66affSColin Finck {
410*c2c66affSColin Finck   DWORD cbStruct;
411*c2c66affSColin Finck   DWORD dwFilterTagIndex;
412*c2c66affSColin Finck   DWORD dwFilterTag;
413*c2c66affSColin Finck   DWORD cbFilterSize;
414*c2c66affSColin Finck   DWORD fdwSupport;
415*c2c66affSColin Finck   DWORD cStandardFilters;
416*c2c66affSColin Finck   CHAR  szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
417*c2c66affSColin Finck } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA, *LPACMFILTERTAGDETAILSA;
418*c2c66affSColin Finck 
419*c2c66affSColin Finck typedef struct _ACMFILTERTAGDETAILSW
420*c2c66affSColin Finck {
421*c2c66affSColin Finck   DWORD cbStruct;
422*c2c66affSColin Finck   DWORD dwFilterTagIndex;
423*c2c66affSColin Finck   DWORD dwFilterTag;
424*c2c66affSColin Finck   DWORD cbFilterSize;
425*c2c66affSColin Finck   DWORD fdwSupport;
426*c2c66affSColin Finck   DWORD cStandardFilters;
427*c2c66affSColin Finck   WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
428*c2c66affSColin Finck } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW, *LPACMFILTERTAGDETAILSW;
429*c2c66affSColin Finck 
430*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS)
431*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS)
432*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(LPACMFILTERTAGDETAILS)
433*c2c66affSColin Finck 
434*c2c66affSColin Finck typedef struct _ACMFORMATCHOOSEA
435*c2c66affSColin Finck {
436*c2c66affSColin Finck   DWORD           cbStruct;
437*c2c66affSColin Finck   DWORD           fdwStyle;
438*c2c66affSColin Finck 
439*c2c66affSColin Finck   HWND          hwndOwner;
440*c2c66affSColin Finck 
441*c2c66affSColin Finck   PWAVEFORMATEX   pwfx;
442*c2c66affSColin Finck   DWORD           cbwfx;
443*c2c66affSColin Finck   LPCSTR          pszTitle;
444*c2c66affSColin Finck 
445*c2c66affSColin Finck   CHAR            szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
446*c2c66affSColin Finck   CHAR            szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
447*c2c66affSColin Finck 
448*c2c66affSColin Finck   LPSTR           pszName;
449*c2c66affSColin Finck   DWORD           cchName;
450*c2c66affSColin Finck 
451*c2c66affSColin Finck   DWORD           fdwEnum;
452*c2c66affSColin Finck   PWAVEFORMATEX   pwfxEnum;
453*c2c66affSColin Finck 
454*c2c66affSColin Finck   HINSTANCE     hInstance;
455*c2c66affSColin Finck   LPCSTR          pszTemplateName;
456*c2c66affSColin Finck   LPARAM          lCustData;
457*c2c66affSColin Finck   ACMFORMATCHOOSEHOOKPROCA pfnHook;
458*c2c66affSColin Finck } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA, *LPACMFORMATCHOOSEA;
459*c2c66affSColin Finck 
460*c2c66affSColin Finck typedef struct _ACMFORMATCHOOSEW
461*c2c66affSColin Finck {
462*c2c66affSColin Finck   DWORD           cbStruct;
463*c2c66affSColin Finck   DWORD           fdwStyle;
464*c2c66affSColin Finck 
465*c2c66affSColin Finck   HWND          hwndOwner;
466*c2c66affSColin Finck 
467*c2c66affSColin Finck   PWAVEFORMATEX   pwfx;
468*c2c66affSColin Finck   DWORD           cbwfx;
469*c2c66affSColin Finck   LPCWSTR         pszTitle;
470*c2c66affSColin Finck 
471*c2c66affSColin Finck   WCHAR           szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
472*c2c66affSColin Finck   WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
473*c2c66affSColin Finck 
474*c2c66affSColin Finck   LPWSTR          pszName;
475*c2c66affSColin Finck   DWORD           cchName;
476*c2c66affSColin Finck 
477*c2c66affSColin Finck   DWORD           fdwEnum;
478*c2c66affSColin Finck   LPWAVEFORMATEX  pwfxEnum;
479*c2c66affSColin Finck 
480*c2c66affSColin Finck   HINSTANCE     hInstance;
481*c2c66affSColin Finck   LPCWSTR         pszTemplateName;
482*c2c66affSColin Finck   LPARAM          lCustData;
483*c2c66affSColin Finck   ACMFORMATCHOOSEHOOKPROCW pfnHook;
484*c2c66affSColin Finck } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW, *LPACMFORMATCHOOSEW;
485*c2c66affSColin Finck 
486*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE)
487*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE)
488*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(LPACMFORMATCHOOSE)
489*c2c66affSColin Finck 
490*c2c66affSColin Finck typedef struct _ACMFORMATDETAILSA
491*c2c66affSColin Finck {
492*c2c66affSColin Finck   DWORD           cbStruct;
493*c2c66affSColin Finck   DWORD           dwFormatIndex;
494*c2c66affSColin Finck   DWORD           dwFormatTag;
495*c2c66affSColin Finck   DWORD           fdwSupport;
496*c2c66affSColin Finck   PWAVEFORMATEX   pwfx;
497*c2c66affSColin Finck   DWORD           cbwfx;
498*c2c66affSColin Finck   CHAR            szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
499*c2c66affSColin Finck } ACMFORMATDETAILSA, *PACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
500*c2c66affSColin Finck 
501*c2c66affSColin Finck typedef struct _ACMFORMATDETAILSW
502*c2c66affSColin Finck {
503*c2c66affSColin Finck     DWORD           cbStruct;
504*c2c66affSColin Finck     DWORD           dwFormatIndex;
505*c2c66affSColin Finck     DWORD           dwFormatTag;
506*c2c66affSColin Finck     DWORD           fdwSupport;
507*c2c66affSColin Finck     PWAVEFORMATEX   pwfx;
508*c2c66affSColin Finck     DWORD           cbwfx;
509*c2c66affSColin Finck     WCHAR           szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
510*c2c66affSColin Finck } ACMFORMATDETAILSW, *PACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
511*c2c66affSColin Finck 
512*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS)
513*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS)
514*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(LPACMFORMATDETAILS)
515*c2c66affSColin Finck 
516*c2c66affSColin Finck typedef struct _ACMFORMATTAGDETAILSA
517*c2c66affSColin Finck {
518*c2c66affSColin Finck   DWORD cbStruct;
519*c2c66affSColin Finck   DWORD dwFormatTagIndex;
520*c2c66affSColin Finck   DWORD dwFormatTag;
521*c2c66affSColin Finck   DWORD cbFormatSize;
522*c2c66affSColin Finck   DWORD fdwSupport;
523*c2c66affSColin Finck   DWORD cStandardFormats;
524*c2c66affSColin Finck   CHAR  szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
525*c2c66affSColin Finck } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
526*c2c66affSColin Finck 
527*c2c66affSColin Finck typedef struct _ACMFORMATTAGDETAILSW
528*c2c66affSColin Finck {
529*c2c66affSColin Finck   DWORD cbStruct;
530*c2c66affSColin Finck   DWORD dwFormatTagIndex;
531*c2c66affSColin Finck   DWORD dwFormatTag;
532*c2c66affSColin Finck   DWORD cbFormatSize;
533*c2c66affSColin Finck   DWORD fdwSupport;
534*c2c66affSColin Finck   DWORD cStandardFormats;
535*c2c66affSColin Finck   WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
536*c2c66affSColin Finck } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
537*c2c66affSColin Finck 
538*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS)
539*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS)
540*c2c66affSColin Finck DECL_WINELIB_TYPE_AW(LPACMFORMATTAGDETAILS)
541*c2c66affSColin Finck 
542*c2c66affSColin Finck #ifdef _WIN64
543*c2c66affSColin Finck #  define _ACMSTREAMHEADERRESERVE 15
544*c2c66affSColin Finck #else
545*c2c66affSColin Finck #  define _ACMSTREAMHEADERRESERVE 10
546*c2c66affSColin Finck #endif
547*c2c66affSColin Finck 
548*c2c66affSColin Finck typedef struct _ACMSTREAMHEADER
549*c2c66affSColin Finck {
550*c2c66affSColin Finck   DWORD     cbStruct;
551*c2c66affSColin Finck   DWORD     fdwStatus;
552*c2c66affSColin Finck   DWORD_PTR dwUser;
553*c2c66affSColin Finck   LPBYTE    pbSrc;
554*c2c66affSColin Finck   DWORD     cbSrcLength;
555*c2c66affSColin Finck   DWORD     cbSrcLengthUsed;
556*c2c66affSColin Finck   DWORD_PTR dwSrcUser;
557*c2c66affSColin Finck   LPBYTE    pbDst;
558*c2c66affSColin Finck   DWORD     cbDstLength;
559*c2c66affSColin Finck   DWORD     cbDstLengthUsed;
560*c2c66affSColin Finck   DWORD_PTR dwDstUser;
561*c2c66affSColin Finck   DWORD     dwReservedDriver[_ACMSTREAMHEADERRESERVE];
562*c2c66affSColin Finck } ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER;
563*c2c66affSColin Finck 
564*c2c66affSColin Finck #undef _ACMSTREAMHEADERRESERVE
565*c2c66affSColin Finck 
566*c2c66affSColin Finck /***********************************************************************
567*c2c66affSColin Finck  * Callbacks 2
568*c2c66affSColin Finck  */
569*c2c66affSColin Finck 
570*c2c66affSColin Finck typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
571*c2c66affSColin Finck   HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
572*c2c66affSColin Finck   DWORD_PTR dwInstance, DWORD fdwSupport
573*c2c66affSColin Finck );
574*c2c66affSColin Finck 
575*c2c66affSColin Finck typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
576*c2c66affSColin Finck   HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
577*c2c66affSColin Finck   DWORD_PTR dwInstance, DWORD fdwSupport
578*c2c66affSColin Finck );
579*c2c66affSColin Finck 
580*c2c66affSColin Finck #define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
581*c2c66affSColin Finck 
582*c2c66affSColin Finck typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
583*c2c66affSColin Finck   HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
584*c2c66affSColin Finck   DWORD_PTR dwInstance, DWORD fdwSupport
585*c2c66affSColin Finck );
586*c2c66affSColin Finck 
587*c2c66affSColin Finck typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
588*c2c66affSColin Finck   HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
589*c2c66affSColin Finck   DWORD_PTR dwInstance, DWORD fdwSupport
590*c2c66affSColin Finck );
591*c2c66affSColin Finck 
592*c2c66affSColin Finck #define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
593*c2c66affSColin Finck 
594*c2c66affSColin Finck typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
595*c2c66affSColin Finck   HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
596*c2c66affSColin Finck   DWORD_PTR dwInstance, DWORD fdwSupport
597*c2c66affSColin Finck );
598*c2c66affSColin Finck 
599*c2c66affSColin Finck typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
600*c2c66affSColin Finck   HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
601*c2c66affSColin Finck   DWORD_PTR dwInstance, DWORD fdwSupport
602*c2c66affSColin Finck );
603*c2c66affSColin Finck 
604*c2c66affSColin Finck #define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
605*c2c66affSColin Finck 
606*c2c66affSColin Finck typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
607*c2c66affSColin Finck   HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
608*c2c66affSColin Finck   DWORD_PTR dwInstance, DWORD fdwSupport
609*c2c66affSColin Finck );
610*c2c66affSColin Finck 
611*c2c66affSColin Finck typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
612*c2c66affSColin Finck   HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
613*c2c66affSColin Finck   DWORD_PTR dwInstance, DWORD fdwSupport
614*c2c66affSColin Finck );
615*c2c66affSColin Finck 
616*c2c66affSColin Finck #define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
617*c2c66affSColin Finck 
618*c2c66affSColin Finck /***********************************************************************
619*c2c66affSColin Finck  * Functions - Win32
620*c2c66affSColin Finck  */
621*c2c66affSColin Finck 
622*c2c66affSColin Finck MMRESULT WINAPI acmDriverAddA(
623*c2c66affSColin Finck   PHACMDRIVERID phadid, HINSTANCE hinstModule,
624*c2c66affSColin Finck   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
625*c2c66affSColin Finck );
626*c2c66affSColin Finck MMRESULT WINAPI acmDriverAddW(
627*c2c66affSColin Finck   PHACMDRIVERID phadid, HINSTANCE hinstModule,
628*c2c66affSColin Finck   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
629*c2c66affSColin Finck );
630*c2c66affSColin Finck #define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
631*c2c66affSColin Finck 
632*c2c66affSColin Finck MMRESULT WINAPI acmDriverClose(
633*c2c66affSColin Finck   HACMDRIVER had, DWORD fdwClose
634*c2c66affSColin Finck );
635*c2c66affSColin Finck MMRESULT WINAPI acmDriverDetailsA(
636*c2c66affSColin Finck   HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
637*c2c66affSColin Finck );
638*c2c66affSColin Finck MMRESULT WINAPI acmDriverDetailsW(
639*c2c66affSColin Finck   HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
640*c2c66affSColin Finck );
641*c2c66affSColin Finck #define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
642*c2c66affSColin Finck 
643*c2c66affSColin Finck MMRESULT WINAPI acmDriverEnum(
644*c2c66affSColin Finck   ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
645*c2c66affSColin Finck );
646*c2c66affSColin Finck MMRESULT WINAPI acmDriverID(
647*c2c66affSColin Finck   HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
648*c2c66affSColin Finck );
649*c2c66affSColin Finck LRESULT WINAPI acmDriverMessage(
650*c2c66affSColin Finck   HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
651*c2c66affSColin Finck );
652*c2c66affSColin Finck MMRESULT WINAPI acmDriverOpen(
653*c2c66affSColin Finck   PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
654*c2c66affSColin Finck );
655*c2c66affSColin Finck MMRESULT WINAPI acmDriverPriority(
656*c2c66affSColin Finck   HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
657*c2c66affSColin Finck );
658*c2c66affSColin Finck MMRESULT WINAPI acmDriverRemove(
659*c2c66affSColin Finck   HACMDRIVERID hadid, DWORD fdwRemove
660*c2c66affSColin Finck );
661*c2c66affSColin Finck MMRESULT WINAPI acmFilterChooseA(
662*c2c66affSColin Finck   PACMFILTERCHOOSEA pafltrc
663*c2c66affSColin Finck );
664*c2c66affSColin Finck MMRESULT WINAPI acmFilterChooseW(
665*c2c66affSColin Finck   PACMFILTERCHOOSEW pafltrc
666*c2c66affSColin Finck );
667*c2c66affSColin Finck #define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose)
668*c2c66affSColin Finck 
669*c2c66affSColin Finck MMRESULT WINAPI acmFilterDetailsA(
670*c2c66affSColin Finck   HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
671*c2c66affSColin Finck );
672*c2c66affSColin Finck MMRESULT WINAPI acmFilterDetailsW(
673*c2c66affSColin Finck   HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
674*c2c66affSColin Finck );
675*c2c66affSColin Finck #define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails)
676*c2c66affSColin Finck 
677*c2c66affSColin Finck MMRESULT WINAPI acmFilterEnumA(
678*c2c66affSColin Finck   HACMDRIVER had, PACMFILTERDETAILSA pafd,
679*c2c66affSColin Finck   ACMFILTERENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
680*c2c66affSColin Finck );
681*c2c66affSColin Finck MMRESULT WINAPI acmFilterEnumW(
682*c2c66affSColin Finck   HACMDRIVER had, PACMFILTERDETAILSW pafd,
683*c2c66affSColin Finck   ACMFILTERENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
684*c2c66affSColin Finck );
685*c2c66affSColin Finck #define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum)
686*c2c66affSColin Finck 
687*c2c66affSColin Finck MMRESULT WINAPI acmFilterTagDetailsA(
688*c2c66affSColin Finck   HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
689*c2c66affSColin Finck );
690*c2c66affSColin Finck MMRESULT WINAPI acmFilterTagDetailsW(
691*c2c66affSColin Finck   HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
692*c2c66affSColin Finck );
693*c2c66affSColin Finck #define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails)
694*c2c66affSColin Finck 
695*c2c66affSColin Finck MMRESULT WINAPI acmFilterTagEnumA(
696*c2c66affSColin Finck   HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
697*c2c66affSColin Finck   ACMFILTERTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
698*c2c66affSColin Finck );
699*c2c66affSColin Finck MMRESULT WINAPI acmFilterTagEnumW(
700*c2c66affSColin Finck   HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
701*c2c66affSColin Finck   ACMFILTERTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
702*c2c66affSColin Finck );
703*c2c66affSColin Finck #define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum)
704*c2c66affSColin Finck 
705*c2c66affSColin Finck MMRESULT WINAPI acmFormatChooseA(
706*c2c66affSColin Finck   PACMFORMATCHOOSEA pafmtc
707*c2c66affSColin Finck );
708*c2c66affSColin Finck MMRESULT WINAPI acmFormatChooseW(
709*c2c66affSColin Finck   PACMFORMATCHOOSEW pafmtc
710*c2c66affSColin Finck );
711*c2c66affSColin Finck #define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose)
712*c2c66affSColin Finck 
713*c2c66affSColin Finck MMRESULT WINAPI acmFormatDetailsA(
714*c2c66affSColin Finck   HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
715*c2c66affSColin Finck );
716*c2c66affSColin Finck MMRESULT WINAPI acmFormatDetailsW(
717*c2c66affSColin Finck   HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
718*c2c66affSColin Finck );
719*c2c66affSColin Finck #define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails)
720*c2c66affSColin Finck 
721*c2c66affSColin Finck MMRESULT WINAPI acmFormatEnumA(
722*c2c66affSColin Finck   HACMDRIVER had, PACMFORMATDETAILSA pafd,
723*c2c66affSColin Finck   ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
724*c2c66affSColin Finck );
725*c2c66affSColin Finck MMRESULT WINAPI acmFormatEnumW(
726*c2c66affSColin Finck   HACMDRIVER had, PACMFORMATDETAILSW pafd,
727*c2c66affSColin Finck   ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance,  DWORD fdwEnum
728*c2c66affSColin Finck );
729*c2c66affSColin Finck #define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
730*c2c66affSColin Finck 
731*c2c66affSColin Finck MMRESULT WINAPI acmFormatSuggest(
732*c2c66affSColin Finck   HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
733*c2c66affSColin Finck   DWORD cbwfxDst, DWORD fdwSuggest
734*c2c66affSColin Finck );
735*c2c66affSColin Finck MMRESULT WINAPI acmFormatTagDetailsA(
736*c2c66affSColin Finck   HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
737*c2c66affSColin Finck );
738*c2c66affSColin Finck MMRESULT WINAPI acmFormatTagDetailsW(
739*c2c66affSColin Finck   HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
740*c2c66affSColin Finck );
741*c2c66affSColin Finck #define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails)
742*c2c66affSColin Finck 
743*c2c66affSColin Finck MMRESULT WINAPI acmFormatTagEnumA(
744*c2c66affSColin Finck   HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
745*c2c66affSColin Finck   ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
746*c2c66affSColin Finck );
747*c2c66affSColin Finck MMRESULT WINAPI acmFormatTagEnumW(
748*c2c66affSColin Finck   HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
749*c2c66affSColin Finck   ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
750*c2c66affSColin Finck );
751*c2c66affSColin Finck #define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
752*c2c66affSColin Finck 
753*c2c66affSColin Finck DWORD WINAPI acmGetVersion(void
754*c2c66affSColin Finck );
755*c2c66affSColin Finck MMRESULT WINAPI acmMetrics(
756*c2c66affSColin Finck   HACMOBJ hao, UINT  uMetric, LPVOID  pMetric
757*c2c66affSColin Finck );
758*c2c66affSColin Finck MMRESULT WINAPI acmStreamClose(
759*c2c66affSColin Finck   HACMSTREAM has, DWORD fdwClose
760*c2c66affSColin Finck );
761*c2c66affSColin Finck MMRESULT WINAPI acmStreamConvert(
762*c2c66affSColin Finck   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
763*c2c66affSColin Finck );
764*c2c66affSColin Finck MMRESULT WINAPI acmStreamMessage(
765*c2c66affSColin Finck   HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
766*c2c66affSColin Finck );
767*c2c66affSColin Finck MMRESULT WINAPI acmStreamOpen(
768*c2c66affSColin Finck   PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
769*c2c66affSColin Finck   PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD_PTR dwCallback,
770*c2c66affSColin Finck   DWORD_PTR dwInstance, DWORD fdwOpen
771*c2c66affSColin Finck );
772*c2c66affSColin Finck MMRESULT WINAPI acmStreamPrepareHeader(
773*c2c66affSColin Finck   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
774*c2c66affSColin Finck );
775*c2c66affSColin Finck MMRESULT WINAPI acmStreamReset(
776*c2c66affSColin Finck   HACMSTREAM has, DWORD fdwReset
777*c2c66affSColin Finck );
778*c2c66affSColin Finck MMRESULT WINAPI acmStreamSize(
779*c2c66affSColin Finck   HACMSTREAM has, DWORD cbInput,
780*c2c66affSColin Finck   LPDWORD pdwOutputBytes, DWORD fdwSize
781*c2c66affSColin Finck );
782*c2c66affSColin Finck MMRESULT WINAPI acmStreamUnprepareHeader(
783*c2c66affSColin Finck   HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
784*c2c66affSColin Finck );
785*c2c66affSColin Finck 
786*c2c66affSColin Finck #include <poppack.h>
787*c2c66affSColin Finck 
788*c2c66affSColin Finck #ifdef __cplusplus
789*c2c66affSColin Finck } /* extern "C" */
790*c2c66affSColin Finck #endif /* defined(__cplusplus) */
791*c2c66affSColin Finck 
792*c2c66affSColin Finck #endif  /* __WINE_MSACM_H */
793