Added function table to GDI objects for better encapsulation.
[wine.git] / include / msacm.h
blobd0ea9e7f68fd84e0eed9b05e463cae1231c01d52
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 static const WCHAR ACMHELPMSGSTRINGW[] = { 'a','c','m',
111 'c','h','o','o','s','e','_','h','e','l','p',0 };
112 #define ACMHELPMSGSTRING WINELIB_NAME_AW(ACMHELPMSGSTRING)
114 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
115 static const WCHAR ACMHELPMSGCONTEXTMENUW[] = { 'a','c','m',
116 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','m','e','n','u',0 };
117 #define ACMHELPMSGCONTEXTMENU WINELIB_NAME_AW(ACMHELPMSGCONTEXTMENU)
119 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
120 static const WCHAR ACMHELPMSGCONTEXTHELPW[] = { 'a','c','m',
121 'c','h','o','o','s','e','_','c','o','n','t','e','x','t','h','e','l','p',0 };
122 #define ACMHELPMSGCONTEXTHELP WINELIB_NAME_AW(ACMHELPMSGCONTEXTHELP)
124 #define MM_ACM_FORMATCHOOSE 0x8000
126 #define FORMATCHOOSE_MESSAGE 0
127 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
128 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
129 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
131 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
132 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
133 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
134 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
135 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
136 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
138 #define ACMFORMATDETAILS_FORMAT_CHARS 128
140 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
141 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
142 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
144 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
145 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
146 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
147 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
148 #define ACM_FORMATENUMF_CONVERT 0x00100000L
149 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
150 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
151 #define ACM_FORMATENUMF_INPUT 0x00800000L
152 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
154 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
155 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
156 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
157 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
158 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
160 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
162 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
163 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
164 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
165 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
167 #define ACM_METRIC_COUNT_DRIVERS 1
168 #define ACM_METRIC_COUNT_CODECS 2
169 #define ACM_METRIC_COUNT_CONVERTERS 3
170 #define ACM_METRIC_COUNT_FILTERS 4
171 #define ACM_METRIC_COUNT_DISABLED 5
172 #define ACM_METRIC_COUNT_HARDWARE 6
173 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
174 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
175 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
176 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
177 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
178 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
179 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
180 #define ACM_METRIC_MAX_SIZE_FORMAT 50
181 #define ACM_METRIC_MAX_SIZE_FILTER 51
182 #define ACM_METRIC_DRIVER_SUPPORT 100
183 #define ACM_METRIC_DRIVER_PRIORITY 101
185 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
186 #define ACM_STREAMCONVERTF_START 0x00000010
187 #define ACM_STREAMCONVERTF_END 0x00000020
189 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
190 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
191 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
193 #define ACM_STREAMOPENF_QUERY 0x00000001
194 #define ACM_STREAMOPENF_ASYNC 0x00000002
195 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
197 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
198 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
199 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
201 #define ACMDM_USER (DRV_USER + 0x0000)
202 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
203 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
205 #define ACMDM_BASE ACMDM_RESERVED_LOW
207 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
209 /* handles */
211 DECLARE_HANDLE(HACMDRIVERID);
212 DECLARE_HANDLE(HACMDRIVER);
213 DECLARE_HANDLE(HACMSTREAM);
214 DECLARE_HANDLE(HACMOBJ);
216 /***********************************************************************
217 * Callbacks
220 typedef BOOL (CALLBACK *ACMDRIVERENUMCB)(
221 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
224 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(
225 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
228 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(
229 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
231 #define ACMFILTERCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFILTERCHOOSEHOOKPROC)
233 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(
234 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
237 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(
238 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
240 #define ACMFORMATCHOOSEHOOKPROC WINELIB_NAME_AW(ACMFORMATCHOOSEHOOKPROC)
242 /***********************************************************************
243 * Structures
246 typedef struct _ACMDRIVERDETAILSA
248 DWORD cbStruct;
250 FOURCC fccType;
251 FOURCC fccComp;
253 WORD wMid;
254 WORD wPid;
256 DWORD vdwACM;
257 DWORD vdwDriver;
259 DWORD fdwSupport;
260 DWORD cFormatTags;
261 DWORD cFilterTags;
263 HICON hicon;
265 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
266 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
267 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
268 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
269 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
270 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA, *LPACMDRIVERDETAILSA;
272 typedef struct _ACMDRIVERDETAILSW
274 DWORD cbStruct;
276 FOURCC fccType;
277 FOURCC fccComp;
279 WORD wMid;
280 WORD wPid;
282 DWORD vdwACM;
283 DWORD vdwDriver;
285 DWORD fdwSupport;
286 DWORD cFormatTags;
287 DWORD cFilterTags;
289 HICON hicon;
291 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
292 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
293 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
294 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
295 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
296 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW, *LPACMDRIVERDETAILSW;
298 DECL_WINELIB_TYPE_AW(ACMDRIVERDETAILS)
299 DECL_WINELIB_TYPE_AW(PACMDRIVERDETAILS)
300 DECL_WINELIB_TYPE_AW(LPACMDRIVERDETAILS)
302 typedef struct _ACMFILTERCHOOSEA
304 DWORD cbStruct;
305 DWORD fdwStyle;
307 HWND hwndOwner;
309 PWAVEFILTER pwfltr;
310 DWORD cbwfltr;
312 LPCSTR pszTitle;
314 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
315 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
316 LPSTR pszName;
317 DWORD cchName;
319 DWORD fdwEnum;
320 PWAVEFILTER pwfltrEnum;
322 HINSTANCE hInstance;
323 LPCSTR pszTemplateName;
324 LPARAM lCustData;
325 ACMFILTERCHOOSEHOOKPROCA pfnHook;
326 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA, *LPACMFILTERCHOOSEA;
328 typedef struct _ACMFILTERCHOOSEW
330 DWORD cbStruct;
331 DWORD fdwStyle;
333 HWND hwndOwner;
335 PWAVEFILTER pwfltr;
336 DWORD cbwfltr;
338 LPCWSTR pszTitle;
340 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
341 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
342 LPWSTR pszName;
343 DWORD cchName;
345 DWORD fdwEnum;
346 PWAVEFILTER pwfltrEnum;
348 HINSTANCE hInstance;
349 LPCWSTR pszTemplateName;
350 LPARAM lCustData;
351 ACMFILTERCHOOSEHOOKPROCW pfnHook;
352 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW, *LPACMFILTERCHOOSEW;
354 DECL_WINELIB_TYPE_AW(ACMFILTERCHOOSE)
355 DECL_WINELIB_TYPE_AW(PACMFILTERCHOOSE)
356 DECL_WINELIB_TYPE_AW(LPACMFILTERCHOOSE)
358 typedef struct _ACMFILTERDETAILSA
360 DWORD cbStruct;
361 DWORD dwFilterIndex;
362 DWORD dwFilterTag;
363 DWORD fdwSupport;
364 PWAVEFILTER pwfltr;
365 DWORD cbwfltr;
366 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
367 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA, *LPACMFILTERDETAILSA;
369 typedef struct _ACMFILTERDETAILSW
371 DWORD cbStruct;
372 DWORD dwFilterIndex;
373 DWORD dwFilterTag;
374 DWORD fdwSupport;
375 PWAVEFILTER pwfltr;
376 DWORD cbwfltr;
377 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
378 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW, *LPACMFILTERDETAILSW;
380 DECL_WINELIB_TYPE_AW(ACMFILTERDETAILS)
381 DECL_WINELIB_TYPE_AW(PACMFILTERDETAILS)
382 DECL_WINELIB_TYPE_AW(LPACMFILTERDETAILS)
384 typedef struct _ACMFILTERTAGDETAILSA
386 DWORD cbStruct;
387 DWORD dwFilterTagIndex;
388 DWORD dwFilterTag;
389 DWORD cbFilterSize;
390 DWORD fdwSupport;
391 DWORD cStandardFilters;
392 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
393 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA, *LPACMFILTERTAGDETAILSA;
395 typedef struct _ACMFILTERTAGDETAILSW
397 DWORD cbStruct;
398 DWORD dwFilterTagIndex;
399 DWORD dwFilterTag;
400 DWORD cbFilterSize;
401 DWORD fdwSupport;
402 DWORD cStandardFilters;
403 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
404 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW, *LPACMFILTERTAGDETAILSW;
406 DECL_WINELIB_TYPE_AW(ACMFILTERTAGDETAILS)
407 DECL_WINELIB_TYPE_AW(PACMFILTERTAGDETAILS)
408 DECL_WINELIB_TYPE_AW(LPACMFILTERTAGDETAILS)
410 typedef struct _ACMFORMATCHOOSEA
412 DWORD cbStruct;
413 DWORD fdwStyle;
415 HWND hwndOwner;
417 PWAVEFORMATEX pwfx;
418 DWORD cbwfx;
419 LPCSTR pszTitle;
421 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
422 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
424 LPSTR pszName;
425 DWORD cchName;
427 DWORD fdwEnum;
428 PWAVEFORMATEX pwfxEnum;
430 HINSTANCE hInstance;
431 LPCSTR pszTemplateName;
432 LPARAM lCustData;
433 ACMFORMATCHOOSEHOOKPROCA pfnHook;
434 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA, *LPACMFORMATCHOOSEA;
436 typedef struct _ACMFORMATCHOOSEW
438 DWORD cbStruct;
439 DWORD fdwStyle;
441 HWND hwndOwner;
443 PWAVEFORMATEX pwfx;
444 DWORD cbwfx;
445 LPCWSTR pszTitle;
447 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
448 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
450 LPWSTR pszName;
451 DWORD cchName;
453 DWORD fdwEnum;
454 LPWAVEFORMATEX pwfxEnum;
456 HINSTANCE hInstance;
457 LPCWSTR pszTemplateName;
458 LPARAM lCustData;
459 ACMFORMATCHOOSEHOOKPROCW pfnHook;
460 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW, *LPACMFORMATCHOOSEW;
462 DECL_WINELIB_TYPE_AW(ACMFORMATCHOOSE)
463 DECL_WINELIB_TYPE_AW(PACMFORMATCHOOSE)
464 DECL_WINELIB_TYPE_AW(LPACMFORMATCHOOSE)
466 typedef struct _ACMFORMATDETAILSA
468 DWORD cbStruct;
469 DWORD dwFormatIndex;
470 DWORD dwFormatTag;
471 DWORD fdwSupport;
472 PWAVEFORMATEX pwfx;
473 DWORD cbwfx;
474 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
475 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA, *LPACMFORMATDETAILSA;
477 typedef struct _ACMFORMATDETAILSW
479 DWORD cbStruct;
480 DWORD dwFormatIndex;
481 DWORD dwFormatTag;
482 DWORD fdwSupport;
483 PWAVEFORMATEX pwfx;
484 DWORD cbwfx;
485 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
486 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW, *LPACMFORMATDETAILSW;
488 DECL_WINELIB_TYPE_AW(ACMFORMATDETAILS)
489 DECL_WINELIB_TYPE_AW(PACMFORMATDETAILS)
490 DECL_WINELIB_TYPE_AW(LPACMFORMATDETAILS)
492 typedef struct _ACMFORMATTAGDETAILSA
494 DWORD cbStruct;
495 DWORD dwFormatTagIndex;
496 DWORD dwFormatTag;
497 DWORD cbFormatSize;
498 DWORD fdwSupport;
499 DWORD cStandardFormats;
500 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
501 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA, *LPACMFORMATTAGDETAILSA;
503 typedef struct _ACMFORMATTAGDETAILSW
505 DWORD cbStruct;
506 DWORD dwFormatTagIndex;
507 DWORD dwFormatTag;
508 DWORD cbFormatSize;
509 DWORD fdwSupport;
510 DWORD cStandardFormats;
511 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
512 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW, *LPACMFORMATTAGDETAILSW;
514 DECL_WINELIB_TYPE_AW(ACMFORMATTAGDETAILS)
515 DECL_WINELIB_TYPE_AW(PACMFORMATTAGDETAILS)
516 DECL_WINELIB_TYPE_AW(LPACMFORMATTAGDETAILS)
518 typedef struct _ACMSTREAMHEADER
520 DWORD cbStruct;
521 DWORD fdwStatus;
522 DWORD dwUser;
523 LPBYTE pbSrc;
524 DWORD cbSrcLength;
525 DWORD cbSrcLengthUsed;
526 DWORD dwSrcUser;
527 LPBYTE pbDst;
528 DWORD cbDstLength;
529 DWORD cbDstLengthUsed;
530 DWORD dwDstUser;
531 DWORD dwReservedDriver[10];
532 } ACMSTREAMHEADER, *PACMSTREAMHEADER, *LPACMSTREAMHEADER;
534 /***********************************************************************
535 * Callbacks 2
538 typedef BOOL (CALLBACK *ACMFILTERENUMCBA)(
539 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
540 DWORD dwInstance, DWORD fdwSupport
543 typedef BOOL (CALLBACK *ACMFILTERENUMCBW)(
544 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
545 DWORD dwInstance, DWORD fdwSupport
548 #define ACMFILTERENUMCB WINELIB_NAME_AW(ACMFILTERENUMCB)
550 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBA)(
551 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
552 DWORD dwInstance, DWORD fdwSupport
555 typedef BOOL (CALLBACK *ACMFILTERTAGENUMCBW)(
556 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
557 DWORD dwInstance, DWORD fdwSupport
560 #define ACMFILTERTAGENUMCB WINELIB_NAME_AW(ACMFILTERTAGENUMCB)
562 typedef BOOL (CALLBACK *ACMFORMATENUMCBA)(
563 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
564 DWORD dwInstance, DWORD fdwSupport
567 typedef BOOL (CALLBACK *ACMFORMATENUMCBW)(
568 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
569 DWORD dwInstance, DWORD fdwSupport
572 #define ACMFORMATENUMCB WINELIB_NAME_AW(ACMFORMATENUMCB)
574 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBA)(
575 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
576 DWORD dwInstance, DWORD fdwSupport
579 typedef BOOL (CALLBACK *ACMFORMATTAGENUMCBW)(
580 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
581 DWORD dwInstance, DWORD fdwSupport
584 #define ACMFORMATTAGENUMCB WINELIB_NAME_AW(ACMFORMATTAGENUMCB)
586 /***********************************************************************
587 * Functions - Win32
590 MMRESULT WINAPI acmDriverAddA(
591 PHACMDRIVERID phadid, HINSTANCE hinstModule,
592 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
594 MMRESULT WINAPI acmDriverAddW(
595 PHACMDRIVERID phadid, HINSTANCE hinstModule,
596 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
598 #define acmDriverAdd WINELIB_NAME_AW(acmDriverAdd)
600 MMRESULT WINAPI acmDriverClose(
601 HACMDRIVER had, DWORD fdwClose
603 MMRESULT WINAPI acmDriverDetailsA(
604 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
606 MMRESULT WINAPI acmDriverDetailsW(
607 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
609 #define acmDriverDetails WINELIB_NAME_AW(acmDriverDetails)
611 MMRESULT WINAPI acmDriverEnum(
612 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
614 MMRESULT WINAPI acmDriverID(
615 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
617 LRESULT WINAPI acmDriverMessage(
618 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
620 MMRESULT WINAPI acmDriverOpen(
621 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
623 MMRESULT WINAPI acmDriverPriority(
624 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
626 MMRESULT WINAPI acmDriverRemove(
627 HACMDRIVERID hadid, DWORD fdwRemove
629 MMRESULT WINAPI acmFilterChooseA(
630 PACMFILTERCHOOSEA pafltrc
632 MMRESULT WINAPI acmFilterChooseW(
633 PACMFILTERCHOOSEW pafltrc
635 #define acmFilterChoose WINELIB_NAME_AW(acmFilterChoose)
637 MMRESULT WINAPI acmFilterDetailsA(
638 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
640 MMRESULT WINAPI acmFilterDetailsW(
641 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
643 #define acmFilterDetails WINELIB_NAME_AW(acmFilterDetails)
645 MMRESULT WINAPI acmFilterEnumA(
646 HACMDRIVER had, PACMFILTERDETAILSA pafd,
647 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
649 MMRESULT WINAPI acmFilterEnumW(
650 HACMDRIVER had, PACMFILTERDETAILSW pafd,
651 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
653 #define acmFilterEnum WINELIB_NAME_AW(acmFilterEnum)
655 MMRESULT WINAPI acmFilterTagDetailsA(
656 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
658 MMRESULT WINAPI acmFilterTagDetailsW(
659 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
661 #define acmFilterTagDetails WINELIB_NAME_AW(acmFilterTagDetails)
663 MMRESULT WINAPI acmFilterTagEnumA(
664 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
665 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
667 MMRESULT WINAPI acmFilterTagEnumW(
668 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
669 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
671 #define acmFilterTagEnum WINELIB_NAME_AW(acmFilterTagEnum)
673 MMRESULT WINAPI acmFormatChooseA(
674 PACMFORMATCHOOSEA pafmtc
676 MMRESULT WINAPI acmFormatChooseW(
677 PACMFORMATCHOOSEW pafmtc
679 #define acmFormatChoose WINELIB_NAME_AW(acmFormatChoose)
681 MMRESULT WINAPI acmFormatDetailsA(
682 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
684 MMRESULT WINAPI acmFormatDetailsW(
685 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
687 #define acmFormatDetails WINELIB_NAME_AW(acmFormatDetails)
689 MMRESULT WINAPI acmFormatEnumA(
690 HACMDRIVER had, PACMFORMATDETAILSA pafd,
691 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
693 MMRESULT WINAPI acmFormatEnumW(
694 HACMDRIVER had, PACMFORMATDETAILSW pafd,
695 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
697 #define acmFormatEnum WINELIB_NAME_AW(acmFormatEnum)
699 MMRESULT WINAPI acmFormatSuggest(
700 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
701 DWORD cbwfxDst, DWORD fdwSuggest
703 MMRESULT WINAPI acmFormatTagDetailsA(
704 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
706 MMRESULT WINAPI acmFormatTagDetailsW(
707 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
709 #define acmFormatTagDetails WINELIB_NAME_AW(acmFormatTagDetails)
711 MMRESULT WINAPI acmFormatTagEnumA(
712 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
713 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
715 MMRESULT WINAPI acmFormatTagEnumW(
716 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
717 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
719 #define acmFormatTagEnum WINELIB_NAME_AW(acmFormatTagEnum)
721 DWORD WINAPI acmGetVersion(void
723 MMRESULT WINAPI acmMetrics(
724 HACMOBJ hao, UINT uMetric, LPVOID pMetric
726 MMRESULT WINAPI acmStreamClose(
727 HACMSTREAM has, DWORD fdwClose
729 MMRESULT WINAPI acmStreamConvert(
730 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
732 MMRESULT WINAPI acmStreamMessage(
733 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
735 MMRESULT WINAPI acmStreamOpen(
736 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
737 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
738 DWORD dwInstance, DWORD fdwOpen
740 MMRESULT WINAPI acmStreamPrepareHeader(
741 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
743 MMRESULT WINAPI acmStreamReset(
744 HACMSTREAM has, DWORD fdwReset
746 MMRESULT WINAPI acmStreamSize(
747 HACMSTREAM has, DWORD cbInput,
748 LPDWORD pdwOutputBytes, DWORD fdwSize
750 MMRESULT WINAPI acmStreamUnprepareHeader(
751 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
754 #ifdef __cplusplus
755 } /* extern "C" */
756 #endif /* defined(__cplusplus) */
758 #endif /* __WINE_MSACM_H */