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