source: trunk/include/win/msacm.h@ 1036

Last change on this file since 1036 was 4, checked in by ktk, 26 years ago

Import

File size: 28.4 KB
Line 
1/* $Id: msacm.h,v 1.1 1999-05-24 20:19:14 ktk Exp $ */
2
3/*
4 * msacm.h - Declarations for MSACM
5 */
6
7#ifndef __WINE_MSACM_H
8#define __WINE_MSACM_H
9
10#include "windef.h"
11#include "driver.h"
12#include "mmsystem.h"
13#include "mmreg.h"
14
15/***********************************************************************
16 * Defines/Enums
17 */
18
19#define ACMERR_BASE 512
20#define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
21#define ACMERR_BUSY (ACMERR_BASE + 1)
22#define ACMERR_UNPREPARED (ACMERR_BASE + 2)
23#define ACMERR_CANCELED (ACMERR_BASE + 3)
24
25#define MM_ACM_OPEN MM_STREAM_OPEN
26#define MM_ACM_CLOSE MM_STREAM_CLOSE
27#define MM_ACM_DONE MM_STREAM_DONE
28
29#define ACM_DRIVERADDF_FUNCTION 0x00000003L
30#define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
31#define ACM_DRIVERADDF_TYPEMASK 0x00000007L
32#define ACM_DRIVERADDF_LOCAL 0x00000000L
33#define ACM_DRIVERADDF_GLOBAL 0x00000008L
34
35#define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
36#define ACMDRIVERDETAILS_LONGNAME_CHARS 128
37#define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
38#define ACMDRIVERDETAILS_LICENSING_CHARS 128
39#define ACMDRIVERDETAILS_FEATURES_CHARS 512
40
41#define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
42#define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
43
44#define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
45#define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
46#define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
47#define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
48#define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
49#define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
50#define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
51
52#define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
53#define ACM_DRIVERENUMF_DISABLED 0x80000000L
54
55#define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
56#define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
57#define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
58#define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
59#define ACM_DRIVERPRIORITYF_END 0x00020000L
60#define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
61
62#define MM_ACM_FILTERCHOOSE 0x8000
63
64#define FILTERCHOOSE_MESSAGE 0
65#define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
66#define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
67#define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
68
69#define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
70#define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
71#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
72#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
73#define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
74#define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
75
76#define ACMFILTERDETAILS_FILTER_CHARS 128
77
78#define ACM_FILTERDETAILSF_INDEX 0x00000000L
79#define ACM_FILTERDETAILSF_FILTER 0x00000001L
80#define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
81
82#define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
83
84#define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
85#define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
86#define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
87#define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
88
89#define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
90
91#define ACMHELPMSGSTRINGA "acmchoose_help"
92#define ACMHELPMSGSTRINGW L"acmchoose_help"
93#define ACMHELPMSGSTRING16 "acmchoose_help"
94
95#define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
96#define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
97#define ACMHELPMSGCONTEXTMENU16 "acmchoose_contextmenu"
98
99#define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
100#define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
101#define ACMHELPMSGCONTEXTHELP16 "acmchoose_contexthelp"
102
103#define MM_ACM_FORMATCHOOSE 0x8000
104
105#define FORMATCHOOSE_MESSAGE 0
106#define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
107#define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
108#define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
109
110#define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
111#define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
112#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
113#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
114#define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
115#define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
116
117#define ACMFORMATDETAILS_FORMAT_CHARS 128
118
119#define ACM_FORMATDETAILSF_INDEX 0x00000000L
120#define ACM_FORMATDETAILSF_FORMAT 0x00000001L
121#define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
122
123#define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
124#define ACM_FORMATENUMF_NCHANNELS 0x00020000L
125#define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
126#define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
127#define ACM_FORMATENUMF_CONVERT 0x00100000L
128#define ACM_FORMATENUMF_SUGGEST 0x00200000L
129#define ACM_FORMATENUMF_HARDWARE 0x00400000L
130#define ACM_FORMATENUMF_INPUT 0x00800000L
131#define ACM_FORMATENUMF_OUTPUT 0x01000000L
132
133#define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
134#define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
135#define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
136#define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
137#define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
138
139#define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
140
141#define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
142#define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
143#define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
144#define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
145
146#define ACM_METRIC_COUNT_DRIVERS 1
147#define ACM_METRIC_COUNT_CODECS 2
148#define ACM_METRIC_COUNT_CONVERTERS 3
149#define ACM_METRIC_COUNT_FILTERS 4
150#define ACM_METRIC_COUNT_DISABLED 5
151#define ACM_METRIC_COUNT_HARDWARE 6
152#define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
153#define ACM_METRIC_COUNT_LOCAL_CODECS 21
154#define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
155#define ACM_METRIC_COUNT_LOCAL_FILTERS 23
156#define ACM_METRIC_COUNT_LOCAL_DISABLED 24
157#define ACM_METRIC_HARDWARE_WAVE_INPUT 30
158#define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
159#define ACM_METRIC_MAX_SIZE_FORMAT 50
160#define ACM_METRIC_MAX_SIZE_FILTER 51
161#define ACM_METRIC_DRIVER_SUPPORT 100
162#define ACM_METRIC_DRIVER_PRIORITY 101
163
164#define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
165#define ACM_STREAMCONVERTF_START 0x00000010
166#define ACM_STREAMCONVERTF_END 0x00000020
167
168#define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
169#define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
170#define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
171
172#define ACM_STREAMOPENF_QUERY 0x00000001
173#define ACM_STREAMOPENF_ASYNC 0x00000002
174#define ACM_STREAMOPENF_NONREALTIME 0x00000004
175
176#define ACM_STREAMSIZEF_SOURCE 0x00000000L
177#define ACM_STREAMSIZEF_DESTINATION 0x00000001L
178#define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
179
180#define ACMDM_USER (DRV_USER + 0x0000)
181#define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
182#define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
183
184#define ACMDM_BASE ACMDM_RESERVED_LOW
185
186#define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
187
188/***********************************************************************
189 * Callbacks
190 */
191
192typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
193 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
194);
195
196typedef BOOL16 (CALLBACK *ACMDRIVERENUMCB16)(
197 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
198);
199
200typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
201 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
202);
203
204typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
205 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
206);
207
208typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROC16)(
209 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
210);
211
212typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
213 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
214);
215
216typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
217 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
218);
219
220typedef UINT16 (CALLBACK *ACMFORMATCHOOSEHOOKPROC16)(
221 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
222);
223
224/***********************************************************************
225 * Structures
226 */
227
228typedef struct _ACMDRIVERDETAILSA
229{
230 DWORD cbStruct;
231
232 FOURCC fccType;
233 FOURCC fccComp;
234
235 WORD wMid;
236 WORD wPid;
237
238 DWORD vdwACM;
239 DWORD vdwDriver;
240
241 DWORD fdwSupport;
242 DWORD cFormatTags;
243 DWORD cFilterTags;
244
245 HICON hicon;
246
247 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
248 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
249 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
250 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
251 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
252} ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
253
254typedef struct _ACMDRIVERDETAILSW
255{
256 DWORD cbStruct;
257
258 FOURCC fccType;
259 FOURCC fccComp;
260
261 WORD wMid;
262 WORD wPid;
263
264 DWORD vdwACM;
265 DWORD vdwDriver;
266
267 DWORD fdwSupport;
268 DWORD cFormatTags;
269 DWORD cFilterTags;
270
271 HICON hicon;
272
273 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
274 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
275 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
276 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
277 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
278} ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
279
280typedef struct _ACMDRIVERDETAILS16
281{
282 DWORD cbStruct;
283
284 FOURCC fccType;
285 FOURCC fccComp;
286
287 WORD wMid;
288 WORD wPid;
289
290 DWORD vdwACM;
291 DWORD vdwDriver;
292
293 DWORD fdwSupport;
294 DWORD cFormatTags;
295 DWORD cFilterTags;
296
297 HICON16 hicon;
298
299 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
300 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
301 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
302 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
303 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
304} ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
305
306typedef struct _ACMFILTERCHOOSEA
307{
308 DWORD cbStruct;
309 DWORD fdwStyle;
310
311 HWND hwndOwner;
312
313 PWAVEFILTER pwfltr;
314 DWORD cbwfltr;
315
316 LPCSTR pszTitle;
317
318 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
319 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
320 LPSTR pszName;
321 DWORD cchName;
322
323 DWORD fdwEnum;
324 PWAVEFILTER pwfltrEnum;
325
326 HINSTANCE hInstance;
327 LPCSTR pszTemplateName;
328 LPARAM lCustData;
329 ACMFILTERCHOOSEHOOKPROCA pfnHook;
330} ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
331
332typedef struct _ACMFILTERCHOOSEW
333{
334 DWORD cbStruct;
335 DWORD fdwStyle;
336
337 HWND hwndOwner;
338
339 PWAVEFILTER pwfltr;
340 DWORD cbwfltr;
341
342 LPCWSTR pszTitle;
343
344 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
345 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
346 LPWSTR pszName;
347 DWORD cchName;
348
349 DWORD fdwEnum;
350 PWAVEFILTER pwfltrEnum;
351
352 HINSTANCE hInstance;
353 LPCWSTR pszTemplateName;
354 LPARAM lCustData;
355 ACMFILTERCHOOSEHOOKPROCW pfnHook;
356} ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
357
358typedef struct _ACMFILTERCHOOSE16
359{
360 DWORD cbStruct;
361 DWORD fdwStyle;
362
363 HWND16 hwndOwner;
364
365 LPWAVEFILTER pwfltr;
366 DWORD cbwfltr;
367
368 LPCSTR pszTitle;
369
370 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
371 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
372 LPSTR pszName;
373 DWORD cchName;
374
375 DWORD fdwEnum;
376 LPWAVEFILTER pwfltrEnum;
377
378 HINSTANCE16 hInstance;
379 LPCSTR pszTemplateName;
380 LPARAM lCustData;
381 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
382} ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
383
384typedef struct _ACMFILTERDETAILSA
385{
386 DWORD cbStruct;
387 DWORD dwFilterIndex;
388 DWORD dwFilterTag;
389 DWORD fdwSupport;
390 PWAVEFILTER pwfltr;
391 DWORD cbwfltr;
392 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
393} ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
394
395typedef struct _ACMFILTERDETAILSW
396{
397 DWORD cbStruct;
398 DWORD dwFilterIndex;
399 DWORD dwFilterTag;
400 DWORD fdwSupport;
401 PWAVEFILTER pwfltr;
402 DWORD cbwfltr;
403 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
404} ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
405
406typedef struct _ACMFILTERDETAILS16
407{
408 DWORD cbStruct;
409 DWORD dwFilterIndex;
410 DWORD dwFilterTag;
411 DWORD fdwSupport;
412 LPWAVEFILTER pwfltr;
413 DWORD cbwfltr;
414 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
415} ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
416
417typedef struct _ACMFILTERTAGDETAILSA
418{
419 DWORD cbStruct;
420 DWORD dwFilterTagIndex;
421 DWORD dwFilterTag;
422 DWORD cbFilterSize;
423 DWORD fdwSupport;
424 DWORD cStandardFilters;
425 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
426} ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
427
428typedef struct _ACMFILTERTAGDETAILSW
429{
430 DWORD cbStruct;
431 DWORD dwFilterTagIndex;
432 DWORD dwFilterTag;
433 DWORD cbFilterSize;
434 DWORD fdwSupport;
435 DWORD cStandardFilters;
436 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
437} ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
438
439typedef struct _ACMFILTERTAGDETAILS16
440{
441 DWORD cbStruct;
442 DWORD dwFilterTagIndex;
443 DWORD dwFilterTag;
444 DWORD cbFilterSize;
445 DWORD fdwSupport;
446 DWORD cStandardFilters;
447 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
448} ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
449
450typedef struct _ACMFORMATCHOOSEA
451{
452 DWORD cbStruct;
453 DWORD fdwStyle;
454
455 HWND hwndOwner;
456
457 PWAVEFORMATEX pwfx;
458 DWORD cbwfx;
459 LPCSTR pszTitle;
460
461 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
462 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
463
464 LPSTR pszName;
465 DWORD cchName;
466
467 DWORD fdwEnum;
468 PWAVEFORMATEX pwfxEnum;
469
470 HINSTANCE hInstance;
471 LPCSTR pszTemplateName;
472 LPARAM lCustData;
473 ACMFORMATCHOOSEHOOKPROCA pfnHook;
474} ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
475
476typedef struct _ACMFORMATCHOOSEW
477{
478 DWORD cbStruct;
479 DWORD fdwStyle;
480
481 HWND hwndOwner;
482
483 PWAVEFORMATEX pwfx;
484 DWORD cbwfx;
485 LPCWSTR pszTitle;
486
487 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
488 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
489
490 LPWSTR pszName;
491 DWORD cchName;
492
493 DWORD fdwEnum;
494 LPWAVEFORMATEX pwfxEnum;
495
496 HINSTANCE hInstance;
497 LPCWSTR pszTemplateName;
498 LPARAM lCustData;
499 ACMFORMATCHOOSEHOOKPROCW pfnHook;
500} ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
501
502typedef struct _ACMFORMATCHOOSE16
503{
504 DWORD cbStruct;
505 DWORD fdwStyle;
506
507 HWND16 hwndOwner;
508
509 LPWAVEFORMATEX pwfx;
510 DWORD cbwfx;
511 LPCSTR pszTitle;
512
513 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
514 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
515
516 LPSTR pszName;
517 DWORD cchName;
518
519 DWORD fdwEnum;
520 LPWAVEFORMATEX pwfxEnum;
521
522 HINSTANCE16 hInstance;
523 LPCSTR pszTemplateName;
524 LPARAM lCustData;
525 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
526} ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
527
528typedef struct _ACMFORMATDETAILSA
529{
530 DWORD cbStruct;
531 DWORD dwFormatIndex;
532 DWORD dwFormatTag;
533 DWORD fdwSupport;
534 PWAVEFORMATEX pwfx;
535 DWORD cbwfx;
536 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
537} ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
538
539typedef struct _ACMFORMATDETAILSW
540{
541 DWORD cbStruct;
542 DWORD dwFormatIndex;
543 DWORD dwFormatTag;
544 DWORD fdwSupport;
545 PWAVEFORMATEX pwfx;
546 DWORD cbwfx;
547 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
548} ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
549
550typedef struct _ACMFORMATDETAILS16
551{
552 DWORD cbStruct;
553 DWORD dwFormatIndex;
554 DWORD dwFormatTag;
555 DWORD fdwSupport;
556 LPWAVEFORMATEX pwfx;
557 DWORD cbwfx;
558 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
559} ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
560
561typedef struct _ACMFORMATTAGDETAILSA
562{
563 DWORD cbStruct;
564 DWORD dwFormatTagIndex;
565 DWORD dwFormatTag;
566 DWORD cbFormatSize;
567 DWORD fdwSupport;
568 DWORD cStandardFormats;
569 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
570} ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
571
572typedef struct _ACMFORMATTAGDETAILSW
573{
574 DWORD cbStruct;
575 DWORD dwFormatTagIndex;
576 DWORD dwFormatTag;
577 DWORD cbFormatSize;
578 DWORD fdwSupport;
579 DWORD cStandardFormats;
580 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
581} ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
582
583typedef struct _ACMFORMATTAGDETAILS16
584{
585 DWORD cbStruct;
586 DWORD dwFormatTagIndex;
587 DWORD dwFormatTag;
588 DWORD cbFormatSize;
589 DWORD fdwSupport;
590 DWORD cStandardFormats;
591 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
592} ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
593
594typedef struct _ACMSTREAMHEADER
595{
596 DWORD cbStruct;
597 DWORD fdwStatus;
598 DWORD dwUser;
599 LPBYTE pbSrc;
600 DWORD cbSrcLength;
601 DWORD cbSrcLengthUsed;
602 DWORD dwSrcUser;
603 LPBYTE pbDst;
604 DWORD cbDstLength;
605 DWORD cbDstLengthUsed;
606 DWORD dwDstUser;
607 DWORD dwReservedDriver[10];
608} ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
609 ACMSTREAMHEADER, *PACMSTREAMHEADER;
610
611/***********************************************************************
612 * Callbacks 2
613 */
614
615typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
616 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
617 DWORD dwInstance, DWORD fdwSupport
618);
619
620typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
621 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
622 DWORD dwInstance, DWORD fdwSupport
623);
624
625typedef BOOL16 (CALLBACK *ACMFILTERENUMCB16)(
626 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
627 DWORD dwInstance, DWORD fdwSupport
628);
629
630typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
631 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
632 DWORD dwInstance, DWORD fdwSupport
633);
634
635typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
636 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
637 DWORD dwInstance, DWORD fdwSupport
638);
639
640typedef BOOL16 (CALLBACK *ACMFILTERTAGENUMCB16)(
641 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
642 DWORD dwInstance, DWORD fdwSupport
643);
644
645typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
646 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
647 DWORD dwInstance, DWORD fdwSupport
648);
649
650typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
651 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
652 DWORD dwInstance, DWORD fdwSupport
653);
654
655typedef BOOL16 (CALLBACK *ACMFORMATENUMCB16)(
656 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
657 DWORD dwInstance, DWORD fdwSupport
658);
659
660typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
661 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
662 DWORD dwInstance, DWORD fdwSupport
663);
664
665typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
666 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
667 DWORD dwInstance, DWORD fdwSupport
668);
669
670typedef BOOL16 (CALLBACK *ACMFORMATTAGENUMCB16)(
671 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
672 DWORD dwInstance, DWORD fdwSupport
673);
674
675/***********************************************************************
676 * Functions - Win16
677 */
678
679DWORD WINAPI acmGetVersion16(
680);
681MMRESULT16 WINAPI acmMetrics16(
682 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
683);
684MMRESULT16 WINAPI acmDriverEnum16(
685 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
686);
687MMRESULT16 WINAPI acmDriverDetails16(
688 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
689);
690MMRESULT16 WINAPI acmDriverAdd16(
691 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
692 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
693);
694MMRESULT16 WINAPI acmDriverRemove16(
695 HACMDRIVERID16 hadid, DWORD fdwRemove
696);
697MMRESULT16 WINAPI acmDriverOpen16(
698 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
699);
700MMRESULT16 WINAPI acmDriverClose16(
701 HACMDRIVER16 had, DWORD fdwClose
702);
703LRESULT WINAPI acmDriverMessage16(
704 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
705);
706MMRESULT16 WINAPI acmDriverID16(
707 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
708);
709MMRESULT16 WINAPI acmDriverPriority16(
710 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
711);
712MMRESULT16 WINAPI acmFormatTagDetails16(
713 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
714);
715MMRESULT16 WINAPI acmFormatTagEnum16(
716 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
717 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
718);
719MMRESULT16 WINAPI acmFormatChoose16(
720 LPACMFORMATCHOOSE16 pafmtc
721);
722MMRESULT16 WINAPI acmFormatDetails16(
723 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
724);
725MMRESULT16 WINAPI acmFormatEnum16(
726 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
727 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
728);
729MMRESULT16 WINAPI acmFormatSuggest16(
730 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
731 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
732);
733MMRESULT16 WINAPI acmFilterTagDetails16(
734 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
735);
736MMRESULT16 WINAPI acmFilterTagEnum16(
737 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
738 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
739);
740MMRESULT16 WINAPI acmFilterChoose16(
741 LPACMFILTERCHOOSE16 pafltrc
742);
743MMRESULT16 WINAPI acmFilterDetails16(
744 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
745);
746MMRESULT16 WINAPI acmFilterEnum16(
747 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
748 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
749);
750MMRESULT16 WINAPI acmStreamOpen16(
751 LPHACMSTREAM16 phas, HACMDRIVER16 had,
752 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
753 LPWAVEFILTER pwfltr, DWORD dwCallback,
754 DWORD dwInstance, DWORD fdwOpen
755);
756MMRESULT16 WINAPI acmStreamClose16(
757 HACMSTREAM16 has, DWORD fdwClose
758);
759MMRESULT16 WINAPI acmStreamSize16(
760 HACMSTREAM16 has, DWORD cbInput,
761 LPDWORD pdwOutputBytes, DWORD fdwSize
762);
763MMRESULT16 WINAPI acmStreamConvert16(
764 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
765);
766MMRESULT16 WINAPI acmStreamReset16(
767 HACMSTREAM16 has, DWORD fdwReset
768);
769MMRESULT16 WINAPI acmStreamPrepareHeader16(
770 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
771);
772MMRESULT16 WINAPI acmStreamUnprepareHeader16(
773 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
774);
775
776/***********************************************************************
777 * Functions - Win32
778 */
779
780MMRESULT WINAPI acmDriverAddA(
781 PHACMDRIVERID phadid, HINSTANCE hinstModule,
782 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
783);
784MMRESULT WINAPI acmDriverAddW(
785 PHACMDRIVERID phadid, HINSTANCE hinstModule,
786 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
787);
788MMRESULT WINAPI acmDriverClose(
789 HACMDRIVER had, DWORD fdwClose
790);
791MMRESULT WINAPI acmDriverDetailsA(
792 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
793);
794MMRESULT WINAPI acmDriverDetailsW(
795 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
796);
797MMRESULT WINAPI acmDriverEnum(
798 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
799);
800MMRESULT WINAPI acmDriverID(
801 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
802);
803LRESULT WINAPI acmDriverMessage(
804 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
805);
806MMRESULT WINAPI acmDriverOpen(
807 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
808);
809MMRESULT WINAPI acmDriverPriority(
810 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
811);
812MMRESULT WINAPI acmDriverRemove(
813 HACMDRIVERID hadid, DWORD fdwRemove
814);
815MMRESULT WINAPI acmFilterChooseA(
816 PACMFILTERCHOOSEA pafltrc
817);
818MMRESULT WINAPI acmFilterChooseW(
819 PACMFILTERCHOOSEW pafltrc
820);
821MMRESULT WINAPI acmFilterDetailsA(
822 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
823);
824MMRESULT WINAPI acmFilterDetailsW(
825 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
826);
827MMRESULT WINAPI acmFilterEnumA(
828 HACMDRIVER had, PACMFILTERDETAILSA pafd,
829 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
830);
831MMRESULT WINAPI acmFilterEnumW(
832 HACMDRIVER had, PACMFILTERDETAILSW pafd,
833 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
834);
835MMRESULT WINAPI acmFilterTagDetailsA(
836 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
837);
838MMRESULT WINAPI acmFilterTagDetailsW(
839 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
840);
841MMRESULT WINAPI acmFilterTagEnumA(
842 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
843 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
844);
845MMRESULT WINAPI acmFilterTagEnumW(
846 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
847 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
848);
849MMRESULT WINAPI acmFormatChooseA(
850 PACMFORMATCHOOSEA pafmtc
851);
852MMRESULT WINAPI acmFormatChooseW(
853 PACMFORMATCHOOSEW pafmtc
854);
855MMRESULT WINAPI acmFormatDetailsA(
856 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
857);
858MMRESULT WINAPI acmFormatDetailsW(
859 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
860);
861MMRESULT WINAPI acmFormatEnumA(
862 HACMDRIVER had, PACMFORMATDETAILSA pafd,
863 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
864);
865MMRESULT WINAPI acmFormatEnumW(
866 HACMDRIVER had, PACMFORMATDETAILSW pafd,
867 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
868);
869MMRESULT WINAPI acmFormatSuggest(
870 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
871 DWORD cbwfxDst, DWORD fdwSuggest
872);
873MMRESULT WINAPI acmFormatTagDetailsA(
874 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
875);
876MMRESULT WINAPI acmFormatTagDetailsW(
877 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
878);
879MMRESULT WINAPI acmFormatTagEnumA(
880 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
881 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
882);
883MMRESULT WINAPI acmFormatTagEnumW(
884 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
885 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
886);
887DWORD WINAPI acmGetVersion(
888);
889MMRESULT WINAPI acmMetrics(
890 HACMOBJ hao, UINT uMetric, LPVOID pMetric
891);
892MMRESULT WINAPI acmStreamClose(
893 HACMSTREAM has, DWORD fdwClose
894);
895MMRESULT WINAPI acmStreamConvert(
896 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
897);
898MMRESULT WINAPI acmStreamMessage(
899 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
900);
901MMRESULT WINAPI acmStreamOpen(
902 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
903 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
904 DWORD dwInstance, DWORD fdwOpen
905);
906MMRESULT WINAPI acmStreamPrepareHeader(
907 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
908);
909MMRESULT WINAPI acmStreamReset(
910 HACMSTREAM has, DWORD fdwReset
911);
912MMRESULT WINAPI acmStreamSize(
913 HACMSTREAM has, DWORD cbInput,
914 LPDWORD pdwOutputBytes, DWORD fdwSize
915);
916MMRESULT WINAPI acmStreamUnprepareHeader(
917 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
918);
919
920/***********************************************************************
921 * Wine specific - Win32
922 */
923typedef struct _WINE_ACMBUILTINDRIVER
924{
925 LPSTR pszDriverAlias;
926 DRIVERPROC pfnDriverProc;
927} WINE_ACMBUILTINDRIVER, *PWINE_ACMBUILTINDRIVER;
928
929typedef struct _WINE_ACMLOCALDRIVER
930{
931 DRIVERPROC pfnDriverProc;
932} WINE_ACMLOCALDRIVER, *PWINE_ACMLOCALDRIVER;
933
934typedef struct _WINE_ACMDRIVERID *PWINE_ACMDRIVERID;
935
936typedef struct _WINE_ACMOBJ
937{
938 PWINE_ACMDRIVERID pACMDriverID;
939} WINE_ACMOBJ, *PWINE_ACMOBJ;
940
941typedef struct _WINE_ACMDRIVER
942{
943 WINE_ACMOBJ obj;
944 HDRVR hDrvr;
945} WINE_ACMDRIVER, *PWINE_ACMDRIVER;
946
947typedef struct _WINE_ACMSTREAM
948{
949 WINE_ACMOBJ obj;
950 /* FIME: More fields needed */
951} WINE_ACMSTREAM, *PWINE_ACMSTREAM;
952
953typedef struct _WINE_ACMDRIVERID
954{
955 LPSTR pszDriverAlias;
956 LPSTR pszFileName;
957 PWINE_ACMLOCALDRIVER pACMLocalDriver;
958 BOOL bEnabled;
959 PWINE_ACMDRIVER pACMDriver; /* NULL if not open */
960 PWINE_ACMDRIVERID pNextACMDriverID;
961 PWINE_ACMDRIVERID pPreviousACMDriverID;
962} WINE_ACMDRIVERID;
963
964/* From builtin.c */
965extern WINE_ACMBUILTINDRIVER MSACM_BuiltinDrivers[];
966
967/* From interal.c */
968extern HANDLE MSACM_hHeap;
969extern PWINE_ACMDRIVERID MSACM_pFirstACMDriverID;
970extern PWINE_ACMDRIVERID MSACM_pLastACMDriverID;
971PWINE_ACMDRIVERID MSACM_RegisterDriver(
972 LPSTR pszDriverAlias, LPSTR pszFileName,
973 PWINE_ACMLOCALDRIVER pLocalDriver);
974void MSACM_RegisterAllDrivers();
975PWINE_ACMDRIVERID MSACM_UnregisterDriver(PWINE_ACMDRIVERID p);
976void MSACM_UnregisterAllDrivers();
977PWINE_ACMDRIVERID MSACM_GetDriverID(HACMDRIVERID hDriverID);
978PWINE_ACMDRIVER MSACM_GetDriver(HACMDRIVER hDriver);
979PWINE_ACMOBJ MSACM_GetObj(HACMOBJ hObj);
980HDRVR MSACM_OpenDriverProc(DRIVERPROC pfnDriverProc);
981
982#endif /* __WINE_MSACM_H */
983
984
Note: See TracBrowser for help on using the repository browser.