blob: 73788feab9abc63430fae28f7f116b92ccf9498f [file] [log] [blame]
Patrik Stridvall29c08dd1998-10-11 17:00:29 +00001/*
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00002 * Declarations for MSACM
3 *
4 * Copyright (C) the Wine project
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
Jonathan Ernst360a3f92006-05-18 14:49:52 +020018 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +000019 */
20
21#ifndef __WINE_MSACM_H
22#define __WINE_MSACM_H
23
Patrik Stridvall14da7b11999-06-12 10:53:06 +000024#ifdef __cplusplus
25extern "C" {
26#endif /* defined(__cplusplus) */
27
Alexandre Julliard10b089a2009-01-09 17:46:36 +010028#include <pshpack1.h>
29
Eric Pouech28b8ac82001-01-04 20:58:05 +000030#define ACMAPI WINAPI
31
Patrik Stridvall29c08dd1998-10-11 17:00:29 +000032/***********************************************************************
Patrik Stridvall29c08dd1998-10-11 17:00:29 +000033 * Defines/Enums
34 */
Patrik Stridvall29c08dd1998-10-11 17:00:29 +000035#define ACMERR_BASE 512
36#define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
37#define ACMERR_BUSY (ACMERR_BASE + 1)
38#define ACMERR_UNPREPARED (ACMERR_BASE + 2)
39#define ACMERR_CANCELED (ACMERR_BASE + 3)
40
41#define MM_ACM_OPEN MM_STREAM_OPEN
42#define MM_ACM_CLOSE MM_STREAM_CLOSE
43#define MM_ACM_DONE MM_STREAM_DONE
44
Alex Villacís Lasso1c6fbba2006-01-13 13:52:49 +010045#define ACM_DRIVERADDF_NAME 0x00000001L
Patrik Stridvall29c08dd1998-10-11 17:00:29 +000046#define ACM_DRIVERADDF_FUNCTION 0x00000003L
47#define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
48#define ACM_DRIVERADDF_TYPEMASK 0x00000007L
49#define ACM_DRIVERADDF_LOCAL 0x00000000L
50#define ACM_DRIVERADDF_GLOBAL 0x00000008L
51
52#define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
53#define ACMDRIVERDETAILS_LONGNAME_CHARS 128
54#define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
55#define ACMDRIVERDETAILS_LICENSING_CHARS 128
56#define ACMDRIVERDETAILS_FEATURES_CHARS 512
57
58#define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
59#define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
60
61#define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
62#define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
63#define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
64#define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
65#define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
66#define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
67#define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
68
69#define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
70#define ACM_DRIVERENUMF_DISABLED 0x80000000L
71
72#define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
73#define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
74#define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
75#define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
76#define ACM_DRIVERPRIORITYF_END 0x00020000L
77#define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
78
79#define MM_ACM_FILTERCHOOSE 0x8000
80
81#define FILTERCHOOSE_MESSAGE 0
82#define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
83#define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
84#define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
85
86#define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
87#define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
88#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
89#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
90#define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
91#define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
92
93#define ACMFILTERDETAILS_FILTER_CHARS 128
94
95#define ACM_FILTERDETAILSF_INDEX 0x00000000L
96#define ACM_FILTERDETAILSF_FILTER 0x00000001L
97#define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
98
99#define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
100
101#define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
102#define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
103#define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
104#define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
105
106#define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
107
Alexandre Julliarda3960291999-02-26 11:11:13 +0000108#define ACMHELPMSGSTRINGA "acmchoose_help"
Dmitry Timoshkova9c057f2002-09-16 19:29:36 +0000109#if defined(__GNUC__)
110# define ACMHELPMSGSTRINGW (const WCHAR []){ 'a','c','m', \
111 'c','h','o','o','s','e','_','h','e','l','p',0 }
112#elif defined(_MSC_VER)
113# define ACMHELPMSGSTRINGW L"acmchoose_help"
114#else
Jon Griffiths7a6bad82001-01-22 02:13:58 +0000115static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
116 'c','h','o','o','s','e','_','h','e','l','p',0 };
Dmitry Timoshkova9c057f2002-09-16 19:29:36 +0000117#endif
Eric Pouech28b8ac82001-01-04 20:58:05 +0000118#define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING)
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000119
Alexandre Julliarda3960291999-02-26 11:11:13 +0000120#define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
Dmitry Timoshkova9c057f2002-09-16 19:29:36 +0000121#if defined(__GNUC__)
122# define ACMHELPMSGCONTEXTMENUW (const WCHAR []){ 'a','c','m', \
123 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 }
124#elif defined(_MSC_VER)
125# define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
126#else
Jon Griffiths7a6bad82001-01-22 02:13:58 +0000127static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
128 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 };
Dmitry Timoshkova9c057f2002-09-16 19:29:36 +0000129#endif
Eric Pouech28b8ac82001-01-04 20:58:05 +0000130#define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU)
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000131
Alexandre Julliarda3960291999-02-26 11:11:13 +0000132#define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
Dmitry Timoshkova9c057f2002-09-16 19:29:36 +0000133#if defined(__GNUC__)
134# define ACMHELPMSGCONTEXTHELPW (const WCHAR []){ 'a','c','m', \
135 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 }
136#elif defined(_MSC_VER)
137# define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
138#else
Jon Griffiths7a6bad82001-01-22 02:13:58 +0000139static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m',
140 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 };
Dmitry Timoshkova9c057f2002-09-16 19:29:36 +0000141#endif
Eric Pouech28b8ac82001-01-04 20:58:05 +0000142#define ACMHELPMSGCONTEXTHELP WINELIB_NAME_AW(ACMHELPMSGCONTEXTHELP)
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000143
144#define MM_ACM_FORMATCHOOSE 0x8000
145
146#define FORMATCHOOSE_MESSAGE 0
147#define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
148#define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
149#define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
150
151#define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
152#define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
153#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
154#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
155#define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
156#define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
157
158#define ACMFORMATDETAILS_FORMAT_CHARS 128
159
160#define ACM_FORMATDETAILSF_INDEX 0x00000000L
161#define ACM_FORMATDETAILSF_FORMAT 0x00000001L
162#define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
163
164#define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
165#define ACM_FORMATENUMF_NCHANNELS 0x00020000L
166#define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
167#define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
168#define ACM_FORMATENUMF_CONVERT 0x00100000L
169#define ACM_FORMATENUMF_SUGGEST 0x00200000L
170#define ACM_FORMATENUMF_HARDWARE 0x00400000L
171#define ACM_FORMATENUMF_INPUT 0x00800000L
172#define ACM_FORMATENUMF_OUTPUT 0x01000000L
173
174#define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
175#define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
176#define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
177#define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
178#define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
179
180#define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
181
182#define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
183#define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
184#define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
185#define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
186
187#define ACM_METRIC_COUNT_DRIVERS 1
188#define ACM_METRIC_COUNT_CODECS 2
189#define ACM_METRIC_COUNT_CONVERTERS 3
190#define ACM_METRIC_COUNT_FILTERS 4
191#define ACM_METRIC_COUNT_DISABLED 5
192#define ACM_METRIC_COUNT_HARDWARE 6
193#define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
194#define ACM_METRIC_COUNT_LOCAL_CODECS 21
195#define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
196#define ACM_METRIC_COUNT_LOCAL_FILTERS 23
197#define ACM_METRIC_COUNT_LOCAL_DISABLED 24
198#define ACM_METRIC_HARDWARE_WAVE_INPUT 30
199#define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
200#define ACM_METRIC_MAX_SIZE_FORMAT 50
201#define ACM_METRIC_MAX_SIZE_FILTER 51
202#define ACM_METRIC_DRIVER_SUPPORT 100
203#define ACM_METRIC_DRIVER_PRIORITY 101
204
205#define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
206#define ACM_STREAMCONVERTF_START 0x00000010
207#define ACM_STREAMCONVERTF_END 0x00000020
208
209#define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
210#define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
211#define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
212
213#define ACM_STREAMOPENF_QUERY 0x00000001
214#define ACM_STREAMOPENF_ASYNC 0x00000002
215#define ACM_STREAMOPENF_NONREALTIME 0x00000004
216
217#define ACM_STREAMSIZEF_SOURCE 0x00000000L
218#define ACM_STREAMSIZEF_DESTINATION 0x00000001L
219#define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
220
221#define ACMDM_USER (DRV_USER + 0x0000)
222#define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
223#define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
224
225#define ACMDM_BASE ACMDM_RESERVED_LOW
226
227#define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
228
Alexandre Julliarde54cf7b2001-07-30 18:57:18 +0000229/* handles */
230
Vincent Bérond62d41c2002-03-25 20:55:58 +0000231DECLARE_HANDLE(HACMDRIVERID);
232DECLARE_HANDLE(HACMDRIVER);
233DECLARE_HANDLE(HACMSTREAM);
Vincent Béron1c9733c2002-03-26 19:48:42 +0000234DECLARE_HANDLE(HACMOBJ);
Alexandre Julliard435e2e62002-12-10 22:56:43 +0000235typedef HACMDRIVERID *PHACMDRIVERID, *LPHACMDRIVERID;
236typedef HACMDRIVER *PHACMDRIVER, *LPHACMDRIVER;
237typedef HACMSTREAM *PHACMSTREAM, *LPHACMSTREAM;
238typedef HACMOBJ *PHACMOBJ, *LPHACMOBJ;
Alexandre Julliarde54cf7b2001-07-30 18:57:18 +0000239
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000240/***********************************************************************
241 * Callbacks
242 */
243
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000244typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100245 HACMDRIVERID hadid, DWORD_PTR dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000246);
247
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000248typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000249 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000250);
251
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000252typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000253 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000254);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000255#define ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC)
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000256
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000257typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000258 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000259);
260
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000261typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000262 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000263);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000264#define ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000265
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000266/***********************************************************************
267 * Structures
268 */
269
Alexandre Julliarda3960291999-02-26 11:11:13 +0000270typedef struct _ACMDRIVERDETAILSA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000271{
272 DWORD cbStruct;
273
274 FOURCC fccType;
275 FOURCC fccComp;
276
277 WORD wMid;
278 WORD wPid;
279
280 DWORD vdwACM;
281 DWORD vdwDriver;
282
283 DWORD fdwSupport;
284 DWORD cFormatTags;
285 DWORD cFilterTags;
286
Alexandre Julliarda3960291999-02-26 11:11:13 +0000287 HICON hicon;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000288
289 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
290 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
291 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
292 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
293 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000294} ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000295
Alexandre Julliarda3960291999-02-26 11:11:13 +0000296typedef struct _ACMDRIVERDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000297{
298 DWORD cbStruct;
299
300 FOURCC fccType;
301 FOURCC fccComp;
302
303 WORD wMid;
304 WORD wPid;
305
306 DWORD vdwACM;
307 DWORD vdwDriver;
308
309 DWORD fdwSupport;
310 DWORD cFormatTags;
311 DWORD cFilterTags;
312
Alexandre Julliarda3960291999-02-26 11:11:13 +0000313 HICON hicon;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000314
315 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
316 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
317 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
318 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
319 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000320} ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000321
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000322DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS)
323DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS)
Eric Pouech28b8ac82001-01-04 20:58:05 +0000324DECL_WINELIB_TYPE_AW(LPACMDRIVERDETAILS)
Eric Pouechb8ba8452000-08-26 04:33:00 +0000325
Alexandre Julliarda3960291999-02-26 11:11:13 +0000326typedef struct _ACMFILTERCHOOSEA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000327{
328 DWORD cbStruct;
329 DWORD fdwStyle;
330
Alexandre Julliarda3960291999-02-26 11:11:13 +0000331 HWND hwndOwner;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000332
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000333 PWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000334 DWORD cbwfltr;
335
336 LPCSTR pszTitle;
337
338 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
339 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
340 LPSTR pszName;
341 DWORD cchName;
342
343 DWORD fdwEnum;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000344 PWAVEFILTER pwfltrEnum;
Vincent Béron9a624912002-05-31 23:06:46 +0000345
Alexandre Julliarda3960291999-02-26 11:11:13 +0000346 HINSTANCE hInstance;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000347 LPCSTR pszTemplateName;
348 LPARAM lCustData;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000349 ACMFILTERCHOOSEHOOKPROCA pfnHook;
Eric Pouech28b8ac82001-01-04 20:58:05 +0000350} ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA, *LPACMFILTERCHOOSEA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000351
Alexandre Julliarda3960291999-02-26 11:11:13 +0000352typedef struct _ACMFILTERCHOOSEW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000353{
354 DWORD cbStruct;
355 DWORD fdwStyle;
356
Alexandre Julliarda3960291999-02-26 11:11:13 +0000357 HWND hwndOwner;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000358
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000359 PWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000360 DWORD cbwfltr;
361
362 LPCWSTR pszTitle;
363
364 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
365 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
366 LPWSTR pszName;
367 DWORD cchName;
368
369 DWORD fdwEnum;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000370 PWAVEFILTER pwfltrEnum;
Vincent Béron9a624912002-05-31 23:06:46 +0000371
Alexandre Julliarda3960291999-02-26 11:11:13 +0000372 HINSTANCE hInstance;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000373 LPCWSTR pszTemplateName;
374 LPARAM lCustData;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000375 ACMFILTERCHOOSEHOOKPROCW pfnHook;
Eric Pouech28b8ac82001-01-04 20:58:05 +0000376} ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW, *LPACMFILTERCHOOSEW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000377
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000378DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE)
379DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE)
Eric Pouech28b8ac82001-01-04 20:58:05 +0000380DECL_WINELIB_TYPE_AW(LPACMFILTERCHOOSE)
Eric Pouechb8ba8452000-08-26 04:33:00 +0000381
Alexandre Julliarda3960291999-02-26 11:11:13 +0000382typedef struct _ACMFILTERDETAILSA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000383{
384 DWORD cbStruct;
385 DWORD dwFilterIndex;
386 DWORD dwFilterTag;
387 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000388 PWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000389 DWORD cbwfltr;
390 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000391} ACMFILTERDETAILSA, *PACMFILTERDETAILSA, *LPACMFILTERDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000392
Alexandre Julliarda3960291999-02-26 11:11:13 +0000393typedef struct _ACMFILTERDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000394{
395 DWORD cbStruct;
396 DWORD dwFilterIndex;
397 DWORD dwFilterTag;
398 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000399 PWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000400 DWORD cbwfltr;
401 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000402} ACMFILTERDETAILSW, *PACMFILTERDETAILSW, *LPACMFILTERDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000403
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000404DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS)
405DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS)
Eric Pouech28b8ac82001-01-04 20:58:05 +0000406DECL_WINELIB_TYPE_AW(LPACMFILTERDETAILS)
Eric Pouechb8ba8452000-08-26 04:33:00 +0000407
Alexandre Julliarda3960291999-02-26 11:11:13 +0000408typedef struct _ACMFILTERTAGDETAILSA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000409{
410 DWORD cbStruct;
411 DWORD dwFilterTagIndex;
412 DWORD dwFilterTag;
413 DWORD cbFilterSize;
414 DWORD fdwSupport;
415 DWORD cStandardFilters;
416 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000417} ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA, *LPACMFILTERTAGDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000418
Alexandre Julliarda3960291999-02-26 11:11:13 +0000419typedef struct _ACMFILTERTAGDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000420{
421 DWORD cbStruct;
422 DWORD dwFilterTagIndex;
423 DWORD dwFilterTag;
424 DWORD cbFilterSize;
425 DWORD fdwSupport;
426 DWORD cStandardFilters;
427 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000428} ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW, *LPACMFILTERTAGDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000429
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000430DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS)
431DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS)
Eric Pouech28b8ac82001-01-04 20:58:05 +0000432DECL_WINELIB_TYPE_AW(LPACMFILTERTAGDETAILS)
Eric Pouechb8ba8452000-08-26 04:33:00 +0000433
Alexandre Julliarda3960291999-02-26 11:11:13 +0000434typedef struct _ACMFORMATCHOOSEA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000435{
436 DWORD cbStruct;
437 DWORD fdwStyle;
Vincent Béron9a624912002-05-31 23:06:46 +0000438
Alexandre Julliarda3960291999-02-26 11:11:13 +0000439 HWND hwndOwner;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000440
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000441 PWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000442 DWORD cbwfx;
443 LPCSTR pszTitle;
Vincent Béron9a624912002-05-31 23:06:46 +0000444
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000445 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
Vincent Béron9a624912002-05-31 23:06:46 +0000446 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000447
448 LPSTR pszName;
449 DWORD cchName;
450
451 DWORD fdwEnum;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000452 PWAVEFORMATEX pwfxEnum;
Vincent Béron9a624912002-05-31 23:06:46 +0000453
Alexandre Julliarda3960291999-02-26 11:11:13 +0000454 HINSTANCE hInstance;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000455 LPCSTR pszTemplateName;
456 LPARAM lCustData;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000457 ACMFORMATCHOOSEHOOKPROCA pfnHook;
Eric Pouech28b8ac82001-01-04 20:58:05 +0000458} ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA, *LPACMFORMATCHOOSEA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000459
Alexandre Julliarda3960291999-02-26 11:11:13 +0000460typedef struct _ACMFORMATCHOOSEW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000461{
462 DWORD cbStruct;
463 DWORD fdwStyle;
Vincent Béron9a624912002-05-31 23:06:46 +0000464
Alexandre Julliarda3960291999-02-26 11:11:13 +0000465 HWND hwndOwner;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000466
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000467 PWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000468 DWORD cbwfx;
469 LPCWSTR pszTitle;
Vincent Béron9a624912002-05-31 23:06:46 +0000470
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000471 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
Vincent Béron9a624912002-05-31 23:06:46 +0000472 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000473
474 LPWSTR pszName;
475 DWORD cchName;
476
477 DWORD fdwEnum;
478 LPWAVEFORMATEX pwfxEnum;
Vincent Béron9a624912002-05-31 23:06:46 +0000479
Alexandre Julliarda3960291999-02-26 11:11:13 +0000480 HINSTANCE hInstance;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000481 LPCWSTR pszTemplateName;
482 LPARAM lCustData;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000483 ACMFORMATCHOOSEHOOKPROCW pfnHook;
Eric Pouech28b8ac82001-01-04 20:58:05 +0000484} ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW, *LPACMFORMATCHOOSEW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000485
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000486DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE)
487DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE)
Eric Pouech28b8ac82001-01-04 20:58:05 +0000488DECL_WINELIB_TYPE_AW(LPACMFORMATCHOOSE)
Eric Pouechb8ba8452000-08-26 04:33:00 +0000489
Alexandre Julliarda3960291999-02-26 11:11:13 +0000490typedef struct _ACMFORMATDETAILSA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000491{
492 DWORD cbStruct;
493 DWORD dwFormatIndex;
494 DWORD dwFormatTag;
495 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000496 PWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000497 DWORD cbwfx;
498 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000499} ACMFORMATDETAILSA, *PACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000500
Alexandre Julliarda3960291999-02-26 11:11:13 +0000501typedef struct _ACMFORMATDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000502{
503 DWORD cbStruct;
504 DWORD dwFormatIndex;
505 DWORD dwFormatTag;
506 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000507 PWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000508 DWORD cbwfx;
509 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000510} ACMFORMATDETAILSW, *PACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000511
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000512DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS)
513DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS)
Eric Pouech28b8ac82001-01-04 20:58:05 +0000514DECL_WINELIB_TYPE_AW(LPACMFORMATDETAILS)
Eric Pouechb8ba8452000-08-26 04:33:00 +0000515
Alexandre Julliarda3960291999-02-26 11:11:13 +0000516typedef struct _ACMFORMATTAGDETAILSA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000517{
518 DWORD cbStruct;
519 DWORD dwFormatTagIndex;
520 DWORD dwFormatTag;
521 DWORD cbFormatSize;
522 DWORD fdwSupport;
523 DWORD cStandardFormats;
524 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000525} ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000526
Alexandre Julliarda3960291999-02-26 11:11:13 +0000527typedef struct _ACMFORMATTAGDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000528{
529 DWORD cbStruct;
530 DWORD dwFormatTagIndex;
531 DWORD dwFormatTag;
532 DWORD cbFormatSize;
533 DWORD fdwSupport;
534 DWORD cStandardFormats;
535 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000536} ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000537
Francois Gouget8b7f04d2000-10-03 04:10:42 +0000538DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS)
539DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS)
Eric Pouech28b8ac82001-01-04 20:58:05 +0000540DECL_WINELIB_TYPE_AW(LPACMFORMATTAGDETAILS)
Eric Pouechb8ba8452000-08-26 04:33:00 +0000541
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100542#ifdef _WIN64
543# define _ACMSTREAMHEADERRESERVE 15
544#else
545# define _ACMSTREAMHEADERRESERVE 10
546#endif
547
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000548typedef struct _ACMSTREAMHEADER
549{
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100550 DWORD cbStruct;
551 DWORD fdwStatus;
552 DWORD_PTR dwUser;
553 LPBYTE pbSrc;
554 DWORD cbSrcLength;
555 DWORD cbSrcLengthUsed;
556 DWORD_PTR dwSrcUser;
557 LPBYTE pbDst;
558 DWORD cbDstLength;
559 DWORD cbDstLengthUsed;
560 DWORD_PTR dwDstUser;
561 DWORD dwReservedDriver[_ACMSTREAMHEADERRESERVE];
Eric Pouech28b8ac82001-01-04 20:58:05 +0000562} ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000563
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100564#undef _ACMSTREAMHEADERRESERVE
565
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000566/***********************************************************************
567 * Callbacks 2
568 */
569
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000570typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000571 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100572 DWORD_PTR dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000573);
574
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000575typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000576 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100577 DWORD_PTR dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000578);
579
Eric Pouechb8ba8452000-08-26 04:33:00 +0000580#define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
581
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000582typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000583 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100584 DWORD_PTR dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000585);
586
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000587typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000588 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100589 DWORD_PTR dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000590);
591
Eric Pouechb8ba8452000-08-26 04:33:00 +0000592#define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
593
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000594typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000595 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100596 DWORD_PTR dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000597);
598
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000599typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000600 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100601 DWORD_PTR dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000602);
603
Eric Pouechb8ba8452000-08-26 04:33:00 +0000604#define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
605
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000606typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000607 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100608 DWORD_PTR dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000609);
610
Patrik Stridvallf94462f2002-01-31 23:22:07 +0000611typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
Alexandre Julliarda3960291999-02-26 11:11:13 +0000612 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100613 DWORD_PTR dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000614);
615
Eric Pouechb8ba8452000-08-26 04:33:00 +0000616#define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
617
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000618/***********************************************************************
619 * Functions - Win32
620 */
621
Alexandre Julliarda3960291999-02-26 11:11:13 +0000622MMRESULT WINAPI acmDriverAddA(
623 PHACMDRIVERID phadid, HINSTANCE hinstModule,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000624 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
625);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000626MMRESULT WINAPI acmDriverAddW(
627 PHACMDRIVERID phadid, HINSTANCE hinstModule,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000628 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
629);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000630#define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
631
Alexandre Julliarda3960291999-02-26 11:11:13 +0000632MMRESULT WINAPI acmDriverClose(
633 HACMDRIVER had, DWORD fdwClose
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000634);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000635MMRESULT WINAPI acmDriverDetailsA(
636 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000637);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000638MMRESULT WINAPI acmDriverDetailsW(
639 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000640);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000641#define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
642
Alexandre Julliarda3960291999-02-26 11:11:13 +0000643MMRESULT WINAPI acmDriverEnum(
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100644 ACMDRIVERENUMCB fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000645);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000646MMRESULT WINAPI acmDriverID(
647 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000648);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000649LRESULT WINAPI acmDriverMessage(
650 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000651);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000652MMRESULT WINAPI acmDriverOpen(
653 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000654);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000655MMRESULT WINAPI acmDriverPriority(
656 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000657);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000658MMRESULT WINAPI acmDriverRemove(
659 HACMDRIVERID hadid, DWORD fdwRemove
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000660);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000661MMRESULT WINAPI acmFilterChooseA(
662 PACMFILTERCHOOSEA pafltrc
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000663);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000664MMRESULT WINAPI acmFilterChooseW(
665 PACMFILTERCHOOSEW pafltrc
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000666);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000667#define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose)
668
Alexandre Julliarda3960291999-02-26 11:11:13 +0000669MMRESULT WINAPI acmFilterDetailsA(
670 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000671);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000672MMRESULT WINAPI acmFilterDetailsW(
673 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000674);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000675#define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails)
676
Alexandre Julliarda3960291999-02-26 11:11:13 +0000677MMRESULT WINAPI acmFilterEnumA(
Vincent Béron9a624912002-05-31 23:06:46 +0000678 HACMDRIVER had, PACMFILTERDETAILSA pafd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100679 ACMFILTERENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000680);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000681MMRESULT WINAPI acmFilterEnumW(
Vincent Béron9a624912002-05-31 23:06:46 +0000682 HACMDRIVER had, PACMFILTERDETAILSW pafd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100683 ACMFILTERENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000684);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000685#define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum)
686
Alexandre Julliarda3960291999-02-26 11:11:13 +0000687MMRESULT WINAPI acmFilterTagDetailsA(
688 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000689);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000690MMRESULT WINAPI acmFilterTagDetailsW(
691 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000692);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000693#define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails)
694
Alexandre Julliarda3960291999-02-26 11:11:13 +0000695MMRESULT WINAPI acmFilterTagEnumA(
696 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100697 ACMFILTERTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000698);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000699MMRESULT WINAPI acmFilterTagEnumW(
700 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100701 ACMFILTERTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000702);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000703#define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum)
704
Alexandre Julliarda3960291999-02-26 11:11:13 +0000705MMRESULT WINAPI acmFormatChooseA(
706 PACMFORMATCHOOSEA pafmtc
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000707);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000708MMRESULT WINAPI acmFormatChooseW(
709 PACMFORMATCHOOSEW pafmtc
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000710);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000711#define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose)
712
Alexandre Julliarda3960291999-02-26 11:11:13 +0000713MMRESULT WINAPI acmFormatDetailsA(
714 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000715);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000716MMRESULT WINAPI acmFormatDetailsW(
717 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000718);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000719#define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails)
720
Alexandre Julliarda3960291999-02-26 11:11:13 +0000721MMRESULT WINAPI acmFormatEnumA(
722 HACMDRIVER had, PACMFORMATDETAILSA pafd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100723 ACMFORMATENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000724);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000725MMRESULT WINAPI acmFormatEnumW(
726 HACMDRIVER had, PACMFORMATDETAILSW pafd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100727 ACMFORMATENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000728);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000729#define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
730
Alexandre Julliarda3960291999-02-26 11:11:13 +0000731MMRESULT WINAPI acmFormatSuggest(
732 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000733 DWORD cbwfxDst, DWORD fdwSuggest
734);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000735MMRESULT WINAPI acmFormatTagDetailsA(
736 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000737);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000738MMRESULT WINAPI acmFormatTagDetailsW(
739 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000740);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000741#define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails)
742
Alexandre Julliarda3960291999-02-26 11:11:13 +0000743MMRESULT WINAPI acmFormatTagEnumA(
744 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100745 ACMFORMATTAGENUMCBA fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000746);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000747MMRESULT WINAPI acmFormatTagEnumW(
748 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100749 ACMFORMATTAGENUMCBW fnCallback, DWORD_PTR dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000750);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000751#define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
752
Eric Pouech28b8ac82001-01-04 20:58:05 +0000753DWORD WINAPI acmGetVersion(void
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000754);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000755MMRESULT WINAPI acmMetrics(
756 HACMOBJ hao, UINT uMetric, LPVOID pMetric
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000757);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000758MMRESULT WINAPI acmStreamClose(
759 HACMSTREAM has, DWORD fdwClose
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000760);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000761MMRESULT WINAPI acmStreamConvert(
762 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000763);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000764MMRESULT WINAPI acmStreamMessage(
765 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000766);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000767MMRESULT WINAPI acmStreamOpen(
768 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
Michael Stefaniuc8aeacc52009-02-05 09:52:31 +0100769 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD_PTR dwCallback,
770 DWORD_PTR dwInstance, DWORD fdwOpen
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000771);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000772MMRESULT WINAPI acmStreamPrepareHeader(
773 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000774);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000775MMRESULT WINAPI acmStreamReset(
776 HACMSTREAM has, DWORD fdwReset
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000777);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000778MMRESULT WINAPI acmStreamSize(
Vincent Béron9a624912002-05-31 23:06:46 +0000779 HACMSTREAM has, DWORD cbInput,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000780 LPDWORD pdwOutputBytes, DWORD fdwSize
781);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000782MMRESULT WINAPI acmStreamUnprepareHeader(
783 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000784);
785
Alexandre Julliard10b089a2009-01-09 17:46:36 +0100786#include <poppack.h>
787
Patrik Stridvall14da7b11999-06-12 10:53:06 +0000788#ifdef __cplusplus
789} /* extern "C" */
790#endif /* defined(__cplusplus) */
791
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000792#endif /* __WINE_MSACM_H */