DEVELOPER-HINTS: Some directories are renamed / removed / added.
[wine/multimedia.git] / include / msacm.h
blob8a2c8e7d62ade8b6d6286577628c2bd1262b8721
1 /*
2 * Declarations for MSACM
4 * Copyright (C) the Wine project
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __WINE_MSACM_H
22 #define __WINE_MSACM_H
24 #ifdef __cplusplus
25 extern "C" {
26 #endif /* defined(__cplusplus) */
28 #define ACMAPI WINAPI
30 /***********************************************************************
31 * Defines/Enums
33 #define ACMERR_BASE 512
34 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
35 #define ACMERR_BUSY (ACMERR_BASE + 1)
36 #define ACMERR_UNPREPARED (ACMERR_BASE + 2)
37 #define ACMERR_CANCELED (ACMERR_BASE + 3)
39 #define MM_ACM_OPEN MM_STREAM_OPEN
40 #define MM_ACM_CLOSE MM_STREAM_CLOSE
41 #define MM_ACM_DONE MM_STREAM_DONE
43 #define ACM_DRIVERADDF_NAME 0x00000001L
44 #define ACM_DRIVERADDF_FUNCTION 0x00000003L
45 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
46 #define ACM_DRIVERADDF_TYPEMASK 0x00000007L
47 #define ACM_DRIVERADDF_LOCAL 0x00000000L
48 #define ACM_DRIVERADDF_GLOBAL 0x00000008L
50 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
51 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
52 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
53 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
54 #define ACMDRIVERDETAILS_FEATURES_CHARS 512
56 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
57 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
59 #define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
60 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
61 #define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
62 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
63 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
64 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
65 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
67 #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
68 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
70 #define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
71 #define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
72 #define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
73 #define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
74 #define ACM_DRIVERPRIORITYF_END 0x00020000L
75 #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
77 #define MM_ACM_FILTERCHOOSE 0x8000
79 #define FILTERCHOOSE_MESSAGE 0
80 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
81 #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
82 #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
84 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
85 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
86 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
87 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
88 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
89 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
91 #define ACMFILTERDETAILS_FILTER_CHARS 128
93 #define ACM_FILTERDETAILSF_INDEX 0x00000000L
94 #define ACM_FILTERDETAILSF_FILTER 0x00000001L
95 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
97 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
99 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
100 #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
101 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
102 #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
104 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
106 #define ACMHELPMSGSTRINGA "acmchoose_help"
107 #if defined(__GNUC__)
108 # define ACMHELPMSGSTRINGW (const WCHAR []){ 'a','c','m', \
109 'c','h','o','o','s','e','_','h','e','l','p',0 }
110 #elif defined(_MSC_VER)
111 # define ACMHELPMSGSTRINGW L"acmchoose_help"
112 #else
113 static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
114 'c','h','o','o','s','e','_','h','e','l','p',0 };
115 #endif
116 #define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING)
118 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
119 #if defined(__GNUC__)
120 # define ACMHELPMSGCONTEXTMENUW (const WCHAR []){ 'a','c','m', \
121 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 }
122 #elif defined(_MSC_VER)
123 # define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
124 #else
125 static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
126 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 };
127 #endif
128 #define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU)
130 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
131 #if defined(__GNUC__)
132 # define ACMHELPMSGCONTEXTHELPW (const WCHAR []){ 'a','c','m', \
133 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 }
134 #elif defined(_MSC_VER)
135 # define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
136 #else
137 static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m',
138 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 };
139 #endif
140 #define ACMHELPMSGCONTEXTHELP WINELIB_NAME_AW(ACMHELPMSGCONTEXTHELP)
142 #define MM_ACM_FORMATCHOOSE 0x8000
144 #define FORMATCHOOSE_MESSAGE 0
145 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
146 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
147 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
149 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
150 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
151 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
152 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
153 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
154 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
156 #define ACMFORMATDETAILS_FORMAT_CHARS 128
158 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
159 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
160 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
162 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
163 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
164 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
165 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
166 #define ACM_FORMATENUMF_CONVERT 0x00100000L
167 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
168 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
169 #define ACM_FORMATENUMF_INPUT 0x00800000L
170 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
172 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
173 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
174 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
175 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
176 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
178 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
180 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
181 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
182 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
183 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
185 #define ACM_METRIC_COUNT_DRIVERS 1
186 #define ACM_METRIC_COUNT_CODECS 2
187 #define ACM_METRIC_COUNT_CONVERTERS 3
188 #define ACM_METRIC_COUNT_FILTERS 4
189 #define ACM_METRIC_COUNT_DISABLED 5
190 #define ACM_METRIC_COUNT_HARDWARE 6
191 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
192 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
193 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
194 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
195 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
196 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
197 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
198 #define ACM_METRIC_MAX_SIZE_FORMAT 50
199 #define ACM_METRIC_MAX_SIZE_FILTER 51
200 #define ACM_METRIC_DRIVER_SUPPORT 100
201 #define ACM_METRIC_DRIVER_PRIORITY 101
203 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
204 #define ACM_STREAMCONVERTF_START 0x00000010
205 #define ACM_STREAMCONVERTF_END 0x00000020
207 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
208 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
209 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
211 #define ACM_STREAMOPENF_QUERY 0x00000001
212 #define ACM_STREAMOPENF_ASYNC 0x00000002
213 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
215 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
216 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
217 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
219 #define ACMDM_USER (DRV_USER + 0x0000)
220 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
221 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
223 #define ACMDM_BASE ACMDM_RESERVED_LOW
225 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
227 /* handles */
229 DECLARE_HANDLE(HACMDRIVERID);
230 DECLARE_HANDLE(HACMDRIVER);
231 DECLARE_HANDLE(HACMSTREAM);
232 DECLARE_HANDLE(HACMOBJ);
233 typedef HACMDRIVERID *PHACMDRIVERID, *LPHACMDRIVERID;
234 typedef HACMDRIVER *PHACMDRIVER, *LPHACMDRIVER;
235 typedef HACMSTREAM *PHACMSTREAM, *LPHACMSTREAM;
236 typedef HACMOBJ *PHACMOBJ, *LPHACMOBJ;
238 /***********************************************************************
239 * Callbacks
242 typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
243 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
246 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
247 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
250 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
251 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
253 #define ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC)
255 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
256 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
259 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
260 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
262 #define ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
264 /***********************************************************************
265 * Structures
268 typedef struct _ACMDRIVERDETAILSA
270 DWORD cbStruct;
272 FOURCC fccType;
273 FOURCC fccComp;
275 WORD wMid;
276 WORD wPid;
278 DWORD vdwACM;
279 DWORD vdwDriver;
281 DWORD fdwSupport;
282 DWORD cFormatTags;
283 DWORD cFilterTags;
285 HICON hicon;
287 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
288 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
289 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
290 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
291 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
292 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
294 typedef struct _ACMDRIVERDETAILSW
296 DWORD cbStruct;
298 FOURCC fccType;
299 FOURCC fccComp;
301 WORD wMid;
302 WORD wPid;
304 DWORD vdwACM;
305 DWORD vdwDriver;
307 DWORD fdwSupport;
308 DWORD cFormatTags;
309 DWORD cFilterTags;
311 HICON hicon;
313 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
314 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
315 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
316 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
317 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
318 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
320 DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS)
321 DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS)
322 DECL_WINELIB_TYPE_AW(LPACMDRIVERDETAILS)
324 typedef struct _ACMFILTERCHOOSEA
326 DWORD cbStruct;
327 DWORD fdwStyle;
329 HWND hwndOwner;
331 PWAVEFILTER pwfltr;
332 DWORD cbwfltr;
334 LPCSTR pszTitle;
336 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
337 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
338 LPSTR pszName;
339 DWORD cchName;
341 DWORD fdwEnum;
342 PWAVEFILTER pwfltrEnum;
344 HINSTANCE hInstance;
345 LPCSTR pszTemplateName;
346 LPARAM lCustData;
347 ACMFILTERCHOOSEHOOKPROCA pfnHook;
348 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA, *LPACMFILTERCHOOSEA;
350 typedef struct _ACMFILTERCHOOSEW
352 DWORD cbStruct;
353 DWORD fdwStyle;
355 HWND hwndOwner;
357 PWAVEFILTER pwfltr;
358 DWORD cbwfltr;
360 LPCWSTR pszTitle;
362 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
363 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
364 LPWSTR pszName;
365 DWORD cchName;
367 DWORD fdwEnum;
368 PWAVEFILTER pwfltrEnum;
370 HINSTANCE hInstance;
371 LPCWSTR pszTemplateName;
372 LPARAM lCustData;
373 ACMFILTERCHOOSEHOOKPROCW pfnHook;
374 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW, *LPACMFILTERCHOOSEW;
376 DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE)
377 DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE)
378 DECL_WINELIB_TYPE_AW(LPACMFILTERCHOOSE)
380 typedef struct _ACMFILTERDETAILSA
382 DWORD cbStruct;
383 DWORD dwFilterIndex;
384 DWORD dwFilterTag;
385 DWORD fdwSupport;
386 PWAVEFILTER pwfltr;
387 DWORD cbwfltr;
388 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
389 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA, *LPACMFILTERDETAILSA;
391 typedef struct _ACMFILTERDETAILSW
393 DWORD cbStruct;
394 DWORD dwFilterIndex;
395 DWORD dwFilterTag;
396 DWORD fdwSupport;
397 PWAVEFILTER pwfltr;
398 DWORD cbwfltr;
399 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
400 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW, *LPACMFILTERDETAILSW;
402 DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS)
403 DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS)
404 DECL_WINELIB_TYPE_AW(LPACMFILTERDETAILS)
406 typedef struct _ACMFILTERTAGDETAILSA
408 DWORD cbStruct;
409 DWORD dwFilterTagIndex;
410 DWORD dwFilterTag;
411 DWORD cbFilterSize;
412 DWORD fdwSupport;
413 DWORD cStandardFilters;
414 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
415 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA, *LPACMFILTERTAGDETAILSA;
417 typedef struct _ACMFILTERTAGDETAILSW
419 DWORD cbStruct;
420 DWORD dwFilterTagIndex;
421 DWORD dwFilterTag;
422 DWORD cbFilterSize;
423 DWORD fdwSupport;
424 DWORD cStandardFilters;
425 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
426 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW, *LPACMFILTERTAGDETAILSW;
428 DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS)
429 DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS)
430 DECL_WINELIB_TYPE_AW(LPACMFILTERTAGDETAILS)
432 typedef struct _ACMFORMATCHOOSEA
434 DWORD cbStruct;
435 DWORD fdwStyle;
437 HWND hwndOwner;
439 PWAVEFORMATEX pwfx;
440 DWORD cbwfx;
441 LPCSTR pszTitle;
443 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
444 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
446 LPSTR pszName;
447 DWORD cchName;
449 DWORD fdwEnum;
450 PWAVEFORMATEX pwfxEnum;
452 HINSTANCE hInstance;
453 LPCSTR pszTemplateName;
454 LPARAM lCustData;
455 ACMFORMATCHOOSEHOOKPROCA pfnHook;
456 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA, *LPACMFORMATCHOOSEA;
458 typedef struct _ACMFORMATCHOOSEW
460 DWORD cbStruct;
461 DWORD fdwStyle;
463 HWND hwndOwner;
465 PWAVEFORMATEX pwfx;
466 DWORD cbwfx;
467 LPCWSTR pszTitle;
469 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
470 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
472 LPWSTR pszName;
473 DWORD cchName;
475 DWORD fdwEnum;
476 LPWAVEFORMATEX pwfxEnum;
478 HINSTANCE hInstance;
479 LPCWSTR pszTemplateName;
480 LPARAM lCustData;
481 ACMFORMATCHOOSEHOOKPROCW pfnHook;
482 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW, *LPACMFORMATCHOOSEW;
484 DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE)
485 DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE)
486 DECL_WINELIB_TYPE_AW(LPACMFORMATCHOOSE)
488 typedef struct _ACMFORMATDETAILSA
490 DWORD cbStruct;
491 DWORD dwFormatIndex;
492 DWORD dwFormatTag;
493 DWORD fdwSupport;
494 PWAVEFORMATEX pwfx;
495 DWORD cbwfx;
496 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
497 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
499 typedef struct _ACMFORMATDETAILSW
501 DWORD cbStruct;
502 DWORD dwFormatIndex;
503 DWORD dwFormatTag;
504 DWORD fdwSupport;
505 PWAVEFORMATEX pwfx;
506 DWORD cbwfx;
507 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
508 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
510 DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS)
511 DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS)
512 DECL_WINELIB_TYPE_AW(LPACMFORMATDETAILS)
514 typedef struct _ACMFORMATTAGDETAILSA
516 DWORD cbStruct;
517 DWORD dwFormatTagIndex;
518 DWORD dwFormatTag;
519 DWORD cbFormatSize;
520 DWORD fdwSupport;
521 DWORD cStandardFormats;
522 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
523 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
525 typedef struct _ACMFORMATTAGDETAILSW
527 DWORD cbStruct;
528 DWORD dwFormatTagIndex;
529 DWORD dwFormatTag;
530 DWORD cbFormatSize;
531 DWORD fdwSupport;
532 DWORD cStandardFormats;
533 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
534 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
536 DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS)
537 DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS)
538 DECL_WINELIB_TYPE_AW(LPACMFORMATTAGDETAILS)
540 typedef struct _ACMSTREAMHEADER
542 DWORD cbStruct;
543 DWORD fdwStatus;
544 DWORD dwUser;
545 LPBYTE pbSrc;
546 DWORD cbSrcLength;
547 DWORD cbSrcLengthUsed;
548 DWORD dwSrcUser;
549 LPBYTE pbDst;
550 DWORD cbDstLength;
551 DWORD cbDstLengthUsed;
552 DWORD dwDstUser;
553 DWORD dwReservedDriver[10];
554 } ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER;
556 /***********************************************************************
557 * Callbacks 2
560 typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
561 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
562 DWORD dwInstance, DWORD fdwSupport
565 typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
566 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
567 DWORD dwInstance, DWORD fdwSupport
570 #define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
572 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
573 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
574 DWORD dwInstance, DWORD fdwSupport
577 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
578 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
579 DWORD dwInstance, DWORD fdwSupport
582 #define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
584 typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
585 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
586 DWORD dwInstance, DWORD fdwSupport
589 typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
590 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
591 DWORD dwInstance, DWORD fdwSupport
594 #define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
596 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
597 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
598 DWORD dwInstance, DWORD fdwSupport
601 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
602 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
603 DWORD dwInstance, DWORD fdwSupport
606 #define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
608 /***********************************************************************
609 * Functions - Win32
612 MMRESULT WINAPI acmDriverAddA(
613 PHACMDRIVERID phadid, HINSTANCE hinstModule,
614 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
616 MMRESULT WINAPI acmDriverAddW(
617 PHACMDRIVERID phadid, HINSTANCE hinstModule,
618 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
620 #define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
622 MMRESULT WINAPI acmDriverClose(
623 HACMDRIVER had, DWORD fdwClose
625 MMRESULT WINAPI acmDriverDetailsA(
626 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
628 MMRESULT WINAPI acmDriverDetailsW(
629 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
631 #define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
633 MMRESULT WINAPI acmDriverEnum(
634 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
636 MMRESULT WINAPI acmDriverID(
637 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
639 LRESULT WINAPI acmDriverMessage(
640 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
642 MMRESULT WINAPI acmDriverOpen(
643 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
645 MMRESULT WINAPI acmDriverPriority(
646 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
648 MMRESULT WINAPI acmDriverRemove(
649 HACMDRIVERID hadid, DWORD fdwRemove
651 MMRESULT WINAPI acmFilterChooseA(
652 PACMFILTERCHOOSEA pafltrc
654 MMRESULT WINAPI acmFilterChooseW(
655 PACMFILTERCHOOSEW pafltrc
657 #define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose)
659 MMRESULT WINAPI acmFilterDetailsA(
660 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
662 MMRESULT WINAPI acmFilterDetailsW(
663 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
665 #define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails)
667 MMRESULT WINAPI acmFilterEnumA(
668 HACMDRIVER had, PACMFILTERDETAILSA pafd,
669 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
671 MMRESULT WINAPI acmFilterEnumW(
672 HACMDRIVER had, PACMFILTERDETAILSW pafd,
673 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
675 #define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum)
677 MMRESULT WINAPI acmFilterTagDetailsA(
678 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
680 MMRESULT WINAPI acmFilterTagDetailsW(
681 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
683 #define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails)
685 MMRESULT WINAPI acmFilterTagEnumA(
686 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
687 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
689 MMRESULT WINAPI acmFilterTagEnumW(
690 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
691 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
693 #define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum)
695 MMRESULT WINAPI acmFormatChooseA(
696 PACMFORMATCHOOSEA pafmtc
698 MMRESULT WINAPI acmFormatChooseW(
699 PACMFORMATCHOOSEW pafmtc
701 #define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose)
703 MMRESULT WINAPI acmFormatDetailsA(
704 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
706 MMRESULT WINAPI acmFormatDetailsW(
707 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
709 #define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails)
711 MMRESULT WINAPI acmFormatEnumA(
712 HACMDRIVER had, PACMFORMATDETAILSA pafd,
713 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
715 MMRESULT WINAPI acmFormatEnumW(
716 HACMDRIVER had, PACMFORMATDETAILSW pafd,
717 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
719 #define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
721 MMRESULT WINAPI acmFormatSuggest(
722 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
723 DWORD cbwfxDst, DWORD fdwSuggest
725 MMRESULT WINAPI acmFormatTagDetailsA(
726 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
728 MMRESULT WINAPI acmFormatTagDetailsW(
729 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
731 #define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails)
733 MMRESULT WINAPI acmFormatTagEnumA(
734 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
735 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
737 MMRESULT WINAPI acmFormatTagEnumW(
738 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
739 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
741 #define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
743 DWORD WINAPI acmGetVersion(void
745 MMRESULT WINAPI acmMetrics(
746 HACMOBJ hao, UINT uMetric, LPVOID pMetric
748 MMRESULT WINAPI acmStreamClose(
749 HACMSTREAM has, DWORD fdwClose
751 MMRESULT WINAPI acmStreamConvert(
752 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
754 MMRESULT WINAPI acmStreamMessage(
755 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
757 MMRESULT WINAPI acmStreamOpen(
758 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
759 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
760 DWORD dwInstance, DWORD fdwOpen
762 MMRESULT WINAPI acmStreamPrepareHeader(
763 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
765 MMRESULT WINAPI acmStreamReset(
766 HACMSTREAM has, DWORD fdwReset
768 MMRESULT WINAPI acmStreamSize(
769 HACMSTREAM has, DWORD cbInput,
770 LPDWORD pdwOutputBytes, DWORD fdwSize
772 MMRESULT WINAPI acmStreamUnprepareHeader(
773 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
776 #ifdef __cplusplus
777 } /* extern "C" */
778 #endif /* defined(__cplusplus) */
780 #endif /* __WINE_MSACM_H */