win32: get_path(): fix undefined behavior
[mplayer.git] / loader / wine / msacm.h
blobe8cf3dabdd9914ce6b3faf39ff75fd21cc7c1585
1 /*
2 * msacm.h - Declarations for MSACM
3 */
5 #ifndef MPLAYER_MSACM_H
6 #define MPLAYER_MSACM_H
8 #include "windef.h"
9 #include "driver.h"
10 #include "mmreg.h"
12 //typedef WORD VERSION; /* major (high byte), minor (low byte) */
14 typedef UINT16 MMVERSION16;
15 typedef UINT MMVERSION;
16 typedef UINT16 MCIDEVICEID16;
17 typedef UINT MCIDEVICEID;
18 typedef UINT16 MMRESULT16;
19 typedef UINT MMRESULT;
20 typedef DWORD FOURCC; /* a four character code */
24 #if !defined(WAVE_FORMAT_PCM)
25 #define WAVE_FORMAT_PCM 1
26 #endif
28 /***********************************************************************
29 * Defines/Enums
32 #define ACMERR_BASE 512
33 #define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
34 #define ACMERR_BUSY (ACMERR_BASE + 1)
35 #define ACMERR_UNPREPARED (ACMERR_BASE + 2)
36 #define ACMERR_CANCELED (ACMERR_BASE + 3)
38 #define MM_ACM_OPEN MM_STREAM_OPEN
39 #define MM_ACM_CLOSE MM_STREAM_CLOSE
40 #define MM_ACM_DONE MM_STREAM_DONE
42 #define ACM_DRIVERADDF_FUNCTION 0x00000003L
43 #define ACM_DRIVERADDF_NOTIFYHWND 0x00000004L
44 #define ACM_DRIVERADDF_TYPEMASK 0x00000007L
45 #define ACM_DRIVERADDF_LOCAL 0x00000000L
46 #define ACM_DRIVERADDF_GLOBAL 0x00000008L
48 #define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
49 #define ACMDRIVERDETAILS_LONGNAME_CHARS 128
50 #define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
51 #define ACMDRIVERDETAILS_LICENSING_CHARS 128
52 #define ACMDRIVERDETAILS_FEATURES_CHARS 512
54 #define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a', 'u', 'd', 'c')
55 #define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0', '\0', '\0', '\0')
57 #define ACMDRIVERDETAILS_SUPPORTF_CODEC 0x00000001L
58 #define ACMDRIVERDETAILS_SUPPORTF_CONVERTER 0x00000002L
59 #define ACMDRIVERDETAILS_SUPPORTF_FILTER 0x00000004L
60 #define ACMDRIVERDETAILS_SUPPORTF_HARDWARE 0x00000008L
61 #define ACMDRIVERDETAILS_SUPPORTF_ASYNC 0x00000010L
62 #define ACMDRIVERDETAILS_SUPPORTF_LOCAL 0x40000000L
63 #define ACMDRIVERDETAILS_SUPPORTF_DISABLED 0x80000000L
65 #define ACM_DRIVERENUMF_NOLOCAL 0x40000000L
66 #define ACM_DRIVERENUMF_DISABLED 0x80000000L
68 #define ACM_DRIVERPRIORITYF_ENABLE 0x00000001L
69 #define ACM_DRIVERPRIORITYF_DISABLE 0x00000002L
70 #define ACM_DRIVERPRIORITYF_ABLEMASK 0x00000003L
71 #define ACM_DRIVERPRIORITYF_BEGIN 0x00010000L
72 #define ACM_DRIVERPRIORITYF_END 0x00020000L
73 #define ACM_DRIVERPRIORITYF_DEFERMASK 0x00030000L
75 #define MM_ACM_FILTERCHOOSE 0x8000
77 #define FILTERCHOOSE_MESSAGE 0
78 #define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
79 #define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
80 #define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
82 #define ACMFILTERCHOOSE_STYLEF_SHOWHELP 0x00000004L
83 #define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
84 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
85 #define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
86 #define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT 0x00000040L
87 #define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
89 #define ACMFILTERDETAILS_FILTER_CHARS 128
91 #define ACM_FILTERDETAILSF_INDEX 0x00000000L
92 #define ACM_FILTERDETAILSF_FILTER 0x00000001L
93 #define ACM_FILTERDETAILSF_QUERYMASK 0x0000000FL
95 #define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
97 #define ACM_FILTERTAGDETAILSF_INDEX 0x00000000L
98 #define ACM_FILTERTAGDETAILSF_FILTERTAG 0x00000001L
99 #define ACM_FILTERTAGDETAILSF_LARGESTSIZE 0x00000002L
100 #define ACM_FILTERTAGDETAILSF_QUERYMASK 0x0000000FL
102 #define ACM_FILTERENUMF_DWFILTERTAG 0x00010000L
104 #define ACMHELPMSGSTRINGA "acmchoose_help"
105 #define ACMHELPMSGSTRINGW L"acmchoose_help"
106 #define ACMHELPMSGSTRING16 "acmchoose_help"
108 #define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
109 #define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
110 #define ACMHELPMSGCONTEXTMENU16 "acmchoose_contextmenu"
112 #define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
113 #define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
114 #define ACMHELPMSGCONTEXTHELP16 "acmchoose_contexthelp"
116 #define MM_ACM_FORMATCHOOSE 0x8000
118 #define FORMATCHOOSE_MESSAGE 0
119 #define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
120 #define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
121 #define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
123 #define ACMFORMATCHOOSE_STYLEF_SHOWHELP 0x00000004L
124 #define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK 0x00000008L
125 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE 0x00000010L
126 #define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE 0x00000020L
127 #define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT 0x00000040L
128 #define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP 0x00000080L
130 #define ACMFORMATDETAILS_FORMAT_CHARS 128
132 #define ACM_FORMATDETAILSF_INDEX 0x00000000L
133 #define ACM_FORMATDETAILSF_FORMAT 0x00000001L
134 #define ACM_FORMATDETAILSF_QUERYMASK 0x0000000FL
136 #define ACM_FORMATENUMF_WFORMATTAG 0x00010000L
137 #define ACM_FORMATENUMF_NCHANNELS 0x00020000L
138 #define ACM_FORMATENUMF_NSAMPLESPERSEC 0x00040000L
139 #define ACM_FORMATENUMF_WBITSPERSAMPLE 0x00080000L
140 #define ACM_FORMATENUMF_CONVERT 0x00100000L
141 #define ACM_FORMATENUMF_SUGGEST 0x00200000L
142 #define ACM_FORMATENUMF_HARDWARE 0x00400000L
143 #define ACM_FORMATENUMF_INPUT 0x00800000L
144 #define ACM_FORMATENUMF_OUTPUT 0x01000000L
146 #define ACM_FORMATSUGGESTF_WFORMATTAG 0x00010000L
147 #define ACM_FORMATSUGGESTF_NCHANNELS 0x00020000L
148 #define ACM_FORMATSUGGESTF_NSAMPLESPERSEC 0x00040000L
149 #define ACM_FORMATSUGGESTF_WBITSPERSAMPLE 0x00080000L
150 #define ACM_FORMATSUGGESTF_TYPEMASK 0x00FF0000L
152 #define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
154 #define ACM_FORMATTAGDETAILSF_INDEX 0x00000000L
155 #define ACM_FORMATTAGDETAILSF_FORMATTAG 0x00000001L
156 #define ACM_FORMATTAGDETAILSF_LARGESTSIZE 0x00000002L
157 #define ACM_FORMATTAGDETAILSF_QUERYMASK 0x0000000FL
159 #define ACM_METRIC_COUNT_DRIVERS 1
160 #define ACM_METRIC_COUNT_CODECS 2
161 #define ACM_METRIC_COUNT_CONVERTERS 3
162 #define ACM_METRIC_COUNT_FILTERS 4
163 #define ACM_METRIC_COUNT_DISABLED 5
164 #define ACM_METRIC_COUNT_HARDWARE 6
165 #define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
166 #define ACM_METRIC_COUNT_LOCAL_CODECS 21
167 #define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
168 #define ACM_METRIC_COUNT_LOCAL_FILTERS 23
169 #define ACM_METRIC_COUNT_LOCAL_DISABLED 24
170 #define ACM_METRIC_HARDWARE_WAVE_INPUT 30
171 #define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
172 #define ACM_METRIC_MAX_SIZE_FORMAT 50
173 #define ACM_METRIC_MAX_SIZE_FILTER 51
174 #define ACM_METRIC_DRIVER_SUPPORT 100
175 #define ACM_METRIC_DRIVER_PRIORITY 101
177 #define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
178 #define ACM_STREAMCONVERTF_START 0x00000010
179 #define ACM_STREAMCONVERTF_END 0x00000020
181 #define ACMSTREAMHEADER_STATUSF_DONE 0x00010000L
182 #define ACMSTREAMHEADER_STATUSF_PREPARED 0x00020000L
183 #define ACMSTREAMHEADER_STATUSF_INQUEUE 0x00100000L
185 #define ACM_STREAMOPENF_QUERY 0x00000001
186 #define ACM_STREAMOPENF_ASYNC 0x00000002
187 #define ACM_STREAMOPENF_NONREALTIME 0x00000004
189 #define ACM_STREAMSIZEF_SOURCE 0x00000000L
190 #define ACM_STREAMSIZEF_DESTINATION 0x00000001L
191 #define ACM_STREAMSIZEF_QUERYMASK 0x0000000FL
193 #define ACMDM_USER (DRV_USER + 0x0000)
194 #define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
195 #define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
197 #define ACMDM_BASE ACMDM_RESERVED_LOW
199 #define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
201 /***********************************************************************
202 * Callbacks
205 typedef WIN_BOOL CALLBACK ( *ACMDRIVERENUMCB)(
206 HACMDRIVERID hadid, DWORD dwInstance, DWORD fdwSupport
209 typedef WIN_BOOL16 CALLBACK ( *ACMDRIVERENUMCB16)(
210 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
213 typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCA)(
214 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
217 typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROCW)(
218 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
221 typedef UINT CALLBACK ( *ACMFILTERCHOOSEHOOKPROC16)(
222 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
225 typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCA)(
226 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
229 typedef UINT CALLBACK ( *ACMFORMATCHOOSEHOOKPROCW)(
230 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
233 typedef UINT16 CALLBACK ( *ACMFORMATCHOOSEHOOKPROC16)(
234 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
237 /***********************************************************************
238 * Structures
241 typedef struct ACMDRIVERDETAILSA
243 DWORD cbStruct;
245 FOURCC fccType;
246 FOURCC fccComp;
248 WORD wMid;
249 WORD wPid;
251 DWORD vdwACM;
252 DWORD vdwDriver;
254 DWORD fdwSupport;
255 DWORD cFormatTags;
256 DWORD cFilterTags;
258 HICON hicon;
260 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
261 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
262 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
263 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
264 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
265 } ACMDRIVERDETAILSA, *PACMDRIVERDETAILSA;
267 typedef struct ACMDRIVERDETAILSW
269 DWORD cbStruct;
271 FOURCC fccType;
272 FOURCC fccComp;
274 WORD wMid;
275 WORD wPid;
277 DWORD vdwACM;
278 DWORD vdwDriver;
280 DWORD fdwSupport;
281 DWORD cFormatTags;
282 DWORD cFilterTags;
284 HICON hicon;
286 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
287 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
288 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
289 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
290 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
291 } ACMDRIVERDETAILSW, *PACMDRIVERDETAILSW;
293 typedef struct ACMDRIVERDETAILS16
295 DWORD cbStruct;
297 FOURCC fccType;
298 FOURCC fccComp;
300 WORD wMid;
301 WORD wPid;
303 DWORD vdwACM;
304 DWORD vdwDriver;
306 DWORD fdwSupport;
307 DWORD cFormatTags;
308 DWORD cFilterTags;
310 HICON16 hicon;
312 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
313 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
314 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
315 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
316 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
317 } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
319 typedef struct ACMFILTERCHOOSEA
321 DWORD cbStruct;
322 DWORD fdwStyle;
324 HWND hwndOwner;
326 PWAVEFILTER pwfltr;
327 DWORD cbwfltr;
329 LPCSTR pszTitle;
331 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
332 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
333 LPSTR pszName;
334 DWORD cchName;
336 DWORD fdwEnum;
337 PWAVEFILTER pwfltrEnum;
339 HINSTANCE hInstance;
340 LPCSTR pszTemplateName;
341 LPARAM lCustData;
342 ACMFILTERCHOOSEHOOKPROCA pfnHook;
343 } ACMFILTERCHOOSEA, *PACMFILTERCHOOSEA;
345 typedef struct ACMFILTERCHOOSEW
347 DWORD cbStruct;
348 DWORD fdwStyle;
350 HWND hwndOwner;
352 PWAVEFILTER pwfltr;
353 DWORD cbwfltr;
355 LPCWSTR pszTitle;
357 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
358 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
359 LPWSTR pszName;
360 DWORD cchName;
362 DWORD fdwEnum;
363 PWAVEFILTER pwfltrEnum;
365 HINSTANCE hInstance;
366 LPCWSTR pszTemplateName;
367 LPARAM lCustData;
368 ACMFILTERCHOOSEHOOKPROCW pfnHook;
369 } ACMFILTERCHOOSEW, *PACMFILTERCHOOSEW;
371 typedef struct ACMFILTERCHOOSE16
373 DWORD cbStruct;
374 DWORD fdwStyle;
376 HWND16 hwndOwner;
378 LPWAVEFILTER pwfltr;
379 DWORD cbwfltr;
381 LPCSTR pszTitle;
383 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
384 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
385 LPSTR pszName;
386 DWORD cchName;
388 DWORD fdwEnum;
389 LPWAVEFILTER pwfltrEnum;
391 HINSTANCE16 hInstance;
392 LPCSTR pszTemplateName;
393 LPARAM lCustData;
394 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
395 } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
397 typedef struct ACMFILTERDETAILSA
399 DWORD cbStruct;
400 DWORD dwFilterIndex;
401 DWORD dwFilterTag;
402 DWORD fdwSupport;
403 PWAVEFILTER pwfltr;
404 DWORD cbwfltr;
405 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
406 } ACMFILTERDETAILSA, *PACMFILTERDETAILSA;
408 typedef struct ACMFILTERDETAILSW
410 DWORD cbStruct;
411 DWORD dwFilterIndex;
412 DWORD dwFilterTag;
413 DWORD fdwSupport;
414 PWAVEFILTER pwfltr;
415 DWORD cbwfltr;
416 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
417 } ACMFILTERDETAILSW, *PACMFILTERDETAILSW;
419 typedef struct ACMFILTERDETAILS16
421 DWORD cbStruct;
422 DWORD dwFilterIndex;
423 DWORD dwFilterTag;
424 DWORD fdwSupport;
425 LPWAVEFILTER pwfltr;
426 DWORD cbwfltr;
427 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
428 } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
430 typedef struct ACMFILTERTAGDETAILSA
432 DWORD cbStruct;
433 DWORD dwFilterTagIndex;
434 DWORD dwFilterTag;
435 DWORD cbFilterSize;
436 DWORD fdwSupport;
437 DWORD cStandardFilters;
438 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
439 } ACMFILTERTAGDETAILSA, *PACMFILTERTAGDETAILSA;
441 typedef struct ACMFILTERTAGDETAILSW
443 DWORD cbStruct;
444 DWORD dwFilterTagIndex;
445 DWORD dwFilterTag;
446 DWORD cbFilterSize;
447 DWORD fdwSupport;
448 DWORD cStandardFilters;
449 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
450 } ACMFILTERTAGDETAILSW, *PACMFILTERTAGDETAILSW;
452 typedef struct ACMFILTERTAGDETAILS16
454 DWORD cbStruct;
455 DWORD dwFilterTagIndex;
456 DWORD dwFilterTag;
457 DWORD cbFilterSize;
458 DWORD fdwSupport;
459 DWORD cStandardFilters;
460 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
461 } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
463 typedef struct ACMFORMATCHOOSEA
465 DWORD cbStruct;
466 DWORD fdwStyle;
468 HWND hwndOwner;
470 PWAVEFORMATEX pwfx;
471 DWORD cbwfx;
472 LPCSTR pszTitle;
474 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
475 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
477 LPSTR pszName;
478 DWORD cchName;
480 DWORD fdwEnum;
481 PWAVEFORMATEX pwfxEnum;
483 HINSTANCE hInstance;
484 LPCSTR pszTemplateName;
485 LPARAM lCustData;
486 ACMFORMATCHOOSEHOOKPROCA pfnHook;
487 } ACMFORMATCHOOSEA, *PACMFORMATCHOOSEA;
489 typedef struct ACMFORMATCHOOSEW
491 DWORD cbStruct;
492 DWORD fdwStyle;
494 HWND hwndOwner;
496 PWAVEFORMATEX pwfx;
497 DWORD cbwfx;
498 LPCWSTR pszTitle;
500 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
501 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
503 LPWSTR pszName;
504 DWORD cchName;
506 DWORD fdwEnum;
507 LPWAVEFORMATEX pwfxEnum;
509 HINSTANCE hInstance;
510 LPCWSTR pszTemplateName;
511 LPARAM lCustData;
512 ACMFORMATCHOOSEHOOKPROCW pfnHook;
513 } ACMFORMATCHOOSEW, *PACMFORMATCHOOSEW;
515 typedef struct ACMFORMATCHOOSE16
517 DWORD cbStruct;
518 DWORD fdwStyle;
520 HWND16 hwndOwner;
522 LPWAVEFORMATEX pwfx;
523 DWORD cbwfx;
524 LPCSTR pszTitle;
526 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
527 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
529 LPSTR pszName;
530 DWORD cchName;
532 DWORD fdwEnum;
533 LPWAVEFORMATEX pwfxEnum;
535 HINSTANCE16 hInstance;
536 LPCSTR pszTemplateName;
537 LPARAM lCustData;
538 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
539 } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
541 typedef struct ACMFORMATDETAILSA
543 DWORD cbStruct;
544 DWORD dwFormatIndex;
545 DWORD dwFormatTag;
546 DWORD fdwSupport;
547 PWAVEFORMATEX pwfx;
548 DWORD cbwfx;
549 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
550 } ACMFORMATDETAILSA, *PACMFORMATDETAILSA;
552 typedef struct ACMFORMATDETAILSW
554 DWORD cbStruct;
555 DWORD dwFormatIndex;
556 DWORD dwFormatTag;
557 DWORD fdwSupport;
558 PWAVEFORMATEX pwfx;
559 DWORD cbwfx;
560 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
561 } ACMFORMATDETAILSW, *PACMFORMATDETAILSW;
563 typedef struct ACMFORMATDETAILS16
565 DWORD cbStruct;
566 DWORD dwFormatIndex;
567 DWORD dwFormatTag;
568 DWORD fdwSupport;
569 LPWAVEFORMATEX pwfx;
570 DWORD cbwfx;
571 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
572 } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
574 typedef struct ACMFORMATTAGDETAILSA
576 DWORD cbStruct;
577 DWORD dwFormatTagIndex;
578 DWORD dwFormatTag;
579 DWORD cbFormatSize;
580 DWORD fdwSupport;
581 DWORD cStandardFormats;
582 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
583 } ACMFORMATTAGDETAILSA, *PACMFORMATTAGDETAILSA;
585 typedef struct ACMFORMATTAGDETAILSW
587 DWORD cbStruct;
588 DWORD dwFormatTagIndex;
589 DWORD dwFormatTag;
590 DWORD cbFormatSize;
591 DWORD fdwSupport;
592 DWORD cStandardFormats;
593 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
594 } ACMFORMATTAGDETAILSW, *PACMFORMATTAGDETAILSW;
596 typedef struct ACMFORMATTAGDETAILS16
598 DWORD cbStruct;
599 DWORD dwFormatTagIndex;
600 DWORD dwFormatTag;
601 DWORD cbFormatSize;
602 DWORD fdwSupport;
603 DWORD cStandardFormats;
604 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
605 } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
607 typedef struct ACMSTREAMHEADER
609 DWORD cbStruct;
610 DWORD fdwStatus;
611 DWORD dwUser;
612 LPBYTE pbSrc;
613 DWORD cbSrcLength;
614 DWORD cbSrcLengthUsed;
615 DWORD dwSrcUser;
616 LPBYTE pbDst;
617 DWORD cbDstLength;
618 DWORD cbDstLengthUsed;
619 DWORD dwDstUser;
620 DWORD dwReservedDriver[10];
621 } ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16,
622 ACMSTREAMHEADER, *PACMSTREAMHEADER;
624 /***********************************************************************
625 * Callbacks 2
628 typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBA)(
629 HACMDRIVERID hadid, PACMFILTERDETAILSA pafd,
630 DWORD dwInstance, DWORD fdwSupport
633 typedef WIN_BOOL CALLBACK ( *ACMFILTERENUMCBW)(
634 HACMDRIVERID hadid, PACMFILTERDETAILSW pafd,
635 DWORD dwInstance, DWORD fdwSupport
638 typedef WIN_BOOL16 CALLBACK ( *ACMFILTERENUMCB16)(
639 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
640 DWORD dwInstance, DWORD fdwSupport
643 typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBA)(
644 HACMDRIVERID hadid, PACMFILTERTAGDETAILSA paftd,
645 DWORD dwInstance, DWORD fdwSupport
648 typedef WIN_BOOL CALLBACK ( *ACMFILTERTAGENUMCBW)(
649 HACMDRIVERID hadid, PACMFILTERTAGDETAILSW paftd,
650 DWORD dwInstance, DWORD fdwSupport
653 typedef WIN_BOOL16 CALLBACK ( *ACMFILTERTAGENUMCB16)(
654 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
655 DWORD dwInstance, DWORD fdwSupport
658 typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBA)(
659 HACMDRIVERID hadid, PACMFORMATDETAILSA pafd,
660 DWORD dwInstance, DWORD fdwSupport
663 typedef WIN_BOOL CALLBACK ( *ACMFORMATENUMCBW)(
664 HACMDRIVERID hadid, PACMFORMATDETAILSW pafd,
665 DWORD dwInstance, DWORD fdwSupport
668 typedef WIN_BOOL16 CALLBACK ( *ACMFORMATENUMCB16)(
669 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
670 DWORD dwInstance, DWORD fdwSupport
673 typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBA)(
674 HACMDRIVERID hadid, PACMFORMATTAGDETAILSA paftd,
675 DWORD dwInstance, DWORD fdwSupport
678 typedef WIN_BOOL CALLBACK ( *ACMFORMATTAGENUMCBW)(
679 HACMDRIVERID hadid, PACMFORMATTAGDETAILSW paftd,
680 DWORD dwInstance, DWORD fdwSupport
683 typedef WIN_BOOL16 CALLBACK ( *ACMFORMATTAGENUMCB16)(
684 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
685 DWORD dwInstance, DWORD fdwSupport
688 /***********************************************************************
689 * Functions - Win16
692 DWORD WINAPI acmGetVersion16(
693 void
695 MMRESULT16 WINAPI acmMetrics16(
696 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
698 MMRESULT16 WINAPI acmDriverEnum16(
699 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
701 MMRESULT16 WINAPI acmDriverDetails16(
702 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
704 MMRESULT16 WINAPI acmDriverAdd16(
705 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
706 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
708 MMRESULT16 WINAPI acmDriverRemove16(
709 HACMDRIVERID16 hadid, DWORD fdwRemove
711 MMRESULT16 WINAPI acmDriverOpen16(
712 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
714 MMRESULT16 WINAPI acmDriverClose16(
715 HACMDRIVER16 had, DWORD fdwClose
717 LRESULT WINAPI acmDriverMessage16(
718 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
720 MMRESULT16 WINAPI acmDriverID16(
721 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
723 MMRESULT16 WINAPI acmDriverPriority16(
724 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
726 MMRESULT16 WINAPI acmFormatTagDetails16(
727 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
729 MMRESULT16 WINAPI acmFormatTagEnum16(
730 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
731 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
733 MMRESULT16 WINAPI acmFormatChoose16(
734 LPACMFORMATCHOOSE16 pafmtc
736 MMRESULT16 WINAPI acmFormatDetails16(
737 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
739 MMRESULT16 WINAPI acmFormatEnum16(
740 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
741 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
743 MMRESULT16 WINAPI acmFormatSuggest16(
744 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
745 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
747 MMRESULT16 WINAPI acmFilterTagDetails16(
748 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
750 MMRESULT16 WINAPI acmFilterTagEnum16(
751 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
752 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
754 MMRESULT16 WINAPI acmFilterChoose16(
755 LPACMFILTERCHOOSE16 pafltrc
757 MMRESULT16 WINAPI acmFilterDetails16(
758 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
760 MMRESULT16 WINAPI acmFilterEnum16(
761 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
762 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
764 MMRESULT16 WINAPI acmStreamOpen16(
765 LPHACMSTREAM16 phas, HACMDRIVER16 had,
766 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
767 LPWAVEFILTER pwfltr, DWORD dwCallback,
768 DWORD dwInstance, DWORD fdwOpen
770 MMRESULT16 WINAPI acmStreamClose16(
771 HACMSTREAM16 has, DWORD fdwClose
773 MMRESULT16 WINAPI acmStreamSize16(
774 HACMSTREAM16 has, DWORD cbInput,
775 LPDWORD pdwOutputBytes, DWORD fdwSize
777 MMRESULT16 WINAPI acmStreamConvert16(
778 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
780 MMRESULT16 WINAPI acmStreamReset16(
781 HACMSTREAM16 has, DWORD fdwReset
783 MMRESULT16 WINAPI acmStreamPrepareHeader16(
784 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
786 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
787 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
790 /***********************************************************************
791 * Functions - Win32
794 MMRESULT WINAPI acmDriverAddA(
795 PHACMDRIVERID phadid, HINSTANCE hinstModule,
796 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
798 MMRESULT WINAPI acmDriverAddW(
799 PHACMDRIVERID phadid, HINSTANCE hinstModule,
800 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
802 MMRESULT WINAPI acmDriverClose(
803 HACMDRIVER had, DWORD fdwClose
805 MMRESULT WINAPI acmDriverDetailsA(
806 HACMDRIVERID hadid, PACMDRIVERDETAILSA padd, DWORD fdwDetails
808 MMRESULT WINAPI acmDriverDetailsW(
809 HACMDRIVERID hadid, PACMDRIVERDETAILSW padd, DWORD fdwDetails
811 MMRESULT WINAPI acmDriverEnum(
812 ACMDRIVERENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum
814 MMRESULT WINAPI acmDriverID(
815 HACMOBJ hao, PHACMDRIVERID phadid, DWORD fdwDriverID
817 LRESULT WINAPI acmDriverMessage(
818 HACMDRIVER had, UINT uMsg, LPARAM lParam1, LPARAM lParam2
820 MMRESULT WINAPI acmDriverOpen(
821 PHACMDRIVER phad, HACMDRIVERID hadid, DWORD fdwOpen
823 MMRESULT WINAPI acmDriverPriority(
824 HACMDRIVERID hadid, DWORD dwPriority, DWORD fdwPriority
826 MMRESULT WINAPI acmDriverRemove(
827 HACMDRIVERID hadid, DWORD fdwRemove
829 MMRESULT WINAPI acmFilterChooseA(
830 PACMFILTERCHOOSEA pafltrc
832 MMRESULT WINAPI acmFilterChooseW(
833 PACMFILTERCHOOSEW pafltrc
835 MMRESULT WINAPI acmFilterDetailsA(
836 HACMDRIVER had, PACMFILTERDETAILSA pafd, DWORD fdwDetails
838 MMRESULT WINAPI acmFilterDetailsW(
839 HACMDRIVER had, PACMFILTERDETAILSW pafd, DWORD fdwDetails
841 MMRESULT WINAPI acmFilterEnumA(
842 HACMDRIVER had, PACMFILTERDETAILSA pafd,
843 ACMFILTERENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
845 MMRESULT WINAPI acmFilterEnumW(
846 HACMDRIVER had, PACMFILTERDETAILSW pafd,
847 ACMFILTERENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
849 MMRESULT WINAPI acmFilterTagDetailsA(
850 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd, DWORD fdwDetails
852 MMRESULT WINAPI acmFilterTagDetailsW(
853 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd, DWORD fdwDetails
855 MMRESULT WINAPI acmFilterTagEnumA(
856 HACMDRIVER had, PACMFILTERTAGDETAILSA paftd,
857 ACMFILTERTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
859 MMRESULT WINAPI acmFilterTagEnumW(
860 HACMDRIVER had, PACMFILTERTAGDETAILSW paftd,
861 ACMFILTERTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
863 MMRESULT WINAPI acmFormatChooseA(
864 PACMFORMATCHOOSEA pafmtc
866 MMRESULT WINAPI acmFormatChooseW(
867 PACMFORMATCHOOSEW pafmtc
869 MMRESULT WINAPI acmFormatDetailsA(
870 HACMDRIVER had, PACMFORMATDETAILSA pafd, DWORD fdwDetails
872 MMRESULT WINAPI acmFormatDetailsW(
873 HACMDRIVER had, PACMFORMATDETAILSW pafd, DWORD fdwDetails
875 MMRESULT WINAPI acmFormatEnumA(
876 HACMDRIVER had, PACMFORMATDETAILSA pafd,
877 ACMFORMATENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
879 MMRESULT WINAPI acmFormatEnumW(
880 HACMDRIVER had, PACMFORMATDETAILSW pafd,
881 ACMFORMATENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
883 MMRESULT WINAPI acmFormatSuggest(
884 HACMDRIVER had, PWAVEFORMATEX pwfxSrc, PWAVEFORMATEX pwfxDst,
885 DWORD cbwfxDst, DWORD fdwSuggest
887 MMRESULT WINAPI acmFormatTagDetailsA(
888 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd, DWORD fdwDetails
890 MMRESULT WINAPI acmFormatTagDetailsW(
891 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd, DWORD fdwDetails
893 MMRESULT WINAPI acmFormatTagEnumA(
894 HACMDRIVER had, PACMFORMATTAGDETAILSA paftd,
895 ACMFORMATTAGENUMCBA fnCallback, DWORD dwInstance, DWORD fdwEnum
897 MMRESULT WINAPI acmFormatTagEnumW(
898 HACMDRIVER had, PACMFORMATTAGDETAILSW paftd,
899 ACMFORMATTAGENUMCBW fnCallback, DWORD dwInstance, DWORD fdwEnum
901 DWORD WINAPI acmGetVersion(
902 void
904 MMRESULT WINAPI acmMetrics(
905 HACMOBJ hao, UINT uMetric, LPVOID pMetric
907 MMRESULT WINAPI acmStreamClose(
908 HACMSTREAM has, DWORD fdwClose
910 MMRESULT WINAPI acmStreamConvert(
911 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwConvert
913 MMRESULT WINAPI acmStreamMessage(
914 HACMSTREAM has, UINT uMsg, LPARAM lParam1, LPARAM lParam2
916 MMRESULT WINAPI acmStreamOpen(
917 PHACMSTREAM phas, HACMDRIVER had, PWAVEFORMATEX pwfxSrc,
918 PWAVEFORMATEX pwfxDst, PWAVEFILTER pwfltr, DWORD dwCallback,
919 DWORD dwInstance, DWORD fdwOpen
921 MMRESULT WINAPI acmStreamPrepareHeader(
922 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwPrepare
924 MMRESULT WINAPI acmStreamReset(
925 HACMSTREAM has, DWORD fdwReset
927 MMRESULT WINAPI acmStreamSize(
928 HACMSTREAM has, DWORD cbInput,
929 LPDWORD pdwOutputBytes, DWORD fdwSize
931 MMRESULT WINAPI acmStreamUnprepareHeader(
932 HACMSTREAM has, PACMSTREAMHEADER pash, DWORD fdwUnprepare
935 #endif /* MPLAYER_MSACM_H */