Extended __wine_enter_vm86 to handle pending interrupts.
[wine/multimedia.git] / include / msacm.h
blobdb2dbe68069a0d3cd6c5da9fe08dd771e04a414c
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 #define ACMAPI WINAPI
18 /***********************************************************************
19 * Defines/Enums
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)
27 #define MM_ACM_OPEN MM_STREAM_OPEN
28 #define MM_ACM_CLOSE MM_STREAM_CLOSE
29 #define MM_ACM_DONE MM_STREAM_DONE
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
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
43 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
44 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
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
54 #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
55 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
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
64 #define MM_ACM_FILTERCHOOSE 0x8000
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)
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
78 #define ACMFILTERDETAILS_FILTER_CHARS 128
80 #define ACM_FILTERDETAILSF_INDEX 0x00000000L
81 #define ACM_FILTERDETAILSF_FILTER 0x00000001L
82 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
84 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
86 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
87 #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
88 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
89 #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
91 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
93 #define ACMHELPMSGSTRINGA "acmchoose_help"
94 static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
95 'c','h','o','o','s','e','_','h','e','l','p',0 };
96 #define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING)
98 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
99 static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
100 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 };
101 #define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU)
103 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
104 static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m',
105 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 };
106 #define ACMHELPMSGCONTEXTHELP WINELIB_NAME_AW(ACMHELPMSGCONTEXTHELP)
108 #define MM_ACM_FORMATCHOOSE 0x8000
110 #define FORMATCHOOSE_MESSAGE 0
111 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
112 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
113 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
115 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
116 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
117 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
118 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
119 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
120 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
122 #define ACMFORMATDETAILS_FORMAT_CHARS 128
124 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
125 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
126 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
128 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
129 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
130 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
131 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
132 #define ACM_FORMATENUMF_CONVERT 0x00100000L
133 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
134 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
135 #define ACM_FORMATENUMF_INPUT 0x00800000L
136 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
138 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
139 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
140 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
141 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
142 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
144 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
146 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
147 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
148 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
149 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
151 #define ACM_METRIC_COUNT_DRIVERS 1
152 #define ACM_METRIC_COUNT_CODECS 2
153 #define ACM_METRIC_COUNT_CONVERTERS 3
154 #define ACM_METRIC_COUNT_FILTERS 4
155 #define ACM_METRIC_COUNT_DISABLED 5
156 #define ACM_METRIC_COUNT_HARDWARE 6
157 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
158 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
159 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
160 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
161 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
162 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
163 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
164 #define ACM_METRIC_MAX_SIZE_FORMAT 50
165 #define ACM_METRIC_MAX_SIZE_FILTER 51
166 #define ACM_METRIC_DRIVER_SUPPORT 100
167 #define ACM_METRIC_DRIVER_PRIORITY 101
169 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
170 #define ACM_STREAMCONVERTF_START 0x00000010
171 #define ACM_STREAMCONVERTF_END 0x00000020
173 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
174 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
175 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
177 #define ACM_STREAMOPENF_QUERY 0x00000001
178 #define ACM_STREAMOPENF_ASYNC 0x00000002
179 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
181 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
182 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
183 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
185 #define ACMDM_USER (DRV_USER + 0x0000)
186 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
187 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
189 #define ACMDM_BASE ACMDM_RESERVED_LOW
191 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
193 /***********************************************************************
194 * Callbacks
197 typedef BOOL CALLBACK (*ACMDRIVERENUMCB)(
198 HACMDRIVERID 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 (*ACMFORMATCHOOSEHOOKPROCA)(
211 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
214 typedef UINT CALLBACK (*ACMFORMATCHOOSEHOOKPROCW)(
215 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
217 #define ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
219 /***********************************************************************
220 * Structures
223 typedef struct _ACMDRIVERDETAILSA
225 DWORD cbStruct;
227 FOURCC fccType;
228 FOURCC fccComp;
230 WORD wMid;
231 WORD wPid;
233 DWORD vdwACM;
234 DWORD vdwDriver;
236 DWORD fdwSupport;
237 DWORD cFormatTags;
238 DWORD cFilterTags;
240 HICON hicon;
242 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
243 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
244 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
245 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
246 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
247 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
249 typedef struct _ACMDRIVERDETAILSW
251 DWORD cbStruct;
253 FOURCC fccType;
254 FOURCC fccComp;
256 WORD wMid;
257 WORD wPid;
259 DWORD vdwACM;
260 DWORD vdwDriver;
262 DWORD fdwSupport;
263 DWORD cFormatTags;
264 DWORD cFilterTags;
266 HICON hicon;
268 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
269 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
270 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
271 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
272 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
273 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
275 DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS)
276 DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS)
277 DECL_WINELIB_TYPE_AW(LPACMDRIVERDETAILS)
279 typedef struct _ACMFILTERCHOOSEA
281 DWORD cbStruct;
282 DWORD fdwStyle;
284 HWND hwndOwner;
286 PWAVEFILTER pwfltr;
287 DWORD cbwfltr;
289 LPCSTR pszTitle;
291 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
292 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
293 LPSTR pszName;
294 DWORD cchName;
296 DWORD fdwEnum;
297 PWAVEFILTER pwfltrEnum;
299 HINSTANCE hInstance;
300 LPCSTR pszTemplateName;
301 LPARAM lCustData;
302 ACMFILTERCHOOSEHOOKPROCA pfnHook;
303 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA, *LPACMFILTERCHOOSEA;
305 typedef struct _ACMFILTERCHOOSEW
307 DWORD cbStruct;
308 DWORD fdwStyle;
310 HWND hwndOwner;
312 PWAVEFILTER pwfltr;
313 DWORD cbwfltr;
315 LPCWSTR pszTitle;
317 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
318 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
319 LPWSTR pszName;
320 DWORD cchName;
322 DWORD fdwEnum;
323 PWAVEFILTER pwfltrEnum;
325 HINSTANCE hInstance;
326 LPCWSTR pszTemplateName;
327 LPARAM lCustData;
328 ACMFILTERCHOOSEHOOKPROCW pfnHook;
329 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW, *LPACMFILTERCHOOSEW;
331 DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE)
332 DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE)
333 DECL_WINELIB_TYPE_AW(LPACMFILTERCHOOSE)
335 typedef struct _ACMFILTERDETAILSA
337 DWORD cbStruct;
338 DWORD dwFilterIndex;
339 DWORD dwFilterTag;
340 DWORD fdwSupport;
341 PWAVEFILTER pwfltr;
342 DWORD cbwfltr;
343 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
344 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA, *LPACMFILTERDETAILSA;
346 typedef struct _ACMFILTERDETAILSW
348 DWORD cbStruct;
349 DWORD dwFilterIndex;
350 DWORD dwFilterTag;
351 DWORD fdwSupport;
352 PWAVEFILTER pwfltr;
353 DWORD cbwfltr;
354 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
355 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW, *LPACMFILTERDETAILSW;
357 DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS)
358 DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS)
359 DECL_WINELIB_TYPE_AW(LPACMFILTERDETAILS)
361 typedef struct _ACMFILTERTAGDETAILSA
363 DWORD cbStruct;
364 DWORD dwFilterTagIndex;
365 DWORD dwFilterTag;
366 DWORD cbFilterSize;
367 DWORD fdwSupport;
368 DWORD cStandardFilters;
369 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
370 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA, *LPACMFILTERTAGDETAILSA;
372 typedef struct _ACMFILTERTAGDETAILSW
374 DWORD cbStruct;
375 DWORD dwFilterTagIndex;
376 DWORD dwFilterTag;
377 DWORD cbFilterSize;
378 DWORD fdwSupport;
379 DWORD cStandardFilters;
380 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
381 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW, *LPACMFILTERTAGDETAILSW;
383 DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS)
384 DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS)
385 DECL_WINELIB_TYPE_AW(LPACMFILTERTAGDETAILS)
387 typedef struct _ACMFORMATCHOOSEA
389 DWORD cbStruct;
390 DWORD fdwStyle;
392 HWND hwndOwner;
394 PWAVEFORMATEX pwfx;
395 DWORD cbwfx;
396 LPCSTR pszTitle;
398 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
399 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
401 LPSTR pszName;
402 DWORD cchName;
404 DWORD fdwEnum;
405 PWAVEFORMATEX pwfxEnum;
407 HINSTANCE hInstance;
408 LPCSTR pszTemplateName;
409 LPARAM lCustData;
410 ACMFORMATCHOOSEHOOKPROCA pfnHook;
411 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA, *LPACMFORMATCHOOSEA;
413 typedef struct _ACMFORMATCHOOSEW
415 DWORD cbStruct;
416 DWORD fdwStyle;
418 HWND hwndOwner;
420 PWAVEFORMATEX pwfx;
421 DWORD cbwfx;
422 LPCWSTR pszTitle;
424 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
425 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
427 LPWSTR pszName;
428 DWORD cchName;
430 DWORD fdwEnum;
431 LPWAVEFORMATEX pwfxEnum;
433 HINSTANCE hInstance;
434 LPCWSTR pszTemplateName;
435 LPARAM lCustData;
436 ACMFORMATCHOOSEHOOKPROCW pfnHook;
437 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW, *LPACMFORMATCHOOSEW;
439 DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE)
440 DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE)
441 DECL_WINELIB_TYPE_AW(LPACMFORMATCHOOSE)
443 typedef struct _ACMFORMATDETAILSA
445 DWORD cbStruct;
446 DWORD dwFormatIndex;
447 DWORD dwFormatTag;
448 DWORD fdwSupport;
449 PWAVEFORMATEX pwfx;
450 DWORD cbwfx;
451 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
452 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
454 typedef struct _ACMFORMATDETAILSW
456 DWORD cbStruct;
457 DWORD dwFormatIndex;
458 DWORD dwFormatTag;
459 DWORD fdwSupport;
460 PWAVEFORMATEX pwfx;
461 DWORD cbwfx;
462 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
463 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
465 DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS)
466 DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS)
467 DECL_WINELIB_TYPE_AW(LPACMFORMATDETAILS)
469 typedef struct _ACMFORMATTAGDETAILSA
471 DWORD cbStruct;
472 DWORD dwFormatTagIndex;
473 DWORD dwFormatTag;
474 DWORD cbFormatSize;
475 DWORD fdwSupport;
476 DWORD cStandardFormats;
477 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
478 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
480 typedef struct _ACMFORMATTAGDETAILSW
482 DWORD cbStruct;
483 DWORD dwFormatTagIndex;
484 DWORD dwFormatTag;
485 DWORD cbFormatSize;
486 DWORD fdwSupport;
487 DWORD cStandardFormats;
488 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
489 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
491 DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS)
492 DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS)
493 DECL_WINELIB_TYPE_AW(LPACMFORMATTAGDETAILS)
495 typedef struct _ACMSTREAMHEADER
497 DWORD cbStruct;
498 DWORD fdwStatus;
499 DWORD dwUser;
500 LPBYTE pbSrc;
501 DWORD cbSrcLength;
502 DWORD cbSrcLengthUsed;
503 DWORD dwSrcUser;
504 LPBYTE pbDst;
505 DWORD cbDstLength;
506 DWORD cbDstLengthUsed;
507 DWORD dwDstUser;
508 DWORD dwReservedDriver[10];
509 } ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER;
511 /***********************************************************************
512 * Callbacks 2
515 typedef BOOL CALLBACK (*ACMFILTERENUMCBA)(
516 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
517 DWORD dwInstance, DWORD fdwSupport
520 typedef BOOL CALLBACK (*ACMFILTERENUMCBW)(
521 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
522 DWORD dwInstance, DWORD fdwSupport
525 #define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
527 typedef BOOL CALLBACK (*ACMFILTERTAGENUMCBA)(
528 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
529 DWORD dwInstance, DWORD fdwSupport
532 typedef BOOL CALLBACK (*ACMFILTERTAGENUMCBW)(
533 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
534 DWORD dwInstance, DWORD fdwSupport
537 #define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
539 typedef BOOL CALLBACK (*ACMFORMATENUMCBA)(
540 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
541 DWORD dwInstance, DWORD fdwSupport
544 typedef BOOL CALLBACK (*ACMFORMATENUMCBW)(
545 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
546 DWORD dwInstance, DWORD fdwSupport
549 #define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
551 typedef BOOL CALLBACK (*ACMFORMATTAGENUMCBA)(
552 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
553 DWORD dwInstance, DWORD fdwSupport
556 typedef BOOL CALLBACK (*ACMFORMATTAGENUMCBW)(
557 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
558 DWORD dwInstance, DWORD fdwSupport
561 #define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
563 /***********************************************************************
564 * Functions - Win32
567 MMRESULT WINAPI acmDriverAddA(
568 PHACMDRIVERID phadid, HINSTANCE hinstModule,
569 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
571 MMRESULT WINAPI acmDriverAddW(
572 PHACMDRIVERID phadid, HINSTANCE hinstModule,
573 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
575 #define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
577 MMRESULT WINAPI acmDriverClose(
578 HACMDRIVER had, DWORD fdwClose
580 MMRESULT WINAPI acmDriverDetailsA(
581 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
583 MMRESULT WINAPI acmDriverDetailsW(
584 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
586 #define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
588 MMRESULT WINAPI acmDriverEnum(
589 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
591 MMRESULT WINAPI acmDriverID(
592 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
594 LRESULT WINAPI acmDriverMessage(
595 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
597 MMRESULT WINAPI acmDriverOpen(
598 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
600 MMRESULT WINAPI acmDriverPriority(
601 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
603 MMRESULT WINAPI acmDriverRemove(
604 HACMDRIVERID hadid, DWORD fdwRemove
606 MMRESULT WINAPI acmFilterChooseA(
607 PACMFILTERCHOOSEA pafltrc
609 MMRESULT WINAPI acmFilterChooseW(
610 PACMFILTERCHOOSEW pafltrc
612 #define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose)
614 MMRESULT WINAPI acmFilterDetailsA(
615 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
617 MMRESULT WINAPI acmFilterDetailsW(
618 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
620 #define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails)
622 MMRESULT WINAPI acmFilterEnumA(
623 HACMDRIVER had, PACMFILTERDETAILSA pafd,
624 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
626 MMRESULT WINAPI acmFilterEnumW(
627 HACMDRIVER had, PACMFILTERDETAILSW pafd,
628 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
630 #define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum)
632 MMRESULT WINAPI acmFilterTagDetailsA(
633 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
635 MMRESULT WINAPI acmFilterTagDetailsW(
636 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
638 #define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails)
640 MMRESULT WINAPI acmFilterTagEnumA(
641 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
642 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
644 MMRESULT WINAPI acmFilterTagEnumW(
645 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
646 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
648 #define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum)
650 MMRESULT WINAPI acmFormatChooseA(
651 PACMFORMATCHOOSEA pafmtc
653 MMRESULT WINAPI acmFormatChooseW(
654 PACMFORMATCHOOSEW pafmtc
656 #define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose)
658 MMRESULT WINAPI acmFormatDetailsA(
659 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
661 MMRESULT WINAPI acmFormatDetailsW(
662 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
664 #define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails)
666 MMRESULT WINAPI acmFormatEnumA(
667 HACMDRIVER had, PACMFORMATDETAILSA pafd,
668 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
670 MMRESULT WINAPI acmFormatEnumW(
671 HACMDRIVER had, PACMFORMATDETAILSW pafd,
672 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
674 #define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
676 MMRESULT WINAPI acmFormatSuggest(
677 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
678 DWORD cbwfxDst, DWORD fdwSuggest
680 MMRESULT WINAPI acmFormatTagDetailsA(
681 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
683 MMRESULT WINAPI acmFormatTagDetailsW(
684 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
686 #define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails)
688 MMRESULT WINAPI acmFormatTagEnumA(
689 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
690 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
692 MMRESULT WINAPI acmFormatTagEnumW(
693 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
694 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
696 #define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
698 DWORD WINAPI acmGetVersion(void
700 MMRESULT WINAPI acmMetrics(
701 HACMOBJ hao, UINT uMetric, LPVOID pMetric
703 MMRESULT WINAPI acmStreamClose(
704 HACMSTREAM has, DWORD fdwClose
706 MMRESULT WINAPI acmStreamConvert(
707 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
709 MMRESULT WINAPI acmStreamMessage(
710 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
712 MMRESULT WINAPI acmStreamOpen(
713 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
714 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
715 DWORD dwInstance, DWORD fdwOpen
717 MMRESULT WINAPI acmStreamPrepareHeader(
718 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
720 MMRESULT WINAPI acmStreamReset(
721 HACMSTREAM has, DWORD fdwReset
723 MMRESULT WINAPI acmStreamSize(
724 HACMSTREAM has, DWORD cbInput,
725 LPDWORD pdwOutputBytes, DWORD fdwSize
727 MMRESULT WINAPI acmStreamUnprepareHeader(
728 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
731 #ifdef __cplusplus
732 } /* extern "C" */
733 #endif /* defined(__cplusplus) */
735 #endif /* __WINE_MSACM_H */