Avoid including wine/obj_*.h files directly from C files.
[wine/multimedia.git] / include / msacm.h
blob0412f9c2598ce8c238a775098378ead67aa0f657
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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 #ifndef __WINE_MSACM_H
22 #define __WINE_MSACM_H
24 #include <windef.h>
25 #include <mmsystem.h>
26 #include <mmreg.h>
28 #ifdef __cplusplus
29 extern "C" {
30 #endif /* defined(__cplusplus) */
32 #define ACMAPI WINAPI
34 /***********************************************************************
35 * Defines/Enums
37 #define ACMERR_BASE 512
38 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
39 #define ACMERR_BUSY (ACMERR_BASE + 1)
40 #define ACMERR_UNPREPARED (ACMERR_BASE + 2)
41 #define ACMERR_CANCELED (ACMERR_BASE + 3)
43 #define MM_ACM_OPEN MM_STREAM_OPEN
44 #define MM_ACM_CLOSE MM_STREAM_CLOSE
45 #define MM_ACM_DONE MM_STREAM_DONE
47 #define ACM_DRIVERADDF_FUNCTION 0x00000003L
48 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
49 #define ACM_DRIVERADDF_TYPEMASK 0x00000007L
50 #define ACM_DRIVERADDF_LOCAL 0x00000000L
51 #define ACM_DRIVERADDF_GLOBAL 0x00000008L
53 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
54 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
55 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
56 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
57 #define ACMDRIVERDETAILS_FEATURES_CHARS 512
59 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
60 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
62 #define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
63 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
64 #define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
65 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
66 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
67 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
68 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
70 #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
71 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
73 #define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
74 #define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
75 #define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
76 #define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
77 #define ACM_DRIVERPRIORITYF_END 0x00020000L
78 #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
80 #define MM_ACM_FILTERCHOOSE 0x8000
82 #define FILTERCHOOSE_MESSAGE 0
83 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
84 #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
85 #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
87 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
88 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
89 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
90 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
91 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
92 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
94 #define ACMFILTERDETAILS_FILTER_CHARS 128
96 #define ACM_FILTERDETAILSF_INDEX 0x00000000L
97 #define ACM_FILTERDETAILSF_FILTER 0x00000001L
98 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
100 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
102 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
103 #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
104 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
105 #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
107 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
109 #define ACMHELPMSGSTRINGA "acmchoose_help"
110 #if defined(__GNUC__)
111 # define ACMHELPMSGSTRINGW (const WCHAR []){ 'a','c','m', \
112 'c','h','o','o','s','e','_','h','e','l','p',0 }
113 #elif defined(_MSC_VER)
114 # define ACMHELPMSGSTRINGW L"acmchoose_help"
115 #else
116 static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
117 'c','h','o','o','s','e','_','h','e','l','p',0 };
118 #endif
119 #define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING)
121 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
122 #if defined(__GNUC__)
123 # define ACMHELPMSGCONTEXTMENUW (const WCHAR []){ 'a','c','m', \
124 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 }
125 #elif defined(_MSC_VER)
126 # define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
127 #else
128 static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
129 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 };
130 #endif
131 #define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU)
133 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
134 #if defined(__GNUC__)
135 # define ACMHELPMSGCONTEXTHELPW (const WCHAR []){ 'a','c','m', \
136 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 }
137 #elif defined(_MSC_VER)
138 # define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
139 #else
140 static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m',
141 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 };
142 #endif
143 #define ACMHELPMSGCONTEXTHELP WINELIB_NAME_AW(ACMHELPMSGCONTEXTHELP)
145 #define MM_ACM_FORMATCHOOSE 0x8000
147 #define FORMATCHOOSE_MESSAGE 0
148 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
149 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
150 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
152 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
153 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
154 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
155 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
156 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
157 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
159 #define ACMFORMATDETAILS_FORMAT_CHARS 128
161 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
162 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
163 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
165 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
166 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
167 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
168 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
169 #define ACM_FORMATENUMF_CONVERT 0x00100000L
170 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
171 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
172 #define ACM_FORMATENUMF_INPUT 0x00800000L
173 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
175 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
176 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
177 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
178 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
179 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
181 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
183 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
184 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
185 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
186 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
188 #define ACM_METRIC_COUNT_DRIVERS 1
189 #define ACM_METRIC_COUNT_CODECS 2
190 #define ACM_METRIC_COUNT_CONVERTERS 3
191 #define ACM_METRIC_COUNT_FILTERS 4
192 #define ACM_METRIC_COUNT_DISABLED 5
193 #define ACM_METRIC_COUNT_HARDWARE 6
194 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
195 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
196 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
197 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
198 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
199 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
200 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
201 #define ACM_METRIC_MAX_SIZE_FORMAT 50
202 #define ACM_METRIC_MAX_SIZE_FILTER 51
203 #define ACM_METRIC_DRIVER_SUPPORT 100
204 #define ACM_METRIC_DRIVER_PRIORITY 101
206 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
207 #define ACM_STREAMCONVERTF_START 0x00000010
208 #define ACM_STREAMCONVERTF_END 0x00000020
210 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
211 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
212 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
214 #define ACM_STREAMOPENF_QUERY 0x00000001
215 #define ACM_STREAMOPENF_ASYNC 0x00000002
216 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
218 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
219 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
220 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
222 #define ACMDM_USER (DRV_USER + 0x0000)
223 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
224 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
226 #define ACMDM_BASE ACMDM_RESERVED_LOW
228 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
230 /* handles */
232 DECLARE_HANDLE(HACMDRIVERID);
233 DECLARE_HANDLE(HACMDRIVER);
234 DECLARE_HANDLE(HACMSTREAM);
235 DECLARE_HANDLE(HACMOBJ);
236 typedef HACMDRIVERID *PHACMDRIVERID, *LPHACMDRIVERID;
237 typedef HACMDRIVER *PHACMDRIVER, *LPHACMDRIVER;
238 typedef HACMSTREAM *PHACMSTREAM, *LPHACMSTREAM;
239 typedef HACMOBJ *PHACMOBJ, *LPHACMOBJ;
241 /***********************************************************************
242 * Callbacks
245 typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
246 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
249 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
250 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
253 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
254 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
256 #define ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC)
258 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
259 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
262 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
263 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
265 #define ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
267 /***********************************************************************
268 * Structures
271 typedef struct _ACMDRIVERDETAILSA
273 DWORD cbStruct;
275 FOURCC fccType;
276 FOURCC fccComp;
278 WORD wMid;
279 WORD wPid;
281 DWORD vdwACM;
282 DWORD vdwDriver;
284 DWORD fdwSupport;
285 DWORD cFormatTags;
286 DWORD cFilterTags;
288 HICON hicon;
290 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
291 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
292 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
293 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
294 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
295 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
297 typedef struct _ACMDRIVERDETAILSW
299 DWORD cbStruct;
301 FOURCC fccType;
302 FOURCC fccComp;
304 WORD wMid;
305 WORD wPid;
307 DWORD vdwACM;
308 DWORD vdwDriver;
310 DWORD fdwSupport;
311 DWORD cFormatTags;
312 DWORD cFilterTags;
314 HICON hicon;
316 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
317 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
318 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
319 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
320 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
321 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
323 DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS)
324 DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS)
325 DECL_WINELIB_TYPE_AW(LPACMDRIVERDETAILS)
327 typedef struct _ACMFILTERCHOOSEA
329 DWORD cbStruct;
330 DWORD fdwStyle;
332 HWND hwndOwner;
334 PWAVEFILTER pwfltr;
335 DWORD cbwfltr;
337 LPCSTR pszTitle;
339 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
340 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
341 LPSTR pszName;
342 DWORD cchName;
344 DWORD fdwEnum;
345 PWAVEFILTER pwfltrEnum;
347 HINSTANCE hInstance;
348 LPCSTR pszTemplateName;
349 LPARAM lCustData;
350 ACMFILTERCHOOSEHOOKPROCA pfnHook;
351 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA, *LPACMFILTERCHOOSEA;
353 typedef struct _ACMFILTERCHOOSEW
355 DWORD cbStruct;
356 DWORD fdwStyle;
358 HWND hwndOwner;
360 PWAVEFILTER pwfltr;
361 DWORD cbwfltr;
363 LPCWSTR pszTitle;
365 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
366 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
367 LPWSTR pszName;
368 DWORD cchName;
370 DWORD fdwEnum;
371 PWAVEFILTER pwfltrEnum;
373 HINSTANCE hInstance;
374 LPCWSTR pszTemplateName;
375 LPARAM lCustData;
376 ACMFILTERCHOOSEHOOKPROCW pfnHook;
377 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW, *LPACMFILTERCHOOSEW;
379 DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE)
380 DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE)
381 DECL_WINELIB_TYPE_AW(LPACMFILTERCHOOSE)
383 typedef struct _ACMFILTERDETAILSA
385 DWORD cbStruct;
386 DWORD dwFilterIndex;
387 DWORD dwFilterTag;
388 DWORD fdwSupport;
389 PWAVEFILTER pwfltr;
390 DWORD cbwfltr;
391 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
392 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA, *LPACMFILTERDETAILSA;
394 typedef struct _ACMFILTERDETAILSW
396 DWORD cbStruct;
397 DWORD dwFilterIndex;
398 DWORD dwFilterTag;
399 DWORD fdwSupport;
400 PWAVEFILTER pwfltr;
401 DWORD cbwfltr;
402 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
403 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW, *LPACMFILTERDETAILSW;
405 DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS)
406 DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS)
407 DECL_WINELIB_TYPE_AW(LPACMFILTERDETAILS)
409 typedef struct _ACMFILTERTAGDETAILSA
411 DWORD cbStruct;
412 DWORD dwFilterTagIndex;
413 DWORD dwFilterTag;
414 DWORD cbFilterSize;
415 DWORD fdwSupport;
416 DWORD cStandardFilters;
417 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
418 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA, *LPACMFILTERTAGDETAILSA;
420 typedef struct _ACMFILTERTAGDETAILSW
422 DWORD cbStruct;
423 DWORD dwFilterTagIndex;
424 DWORD dwFilterTag;
425 DWORD cbFilterSize;
426 DWORD fdwSupport;
427 DWORD cStandardFilters;
428 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
429 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW, *LPACMFILTERTAGDETAILSW;
431 DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS)
432 DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS)
433 DECL_WINELIB_TYPE_AW(LPACMFILTERTAGDETAILS)
435 typedef struct _ACMFORMATCHOOSEA
437 DWORD cbStruct;
438 DWORD fdwStyle;
440 HWND hwndOwner;
442 PWAVEFORMATEX pwfx;
443 DWORD cbwfx;
444 LPCSTR pszTitle;
446 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
447 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
449 LPSTR pszName;
450 DWORD cchName;
452 DWORD fdwEnum;
453 PWAVEFORMATEX pwfxEnum;
455 HINSTANCE hInstance;
456 LPCSTR pszTemplateName;
457 LPARAM lCustData;
458 ACMFORMATCHOOSEHOOKPROCA pfnHook;
459 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA, *LPACMFORMATCHOOSEA;
461 typedef struct _ACMFORMATCHOOSEW
463 DWORD cbStruct;
464 DWORD fdwStyle;
466 HWND hwndOwner;
468 PWAVEFORMATEX pwfx;
469 DWORD cbwfx;
470 LPCWSTR pszTitle;
472 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
473 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
475 LPWSTR pszName;
476 DWORD cchName;
478 DWORD fdwEnum;
479 LPWAVEFORMATEX pwfxEnum;
481 HINSTANCE hInstance;
482 LPCWSTR pszTemplateName;
483 LPARAM lCustData;
484 ACMFORMATCHOOSEHOOKPROCW pfnHook;
485 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW, *LPACMFORMATCHOOSEW;
487 DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE)
488 DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE)
489 DECL_WINELIB_TYPE_AW(LPACMFORMATCHOOSE)
491 typedef struct _ACMFORMATDETAILSA
493 DWORD cbStruct;
494 DWORD dwFormatIndex;
495 DWORD dwFormatTag;
496 DWORD fdwSupport;
497 PWAVEFORMATEX pwfx;
498 DWORD cbwfx;
499 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
500 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
502 typedef struct _ACMFORMATDETAILSW
504 DWORD cbStruct;
505 DWORD dwFormatIndex;
506 DWORD dwFormatTag;
507 DWORD fdwSupport;
508 PWAVEFORMATEX pwfx;
509 DWORD cbwfx;
510 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
511 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
513 DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS)
514 DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS)
515 DECL_WINELIB_TYPE_AW(LPACMFORMATDETAILS)
517 typedef struct _ACMFORMATTAGDETAILSA
519 DWORD cbStruct;
520 DWORD dwFormatTagIndex;
521 DWORD dwFormatTag;
522 DWORD cbFormatSize;
523 DWORD fdwSupport;
524 DWORD cStandardFormats;
525 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
526 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
528 typedef struct _ACMFORMATTAGDETAILSW
530 DWORD cbStruct;
531 DWORD dwFormatTagIndex;
532 DWORD dwFormatTag;
533 DWORD cbFormatSize;
534 DWORD fdwSupport;
535 DWORD cStandardFormats;
536 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
537 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
539 DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS)
540 DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS)
541 DECL_WINELIB_TYPE_AW(LPACMFORMATTAGDETAILS)
543 typedef struct _ACMSTREAMHEADER
545 DWORD cbStruct;
546 DWORD fdwStatus;
547 DWORD dwUser;
548 LPBYTE pbSrc;
549 DWORD cbSrcLength;
550 DWORD cbSrcLengthUsed;
551 DWORD dwSrcUser;
552 LPBYTE pbDst;
553 DWORD cbDstLength;
554 DWORD cbDstLengthUsed;
555 DWORD dwDstUser;
556 DWORD dwReservedDriver[10];
557 } ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER;
559 /***********************************************************************
560 * Callbacks 2
563 typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
564 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
565 DWORD dwInstance, DWORD fdwSupport
568 typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
569 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
570 DWORD dwInstance, DWORD fdwSupport
573 #define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
575 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
576 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
577 DWORD dwInstance, DWORD fdwSupport
580 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
581 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
582 DWORD dwInstance, DWORD fdwSupport
585 #define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
587 typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
588 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
589 DWORD dwInstance, DWORD fdwSupport
592 typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
593 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
594 DWORD dwInstance, DWORD fdwSupport
597 #define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
599 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
600 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
601 DWORD dwInstance, DWORD fdwSupport
604 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
605 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
606 DWORD dwInstance, DWORD fdwSupport
609 #define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
611 /***********************************************************************
612 * Functions - Win32
615 MMRESULT WINAPI acmDriverAddA(
616 PHACMDRIVERID phadid, HINSTANCE hinstModule,
617 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
619 MMRESULT WINAPI acmDriverAddW(
620 PHACMDRIVERID phadid, HINSTANCE hinstModule,
621 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
623 #define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
625 MMRESULT WINAPI acmDriverClose(
626 HACMDRIVER had, DWORD fdwClose
628 MMRESULT WINAPI acmDriverDetailsA(
629 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
631 MMRESULT WINAPI acmDriverDetailsW(
632 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
634 #define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
636 MMRESULT WINAPI acmDriverEnum(
637 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
639 MMRESULT WINAPI acmDriverID(
640 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
642 LRESULT WINAPI acmDriverMessage(
643 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
645 MMRESULT WINAPI acmDriverOpen(
646 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
648 MMRESULT WINAPI acmDriverPriority(
649 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
651 MMRESULT WINAPI acmDriverRemove(
652 HACMDRIVERID hadid, DWORD fdwRemove
654 MMRESULT WINAPI acmFilterChooseA(
655 PACMFILTERCHOOSEA pafltrc
657 MMRESULT WINAPI acmFilterChooseW(
658 PACMFILTERCHOOSEW pafltrc
660 #define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose)
662 MMRESULT WINAPI acmFilterDetailsA(
663 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
665 MMRESULT WINAPI acmFilterDetailsW(
666 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
668 #define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails)
670 MMRESULT WINAPI acmFilterEnumA(
671 HACMDRIVER had, PACMFILTERDETAILSA pafd,
672 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
674 MMRESULT WINAPI acmFilterEnumW(
675 HACMDRIVER had, PACMFILTERDETAILSW pafd,
676 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
678 #define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum)
680 MMRESULT WINAPI acmFilterTagDetailsA(
681 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
683 MMRESULT WINAPI acmFilterTagDetailsW(
684 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
686 #define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails)
688 MMRESULT WINAPI acmFilterTagEnumA(
689 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
690 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
692 MMRESULT WINAPI acmFilterTagEnumW(
693 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
694 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
696 #define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum)
698 MMRESULT WINAPI acmFormatChooseA(
699 PACMFORMATCHOOSEA pafmtc
701 MMRESULT WINAPI acmFormatChooseW(
702 PACMFORMATCHOOSEW pafmtc
704 #define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose)
706 MMRESULT WINAPI acmFormatDetailsA(
707 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
709 MMRESULT WINAPI acmFormatDetailsW(
710 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
712 #define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails)
714 MMRESULT WINAPI acmFormatEnumA(
715 HACMDRIVER had, PACMFORMATDETAILSA pafd,
716 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
718 MMRESULT WINAPI acmFormatEnumW(
719 HACMDRIVER had, PACMFORMATDETAILSW pafd,
720 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
722 #define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
724 MMRESULT WINAPI acmFormatSuggest(
725 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
726 DWORD cbwfxDst, DWORD fdwSuggest
728 MMRESULT WINAPI acmFormatTagDetailsA(
729 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
731 MMRESULT WINAPI acmFormatTagDetailsW(
732 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
734 #define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails)
736 MMRESULT WINAPI acmFormatTagEnumA(
737 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
738 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
740 MMRESULT WINAPI acmFormatTagEnumW(
741 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
742 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
744 #define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
746 DWORD WINAPI acmGetVersion(void
748 MMRESULT WINAPI acmMetrics(
749 HACMOBJ hao, UINT uMetric, LPVOID pMetric
751 MMRESULT WINAPI acmStreamClose(
752 HACMSTREAM has, DWORD fdwClose
754 MMRESULT WINAPI acmStreamConvert(
755 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
757 MMRESULT WINAPI acmStreamMessage(
758 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
760 MMRESULT WINAPI acmStreamOpen(
761 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
762 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
763 DWORD dwInstance, DWORD fdwOpen
765 MMRESULT WINAPI acmStreamPrepareHeader(
766 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
768 MMRESULT WINAPI acmStreamReset(
769 HACMSTREAM has, DWORD fdwReset
771 MMRESULT WINAPI acmStreamSize(
772 HACMSTREAM has, DWORD cbInput,
773 LPDWORD pdwOutputBytes, DWORD fdwSize
775 MMRESULT WINAPI acmStreamUnprepareHeader(
776 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
779 #ifdef __cplusplus
780 } /* extern "C" */
781 #endif /* defined(__cplusplus) */
783 #endif /* __WINE_MSACM_H */