d3dxof: Fix object files size limitation by mapping them into memory.
[wine/hacks.git] / include / msacm.h
blobc4da171719f2961080c3d8710b06c72d4229e79f
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 #include <pshpack1.h>
30 #define ACMAPI WINAPI
32 /***********************************************************************
33 * Defines/Enums
35 #define ACMERR_BASE 512
36 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
37 #define ACMERR_BUSY (ACMERR_BASE + 1)
38 #define ACMERR_UNPREPARED (ACMERR_BASE + 2)
39 #define ACMERR_CANCELED (ACMERR_BASE + 3)
41 #define MM_ACM_OPEN MM_STREAM_OPEN
42 #define MM_ACM_CLOSE MM_STREAM_CLOSE
43 #define MM_ACM_DONE MM_STREAM_DONE
45 #define ACM_DRIVERADDF_NAME 0x00000001L
46 #define ACM_DRIVERADDF_FUNCTION 0x00000003L
47 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
48 #define ACM_DRIVERADDF_TYPEMASK 0x00000007L
49 #define ACM_DRIVERADDF_LOCAL 0x00000000L
50 #define ACM_DRIVERADDF_GLOBAL 0x00000008L
52 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
53 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
54 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
55 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
56 #define ACMDRIVERDETAILS_FEATURES_CHARS 512
58 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
59 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
61 #define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
62 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
63 #define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
64 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
65 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
66 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
67 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
69 #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
70 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
72 #define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
73 #define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
74 #define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
75 #define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
76 #define ACM_DRIVERPRIORITYF_END 0x00020000L
77 #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
79 #define MM_ACM_FILTERCHOOSE 0x8000
81 #define FILTERCHOOSE_MESSAGE 0
82 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
83 #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
84 #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
86 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
87 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
88 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
89 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
90 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
91 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
93 #define ACMFILTERDETAILS_FILTER_CHARS 128
95 #define ACM_FILTERDETAILSF_INDEX 0x00000000L
96 #define ACM_FILTERDETAILSF_FILTER 0x00000001L
97 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
99 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
101 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
102 #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
103 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
104 #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
106 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
108 #define ACMHELPMSGSTRINGA "acmchoose_help"
109 #if defined(__GNUC__)
110 # define ACMHELPMSGSTRINGW (const WCHAR []){ 'a','c','m', \
111 'c','h','o','o','s','e','_','h','e','l','p',0 }
112 #elif defined(_MSC_VER)
113 # define ACMHELPMSGSTRINGW L"acmchoose_help"
114 #else
115 static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
116 'c','h','o','o','s','e','_','h','e','l','p',0 };
117 #endif
118 #define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING)
120 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
121 #if defined(__GNUC__)
122 # define ACMHELPMSGCONTEXTMENUW (const WCHAR []){ 'a','c','m', \
123 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 }
124 #elif defined(_MSC_VER)
125 # define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
126 #else
127 static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
128 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 };
129 #endif
130 #define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU)
132 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
133 #if defined(__GNUC__)
134 # define ACMHELPMSGCONTEXTHELPW (const WCHAR []){ 'a','c','m', \
135 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 }
136 #elif defined(_MSC_VER)
137 # define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
138 #else
139 static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m',
140 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 };
141 #endif
142 #define ACMHELPMSGCONTEXTHELP WINELIB_NAME_AW(ACMHELPMSGCONTEXTHELP)
144 #define MM_ACM_FORMATCHOOSE 0x8000
146 #define FORMATCHOOSE_MESSAGE 0
147 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
148 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
149 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
151 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
152 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
153 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
154 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
155 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
156 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
158 #define ACMFORMATDETAILS_FORMAT_CHARS 128
160 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
161 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
162 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
164 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
165 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
166 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
167 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
168 #define ACM_FORMATENUMF_CONVERT 0x00100000L
169 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
170 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
171 #define ACM_FORMATENUMF_INPUT 0x00800000L
172 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
174 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
175 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
176 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
177 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
178 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
180 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
182 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
183 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
184 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
185 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
187 #define ACM_METRIC_COUNT_DRIVERS 1
188 #define ACM_METRIC_COUNT_CODECS 2
189 #define ACM_METRIC_COUNT_CONVERTERS 3
190 #define ACM_METRIC_COUNT_FILTERS 4
191 #define ACM_METRIC_COUNT_DISABLED 5
192 #define ACM_METRIC_COUNT_HARDWARE 6
193 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
194 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
195 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
196 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
197 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
198 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
199 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
200 #define ACM_METRIC_MAX_SIZE_FORMAT 50
201 #define ACM_METRIC_MAX_SIZE_FILTER 51
202 #define ACM_METRIC_DRIVER_SUPPORT 100
203 #define ACM_METRIC_DRIVER_PRIORITY 101
205 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
206 #define ACM_STREAMCONVERTF_START 0x00000010
207 #define ACM_STREAMCONVERTF_END 0x00000020
209 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
210 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
211 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
213 #define ACM_STREAMOPENF_QUERY 0x00000001
214 #define ACM_STREAMOPENF_ASYNC 0x00000002
215 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
217 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
218 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
219 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
221 #define ACMDM_USER (DRV_USER + 0x0000)
222 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
223 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
225 #define ACMDM_BASE ACMDM_RESERVED_LOW
227 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
229 /* handles */
231 DECLARE_HANDLE(HACMDRIVERID);
232 DECLARE_HANDLE(HACMDRIVER);
233 DECLARE_HANDLE(HACMSTREAM);
234 DECLARE_HANDLE(HACMOBJ);
235 typedef HACMDRIVERID *PHACMDRIVERID, *LPHACMDRIVERID;
236 typedef HACMDRIVER *PHACMDRIVER, *LPHACMDRIVER;
237 typedef HACMSTREAM *PHACMSTREAM, *LPHACMSTREAM;
238 typedef HACMOBJ *PHACMOBJ, *LPHACMOBJ;
240 /***********************************************************************
241 * Callbacks
244 typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
245 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
248 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
249 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
252 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
253 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
255 #define ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC)
257 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
258 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
261 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
262 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
264 #define ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
266 /***********************************************************************
267 * Structures
270 typedef struct _ACMDRIVERDETAILSA
272 DWORD cbStruct;
274 FOURCC fccType;
275 FOURCC fccComp;
277 WORD wMid;
278 WORD wPid;
280 DWORD vdwACM;
281 DWORD vdwDriver;
283 DWORD fdwSupport;
284 DWORD cFormatTags;
285 DWORD cFilterTags;
287 HICON hicon;
289 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
290 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
291 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
292 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
293 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
294 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
296 typedef struct _ACMDRIVERDETAILSW
298 DWORD cbStruct;
300 FOURCC fccType;
301 FOURCC fccComp;
303 WORD wMid;
304 WORD wPid;
306 DWORD vdwACM;
307 DWORD vdwDriver;
309 DWORD fdwSupport;
310 DWORD cFormatTags;
311 DWORD cFilterTags;
313 HICON hicon;
315 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
316 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
317 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
318 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
319 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
320 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
322 DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS)
323 DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS)
324 DECL_WINELIB_TYPE_AW(LPACMDRIVERDETAILS)
326 typedef struct _ACMFILTERCHOOSEA
328 DWORD cbStruct;
329 DWORD fdwStyle;
331 HWND hwndOwner;
333 PWAVEFILTER pwfltr;
334 DWORD cbwfltr;
336 LPCSTR pszTitle;
338 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
339 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
340 LPSTR pszName;
341 DWORD cchName;
343 DWORD fdwEnum;
344 PWAVEFILTER pwfltrEnum;
346 HINSTANCE hInstance;
347 LPCSTR pszTemplateName;
348 LPARAM lCustData;
349 ACMFILTERCHOOSEHOOKPROCA pfnHook;
350 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA, *LPACMFILTERCHOOSEA;
352 typedef struct _ACMFILTERCHOOSEW
354 DWORD cbStruct;
355 DWORD fdwStyle;
357 HWND hwndOwner;
359 PWAVEFILTER pwfltr;
360 DWORD cbwfltr;
362 LPCWSTR pszTitle;
364 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
365 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
366 LPWSTR pszName;
367 DWORD cchName;
369 DWORD fdwEnum;
370 PWAVEFILTER pwfltrEnum;
372 HINSTANCE hInstance;
373 LPCWSTR pszTemplateName;
374 LPARAM lCustData;
375 ACMFILTERCHOOSEHOOKPROCW pfnHook;
376 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW, *LPACMFILTERCHOOSEW;
378 DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE)
379 DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE)
380 DECL_WINELIB_TYPE_AW(LPACMFILTERCHOOSE)
382 typedef struct _ACMFILTERDETAILSA
384 DWORD cbStruct;
385 DWORD dwFilterIndex;
386 DWORD dwFilterTag;
387 DWORD fdwSupport;
388 PWAVEFILTER pwfltr;
389 DWORD cbwfltr;
390 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
391 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA, *LPACMFILTERDETAILSA;
393 typedef struct _ACMFILTERDETAILSW
395 DWORD cbStruct;
396 DWORD dwFilterIndex;
397 DWORD dwFilterTag;
398 DWORD fdwSupport;
399 PWAVEFILTER pwfltr;
400 DWORD cbwfltr;
401 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
402 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW, *LPACMFILTERDETAILSW;
404 DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS)
405 DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS)
406 DECL_WINELIB_TYPE_AW(LPACMFILTERDETAILS)
408 typedef struct _ACMFILTERTAGDETAILSA
410 DWORD cbStruct;
411 DWORD dwFilterTagIndex;
412 DWORD dwFilterTag;
413 DWORD cbFilterSize;
414 DWORD fdwSupport;
415 DWORD cStandardFilters;
416 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
417 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA, *LPACMFILTERTAGDETAILSA;
419 typedef struct _ACMFILTERTAGDETAILSW
421 DWORD cbStruct;
422 DWORD dwFilterTagIndex;
423 DWORD dwFilterTag;
424 DWORD cbFilterSize;
425 DWORD fdwSupport;
426 DWORD cStandardFilters;
427 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
428 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW, *LPACMFILTERTAGDETAILSW;
430 DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS)
431 DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS)
432 DECL_WINELIB_TYPE_AW(LPACMFILTERTAGDETAILS)
434 typedef struct _ACMFORMATCHOOSEA
436 DWORD cbStruct;
437 DWORD fdwStyle;
439 HWND hwndOwner;
441 PWAVEFORMATEX pwfx;
442 DWORD cbwfx;
443 LPCSTR pszTitle;
445 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
446 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
448 LPSTR pszName;
449 DWORD cchName;
451 DWORD fdwEnum;
452 PWAVEFORMATEX pwfxEnum;
454 HINSTANCE hInstance;
455 LPCSTR pszTemplateName;
456 LPARAM lCustData;
457 ACMFORMATCHOOSEHOOKPROCA pfnHook;
458 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA, *LPACMFORMATCHOOSEA;
460 typedef struct _ACMFORMATCHOOSEW
462 DWORD cbStruct;
463 DWORD fdwStyle;
465 HWND hwndOwner;
467 PWAVEFORMATEX pwfx;
468 DWORD cbwfx;
469 LPCWSTR pszTitle;
471 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
472 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
474 LPWSTR pszName;
475 DWORD cchName;
477 DWORD fdwEnum;
478 LPWAVEFORMATEX pwfxEnum;
480 HINSTANCE hInstance;
481 LPCWSTR pszTemplateName;
482 LPARAM lCustData;
483 ACMFORMATCHOOSEHOOKPROCW pfnHook;
484 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW, *LPACMFORMATCHOOSEW;
486 DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE)
487 DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE)
488 DECL_WINELIB_TYPE_AW(LPACMFORMATCHOOSE)
490 typedef struct _ACMFORMATDETAILSA
492 DWORD cbStruct;
493 DWORD dwFormatIndex;
494 DWORD dwFormatTag;
495 DWORD fdwSupport;
496 PWAVEFORMATEX pwfx;
497 DWORD cbwfx;
498 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
499 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
501 typedef struct _ACMFORMATDETAILSW
503 DWORD cbStruct;
504 DWORD dwFormatIndex;
505 DWORD dwFormatTag;
506 DWORD fdwSupport;
507 PWAVEFORMATEX pwfx;
508 DWORD cbwfx;
509 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
510 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
512 DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS)
513 DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS)
514 DECL_WINELIB_TYPE_AW(LPACMFORMATDETAILS)
516 typedef struct _ACMFORMATTAGDETAILSA
518 DWORD cbStruct;
519 DWORD dwFormatTagIndex;
520 DWORD dwFormatTag;
521 DWORD cbFormatSize;
522 DWORD fdwSupport;
523 DWORD cStandardFormats;
524 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
525 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
527 typedef struct _ACMFORMATTAGDETAILSW
529 DWORD cbStruct;
530 DWORD dwFormatTagIndex;
531 DWORD dwFormatTag;
532 DWORD cbFormatSize;
533 DWORD fdwSupport;
534 DWORD cStandardFormats;
535 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
536 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
538 DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS)
539 DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS)
540 DECL_WINELIB_TYPE_AW(LPACMFORMATTAGDETAILS)
542 typedef struct _ACMSTREAMHEADER
544 DWORD cbStruct;
545 DWORD fdwStatus;
546 DWORD dwUser;
547 LPBYTE pbSrc;
548 DWORD cbSrcLength;
549 DWORD cbSrcLengthUsed;
550 DWORD dwSrcUser;
551 LPBYTE pbDst;
552 DWORD cbDstLength;
553 DWORD cbDstLengthUsed;
554 DWORD dwDstUser;
555 DWORD dwReservedDriver[10];
556 } ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER;
558 /***********************************************************************
559 * Callbacks 2
562 typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
563 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
564 DWORD dwInstance, DWORD fdwSupport
567 typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
568 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
569 DWORD dwInstance, DWORD fdwSupport
572 #define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
574 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
575 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
576 DWORD dwInstance, DWORD fdwSupport
579 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
580 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
581 DWORD dwInstance, DWORD fdwSupport
584 #define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
586 typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
587 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
588 DWORD dwInstance, DWORD fdwSupport
591 typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
592 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
593 DWORD dwInstance, DWORD fdwSupport
596 #define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
598 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
599 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
600 DWORD dwInstance, DWORD fdwSupport
603 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
604 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
605 DWORD dwInstance, DWORD fdwSupport
608 #define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
610 /***********************************************************************
611 * Functions - Win32
614 MMRESULT WINAPI acmDriverAddA(
615 PHACMDRIVERID phadid, HINSTANCE hinstModule,
616 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
618 MMRESULT WINAPI acmDriverAddW(
619 PHACMDRIVERID phadid, HINSTANCE hinstModule,
620 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
622 #define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
624 MMRESULT WINAPI acmDriverClose(
625 HACMDRIVER had, DWORD fdwClose
627 MMRESULT WINAPI acmDriverDetailsA(
628 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
630 MMRESULT WINAPI acmDriverDetailsW(
631 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
633 #define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
635 MMRESULT WINAPI acmDriverEnum(
636 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
638 MMRESULT WINAPI acmDriverID(
639 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
641 LRESULT WINAPI acmDriverMessage(
642 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
644 MMRESULT WINAPI acmDriverOpen(
645 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
647 MMRESULT WINAPI acmDriverPriority(
648 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
650 MMRESULT WINAPI acmDriverRemove(
651 HACMDRIVERID hadid, DWORD fdwRemove
653 MMRESULT WINAPI acmFilterChooseA(
654 PACMFILTERCHOOSEA pafltrc
656 MMRESULT WINAPI acmFilterChooseW(
657 PACMFILTERCHOOSEW pafltrc
659 #define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose)
661 MMRESULT WINAPI acmFilterDetailsA(
662 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
664 MMRESULT WINAPI acmFilterDetailsW(
665 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
667 #define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails)
669 MMRESULT WINAPI acmFilterEnumA(
670 HACMDRIVER had, PACMFILTERDETAILSA pafd,
671 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
673 MMRESULT WINAPI acmFilterEnumW(
674 HACMDRIVER had, PACMFILTERDETAILSW pafd,
675 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
677 #define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum)
679 MMRESULT WINAPI acmFilterTagDetailsA(
680 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
682 MMRESULT WINAPI acmFilterTagDetailsW(
683 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
685 #define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails)
687 MMRESULT WINAPI acmFilterTagEnumA(
688 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
689 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
691 MMRESULT WINAPI acmFilterTagEnumW(
692 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
693 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
695 #define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum)
697 MMRESULT WINAPI acmFormatChooseA(
698 PACMFORMATCHOOSEA pafmtc
700 MMRESULT WINAPI acmFormatChooseW(
701 PACMFORMATCHOOSEW pafmtc
703 #define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose)
705 MMRESULT WINAPI acmFormatDetailsA(
706 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
708 MMRESULT WINAPI acmFormatDetailsW(
709 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
711 #define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails)
713 MMRESULT WINAPI acmFormatEnumA(
714 HACMDRIVER had, PACMFORMATDETAILSA pafd,
715 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
717 MMRESULT WINAPI acmFormatEnumW(
718 HACMDRIVER had, PACMFORMATDETAILSW pafd,
719 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
721 #define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
723 MMRESULT WINAPI acmFormatSuggest(
724 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
725 DWORD cbwfxDst, DWORD fdwSuggest
727 MMRESULT WINAPI acmFormatTagDetailsA(
728 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
730 MMRESULT WINAPI acmFormatTagDetailsW(
731 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
733 #define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails)
735 MMRESULT WINAPI acmFormatTagEnumA(
736 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
737 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
739 MMRESULT WINAPI acmFormatTagEnumW(
740 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
741 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
743 #define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
745 DWORD WINAPI acmGetVersion(void
747 MMRESULT WINAPI acmMetrics(
748 HACMOBJ hao, UINT uMetric, LPVOID pMetric
750 MMRESULT WINAPI acmStreamClose(
751 HACMSTREAM has, DWORD fdwClose
753 MMRESULT WINAPI acmStreamConvert(
754 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
756 MMRESULT WINAPI acmStreamMessage(
757 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
759 MMRESULT WINAPI acmStreamOpen(
760 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
761 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
762 DWORD dwInstance, DWORD fdwOpen
764 MMRESULT WINAPI acmStreamPrepareHeader(
765 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
767 MMRESULT WINAPI acmStreamReset(
768 HACMSTREAM has, DWORD fdwReset
770 MMRESULT WINAPI acmStreamSize(
771 HACMSTREAM has, DWORD cbInput,
772 LPDWORD pdwOutputBytes, DWORD fdwSize
774 MMRESULT WINAPI acmStreamUnprepareHeader(
775 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
778 #include <poppack.h>
780 #ifdef __cplusplus
781 } /* extern "C" */
782 #endif /* defined(__cplusplus) */
784 #endif /* __WINE_MSACM_H */