Fix function prototype and spec file entry for
[wine/multimedia.git] / dlls / msacm / wineacm.h
blobc844ab51c22d69be0b1067cdd488ff5531a57c97
1 /* -*- tab-width: 8; c-basic-offset: 4 -*- */
2 /*
3 * Copyright 2000 Eric Pouech
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 #ifndef __WINE_WINEACM_H
21 #define __WINE_WINEACM_H
23 #include "wine/windef16.h"
24 #include "wine/mmsystem16.h"
26 /***********************************************************************
27 * Win16 definitions
29 typedef BOOL16 (CALLBACK *ACMDRIVERENUMCB16)(
30 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
32 typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROC16)(
33 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
35 typedef UINT16 (CALLBACK *ACMFORMATCHOOSEHOOKPROC16)(
36 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
39 typedef struct _ACMDRIVERDETAILS16
41 DWORD cbStruct;
43 FOURCC fccType;
44 FOURCC fccComp;
46 WORD wMid;
47 WORD wPid;
49 DWORD vdwACM;
50 DWORD vdwDriver;
52 DWORD fdwSupport;
53 DWORD cFormatTags;
54 DWORD cFilterTags;
56 HICON16 hicon;
58 CHAR szShortName[ACMDRIVERDETAILS_SHORTNAME_CHARS];
59 CHAR szLongName[ACMDRIVERDETAILS_LONGNAME_CHARS];
60 CHAR szCopyright[ACMDRIVERDETAILS_COPYRIGHT_CHARS];
61 CHAR szLicensing[ACMDRIVERDETAILS_LICENSING_CHARS];
62 CHAR szFeatures[ACMDRIVERDETAILS_FEATURES_CHARS];
63 } ACMDRIVERDETAILS16, *NPACMDRIVERDETAILS16, *LPACMDRIVERDETAILS16;
65 typedef struct _ACMFILTERCHOOSE16
67 DWORD cbStruct;
68 DWORD fdwStyle;
70 HWND16 hwndOwner;
72 LPWAVEFILTER pwfltr;
73 DWORD cbwfltr;
75 LPCSTR pszTitle;
77 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
78 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
79 LPSTR pszName;
80 DWORD cchName;
82 DWORD fdwEnum;
83 LPWAVEFILTER pwfltrEnum;
85 HINSTANCE16 hInstance;
86 LPCSTR pszTemplateName;
87 LPARAM lCustData;
88 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
89 } ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
91 typedef struct _ACMFILTERDETAILS16
93 DWORD cbStruct;
94 DWORD dwFilterIndex;
95 DWORD dwFilterTag;
96 DWORD fdwSupport;
97 LPWAVEFILTER pwfltr;
98 DWORD cbwfltr;
99 CHAR szFilter[ACMFILTERDETAILS_FILTER_CHARS];
100 } ACMFILTERDETAILS16, *NPACMFILTERDETAILS16, *LPACMFILTERDETAILS16;
102 typedef struct _ACMFILTERTAGDETAILS16
104 DWORD cbStruct;
105 DWORD dwFilterTagIndex;
106 DWORD dwFilterTag;
107 DWORD cbFilterSize;
108 DWORD fdwSupport;
109 DWORD cStandardFilters;
110 CHAR szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
111 } ACMFILTERTAGDETAILS16, *NPACMFILTERTAGDETAILS16, *LPACMFILTERTAGDETAILS16;
113 typedef struct _ACMFORMATCHOOSE16
115 DWORD cbStruct;
116 DWORD fdwStyle;
118 HWND16 hwndOwner;
120 LPWAVEFORMATEX pwfx;
121 DWORD cbwfx;
122 LPCSTR pszTitle;
124 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
125 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
127 LPSTR pszName;
128 DWORD cchName;
130 DWORD fdwEnum;
131 LPWAVEFORMATEX pwfxEnum;
133 HINSTANCE16 hInstance;
134 LPCSTR pszTemplateName;
135 LPARAM lCustData;
136 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
137 } ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
139 typedef struct _ACMFORMATDETAILS16
141 DWORD cbStruct;
142 DWORD dwFormatIndex;
143 DWORD dwFormatTag;
144 DWORD fdwSupport;
145 LPWAVEFORMATEX pwfx;
146 DWORD cbwfx;
147 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
148 } ACMFORMATDETAILS16, *NPACMFORMATDETAILS16, *LPACMFORMATDETAILS16;
150 typedef struct _ACMFORMATTAGDETAILS16
152 DWORD cbStruct;
153 DWORD dwFormatTagIndex;
154 DWORD dwFormatTag;
155 DWORD cbFormatSize;
156 DWORD fdwSupport;
157 DWORD cStandardFormats;
158 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
159 } ACMFORMATTAGDETAILS16, *NPACMFORMATTAGDETAILS16, *LPACMFORMATTAGDETAILS16;
161 typedef ACMSTREAMHEADER ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16;
163 typedef BOOL16 (CALLBACK *ACMFILTERENUMCB16)(
164 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
165 DWORD dwInstance, DWORD fdwSupport
168 typedef BOOL16 (CALLBACK *ACMFILTERTAGENUMCB16)(
169 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
170 DWORD dwInstance, DWORD fdwSupport
173 typedef BOOL16 (CALLBACK *ACMFORMATENUMCB16)(
174 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
175 DWORD dwInstance, DWORD fdwSupport
178 typedef BOOL16 (CALLBACK *ACMFORMATTAGENUMCB16)(
179 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
180 DWORD dwInstance, DWORD fdwSupport
183 /***********************************************************************
184 * Functions - Win16
187 DWORD WINAPI acmGetVersion16(void);
188 MMRESULT16 WINAPI acmMetrics16(
189 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
191 MMRESULT16 WINAPI acmDriverEnum16(
192 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
194 MMRESULT16 WINAPI acmDriverDetails16(
195 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
197 MMRESULT16 WINAPI acmDriverAdd16(
198 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
199 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
201 MMRESULT16 WINAPI acmDriverRemove16(
202 HACMDRIVERID16 hadid, DWORD fdwRemove
204 MMRESULT16 WINAPI acmDriverOpen16(
205 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
207 MMRESULT16 WINAPI acmDriverClose16(
208 HACMDRIVER16 had, DWORD fdwClose
210 LRESULT WINAPI acmDriverMessage16(
211 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
213 MMRESULT16 WINAPI acmDriverID16(
214 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
216 MMRESULT16 WINAPI acmDriverPriority16(
217 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
219 MMRESULT16 WINAPI acmFormatTagDetails16(
220 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
222 MMRESULT16 WINAPI acmFormatTagEnum16(
223 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
224 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
226 MMRESULT16 WINAPI acmFormatChoose16(
227 LPACMFORMATCHOOSE16 pafmtc
229 MMRESULT16 WINAPI acmFormatDetails16(
230 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
232 MMRESULT16 WINAPI acmFormatEnum16(
233 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
234 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
236 MMRESULT16 WINAPI acmFormatSuggest16(
237 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
238 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
240 MMRESULT16 WINAPI acmFilterTagDetails16(
241 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
243 MMRESULT16 WINAPI acmFilterTagEnum16(
244 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
245 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
247 MMRESULT16 WINAPI acmFilterChoose16(
248 LPACMFILTERCHOOSE16 pafltrc
250 MMRESULT16 WINAPI acmFilterDetails16(
251 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
253 MMRESULT16 WINAPI acmFilterEnum16(
254 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
255 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
257 MMRESULT16 WINAPI acmStreamOpen16(
258 LPHACMSTREAM16 phas, HACMDRIVER16 had,
259 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
260 LPWAVEFILTER pwfltr, DWORD dwCallback,
261 DWORD dwInstance, DWORD fdwOpen
263 MMRESULT16 WINAPI acmStreamClose16(
264 HACMSTREAM16 has, DWORD fdwClose
266 MMRESULT16 WINAPI acmStreamSize16(
267 HACMSTREAM16 has, DWORD cbInput,
268 LPDWORD pdwOutputBytes, DWORD fdwSize
270 MMRESULT16 WINAPI acmStreamConvert16(
271 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
273 MMRESULT16 WINAPI acmStreamReset16(
274 HACMSTREAM16 has, DWORD fdwReset
276 MMRESULT16 WINAPI acmStreamPrepareHeader16(
277 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
279 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
280 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
284 /***********************************************************************
285 * Wine specific - Win32
287 typedef struct _WINE_ACMDRIVERID *PWINE_ACMDRIVERID;
288 typedef struct _WINE_ACMDRIVER *PWINE_ACMDRIVER;
290 #define WINE_ACMOBJ_DONTCARE 0x5EED0000
291 #define WINE_ACMOBJ_DRIVERID 0x5EED0001
292 #define WINE_ACMOBJ_DRIVER 0x5EED0002
293 #define WINE_ACMOBJ_STREAM 0x5EED0003
295 typedef struct _WINE_ACMOBJ
297 DWORD dwType;
298 PWINE_ACMDRIVERID pACMDriverID;
299 } WINE_ACMOBJ, *PWINE_ACMOBJ;
301 typedef struct _WINE_ACMDRIVER
303 WINE_ACMOBJ obj;
304 HDRVR hDrvr;
305 PWINE_ACMDRIVER pNextACMDriver;
306 } WINE_ACMDRIVER;
308 typedef struct _WINE_ACMSTREAM
310 WINE_ACMOBJ obj;
311 PWINE_ACMDRIVER pDrv;
312 ACMDRVSTREAMINSTANCE drvInst;
313 HACMDRIVER hAcmDriver;
314 } WINE_ACMSTREAM, *PWINE_ACMSTREAM;
316 typedef struct _WINE_ACMDRIVERID
318 WINE_ACMOBJ obj;
319 LPWSTR pszDriverAlias;
320 LPWSTR pszFileName;
321 HINSTANCE hInstModule; /* NULL if global */
322 PWINE_ACMDRIVER pACMDriverList;
323 PWINE_ACMDRIVERID pNextACMDriverID;
324 PWINE_ACMDRIVERID pPrevACMDriverID;
325 /* information about the driver itself, either gotten from registry or driver itself */
326 DWORD cFilterTags;
327 DWORD cFormatTags;
328 DWORD fdwSupport;
329 struct {
330 DWORD dwFormatTag;
331 DWORD cbwfx;
332 }* aFormatTag;
333 } WINE_ACMDRIVERID;
335 /* From internal.c */
336 extern HANDLE MSACM_hHeap;
337 extern PWINE_ACMDRIVERID MSACM_pFirstACMDriverID;
338 extern PWINE_ACMDRIVERID MSACM_pLastACMDriverID;
339 extern PWINE_ACMDRIVERID MSACM_RegisterDriver(LPCWSTR pszDriverAlias, LPCWSTR pszFileName,
340 HINSTANCE hinstModule);
341 extern void MSACM_RegisterAllDrivers(void);
342 extern PWINE_ACMDRIVERID MSACM_UnregisterDriver(PWINE_ACMDRIVERID p);
343 extern void MSACM_UnregisterAllDrivers(void);
344 extern PWINE_ACMDRIVERID MSACM_GetDriverID(HACMDRIVERID hDriverID);
345 extern PWINE_ACMDRIVER MSACM_GetDriver(HACMDRIVER hDriver);
346 extern PWINE_ACMOBJ MSACM_GetObj(HACMOBJ hObj, DWORD type);
348 extern MMRESULT MSACM_Message(HACMDRIVER, UINT, LPARAM, LPARAM);
349 extern BOOL MSACM_FindFormatTagInCache(WINE_ACMDRIVERID*, DWORD, LPDWORD);
351 /* From msacm32.c */
352 extern HINSTANCE MSACM_hInstance32;
354 /* From pcmcnvtr.c */
355 LRESULT CALLBACK PCM_DriverProc(DWORD dwDevID, HDRVR hDriv, UINT wMsg,
356 LPARAM dwParam1, LPARAM dwParam2);
358 /* Dialog box templates */
359 #include "msacmdlg.h"
361 #endif /* __WINE_WINEACM_H */