source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/msacm.h@ 1180

Last change on this file since 1180 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 25.1 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef _INC_ACM
7#define _INC_ACM
8
9#if !defined(_INC_MMREG) || (_INC_MMREG < 142)
10#ifndef RC_INVOKED
11#error MMREG.H version 142 or greater to be included first
12#endif
13#endif
14
15#if defined(UNICODE) && !defined(_UNICODE)
16#ifndef RC_INVOKED
17#warning MSACM.H: Defining _UNICODE because application defined UNICODE
18#endif
19#define _UNICODE
20#endif
21
22#include "pshpack1.h"
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28#ifndef DRV_MAPPER_PREFERRED_INPUT_GET
29#define DRV_MAPPER_PREFERRED_INPUT_GET (DRV_USER + 0)
30#endif
31
32#ifndef DRV_MAPPER_PREFERRED_OUTPUT_GET
33#define DRV_MAPPER_PREFERRED_OUTPUT_GET (DRV_USER + 2)
34#endif
35
36#ifndef DRVM_MAPPER_STATUS
37#define DRVM_MAPPER (0x2000)
38#define DRVM_MAPPER_STATUS (DRVM_MAPPER+0)
39#endif
40
41#ifndef WIDM_MAPPER_STATUS
42#define WIDM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
43#define WAVEIN_MAPPER_STATUS_DEVICE 0
44#define WAVEIN_MAPPER_STATUS_MAPPED 1
45#define WAVEIN_MAPPER_STATUS_FORMAT 2
46#endif
47
48#ifndef WODM_MAPPER_STATUS
49#define WODM_MAPPER_STATUS (DRVM_MAPPER_STATUS + 0)
50#define WAVEOUT_MAPPER_STATUS_DEVICE 0
51#define WAVEOUT_MAPPER_STATUS_MAPPED 1
52#define WAVEOUT_MAPPER_STATUS_FORMAT 2
53#endif
54
55#define ACMAPI WINAPI
56
57 DECLARE_HANDLE(HACMDRIVERID);
58
59 typedef HACMDRIVERID *PHACMDRIVERID;
60 typedef HACMDRIVERID *LPHACMDRIVERID;
61
62 DECLARE_HANDLE(HACMDRIVER);
63
64 typedef HACMDRIVER *PHACMDRIVER;
65 typedef HACMDRIVER *LPHACMDRIVER;
66
67 DECLARE_HANDLE(HACMSTREAM);
68
69 typedef HACMSTREAM *PHACMSTREAM;
70 typedef HACMSTREAM *LPHACMSTREAM;
71
72 DECLARE_HANDLE(HACMOBJ);
73
74 typedef HACMOBJ *PHACMOBJ;
75 typedef HACMOBJ *LPHACMOBJ;
76
77#ifndef _MMRESULT_
78#define _MMRESULT_
79 typedef UINT MMRESULT;
80#endif
81
82#define ACMERR_BASE (512)
83#define ACMERR_NOTPOSSIBLE (ACMERR_BASE + 0)
84#define ACMERR_BUSY (ACMERR_BASE + 1)
85#define ACMERR_UNPREPARED (ACMERR_BASE + 2)
86#define ACMERR_CANCELED (ACMERR_BASE + 3)
87
88#define MM_ACM_OPEN (MM_STREAM_OPEN)
89#define MM_ACM_CLOSE (MM_STREAM_CLOSE)
90#define MM_ACM_DONE (MM_STREAM_DONE)
91
92 DWORD ACMAPI acmGetVersion(void);
93 MMRESULT ACMAPI acmMetrics(HACMOBJ hao,UINT uMetric,LPVOID pMetric);
94
95#define ACM_METRIC_COUNT_DRIVERS 1
96#define ACM_METRIC_COUNT_CODECS 2
97#define ACM_METRIC_COUNT_CONVERTERS 3
98#define ACM_METRIC_COUNT_FILTERS 4
99#define ACM_METRIC_COUNT_DISABLED 5
100#define ACM_METRIC_COUNT_HARDWARE 6
101#define ACM_METRIC_COUNT_LOCAL_DRIVERS 20
102#define ACM_METRIC_COUNT_LOCAL_CODECS 21
103#define ACM_METRIC_COUNT_LOCAL_CONVERTERS 22
104#define ACM_METRIC_COUNT_LOCAL_FILTERS 23
105#define ACM_METRIC_COUNT_LOCAL_DISABLED 24
106#define ACM_METRIC_HARDWARE_WAVE_INPUT 30
107#define ACM_METRIC_HARDWARE_WAVE_OUTPUT 31
108#define ACM_METRIC_MAX_SIZE_FORMAT 50
109#define ACM_METRIC_MAX_SIZE_FILTER 51
110#define ACM_METRIC_DRIVER_SUPPORT 100
111#define ACM_METRIC_DRIVER_PRIORITY 101
112
113 typedef WINBOOL (CALLBACK *ACMDRIVERENUMCB)(HACMDRIVERID hadid,DWORD_PTR dwInstance,DWORD fdwSupport);
114
115 MMRESULT ACMAPI acmDriverEnum(ACMDRIVERENUMCB fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
116
117#define ACM_DRIVERENUMF_NOLOCAL __MSABI_LONG(0x40000000)
118#define ACM_DRIVERENUMF_DISABLED __MSABI_LONG(0x80000000)
119
120 MMRESULT ACMAPI acmDriverID(HACMOBJ hao,LPHACMDRIVERID phadid,DWORD fdwDriverID);
121 MMRESULT ACMAPI acmDriverAddA(LPHACMDRIVERID phadid,HINSTANCE hinstModule,LPARAM lParam,DWORD dwPriority,DWORD fdwAdd);
122 MMRESULT ACMAPI acmDriverAddW(LPHACMDRIVERID phadid,HINSTANCE hinstModule,LPARAM lParam,DWORD dwPriority,DWORD fdwAdd);
123#ifdef _UNICODE
124#define acmDriverAdd acmDriverAddW
125#else
126#define acmDriverAdd acmDriverAddA
127#endif
128
129#define ACM_DRIVERADDF_NAME __MSABI_LONG(0x00000001)
130#define ACM_DRIVERADDF_FUNCTION __MSABI_LONG(0x00000003)
131#define ACM_DRIVERADDF_NOTIFYHWND __MSABI_LONG(0x00000004)
132#define ACM_DRIVERADDF_TYPEMASK __MSABI_LONG(0x00000007)
133#define ACM_DRIVERADDF_LOCAL __MSABI_LONG(0x00000000)
134#define ACM_DRIVERADDF_GLOBAL __MSABI_LONG(0x00000008)
135
136 typedef LRESULT (CALLBACK *ACMDRIVERPROC)(DWORD_PTR,HACMDRIVERID,UINT,LPARAM,LPARAM);
137 typedef ACMDRIVERPROC *LPACMDRIVERPROC;
138
139 MMRESULT ACMAPI acmDriverRemove(HACMDRIVERID hadid,DWORD fdwRemove);
140 MMRESULT ACMAPI acmDriverOpen(LPHACMDRIVER phad,HACMDRIVERID hadid,DWORD fdwOpen);
141 MMRESULT ACMAPI acmDriverClose(HACMDRIVER had,DWORD fdwClose);
142 LRESULT ACMAPI acmDriverMessage(HACMDRIVER had,UINT uMsg,LPARAM lParam1,LPARAM lParam2);
143
144#define ACMDM_USER (DRV_USER + 0x0000)
145#define ACMDM_RESERVED_LOW (DRV_USER + 0x2000)
146#define ACMDM_RESERVED_HIGH (DRV_USER + 0x2FFF)
147
148#define ACMDM_BASE ACMDM_RESERVED_LOW
149
150#define ACMDM_DRIVER_ABOUT (ACMDM_BASE + 11)
151
152 MMRESULT ACMAPI acmDriverPriority(HACMDRIVERID hadid,DWORD dwPriority,DWORD fdwPriority);
153
154#define ACM_DRIVERPRIORITYF_ENABLE __MSABI_LONG(0x00000001)
155#define ACM_DRIVERPRIORITYF_DISABLE __MSABI_LONG(0x00000002)
156#define ACM_DRIVERPRIORITYF_ABLEMASK __MSABI_LONG(0x00000003)
157#define ACM_DRIVERPRIORITYF_BEGIN __MSABI_LONG(0x00010000)
158#define ACM_DRIVERPRIORITYF_END __MSABI_LONG(0x00020000)
159#define ACM_DRIVERPRIORITYF_DEFERMASK __MSABI_LONG(0x00030000)
160
161#define ACMDRIVERDETAILS_SHORTNAME_CHARS 32
162#define ACMDRIVERDETAILS_LONGNAME_CHARS 128
163#define ACMDRIVERDETAILS_COPYRIGHT_CHARS 80
164#define ACMDRIVERDETAILS_LICENSING_CHARS 128
165#define ACMDRIVERDETAILS_FEATURES_CHARS 512
166
167 typedef struct tACMDRIVERDETAILSA {
168 DWORD cbStruct;
169 FOURCC fccType;
170 FOURCC fccComp;
171 WORD wMid;
172 WORD wPid;
173 DWORD vdwACM;
174 DWORD vdwDriver;
175 DWORD fdwSupport;
176 DWORD cFormatTags;
177 DWORD cFilterTags;
178 HICON hicon;
179 char szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
180 char szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
181 char szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
182 char szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
183 char szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
184 } ACMDRIVERDETAILSA,*PACMDRIVERDETAILSA,*LPACMDRIVERDETAILSA;
185
186 typedef struct tACMDRIVERDETAILSW {
187 DWORD cbStruct;
188 FOURCC fccType;
189 FOURCC fccComp;
190 WORD wMid;
191 WORD wPid;
192 DWORD vdwACM;
193 DWORD vdwDriver;
194 DWORD fdwSupport;
195 DWORD cFormatTags;
196 DWORD cFilterTags;
197 HICON hicon;
198 WCHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
199 WCHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
200 WCHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
201 WCHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
202 WCHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
203 } ACMDRIVERDETAILSW,*PACMDRIVERDETAILSW,*LPACMDRIVERDETAILSW;
204#ifdef _UNICODE
205#define ACMDRIVERDETAILS ACMDRIVERDETAILSW
206#define PACMDRIVERDETAILS PACMDRIVERDETAILSW
207#define LPACMDRIVERDETAILS LPACMDRIVERDETAILSW
208#else
209#define ACMDRIVERDETAILS ACMDRIVERDETAILSA
210#define PACMDRIVERDETAILS PACMDRIVERDETAILSA
211#define LPACMDRIVERDETAILS LPACMDRIVERDETAILSA
212#endif
213
214#define ACMDRIVERDETAILS_FCCTYPE_AUDIOCODEC mmioFOURCC('a','u','d','c')
215#define ACMDRIVERDETAILS_FCCCOMP_UNDEFINED mmioFOURCC('\0','\0','\0','\0')
216
217#define ACMDRIVERDETAILS_SUPPORTF_CODEC __MSABI_LONG(0x00000001)
218#define ACMDRIVERDETAILS_SUPPORTF_CONVERTER __MSABI_LONG(0x00000002)
219#define ACMDRIVERDETAILS_SUPPORTF_FILTER __MSABI_LONG(0x00000004)
220#define ACMDRIVERDETAILS_SUPPORTF_HARDWARE __MSABI_LONG(0x00000008)
221#define ACMDRIVERDETAILS_SUPPORTF_ASYNC __MSABI_LONG(0x00000010)
222#define ACMDRIVERDETAILS_SUPPORTF_LOCAL __MSABI_LONG(0x40000000)
223#define ACMDRIVERDETAILS_SUPPORTF_DISABLED __MSABI_LONG(0x80000000)
224
225 MMRESULT ACMAPI acmDriverDetailsA(HACMDRIVERID hadid,LPACMDRIVERDETAILSA padd,DWORD fdwDetails);
226 MMRESULT ACMAPI acmDriverDetailsW(HACMDRIVERID hadid,LPACMDRIVERDETAILSW padd,DWORD fdwDetails);
227#ifdef _UNICODE
228#define acmDriverDetails acmDriverDetailsW
229#else
230#define acmDriverDetails acmDriverDetailsA
231#endif
232
233#define ACMFORMATTAGDETAILS_FORMATTAG_CHARS 48
234
235 typedef struct tACMFORMATTAGDETAILSA {
236 DWORD cbStruct;
237 DWORD dwFormatTagIndex;
238 DWORD dwFormatTag;
239 DWORD cbFormatSize;
240 DWORD fdwSupport;
241 DWORD cStandardFormats;
242 char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
243 } ACMFORMATTAGDETAILSA,*PACMFORMATTAGDETAILSA,*LPACMFORMATTAGDETAILSA;
244
245 typedef struct tACMFORMATTAGDETAILSW {
246 DWORD cbStruct;
247 DWORD dwFormatTagIndex;
248 DWORD dwFormatTag;
249 DWORD cbFormatSize;
250 DWORD fdwSupport;
251 DWORD cStandardFormats;
252 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
253 } ACMFORMATTAGDETAILSW,*PACMFORMATTAGDETAILSW,*LPACMFORMATTAGDETAILSW;
254#ifdef _UNICODE
255#define ACMFORMATTAGDETAILS ACMFORMATTAGDETAILSW
256#define PACMFORMATTAGDETAILS PACMFORMATTAGDETAILSW
257#define LPACMFORMATTAGDETAILS LPACMFORMATTAGDETAILSW
258#else
259#define ACMFORMATTAGDETAILS ACMFORMATTAGDETAILSA
260#define PACMFORMATTAGDETAILS PACMFORMATTAGDETAILSA
261#define LPACMFORMATTAGDETAILS LPACMFORMATTAGDETAILSA
262#endif
263
264 MMRESULT ACMAPI acmFormatTagDetailsA(HACMDRIVER had,LPACMFORMATTAGDETAILSA paftd,DWORD fdwDetails);
265 MMRESULT ACMAPI acmFormatTagDetailsW(HACMDRIVER had,LPACMFORMATTAGDETAILSW paftd,DWORD fdwDetails);
266#ifdef _UNICODE
267#define acmFormatTagDetails acmFormatTagDetailsW
268#else
269#define acmFormatTagDetails acmFormatTagDetailsA
270#endif
271
272#define ACM_FORMATTAGDETAILSF_INDEX __MSABI_LONG(0x00000000)
273#define ACM_FORMATTAGDETAILSF_FORMATTAG __MSABI_LONG(0x00000001)
274#define ACM_FORMATTAGDETAILSF_LARGESTSIZE __MSABI_LONG(0x00000002)
275#define ACM_FORMATTAGDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F)
276
277 typedef WINBOOL (CALLBACK *ACMFORMATTAGENUMCBA)(HACMDRIVERID hadid,LPACMFORMATTAGDETAILSA paftd,DWORD_PTR dwInstance,DWORD fdwSupport);
278 typedef WINBOOL (CALLBACK *ACMFORMATTAGENUMCBW)(HACMDRIVERID hadid,LPACMFORMATTAGDETAILSW paftd,DWORD_PTR dwInstance,DWORD fdwSupport);
279
280 MMRESULT ACMAPI acmFormatTagEnumA(HACMDRIVER had,LPACMFORMATTAGDETAILSA paftd,ACMFORMATTAGENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
281 MMRESULT ACMAPI acmFormatTagEnumW(HACMDRIVER had,LPACMFORMATTAGDETAILSW paftd,ACMFORMATTAGENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
282#ifdef _UNICODE
283#define ACMFORMATTAGENUMCB ACMFORMATTAGENUMCBW
284#define acmFormatTagEnum acmFormatTagEnumW
285#else
286#define ACMFORMATTAGENUMCB ACMFORMATTAGENUMCBA
287#define acmFormatTagEnum acmFormatTagEnumA
288#endif
289
290#define ACMFORMATDETAILS_FORMAT_CHARS 128
291
292 typedef struct tACMFORMATDETAILSA {
293 DWORD cbStruct;
294 DWORD dwFormatIndex;
295 DWORD dwFormatTag;
296 DWORD fdwSupport;
297 LPWAVEFORMATEX pwfx;
298 DWORD cbwfx;
299 char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
300 } ACMFORMATDETAILSA,*PACMFORMATDETAILSA,*LPACMFORMATDETAILSA;
301
302 typedef struct tACMFORMATDETAILSW {
303 DWORD cbStruct;
304 DWORD dwFormatIndex;
305 DWORD dwFormatTag;
306 DWORD fdwSupport;
307 LPWAVEFORMATEX pwfx;
308 DWORD cbwfx;
309 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
310 } ACMFORMATDETAILSW,*PACMFORMATDETAILSW,*LPACMFORMATDETAILSW;
311#ifdef _UNICODE
312#define ACMFORMATDETAILS ACMFORMATDETAILSW
313#define PACMFORMATDETAILS PACMFORMATDETAILSW
314#define LPACMFORMATDETAILS LPACMFORMATDETAILSW
315#else
316#define ACMFORMATDETAILS ACMFORMATDETAILSA
317#define PACMFORMATDETAILS PACMFORMATDETAILSA
318#define LPACMFORMATDETAILS LPACMFORMATDETAILSA
319#endif
320
321 MMRESULT ACMAPI acmFormatDetailsA(HACMDRIVER had,LPACMFORMATDETAILSA pafd,DWORD fdwDetails);
322 MMRESULT ACMAPI acmFormatDetailsW(HACMDRIVER had,LPACMFORMATDETAILSW pafd,DWORD fdwDetails);
323#ifdef _UNICODE
324#define acmFormatDetails acmFormatDetailsW
325#else
326#define acmFormatDetails acmFormatDetailsA
327#endif
328
329#define ACM_FORMATDETAILSF_INDEX __MSABI_LONG(0x00000000)
330#define ACM_FORMATDETAILSF_FORMAT __MSABI_LONG(0x00000001)
331#define ACM_FORMATDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F)
332
333 typedef WINBOOL (CALLBACK *ACMFORMATENUMCBA)(HACMDRIVERID hadid,LPACMFORMATDETAILSA pafd,DWORD_PTR dwInstance,DWORD fdwSupport);
334 typedef WINBOOL (CALLBACK *ACMFORMATENUMCBW)(HACMDRIVERID hadid,LPACMFORMATDETAILSW pafd,DWORD_PTR dwInstance,DWORD fdwSupport);
335
336 MMRESULT ACMAPI acmFormatEnumA(HACMDRIVER had,LPACMFORMATDETAILSA pafd,ACMFORMATENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
337 MMRESULT ACMAPI acmFormatEnumW(HACMDRIVER had,LPACMFORMATDETAILSW pafd,ACMFORMATENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
338#ifdef _UNICODE
339#define ACMFORMATENUMCB ACMFORMATENUMCBW
340#define acmFormatEnum acmFormatEnumW
341#else
342#define ACMFORMATENUMCB ACMFORMATENUMCBA
343#define acmFormatEnum acmFormatEnumA
344#endif
345
346#define ACM_FORMATENUMF_WFORMATTAG __MSABI_LONG(0x00010000)
347#define ACM_FORMATENUMF_NCHANNELS __MSABI_LONG(0x00020000)
348#define ACM_FORMATENUMF_NSAMPLESPERSEC __MSABI_LONG(0x00040000)
349#define ACM_FORMATENUMF_WBITSPERSAMPLE __MSABI_LONG(0x00080000)
350#define ACM_FORMATENUMF_CONVERT __MSABI_LONG(0x00100000)
351#define ACM_FORMATENUMF_SUGGEST __MSABI_LONG(0x00200000)
352#define ACM_FORMATENUMF_HARDWARE __MSABI_LONG(0x00400000)
353#define ACM_FORMATENUMF_INPUT __MSABI_LONG(0x00800000)
354#define ACM_FORMATENUMF_OUTPUT __MSABI_LONG(0x01000000)
355
356 MMRESULT ACMAPI acmFormatSuggest
357 (HACMDRIVER had,LPWAVEFORMATEX pwfxSrc,LPWAVEFORMATEX pwfxDst,DWORD cbwfxDst,DWORD fdwSuggest);
358
359#define ACM_FORMATSUGGESTF_WFORMATTAG __MSABI_LONG(0x00010000)
360#define ACM_FORMATSUGGESTF_NCHANNELS __MSABI_LONG(0x00020000)
361#define ACM_FORMATSUGGESTF_NSAMPLESPERSEC __MSABI_LONG(0x00040000)
362#define ACM_FORMATSUGGESTF_WBITSPERSAMPLE __MSABI_LONG(0x00080000)
363
364#define ACM_FORMATSUGGESTF_TYPEMASK __MSABI_LONG(0x00FF0000)
365
366#define ACMHELPMSGSTRINGA "acmchoose_help"
367#define ACMHELPMSGSTRINGW L"acmchoose_help"
368#define ACMHELPMSGCONTEXTMENUA "acmchoose_contextmenu"
369#define ACMHELPMSGCONTEXTMENUW L"acmchoose_contextmenu"
370#define ACMHELPMSGCONTEXTHELPA "acmchoose_contexthelp"
371#define ACMHELPMSGCONTEXTHELPW L"acmchoose_contexthelp"
372#ifdef _UNICODE
373#define ACMHELPMSGSTRING ACMHELPMSGSTRINGW
374#define ACMHELPMSGCONTEXTMENU ACMHELPMSGCONTEXTMENUW
375#define ACMHELPMSGCONTEXTHELP ACMHELPMSGCONTEXTHELPW
376#else
377#define ACMHELPMSGSTRING ACMHELPMSGSTRINGA
378#define ACMHELPMSGCONTEXTMENU ACMHELPMSGCONTEXTMENUA
379#define ACMHELPMSGCONTEXTHELP ACMHELPMSGCONTEXTHELPA
380#endif
381
382#define MM_ACM_FORMATCHOOSE (0x8000)
383
384#define FORMATCHOOSE_MESSAGE 0
385#define FORMATCHOOSE_FORMATTAG_VERIFY (FORMATCHOOSE_MESSAGE+0)
386#define FORMATCHOOSE_FORMAT_VERIFY (FORMATCHOOSE_MESSAGE+1)
387#define FORMATCHOOSE_CUSTOM_VERIFY (FORMATCHOOSE_MESSAGE+2)
388
389 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCA)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
390 typedef UINT (CALLBACK *ACMFORMATCHOOSEHOOKPROCW)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
391#ifdef _UNICODE
392#define ACMFORMATCHOOSEHOOKPROC ACMFORMATCHOOSEHOOKPROCW
393#else
394#define ACMFORMATCHOOSEHOOKPROC ACMFORMATCHOOSEHOOKPROCA
395#endif
396
397 typedef struct tACMFORMATCHOOSEA {
398 DWORD cbStruct;
399 DWORD fdwStyle;
400 HWND hwndOwner;
401 LPWAVEFORMATEX pwfx;
402 DWORD cbwfx;
403 LPCSTR pszTitle;
404 char szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
405 char szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
406 LPSTR pszName;
407 DWORD cchName;
408 DWORD fdwEnum;
409 LPWAVEFORMATEX pwfxEnum;
410 HINSTANCE hInstance;
411 LPCSTR pszTemplateName;
412 LPARAM lCustData;
413 ACMFORMATCHOOSEHOOKPROCA pfnHook;
414 } ACMFORMATCHOOSEA,*PACMFORMATCHOOSEA,*LPACMFORMATCHOOSEA;
415
416 typedef struct tACMFORMATCHOOSEW {
417 DWORD cbStruct;
418 DWORD fdwStyle;
419 HWND hwndOwner;
420 LPWAVEFORMATEX pwfx;
421 DWORD cbwfx;
422 LPCWSTR pszTitle;
423 WCHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
424 WCHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
425 LPWSTR pszName;
426 DWORD cchName;
427 DWORD fdwEnum;
428 LPWAVEFORMATEX pwfxEnum;
429 HINSTANCE hInstance;
430 LPCWSTR pszTemplateName;
431 LPARAM lCustData;
432 ACMFORMATCHOOSEHOOKPROCW pfnHook;
433 } ACMFORMATCHOOSEW,*PACMFORMATCHOOSEW,*LPACMFORMATCHOOSEW;
434#ifdef _UNICODE
435#define ACMFORMATCHOOSE ACMFORMATCHOOSEW
436#define PACMFORMATCHOOSE PACMFORMATCHOOSEW
437#define LPACMFORMATCHOOSE LPACMFORMATCHOOSEW
438#else
439#define ACMFORMATCHOOSE ACMFORMATCHOOSEA
440#define PACMFORMATCHOOSE PACMFORMATCHOOSEA
441#define LPACMFORMATCHOOSE LPACMFORMATCHOOSEA
442#endif
443
444#define ACMFORMATCHOOSE_STYLEF_SHOWHELP __MSABI_LONG(0x00000004)
445#define ACMFORMATCHOOSE_STYLEF_ENABLEHOOK __MSABI_LONG(0x00000008)
446#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATE __MSABI_LONG(0x00000010)
447#define ACMFORMATCHOOSE_STYLEF_ENABLETEMPLATEHANDLE __MSABI_LONG(0x00000020)
448#define ACMFORMATCHOOSE_STYLEF_INITTOWFXSTRUCT __MSABI_LONG(0x00000040)
449#define ACMFORMATCHOOSE_STYLEF_CONTEXTHELP __MSABI_LONG(0x00000080)
450
451 MMRESULT ACMAPI acmFormatChooseA(LPACMFORMATCHOOSEA pafmtc);
452 MMRESULT ACMAPI acmFormatChooseW(LPACMFORMATCHOOSEW pafmtc);
453#ifdef _UNICODE
454#define acmFormatChoose acmFormatChooseW
455#else
456#define acmFormatChoose acmFormatChooseA
457#endif
458
459#define ACMFILTERTAGDETAILS_FILTERTAG_CHARS 48
460
461 typedef struct tACMFILTERTAGDETAILSA {
462 DWORD cbStruct;
463 DWORD dwFilterTagIndex;
464 DWORD dwFilterTag;
465 DWORD cbFilterSize;
466 DWORD fdwSupport;
467 DWORD cStandardFilters;
468 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
469 } ACMFILTERTAGDETAILSA,*PACMFILTERTAGDETAILSA,*LPACMFILTERTAGDETAILSA;
470
471 typedef struct tACMFILTERTAGDETAILSW {
472 DWORD cbStruct;
473 DWORD dwFilterTagIndex;
474 DWORD dwFilterTag;
475 DWORD cbFilterSize;
476 DWORD fdwSupport;
477 DWORD cStandardFilters;
478 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
479 } ACMFILTERTAGDETAILSW,*PACMFILTERTAGDETAILSW,*LPACMFILTERTAGDETAILSW;
480#ifdef _UNICODE
481#define ACMFILTERTAGDETAILS ACMFILTERTAGDETAILSW
482#define PACMFILTERTAGDETAILS PACMFILTERTAGDETAILSW
483#define LPACMFILTERTAGDETAILS LPACMFILTERTAGDETAILSW
484#else
485#define ACMFILTERTAGDETAILS ACMFILTERTAGDETAILSA
486#define PACMFILTERTAGDETAILS PACMFILTERTAGDETAILSA
487#define LPACMFILTERTAGDETAILS LPACMFILTERTAGDETAILSA
488#endif
489
490 MMRESULT ACMAPI acmFilterTagDetailsA(HACMDRIVER had,LPACMFILTERTAGDETAILSA paftd,DWORD fdwDetails);
491 MMRESULT ACMAPI acmFilterTagDetailsW(HACMDRIVER had,LPACMFILTERTAGDETAILSW paftd,DWORD fdwDetails);
492#ifdef _UNICODE
493#define acmFilterTagDetails acmFilterTagDetailsW
494#else
495#define acmFilterTagDetails acmFilterTagDetailsA
496#endif
497
498#define ACM_FILTERTAGDETAILSF_INDEX __MSABI_LONG(0x00000000)
499#define ACM_FILTERTAGDETAILSF_FILTERTAG __MSABI_LONG(0x00000001)
500#define ACM_FILTERTAGDETAILSF_LARGESTSIZE __MSABI_LONG(0x00000002)
501#define ACM_FILTERTAGDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F)
502
503 typedef WINBOOL (CALLBACK *ACMFILTERTAGENUMCBA)(HACMDRIVERID hadid,LPACMFILTERTAGDETAILSA paftd,DWORD_PTR dwInstance,DWORD fdwSupport);
504 typedef WINBOOL (CALLBACK *ACMFILTERTAGENUMCBW)(HACMDRIVERID hadid,LPACMFILTERTAGDETAILSW paftd,DWORD_PTR dwInstance,DWORD fdwSupport);
505
506 MMRESULT ACMAPI acmFilterTagEnumA(HACMDRIVER had,LPACMFILTERTAGDETAILSA paftd,ACMFILTERTAGENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
507 MMRESULT ACMAPI acmFilterTagEnumW(HACMDRIVER had,LPACMFILTERTAGDETAILSW paftd,ACMFILTERTAGENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
508#ifdef _UNICODE
509#define ACMFILTERTAGENUMCB ACMFILTERTAGENUMCBW
510#define acmFilterTagEnum acmFilterTagEnumW
511#else
512#define ACMFILTERTAGENUMCB ACMFILTERTAGENUMCBA
513#define acmFilterTagEnum acmFilterTagEnumA
514#endif
515
516#define ACMFILTERDETAILS_FILTER_CHARS 128
517
518 typedef struct tACMFILTERDETAILSA {
519 DWORD cbStruct;
520 DWORD dwFilterIndex;
521 DWORD dwFilterTag;
522 DWORD fdwSupport;
523 LPWAVEFILTER pwfltr;
524 DWORD cbwfltr;
525 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
526 } ACMFILTERDETAILSA,*PACMFILTERDETAILSA,*LPACMFILTERDETAILSA;
527
528 typedef struct tACMFILTERDETAILSW {
529 DWORD cbStruct;
530 DWORD dwFilterIndex;
531 DWORD dwFilterTag;
532 DWORD fdwSupport;
533 LPWAVEFILTER pwfltr;
534 DWORD cbwfltr;
535 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
536 } ACMFILTERDETAILSW,*PACMFILTERDETAILSW,*LPACMFILTERDETAILSW;
537#ifdef _UNICODE
538#define ACMFILTERDETAILS ACMFILTERDETAILSW
539#define PACMFILTERDETAILS PACMFILTERDETAILSW
540#define LPACMFILTERDETAILS LPACMFILTERDETAILSW
541#else
542#define ACMFILTERDETAILS ACMFILTERDETAILSA
543#define PACMFILTERDETAILS PACMFILTERDETAILSA
544#define LPACMFILTERDETAILS LPACMFILTERDETAILSA
545#endif
546
547 MMRESULT ACMAPI acmFilterDetailsA(HACMDRIVER had,LPACMFILTERDETAILSA pafd,DWORD fdwDetails);
548 MMRESULT ACMAPI acmFilterDetailsW(HACMDRIVER had,LPACMFILTERDETAILSW pafd,DWORD fdwDetails);
549#ifdef _UNICODE
550#define acmFilterDetails acmFilterDetailsW
551#else
552#define acmFilterDetails acmFilterDetailsA
553#endif
554
555#define ACM_FILTERDETAILSF_INDEX __MSABI_LONG(0x00000000)
556#define ACM_FILTERDETAILSF_FILTER __MSABI_LONG(0x00000001)
557#define ACM_FILTERDETAILSF_QUERYMASK __MSABI_LONG(0x0000000F)
558
559 typedef WINBOOL (CALLBACK *ACMFILTERENUMCBA)(HACMDRIVERID hadid,LPACMFILTERDETAILSA pafd,DWORD_PTR dwInstance,DWORD fdwSupport);
560 typedef WINBOOL (CALLBACK *ACMFILTERENUMCBW)(HACMDRIVERID hadid,LPACMFILTERDETAILSW pafd,DWORD_PTR dwInstance,DWORD fdwSupport);
561
562 MMRESULT ACMAPI acmFilterEnumA(HACMDRIVER had,LPACMFILTERDETAILSA pafd,ACMFILTERENUMCBA fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
563 MMRESULT ACMAPI acmFilterEnumW(HACMDRIVER had,LPACMFILTERDETAILSW pafd,ACMFILTERENUMCBW fnCallback,DWORD_PTR dwInstance,DWORD fdwEnum);
564#ifdef _UNICODE
565#define ACMFILTERENUMCB ACMFILTERENUMCBW
566#define acmFilterEnum acmFilterEnumW
567#else
568#define ACMFILTERENUMCB ACMFILTERENUMCBA
569#define acmFilterEnum acmFilterEnumA
570#endif
571
572#define ACM_FILTERENUMF_DWFILTERTAG __MSABI_LONG(0x00010000)
573
574#define MM_ACM_FILTERCHOOSE (0x8000)
575
576#define FILTERCHOOSE_MESSAGE 0
577#define FILTERCHOOSE_FILTERTAG_VERIFY (FILTERCHOOSE_MESSAGE+0)
578#define FILTERCHOOSE_FILTER_VERIFY (FILTERCHOOSE_MESSAGE+1)
579#define FILTERCHOOSE_CUSTOM_VERIFY (FILTERCHOOSE_MESSAGE+2)
580
581 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCA)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
582 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROCW)(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
583#ifdef _UNICODE
584#define ACMFILTERCHOOSEHOOKPROC ACMFILTERCHOOSEHOOKPROCW
585#else
586#define ACMFILTERCHOOSEHOOKPROC ACMFILTERCHOOSEHOOKPROCA
587#endif
588
589 typedef struct tACMFILTERCHOOSEA {
590 DWORD cbStruct;
591 DWORD fdwStyle;
592 HWND hwndOwner;
593 LPWAVEFILTER pwfltr;
594 DWORD cbwfltr;
595 LPCSTR pszTitle;
596 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
597 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
598 LPSTR pszName;
599 DWORD cchName;
600 DWORD fdwEnum;
601 LPWAVEFILTER pwfltrEnum;
602 HINSTANCE hInstance;
603 LPCSTR pszTemplateName;
604 LPARAM lCustData;
605 ACMFILTERCHOOSEHOOKPROCA pfnHook;
606 } ACMFILTERCHOOSEA,*PACMFILTERCHOOSEA,*LPACMFILTERCHOOSEA;
607
608 typedef struct tACMFILTERCHOOSEW {
609 DWORD cbStruct;
610 DWORD fdwStyle;
611 HWND hwndOwner;
612 LPWAVEFILTER pwfltr;
613 DWORD cbwfltr;
614 LPCWSTR pszTitle;
615 WCHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
616 WCHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
617 LPWSTR pszName;
618 DWORD cchName;
619 DWORD fdwEnum;
620 LPWAVEFILTER pwfltrEnum;
621 HINSTANCE hInstance;
622 LPCWSTR pszTemplateName;
623 LPARAM lCustData;
624 ACMFILTERCHOOSEHOOKPROCW pfnHook;
625 } ACMFILTERCHOOSEW,*PACMFILTERCHOOSEW,*LPACMFILTERCHOOSEW;
626#ifdef _UNICODE
627#define ACMFILTERCHOOSE ACMFILTERCHOOSEW
628#define PACMFILTERCHOOSE PACMFILTERCHOOSEW
629#define LPACMFILTERCHOOSE LPACMFILTERCHOOSEW
630#else
631#define ACMFILTERCHOOSE ACMFILTERCHOOSEA
632#define PACMFILTERCHOOSE PACMFILTERCHOOSEA
633#define LPACMFILTERCHOOSE LPACMFILTERCHOOSEA
634#endif
635
636#define ACMFILTERCHOOSE_STYLEF_SHOWHELP __MSABI_LONG(0x00000004)
637#define ACMFILTERCHOOSE_STYLEF_ENABLEHOOK __MSABI_LONG(0x00000008)
638#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATE __MSABI_LONG(0x00000010)
639#define ACMFILTERCHOOSE_STYLEF_ENABLETEMPLATEHANDLE __MSABI_LONG(0x00000020)
640#define ACMFILTERCHOOSE_STYLEF_INITTOFILTERSTRUCT __MSABI_LONG(0x00000040)
641#define ACMFILTERCHOOSE_STYLEF_CONTEXTHELP __MSABI_LONG(0x00000080)
642
643 MMRESULT ACMAPI acmFilterChooseA(LPACMFILTERCHOOSEA pafltrc);
644 MMRESULT ACMAPI acmFilterChooseW(LPACMFILTERCHOOSEW pafltrc);
645#ifdef _UNICODE
646#define acmFilterChoose acmFilterChooseW
647#else
648#define acmFilterChoose acmFilterChooseA
649#endif
650
651#ifdef _WIN64
652#define _DRVRESERVED 15
653#else
654#define _DRVRESERVED 10
655#endif
656
657 typedef struct tACMSTREAMHEADER {
658 DWORD cbStruct;
659 DWORD fdwStatus;
660 DWORD_PTR dwUser;
661 LPBYTE pbSrc;
662 DWORD cbSrcLength;
663 DWORD cbSrcLengthUsed;
664 DWORD_PTR dwSrcUser;
665 LPBYTE pbDst;
666 DWORD cbDstLength;
667 DWORD cbDstLengthUsed;
668 DWORD_PTR dwDstUser;
669 DWORD dwReservedDriver[_DRVRESERVED];
670 } ACMSTREAMHEADER,*PACMSTREAMHEADER,*LPACMSTREAMHEADER;
671
672#define ACMSTREAMHEADER_STATUSF_DONE __MSABI_LONG(0x00010000)
673#define ACMSTREAMHEADER_STATUSF_PREPARED __MSABI_LONG(0x00020000)
674#define ACMSTREAMHEADER_STATUSF_INQUEUE __MSABI_LONG(0x00100000)
675
676 MMRESULT ACMAPI acmStreamOpen(LPHACMSTREAM phas,HACMDRIVER had,LPWAVEFORMATEX pwfxSrc,LPWAVEFORMATEX pwfxDst,LPWAVEFILTER pwfltr,DWORD_PTR dwCallback,DWORD_PTR dwInstance,DWORD fdwOpen);
677
678#define ACM_STREAMOPENF_QUERY 0x00000001
679#define ACM_STREAMOPENF_ASYNC 0x00000002
680#define ACM_STREAMOPENF_NONREALTIME 0x00000004
681
682 MMRESULT ACMAPI acmStreamClose
683 (HACMSTREAM has,DWORD fdwClose);
684
685 MMRESULT ACMAPI acmStreamSize(HACMSTREAM has,DWORD cbInput,LPDWORD pdwOutputBytes,DWORD fdwSize);
686
687#define ACM_STREAMSIZEF_SOURCE __MSABI_LONG(0x00000000)
688#define ACM_STREAMSIZEF_DESTINATION __MSABI_LONG(0x00000001)
689#define ACM_STREAMSIZEF_QUERYMASK __MSABI_LONG(0x0000000F)
690
691 MMRESULT ACMAPI acmStreamReset(HACMSTREAM has,DWORD fdwReset);
692 MMRESULT ACMAPI acmStreamMessage(HACMSTREAM has,UINT uMsg,LPARAM lParam1,LPARAM lParam2);
693 MMRESULT ACMAPI acmStreamConvert(HACMSTREAM has,LPACMSTREAMHEADER pash,DWORD fdwConvert);
694
695#define ACM_STREAMCONVERTF_BLOCKALIGN 0x00000004
696#define ACM_STREAMCONVERTF_START 0x00000010
697#define ACM_STREAMCONVERTF_END 0x00000020
698
699 MMRESULT ACMAPI acmStreamPrepareHeader(HACMSTREAM has,LPACMSTREAMHEADER pash,DWORD fdwPrepare);
700 MMRESULT ACMAPI acmStreamUnprepareHeader(HACMSTREAM has,LPACMSTREAMHEADER pash,DWORD fdwUnprepare);
701
702#include "poppack.h"
703
704#ifdef __cplusplus
705}
706#endif
707#endif
Note: See TracBrowser for help on using the repository browser.