blob: b575c8cf1ae885534b67a97e5fb090b20d67b8a7 [file] [log] [blame]
Eric Pouech1ddce711999-10-31 18:29:16 +00001/* -*- tab-width: 8; c-basic-offset: 4 -*- */
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00002/*
3 * Copyright 2000 Eric Pouech
4 *
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.
9 *
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.
14 *
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
Jonathan Ernst360a3f92006-05-18 14:49:52 +020017 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
Alexandre Julliard0799c1a2002-03-09 23:29:33 +000018 */
19
Alexandre Julliard83f52d12000-09-26 22:20:14 +000020#ifndef __WINE_WINEACM_H
21#define __WINE_WINEACM_H
22
23#include "wine/windef16.h"
24#include "wine/mmsystem16.h"
25
26/***********************************************************************
27 * Win16 definitions
28 */
Patrik Stridvall57e57842002-02-02 18:42:11 +000029typedef BOOL16 (CALLBACK *ACMDRIVERENUMCB16)(
Alexandre Julliard83f52d12000-09-26 22:20:14 +000030 HACMDRIVERID16 hadid, DWORD dwInstance, DWORD fdwSupport
31);
Patrik Stridvall57e57842002-02-02 18:42:11 +000032typedef UINT (CALLBACK *ACMFILTERCHOOSEHOOKPROC16)(
Alexandre Julliard83f52d12000-09-26 22:20:14 +000033 HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam
34);
Patrik Stridvall57e57842002-02-02 18:42:11 +000035typedef UINT16 (CALLBACK *ACMFORMATCHOOSEHOOKPROC16)(
Alexandre Julliard83f52d12000-09-26 22:20:14 +000036 HWND16 hwnd, UINT16 uMsg, WPARAM16 wParam, LPARAM lParam
37);
38
39typedef struct _ACMDRIVERDETAILS16
40{
41 DWORD cbStruct;
42
43 FOURCC fccType;
44 FOURCC fccComp;
45
46 WORD wMid;
47 WORD wPid;
48
49 DWORD vdwACM;
50 DWORD vdwDriver;
51
52 DWORD fdwSupport;
53 DWORD cFormatTags;
54 DWORD cFilterTags;
55
56 HICON16 hicon;
57
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;
64
65typedef struct _ACMFILTERCHOOSE16
66{
67 DWORD cbStruct;
68 DWORD fdwStyle;
69
70 HWND16 hwndOwner;
71
72 LPWAVEFILTER pwfltr;
73 DWORD cbwfltr;
74
75 LPCSTR pszTitle;
76
77 char szFilterTag[ACMFILTERTAGDETAILS_FILTERTAG_CHARS];
78 char szFilter[ACMFILTERDETAILS_FILTER_CHARS];
79 LPSTR pszName;
80 DWORD cchName;
81
82 DWORD fdwEnum;
83 LPWAVEFILTER pwfltrEnum;
Vincent Béron9a624912002-05-31 23:06:46 +000084
Alexandre Julliard83f52d12000-09-26 22:20:14 +000085 HINSTANCE16 hInstance;
86 LPCSTR pszTemplateName;
87 LPARAM lCustData;
88 ACMFILTERCHOOSEHOOKPROC16 pfnHook;
89} ACMFILTERCHOOSE16, *NPACMFILTERCHOOSE16, *LPACMFILTERCHOOSE16;
90
91typedef struct _ACMFILTERDETAILS16
92{
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;
101
102typedef struct _ACMFILTERTAGDETAILS16
103{
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;
112
113typedef struct _ACMFORMATCHOOSE16
114{
115 DWORD cbStruct;
116 DWORD fdwStyle;
Vincent Béron9a624912002-05-31 23:06:46 +0000117
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000118 HWND16 hwndOwner;
119
120 LPWAVEFORMATEX pwfx;
121 DWORD cbwfx;
122 LPCSTR pszTitle;
Vincent Béron9a624912002-05-31 23:06:46 +0000123
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000124 CHAR szFormatTag[ACMFORMATTAGDETAILS_FORMATTAG_CHARS];
Vincent Béron9a624912002-05-31 23:06:46 +0000125 CHAR szFormat[ACMFORMATDETAILS_FORMAT_CHARS];
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000126
127 LPSTR pszName;
128 DWORD cchName;
129
130 DWORD fdwEnum;
131 LPWAVEFORMATEX pwfxEnum;
Vincent Béron9a624912002-05-31 23:06:46 +0000132
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000133 HINSTANCE16 hInstance;
134 LPCSTR pszTemplateName;
135 LPARAM lCustData;
136 ACMFORMATCHOOSEHOOKPROC16 pfnHook;
137} ACMFORMATCHOOSE16, *NPACMFORMATCHOOSE16, *LPACMFORMATCHOOSE16;
138
139typedef struct _ACMFORMATDETAILS16
140{
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;
149
150typedef struct _ACMFORMATTAGDETAILS16
151{
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;
160
161typedef ACMSTREAMHEADER ACMSTREAMHEADER16, *NPACMSTREAMHEADER16, *LPACMSTREAMHEADER16;
162
Patrik Stridvall57e57842002-02-02 18:42:11 +0000163typedef BOOL16 (CALLBACK *ACMFILTERENUMCB16)(
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000164 HACMDRIVERID16 hadid, LPACMFILTERDETAILS16 pafd,
165 DWORD dwInstance, DWORD fdwSupport
166);
167
Patrik Stridvall57e57842002-02-02 18:42:11 +0000168typedef BOOL16 (CALLBACK *ACMFILTERTAGENUMCB16)(
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000169 HACMDRIVERID16 hadid, LPACMFILTERTAGDETAILS16 paftd,
170 DWORD dwInstance, DWORD fdwSupport
171);
172
Patrik Stridvall57e57842002-02-02 18:42:11 +0000173typedef BOOL16 (CALLBACK *ACMFORMATENUMCB16)(
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000174 HACMDRIVERID16 hadid, LPACMFORMATDETAILS16 pafd,
175 DWORD dwInstance, DWORD fdwSupport
176);
177
Patrik Stridvall57e57842002-02-02 18:42:11 +0000178typedef BOOL16 (CALLBACK *ACMFORMATTAGENUMCB16)(
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000179 HACMDRIVERID16 hadid, LPACMFORMATTAGDETAILS16 paftd,
180 DWORD dwInstance, DWORD fdwSupport
181);
182
183/***********************************************************************
184 * Functions - Win16
185 */
186
Eric Pouech4056d7e2004-12-13 21:19:01 +0000187DWORD WINAPI acmGetVersion16(void);
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000188MMRESULT16 WINAPI acmMetrics16(
189 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric
190);
191MMRESULT16 WINAPI acmDriverEnum16(
192 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
193);
194MMRESULT16 WINAPI acmDriverDetails16(
195 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails
196);
197MMRESULT16 WINAPI acmDriverAdd16(
198 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
199 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd
200);
201MMRESULT16 WINAPI acmDriverRemove16(
202 HACMDRIVERID16 hadid, DWORD fdwRemove
203);
204MMRESULT16 WINAPI acmDriverOpen16(
205 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen
206);
207MMRESULT16 WINAPI acmDriverClose16(
208 HACMDRIVER16 had, DWORD fdwClose
209);
210LRESULT WINAPI acmDriverMessage16(
211 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2
212);
213MMRESULT16 WINAPI acmDriverID16(
214 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID
215);
216MMRESULT16 WINAPI acmDriverPriority16(
217 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority
218);
219MMRESULT16 WINAPI acmFormatTagDetails16(
220 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails
221);
222MMRESULT16 WINAPI acmFormatTagEnum16(
223 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
224 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
225);
226MMRESULT16 WINAPI acmFormatChoose16(
227 LPACMFORMATCHOOSE16 pafmtc
228);
229MMRESULT16 WINAPI acmFormatDetails16(
230 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails
231);
232MMRESULT16 WINAPI acmFormatEnum16(
233 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
234 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
235);
236MMRESULT16 WINAPI acmFormatSuggest16(
Vincent Béron9a624912002-05-31 23:06:46 +0000237 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000238 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest
239);
240MMRESULT16 WINAPI acmFilterTagDetails16(
241 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails
242);
243MMRESULT16 WINAPI acmFilterTagEnum16(
244 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
245 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
246);
247MMRESULT16 WINAPI acmFilterChoose16(
248 LPACMFILTERCHOOSE16 pafltrc
249);
250MMRESULT16 WINAPI acmFilterDetails16(
251 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails
252);
253MMRESULT16 WINAPI acmFilterEnum16(
254 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
255 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum
256);
257MMRESULT16 WINAPI acmStreamOpen16(
258 LPHACMSTREAM16 phas, HACMDRIVER16 had,
259 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
260 LPWAVEFILTER pwfltr, DWORD dwCallback,
261 DWORD dwInstance, DWORD fdwOpen
262);
263MMRESULT16 WINAPI acmStreamClose16(
264 HACMSTREAM16 has, DWORD fdwClose
265);
266MMRESULT16 WINAPI acmStreamSize16(
Vincent Béron9a624912002-05-31 23:06:46 +0000267 HACMSTREAM16 has, DWORD cbInput,
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000268 LPDWORD pdwOutputBytes, DWORD fdwSize
269);
270MMRESULT16 WINAPI acmStreamConvert16(
271 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert
272);
273MMRESULT16 WINAPI acmStreamReset16(
274 HACMSTREAM16 has, DWORD fdwReset
275);
276MMRESULT16 WINAPI acmStreamPrepareHeader16(
277 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare
278);
279MMRESULT16 WINAPI acmStreamUnprepareHeader16(
280 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare
281);
282
Eric Pouech1ddce711999-10-31 18:29:16 +0000283
284/***********************************************************************
285 * Wine specific - Win32
286 */
287typedef struct _WINE_ACMDRIVERID *PWINE_ACMDRIVERID;
Eric Pouech5c7f1ab1999-12-12 21:28:09 +0000288typedef struct _WINE_ACMDRIVER *PWINE_ACMDRIVER;
Eric Pouech1ddce711999-10-31 18:29:16 +0000289
Eric Pouechb8ba8452000-08-26 04:33:00 +0000290#define WINE_ACMOBJ_DONTCARE 0x5EED0000
291#define WINE_ACMOBJ_DRIVERID 0x5EED0001
292#define WINE_ACMOBJ_DRIVER 0x5EED0002
293#define WINE_ACMOBJ_STREAM 0x5EED0003
Alex Villacís Lassoe3851bc2006-01-18 12:10:59 +0100294#define WINE_ACMOBJ_NOTIFYWND 0x5EED0004
Alex Villacís Lasso6c370762006-01-18 12:16:57 +0100295#define WINE_ACMOBJ_LOCALDRIVER 0x5EED0005
Eric Pouechb8ba8452000-08-26 04:33:00 +0000296
Eric Pouech1ddce711999-10-31 18:29:16 +0000297typedef struct _WINE_ACMOBJ
298{
Eric Pouechb8ba8452000-08-26 04:33:00 +0000299 DWORD dwType;
300 PWINE_ACMDRIVERID pACMDriverID;
Eric Pouech1ddce711999-10-31 18:29:16 +0000301} WINE_ACMOBJ, *PWINE_ACMOBJ;
302
Alex Villacís Lasso6c370762006-01-18 12:16:57 +0100303typedef struct _WINE_ACMLOCALDRIVER * PWINE_ACMLOCALDRIVER;
304typedef struct _WINE_ACMLOCALDRIVERINST * PWINE_ACMLOCALDRIVERINST;
305typedef struct _WINE_ACMLOCALDRIVER
306{
307 WINE_ACMOBJ obj;
308 HMODULE hModule;
309 DRIVERPROC lpDrvProc;
310 PWINE_ACMLOCALDRIVERINST pACMInstList;
311 PWINE_ACMLOCALDRIVER pNextACMLocalDrv;
312 PWINE_ACMLOCALDRIVER pPrevACMLocalDrv;
313} WINE_ACMLOCALDRIVER;
314
315typedef struct _WINE_ACMLOCALDRIVERINST
316{
317 PWINE_ACMLOCALDRIVER pLocalDriver;
318 DWORD dwDriverID;
319 BOOL bSession;
320 PWINE_ACMLOCALDRIVERINST pNextACMInst;
321} WINE_ACMLOCALDRIVERINST;
322
Eric Pouech1ddce711999-10-31 18:29:16 +0000323typedef struct _WINE_ACMDRIVER
324{
325 WINE_ACMOBJ obj;
326 HDRVR hDrvr;
Alex Villacís Lasso6c370762006-01-18 12:16:57 +0100327 PWINE_ACMLOCALDRIVERINST pLocalDrvrInst;
328
Eric Pouech5c7f1ab1999-12-12 21:28:09 +0000329 PWINE_ACMDRIVER pNextACMDriver;
330} WINE_ACMDRIVER;
Eric Pouech1ddce711999-10-31 18:29:16 +0000331
332typedef struct _WINE_ACMSTREAM
333{
334 WINE_ACMOBJ obj;
335 PWINE_ACMDRIVER pDrv;
336 ACMDRVSTREAMINSTANCE drvInst;
Eric Pouechba42b261999-12-05 02:17:18 +0000337 HACMDRIVER hAcmDriver;
Eric Pouech1ddce711999-10-31 18:29:16 +0000338} WINE_ACMSTREAM, *PWINE_ACMSTREAM;
339
340typedef struct _WINE_ACMDRIVERID
341{
Eric Pouechb8ba8452000-08-26 04:33:00 +0000342 WINE_ACMOBJ obj;
Eric Pouech5061d3a2003-07-02 00:40:14 +0000343 LPWSTR pszDriverAlias;
344 LPWSTR pszFileName;
Alex Villacís Lasso6c370762006-01-18 12:16:57 +0100345 PWINE_ACMLOCALDRIVER pLocalDriver; /* NULL if global */
Eric Pouech5c7f1ab1999-12-12 21:28:09 +0000346 PWINE_ACMDRIVER pACMDriverList;
Eric Pouech1ddce711999-10-31 18:29:16 +0000347 PWINE_ACMDRIVERID pNextACMDriverID;
Eric Pouech5c7f1ab1999-12-12 21:28:09 +0000348 PWINE_ACMDRIVERID pPrevACMDriverID;
Eric Pouechfaa35942001-04-23 18:14:41 +0000349 /* information about the driver itself, either gotten from registry or driver itself */
350 DWORD cFilterTags;
351 DWORD cFormatTags;
352 DWORD fdwSupport;
353 struct {
354 DWORD dwFormatTag;
355 DWORD cbwfx;
356 }* aFormatTag;
Eric Pouech1ddce711999-10-31 18:29:16 +0000357} WINE_ACMDRIVERID;
358
Alex Villacís Lassoe3851bc2006-01-18 12:10:59 +0100359typedef struct _WINE_ACMNOTIFYWND * PWINE_ACMNOTIFYWND;
360typedef struct _WINE_ACMNOTIFYWND
361{
362 WINE_ACMOBJ obj;
363 HWND hNotifyWnd; /* Window to notify on ACM events: driver add, driver removal, priority change */
364 DWORD dwNotifyMsg; /* Notification message to send to window */
365 DWORD fdwSupport;
366 PWINE_ACMNOTIFYWND pNextACMNotifyWnd;
367 PWINE_ACMNOTIFYWND pPrevACMNotifyWnd;
368} WINE_ACMNOTIFYWND;
369
Eric Pouech1ddce711999-10-31 18:29:16 +0000370/* From internal.c */
371extern HANDLE MSACM_hHeap;
372extern PWINE_ACMDRIVERID MSACM_pFirstACMDriverID;
373extern PWINE_ACMDRIVERID MSACM_pLastACMDriverID;
Francois Gougetebf0eb32004-04-20 00:34:52 +0000374extern PWINE_ACMDRIVERID MSACM_RegisterDriver(LPCWSTR pszDriverAlias, LPCWSTR pszFileName,
Alex Villacís Lasso6c370762006-01-18 12:16:57 +0100375 PWINE_ACMLOCALDRIVER pLocalDriver);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000376extern void MSACM_RegisterAllDrivers(void);
377extern PWINE_ACMDRIVERID MSACM_UnregisterDriver(PWINE_ACMDRIVERID p);
378extern void MSACM_UnregisterAllDrivers(void);
379extern PWINE_ACMDRIVERID MSACM_GetDriverID(HACMDRIVERID hDriverID);
380extern PWINE_ACMDRIVER MSACM_GetDriver(HACMDRIVER hDriver);
Alex Villacís Lassoe3851bc2006-01-18 12:10:59 +0100381extern PWINE_ACMNOTIFYWND MSACM_GetNotifyWnd(HACMDRIVERID hDriver);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000382extern PWINE_ACMOBJ MSACM_GetObj(HACMOBJ hObj, DWORD type);
Eric Pouech1ddce711999-10-31 18:29:16 +0000383
Eric Pouechb8ba8452000-08-26 04:33:00 +0000384extern MMRESULT MSACM_Message(HACMDRIVER, UINT, LPARAM, LPARAM);
Eric Pouechfaa35942001-04-23 18:14:41 +0000385extern BOOL MSACM_FindFormatTagInCache(WINE_ACMDRIVERID*, DWORD, LPDWORD);
Eric Pouechb8ba8452000-08-26 04:33:00 +0000386
Alex Villacís Lassocb37c432006-01-18 12:06:56 +0100387extern void MSACM_RePositionDriver(PWINE_ACMDRIVERID, DWORD);
388extern void MSACM_WriteCurrentPriorities(void);
389extern void MSACM_BroadcastNotification(void);
390extern void MSACM_DisableNotifications(void);
391extern void MSACM_EnableNotifications(void);
Alex Villacís Lassoe3851bc2006-01-18 12:10:59 +0100392extern PWINE_ACMNOTIFYWND MSACM_RegisterNotificationWindow(HWND hNotifyWnd, DWORD dwNotifyMsg);
393extern PWINE_ACMNOTIFYWND MSACM_UnRegisterNotificationWindow(PWINE_ACMNOTIFYWND);
Alex Villacís Lassocb37c432006-01-18 12:06:56 +0100394
Alex Villacís Lasso72f71702006-01-18 12:07:42 +0100395extern PWINE_ACMDRIVERID MSACM_RegisterDriverFromRegistry(LPCWSTR pszRegEntry);
396
Alex Villacís Lasso6c370762006-01-18 12:16:57 +0100397extern PWINE_ACMLOCALDRIVER MSACM_RegisterLocalDriver(HMODULE hModule, DRIVERPROC lpDriverProc);
398extern PWINE_ACMLOCALDRIVERINST MSACM_OpenLocalDriver(PWINE_ACMLOCALDRIVER, LPARAM);
399extern LRESULT MSACM_CloseLocalDriver(PWINE_ACMLOCALDRIVERINST);
400extern PWINE_ACMLOCALDRIVER MSACM_UnregisterLocalDriver(PWINE_ACMLOCALDRIVER);
401/*
402extern PWINE_ACMLOCALDRIVER MSACM_GetLocalDriver(HACMDRIVER hDriver);
403*/
Eric Pouechb8ba8452000-08-26 04:33:00 +0000404/* From msacm32.c */
405extern HINSTANCE MSACM_hInstance32;
406
Eric Pouech140d8cd2000-10-12 20:46:49 +0000407/* From pcmcnvtr.c */
Alexandre Julliard29aea6e2006-02-17 14:08:38 +0100408LRESULT CALLBACK PCM_DriverProc(DWORD_PTR dwDevID, HDRVR hDriv, UINT wMsg,
Eric Pouech140d8cd2000-10-12 20:46:49 +0000409 LPARAM dwParam1, LPARAM dwParam2);
410
Eric Pouechb8ba8452000-08-26 04:33:00 +0000411/* Dialog box templates */
Eric Pouech28b8ac82001-01-04 20:58:05 +0000412#include "msacmdlg.h"
Alexandre Julliard83f52d12000-09-26 22:20:14 +0000413
414#endif /* __WINE_WINEACM_H */