The argv array passed to the app needs to be in the Ansi codepage, not
[wine/multimedia.git] / dlls / msacm / msacm_main.c
blob53b17e1c7554acf97ed837a8f63f556e103c5eb2
1 /*
2 * MSACM library
4 * Copyright 1998 Patrik Stridvall
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 #include <stdarg.h>
23 #include "windef.h"
24 #include "winbase.h"
25 #include "winerror.h"
26 #include "mmsystem.h"
27 #define NOBITMAP
28 #include "mmreg.h"
29 #include "msacm.h"
30 #include "msacmdrv.h"
31 #include "wineacm.h"
32 #include "wine/debug.h"
34 WINE_DEFAULT_DEBUG_CHANNEL(msacm);
36 /**************************************************************************
37 * DllEntryPoint (MSACM.255)
39 * MSACM DLL entry point
42 BOOL WINAPI MSACM_DllEntryPoint(DWORD fdwReason, HINSTANCE16 hinstDLL, WORD ds,
43 WORD wHeapSize, DWORD dwReserved1, WORD wReserved2)
45 static HANDLE hndl;
47 TRACE("0x%x 0x%lx\n", hinstDLL, fdwReason);
49 switch (fdwReason) {
50 case DLL_PROCESS_ATTACH:
51 if (!hndl && !(hndl = LoadLibraryA("MSACM32.DLL"))) {
52 ERR("Could not load sibling MsAcm32.dll\n");
53 return FALSE;
55 break;
56 case DLL_PROCESS_DETACH:
57 FreeLibrary(hndl);
58 hndl = 0;
59 break;
60 case DLL_THREAD_ATTACH:
61 case DLL_THREAD_DETACH:
62 break;
64 return TRUE;
67 /***********************************************************************
68 * acmGetVersion (MSACM.7)
70 DWORD WINAPI acmGetVersion16(void)
72 return acmGetVersion();
75 /***********************************************************************
76 * acmMetrics (MSACM.8)
79 MMRESULT16 WINAPI acmMetrics16(
80 HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric)
82 FIXME("(0x%04x, %d, %p): semi-stub\n", hao, uMetric, pMetric);
84 if(!hao) return acmMetrics(0, uMetric, pMetric);
85 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
86 return MMSYSERR_ERROR;
89 /***********************************************************************
90 * acmDriverEnum (MSACM.10)
92 MMRESULT16 WINAPI acmDriverEnum16(
93 ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
95 FIXME("(%p, %ld, %ld): stub\n",
96 fnCallback, dwInstance, fdwEnum
98 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
99 return MMSYSERR_ERROR;
102 /***********************************************************************
103 * acmDriverDetails (MSACM.11)
106 MMRESULT16 WINAPI acmDriverDetails16(
107 HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails)
109 FIXME("(0x%04x, %p, %ld): stub\n", hadid, padd, fdwDetails);
110 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
111 return MMSYSERR_ERROR;
114 /***********************************************************************
115 * acmDriverAdd (MSACM.12)
117 MMRESULT16 WINAPI acmDriverAdd16(
118 LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
119 LPARAM lParam, DWORD dwPriority, DWORD fdwAdd)
121 FIXME("(%p, 0x%04x, %ld, %ld, %ld): stub\n",
122 phadid, hinstModule, lParam, dwPriority, fdwAdd
124 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
125 return MMSYSERR_ERROR;
128 /***********************************************************************
129 * acmDriverRemove (MSACM.13)
131 MMRESULT16 WINAPI acmDriverRemove16(
132 HACMDRIVERID16 hadid, DWORD fdwRemove)
134 FIXME("(0x%04x, %ld): stub\n", hadid, fdwRemove);
135 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
136 return MMSYSERR_ERROR;
139 /***********************************************************************
140 * acmDriverOpen (MSACM.14)
142 MMRESULT16 WINAPI acmDriverOpen16(
143 LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen)
145 FIXME("(%p, 0x%04x, %ld): stub\n", phad, hadid, fdwOpen);
146 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
147 return MMSYSERR_ERROR;
150 /***********************************************************************
151 * acmDriverClose (MSACM.15)
153 MMRESULT16 WINAPI acmDriverClose16(
154 HACMDRIVER16 had, DWORD fdwClose)
156 FIXME("(0x%04x, %ld): stub\n", had, fdwClose);
157 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
158 return MMSYSERR_ERROR;
161 /***********************************************************************
162 * acmDriverMessage (MSACM.16)
164 LRESULT WINAPI acmDriverMessage16(
165 HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2)
167 FIXME("(0x%04x, %d, %ld, %ld): stub\n",
168 had, uMsg, lParam1, lParam2
170 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
171 return 0;
174 /***********************************************************************
175 * acmDriverID (MSACM.17)
177 MMRESULT16 WINAPI acmDriverID16(
178 HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID)
180 FIXME("(0x%04x, %p, %ld): stub\n", hao, phadid, fdwDriverID);
181 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
182 return MMSYSERR_ERROR;
185 /***********************************************************************
186 * acmDriverPriority (MSACM.18)
188 MMRESULT16 WINAPI acmDriverPriority16(
189 HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority)
191 FIXME("(0x%04x, %ld, %ld): stub\n",
192 hadid, dwPriority, fdwPriority
194 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
195 return MMSYSERR_ERROR;
198 /***********************************************************************
199 * acmFormatTagDetails (MSACM.30)
201 MMRESULT16 WINAPI acmFormatTagDetails16(
202 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails)
204 FIXME("(0x%04x, %p, %ld): stub\n", had, paftd, fdwDetails);
205 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
206 return MMSYSERR_ERROR;
209 /***********************************************************************
210 * acmFormatTagEnum (MSACM.31)
212 MMRESULT16 WINAPI acmFormatTagEnum16(
213 HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
214 ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
216 FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
217 had, paftd, fnCallback, dwInstance, fdwEnum
219 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
220 return MMSYSERR_ERROR;
223 /***********************************************************************
224 * acmFormatChoose (MSACM.40)
226 MMRESULT16 WINAPI acmFormatChoose16(
227 LPACMFORMATCHOOSE16 pafmtc)
229 FIXME("(%p): stub\n", pafmtc);
230 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
231 return MMSYSERR_ERROR;
234 /***********************************************************************
235 * acmFormatDetails (MSACM.41)
237 MMRESULT16 WINAPI acmFormatDetails16(
238 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails)
240 FIXME("(0x%04x, %p, %ld): stub\n", had, pafd, fdwDetails);
241 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
242 return MMSYSERR_ERROR;
245 /***********************************************************************
246 * acmFormatEnum (MSACM.42)
248 MMRESULT16 WINAPI acmFormatEnum16(
249 HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
250 ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
252 FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
253 had, pafd, fnCallback, dwInstance, fdwEnum
255 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
256 return MMSYSERR_ERROR;
259 /***********************************************************************
260 * acmFormatSuggest (MSACM.45)
262 MMRESULT16 WINAPI acmFormatSuggest16(
263 HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
264 LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest)
266 FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
267 had, pwfxSrc, pwfxDst, cbwfxDst, fdwSuggest
269 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
270 return MMSYSERR_ERROR;
273 /***********************************************************************
274 * acmFilterTagDetails (MSACM.50)
276 MMRESULT16 WINAPI acmFilterTagDetails16(
277 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails)
279 FIXME("(0x%04x, %p, %ld): stub\n", had, paftd, fdwDetails);
280 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
281 return MMSYSERR_ERROR;
284 /***********************************************************************
285 * acmFilterTagEnum (MSACM.51)
287 MMRESULT16 WINAPI acmFilterTagEnum16(
288 HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
289 ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
291 FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
292 had, paftd, fnCallback, dwInstance, fdwEnum
294 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
295 return MMSYSERR_ERROR;
298 /***********************************************************************
299 * acmFilterChoose (MSACM.60)
301 MMRESULT16 WINAPI acmFilterChoose16(
302 LPACMFILTERCHOOSE16 pafltrc)
304 FIXME("(%p): stub\n", pafltrc);
305 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
306 return MMSYSERR_ERROR;
309 /***********************************************************************
310 * acmFilterDetails (MSACM.61)
312 MMRESULT16 WINAPI acmFilterDetails16(
313 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails)
315 FIXME("(0x%04x, %p, %ld): stub\n", had, pafd, fdwDetails);
316 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
317 return MMSYSERR_ERROR;
320 /***********************************************************************
321 * acmFilterEnum (MSACM.62)
323 MMRESULT16 WINAPI acmFilterEnum16(
324 HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
325 ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
327 FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
328 had, pafd, fnCallback, dwInstance, fdwEnum
330 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
331 return MMSYSERR_ERROR;
334 /***********************************************************************
335 * acmStreamOpen (MSACM.70)
337 MMRESULT16 WINAPI acmStreamOpen16(
338 LPHACMSTREAM16 phas, HACMDRIVER16 had,
339 LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
340 LPWAVEFILTER pwfltr, DWORD dwCallback,
341 DWORD dwInstance, DWORD fdwOpen)
343 FIXME("(%p, 0x%04x, %p, %p, %p, %ld, %ld, %ld): stub\n",
344 phas, had, pwfxSrc, pwfxDst, pwfltr,
345 dwCallback, dwInstance, fdwOpen
347 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
348 return MMSYSERR_ERROR;
351 /***********************************************************************
352 * acmStreamClose (MSACM.71)
354 MMRESULT16 WINAPI acmStreamClose16(
355 HACMSTREAM16 has, DWORD fdwClose)
357 FIXME("(0x%04x, %ld): stub\n", has, fdwClose);
358 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
359 return MMSYSERR_ERROR;
362 /***********************************************************************
363 * acmStreamSize (MSACM.72)
365 MMRESULT16 WINAPI acmStreamSize16(
366 HACMSTREAM16 has, DWORD cbInput,
367 LPDWORD pdwOutputBytes, DWORD fdwSize)
369 FIXME("(0x%04x, %ld, %p, %ld): stub\n",
370 has, cbInput, pdwOutputBytes, fdwSize
372 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
373 return MMSYSERR_ERROR;
376 /***********************************************************************
377 * acmStreamConvert (MSACM.75)
379 MMRESULT16 WINAPI acmStreamConvert16(
380 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert)
382 FIXME("(0x%04x, %p, %ld): stub\n", has, pash, fdwConvert);
383 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
384 return MMSYSERR_ERROR;
387 /***********************************************************************
388 * acmStreamReset (MSACM.76)
390 MMRESULT16 WINAPI acmStreamReset16(
391 HACMSTREAM16 has, DWORD fdwReset)
393 FIXME("(0x%04x, %ld): stub\n", has, fdwReset);
394 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
395 return MMSYSERR_ERROR;
398 /***********************************************************************
399 * acmStreamPrepareHeader (MSACM.77)
401 MMRESULT16 WINAPI acmStreamPrepareHeader16(
402 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare)
404 FIXME("(0x%04x, %p, %ld): stub\n", has, pash, fdwPrepare);
405 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
406 return MMSYSERR_ERROR;
409 /***********************************************************************
410 * acmStreamUnprepareHeader (MSACM.78)
412 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
413 HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare)
415 FIXME("(0x%04x, %p, %ld): stub\n",
416 has, pash, fdwUnprepare
418 SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
419 return MMSYSERR_ERROR;
422 /***********************************************************************
423 * ACMAPPLICATIONEXIT (MSACM.150)
424 * FIXME
425 * No documentation found.
428 /***********************************************************************
429 * ACMHUGEPAGELOCK (MSACM.175)
430 *FIXME
431 * No documentation found.
434 /***********************************************************************
435 * ACMHUGEPAGEUNLOCK (MSACM.176)
436 * FIXME
437 * No documentation found.
440 /***********************************************************************
441 * ACMOPENCONVERSION (MSACM.200)
442 * FIXME
443 * No documentation found.
446 /***********************************************************************
447 * ACMCLOSECONVERSION (MSACM.201)
448 * FIXME
449 * No documentation found.
452 /***********************************************************************
453 * ACMCONVERT (MSACM.202)
454 * FIXME
455 * No documentation found.
458 /***********************************************************************
459 * ACMCHOOSEFORMAT (MSACM.203)
460 * FIXME
461 * No documentation found.