Use appropriate charset if facenames of font is known.
[wine.git] / include / msacm.h
blob8e909ad5cb84c12c23bffb1dd145010e13155a28
1 /*
2 * msacm.h - Declarations for MSACM
3 */
5 #ifndef __WINE_MSACM_H
6 #define __WINE_MSACM_H
8 #include "windef.h"
9 #include "mmsystem.h"
10 #include "mmreg.h"
12 #ifdef __cplusplus
13 extern "C" {
14 #endif /* defined(__cplusplus) */
16 /***********************************************************************
17 * Defines/Enums
20 #define ACMERR_BASE 512
21 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
22 #define ACMERR_BUSY (ACMERR_BASE + 1)
23 #define ACMERR_UNPREPARED (ACMERR_BASE + 2)
24 #define ACMERR_CANCELED (ACMERR_BASE + 3)
26 #define MM_ACM_OPEN MM_STREAM_OPEN
27 #define MM_ACM_CLOSE MM_STREAM_CLOSE
28 #define MM_ACM_DONE MM_STREAM_DONE
30 #define ACM_DRIVERADDF_FUNCTION 0x00000003L
31 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
32 #define ACM_DRIVERADDF_TYPEMASK 0x00000007L
33 #define ACM_DRIVERADDF_LOCAL 0x00000000L
34 #define ACM_DRIVERADDF_GLOBAL 0x00000008L
36 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
37 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
38 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
39 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
40 #define ACMDRIVERDETAILS_FEATURES_CHARS 512
42 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
43 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
45 #define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
46 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
47 #define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
48 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
49 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
50 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
51 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
53 #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
54 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
56 #define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
57 #define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
58 #define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
59 #define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
60 #define ACM_DRIVERPRIORITYF_END 0x00020000L
61 #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
63 #define MM_ACM_FILTERCHOOSE 0x8000
65 #define FILTERCHOOSE_MESSAGE 0
66 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
67 #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
68 #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
70 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
71 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
72 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
73 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
74 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
75 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
77 #define ACMFILTERDETAILS_FILTER_CHARS 128
79 #define ACM_FILTERDETAILSF_INDEX 0x00000000L
80 #define ACM_FILTERDETAILSF_FILTER 0x00000001L
81 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
83 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
85 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
86 #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
87 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
88 #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
90 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
92 #define ACMHELPMSGSTRINGA "acmchoose_help"
93 #define ACMHELPMSGSTRINGW L"acmchoose_help"
94 #define ACMHELPMSGSTRING16 "acmchoose_help"
96 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
97 #define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
98 #define ACMHELPMSGCONTEXTMENU16 "acmchoose_contextmenu"
100 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
101 #define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
102 #define ACMHELPMSGCONTEXTHELP16 "acmchoose_contexthelp"
104 #define MM_ACM_FORMATCHOOSE 0x8000
106 #define FORMATCHOOSE_MESSAGE 0
107 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
108 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
109 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
111 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
112 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
113 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
114 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
115 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
116 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
118 #define ACMFORMATDETAILS_FORMAT_CHARS 128
120 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
121 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
122 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
124 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
125 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
126 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
127 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
128 #define ACM_FORMATENUMF_CONVERT 0x00100000L
129 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
130 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
131 #define ACM_FORMATENUMF_INPUT 0x00800000L
132 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
134 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
135 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
136 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
137 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
138 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
140 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
142 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
143 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
144 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
145 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
147 #define ACM_METRIC_COUNT_DRIVERS 1
148 #define ACM_METRIC_COUNT_CODECS 2
149 #define ACM_METRIC_COUNT_CONVERTERS 3
150 #define ACM_METRIC_COUNT_FILTERS 4
151 #define ACM_METRIC_COUNT_DISABLED 5
152 #define ACM_METRIC_COUNT_HARDWARE 6
153 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
154 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
155 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
156 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
157 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
158 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
159 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
160 #define ACM_METRIC_MAX_SIZE_FORMAT 50
161 #define ACM_METRIC_MAX_SIZE_FILTER 51
162 #define ACM_METRIC_DRIVER_SUPPORT 100
163 #define ACM_METRIC_DRIVER_PRIORITY 101
165 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
166 #define ACM_STREAMCONVERTF_START 0x00000010
167 #define ACM_STREAMCONVERTF_END 0x00000020
169 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
170 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
171 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
173 #define ACM_STREAMOPENF_QUERY 0x00000001
174 #define ACM_STREAMOPENF_ASYNC 0x00000002
175 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
177 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
178 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
179 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
181 #define ACMDM_USER (DRV_USER + 0x0000)
182 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
183 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
185 #define ACMDM_BASE ACMDM_RESERVED_LOW
187 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
189 /***********************************************************************
190 * Callbacks
193 typedef BOOL CALLBACK (*ACMDRIVERENUMCB)(
194 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
197 typedef BOOL16 CALLBACK (*ACMDRIVERENUMCB16)(
198 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
201 typedef UINT CALLBACK (*ACMFILTERCHOOSEHOOKPROCA)(
202 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
205 typedef UINT CALLBACK (*ACMFILTERCHOOSEHOOKPROCW)(
206 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
208 #define ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC)
210 typedef UINT CALLBACK (*ACMFILTERCHOOSEHOOKPROC16)(
211 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
214 typedef UINT CALLBACK (*ACMFORMATCHOOSEHOOKPROCA)(
215 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
218 typedef UINT CALLBACK (*ACMFORMATCHOOSEHOOKPROCW)(
219 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
221 #define ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
223 typedef UINT16 CALLBACK (*ACMFORMATCHOOSEHOOKPROC16)(
224 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
227 /***********************************************************************
228 * Structures
231 typedef struct _ACMDRIVERDETAILSA
233 DWORD cbStruct;
235 FOURCC fccType;
236 FOURCC fccComp;
238 WORD wMid;
239 WORD wPid;
241 DWORD vdwACM;
242 DWORD vdwDriver;
244 DWORD fdwSupport;
245 DWORD cFormatTags;
246 DWORD cFilterTags;
248 HICON hicon;
250 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
251 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
252 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
253 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
254 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
255 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
257 typedef struct _ACMDRIVERDETAILSW
259 DWORD cbStruct;
261 FOURCC fccType;
262 FOURCC fccComp;
264 WORD wMid;
265 WORD wPid;
267 DWORD vdwACM;
268 DWORD vdwDriver;
270 DWORD fdwSupport;
271 DWORD cFormatTags;
272 DWORD cFilterTags;
274 HICON hicon;
276 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
277 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
278 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
279 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
280 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
281 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
283 DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS);
284 DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS);
286 typedef struct _ACMDRIVERDETAILS16
288 DWORD cbStruct;
290 FOURCC fccType;
291 FOURCC fccComp;
293 WORD wMid;
294 WORD wPid;
296 DWORD vdwACM;
297 DWORD vdwDriver;
299 DWORD fdwSupport;
300 DWORD cFormatTags;
301 DWORD cFilterTags;
303 HICON16 hicon;
305 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
306 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
307 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
308 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
309 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
310 } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
312 typedef struct _ACMFILTERCHOOSEA
314 DWORD cbStruct;
315 DWORD fdwStyle;
317 HWND hwndOwner;
319 PWAVEFILTER pwfltr;
320 DWORD cbwfltr;
322 LPCSTR pszTitle;
324 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
325 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
326 LPSTR pszName;
327 DWORD cchName;
329 DWORD fdwEnum;
330 PWAVEFILTER pwfltrEnum;
332 HINSTANCE hInstance;
333 LPCSTR pszTemplateName;
334 LPARAM lCustData;
335 ACMFILTERCHOOSEHOOKPROCA pfnHook;
336 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
338 typedef struct _ACMFILTERCHOOSEW
340 DWORD cbStruct;
341 DWORD fdwStyle;
343 HWND hwndOwner;
345 PWAVEFILTER pwfltr;
346 DWORD cbwfltr;
348 LPCWSTR pszTitle;
350 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
351 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
352 LPWSTR pszName;
353 DWORD cchName;
355 DWORD fdwEnum;
356 PWAVEFILTER pwfltrEnum;
358 HINSTANCE hInstance;
359 LPCWSTR pszTemplateName;
360 LPARAM lCustData;
361 ACMFILTERCHOOSEHOOKPROCW pfnHook;
362 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
364 DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE);
365 DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE);
367 typedef struct _ACMFILTERCHOOSE16
369 DWORD cbStruct;
370 DWORD fdwStyle;
372 HWND16 hwndOwner;
374 LPWAVEFILTER pwfltr;
375 DWORD cbwfltr;
377 LPCSTR pszTitle;
379 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
380 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
381 LPSTR pszName;
382 DWORD cchName;
384 DWORD fdwEnum;
385 LPWAVEFILTER pwfltrEnum;
387 HINSTANCE16 hInstance;
388 LPCSTR pszTemplateName;
389 LPARAM lCustData;
390 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
391 } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
393 typedef struct _ACMFILTERDETAILSA
395 DWORD cbStruct;
396 DWORD dwFilterIndex;
397 DWORD dwFilterTag;
398 DWORD fdwSupport;
399 PWAVEFILTER pwfltr;
400 DWORD cbwfltr;
401 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
402 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
404 typedef struct _ACMFILTERDETAILSW
406 DWORD cbStruct;
407 DWORD dwFilterIndex;
408 DWORD dwFilterTag;
409 DWORD fdwSupport;
410 PWAVEFILTER pwfltr;
411 DWORD cbwfltr;
412 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
413 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
415 DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS);
416 DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS);
418 typedef struct _ACMFILTERDETAILS16
420 DWORD cbStruct;
421 DWORD dwFilterIndex;
422 DWORD dwFilterTag;
423 DWORD fdwSupport;
424 LPWAVEFILTER pwfltr;
425 DWORD cbwfltr;
426 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
427 } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
429 typedef struct _ACMFILTERTAGDETAILSA
431 DWORD cbStruct;
432 DWORD dwFilterTagIndex;
433 DWORD dwFilterTag;
434 DWORD cbFilterSize;
435 DWORD fdwSupport;
436 DWORD cStandardFilters;
437 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
438 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
440 typedef struct _ACMFILTERTAGDETAILSW
442 DWORD cbStruct;
443 DWORD dwFilterTagIndex;
444 DWORD dwFilterTag;
445 DWORD cbFilterSize;
446 DWORD fdwSupport;
447 DWORD cStandardFilters;
448 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
449 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
451 DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS);
452 DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS);
454 typedef struct _ACMFILTERTAGDETAILS16
456 DWORD cbStruct;
457 DWORD dwFilterTagIndex;
458 DWORD dwFilterTag;
459 DWORD cbFilterSize;
460 DWORD fdwSupport;
461 DWORD cStandardFilters;
462 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
463 } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
465 typedef struct _ACMFORMATCHOOSEA
467 DWORD cbStruct;
468 DWORD fdwStyle;
470 HWND hwndOwner;
472 PWAVEFORMATEX pwfx;
473 DWORD cbwfx;
474 LPCSTR pszTitle;
476 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
477 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
479 LPSTR pszName;
480 DWORD cchName;
482 DWORD fdwEnum;
483 PWAVEFORMATEX pwfxEnum;
485 HINSTANCE hInstance;
486 LPCSTR pszTemplateName;
487 LPARAM lCustData;
488 ACMFORMATCHOOSEHOOKPROCA pfnHook;
489 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
491 typedef struct _ACMFORMATCHOOSEW
493 DWORD cbStruct;
494 DWORD fdwStyle;
496 HWND hwndOwner;
498 PWAVEFORMATEX pwfx;
499 DWORD cbwfx;
500 LPCWSTR pszTitle;
502 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
503 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
505 LPWSTR pszName;
506 DWORD cchName;
508 DWORD fdwEnum;
509 LPWAVEFORMATEX pwfxEnum;
511 HINSTANCE hInstance;
512 LPCWSTR pszTemplateName;
513 LPARAM lCustData;
514 ACMFORMATCHOOSEHOOKPROCW pfnHook;
515 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
517 DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE);
518 DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE);
520 typedef struct _ACMFORMATCHOOSE16
522 DWORD cbStruct;
523 DWORD fdwStyle;
525 HWND16 hwndOwner;
527 LPWAVEFORMATEX pwfx;
528 DWORD cbwfx;
529 LPCSTR pszTitle;
531 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
532 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
534 LPSTR pszName;
535 DWORD cchName;
537 DWORD fdwEnum;
538 LPWAVEFORMATEX pwfxEnum;
540 HINSTANCE16 hInstance;
541 LPCSTR pszTemplateName;
542 LPARAM lCustData;
543 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
544 } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
546 typedef struct _ACMFORMATDETAILSA
548 DWORD cbStruct;
549 DWORD dwFormatIndex;
550 DWORD dwFormatTag;
551 DWORD fdwSupport;
552 PWAVEFORMATEX pwfx;
553 DWORD cbwfx;
554 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
555 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
557 typedef struct _ACMFORMATDETAILSW
559 DWORD cbStruct;
560 DWORD dwFormatIndex;
561 DWORD dwFormatTag;
562 DWORD fdwSupport;
563 PWAVEFORMATEX pwfx;
564 DWORD cbwfx;
565 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
566 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
568 DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS);
569 DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS);
571 typedef struct _ACMFORMATDETAILS16
573 DWORD cbStruct;
574 DWORD dwFormatIndex;
575 DWORD dwFormatTag;
576 DWORD fdwSupport;
577 LPWAVEFORMATEX pwfx;
578 DWORD cbwfx;
579 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
580 } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
582 typedef struct _ACMFORMATTAGDETAILSA
584 DWORD cbStruct;
585 DWORD dwFormatTagIndex;
586 DWORD dwFormatTag;
587 DWORD cbFormatSize;
588 DWORD fdwSupport;
589 DWORD cStandardFormats;
590 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
591 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
593 typedef struct _ACMFORMATTAGDETAILSW
595 DWORD cbStruct;
596 DWORD dwFormatTagIndex;
597 DWORD dwFormatTag;
598 DWORD cbFormatSize;
599 DWORD fdwSupport;
600 DWORD cStandardFormats;
601 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
602 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
604 DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS);
605 DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS);
607 typedef struct _ACMFORMATTAGDETAILS16
609 DWORD cbStruct;
610 DWORD dwFormatTagIndex;
611 DWORD dwFormatTag;
612 DWORD cbFormatSize;
613 DWORD fdwSupport;
614 DWORD cStandardFormats;
615 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
616 } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
618 typedef struct _ACMSTREAMHEADER
620 DWORD cbStruct;
621 DWORD fdwStatus;
622 DWORD dwUser;
623 LPBYTE pbSrc;
624 DWORD cbSrcLength;
625 DWORD cbSrcLengthUsed;
626 DWORD dwSrcUser;
627 LPBYTE pbDst;
628 DWORD cbDstLength;
629 DWORD cbDstLengthUsed;
630 DWORD dwDstUser;
631 DWORD dwReservedDriver[10];
632 } ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
633 ACMSTREAMHEADER, *PACMSTREAMHEADER;
635 /***********************************************************************
636 * Callbacks 2
639 typedef BOOL CALLBACK (*ACMFILTERENUMCBA)(
640 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
641 DWORD dwInstance, DWORD fdwSupport
644 typedef BOOL CALLBACK (*ACMFILTERENUMCBW)(
645 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
646 DWORD dwInstance, DWORD fdwSupport
649 #define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
651 typedef BOOL16 CALLBACK (*ACMFILTERENUMCB16)(
652 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
653 DWORD dwInstance, DWORD fdwSupport
656 typedef BOOL CALLBACK (*ACMFILTERTAGENUMCBA)(
657 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
658 DWORD dwInstance, DWORD fdwSupport
661 typedef BOOL CALLBACK (*ACMFILTERTAGENUMCBW)(
662 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
663 DWORD dwInstance, DWORD fdwSupport
666 #define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
668 typedef BOOL16 CALLBACK (*ACMFILTERTAGENUMCB16)(
669 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
670 DWORD dwInstance, DWORD fdwSupport
673 typedef BOOL CALLBACK (*ACMFORMATENUMCBA)(
674 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
675 DWORD dwInstance, DWORD fdwSupport
678 typedef BOOL CALLBACK (*ACMFORMATENUMCBW)(
679 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
680 DWORD dwInstance, DWORD fdwSupport
683 #define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
685 typedef BOOL16 CALLBACK (*ACMFORMATENUMCB16)(
686 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
687 DWORD dwInstance, DWORD fdwSupport
690 typedef BOOL CALLBACK (*ACMFORMATTAGENUMCBA)(
691 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
692 DWORD dwInstance, DWORD fdwSupport
695 typedef BOOL CALLBACK (*ACMFORMATTAGENUMCBW)(
696 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
697 DWORD dwInstance, DWORD fdwSupport
700 #define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
702 typedef BOOL16 CALLBACK (*ACMFORMATTAGENUMCB16)(
703 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
704 DWORD dwInstance, DWORD fdwSupport
707 /***********************************************************************
708 * Functions - Win16
711 DWORD WINAPI acmGetVersion16(
713 MMRESULT16 WINAPI acmMetrics16(
714 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
716 MMRESULT16 WINAPI acmDriverEnum16(
717 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
719 MMRESULT16 WINAPI acmDriverDetails16(
720 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
722 MMRESULT16 WINAPI acmDriverAdd16(
723 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
724 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
726 MMRESULT16 WINAPI acmDriverRemove16(
727 HACMDRIVERID16 hadid, DWORD fdwRemove
729 MMRESULT16 WINAPI acmDriverOpen16(
730 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
732 MMRESULT16 WINAPI acmDriverClose16(
733 HACMDRIVER16 had, DWORD fdwClose
735 LRESULT WINAPI acmDriverMessage16(
736 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
738 MMRESULT16 WINAPI acmDriverID16(
739 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
741 MMRESULT16 WINAPI acmDriverPriority16(
742 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
744 MMRESULT16 WINAPI acmFormatTagDetails16(
745 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
747 MMRESULT16 WINAPI acmFormatTagEnum16(
748 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
749 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
751 MMRESULT16 WINAPI acmFormatChoose16(
752 LPACMFORMATCHOOSE16 pafmtc
754 MMRESULT16 WINAPI acmFormatDetails16(
755 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
757 MMRESULT16 WINAPI acmFormatEnum16(
758 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
759 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
761 MMRESULT16 WINAPI acmFormatSuggest16(
762 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
763 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
765 MMRESULT16 WINAPI acmFilterTagDetails16(
766 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
768 MMRESULT16 WINAPI acmFilterTagEnum16(
769 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
770 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
772 MMRESULT16 WINAPI acmFilterChoose16(
773 LPACMFILTERCHOOSE16 pafltrc
775 MMRESULT16 WINAPI acmFilterDetails16(
776 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
778 MMRESULT16 WINAPI acmFilterEnum16(
779 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
780 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
782 MMRESULT16 WINAPI acmStreamOpen16(
783 LPHACMSTREAM16 phas, HACMDRIVER16 had,
784 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
785 LPWAVEFILTER pwfltr, DWORD dwCallback,
786 DWORD dwInstance, DWORD fdwOpen
788 MMRESULT16 WINAPI acmStreamClose16(
789 HACMSTREAM16 has, DWORD fdwClose
791 MMRESULT16 WINAPI acmStreamSize16(
792 HACMSTREAM16 has, DWORD cbInput,
793 LPDWORD pdwOutputBytes, DWORD fdwSize
795 MMRESULT16 WINAPI acmStreamConvert16(
796 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
798 MMRESULT16 WINAPI acmStreamReset16(
799 HACMSTREAM16 has, DWORD fdwReset
801 MMRESULT16 WINAPI acmStreamPrepareHeader16(
802 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
804 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
805 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
808 /***********************************************************************
809 * Functions - Win32
812 MMRESULT WINAPI acmDriverAddA(
813 PHACMDRIVERID phadid, HINSTANCE hinstModule,
814 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
816 MMRESULT WINAPI acmDriverAddW(
817 PHACMDRIVERID phadid, HINSTANCE hinstModule,
818 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
820 #define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
822 MMRESULT WINAPI acmDriverClose(
823 HACMDRIVER had, DWORD fdwClose
825 MMRESULT WINAPI acmDriverDetailsA(
826 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
828 MMRESULT WINAPI acmDriverDetailsW(
829 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
831 #define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
833 MMRESULT WINAPI acmDriverEnum(
834 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
836 MMRESULT WINAPI acmDriverID(
837 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
839 LRESULT WINAPI acmDriverMessage(
840 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
842 MMRESULT WINAPI acmDriverOpen(
843 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
845 MMRESULT WINAPI acmDriverPriority(
846 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
848 MMRESULT WINAPI acmDriverRemove(
849 HACMDRIVERID hadid, DWORD fdwRemove
851 MMRESULT WINAPI acmFilterChooseA(
852 PACMFILTERCHOOSEA pafltrc
854 MMRESULT WINAPI acmFilterChooseW(
855 PACMFILTERCHOOSEW pafltrc
857 #define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose)
859 MMRESULT WINAPI acmFilterDetailsA(
860 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
862 MMRESULT WINAPI acmFilterDetailsW(
863 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
865 #define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails)
867 MMRESULT WINAPI acmFilterEnumA(
868 HACMDRIVER had, PACMFILTERDETAILSA pafd,
869 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
871 MMRESULT WINAPI acmFilterEnumW(
872 HACMDRIVER had, PACMFILTERDETAILSW pafd,
873 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
875 #define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum)
877 MMRESULT WINAPI acmFilterTagDetailsA(
878 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
880 MMRESULT WINAPI acmFilterTagDetailsW(
881 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
883 #define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails)
885 MMRESULT WINAPI acmFilterTagEnumA(
886 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
887 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
889 MMRESULT WINAPI acmFilterTagEnumW(
890 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
891 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
893 #define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum)
895 MMRESULT WINAPI acmFormatChooseA(
896 PACMFORMATCHOOSEA pafmtc
898 MMRESULT WINAPI acmFormatChooseW(
899 PACMFORMATCHOOSEW pafmtc
901 #define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose)
903 MMRESULT WINAPI acmFormatDetailsA(
904 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
906 MMRESULT WINAPI acmFormatDetailsW(
907 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
909 #define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails)
911 MMRESULT WINAPI acmFormatEnumA(
912 HACMDRIVER had, PACMFORMATDETAILSA pafd,
913 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
915 MMRESULT WINAPI acmFormatEnumW(
916 HACMDRIVER had, PACMFORMATDETAILSW pafd,
917 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
919 #define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
921 MMRESULT WINAPI acmFormatSuggest(
922 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
923 DWORD cbwfxDst, DWORD fdwSuggest
925 MMRESULT WINAPI acmFormatTagDetailsA(
926 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
928 MMRESULT WINAPI acmFormatTagDetailsW(
929 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
931 #define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails)
933 MMRESULT WINAPI acmFormatTagEnumA(
934 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
935 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
937 MMRESULT WINAPI acmFormatTagEnumW(
938 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
939 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
941 #define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
943 DWORD WINAPI acmGetVersion(
945 MMRESULT WINAPI acmMetrics(
946 HACMOBJ hao, UINT uMetric, LPVOID pMetric
948 MMRESULT WINAPI acmStreamClose(
949 HACMSTREAM has, DWORD fdwClose
951 MMRESULT WINAPI acmStreamConvert(
952 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
954 MMRESULT WINAPI acmStreamMessage(
955 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
957 MMRESULT WINAPI acmStreamOpen(
958 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
959 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
960 DWORD dwInstance, DWORD fdwOpen
962 MMRESULT WINAPI acmStreamPrepareHeader(
963 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
965 MMRESULT WINAPI acmStreamReset(
966 HACMSTREAM has, DWORD fdwReset
968 MMRESULT WINAPI acmStreamSize(
969 HACMSTREAM has, DWORD cbInput,
970 LPDWORD pdwOutputBytes, DWORD fdwSize
972 MMRESULT WINAPI acmStreamUnprepareHeader(
973 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
976 #ifdef __cplusplus
977 } /* extern "C" */
978 #endif /* defined(__cplusplus) */
980 #endif /* __WINE_MSACM_H */