blob: 9b24586d6ffa206e068b426b1fa7788b48a99e5a [file] [log] [blame]
Patrik Stridvall29c08dd1998-10-11 17:00:29 +00001/*
2 * msacm.h - Declarations for MSACM
3 */
4
5#ifndef __WINE_MSACM_H
6#define __WINE_MSACM_H
7
Jim Aston2e1cafa1999-03-14 16:35:05 +00008#include "windef.h"
Patrik Stridvall29c08dd1998-10-11 17:00:29 +00009#include "driver.h"
10#include "mmsystem.h"
11#include "mmreg.h"
12
Patrik Stridvall14da7b11999-06-12 10:53:06 +000013#ifdef __cplusplus
14extern "C" {
15#endif /* defined(__cplusplus) */
16
Patrik Stridvall29c08dd1998-10-11 17:00:29 +000017/***********************************************************************
Patrik Stridvall29c08dd1998-10-11 17:00:29 +000018 * Defines/Enums
19 */
20
21#define ACMERR_BASE 512
22#define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
23#define ACMERR_BUSY (ACMERR_BASE + 1)
24#define ACMERR_UNPREPARED (ACMERR_BASE + 2)
25#define ACMERR_CANCELED (ACMERR_BASE + 3)
26
27#define MM_ACM_OPEN MM_STREAM_OPEN
28#define MM_ACM_CLOSE MM_STREAM_CLOSE
29#define MM_ACM_DONE MM_STREAM_DONE
30
31#define ACM_DRIVERADDF_FUNCTION 0x00000003L
32#define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
33#define ACM_DRIVERADDF_TYPEMASK 0x00000007L
34#define ACM_DRIVERADDF_LOCAL 0x00000000L
35#define ACM_DRIVERADDF_GLOBAL 0x00000008L
36
37#define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
38#define ACMDRIVERDETAILS_LONGNAME_CHARS 128
39#define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
40#define ACMDRIVERDETAILS_LICENSING_CHARS 128
41#define ACMDRIVERDETAILS_FEATURES_CHARS 512
42
43#define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
44#define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
45
46#define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
47#define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
48#define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
49#define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
50#define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
51#define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
52#define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
53
54#define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
55#define ACM_DRIVERENUMF_DISABLED 0x80000000L
56
57#define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
58#define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
59#define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
60#define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
61#define ACM_DRIVERPRIORITYF_END 0x00020000L
62#define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
63
64#define MM_ACM_FILTERCHOOSE 0x8000
65
66#define FILTERCHOOSE_MESSAGE 0
67#define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
68#define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
69#define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
70
71#define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
72#define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
73#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
74#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
75#define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
76#define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
77
78#define ACMFILTERDETAILS_FILTER_CHARS 128
79
80#define ACM_FILTERDETAILSF_INDEX 0x00000000L
81#define ACM_FILTERDETAILSF_FILTER 0x00000001L
82#define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
83
84#define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
85
86#define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
87#define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
88#define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
89#define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
90
91#define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
92
Alexandre Julliarda3960291999-02-26 11:11:13 +000093#define ACMHELPMSGSTRINGA "acmchoose_help"
94#define ACMHELPMSGSTRINGW L"acmchoose_help"
Patrik Stridvall29c08dd1998-10-11 17:00:29 +000095#define ACMHELPMSGSTRING16 "acmchoose_help"
96
Alexandre Julliarda3960291999-02-26 11:11:13 +000097#define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
98#define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
Patrik Stridvall29c08dd1998-10-11 17:00:29 +000099#define ACMHELPMSGCONTEXTMENU16 "acmchoose_contextmenu"
100
Alexandre Julliarda3960291999-02-26 11:11:13 +0000101#define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
102#define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000103#define ACMHELPMSGCONTEXTHELP16 "acmchoose_contexthelp"
104
105#define MM_ACM_FORMATCHOOSE 0x8000
106
107#define FORMATCHOOSE_MESSAGE 0
108#define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
109#define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
110#define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
111
112#define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
113#define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
114#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
115#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
116#define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
117#define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
118
119#define ACMFORMATDETAILS_FORMAT_CHARS 128
120
121#define ACM_FORMATDETAILSF_INDEX 0x00000000L
122#define ACM_FORMATDETAILSF_FORMAT 0x00000001L
123#define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
124
125#define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
126#define ACM_FORMATENUMF_NCHANNELS 0x00020000L
127#define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
128#define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
129#define ACM_FORMATENUMF_CONVERT 0x00100000L
130#define ACM_FORMATENUMF_SUGGEST 0x00200000L
131#define ACM_FORMATENUMF_HARDWARE 0x00400000L
132#define ACM_FORMATENUMF_INPUT 0x00800000L
133#define ACM_FORMATENUMF_OUTPUT 0x01000000L
134
135#define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
136#define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
137#define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
138#define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
139#define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
140
141#define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
142
143#define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
144#define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
145#define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
146#define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
147
148#define ACM_METRIC_COUNT_DRIVERS 1
149#define ACM_METRIC_COUNT_CODECS 2
150#define ACM_METRIC_COUNT_CONVERTERS 3
151#define ACM_METRIC_COUNT_FILTERS 4
152#define ACM_METRIC_COUNT_DISABLED 5
153#define ACM_METRIC_COUNT_HARDWARE 6
154#define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
155#define ACM_METRIC_COUNT_LOCAL_CODECS 21
156#define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
157#define ACM_METRIC_COUNT_LOCAL_FILTERS 23
158#define ACM_METRIC_COUNT_LOCAL_DISABLED 24
159#define ACM_METRIC_HARDWARE_WAVE_INPUT 30
160#define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
161#define ACM_METRIC_MAX_SIZE_FORMAT 50
162#define ACM_METRIC_MAX_SIZE_FILTER 51
163#define ACM_METRIC_DRIVER_SUPPORT 100
164#define ACM_METRIC_DRIVER_PRIORITY 101
165
166#define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
167#define ACM_STREAMCONVERTF_START 0x00000010
168#define ACM_STREAMCONVERTF_END 0x00000020
169
170#define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
171#define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
172#define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
173
174#define ACM_STREAMOPENF_QUERY 0x00000001
175#define ACM_STREAMOPENF_ASYNC 0x00000002
176#define ACM_STREAMOPENF_NONREALTIME 0x00000004
177
178#define ACM_STREAMSIZEF_SOURCE 0x00000000L
179#define ACM_STREAMSIZEF_DESTINATION 0x00000001L
180#define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
181
182#define ACMDM_USER (DRV_USER + 0x0000)
183#define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
184#define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
185
186#define ACMDM_BASE ACMDM_RESERVED_LOW
187
188#define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
189
190/***********************************************************************
191 * Callbacks
192 */
193
Alexandre Julliarda3960291999-02-26 11:11:13 +0000194typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
195 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000196);
197
198typedef BOOL16 (CALLBACK *ACMDRIVERENUMCB16)(
199 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
200);
201
Alexandre Julliarda3960291999-02-26 11:11:13 +0000202typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
203 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000204);
205
Alexandre Julliarda3960291999-02-26 11:11:13 +0000206typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
207 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000208);
209
Alexandre Julliarda3960291999-02-26 11:11:13 +0000210typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROC16)(
211 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000212);
213
Alexandre Julliarda3960291999-02-26 11:11:13 +0000214typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
215 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000216);
217
Alexandre Julliarda3960291999-02-26 11:11:13 +0000218typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
219 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000220);
221
222typedef UINT16 (CALLBACK *ACMFORMATCHOOSEHOOKPROC16)(
223 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
224);
225
226/***********************************************************************
227 * Structures
228 */
229
Alexandre Julliarda3960291999-02-26 11:11:13 +0000230typedef struct _ACMDRIVERDETAILSA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000231{
232 DWORD cbStruct;
233
234 FOURCC fccType;
235 FOURCC fccComp;
236
237 WORD wMid;
238 WORD wPid;
239
240 DWORD vdwACM;
241 DWORD vdwDriver;
242
243 DWORD fdwSupport;
244 DWORD cFormatTags;
245 DWORD cFilterTags;
246
Alexandre Julliarda3960291999-02-26 11:11:13 +0000247 HICON hicon;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000248
249 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
250 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
251 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
252 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
253 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000254} ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000255
Alexandre Julliarda3960291999-02-26 11:11:13 +0000256typedef struct _ACMDRIVERDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000257{
258 DWORD cbStruct;
259
260 FOURCC fccType;
261 FOURCC fccComp;
262
263 WORD wMid;
264 WORD wPid;
265
266 DWORD vdwACM;
267 DWORD vdwDriver;
268
269 DWORD fdwSupport;
270 DWORD cFormatTags;
271 DWORD cFilterTags;
272
Alexandre Julliarda3960291999-02-26 11:11:13 +0000273 HICON hicon;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000274
275 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
276 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
277 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
278 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
279 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000280} ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000281
282typedef struct _ACMDRIVERDETAILS16
283{
284 DWORD cbStruct;
285
286 FOURCC fccType;
287 FOURCC fccComp;
288
289 WORD wMid;
290 WORD wPid;
291
292 DWORD vdwACM;
293 DWORD vdwDriver;
294
295 DWORD fdwSupport;
296 DWORD cFormatTags;
297 DWORD cFilterTags;
298
299 HICON16 hicon;
300
301 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
302 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
303 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
304 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
305 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
306} ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
307
Alexandre Julliarda3960291999-02-26 11:11:13 +0000308typedef struct _ACMFILTERCHOOSEA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000309{
310 DWORD cbStruct;
311 DWORD fdwStyle;
312
Alexandre Julliarda3960291999-02-26 11:11:13 +0000313 HWND hwndOwner;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000314
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000315 PWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000316 DWORD cbwfltr;
317
318 LPCSTR pszTitle;
319
320 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
321 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
322 LPSTR pszName;
323 DWORD cchName;
324
325 DWORD fdwEnum;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000326 PWAVEFILTER pwfltrEnum;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000327
Alexandre Julliarda3960291999-02-26 11:11:13 +0000328 HINSTANCE hInstance;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000329 LPCSTR pszTemplateName;
330 LPARAM lCustData;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000331 ACMFILTERCHOOSEHOOKPROCA pfnHook;
332} ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000333
Alexandre Julliarda3960291999-02-26 11:11:13 +0000334typedef struct _ACMFILTERCHOOSEW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000335{
336 DWORD cbStruct;
337 DWORD fdwStyle;
338
Alexandre Julliarda3960291999-02-26 11:11:13 +0000339 HWND hwndOwner;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000340
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000341 PWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000342 DWORD cbwfltr;
343
344 LPCWSTR pszTitle;
345
346 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
347 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
348 LPWSTR pszName;
349 DWORD cchName;
350
351 DWORD fdwEnum;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000352 PWAVEFILTER pwfltrEnum;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000353
Alexandre Julliarda3960291999-02-26 11:11:13 +0000354 HINSTANCE hInstance;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000355 LPCWSTR pszTemplateName;
356 LPARAM lCustData;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000357 ACMFILTERCHOOSEHOOKPROCW pfnHook;
358} ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000359
360typedef struct _ACMFILTERCHOOSE16
361{
362 DWORD cbStruct;
363 DWORD fdwStyle;
364
365 HWND16 hwndOwner;
366
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000367 LPWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000368 DWORD cbwfltr;
369
370 LPCSTR pszTitle;
371
372 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
373 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
374 LPSTR pszName;
375 DWORD cchName;
376
377 DWORD fdwEnum;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000378 LPWAVEFILTER pwfltrEnum;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000379
380 HINSTANCE16 hInstance;
381 LPCSTR pszTemplateName;
382 LPARAM lCustData;
383 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
384} ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
385
Alexandre Julliarda3960291999-02-26 11:11:13 +0000386typedef struct _ACMFILTERDETAILSA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000387{
388 DWORD cbStruct;
389 DWORD dwFilterIndex;
390 DWORD dwFilterTag;
391 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000392 PWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000393 DWORD cbwfltr;
394 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000395} ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000396
Alexandre Julliarda3960291999-02-26 11:11:13 +0000397typedef struct _ACMFILTERDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000398{
399 DWORD cbStruct;
400 DWORD dwFilterIndex;
401 DWORD dwFilterTag;
402 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000403 PWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000404 DWORD cbwfltr;
405 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000406} ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000407
408typedef struct _ACMFILTERDETAILS16
409{
410 DWORD cbStruct;
411 DWORD dwFilterIndex;
412 DWORD dwFilterTag;
413 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000414 LPWAVEFILTER pwfltr;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000415 DWORD cbwfltr;
416 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
417} ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
418
Alexandre Julliarda3960291999-02-26 11:11:13 +0000419typedef struct _ACMFILTERTAGDETAILSA
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 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000428} ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000429
Alexandre Julliarda3960291999-02-26 11:11:13 +0000430typedef struct _ACMFILTERTAGDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000431{
432 DWORD cbStruct;
433 DWORD dwFilterTagIndex;
434 DWORD dwFilterTag;
435 DWORD cbFilterSize;
436 DWORD fdwSupport;
437 DWORD cStandardFilters;
438 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000439} ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000440
441typedef struct _ACMFILTERTAGDETAILS16
442{
443 DWORD cbStruct;
444 DWORD dwFilterTagIndex;
445 DWORD dwFilterTag;
446 DWORD cbFilterSize;
447 DWORD fdwSupport;
448 DWORD cStandardFilters;
449 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
450} ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
451
Alexandre Julliarda3960291999-02-26 11:11:13 +0000452typedef struct _ACMFORMATCHOOSEA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000453{
454 DWORD cbStruct;
455 DWORD fdwStyle;
456
Alexandre Julliarda3960291999-02-26 11:11:13 +0000457 HWND hwndOwner;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000458
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000459 PWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000460 DWORD cbwfx;
461 LPCSTR pszTitle;
462
463 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
464 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
465
466 LPSTR pszName;
467 DWORD cchName;
468
469 DWORD fdwEnum;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000470 PWAVEFORMATEX pwfxEnum;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000471
Alexandre Julliarda3960291999-02-26 11:11:13 +0000472 HINSTANCE hInstance;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000473 LPCSTR pszTemplateName;
474 LPARAM lCustData;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000475 ACMFORMATCHOOSEHOOKPROCA pfnHook;
476} ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000477
Alexandre Julliarda3960291999-02-26 11:11:13 +0000478typedef struct _ACMFORMATCHOOSEW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000479{
480 DWORD cbStruct;
481 DWORD fdwStyle;
482
Alexandre Julliarda3960291999-02-26 11:11:13 +0000483 HWND hwndOwner;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000484
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000485 PWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000486 DWORD cbwfx;
487 LPCWSTR pszTitle;
488
489 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
490 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
491
492 LPWSTR pszName;
493 DWORD cchName;
494
495 DWORD fdwEnum;
496 LPWAVEFORMATEX pwfxEnum;
497
Alexandre Julliarda3960291999-02-26 11:11:13 +0000498 HINSTANCE hInstance;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000499 LPCWSTR pszTemplateName;
500 LPARAM lCustData;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000501 ACMFORMATCHOOSEHOOKPROCW pfnHook;
502} ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000503
504typedef struct _ACMFORMATCHOOSE16
505{
506 DWORD cbStruct;
507 DWORD fdwStyle;
508
509 HWND16 hwndOwner;
510
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000511 LPWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000512 DWORD cbwfx;
513 LPCSTR pszTitle;
514
515 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
516 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
517
518 LPSTR pszName;
519 DWORD cchName;
520
521 DWORD fdwEnum;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000522 LPWAVEFORMATEX pwfxEnum;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000523
524 HINSTANCE16 hInstance;
525 LPCSTR pszTemplateName;
526 LPARAM lCustData;
527 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
528} ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
529
Alexandre Julliarda3960291999-02-26 11:11:13 +0000530typedef struct _ACMFORMATDETAILSA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000531{
532 DWORD cbStruct;
533 DWORD dwFormatIndex;
534 DWORD dwFormatTag;
535 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000536 PWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000537 DWORD cbwfx;
538 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000539} ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000540
Alexandre Julliarda3960291999-02-26 11:11:13 +0000541typedef struct _ACMFORMATDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000542{
543 DWORD cbStruct;
544 DWORD dwFormatIndex;
545 DWORD dwFormatTag;
546 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000547 PWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000548 DWORD cbwfx;
549 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000550} ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000551
552typedef struct _ACMFORMATDETAILS16
553{
554 DWORD cbStruct;
555 DWORD dwFormatIndex;
556 DWORD dwFormatTag;
557 DWORD fdwSupport;
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000558 LPWAVEFORMATEX pwfx;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000559 DWORD cbwfx;
560 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
561} ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
562
Alexandre Julliarda3960291999-02-26 11:11:13 +0000563typedef struct _ACMFORMATTAGDETAILSA
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000564{
565 DWORD cbStruct;
566 DWORD dwFormatTagIndex;
567 DWORD dwFormatTag;
568 DWORD cbFormatSize;
569 DWORD fdwSupport;
570 DWORD cStandardFormats;
571 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000572} ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000573
Alexandre Julliarda3960291999-02-26 11:11:13 +0000574typedef struct _ACMFORMATTAGDETAILSW
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000575{
576 DWORD cbStruct;
577 DWORD dwFormatTagIndex;
578 DWORD dwFormatTag;
579 DWORD cbFormatSize;
580 DWORD fdwSupport;
581 DWORD cStandardFormats;
582 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
Alexandre Julliarda3960291999-02-26 11:11:13 +0000583} ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000584
585typedef struct _ACMFORMATTAGDETAILS16
586{
587 DWORD cbStruct;
588 DWORD dwFormatTagIndex;
589 DWORD dwFormatTag;
590 DWORD cbFormatSize;
591 DWORD fdwSupport;
592 DWORD cStandardFormats;
593 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
594} ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
595
596typedef struct _ACMSTREAMHEADER
597{
598 DWORD cbStruct;
599 DWORD fdwStatus;
600 DWORD dwUser;
601 LPBYTE pbSrc;
602 DWORD cbSrcLength;
603 DWORD cbSrcLengthUsed;
604 DWORD dwSrcUser;
605 LPBYTE pbDst;
606 DWORD cbDstLength;
607 DWORD cbDstLengthUsed;
608 DWORD dwDstUser;
609 DWORD dwReservedDriver[10];
610} ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
Alexandre Julliarda3960291999-02-26 11:11:13 +0000611 ACMSTREAMHEADER, *PACMSTREAMHEADER;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000612
613/***********************************************************************
614 * Callbacks 2
615 */
616
Alexandre Julliarda3960291999-02-26 11:11:13 +0000617typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
618 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000619 DWORD dwInstance, DWORD fdwSupport
620);
621
Alexandre Julliarda3960291999-02-26 11:11:13 +0000622typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
623 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000624 DWORD dwInstance, DWORD fdwSupport
625);
626
627typedef BOOL16 (CALLBACK *ACMFILTERENUMCB16)(
628 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
629 DWORD dwInstance, DWORD fdwSupport
630);
631
Alexandre Julliarda3960291999-02-26 11:11:13 +0000632typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
633 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000634 DWORD dwInstance, DWORD fdwSupport
635);
636
Alexandre Julliarda3960291999-02-26 11:11:13 +0000637typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
638 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000639 DWORD dwInstance, DWORD fdwSupport
640);
641
642typedef BOOL16 (CALLBACK *ACMFILTERTAGENUMCB16)(
643 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
644 DWORD dwInstance, DWORD fdwSupport
645);
646
Alexandre Julliarda3960291999-02-26 11:11:13 +0000647typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
648 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000649 DWORD dwInstance, DWORD fdwSupport
650);
651
Alexandre Julliarda3960291999-02-26 11:11:13 +0000652typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
653 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000654 DWORD dwInstance, DWORD fdwSupport
655);
656
657typedef BOOL16 (CALLBACK *ACMFORMATENUMCB16)(
658 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
659 DWORD dwInstance, DWORD fdwSupport
660);
661
Alexandre Julliarda3960291999-02-26 11:11:13 +0000662typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
663 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000664 DWORD dwInstance, DWORD fdwSupport
665);
666
Alexandre Julliarda3960291999-02-26 11:11:13 +0000667typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
668 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000669 DWORD dwInstance, DWORD fdwSupport
670);
671
672typedef BOOL16 (CALLBACK *ACMFORMATTAGENUMCB16)(
673 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
674 DWORD dwInstance, DWORD fdwSupport
675);
676
677/***********************************************************************
678 * Functions - Win16
679 */
680
681DWORD WINAPI acmGetVersion16(
682);
683MMRESULT16 WINAPI acmMetrics16(
684 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
685);
686MMRESULT16 WINAPI acmDriverEnum16(
687 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
688);
689MMRESULT16 WINAPI acmDriverDetails16(
690 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
691);
692MMRESULT16 WINAPI acmDriverAdd16(
693 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
694 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
695);
696MMRESULT16 WINAPI acmDriverRemove16(
697 HACMDRIVERID16 hadid, DWORD fdwRemove
698);
699MMRESULT16 WINAPI acmDriverOpen16(
700 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
701);
702MMRESULT16 WINAPI acmDriverClose16(
703 HACMDRIVER16 had, DWORD fdwClose
704);
705LRESULT WINAPI acmDriverMessage16(
706 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
707);
708MMRESULT16 WINAPI acmDriverID16(
709 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
710);
711MMRESULT16 WINAPI acmDriverPriority16(
712 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
713);
714MMRESULT16 WINAPI acmFormatTagDetails16(
715 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
716);
717MMRESULT16 WINAPI acmFormatTagEnum16(
718 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
719 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
720);
721MMRESULT16 WINAPI acmFormatChoose16(
722 LPACMFORMATCHOOSE16 pafmtc
723);
724MMRESULT16 WINAPI acmFormatDetails16(
725 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
726);
727MMRESULT16 WINAPI acmFormatEnum16(
728 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
729 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
730);
731MMRESULT16 WINAPI acmFormatSuggest16(
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000732 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
733 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000734);
735MMRESULT16 WINAPI acmFilterTagDetails16(
736 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
737);
738MMRESULT16 WINAPI acmFilterTagEnum16(
739 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
740 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
741);
742MMRESULT16 WINAPI acmFilterChoose16(
743 LPACMFILTERCHOOSE16 pafltrc
744);
745MMRESULT16 WINAPI acmFilterDetails16(
746 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
747);
748MMRESULT16 WINAPI acmFilterEnum16(
749 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
750 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
751);
752MMRESULT16 WINAPI acmStreamOpen16(
753 LPHACMSTREAM16 phas, HACMDRIVER16 had,
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000754 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
755 LPWAVEFILTER pwfltr, DWORD dwCallback,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000756 DWORD dwInstance, DWORD fdwOpen
757);
758MMRESULT16 WINAPI acmStreamClose16(
759 HACMSTREAM16 has, DWORD fdwClose
760);
761MMRESULT16 WINAPI acmStreamSize16(
762 HACMSTREAM16 has, DWORD cbInput,
763 LPDWORD pdwOutputBytes, DWORD fdwSize
764);
765MMRESULT16 WINAPI acmStreamConvert16(
766 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
767);
768MMRESULT16 WINAPI acmStreamReset16(
769 HACMSTREAM16 has, DWORD fdwReset
770);
771MMRESULT16 WINAPI acmStreamPrepareHeader16(
772 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
773);
774MMRESULT16 WINAPI acmStreamUnprepareHeader16(
775 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
776);
777
778/***********************************************************************
779 * Functions - Win32
780 */
781
Alexandre Julliarda3960291999-02-26 11:11:13 +0000782MMRESULT WINAPI acmDriverAddA(
783 PHACMDRIVERID phadid, HINSTANCE hinstModule,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000784 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
785);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000786MMRESULT WINAPI acmDriverAddW(
787 PHACMDRIVERID phadid, HINSTANCE hinstModule,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000788 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
789);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000790MMRESULT WINAPI acmDriverClose(
791 HACMDRIVER had, DWORD fdwClose
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000792);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000793MMRESULT WINAPI acmDriverDetailsA(
794 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000795);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000796MMRESULT WINAPI acmDriverDetailsW(
797 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000798);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000799MMRESULT WINAPI acmDriverEnum(
800 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000801);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000802MMRESULT WINAPI acmDriverID(
803 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000804);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000805LRESULT WINAPI acmDriverMessage(
806 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000807);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000808MMRESULT WINAPI acmDriverOpen(
809 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000810);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000811MMRESULT WINAPI acmDriverPriority(
812 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000813);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000814MMRESULT WINAPI acmDriverRemove(
815 HACMDRIVERID hadid, DWORD fdwRemove
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000816);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000817MMRESULT WINAPI acmFilterChooseA(
818 PACMFILTERCHOOSEA pafltrc
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000819);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000820MMRESULT WINAPI acmFilterChooseW(
821 PACMFILTERCHOOSEW pafltrc
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000822);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000823MMRESULT WINAPI acmFilterDetailsA(
824 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000825);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000826MMRESULT WINAPI acmFilterDetailsW(
827 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000828);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000829MMRESULT WINAPI acmFilterEnumA(
830 HACMDRIVER had, PACMFILTERDETAILSA pafd,
831 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000832);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000833MMRESULT WINAPI acmFilterEnumW(
834 HACMDRIVER had, PACMFILTERDETAILSW pafd,
835 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000836);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000837MMRESULT WINAPI acmFilterTagDetailsA(
838 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000839);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000840MMRESULT WINAPI acmFilterTagDetailsW(
841 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000842);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000843MMRESULT WINAPI acmFilterTagEnumA(
844 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
845 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000846);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000847MMRESULT WINAPI acmFilterTagEnumW(
848 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
849 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000850);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000851MMRESULT WINAPI acmFormatChooseA(
852 PACMFORMATCHOOSEA pafmtc
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000853);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000854MMRESULT WINAPI acmFormatChooseW(
855 PACMFORMATCHOOSEW pafmtc
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000856);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000857MMRESULT WINAPI acmFormatDetailsA(
858 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000859);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000860MMRESULT WINAPI acmFormatDetailsW(
861 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000862);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000863MMRESULT WINAPI acmFormatEnumA(
864 HACMDRIVER had, PACMFORMATDETAILSA pafd,
865 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000866);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000867MMRESULT WINAPI acmFormatEnumW(
868 HACMDRIVER had, PACMFORMATDETAILSW pafd,
869 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000870);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000871MMRESULT WINAPI acmFormatSuggest(
872 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000873 DWORD cbwfxDst, DWORD fdwSuggest
874);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000875MMRESULT WINAPI acmFormatTagDetailsA(
876 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000877);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000878MMRESULT WINAPI acmFormatTagDetailsW(
879 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000880);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000881MMRESULT WINAPI acmFormatTagEnumA(
882 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
883 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000884);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000885MMRESULT WINAPI acmFormatTagEnumW(
886 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
887 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000888);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000889DWORD WINAPI acmGetVersion(
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000890);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000891MMRESULT WINAPI acmMetrics(
892 HACMOBJ hao, UINT uMetric, LPVOID pMetric
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000893);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000894MMRESULT WINAPI acmStreamClose(
895 HACMSTREAM has, DWORD fdwClose
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000896);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000897MMRESULT WINAPI acmStreamConvert(
898 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000899);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000900MMRESULT WINAPI acmStreamMessage(
901 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000902);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000903MMRESULT WINAPI acmStreamOpen(
904 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
Bertho Stultiens27a0ced1999-02-14 09:41:42 +0000905 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000906 DWORD dwInstance, DWORD fdwOpen
907);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000908MMRESULT WINAPI acmStreamPrepareHeader(
909 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000910);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000911MMRESULT WINAPI acmStreamReset(
912 HACMSTREAM has, DWORD fdwReset
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000913);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000914MMRESULT WINAPI acmStreamSize(
915 HACMSTREAM has, DWORD cbInput,
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000916 LPDWORD pdwOutputBytes, DWORD fdwSize
917);
Alexandre Julliarda3960291999-02-26 11:11:13 +0000918MMRESULT WINAPI acmStreamUnprepareHeader(
919 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000920);
921
922/***********************************************************************
923 * Wine specific - Win32
924 */
Alexandre Julliarda3960291999-02-26 11:11:13 +0000925typedef struct _WINE_ACMBUILTINDRIVER
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000926{
927 LPSTR pszDriverAlias;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000928 DRIVERPROC pfnDriverProc;
929} WINE_ACMBUILTINDRIVER, *PWINE_ACMBUILTINDRIVER;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000930
Alexandre Julliarda3960291999-02-26 11:11:13 +0000931typedef struct _WINE_ACMLOCALDRIVER
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000932{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000933 DRIVERPROC pfnDriverProc;
934} WINE_ACMLOCALDRIVER, *PWINE_ACMLOCALDRIVER;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000935
Alexandre Julliarda3960291999-02-26 11:11:13 +0000936typedef struct _WINE_ACMDRIVERID *PWINE_ACMDRIVERID;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000937
Alexandre Julliarda3960291999-02-26 11:11:13 +0000938typedef struct _WINE_ACMOBJ
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000939{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000940 PWINE_ACMDRIVERID pACMDriverID;
941} WINE_ACMOBJ, *PWINE_ACMOBJ;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000942
Alexandre Julliarda3960291999-02-26 11:11:13 +0000943typedef struct _WINE_ACMDRIVER
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000944{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000945 WINE_ACMOBJ obj;
946 HDRVR hDrvr;
947} WINE_ACMDRIVER, *PWINE_ACMDRIVER;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000948
Alexandre Julliarda3960291999-02-26 11:11:13 +0000949typedef struct _WINE_ACMSTREAM
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000950{
Alexandre Julliarda3960291999-02-26 11:11:13 +0000951 WINE_ACMOBJ obj;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000952 /* FIME: More fields needed */
Alexandre Julliarda3960291999-02-26 11:11:13 +0000953} WINE_ACMSTREAM, *PWINE_ACMSTREAM;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000954
Alexandre Julliarda3960291999-02-26 11:11:13 +0000955typedef struct _WINE_ACMDRIVERID
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000956{
957 LPSTR pszDriverAlias;
958 LPSTR pszFileName;
Alexandre Julliarda3960291999-02-26 11:11:13 +0000959 PWINE_ACMLOCALDRIVER pACMLocalDriver;
960 BOOL bEnabled;
961 PWINE_ACMDRIVER pACMDriver; /* NULL if not open */
962 PWINE_ACMDRIVERID pNextACMDriverID;
963 PWINE_ACMDRIVERID pPreviousACMDriverID;
964} WINE_ACMDRIVERID;
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000965
966/* From builtin.c */
Alexandre Julliarda3960291999-02-26 11:11:13 +0000967extern WINE_ACMBUILTINDRIVER MSACM_BuiltinDrivers[];
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000968
969/* From interal.c */
Alexandre Julliarda3960291999-02-26 11:11:13 +0000970extern HANDLE MSACM_hHeap;
971extern PWINE_ACMDRIVERID MSACM_pFirstACMDriverID;
972extern PWINE_ACMDRIVERID MSACM_pLastACMDriverID;
973PWINE_ACMDRIVERID MSACM_RegisterDriver(
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000974 LPSTR pszDriverAlias, LPSTR pszFileName,
Alexandre Julliarda3960291999-02-26 11:11:13 +0000975 PWINE_ACMLOCALDRIVER pLocalDriver);
976void MSACM_RegisterAllDrivers();
977PWINE_ACMDRIVERID MSACM_UnregisterDriver(PWINE_ACMDRIVERID p);
978void MSACM_UnregisterAllDrivers();
979PWINE_ACMDRIVERID MSACM_GetDriverID(HACMDRIVERID hDriverID);
980PWINE_ACMDRIVER MSACM_GetDriver(HACMDRIVER hDriver);
981PWINE_ACMOBJ MSACM_GetObj(HACMOBJ hObj);
982HDRVR MSACM_OpenDriverProc(DRIVERPROC pfnDriverProc);
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000983
Patrik Stridvall14da7b11999-06-12 10:53:06 +0000984#ifdef __cplusplus
985} /* extern "C" */
986#endif /* defined(__cplusplus) */
987
Patrik Stridvall29c08dd1998-10-11 17:00:29 +0000988#endif /* __WINE_MSACM_H */
989
990