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