444 lines
12 KiB
C
444 lines
12 KiB
C
/*
|
|
* MSACM library
|
|
*
|
|
* Copyright 1998 Patrik Stridvall
|
|
*/
|
|
|
|
#include "winbase.h"
|
|
#include "winerror.h"
|
|
#include "mmsystem.h"
|
|
#include "msacm.h"
|
|
#include "msacmdrv.h"
|
|
#include "wineacm.h"
|
|
#include "debugtools.h"
|
|
|
|
DEFAULT_DEBUG_CHANNEL(msacm);
|
|
|
|
/**************************************************************************
|
|
* MSACM_LibMain [EntryPoint]
|
|
*
|
|
* MSACM DLL entry point
|
|
*
|
|
*/
|
|
BOOL WINAPI MSACM_DllEntryPoint(DWORD fdwReason, HINSTANCE16 hinstDLL, WORD ds,
|
|
WORD wHeapSize, DWORD dwReserved1, WORD wReserved2)
|
|
{
|
|
static HANDLE hndl;
|
|
|
|
TRACE("0x%x 0x%lx\n", hinstDLL, fdwReason);
|
|
|
|
switch (fdwReason) {
|
|
case DLL_PROCESS_ATTACH:
|
|
if (!hndl && !(hndl = LoadLibraryA("MSACM32.DLL"))) {
|
|
ERR("Could not load sibling MsAcm32.dll\n");
|
|
return FALSE;
|
|
}
|
|
break;
|
|
case DLL_PROCESS_DETACH:
|
|
FreeLibrary(hndl);
|
|
hndl = 0;
|
|
break;
|
|
case DLL_THREAD_ATTACH:
|
|
case DLL_THREAD_DETACH:
|
|
break;
|
|
}
|
|
return TRUE;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmGetVersion (MSACM.7)
|
|
*/
|
|
DWORD WINAPI acmGetVersion16(void)
|
|
{
|
|
return acmGetVersion();
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmMetrics (MSACM.8)
|
|
*/
|
|
|
|
MMRESULT16 WINAPI acmMetrics16(
|
|
HACMOBJ16 hao, UINT16 uMetric, LPVOID pMetric)
|
|
{
|
|
FIXME("(0x%04x, %d, %p): semi-stub\n", hao, uMetric, pMetric);
|
|
|
|
return acmMetrics(hao, uMetric, pMetric);
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmDriverEnum (MSACM.10)
|
|
*/
|
|
MMRESULT16 WINAPI acmDriverEnum16(
|
|
ACMDRIVERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
|
|
{
|
|
FIXME("(%p, %ld, %ld): stub\n",
|
|
fnCallback, dwInstance, fdwEnum
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmDriverDetails (MSACM.11)
|
|
*/
|
|
|
|
MMRESULT16 WINAPI acmDriverDetails16(
|
|
HACMDRIVERID16 hadid, LPACMDRIVERDETAILS16 padd, DWORD fdwDetails)
|
|
{
|
|
FIXME("(0x%04x, %p, %ld): stub\n", hadid, padd, fdwDetails);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmDriverAdd (MSACM.12)
|
|
*/
|
|
MMRESULT16 WINAPI acmDriverAdd16(
|
|
LPHACMDRIVERID16 phadid, HINSTANCE16 hinstModule,
|
|
LPARAM lParam, DWORD dwPriority, DWORD fdwAdd)
|
|
{
|
|
FIXME("(%p, 0x%04x, %ld, %ld, %ld): stub\n",
|
|
phadid, hinstModule, lParam, dwPriority, fdwAdd
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmDriverRemove (MSACM.13)
|
|
*/
|
|
MMRESULT16 WINAPI acmDriverRemove16(
|
|
HACMDRIVERID16 hadid, DWORD fdwRemove)
|
|
{
|
|
FIXME("(0x%04x, %ld): stub\n", hadid, fdwRemove);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmDriverOpen (MSACM.14)
|
|
*/
|
|
MMRESULT16 WINAPI acmDriverOpen16(
|
|
LPHACMDRIVER16 phad, HACMDRIVERID16 hadid, DWORD fdwOpen)
|
|
{
|
|
FIXME("(%p, 0x%04x, %ld): stub\n", phad, hadid, fdwOpen);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmDriverClose (MSACM.15)
|
|
*/
|
|
MMRESULT16 WINAPI acmDriverClose16(
|
|
HACMDRIVER16 had, DWORD fdwClose)
|
|
{
|
|
FIXME("(0x%04x, %ld): stub\n", had, fdwClose);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmDriverMessage (MSACM.16)
|
|
*/
|
|
LRESULT WINAPI acmDriverMessage16(
|
|
HACMDRIVER16 had, UINT16 uMsg, LPARAM lParam1, LPARAM lParam2)
|
|
{
|
|
FIXME("(0x%04x, %d, %ld, %ld): stub\n",
|
|
had, uMsg, lParam1, lParam2
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return 0;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmDriverID (MSACM.17)
|
|
*/
|
|
MMRESULT16 WINAPI acmDriverID16(
|
|
HACMOBJ16 hao, LPHACMDRIVERID16 phadid, DWORD fdwDriverID)
|
|
{
|
|
FIXME("(0x%04x, %p, %ld): stub\n", hao, phadid, fdwDriverID);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmDriverPriority (MSACM.18)
|
|
*/
|
|
MMRESULT16 WINAPI acmDriverPriority16(
|
|
HACMDRIVERID16 hadid, DWORD dwPriority, DWORD fdwPriority)
|
|
{
|
|
FIXME("(0x%04x, %ld, %ld): stub\n",
|
|
hadid, dwPriority, fdwPriority
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFormatTagDetails (MSACM.30)
|
|
*/
|
|
MMRESULT16 WINAPI acmFormatTagDetails16(
|
|
HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd, DWORD fdwDetails)
|
|
{
|
|
FIXME("(0x%04x, %p, %ld): stub\n", had, paftd, fdwDetails);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFormatTagEnum (MSACM.31)
|
|
*/
|
|
MMRESULT16 WINAPI acmFormatTagEnum16(
|
|
HACMDRIVER16 had, LPACMFORMATTAGDETAILS16 paftd,
|
|
ACMFORMATTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
|
|
{
|
|
FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
|
|
had, paftd, fnCallback, dwInstance, fdwEnum
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFormatChoose (MSACM.40)
|
|
*/
|
|
MMRESULT16 WINAPI acmFormatChoose16(
|
|
LPACMFORMATCHOOSE16 pafmtc)
|
|
{
|
|
FIXME("(%p): stub\n", pafmtc);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFormatDetails (MSACM.41)
|
|
*/
|
|
MMRESULT16 WINAPI acmFormatDetails16(
|
|
HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd, DWORD fdwDetails)
|
|
{
|
|
FIXME("(0x%04x, %p, %ld): stub\n", had, pafd, fdwDetails);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFormatEnum (MSACM.42)
|
|
*/
|
|
MMRESULT16 WINAPI acmFormatEnum16(
|
|
HACMDRIVER16 had, LPACMFORMATDETAILS16 pafd,
|
|
ACMFORMATENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
|
|
{
|
|
FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
|
|
had, pafd, fnCallback, dwInstance, fdwEnum
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFormatSuggest (MSACM.45)
|
|
*/
|
|
MMRESULT16 WINAPI acmFormatSuggest16(
|
|
HACMDRIVER16 had, LPWAVEFORMATEX pwfxSrc,
|
|
LPWAVEFORMATEX pwfxDst, DWORD cbwfxDst, DWORD fdwSuggest)
|
|
{
|
|
FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
|
|
had, pwfxSrc, pwfxDst, cbwfxDst, fdwSuggest
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFilterTagDetails (MSACM.50)
|
|
*/
|
|
MMRESULT16 WINAPI acmFilterTagDetails16(
|
|
HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd, DWORD fdwDetails)
|
|
{
|
|
FIXME("(0x%04x, %p, %ld): stub\n", had, paftd, fdwDetails);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFilterTagEnum (MSACM.51)
|
|
*/
|
|
MMRESULT16 WINAPI acmFilterTagEnum16(
|
|
HACMDRIVER16 had, LPACMFILTERTAGDETAILS16 paftd,
|
|
ACMFILTERTAGENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
|
|
{
|
|
FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
|
|
had, paftd, fnCallback, dwInstance, fdwEnum
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFilterChoose (MSACM.60)
|
|
*/
|
|
MMRESULT16 WINAPI acmFilterChoose16(
|
|
LPACMFILTERCHOOSE16 pafltrc)
|
|
{
|
|
FIXME("(%p): stub\n", pafltrc);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFilterDetails (MSACM.61)
|
|
*/
|
|
MMRESULT16 WINAPI acmFilterDetails16(
|
|
HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd, DWORD fdwDetails)
|
|
{
|
|
FIXME("(0x%04x, %p, %ld): stub\n", had, pafd, fdwDetails);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmFilterEnum (MSACM.62)
|
|
*/
|
|
MMRESULT16 WINAPI acmFilterEnum16(
|
|
HACMDRIVER16 had, LPACMFILTERDETAILS16 pafd,
|
|
ACMFILTERENUMCB16 fnCallback, DWORD dwInstance, DWORD fdwEnum)
|
|
{
|
|
FIXME("(0x%04x, %p, %p, %ld, %ld): stub\n",
|
|
had, pafd, fnCallback, dwInstance, fdwEnum
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmStreamOpen (MSACM.70)
|
|
*/
|
|
MMRESULT16 WINAPI acmStreamOpen16(
|
|
LPHACMSTREAM16 phas, HACMDRIVER16 had,
|
|
LPWAVEFORMATEX pwfxSrc, LPWAVEFORMATEX pwfxDst,
|
|
LPWAVEFILTER pwfltr, DWORD dwCallback,
|
|
DWORD dwInstance, DWORD fdwOpen)
|
|
{
|
|
FIXME("(%p, 0x%04x, %p, %p, %p, %ld, %ld, %ld): stub\n",
|
|
phas, had, pwfxSrc, pwfxDst, pwfltr,
|
|
dwCallback, dwInstance, fdwOpen
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmStreamClose (MSACM.71)
|
|
*/
|
|
MMRESULT16 WINAPI acmStreamClose16(
|
|
HACMSTREAM16 has, DWORD fdwClose)
|
|
{
|
|
FIXME("(0x%04x, %ld): stub\n", has, fdwClose);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmStreamSize (MSACM.72)
|
|
*/
|
|
MMRESULT16 WINAPI acmStreamSize16(
|
|
HACMSTREAM16 has, DWORD cbInput,
|
|
LPDWORD pdwOutputBytes, DWORD fdwSize)
|
|
{
|
|
FIXME("(0x%04x, %ld, %p, %ld): stub\n",
|
|
has, cbInput, pdwOutputBytes, fdwSize
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmStreamConvert (MSACM.75)
|
|
*/
|
|
MMRESULT16 WINAPI acmStreamConvert16(
|
|
HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwConvert)
|
|
{
|
|
FIXME("(0x%04x, %p, %ld): stub\n", has, pash, fdwConvert);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmStreamReset (MSACM.76)
|
|
*/
|
|
MMRESULT16 WINAPI acmStreamReset16(
|
|
HACMSTREAM16 has, DWORD fdwReset)
|
|
{
|
|
FIXME("(0x%04x, %ld): stub\n", has, fdwReset);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmStreamPrepareHeader (MSACM.77)
|
|
*/
|
|
MMRESULT16 WINAPI acmStreamPrepareHeader16(
|
|
HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwPrepare)
|
|
{
|
|
FIXME("(0x%04x, %p, %ld): stub\n", has, pash, fdwPrepare);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* acmStreamUnprepareHeader (MSACM.78)
|
|
*/
|
|
MMRESULT16 WINAPI acmStreamUnprepareHeader16(
|
|
HACMSTREAM16 has, LPACMSTREAMHEADER16 pash, DWORD fdwUnprepare)
|
|
{
|
|
FIXME("(0x%04x, %p, %ld): stub\n",
|
|
has, pash, fdwUnprepare
|
|
);
|
|
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
|
return MMSYSERR_ERROR;
|
|
}
|
|
|
|
/***********************************************************************
|
|
* ACMAPPLICATIONEXIT (MSACM.150)
|
|
* FIXME
|
|
* No documentation found.
|
|
*/
|
|
|
|
/***********************************************************************
|
|
* ACMHUGEPAGELOCK (MSACM.175)
|
|
*FIXME
|
|
* No documentation found.
|
|
*/
|
|
|
|
/***********************************************************************
|
|
* ACMHUGEPAGEUNLOCK (MSACM.176)
|
|
* FIXME
|
|
* No documentation found.
|
|
*/
|
|
|
|
/***********************************************************************
|
|
* ACMOPENCONVERSION (MSACM.200)
|
|
* FIXME
|
|
* No documentation found.
|
|
*/
|
|
|
|
/***********************************************************************
|
|
* ACMCLOSECONVERSION (MSACM.201)
|
|
* FIXME
|
|
* No documentation found.
|
|
*/
|
|
|
|
/***********************************************************************
|
|
* ACMCONVERT (MSACM.202)
|
|
* FIXME
|
|
* No documentation found.
|
|
*/
|
|
|
|
/***********************************************************************
|
|
* ACMCHOOSEFORMAT (MSACM.203)
|
|
* FIXME
|
|
* No documentation found.
|
|
*/
|
|
|
|
|