Added LGPL standard comment, and copyright notices where necessary.
[wine] / dlls / msacm / msacm_main.c
1 /*
2  *      MSACM library
3  *
4  *      Copyright 1998  Patrik Stridvall
5  *
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.
10  *
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.
15  *
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
19  */
20
21 #include "winbase.h"
22 #include "winerror.h"
23 #include "mmsystem.h"
24 #include "msacm.h"
25 #include "msacmdrv.h"
26 #include "wineacm.h"
27 #include "wine/debug.h"
28
29 WINE_DEFAULT_DEBUG_CHANNEL(msacm);
30
31 /**************************************************************************
32  *              DllEntryPoint (MSACM.255)
33  *
34  * MSACM DLL entry point
35  *
36  */
37 BOOL WINAPI MSACM_DllEntryPoint(DWORD fdwReason, HINSTANCE16 hinstDLL, WORD ds, 
38                                 WORD wHeapSize, DWORD dwReserved1, WORD wReserved2)
39 {
40     static HANDLE       hndl;
41
42     TRACE("0x%x 0x%lx\n", hinstDLL, fdwReason);
43
44     switch (fdwReason) {
45     case DLL_PROCESS_ATTACH:
46         if (!hndl && !(hndl = LoadLibraryA("MSACM32.DLL"))) {
47             ERR("Could not load sibling MsAcm32.dll\n");
48             return FALSE;
49         }
50         break;
51     case DLL_PROCESS_DETACH:
52         FreeLibrary(hndl);
53         hndl = 0;
54         break;
55     case DLL_THREAD_ATTACH:
56     case DLL_THREAD_DETACH:
57         break;
58     }
59     return TRUE;
60 }
61
62 /***********************************************************************
63  *              acmGetVersion (MSACM.7)
64  */
65 DWORD WINAPI acmGetVersion16(void)
66 {
67   return acmGetVersion();
68 }
69
70 /***********************************************************************
71  *              acmMetrics (MSACM.8)
72  */
73
74 MMRESULT16 WINAPI acmMetrics16(
75   HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric)
76 {
77   FIXME("(0x%04x, %d, %p): semi-stub\n", hao, uMetric, pMetric);
78
79   return acmMetrics(hao, uMetric, pMetric);
80 }
81
82 /***********************************************************************
83  *              acmDriverEnum (MSACM.10)
84  */
85 MMRESULT16 WINAPI acmDriverEnum16(
86   ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
87 {
88   FIXME("(%p, %ld, %ld): stub\n",
89     fnCallback, dwInstance, fdwEnum
90   );
91   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
92   return MMSYSERR_ERROR;
93 }
94
95 /***********************************************************************
96  *              acmDriverDetails (MSACM.11)
97  */
98
99 MMRESULT16 WINAPI acmDriverDetails16(
100   HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails)
101 {
102   FIXME("(0x%04x, %p, %ld): stub\n", hadid, padd, fdwDetails);
103   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
104   return MMSYSERR_ERROR;
105 }
106
107 /***********************************************************************
108  *              acmDriverAdd (MSACM.12)
109  */
110 MMRESULT16 WINAPI acmDriverAdd16(
111   LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
112   LPARAM lParam, DWORD dwPriority, DWORD fdwAdd)
113 {
114   FIXME("(%p, 0x%04x, %ld, %ld, %ld): stub\n",
115     phadid, hinstModule, lParam, dwPriority, fdwAdd
116   );
117   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
118   return MMSYSERR_ERROR;
119 }
120
121 /***********************************************************************
122  *              acmDriverRemove (MSACM.13)
123  */
124 MMRESULT16 WINAPI acmDriverRemove16(
125   HACMDRIVERID16 hadid, DWORD fdwRemove)
126 {
127   FIXME("(0x%04x, %ld): stub\n", hadid, fdwRemove);
128   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
129   return MMSYSERR_ERROR;
130 }
131
132 /***********************************************************************
133  *              acmDriverOpen (MSACM.14)
134  */
135 MMRESULT16 WINAPI acmDriverOpen16(
136   LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen)
137 {
138   FIXME("(%p, 0x%04x, %ld): stub\n", phad, hadid, fdwOpen);
139   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
140   return MMSYSERR_ERROR;
141 }
142
143 /***********************************************************************
144  *              acmDriverClose (MSACM.15)
145  */
146 MMRESULT16 WINAPI acmDriverClose16(
147   HACMDRIVER16 had, DWORD fdwClose)
148 {
149   FIXME("(0x%04x, %ld): stub\n", had, fdwClose);
150   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
151   return MMSYSERR_ERROR;
152 }
153
154 /***********************************************************************
155  *              acmDriverMessage (MSACM.16)
156  */
157 LRESULT WINAPI acmDriverMessage16(
158   HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2)
159 {
160   FIXME("(0x%04x, %d, %ld, %ld): stub\n",
161     had, uMsg, lParam1, lParam2
162   );
163   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
164   return 0;
165 }
166
167 /***********************************************************************
168  *              acmDriverID (MSACM.17)
169  */
170 MMRESULT16 WINAPI acmDriverID16(
171   HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID)
172 {
173   FIXME("(0x%04x, %p, %ld): stub\n", hao, phadid, fdwDriverID);
174   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
175   return MMSYSERR_ERROR;
176 }
177
178 /***********************************************************************
179  *              acmDriverPriority (MSACM.18)
180  */
181 MMRESULT16 WINAPI acmDriverPriority16(
182  HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority)
183 {
184   FIXME("(0x%04x, %ld, %ld): stub\n",
185     hadid, dwPriority, fdwPriority
186   );
187   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
188   return MMSYSERR_ERROR;
189 }
190
191 /***********************************************************************
192  *              acmFormatTagDetails (MSACM.30)
193  */
194 MMRESULT16 WINAPI acmFormatTagDetails16(
195   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails)
196 {
197   FIXME("(0x%04x, %p, %ld): stub\n", had, paftd, fdwDetails);
198   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
199   return MMSYSERR_ERROR;
200 }
201
202 /***********************************************************************
203  *              acmFormatTagEnum (MSACM.31)
204  */
205 MMRESULT16 WINAPI acmFormatTagEnum16(
206   HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
207   ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
208 {
209   FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
210     had, paftd, fnCallback, dwInstance, fdwEnum
211   ); 
212   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
213   return MMSYSERR_ERROR;
214 }
215
216 /***********************************************************************
217  *              acmFormatChoose (MSACM.40)
218  */
219 MMRESULT16 WINAPI acmFormatChoose16(
220   LPACMFORMATCHOOSE16 pafmtc)
221 {
222   FIXME("(%p): stub\n", pafmtc);
223   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
224   return MMSYSERR_ERROR;
225 }
226
227 /***********************************************************************
228  *              acmFormatDetails (MSACM.41)
229  */
230 MMRESULT16 WINAPI acmFormatDetails16(
231   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails)
232 {
233   FIXME("(0x%04x, %p, %ld): stub\n", had, pafd, fdwDetails);
234   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
235   return MMSYSERR_ERROR;
236 }
237
238 /***********************************************************************
239  *              acmFormatEnum (MSACM.42)
240  */
241 MMRESULT16 WINAPI acmFormatEnum16(
242   HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
243   ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
244 {
245   FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
246     had, pafd, fnCallback, dwInstance, fdwEnum
247   );
248   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
249   return MMSYSERR_ERROR;
250 }
251
252 /***********************************************************************
253  *              acmFormatSuggest (MSACM.45)
254  */
255 MMRESULT16 WINAPI acmFormatSuggest16(
256   HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc, 
257   LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest)
258 {
259   FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
260     had, pwfxSrc, pwfxDst, cbwfxDst, fdwSuggest
261   );
262   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
263   return MMSYSERR_ERROR;
264 }
265
266 /***********************************************************************
267  *              acmFilterTagDetails (MSACM.50)
268  */
269 MMRESULT16 WINAPI acmFilterTagDetails16(
270   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails)
271 {
272   FIXME("(0x%04x, %p, %ld): stub\n", had, paftd, fdwDetails);
273   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
274   return MMSYSERR_ERROR;
275 }
276
277 /***********************************************************************
278  *              acmFilterTagEnum (MSACM.51)
279  */
280 MMRESULT16 WINAPI acmFilterTagEnum16(
281   HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
282   ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
283 {
284   FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
285     had, paftd, fnCallback, dwInstance, fdwEnum
286   );
287   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
288   return MMSYSERR_ERROR;
289 }
290
291 /***********************************************************************
292  *              acmFilterChoose (MSACM.60)
293  */
294 MMRESULT16 WINAPI acmFilterChoose16(
295   LPACMFILTERCHOOSE16 pafltrc)
296 {
297   FIXME("(%p): stub\n", pafltrc);
298   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
299   return MMSYSERR_ERROR;
300 }
301
302 /***********************************************************************
303  *              acmFilterDetails (MSACM.61)
304  */
305 MMRESULT16 WINAPI acmFilterDetails16(
306   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails)
307 {
308   FIXME("(0x%04x, %p, %ld): stub\n", had, pafd, fdwDetails);
309   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
310   return MMSYSERR_ERROR;
311 }
312
313 /***********************************************************************
314  *              acmFilterEnum (MSACM.62)
315  */
316 MMRESULT16 WINAPI acmFilterEnum16(
317   HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
318   ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
319 {
320   FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
321     had, pafd, fnCallback, dwInstance, fdwEnum
322   );
323   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
324   return MMSYSERR_ERROR;
325 }
326
327 /***********************************************************************
328  *              acmStreamOpen (MSACM.70)
329  */
330 MMRESULT16 WINAPI acmStreamOpen16(
331   LPHACMSTREAM16 phas, HACMDRIVER16 had,
332   LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
333   LPWAVEFILTER pwfltr, DWORD dwCallback,
334   DWORD dwInstance, DWORD fdwOpen)
335 {
336   FIXME("(%p, 0x%04x, %p, %p, %p, %ld, %ld, %ld): stub\n",
337     phas, had, pwfxSrc, pwfxDst, pwfltr,
338     dwCallback, dwInstance, fdwOpen
339   );
340   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
341   return MMSYSERR_ERROR;
342 }
343
344 /***********************************************************************
345  *              acmStreamClose (MSACM.71)
346  */
347 MMRESULT16 WINAPI acmStreamClose16(
348   HACMSTREAM16 has, DWORD fdwClose)
349 {
350   FIXME("(0x%04x, %ld): stub\n", has, fdwClose);
351   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
352   return MMSYSERR_ERROR;
353 }
354
355 /***********************************************************************
356  *              acmStreamSize (MSACM.72)
357  */
358 MMRESULT16 WINAPI acmStreamSize16(
359   HACMSTREAM16 has, DWORD cbInput, 
360   LPDWORD pdwOutputBytes, DWORD fdwSize)
361 {
362   FIXME("(0x%04x, %ld, %p, %ld): stub\n",
363     has, cbInput, pdwOutputBytes, fdwSize
364   );
365   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
366   return MMSYSERR_ERROR;
367 }
368
369 /***********************************************************************
370  *              acmStreamConvert (MSACM.75)
371  */
372 MMRESULT16 WINAPI acmStreamConvert16(
373   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert)
374 {
375   FIXME("(0x%04x, %p, %ld): stub\n", has, pash, fdwConvert);
376   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
377   return MMSYSERR_ERROR;
378 }
379
380 /***********************************************************************
381  *              acmStreamReset (MSACM.76)
382  */
383 MMRESULT16 WINAPI acmStreamReset16(
384   HACMSTREAM16 has, DWORD fdwReset)
385 {
386   FIXME("(0x%04x, %ld): stub\n", has, fdwReset);
387   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
388   return MMSYSERR_ERROR;
389 }
390
391 /***********************************************************************
392  *              acmStreamPrepareHeader (MSACM.77)
393  */
394 MMRESULT16 WINAPI acmStreamPrepareHeader16(
395   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare)
396 {
397   FIXME("(0x%04x, %p, %ld): stub\n", has, pash, fdwPrepare);
398   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
399   return MMSYSERR_ERROR;
400 }
401
402 /***********************************************************************
403  *              acmStreamUnprepareHeader (MSACM.78)
404  */
405 MMRESULT16 WINAPI acmStreamUnprepareHeader16(
406   HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare)
407 {
408   FIXME("(0x%04x, %p, %ld): stub\n",
409     has, pash, fdwUnprepare
410   );
411   SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
412   return MMSYSERR_ERROR;
413 }
414
415 /***********************************************************************
416  *              ACMAPPLICATIONEXIT (MSACM.150)
417  * FIXME
418  *   No documentation found.
419  */
420
421 /***********************************************************************
422  *              ACMHUGEPAGELOCK (MSACM.175)
423  *FIXME
424  *   No documentation found.
425  */
426
427 /***********************************************************************
428  *              ACMHUGEPAGEUNLOCK (MSACM.176)
429  * FIXME
430  *   No documentation found.
431  */
432
433 /***********************************************************************
434  *              ACMOPENCONVERSION (MSACM.200)
435  * FIXME
436  *   No documentation found.
437  */
438
439 /***********************************************************************
440  *              ACMCLOSECONVERSION (MSACM.201)
441  * FIXME
442  *   No documentation found.
443  */
444
445 /***********************************************************************
446  *              ACMCONVERT (MSACM.202)
447  * FIXME
448  *   No documentation found.
449  */
450
451 /***********************************************************************
452  *              ACMCHOOSEFORMAT (MSACM.203)
453  * FIXME
454  *   No documentation found.
455  */
456
457